@burdenoff/microfe-mybodyshield 2026.705.1 → 2026.706.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 (591) hide show
  1. package/dist/_virtual/__vite-optional-peer-dep_@emotion/is-prop-valid_framer-motion.js +10 -0
  2. package/dist/_virtual/__vite-optional-peer-dep_@emotion/is-prop-valid_framer-motion.js.map +1 -0
  3. package/dist/_virtual/_rolldown/runtime.js +5 -5
  4. package/dist/mybodyshield/components/DataTable.js +8 -4
  5. package/dist/mybodyshield/components/DataTable.js.map +1 -1
  6. package/dist/mybodyshield/components/EvidenceUpload.js +92 -4
  7. package/dist/mybodyshield/components/EvidenceUpload.js.map +1 -0
  8. package/dist/mybodyshield/components/FileLink.js +35 -2
  9. package/dist/mybodyshield/components/FileLink.js.map +1 -0
  10. package/dist/mybodyshield/components/MybDiscussion.js +107 -6
  11. package/dist/mybodyshield/components/MybDiscussion.js.map +1 -0
  12. package/dist/mybodyshield/components/MybTags.js +148 -4
  13. package/dist/mybodyshield/components/MybTags.js.map +1 -0
  14. package/dist/mybodyshield/components/Pagination.js.map +1 -1
  15. package/dist/mybodyshield/components/UserSearchSelect.js +148 -0
  16. package/dist/mybodyshield/components/UserSearchSelect.js.map +1 -0
  17. package/dist/mybodyshield/components/index.js +1 -0
  18. package/dist/mybodyshield/hooks/index.js +1 -0
  19. package/dist/mybodyshield/hooks/useMyBodyShieldApi.js +47 -27
  20. package/dist/mybodyshield/hooks/useMyBodyShieldApi.js.map +1 -1
  21. package/dist/mybodyshield/hooks/useMybComments.js +44 -2
  22. package/dist/mybodyshield/hooks/useMybComments.js.map +1 -0
  23. package/dist/mybodyshield/hooks/useMybFiles.js +80 -3
  24. package/dist/mybodyshield/hooks/useMybFiles.js.map +1 -0
  25. package/dist/mybodyshield/hooks/useMybTags.js +88 -2
  26. package/dist/mybodyshield/hooks/useMybTags.js.map +1 -0
  27. package/dist/mybodyshield/hooks/useMybUsers.js +36 -0
  28. package/dist/mybodyshield/hooks/useMybUsers.js.map +1 -0
  29. package/dist/mybodyshield/pages/DashboardPage.js +444 -340
  30. package/dist/mybodyshield/pages/DashboardPage.js.map +1 -1
  31. package/dist/mybodyshield/pages/_shared/visuals.js +29 -23
  32. package/dist/mybodyshield/pages/_shared/visuals.js.map +1 -1
  33. package/dist/mybodyshield/pages/coaching/CoachingPage.js +272 -179
  34. package/dist/mybodyshield/pages/coaching/CoachingPage.js.map +1 -1
  35. package/dist/mybodyshield/pages/goals/GoalsPage.js +304 -257
  36. package/dist/mybodyshield/pages/goals/GoalsPage.js.map +1 -1
  37. package/dist/mybodyshield/pages/nutrition/NutritionPage.js +745 -504
  38. package/dist/mybodyshield/pages/nutrition/NutritionPage.js.map +1 -1
  39. package/dist/mybodyshield/pages/programs/ProgramDetailPage.js +688 -320
  40. package/dist/mybodyshield/pages/programs/ProgramDetailPage.js.map +1 -1
  41. package/dist/mybodyshield/pages/programs/ProgramsPage.js +282 -234
  42. package/dist/mybodyshield/pages/programs/ProgramsPage.js.map +1 -1
  43. package/dist/mybodyshield/pages/progress/ProgressPage.js +447 -299
  44. package/dist/mybodyshield/pages/progress/ProgressPage.js.map +1 -1
  45. package/dist/mybodyshield/pages/recovery/RecoveryPage.js +335 -246
  46. package/dist/mybodyshield/pages/recovery/RecoveryPage.js.map +1 -1
  47. package/dist/mybodyshield/pages/train/SessionDetailPage.js +380 -267
  48. package/dist/mybodyshield/pages/train/SessionDetailPage.js.map +1 -1
  49. package/dist/mybodyshield/pages/train/SessionsPage.js +111 -78
  50. package/dist/mybodyshield/pages/train/SessionsPage.js.map +1 -1
  51. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.js +63 -0
  52. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.js.map +1 -0
  53. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js +55 -0
  54. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js.map +1 -0
  55. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.js +62 -0
  56. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.js.map +1 -0
  57. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js +22 -0
  58. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js.map +1 -0
  59. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.js +13 -0
  60. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.js.map +1 -0
  61. package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.js +8 -0
  62. package/dist/node_modules/framer-motion/dist/es/context/LayoutGroupContext.js.map +1 -0
  63. package/dist/node_modules/framer-motion/dist/es/context/LazyContext.js +8 -0
  64. package/dist/node_modules/framer-motion/dist/es/context/LazyContext.js.map +1 -0
  65. package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.js +12 -0
  66. package/dist/node_modules/framer-motion/dist/es/context/MotionConfigContext.js.map +1 -0
  67. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.js +19 -0
  68. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/create.js.map +1 -0
  69. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.js +8 -0
  70. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/index.js.map +1 -0
  71. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js +17 -0
  72. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js.map +1 -0
  73. package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.js +8 -0
  74. package/dist/node_modules/framer-motion/dist/es/context/PresenceContext.js.map +1 -0
  75. package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.js +8 -0
  76. package/dist/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.js.map +1 -0
  77. package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.js +10 -0
  78. package/dist/node_modules/framer-motion/dist/es/events/add-pointer-event.js.map +1 -0
  79. package/dist/node_modules/framer-motion/dist/es/events/event-info.js +13 -0
  80. package/dist/node_modules/framer-motion/dist/es/events/event-info.js.map +1 -0
  81. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js +260 -0
  82. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js.map +1 -0
  83. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js +24 -0
  84. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js.map +1 -0
  85. package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.js +61 -0
  86. package/dist/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.js.map +1 -0
  87. package/dist/node_modules/framer-motion/dist/es/gestures/focus.js +29 -0
  88. package/dist/node_modules/framer-motion/dist/es/gestures/focus.js.map +1 -0
  89. package/dist/node_modules/framer-motion/dist/es/gestures/hover.js +22 -0
  90. package/dist/node_modules/framer-motion/dist/es/gestures/hover.js.map +1 -0
  91. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js +140 -0
  92. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js.map +1 -0
  93. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js +44 -0
  94. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js.map +1 -0
  95. package/dist/node_modules/framer-motion/dist/es/gestures/press.js +28 -0
  96. package/dist/node_modules/framer-motion/dist/es/gestures/press.js.map +1 -0
  97. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js +41 -0
  98. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js.map +1 -0
  99. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js +27 -0
  100. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js.map +1 -0
  101. package/dist/node_modules/framer-motion/dist/es/motion/features/animations.js +11 -0
  102. package/dist/node_modules/framer-motion/dist/es/motion/features/animations.js.map +1 -0
  103. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.js +53 -0
  104. package/dist/node_modules/framer-motion/dist/es/motion/features/definitions.js.map +1 -0
  105. package/dist/node_modules/framer-motion/dist/es/motion/features/drag.js +17 -0
  106. package/dist/node_modules/framer-motion/dist/es/motion/features/drag.js.map +1 -0
  107. package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.js +15 -0
  108. package/dist/node_modules/framer-motion/dist/es/motion/features/gestures.js.map +1 -0
  109. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js +63 -0
  110. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js.map +1 -0
  111. package/dist/node_modules/framer-motion/dist/es/motion/features/layout.js +11 -0
  112. package/dist/node_modules/framer-motion/dist/es/motion/features/layout.js.map +1 -0
  113. package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.js +15 -0
  114. package/dist/node_modules/framer-motion/dist/es/motion/features/load-features.js.map +1 -0
  115. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js +48 -0
  116. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js.map +1 -0
  117. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js +26 -0
  118. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js.map +1 -0
  119. package/dist/node_modules/framer-motion/dist/es/motion/index.js +72 -0
  120. package/dist/node_modules/framer-motion/dist/es/motion/index.js.map +1 -0
  121. package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.js +6 -0
  122. package/dist/node_modules/framer-motion/dist/es/motion/utils/symbol.js.map +1 -0
  123. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js +23 -0
  124. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js.map +1 -0
  125. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js +60 -0
  126. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js.map +1 -0
  127. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js +52 -0
  128. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js.map +1 -0
  129. package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.js +9 -0
  130. package/dist/node_modules/framer-motion/dist/es/motion/utils/valid-prop.js.map +1 -0
  131. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.js +12 -0
  132. package/dist/node_modules/framer-motion/dist/es/render/components/create-proxy.js.map +1 -0
  133. package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.js +15 -0
  134. package/dist/node_modules/framer-motion/dist/es/render/components/motion/feature-bundle.js.map +1 -0
  135. package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.js +9 -0
  136. package/dist/node_modules/framer-motion/dist/es/render/components/motion/proxy.js.map +1 -0
  137. package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.js +10 -0
  138. package/dist/node_modules/framer-motion/dist/es/render/dom/create-visual-element.js.map +1 -0
  139. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js +23 -0
  140. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js.map +1 -0
  141. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.js +21 -0
  142. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.js.map +1 -0
  143. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.js +9 -0
  144. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.js.map +1 -0
  145. package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.js +13 -0
  146. package/dist/node_modules/framer-motion/dist/es/render/html/use-html-visual-state.js.map +1 -0
  147. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js +28 -0
  148. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js.map +1 -0
  149. package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.js +11 -0
  150. package/dist/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.js.map +1 -0
  151. package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.js +32 -0
  152. package/dist/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.js.map +1 -0
  153. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js +28 -0
  154. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js.map +1 -0
  155. package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.js +13 -0
  156. package/dist/node_modules/framer-motion/dist/es/render/svg/use-svg-visual-state.js.map +1 -0
  157. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.js +10 -0
  158. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.js.map +1 -0
  159. package/dist/node_modules/framer-motion/dist/es/utils/distance.js +10 -0
  160. package/dist/node_modules/framer-motion/dist/es/utils/distance.js.map +1 -0
  161. package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.js +6 -0
  162. package/dist/node_modules/framer-motion/dist/es/utils/get-context-window.js.map +1 -0
  163. package/dist/node_modules/framer-motion/dist/es/utils/is-browser.js +6 -0
  164. package/dist/node_modules/framer-motion/dist/es/utils/is-browser.js.map +1 -0
  165. package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.js +8 -0
  166. package/dist/node_modules/framer-motion/dist/es/utils/is-ref-object.js.map +1 -0
  167. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js +15 -0
  168. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js.map +1 -0
  169. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.js +27 -0
  170. package/dist/node_modules/framer-motion/dist/es/utils/use-composed-ref.js.map +1 -0
  171. package/dist/node_modules/framer-motion/dist/es/utils/use-constant.js +11 -0
  172. package/dist/node_modules/framer-motion/dist/es/utils/use-constant.js.map +1 -0
  173. package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.js +9 -0
  174. package/dist/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.js.map +1 -0
  175. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.js +109 -0
  176. package/dist/node_modules/motion-dom/dist/es/animation/AsyncMotionValueAnimation.js.map +1 -0
  177. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.js +131 -0
  178. package/dist/node_modules/motion-dom/dist/es/animation/JSAnimation.js.map +1 -0
  179. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.js +86 -0
  180. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimation.js.map +1 -0
  181. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.js +30 -0
  182. package/dist/node_modules/motion-dom/dist/es/animation/NativeAnimationExtended.js.map +1 -0
  183. package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.js +12 -0
  184. package/dist/node_modules/motion-dom/dist/es/animation/animate/single-value.js.map +1 -0
  185. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.js +15 -0
  186. package/dist/node_modules/motion-dom/dist/es/animation/drivers/frame.js.map +1 -0
  187. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.js +34 -0
  188. package/dist/node_modules/motion-dom/dist/es/animation/generators/inertia.js.map +1 -0
  189. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.js +24 -0
  190. package/dist/node_modules/motion-dom/dist/es/animation/generators/keyframes.js.map +1 -0
  191. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.js +168 -0
  192. package/dist/node_modules/motion-dom/dist/es/animation/generators/spring.js.map +1 -0
  193. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.js +11 -0
  194. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/calc-duration.js.map +1 -0
  195. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.js +18 -0
  196. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/create-generator-easing.js.map +1 -0
  197. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.js +8 -0
  198. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/is-generator.js.map +1 -0
  199. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.js +11 -0
  200. package/dist/node_modules/motion-dom/dist/es/animation/generators/utils/velocity.js.map +1 -0
  201. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.js +47 -0
  202. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/motion-value.js.map +1 -0
  203. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.js +59 -0
  204. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-target.js.map +1 -0
  205. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.js +28 -0
  206. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element-variant.js.map +1 -0
  207. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.js +23 -0
  208. package/dist/node_modules/motion-dom/dist/es/animation/interfaces/visual-element.js.map +1 -0
  209. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.js +63 -0
  210. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/DOMKeyframesResolver.js.map +1 -0
  211. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.js +69 -0
  212. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/KeyframesResolver.js.map +1 -0
  213. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.js +10 -0
  214. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/get-final.js.map +1 -0
  215. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.js +10 -0
  216. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/default.js.map +1 -0
  217. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.js +14 -0
  218. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/fill.js.map +1 -0
  219. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.js +8 -0
  220. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/offsets/time.js.map +1 -0
  221. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.js +8 -0
  222. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/fill-wildcards.js.map +1 -0
  223. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.js +9 -0
  224. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/is-none.js.map +1 -0
  225. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.js +20 -0
  226. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/make-none-animatable.js.map +1 -0
  227. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.js +38 -0
  228. package/dist/node_modules/motion-dom/dist/es/animation/keyframes/utils/unit-conversion.js.map +1 -0
  229. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.js +6 -0
  230. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/data-id.js.map +1 -0
  231. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.js +9 -0
  232. package/dist/node_modules/motion-dom/dist/es/animation/optimized-appear/get-appear-id.js.map +1 -0
  233. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.js +24 -0
  234. package/dist/node_modules/motion-dom/dist/es/animation/utils/WithPromise.js.map +1 -0
  235. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.js +9 -0
  236. package/dist/node_modules/motion-dom/dist/es/animation/utils/calc-child-stagger.js.map +1 -0
  237. package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.js +20 -0
  238. package/dist/node_modules/motion-dom/dist/es/animation/utils/can-animate.js.map +1 -0
  239. package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.js +27 -0
  240. package/dist/node_modules/motion-dom/dist/es/animation/utils/css-variables-conversion.js.map +1 -0
  241. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.js +29 -0
  242. package/dist/node_modules/motion-dom/dist/es/animation/utils/default-transitions.js.map +1 -0
  243. package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.js +10 -0
  244. package/dist/node_modules/motion-dom/dist/es/animation/utils/get-value-transition.js.map +1 -0
  245. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.js +7 -0
  246. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-animatable.js.map +1 -0
  247. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.js +9 -0
  248. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-css-variable.js.map +1 -0
  249. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.js +21 -0
  250. package/dist/node_modules/motion-dom/dist/es/animation/utils/is-transition-defined.js.map +1 -0
  251. package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.js +8 -0
  252. package/dist/node_modules/motion-dom/dist/es/animation/utils/make-animation-instant.js.map +1 -0
  253. package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.js +18 -0
  254. package/dist/node_modules/motion-dom/dist/es/animation/utils/replace-transition-type.js.map +1 -0
  255. package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.js +15 -0
  256. package/dist/node_modules/motion-dom/dist/es/animation/utils/resolve-transition.js.map +1 -0
  257. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.js +6 -0
  258. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/cubic-bezier.js.map +1 -0
  259. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.js +13 -0
  260. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/map-easing.js.map +1 -0
  261. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.js +37 -0
  262. package/dist/node_modules/motion-dom/dist/es/animation/waapi/easing/supported.js.map +1 -0
  263. package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.js +21 -0
  264. package/dist/node_modules/motion-dom/dist/es/animation/waapi/start-waapi-animation.js.map +1 -0
  265. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.js +26 -0
  266. package/dist/node_modules/motion-dom/dist/es/animation/waapi/supports/waapi.js.map +1 -0
  267. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.js +11 -0
  268. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/accelerated-values.js.map +1 -0
  269. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.js +10 -0
  270. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/apply-generator.js.map +1 -0
  271. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.js +10 -0
  272. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/is-browser-color.js.map +1 -0
  273. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.js +10 -0
  274. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/linear.js.map +1 -0
  275. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.js +19 -0
  276. package/dist/node_modules/motion-dom/dist/es/animation/waapi/utils/unsupported-easing.js.map +1 -0
  277. package/dist/node_modules/motion-dom/dist/es/events/add-dom-event.js +8 -0
  278. package/dist/node_modules/motion-dom/dist/es/events/add-dom-event.js.map +1 -0
  279. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.js +32 -0
  280. package/dist/node_modules/motion-dom/dist/es/frameloop/batcher.js.map +1 -0
  281. package/dist/node_modules/motion-dom/dist/es/frameloop/frame.js +8 -0
  282. package/dist/node_modules/motion-dom/dist/es/frameloop/frame.js.map +1 -0
  283. package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.js +7 -0
  284. package/dist/node_modules/motion-dom/dist/es/frameloop/microtask.js.map +1 -0
  285. package/dist/node_modules/motion-dom/dist/es/frameloop/order.js +15 -0
  286. package/dist/node_modules/motion-dom/dist/es/frameloop/order.js.map +1 -0
  287. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.js +34 -0
  288. package/dist/node_modules/motion-dom/dist/es/frameloop/render-step.js.map +1 -0
  289. package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.js +17 -0
  290. package/dist/node_modules/motion-dom/dist/es/frameloop/sync-time.js.map +1 -0
  291. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.js +12 -0
  292. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/is-active.js.map +1 -0
  293. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js +13 -0
  294. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js.map +1 -0
  295. package/dist/node_modules/motion-dom/dist/es/gestures/hover.js +38 -0
  296. package/dist/node_modules/motion-dom/dist/es/gestures/hover.js.map +1 -0
  297. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js +38 -0
  298. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js.map +1 -0
  299. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.js +23 -0
  300. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/is-keyboard-accessible.js.map +1 -0
  301. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js +30 -0
  302. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js.map +1 -0
  303. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.js +6 -0
  304. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/state.js.map +1 -0
  305. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.js +6 -0
  306. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-node-or-child.js.map +1 -0
  307. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.js +6 -0
  308. package/dist/node_modules/motion-dom/dist/es/gestures/utils/is-primary-pointer.js.map +1 -0
  309. package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.js +18 -0
  310. package/dist/node_modules/motion-dom/dist/es/gestures/utils/setup.js.map +1 -0
  311. package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.js +27 -0
  312. package/dist/node_modules/motion-dom/dist/es/projection/animation/mix-values.js.map +1 -0
  313. package/dist/node_modules/motion-dom/dist/es/projection/geometry/conversion.js +41 -0
  314. package/dist/node_modules/motion-dom/dist/es/projection/geometry/conversion.js.map +1 -0
  315. package/dist/node_modules/motion-dom/dist/es/projection/geometry/copy.js +14 -0
  316. package/dist/node_modules/motion-dom/dist/es/projection/geometry/copy.js.map +1 -0
  317. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.js +45 -0
  318. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-apply.js.map +1 -0
  319. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.js +32 -0
  320. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-calc.js.map +1 -0
  321. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.js +31 -0
  322. package/dist/node_modules/motion-dom/dist/es/projection/geometry/delta-remove.js.map +1 -0
  323. package/dist/node_modules/motion-dom/dist/es/projection/geometry/models.js +20 -0
  324. package/dist/node_modules/motion-dom/dist/es/projection/geometry/models.js.map +1 -0
  325. package/dist/node_modules/motion-dom/dist/es/projection/geometry/utils.js +30 -0
  326. package/dist/node_modules/motion-dom/dist/es/projection/geometry/utils.js.map +1 -0
  327. package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.js +15 -0
  328. package/dist/node_modules/motion-dom/dist/es/projection/node/DocumentProjectionNode.js.map +1 -0
  329. package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.js +24 -0
  330. package/dist/node_modules/motion-dom/dist/es/projection/node/HTMLProjectionNode.js.map +1 -0
  331. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.js +586 -0
  332. package/dist/node_modules/motion-dom/dist/es/projection/node/create-projection-node.js.map +1 -0
  333. package/dist/node_modules/motion-dom/dist/es/projection/node/state.js +9 -0
  334. package/dist/node_modules/motion-dom/dist/es/projection/node/state.js.map +1 -0
  335. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.js +53 -0
  336. package/dist/node_modules/motion-dom/dist/es/projection/shared/stack.js.map +1 -0
  337. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.js +15 -0
  338. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-border-radius.js.map +1 -0
  339. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.js +15 -0
  340. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-box-shadow.js.map +1 -0
  341. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.js +19 -0
  342. package/dist/node_modules/motion-dom/dist/es/projection/styles/scale-correction.js.map +1 -0
  343. package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.js +14 -0
  344. package/dist/node_modules/motion-dom/dist/es/projection/styles/transform.js.map +1 -0
  345. package/dist/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.js +6 -0
  346. package/dist/node_modules/motion-dom/dist/es/projection/utils/compare-by-depth.js.map +1 -0
  347. package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.js +8 -0
  348. package/dist/node_modules/motion-dom/dist/es/projection/utils/each-axis.js.map +1 -0
  349. package/dist/node_modules/motion-dom/dist/es/projection/utils/flat-tree.js +21 -0
  350. package/dist/node_modules/motion-dom/dist/es/projection/utils/flat-tree.js.map +1 -0
  351. package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.js +20 -0
  352. package/dist/node_modules/motion-dom/dist/es/projection/utils/has-transform.js.map +1 -0
  353. package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.js +14 -0
  354. package/dist/node_modules/motion-dom/dist/es/projection/utils/measure.js.map +1 -0
  355. package/dist/node_modules/motion-dom/dist/es/render/Feature.js +11 -0
  356. package/dist/node_modules/motion-dom/dist/es/render/Feature.js.map +1 -0
  357. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.js +206 -0
  358. package/dist/node_modules/motion-dom/dist/es/render/VisualElement.js.map +1 -0
  359. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.js +30 -0
  360. package/dist/node_modules/motion-dom/dist/es/render/dom/DOMVisualElement.js.map +1 -0
  361. package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.js +6 -0
  362. package/dist/node_modules/motion-dom/dist/es/render/dom/is-css-var.js.map +1 -0
  363. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.js +58 -0
  364. package/dist/node_modules/motion-dom/dist/es/render/dom/parse-transform.js.map +1 -0
  365. package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.js +9 -0
  366. package/dist/node_modules/motion-dom/dist/es/render/dom/style-set.js.map +1 -0
  367. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.js +8 -0
  368. package/dist/node_modules/motion-dom/dist/es/render/dom/utils/camel-to-dash.js.map +1 -0
  369. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.js +37 -0
  370. package/dist/node_modules/motion-dom/dist/es/render/html/HTMLVisualElement.js.map +1 -0
  371. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.js +30 -0
  372. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-styles.js.map +1 -0
  373. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.js +38 -0
  374. package/dist/node_modules/motion-dom/dist/es/render/html/utils/build-transform.js.map +1 -0
  375. package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.js +10 -0
  376. package/dist/node_modules/motion-dom/dist/es/render/html/utils/render.js.map +1 -0
  377. package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.js +13 -0
  378. package/dist/node_modules/motion-dom/dist/es/render/html/utils/scrape-motion-values.js.map +1 -0
  379. package/dist/node_modules/motion-dom/dist/es/render/store.js +6 -0
  380. package/dist/node_modules/motion-dom/dist/es/render/store.js.map +1 -0
  381. package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.js +42 -0
  382. package/dist/node_modules/motion-dom/dist/es/render/svg/SVGVisualElement.js.map +1 -0
  383. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.js +24 -0
  384. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/build-attrs.js.map +1 -0
  385. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.js +30 -0
  386. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/camel-case-attrs.js.map +1 -0
  387. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.js +6 -0
  388. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/is-svg-tag.js.map +1 -0
  389. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.js +17 -0
  390. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/path.js.map +1 -0
  391. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/render.js +12 -0
  392. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/render.js.map +1 -0
  393. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.js +16 -0
  394. package/dist/node_modules/motion-dom/dist/es/render/svg/utils/scrape-motion-values.js.map +1 -0
  395. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.js +137 -0
  396. package/dist/node_modules/motion-dom/dist/es/render/utils/animation-state.js.map +1 -0
  397. package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.js +21 -0
  398. package/dist/node_modules/motion-dom/dist/es/render/utils/get-variant-context.js.map +1 -0
  399. package/dist/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.js +8 -0
  400. package/dist/node_modules/motion-dom/dist/es/render/utils/is-animation-controls.js.map +1 -0
  401. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.js +14 -0
  402. package/dist/node_modules/motion-dom/dist/es/render/utils/is-controlling-variants.js.map +1 -0
  403. package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.js +10 -0
  404. package/dist/node_modules/motion-dom/dist/es/render/utils/is-forced-motion-value.js.map +1 -0
  405. package/dist/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.js +6 -0
  406. package/dist/node_modules/motion-dom/dist/es/render/utils/is-keyframes-target.js.map +1 -0
  407. package/dist/node_modules/motion-dom/dist/es/render/utils/is-variant-label.js +8 -0
  408. package/dist/node_modules/motion-dom/dist/es/render/utils/is-variant-label.js.map +1 -0
  409. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.js +15 -0
  410. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-position.js.map +1 -0
  411. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.js +24 -0
  412. package/dist/node_modules/motion-dom/dist/es/render/utils/keys-transform.js.map +1 -0
  413. package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.js +23 -0
  414. package/dist/node_modules/motion-dom/dist/es/render/utils/motion-values.js.map +1 -0
  415. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.js +13 -0
  416. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/index.js.map +1 -0
  417. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.js +6 -0
  418. package/dist/node_modules/motion-dom/dist/es/render/utils/reduced-motion/state.js.map +1 -0
  419. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.js +10 -0
  420. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-dynamic-variants.js.map +1 -0
  421. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.js +22 -0
  422. package/dist/node_modules/motion-dom/dist/es/render/utils/resolve-variants.js.map +1 -0
  423. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.js +22 -0
  424. package/dist/node_modules/motion-dom/dist/es/render/utils/setters.js.map +1 -0
  425. package/dist/node_modules/motion-dom/dist/es/render/utils/shallow-compare.js +12 -0
  426. package/dist/node_modules/motion-dom/dist/es/render/utils/shallow-compare.js.map +1 -0
  427. package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.js +14 -0
  428. package/dist/node_modules/motion-dom/dist/es/render/utils/variant-props.js.map +1 -0
  429. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.js +39 -0
  430. package/dist/node_modules/motion-dom/dist/es/resize/handle-element.js.map +1 -0
  431. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.js +24 -0
  432. package/dist/node_modules/motion-dom/dist/es/resize/handle-window.js.map +1 -0
  433. package/dist/node_modules/motion-dom/dist/es/resize/index.js +10 -0
  434. package/dist/node_modules/motion-dom/dist/es/resize/index.js.map +1 -0
  435. package/dist/node_modules/motion-dom/dist/es/stats/buffer.js +9 -0
  436. package/dist/node_modules/motion-dom/dist/es/stats/buffer.js.map +1 -0
  437. package/dist/node_modules/motion-dom/dist/es/utils/border-radius.js +11 -0
  438. package/dist/node_modules/motion-dom/dist/es/utils/border-radius.js.map +1 -0
  439. package/dist/node_modules/motion-dom/dist/es/utils/delay.js +14 -0
  440. package/dist/node_modules/motion-dom/dist/es/utils/delay.js.map +1 -0
  441. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.js +35 -0
  442. package/dist/node_modules/motion-dom/dist/es/utils/interpolate.js.map +1 -0
  443. package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.js +9 -0
  444. package/dist/node_modules/motion-dom/dist/es/utils/is-html-element.js.map +1 -0
  445. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.js +9 -0
  446. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-element.js.map +1 -0
  447. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.js +9 -0
  448. package/dist/node_modules/motion-dom/dist/es/utils/is-svg-svg-element.js.map +1 -0
  449. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.js +32 -0
  450. package/dist/node_modules/motion-dom/dist/es/utils/mix/color.js.map +1 -0
  451. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.js +54 -0
  452. package/dist/node_modules/motion-dom/dist/es/utils/mix/complex.js.map +1 -0
  453. package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.js +8 -0
  454. package/dist/node_modules/motion-dom/dist/es/utils/mix/immediate.js.map +1 -0
  455. package/dist/node_modules/motion-dom/dist/es/utils/mix/index.js +10 -0
  456. package/dist/node_modules/motion-dom/dist/es/utils/mix/index.js.map +1 -0
  457. package/dist/node_modules/motion-dom/dist/es/utils/mix/number.js +6 -0
  458. package/dist/node_modules/motion-dom/dist/es/utils/mix/number.js.map +1 -0
  459. package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.js +9 -0
  460. package/dist/node_modules/motion-dom/dist/es/utils/mix/visibility.js.map +1 -0
  461. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js +16 -0
  462. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js.map +1 -0
  463. package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.js +6 -0
  464. package/dist/node_modules/motion-dom/dist/es/utils/supports/flags.js.map +1 -0
  465. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js +14 -0
  466. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js.map +1 -0
  467. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js +11 -0
  468. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js.map +1 -0
  469. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.js +7 -0
  470. package/dist/node_modules/motion-dom/dist/es/utils/supports/scroll-timeline.js.map +1 -0
  471. package/dist/node_modules/motion-dom/dist/es/value/index.js +94 -0
  472. package/dist/node_modules/motion-dom/dist/es/value/index.js.map +1 -0
  473. package/dist/node_modules/motion-dom/dist/es/value/types/auto.js +9 -0
  474. package/dist/node_modules/motion-dom/dist/es/value/types/auto.js.map +1 -0
  475. package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.js +21 -0
  476. package/dist/node_modules/motion-dom/dist/es/value/types/color/hex.js.map +1 -0
  477. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.js +23 -0
  478. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla-to-rgba.js.map +1 -0
  479. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.js +14 -0
  480. package/dist/node_modules/motion-dom/dist/es/value/types/color/hsla.js.map +1 -0
  481. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.js +17 -0
  482. package/dist/node_modules/motion-dom/dist/es/value/types/color/index.js.map +1 -0
  483. package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.js +17 -0
  484. package/dist/node_modules/motion-dom/dist/es/value/types/color/rgba.js.map +1 -0
  485. package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.js +18 -0
  486. package/dist/node_modules/motion-dom/dist/es/value/types/color/utils.js.map +1 -0
  487. package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.js +28 -0
  488. package/dist/node_modules/motion-dom/dist/es/value/types/complex/filter.js.map +1 -0
  489. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.js +54 -0
  490. package/dist/node_modules/motion-dom/dist/es/value/types/complex/index.js.map +1 -0
  491. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.js +16 -0
  492. package/dist/node_modules/motion-dom/dist/es/value/types/complex/mask.js.map +1 -0
  493. package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.js +18 -0
  494. package/dist/node_modules/motion-dom/dist/es/value/types/dimensions.js.map +1 -0
  495. package/dist/node_modules/motion-dom/dist/es/value/types/int.js +10 -0
  496. package/dist/node_modules/motion-dom/dist/es/value/types/int.js.map +1 -0
  497. package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.js +26 -0
  498. package/dist/node_modules/motion-dom/dist/es/value/types/maps/defaults.js.map +1 -0
  499. package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.js +66 -0
  500. package/dist/node_modules/motion-dom/dist/es/value/types/maps/number.js.map +1 -0
  501. package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.js +34 -0
  502. package/dist/node_modules/motion-dom/dist/es/value/types/maps/transform.js.map +1 -0
  503. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.js +17 -0
  504. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/index.js.map +1 -0
  505. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.js +14 -0
  506. package/dist/node_modules/motion-dom/dist/es/value/types/numbers/units.js.map +1 -0
  507. package/dist/node_modules/motion-dom/dist/es/value/types/test.js +6 -0
  508. package/dist/node_modules/motion-dom/dist/es/value/types/test.js.map +1 -0
  509. package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.js +14 -0
  510. package/dist/node_modules/motion-dom/dist/es/value/types/utils/animatable-none.js.map +1 -0
  511. package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.js +6 -0
  512. package/dist/node_modules/motion-dom/dist/es/value/types/utils/color-regex.js.map +1 -0
  513. package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.js +14 -0
  514. package/dist/node_modules/motion-dom/dist/es/value/types/utils/find.js.map +1 -0
  515. package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.js +6 -0
  516. package/dist/node_modules/motion-dom/dist/es/value/types/utils/float-regex.js.map +1 -0
  517. package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.js +6 -0
  518. package/dist/node_modules/motion-dom/dist/es/value/types/utils/get-as-type.js.map +1 -0
  519. package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.js +8 -0
  520. package/dist/node_modules/motion-dom/dist/es/value/types/utils/is-nullish.js.map +1 -0
  521. package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.js +6 -0
  522. package/dist/node_modules/motion-dom/dist/es/value/types/utils/sanitize.js.map +1 -0
  523. package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.js +6 -0
  524. package/dist/node_modules/motion-dom/dist/es/value/types/utils/single-color-regex.js.map +1 -0
  525. package/dist/node_modules/motion-dom/dist/es/value/utils/is-motion-value.js +6 -0
  526. package/dist/node_modules/motion-dom/dist/es/value/utils/is-motion-value.js.map +1 -0
  527. package/dist/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.js +9 -0
  528. package/dist/node_modules/motion-dom/dist/es/value/utils/resolve-motion-value.js.map +1 -0
  529. package/dist/node_modules/motion-dom/dist/es/value/will-change/add-will-change.js +15 -0
  530. package/dist/node_modules/motion-dom/dist/es/value/will-change/add-will-change.js.map +1 -0
  531. package/dist/node_modules/motion-dom/dist/es/value/will-change/is.js +9 -0
  532. package/dist/node_modules/motion-dom/dist/es/value/will-change/is.js.map +1 -0
  533. package/dist/node_modules/motion-utils/dist/es/array.js +12 -0
  534. package/dist/node_modules/motion-utils/dist/es/array.js.map +1 -0
  535. package/dist/node_modules/motion-utils/dist/es/clamp.js +6 -0
  536. package/dist/node_modules/motion-utils/dist/es/clamp.js.map +1 -0
  537. package/dist/node_modules/motion-utils/dist/es/easing/anticipate.js +7 -0
  538. package/dist/node_modules/motion-utils/dist/es/easing/anticipate.js.map +1 -0
  539. package/dist/node_modules/motion-utils/dist/es/easing/back.js +9 -0
  540. package/dist/node_modules/motion-utils/dist/es/easing/back.js.map +1 -0
  541. package/dist/node_modules/motion-utils/dist/es/easing/circ.js +8 -0
  542. package/dist/node_modules/motion-utils/dist/es/easing/circ.js.map +1 -0
  543. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.js +20 -0
  544. package/dist/node_modules/motion-utils/dist/es/easing/cubic-bezier.js.map +1 -0
  545. package/dist/node_modules/motion-utils/dist/es/easing/ease.js +7 -0
  546. package/dist/node_modules/motion-utils/dist/es/easing/ease.js.map +1 -0
  547. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.js +6 -0
  548. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/mirror.js.map +1 -0
  549. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.js +6 -0
  550. package/dist/node_modules/motion-utils/dist/es/easing/modifiers/reverse.js.map +1 -0
  551. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.js +6 -0
  552. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-bezier-definition.js.map +1 -0
  553. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.js +6 -0
  554. package/dist/node_modules/motion-utils/dist/es/easing/utils/is-easing-array.js.map +1 -0
  555. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.js +33 -0
  556. package/dist/node_modules/motion-utils/dist/es/easing/utils/map.js.map +1 -0
  557. package/dist/node_modules/motion-utils/dist/es/errors.js +12 -0
  558. package/dist/node_modules/motion-utils/dist/es/errors.js.map +1 -0
  559. package/dist/node_modules/motion-utils/dist/es/format-error-message.js +8 -0
  560. package/dist/node_modules/motion-utils/dist/es/format-error-message.js.map +1 -0
  561. package/dist/node_modules/motion-utils/dist/es/global-config.js +6 -0
  562. package/dist/node_modules/motion-utils/dist/es/global-config.js.map +1 -0
  563. package/dist/node_modules/motion-utils/dist/es/is-numerical-string.js +6 -0
  564. package/dist/node_modules/motion-utils/dist/es/is-numerical-string.js.map +1 -0
  565. package/dist/node_modules/motion-utils/dist/es/is-object.js +6 -0
  566. package/dist/node_modules/motion-utils/dist/es/is-object.js.map +1 -0
  567. package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.js +6 -0
  568. package/dist/node_modules/motion-utils/dist/es/is-zero-value-string.js.map +1 -0
  569. package/dist/node_modules/motion-utils/dist/es/memo.js +10 -0
  570. package/dist/node_modules/motion-utils/dist/es/memo.js.map +1 -0
  571. package/dist/node_modules/motion-utils/dist/es/noop.js +6 -0
  572. package/dist/node_modules/motion-utils/dist/es/noop.js.map +1 -0
  573. package/dist/node_modules/motion-utils/dist/es/pipe.js +6 -0
  574. package/dist/node_modules/motion-utils/dist/es/pipe.js.map +1 -0
  575. package/dist/node_modules/motion-utils/dist/es/progress.js +9 -0
  576. package/dist/node_modules/motion-utils/dist/es/progress.js.map +1 -0
  577. package/dist/node_modules/motion-utils/dist/es/subscription-manager.js +28 -0
  578. package/dist/node_modules/motion-utils/dist/es/subscription-manager.js.map +1 -0
  579. package/dist/node_modules/motion-utils/dist/es/time-conversion.js +6 -0
  580. package/dist/node_modules/motion-utils/dist/es/time-conversion.js.map +1 -0
  581. package/dist/node_modules/motion-utils/dist/es/velocity-per-second.js +6 -0
  582. package/dist/node_modules/motion-utils/dist/es/velocity-per-second.js.map +1 -0
  583. package/dist/node_modules/motion-utils/dist/es/warn-once.js +10 -0
  584. package/dist/node_modules/motion-utils/dist/es/warn-once.js.map +1 -0
  585. package/dist/node_modules/recharts/es6/cartesian/Area.js +435 -0
  586. package/dist/node_modules/recharts/es6/cartesian/Area.js.map +1 -0
  587. package/dist/node_modules/recharts/es6/chart/{LineChart.js → AreaChart.js} +5 -5
  588. package/dist/node_modules/recharts/es6/chart/{LineChart.js.map → AreaChart.js.map} +1 -1
  589. package/package.json +2 -2
  590. package/dist/node_modules/recharts/es6/cartesian/Line.js +0 -473
  591. package/dist/node_modules/recharts/es6/cartesian/Line.js.map +0 -1
@@ -1,11 +1,12 @@
1
- import { PageLayout as e } from "../../components/PageLayout.js";
2
- import { MetricsCard as t } from "../../components/MetricsCard.js";
3
- import { formatDate as n, formatEnumLabel as r, formatGrams as i, formatKcal as ee, formatNumber as a, formatRelativeTime as te } from "../../utils/formatters.js";
4
- import { StatusBadge as o } from "../../components/StatusBadge.js";
5
- import { ErrorView as s, LoadingView as c, Section as ne } from "../../components/StateViews.js";
6
- import { EmptyState as l } from "../../components/EmptyState.js";
7
- import { MacroBar as re, MacroLegend as ie, Meter as ae, ProgressRing as oe } from "../_shared/visuals.js";
8
- import { useMybActiveNutritionPlan as se, useMybCreateNutritionPlan as ce, useMybDailyMacros as le, useMybDeleteMeal as ue, useMybLogMeal as de, useMybMeals as fe, useMybUpdateNutritionPlan as pe } from "../../hooks/useMyBodyShieldApi.js";
1
+ import { motion as e } from "../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";
2
+ import { useReducedMotion as t } from "../../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.js";
3
+ import { PageLayout as n } from "../../components/PageLayout.js";
4
+ import { formatDate as r, formatEnumLabel as i, formatGrams as a, formatKcal as ee, formatNumber as o, formatRelativeTime as te } from "../../utils/formatters.js";
5
+ import { StatusBadge as s } from "../../components/StatusBadge.js";
6
+ import { ErrorView as c, LoadingView as l, Section as ne } from "../../components/StateViews.js";
7
+ import { EmptyState as u } from "../../components/EmptyState.js";
8
+ import { IconChip as d, MACRO_HUE as f, MacroBar as re, Meter as ie, ProgressRing as ae } from "../_shared/visuals.js";
9
+ import { useMybActivateNutritionPlan as oe, useMybActiveNutritionPlan as se, useMybCreateNutritionPlan as ce, useMybDailyMacros as le, useMybDeleteMeal as ue, useMybLogMeal as de, useMybMeals as fe, useMybUpdateNutritionPlan as pe } from "../../hooks/useMyBodyShieldApi.js";
9
10
  import { useOffsetPager as me } from "../../hooks/usePager.js";
10
11
  import "../../hooks/index.js";
11
12
  import { DataTable as he } from "../../components/DataTable.js";
@@ -13,63 +14,64 @@ import { FilterTabs as ge } from "../../components/FilterTabs.js";
13
14
  import { Tabs as _e } from "../../components/Tabs.js";
14
15
  import { Pagination as ve } from "../../components/Pagination.js";
15
16
  import "../../components/index.js";
16
- import { useMemo as ye, useState as u } from "react";
17
- import { Beef as be, ClipboardList as d, Droplet as xe, Flame as f, Pencil as p, Plus as m, Salad as h, Trash2 as Se, UtensilsCrossed as Ce, Wheat as we } from "lucide-react";
18
- import { Fragment as Te, jsx as g, jsxs as _ } from "react/jsx-runtime";
19
- import { Button as v, GlassCard as y, Input as b, Label as x, ResponsiveDialog as S, ResponsiveDialogContent as C, ResponsiveDialogDescription as w, ResponsiveDialogFooter as T, ResponsiveDialogHeader as Ee, ResponsiveDialogTitle as De, Select as Oe, SelectContent as ke, SelectItem as Ae, SelectTrigger as je, SelectValue as Me, Textarea as Ne } from "@burdenoff/fe-libs/ui";
17
+ import { useMemo as ye, useState as p } from "react";
18
+ import { Beef as be, Calendar as xe, CheckCircle2 as m, ClipboardList as Se, Droplet as Ce, Flame as we, Pencil as Te, Plus as h, Salad as Ee, Star as g, Trash2 as De, UtensilsCrossed as Oe, Wheat as ke } from "lucide-react";
19
+ import { Fragment as Ae, jsx as _, jsxs as v } from "react/jsx-runtime";
20
+ import { Button as y, GlassCard as b, Input as x, Label as S, ResponsiveDialog as je, ResponsiveDialogContent as Me, ResponsiveDialogDescription as Ne, ResponsiveDialogFooter as Pe, ResponsiveDialogHeader as Fe, ResponsiveDialogTitle as Ie, Select as Le, SelectContent as Re, SelectItem as ze, SelectTrigger as Be, SelectValue as Ve, Switch as He, Textarea as Ue } from "@burdenoff/fe-libs/ui";
20
21
  //#region src/mybodyshield/pages/nutrition/NutritionPage.tsx
21
- var E = 25, Pe = [
22
+ var C = 25, We = [
22
23
  "BREAKFAST",
23
24
  "LUNCH",
24
25
  "DINNER",
25
26
  "SNACK"
26
- ], Fe = [
27
+ ], Ge = [
27
28
  "WEIGHT_LOSS",
28
29
  "MUSCLE_GAIN",
29
30
  "STRENGTH",
30
31
  "ENDURANCE",
31
32
  "MOBILITY",
32
33
  "GENERAL_FITNESS"
33
- ], Ie = [
34
+ ], Ke = [
34
35
  {
35
36
  value: "today",
36
37
  label: "Today",
37
- icon: /* @__PURE__ */ g(f, { className: "h-4 w-4" })
38
+ icon: /* @__PURE__ */ _(we, { className: "h-4 w-4" })
38
39
  },
39
40
  {
40
41
  value: "plan",
41
42
  label: "Plan",
42
- icon: /* @__PURE__ */ g(d, { className: "h-4 w-4" })
43
+ icon: /* @__PURE__ */ _(Se, { className: "h-4 w-4" })
43
44
  },
44
45
  {
45
46
  value: "meals",
46
47
  label: "Meals",
47
- icon: /* @__PURE__ */ g(Ce, { className: "h-4 w-4" })
48
+ icon: /* @__PURE__ */ _(Oe, { className: "h-4 w-4" })
48
49
  }
49
- ], Le = [{
50
+ ], qe = [{
50
51
  value: "ALL",
51
52
  label: "All"
52
- }, ...Pe.map((e) => ({
53
+ }, ...We.map((e) => ({
53
54
  value: e,
54
- label: r(e)
55
- }))], D = (e) => {
55
+ label: i(e)
56
+ }))], w = (e) => {
56
57
  let t = e.trim();
57
58
  if (!t) return;
58
59
  let n = Number(t);
59
60
  return Number.isFinite(n) ? n : void 0;
60
- }, O = (e) => e ? String(e) : "", Re = (e) => {
61
+ }, T = (e) => e ? String(e) : "", Je = (e) => {
61
62
  if (!e) return "";
62
63
  let t = new Date(e);
63
64
  return Number.isNaN(t.getTime()) ? "" : t.toISOString().slice(0, 10);
64
- }, ze = (e) => e ? new Date(e).toISOString() : void 0, k = {
65
+ }, Ye = (e) => e ? new Date(e).toISOString() : void 0, E = {
65
66
  name: "",
66
67
  mealType: "BREAKFAST",
67
68
  calories: "",
68
69
  proteinG: "",
69
70
  carbsG: "",
70
71
  fatG: "",
71
- servings: ""
72
- }, A = {
72
+ servings: "",
73
+ isFavorite: !1
74
+ }, Xe = {
73
75
  name: "",
74
76
  goalType: "GENERAL_FITNESS",
75
77
  calorieTarget: "",
@@ -80,59 +82,60 @@ var E = 25, Pe = [
80
82
  endDate: "",
81
83
  notes: ""
82
84
  };
83
- function j() {
84
- let [j, Be] = u("today"), M = le(), N = se(), P = fe({}), [F, Ve] = u("ALL"), I = me(E), L = fe({
85
- mealType: F === "ALL" ? void 0 : F,
85
+ function D() {
86
+ let [D, Ze] = p("today"), O = t(), k = le(), A = se(), j = fe({}), [M, Qe] = p("ALL"), N = me(C), P = fe({
87
+ mealType: M === "ALL" ? void 0 : M,
86
88
  pagination: {
87
- limit: E,
88
- offset: I.offset
89
+ limit: C,
90
+ offset: N.offset
89
91
  }
90
- }), R = de(), He = ue(), Ue = ce(), We = pe(), [Ge, Ke] = u(null), [qe, Je] = u(null), [Ye, z] = u(!1), [B, V] = u(k), [Xe, H] = u(null), [Ze, U] = u(!1), [W, Qe] = u("create"), [G, K] = u(A), [$e, q] = u(null), J = N.data ?? null, Y = ye(() => {
91
- let e = P.data?.items ?? [], t = (/* @__PURE__ */ new Date()).toDateString();
92
+ }), F = de(), $e = ue(), et = ce(), tt = pe(), I = oe(), [nt, L] = p(null), [rt, it] = p(null), [at, R] = p(null), [ot, z] = p(!1), [B, V] = p(E), [st, H] = p(null), [ct, U] = p(!1), [W, lt] = p("create"), [G, K] = p(Xe), [ut, q] = p(null), dt = A.data ?? null, J = at ?? dt, Y = ye(() => {
93
+ let e = j.data?.items ?? [], t = (/* @__PURE__ */ new Date()).toDateString();
92
94
  return e.filter((e) => {
93
95
  let n = new Date(e.loggedAt);
94
96
  return !Number.isNaN(n.getTime()) && n.toDateString() === t;
95
97
  }).sort((e, t) => new Date(t.loggedAt).getTime() - new Date(e.loggedAt).getTime());
96
- }, [P.data]), X = L.data?.items ?? [], et = (e) => {
97
- Ve(e), I.reset();
98
- }, Z = () => {
99
- V(k), H(null), z(!0);
100
- }, Q = () => {
101
- Qe("create"), K(A), q(null), U(!0);
102
- }, tt = () => {
103
- J && (Qe("edit"), K({
98
+ }, [j.data]), ft = P.data?.items ?? [], pt = (e) => {
99
+ Qe(e), N.reset();
100
+ }, X = () => {
101
+ V(E), H(null), z(!0);
102
+ }, mt = () => {
103
+ lt("create"), K(Xe), q(null), U(!0);
104
+ }, ht = () => {
105
+ J && (lt("edit"), K({
104
106
  name: J.name,
105
107
  goalType: J.goalType,
106
- calorieTarget: O(J.calorieTarget),
107
- proteinTarget: O(J.proteinTarget),
108
- carbsTarget: O(J.carbsTarget),
109
- fatTarget: O(J.fatTarget),
110
- startDate: Re(J.startDate),
111
- endDate: Re(J.endDate),
108
+ calorieTarget: T(J.calorieTarget),
109
+ proteinTarget: T(J.proteinTarget),
110
+ carbsTarget: T(J.carbsTarget),
111
+ fatTarget: T(J.fatTarget),
112
+ startDate: Je(J.startDate),
113
+ endDate: Je(J.endDate),
112
114
  notes: J.notes ?? ""
113
115
  }), q(null), U(!0));
114
- }, nt = async () => {
116
+ }, gt = async () => {
115
117
  if (!B.name.trim()) {
116
118
  H("Meal name is required.");
117
119
  return;
118
120
  }
119
121
  H(null);
120
122
  try {
121
- await R.mutateAsync({
123
+ await F.mutateAsync({
122
124
  name: B.name.trim(),
123
125
  mealType: B.mealType,
124
- calories: D(B.calories),
125
- proteinG: D(B.proteinG),
126
- carbsG: D(B.carbsG),
127
- fatG: D(B.fatG),
128
- servings: D(B.servings),
126
+ calories: w(B.calories),
127
+ proteinG: w(B.proteinG),
128
+ carbsG: w(B.carbsG),
129
+ fatG: w(B.fatG),
130
+ servings: w(B.servings),
131
+ isFavorite: B.isFavorite,
129
132
  planId: J?.id ?? void 0,
130
133
  loggedAt: (/* @__PURE__ */ new Date()).toISOString()
131
- }), z(!1), V(k);
134
+ }), z(!1), V(E);
132
135
  } catch (e) {
133
136
  H(e instanceof Error ? e.message : "Failed to log meal.");
134
137
  }
135
- }, rt = async () => {
138
+ }, _t = async () => {
136
139
  if (!G.name.trim()) {
137
140
  q("Plan name is required.");
138
141
  return;
@@ -140,473 +143,690 @@ function j() {
140
143
  q(null);
141
144
  let e = {
142
145
  goalType: G.goalType,
143
- calorieTarget: D(G.calorieTarget),
144
- proteinTarget: D(G.proteinTarget),
145
- carbsTarget: D(G.carbsTarget),
146
- fatTarget: D(G.fatTarget),
147
- startDate: ze(G.startDate),
148
- endDate: ze(G.endDate),
146
+ calorieTarget: w(G.calorieTarget),
147
+ proteinTarget: w(G.proteinTarget),
148
+ carbsTarget: w(G.carbsTarget),
149
+ fatTarget: w(G.fatTarget),
150
+ startDate: Ye(G.startDate),
151
+ endDate: Ye(G.endDate),
149
152
  notes: G.notes.trim() || void 0
150
153
  };
151
154
  try {
152
- W === "edit" && J ? await We.mutateAsync({
153
- id: J.id,
154
- input: {
155
- name: G.name.trim(),
156
- ...e
157
- }
158
- }) : await Ue.mutateAsync({
155
+ if (W === "edit" && J) {
156
+ let t = await tt.mutateAsync({
157
+ id: J.id,
158
+ input: {
159
+ name: G.name.trim(),
160
+ ...e
161
+ }
162
+ });
163
+ R((e) => e && e.id === t.id ? t : e);
164
+ } else R(await et.mutateAsync({
159
165
  name: G.name.trim(),
160
166
  ...e
161
- }), U(!1);
167
+ })), Ze("plan");
168
+ U(!1);
162
169
  } catch (e) {
163
170
  q(e instanceof Error ? e.message : "Failed to save plan.");
164
171
  }
165
- }, it = async (e) => {
172
+ }, vt = async (e) => {
173
+ L(null);
174
+ try {
175
+ await I.mutateAsync(e), R(null);
176
+ } catch (e) {
177
+ L(e instanceof Error ? e.message : "Failed to activate plan.");
178
+ }
179
+ }, yt = async (e) => {
166
180
  if (window.confirm("Delete this meal log? This cannot be undone.")) {
167
- Je(e), Ke(null);
181
+ it(e), L(null);
168
182
  try {
169
- await He.mutateAsync(e);
183
+ await $e.mutateAsync(e);
170
184
  } catch (e) {
171
- Ke(e instanceof Error ? e.message : "Failed to delete meal.");
185
+ L(e instanceof Error ? e.message : "Failed to delete meal.");
172
186
  } finally {
173
- Je(null);
187
+ it(null);
188
+ }
189
+ }
190
+ }, Z = W === "edit" ? tt.isPending : et.isPending, Q = {
191
+ hidden: {},
192
+ show: { transition: {
193
+ staggerChildren: O ? 0 : .06,
194
+ delayChildren: O ? 0 : .03
195
+ } }
196
+ }, $ = {
197
+ hidden: O ? { opacity: 0 } : {
198
+ opacity: 0,
199
+ y: 14
200
+ },
201
+ show: {
202
+ opacity: 1,
203
+ y: 0,
204
+ transition: {
205
+ duration: O ? .2 : .45,
206
+ ease: "easeOut"
174
207
  }
175
208
  }
176
- }, $ = W === "edit" ? We.isPending : Ue.isPending;
177
- return /* @__PURE__ */ _(e, {
209
+ }, bt = [
210
+ {
211
+ key: "favorite",
212
+ header: /* @__PURE__ */ _(g, {
213
+ className: "h-3.5 w-3.5 text-action-primary-bg",
214
+ "aria-hidden": "true"
215
+ }),
216
+ align: "center",
217
+ sortValue: (e) => +!!e.isFavorite,
218
+ render: (e) => /* @__PURE__ */ v("span", {
219
+ className: "inline-flex",
220
+ title: e.isFavorite ? "Favorite meal" : "Not a favorite",
221
+ children: [/* @__PURE__ */ _(g, { className: `h-4 w-4 transition-colors ${e.isFavorite ? "fill-current text-action-primary-bg" : "text-text-tertiary"}` }), /* @__PURE__ */ _("span", {
222
+ className: "sr-only",
223
+ children: e.isFavorite ? "Favorite" : "Not favorite"
224
+ })]
225
+ })
226
+ },
227
+ {
228
+ key: "name",
229
+ header: "Meal",
230
+ render: (e) => /* @__PURE__ */ _("span", {
231
+ className: "font-medium text-text-primary",
232
+ children: e.name
233
+ })
234
+ },
235
+ {
236
+ key: "mealType",
237
+ header: "Type",
238
+ render: (e) => /* @__PURE__ */ _(s, { status: e.mealType })
239
+ },
240
+ {
241
+ key: "calories",
242
+ header: "Calories",
243
+ align: "right",
244
+ sortValue: (e) => e.calories,
245
+ render: (e) => /* @__PURE__ */ _("span", {
246
+ className: "font-semibold tabular-nums text-text-primary",
247
+ children: ee(e.calories)
248
+ })
249
+ },
250
+ {
251
+ key: "proteinG",
252
+ header: "Protein",
253
+ align: "right",
254
+ hideOnMobile: !0,
255
+ sortValue: (e) => e.proteinG,
256
+ render: (e) => /* @__PURE__ */ _("span", {
257
+ className: "tabular-nums text-text-secondary",
258
+ children: a(e.proteinG)
259
+ })
260
+ },
261
+ {
262
+ key: "carbsG",
263
+ header: "Carbs",
264
+ align: "right",
265
+ hideOnMobile: !0,
266
+ sortValue: (e) => e.carbsG,
267
+ render: (e) => /* @__PURE__ */ _("span", {
268
+ className: "tabular-nums text-text-secondary",
269
+ children: a(e.carbsG)
270
+ })
271
+ },
272
+ {
273
+ key: "fatG",
274
+ header: "Fat",
275
+ align: "right",
276
+ hideOnMobile: !0,
277
+ sortValue: (e) => e.fatG,
278
+ render: (e) => /* @__PURE__ */ _("span", {
279
+ className: "tabular-nums text-text-secondary",
280
+ children: a(e.fatG)
281
+ })
282
+ },
283
+ {
284
+ key: "servings",
285
+ header: "Servings",
286
+ align: "right",
287
+ sortValue: (e) => e.servings,
288
+ render: (e) => /* @__PURE__ */ _("span", {
289
+ className: "tabular-nums",
290
+ children: o(e.servings)
291
+ })
292
+ },
293
+ {
294
+ key: "loggedAt",
295
+ header: "Logged",
296
+ hideOnMobile: !0,
297
+ sortValue: (e) => new Date(e.loggedAt).getTime(),
298
+ render: (e) => /* @__PURE__ */ _("span", {
299
+ className: "text-text-secondary",
300
+ children: te(e.loggedAt)
301
+ })
302
+ },
303
+ {
304
+ key: "actions",
305
+ header: "",
306
+ align: "right",
307
+ render: (e) => /* @__PURE__ */ _(y, {
308
+ variant: "ghost",
309
+ size: "icon-sm",
310
+ onClick: () => yt(e.id),
311
+ disabled: rt === e.id,
312
+ "aria-label": "Delete meal",
313
+ children: /* @__PURE__ */ _(De, { className: "h-4 w-4 text-status-error-text" })
314
+ })
315
+ }
316
+ ];
317
+ return /* @__PURE__ */ v(n, {
178
318
  title: "Nutrition",
179
319
  description: "Plans, meal logging and daily macro targets.",
180
- actions: j === "today" ? /* @__PURE__ */ _(v, {
181
- onClick: Z,
182
- children: [/* @__PURE__ */ g(m, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
183
- }) : j === "plan" ? /* @__PURE__ */ _("div", {
320
+ actions: D === "plan" ? /* @__PURE__ */ v("div", {
184
321
  className: "flex flex-wrap items-center gap-2",
185
- children: [J && /* @__PURE__ */ _(v, {
322
+ children: [J && /* @__PURE__ */ v(y, {
186
323
  variant: "outline",
187
- onClick: tt,
188
- children: [/* @__PURE__ */ g(p, { className: "mr-1.5 h-4 w-4" }), " Edit targets"]
189
- }), /* @__PURE__ */ _(v, {
190
- onClick: Q,
191
- children: [/* @__PURE__ */ g(m, { className: "mr-1.5 h-4 w-4" }), " Create plan"]
324
+ onClick: ht,
325
+ children: [/* @__PURE__ */ _(Te, { className: "mr-1.5 h-4 w-4" }), " Edit targets"]
326
+ }), /* @__PURE__ */ v(y, {
327
+ onClick: mt,
328
+ children: [/* @__PURE__ */ _(h, { className: "mr-1.5 h-4 w-4" }), " Create plan"]
192
329
  })]
193
- }) : void 0,
330
+ }) : /* @__PURE__ */ v(y, {
331
+ onClick: X,
332
+ children: [/* @__PURE__ */ _(h, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
333
+ }),
194
334
  children: [
195
- /* @__PURE__ */ g(_e, {
196
- items: Ie,
197
- value: j,
198
- onChange: Be,
335
+ /* @__PURE__ */ _(_e, {
336
+ items: Ke,
337
+ value: D,
338
+ onChange: Ze,
199
339
  className: "mb-6"
200
340
  }),
201
- Ge && /* @__PURE__ */ g("div", {
341
+ nt && /* @__PURE__ */ _("div", {
202
342
  className: "mb-4 rounded-lg border border-status-error-text/40 bg-status-error-bg-subtle px-4 py-2 text-sm text-status-error-text",
203
- children: Ge
343
+ children: nt
204
344
  }),
205
- j === "today" && (() => {
206
- if (M.isLoading) return /* @__PURE__ */ g(c, { label: "Loading today's nutrition…" });
207
- if (M.isError) return /* @__PURE__ */ g(s, {
345
+ D === "today" && (() => {
346
+ if (k.isLoading) return /* @__PURE__ */ _(l, { label: "Loading today's nutrition…" });
347
+ if (k.isError) return /* @__PURE__ */ _(c, {
208
348
  message: "We couldn't load your daily macros.",
209
- onRetry: () => M.refetch()
349
+ onRetry: () => k.refetch()
210
350
  });
211
- let e = M.data;
212
- if (!e) return /* @__PURE__ */ g(c, { label: "Loading today's nutrition…" });
213
- let t = e.calorieTarget > 0, n = e.calories > 0 || Y.length > 0;
214
- if (!t && !n) return /* @__PURE__ */ g(l, {
351
+ let t = k.data;
352
+ if (!t) return /* @__PURE__ */ _(l, { label: "Loading today's nutrition…" });
353
+ let n = t.calorieTarget > 0, r = t.calories > 0 || Y.length > 0;
354
+ if (!n && !r) return /* @__PURE__ */ _(u, {
215
355
  illustration: "empty-data",
216
- icon: /* @__PURE__ */ g(h, { className: "h-10 w-10" }),
356
+ icon: /* @__PURE__ */ _(Ee, { className: "h-10 w-10" }),
217
357
  title: "No nutrition tracked yet",
218
358
  description: "Activate a nutrition plan or log your first meal to start tracking daily macros.",
219
- action: /* @__PURE__ */ _(v, {
220
- onClick: Z,
221
- children: [/* @__PURE__ */ g(m, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
359
+ action: /* @__PURE__ */ v(y, {
360
+ onClick: X,
361
+ children: [/* @__PURE__ */ _(h, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
222
362
  })
223
363
  });
224
- let r = e.calorieTarget ? e.calories / e.calorieTarget * 100 : 0;
225
- return /* @__PURE__ */ _("div", {
364
+ let i = t.calorieTarget ? t.calories / t.calorieTarget * 100 : 0, te = Math.round(Math.max(0, Math.min(100, i))), d = [
365
+ {
366
+ label: "Protein",
367
+ value: t.proteinG,
368
+ target: t.proteinTarget,
369
+ color: f.protein
370
+ },
371
+ {
372
+ label: "Carbs",
373
+ value: t.carbsG,
374
+ target: t.carbsTarget,
375
+ color: f.carbs
376
+ },
377
+ {
378
+ label: "Fat",
379
+ value: t.fatG,
380
+ target: t.fatTarget,
381
+ color: f.fat
382
+ }
383
+ ];
384
+ return /* @__PURE__ */ v(e.div, {
385
+ initial: "hidden",
386
+ animate: "show",
387
+ variants: Q,
226
388
  className: "space-y-6",
227
- children: [/* @__PURE__ */ _(y, {
228
- treatment: "glass",
229
- className: "p-6",
230
- children: [/* @__PURE__ */ _("div", {
231
- className: "mb-4",
232
- children: [/* @__PURE__ */ g("h2", {
233
- className: "text-base font-semibold text-text-primary",
234
- children: "Today's macros"
235
- }), /* @__PURE__ */ g("p", {
236
- className: "mt-0.5 text-sm text-text-secondary",
237
- children: "Calories & macros logged against your active plan."
238
- })]
239
- }), /* @__PURE__ */ _("div", {
240
- className: "flex flex-col gap-6 sm:flex-row sm:items-center",
241
- children: [/* @__PURE__ */ _(oe, {
242
- value: r,
243
- size: 128,
244
- stroke: 12,
245
- children: [/* @__PURE__ */ g("span", {
246
- className: "text-xl font-bold tabular-nums text-text-primary",
247
- children: a(e.calories)
248
- }), /* @__PURE__ */ _("span", {
249
- className: "text-xs text-text-tertiary",
250
- children: [
251
- "/ ",
252
- a(e.calorieTarget),
253
- " kcal"
254
- ]
389
+ children: [
390
+ /* @__PURE__ */ _(e.div, {
391
+ variants: $,
392
+ children: /* @__PURE__ */ v(b, {
393
+ treatment: "glass",
394
+ glow: !0,
395
+ className: "p-6 sm:p-7",
396
+ children: [/* @__PURE__ */ v("div", {
397
+ className: "mb-5",
398
+ children: [/* @__PURE__ */ _("h2", {
399
+ className: "text-base font-semibold text-text-primary",
400
+ children: "Today's macros"
401
+ }), /* @__PURE__ */ _("p", {
402
+ className: "mt-0.5 text-sm text-text-secondary",
403
+ children: "Calories & macros logged against your active plan."
404
+ })]
405
+ }), /* @__PURE__ */ v("div", {
406
+ className: "flex flex-col items-center gap-6 sm:flex-row sm:items-center sm:gap-8",
407
+ children: [/* @__PURE__ */ v("div", {
408
+ className: "relative flex shrink-0 items-center justify-center",
409
+ children: [/* @__PURE__ */ _("div", {
410
+ "aria-hidden": "true",
411
+ className: "pointer-events-none absolute inset-3 rounded-full blur-2xl",
412
+ style: { background: "radial-gradient(circle, color-mix(in srgb, var(--color-action-primary-bg) 30%, transparent), transparent 68%)" }
413
+ }), /* @__PURE__ */ v(ae, {
414
+ value: i,
415
+ size: 168,
416
+ stroke: 14,
417
+ className: "relative",
418
+ children: [/* @__PURE__ */ _("span", {
419
+ className: "text-3xl font-bold tabular-nums text-text-primary",
420
+ children: o(t.calories)
421
+ }), /* @__PURE__ */ v("span", {
422
+ className: "mt-0.5 text-xs text-text-tertiary",
423
+ children: [
424
+ "/ ",
425
+ o(t.calorieTarget),
426
+ " kcal"
427
+ ]
428
+ })]
429
+ })]
430
+ }), /* @__PURE__ */ v("div", {
431
+ className: "flex w-full flex-1 flex-col gap-4",
432
+ children: [/* @__PURE__ */ _(re, {
433
+ proteinG: t.proteinG,
434
+ carbsG: t.carbsG,
435
+ fatG: t.fatG,
436
+ height: 12
437
+ }), /* @__PURE__ */ v("div", {
438
+ className: "flex flex-col gap-4 sm:flex-row sm:items-stretch",
439
+ children: [/* @__PURE__ */ _("div", {
440
+ className: "flex-1 space-y-2.5",
441
+ children: d.map((e) => /* @__PURE__ */ v("div", {
442
+ className: "flex items-center justify-between gap-3",
443
+ children: [/* @__PURE__ */ v("span", {
444
+ className: "inline-flex items-center gap-2 text-sm text-text-secondary",
445
+ children: [/* @__PURE__ */ _("span", {
446
+ className: "h-2.5 w-2.5 rounded-full",
447
+ style: { backgroundColor: e.color }
448
+ }), e.label]
449
+ }), /* @__PURE__ */ _("span", {
450
+ className: "text-sm font-semibold tabular-nums text-text-primary",
451
+ children: a(e.value)
452
+ })]
453
+ }, e.label))
454
+ }), /* @__PURE__ */ v("div", {
455
+ className: "flex flex-col justify-center rounded-2xl px-4 py-3 sm:min-w-[9rem]",
456
+ style: { backgroundColor: "color-mix(in srgb, var(--color-action-primary-bg) 12%, transparent)" },
457
+ children: [
458
+ /* @__PURE__ */ _("span", {
459
+ className: "text-xs font-medium text-text-tertiary",
460
+ children: "Calorie ring"
461
+ }),
462
+ /* @__PURE__ */ v("span", {
463
+ className: "text-2xl font-bold tabular-nums text-action-primary-bg",
464
+ children: [te, "%"]
465
+ }),
466
+ /* @__PURE__ */ _("span", {
467
+ className: "text-xs text-text-secondary",
468
+ children: "of daily target"
469
+ })
470
+ ]
471
+ })]
472
+ })]
473
+ })]
255
474
  })]
256
- }), /* @__PURE__ */ _("div", {
257
- className: "flex-1 space-y-4",
258
- children: [/* @__PURE__ */ _("div", {
259
- className: "space-y-2",
260
- children: [/* @__PURE__ */ g(re, {
261
- proteinG: e.proteinG,
262
- carbsG: e.carbsG,
263
- fatG: e.fatG,
264
- height: 10
265
- }), /* @__PURE__ */ g(ie, {})]
266
- }), /* @__PURE__ */ g("div", {
267
- className: "grid grid-cols-3 gap-3",
268
- children: [
269
- [
270
- "Protein",
271
- e.proteinG,
272
- e.proteinTarget
273
- ],
274
- [
275
- "Carbs",
276
- e.carbsG,
277
- e.carbsTarget
278
- ],
279
- [
280
- "Fat",
281
- e.fatG,
282
- e.fatTarget
283
- ]
284
- ].map(([e, t, n]) => /* @__PURE__ */ _("div", {
285
- className: "rounded-xl bg-bg-sunken/60 p-3",
475
+ })
476
+ }),
477
+ /* @__PURE__ */ _(e.div, {
478
+ variants: Q,
479
+ className: "grid grid-cols-1 gap-3 sm:grid-cols-3 sm:gap-4",
480
+ children: d.map((t) => /* @__PURE__ */ _(e.div, {
481
+ variants: $,
482
+ children: /* @__PURE__ */ v(b, {
483
+ treatment: "metric",
484
+ className: "p-4",
485
+ children: [/* @__PURE__ */ v("div", {
486
+ className: "flex flex-wrap items-center justify-between gap-2",
487
+ children: [/* @__PURE__ */ v("span", {
488
+ className: "inline-flex items-center gap-2 text-sm font-medium text-text-primary",
489
+ children: [/* @__PURE__ */ _("span", {
490
+ className: "h-2.5 w-2.5 rounded-full",
491
+ style: { backgroundColor: t.color }
492
+ }), t.label]
493
+ }), /* @__PURE__ */ v("span", {
494
+ className: "text-sm tabular-nums text-text-secondary",
495
+ children: [
496
+ /* @__PURE__ */ _("span", {
497
+ className: "font-semibold text-text-primary",
498
+ children: o(t.value)
499
+ }),
500
+ " ",
501
+ "/ ",
502
+ o(t.target),
503
+ " g"
504
+ ]
505
+ })]
506
+ }), /* @__PURE__ */ _(ie, {
507
+ value: t.target ? t.value / t.target * 100 : 0,
508
+ color: t.color,
509
+ height: 8,
510
+ className: "mt-3"
511
+ })]
512
+ })
513
+ }, t.label))
514
+ }),
515
+ /* @__PURE__ */ _(e.div, {
516
+ variants: $,
517
+ children: /* @__PURE__ */ _(ne, {
518
+ title: "Today's meals",
519
+ description: "Everything you've logged today.",
520
+ children: j.isLoading ? /* @__PURE__ */ _(l, { label: "Loading meals…" }) : j.isError ? /* @__PURE__ */ _(c, {
521
+ message: "We couldn't load today's meals.",
522
+ onRetry: () => j.refetch()
523
+ }) : Y.length === 0 ? /* @__PURE__ */ _(u, {
524
+ illustration: "empty-data",
525
+ icon: /* @__PURE__ */ _(Ee, { className: "h-10 w-10" }),
526
+ title: "No meals logged today",
527
+ description: "Use “Log meal” to record what you've eaten and keep your macros current.",
528
+ action: /* @__PURE__ */ v(y, {
529
+ onClick: X,
530
+ children: [/* @__PURE__ */ _(h, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
531
+ })
532
+ }) : /* @__PURE__ */ _(b, {
533
+ treatment: "plain",
534
+ className: "divide-y divide-border-seam/60 px-2 sm:px-3",
535
+ children: Y.map((e) => /* @__PURE__ */ v("div", {
536
+ className: "flex items-center gap-3 rounded-xl px-2 py-3 transition-colors hover:bg-bg-sunken/40",
286
537
  children: [
287
- /* @__PURE__ */ g("p", {
288
- className: "text-xs text-text-tertiary",
289
- children: e
290
- }),
291
- /* @__PURE__ */ _("p", {
292
- className: "mt-0.5 text-sm font-semibold tabular-nums text-text-primary",
293
- children: [a(t), /* @__PURE__ */ _("span", {
294
- className: "text-xs font-normal text-text-tertiary",
538
+ /* @__PURE__ */ _(s, { status: e.mealType }),
539
+ /* @__PURE__ */ v("div", {
540
+ className: "min-w-0 flex-1",
541
+ children: [/* @__PURE__ */ v("div", {
542
+ className: "flex items-center gap-1.5",
543
+ children: [/* @__PURE__ */ _("p", {
544
+ className: "truncate text-sm font-medium text-text-primary",
545
+ children: e.name
546
+ }), e.isFavorite && /* @__PURE__ */ _(g, {
547
+ className: "h-3.5 w-3.5 shrink-0 fill-current text-action-primary-bg",
548
+ "aria-label": "Favorite meal"
549
+ })]
550
+ }), /* @__PURE__ */ v("p", {
551
+ className: "text-xs text-text-tertiary",
295
552
  children: [
553
+ a(e.proteinG),
554
+ " P · ",
555
+ a(e.carbsG),
556
+ " C ·",
296
557
  " ",
297
- "/ ",
298
- a(n),
299
- " g"
558
+ a(e.fatG),
559
+ " F · ",
560
+ o(e.servings),
561
+ " serving",
562
+ e.servings === 1 ? "" : "s"
300
563
  ]
301
564
  })]
302
565
  }),
303
- /* @__PURE__ */ g(ae, {
304
- value: n ? t / n * 100 : 0,
305
- height: 4,
306
- className: "mt-2"
566
+ /* @__PURE__ */ _("span", {
567
+ className: "shrink-0 text-sm font-semibold tabular-nums text-text-primary",
568
+ children: ee(e.calories)
569
+ }),
570
+ /* @__PURE__ */ _(y, {
571
+ variant: "ghost",
572
+ size: "icon-sm",
573
+ onClick: () => yt(e.id),
574
+ disabled: rt === e.id,
575
+ "aria-label": "Delete meal",
576
+ className: "shrink-0",
577
+ children: /* @__PURE__ */ _(De, { className: "h-4 w-4 text-status-error-text" })
307
578
  })
308
579
  ]
309
- }, e))
310
- })]
311
- })]
312
- })]
313
- }), /* @__PURE__ */ g(ne, {
314
- title: "Today's meals",
315
- description: "Everything you've logged today.",
316
- children: P.isLoading ? /* @__PURE__ */ g(c, { label: "Loading meals…" }) : P.isError ? /* @__PURE__ */ g(s, {
317
- message: "We couldn't load today's meals.",
318
- onRetry: () => P.refetch()
319
- }) : Y.length === 0 ? /* @__PURE__ */ g(l, {
320
- illustration: "empty-data",
321
- icon: /* @__PURE__ */ g(h, { className: "h-10 w-10" }),
322
- title: "No meals logged today",
323
- description: "Use “Log meal” to record what you've eaten and keep your macros current.",
324
- action: /* @__PURE__ */ _(v, {
325
- onClick: Z,
326
- children: [/* @__PURE__ */ g(m, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
580
+ }, e.id))
581
+ })
327
582
  })
328
- }) : /* @__PURE__ */ g(y, {
329
- treatment: "plain",
330
- className: "divide-y divide-border-seam/60 px-4",
331
- children: Y.map((e) => /* @__PURE__ */ _("div", {
332
- className: "flex items-center gap-3 py-3",
333
- children: [
334
- /* @__PURE__ */ g(o, { status: e.mealType }),
335
- /* @__PURE__ */ _("div", {
336
- className: "min-w-0 flex-1",
337
- children: [/* @__PURE__ */ g("p", {
338
- className: "truncate text-sm font-medium text-text-primary",
339
- children: e.name
340
- }), /* @__PURE__ */ _("p", {
341
- className: "text-xs text-text-tertiary",
342
- children: [
343
- i(e.proteinG),
344
- " P · ",
345
- i(e.carbsG),
346
- " C ·",
347
- " ",
348
- i(e.fatG),
349
- " F · ",
350
- a(e.servings),
351
- " serving",
352
- e.servings === 1 ? "" : "s"
353
- ]
354
- })]
355
- }),
356
- /* @__PURE__ */ g("span", {
357
- className: "shrink-0 text-sm font-semibold tabular-nums text-text-primary",
358
- children: ee(e.calories)
359
- }),
360
- /* @__PURE__ */ g(v, {
361
- variant: "ghost",
362
- size: "icon-sm",
363
- onClick: () => it(e.id),
364
- disabled: qe === e.id,
365
- "aria-label": "Delete meal",
366
- className: "shrink-0",
367
- children: /* @__PURE__ */ g(Se, { className: "h-4 w-4 text-status-error-text" })
368
- })
369
- ]
370
- }, e.id))
371
583
  })
372
- })]
584
+ ]
373
585
  });
374
586
  })(),
375
- j === "plan" && (() => {
376
- if (N.isLoading) return /* @__PURE__ */ g(c, { label: "Loading your nutrition plan…" });
377
- if (N.isError) return /* @__PURE__ */ g(s, {
587
+ D === "plan" && (() => {
588
+ if (A.isLoading) return /* @__PURE__ */ _(l, { label: "Loading your nutrition plan…" });
589
+ if (A.isError) return /* @__PURE__ */ _(c, {
378
590
  message: "We couldn't load your active nutrition plan.",
379
- onRetry: () => N.refetch()
591
+ onRetry: () => A.refetch()
380
592
  });
381
- if (!J) return /* @__PURE__ */ g(l, {
593
+ if (!J) return /* @__PURE__ */ _(u, {
382
594
  illustration: "empty-data",
383
- icon: /* @__PURE__ */ g(d, { className: "h-10 w-10" }),
595
+ icon: /* @__PURE__ */ _(Se, { className: "h-10 w-10" }),
384
596
  title: "No active nutrition plan",
385
597
  description: "Create a nutrition plan to set your daily calorie and macro targets.",
386
- action: /* @__PURE__ */ _(v, {
387
- onClick: Q,
388
- children: [/* @__PURE__ */ g(m, { className: "mr-1.5 h-4 w-4" }), " Create plan"]
598
+ action: /* @__PURE__ */ v(y, {
599
+ onClick: mt,
600
+ children: [/* @__PURE__ */ _(h, { className: "mr-1.5 h-4 w-4" }), " Create plan"]
389
601
  })
390
602
  });
391
- let e = [
603
+ let t = [
392
604
  {
393
- icon: /* @__PURE__ */ g(f, { className: "h-5 w-5" }),
605
+ icon: /* @__PURE__ */ _(we, { className: "h-5 w-5" }),
394
606
  label: "Calorie target",
395
- value: J.calorieTarget ? `${a(J.calorieTarget)} kcal` : "—"
607
+ value: J.calorieTarget ? `${o(J.calorieTarget)} kcal` : "—",
608
+ tint: "var(--color-action-primary-bg)"
396
609
  },
397
610
  {
398
- icon: /* @__PURE__ */ g(be, { className: "h-5 w-5" }),
611
+ icon: /* @__PURE__ */ _(be, { className: "h-5 w-5" }),
399
612
  label: "Protein target",
400
- value: J.proteinTarget ? i(J.proteinTarget) : "—"
613
+ value: J.proteinTarget ? a(J.proteinTarget) : "—",
614
+ tint: f.protein
401
615
  },
402
616
  {
403
- icon: /* @__PURE__ */ g(we, { className: "h-5 w-5" }),
617
+ icon: /* @__PURE__ */ _(ke, { className: "h-5 w-5" }),
404
618
  label: "Carbs target",
405
- value: J.carbsTarget ? i(J.carbsTarget) : "—"
619
+ value: J.carbsTarget ? a(J.carbsTarget) : "—",
620
+ tint: f.carbs
406
621
  },
407
622
  {
408
- icon: /* @__PURE__ */ g(xe, { className: "h-5 w-5" }),
623
+ icon: /* @__PURE__ */ _(Ce, { className: "h-5 w-5" }),
409
624
  label: "Fat target",
410
- value: J.fatTarget ? i(J.fatTarget) : "—"
625
+ value: J.fatTarget ? a(J.fatTarget) : "—",
626
+ tint: f.fat
411
627
  }
412
628
  ];
413
- return /* @__PURE__ */ _("div", {
629
+ return /* @__PURE__ */ v(e.div, {
630
+ initial: "hidden",
631
+ animate: "show",
632
+ variants: Q,
414
633
  className: "space-y-6",
415
634
  children: [
416
- /* @__PURE__ */ g(y, {
417
- treatment: "glass",
418
- className: "p-6",
419
- children: /* @__PURE__ */ _("div", {
420
- className: "flex flex-wrap items-start justify-between gap-3",
421
- children: [/* @__PURE__ */ _("div", {
635
+ !J.isActive && /* @__PURE__ */ v(e.div, {
636
+ variants: $,
637
+ className: "flex flex-wrap items-center justify-between gap-3 rounded-2xl border p-4",
638
+ style: {
639
+ borderColor: "color-mix(in srgb, var(--color-action-primary-bg) 32%, transparent)",
640
+ backgroundColor: "color-mix(in srgb, var(--color-action-primary-bg) 8%, transparent)"
641
+ },
642
+ children: [/* @__PURE__ */ v("div", {
643
+ className: "flex min-w-0 items-center gap-3",
644
+ children: [/* @__PURE__ */ _(d, { icon: /* @__PURE__ */ _(m, { className: "h-5 w-5" }) }), /* @__PURE__ */ v("div", {
422
645
  className: "min-w-0",
423
- children: [/* @__PURE__ */ g("h2", {
424
- className: "text-lg font-semibold text-text-primary",
425
- children: J.name
426
- }), /* @__PURE__ */ _("div", {
427
- className: "mt-2 flex flex-wrap items-center gap-2",
428
- children: [/* @__PURE__ */ g(o, { status: J.goalType }), (J.startDate || J.endDate) && /* @__PURE__ */ _("span", {
429
- className: "text-sm text-text-secondary",
646
+ children: [/* @__PURE__ */ _("p", {
647
+ className: "text-sm font-medium text-text-primary",
648
+ children: "This plan isn't active yet"
649
+ }), /* @__PURE__ */ _("p", {
650
+ className: "text-xs text-text-secondary",
651
+ children: "Activate it to track today's macros against these targets."
652
+ })]
653
+ })]
654
+ }), /* @__PURE__ */ v(y, {
655
+ onClick: () => vt(J.id),
656
+ disabled: I.isPending,
657
+ children: [/* @__PURE__ */ _(m, { className: "mr-1.5 h-4 w-4" }), I.isPending ? "Activating…" : "Activate this plan"]
658
+ })]
659
+ }),
660
+ /* @__PURE__ */ _(e.div, {
661
+ variants: $,
662
+ children: /* @__PURE__ */ v(b, {
663
+ treatment: "glass",
664
+ glow: !0,
665
+ className: "relative overflow-hidden p-6 sm:p-7",
666
+ children: [
667
+ /* @__PURE__ */ _("div", {
668
+ "aria-hidden": "true",
669
+ className: "pointer-events-none absolute inset-0",
670
+ style: { background: "radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--color-action-primary-bg) 13%, transparent), transparent 55%)" }
671
+ }),
672
+ /* @__PURE__ */ v("div", {
673
+ className: "relative flex flex-wrap items-start justify-between gap-4",
674
+ children: [/* @__PURE__ */ v("div", {
675
+ className: "min-w-0",
430
676
  children: [
431
- n(J.startDate),
432
- " – ",
433
- n(J.endDate)
677
+ /* @__PURE__ */ _("p", {
678
+ className: "text-xs font-semibold uppercase tracking-wide text-action-primary-bg",
679
+ children: J.isActive ? "Active plan" : "Nutrition plan"
680
+ }),
681
+ /* @__PURE__ */ v("div", {
682
+ className: "mt-1.5 flex flex-wrap items-baseline gap-x-2 gap-y-1",
683
+ children: [
684
+ /* @__PURE__ */ _("h2", {
685
+ className: "text-2xl font-bold text-text-primary",
686
+ children: J.name
687
+ }),
688
+ J.calorieTarget > 0 && /* @__PURE__ */ v("span", {
689
+ className: "text-lg font-semibold tabular-nums text-text-tertiary",
690
+ children: [o(J.calorieTarget), " kcal"]
691
+ }),
692
+ J.isActive ? /* @__PURE__ */ v("span", {
693
+ className: "inline-flex items-center gap-1 rounded-full bg-status-success-bg-subtle px-2.5 py-0.5 text-xs font-medium text-status-success-text",
694
+ children: [/* @__PURE__ */ _(m, { className: "h-3.5 w-3.5" }), " Active"]
695
+ }) : /* @__PURE__ */ _("span", {
696
+ className: "inline-flex items-center gap-1 rounded-full bg-bg-sunken px-2.5 py-0.5 text-xs font-medium text-text-secondary",
697
+ children: "Inactive"
698
+ })
699
+ ]
700
+ }),
701
+ (J.startDate || J.endDate) && /* @__PURE__ */ v("p", {
702
+ className: "mt-2 inline-flex items-center gap-1.5 text-sm text-text-secondary",
703
+ children: [
704
+ /* @__PURE__ */ _(xe, { className: "h-4 w-4 text-text-tertiary" }),
705
+ r(J.startDate),
706
+ " – ",
707
+ r(J.endDate)
708
+ ]
709
+ })
434
710
  ]
711
+ }), /* @__PURE__ */ v("div", {
712
+ className: "flex shrink-0 items-center gap-2",
713
+ children: [/* @__PURE__ */ _("span", {
714
+ className: "text-sm text-text-tertiary",
715
+ children: "Goal"
716
+ }), /* @__PURE__ */ _(s, { status: J.goalType })]
435
717
  })]
436
- })]
437
- }), /* @__PURE__ */ _(v, {
438
- variant: "outline",
439
- onClick: tt,
440
- children: [/* @__PURE__ */ g(p, { className: "mr-1.5 h-4 w-4" }), " Edit targets"]
441
- })]
718
+ }),
719
+ /* @__PURE__ */ _(e.div, {
720
+ variants: Q,
721
+ className: "relative mt-6 grid grid-cols-2 gap-3 sm:gap-4 lg:grid-cols-4",
722
+ children: t.map((t) => /* @__PURE__ */ v(e.div, {
723
+ variants: $,
724
+ className: "rounded-2xl border border-border-seam bg-bg-sunken/40 p-4 transition-shadow duration-200 hover:shadow-elevation-2",
725
+ children: [
726
+ /* @__PURE__ */ _(d, {
727
+ icon: t.icon,
728
+ tint: t.tint
729
+ }),
730
+ /* @__PURE__ */ _("p", {
731
+ className: "mt-3 text-xs text-text-tertiary",
732
+ children: t.label
733
+ }),
734
+ /* @__PURE__ */ _("p", {
735
+ className: "mt-1 text-xl font-bold tabular-nums text-text-primary",
736
+ children: t.value
737
+ })
738
+ ]
739
+ }, t.label))
740
+ })
741
+ ]
442
742
  })
443
743
  }),
444
- /* @__PURE__ */ g("div", {
445
- className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",
446
- children: e.map((e) => /* @__PURE__ */ g(t, {
447
- icon: e.icon,
448
- value: e.value,
449
- label: e.label
450
- }, e.label))
451
- }),
452
- J.notes && /* @__PURE__ */ g(ne, {
453
- title: "Notes",
454
- children: /* @__PURE__ */ g(y, {
455
- treatment: "plain",
456
- className: "p-4",
457
- children: /* @__PURE__ */ g("p", {
458
- className: "whitespace-pre-wrap text-sm text-text-secondary",
459
- children: J.notes
744
+ J.notes && /* @__PURE__ */ _(e.div, {
745
+ variants: $,
746
+ children: /* @__PURE__ */ _(ne, {
747
+ title: "Notes",
748
+ children: /* @__PURE__ */ _(b, {
749
+ treatment: "plain",
750
+ className: "p-4",
751
+ children: /* @__PURE__ */ _("p", {
752
+ className: "whitespace-pre-wrap text-sm text-text-secondary",
753
+ children: J.notes
754
+ })
460
755
  })
461
756
  })
462
757
  })
463
758
  ]
464
759
  });
465
760
  })(),
466
- j === "meals" && (L.isLoading ? /* @__PURE__ */ g(c, { label: "Loading meal log…" }) : L.isError ? /* @__PURE__ */ g(s, {
761
+ D === "meals" && (P.isLoading ? /* @__PURE__ */ _(l, { label: "Loading meal log…" }) : P.isError ? /* @__PURE__ */ _(c, {
467
762
  message: "We couldn't load your meal log.",
468
- onRetry: () => L.refetch()
469
- }) : /* @__PURE__ */ _("div", {
763
+ onRetry: () => P.refetch()
764
+ }) : /* @__PURE__ */ v(e.div, {
765
+ initial: "hidden",
766
+ animate: "show",
767
+ variants: Q,
470
768
  className: "space-y-4",
471
- children: [/* @__PURE__ */ g(ge, {
472
- options: Le,
473
- value: F,
474
- onChange: et
475
- }), X.length === 0 ? /* @__PURE__ */ g(l, {
476
- illustration: "empty-data",
477
- icon: /* @__PURE__ */ g(Ce, { className: "h-10 w-10" }),
478
- title: F === "ALL" ? "No meals logged yet" : "No meals for this filter",
479
- description: F === "ALL" ? "Log meals from the Today tab to build up your nutrition history." : "Try a different meal type, or log a meal to get started.",
480
- action: /* @__PURE__ */ _(v, {
481
- onClick: Z,
482
- children: [/* @__PURE__ */ g(m, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
769
+ children: [/* @__PURE__ */ _(e.div, {
770
+ variants: $,
771
+ children: /* @__PURE__ */ _(ge, {
772
+ options: qe,
773
+ value: M,
774
+ onChange: pt
483
775
  })
484
- }) : /* @__PURE__ */ _(Te, { children: [/* @__PURE__ */ g(he, {
485
- columns: [
486
- {
487
- key: "name",
488
- header: "Meal",
489
- render: (e) => /* @__PURE__ */ g("span", {
490
- className: "font-medium text-text-primary",
491
- children: e.name
492
- })
493
- },
494
- {
495
- key: "mealType",
496
- header: "Type",
497
- render: (e) => /* @__PURE__ */ g(o, { status: e.mealType })
498
- },
499
- {
500
- key: "calories",
501
- header: "Calories",
502
- align: "right",
503
- sortValue: (e) => e.calories,
504
- render: (e) => /* @__PURE__ */ g("span", {
505
- className: "tabular-nums",
506
- children: ee(e.calories)
507
- })
508
- },
509
- {
510
- key: "proteinG",
511
- header: "Protein",
512
- align: "right",
513
- hideOnMobile: !0,
514
- sortValue: (e) => e.proteinG,
515
- render: (e) => /* @__PURE__ */ g("span", {
516
- className: "tabular-nums text-text-secondary",
517
- children: i(e.proteinG)
518
- })
519
- },
520
- {
521
- key: "carbsG",
522
- header: "Carbs",
523
- align: "right",
524
- hideOnMobile: !0,
525
- sortValue: (e) => e.carbsG,
526
- render: (e) => /* @__PURE__ */ g("span", {
527
- className: "tabular-nums text-text-secondary",
528
- children: i(e.carbsG)
529
- })
530
- },
531
- {
532
- key: "fatG",
533
- header: "Fat",
534
- align: "right",
535
- hideOnMobile: !0,
536
- sortValue: (e) => e.fatG,
537
- render: (e) => /* @__PURE__ */ g("span", {
538
- className: "tabular-nums text-text-secondary",
539
- children: i(e.fatG)
540
- })
541
- },
542
- {
543
- key: "servings",
544
- header: "Servings",
545
- align: "right",
546
- sortValue: (e) => e.servings,
547
- render: (e) => /* @__PURE__ */ g("span", {
548
- className: "tabular-nums",
549
- children: a(e.servings)
550
- })
551
- },
552
- {
776
+ }), ft.length === 0 ? /* @__PURE__ */ _(e.div, {
777
+ variants: $,
778
+ children: /* @__PURE__ */ _(u, {
779
+ illustration: "empty-data",
780
+ icon: /* @__PURE__ */ _(Oe, { className: "h-10 w-10" }),
781
+ title: M === "ALL" ? "No meals logged yet" : "No meals for this filter",
782
+ description: M === "ALL" ? "Log meals from the Today tab to build up your nutrition history." : "Try a different meal type, or log a meal to get started.",
783
+ action: /* @__PURE__ */ v(y, {
784
+ onClick: X,
785
+ children: [/* @__PURE__ */ _(h, { className: "mr-1.5 h-4 w-4" }), " Log meal"]
786
+ })
787
+ })
788
+ }) : /* @__PURE__ */ v(Ae, { children: [/* @__PURE__ */ _(e.div, {
789
+ variants: $,
790
+ children: /* @__PURE__ */ _(he, {
791
+ columns: bt,
792
+ rows: ft,
793
+ rowKey: (e) => e.id,
794
+ defaultSort: {
553
795
  key: "loggedAt",
554
- header: "Logged",
555
- hideOnMobile: !0,
556
- sortValue: (e) => new Date(e.loggedAt).getTime(),
557
- render: (e) => /* @__PURE__ */ g("span", {
558
- className: "text-text-secondary",
559
- children: te(e.loggedAt)
560
- })
561
- },
562
- {
563
- key: "actions",
564
- header: "",
565
- align: "right",
566
- render: (e) => /* @__PURE__ */ g(v, {
567
- variant: "ghost",
568
- size: "icon-sm",
569
- onClick: () => it(e.id),
570
- disabled: qe === e.id,
571
- "aria-label": "Delete meal",
572
- children: /* @__PURE__ */ g(Se, { className: "h-4 w-4 text-status-error-text" })
573
- })
796
+ dir: "desc"
574
797
  }
575
- ],
576
- rows: X,
577
- rowKey: (e) => e.id,
578
- defaultSort: {
579
- key: "loggedAt",
580
- dir: "desc"
581
- }
582
- }), /* @__PURE__ */ g(ve, {
583
- page: I.page,
584
- pageSize: E,
585
- itemCount: X.length,
586
- hasMore: L.data?.pageInfo?.hasMore ?? !1,
587
- onPageChange: (e) => I.onPageChange(e)
798
+ })
799
+ }), /* @__PURE__ */ _(e.div, {
800
+ variants: $,
801
+ children: /* @__PURE__ */ _(ve, {
802
+ page: N.page,
803
+ pageSize: C,
804
+ itemCount: ft.length,
805
+ hasMore: P.data?.pageInfo?.hasMore ?? !1,
806
+ onPageChange: (e) => N.onPageChange(e)
807
+ })
588
808
  })] })]
589
809
  })),
590
- /* @__PURE__ */ g(S, {
591
- open: Ye,
810
+ /* @__PURE__ */ _(je, {
811
+ open: ot,
592
812
  onOpenChange: z,
593
- children: /* @__PURE__ */ _(C, {
813
+ children: /* @__PURE__ */ v(Me, {
594
814
  className: "sm:max-w-lg",
595
815
  children: [
596
- /* @__PURE__ */ _(Ee, { children: [/* @__PURE__ */ g(De, { children: "Log a meal" }), /* @__PURE__ */ g(w, { children: "Record what you ate to update today's macros." })] }),
597
- /* @__PURE__ */ _("div", {
816
+ /* @__PURE__ */ v(Fe, { children: [/* @__PURE__ */ _(Ie, { children: "Log a meal" }), /* @__PURE__ */ _(Ne, { children: "Record what you ate to update today's macros." })] }),
817
+ /* @__PURE__ */ v("div", {
598
818
  className: "space-y-4 py-2",
599
819
  children: [
600
- Xe && /* @__PURE__ */ g("div", {
820
+ st && /* @__PURE__ */ _("div", {
601
821
  className: "rounded-lg border border-status-error-text/40 bg-status-error-bg-subtle px-3 py-2 text-sm text-status-error-text",
602
- children: Xe
822
+ children: st
603
823
  }),
604
- /* @__PURE__ */ _("div", {
824
+ /* @__PURE__ */ v("div", {
605
825
  className: "space-y-1.5",
606
- children: [/* @__PURE__ */ g(x, {
826
+ children: [/* @__PURE__ */ _(S, {
607
827
  htmlFor: "meal-name",
608
828
  children: "Name"
609
- }), /* @__PURE__ */ g(b, {
829
+ }), /* @__PURE__ */ _(x, {
610
830
  id: "meal-name",
611
831
  value: B.name,
612
832
  onChange: (e) => V({
@@ -616,33 +836,33 @@ function j() {
616
836
  placeholder: "Grilled chicken salad"
617
837
  })]
618
838
  }),
619
- /* @__PURE__ */ _("div", {
839
+ /* @__PURE__ */ v("div", {
620
840
  className: "grid grid-cols-2 gap-3",
621
- children: [/* @__PURE__ */ _("div", {
841
+ children: [/* @__PURE__ */ v("div", {
622
842
  className: "space-y-1.5",
623
- children: [/* @__PURE__ */ g(x, {
843
+ children: [/* @__PURE__ */ _(S, {
624
844
  htmlFor: "meal-type",
625
845
  children: "Meal type"
626
- }), /* @__PURE__ */ _(Oe, {
846
+ }), /* @__PURE__ */ v(Le, {
627
847
  value: B.mealType,
628
848
  onValueChange: (e) => V({
629
849
  ...B,
630
850
  mealType: e
631
851
  }),
632
- children: [/* @__PURE__ */ g(je, {
852
+ children: [/* @__PURE__ */ _(Be, {
633
853
  id: "meal-type",
634
- children: /* @__PURE__ */ g(Me, {})
635
- }), /* @__PURE__ */ g(ke, { children: Pe.map((e) => /* @__PURE__ */ g(Ae, {
854
+ children: /* @__PURE__ */ _(Ve, {})
855
+ }), /* @__PURE__ */ _(Re, { children: We.map((e) => /* @__PURE__ */ _(ze, {
636
856
  value: e,
637
- children: r(e)
857
+ children: i(e)
638
858
  }, e)) })]
639
859
  })]
640
- }), /* @__PURE__ */ _("div", {
860
+ }), /* @__PURE__ */ v("div", {
641
861
  className: "space-y-1.5",
642
- children: [/* @__PURE__ */ g(x, {
862
+ children: [/* @__PURE__ */ _(S, {
643
863
  htmlFor: "meal-servings",
644
864
  children: "Servings"
645
- }), /* @__PURE__ */ g(b, {
865
+ }), /* @__PURE__ */ _(x, {
646
866
  id: "meal-servings",
647
867
  type: "number",
648
868
  min: 0,
@@ -656,15 +876,15 @@ function j() {
656
876
  })]
657
877
  })]
658
878
  }),
659
- /* @__PURE__ */ _("div", {
879
+ /* @__PURE__ */ v("div", {
660
880
  className: "grid grid-cols-2 gap-3",
661
881
  children: [
662
- /* @__PURE__ */ _("div", {
882
+ /* @__PURE__ */ v("div", {
663
883
  className: "space-y-1.5",
664
- children: [/* @__PURE__ */ g(x, {
884
+ children: [/* @__PURE__ */ _(S, {
665
885
  htmlFor: "meal-calories",
666
886
  children: "Calories (kcal)"
667
- }), /* @__PURE__ */ g(b, {
887
+ }), /* @__PURE__ */ _(x, {
668
888
  id: "meal-calories",
669
889
  type: "number",
670
890
  min: 0,
@@ -676,12 +896,12 @@ function j() {
676
896
  placeholder: "0"
677
897
  })]
678
898
  }),
679
- /* @__PURE__ */ _("div", {
899
+ /* @__PURE__ */ v("div", {
680
900
  className: "space-y-1.5",
681
- children: [/* @__PURE__ */ g(x, {
901
+ children: [/* @__PURE__ */ _(S, {
682
902
  htmlFor: "meal-protein",
683
903
  children: "Protein (g)"
684
- }), /* @__PURE__ */ g(b, {
904
+ }), /* @__PURE__ */ _(x, {
685
905
  id: "meal-protein",
686
906
  type: "number",
687
907
  min: 0,
@@ -693,12 +913,12 @@ function j() {
693
913
  placeholder: "0"
694
914
  })]
695
915
  }),
696
- /* @__PURE__ */ _("div", {
916
+ /* @__PURE__ */ v("div", {
697
917
  className: "space-y-1.5",
698
- children: [/* @__PURE__ */ g(x, {
918
+ children: [/* @__PURE__ */ _(S, {
699
919
  htmlFor: "meal-carbs",
700
920
  children: "Carbs (g)"
701
- }), /* @__PURE__ */ g(b, {
921
+ }), /* @__PURE__ */ _(x, {
702
922
  id: "meal-carbs",
703
923
  type: "number",
704
924
  min: 0,
@@ -710,12 +930,12 @@ function j() {
710
930
  placeholder: "0"
711
931
  })]
712
932
  }),
713
- /* @__PURE__ */ _("div", {
933
+ /* @__PURE__ */ v("div", {
714
934
  className: "space-y-1.5",
715
- children: [/* @__PURE__ */ g(x, {
935
+ children: [/* @__PURE__ */ _(S, {
716
936
  htmlFor: "meal-fat",
717
937
  children: "Fat (g)"
718
- }), /* @__PURE__ */ g(b, {
938
+ }), /* @__PURE__ */ _(x, {
719
939
  id: "meal-fat",
720
940
  type: "number",
721
941
  min: 0,
@@ -728,42 +948,63 @@ function j() {
728
948
  })]
729
949
  })
730
950
  ]
951
+ }),
952
+ /* @__PURE__ */ v("div", {
953
+ className: "flex items-center justify-between gap-4 rounded-xl bg-bg-sunken/60 p-3",
954
+ children: [/* @__PURE__ */ v("div", {
955
+ className: "min-w-0",
956
+ children: [/* @__PURE__ */ _(S, {
957
+ htmlFor: "meal-favorite",
958
+ className: "cursor-pointer",
959
+ children: "Favorite"
960
+ }), /* @__PURE__ */ _("p", {
961
+ className: "text-xs text-text-tertiary",
962
+ children: "Save for quick re-log"
963
+ })]
964
+ }), /* @__PURE__ */ _(He, {
965
+ id: "meal-favorite",
966
+ checked: B.isFavorite,
967
+ onCheckedChange: (e) => V({
968
+ ...B,
969
+ isFavorite: e
970
+ })
971
+ })]
731
972
  })
732
973
  ]
733
974
  }),
734
- /* @__PURE__ */ _(T, { children: [/* @__PURE__ */ g(v, {
975
+ /* @__PURE__ */ v(Pe, { children: [/* @__PURE__ */ _(y, {
735
976
  variant: "outline",
736
977
  onClick: () => z(!1),
737
- disabled: R.isPending,
978
+ disabled: F.isPending,
738
979
  children: "Cancel"
739
- }), /* @__PURE__ */ g(v, {
740
- onClick: nt,
741
- disabled: R.isPending,
742
- children: R.isPending ? "Logging…" : "Log meal"
980
+ }), /* @__PURE__ */ _(y, {
981
+ onClick: gt,
982
+ disabled: F.isPending,
983
+ children: F.isPending ? "Logging…" : "Log meal"
743
984
  })] })
744
985
  ]
745
986
  })
746
987
  }),
747
- /* @__PURE__ */ g(S, {
748
- open: Ze,
988
+ /* @__PURE__ */ _(je, {
989
+ open: ct,
749
990
  onOpenChange: U,
750
- children: /* @__PURE__ */ _(C, {
991
+ children: /* @__PURE__ */ v(Me, {
751
992
  className: "sm:max-w-lg",
752
993
  children: [
753
- /* @__PURE__ */ _(Ee, { children: [/* @__PURE__ */ g(De, { children: W === "edit" ? "Edit nutrition targets" : "Create nutrition plan" }), /* @__PURE__ */ g(w, { children: W === "edit" ? "Update your calorie and macro targets for this plan." : "Set your daily calorie and macro targets." })] }),
754
- /* @__PURE__ */ _("div", {
994
+ /* @__PURE__ */ v(Fe, { children: [/* @__PURE__ */ _(Ie, { children: W === "edit" ? "Edit nutrition targets" : "Create nutrition plan" }), /* @__PURE__ */ _(Ne, { children: W === "edit" ? "Update your calorie and macro targets for this plan." : "Set your daily calorie and macro targets." })] }),
995
+ /* @__PURE__ */ v("div", {
755
996
  className: "space-y-4 py-2",
756
997
  children: [
757
- $e && /* @__PURE__ */ g("div", {
998
+ ut && /* @__PURE__ */ _("div", {
758
999
  className: "rounded-lg border border-status-error-text/40 bg-status-error-bg-subtle px-3 py-2 text-sm text-status-error-text",
759
- children: $e
1000
+ children: ut
760
1001
  }),
761
- /* @__PURE__ */ _("div", {
1002
+ /* @__PURE__ */ v("div", {
762
1003
  className: "space-y-1.5",
763
- children: [/* @__PURE__ */ g(x, {
1004
+ children: [/* @__PURE__ */ _(S, {
764
1005
  htmlFor: "plan-name",
765
1006
  children: "Name"
766
- }), /* @__PURE__ */ g(b, {
1007
+ }), /* @__PURE__ */ _(x, {
767
1008
  id: "plan-name",
768
1009
  value: G.name,
769
1010
  onChange: (e) => K({
@@ -773,35 +1014,35 @@ function j() {
773
1014
  placeholder: "Lean bulk — Q3"
774
1015
  })]
775
1016
  }),
776
- /* @__PURE__ */ _("div", {
1017
+ /* @__PURE__ */ v("div", {
777
1018
  className: "space-y-1.5",
778
- children: [/* @__PURE__ */ g(x, {
1019
+ children: [/* @__PURE__ */ _(S, {
779
1020
  htmlFor: "plan-goal",
780
1021
  children: "Goal type"
781
- }), /* @__PURE__ */ _(Oe, {
1022
+ }), /* @__PURE__ */ v(Le, {
782
1023
  value: G.goalType,
783
1024
  onValueChange: (e) => K({
784
1025
  ...G,
785
1026
  goalType: e
786
1027
  }),
787
- children: [/* @__PURE__ */ g(je, {
1028
+ children: [/* @__PURE__ */ _(Be, {
788
1029
  id: "plan-goal",
789
- children: /* @__PURE__ */ g(Me, {})
790
- }), /* @__PURE__ */ g(ke, { children: Fe.map((e) => /* @__PURE__ */ g(Ae, {
1030
+ children: /* @__PURE__ */ _(Ve, {})
1031
+ }), /* @__PURE__ */ _(Re, { children: Ge.map((e) => /* @__PURE__ */ _(ze, {
791
1032
  value: e,
792
- children: r(e)
1033
+ children: i(e)
793
1034
  }, e)) })]
794
1035
  })]
795
1036
  }),
796
- /* @__PURE__ */ _("div", {
1037
+ /* @__PURE__ */ v("div", {
797
1038
  className: "grid grid-cols-2 gap-3",
798
1039
  children: [
799
- /* @__PURE__ */ _("div", {
1040
+ /* @__PURE__ */ v("div", {
800
1041
  className: "space-y-1.5",
801
- children: [/* @__PURE__ */ g(x, {
1042
+ children: [/* @__PURE__ */ _(S, {
802
1043
  htmlFor: "plan-calories",
803
1044
  children: "Calorie target (kcal)"
804
- }), /* @__PURE__ */ g(b, {
1045
+ }), /* @__PURE__ */ _(x, {
805
1046
  id: "plan-calories",
806
1047
  type: "number",
807
1048
  min: 0,
@@ -813,12 +1054,12 @@ function j() {
813
1054
  placeholder: "2400"
814
1055
  })]
815
1056
  }),
816
- /* @__PURE__ */ _("div", {
1057
+ /* @__PURE__ */ v("div", {
817
1058
  className: "space-y-1.5",
818
- children: [/* @__PURE__ */ g(x, {
1059
+ children: [/* @__PURE__ */ _(S, {
819
1060
  htmlFor: "plan-protein",
820
1061
  children: "Protein target (g)"
821
- }), /* @__PURE__ */ g(b, {
1062
+ }), /* @__PURE__ */ _(x, {
822
1063
  id: "plan-protein",
823
1064
  type: "number",
824
1065
  min: 0,
@@ -830,12 +1071,12 @@ function j() {
830
1071
  placeholder: "180"
831
1072
  })]
832
1073
  }),
833
- /* @__PURE__ */ _("div", {
1074
+ /* @__PURE__ */ v("div", {
834
1075
  className: "space-y-1.5",
835
- children: [/* @__PURE__ */ g(x, {
1076
+ children: [/* @__PURE__ */ _(S, {
836
1077
  htmlFor: "plan-carbs",
837
1078
  children: "Carbs target (g)"
838
- }), /* @__PURE__ */ g(b, {
1079
+ }), /* @__PURE__ */ _(x, {
839
1080
  id: "plan-carbs",
840
1081
  type: "number",
841
1082
  min: 0,
@@ -847,12 +1088,12 @@ function j() {
847
1088
  placeholder: "250"
848
1089
  })]
849
1090
  }),
850
- /* @__PURE__ */ _("div", {
1091
+ /* @__PURE__ */ v("div", {
851
1092
  className: "space-y-1.5",
852
- children: [/* @__PURE__ */ g(x, {
1093
+ children: [/* @__PURE__ */ _(S, {
853
1094
  htmlFor: "plan-fat",
854
1095
  children: "Fat target (g)"
855
- }), /* @__PURE__ */ g(b, {
1096
+ }), /* @__PURE__ */ _(x, {
856
1097
  id: "plan-fat",
857
1098
  type: "number",
858
1099
  min: 0,
@@ -866,14 +1107,14 @@ function j() {
866
1107
  })
867
1108
  ]
868
1109
  }),
869
- /* @__PURE__ */ _("div", {
1110
+ /* @__PURE__ */ v("div", {
870
1111
  className: "grid grid-cols-2 gap-3",
871
- children: [/* @__PURE__ */ _("div", {
1112
+ children: [/* @__PURE__ */ v("div", {
872
1113
  className: "space-y-1.5",
873
- children: [/* @__PURE__ */ g(x, {
1114
+ children: [/* @__PURE__ */ _(S, {
874
1115
  htmlFor: "plan-start",
875
1116
  children: "Start date"
876
- }), /* @__PURE__ */ g(b, {
1117
+ }), /* @__PURE__ */ _(x, {
877
1118
  id: "plan-start",
878
1119
  type: "date",
879
1120
  value: G.startDate,
@@ -882,12 +1123,12 @@ function j() {
882
1123
  startDate: e.target.value
883
1124
  })
884
1125
  })]
885
- }), /* @__PURE__ */ _("div", {
1126
+ }), /* @__PURE__ */ v("div", {
886
1127
  className: "space-y-1.5",
887
- children: [/* @__PURE__ */ g(x, {
1128
+ children: [/* @__PURE__ */ _(S, {
888
1129
  htmlFor: "plan-end",
889
1130
  children: "End date"
890
- }), /* @__PURE__ */ g(b, {
1131
+ }), /* @__PURE__ */ _(x, {
891
1132
  id: "plan-end",
892
1133
  type: "date",
893
1134
  value: G.endDate,
@@ -898,12 +1139,12 @@ function j() {
898
1139
  })]
899
1140
  })]
900
1141
  }),
901
- /* @__PURE__ */ _("div", {
1142
+ /* @__PURE__ */ v("div", {
902
1143
  className: "space-y-1.5",
903
- children: [/* @__PURE__ */ g(x, {
1144
+ children: [/* @__PURE__ */ _(S, {
904
1145
  htmlFor: "plan-notes",
905
1146
  children: "Notes"
906
- }), /* @__PURE__ */ g(Ne, {
1147
+ }), /* @__PURE__ */ _(Ue, {
907
1148
  id: "plan-notes",
908
1149
  value: G.notes,
909
1150
  onChange: (e) => K({
@@ -916,15 +1157,15 @@ function j() {
916
1157
  })
917
1158
  ]
918
1159
  }),
919
- /* @__PURE__ */ _(T, { children: [/* @__PURE__ */ g(v, {
1160
+ /* @__PURE__ */ v(Pe, { children: [/* @__PURE__ */ _(y, {
920
1161
  variant: "outline",
921
1162
  onClick: () => U(!1),
922
- disabled: $,
1163
+ disabled: Z,
923
1164
  children: "Cancel"
924
- }), /* @__PURE__ */ g(v, {
925
- onClick: rt,
926
- disabled: $,
927
- children: $ ? "Saving…" : W === "edit" ? "Save targets" : "Create plan"
1165
+ }), /* @__PURE__ */ _(y, {
1166
+ onClick: _t,
1167
+ disabled: Z,
1168
+ children: Z ? "Saving…" : W === "edit" ? "Save targets" : "Create plan"
928
1169
  })] })
929
1170
  ]
930
1171
  })
@@ -933,6 +1174,6 @@ function j() {
933
1174
  });
934
1175
  }
935
1176
  //#endregion
936
- export { j as NutritionPage };
1177
+ export { D as NutritionPage };
937
1178
 
938
1179
  //# sourceMappingURL=NutritionPage.js.map