@bitcobblers/wod-wiki-tools 0.51.2195 → 0.51.2196

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 (598) hide show
  1. package/dist/bin/wod.cjs +1 -1
  2. package/dist/bin/wod.cjs.map +1 -1
  3. package/dist/bin/wod.mjs +2 -2
  4. package/dist/{chunk-V7EGHQAY.mjs → chunk-QE5CK3QT.mjs} +3 -3
  5. package/dist/chunk-QE5CK3QT.mjs.map +1 -0
  6. package/dist/{chunk-QAPPKPCL.mjs → chunk-TDYC2FCK.mjs} +4 -4
  7. package/dist/{chunk-QAPPKPCL.mjs.map → chunk-TDYC2FCK.mjs.map} +1 -1
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.cjs.map +1 -1
  10. package/dist/index.mjs +2 -2
  11. package/dist/{scaffoldFeed-I35NUXOI.mjs → scaffoldFeed-MROAPAAP.mjs} +3 -3
  12. package/dist/{scaffoldFeed-I35NUXOI.mjs.map → scaffoldFeed-MROAPAAP.mjs.map} +1 -1
  13. package/dist/web/playground/assets/{feedSync.worker-CK48nNHX.js → feedSync.worker-ftP9nOAl.js} +2 -2
  14. package/dist/web/playground/assets/{main-CRhUHzsM.js → main-lF0MJ7yl.js} +6 -6
  15. package/dist/web/playground/assets/{statementBuilderFlow-uTfwbWmx.js → statementBuilderFlow-CNz2Wkh9.js} +2 -2
  16. package/dist/web/playground/index.html +1 -1
  17. package/dist/web/{server/seed/core/chunks/canvas.ed613b72.json → playground/seed/core/chunks/canvas.499930d3.json} +1 -1
  18. package/dist/web/playground/seed/core/chunks/{dashboards.d1732e3d.json → dashboards.91cae756.json} +1 -1
  19. package/dist/web/playground/seed/core/chunks/{efforts.1f14a471.json → efforts.f2875ac9.json} +1 -1
  20. package/dist/web/playground/seed/core/chunks/{equipment.3d9eda19.json → equipment.a56f9b72.json} +1 -1
  21. package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +180 -180
  22. package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +16 -16
  23. package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +326 -326
  24. package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +50 -50
  25. package/dist/web/playground/seed/core/manifest.json +27 -27
  26. package/dist/web/playground/seed/core/markdown/canvas/ai-first/README.json +1 -1
  27. package/dist/web/playground/seed/core/markdown/canvas/guide/README.json +4 -4
  28. package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +1 -1
  29. package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +2 -2
  30. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
  31. package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +12 -12
  32. package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +20 -20
  33. package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +33 -33
  34. package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +11 -11
  35. package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +25 -25
  36. package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +5 -5
  37. package/dist/web/playground/seed/core/markdown/canvas/home/sample-script.json +4 -4
  38. package/dist/web/playground/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  39. package/dist/web/playground/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  40. package/dist/web/playground/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  41. package/dist/web/playground/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  42. package/dist/web/playground/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  43. package/dist/web/playground/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  44. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  45. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
  46. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  47. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  48. package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
  49. package/dist/web/playground/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  50. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
  51. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  52. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  53. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  54. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
  55. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  56. package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  57. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  58. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  59. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  60. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  61. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  62. package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  63. package/dist/web/playground/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  64. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  65. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  66. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  67. package/dist/web/playground/seed/core/markdown/canvas/syntax/document-4.json +5 -5
  68. package/dist/web/playground/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
  69. package/dist/web/playground/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
  70. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  71. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  72. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  73. package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  74. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  75. package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  76. package/dist/web/playground/seed/core/markdown/canvas/syntax/measurements.json +7 -7
  77. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  78. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  79. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  80. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
  81. package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  82. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
  83. package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  84. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  85. package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  86. package/dist/web/playground/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
  87. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  88. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  89. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  90. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  91. package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  92. package/dist/web/playground/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  93. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  94. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  95. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  96. package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  97. package/dist/web/playground/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  98. package/dist/web/playground/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  99. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  100. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  101. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
  102. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  103. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  104. package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  105. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  106. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  107. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  108. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  109. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  110. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  111. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  112. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  113. package/dist/web/playground/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  114. package/dist/web/playground/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  115. package/dist/web/playground/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  116. package/dist/web/playground/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  117. package/dist/web/playground/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  118. package/dist/web/playground/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  119. package/dist/web/playground/seed/core/markdown/dashboards/training-block-review.json +11 -11
  120. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
  121. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
  122. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
  123. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
  124. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
  125. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
  126. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
  127. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
  128. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
  129. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
  130. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
  131. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
  132. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
  133. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
  134. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
  135. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
  136. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
  137. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
  138. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
  139. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
  140. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
  141. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
  142. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
  143. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
  144. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
  145. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
  146. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
  147. package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
  148. package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
  149. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
  150. package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
  151. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
  152. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
  153. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
  154. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
  155. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
  156. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
  157. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
  158. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
  159. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
  160. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
  161. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
  162. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
  163. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
  164. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
  165. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
  166. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
  167. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
  168. package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
  169. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
  170. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
  171. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
  172. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
  173. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
  174. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
  175. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
  176. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
  177. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
  178. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
  179. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
  180. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
  181. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
  182. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
  183. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
  184. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
  185. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
  186. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
  187. package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
  188. package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +1 -1
  189. package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +1 -1
  190. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
  191. package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +1 -1
  192. package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
  193. package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +1 -1
  194. package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
  195. package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
  196. package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +1 -1
  197. package/dist/web/playground/seed/core/markdown/efforts/snatch.json +2 -2
  198. package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +1 -1
  199. package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +1 -1
  200. package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
  201. package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +1 -1
  202. package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
  203. package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +1 -1
  204. package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
  205. package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +1 -1
  206. package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +1 -1
  207. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
  208. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
  209. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
  210. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
  211. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
  212. package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
  213. package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
  214. package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
  215. package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
  216. package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +1 -1
  217. package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +1 -1
  218. package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
  219. package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
  220. package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
  221. package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +1 -1
  222. package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +1 -1
  223. package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
  224. package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
  225. package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
  226. package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
  227. package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +1 -1
  228. package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
  229. package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
  230. package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +1 -1
  231. package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
  232. package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
  233. package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
  234. package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
  235. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
  236. package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +1 -1
  237. package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
  238. package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +1 -1
  239. package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
  240. package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
  241. package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
  242. package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
  243. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
  244. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
  245. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
  246. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
  247. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
  248. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
  249. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
  250. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
  251. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
  252. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
  253. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
  254. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
  255. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
  256. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
  257. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
  258. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
  259. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
  260. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
  261. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
  262. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
  263. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
  264. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
  265. package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +1 -1
  266. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
  267. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
  268. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
  269. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
  270. package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
  271. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
  272. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
  273. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
  274. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
  275. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
  276. package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
  277. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
  278. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
  279. package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
  280. package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
  281. package/dist/web/playground/seed/core/markdown/equipment/air-bike.json +1 -1
  282. package/dist/web/playground/seed/core/markdown/equipment/barbell.json +1 -1
  283. package/dist/web/playground/seed/core/markdown/equipment/bench.json +1 -1
  284. package/dist/web/playground/seed/core/markdown/equipment/bike-erg.json +1 -1
  285. package/dist/web/playground/seed/core/markdown/equipment/climbing-rope.json +1 -1
  286. package/dist/web/playground/seed/core/markdown/equipment/clubs.json +1 -1
  287. package/dist/web/playground/seed/core/markdown/equipment/dumbbell.json +1 -1
  288. package/dist/web/playground/seed/core/markdown/equipment/ghd.json +1 -1
  289. package/dist/web/playground/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  290. package/dist/web/playground/seed/core/markdown/equipment/jump-rope.json +1 -1
  291. package/dist/web/playground/seed/core/markdown/equipment/kettlebell.json +1 -1
  292. package/dist/web/playground/seed/core/markdown/equipment/macebell.json +1 -1
  293. package/dist/web/playground/seed/core/markdown/equipment/medicine-ball.json +1 -1
  294. package/dist/web/playground/seed/core/markdown/equipment/parallettes.json +1 -1
  295. package/dist/web/playground/seed/core/markdown/equipment/plyo-box.json +1 -1
  296. package/dist/web/playground/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  297. package/dist/web/playground/seed/core/markdown/equipment/rower.json +1 -1
  298. package/dist/web/playground/seed/core/markdown/equipment/sandbag.json +1 -1
  299. package/dist/web/playground/seed/core/markdown/equipment/ski-erg.json +1 -1
  300. package/dist/web/playground/seed/core/markdown/equipment/slam-ball.json +1 -1
  301. package/dist/web/playground/seed/core/markdown/equipment/sled.json +1 -1
  302. package/dist/web/playground/seed/core/markdown/equipment/sledgehammer.json +1 -1
  303. package/dist/web/playground/seed/core/markdown/equipment/weight-vest.json +1 -1
  304. package/dist/web/playground/seed/core/report.html +13 -13
  305. package/dist/web/server/assets/{feedSync.worker-CK48nNHX.js → feedSync.worker-ftP9nOAl.js} +2 -2
  306. package/dist/web/server/assets/{main-DYNiJfcz.js → main-4y8Q5pTh.js} +6 -6
  307. package/dist/web/server/assets/{statementBuilderFlow-D5c1zwcv.js → statementBuilderFlow-BgrBt6FL.js} +2 -2
  308. package/dist/web/server/index.html +1 -1
  309. package/dist/web/{playground/seed/core/chunks/canvas.ed613b72.json → server/seed/core/chunks/canvas.499930d3.json} +1 -1
  310. package/dist/web/server/seed/core/chunks/{dashboards.d1732e3d.json → dashboards.91cae756.json} +1 -1
  311. package/dist/web/server/seed/core/chunks/{efforts.1f14a471.json → efforts.f2875ac9.json} +1 -1
  312. package/dist/web/server/seed/core/chunks/{equipment.3d9eda19.json → equipment.a56f9b72.json} +1 -1
  313. package/dist/web/server/seed/core/indexes/notebooks/canvas.json +180 -180
  314. package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +16 -16
  315. package/dist/web/server/seed/core/indexes/notebooks/efforts.json +326 -326
  316. package/dist/web/server/seed/core/indexes/notebooks/equipment.json +50 -50
  317. package/dist/web/server/seed/core/manifest.json +27 -27
  318. package/dist/web/server/seed/core/markdown/canvas/ai-first/README.json +1 -1
  319. package/dist/web/server/seed/core/markdown/canvas/guide/README.json +4 -4
  320. package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +1 -1
  321. package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +2 -2
  322. package/dist/web/server/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
  323. package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +12 -12
  324. package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +20 -20
  325. package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +33 -33
  326. package/dist/web/server/seed/core/markdown/canvas/guide/start.json +11 -11
  327. package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +25 -25
  328. package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +5 -5
  329. package/dist/web/server/seed/core/markdown/canvas/home/sample-script.json +4 -4
  330. package/dist/web/server/seed/core/markdown/canvas/home/welcome-1.json +2 -2
  331. package/dist/web/server/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
  332. package/dist/web/server/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
  333. package/dist/web/server/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
  334. package/dist/web/server/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
  335. package/dist/web/server/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
  336. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
  337. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
  338. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
  339. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
  340. package/dist/web/server/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
  341. package/dist/web/server/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
  342. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
  343. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
  344. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
  345. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
  346. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
  347. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
  348. package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
  349. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
  350. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
  351. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
  352. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
  353. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
  354. package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
  355. package/dist/web/server/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
  356. package/dist/web/server/seed/core/markdown/canvas/syntax/document-1.json +4 -4
  357. package/dist/web/server/seed/core/markdown/canvas/syntax/document-2.json +5 -5
  358. package/dist/web/server/seed/core/markdown/canvas/syntax/document-3.json +10 -10
  359. package/dist/web/server/seed/core/markdown/canvas/syntax/document-4.json +5 -5
  360. package/dist/web/server/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
  361. package/dist/web/server/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
  362. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
  363. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
  364. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
  365. package/dist/web/server/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
  366. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
  367. package/dist/web/server/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
  368. package/dist/web/server/seed/core/markdown/canvas/syntax/measurements.json +7 -7
  369. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
  370. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
  371. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
  372. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
  373. package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
  374. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
  375. package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
  376. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
  377. package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
  378. package/dist/web/server/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
  379. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
  380. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
  381. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
  382. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
  383. package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
  384. package/dist/web/server/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
  385. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
  386. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
  387. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
  388. package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
  389. package/dist/web/server/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
  390. package/dist/web/server/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
  391. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
  392. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
  393. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
  394. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
  395. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
  396. package/dist/web/server/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
  397. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
  398. package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
  399. package/dist/web/server/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
  400. package/dist/web/server/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
  401. package/dist/web/server/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
  402. package/dist/web/server/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
  403. package/dist/web/server/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
  404. package/dist/web/server/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
  405. package/dist/web/server/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
  406. package/dist/web/server/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
  407. package/dist/web/server/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
  408. package/dist/web/server/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
  409. package/dist/web/server/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
  410. package/dist/web/server/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
  411. package/dist/web/server/seed/core/markdown/dashboards/training-block-review.json +11 -11
  412. package/dist/web/server/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
  413. package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
  414. package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
  415. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
  416. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
  417. package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
  418. package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
  419. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
  420. package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
  421. package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
  422. package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
  423. package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
  424. package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
  425. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
  426. package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
  427. package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
  428. package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
  429. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
  430. package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
  431. package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
  432. package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
  433. package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
  434. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
  435. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
  436. package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
  437. package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
  438. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
  439. package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
  440. package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
  441. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
  442. package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
  443. package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
  444. package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
  445. package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
  446. package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
  447. package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
  448. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
  449. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
  450. package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
  451. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
  452. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
  453. package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
  454. package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
  455. package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
  456. package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
  457. package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
  458. package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
  459. package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
  460. package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
  461. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
  462. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
  463. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
  464. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
  465. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
  466. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
  467. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
  468. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
  469. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
  470. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
  471. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
  472. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
  473. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
  474. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
  475. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
  476. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
  477. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
  478. package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
  479. package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
  480. package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +1 -1
  481. package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +1 -1
  482. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
  483. package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +1 -1
  484. package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
  485. package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +1 -1
  486. package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
  487. package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
  488. package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +1 -1
  489. package/dist/web/server/seed/core/markdown/efforts/snatch.json +2 -2
  490. package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +1 -1
  491. package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +1 -1
  492. package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
  493. package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +1 -1
  494. package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
  495. package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +1 -1
  496. package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
  497. package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +1 -1
  498. package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +1 -1
  499. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
  500. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
  501. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
  502. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
  503. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
  504. package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
  505. package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
  506. package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
  507. package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
  508. package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +1 -1
  509. package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +1 -1
  510. package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
  511. package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
  512. package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
  513. package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +1 -1
  514. package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +1 -1
  515. package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
  516. package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
  517. package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
  518. package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
  519. package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +1 -1
  520. package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
  521. package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
  522. package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +1 -1
  523. package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
  524. package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
  525. package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
  526. package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
  527. package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
  528. package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +1 -1
  529. package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
  530. package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +1 -1
  531. package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
  532. package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
  533. package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
  534. package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
  535. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
  536. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
  537. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
  538. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
  539. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
  540. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
  541. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
  542. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
  543. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
  544. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
  545. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
  546. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
  547. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
  548. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
  549. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
  550. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
  551. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
  552. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
  553. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
  554. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
  555. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
  556. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
  557. package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +1 -1
  558. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
  559. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
  560. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
  561. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
  562. package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
  563. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
  564. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
  565. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
  566. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
  567. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
  568. package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
  569. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
  570. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
  571. package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
  572. package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
  573. package/dist/web/server/seed/core/markdown/equipment/air-bike.json +1 -1
  574. package/dist/web/server/seed/core/markdown/equipment/barbell.json +1 -1
  575. package/dist/web/server/seed/core/markdown/equipment/bench.json +1 -1
  576. package/dist/web/server/seed/core/markdown/equipment/bike-erg.json +1 -1
  577. package/dist/web/server/seed/core/markdown/equipment/climbing-rope.json +1 -1
  578. package/dist/web/server/seed/core/markdown/equipment/clubs.json +1 -1
  579. package/dist/web/server/seed/core/markdown/equipment/dumbbell.json +1 -1
  580. package/dist/web/server/seed/core/markdown/equipment/ghd.json +1 -1
  581. package/dist/web/server/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
  582. package/dist/web/server/seed/core/markdown/equipment/jump-rope.json +1 -1
  583. package/dist/web/server/seed/core/markdown/equipment/kettlebell.json +1 -1
  584. package/dist/web/server/seed/core/markdown/equipment/macebell.json +1 -1
  585. package/dist/web/server/seed/core/markdown/equipment/medicine-ball.json +1 -1
  586. package/dist/web/server/seed/core/markdown/equipment/parallettes.json +1 -1
  587. package/dist/web/server/seed/core/markdown/equipment/plyo-box.json +1 -1
  588. package/dist/web/server/seed/core/markdown/equipment/pull-up-bar.json +1 -1
  589. package/dist/web/server/seed/core/markdown/equipment/rower.json +1 -1
  590. package/dist/web/server/seed/core/markdown/equipment/sandbag.json +1 -1
  591. package/dist/web/server/seed/core/markdown/equipment/ski-erg.json +1 -1
  592. package/dist/web/server/seed/core/markdown/equipment/slam-ball.json +1 -1
  593. package/dist/web/server/seed/core/markdown/equipment/sled.json +1 -1
  594. package/dist/web/server/seed/core/markdown/equipment/sledgehammer.json +1 -1
  595. package/dist/web/server/seed/core/markdown/equipment/weight-vest.json +1 -1
  596. package/dist/web/server/seed/core/report.html +13 -13
  597. package/package.json +6 -6
  598. package/dist/chunk-V7EGHQAY.mjs.map +0 -1
@@ -1,11 +1,11 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-BiwvmytJ.js","assets/rolldown-runtime-C0FnF6B9.js","assets/vendor-CelWxf33.css","assets/statementBuilderFlow-D5c1zwcv.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vendor-BiwvmytJ.js","assets/rolldown-runtime-C0FnF6B9.js","assets/vendor-CelWxf33.css","assets/statementBuilderFlow-BgrBt6FL.js"])))=>i.map(i=>d[i]);
2
2
  import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{$ as n,$n as r,$r as i,$t as a,A as o,An as s,Ar as c,B as l,Bn as u,Br as d,Bt as f,C as p,Cn as m,Cr as h,Ct as g,D as _,Dn as v,Dr as y,Dt as b,E as x,En as S,Er as C,Et as w,F as T,Fn as E,Fr as D,G as O,Gn as k,Gr as A,Gt as j,H as M,Hn as N,Hr as P,Ht as F,I,In as L,Ir as R,J as z,Jn as ee,Jr as te,Jt as ne,K as re,Kn as ie,Kr as ae,Kt as oe,L as se,Ln as B,Lr as ce,M as V,Mn as le,Mr as ue,Mt as de,N as fe,Nn as pe,O as me,On as H,Or as he,P as ge,Pn as _e,Pr as ve,Q as ye,Qn as be,Qr as xe,Qt as Se,R as Ce,Rn as we,Rr as Te,S as Ee,Sn as De,Sr as Oe,St as ke,T as Ae,Tn as je,Tr as Me,Tt as Ne,U as Pe,Un as Fe,Ur as Ie,Ut as Le,V as Re,Vn as ze,Vr as Be,Vt as Ve,W as He,Wn as Ue,Wr as We,Wt as Ge,X as Ke,Xn as qe,Xr as Je,Xt as Ye,Y as Xe,Yn as Ze,Yr as Qe,Yt as $e,Z as et,Zn as tt,Zr as nt,Zt as rt,_ as it,_i as at,_n as ot,_r as st,_t as ct,a as lt,ai as ut,an as dt,ar as ft,at as pt,b as mt,bi as ht,bn as gt,br as _t,bt as vt,c as yt,ci as bt,cn as xt,cr as St,ct as Ct,d as wt,di as Tt,dn as eee,dr as Et,dt as Dt,ei as Ot,en as kt,er as At,et as jt,f as Mt,fi as Nt,fn as Pt,fr as Ft,ft as It,g as tee,gi as Lt,gn as Rt,gr as zt,gt as Bt,h as Vt,hi as Ht,hn as Ut,hr as Wt,ht as Gt,i as Kt,ii as qt,in as Jt,it as Yt,j as Xt,jn as Zt,jr as Qt,jt as $t,k as en,kn as nee,kr as tn,kt as nn,l as ree,li as rn,ln as an,lr as on,lt as sn,m as cn,mi as ln,mn as un,mr as dn,mt as fn,n as pn,ni as mn,nn as hn,nr as gn,nt as _n,o as vn,oi as yn,on as bn,or as xn,ot as Sn,p as Cn,pi as wn,pn as Tn,pr as En,pt as Dn,q as On,qn as kn,qr as An,qt as jn,r as Mn,ri as Nn,rn as Pn,rr as Fn,rt as In,s as iee,si as aee,sn as Ln,sr as Rn,st as zn,t as Bn,ti as Vn,tn as Hn,tr as Un,tt as Wn,u as Gn,ui as Kn,un as qn,ur as Jn,ut as Yn,v as Xn,vi as Zn,vn as Qn,vr as $n,vt as er,w as tr,wn as nr,wr as rr,wt as ir,x as ar,xn as or,xr as sr,xt as cr,y as lr,yi as ur,yn as dr,yr as fr,yt as pr,z as mr,zn as hr,zr as gr,zt as _r}from"./vendor-BiwvmytJ.js";import{$ as vr,A as yr,B as U,C as br,D as xr,E as Sr,F as Cr,G as wr,H as Tr,I as Er,J as Dr,K as Or,L as kr,M as Ar,N as jr,O as Mr,P as Nr,Q as Pr,R as Fr,S as oee,T as Ir,U as see,V as Lr,W as Rr,X as cee,Y as zr,Z as Br,_ as Vr,a as Hr,at as Ur,b as Wr,c as Gr,ct as Kr,d as qr,et as Jr,f as Yr,g as lee,h as Xr,i as Zr,it as Qr,j as $r,k as ei,l as ti,lt as ni,m as ri,n as ii,nt as ai,o as oi,ot as si,p as ci,q as li,r as ui,rt as di,s as fi,st as pi,t as mi,tt as hi,u as gi,ut as _i,v as vi,w as yi,x as bi,y as xi,z as Si}from"./vendor-codemirror-B461LMkB.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var Ci=Zn(),W=e(ht(),1),G=yn(),wi=(0,W.createContext)({theme:`system`,setTheme:()=>null});function Ti({children:e,defaultTheme:t=`system`,storageKey:n=`vite-ui-theme`}){let[r,i]=(0,W.useState)(()=>localStorage.getItem(n)||t);(0,W.useEffect)(()=>{let e=window.document.documentElement,t=()=>{if(e.classList.remove(`light`,`dark`),r===`system`){let t=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;e.classList.add(t);return}e.classList.add(r)};if(t(),r===`system`){let e=window.matchMedia(`(prefers-color-scheme: dark)`),n=()=>t();return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)}},[r]);let a=(0,W.useCallback)(e=>{localStorage.setItem(n,e),i(e)},[n]),o=(0,W.useMemo)(()=>({theme:r,setTheme:a}),[r,a]);return(0,G.jsx)(wi.Provider,{value:o,children:e})}var Ei=()=>{let e=(0,W.useContext)(wi);if(e===void 0)throw Error(`useTheme must be used within a ThemeProvider`);return e};function K(...e){return D(ut(e))}function Di(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);t=(t<<5)-t+r,t&=t}return Math.abs(t)}var Oi=R(`inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-4 py-2`,sm:`h-9 rounded-md px-3`,lg:`h-11 rounded-md px-8`,icon:`h-11 w-11 min-h-11 min-w-11`}},defaultVariants:{variant:`default`,size:`default`}}),q=W.memo(W.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>{let o=r?ce:`button`;return(0,G.jsx)(qt,{as:o,className:K(Oi({variant:t,size:n,className:e})),ref:a,...i})}));q.displayName=`Button`;var ki=[`parser`,`dialect`,`user-plan`,`runtime`,`user-entry`],Ai={parser:`parser`,compiler:`dialect`,dialect:`dialect`,hinted:`dialect`,"user-plan":`user-plan`,runtime:`runtime`,tracked:`runtime`,analyzed:`runtime`,"analyzed-estimated":`runtime`,execution:`runtime`,user:`user-entry`,collected:`user-entry`,diagnostic:`runtime`};function ji(e){return Ai[e??`parser`]??`parser`}var J=function(e){return e.Duration=`duration`,e.Spans=`spans`,e.SystemTime=`system-time`,e.Time=`time`,e.Elapsed=`elapsed`,e.Total=`total`,e.Rep=`rep`,e.Effort=`effort`,e.Equipment=`equipment`,e.Distance=`distance`,e.Rounds=`rounds`,e.CurrentRound=`current-round`,e.Action=`action`,e.Increment=`increment`,e.Group=`group`,e.Text=`text`,e.Resistance=`resistance`,e.Sound=`sound`,e.System=`system`,e.Label=`label`,e.Lap=`lap`,e.Metric=`metric`,e.Hint=`hint`,e.Custom=`custom`,e.Volume=`volume`,e.Intensity=`intensity`,e.Grade=`grade`,e.Load=`load`,e.Work=`work`,e.RIR=`rir`,e.SessionRPE=`session-rpe`,e.SessionLoad=`session-load`,e.METScore=`met-score`,e.TIS=`tis`,e.Calculated=`calculated`,e.Diagnostic=`diagnostic`,e.Choice=`choice`,e}({}),Mi={parser:0,dialect:1,"user-plan":2,runtime:3,"user-entry":4};function Ni(e){return e.ownershipLayer??ji(e.origin)}function Pi(e){return Mi[Ni(e)]??0}function Fi(e){return e.map((e,t)=>{let n=Ni(e);return{metric:e,type:e.type,layer:n,layerRank:Mi[n]??0,index:t,isSuppressor:e.action===`suppress`}})}function Ii(e,t){return t?e.filter(e=>!(t.types&&!t.types.includes(e.type)||t.layers&&!t.layers.includes(e.layer))):[...e]}function Li(e){let t=new Map;for(let n of e){let e=t.get(n.type);if(e){e.push(n);continue}t.set(n.type,[n])}return t}function Ri(e){let t;for(let n of e)n.isSuppressor||(t==null||n.layerRank>t)&&(t=n.layerRank);return t}function zi(e,t){return{metric:e.metric,type:e.type,layer:e.layer,outcome:t}}function Bi(e,t){return e.index-t.index}function Vi(e){let t=Fi(e);return{raw(e){return Ii(t,e).map(e=>e.metric)},visible(e){let n=Li(Ii(t,e)),r=[];for(let e of n.values()){if(e.some(e=>e.isSuppressor))continue;let t=Ri(e);if(t!=null)for(let n of e)!n.isSuppressor&&n.layerRank===t&&r.push(n)}return r.sort(Bi),r.map(e=>e.metric)},byLayer(e){let n=Ii(t,e),r={};for(let e of ki)r[e]=[];for(let e of n)r[e.layer].push(e.metric);for(let e of ki)r[e]?.length===0&&delete r[e];return r},promotionCandidates(e){let n=Li(Ii(t,e)),r=[];for(let e of n.values()){let t=e.filter(e=>e.isSuppressor),n=e.filter(e=>!e.isSuppressor);if(n.length===0)continue;if(t.length>0){let e=Math.max(...n.map(e=>e.layerRank)),i=Math.max(...t.map(e=>e.layerRank));for(let t of n)t.layerRank===e&&r.push({metric:t.metric,type:t.type,layer:t.layer,reason:`suppressed`,blockedByLayer:ki[i]});continue}let i=Ri(n);if(i==null)continue;let a=n.filter(e=>e.layerRank<i);if(a.length===0)continue;let o=Math.max(...a.map(e=>e.layerRank));for(let e of a)e.layerRank===o&&r.push({metric:e.metric,type:e.type,layer:e.layer,reason:`shadowed-by-higher-layer`,blockedByLayer:ki[i]})}return r.sort((e,t)=>{let n=(Mi[t.layer]??0)-(Mi[e.layer]??0);return n===0?0:n}),r},explain(e){let n=Li(Ii(t,e)),r=[];for(let[e,t]of n.entries()){let n=t.some(e=>e.isSuppressor),i=n?void 0:Ri(t),a=t.map(e=>e.isSuppressor?zi(e,`suppressor`):n?zi(e,`hidden-by-suppressor`):i!=null&&e.layerRank===i?zi(e,`visible`):zi(e,`hidden-by-layer`));r.push({type:e,winnerLayer:i==null?void 0:ki[i],suppressed:n,entries:a})}return r}}}function Hi(e,t){let n=[...e];return(t?.types?.includes(J.Hint)??!1)||(n=n.filter(e=>e.type!==J.Hint)),t?(t.origins&&(n=n.filter(e=>t.origins.includes(e.origin??`parser`))),t.types&&(n=n.filter(e=>t.types.includes(e.type))),t.excludeTypes&&(n=n.filter(e=>!t.excludeTypes.includes(e.type))),n):n}var Ui=class{resolve(e,t){return Vi(Hi(e,t)).visible()}resolveOne(e,t){return this.resolve(e,{types:[t]})[0]}resolveAll(e,t){let n=e.filter(e=>e.type===t);return n.length<=1?n:[...n].sort((e,t)=>Pi(t)-Pi(e))}};function Wi(e){let t=e.split(/[\s_\-\u2010-\u2015]+/).filter(Boolean),n=[];for(let e of t){let t=e.replace(/([\p{Ll}\p{Nd}])(\p{Lu})/gu,`$1\0$2`).replace(/(\p{Lu})(\p{Lu}\p{Ll})/gu,`$1\0$2`);for(let e of t.split(`\0`))e&&n.push(e)}return n}function Gi(e){let t=Wi(e);return t.length===0?``:t.map((e,t)=>{let n=e.toLowerCase();return t===0?n:n.charAt(0).toUpperCase()+n.slice(1)}).join(``)}function Ki(e){return e.split(`.`).map(Gi).filter(e=>e.length>0).join(`.`)}function qi(e){if(e===null)return`null`;if(e===void 0)return`undefined`;if(Array.isArray(e))return`array`;switch(typeof e){case`number`:return`number`;case`string`:return`string`;case`boolean`:return`boolean`;case`object`:return`object`;default:return`undefined`}}function Ji(e){return JSON.stringify([e.path,e.kind,e.dimension??null])}var Yi=class extends Error{code;constructor(e,t){super(t),this.name=`UnitConversionError`,this.code=e}},Xi=[{canonical:`m`,dimension:`distance`,factor:1,aliases:[`meter`,`meters`,`metre`,`metres`]},{canonical:`km`,dimension:`distance`,factor:1e3,aliases:[`kilometer`,`kilometers`,`kilometre`,`kilometres`]},{canonical:`cm`,dimension:`distance`,factor:.01,aliases:[`centimeter`,`centimeters`]},{canonical:`mm`,dimension:`distance`,factor:.001,aliases:[`millimeter`,`millimeters`]},{canonical:`ft`,dimension:`distance`,factor:.3048,aliases:[`foot`,`feet`]},{canonical:`in`,dimension:`distance`,factor:.0254,aliases:[`inch`,`inches`]},{canonical:`yd`,dimension:`distance`,factor:.9144,aliases:[`yard`,`yards`]},{canonical:`mi`,dimension:`distance`,factor:1609.344,aliases:[`mile`,`miles`]},{canonical:`kg`,dimension:`mass`,factor:1,aliases:[`kilogram`,`kilograms`,`kilo`,`kilos`]},{canonical:`g`,dimension:`mass`,factor:.001,aliases:[`gram`,`grams`]},{canonical:`lb`,dimension:`mass`,factor:.45359237,aliases:[`lbs`,`pound`,`pounds`]},{canonical:`ms`,dimension:`duration`,factor:.001,aliases:[`millisecond`,`milliseconds`]},{canonical:`s`,dimension:`duration`,factor:1,aliases:[`sec`,`secs`,`second`,`seconds`]},{canonical:`min`,dimension:`duration`,factor:60,aliases:[`mins`,`minute`,`minutes`]},{canonical:`h`,dimension:`duration`,factor:3600,aliases:[`hr`,`hrs`,`hour`,`hours`]},{canonical:`count`,dimension:`count`,factor:1},{canonical:`rep`,dimension:`count`,factor:1,aliases:[`reps`]},{canonical:`pull-up`,dimension:`count`,factor:1},{canonical:`thruster`,dimension:`count`,factor:1},{canonical:`problem`,dimension:`count`,factor:1},{canonical:`count/s`,dimension:`count-rate`,factor:1},{canonical:`bpm`,dimension:`count-rate`,factor:1/60},{canonical:`cal`,dimension:`energy`,factor:1,aliases:[`calorie`,`calories`]},{canonical:`kcal`,dimension:`energy`,factor:1e3,aliases:[`kilocalorie`,`kilocalories`]},{canonical:`m/s`,dimension:`speed`,factor:1},{canonical:`km/h`,dimension:`speed`,factor:1e3/3600,aliases:[`kmh`,`kph`]},{canonical:`mph`,dimension:`speed`,factor:1609.344/3600},{canonical:`min/km`,dimension:`pace`,factor:1},{canonical:`min/mi`,dimension:`pace`,factor:1e3/1609.344},{canonical:`s/m`,dimension:`pace`,factor:1/60},{canonical:`ratio`,dimension:`ratio`,factor:1,aliases:[`x`]},{canonical:`%`,dimension:`ratio`,factor:.01,aliases:[`pct`,`percent`]},{canonical:`au`,dimension:`ratio`,factor:1,aliases:[`AU`]},{canonical:`pts`,dimension:`ratio`,factor:1,aliases:[`point`,`points`]},{canonical:`rating`,dimension:`ratio`,factor:1,aliases:[`ratings`]}],Zi=(()=>{let e=new Map;for(let t of Xi){e.set(t.canonical.toLowerCase(),t);for(let n of t.aliases??[])e.has(n.toLowerCase())||e.set(n.toLowerCase(),t)}return e})();function Qi(e){if(typeof e==`string`)return Zi.get(e.trim().toLowerCase())}function $i(e){return Qi(e)?.dimension}var ea=Object.freeze({mass:`kg`,distance:`m`,duration:`s`,count:`count`,"count-rate":`count/s`,energy:`cal`,speed:`m/s`,pace:`min/km`,ratio:void 0});function ta(e){return ea[e]}function na(e,t,n){let r=Qi(t);if(!r)throw new Yi(`unknown-unit`,`Unknown unit "${t}"`);let i=Qi(n);if(!i)throw new Yi(`unknown-unit`,`Unknown unit "${n}"`);if(r.dimension!==i.dimension)throw new Yi(`dimension-mismatch`,`Cannot convert ${t} (${r.dimension}) to ${n} (${i.dimension})`);if(r.dimension===`ratio`&&r.canonical!==i.canonical&&r.canonical!==`ratio`&&i.canonical!==`ratio`)throw new Yi(`scale-mismatch`,`Named scales ${t} and ${n} are not interchangeable`);if(!Number.isFinite(e))throw new Yi(`non-finite`,`Non-finite value cannot be converted`);return e*r.factor/i.factor}var ra=`references`,ia=[`explicit`,`split`,`whole`,`default`,`none`];function aa(e){if(!e||typeof e!=`object`)return!1;let t=e;return(t.kind===`effort`||t.kind===`equipment`)&&typeof t.slug==`string`&&!!t.slug&&typeof t.label==`string`}function uee(e){return!e||typeof e!=`object`?!1:typeof e.reason==`string`}function oa(e){let t=e?.[ra];if(!t||typeof t!=`object`)return;let n=t;if(!(typeof n.matched!=`string`||!ia.includes(n.matched))&&typeof n.source==`string`&&!(n.refs!==void 0&&(!Array.isArray(n.refs)||!n.refs.every(aa)))&&!(n.diagnostics!==void 0&&(!Array.isArray(n.diagnostics)||!n.diagnostics.every(uee))))return t}var sa=class{line;startOffset;endOffset;length;columnStart;columnEnd;raw;constructor(e,t,n,r,i=0,a=0,o=``){this.line=e,this.startOffset=t,this.endOffset=n,this.length=r,this.columnStart=i,this.columnEnd=a,this.raw=o}},ca=class e{_metrics;_indexedLength=0;_resolver=new Ui;id;constructor(t,n=`metrics`){if(this.id=n,t instanceof e){this._metrics=t.toArray(),this.syncIndexProperties();return}this._metrics=Array.isArray(t)?[...t]:[],this.syncIndexProperties()}static from(t,n=`metrics`){if(t instanceof e)return t.clone(n);if(Array.isArray(t))return new e(t,n);if(typeof t==`object`&&t&&`_metrics`in t){let r=t._metrics;if(Array.isArray(r))return new e(r,n)}return e.empty(n)}static empty(t=`metrics`){return new e(void 0,t)}clone(t=this.id){return new e(this._metrics,t)}get all(){return[...this._metrics]}get length(){return this._metrics.length}get size(){return this._metrics.length}get isEmpty(){return this._metrics.length===0}getByType(e){let t=this._metrics.filter(t=>t.type===e||t.name===e);return t.length<=1?t:[...t].sort((e,t)=>Pi(t)-Pi(e))}getFirst(e){let t=this.getByType(e);return t.length>0?t[0]:void 0}get(e){return this.getFirst(e)}has(e){return this._metrics.some(t=>t.type===e||t.name===e)}hasMetric(e){return this.has(e)}getDisplayMetrics(e){return this.resolve(e)}getMetric(e){return this._resolver.resolveOne(this._metrics,e)}getAllMetricsByType(e){return this.getByType(e)}get rawMetrics(){return this.toArray()}getAll(){return this.toArray()}getByOrigin(e){return this._metrics.filter(t=>(t.origin??`parser`)===e)}resolve(e){return this._resolver.resolve(this._metrics,e)}add(...e){return this._metrics.push(...e),this.syncIndexProperties(),this}remove(e){let t=[];return this._metrics=this._metrics.filter(n=>!e(n)||(t.push(n),!1)),this.syncIndexProperties(),t}removeByType(e){return this.remove(t=>t.type===e||t.name===e)}clear(){return this._metrics=[],this.syncIndexProperties(),this}replaceByType(e,...t){let n=this.removeByType(e);return this._metrics.push(...t),this.syncIndexProperties(),n}merge(t){let n=t instanceof e?t._metrics:Array.isArray(t)?t:t.metrics.toArray(),r=new Map;for(let e of n){let t=r.get(e.type)??[];t.push(e),r.set(e.type,t)}for(let[e,t]of r){let n=this._metrics.filter(t=>t.type===e);if(n.length===0){this._metrics.push(...t);continue}let r=Math.max(...n.map(e=>Pi(e))),i=Math.max(...t.map(e=>Pi(e)));i>r?(this._metrics=this._metrics.filter(t=>t.type!==e),this._metrics.push(...t)):i===r&&this._metrics.push(...t)}return this.syncIndexProperties(),this}[Symbol.iterator](){return this._metrics[Symbol.iterator]()}filter(e){return this._metrics.filter(e)}map(e){return this._metrics.map(e)}flatMap(e){return this._metrics.flatMap(e)}find(e){return this._metrics.find(e)}some(e){return this._metrics.some(e)}every(e){return this._metrics.every(e)}toArray(){return[...this._metrics]}get raw(){return this._metrics}syncIndexProperties(){for(let e=0;e<this._indexedLength;e++)delete this[e];for(let e=0;e<this._metrics.length;e++)this[e]=this._metrics[e];this._indexedLength=this._metrics.length}toString(){return`MetricContainer(${this._metrics.length})[${this._metrics.map(e=>e.type).join(`, `)}]`}},la=class{exerciseId;line;text;raw;dialect;hasMetric(e){return this.metricContainer.hasMetric(e)}getDisplayMetrics(e){return this.metricContainer.getDisplayMetrics(e)}getMetric(e){return this.metricContainer.getMetric(e)}getAllMetricsByType(e){return this.metricContainer.getAllMetricsByType(e)}get rawMetrics(){return this.metricContainer.rawMetrics}get metricContainer(){return this.metrics instanceof ca?this.metrics:ca.from(this.metrics,this.id)}},dee=class extends la{id=0;parent;children=[];meta=new sa(0,0,0,0);_metrics=ca.empty();metricMeta=new Map;isLeaf;get metrics(){return this._metrics}set metrics(e){this._metrics=ca.from(e,this.id)}constructor(e){super(),e&&(Object.assign(this,e),e.metrics&&(this.metrics=ca.from(e.metrics,this.id)),this.metricMeta||=new Map)}},ua=class e extends la{static nextId=1e6;id;outputType;timeSpan;sourceStatementId;sourceBlockKey;stackLevel;metrics;metricMeta;completionReason;parent;children;isLeaf;meta;statement;timestamp;constructor(t,n,r){if(super(),t&&`outputType`in t&&`timeSpan`in t){let n=t;this.id=e.nextId++,this.outputType=n.outputType,this.timeSpan=n.timeSpan,this.sourceBlockKey=n.sourceBlockKey??``,this.sourceStatementId=n.sourceStatementId,this.line=n.line,this.text=n.text,this.dialect=n.dialect,this.stackLevel=n.stackLevel??0,this.metrics=ca.from(n.metrics,this.id),this.metricMeta=n.metricMeta??new Map,this.completionReason=n.completionReason,this.parent=n.parent,this.children=n.children??[],this.isLeaf=this.children.length===0,this.meta=new sa(0,0,0,0)}else{let i=t;this.id=e.nextId++,this.statement=i,this.outputType=`segment`,this.timeSpan={started:r??Date.now()},this.sourceBlockKey=``,this.sourceStatementId=typeof i?.id==`number`?i.id:void 0,this.stackLevel=0,this.metrics=ca.from(n,this.id),this.metricMeta=new Map,this.children=[],this.isLeaf=!0,this.meta=i?.meta??new sa(0,0,0,0),this.line=i?.line,this.text=i?.text,this.dialect=i?.dialect,this.timestamp=r??Date.now()}}static resetIdCounter(t=1e6){e.nextId=t}},da=class{value;constructor(e){this.value=e??(typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID():Math.random().toString(36).slice(2))}toString(){return this.value}valueOf(){return this.value}equals(e){return this.value===e?.value}};function fa(e){let t=new Map;for(let n of e)t.set(n.slug,n);return{resolve:e=>t.get(e),list:()=>[...t.values()]}}var pa=`tagReference`;function ma(e){let t=e?.[pa];if(!t||typeof t!=`object`)return;let n=t;if(!(typeof n.slug!=`string`||!n.slug)&&typeof n.label==`string`&&!(n.functions!==void 0&&!Array.isArray(n.functions))&&(n.soundProfileId===void 0||typeof n.soundProfileId==`string`))return t}function ha(e){let t=e.trim(),n=2166136261;for(let e=0;e<t.length;e++)n^=t.charCodeAt(e),n=Math.imul(n,16777619);return`bc-${(n>>>0).toString(16).padStart(8,`0`)}`}function ga(e,t){let n=e.position??1/0,r=t.position??1/0;return n===r?e.createdAt===t.createdAt?e.id<t.id?-1:+(e.id>t.id):e.createdAt-t.createdAt:n-r}function _a(e){return[...e].sort(ga)}function va(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[];for(let t of _a(e)){let e=n.get(t.pageId);e&&r.push({pageId:e.id,noteId:t.noteId,position:t.position,createdAt:t.createdAt,date:e.date,slug:e.slug,title:e.title})}return r}function ya(e){let t={};for(let n of e)t.pageId===void 0&&(t.pageId=n.pageId),t.journalDate===void 0&&n.date&&(t.journalDate=n.date),t.pageSlug===void 0&&n.slug&&!n.date&&(t.pageSlug=n.slug);return t}var ba=[`segment`,`system`,`load`,`event`,`compiler`,`completion`,`analytics`,`wellness`];function xa(e){return e===`time`?`run`:e===`log`?`log`:null}function Sa(e){let t=e.trim();return t.startsWith(`notebook/`)||t.startsWith(`notebook:`)?t.slice(9):t}function Ca(e){return`notebook/${Sa(e)}`}function wa(e,t){return t?t!==`feed`:e.seedOrigin!==`seed`&&e.feedOrigin!==`feed`}var Ta=[{slug:`journal`,notebookId:`notebook/journal`,name:`Journal`,description:`Dated training log and scheduled workouts.`,icon:`📅`,href:`/journal`},{slug:`playground`,notebookId:`notebook/playground`,name:`Playground`,description:`Scratchpad workouts and timer experiments.`,icon:`🧪`,href:`/playgrounds`},{slug:`defaults`,notebookId:`notebook/defaults`,name:`Defaults`,description:`Starter notes — clone any of them into your own notebooks.`,icon:`📝`,href:`/notebook/defaults`},{slug:`guides`,notebookId:`notebook/guides`,name:`Guides`,description:`Built-in Whiteboard Language and WQL guides.`,icon:`📖`,href:`/notebook/guides`,feedEntryId:`core`,seedChunkId:`canvas`},{slug:`efforts`,notebookId:`notebook/efforts`,name:`Efforts`,description:`The effort library — every effort the parser and analytics resolve, across the canonical disciplines.`,icon:`🏋️`,href:`/efforts`,feedEntryId:`core`,seedChunkId:`efforts`},{slug:`equipment`,notebookId:`notebook/equipment`,name:`Equipment`,description:`The equipment library — gear definitions the language resolves.`,icon:`🔧`,href:`/equipment`,feedEntryId:`core`,seedChunkId:`equipment`},{slug:`dashboards`,notebookId:`notebook/dashboards`,name:`Dashboards`,description:`Prebuilt WQL dashboards — query compositions ready to open.`,icon:`📊`,href:`/dashboards`,feedEntryId:`core`,seedChunkId:`dashboards`}],Ea=[`playground-run-tip`,`attention`,`code-example`,`syntax-group`],Da={table:!0,list:!0,value:!0,timeseries:!0,bar:!0,donut:!0,toplist:!0,"stacked-bar":!0,"goal-rings":!0,"zone-distribution":!0};function Oa(e){let t=e.match(/^`{3,}(time|log)(?::([\w-]+))?\s*$/i);return t?{dialect:t[1].toLowerCase()===`time`?`time`:`log`,...t[2]?{sport:t[2]}:{}}:null}function ka(e){let t=e.type?.toLowerCase();if(t===`youtube`||t===`strava`||t===`amazon`||t===`file`||t===`effort`||t===`equipment`)return t;let n=(e.url||e.link||``).replace(/^[a-z][a-z0-9+.-]*:\/\//i,``).split(/[/?#:]/,1)[0].toLowerCase();return n===`youtu.be`||n===`youtube.com`||n.endsWith(`.youtube.com`)?`youtube`:n===`strava.com`||n.endsWith(`.strava.com`)?`strava`:n===`amzn.to`||n===`amazon.com`||n.endsWith(`.amazon.com`)?`amazon`:[`baseAttributes`,`metrics.met`,`discipline`,`effortType`,`targetRPE`,`equipment`,`aliases`,`derivation`].some(t=>t in e)?`effort`:[`slug`,`label`,`registrySource`,`ownerNoteId`,`sourcePath`].some(t=>t in e)?`equipment`:`default`}function Aa(e){return/^#{1,6}\s/.test(e)?`heading`:/^[-*+]\s|^\d+\.\s/.test(e)?`list`:/^>\s?/.test(e)?`blockquote`:e.startsWith(`|`)&&/^\|[\s:]*-+/m.test(e)?`table`:`paragraph`}function ja(e,t={}){if(!e)return[];let n=e.split(/\r\n|\n|\r/),r=[],i=[],a=0;for(let t of n){r.push(a),a+=t.length;let n=e.startsWith(`\r
3
3
  `,a)?`\r
4
4
  `:/[\r\n]/.test(e[a]??``)?e[a]:``;i.push(n),a+=n.length}let o=[],s=Date.now(),c=!0,l=0;function u(t,a,o){let c=r[a],l=r[o]+n[o].length;return{id:crypto.randomUUID(),type:t,from:c,to:l,rawContent:e.slice(c,l),displayContent:e.slice(c,l),startLine:a,endLine:o,lineCount:o-a+1,version:1,createdAt:s,separatorAfter:i[o]}}for(;l<n.length;){let a=n[l].trim(),d=a.match(/^(`{3,}|~{3,})(.*)$/);if(d){let a=d[1],c=l+1,f=RegExp(`^${a[0]}{${a.length},}\\s*$`);for(;c<n.length&&!f.test(n[c].trim());)c++;let p=c<n.length,m=p?c:n.length-1,h=d[2].trim(),g=a[0]==="`"?Oa(`\`\`\`${h}`):null,_=a[0]==="`"?h.match(/^widget:([\w-]+)$/):null,v=t.registeredWidgets??Ea,y=_&&(`has`in v?v.has(_[1]):v.includes(_[1])),b=a[0]==="`"&&!y?h.match(/^widget:([a-zA-Z-]+)(?:-(?:full|\d+))?(?:\s+.*)?$/i):null,x=!!(b&&Da[b[1].toLowerCase()]),S=a[0]==="`"?h.match(/^query(?:[:\s](.*))?$/i)??(x?h.match(/^widget:?(.*)$/i):null):null,C=p&&g?g.dialect:p&&y?`widget`:p&&S?`query`:`code`,w=u(C,l,m);w.contentFrom=r[l]+n[l].length+i[l].length,w.contentTo=p?r[c]:w.to,w.displayContent=e.slice(w.contentFrom,w.contentTo),g&&p&&(w.sport=g.sport,w.contentId=ha(w.displayContent),w.scriptBlock={id:w.id,contentId:w.contentId,dialect:g.dialect,sport:g.sport,startLine:l,endLine:m,content:w.displayContent,state:`idle`,version:1,createdAt:s}),C===`widget`&&_&&(w.widgetName=_[1]),C===`query`&&S&&(w.querySuffix=(S[1]??``).trim()),o.push(w),l=m+1;continue}if(a===`---`&&n[l+1]?.trim()){let t=l+1;for(;t<n.length&&n[t].trim()!==`---`&&!/^(`{3,}|~{3,})/.test(n[t].trim());)t++;let i=n.slice(l+1,t);if(n[t]?.trim()===`---`&&i.some(e=>/^[A-Za-z_][\w.-]*\s*:/.test(e.trim()))){let n=u(`frontmatter`,l,t);n.contentFrom=r[l+1],n.contentTo=r[t],n.displayContent=e.slice(n.contentFrom,n.contentTo),n.properties={};for(let e of i){let t=e.match(/^([^:]+):\s*(.*)$/);t&&(n.properties[t[1].trim()]=t[2].trim())}n.frontmatterType=ka(n.properties),o.push(n),l=t+1;continue}}let f=a.match(/^(!)?\[([^\]]*)\]\((https?:\/\/[^)\s]+|\/[^)\s]+)\)$/);if(f){let e=u(`embed`,l,l),t=!!f[1];e.embed={type:t?`image`:/(?:youtube\.com|youtu\.be)/i.test(f[3])?`youtube`:`link`,label:f[2],url:f[3],isImage:t},o.push(e),l++;continue}let p=l;if(a)for(;p+1<n.length&&n[p+1].trim()&&!/^(?:`{3,}|~{3,}|---\s*$|!?\[[^\]]*\]\()/.test(n[p+1].trim());)p++;let m=u(a&&c?`title`:`markdown`,l,p);m.subtype=Aa(m.displayContent.trim()),a&&(c=!1),o.push(m),l=p+1}return o}function Ma(e){return e.type===`time`||e.type===`log`?`wod`:e.type===`query`||e.type===`widget`||e.type===`embed`?e.type:null}function Na(e,t){if(!Number.isSafeInteger(t.sourceRevision)||t.sourceRevision<1)throw Error(`Invalid source revision`);let n=Object.create(null),r=Object.values(t.blocks??{}).filter(e=>e&&typeof e==`object`),i=t.createId??(()=>crypto.randomUUID());for(let a of ja(e,t)){let e=Ma(a);if(!e)continue;let o=r.filter(t=>t.from===a.from&&t.to===a.to&&t.kind===e),s=o.length===1?o[0]:void 0,c=s?.id??i();if(!c||Object.hasOwn(n,c))throw Error(`Duplicate block occurrence ID`);n[c]={id:c,kind:e,from:a.from,to:a.to,sourceRevision:t.sourceRevision,version:s?.version??1,...e===`wod`&&(a.type===`time`||a.type===`log`)?{dialect:a.type,...a.sport?{sport:a.sport}:{}}:{}}}return n}function Pa(e,t,n,r={}){if(typeof e!=`string`||!t||typeof t!=`object`||Array.isArray(t))throw Error(`Invalid Note source or blocks`);for(let[e,r]of Object.entries(t))if(!r||r.id!==e||!e||!Number.isSafeInteger(r.version)||r.version<1||r.sourceRevision!==n||!Number.isSafeInteger(r.from)||!Number.isSafeInteger(r.to))throw Error(`Invalid block identity, version or source revision`);let i=Na(e,{...r,sourceRevision:n,blocks:t});if(Object.keys(i).length!==Object.keys(t).length)throw Error(`Incomplete actionable block map`);for(let[e,n]of Object.entries(t)){let t=i[e];if(!t||t.from!==n.from||t.to!==n.to||t.kind!==n.kind||t.dialect!==n.dialect||t.sport!==n.sport)throw Error(`Block does not match authored source`)}}function Fa(e,t){let n=0;for(let e of t){if(!Number.isSafeInteger(e.from)||!Number.isSafeInteger(e.to)||e.from<n||e.to<e.from||typeof e.insert!=`string`)throw Error(`Invalid source changes`);n=e.to}let r={};for(let n of Object.values(e)){let e=n.from,i=n.to,a=!1;for(let r of t){let t=r.insert.length-(r.to-r.from);if(r.from<=n.from&&r.to>=n.to||r.from<n.from&&r.to>n.from||r.from<n.to&&r.to>n.to){a=!0;break}r.to<=n.from?(e+=t,i+=t):r.from<n.to&&(i+=t)}a||(r[n.id]={...n,from:e,to:i})}return r}var Ia=/^[A-Za-z][\w.-]*$/,La=/^---\r?\n([\s\S]*?)\r?\n---/;function Ra(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function za(e){let t=e.trim();return t===``||t.startsWith(`#`)}function Ba(e){return Array.isArray(e)}function Va(e){if(e===``)return`""`;let t=!isNaN(Number(e)),n=/^(true|false|null|yes|no|on|off)$/i.test(e);return/[:"'\n#{}[\],&*?|<>=%!@`]/.test(e)||e!==e.trim()||e.startsWith(`-`)||t||n?`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`).replace(/\n/g,`\\n`).replace(/\r/g,`\\r`).replace(/\t/g,`\\t`)}"`:e}function Ha(e,t,n){let r=` `.repeat(e);return Ba(n)?n.length===0?[`${r}${t}: []`]:[`${r}${t}:`,...n.map(e=>`${r} - ${typeof e==`number`?String(e):Va(e)}`)]:[`${r}${t}: ${typeof n==`number`?String(n):Va(n)}`]}function Ua(e,t,n,r){let i=[],a=r;for(let r=t;r<e.length;r++)r===e.length-1?i.push(...Ha(a,e[r],n)):i.push(`${` `.repeat(a)}${e[r]}:`),a+=2;return i}function Wa(e){let t=!1,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(n){i===`\\`?r++:i===`"`&&(n=!1);continue}if(t){i===`'`&&(t=!1);continue}if(i===`"`)n=!0;else if(i===`'`)t=!0;else if(i===`#`&&(r===0||/\s/.test(e[r-1])))return r}return-1}function Ga(e,t,n){let r=[t],i=[];for(let a=t+1;a<e.length;a++){let t=e[a];if(za(t)){i.push(a);continue}if(t.length-t.trimStart().length>n)r.push(...i,a),i=[];else break}return r}function Ka(e,t,n,r,i){let a=RegExp(`^ {${n}}${Ra(t)}\\s*:`);for(let t=r;t<i;t++)if(a.test(e[t]))return t;return-1}function qa(e,t,n){if(t.length===0||!t.every(e=>typeof e==`string`&&Ia.test(e)))return e;let r=e.includes(`\r
5
5
  `)?`\r
6
6
  `:`
7
7
  `,i=e.match(La);if(!i){if(n===null)return e;let i=`---${r}${Ua(t,0,n,0).join(r)}${r}---${r}`;return e.length?i+e:i}let a=i[1]===``?[]:i[1].split(/\r?\n/),o=t;if(t.length===1&&Ka(a,t[0],0,0,a.length)===-1){if(t[0].includes(`.`)){let e=t[0].split(`.`),n=Ka(a,e[0],0,0,a.length);if(n!==-1)o=e,/:\s*(?:""|''|\{\})?\s*$/.test(a[n])&&(a[n]=a[n].replace(/:\s*(?:""|''|\{\})\s*$/,`:`));else if(e[0]===`metrics`&&(e[1]===`met`||e[1]===`disciplineFactor`)){let t=Ka(a,`baseAttributes`,0,0,a.length);t!==-1&&Ga(a,t,0).length>1&&(o=[`baseAttributes`,e[1]])}}else if(t[0]===`discipline`||t[0]===`intensityTier`){let e=Ka(a,`baseAttributes`,0,0,a.length);e!==-1&&Ga(a,e,0).length>1&&(o=[`baseAttributes`,t[0]])}}let s=0,c=a.length,l=-1,u=-1,d=[];for(let e=0;e<o.length;e++){let t=e*2,n=Ka(a,o[e],t,s,c);if(n===-1)break;l=e,u=n,d=Ga(a,n,t),s=n+1,c=d[d.length-1]+1}if(n===null){if(l!==o.length-1)return e;let t=new Set(d);for(let e=l-1;e>=0;e--){let n=e*2,r=Ka(a,o[e],n,0,a.length);if(r===-1||t.has(r))break;let i=!1;for(let e=r+1;e<a.length;e++){if(t.has(e))continue;let r=a[e];if(!za(r)){r.length-r.trimStart().length>n&&(i=!0);break}}if(i)break;t.add(r)}let n=a.filter((e,n)=>!t.has(n));return`---${r}${n.length?n.join(r)+r:``}---`+e.slice(i[0].length)}let f,p,m;if(l===o.length-1){if(m=Ha(l*2,o[l],n),!Ba(n)){let e=Wa(a[u]);if(e!==-1){let t=a[u].slice(e).trim();m[0]=`${m[0]} ${t}`}}f=d[0],p=d.length}else f=l===-1?a.length:c,p=0,m=Ua(o,l+1,n,(l+1)*2);let h=[...a];return h.splice(f,p,...m),`---${r}${h.length?h.join(r)+r:``}---`+e.slice(i[0].length)}var Ja=/^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;function Ya(e){return e.replace(/^(['"])(.*)\1$/,(e,t,n)=>t===`"`?n.replace(/\\(["\\nrt])/g,(e,t)=>t===`n`?`
8
- `:t===`r`?`\r`:t===`t`?` `:t):n)}function Xa(e){let t={};for(let n=0;n<e.length;n++){let r=e[n].match(/^([A-Za-z][\w.-]*)\s*:(.*)$/);if(!r)continue;let i=r[1],a=r[2].trim();if(a===``){let r=[];for(;n+1<e.length;){let t=e[n+1].match(/^\s+-\s+(.+)$/);if(!t)break;r.push(Ya(t[1].trim())),n++}if(r.length>0)t[i]=r;else if(i===`metrics`||i===`summaries`||i===`widgets`||i===`baseAttributes`)for(;n+1<e.length;){let r=e[n+1];if(/^\s*(?:#.*)?$/.test(r)){n++;continue}let a=r.match(/^\s{2,}([A-Za-z][\w.-]*)\s*:(.*)$/);if(!a)break;n++;let o=a[1],s=i===`baseAttributes`?o===`met`||o===`disciplineFactor`?`metrics.${o}`:o:`${i}.${o}`,c=a[2].trim();if(c===``){let r=[];for(;n+1<e.length;){let t=e[n+1].match(/^\s{4,}-\s+(.+)$/);if(!t)break;r.push(Ya(t[1].trim())),n++}t[s]=r.length>0?r:``}else{let e=/^(['"])(.*)\1$/.test(c),n=Ya(c),r=Number(n);t[s]=!e&&n!==``&&!isNaN(r)?r:n}}else t[i]=``}else{let e=/^(['"])(.*)\1$/.test(a),n=Ya(a),r=Number(n);t[i]=!e&&n!==``&&!isNaN(r)?r:n}}return t}function Za(e){let t=e.match(Ja);return t?{meta:Xa(t[1].split(/\r?\n/)),body:e.slice(t[0].length)}:{meta:{},body:e}}function Qa(e){return Xa(e.split(/\r?\n/))}function $a(e){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r)){if(r.length===0){t.push(`${n}: ""`);continue}t.push(`${n}:`);for(let e of r)t.push(` - ${Va(e)}`)}else typeof r==`number`?t.push(`${n}: ${r}`):t.push(`${n}: ${Va(r)}`);return t.join(`
8
+ `:t===`r`?`\r`:t===`t`?` `:t):n)}function Xa(e){let t={};for(let n=0;n<e.length;n++){let r=e[n].match(/^([A-Za-z][\w.-]*)\s*:(.*)$/);if(!r)continue;let i=r[1],a=r[2].trim();if(a===``){let r=[];for(;n+1<e.length;){let t=e[n+1].match(/^\s+-\s+(.+)$/);if(!t)break;r.push(Ya(t[1].trim())),n++}if(r.length>0)t[i]=r;else if(i===`metrics`||i===`summaries`||i===`widgets`)for(;n+1<e.length;){let r=e[n+1];if(/^\s*(?:#.*)?$/.test(r)){n++;continue}let a=r.match(/^\s{2,}([A-Za-z][\w.-]*)\s*:(.*)$/);if(!a)break;n++;let o=`${i}.${a[1]}`,s=a[2].trim();if(s===``){let r=[];for(;n+1<e.length;){let t=e[n+1].match(/^\s{4,}-\s+(.+)$/);if(!t)break;r.push(Ya(t[1].trim())),n++}t[o]=r.length>0?r:``}else{let e=/^(['"])(.*)\1$/.test(s),n=Ya(s),r=Number(n);t[o]=!e&&n!==``&&!isNaN(r)?r:n}}else t[i]=``}else{let e=/^(['"])(.*)\1$/.test(a),n=Ya(a),r=Number(n);t[i]=!e&&n!==``&&!isNaN(r)?r:n}}return t}function Za(e){let t=e.match(Ja);return t?{meta:Xa(t[1].split(/\r?\n/)),body:e.slice(t[0].length)}:{meta:{},body:e}}function Qa(e){return Xa(e.split(/\r?\n/))}function $a(e){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r)){if(r.length===0){t.push(`${n}: ""`);continue}t.push(`${n}:`);for(let e of r)t.push(` - ${Va(e)}`)}else typeof r==`number`?t.push(`${n}: ${r}`):t.push(`${n}: ${Va(r)}`);return t.join(`
9
9
  `)}function eo(e){return Za(e).body}function to(e,t){let n=e[t];return typeof n==`string`||typeof n==`number`?n:void 0}function no(e,t){let n=e[t];return Array.isArray(n)?n:[]}function ro(e){return no(Za(e).meta,`category`).map(e=>e.toLowerCase())}function io(e){let t=Ja.test(e)?Za(e).meta:Qa(e),n=t.tags??t.category,r=Array.isArray(n)?n:typeof n==`string`&&n.trim()?n.trim().startsWith(`[`)&&n.trim().endsWith(`]`)?n.trim().slice(1,-1).split(`,`):[n]:[];return[...new Set(r.map(e=>e.trim()).filter(Boolean))]}function ao(e,t=[]){let n=Ja.test(e)?Za(e).meta:Qa(e),r=[];for(let t of io(e))r.push({label:t});let i=Object.keys(n);for(let e of t){if(e===`tags`||e===`category`)continue;let t=i.find(t=>t.toLowerCase()===e.toLowerCase());if(!t)continue;let a=n[t];if(a==null||a===``)continue;let o=[];if(Array.isArray(a))o=a.map(String);else if(typeof a==`string`&&a.trim()){let e=a.trim();o=e.startsWith(`[`)&&e.endsWith(`]`)?e.slice(1,-1).split(`,`):[e]}for(let t of o){let n=t.trim();n&&r.push({label:n,type:e})}}let a=new Map;for(let e of r){let t=a.get(e.label);(!t||!t.type&&e.type)&&a.set(e.label,e)}return Array.from(a.values())}function oo(e){return so(e.split(/\r?\n/))}function so(e){let t={};for(let n of e){let e=n.match(/^([^:]+):\s*(.*)$/);e&&(t[e[1].trim()]=e[2].trim())}return t}var co=class{items=new Map;constructor(e=[]){for(let t of e)this.items.set(t.id,t)}register(e){this.items.set(e.id,e)}unregister(e){this.items.delete(e)}has(e){return this.items.has(e)}get(e){return this.items.get(e)}list(){return[...this.items.values()].sort((e,t)=>(t.priority??0)-(e.priority??0))}get size(){return this.items.size}},lo={REPEATING_INTERVAL:`behavior.repeating_interval`,REQUIRED_TIMER:`behavior.required_timer`,INJECT_REST:`behavior.inject_rest`,LABEL_AMRAP:`workout.amrap`,LABEL_EMOM:`workout.emom`,LABEL_TABATA:`workout.tabata`,LABEL_FOR_TIME:`workout.for_time`};Object.values(lo);function uo(e){if(!e)return[];if(Array.isArray(e.rawMetrics))return e.rawMetrics;let t=e.metrics;return t?Array.isArray(t)?t:t.rawMetrics??[]:[]}function fo(e,t=`dialect`,n){return{type:J.Hint,value:e,image:e,origin:t,...n?{icon:n}:{}}}function po(e,t,n=`dialect`){let r=t??ca.empty(`dialect`),i=new Set(mo(r));for(let t of e)i.has(t)||(i.add(t),r.add(fo(t,n)));return r}function mo(e){return uo(e).filter(e=>e.type===J.Hint&&typeof e.value==`string`).map(e=>e.value)}function ho(e,t){return uo(e).some(e=>e.type===J.Hint&&e.value===t)}var go=/^([a-zA-Z]+)([\s\S]*)$/,_o=class e{defs;byToken;constructor(e=[]){this.defs=e,this.byToken=new Map;for(let t of e){this.byToken.set(t.canonical.toLowerCase(),t);for(let e of t.aliases)this.byToken.set(e.toLowerCase(),t)}}get(e){return this.byToken.get(e.trim().toLowerCase())}has(e){return this.byToken.has(e.trim().toLowerCase())}consumeLeading(e){let t=go.exec(e.trimStart());if(!t)return null;let n=t[1],r=this.get(n);return r?{unit:r,token:n,rest:t[2].trim()}:null}extend(...t){return new e([...this.defs,...t])}toArray(){return[...this.defs]}},vo=[{canonical:`m`,dimension:`length`,aliases:[`meter`,`meters`,`metre`,`metres`]},{canonical:`km`,dimension:`length`,aliases:[`kilometer`,`kilometers`,`kilometre`,`kilometres`]},{canonical:`cm`,dimension:`length`,aliases:[`centimeter`,`centimeters`,`centimetre`,`centimetres`]},{canonical:`mm`,dimension:`length`,aliases:[`millimeter`,`millimeters`,`millimetre`,`millimetres`]},{canonical:`ft`,dimension:`length`,aliases:[`foot`,`feet`]},{canonical:`in`,dimension:`length`,aliases:[`inch`,`inches`]},{canonical:`yd`,dimension:`length`,aliases:[`yard`,`yards`]},{canonical:`mi`,dimension:`length`,aliases:[`mile`,`miles`]},{canonical:`kg`,dimension:`mass`,aliases:[`kilo`,`kilos`,`kilogram`,`kilograms`]},{canonical:`g`,dimension:`mass`,aliases:[`gram`,`grams`]},{canonical:`lb`,dimension:`mass`,aliases:[`lbs`,`pound`,`pounds`]},{canonical:`bw`,dimension:`mass`,aliases:[`bodyweight`]},{canonical:`cal`,dimension:`energy`,aliases:[`cals`,`calorie`,`calories`]},{canonical:`kcal`,dimension:`energy`,aliases:[`kcals`,`kilocalorie`,`kilocalories`]}],yo={standard(){return new _o(vo)},of(e){return new _o(e)}},bo=e=>{if(e==null||!Number.isFinite(e))return`--:--`;let t=e<0,n=Math.floor(Math.abs(e)/1e3),r=Math.floor(n/60),i=n%60;return`${t?`-`:``}${r.toString().padStart(2,`0`)}:${i.toString().padStart(2,`0`)}`},xo=e=>{if(e==null||!Number.isFinite(e))return`--:--:--`;let t=e<0,n=Math.floor(Math.abs(e)/1e3),r=Math.floor(n/3600),i=Math.floor(n%3600/60),a=n%60;return`${t?`-`:``}${r.toString().padStart(2,`0`)}:${i.toString().padStart(2,`0`)}:${a.toString().padStart(2,`0`)}`},So=e=>e==null||!Number.isFinite(e)?`--:--`:Math.floor(Math.abs(e)/1e3)>=3600?xo(e):bo(e),Co=new Set([J.Duration,J.Time,J.Elapsed,J.Total]);function wo(e){return Co.has(e)}function To(e){if(e.image)return e.image;if(e.value===void 0||e.value===null)return e.type;if(typeof e.value==`object`){let t=e.value;return`text`in t?String(t.text):`current`in t?`Round ${t.current}`:JSON.stringify(e.value)}return String(e.value)}function Eo(e,t){if(wo(e.type)&&typeof e.value==`number`)return So(e.value);let n=To(e);if(e.type===J.Rounds||e.type===`rounds`){let e=n.trim();if(/^\d+$/.test(e))return`${n} ${Number(e)===1?`Round`:`Rounds`}`}return n}function Do(e){let t=[];return t.push(`Type: ${e.type}`),e.value!==void 0&&t.push(`Value: ${e.value}`),e.origin&&t.push(`Origin: ${e.origin}`),e.sourceBlockKey&&t.push(`Block: ${e.sourceBlockKey}`),e.timestamp&&t.push(`Time: ${e.timestamp.toISOString()}`),t.join(`
10
10
  `)}var Oo={duration:`Duration`,rep:`Reps`,effort:`Effort`,distance:`Distance`,rounds:`Rounds`,resistance:`Resistance`,action:`Action`,increment:`Increment`,metric:`Metric`,label:`Label`,text:`Text`,custom:`Custom`,calculated:`Calculated`,"current-round":`Current Round`,volume:`Volume`,intensity:`Intensity`,load:`Load`,work:`Work`,lap:`Lap`,group:`Group`,time:`Time`,elapsed:`Elapsed`,total:`Total`,"system-time":`System Time`,spans:`Spans`,system:`System`,rir:`RIR`,"session-rpe":`Session RPE`,"session-load":`Session Load`,"met-score":`MET Score`,tis:`TIS`,sound:`Sound`};function ko(e){let t=e.replace(/[_-]+/g,` `).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1 $2`).trim();return t.length===0?``:t.split(/\s+/).map(e=>e===e.toUpperCase()||/^[A-Z]{2,}$/.test(e)?e:e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(` `)}function Ao(e){let t=String(e).trim();return Oo[t.toLowerCase()]??ko(t)}function jo(e,t){let n=Fo(e,t),r=n.metrics.find(e=>e.type===J.Sound&&typeof e.value==`string`);return{slug:t,label:t,...n.functions.length>0?{functions:[...n.functions]}:{},...r?{soundProfileId:r.value}:{}}}function Mo(e,t=[]){for(let n of e){let e=ma(n.metadata);e&&(t.some(t=>t.slug===e.slug)||t.push(e))}return t}var No=`tag.`,Po={metrics:[],functions:[],tags:[]};function Fo(e,t){if(!e)return Po;let n=[],r=[],i=[],a=new Set,o=new Set,s=(t,c)=>{if(c>8||o.has(t))return;let l=e.resolve(t);if(l){o.add(t),i.push(t);for(let e of l.contributions)e.kind===`metric`?n.push(e):e.kind===`function`&&(a.has(e.name)||(a.add(e.name),r.push(e.name)));for(let e of l.contributions)e.kind===`tag`&&s(e.slug,c+1)}};return s(t,0),{metrics:n,functions:r,tags:i}}function Io(e){if(!e)return[];let t=[],n=new Set,r=(i,a,o)=>{if(o.has(i)){let e=a.indexOf(i);if(e>=0){let r=[...a.slice(e),i],o=Lo(r);n.has(o)||(n.add(o),t.push(r))}return}let s=e.resolve(i);if(!s)return;let c=[...a,i],l=new Set(o);l.add(i);for(let e of s.contributions)e.kind===`tag`&&r(e.slug,c,l)};for(let t of e.list())r(t.slug,[],new Set);return t}function Lo(e){let t=e.slice(0,-1);if(t.length===0)return``;let n=0;for(let e=1;e<t.length;e++)t[e]<t[n]&&(n=e);return[...t.slice(n),...t.slice(0,n)].join(`>`)}function Ro(e){return`${No}${e}`}function zo(e){if(!e.startsWith(`tag.`))return;let t=e.slice(4);return t.length>0?t:void 0}function Bo(e){let t=[];for(let n of e){let e=zo(n.type);e!==void 0&&!t.includes(e)&&t.push(e)}return t}function Vo(e){if(typeof e!=`string`)return!1;let t=e.trim();return!t||/^[+-]?\d+(?:\.\d+)?(?:\s*[A-Za-z%/][\w%/.-]*)?$/.test(t)||/^[a-zA-Z0-9_]+(?:-[a-zA-Z0-9_]+)*$/.test(t)?!1:/[*/+()]|\s-\s|->|\b(?:convert|sum|avg|min|max|count|last|round|floor|ceil|abs|clamp|lookup|when|and|or)\b/.test(t)}function Ho(e,t=`parser`){return e.filter(e=>!e.type.trim().startsWith(`summaries.`)&&!Vo(e.value)).map(e=>({type:e.type,value:e.value,origin:t,image:e.unit?`${String(e.value)} ${e.unit}`:String(e.value),...e.unit?{unit:e.unit}:{}}))}function Uo(e){return e.type.toLowerCase()===`effort`&&(e.value??e.image??``).trim().toLowerCase()===`rest`}function Wo(e,t){return t?`rest`:{time:`time`,duration:`time`,elapsed:`time`,total:`time`,spans:`time`,rep:`rep`,effort:`effort`,distance:`distance`,rounds:`rounds`,increment:`rounds`,"current-round":`rounds`,action:`action`,resistance:`resistance`,text:`muted`,label:`muted`,group:`muted`,lap:`muted`,system:`system`,"system-time":`system`,volume:`rep`,intensity:`effort`,load:`resistance`,work:`effort`,rir:`effort`,"session-rpe":`effort`,"session-load":`resistance`,"met-score":`distance`,tis:`action`,sound:`system`,metric:`effort`,custom:`muted`,calculated:`effort`}[e.type.toLowerCase()]??`unknown`}function Go(){return{isStructural(e){let t=e.type;if(t===J.Group||t===`group`){let t=e.image??``;return t===`+`||t===`-`}return t===J.Lap||t===`lap`},isHidden(e,t){if(this.isStructural(e))return t!==`debug`;let n=e.type;return!!((n===J.Sound||n===`sound`)&&t!==`debug`||n.startsWith(`tag.`)&&t!==`debug`||t===`review-grid-column`&&(n===J.Elapsed||n===`elapsed`||n===J.Total||n===`total`||n===J.System||n===`system`))},present(e,t){let n=this.isStructural(e),r=this.isHidden(e,t),i=Uo(e),a=(e.type===J.Text||e.type===`text`)&&e.origin===`parser`,o=e.origin===`user`,s;return s=r?`hidden`:a?`comment`:t===`timer-subtitle`||t===`history-label`||t===`label-composer`?`plain-text`:t===`review-grid-column`?`column-heading`:`badge`,{metric:e,label:Eo(e,t),tooltip:Do(e),renderKind:s,tone:Wo(e,i),iconKey:i?`rest`:e.type,visible:!r,structural:n,rest:i,comment:a,userEntered:o,columnLabel:Ao(e.type)}},presentGroup(e,t){return e.map(e=>this.present(e,t))},columnLabel(e){return Ao(e)}}}var Ko=Go(),qo=class{effort;value;image;name;origin=`parser`;metadata;constructor(e,t){this.effort=e,this.value=t?.resolvedSlug??e,this.image=e,t?.canonicalLabel&&(this.name=t.canonicalLabel),t?.references&&(this.metadata={[ra]:t.references})}type=J.Effort},Jo=class{unit;value;image;origin;constructor(e,t){this.unit=t,this.value={amount:e,unit:t},this.image=e===void 0?`? ${t}`:`${e} ${t}`,this.origin=e===void 0?`hinted`:`parser`}type=J.Distance},Yo=class{unit;value;image;origin;constructor(e,t){this.unit=t,this.value={amount:e,unit:t},this.image=e===void 0?`? ${t}`:`${e} ${t}`,this.origin=e===void 0?`hinted`:`parser`}type=J.Resistance},Xo=class{unit;dimension;value;image;origin;type;constructor(e,t,n){this.unit=t,this.dimension=n,this.value={amount:e,unit:t},this.image=e===void 0?`? ${t}`:`${e} ${t}`,this.origin=e===void 0?`hinted`:`parser`,this.type=n===`energy`?`energy`:J.Custom}};function Zo(e,t,n){switch(n){case`length`:return new Jo(e,t);case`mass`:return new Yo(e,t);default:return new Xo(e,t,n)}}var Qo=class{alternatives;type=J.Choice;origin=`parser`;value;image;constructor(e){this.alternatives=e,this.value={alternatives:e},this.image=e.map(e=>e.image??String(e.value??``)).join(` | `)}},$o=class{unit;value;image;origin;constructor(e,t=`%`){this.unit=t,this.value={amount:e,unit:t},this.image=e===void 0?`?${t}`:`${e}${t}`,this.origin=e===void 0?`hinted`:`parser`}type=J.Intensity};function es(e){return e.type===J.Rep&&(typeof e.value==`number`||e.value===void 0)}function ts(e){return e.type===J.Effort&&(typeof e.value==`string`?e.value:e.image)===`/`}function ns(e){return e.type===J.Effort&&(typeof e.value==`string`?e.value:e.image)===`|`}function rs(e){return e.type!==J.Effort&&e.type!==J.Text?null:typeof e.value==`string`?e.value:typeof e.image==`string`?e.image:null}function is(e){if(e.type!==J.Distance&&e.type!==J.Resistance)return!1;let t=e.value;return!!t&&t.amount!==void 0&&(!t.unit||t.unit===``)}function as(e,t,n){if(!e||!t)return e??t;let r=e.startOffset,i=(t.startOffset??0)+n.length,a=(t.startOffset??0)-(e.endOffset??0),o=e.raw===void 0?void 0:e.raw+` `.repeat(Math.max(0,a))+n,s=r===void 0?void 0:i-r;return{line:e.line,startOffset:r,endOffset:i,columnStart:e.columnStart,columnEnd:e.columnStart!==void 0&&s!==void 0?e.columnStart+s:e.columnEnd,length:s,raw:o}}function os(e,t){if(!e||e.raw===void 0)return e&&{...e,raw:t};let n=e.raw.indexOf(t),r=n>=0?n:0,i=(e.startOffset??0)+r;return{line:e.line,startOffset:i,endOffset:e.endOffset,columnStart:(e.columnStart??0)+r,columnEnd:e.columnEnd,length:t.length,raw:t}}var ss=/^([\s\S]*?)([a-zA-Z]+)$/;function cs(e){let t=ss.exec(e.trimEnd());return t?{rest:t[1].trim(),token:t[2]}:null}function ls(e,t){return e&&{line:e.line,startOffset:e.startOffset,endOffset:e.startOffset===void 0?e.endOffset:e.startOffset+t.length,columnStart:e.columnStart,columnEnd:e.columnStart===void 0?e.columnEnd:e.columnStart+t.length,length:t.length,raw:t}}function us(e,t){if(!e)return e;let n=Math.max(0,(e.raw?.trimEnd().length??(e.endOffset??0)-(e.startOffset??0))-t.length);return{line:e.line,startOffset:e.startOffset===void 0?void 0:e.startOffset+n,endOffset:e.startOffset===void 0?e.endOffset:e.startOffset+n+t.length,columnStart:e.columnStart===void 0?void 0:e.columnStart+n,columnEnd:e.columnStart===void 0?e.columnEnd:e.columnStart+n+t.length,length:t.length,raw:t}}function ds(e,t){if(!e||!t)return e??t;let n=e.startOffset,r=t.endOffset,i=n!==void 0&&r!==void 0?r-n:void 0;return{line:e.line,startOffset:n,endOffset:r,columnStart:e.columnStart,columnEnd:t.columnEnd,length:i,raw:e.raw}}function fs(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r],a=e[r+1];if(!(ts(i.metric)||ns(i.metric))){if(a){let t=rs(i.metric),o=e[r+2]?rs(e[r+2].metric):null;if(t!==null&&ns(a.metric)&&o!==null){let t=[i.metric],a=r+1;for(;a+1<e.length&&ns(e[a].metric)&&rs(e[a+1].metric)!==null;)t.push(e[a+1].metric),a+=2;n.push({metric:new Qo(t),meta:ds(i.meta,e[a-1].meta)}),r=a-1;continue}}if(a&&e[r+2]&&e[r+3]){let o=e[r+2],s=e[r+3],c=es(i.metric)||is(i.metric),l=es(o.metric)||is(o.metric);if(c&&ns(a.metric)&&l){let e=rs(s.metric),a=e===null?null:t.consumeLeading(e);if(a){let e=es(i.metric)?i.metric.value:i.metric.value.amount,t=es(o.metric)?o.metric.value:o.metric.value.amount,c=Zo(e,a.token,a.unit.dimension),l=Zo(t,a.token,a.unit.dimension);if(c.type===l.type){let e=as(i.meta,s.meta,a.token);n.push({metric:new Qo([c,l]),meta:e}),a.rest&&n.push({metric:new qo(a.rest),meta:os(s.meta,a.rest)}),r+=3;continue}}}}if(a&&e[r+2]&&e[r+3]){let o=e[r+2],s=e[r+3],c=es(i.metric)||is(i.metric),l=es(o.metric)||is(o.metric);if(c&&ts(a.metric)&&l){let e=rs(s.metric),a=e===null?null:t.consumeLeading(e);if(a){let e=es(i.metric)?i.metric.value:i.metric.value.amount,t=es(o.metric)?o.metric.value:o.metric.value.amount;if(e!==void 0&&t!==void 0&&t!==0){let o=Zo(e/t,a.token,a.unit.dimension),c=as(i.meta,s.meta,a.token);n.push({metric:o,meta:c}),a.rest&&n.push({metric:new qo(a.rest),meta:os(s.meta,a.rest)}),r+=3;continue}}}}if(a&&es(i.metric)){let e=rs(a.metric);if(e!==null&&e.trim()===`%`){n.push({metric:new $o(i.metric.value),meta:as(i.meta,a.meta,`%`)}),r++;continue}}if(a&&(es(i.metric)||is(i.metric))){let e=rs(a.metric),o=e===null?null:t.consumeLeading(e);if(o){let e=es(i.metric)?i.metric.value:i.metric.value.amount;n.push({metric:Zo(e,o.token,o.unit.dimension),meta:as(i.meta,a.meta,o.token)}),o.rest&&n.push({metric:new qo(o.rest),meta:os(a.meta,o.rest)}),r++;continue}}if(!a){let e=rs(i.metric),r=e===null?null:cs(e),a=r?t.get(r.token):void 0;if(r&&r.rest&&a&&a.canonical===`bw`){n.push({metric:new qo(r.rest),meta:ls(i.meta,r.rest)}),n.push({metric:Zo(void 0,r.token,a.dimension),meta:us(i.meta,r.token)});continue}}n.push(i)}}return n}function ps(e,t){let n=e.metrics.toArray(),r=fs(n.map(t=>({metric:t,meta:e.metricMeta?.get(t)})),t);if((r.length!==n.length||r.some((e,t)=>e.metric!==n[t]))&&(e.metrics.clear().add(...r.map(e=>e.metric)),e.metricMeta)){let t=new Map(e.metricMeta);for(let e of n)r.some(t=>t.metric===e)||t.delete(e);for(let e of r)e.meta&&t.set(e.metric,e.meta);e.metricMeta=t}}var ms=class{id=`units`;name=`Units Dialect`;units;constructor(e=yo.standard()){this.units=e}transform(e){ps(e,this.units)}analyze(e){return{}}},hs=class{id=`crossfit`;name=`CrossFit Dialect`;hasKeyword(e,t){return e.some(e=>(e.type===J.Action||e.type===J.Effort)&&typeof e.value==`string`&&e.value.toUpperCase().includes(t))}hasChildren(e){return e.children&&e.children.length>0}analyze(e){let t=[],n=ca.from(e.metrics),r=this.hasKeyword(n,`AMRAP`);r&&(t.push(`behavior.time_bound`),t.push(`workout.amrap`));let i=this.hasKeyword(n,`EMOM`);if(i&&(t.push(`behavior.repeating_interval`),t.push(`workout.emom`)),!i&&!r){let r=n.some(e=>e.type===J.Rounds),i=n.some(e=>e.type===J.Duration),a=this.hasChildren(e);r&&i&&a&&(t.push(`behavior.repeating_interval`),t.push(`workout.emom`),t.push(`workout.implicit_emom`))}return this.hasKeyword(n,`FOR TIME`)&&(t.push(`behavior.time_bound`),t.push(`workout.for_time`)),this.hasKeyword(n,`TABATA`)&&(t.push(`behavior.repeating_interval`),t.push(`workout.tabata`)),{metrics:po(t)}}},gs=class{id=`wod`;name=`WOD Dialect`;hasKeyword(e,t){return e.some(e=>(e.type===J.Action||e.type===J.Effort)&&typeof e.value==`string`&&e.value.toUpperCase().includes(t.toUpperCase()))}analyze(e){let t=[],n=ca.from(e.metrics);return this.hasKeyword(n,`STRENGTH`)&&(t.push(`domain.wod`),t.push(`workout.strength`),t.push(`behavior.load_bearing`)),(this.hasKeyword(n,`METCON`)||this.hasKeyword(n,`METABOLIC`))&&(t.push(`domain.wod`),t.push(`workout.metcon`)),(this.hasKeyword(n,`SKILL`)||this.hasKeyword(n,`TECHNIQUE`))&&(t.push(`domain.wod`),t.push(`workout.skills`)),this.hasKeyword(n,`WOD`)&&t.push(`domain.wod`),this.hasKeyword(n,`SUPERSET`)&&(t.push(`domain.wod`),t.push(`workout.superset`)),{metrics:po(t)}}},_s=[{keywords:[`RUN`,`JOG`,`SPRINT`],hints:[`workout.run`,`behavior.aerobic`]},{keywords:[`ROW`,`ROWING`],hints:[`workout.row`,`behavior.aerobic`]},{keywords:[`BIKE`,`CYCLE`,`CYCLING`],hints:[`workout.bike`,`behavior.aerobic`]},{keywords:[`SWIM`,`SWIMMING`],hints:[`workout.swim`,`behavior.aerobic`]},{keywords:[`WALK`,`WALKING`],hints:[`workout.walk`]}],vs=class{id=`cardio`;name=`Cardio Dialect`;hasKeyword(e,t){return e.some(e=>(e.type===J.Action||e.type===J.Effort)&&typeof e.value==`string`&&e.value.toUpperCase().includes(t.toUpperCase()))}hasDistance(e){return e.some(e=>e.type===J.Distance)}analyze(e){let t=[],n=ca.from(e.metrics);for(let e of _s)e.keywords.some(e=>this.hasKeyword(n,e))&&t.push(`domain.cardio`,...e.hints);return t.length===0&&this.hasDistance(n)&&(t.push(`domain.cardio`),t.push(`behavior.distance_based`)),t.includes(`domain.cardio`)&&this.hasDistance(n)&&(t.push(`behavior.distance_based`),t.push(`behavior.pace_based`)),{metrics:po(t)}}},ys=class e{id=`yoga`;name=`Yoga Dialect`;static POSE_KEYWORDS=[`WARRIOR`,`DOWNWARD`,`UPWARD`,`CHILD'S POSE`,`COBRA`,`PIGEON`,`TRIANGLE`,`MOUNTAIN`,`TREE POSE`,`LOTUS`,`CORPSE`,`SAVASANA`,`TADASANA`,`VIRABHADRASANA`,`BALASANA`,`ADHO`,`URDHVA`,`UTTANASANA`,`VRKSASANA`];static FLOW_KEYWORDS=[`SUN SALUTATION`,`VINYASA`,`FLOW`,`SEQUENCE`];static BREATHING_KEYWORDS=[`PRANAYAMA`,`BREATH`,`BREATHING`,`NADI SHODHANA`,`KAPALABHATI`,`UJJAYI`,`BOX BREATH`,`WIM HOF`];static MEDITATION_KEYWORDS=[`MEDITATION`,`MEDITATE`,`MINDFULNESS`,`BODY SCAN`,`VISUALIZATION`];hasAnyKeyword(e,t){return e.some(e=>(e.type===J.Action||e.type===J.Effort||e.type===J.Text)&&typeof e.value==`string`&&t.some(t=>e.value.toString().toUpperCase().includes(t)))}analyze(t){let n=[],r=ca.from(t.metrics),i=r.some(e=>e.type===J.Duration);return this.hasAnyKeyword(r,e.POSE_KEYWORDS)&&(n.push(`domain.yoga`),n.push(`workout.pose`),i&&n.push(`behavior.hold`)),this.hasAnyKeyword(r,e.FLOW_KEYWORDS)&&(n.push(`domain.yoga`),n.push(`workout.flow`)),this.hasAnyKeyword(r,e.BREATHING_KEYWORDS)&&(n.push(`domain.yoga`),n.push(`workout.breathing`),n.push(`behavior.mindful`)),this.hasAnyKeyword(r,e.MEDITATION_KEYWORDS)&&(n.push(`domain.yoga`),n.push(`workout.meditation`),n.push(`behavior.mindful`)),{metrics:po(n)}}},bs=class e{id=`habits`;name=`Habits Dialect`;static HABIT_KEYWORDS=[`DAILY`,`HABIT`,`STREAK`,`CHECK`,`LOG`,`MORNING`,`EVENING`,`ROUTINE`];static STREAK_KEYWORDS=[`STREAK`,`CONSECUTIVE`,`IN A ROW`];hasAnyKeyword(e,t){return e.some(e=>(e.type===J.Action||e.type===J.Effort||e.type===J.Text||e.type===J.Label)&&typeof e.value==`string`&&t.some(t=>e.value.toString().toUpperCase().includes(t)))}analyze(t){let n=[],r=ca.from(t.metrics),i=r.some(e=>e.type===J.Duration),a=r.some(e=>e.type===J.Rep);return this.hasAnyKeyword(r,e.HABIT_KEYWORDS)&&(n.push(`domain.habits`),n.push(`behavior.completable`),i?n.push(`workout.habit_timed`):a?n.push(`workout.habit_rep`):(n.push(`workout.habit_check`),n.push(`behavior.daily`))),this.hasAnyKeyword(r,e.STREAK_KEYWORDS)&&(n.includes(`domain.habits`)||n.push(`domain.habits`),n.push(`behavior.streak`),n.push(`behavior.recurring`)),{metrics:po(n)}}},xs={Discipline:`climb-discipline`,Grade:`climb-grade`,SendType:`climb-send-type`,AttemptCount:`climb-attempt-count`,RouteName:`climb-route-name`,HighPoint:`climb-high-point`},Ss={onsight:`onsight`,os:`onsight`,flash:`flash`,fl:`flash`,redpoint:`redpoint`,rp:`redpoint`,sent:`redpoint`,send:`redpoint`,repeat:`repeat`,"re-send":`repeat`,resend:`repeat`,dogged:`dogged`,hangdog:`dogged`,a0:`dogged`,tr:`top-rope`,toprope:`top-rope`,"top-rope":`top-rope`,dnf:`did-not-finish`,attempted:`did-not-finish`},Cs={boulder:`bouldering`,bouldering:`bouldering`,sport:`sport`,trad:`trad`,"top rope":`top-rope`,toprope:`top-rope`,hangboard:`hangboard`,moonboard:`training-board`,kilter:`training-board`,board:`training-board`};function ws(e){return e?typeof e.value==`string`?e.value:e.value&&typeof e.value==`object`&&`text`in e.value?String(e.value.text??``):typeof e.value==`number`?String(e.value):``:``}function Ts(e){return e.toLowerCase().replace(/[_\s]+/g,`-`).trim()}function Es(e,t,n,r){e.add({type:t,value:n,origin:`dialect`,unit:r})}function Ds(e,t){e.includes(t)||e.push(t)}var Os=class{id=`climb`;name=`Climb Dialect`;analyze(e){let t=[],n=ca.empty(`climb-dialect`),r=ca.from(e.metrics).toArray(),i=r.map(ws).filter(Boolean).join(` `),a=this.findRouteName(r);a&&Es(n,xs.RouteName,a);let o=this.findGrade(r);o&&Es(n,xs.Grade,o);let s=this.findSendType(i);s&&Es(n,xs.SendType,s);let c=this.findAttemptCount(r);c!==void 0&&Es(n,xs.AttemptCount,c);let l=this.findHighPoint(i);l&&Es(n,xs.HighPoint,l);let u=this.findDisciplines(i,o);for(let e of u)Es(n,xs.Discipline,e);(a||o||s||l||u.length>0)&&(t.push(`domain.climb`),t.push(`behavior.route_based`)),o&&t.push(`behavior.grade_based`),c!==void 0&&t.push(`behavior.attempt_based`),s===`did-not-finish`&&t.push(`climb.project`);for(let e of u)t.push(`climb.${e.replace(`-`,`_`)}`);return{metrics:po(t,n)}}findRouteName(e){let t=e.find(e=>e.type===J.Action&&typeof e.value==`string`);return t?.value?String(t.value):void 0}findGrade(e){for(let t=0;t<e.length;t+=1){let n=e[t],r=ws(n),i=ws(e[t+1]),a=r.match(/\bV(\d{1,2})(?:[-+])?\b/i);if(a){let e=Number(a[1]);return{raw:a[0].toUpperCase(),system:`v-scale`,normalizedRank:e}}if(typeof n.value==`number`&&n.value>=5&&n.value<6){let e=i.match(/^\s*([abcd])\b/i)?.[1],t=e?`${n.value}${e}`:String(n.value);if(/^5\.\d{1,2}[abcd]?$/i.test(t))return{raw:t,system:`yds`,normalizedRank:this.ydsRank(t)}}let o=r.match(/\b5\.(\d{1,2})([abcd])?\b/i);if(o)return{raw:o[0],system:`yds`,normalizedRank:this.ydsRank(o[0])};let s=r.match(/\b([3-9][ABC](?:\+)?)\b/);if(s)return{raw:s[1],system:`font`};if(typeof n.value==`number`&&n.value>=3&&n.value<=9){let e=i.match(/^\s*([ABC]\+?)\b/)?.[1];if(e)return{raw:`${n.value}${e}`,system:`font`}}let c=r.match(/\b([3-9][abc](?:\+)?)\b/);if(c)return{raw:c[1],system:`french`}}}ydsRank(e){let t=e.match(/^5\.(\d{1,2})([abcd])?$/i);if(!t)return;let n=Number(t[1]),r=t[2]?.toLowerCase();return n+(r?[`a`,`b`,`c`,`d`].indexOf(r)/4:0)}findSendType(e){let t=e.toLowerCase().match(/[a-z0-9-]+/g)??[];for(let e of t){let t=Ts(e);if(t in Ss)return Ss[t]}if(/\bnot\s+sent\b/i.test(e))return`did-not-finish`;if(/\bwith\s+falls\b/i.test(e))return`dogged`}findAttemptCount(e){return e.find(e=>{if(e.type!==J.Resistance)return!1;let t=e.value;return t&&typeof t.amount==`number`&&String(t.unit??e.unit??``)===``})?.value?.amount}findHighPoint(e){let t=e.match(/\b(?:bolt|move|crux|high\s*point)\s*\d+\b/i)?.[0];return t?t.toLowerCase().replace(/\s+/g,` `):void 0}findDisciplines(e,t){let n=[],r=e.toLowerCase();for(let[e,t]of Object.entries(Cs))r.includes(e)&&Ds(n,t);return(t?.system===`v-scale`||t?.system===`font`)&&Ds(n,`bouldering`),(t?.system===`yds`||t?.system===`french`)&&Ds(n,`sport`),n}};function ks(e){console.warn(e)}var As=`units`,js={climbing:`climb`},Ms=new Set,Ns=new class{dialects;registry;constructor(e){e instanceof co?this.registry=e:this.dialects=e}get effectiveDialects(){return this.registry?this.registry.list():this.dialects??[]}dialectsFor(e){let t=this.effectiveDialects;if(!e)return t;let n=js[e]??e;return t.some(e=>e.id===n)?t.filter(e=>e.id===As||e.id===n):(Ms.has(e)||(Ms.add(e),ks(`[DialectStack] Unknown :sport suffix "${e}" — falling back to the full dialect stack. Known dialect ids: ${t.map(e=>e.id).join(`, `)}.`)),t)}process(e,t){this.applyDialects(e,this.dialectsFor(t))}processAll(e,t){let n=this.dialectsFor(t);for(let t of e)this.applyDialects(t,n)}applyDialects(e,t){for(let n of t){n.transform?.(e);let t=n.analyze(e);t?.metrics?.length&&e.metrics.add(...t.metrics)}}get list(){return this.effectiveDialects}}(new co([new ms,new hs,new gs,new vs,new ys,new bs,new Os])),Ps=class{value;image;raw;name;isPinned;origin=`parser`;constructor(e,t={}){this.raw=t.raw??e,this.isPinned=t.isPinned??this.raw.trim().startsWith(`!`),this.name=t.name??(this.raw.trim().replace(/^!/,``)||e),this.value=this.name,this.image=this.raw}type=J.Action},fee=class{image;forceCountUp;required;value;origin;constructor(e,t=!1,n=!1){if(this.image=e,this.forceCountUp=t,this.required=n,this.image===`:?`)this.days=0,this.hours=0,this.minutes=0,this.seconds=0,this.original=void 0,this.value=void 0,this.origin=`hinted`;else{let e=this.image.split(`:`).map(e=>1*(e===``?0:Number(e))).reverse();for(;e.length<4;)e.push(0);if(this.days=e[3],this.hours=e[2],this.minutes=e[1],this.seconds=e[0],this.seconds<0||this.minutes<0||this.hours<0||this.days<0)throw Error(`Timer components cannot be negative: ${this.image}`);if(this.seconds>59&&(this.minutes>0||this.hours>0||this.days>0))throw Error(`Invalid seconds component: ${this.seconds} (must be < 60 if other components present)`);if(this.minutes>59&&(this.hours>0||this.days>0))throw Error(`Invalid minutes component: ${this.minutes} (must be < 60 if hours/days present)`);this.original=(this.seconds+this.minutes*60+this.hours*60*60+this.days*60*60*24)*1e3,this.value=this.original,this.origin=`parser`}}days;hours;minutes;seconds;original;type=J.Duration;get direction(){return this.forceCountUp||this.value===void 0?`up`:this.value>0?`down`:`up`}},Fs=class{type=J.Equipment;origin;value;image;name;metadata;constructor(e,t){this.value=[...new Set(e)],this.image=t?.source??this.value.join(` `),this.name=t?.refs?.length?t.refs.map(e=>e.label).join(`, `):`equipment`,this.origin=t?.origin??`parser`;let n={matched:t?.matched??`whole`,source:t?.source??this.image,...t?.refs?{refs:t.refs}:{},...t?.diagnostics?.length?{diagnostics:t.diagnostics}:{}};this.metadata={[ra]:n}}},pee=class{group;image;value;constructor(e,t){this.group=e,this.image=t,this.value=e}type=J.Group;origin=`parser`};function mee(e){return e===null?`null`:String(e)}var Is=class{key;value;image;origin;constructor(e,t,n={}){this.key=e,this.value=t,this.image=n.image??`${e}: ${mee(t)}`,this.origin=n.origin??`parser`,this.type=n.type??J.Custom;let r=qi(t);this.metadata={originalKey:e,...r!==`object`&&r!==`undefined`?{fieldRef:{path:Ki(e),kind:r,...n.dimension?{dimension:n.dimension}:{}}}:{}}}type;metadata},Ls=class{reps;value;image;origin;constructor(e){if(this.reps=e,e!==void 0&&e<0)throw Error(`Rep count cannot be negative: ${e}`);this.value=e,this.image=e===void 0?`?`:e.toString(),this.origin=e===void 0?`hinted`:`parser`}type=J.Rep},Rs=class{count;value;image;origin=`parser`;constructor(e){this.count=e,this.value=e,this.image=e.toString()}type=J.Rounds},zs=class{text;level;value;image;origin=`parser`;constructor(e,t){this.text=e,this.level=t,this.value={text:e,level:t},this.image=e}type=J.Text},Bs={rpe:J.SessionRPE,rir:J.RIR,intensity:J.Intensity,load:J.Load,volume:J.Volume,work:J.Work,sound:J.Sound},Vs=new Set([`rest`,`amrap`,`emom`,`tabata`,`for time`]),Hs=yo.standard(),Us=new Set([`effort`,`equipment`]);function Ws(e){return{matched:e.matched,source:e.label,...e.effortRef||e.equipment.length>0?{refs:[...e.effortRef?[e.effortRef]:[],...e.equipment]}:{},...e.remaining?{remaining:e.remaining}:{},...e.diagnostics.length>0?{diagnostics:e.diagnostics}:{}}}function Gs(e,t){return e.statements.map(e=>{let n=new dee,r=[];for(let n of e.primitives)r.push(...hee(n,t));let i=new Set;for(let e of r)e.kind===`explicit`&&i.add(e.pair.metrics.type);let a=new Set,o=[];for(let e of r){if(e.kind!==`contributed`){o.push(e.pair);continue}let t=e.pair.metrics.type;i.has(t)||a.has(t)||(a.add(t),o.push(e.pair))}let s=tc(o),c=t?.index?qs(s,e,t):s;n.metrics=c.map(e=>e.metrics),n.metricMeta=new Map(c.map(e=>[e.metrics,e.meta]));let l=c.find(e=>e.metrics.type===J.Effort)?.metrics,u=oa(l?.metadata)?.refs?.find(e=>e.kind===`effort`);return u?.slug&&(n.exerciseId=u.slug),n.id=e.id,n.line=e.line,n.text=e.meta.raw,n.raw=e.meta.raw,n.meta=e.meta,n.parent=e.parentId,n.children=e.children,n.isLeaf=e.isLeaf,n})}function Ks(e,t,n){if(e.matched!==`split`||!e.remaining)return n;let r=t.trimEnd().length-e.remaining.length;if(r<=0)return n;let i=n.raw.slice(0,r).trimEnd(),a=i.length;return a<=0?n:{...n,endOffset:n.startOffset+a,length:a,columnEnd:n.columnStart+a,raw:i}}function qs(e,t,n){let r=n.index,{defaults:i}=n,a=[],o=(e,t,n)=>{if((e.effortRef||e.matched!==`none`||e.diagnostics.length>0)&&a.push({metrics:new qo(t,{resolvedSlug:e.effortRef?.slug,canonicalLabel:e.effortRef?.label,references:Ws(e)}),meta:n}),e.equipment.length>0){let r=Ks(e,t,n),i=e.matched===`split`?r.raw:e.matched===`explicit`?e.equipment.map(e=>e.label).join(`, `):t;a.push({metrics:new Fs(e.equipment.map(e=>e.slug),{refs:e.equipment,source:i,matched:e.matched,diagnostics:e.diagnostics}),meta:r})}},s=new Set,c=[];for(let e of t.primitives){if(e.kind!==`metric_object`||s.has(e.raw))continue;if(s.add(e.raw),e.pairs.length===0){c.push({metrics:{...fo(`reference.malformed_json`,`parser`),metadata:Ws(r.resolve(e.raw))},meta:e.meta});continue}if(!e.pairs.some(e=>Us.has(e.key.toLowerCase())))continue;let t=r.resolve(e.raw);t.matched===`explicit`&&o(t,e.raw,e.meta);for(let t of e.pairs){if(Us.has(t.key.toLowerCase()))continue;let n=Bs[t.key.toLowerCase()]??J.Custom,r=Array.isArray(t.value)?t.value.join(`, `):t.value;a.push({metrics:new Is(t.key,r,{type:n,image:`${t.key}: ${r}`}),meta:e.meta})}}let l=!1,u=!1,d=!1,f;for(let t of e){let e=t.metrics;if(!(e.type===J.Custom&&s.has(t.meta.raw))){if(e.type===J.Effort){let n=e instanceof qo?e.effort:String(e.value??``),s=n.trim().toLowerCase();if(Vs.has(s)||Hs.has(s)){a.push(t);continue}l=!0;let c=r.resolve(n,i);if(c.matched===`none`&&c.diagnostics.length===0){a.push(t);continue}o(c,n,t.meta);continue}e.type===J.Duration&&(u=!0),(e.type===J.Rep||e.type===J.Rounds||e.type===J.Resistance||e.type===J.Distance)&&(d=!0),a.push(t),f??=t.meta}}if(i&&!l&&t.isLeaf&&d&&!u){let e=r.resolve(``,i);e.effortRef&&o(e,e.effortRef.label,f??t.meta)}return a.push(...c),a}function Js(e,t){if(!t?.index)return;let{index:n,defaults:r}=t;for(let t of e){let e=t.metrics.toArray();if(!e.some(e=>e.type===J.Effort&&!e.metadata))continue;let i=[],a=new Map(t.metricMeta);for(let o of e){if(o.type!==J.Effort||o.metadata){i.push(o);continue}let e=o instanceof qo?o.effort:String(o.value??``),s=e.trim().toLowerCase();if(Vs.has(s)||Hs.has(s)){i.push(o);continue}let c=t.metricMeta?.get(o),l=n.resolve(e,r);if(l.matched===`none`&&l.diagnostics.length===0){i.push(o);continue}if(a.delete(o),l.effortRef||l.matched!==`none`||l.diagnostics.length>0){let n=new qo(e,{resolvedSlug:l.effortRef?.slug,canonicalLabel:l.effortRef?.label,references:Ws(l)});i.push(n),c&&a.set(n,c),l.effortRef?.slug&&(t.exerciseId=l.effortRef.slug)}if(l.equipment.length>0){let t=c?Ks(l,e,c):void 0,n=l.matched===`split`&&t?t.raw:e,r=new Fs(l.equipment.map(e=>e.slug),{refs:l.equipment,source:n,matched:l.matched,diagnostics:l.diagnostics});i.push(r),t&&a.set(r,t)}}t.metrics.clear().add(...i),t.metricMeta=a}}function Ys(e){switch(e.kind){case`lap`:return[{metrics:new pee(e.lapType,e.raw),meta:e.meta}];case`duration`:{let t=[];return e.timerRaw&&t.push({metrics:new fee(e.timerRaw,e.hasTrend,e.isRequired),meta:e.meta}),e.isRequired&&t.push({metrics:fo(`behavior.required_timer`,`parser`),meta:e.meta}),t}case`rounds`:return e.sequence?e.sequence.length===1?[{metrics:new Rs(e.sequence[0]),meta:e.meta}]:[{metrics:new Rs(e.sequence.length),meta:e.meta},...e.sequence.map(t=>({metrics:new Ls(t),meta:e.meta}))]:e.label?[{metrics:new Rs(e.label),meta:e.meta}]:[];case`round_scheme`:return[{metrics:new Rs(e.rounds),meta:e.meta},{metrics:new Ls(e.reps),meta:e.meta}];case`action`:{let t=e.hasColonPrefix?e.raw.substring(2,e.raw.length-1).trim():e.raw.substring(1,e.raw.length-1).trim();return[{metrics:new Ps(t,{raw:t}),meta:e.meta}]}case`text`:return[{metrics:new zs(e.raw.substring(2).trim(),void 0),meta:e.meta}];case`heading`:{let t=e.raw.match(/^(#+)\s*(.*)$/),n=t?String(t[1].length):`1`;return[{metrics:new zs(t?t[2].trim():e.raw.substring(1).trim(),n),meta:e.meta}]}case`quantity`:return e.hasAtSign?[{metrics:new Yo(e.value,``),meta:e.meta}]:[{metrics:new Ls(e.value),meta:e.meta}];case`effort`:return[{metrics:new qo(e.raw),meta:e.meta}];case`property`:return[ec(e)];case`metric_object`:return e.pairs.map(t=>{let n=Bs[t.key.toLowerCase()]??J.Custom,r=Array.isArray(t.value)?t.value.join(`, `):t.value;return{metrics:new Is(t.key,r,{type:n,image:`${t.key}: ${r}`}),meta:e.meta}});default:return[]}}function hee(e,t){return e.kind===`property`&&e.tagRefs!==void 0?Xs(e,t):e.kind===`tag_ref`?Zs(e,t):Ys(e).map(e=>({kind:`explicit`,pair:e}))}function Xs(e,t){let{slots:n,resolved:r}=Qs(e.tagRefs??[],e.meta,t);return r?n:[{kind:`explicit`,pair:ec(e)}]}function Zs(e,t){let{slots:n,resolved:r}=Qs([e.slug],e.meta,t);return r?n:[{kind:`explicit`,pair:{metrics:{type:J.Custom,value:e.raw,origin:`parser`,image:e.raw},meta:e.meta}}]}function Qs(e,t,n){let r=[],i=!1;for(let a of e){let e=Fo(n?.tags,a),o=jo(n?.tags,a),s=Ho(e.metrics);s.length>0&&(i=!0);for(let e of s)r.push({kind:`contributed`,pair:{metrics:$s(e,o),meta:t}});for(let s of e.tags){i=!0;let e=s===a?o:jo(n?.tags,s);r.push({kind:`marker`,pair:{metrics:$s({type:Ro(s),value:s,origin:`parser`,image:s},e),meta:t}})}}return{slots:r,resolved:i}}function $s(e,t){return{...e,metadata:{...e.metadata??{},[pa]:t}}}function ec(e){let t=Bs[e.key.toLowerCase()]??J.Custom;return{metrics:new Is(e.key,e.value,{type:t,image:e.raw}),meta:e.meta}}function tc(e){if(e.length<2)return e;let t=[],n=e[0];for(let r=1;r<e.length;r++){let i=e[r];if(n.metrics instanceof qo&&i.metrics instanceof qo){if(n.metrics.effort===`/`||n.metrics.effort===`|`||i.metrics.effort===`/`||i.metrics.effort===`|`){t.push(n),n=i;continue}let e=i.meta.startOffset-n.meta.endOffset;if(e<=1){let t={...n.meta,endOffset:i.meta.endOffset,columnEnd:i.meta.columnEnd,length:i.meta.endOffset-n.meta.startOffset,raw:n.meta.raw+(e===1?` `:``)+i.meta.raw};n={metrics:new qo(n.metrics.effort+(e===1?` `:``)+i.metrics.effort),meta:t};continue}}if(n.metrics instanceof Ls&&i.metrics instanceof qo&&/^(reps?)$/i.test(i.metrics.effort)){let e=i.meta.startOffset-n.meta.endOffset;if(e<=1){let t={...n.meta,endOffset:i.meta.endOffset,columnEnd:i.meta.columnEnd,length:i.meta.endOffset-n.meta.startOffset,raw:n.meta.raw+(e===1?` `:``)+i.meta.raw};n={metrics:n.metrics,meta:t};continue}}if(n.metrics instanceof Ls&&(i.metrics instanceof Yo||i.metrics instanceof Jo)){let e=i.meta.startOffset-n.meta.endOffset;if(e<=1){let t={...n.meta,endOffset:i.meta.endOffset,columnEnd:i.meta.columnEnd,length:i.meta.endOffset-n.meta.startOffset,raw:n.meta.raw+(e===1?` `:``)+i.meta.raw};if(i.metrics instanceof Yo&&i.metrics.value.amount===void 0){n={metrics:new Yo(n.metrics.reps,i.metrics.unit),meta:t};continue}if(i.metrics instanceof Jo&&i.metrics.value.amount===void 0){n={metrics:new Jo(n.metrics.reps,i.metrics.unit),meta:t};continue}}}t.push(n),n=i}return t.push(n),t}var nc=_i.deserialize({version:14,states:`(dQVQPOOO!mQPO'#DPO$TQPO'#CdOOQO'#Cd'#CdOOQO'#Cg'#CgOOQO'#Ch'#ChOOQO'#Cf'#CfO%hQPO'#CfO%pQPO'#CjOOQO'#Cl'#ClOOQO'#DP'#DPOOQO'#Cu'#CuO%xQPO'#CmOOQO'#Cn'#CnOOQO'#Co'#CoOOQO'#Cq'#CqOOQO'#Cr'#CrOOQO'#Cp'#CpO%}QPO'#CpOOQO'#Cs'#CsOOQO'#Ct'#CtO&tQPO'#CvOOQO'#Ce'#CeOOQO'#C|'#C|O(]QPO'#CcO&{QPO'#CcOOQO'#Cz'#CzQVQPOOO(dQPO,58xOOQO,59Q,59QO(rQPO'#CkOOQO'#C}'#C}O)QQPO,59UOOQO-E6}-E6}O)]QPO,59XOOQO,59[,59[OOQO'#DQ'#DQO)hQPO,59bOOQO,59b,59bOOQO-E6z-E6zOOQO,58},58}O)oQPO,58}OOQO-E6x-E6xOOQO'#C{'#C{OOQO1G.d1G.dO)vQPO'#DOO){QPO,59VOOQO-E6{-E6{OOQO1G.p1G.pO*ZQPO1G.sOOQO-E7O-E7OOOQO1G.|1G.|OOQO1G.i1G.iPOQO-E6y-E6yOOQO,59j,59jOOQO-E6|-E6|OOQO7+$_7+$_`,stateData:"+V~OwOS~ORPOTaOUfO]UOyQOzRO{SO|VO}TO!OWO!QXO!RXO!S[O!TYO!V]O!W^O!X_O!Y`O!ZcO![dO!]eO!`jO~OxlORsXTsXUsX]sXysX{sX|sX}sX!OsX!QsX!RsX!SsX!TsX!VsX!WsX!XsX!YsX!ZsX![sX!]sX!`sX~ORWXTWXUWX]WXyWX{WX|WX}WX!OWX!QWX!RWX!SWX!TWX!VWX!WWX!XWX!YWX!ZWX![WX!]WX!`sX~O]mO}TO~ORoOTnO~OxrO~OTsO!Y`O~ORtOStOTtOktOltOmtOxtO!TtO!^tO~O!_vO~P&VORYOTaOUfO]UOyYO{SO|VO}TO!OWO!QXO!RXO!S[O!TYO!V]O!W^O!X_O!Y`O!ZcO![dO!]eO~O!`xO~P&{OR|OS|OT|OU{O~Oy}OR_XT_X!P_X~ORoOTnO!P!QO~ORYOyYO!TYO~O!_!TO~P&VO!`!UO~P&{OT!WO~Oy}OR_aT_a!P_a~ORYOyYO!TYO!U!YO~O!VU!W!Q!R}]!X{|x!Z![!T!]!_!^klmRyzT!`w!T~",goto:`$ZuPPvPPPPvz!O!V!^!eP!V!o!V!V!V!V!V!s!z!V!V!V!VPPP#U#[#_#j#p#v$TTjOkTiOkZgOhikyZfOhikyZVOhikyYUOhikyRmVToWpZbOhikyYaOhikyRsbQkORzkR|lShOkSwhyRyiQpWR!PpQ!OnR!X!OYZOhikyQq!RR!RrQueR!Su`,nodeNames:`⚠ Program Property Identifier String Number TagRef Block Lap Fragment Duration Trend CollectibleTimer Timer Rounds Sequence RoundScheme Action Text Heading Quantity AtSign Question Slash Pipe Effort MetricObject True False Null`,maxTerm:62,skippedNodes:[0],repeatNodeCount:7,tokenData:"7o~RvXY#iYZ#z]^$Ppq#iqr$Vrs$}st'dtu$Vuv$Vvw$Vxy)Pyz)Uz{)Z{|*T|}*Y}!O+S!O!P+X!P!Q,[!Q![-R![!]/U!_!`$V!a!b/n!b!c/s!c!}0m!}#O0{#O#P$V#P#Q1Q#Q#R1V#T#Y0m#Y#Z2P#Z#b0m#b#c4Q#c#h0m#h#i5p#i#o0m#o#p7`#p#q7e#q#r7j~#nSw~XY#iYZ#z]^$Ppq#i~$PO!`~~$SPYZ#z~$[Z!T~qr$Vtu$Vuv$Vvw$Vz{$V|}$V!O!P$V!_!`$V!b!c$V#O#P$V#Q#R$V~%QXOY$}Z]$}^r$}rs%ms#O$}#O#P&_#P;'S$};'S;=`'^<%lO$}~%rXS~OY$}Z]$}^r$}rs%ms#O$}#O#P&_#P;'S$};'S;=`'^<%lO$}~&bRO;'S$};'S;=`&k;=`O$}~&nYOY$}Z]$}^r$}rs%ms#O$}#O#P&_#P;'S$};'S;=`'^;=`<%l$}<%lO$}~'aP;=`<%l$}~'gXO!Q(S!Q![(n![!c(S!c!}(n!}#T(S#T#o(n#o;'S(S;'S;=`(h<%lO(S~(XT!W~OY(SZ](S^;'S(S;'S;=`(h<%lO(S~(kP;=`<%l(S~(sSU~}!O(n!Q![(n!c!}(n#T#o(n~)UO!O~~)ZO!P~~)bZ|~!T~qr$Vtu$Vuv$Vvw$Vz{$V|}$V!O!P$V!_!`$V!b!c$V#O#P$V#Q#R$V~*YOz~~*aZ!T~!^~qr$Vtu$Vuv$Vvw$Vz{$V|}$V!O!P$V!_!`$V!b!c$V#O#P$V#Q#R$V~+XOy~~+^[!T~qr$Vtu$Vuv$Vvw$Vz{$V|}$V!O!P$V!Q![,S!_!`$V!b!c$V#O#P$V#Q#R$V~,XPT~!Q![,S~,aP!Z~!P!Q,d~,iU!V~OY,dZ],d^s,dt;'S,d;'S;=`,{<%lO,d~-OP;=`<%l,d~-WUT~pq-j!O!P._!Q![-R![!].e!z!{.v#l#m.v~-mRpq-j!z!{-v#l#m-v~-yPpq-|~.PQpq-|!Q![.V~.[P!R~!Q![.V~.bP!Q![,S~.hP!Q![.k~.pQ]~!Q![.k![!].e~.yP!Q![.|~/RP!Q~!Q![.|~/ZQx~!Q![/a!a!b/i~/fP]~!Q![/a~/nO}~~/sO!Y~~/zZ!X~!T~qr$Vtu$Vuv$Vvw$Vz{$V|}$V!O!P$V!_!`$V!b!c$V#O#P$V#Q#R$V~0rRR~!Q![0m!c!}0m#T#o0m~1QO!S~~1VO!U~~1^Z{~!T~qr$Vtu$Vuv$Vvw$Vz{$V|}$V!O!P$V!_!`$V!b!c$V#O#P$V#Q#R$V~2USR~!Q![0m!c!}0m#T#U2b#U#o0m~2gTR~!Q![0m!c!}0m#T#`0m#`#a2v#a#o0m~2{TR~!Q![0m!c!}0m#T#g0m#g#h3[#h#o0m~3aTR~!Q![0m!c!}0m#T#X0m#X#Y3p#Y#o0m~3wRl~R~!Q![0m!c!}0m#T#o0m~4VTR~!Q![0m!c!}0m#T#i0m#i#j4f#j#o0m~4kTR~!Q![0m!c!}0m#T#`0m#`#a4z#a#o0m~5PTR~!Q![0m!c!}0m#T#`0m#`#a5`#a#o0m~5gRm~R~!Q![0m!c!}0m#T#o0m~5uTR~!Q![0m!c!}0m#T#f0m#f#g6U#g#o0m~6ZTR~!Q![0m!c!}0m#T#i0m#i#j6j#j#o0m~6oTR~!Q![0m!c!}0m#T#X0m#X#Y7O#Y#o0m~7VRk~R~!Q![0m!c!}0m#T#o0m~7eO!]~~7jO![~~7oO!_~",tokenizers:[0],topRules:{Program:[0,1]},tokenPrec:439});function rc(e){let t=[0];for(let n=0;n<e.length;n++)e[n]===`
11
11
  `&&t.push(n+1);return e=>{let n=0,r=t.length-1;for(;n<=r;){let i=Math.floor((n+r)/2);t[i]<=e?n=i+1:r=i-1}let i=r>=0?r:0;return{lineNumber:i+1,lineStart:t[i]}}}function ic(e,t){let n=typeof e==`string`?e:e.doc.toString(),r=n.endsWith(`
@@ -81,7 +81,7 @@ sum:$metric{} by {week}
81
81
  - `),override:[JT]}),XT=class{view;rects=[];docVersion=0;listeners=new Set;pendingNotify=null;constructor(e){this.view=e,this.measure()}update(e){e.docChanged&&this.docVersion++,(e.docChanged||e.geometryChanged)&&this.measure()}addListener(e){return this.listeners.add(e),e(this.rects,this.docVersion),()=>{this.listeners.delete(e)}}measure(){try{let e=this.view.state.field(TT,!1)?.sections??[],t=this.view.state.doc.length;this.rects=e.map(e=>{let n=Math.max(0,Math.min(e.from,t)),r=Math.max(0,Math.min(e.to,t)),i=0,a=20,o;try{let e=this.view.lineBlockAt(n),t=this.view.lineBlockAt(r);i=e.top,o=e.height,a=t.top+t.height}catch{}let s=Math.max(a-i,20);return{sectionId:e.id,top:i,height:s,firstLineHeight:o,type:e.type,subtype:e.subtype,widgetName:e.widgetName}}),this.notify()}catch{}}notify(){if(typeof requestAnimationFrame==`function`){if(this.pendingNotify!==null)return;this.pendingNotify=requestAnimationFrame(()=>{this.pendingNotify=null;for(let e of this.listeners)e(this.rects,this.docVersion)})}else for(let e of this.listeners)e(this.rects,this.docVersion)}destroy(){this.pendingNotify!==null&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(this.pendingNotify),this.listeners.clear()}},ZT=Rr.fromClass(XT),QT=Lr.line({attributes:{class:`cm-wod-fence cm-wod-fence-open`}}),$T=Lr.line({attributes:{class:`cm-wod-fence cm-wod-fence-close`}}),eE=Lr.line({attributes:{class:`cm-wod-inner`}});function tE(e){let t=new pi,{sections:n}=e.field(TT);for(let r of n){if(r.type!==`time`&&r.type!==`log`)continue;let n=e.doc.line(r.startLine),i=e.doc.line(r.endLine);if(r.endLine<=r.startLine){t.add(n.from,n.from,QT);continue}t.add(n.from,n.from,QT);for(let n=r.startLine+1;n<r.endLine;n++){let r=e.doc.line(n);t.add(r.from,r.from,eE)}t.add(i.from,i.from,$T)}return t.finish()}var nE=[ni.define({create(e){return tE(e)},update(e,t){return t.docChanged?tE(t.state):e},provide:e=>Tr.decorations.from(e)}),Tr.baseTheme({".cm-wod-fence":{opacity:`0.5`,fontSize:`0.85em`,color:`hsl(var(--metric-time))`,paddingLeft:`8px`,paddingRight:`8px`,backgroundColor:`rgba(128, 128, 128, 0.05)`,borderLeft:`1px solid hsl(var(--border) / 0.5)`,borderRight:`1px solid hsl(var(--border) / 0.5)`,boxSizing:`border-box`},".cm-wod-fence-open":{borderTop:`1px solid hsl(var(--border) / 0.5)`,borderRadius:`6px 6px 0 0`,paddingTop:`26px`,backgroundColor:`transparent`,backgroundImage:`linear-gradient(to bottom, transparent 27px, rgba(128, 128, 128, 0.05) 27px)`},".cm-wod-fence-close":{borderBottom:`1px solid hsl(var(--border) / 0.5)`,borderRadius:`0 0 6px 6px`},".cm-wod-inner":{paddingLeft:`8px`,paddingRight:`8px`,backgroundColor:`rgba(128, 128, 128, 0.05)`,borderLeft:`1px solid hsl(var(--border) / 0.5)`,borderRight:`1px solid hsl(var(--border) / 0.5)`,boxSizing:`border-box`}})],rE=class extends wr{height;constructor(e){super(),this.height=e}eq(e){return e.height===this.height}toDOM(){let e=document.createElement(`div`);return e.className=`cm-embed-spacer`,e.style.height=`${this.height}px`,e.style.pointerEvents=`none`,e}get estimatedHeight(){return this.height}get block(){return!0}};function iE(e){let t=new pi,{sections:n}=e.field(TT);for(let r of n)if(r.type===`embed`&&r.embed?.height){let n=e.doc.line(r.startLine);t.add(n.from,n.from,Lr.widget({widget:new rE(r.embed.height),side:1}))}return t.finish()}var aE=[ni.define({create(e){return iE(e)},update(e,t){return t.docChanged?iE(t.state):e},provide:e=>Tr.decorations.from(e)})];function oE(e,t,n,r,i=8){let a=Math.min(Math.max(e.width,192),320),o=Math.min(Math.max(n,0),256),s={top:e.bottom+i,bottom:e.bottom+i+o},c={top:e.top-i-o,bottom:e.top-i},l=s.bottom<=t.height,u=c.top>=0,d=(r&&s.bottom>r.top&&s.top<r.bottom||!l)&&u?`above`:`below`,f=d===`below`?s:c;return{left:Math.min(Math.max(i,e.left),Math.max(i,t.width-a-i)),top:Math.min(Math.max(i,f.top),Math.max(i,t.height-o-i)),width:a,placement:d}}var sE=0,cE=class{element;inputElement;onPick;avoid;listId;currentChoices=[];currentIndex=-1;isOpen=!1;constructor(e,t){this.inputElement=e,this.onPick=t.onPick,this.avoid=t.avoid,this.listId=`frontmatter-suggestions-${++sE}`;let n=document.createElement(`div`);n.id=this.listId,n.setAttribute(`role`,`listbox`),n.setAttribute(`aria-label`,t.label),n.tabIndex=-1,n.className=`fixed z-[60] max-h-64 overflow-auto rounded-md border border-border bg-popover text-popover-foreground shadow-md text-xs`,n.hidden=!0,this.element=n,document.body.appendChild(n),e.setAttribute(`role`,`combobox`),e.setAttribute(`aria-haspopup`,`listbox`),e.setAttribute(`aria-autocomplete`,`list`),e.setAttribute(`aria-controls`,this.listId),e.setAttribute(`aria-expanded`,`false`)}get choices(){return this.currentChoices}get activeIndex(){return this.currentIndex}setChoices(e){this.currentChoices=e,this.currentIndex=-1,this.inputElement.removeAttribute(`aria-activedescendant`),this.element.replaceChildren(),e.forEach((e,t)=>{let n=document.createElement(`div`);n.id=`${this.listId}-${t}`,n.setAttribute(`role`,`option`),n.setAttribute(`aria-selected`,`false`),n.className=`cursor-pointer px-2 py-1.5 hover:bg-muted`,n.textContent=e.label,n.addEventListener(`mousedown`,e=>e.preventDefault()),n.addEventListener(`click`,()=>this.pick(e)),this.element.appendChild(n)})}open(){this.isOpen||(this.isOpen=!0,this.element.hidden=!1,this.position(),this.inputElement.setAttribute(`aria-expanded`,`true`),window.addEventListener(`scroll`,this.handleViewportChange,!0),window.addEventListener(`resize`,this.handleViewportChange))}close(){this.isOpen&&(this.isOpen=!1,this.element.hidden=!0,this.currentIndex=-1,this.inputElement.setAttribute(`aria-expanded`,`false`),this.inputElement.removeAttribute(`aria-activedescendant`),window.removeEventListener(`scroll`,this.handleViewportChange,!0),window.removeEventListener(`resize`,this.handleViewportChange))}destroy(){this.close(),this.element.remove()}activate(e){this.currentIndex=e,Array.from(this.element.children).forEach((t,n)=>{t.setAttribute(`aria-selected`,String(n===e)),t.classList.toggle(`bg-muted`,n===e)});let t=this.element.children[e];t&&(this.inputElement.setAttribute(`aria-activedescendant`,t.id),t instanceof HTMLElement&&t.scrollIntoView?.({block:`nearest`}))}moveActive(e){if(this.currentChoices.length===0)return;let t=this.currentIndex<0?e>0?0:this.currentChoices.length-1:(this.currentIndex+e+this.currentChoices.length)%this.currentChoices.length;this.activate(t)}pickActive(){let e=this.currentChoices[this.currentIndex];e&&this.pick(e)}pick(e){this.inputElement.value=e.value,this.close(),this.onPick(e)}handleViewportChange=()=>{this.isOpen&&this.position()};position(){let e=this.inputElement.getBoundingClientRect(),t=(this.avoid?.()??null)?.getBoundingClientRect(),n=Math.min(this.element.scrollHeight,256),r=oE({top:e.top,bottom:e.bottom,left:e.left,width:e.width},{width:window.innerWidth,height:window.innerHeight},n,t?{top:t.top,bottom:t.bottom,left:t.left,right:t.right}:void 0);this.element.style.width=`${r.width}px`,this.element.style.maxHeight=`${n}px`,this.element.style.left=`${r.left}px`,this.element.style.top=`${r.top}px`,this.element.dataset.placement=r.placement}},lE=Ur.define({combine:e=>e[0]??null}),uE=Ur.define({combine:e=>e[0]??null}),dE=Kr.define(),fE=Ur.define({combine:e=>e[0]??!0}),pE=Ur.define({combine:e=>e[0]??!1}),mE=new Set([`type`,`id`,`registrysource`,`registry-source`]);function hE(e){return mE.has(e.trim().toLowerCase())}var gE=Kr.define(),_E=ni.define({create:()=>!1,update(e,t){for(let e of t.effects)if(e.is(gE))return e.value;return e}}),vE=Kr.define(),yE=ni.define({create:()=>!1,update(e,t){let n=e;for(let e of t.effects)e.is(vE)&&(n=e.value);if(n&&t.selection){let e=t.state.field(TT).sections.find(e=>e.type===`frontmatter`);(!e||!t.state.selection.ranges.some(t=>t.from<=e.to&&t.to>=e.from))&&(n=!1)}return n}}),bE=new WeakMap,xE=new WeakMap;function SE(e){let{sections:t}=e.state.field(TT),n=t.find(e=>e.type===`frontmatter`),r=n?Math.min(e.state.doc.length,n.to):0;e.dispatch({selection:{anchor:r},scrollIntoView:!0}),e.focus()}function CE(e,t,n){let{sections:r}=e.state.field(TT),i=r.find(e=>e.type===`frontmatter`);if(!i){bE.set(e,{kind:`key`,key:`property`}),PE(e,`new`,[`property`],``,!0);return}e.state.field(_E)||e.dispatch({effects:gE.of(!0)});let a=t??e.dom.querySelector(`.cm-frontmatter-preview`),o=a?.querySelector(`input[data-frontmatter-field="key"]:is([value=""], [value="property"])`);if(o){o.focus(),o.select?.();return}let s=a?.querySelector(`button[aria-label="Add property"]`);if(s){s.click();return}bE.set(e,{kind:`key`,key:`property`}),PE(e,i.id,[`property`],``,!0)}var wE=new WeakMap,TE=0,EE={tag:!0,tags:!0,category:!0,domain:!0,format:!0,equipment:!0,effort:!0,quality:!0,intent:!0,discipline:!0,intensity:!0,intensitytier:!0,sound:!0};function DE(e){return[`tag`,`tags`,`category`].includes(e.trim().toLowerCase())}function OE(e,t){let n=document.createElement(`span`);return n.id=`frontmatter-hint-${++TE}`,n.className=`sr-only`,n.textContent=t,e.appendChild(n),n}function kE(){let e=document.createElement(`div`);e.className=`flex items-center border-b border-border text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`;let t=document.createElement(`div`);t.dataset.frontmatterColumn=`key`,t.className=`px-3 py-1.5 w-36 shrink-0 border-r border-border max-[479px]:w-auto max-[479px]:border-r-0 max-[479px]:border-b`,t.textContent=`Key`;let n=document.createElement(`div`);n.dataset.frontmatterColumn=`value`,n.className=`px-3 py-1.5 flex-1 min-w-0`,n.textContent=`Value`;let r=document.createElement(`div`);return r.className=`w-9 shrink-0`,e.append(t,n,r),e}function AE(e,t){e.querySelector(`[data-frontmatter-column]`)||e.insertBefore(kE(),t)}function jE(e,t,n,r,i,a,o,s=`tags`){let c=t.state.facet(lE);if(!c||!e.parentElement)return;let l=new cE(e,{label:r===`key`?`Suggested properties`:ME(s),onPick:()=>o(!0),avoid:()=>n.querySelector(`[data-frontmatter-actions]`)}),u=0,d=()=>{u++,l.close()},f=async(t=!1)=>{d();let n=++u,o=t?``:e.value.trim().toLowerCase();try{let t=await c();if(n!==u||!e.isConnected||document.activeElement!==e)return;let d;if(r===`key`)d=t.types.map(e=>({value:e,label:e,haystack:e}));else if(s===`effort`||s===`equipment`)d=(s===`effort`?t.efforts??[]:t.equipment??[]).map(e=>({value:e.slug,label:e.label.toLowerCase()===e.slug.toLowerCase()?e.label:`${e.label} (${e.slug})`,haystack:[e.label,e.slug,...e.aliases].join(` `).toLowerCase()}));else{let e=i.trim().toLowerCase(),n=t.tags.filter(t=>DE(i)||t.type?.toLowerCase()===e).map(e=>({value:e.label,label:e.label,haystack:e.label.toLowerCase()}));d=n.length>0?n:e===`discipline`?Xc.map(e=>({value:e,label:e,haystack:e.toLowerCase()})):e===`intensitytier`||e===`intensity`?[`low`,`moderate`,`high`].map(e=>({value:e,label:e,haystack:e})):[]}let f=new Set(a.map(e=>e.toLowerCase())),p=new Set,m=d.filter(e=>{let t=e.value.toLowerCase();return f.has(t)||p.has(t)||o!==``&&!e.haystack.includes(o)?!1:(p.add(t),!0)}).map(e=>({value:e.value,label:e.label}));l.setChoices(m),m.length>0&&l.open()}catch{n===u&&d()}};e.addEventListener(`focus`,()=>void f(!0)),e.addEventListener(`input`,()=>void f(!1)),e.addEventListener(`blur`,d),e.addEventListener(`keydown`,e=>{if(e.ctrlKey&&(e.code===`Space`||e.key===` `))e.preventDefault(),f(!0);else if(e.key===`Escape`)e.preventDefault(),d();else if(e.key===`ArrowDown`||e.key===`ArrowUp`){if(l.choices.length===0)return;e.preventDefault(),l.moveActive(e.key===`ArrowDown`?1:-1)}else if(e.key===`Enter`||e.key===`Tab`){if(l.activeIndex<0)return;e.preventDefault(),l.pickActive()}}),wE.get(n)?.push(()=>l.destroy())}function ME(e){return e===`effort`?`Suggested efforts`:e===`equipment`?`Suggested equipment`:`Suggested tags`}function NE(e){if(Array.isArray(e))return e.map(String).map(e=>e.trim()).filter(Boolean);if(typeof e==`string`&&e.trim()){let t=e.trim();return t.startsWith(`[`)&&t.endsWith(`]`)?t.slice(1,-1).split(`,`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean):[t.replace(/^['"]|['"]$/g,``)]}return[]}function PE(e,t,n,r,i=!1){if(e.state.readOnly)return;let a=e.state.doc.toString(),o=qa(a,n,r);if(o===a){i&&e.dispatch({effects:gE.of(!0)});return}let s=e.state.selection.main.anchor,c=o.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/)?.[0].length??0,l=s<=c?c:Math.min(s,o.length);e.dispatch({changes:{from:0,to:a.length,insert:o},selection:{anchor:l},...i?{effects:gE.of(!0)}:{}})}function FE(e,t,n,r,i){if(e.state.readOnly)return;let a=e.state.doc.toString(),o=qa(qa(a,[r],i),[n],null);if(o===a)return;let s=e.state.selection.main.anchor,c=o.match(/^---\r?\n[\s\S]*?\r?\n---\r?\n?/)?.[0].length??0,l=s<=c?c:Math.min(s,o.length);e.dispatch({changes:{from:0,to:a.length,insert:o},selection:{anchor:l}})}function IE(e){let t=typeof e.type==`string`?e.type.trim().toLowerCase():``;return t===`effort`?`effort`:t===`equipment`?`equipment`:e.registrySource!==void 0||e.baseAttributes!==void 0?`effort`:null}function LE(e,t){let n=e.trim().toLowerCase();return n===`metrics.effort`||n===`effort`?`effort`:n===`metrics.equipment`||n===`equipment`||n===`aliases`&&t===`equipment`?`equipment`:n===`aliases`&&t===`effort`?`effort`:`tags`}function RE(e,t){let n=e.trim().toLowerCase();return n===`metrics.effort`||n===`metrics.equipment`||n===`equipment`&&t===`effort`}function zE(e,t,n,r){let i=document.createElement(`div`);i.className=`flex items-center min-h-[34px] border-b border-dashed border-border last:border-b-0 group hover:bg-muted/10 transition-colors max-[479px]:flex-col max-[479px]:items-stretch`,i.setAttribute(`data-frontmatter-tag-draft`,`true`),i.dataset.frontmatterRow=n;let a=document.createElement(`div`);a.className=`flex items-center gap-2 px-3 py-1.5 w-36 shrink-0 border-r border-dashed border-border text-muted-foreground max-[479px]:w-auto max-[479px]:border-r-0 max-[479px]:border-b`,a.appendChild(GE());let o=document.createElement(`span`);o.className=`truncate font-medium text-foreground/90`,o.textContent=n,a.appendChild(o),i.appendChild(a);let s=document.createElement(`div`);s.className=`flex items-center flex-wrap gap-1.5 px-3 py-1.5 flex-1 min-w-0`;let c=document.createElement(`input`);c.className=`flex-none w-44 max-w-full rounded-md border border-field-border bg-background/60 px-2 py-1 text-xs text-foreground outline-none placeholder:text-field-placeholder focus:border-ring focus:ring-1 focus:ring-ring`,c.placeholder=`Add tag…`,c.setAttribute(`aria-label`,`Value for ${n}`),c.dataset.frontmatterField=`value`,c.dataset.frontmatterProperty=n,c.setAttribute(`aria-describedby`,OE(s,`Press Enter to add the value.`).id),s.appendChild(c),i.appendChild(s);let l=!1,u=t=>{if(!l){if(l=!0,t){let e=c.value.trim().replace(/^,|,$/g,``);e&&r(e)}i.remove(),e.requestMeasure()}},d=()=>u(!0),f=()=>u(!1);return jE(c,e,t,`value`,n,[],d),c.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),f();return}e.defaultPrevented||(e.key===`Enter`||e.key===`,`)&&(e.preventDefault(),d())}),c.addEventListener(`blur`,()=>queueMicrotask(()=>{c.isConnected&&(c.value.trim()?d():f())})),i}function BE(e,t){let n=e.split(/\r?\n/);for(let e=0;e<n.length;e++)if(RegExp(`^${t.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}:\\s*$`).test(n[e]))return e+1<n.length&&/^\s+\S/.test(n[e+1]);return!1}function VE(e,t,n){let r=t.trim();if(!r||e.resolveEffort(r))return null;let i=e.resolve(r).diagnostics,a=document.createElement(`div`);a.setAttribute(`data-testid`,`editor-ref-unknown`),a.className=`w-full basis-full flex flex-wrap items-center gap-2 text-[10px] text-destructive`;let o=document.createElement(`span`);o.textContent=i[0]?.message||`Unknown effort: ${r}`,a.appendChild(o);for(let e of i[0]?.candidates??[]){let t=document.createElement(`button`);t.type=`button`,t.textContent=`Use ${e}`,t.className=`underline hover:text-foreground cursor-pointer`,t.addEventListener(`click`,t=>{t.preventDefault(),n(e)}),a.appendChild(t)}let s=document.createElement(`a`);return s.href=e.createHref(`effort`),s.textContent=`Create page`,s.className=`underline hover:text-foreground`,a.appendChild(s),a}var HE={effort:{label:`Effort`,path:`metrics.effort`,kind:`effort`},equipment:{label:`Equipment`,path:`metrics.equipment`,kind:`equipment`},rpe:{label:`RPE`,path:`metrics.rpe`,kind:`number`},custom:{label:`Custom / Equation`,path:`metrics.`,kind:`custom`}};function UE(e,t,n,r){let i=document.createElement(`div`);i.className=`flex items-center min-h-[34px] border-b border-dashed border-border last:border-b-0 group hover:bg-muted/10 transition-colors max-[479px]:flex-col max-[479px]:items-stretch`,i.setAttribute(`data-frontmatter-metric-draft`,`true`),i.dataset.frontmatterRow=`metric`;let a=document.createElement(`select`);a.setAttribute(`aria-label`,`Metric kind`),a.className=`mx-3 my-1.5 h-7 w-28 shrink-0 rounded-md border border-input bg-background px-1.5 text-[11px] text-muted-foreground outline-none`;for(let[e,t]of Object.entries(HE)){let n=document.createElement(`option`);n.value=e,n.textContent=t.label,a.appendChild(n)}i.appendChild(a);let o=document.createElement(`div`);o.className=`flex items-center flex-wrap gap-1.5 px-3 py-1.5 flex-1 min-w-0`;let s=null,c=document.createElement(`input`);c.className=`flex-none w-44 max-w-full rounded-md border border-field-border bg-background/60 px-2 py-1 text-xs text-foreground outline-none placeholder:text-field-placeholder focus:border-ring focus:ring-1 focus:ring-ring`,c.placeholder=`Value…`,c.setAttribute(`aria-label`,`Metric value`),c.dataset.frontmatterField=`value`,c.setAttribute(`aria-describedby`,OE(o,`Press Enter to apply the metric value.`).id),o.appendChild(c),i.appendChild(o);let l=!1,u=t=>{if(l)return;l=!0;let n=HE[a.value],o=c.value.trim();if(t&&n&&o){if(n.kind===`equipment`)r([n.path],[o]);else if(n.kind===`number`){let e=Number(o);Number.isNaN(e)||r([n.path],e)}else if(n.kind===`custom`){let e=(s?.value.trim()||`custom`).replace(/^metrics\./i,``),t=Number(o);r([`metrics.${e}`],!Number.isNaN(t)&&o!==``?t:o)}else r([n.path],o)}i.remove(),e.requestMeasure()},d=()=>{let r=HE[a.value];r?.kind===`custom`?(s||(s=document.createElement(`input`),s.className=`flex-none w-32 max-w-full rounded-md border border-field-border bg-background/60 px-2 py-1 text-xs text-foreground outline-none placeholder:text-field-placeholder focus:border-ring focus:ring-1 focus:ring-ring`,s.placeholder=`Metric key…`,s.setAttribute(`aria-label`,`Metric key`),s.dataset.frontmatterField=`key`,s.addEventListener(`keydown`,e=>{e.key===`Escape`?(e.preventDefault(),u(!1)):e.key===`Enter`&&(e.preventDefault(),c.value.trim()?u(!0):c.focus())}),o.insertBefore(s,c)),c.placeholder=`Value or equation…`):s&&(s.remove(),s=null,c.placeholder=`Value…`),r&&(r.kind===`effort`||r.kind===`equipment`)&&n&&jE(c,e,t,`value`,r.path,[],()=>u(!0),r.kind)};return d(),a.addEventListener(`change`,d),c.addEventListener(`keydown`,e=>{if(!(e.defaultPrevented&&e.key!==`Escape`)){if(e.key===`Escape`){e.preventDefault(),u(!1);return}e.key===`Enter`&&(e.preventDefault(),u(!0))}}),c.addEventListener(`blur`,()=>queueMicrotask(()=>{c.isConnected&&(i.contains(document.activeElement)||u(c.value.trim().length>0))})),a.addEventListener(`keydown`,e=>{e.key===`Escape`&&(e.preventDefault(),u(!1))}),i}function WE(e,t){let n=document.createElement(`div`);n.className=`flex items-center min-h-[34px] border-b border-dashed border-border last:border-b-0 group hover:bg-muted/10 transition-colors max-[479px]:flex-col max-[479px]:items-stretch`,n.setAttribute(`data-frontmatter-summary-draft`,`true`),n.dataset.frontmatterRow=`summary`;let r=document.createElement(`div`);r.className=`flex items-center gap-2 px-3 py-1.5 w-36 shrink-0 border-r border-dashed border-border text-muted-foreground max-[479px]:w-auto max-[479px]:border-r-0 max-[479px]:border-b`,r.appendChild(KE());let i=document.createElement(`input`);i.className=`w-full rounded-md border border-field-border bg-background/60 px-2 py-1 text-xs text-foreground outline-none placeholder:text-field-placeholder focus:border-ring focus:ring-1 focus:ring-ring`,i.placeholder=`Summary key…`,i.setAttribute(`aria-label`,`Summary key`),i.dataset.frontmatterField=`key`,i.setAttribute(`aria-describedby`,OE(r,`Summary metric name. Press Enter to move to the equation.`).id),r.appendChild(i),n.appendChild(r);let a=document.createElement(`div`);a.className=`flex items-center flex-wrap gap-1.5 px-3 py-1.5 flex-1 min-w-0`;let o=document.createElement(`input`);o.className=`flex-1 min-w-[160px] rounded-md border border-field-border bg-background/60 px-2 py-1 text-xs text-foreground outline-none placeholder:text-field-placeholder focus:border-ring focus:ring-1 focus:ring-ring`,o.placeholder=`Equation (e.g. sum(work))…`,o.setAttribute(`aria-label`,`Summary equation`),o.dataset.frontmatterField=`value`,o.setAttribute(`aria-describedby`,OE(a,`Summary equation. Press Enter to apply.`).id),a.appendChild(o),n.appendChild(a);let s=!1,c=r=>{if(s)return;s=!0;let a=i.value.trim(),c=(a||`summary`).replace(/^summaries\./i,``),l=o.value.trim();r&&(l||a)&&t([`summaries.${c}`],l),n.remove(),e.requestMeasure()};i.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),c(!1);return}e.key===`Enter`&&(e.preventDefault(),o.value.trim()?c(!0):o.focus())}),o.addEventListener(`keydown`,e=>{if(e.key===`Escape`){e.preventDefault(),c(!1);return}e.key===`Enter`&&(e.preventDefault(),c(!0))});let l=()=>queueMicrotask(()=>{n.isConnected&&(n.contains(document.activeElement)||c(i.value.trim().length>0||o.value.trim().length>0))});return i.addEventListener(`blur`,l),o.addEventListener(`blur`,l),n}function GE(){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);e.setAttribute(`viewBox`,`0 0 24 24`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-width`,`2`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`class`,`shrink-0 h-3.5 w-3.5 text-muted-foreground/70`);let t=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);t.setAttribute(`d`,`M12 2H2v10l9.29 9.29c.94.94 2.48.94 3.42 0l6.58-6.58c.94-.94.94-2.48 0-3.42L12 2Z`),e.appendChild(t);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`circle`);return n.setAttribute(`cx`,`7`),n.setAttribute(`cy`,`7`),n.setAttribute(`r`,`.5`),n.setAttribute(`fill`,`currentColor`),e.appendChild(n),e}function KE(){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);e.setAttribute(`viewBox`,`0 0 24 24`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-width`,`2`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`class`,`shrink-0 h-3.5 w-3.5 text-muted-foreground/70`);for(let t of[`6`,`12`,`18`]){let n=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);n.setAttribute(`x1`,`4`),n.setAttribute(`x2`,`20`),n.setAttribute(`y1`,t),n.setAttribute(`y2`,t),e.appendChild(n)}return e}function qE(){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);e.setAttribute(`viewBox`,`0 0 24 24`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-width`,`2`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`class`,`shrink-0 h-3 w-3`);let t=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);t.setAttribute(`x1`,`12`),t.setAttribute(`x2`,`12`),t.setAttribute(`y1`,`5`),t.setAttribute(`y2`,`19`),e.appendChild(t);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);return n.setAttribute(`x1`,`5`),n.setAttribute(`x2`,`19`),n.setAttribute(`y1`,`12`),n.setAttribute(`y2`,`12`),e.appendChild(n),e}function JE(){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);e.setAttribute(`viewBox`,`0 0 24 24`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-width`,`2`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`class`,`h-3 w-3`);let t=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);t.setAttribute(`d`,`M15 3h6v6`),e.appendChild(t);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);n.setAttribute(`x1`,`10`),n.setAttribute(`x2`,`21`),n.setAttribute(`y1`,`14`),n.setAttribute(`y2`,`3`),e.appendChild(n);let r=document.createElementNS(`http://www.w3.org/2000/svg`,`polyline`);return r.setAttribute(`points`,`21 14 21 3 10 3`),e.appendChild(r),e}function YE(e=`md`){let t=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);t.setAttribute(`viewBox`,`0 0 24 24`),t.setAttribute(`fill`,`none`),t.setAttribute(`stroke`,`currentColor`),t.setAttribute(`stroke-width`,e===`sm`?`2.5`:`2`),t.setAttribute(`stroke-linecap`,`round`),t.setAttribute(`stroke-linejoin`,`round`),t.setAttribute(`class`,e===`sm`?`h-2.5 w-2.5`:`h-3.5 w-3.5`);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);n.setAttribute(`x1`,`18`),n.setAttribute(`x2`,`6`),n.setAttribute(`y1`,`6`),n.setAttribute(`y2`,`18`),t.appendChild(n);let r=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);return r.setAttribute(`x1`,`6`),r.setAttribute(`x2`,`18`),r.setAttribute(`y1`,`6`),r.setAttribute(`y2`,`18`),t.appendChild(r),t}function XE(e){return[`alias`,`aliases`].includes(e.trim().toLowerCase())}function ZE(e,t){let n=document.createElement(`span`);n.className=`inline-flex max-w-full items-center rounded-md border border-border/60 bg-muted/40 px-2 py-0.5 text-xs text-foreground`;let r=document.createElement(`span`);return r.className=`truncate`,r.textContent=t?`#${e}`:e,n.appendChild(r),n}function QE(e,t){let n=document.createElement(`div`);n.dataset.frontmatterSummary=`true`,n.className=`divide-y divide-border/60`;let r=[{label:`Tags`,entries:e.filter(([e])=>EE[e.trim().toLowerCase()]===!0),hash:!0},{label:`Aliases`,entries:e.filter(([e])=>XE(e)),hash:!1}];for(let e of r){let t=new Set,r=e.entries.flatMap(([,e])=>NE(e)).filter(e=>{let n=e.toLowerCase();return!t.has(n)&&(t.add(n),!0)});if(r.length===0)continue;let i=document.createElement(`div`);i.className=`flex flex-wrap items-center gap-1.5 px-3 py-2`;let a=document.createElement(`span`);a.className=`mr-1 w-14 shrink-0 text-[11px] font-medium text-muted-foreground`,a.textContent=e.label,i.appendChild(a);for(let t of r)i.appendChild(ZE(t,e.hash));n.appendChild(i)}let i=e.filter(([e])=>EE[e.trim().toLowerCase()]!==!0&&!XE(e)),a=i.filter(([e])=>{let t=e.trim().toLowerCase();return t.startsWith(`metrics.`)||t===`metrics`}).length,o=i.filter(([e])=>{let t=e.trim().toLowerCase();return t.startsWith(`summaries.`)||t===`summaries`}).length,s=document.createElement(`button`);s.type=`button`,s.setAttribute(`aria-label`,`Show property details`),s.setAttribute(`aria-expanded`,`false`),s.className=`flex w-full flex-wrap items-center gap-x-2 gap-y-1 px-3 py-2 text-left text-[11px] text-muted-foreground transition-colors hover:bg-muted/20 hover:text-foreground cursor-pointer`;let c=document.createElement(`span`);if(c.textContent=`${i.length} more ${i.length===1?`property`:`properties`}`,s.appendChild(c),a>0){let e=document.createElement(`span`);e.textContent=`· ${a} custom ${a===1?`metric`:`metrics`}`,s.appendChild(e)}if(o>0){let e=document.createElement(`span`);e.textContent=`· ${o} ${o===1?`summary`:`summaries`}`,s.appendChild(e)}let l=document.createElement(`span`);return l.className=`ml-auto`,l.setAttribute(`aria-hidden`,`true`),l.textContent=`▾`,s.appendChild(l),s.addEventListener(`click`,t),n.appendChild(s),n}var $E=class extends wr{sectionId;rawContent;readOnly;detailed;debugMode;constructor(e,t,n=!1,r=!1,i=!1){super(),this.sectionId=e,this.rawContent=t??``,this.readOnly=n,this.detailed=r,this.debugMode=i}eq(e){return this.sectionId===e.sectionId&&this.rawContent===e.rawContent&&this.readOnly===e.readOnly&&this.detailed===e.detailed&&this.debugMode===e.debugMode}ignoreEvent(){return!0}toDOM(e){let t=document.createElement(`div`);wE.set(t,[]),t.className=`cm-frontmatter-preview py-2 font-sans select-none`;let n=document.createElement(`div`);n.className=`mb-1.5 flex items-center px-0.5 text-xs font-medium text-muted-foreground`;let r=document.createElement(`span`);if(r.textContent=`Properties`,n.appendChild(r),this.detailed){let t=document.createElement(`button`);t.type=`button`,t.setAttribute(`aria-label`,`Show property summary`),t.setAttribute(`aria-expanded`,`true`),t.className=`ml-auto px-1 py-0.5 text-[11px] font-normal hover:text-foreground cursor-pointer`,t.textContent=`Hide details ▴`,t.addEventListener(`click`,()=>{xE.set(e.dom,!1),e.dispatch({effects:gE.of(!1)})}),n.appendChild(t)}t.appendChild(n);let i=document.createElement(`div`);i.dataset.frontmatterProperties=`true`,i.className=`rounded-lg border border-border/80 bg-background/50 text-xs shadow-xs`,t.appendChild(i);let a=this.rawContent.replace(/^---\r?\n?/,``).replace(/\r?\n?---\r?$/,``),o=Qa(a),s=this.debugMode||e.state.facet(pE),c=Object.entries(o).filter(([e])=>s||!hE(e)),l=IE(o),u=e.state.facet(uE)?.()??null;if(!this.detailed)i.appendChild(QE(c,()=>{xE.set(e.dom,!0),e.dispatch({effects:gE.of(!0)})}));else{if(i.appendChild(kE()),c.length===0){let e=document.createElement(`div`);e.className=`px-3 py-2 text-xs text-muted-foreground/60 italic`,e.textContent=`No properties`,i.appendChild(e)}let n=c.map(([e])=>e);for(let r=0;r<c.length;r++){let[s,d]=c[r],f=DE(s),p=LE(s,l),m=(RE(s,l)||s===`aliases`)&&Array.isArray(d),h=f||m||Array.isArray(d),g=d===``&&BE(a,s),_=document.createElement(`div`);_.className=`flex items-center min-h-[34px] border-b border-dashed border-border last:border-b-0 group hover:bg-muted/10 transition-colors max-[479px]:flex-col max-[479px]:items-stretch`,_.dataset.frontmatterRow=s,i.appendChild(_);let v=document.createElement(`div`);if(v.className=`flex items-center gap-2 px-3 py-1.5 w-36 shrink-0 border-r border-dashed border-border text-muted-foreground max-[479px]:w-auto max-[479px]:border-r-0 max-[479px]:border-b`,_.appendChild(v),v.appendChild(h?GE():KE()),this.readOnly||g){let e=document.createElement(`span`);e.className=`truncate font-medium text-foreground/90`,e.textContent=s,v.appendChild(e)}else{let a=document.createElement(`input`);a.className=`w-full bg-transparent text-xs text-foreground/90 font-medium outline-none truncate hover:bg-muted/30 focus:bg-background focus:ring-1 focus:ring-ring rounded px-1 -mx-1`,a.value=s,a.spellcheck=!1,a.setAttribute(`aria-label`,`Property key: ${s}`),a.dataset.frontmatterField=`key`,a.dataset.frontmatterProperty=s,a.setAttribute(`aria-describedby`,OE(v,`Property name. Press Enter to apply. Arrow keys browse suggested property names.`).id);let l=s,u=(t=!1)=>{let n=a.value.trim();if(!n||n===l){a.value=l,t&&_.querySelector(`input[data-frontmatter-field="value"]`)?.focus();return}if(!/^[A-Za-z_][\w.-]*$/.test(n)||n in o){a.value=l;return}t&&bE.set(e,{kind:`value`,key:n}),FE(e,this.sectionId,l,n,d),delete o[l],o[n]=d,l=n},f=()=>queueMicrotask(()=>{a.isConnected&&u()});a.addEventListener(`change`,f),v.appendChild(a),jE(a,e,t,`key`,s,c.map(([e])=>e),u),a.addEventListener(`blur`,f),a.addEventListener(`keydown`,o=>{if((o.metaKey||o.ctrlKey)&&o.key===`;`){o.preventDefault(),CE(e,t,this.sectionId);return}if(!o.defaultPrevented){if(o.key===`Tab`){if(o.preventDefault(),!o.shiftKey)u(!0),_.querySelector(`input[data-frontmatter-field="value"]`)?.focus();else if(r>0){u(!1);let e=n[r-1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="value"]`)?.focus()}else u(!1),t.querySelector(`button[aria-label="Show property summary"]`)?.focus();return}if(o.key===`Enter`){o.preventDefault(),u(!0),_.querySelector(`input[data-frontmatter-field="value"]`)?.focus();return}if(o.key===`ArrowDown`){if(a.getAttribute(`aria-expanded`)===`true`)return;if(o.preventDefault(),r<c.length-1){let e=n[r+1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="key"]`)?.focus()}else t.querySelector(`button[aria-label="Add property"]`)?.focus();return}if(o.key===`ArrowUp`){if(a.getAttribute(`aria-expanded`)===`true`)return;if(o.preventDefault(),r>0){let e=n[r-1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="key"]`)?.focus()}return}}});let p=bE.get(e);p?.kind===`key`&&p.key===s&&(setTimeout(()=>{a.isConnected&&(a.focus(),a.select())},0),bE.delete(e))}let y=document.createElement(`div`);y.className=`flex items-center flex-wrap gap-1.5 px-3 py-1.5 flex-1 min-w-0`,_.appendChild(y);let b=t=>{o[s]=t,PE(e,this.sectionId,[s],t.length>0?t:``)},x=e=>u?p===`effort`?u.resolveEffort(e):p===`equipment`?u.resolveEquipment(e):null:null;if(h){let a=NE(d),o=p!==`tags`,l=XE(s);for(let e=0;e<a.length;e++){let t=a[e],n=o?x(t):null,r=document.createElement(`span`);r.className=n?`group/pill inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-muted/50 text-foreground border border-border/60`:o?`group/pill inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-destructive/10 text-destructive border border-destructive/30`:`group/pill inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium bg-muted/40 text-foreground/90 border border-border/60`;let i=document.createElement(`span`);if(i.textContent=l?t:n?n.label:t,r.appendChild(i),n&&u&&(!l||e===0)){let e=document.createElement(`a`);e.href=u.openHref(p,n.slug),e.title=`Open ${n.label} page`,e.setAttribute(`aria-label`,`Open ${n.label} page`),e.className=l?`inline-flex items-center justify-center text-muted-foreground/40 hover:text-foreground cursor-pointer`:`inline-flex items-center justify-center text-muted-foreground/60 hover:text-foreground cursor-pointer`,e.appendChild(JE()),r.appendChild(e)}if(!this.readOnly){let n=document.createElement(`button`);n.type=`button`,n.tabIndex=-1,n.setAttribute(`aria-label`,f?`Remove tag ${t}`:`Remove ${t}`),n.className=`inline-flex items-center justify-center text-muted-foreground/50 hover:text-destructive cursor-pointer transition-colors`,n.appendChild(YE(`sm`)),n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),b(a.filter((t,n)=>n!==e))}),r.appendChild(n)}y.appendChild(r)}if(!this.readOnly){let l=document.createElement(`input`);l.className=`flex-1 min-w-[96px] bg-transparent px-1 py-0.5 text-xs text-foreground outline-none placeholder:text-field-placeholder focus:bg-background/80 focus:ring-1 focus:ring-ring rounded transition-colors`,l.placeholder=a.length===0?m?`Add ${p===`effort`?`effort`:`equipment`}…`:`Add tags…`:f?`Add tag…`:`Add…`,l.setAttribute(`aria-label`,`Value for ${s}`),l.dataset.frontmatterField=`value`,l.dataset.frontmatterProperty=s,l.setAttribute(`aria-describedby`,OE(y,`Press Enter or comma to add a value. Arrow keys browse the suggestions.`).id);let d=()=>{let t=l.value.trim().replace(/^,|,$/g,``);t&&!a.some(e=>e.toLowerCase()===t.toLowerCase())&&(l.value=``,bE.set(e,{kind:`tag`,key:s}),b([...a,t]))};y.appendChild(l),jE(l,e,t,`value`,s,a,d,p),l.addEventListener(`keydown`,o=>{if((o.metaKey||o.ctrlKey)&&o.key===`;`){o.preventDefault(),CE(e,t,this.sectionId);return}if(!o.defaultPrevented){if((o.key===`Enter`||o.key===`,`)&&l.value.trim()){o.preventDefault(),d();return}if(o.key===`Backspace`&&!l.value&&a.length>0){o.preventDefault(),bE.set(e,{kind:`tag`,key:s}),b(a.slice(0,-1));return}if(o.key===`Tab`){if(l.value.trim()&&!o.shiftKey){o.preventDefault(),d();return}if(o.preventDefault(),o.shiftKey)_.querySelector(`input[data-frontmatter-field="key"]`)?.focus();else if(r<c.length-1){let e=n[r+1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="key"]`)?.focus()}else t.querySelector(`button[aria-label="Add property"]`)?.focus();return}if(o.key===`Enter`){if(o.preventDefault(),r<c.length-1){let e=n[r+1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="key"]`)?.focus()}else t.querySelector(`button[aria-label="Add property"]`)?.click();return}if(o.key===`ArrowDown`){if(l.getAttribute(`aria-expanded`)===`true`)return;if(o.preventDefault(),r<c.length-1){let e=n[r+1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="value"]`)?.focus()}else SE(e);return}if(o.key===`ArrowUp`){if(l.getAttribute(`aria-expanded`)===`true`)return;if(o.preventDefault(),r>0){let e=n[r-1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="value"]`)?.focus()}return}}}),l.addEventListener(`blur`,()=>queueMicrotask(()=>{l.isConnected&&l.value.trim()&&d()}));let h=bE.get(e);if((h?.kind===`tag`||h?.kind===`value`)&&h.key===s&&(setTimeout(()=>{l.isConnected&&l.focus()},0),bE.delete(e)),o&&u){let e=a.filter(e=>!x(e));if(e.length>0){let t=document.createElement(`div`);t.setAttribute(`data-testid`,`editor-ref-unknown`),t.className=`w-full basis-full flex flex-wrap items-center gap-2 text-[10px] text-destructive`;let n=document.createElement(`span`);n.textContent=`Unknown ${p===`effort`?`effort`:`equipment`}: ${e.join(`, `)}`,t.appendChild(n);let r=document.createElement(`button`);r.type=`button`,r.textContent=`Select existing`,r.className=`underline hover:text-foreground cursor-pointer`,r.addEventListener(`click`,e=>{e.preventDefault(),l.focus()}),t.appendChild(r);let i=document.createElement(`a`);i.href=u.createHref(p),i.textContent=`Create page`,i.className=`underline hover:text-foreground`,t.appendChild(i),y.appendChild(t)}}}}else if(g){let e=document.createElement(`span`);e.className=`text-xs text-muted-foreground/60 italic py-0.5 truncate`,e.textContent=`Nested block — edit in YAML`,y.appendChild(e)}else{let a=Array.isArray(d)?d.join(`, `):String(d??``);if(this.readOnly){let e=document.createElement(`span`);e.className=`text-xs text-foreground py-0.5 truncate`,e.textContent=a,y.appendChild(e)}else{let l=document.createElement(`input`);l.className=`w-full bg-transparent px-1.5 py-0.5 -mx-1.5 text-xs text-foreground outline-none placeholder:text-field-placeholder hover:bg-muted/30 focus:bg-background focus:ring-1 focus:ring-ring rounded transition-colors`,l.value=a,l.placeholder=`Empty`,l.spellcheck=!1,l.setAttribute(`aria-label`,`Value for ${s}`),l.dataset.frontmatterField=`value`,l.dataset.frontmatterProperty=s,l.setAttribute(`aria-describedby`,OE(y,`Property value. Press Enter to apply.`).id);let d=a,f=t=>{let n=l.value.trim();if(n!==d){d=n;let r=Number(n),i=n!==``&&!isNaN(r)?r:n;o[s]=i,typeof t==`string`?bE.set(e,{kind:`key`,key:t}):t===!0&&bE.set(e,{kind:`value`,key:s}),PE(e,this.sectionId,[s],i)}},p=()=>queueMicrotask(()=>{l.isConnected&&f()});l.addEventListener(`change`,p),y.appendChild(l),jE(l,e,t,`value`,s,[a],f,s.trim().toLowerCase()===`metrics.effort`?`effort`:`tags`),l.addEventListener(`blur`,p),l.addEventListener(`keydown`,a=>{if((a.metaKey||a.ctrlKey)&&a.key===`;`){a.preventDefault(),CE(e,t,this.sectionId);return}if(!a.defaultPrevented){if(a.key===`Tab`){if(a.preventDefault(),a.shiftKey)f(),_.querySelector(`input[data-frontmatter-field="key"]`)?.focus();else if(r<c.length-1){let e=n[r+1];f(e),i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="key"]`)?.focus()}else f(),t.querySelector(`button[aria-label="Add property"]`)?.focus();return}if(a.key===`Enter`){if(a.preventDefault(),r<c.length-1){let e=n[r+1];f(e),i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="key"]`)?.focus()}else f(),t.querySelector(`button[aria-label="Add property"]`)?.click();return}if(a.key===`ArrowDown`){if(l.getAttribute(`aria-expanded`)===`true`)return;if(a.preventDefault(),r<c.length-1){let e=n[r+1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="value"]`)?.focus()}else SE(e);return}if(a.key===`ArrowUp`){if(l.getAttribute(`aria-expanded`)===`true`)return;if(a.preventDefault(),r>0){let e=n[r-1];i.querySelector(`[data-frontmatter-row="${e}"] input[data-frontmatter-field="value"]`)?.focus()}return}}});let m=bE.get(e);if(m?.kind===`value`&&m.key===s&&(setTimeout(()=>{l.isConnected&&(l.focus(),l.select?.())},0),bE.delete(e)),s.trim().toLowerCase()===`metrics.effort`&&u){let t=u.resolveEffort(a);if(t){l.className=`flex-1 min-w-[70px] bg-transparent px-1.5 py-0.5 -mx-1.5 text-xs text-foreground outline-none placeholder:text-field-placeholder hover:bg-muted/30 focus:bg-background focus:ring-1 focus:ring-ring rounded transition-colors`;let e=document.createElement(`a`);e.href=u.openHref(`effort`,t.slug),e.title=`Open ${t.label} page`,e.setAttribute(`aria-label`,`Open ${t.label} page`),e.className=`shrink-0 inline-flex items-center gap-1 px-1.5 py-0.5 rounded text-[11px] text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors cursor-pointer`;let n=document.createElement(`span`);n.textContent=t.label,e.appendChild(n),e.appendChild(JE()),y.appendChild(e)}let n=VE(u,a,t=>{o[s]=t,PE(e,this.sectionId,[s],t)});n&&y.appendChild(n)}}if(/^https?:\/\/\S+$/i.test(a)){let e=document.createElement(`a`);e.href=a,e.target=`_blank`,e.rel=`noopener noreferrer`,e.title=a,e.setAttribute(`aria-label`,`Open ${s} in new tab`),e.className=`shrink-0 inline-flex items-center justify-center text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer`,e.appendChild(JE()),y.appendChild(e)}}if(!this.readOnly&&!g){let t=document.createElement(`div`);t.className=`flex items-center pr-2`;let n=document.createElement(`button`);n.type=`button`,n.tabIndex=-1,n.setAttribute(`aria-label`,`Remove property ${s}`),n.className=`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 text-muted-foreground/70 hover:text-destructive p-1 rounded transition-opacity cursor-pointer`,n.appendChild(YE(`md`)),n.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation(),delete o[s],PE(e,this.sectionId,[s],null)}),t.appendChild(n),_.appendChild(t)}}}if(!this.readOnly){let n=c.find(([e])=>e.trim().toLowerCase()===`tags`)?.[0]??c.find(([e])=>DE(e))?.[0],r=document.createElement(`div`);r.className=`mt-2 flex flex-wrap items-center gap-x-3 gap-y-1`,r.dataset.frontmatterActions=`true`;let a=document.createElement(`button`);a.type=`button`,a.setAttribute(`aria-label`,`Add property`),a.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,a.appendChild(qE());let s=document.createElement(`span`);s.textContent=`Add property`,a.appendChild(s),a.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),this.detailed||(xE.set(e.dom,!0),e.dispatch({effects:gE.of(!0)}));let r=`property`,i=1;for(;r in o;)i++,r=`property_${i}`;bE.set(e,{kind:`key`,key:r}),PE(e,this.sectionId,[r],``,!0);let a=(e.dom.querySelector(`.cm-frontmatter-preview`)??t).querySelector(`[data-frontmatter-row="${r}"] [data-frontmatter-field="key"]`);a?.focus(),a?.select()}),a.addEventListener(`keydown`,t=>{if(t.key===`ArrowDown`||t.key===`Tab`&&!t.shiftKey)t.preventDefault(),SE(e);else if(t.key===`ArrowUp`||t.key===`Tab`&&t.shiftKey){t.preventDefault();let e=i.querySelectorAll(`input[data-frontmatter-field]:not([disabled])`);e[e.length-1]?.focus()}}),r.appendChild(a);{let n=document.createElement(`button`);n.type=`button`,n.setAttribute(`aria-label`,`Add metric`),n.setAttribute(`data-testid`,`editor-add-metric-note`),n.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,n.appendChild(qE());let a=document.createElement(`span`);a.textContent=`Add metric`,n.appendChild(a),n.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),xE.set(e.dom,!0),this.detailed||e.dispatch({effects:gE.of(!0)});let r=e.dom.querySelector(`.cm-frontmatter-preview`)??t,a=r.querySelector(`[data-frontmatter-properties]`)??i,o=r.querySelector(`[data-frontmatter-metric-draft] input`);if(o){o.focus();return}let s=UE(e,r,u,(t,n)=>{PE(e,this.sectionId,t,n)});a.appendChild(s),s.querySelector(`input`)?.focus(),e.requestMeasure()}),r.appendChild(n)}{let n=document.createElement(`button`);n.type=`button`,n.setAttribute(`aria-label`,`Add summary`),n.setAttribute(`data-testid`,`editor-add-summary-note`),n.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,n.appendChild(qE());let a=document.createElement(`span`);a.textContent=`Add summary`,n.appendChild(a),n.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),xE.set(e.dom,!0),this.detailed||e.dispatch({effects:gE.of(!0)});let r=e.dom.querySelector(`.cm-frontmatter-preview`)??t,a=r.querySelector(`[data-frontmatter-properties]`)??i,o=r.querySelector(`[data-frontmatter-summary-draft] input`);if(o){o.focus();return}let s=WE(e,(t,n)=>{PE(e,this.sectionId,t,n,!0)});a.appendChild(s),s.querySelector(`input`)?.focus(),e.requestMeasure()}),r.appendChild(n)}{let a=document.createElement(`button`);a.type=`button`,a.setAttribute(`aria-label`,`Add tag`),a.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,a.appendChild(qE());let o=document.createElement(`span`);o.textContent=`Add tag`,a.appendChild(o),a.addEventListener(`click`,r=>{r.preventDefault(),r.stopPropagation(),xE.set(e.dom,!0),this.detailed||e.dispatch({effects:gE.of(!0)});let a=e.dom.querySelector(`.cm-frontmatter-preview`)??t,o=a.querySelector(`[data-frontmatter-properties]`)??i;if(n){Array.from(a.querySelectorAll(`[data-frontmatter-field="value"]`)).find(e=>e.dataset.frontmatterProperty===n)?.focus();return}let s=a.querySelector(`[data-frontmatter-tag-draft] input`);if(s){s.focus();return}let c=zE(e,a,`category`,t=>{bE.set(e,{kind:`tag`,key:`category`}),PE(e,this.sectionId,[`category`],[t])});o.appendChild(c),c.querySelector(`input`)?.focus(),e.requestMeasure()}),r.appendChild(a)}{let t=document.createElement(`button`);t.type=`button`,t.setAttribute(`aria-label`,`Edit YAML`),t.setAttribute(`data-testid`,`editor-property-edit-yaml`),t.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`;let n=document.createElement(`span`);n.textContent=`Edit YAML`,t.appendChild(n),t.addEventListener(`click`,t=>{t.preventDefault(),t.stopPropagation();let{sections:n}=e.state.field(TT),r=n.find(e=>e.id===this.sectionId&&e.type===`frontmatter`)||n.find(e=>e.type===`frontmatter`);r&&(e.dispatch({selection:{anchor:r.from},effects:vE.of(!0),scrollIntoView:!0}),e.focus())}),t.addEventListener(`keydown`,t=>{(t.key===`ArrowDown`||t.key===`Tab`&&!t.shiftKey)&&(t.preventDefault(),SE(e))}),r.appendChild(t)}t.appendChild(r)}return t}destroy(e){wE.get(e)?.forEach(e=>e()),wE.delete(e)}},eD=class extends wr{detailed;constructor(e=!1){super(),this.detailed=e}eq(e){return this.detailed===e.detailed}ignoreEvent(){return!0}toDOM(e){let t=document.createElement(`div`);t.className=`cm-frontmatter-preview py-2 font-sans select-none`;let n=document.createElement(`div`);n.className=`text-xs font-medium text-muted-foreground mb-1.5 px-0.5`,n.textContent=`Properties`,t.appendChild(n);let r=document.createElement(`div`);r.className=`flex flex-wrap items-center gap-x-3 gap-y-1`,r.dataset.frontmatterActions=`true`;let i=document.createElement(`button`);i.type=`button`,i.setAttribute(`aria-label`,`Add property`),i.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,i.appendChild(qE());let a=document.createElement(`span`);a.textContent=`Add property`,i.appendChild(a),i.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),xE.set(e.dom,!0),e.dispatch({effects:gE.of(!0)}),bE.set(e,{kind:`key`,key:`property`}),PE(e,`new`,[`property`],``,!0);let r=(e.dom.querySelector(`.cm-frontmatter-preview`)??t).querySelector(`[data-frontmatter-row="property"] [data-frontmatter-field="key"]`);r?.focus(),r?.select()}),i.addEventListener(`keydown`,t=>{(t.key===`ArrowDown`||t.key===`Tab`&&!t.shiftKey)&&(t.preventDefault(),SE(e))}),r.appendChild(i);let o=document.createElement(`button`);o.type=`button`,o.setAttribute(`aria-label`,`Add metric`),o.setAttribute(`data-testid`,`editor-add-metric-note`),o.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,o.appendChild(qE());let s=document.createElement(`span`);s.textContent=`Add metric`,o.appendChild(s),o.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),xE.set(e.dom,!0),this.detailed||e.dispatch({effects:gE.of(!0)});let r=e.dom.querySelector(`.cm-frontmatter-preview`)??t,i=r.querySelector(`[data-frontmatter-metric-draft] input`);if(i){i.focus();return}let a=UE(e,r,e.state.facet(uE)?.()??null,(t,n)=>{PE(e,`new`,t,n,!0)});r.appendChild(a),AE(r,a),a.querySelector(`input`)?.focus(),e.requestMeasure()}),r.appendChild(o);let c=document.createElement(`button`);c.type=`button`,c.setAttribute(`aria-label`,`Add summary`),c.setAttribute(`data-testid`,`editor-add-summary-note`),c.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,c.appendChild(qE());let l=document.createElement(`span`);l.textContent=`Add summary`,c.appendChild(l),c.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),xE.set(e.dom,!0),this.detailed||e.dispatch({effects:gE.of(!0)});let r=e.dom.querySelector(`.cm-frontmatter-preview`)??t,i=r.querySelector(`[data-frontmatter-summary-draft] input`);if(i){i.focus();return}let a=WE(e,(t,n)=>{PE(e,`new`,t,n,!0)});r.appendChild(a),AE(r,a),a.querySelector(`input`)?.focus(),e.requestMeasure()}),r.appendChild(c);let u=document.createElement(`button`);u.type=`button`,u.setAttribute(`aria-label`,`Add tag`),u.className=`inline-flex items-center gap-1.5 text-xs font-medium text-muted-foreground hover:text-foreground px-1 py-1 cursor-pointer transition-colors select-none`,u.appendChild(qE());let d=document.createElement(`span`);return d.textContent=`Add tag`,u.appendChild(d),u.addEventListener(`click`,n=>{n.preventDefault(),n.stopPropagation(),this.detailed||e.dispatch({effects:gE.of(!0)});let r=e.dom.querySelector(`.cm-frontmatter-preview`)??t,i=r.querySelector(`[data-frontmatter-tag-draft] input`);if(i){i.focus();return}let a=zE(e,r,`category`,t=>{bE.set(e,{kind:`tag`,key:`category`}),PE(e,`new`,[`category`],[t],!0)});r.appendChild(a),AE(r,a),a.querySelector(`input`)?.focus(),e.requestMeasure()}),r.appendChild(u),t.appendChild(r),t}};function tD(e){let t=new pi,{sections:n}=e.field(TT),r=e.facet(fE),i=!1;for(let a of n){if(a.type!==`frontmatter`)continue;if(i=!0,!r){let n=a.to<e.doc.length?a.to+1:a.to;t.add(a.from,n,Lr.replace({block:!0}));continue}let n=e.field(_E);if(!e.readOnly&&e.field(yE))continue;let o=e.doc.sliceString(a.from,a.to),s=e.facet(pE);t.add(a.from,a.to,Lr.replace({widget:new $E(a.id,o,e.readOnly,n,s),block:!0}))}return r&&!i&&!e.readOnly&&t.add(0,0,Lr.widget({widget:new eD(e.field(_E)),side:-1,block:!0})),t.finish()}var nD=[_E,yE,ni.define({create(e){return tD(e)},update(e,t){return t.docChanged||t.reconfigured||t.selection||t.effects.some(e=>e.is(dE)||e.is(gE)||e.is(vE))?tD(t.state):e},provide:e=>[Tr.decorations.from(e),Tr.atomicRanges.of(t=>t.state.facet(fE)?Lr.none:t.state.field(e))]}),Tr.updateListener.of(e=>{let t=e.state.field(_E);t===e.startState.field(_E)?xE.get(e.view.dom)===!0&&!t&&queueMicrotask(()=>{e.view.state.field(_E)===!1&&e.view.dispatch({effects:gE.of(!0)})}):e.transactions.some(e=>e.effects.some(e=>e.is(gE)))?xE.set(e.view.dom,t):xE.get(e.view.dom)===!0&&!t&&queueMicrotask(()=>{e.view.state.field(_E)===!1&&e.view.dispatch({effects:gE.of(!0)})})}),si.highest(vr.of([{key:`Mod-;`,run(e){return!e.state.readOnly&&(CE(e),!0)}},{key:`ArrowUp`,run(e){if(e.state.readOnly||e.state.field(yE)||!e.state.facet(fE))return!1;let{head:t}=e.state.selection.main,{sections:n}=e.state.field(TT),r=n.find(e=>e.type===`frontmatter`);if(!r)return!1;let i=e.state.doc.lineAt(t),a=e.state.doc.lineAt(r.to);if(i.number>a.number+1)return!1;let o=e.dom.querySelectorAll(`.cm-frontmatter-preview input[data-frontmatter-field]:not([disabled])`);if(o.length===0){let t=e.dom.querySelector(`.cm-frontmatter-preview button[aria-label="Add property"]`);if(t)return t.focus(),!0;let n=e.dom.querySelector(`.cm-frontmatter-preview button[aria-label="Show property details"]`);return n?(n.focus(),!0):!1}let s=o[o.length-1];return s.focus(),s.select?.(),!0}}]))],rD=/^(#{1,6}) /,iD=/\*\*([^*\n]+)\*\*/g,aD=/(?<!\*)\*([^*\n]+)\*(?!\*)/g,oD=[1,2,3,4,5,6].map(e=>Lr.line({attributes:{class:`cm-md-heading cm-md-heading-${e}`}})),sD=Lr.replace({}),cD=Lr.mark({class:`cm-md-bold font-bold`}),lD=Lr.mark({class:`cm-md-italic italic`});function uD(e){let t=new pi,{sections:n}=e.field(TT),r=e.selection.main.head;for(let i of n)if(i.type===`markdown`)for(let n=i.startLine;n<=i.endLine;n++){let i=e.doc.line(n),a=r>=i.from&&r<=i.to,o=i.text.match(rD);if(o){let e=o[1].length;t.add(i.from,i.from,oD[e-1]),a||t.add(i.from,i.from+o[0].length,sD)}if(!a){let e;for(iD.lastIndex=0;(e=iD.exec(i.text))!==null;){let n=i.from+e.index,r=n+e[0].length;t.add(n,n+2,sD),t.add(n+2,r-2,cD),t.add(r-2,r,sD)}for(aD.lastIndex=0;(e=aD.exec(i.text))!==null;){let n=i.from+e.index,r=n+e[0].length;t.add(n,n+1,sD),t.add(n+1,r-1,lD),t.add(r-1,r,sD)}}}return t.finish()}var dD=ni.define({create(e){return uD(e)},update(e,t){return t.docChanged||t.selection?uD(t.state):e},provide:e=>Tr.decorations.from(e)}),fD=Tr.baseTheme({".cm-md-heading-1":{fontSize:`1.3em`,fontWeight:`bold`},".cm-md-heading-2":{fontSize:`1.2em`,fontWeight:`bold`},".cm-md-heading-3":{fontSize:`1.1em`,fontWeight:`bold`}});function pD(){return[dD,fD]}function mD(e){return/^\|[\s:]*-+[\s:]*(\|[\s:]*-+[\s:]*)*\|$/.test(e.trim())}function hD(e){let t=e.trim();return(t.startsWith(`|`)&&t.endsWith(`|`)?t.slice(1,-1):t).split(`|`).map(e=>e.trim())}var gD=class extends wr{head;rows;constructor(e,t){super(),this.head=e,this.rows=t}eq(e){return this.head.length!==e.head.length||this.rows.length!==e.rows.length?!1:this.head.every((t,n)=>t===e.head[n])}toDOM(){let e=document.createElement(`div`);e.className=`cm-table-preview my-2 overflow-auto border border-border/80 rounded-lg`;let t=document.createElement(`table`);t.className=`w-full text-xs font-mono border-collapse`;let n=document.createElement(`thead`),r=document.createElement(`tr`);r.className=`border-b border-border bg-muted/40 text-muted-foreground text-left`;for(let e of this.head){let t=document.createElement(`th`);t.className=`py-1.5 px-3 font-semibold`,t.textContent=e,r.appendChild(t)}n.appendChild(r),t.appendChild(n);let i=document.createElement(`tbody`);for(let e of this.rows){let t=document.createElement(`tr`);t.className=`border-b border-border/40 hover:bg-muted/20`;for(let n of e){let e=document.createElement(`td`);e.className=`py-1.5 px-3 text-foreground`,e.textContent=n,t.appendChild(e)}i.appendChild(t)}return t.appendChild(i),e.appendChild(t),e}};function _D(e,t){let n=[];for(let r=t.startLine;r<=t.endLine;r++){if(!e.doc.line(r).text.trim().startsWith(`|`))continue;let t=n[n.length-1];t&&t.toLine===r-1?t.toLine=r:n.push({fromLine:r,toLine:r})}for(let t of n){let n=[];for(let r=t.fromLine;r<=t.toLine;r++)n.push(e.doc.line(r).text);if(!(n.length<2||!mD(n[1].trim())))return{head:hD(n[0]),rows:n.slice(2).map(hD),fromLine:t.fromLine,toLine:t.toLine}}return null}function vD(e){let t=new pi,{sections:n}=e.field(TT),r=e.selection.main.head;for(let i of n){if(i.type!==`markdown`)continue;let n=_D(e,i);if(!n)continue;let a=e.doc.line(n.fromLine).from,o=e.doc.line(n.toLine).to;r>=a&&r<=o||t.add(a,o,Lr.replace({widget:new gD(n.head,n.rows),block:!0}))}return t.finish()}var yD=[ni.define({create(e){return vD(e)},update(e,t){return t.docChanged||t.selection?vD(t.state):e},provide:e=>Tr.decorations.from(e)})],bD=/\[([^\]]*)\]\((https?:\/\/[^)\s]+)\)/g,xD=/https?:\/\/\S+/g,SD=/`[^`\n]*`/g,CD=/[.,;:!?)\]}>'"]$/;function wD(e){let t=e.match(/[?&]v=([a-zA-Z0-9_-]{11})/);if(t)return t[1];let n=e.match(/youtu\.be\/([a-zA-Z0-9_-]+)/);if(n)return n[1];let r=e.match(/youtube\.com\/embed\/([a-zA-Z0-9_-]{11})/);return r?r[1]:null}function TD(){let e=document.createElementNS(`http://www.w3.org/2000/svg`,`svg`);e.setAttribute(`viewBox`,`0 0 24 24`),e.setAttribute(`fill`,`none`),e.setAttribute(`stroke`,`currentColor`),e.setAttribute(`stroke-width`,`2`),e.setAttribute(`stroke-linecap`,`round`),e.setAttribute(`stroke-linejoin`,`round`),e.setAttribute(`class`,`h-3 w-3`);let t=document.createElementNS(`http://www.w3.org/2000/svg`,`path`);t.setAttribute(`d`,`M15 3h6v6`),e.appendChild(t);let n=document.createElementNS(`http://www.w3.org/2000/svg`,`line`);n.setAttribute(`x1`,`10`),n.setAttribute(`x2`,`21`),n.setAttribute(`y1`,`14`),n.setAttribute(`y2`,`3`),e.appendChild(n);let r=document.createElementNS(`http://www.w3.org/2000/svg`,`polyline`);return r.setAttribute(`points`,`21 14 21 3 10 3`),e.appendChild(r),e}var ED=class extends wr{label;url;constructor(e,t){super(),this.label=e,this.url=t}eq(e){return this.label===e.label&&this.url===e.url}toDOM(){let e=document.createElement(`span`);e.className=`cm-link-pill`;let t=document.createElement(`span`);t.className=`cm-link-pill-label`,t.textContent=this.label||this.url,e.appendChild(t);let n=document.createElement(`a`);return n.className=`cm-link-pill-open`,n.href=this.url,n.target=`_blank`,n.rel=`noopener noreferrer`,n.title=this.url,n.setAttribute(`aria-label`,`Open ${this.label||this.url} in new tab`),n.appendChild(TD()),e.appendChild(n),e}},DD=class extends wr{videoId;title;constructor(e,t){super(),this.videoId=e,this.title=t}eq(e){return this.videoId===e.videoId&&this.title===e.title}toDOM(){let e=document.createElement(`div`);e.className=`cm-youtube-player`;let t=document.createElement(`iframe`);return t.className=`cm-youtube-player-frame`,t.src=`https://www.youtube-nocookie.com/embed/${encodeURIComponent(this.videoId)}`,t.title=this.title||`YouTube video`,t.setAttribute(`allow`,`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`),t.setAttribute(`allowfullscreen`,``),t.setAttribute(`loading`,`lazy`),e.appendChild(t),e}get block(){return!0}};function OD(e){let t=[],n=[],r;for(SD.lastIndex=0;(r=SD.exec(e.text))!==null;)n.push([r.index,r.index+r[0].length]);let i=e=>n.some(([t,n])=>e>=t&&e<n);for(bD.lastIndex=0;(r=bD.exec(e.text))!==null;)i(r.index)||t.push({from:e.from+r.index,to:e.from+r.index+r[0].length,label:r[1],url:r[2]});for(xD.lastIndex=0;(r=xD.exec(e.text))!==null;){if(i(r.index))continue;let n=r;if(t.some(t=>n.index>=t.from-e.from&&n.index<t.to-e.from))continue;let a=n[0];for(;CD.test(a);)a=a.slice(0,-1);a&&t.push({from:e.from+n.index,to:e.from+n.index+a.length,label:a,url:a})}return t.sort((e,t)=>e.from-t.from)}function kD(e){let t=new pi,{sections:n}=e.field(TT),r=e.selection.main.head,i=e.readOnly;for(let a of n)if((a.type===`markdown`||a.type===`embed`)&&(a.type!==`markdown`||a.subtype!==`table`))for(let n=a.startLine;n<=a.endLine;n++){let a=e.doc.line(n);if(a.text.trim().startsWith(`|`)||!i&&r>=a.from&&r<=a.to)continue;let o=OD(a),s=a.text.trimStart(),c=a.text.length-s.length,l=a.text.length-a.text.trimEnd().length,u=c+(s.match(/^[-*+]\s+/)?.[0].length??0);for(let e of o){let n=o.length===1&&e.from===a.from+u&&e.to===a.to-l?wD(e.url):null;n?t.add(a.from,a.to,Lr.replace({widget:new DD(n,e.label),block:!0})):t.add(e.from,e.to,Lr.replace({widget:new ED(e.label,e.url)}))}}return t.finish()}var AD=[ni.define({create(e){return kD(e)},update(e,t){return t.docChanged||t.selection?kD(t.state):e},provide:e=>Tr.decorations.from(e)}),Tr.baseTheme({".cm-link-pill":{display:`inline-flex`,alignItems:`center`,gap:`4px`,padding:`0 5px`,border:`1px solid hsl(var(--border))`,borderRadius:`6px`,backgroundColor:`hsl(var(--muted) / 0.35)`,maxWidth:`100%`},".cm-link-pill-label":{color:`hsl(var(--primary))`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},".cm-link-pill-open":{display:`inline-flex`,alignItems:`center`,flexShrink:`0`,color:`hsl(var(--muted-foreground))`,textDecoration:`none`,cursor:`pointer`},".cm-link-pill-open:hover":{color:`hsl(var(--primary))`},".cm-youtube-player":{width:`100%`,aspectRatio:`16 / 9`,margin:`8px 0`,backgroundColor:`#000`,borderRadius:`6px`,overflow:`hidden`},".cm-youtube-player-frame":{display:`block`,width:`100%`,height:`100%`,border:`none`}})],jD=Kr.define(),MD=ni.define({create(){return new Set},update(e,t){for(let e of t.effects)if(e.is(jD))return e.value;return e}}),ND={runtime:`cm-gutter-runtime`,error:`cm-gutter-error`,warning:`cm-gutter-warning`,info:`cm-gutter-info`},PD=class extends see{kind;constructor(e){super(),this.kind=e}toDOM(){let e=document.createElement(`div`);return e.className=`cm-unified-gutter-marker ${ND[this.kind]}`,e}},FD=new Map([[`runtime`,new PD(`runtime`)],[`error`,new PD(`error`)],[`warning`,new PD(`warning`)],[`info`,new PD(`info`)]]),ID=[MD,Dr({class:`cm-unified-gutter`,markers(e){let t=new pi,n=e.state.field(MD),r=new Map;for(let t of n)t>=1&&t<=e.state.doc.lines&&r.set(t,`runtime`);Hr(e.state,t=>{let n=e.state.doc.lineAt(t.from).number;if(r.get(n)===`runtime`)return;let i=r.get(n);(!i||t.severity===`error`&&i!==`error`)&&r.set(n,t.severity)});let i=Array.from(r.keys()).sort((e,t)=>e-t);for(let n of i){let i=e.state.doc.line(n),a=FD.get(r.get(n));a&&t.add(i.from,i.from,a)}return t.finish()},initialSpacer:()=>new PD(`info`)})];function LD(e,t){e.dispatch({effects:jD.of(new Set(t))})}var RD=Kr.define(),zD=Kr.define(),BD=Kr.define(),VD=class extends wr{height;constructor(e){super(),this.height=e}eq(e){return e.height===this.height}toDOM(){let e=document.createElement(`div`);return e.className=`cm-runtime-panel-spacer`,e.style.height=`${this.height}px`,e.style.pointerEvents=`none`,e}get block(){return!0}};function HD(e){let t=new pi,n=Array.from(e.values()).sort((e,t)=>e.afterPos-t.afterPos);for(let e of n){let n=e.expanded?600:500;t.add(e.afterPos,e.afterPos,Lr.widget({widget:new VD(n),block:!0,side:1}))}return t.finish()}ni.define({create(){return new Map},update(e,t){let n=e;for(let e of t.effects)if(e.is(RD))n=new Map(n),n.set(e.value.sectionId,e.value);else if(e.is(zD))n.has(e.value.sectionId)&&(n=new Map(n),n.delete(e.value.sectionId));else if(e.is(BD)){let t=n.get(e.value.sectionId);t&&(n=new Map(n),n.set(e.value.sectionId,{...t,expanded:e.value.expanded}))}return n},provide:e=>Tr.decorations.compute([e],t=>HD(t.field(e)))});function UD(e){return`:session{result:${e}}`}function WD(e,t,n){let r=e.field(TT).sections.find(e=>e.id===t);return!r||r.type!==`time`&&r.type!==`log`?null:{from:r.to,insert:`\n\n\`\`\`query:table\n${UD(n)}\n\`\`\``}}function GD(e){let t=e.split(`:`);if(t.length<1||t.length>4)return null;let n=t.map(e=>parseInt(e,10));if(n.some(e=>isNaN(e)))return null;for(;n.length<4;)n.unshift(0);return n}function KD(e,t,n,r){let i=[];return e>0?i.push(e,t,n,r):t>0?i.push(t,n,r):n>0?i.push(n,r):i.push(r),i.map((e,t)=>t===0?String(e):String(e).padStart(2,`0`)).join(`:`)}function qD(e,t,n,r,i,a){let o=e*86400+t*3600+n*60+r,s=[86400,3600,60,1][i]??1;o=Math.max(0,o+a*s);let c=Math.floor(o/86400);o%=86400;let l=Math.floor(o/3600);return o%=3600,[c,l,Math.floor(o/60),o%60]}function JD(e,t){let n=/\b(\d{1,2}(?::\d{2}){1,3})\b/g,r;for(;(r=n.exec(e))!==null;){let e=r.index,n=e+r[0].length;if(t>=e&&t<=n){let i=r[0],a=Math.min(t-e,i.length-1),o=(i.slice(0,a).match(/:/g)||[]).length;return{timeStr:i,startCol:e,endCol:n,digitIndex:4-((i.match(/:/g)||[]).length+1)+o}}}return null}function YD(e,t){let n=e.state.selection.main,r=e.state.doc.lineAt(n.head),i=n.head-r.from,a=JD(r.text,i);if(!a)return!1;let o=GD(a.timeStr);if(!o)return!1;let[s,c,l,u]=qD(o[0],o[1],o[2],o[3],a.digitIndex,t),d=KD(s,c,l,u);return e.dispatch({changes:{from:r.from+a.startCol,to:r.from+a.endCol,insert:d}}),!0}var XD=vr.of([{key:`Alt-ArrowUp`,run:e=>YD(e,1)},{key:`Alt-ArrowDown`,run:e=>YD(e,-1)}]),ZD=[],QD={duration:`cm-metric-duration`,rep:`cm-metric-rep`,rounds:`cm-metric-rounds`,distance:`cm-metric-distance`,resistance:`cm-metric-resistance`,action:`cm-metric-action`,pace:`cm-metric-pace`,heart_rate:`cm-metric-heart_rate`,power:`cm-metric-power`,calories:`cm-metric-calories`};function $D(e,t){if(e.type!==`time`&&e.type!==`log`||e.contentFrom===void 0||e.contentTo===void 0)return null;let n=t.doc.sliceString(e.contentFrom,e.contentTo);try{return xc().read(n,e.sport).statements}catch{return null}}function eO(e){let t=new pi,{sections:n}=e.field(TT),r=e.selection.main.head,i=e.doc.lineAt(r),a=null;for(let o of n){if(o.type!==`time`&&o.type!==`log`)continue;let n=$D(o,e);if(!n)continue;let s=r>=o.from&&r<=o.to;for(let r=0;r<n.length;r++){let c=n[r],l=o.startLine+1+r;if(l>=o.endLine)break;let u=e.doc.line(l),d=s&&i.number===l;for(let e=0;e<c.metrics.length;e++){let i=c.metrics[e],s=QD[i.type]||`cm-metric-generic`;t.add(u.from,u.to,Lr.mark({class:`cm-metric-mark ${s}`})),d&&!a&&(a={sectionId:o.id,section:o,lineFrom:u.from,docLine:l,statementIndex:r,statement:c,focusedMetric:i,focusedMetricIndex:e,allStatements:n})}}}return{focus:a,decos:t.finish()}}ni.define({create(e){return eO(e)},update(e,t){return eO(t.state)},provide:e=>Tr.decorations.from(e,e=>e.decos)});var tO=class extends wr{queryText;sectionId;widgetType;widgetError;attributes;tokenValues;options;root=null;constructor(e,t,n,r,i,a,o){super(),this.queryText=e,this.sectionId=t,this.widgetType=n,this.widgetError=r,this.attributes=i,this.tokenValues=a,this.options=o}eq(e){return this.queryText===e.queryText&&this.sectionId===e.sectionId&&this.widgetType===e.widgetType&&this.widgetError===e.widgetError&&JSON.stringify(this.attributes??{})===JSON.stringify(e.attributes??{})&&JSON.stringify(this.tokenValues??{})===JSON.stringify(e.tokenValues??{})&&this.options?.readOnly===e.options?.readOnly&&this.options?.executor===e.options?.executor&&this.options?.onOpenNote===e.options?.onOpenNote&&this.options?.noteHref===e.options?.noteHref}toDOM(e){let t=document.createElement(`div`);t.className=`cm-query-block-preview my-2`;let n=(0,Ci.createRoot)(t);return this.root=n,n.render((0,G.jsx)(aT,{query:this.queryText,widgetType:this.widgetType,widgetError:this.widgetError,attributes:this.attributes,tokenValues:this.tokenValues,readOnly:this.options?.readOnly,executor:this.options?.executor,onResultSaved:this.options?.onResultSaved,onSaveQuery:t=>{if(this.options?.onSaveQuery)return this.options.onSaveQuery(this.sectionId,t);let n=rO(e,this.sectionId,t);if(!n.ok)throw Error(n.message)},onOpenNote:this.options?.onOpenNote,noteHref:this.options?.noteHref})),t}updateDOM(e,t){return this.root?(this.root.render((0,G.jsx)(aT,{query:this.queryText,widgetType:this.widgetType,widgetError:this.widgetError,attributes:this.attributes,tokenValues:this.tokenValues,readOnly:this.options?.readOnly,executor:this.options?.executor,onResultSaved:this.options?.onResultSaved,onOpenNote:this.options?.onOpenNote,noteHref:this.options?.noteHref,onSaveQuery:e=>{if(this.options?.onSaveQuery)return this.options.onSaveQuery(this.sectionId,e);let n=rO(t,this.sectionId,e);if(!n.ok)throw Error(n.message)}})),!0):!1}destroy(){this.root&&setTimeout(()=>{try{this.root?.unmount()}catch{}},0)}get block(){return!0}};function nO(e,t){let n=new pi,{sections:r,rawContent:i}=e.field(TT),a=e.selection.main.head,o=Za(i).meta,s={...Rv(Lv(o)),...t?.tokenValues};for(let i of r){if(i.type!==`query`||a>=i.from&&a<=i.to||i.contentFrom===void 0||i.contentTo===void 0)continue;let r=e.doc.sliceString(i.contentFrom,i.contentTo);n.add(i.from,i.to,Lr.replace({widget:new tO(r,i.id,i.queryType,i.queryError,i.queryAttributes,s,t),block:!0}))}return n.finish()}function rO(e,t,n,r=0){if(e.state.readOnly)return{ok:!1,message:`Cannot modify query source in read-only mode.`};let i=iO(e,t);if(!i||i.contentFrom===void 0||i.contentTo===void 0)return{ok:!1,message:`Query block section not found`};let a=tte(e.state.doc.sliceString(i.contentFrom,i.contentTo),n,r);return e.dispatch({changes:{from:i.contentFrom,to:i.contentTo,insert:a}}),{ok:!0,patchedContent:a}}function iO(e,t){let{sections:n}=e.state.field(TT);return n.find(e=>e.id===t)??null}function aO(e){return[ni.define({create(t){return nO(t,e)},update(t,n){return n.docChanged||n.selection?nO(n.state,e):t},provide:e=>Tr.decorations.from(e)})]}var oO={view:`Edit widget`,editing:`Save widget`,error:`Undo changes`};function sO(e,t,n,r){return e===`editing`?n:e===`error`?r:t}function cO(e){return e?`opacity-100 scale-100 rotate-0`:`pointer-events-none opacity-0 scale-75 -rotate-12`}var lO=W.forwardRef(({mode:e,enterEditMode:t,onSave:n,onUndo:r,className:i,type:a=`button`,...o},s)=>{let c=oO[e],l=sO(e,t,n,r);return(0,G.jsx)(`button`,{...o,ref:s,type:a,"aria-label":c,title:c,"data-mode":e,onClick:l,className:uS(`absolute right-2 top-2 inline-flex h-8 w-8 items-center justify-center rounded-full border border-border/80 bg-background/90 shadow-sm backdrop-blur-sm transition-all duration-200 ease-out hover:bg-muted/80 hover:shadow-md focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 cursor-pointer`,e===`view`&&`text-muted-foreground hover:text-foreground`,e===`editing`&&`text-signal-positive hover:text-signal-positive/80`,e===`error`&&`text-signal-caution hover:text-signal-caution/80`,i),children:(0,G.jsxs)(`span`,{className:`relative h-4 w-4`,"aria-hidden":`true`,children:[(0,G.jsx)(fe,{"data-icon-state":`view`,className:uS(`absolute inset-0 h-4 w-4 transition-all duration-200 ease-out`,cO(e===`view`))}),(0,G.jsx)(Re,{"data-icon-state":`editing`,className:uS(`absolute inset-0 h-4 w-4 transition-all duration-200 ease-out`,cO(e===`editing`))}),(0,G.jsx)(O,{"data-icon-state":`error`,className:uS(`absolute inset-0 h-4 w-4 transition-all duration-200 ease-out`,cO(e===`error`))})]})})});lO.displayName=`WidgetEditButton`;var uO=W.forwardRef(({className:e,hasError:t=!1,spellCheck:n=!1,...r},i)=>(0,G.jsx)(`textarea`,{...r,ref:i,spellCheck:n,className:uS(`min-h-[160px] w-full rounded-xl border bg-background px-4 py-3 font-mono text-sm leading-6 text-foreground shadow-sm outline-none transition-colors duration-200 ease-out placeholder:text-muted-foreground/70`,`focus:border-ring focus:ring-2 focus:ring-ring/20`,t?`border-destructive/70 focus:border-destructive focus:ring-destructive/20`:`border-border/70`,e)}));uO.displayName=`EditableMarkdown`;var dO=Kr.define(),fO=ni.define({create:()=>new Set,update(e,t){let n=e;for(let e of t.effects)e.is(dO)&&(n=new Set(n),e.value.editing?n.add(e.value.sectionId):n.delete(e.value.sectionId));return n}});function pO(e){return e.endsWith(`
82
82
  `)?e.slice(0,-1):e}function mO(e){return`${e.replace(/\n+$/,``)}\n`}function hO(e){let t=e.trim();if(t.length===0)return{ok:!0,config:{}};try{let e=JSON.parse(t);return!e||Array.isArray(e)||typeof e!=`object`?{ok:!1,config:{},message:`Widget config must be a JSON object.`}:{ok:!0,config:e}}catch(e){return{ok:!1,config:{},message:e instanceof Error?e.message:`Invalid JSON.`}}}function gO(e,t){let{sections:n}=e.state.field(TT);return n.find(e=>e.type===`widget`&&e.id===t)??null}function _O(e,t,n){if(e.state.readOnly)return{ok:!1,config:{},message:`Cannot modify widget source in read-only mode.`};let r=hO(n);if(!r.ok)return r;let i=gO(e,t);return!i||i.contentFrom==null||i.contentTo==null?{ok:!1,config:{},message:`Unable to locate widget source in the editor.`}:(e.dispatch({changes:{from:i.contentFrom,to:i.contentTo,insert:mO(n)}}),r)}function vO(e){return(0,G.jsxs)(`div`,{className:`rounded-xl border border-dashed border-border/70 bg-muted/30 px-4 py-5 text-sm text-muted-foreground`,children:[(0,G.jsxs)(`span`,{className:`font-mono`,children:[`widget:`,e]}),(0,G.jsx)(`span`,{className:`ml-2 opacity-70`,children:`is not registered`})]})}function yO(e,t){return(0,G.jsxs)(`div`,{className:`rounded-xl border border-destructive/30 bg-destructive/5 px-4 py-5 text-sm text-destructive shadow-sm`,children:[(0,G.jsx)(`p`,{className:`font-medium`,children:`Widget config error`}),(0,G.jsxs)(`p`,{className:`mt-1 font-mono text-xs leading-5 text-destructive/90`,children:[`widget:`,e]}),(0,G.jsx)(`p`,{className:`mt-2 font-mono text-xs leading-5 text-destructive/90`,children:t})]})}function bO({widgetName:e,rawContent:t,sectionId:n,registry:r,view:i}){let a=W.useRef(null),o=W.useRef(null),s=W.useRef(null),c=W.useMemo(()=>pO(t),[t]),[l,u]=W.useState(()=>({isEditing:!1,isDirty:!1,error:null,originalMarkdown:c,currentMarkdown:c,hasFocus:!1}));W.useEffect(()=>{u(e=>({...e,isEditing:!1,isDirty:!1,error:null,originalMarkdown:c,currentMarkdown:c}))},[c]),W.useEffect(()=>{if(!l.isEditing)return;let e=window.requestAnimationFrame(()=>{o.current?.focus();let e=o.current?.value.length??0;o.current?.setSelectionRange(e,e)});return()=>window.cancelAnimationFrame(e)},[l.isEditing]);let d=r.get(e),f=W.useMemo(()=>hO(l.originalMarkdown),[l.originalMarkdown]),p=W.useCallback(e=>{u(t=>t.hasFocus===e?t:{...t,hasFocus:e})},[]),m=W.useCallback(()=>{u(e=>({...e,isEditing:!0,isDirty:!1,error:null,currentMarkdown:e.originalMarkdown}))},[]),h=W.useCallback(e=>{let t=_O(i,n,e);if(!t?.ok)return u(e=>({...e,error:t?.message??`Invalid JSON.`})),!1;let r=pO(mO(e));return u({isEditing:!1,isDirty:!1,error:null,originalMarkdown:r,currentMarkdown:r,hasFocus:!1}),!0},[i,n]),g=W.useCallback(()=>{h(o.current?.value??l.currentMarkdown)},[h,l.currentMarkdown]),_=W.useCallback(()=>{u(e=>({...e,isEditing:!1,isDirty:!1,error:null,currentMarkdown:e.originalMarkdown}))},[]),v=W.useCallback(e=>{let t=e.target.value;u(e=>{let n=e.error?hO(t):null;return{...e,currentMarkdown:t,isDirty:t!==e.originalMarkdown,error:n?.ok===!1?n.message:n?.ok?null:e.error}})},[]),y=W.useCallback(()=>{p(!1);let e=o.current?.value;if(e===void 0)return;let t=_O(i,n,e);if(!t?.ok){u(n=>({...n,isDirty:e!==n.originalMarkdown,error:t?.message??`Unable to save widget source.`}));return}let r=pO(mO(e));u({isEditing:!1,isDirty:!1,error:null,originalMarkdown:r,currentMarkdown:r,hasFocus:!1})},[n,i,p]),b=W.useCallback(e=>{let t=e.relatedTarget;t instanceof Node&&a.current?.contains(t)||p(!1)},[p]),x=W.useCallback(e=>{e.key===`Enter`&&!l.isEditing&&(e.preventDefault(),m())},[m,l.isEditing]);W.useEffect(()=>{let e=s.current;if(e)return e.addEventListener(`keydown`,x),()=>e.removeEventListener(`keydown`,x)},[x]);let S=W.useCallback(e=>{e.key===`Escape`?(e.preventDefault(),_()):e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),g())},[g,_]),C=l.error?`error`:l.isEditing?`editing`:`view`,w=l.hasFocus||l.isEditing||l.error!==null,T;return T=d?f.ok?W.createElement(d,{config:f.config,rawContent:l.originalMarkdown,sectionId:n}):yO(e,f.message):vO(e),(0,G.jsxs)(`div`,{ref:a,"data-widget-section-id":n,"data-widget-mode":C,className:uS(`group relative rounded-2xl border border-transparent bg-background/95 p-3 transition-colors duration-200 ease-out hover:border-border`,l.isEditing&&l.error===null&&`border-signal-positive/40 ring-1 ring-signal-positive/15`,l.error!==null&&`border-destructive/40 ring-1 ring-destructive/15`),onMouseDownCapture:e=>{l.isEditing||e.preventDefault()},onFocusCapture:()=>p(!0),onBlurCapture:b,onKeyDownCapture:x,children:[(0,G.jsx)(lO,{mode:C,enterEditMode:m,onSave:g,onUndo:_,className:uS(`z-10 focus-visible:opacity-100 focus-visible:scale-100 group-focus-within:pointer-events-auto group-focus-within:opacity-100 group-focus-within:scale-100`,w?`pointer-events-auto opacity-100 scale-100`:`pointer-events-none opacity-0 scale-95 group-hover:pointer-events-auto group-hover:opacity-100 group-hover:scale-100`)}),l.isEditing?(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[l.error!==null&&(0,G.jsxs)(`div`,{"data-testid":`widget-error-inlay`,className:`rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2 text-xs text-destructive`,children:[`Invalid JSON: `,l.error]}),(0,G.jsx)(uO,{ref:o,"data-testid":`widget-markdown-editor`,value:l.currentMarkdown,onChange:v,onBlur:y,onKeyDown:S,hasError:l.error!==null})]}):(0,G.jsx)(`div`,{ref:s,"data-testid":`widget-preview-surface`,tabIndex:0,onKeyDown:x,children:T})]})}var xO=class extends wr{sectionId;constructor(e){super(),this.sectionId=e}eq(e){return this.sectionId===e.sectionId}toDOM(e){let t=document.createElement(`div`);return t.className=`relative h-0 w-full`,(0,Ci.createRoot)(t).render((0,G.jsx)(`div`,{className:`absolute right-0 top-1 z-50`,children:(0,G.jsx)(lO,{mode:`editing`,enterEditMode:()=>{},onSave:()=>{e.dispatch({effects:dO.of({sectionId:this.sectionId,editing:!1})})},onUndo:()=>{e.dispatch({effects:dO.of({sectionId:this.sectionId,editing:!1})})}})})),t}ignoreEvent(){return!1}},SO=class extends wr{widgetName;rawContent;sectionId;registry;root=null;constructor(e,t,n,r){super(),this.widgetName=e,this.rawContent=t,this.sectionId=n,this.registry=r}eq(e){return this.widgetName===e.widgetName&&this.rawContent===e.rawContent&&this.sectionId===e.sectionId}toDOM(e){let t=document.createElement(`div`);return t.className=`cm-widget-block-preview`,t.style.cssText=`display:block; width:100%; min-height:1.5em; outline:none;`,this.root=(0,Ci.createRoot)(t),this.root.render(W.createElement(bO,{widgetName:this.widgetName,rawContent:this.rawContent,sectionId:this.sectionId,registry:this.registry,view:e})),t}destroy(){if(this.root){let e=this.root;this.root=null,queueMicrotask(()=>{try{e.unmount()}catch{}})}}ignoreEvent(){return!1}get estimatedHeight(){return 200}};function CO(e,t){let n;try{n=e.field(TT)}catch{return Lr.none}let{sections:r}=n,i=e.field(fO),a=[],o=e.selection.main.head;for(let n of r){if(n.type!==`widget`||!n.widgetName)continue;let r=e.doc;if(n.startLine>r.lines||n.endLine>r.lines)continue;if(i.has(n.id)){a.push(Lr.widget({widget:new xO(n.id),side:1,block:!1}).range(n.from));continue}if(o>=n.from&&o<=n.to)continue;let s=n.contentFrom!=null&&n.contentTo!=null?r.sliceString(n.contentFrom,n.contentTo):``;a.push(Lr.replace({widget:new SO(n.widgetName,s,n.id,t),block:!0}).range(n.from,n.to))}return a.sort((e,t)=>e.from-t.from),Lr.set(a)}function wO(e,t){return e.find(e=>e.type===`widget`&&t.from>=e.from&&t.from<=e.to)??null}function TO(e,t){let{head:n}=e.state.selection.main,r=e.state.doc.lineAt(n),i=Math.max(0,n-r.from),a=Math.min(i,t.length),o=t.from+a;e.dispatch({selection:{anchor:o,head:o},scrollIntoView:!0})}function EO(e){let{head:t}=e.state.selection.main,n=e.state.doc.lineAt(t),{sections:r}=e.state.field(TT),i=e.state.field(fO),a=wO(r,n);if(a&&!i.has(a.id))return!1;let o=n.number+1;if(o>e.state.doc.lines)return!1;let s=wO(r,e.state.doc.line(o));return!s||i.has(s.id)?!1:(TO(e,e.state.doc.line(s.startLine)),!0)}function DO(e){let{head:t}=e.state.selection.main,n=e.state.doc.lineAt(t),{sections:r}=e.state.field(TT),i=e.state.field(fO),a=wO(r,n);if(a&&!i.has(a.id))return!1;let o=n.number-1;if(o<1)return!1;let s=wO(r,e.state.doc.line(o));return!s||i.has(s.id)?!1:(TO(e,e.state.doc.line(s.endLine)),!0)}var OO=si.high(vr.of([{key:`ArrowDown`,run:EO},{key:`ArrowUp`,run:DO}]));function kO(e){return[ni.define({create(t){return CO(t,e)},update(t,n){let r=n.effects.some(e=>e.is(dO)),i=!n.startState.selection.eq(n.newSelection);return n.docChanged||r||i?CO(n.state,e):t},provide:e=>Tr.decorations.from(e)}),fO,OO]}function AO(e){let t=e?.split(`:`,1)[0]?.toLowerCase();return t===`time`||t===`log`||t===`wod`||t===`whiteboard`?Hc:t===`wql`||t===`query`?gg:null}var jO=new class{_db;constructor(e){this._db=e}get db(){return this._db??Z}async load(){return this.db.getAllEfforts()}async save(e){await this.db.saveEffort(e)}async delete(e){await this.db.deleteEffort(e)}};function MO(){return new Nl({storage:jO})}async function NO(e){let t=await Z.getAllEfforts();await e.loadBundled(t.filter(e=>e.registrySource===`bundled`)),IO()}var PO=new Set;function FO(e){return PO.add(e),()=>PO.delete(e)}function IO(){for(let e of PO)e()}var LO=null;function RO(){return LO||=MO(),LO}function zO(e){let t=e.split(/\r?\n\s*\r?\n/).map(e=>e.trim()).find(e=>e.length>0&&!e.startsWith(`#`)&&!e.startsWith("```")&&!e.startsWith(`|`)&&!e.startsWith(`- `)&&!e.startsWith(`* `));if(t)return t.replace(/^>\s?/,``).replace(/!\[([^\]]*)\]\([^)]*\)/g,`$1`).replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/[`*_~]/g,``).replace(/\s+/g,` `).trim()||void 0}function BO(e){let{meta:t,body:n}=Za(e),r=to(t,`description`),i=to(t,`image`),a;if(typeof i==`string`&&i.trim()){let e=i.trim();(/^https?:\/\//.test(e)||e.startsWith(`/`))&&(a=e)}let o=typeof r==`string`&&r.trim()?r.trim():zO(n);return{...o?{description:o}:{},...a?{image:a}:{}}}function VO(e){return e.split(/[-_\s]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}var HO={and:!0,or:!0,of:!0,for:!0,to:!0,in:!0,on:!0,at:!0,by:!0,with:!0,the:!0,a:!0,an:!0};function UO(e){let t=e.replace(/\.md$/,``);if(t.toUpperCase()===`README`)return`Overview`;let n=t.replace(/^day-\d+-/,``).split(/[-_]/),r=[];for(let e=0;e<n.length;e++){let t=n[e],i=n[e+1],a=n[e+2],o=n[e-1];if(/^\d{1,2}$/.test(t)&&/^\d{1,2}$/.test(i??``)&&!/^\d+$/.test(o??``)&&!/^\d+$/.test(a??``)){r.push(`${t}.${i}`),e++;continue}if(r.length>0&&HO[t.toLowerCase()]){r.push(t.toLowerCase());continue}r.push(t.charAt(0).toUpperCase()+t.slice(1))}return r.join(` `)}function WO(e,t){if(e!==`notebooks`)return[];let n=new Map,r=e=>{let t=n.get(e);return t||(t={id:e,name:VO(e),categories:[],items:[]},n.set(e,t)),t};for(let[e,n]of Object.entries(t)){let t=e.match(/(?:^|\/)markdown\/notebooks\/([^/]+)\/README\.md$/i);if(t){let e=r(t[1]);e.readme=n,e.categories=ro(n),Object.assign(e,BO(n));continue}let i=e.match(/(?:^|\/)markdown\/notebooks\/([^/]+)\/(\d{4}-\d{2}-\d{2})\/([^/]+\.md)$/);if(i){let[,t,a,o]=i;r(t).items.push({id:o.replace(/\.md$/,``),name:UO(o),content:n,path:e,...a?{date:a}:{}});continue}let a=e.match(/(?:^|\/)markdown\/notebooks\/([^/]+)\/([^/]+\.md)$/);if(!a)continue;let[,o,s]=a;s.toLowerCase()!==`readme.md`&&r(o).items.push({id:s.replace(/\.md$/,``),name:UO(s),content:n,path:e})}for(let e of n.values())e.items.sort((e,t)=>e.date&&t.date&&e.date!==t.date?t.date.localeCompare(e.date):e.date&&!t.date?-1:!e.date&&t.date?1:e.id.localeCompare(t.id));return Array.from(n.values()).filter(({items:e,readme:t})=>e.length>0||t!==void 0).sort((e,t)=>e.name.localeCompare(t.name))}function GO(e){return WO(`notebooks`,e)}var KO=null,qO=[];async function JO(){let e=await ck();return KO!==e&&(KO=e,qO=GO(e)),qO}function YO(e,t,n){return e?.items.find(e=>(e.date??``)===t&&e.id===n)}var XO=null,ZO=null;function QO(){return XO||=Z.getAllBlockIndex().then(e=>e.filter(e=>e.isStatic===!0)).catch(e=>{throw XO=null,e}),XO}function $O(){XO=null,ZO=null}function ek(e){let t=new Map;for(let n of e)for(let e of ja(n.rawContent).filter(e=>e.type===`frontmatter`).flatMap(e=>io(e.displayContent))){let r=t.get(e);r?r.add(n.id):t.set(e,new Set([n.id]))}return t}function tk(){return ZO||=Z.getAllNotes().then(async e=>{let t=ek(e.filter(e=>e.seedOrigin===`seed`));try{let e=await JO();for(let n of e)for(let e of n.categories){let r=t.get(e);r?r.add(n.id):t.set(e,new Set([n.id]))}}catch{}return t}),ZO}async function nk(){let e=RO();return e.isInitialized()||await e.loadBundled(),e.list()}hw(`discipline`,{load:async()=>{try{return cw((await nk()).map(e=>e.baseAttributes?.discipline).filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>({value:e.trim(),label:e.trim()})),sw(Xc))}catch{return sw(Xc)}},cache:{ttlMs:6e4},open:!1,emptyText:`No disciplines available`}),hw(`effort`,{load:async()=>{try{return cw((await nk()).filter(e=>e.slug).map(e=>({value:e.slug,label:e.label||e.slug})),[]).sort((e,t)=>e.value.localeCompare(t.value))}catch{return[]}},cache:{ttlMs:6e4},open:!0,emptyText:`No efforts indexed yet — type one to filter`}),hw(`intensity`,{load:async()=>{try{return cw((await nk()).map(e=>e.baseAttributes?.intensityTier).filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>({value:e.trim(),label:e.trim()})),sw(Jc))}catch{return sw(Jc)}},cache:{ttlMs:6e4},open:!1,emptyText:`No intensity tiers indexed yet`}),hw(`type`,{load:async()=>{try{return cw(iw(await QO()).map(e=>({value:e,label:e})),sw(ow))}catch{return sw(ow)}},cache:{ttlMs:3e5},open:!1,emptyText:`No indexed block types yet`}),hw(`notebook`,{load:async()=>rw(await QO()).map(e=>({value:e,label:e})),cache:`static`,open:!1,emptyText:`No notebooks in the static corpus`}),hw(`tag`,{load:async()=>{let e=await tk(),t=Array.from(e.keys()),n=[];try{n=(await Z.getAllTags()).map(e=>e.label)}catch{}return aw(n,t).map(e=>({value:e,label:e}))},cache:{ttlMs:3e4},open:!0,emptyText:`No tags yet — type one to filter by it`});for(let e of[`domain`,`format`,`equipment`,`quality`,`intent`])hw(e,{load:async()=>{try{return(await Z.getTags(e)).map(e=>({value:e.label,label:e.label}))}catch{return[]}},cache:{ttlMs:6e4},open:!0,emptyText:`No ${e}s indexed yet`});hw(`origin`,{load:async()=>{try{let e=await Z.getAllEfforts(),t=new Set;for(let n of e)n.registrySource&&t.add(n.registrySource);return Array.from(t).sort().map(e=>({value:e,label:e}))}catch{return[]}},cache:{ttlMs:6e4},open:!0,emptyText:`No effort origins indexed yet — type one to filter`}),(async()=>{try{let e=await Z.getAllTagTypes();for(let t of e)gw(t.name)||hw(t.name,{load:async()=>{try{return(await Z.getTags(t.name)).map(e=>({value:e.label,label:e.label}))}catch{return[]}},cache:{ttlMs:6e4},open:!0,emptyText:`No ${t.label}s indexed yet`})}catch{}})();var rk=null,ik=null,ak=new Set;function ok(){for(let e of ak)e()}async function sk(){let e=await Z.getSeedContent(),t={};for(let{path:n,raw:r}of e)t[n]=r;return t}function ck(){return ik||=sk().then(e=>(Object.keys(e).length>0&&lS(`corpusReady`),rk=e,ok(),e)).catch(e=>{throw ik=null,e}),ik}function lk(){rk=null,ik=null,$O(),ck()}function ste(e){return ak.add(e),()=>ak.delete(e)}function uk(){return rk}function dk(){let e=(0,W.useSyncExternalStore)(ste,uk);return(0,W.useEffect)(()=>{ck()},[]),e}var fk=!1;function pk(){if(fk||typeof BroadcastChannel>`u`)return;fk=!0;let e=new BroadcastChannel(Dy);e.onmessage=()=>lk()}var mk=`wodwiki.dataSettings.v1`;function hk(){let e=bk();return e.state!==`invalid`&&e.localDbName?e.localDbName:tx}function gk(e){return typeof e==`string`&&/^[A-Za-z0-9][A-Za-z0-9._-]{0,99}$/.test(e)}var _k={"libsql:":!0,"https:":!0,"wss:":!0};function vk(e,t){let n;try{n=new URL(e.trim())}catch{return`That is not a valid URL.`}if(n.protocol===`http:`||n.protocol===`ws:`){if(n.hostname!==`localhost`&&n.hostname!==`127.0.0.1`&&n.hostname!==`[::1]`&&n.hostname!==`::1`)return`Plain http:// is only allowed for a local smoke server (localhost / 127.0.0.1).`}else if(!_k[n.protocol])return`Unsupported protocol "${n.protocol}" — use libsql:// or https://.`;if(n.username||n.password)return`The URL must not embed credentials — put the token in the token field.`;if(n.search)return`The URL must not contain a query string.`;if(n.hash)return`The URL must not contain a fragment.`;if(!t||!t.trim())return`A database token is required.`}function yk(){try{return localStorage.getItem(mk)}catch{return null}}function bk(){let e=yk();if(e===null)return{state:`indexed-db`};let t;try{t=JSON.parse(e)}catch{return{state:`invalid`,raw:e,error:`Saved data settings are not valid JSON.`}}if(!t||typeof t!=`object`||Array.isArray(t))return{state:`invalid`,raw:e,error:`Saved data settings have an unexpected shape.`};if(!(`kind`in t))return{state:`invalid`,raw:e,error:`Saved data settings have no kind.`};let n=t.kind,r=`localDbName`in t?t.localDbName:void 0;if(r!==void 0&&!gk(r))return{state:`invalid`,raw:e,error:`Saved data settings have an invalid localDbName.`};let i=r===void 0?{}:{localDbName:r};if(n===`indexed-db`)return{state:`indexed-db`,...i};if(n!==`turso`)return{state:`invalid`,raw:e,error:`Saved data settings have an unknown kind "${String(n)}".`};if(!(`url`in t)||!(`authToken`in t))return{state:`invalid`,raw:e,error:`Saved Turso settings are missing the URL or token.`};let a=t.url,o=t.authToken;if(typeof a!=`string`||typeof o!=`string`)return{state:`invalid`,raw:e,error:`Saved Turso settings are missing the URL or token.`};let s=vk(a,o);return s?{state:`invalid`,raw:e,error:s}:{state:`turso`,url:a,authToken:o,...i}}var xk=yk();typeof window<`u`&&window.addEventListener(`storage`,e=>{(e.key===`wodwiki.dataSettings.v1`||e.key===null)&&e.newValue!==xk&&window.location.reload()});var Sk=t({DATA_SETTINGS_KEY:()=>mk,IndexedDBStorage:()=>mx,StorageService:()=>kx,profileService:()=>Ck,readAllLocalRows:()=>Fk,readUnsentEdits:()=>Pk,startBackgroundStorageSync:()=>Mk,stopBackgroundStorageSync:()=>Nk,storage:()=>Ek,storageBackend:()=>`api`,storageService:()=>Z,whenStorageReady:()=>kk}),Ck=Rx(`api`);function wk(){return new ob(`/api`,void 0,{getUserId:()=>Ck.currentSync()?.id})}var Tk=wk(),Ek={readonly(e){return Tk.readonly(e)},readwrite(e){return Tk.readwrite(e)},transaction(e,t,n){return Tk.transaction(e,t,n)},async queryDomain(e){return Tk.queryDomain?.(e)},wipe(){return Tk.wipe()},close(){return Tk.close()}},Z=new kx(Ek),Dk;async function Ok(){try{await Z.ensureDefaultTagTypes()}catch{}}function kk(){return Dk||(Dk=(async()=>{await Ok()})(),Dk)}var Ak,jk;function Mk(){return Ak||(Ak={stop:()=>{Ak=void 0}},jk=()=>{Ak?.stop(),jk=void 0}),jk}async function Nk(){return Ak&&Ak.stop(),!1}async function Pk(){return Tk instanceof mx?Tk.readOutbox(0,2**53-1):[]}async function Fk(){return Tk instanceof mx?Tk.snapshotAllRows():[]}var Ik={registeredWidgets:Ea},Lk=[`notes`,`block_revisions`,`page`,`page_notes`,`tags`,`note_tags`,`tag_types`,`sessions`,`events`,`block_index`,`block_efforts`,`block_equipment`,`efforts`,`equipment`];function Rk(e){let t=va(e.links,e.pages),n=ya(t);return{id:e.note.id,title:e.note.title,slug:n.pageSlug,pageId:n.pageId,journalDate:n.journalDate,placements:t,createdAt:e.note.createdAt,updatedAt:e.note.createdAt,targetDate:e.note.date??e.note.createdAt,rawContent:e.note.rawContent,blocks:e.note.blocks,sourceRevision:e.note.sourceRevision,tags:e.tags.map(e=>e.label),type:e.note.type??`note`,sourceId:e.note.sourceId,notebookId:e.note.notebookId,seedOrigin:e.note.seedOrigin,schemaVersion:1}}function zk(e){if(e?.dateRange)return e.dateRange;if(e?.daysBack!=null){let t=Date.now();return{start:t-e.daysBack*864e5,end:t}}}var Bk=class e{db;constructor(e=Z){this.db=e}get persistenceStorage(){return this.db}mode=`history`;capabilities={canWrite:!0,canDelete:!0,canFilter:!0,canMultiSelect:!0,supportsHistory:!0};async getRecords(e){let t=zk(e),n=[];t&&n.push({field:`date`,start:t.start,end:t.end});for(let t of e?.tags??[])n.push({field:`tags`,values:[t]});let r=await this.db.queryDomain(n.length?{plan:`detail`,selection:n}:{plan:`detail`}),i;if(r?.plan===`detail`)i=r.rows.map(Rk);else{let e=t?await this.db.getNotesByDateRange(t.start,t.end):await this.db.getAllNotes();i=[...(await this.db.getDetailBatches(e.map(e=>e.id))).values()].map(Rk)}return i=i.filter(n=>(!t||n.targetDate>=t.start&&n.targetDate<=t.end)&&(e?.tags??[]).every(e=>n.tags.includes(e))),i.sort((e,t)=>t.targetDate-e.targetDate)}async getRecord(e){let t=await this.resolveStoredNote(e);if(!t)return null;let n=(await this.db.getDetailBatches([t.id])).get(t.id);if(!n)return null;let r=Rk(n),i=(await this.db.getSessionsForNote(t.id)).sort((e,t)=>t.createdAt-e.createdAt)[0],a=ja(t.rawContent,Ik).map(e=>{let n=Object.values(t.blocks).find(t=>t.from===e.from&&t.to===e.to);return n?{...e,id:n.id,version:n.version,scriptBlock:e.scriptBlock?{...e.scriptBlock,id:n.id,version:n.version}:void 0}:e});return{...r,sections:a,results:i?Qb(i,await this.db.getEventsByResult(i.id)):void 0}}async cloneRecord(e,t){let n=await this.getRecord(e);if(!n)throw Error(`Source entry not found: ${e}`);let r=t??Date.now();return this.saveRecord({title:n.title,rawContent:n.rawContent,tags:n.tags,targetDate:r,journalDate:Ub(new Date(r)),type:`journal`,sourceId:n.id})}async saveRecord(t){let n=Date.now(),r=t.id??(t.type===`playground`?Jb(n):$t());if(!t.id&&t.type===`playground`){let e=r;for(let t=1;await this.db.getNote(r);t++){if(t>100)throw Error(`Unable to allocate unique playground timestamp ID`);r=`${e}-${t}`}}await this.db.withTransaction([...Lk],async n=>{let i=await n.getNote(r),a=i?t.sourceRevision:0;if(a===void 0)throw new $b(`STALE_SOURCE`,`An expected source revision is required for ${r}`);let o=await new e(n).changedManualTags(r,t.tags),s=t.blocks??(i?.rawContent===t.rawContent?i.blocks:Na(t.rawContent,{...Ik,sourceRevision:a||1}));await n.saveNoteSource({noteId:r,rawContent:t.rawContent,blocks:s,expectedSourceRevision:a,createdAt:t.createdAt,metadata:{title:t.title,type:t.type,tags:o,targetDate:t.targetDate,sourceId:t.sourceId}});let c=new e(n);await c.updateRelationships(r,{journalDate:t.journalDate,slug:t.slug}),await c.updateTags(r,t.rawContent,o)});let i=await this.getRecord(r);if(!i)throw Error(`Saved note disappeared: ${r}`);return i}async updateRecord(t,n){let r=await this.resolveStoredNote(t);if(!r)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${t}`);await this.db.withTransaction([...Lk],async t=>{let i=await t.getNote(r.id);if(!i)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${r.id}`);let a=n.rawContent??i.rawContent;if(n.rawContent!==void 0&&n.expectedSourceRevision===void 0)throw new $b(`STALE_SOURCE`,`An expected source revision is required for ${i.id}`);let o=n.expectedSourceRevision??i.sourceRevision,s=n.tags===void 0?void 0:await new e(t).changedManualTags(i.id,n.tags),c=n.blocks??(a===i.rawContent?i.blocks:Na(a,{...Ik,sourceRevision:o}));await t.saveNoteSource({noteId:i.id,rawContent:a,blocks:c,expectedSourceRevision:o,metadata:{title:n.title,type:n.type,tags:s,targetDate:n.targetDate,sourceId:n.sourceId}});let l=new e(t);if(await l.updateRelationships(i.id,n),(n.tags!==void 0||a!==i.rawContent)&&await l.updateTags(i.id,a,s),n.results){if(!n.blockId||!n.blockVersion)throw Error(`Recording a result requires its frozen block pin`);let e=await t.getBlockRevision(i.id,n.blockId,n.blockVersion);if(!e||e.kind!==`wod`)throw new $b(`BLOCK_REVISION_NOT_FOUND`,`Pinned workout revision not found`);let r=n.resultId?await t.getSessionById(n.resultId):void 0;if(r&&(r.noteId!==i.id||r.blockId!==n.blockId||r.blockVersion!==n.blockVersion))throw new $b(`RESULT_NOTE_MISMATCH`,`Cannot replace a Session pin`);let a=n.results,o={...r,id:n.resultId??$t(),noteId:i.id,blockId:n.blockId,blockVersion:n.blockVersion,blockContentId:n.blockContentId,origin:n.origin??r?.origin,startTime:a.startTime,endTime:a.endTime,duration:a.duration??0,completed:a.completed,roundsCompleted:a.roundsCompleted,totalRounds:a.totalRounds,repsCompleted:a.repsCompleted,status:`completed`,createdAt:r?.createdAt??a.endTime??Date.now()};if(await t.saveSession(o),a.logs?.length){let e={noteId:o.noteId,resultId:o.id,blockId:o.blockId,blockVersion:o.blockVersion,blockContentId:o.blockContentId,origin:o.origin,pageId:o.pageId,workoutTimestamp:o.endTime};await t.appendEvents(k_(a.logs,e)),await t.finalizeSummaries(o.id,A_(a.logs,e))}}});let i=await this.getRecord(r.id);if(!i)throw Error(`Saved note disappeared: ${r.id}`);return i}async updateRelationships(e,t){for(let n of[`journalDate`,`slug`]){let r=t[n];if(r===void 0)continue;if(!r){for(let t of await this.db.getNotePages(e)){let r=await this.db.getPage(t.pageId);(n===`journalDate`?r?.date:r?.slug&&!r.date)&&await this.db.removeNoteFromPage(e,t.pageId)}continue}let i=await this.resolvePage(e,n,r);await this.db.addNoteToPage(e,i.id)}}async resolvePage(e,t,n){if(t===`journalDate`)return this.db.getOrCreatePageForDate(n);let r=await this.db.getPageBySlug(n);if(r)return r;let i={id:$t(),slug:n,title:(await this.db.getNote(e))?.title,createdAt:Date.now()};return await this.db.savePage(i),i}async resolveTargetPage(e,t){if(t.date)return this.db.getOrCreatePageForDate(t.date);if(t.slug)return this.resolvePage(e,`slug`,t.slug);throw Error(`A placement target needs a date or a slug`)}async addRecordPlacement(e,t){let n=await this.resolvePlacementNoteId(e),r=await this.resolveTargetPage(n,t);await this.db.addNoteToPage(n,r.id);let i=await this.getRecord(n);if(!i)throw Error(`Saved note disappeared: ${n}`);return i}async removeRecordPlacement(e,t){let n=await this.resolvePlacementNoteId(e);await this.db.removeNoteFromPage(n,t);let r=await this.getRecord(n);if(!r)throw Error(`Saved note disappeared: ${n}`);return r}async moveRecordPlacement(e,t,n){let r=await this.resolvePlacementNoteId(e),i=await this.resolveTargetPage(r,n);await this.db.moveNoteBetweenPages(r,t,i.id);let a=await this.getRecord(r);if(!a)throw Error(`Saved note disappeared: ${r}`);return a}async getPageRecords(e){let t=await this.db.getPageBySlug(e);if(!t)return[];let n=await this.db.getPagePlacements(t.id);if(n.length===0)return[];let r=await this.db.getDetailBatches(n.map(e=>e.noteId));return n.map(e=>r.get(e.noteId)).filter(e=>e!==void 0).map(Rk)}async resolvePlacementNoteId(e){let t=e.startsWith(`playground/`)?e.slice(11):e,n=await this.db.getNote(e)??(t===e?void 0:await this.db.getNote(t));if(!n)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${e}`);return n.id}async resolveStoredNote(e){let t=e.startsWith(`playground/`)?e.slice(11):e;return await this.db.getNote(e)??(t===e?void 0:await this.db.getNote(t))??await this.db.getNoteBySlug(e)??(t===e?void 0:await this.db.getNoteBySlug(t))}async resolveNoteId(e){let t=await this.resolveStoredNote(e);if(!t)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${e}`);return t.id}async changedManualTags(e,t){let n=(await this.db.getTagsForNote(e)).map(e=>e.label).sort(),r=[...new Set(t.map(e=>e.trim()).filter(Boolean))].sort();return n.length===r.length&&n.every((e,t)=>e===r[t])?void 0:r}async updateTags(e,t,n){let r=(await this.db.getAllTagTypes()).map(e=>e.name),i=ja(t,Ik).filter(e=>e.type===`frontmatter`).flatMap(e=>ao(e.displayContent,r)),a=n??(await this.db.getNote(e))?.tags??[];await this.db.setNoteTags(e,[...a,...i.map(e=>e.type?e:e.label)])}async deleteRecord(e){await this.db.deleteNote(e)}async getAttachments(e){return this.db.getAttachmentsForNote(e)}async saveAttachment(e,t){let n={...t,id:t.id??$t(),noteId:e,createdAt:Date.now()};return await this.db.saveAttachment(n),n}async deleteAttachment(e){await this.db.deleteAttachment(e)}},Vk={beep:{notes:[{freq:880,type:`sine`,duration:.1}]},tick:{notes:[{freq:880,type:`sine`,duration:.1}]},click:{notes:[{freq:1400,type:`sine`,duration:.1}]},buzzer:{notes:[{freq:150,type:`sawtooth`,duration:.5}]},chime:{notes:[{freq:523.25,type:`sine`,duration:.5,offset:0},{freq:659.25,type:`sine`,duration:.5,offset:.1},{freq:783.99,type:`sine`,duration:.5,offset:.2}]},complete:{notes:[{freq:523.25,type:`sine`,duration:.5,offset:0},{freq:659.25,type:`sine`,duration:.5,offset:.1},{freq:783.99,type:`sine`,duration:.5,offset:.2}]},select:{notes:[{freq:880,type:`sine`,duration:.08,offset:0},{freq:1200,type:`sine`,duration:.12,offset:.08}]},start:{notes:[{freq:440,type:`square`,duration:.1,offset:0},{freq:880,type:`square`,duration:.3,offset:.15}]},"countdown-beep":{notes:[{freq:880,type:`sine`,duration:.1}]},"timer-complete":{notes:[{freq:523.25,type:`sine`,duration:.4,offset:0},{freq:659.25,type:`sine`,duration:.4,offset:.1},{freq:783.99,type:`sine`,duration:.6,offset:.2}]},"start-beep":{notes:[{freq:440,type:`square`,duration:.1,offset:0},{freq:880,type:`square`,duration:.3,offset:.15}]},"interval-start":{notes:[{freq:440,type:`square`,duration:.1,offset:0},{freq:880,type:`square`,duration:.3,offset:.15}]},"interval-complete":{notes:[{freq:523.25,type:`sine`,duration:.4,offset:0},{freq:659.25,type:`sine`,duration:.4,offset:.1},{freq:783.99,type:`sine`,duration:.6,offset:.2}]},"rest-over":{notes:[{freq:783.99,type:`sine`,duration:.3,offset:0},{freq:1046.5,type:`sine`,duration:.5,offset:.15}]}};function Hk(e){return Vk[e]}var Uk=Object.freeze(Object.keys(Vk)),Wk=class{context=null;masterGain=null;init(){if(this.context)return;let e=window;if(typeof window>`u`)return;let t=window.AudioContext??e.webkitAudioContext;t&&(this.context=new t,this.masterGain=this.context.createGain(),this.masterGain.connect(this.context.destination))}async playNotes(e,t){if(this.context||this.init(),!this.context||!this.masterGain||(this.context.state===`suspended`&&await this.context.resume().catch(()=>{}),this.context.state!==`running`))return;let n=this.context.currentTime;for(let r of e)this.playNote(n+(r.offset??0),r.freq,r.type,r.duration,t)}playNote(e,t,n,r,i){if(!this.context||!this.masterGain)return;let a=this.context.createOscillator(),o=this.context.createGain();a.connect(o),o.connect(this.masterGain),a.type=n,a.frequency.setValueAtTime(t,e),o.gain.setValueAtTime(i*.5,e),o.gain.exponentialRampToValueAtTime(.01,e+r),a.start(e),a.stop(e+r)}},Gk=class extends Error{sound;constructor(e){super(`Unknown sound "${e}" — it has no entry in the sound table`),this.sound=e,this.name=`UnknownSoundError`}},Kk=new class{enabled;sink;constructor(e,t){if(this.sink=e??new Wk,t!==void 0)this.enabled=t;else if(typeof window<`u`)try{let e=localStorage.getItem(`wod-wiki-audio-enabled`);this.enabled=e===null||e===`true`}catch{this.enabled=!0}else this.enabled=!0}setEnabled(e){if(this.enabled=e,typeof window<`u`)try{localStorage.setItem(`wod-wiki-audio-enabled`,String(e))}catch{}}isEnabled(){return this.enabled}async playSound(e,t=1){if(!this.enabled)return;let n=Hk(e);if(!n)throw new Gk(e);`init`in this.sink&&typeof this.sink.init==`function`&&this.sink.init(),await this.sink.playNotes(n.notes,t)}},qk=class{listeners=new Set;emit(e){this.listeners.forEach(t=>{try{t(e)}catch(e){console.error(`[SimpleEventBus] Error in listener:`,e)}})}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}get size(){return this.listeners.size}};new class{bus=new qk;emitScrollToBlock(e,t=`unknown`){this.bus.emit({type:`workbench:scroll-to-block`,payload:{blockId:e,source:t}})}emitHighlightBlock(e,t=`unknown`){this.bus.emit({type:`workbench:highlight-block`,payload:{blockId:e,source:t}})}emitStartWorkout(e){this.bus.emit({type:`workbench:start-workout`,payload:{block:e}})}emitNavigateTo(e,t){this.bus.emit({type:`workbench:navigate-to`,payload:{entryId:e,view:t}})}onScrollToBlock(e){return this.bus.subscribe(t=>{t.type===`workbench:scroll-to-block`&&e(t.payload)})}onHighlightBlock(e){return this.bus.subscribe(t=>{t.type===`workbench:highlight-block`&&e(t.payload)})}onStartWorkout(e){return this.bus.subscribe(t=>{t.type===`workbench:start-workout`&&e(t.payload)})}onNavigateTo(e){return this.bus.subscribe(t=>{t.type===`workbench:navigate-to`&&e(t.payload)})}},new qk;function Jk(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`notebook`}var Yk=`wodwiki.seedSources`,Xk=`wodwiki.seedSources.hidden`;function Zk(e){let t=e.trim();if(!t)return null;let n;try{n=new URL(t)}catch{return null}return n.protocol!==`https:`&&n.protocol!==`http:`||n.username||n.password||n.search||n.hash?null:(n.pathname.endsWith(`/`)||(n.pathname+=`/`),n.toString())}function Qk(e){let t=e.trim();if(!t)return null;let n;try{n=new URL(t)}catch{return null}return n.protocol!==`https:`||n.username||n.password||n.search||n.hash?null:n.toString()}var $k=`/seed/core/`;function eA(e,t){if(/^https?:\/\//i.test(e))return e;let n=t??(typeof document<`u`?document.baseURI:void 0);if(!n)return e;try{return new URL(e,n).href}catch{return e}}function tA(){try{let e=localStorage.getItem(Yk);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.flatMap(e=>{if(!e||typeof e!=`object`||typeof e.id!=`string`||typeof e.label!=`string`||typeof e.url!=`string`)return[];let{repositoryUrl:t}=e,n=typeof t==`string`?Qk(t):null,r={id:e.id,label:e.label,url:e.url};return[n?{...r,repositoryUrl:n}:r]}):[]}catch{return[]}}function nA(){return tA()}function rA(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`source`}function iA(e,t,n){let r=Zk(t);if(!r)throw Error(`Enter an absolute http(s) URL of a feed directory.`);let i=tA();if(i.some(e=>Zk(e.url)===r)||mA().includes(r))throw Error(`This source is already registered.`);let a=n?.repositoryUrl?.trim(),o;if(a&&(o=Qk(a)??void 0,!o))throw Error(`Enter an absolute https repository URL without credentials.`);let s=e.trim()||(()=>{try{return new URL(r).hostname}catch{return`Source`}})(),c={...DA};for(let e of i)c[e.id]=!0;let l=rA(s);for(let e=2;c[l];e++)l=`${rA(s)}-${e}`;let u={id:l,label:s,url:r,...o?{repositoryUrl:o}:{}};return localStorage.setItem(Yk,JSON.stringify([...i,u])),u}function aA(e){localStorage.setItem(Yk,JSON.stringify(tA().filter(t=>t.id!==e)))}function oA(){return pA.map(e=>e.id)}function sA(){try{let e=JSON.parse(localStorage.getItem(Xk)??`null`);return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}catch{return[]}}function cA(e){let t=EA(e),n=sA();oA().includes(t)&&!n.includes(t)&&localStorage.setItem(Xk,JSON.stringify([...n,t]))}function lA(){return[...new Set(sA().map(EA))]}var uA={id:`core`,label:`Core`,url:$k,description:`The app's own corpus — guides, the page template, and the reference chunks.`,tier:`core`},dA=`https://bitcobblers.github.io`;function fA(e,t,n,r,i=!1){return{id:e,label:t,url:`${dA}/${n}/`,repositoryUrl:`https://github.com/bitcobblers/${n}`,description:r,tier:`community`,...i?{autoImport:!0}:{}}}var pA=[fA(`sport-crossfit`,`CrossFit`,`wod-wiki-sport-crossfit`,`CrossFit benchmark collections (Games, Girls, Heroes) and weekly programming.`),fA(`sport-hyrox`,`HYROX`,`wod-wiki-sport-hyrox`,`HYROX race preparation and simulation workouts.`),fA(`legends-of-kettlebell`,`Kettlebell Coaches`,`wod-wiki-legends-of-kettlebell`,`Kettlebell coach collections and the Dan John 40-Day Program feed.`),fA(`sport-swimming`,`Swimming`,`wod-wiki-sport-swimming`,`Swimming programs from pre-highschool through college, masters, Olympic, and triathlete.`),fA(`sport-track`,`Track & Field`,`wod-wiki-sport-track`,`High-school track programs — 400m (Raffensperger) and sprints (Arrowhead).`),fA(`wayback-zombie-fit`,`ZombieFit`,`wod-wiki-wayback-zombie-fit`,`The ZombieFit parkour archive — daily WODs since 2009.`),fA(`sport-golos-method`,`Golos Method`,`wod-wiki-feed-golos-method`,`Daily minimalist strength and conditioning.`),fA(`yt-dan-john`,`Dan John`,`wod-wiki-youtube-dan-john`,`Dan John kettlebell workouts.`),fA(`yt-mark-wildman`,`Mark Wildman`,`wod-wiki-youtube-mark-wildman`,`Mark Wildman athletic kettlebell and club training.`),fA(`yt-strongfirst`,`StrongFirst`,`wod-wiki-youtube-strongfirst`,`StrongFirst hardstyle kettlebell workouts.`),fA(`yt-the-stone-circle`,`The Stone Circle`,`wod-wiki-youtube-the-stone-circle`,`Sandbag power-endurance and density training.`),fA(`samples-movement`,`Movement Examples`,`wod-wiki-samples-movement`,`Unconventional and parkour-style training examples.`),fA(`sport-yoga`,`Yoga Examples`,`wod-wiki-sport-yoga`,`Yoga session examples.`),fA(`r-workoutroutines`,`r/WorkoutRoutines`,`wod-wiki-r-workoutroutines`,`Community feed from the r/WorkoutRoutines subreddit.`)];function mA(){return[$k,...pA.map(e=>e.url)]}function hA(e){return yA().find(t=>t.id===e)}function gA(e){let t=hA(e);if(!t)throw Error(`unknown feed source: ${e}`);return t}function _A(e,t,n,r,i,a){return gA(e),{id:`community-${t}`,feedId:e,chunkId:n,label:r,category:i,description:a}}var vA=[_A(`sport-crossfit`,`crossfit-games`,`notebook.crossfit-games`,`CrossFit Games`,`workouts`,`CrossFit Games workouts — Open, Regionals, and Games programming, formatted for Wod Wiki.`),_A(`sport-crossfit`,`crossfit-girls`,`notebook.crossfit-girls`,`CrossFit Girls`,`workouts`,`Classic benchmark workouts — Fran, Helen, Grace, Diane, and more, formatted for Wod Wiki.`),_A(`sport-crossfit`,`crossfit-heroes`,`notebook.crossfit-heroes`,`CrossFit Heroes`,`workouts`,`Hero benchmark workouts honoring service members — Murph, DT, Badger, and more.`),_A(`sport-crossfit`,`crossfit-programming`,`notebook.crossfit-programming`,`CrossFit Programming`,`programs`,`Weekly CrossFit programming — daily strength, conditioning, and skill sessions on a rotation with a weekly benchmark.`),_A(`sport-hyrox`,`hyrox`,`notebook.hyrox`,`HYROX`,`workouts`,`HYROX race preparation — running, sled work, ergs, and functional stations in race format.`),_A(`legends-of-kettlebell`,`geoff-neupert`,`notebook.geoff-neupert`,`Geoff Neupert`,`workouts`,`Geoff Neupert kettlebell workouts — strength and conditioning from a Master SFG coach.`),_A(`legends-of-kettlebell`,`girevoy-sport`,`notebook.girevoy-sport`,`Girevoy Sport`,`workouts`,`Competitive kettlebell sport — jerk, snatch, and long-cycle programming.`),_A(`legends-of-kettlebell`,`joe-daniels`,`notebook.joe-daniels`,`Joe Daniels (Swing This)`,`workouts`,`Joe Daniels kettlebell workouts — kettlebell sport and hardstyle fusion.`),_A(`legends-of-kettlebell`,`keith-weber`,`notebook.keith-weber`,`Keith Weber`,`workouts`,`Keith Weber kettlebell workouts — high-intensity kettlebell cardio.`),_A(`legends-of-kettlebell`,`steve-cotter`,`notebook.steve-cotter`,`Steve Cotter`,`workouts`,`Steve Cotter kettlebell workouts — comprehensive kettlebell education.`),_A(`legends-of-kettlebell`,`dan-john-40-day`,`notebook.dan-john-40-day`,`Dan John 40-Day Program`,`programs`,`Dan John's 40-day barbell program — five lifts, five sets of five, five days a week for 40 sessions.`),_A(`yt-dan-john`,`dan-john`,`notebook.dan-john`,`Dan John Kettlebell`,`workouts`,`Dan John kettlebell workouts — simple, effective programming with clear objectives.`),_A(`yt-mark-wildman`,`mark-wildman`,`notebook.mark-wildman`,`Mark Wildman`,`workouts`,`Mark Wildman workouts — athletic kettlebell and club training.`),_A(`yt-strongfirst`,`strongfirst`,`notebook.strongfirst`,`StrongFirst`,`workouts`,`StrongFirst workouts — hardstyle kettlebell strength and skill.`),_A(`yt-the-stone-circle`,`the-stone-circle`,`notebook.the-stone-circle`,`The Stone Circle`,`workouts`,`Sandbag power endurance and density training — progressive EMOM protocols.`),_A(`sport-swimming`,`swimming-college`,`notebook.swimming-college`,`Swimming: College`,`workouts`,`College swimming training sessions.`),_A(`sport-swimming`,`swimming-highschool`,`notebook.swimming-highschool`,`Swimming: High School`,`workouts`,`High-school swimming training sessions.`),_A(`sport-swimming`,`swimming-masters`,`notebook.swimming-masters`,`Swimming: Masters`,`workouts`,`Masters swimming training sessions.`),_A(`sport-swimming`,`swimming-olympic`,`notebook.swimming-olympic`,`Swimming: Olympic`,`workouts`,`Olympic-caliber swimming training sessions.`),_A(`sport-swimming`,`swimming-post-college`,`notebook.swimming-post-college`,`Swimming: Post-College`,`workouts`,`Post-college swimming training sessions.`),_A(`sport-swimming`,`swimming-pre-highschool`,`notebook.swimming-pre-highschool`,`Swimming: Pre-Highschool`,`workouts`,`Pre-highschool swimming training sessions.`),_A(`sport-swimming`,`swimming-triathlete`,`notebook.swimming-triathlete`,`Swimming: Triathlete`,`workouts`,`Triathlete swim training sessions.`),_A(`sport-track`,`hs-track-400m`,`notebook.hs-track-400m`,`HS Track 400m`,`workouts`,`High-school 400m program after Raffensperger — speed, tempo, and strength phases.`),_A(`sport-track`,`hs-track-sprints`,`notebook.hs-track-sprints`,`HS Track Sprints`,`workouts`,`High-school sprints program after Arrowhead — acceleration, maximum velocity, and speed endurance.`),_A(`wayback-zombie-fit`,`zombiefit`,`notebook.zombiefit`,`ZombieFit`,`workouts`,`The ZombieFit archive — parkour-inspired fitness WODs, 2009–2013.`),_A(`sport-golos-method`,`the-golos-method`,`notebook.the-golos-method`,`The Golos Method`,`workouts`,`Daily minimalist strength and conditioning — dense, repeatable sessions.`),_A(`samples-movement`,`unconventional`,`notebook.unconventional`,`Unconventional`,`workouts`,`Unconventional training — maces, clubs, sandbags, and parkour movement.`),_A(`sport-yoga`,`yoga`,`notebook.yoga`,`Yoga`,`workouts`,`Yoga sessions for mobility and recovery.`),_A(`r-workoutroutines`,`workoutroutines-reddit`,`notebook.workoutroutines-reddit`,`r/WorkoutRoutines`,`programs`,`Community workouts from the r/WorkoutRoutines subreddit.`)];function yA(){return[uA,...pA,...nA().map(e=>({id:e.id,label:e.label,url:e.url,description:`Custom feed synced from ${e.url}`,tier:`imported`,...e.repositoryUrl?{repositoryUrl:e.repositoryUrl}:{}}))]}function bA(){return yA().filter(e=>e.id!==uA.id)}function xA(){return[...vA,...nA().map(e=>({id:e.id,feedId:e.id,chunkId:e.id,label:e.label,category:`custom`,description:`Custom feed synced from ${e.url}`}))]}function SA(e){return xA().filter(t=>t.feedId===e)}function CA(e){return xA().find(t=>t.id===e)}function wA(e){let t=e.trim(),n=CA(t);return n&&n.chunkId.startsWith(`notebook.`)?n.chunkId.replace(/^notebook\./,``):t.startsWith(`notebook/`)||t.startsWith(`notebook:`)||t.startsWith(`notebook.`)?t.slice(9):t}var TA={"seed-crossfit":`sport-crossfit`,"seed-hyrox":`sport-hyrox`,"seed-kettlebell":`legends-of-kettlebell`,"seed-swimming":`sport-swimming`,"seed-track":`sport-track`,"seed-zombie-fit":`wayback-zombie-fit`,"seed-golos-method":`sport-golos-method`,"example-movement":`samples-movement`,"example-yoga":`sport-yoga`};function EA(e){return TA[e]||(vA.find(t=>t.id===e)?.feedId??e)}var DA=Object.fromEntries([[`core`,!0],[`community`,!0],[`common`,!0],[`seed-core`,!0],[`seed-crossfit`,!0],[`seed-hyrox`,!0],[`seed-kettlebell`,!0],[`seed-swimming`,!0],[`seed-track`,!0],[`seed-zombie-fit`,!0],[`seed-golos-method`,!0],[`example-movement`,!0],[`example-yoga`,!0],...pA.map(e=>[e.id,!0]),...vA.map(e=>[e.id,!0])]),OA=`notebook/defaults`,kA=new Set(Ta.map(e=>e.slug)),AA=class{store;constructor(e=Z){this.store=e}tail=Promise.resolve();enqueue(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),t}getFeedNotebooks(){let e=[];for(let t of xA()){if(t.category===`dashboards`)continue;let n=t.chunkId.replace(/^notebook\./,``);e.push({id:Ca(n),slug:n,notebookId:Ca(n),name:t.label,description:t.description,icon:t.category===`feeds`?`📡`:`📚`,origin:`feed`,feedEntryId:t.feedId,seedChunkId:t.chunkId,createdAt:0})}return e}getDefaultNotebooks(){return Ta.map(e=>({id:e.notebookId,slug:e.slug,notebookId:e.notebookId,name:e.name,description:e.description,icon:e.icon,origin:`default`,...e.feedEntryId?{feedEntryId:e.feedEntryId}:{},...e.seedChunkId?{seedChunkId:e.seedChunkId}:{},createdAt:0}))}async getAllNotebooks(){let e=new Map;for(let t of[...this.getDefaultNotebooks(),...this.getFeedNotebooks(),...await this.getAll()])e.set(t.notebookId,t);return[...e.values()]}async getAll(){let e=await this.store.getAllNotes(),t=e.filter(jA),n=new Set(t.map(e=>e.id.slice(9))),r=t.map(FA);for(let t of e)if(t.notebookId?.startsWith(`notebook/`)){let e=t.notebookId.slice(9);e&&!kA.has(e)&&!n.has(e)&&(n.add(e),r.push({id:t.notebookId,slug:e,notebookId:Ca(e),name:e,description:``,icon:`📓`,origin:`user`,createdAt:t.createdAt}))}return r.sort((e,t)=>e.createdAt-t.createdAt)}async getById(e){let t=Ca(e),n=await this.store.getNote(t);return n&&jA(n)?FA(n):null}create(e,t=``,n=`📓`){return this.enqueue(()=>this.createNow(e,t,n))}async createNow(e,t,n){let r=await this.getAll(),i=Jk(e),a=new Set([...kA,...r.map(e=>e.slug)]),o=i;for(let e=2;a.has(o);e++)o=`${i}-${e}`;let s=Ca(o);return FA(await this.saveLanding(s,e,t,n))}async saveLanding(e,t,n,r,i){let a=NA(t,n,r),o={...await this.store.saveNoteSource({noteId:e,rawContent:a,blocks:Na(a,{sourceRevision:i||1}),expectedSourceRevision:i??0,metadata:{title:t}}),notebookId:e,type:`note`};return i===void 0&&(o.createdAt=Date.now()),await this.store.saveNote(o),o}update(e,t){return this.enqueue(async()=>{let n=Ca(e);MA(n);let r=await this.store.getNote(n);if(!r||!jA(r))throw Error(`Notebook not found: ${e}`);let i=PA(r);return FA(await this.saveLanding(r.id,t.name??r.title,t.description??i.description,t.icon??i.icon,r.sourceRevision))})}delete(e){return this.enqueue(async()=>{let t=Ca(e);MA(t);let n=await this.listNotes(t);for(let e of n){let{notebookId:t,...n}=e;await this.store.saveNote(n)}await this.store.deleteNote(t)})}async listNotes(e){let t=Ca(e);return(await this.store.getAllNotes()).filter(e=>e.notebookId===t&&!jA(e))}moveNote(e,t){return this.enqueue(async()=>{let n=await this.store.getNote(e);if(!n)throw Error(`Note not found: ${e}`);if(t===null){let{notebookId:e,...t}=n;await this.store.saveNote(t);return}let r=Ca(t);if(this.getFeedNotebooks().some(e=>e.notebookId===r))throw Error(`Notebook ${r} is feed-delivered and read-only.`);await this.store.saveNote({...n,notebookId:r})})}cloneNote(e,t,n){return this.enqueue(async()=>{let r=await this.store.getNote(e);if(!r)throw Error(`Note not found: ${e}`);let i=r.rawContent,a={...await this.store.saveNoteSource({noteId:$t(),rawContent:i,blocks:Na(i,{sourceRevision:1}),expectedSourceRevision:0,createdAt:Date.now(),metadata:{title:n??r.title,type:`note`,sourceId:r.id,...r.tags?.length?{tags:[...r.tags]}:{}}}),notebookId:Ca(t),seedOrigin:`user`};return await this.store.saveNote(a),a})}ensureNotebooks(){return this.enqueue(async()=>{let e=await this.store.getAllNotes();e.some(e=>jA(e)&&e.id===`notebook/defaults`)||await this.saveLanding(OA,`Defaults`,`Starter notes — clone any of them into your own notebooks.`,`📝`);for(let t of e)t.type===`template`&&await this.store.saveNote({...t,type:`note`,notebookId:t.notebookId??`notebook/defaults`});if((await this.listNotes(`notebook/defaults`)).length===0){let e="# My Workout\n\n```time\n10 Push-ups\n```\n",t=await this.store.saveNoteSource({noteId:$t(),rawContent:e,blocks:Na(e,{sourceRevision:1}),expectedSourceRevision:0,createdAt:Date.now(),metadata:{title:`My Workout`,type:`note`}});await this.store.saveNote({...t,notebookId:OA,seedOrigin:`user`})}})}};function jA(e){return e.id.startsWith(`notebook/`)&&e.notebookId===e.id}function MA(e){if(kA.has(Sa(e)))throw Error(`Notebook ${e} is always present and cannot be changed.`)}function NA(e,t,n){return`---\ndescription: ${t?JSON.stringify(t.replace(/\n/g,` `)):``}\nicon: ${n?JSON.stringify(n.replace(/\n/g,` `)):``}\n---\n\n# ${e}\n`}function PA(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/.exec(e.rawContent),n=``,r=`📓`,i=e=>{if(e.length>=2&&e.startsWith(`"`)&&e.endsWith(`"`))try{return JSON.parse(e)}catch{return e}return e};if(t)for(let e of t[1].split(/\r?\n/)){let t=e.match(/^(description|icon):\s*(.*)$/);t&&(t[1]===`description`?n=i(t[2].trim()):r=i(t[2].trim())||r)}return{description:n,icon:r}}function FA(e){let{description:t,icon:n}=PA(e);return{id:e.id,slug:e.id.slice(9),notebookId:Ca(e.id),name:e.title,description:t,icon:n,origin:`user`,createdAt:e.createdAt}}var IA=new AA;function LA(e){if(!e)return``;let t=e.split(`-`);return t.length>1?t[t.length-1]:e}function RA(e){return typeof File<`u`&&e instanceof File?!1:`file`in e&&e.file!==void 0||`data`in e&&e.data!==void 0}async function zA(e){let t=Date.now();if(!RA(e))return{label:e.name,mimeType:e.type,data:await e.arrayBuffer(),timeSpan:{start:t,end:t}};let n=`file`in e?e.file:void 0,r=`data`in e?e.data:void 0,i;if(r!==void 0)i=r;else{if(!n)throw Error(`Attachment input requires either file or data, but neither was provided`);i=await n.arrayBuffer()}return{id:e.id,label:e.label??n?.name??`Attachment`,mimeType:e.mimeType??n?.type??`application/octet-stream`,data:i,timeSpan:e.timeSpan??{start:t,end:t}}}function BA(e){return{id:e.id,outputType:e.outputType,timeSpan:{started:e.timeSpan.started,ended:e.timeSpan.ended},metrics:e.metrics.toArray(),hints:(()=>{let t=mo(e);return t.length?t:void 0})(),sourceBlockKey:e.sourceBlockKey,stackLevel:e.stackLevel,parent:e.parent,sourceStatementId:e.sourceStatementId,line:e.line,text:e.text,dialect:e.dialect,completionReason:e.completionReason}}function VA(e){return new ua({outputType:e.outputType,timeSpan:e.timeSpan,sourceBlockKey:e.sourceBlockKey,stackLevel:e.stackLevel,sourceStatementId:e.sourceStatementId,line:e.line,text:e.text,dialect:e.dialect,metrics:e.metrics,parent:e.parent,completionReason:e.completionReason})}function HA(e){return{...e,metrics:e.metrics.filter(e=>e.origin!==`analyzed`)}}function UA(e,t){let{engine:n}=Qp(t.block,{effortResolver:t.effortResolver,userProfile:t.userProfile,calcs:t.calcs,tags:t.tags,activeTags:t.activeTags,propertySources:t.propertySources}),r=[];for(let t of e){if(t.outputType===`analytics`)continue;if(t.outputType!==`segment`){r.push(t);continue}let e=HA(t),i=n.run(VA(e)),a=t.metrics.filter(e=>e.origin===`analyzed`&&!i.metrics.some(t=>t.origin===`analyzed`&&t.type===e.type));r.push(BA(a.length?new ua({...i,metrics:[...i.metrics,...a]}):i))}return[...r,...n.finalize().map(BA)]}function WA(e,t,n){return UA(M_(t),{block:e,...n})}var GA={soreness:{unit:`rating`,label:`Soreness`,min:1,max:10},sleep:{unit:`h`,label:`Sleep`},hrv:{unit:`ms`,label:`HRV`},weight:{unit:`kg`,label:`Bodyweight`},hang:{unit:`kg`,label:`Max Hang Weight`},hr:{unit:`bpm`,label:`Avg Heart Rate`},planned:{unit:`count`,label:`Planned Sessions`}};function KA(e){let t=/^(-?\d+(?:\.\d+)?)\s*([a-z%]*)$/i.exec(e.trim());if(t)return{value:parseFloat(t[1]),unit:t[2]||void 0}}function qA(e){let t=new Map;for(let n of e.split(`
83
83
  `)){let e=/^([a-z][a-z0-9]*)\s*[:=]\s*(.+)$/i.exec(n.trim());if(!e)continue;let r=e[1].toLowerCase(),i=GA[r];if(!i)continue;let a=KA(e[2]);a&&(i.min!==void 0&&a.value<i.min||i.max!==void 0&&a.value>i.max||t.set(r,{key:r,value:a.value,unit:a.unit??i.unit,label:i.label}))}return[...t.values()]}function JA(e){let t=new Map,n=/```wellness[^\S\n]*\n([\s\S]*?)```/g,r;for(;(r=n.exec(e))!==null;)for(let e of qA(r[1]))t.set(e.key,e);return[...t.values()]}function YA(e,t,n={}){let r=JA(t);if(r.length===0)return[];let i=n.targetDate??n.now??Date.now(),a=new Date(i),o=`${a.getFullYear()}-${String(a.getMonth()+1).padStart(2,`0`)}-${String(a.getDate()).padStart(2,`0`)}`,s=new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime();return r.map(t=>({id:XA(e,t.key),resultId:`wellness:${e}`,noteId:e,timestamp:s,grain:`summary`,origin:`user`,outputType:`wellness`,representationKind:`direct`,metrics:[{type:t.key,value:t.value,unit:t.unit,origin:`user`,metadata:{canonicalKey:t.key}}],metricTemporal:[{temporalKind:`civil-date`,civilDate:o}]}))}function XA(e,t){return`wellness:${e}:${t}`}async function ZA(e,t,n,r={}){let i=YA(e,t,r),a=new Set(i.map(e=>e.id)),o=(await n.getEventsForNote(e)).filter(t=>t.id.startsWith(`wellness:${e}:`)),s=i.filter(e=>{let t=o.find(t=>t.id===e.id);return!t||t.metrics[0]?.value!==e.metrics[0]?.value||t.timestamp!==e.timestamp}),c=o.filter(e=>!a.has(e.id)).map(e=>e.id);return s.length>0&&await n.appendEvents(s),c.length>0&&await n.deleteEvents(c),{written:s.length,deleted:c.length}}function QA(e){return[...e].sort((e,t)=>t.createdAt-e.createdAt)}function $A(e,t){return t==null?e:e.slice(0,t)}var ej=class e{storage;contentProvider;constructor(e=Z,t=new Bk(e)){this.storage=e,this.contentProvider=t}async createNote(e){if(await this.contentProvider.persistenceReady,await this.storage.getNote(e.id))throw Error(`Note already exists: ${e.id}`);return this.contentProvider.saveRecord({id:e.id,title:e.title,rawContent:e.rawContent,tags:e.tags??[],targetDate:e.targetDate,journalDate:e.journalDate,type:e.type??`note`,slug:e.slug,sourceId:e.sourceId})}async getNote(e,t={}){await this.contentProvider.persistenceReady;let n=await this.resolveNote(e);if(!n)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${this.describeLocator(e)}`);let r=t.projection??`workbench`,i=t.includeSections??r!==`summary`,a=t.includeAttachments??!1,o=await this.contentProvider.getRecord(n.id);if(!o)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${this.describeLocator(e)}`);let s=r===`summary`?{}:await this.selectResults(n,t.resultSelection),c=a?await this.storage.getAttachmentsForNote(n.id):void 0;return{...o,...s,sections:i?o.sections:void 0,attachments:c}}async listNotes(e={}){if(e.ids&&e.ids.length>0){let t=e.projection??`summary`;return Promise.all(e.ids.map(e=>this.getNote(e,{projection:t,...t===`history-detail`&&{resultSelection:{mode:`all-for-note`}}})))}let t=await this.contentProvider.getRecords(e);if(e.journalDate&&(t=t.filter(t=>t.placements&&t.placements.length>0?t.placements.some(t=>t.date===e.journalDate):t.journalDate===e.journalDate)),e.kind&&(t=t.filter(t=>t.type===e.kind)),e.search){let n=e.search.toLowerCase();t=t.filter(e=>e.title.toLowerCase().includes(n)||e.rawContent.toLowerCase().includes(n))}return e.projection===`history-detail`&&(t=await Promise.all(t.map(e=>this.getNote(e.id,{projection:`history-detail`,resultSelection:{mode:`all-for-note`}})))),(e.offset||e.limit)&&(t=t.slice(e.offset??0,(e.offset??0)+(e.limit??t.length))),t}async mutateNote(e,t){await this.contentProvider.persistenceReady;let n=await this.resolveNote(e);if(!n)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${this.describeLocator(e)}`);if(t.expectedSourceRevision!==void 0&&t.expectedSourceRevision!==n.sourceRevision)throw new $b(`STALE_SOURCE`,`Note ${n.id} changed since it was loaded`);let r=t.attachments?.add?await Promise.all(t.attachments.add.map(e=>zA(e))):[];return await this.storage.withTransaction([`notes`,`page`,`page_notes`,`tags`,`note_tags`,`tag_types`,`block_revisions`,`sessions`,`events`,`attachments`,`block_index`,`block_efforts`,`block_equipment`,`efforts`,`equipment`],async e=>{let i=new Bk(e);if(await i.updateRecord(n.id,{...t.metadata,rawContent:t.rawContent,blocks:t.blocks,expectedSourceRevision:t.expectedSourceRevision,results:t.workoutResult?.data,blockId:t.workoutResult?.blockId,blockVersion:t.workoutResult?.blockVersion,blockContentId:t.workoutResult?.blockContentId,origin:t.workoutResult?.origin,resultId:t.workoutResult?.id}),t.rawContent!==void 0&&t.rawContent!==n.rawContent){let r=await i.getRecord(n.id);await ZA(n.id,t.rawContent,e,{targetDate:r?.targetDate})}for(let i of r)await e.saveAttachment({...i,id:i.id??$t(),noteId:n.id,resultId:t.workoutResult?.id,createdAt:Date.now()});for(let n of t.attachments?.remove??[])await e.deleteAttachment(n)}),this.getNote(n.id,{includeAttachments:!!t.attachments})}async saveNote(e){if(await this.contentProvider.persistenceReady,await this.storage.getNote(e.noteId))return this.mutateNote(e.noteId,{rawContent:e.rawContent,blocks:e.blocks,expectedSourceRevision:e.expectedSourceRevision,metadata:e.metadata});if(e.expectedSourceRevision!==0)throw new $b(`STALE_SOURCE`,`Note ${e.noteId} no longer exists`);return this.contentProvider.saveRecord({id:e.noteId,rawContent:e.rawContent,blocks:e.blocks,sourceRevision:0,title:e.metadata?.title??`Workout Note`,tags:e.metadata?.tags??[],targetDate:e.metadata?.targetDate??Date.now(),journalDate:e.metadata?.journalDate,slug:e.metadata?.slug??void 0,type:e.metadata?.type??e.noteType,sourceId:e.metadata?.sourceId??void 0,createdAt:e.createdAt})}async startSession(t,n){if(await this.contentProvider.persistenceReady,n.noteId!==t.noteId)throw new $b(`RESULT_NOTE_MISMATCH`,`Session belongs to another Note`);return this.storage.withTransaction([`notes`,`block_revisions`,`block_index`,`block_efforts`,`block_equipment`,`efforts`,`equipment`,`sessions`,`events`,`page`,`page_notes`,`tags`,`note_tags`,`tag_types`],async r=>{await new e(r,new Bk(r)).saveNote(t);let i=await r.getNote(t.noteId),a=i?.blocks[n.blockId];if(!i||!a||a.kind!==`wod`)throw new $b(`BLOCK_REVISION_NOT_FOUND`,`Selected workout is not in the saved Note`);let o=await r.getBlockRevision(i.id,a.id,a.version);if(!o)throw new $b(`BLOCK_REVISION_NOT_FOUND`,`Selected workout revision is missing`);if(await r.getSessionById(n.id))throw Error(`Session already exists: ${n.id}`);let s=ja(o.rawContent,{registeredWidgets:Ea}).find(e=>e.scriptBlock),c={...n,blockId:a.id,blockVersion:o.version,blockContentId:s?.scriptBlock?.contentId,status:`in-progress`};return await r.saveSession(c),{note:i,revision:o,session:c}})}async finishSession(e,t,n){return await this.contentProvider.persistenceReady,this.storage.withTransaction([`sessions`,`block_revisions`,`events`],async r=>{let i=await r.getSessionById(e);if(!i)throw new $b(`RESULT_NOT_FOUND`,`Session not found: ${e}`);if(!await r.getBlockRevision(i.noteId,i.blockId,i.blockVersion))throw new $b(`BLOCK_REVISION_NOT_FOUND`,`Pinned workout revision is missing`);let a={...i,startTime:t.startTime,endTime:t.endTime,duration:t.duration??0,roundsCompleted:t.roundsCompleted,totalRounds:t.totalRounds,repsCompleted:t.repsCompleted,completed:t.completed,status:`completed`,createdAt:n??i.createdAt};if(await r.saveSession(a),t.logs?.length){let e={noteId:a.noteId,resultId:a.id,blockId:a.blockId,blockVersion:a.blockVersion,blockContentId:a.blockContentId,origin:a.origin,pageId:a.pageId,workoutTimestamp:a.endTime};await r.appendEvents(k_(t.logs,e)),await r.finalizeSummaries(a.id,A_(t.logs,e))}return a})}async getBlockRevision(e,t,n){return await this.contentProvider.persistenceReady,this.storage.getBlockRevision(e,t,n)}async getBlockHistory(e,t){return await this.contentProvider.persistenceReady,this.storage.getBlockHistory(e,t)}async getNoteBlockHistory(e){return await this.contentProvider.persistenceReady,this.storage.getNoteBlockHistory(e)}async deleteNote(e){await this.contentProvider.persistenceReady;let t=await this.resolveNote(e);if(!t)throw new $b(`NOTE_NOT_FOUND`,`Note not found: ${this.describeLocator(e)}`);await this.contentProvider.deleteRecord(t.id)}async getSessionById(e){return await this.contentProvider.persistenceReady,this.storage.getSessionById(e)}async rederiveResultAnalytics(e){await this.contentProvider.persistenceReady;let t=await this.storage.getSessionById(e);if(!t)throw new $b(`RESULT_NOT_FOUND`,`Result not found: ${e}`);let n=await this.storage.getBlockRevision(t.noteId,t.blockId,t.blockVersion),r=n&&ja(n.rawContent).find(e=>e.scriptBlock)?.scriptBlock;if(!r||n?.kind!==`wod`)throw new $b(`BLOCK_REVISION_NOT_FOUND`,`Cannot re-derive result ${e}: pinned workout revision is missing`);let i={...r,id:t.blockId,version:t.blockVersion,dialect:n.dialect,sport:n.sport,statements:xc().read(r.content,n.sport).statements},a=this.storage.getEventsByResult?await this.storage.getEventsByResult(e):[],o=WA(i,a);if(this.storage.appendEvents&&this.storage.finalizeSummaries){let e={noteId:t.noteId,resultId:t.id,blockId:t.blockId,blockVersion:t.blockVersion,blockContentId:t.blockContentId,origin:t.origin,pageId:t.pageId,workoutTimestamp:t.createdAt};await this.storage.withTransaction([`events`],async n=>{a.length>0&&await n.deleteEvents(a.map(e=>e.id)),await n.appendEvents(k_(o,e)),await n.finalizeSummaries(t.id,A_(o,e))})}return t}async resolveNote(e){if(typeof e==`string`)return this.resolveByAnyId(e);if(e.id)return this.resolveByAnyId(e.id);if(e.slug)return this.resolveByAnyId(e.slug);let t=await this.storage.getAllNotes();if(e.shortId)return t.find(t=>LA(t.id)===e.shortId);let n=e.title;if(n)return t.find(e=>e.title.toLowerCase()===n.toLowerCase())}async resolveByAnyId(e){return await this.storage.getNote(e)||await this.storage.getNoteBySlug?.(e)||(await this.storage.getAllNotes()).find(t=>LA(t.id)===e||t.title.toLowerCase()===e.toLowerCase())}describeLocator(e){return typeof e==`string`?e:e.id??e.slug??e.shortId??e.title??`<empty locator>`}async getSimilarSessions(e,t={}){let n=await this.storage.getSessionsByContentId(e);return t.excludeNoteId&&(n=n.filter(e=>e.noteId!==t.excludeNoteId)),t.includePlayground||(n=n.filter(e=>e.origin!==`playground`)),$A(QA(n),t.limit)}async selectResults(e,t={mode:`latest`}){let n=async e=>!e||!this.storage.getEventsByResult?[]:this.storage.getEventsByResult(e.id);if(t.mode===`by-result-id`){let r=await this.storage.getSessionById(t.resultId);if(!r)throw new $b(`RESULT_NOT_FOUND`,`Result not found: ${t.resultId}`);if(r.noteId!==e.id)throw new $b(`RESULT_NOTE_MISMATCH`,`Result ${t.resultId} does not belong to note ${e.id}`);return{results:Qb(r,await n(r))}}if(t.mode===`latest-for-section`||t.mode===`all-for-section`){let n=QA(await this.storage.getSessionsForSection(e.id,t.blockId));if(t.mode===`all-for-section`){let e=$A(n,t.limit);return{results:await this.payloadOf(e[0]),extendedResults:e}}return{results:await this.payloadOf(n[0])}}let r=QA(await this.storage.getSessionsForNote(e.id));if(t.mode===`all-for-note`){let e=$A(r,t.limit);return{results:await this.payloadOf(e[0]),extendedResults:e}}return{results:await this.payloadOf(r[0])}}async payloadOf(e){return e?Qb(e,this.storage.getEventsByResult?await this.storage.getEventsByResult(e.id):[]):void 0}},tj=new ej,nj=!0,rj=[`wodwiki.routeWql.v1`,`wodwiki.routeWqlShortcuts.v1`,`wodwiki.soundProfiles.v1`],ij=[],aj=new Map,oj={getItem:e=>aj.get(e)??null,setItem:(e,t)=>aj.set(e,t),removeItem:e=>aj.delete(e)};async function sj(){let e=await Promise.all(rj.map(e=>Ek.readonly(`meta`).getAll(IDBKeyRange.bound(e,`${e}\uffff`)))),t=await Promise.all(ij.map(e=>Ek.readonly(`meta`).get(e)));for(let t of e)for(let e of t)aj.set(e.key,e.value);for(let e of t)e&&aj.set(e.key,e.value)}async function cj(e,t){t===null?(await Ek.readwrite(`meta`).delete(e),aj.delete(e)):(await Ek.readwrite(`meta`).put({key:e,value:t}),aj.set(e,t))}async function lj(e){if(e.length===1)return cj(e[0],null);await Ek.transaction([`meta`],`readwrite`,async t=>{for(let n of e)await t.readwrite(`meta`).delete(n)});for(let t of e)aj.delete(t)}async function uj(e){return await Ek.readonly(`meta`).getAll(IDBKeyRange.bound(e,`${e}\uffff`))}async function dj(e,t){await Ek.readwrite(`meta`).put({key:e,value:t})}async function fj(e){await Ek.readwrite(`meta`).delete(e)}var pj=`wodwiki-telemetry`,mj=1,hj=`events`,gj=`wodwiki.telemetry.consent`,_j=class{events=new qk;consentListeners=new Set;storage;forwarder;idb;sink;load;dbPromise;_consent;setForwarder(e){this.forwarder=e}constructor(e={}){this.storage=e.storage??(globalThis.localStorage===void 0?void 0:globalThis.localStorage),this.forwarder=e.forwarder,this.idb=e.sink?void 0:e.idb??(typeof indexedDB<`u`?indexedDB:void 0),this.sink=e.sink,this.load=e.load,this._consent=this.storage?.getItem(gj)!==`denied`}get consent(){return this._consent}setConsent(e){if(this._consent!==e){this._consent=e;try{this.storage?.setItem(gj,e?`granted`:`denied`)}catch{}this.consentListeners.forEach(t=>t(e))}}subscribeConsent(e){return this.consentListeners.add(e),()=>this.consentListeners.delete(e)}record(e,t){let n={name:e,payload:t,at:Date.now()};if(this.persist(n).catch(e=>console.error(`[TelemetryService] persist failed:`,e)),this.events.emit(n),this._consent&&this.forwarder)try{this.forwarder(n)}catch(e){console.error(`[TelemetryService] forwarder error:`,e)}}async list(){if(this.load)return this.load();let e=await this.open();if(!e)return[];let{promise:t,resolve:n,reject:r}=Promise.withResolvers(),i=e.transaction(hj,`readonly`).objectStore(hj).getAll();return i.onsuccess=()=>n(i.result.map(({name:e,payload:t,at:n})=>({name:e,payload:t,at:n}))),i.onerror=()=>r(i.error),t}async persist(e){if(this.sink){await this.sink(e);return}let t=await this.open();if(!t)return;let{promise:n,resolve:r,reject:i}=Promise.withResolvers(),a=t.transaction(hj,`readwrite`);return a.objectStore(hj).add(e),a.oncomplete=()=>r(),a.onerror=()=>i(a.error),n}open(){return this.idb?(this.dbPromise??=this.openDatabase(),this.dbPromise):Promise.resolve(null)}async openDatabase(){let{promise:e,resolve:t,reject:n}=Promise.withResolvers(),r=this.idb.open(pj,mj);return r.onupgradeneeded=()=>{let e=r.result;if(!e.objectStoreNames.contains(hj)){let t=e.createObjectStore(hj,{keyPath:`id`,autoIncrement:!0});t.createIndex(`by-name`,`name`),t.createIndex(`by-at`,`at`)}},r.onsuccess=()=>t(r.result),r.onerror=()=>n(r.error),e.catch(e=>(console.error(`[TelemetryService] open failed:`,e),null))}},vj;function yj(){let e=Date.now(),t=vj===void 0?0:e-vj;return vj=e,t}var bj=nj?new _j({sink:e=>dj(`telemetry:${crypto.randomUUID()}`,{name:e.name,payload:e.payload,at:e.at}),load:async()=>(await uj(`telemetry:`)).map(e=>e.value).sort((e,t)=>e.at-t.at)}):new _j,xj={demoOpened:`home:demo_opened`,demoRun:`home:demo_run`,demoEdited:`home:demo_edited`,libraryOpened:`home:library_opened`,feedsOpened:`home:feeds_opened`,noteCreated:`home:note_created`,lessonStarted:`home:lesson_started`,cheatsheetOpened:`home:cheatsheet_opened`,behaviorsOpened:`home:behaviors_opened`,analyticsGuideOpened:`home:analytics_guide_opened`,explorerOpened:`home:explorer_opened`,dashboardViewed:`home:dashboard_viewed`,effortsOpened:`home:efforts_opened`,referenceOpened:`home:reference_opened`,chapterHeroViewed:`home:chapter_hero_viewed`,chapterExampleRun:`home:chapter_example_run`,chapterGuideClicked:`home:chapter_guide_clicked`,hostedInterestClicked:`home:hosted_interest_clicked`,hostedSurveyOpened:`home:hosted_survey_opened`};function Sj(){let e=(0,W.useSyncExternalStore)(e=>bj.subscribeConsent(e),()=>bj.consent);return{track:(0,W.useCallback)((e,t)=>bj.record(e,t),[]),consent:e,setConsent:(0,W.useCallback)(e=>bj.setConsent(e),[])}}var Cj=[25,50,75,90];function wj(e,t=Cj){let n=(0,W.useRef)(new Set);(0,W.useEffect)(()=>{if(!e||typeof window>`u`)return;n.current.clear();let r=()=>{let r=document.documentElement.scrollHeight-window.innerHeight;if(r<=0)return;let i=Math.round(window.scrollY/r*100);for(let r of t)i>=r&&!n.current.has(r)&&(n.current.add(r),bj.record(`scroll`,{percent_scrolled:r,page_path:e}))};return window.addEventListener(`scroll`,r,{passive:!0}),r(),()=>{window.removeEventListener(`scroll`,r)}},[e,t])}var Tj=`sound-`;function Ej(e){if(!e.startsWith(`sound-`))return;let t=e.slice(6);return t.length>0?t:void 0}function Dj(e){let t=Ej(e);return t?[{kind:`metric`,type:`sound`,value:t}]:[]}function Oj(e,t=[]){let n=[],r=new Set([...Fj().map(e=>e.slug),...t.map(e=>e.name.trim())]);for(let t of e){let e=t.label.trim();e.length>0&&r.add(e)}for(let t of e){let e=t.label.trim();if(e.length===0)continue;let i=t.contributions?.length?[...t.contributions]:[...Dj(e)],a=t.type?.trim();a&&a!==e&&a!==`category`&&r.has(a)&&!i.some(e=>e.kind===`tag`&&e.slug===a)&&i.push({kind:`tag`,slug:a}),n.push({slug:e,...a===`category`?{isCategory:!0}:{},contributions:i})}return n}function kj(e){let t=Fj(),n=new Set(t.map(e=>e.slug)),r=e.filter(e=>!n.has(e.slug)||e.contributions.length>0),i=new Set(r.map(e=>e.slug));return fa([...t.filter(e=>!i.has(e.slug)),...r])}function Aj(e){return e.filter(e=>e.name.trim().length>0).map(e=>({slug:e.name.trim(),isCategory:!0,contributions:e.contributions??[]}))}async function jj(){return Mj.loadTags()}var Mj=new class{async loadTags(){let[e,t]=await Promise.all([Z.getAllTags(),Z.getAllTagTypes().catch(()=>[])]);return[...Aj(t),...Oj(e,t)]}},Nj=fa(Fj()),Pj=new Set;function Fj(){return[{slug:`tonnage`,contributions:[{kind:`metric`,type:`resistance`,value:24,unit:`kg`},{kind:`metric`,type:`work`,value:`reps * resistance`},{kind:`metric`,type:`summaries.totalWork`,value:`sum(work)`}]},{slug:`metabolic`,contributions:[{kind:`metric`,type:`met`,value:8},{kind:`metric`,type:`metMinutes`,value:`met * convert(elapsed, min)`},{kind:`metric`,type:`summaries.totalMetMinutes`,value:`sum(metMinutes)`}]},{slug:`kettlebell-24kg`,contributions:[{kind:`metric`,type:`resistance`,value:24,unit:`kg`},{kind:`metric`,type:`work`,value:`reps * resistance`},{kind:`metric`,type:`summaries.totalWork`,value:`sum(work)`}]}]}function Ij(){return Nj}var Lj=null;function Rj(){return Lj||=jj().then(e=>{Nj=kj(e);for(let e of Pj)e();return Nj}).finally(()=>{Lj=null}),Lj}async function zj(){Nj=kj(await jj());for(let e of Pj)e();return Nj}function Bj(e){return Pj.add(e),()=>Pj.delete(e)}function Vj(e){if(e.kind!==`wod`||!e.dialect)throw Error(`The saved revision is not a workout.`);let t=ja(e.rawContent).find(t=>t.type===e.dialect);if(!t?.scriptBlock)throw Error(`The saved workout fence cannot be read.`);let n=t.scriptBlock.content;return{id:e.blockId,content:n,dialect:e.dialect,sport:e.sport,statements:xc().read(n,e.sport).statements,startLine:0,endLine:e.rawContent.split(`
84
- `).length-1,version:e.version,state:`idle`,widgetIds:{},createdAt:e.savedAt}}async function Hj(e,t,n,r,i=tj){let a=Date.now(),o=await i.startSession(e,{id:n,noteId:e.noteId,blockId:t.id,blockContentId:t.contentId,origin:r??`journal`,startTime:a,endTime:a,duration:0,completed:!1,status:`in-progress`,createdAt:a});return{...o,block:Vj(o.revision)}}async function Uj(e,t,n,r){let i=await Z.getNote(e);if(!i)throw Error(`The note is unavailable. Save the note before starting a workout.`);return Hj({noteId:i.id,rawContent:i.rawContent,blocks:i.blocks,expectedSourceRevision:i.sourceRevision},t,n,r)}function Wj(e,...t){console.warn(`[${e}]`,...t)}function Gj(e,...t){console.error(`[${e}]`,...t)}var Kj=new Set;function qj(e){return Kj.add(e),()=>{Kj.delete(e)}}function Jj(e){for(let t of Kj)try{t(e)}catch(e){Gj(`resultRecorder`,`error in listener:`,e)}}function Yj(e){return{async record({resultId:t,data:n,createdAt:r}){let i=await e.finishSession(t,n,r);return Jj(i),i}}}var Xj=Yj(tj),Zj=`sound`,Qj=`wodwiki.soundProfiles.v1`,$j=`profiles`,eM=new jx(Qj,nj?oj:void 0);function tM(e){return`${Tj}${e}`}function nM(e){return[{kind:`metric`,type:`sound`,value:e}]}function rM(e=eM){let t=e.get($j);if(!Array.isArray(t))return[];let n=[],r=new Set;for(let e of t){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.id!=`string`||t.id.length===0||r.has(t.id))continue;r.add(t.id);let i=[];if(Array.isArray(t.rules))for(let e of t.rules){if(!e||typeof e!=`object`)continue;let t=e;typeof t.trigger==`string`&&typeof t.sound==`string`&&i.push({trigger:t.trigger,sound:t.sound})}n.push({id:t.id,name:typeof t.name==`string`&&t.name.length>0?t.name:t.id,rules:i})}return n}async function cte(e,t=eM){let n=e.map(e=>({id:e.id,name:e.name,rules:e.rules.map(e=>({trigger:e.trigger,sound:e.sound}))})),r=JSON.stringify(n);if(nj){try{await cj(t.qualify($j),r)}catch(e){return console.error(`[soundProfiles] server write failed:`,e),!1}return sM(),!0}return t.set($j,n),t.getRaw($j)===r&&(sM(),!0)}var iM=Promise.resolve();async function lte(e,t=eM){let n=iM.then(async()=>cte(e(rM(t)),t));return iM=n.catch(()=>!1),n}async function ute(e,t){let n=tM(e),r=(await t.getAllTags()).find(e=>e.label===n);if(r){let n=nM(e),i=r.contributions?.[0];if(r.contributions?.length===1&&i?.kind===`metric`&&i.type===n[0].type&&i.value===n[0].value)return;await t.putTag({...r,contributions:n,type:Zj});return}await t.putTag({id:`sound-profile-${e}`,label:n,type:Zj,contributions:nM(e),createdAt:Date.now()})}async function dte(e,t){let n=tM(e),r=(await t.getAllTags()).find(e=>e.label===n);r&&await t.deleteTag(r.id)}var aM=new Set,oM=0;function sM(){oM+=1;for(let e of aM)e()}function fte(e){return aM.add(e),()=>{aM.delete(e)}}function pte(){return oM}async function mte(e,t={}){let{resultId:n,occurrence:r,metric:i}=e;if(!n||typeof n!=`string`)throw TypeError(`captureMetricCorrection: resultId is required`);if(!r?.blockKey||typeof r.blockKey!=`string`)throw TypeError(`captureMetricCorrection: occurrence.blockKey is required`);if(!i||typeof i.image!=`string`||i.image.length===0)throw TypeError(`captureMetricCorrection: metric.image is required`);if(typeof i.value!=`number`||!Number.isFinite(i.value))throw RangeError(`captureMetricCorrection: metric.value must be finite, got ${i.value}`);if(i.type===J.Rep&&(!Number.isSafeInteger(i.value)||i.value<0))throw RangeError(`captureMetricCorrection: rep corrections must be nonnegative safe integers, got ${i.value}`);let a=t.storage??Z,o=t.persistence??new ej(a);if(!await a.getSessionById(n)||await a.withTransaction([`events`],async e=>{let t=(await e.getEventsByResult(n)).filter(e=>e.grain===`event`&&e.outputType===`segment`&&e.sourceBlockKey===r.blockKey&&(r.sourceStatementId===void 0||e.sourceStatementId===r.sourceStatementId)&&(r.stackLevel===void 0||e.stackLevel===r.stackLevel));if(t.length===0)return`not-found`;if(t.length>1)throw Error(`captureMetricCorrection: ambiguous occurrence ${r.blockKey} in result ${n} — ${t.length} segments match; pass sourceStatementId/stackLevel`);let a=t[0],o=[...a.metrics.filter(e=>e.origin!==`user`||e.type!==i.type),{type:i.type,value:i.value,image:i.image,origin:`user`,timestamp:new Date}],s=a.timeSpan?.started??a.timestamp,c={...a,metrics:o,...a.metricTemporal?{metricTemporal:o.map(()=>({temporalKind:`instant`,instant:s}))}:{}};return await e.appendEvents([c]),`captured`})===`not-found`)return`not-found`;try{return await o.rederiveResultAnalytics(n),`captured`}catch(e){if(e instanceof $b&&e.code===`BLOCK_REVISION_NOT_FOUND`)return`captured-no-rederive`;throw e}}var cM=null,lM=new Set;function uM(e){cM!==e&&(cM=e,lM.forEach(e=>e(cM)))}function dM(){return cM}function fM(e){return lM.add(e),()=>{lM.delete(e)}}var pM=(0,W.createContext)({transport:null});function mM(){let e=(0,W.useContext)(pM),[t,n]=W.useState(()=>dM());return W.useEffect(()=>fM(n),[]),e.transport??t}var hte=({children:e,transport:t})=>{let n=(0,W.useMemo)(()=>({transport:t}),[t]);return(0,G.jsx)(pM.Provider,{value:n,children:e})},hM=(0,W.createContext)(void 0);function gte({children:e}){let[t,n]=(0,W.useState)(Kk.isEnabled()),r=mM();(0,W.useEffect)(()=>{Kk.setEnabled(t)},[t]);let i=(0,W.useCallback)((e,n=1)=>{if(t){if(r?.connected){console.log(`[AudioContext] Routing sound '${e}' to cast receiver`);try{r.send({type:`rpc-audio`,name:e,volume:n})}catch(t){console.error(`[AudioContext] Failed to send rpc-audio`,t),Kk.playSound(e,n).catch(gM)}}else Kk.playSound(e,n).catch(gM)}},[t,r]),a=(0,W.useCallback)(()=>{let e=!t;n(e),e&&(Kk.setEnabled(!0),Kk.playSound(`beep`).catch(gM))},[t]),o=(0,W.useCallback)(()=>{i(`chime`)},[i]),s=(0,W.useCallback)(()=>{i(`click`,.5)},[i]),c=(0,W.useMemo)(()=>({isEnabled:t,toggleAudio:a,playTestSound:o,playSound:i,playClick:s}),[t,a,o,i,s]);return(0,G.jsx)(hM.Provider,{value:c,children:e})}function gM(e){console.error(`[AudioContext] Sound playback failed`,e)}function _M(){let e=(0,W.useContext)(hM);if(e===void 0)throw Error(`useAudio must be used within an AudioProvider`);return e}var vM=class extends Error{status;constructor(e,t){super(e),this.status=t,this.name=`FeedSourceError`}},yM=class{baseUrl;fetchImpl;constructor(e,t=fetch.bind(globalThis)){this.baseUrl=e,this.fetchImpl=t}async fetchManifest(){let e=await this.fetchImpl(`${this.baseUrl}manifest.json`,{cache:`no-cache`});if(!e.ok)throw new vM(`feed manifest fetch failed: HTTP ${e.status}`,e.status);return _b(await e.json())}async fetchChunk(e){let t=await this.fetchImpl(`${this.baseUrl}${e}`);if(!t.ok)throw new vM(`feed chunk fetch failed: HTTP ${t.status} for ${e}`,t.status);return await t.json()}},_te=class{storageInstance;constructor(e){this.storageInstance=e}async getSeedMeta(e){return await this.storageInstance.readonly(`meta`).get(e)}async getNoteCommits(e){let t=await this.storageInstance.readonly(`notes`).getMany(e),n=new Map;for(let r=0;r<e.length;r++){let i=t[r];n.set(e[r],i?.seedCommit)}return n}async putSeedMeta(e,t){await this.storageInstance.transaction([`meta`],`readwrite`,async n=>{let r=n.readwrite(`meta`),i=await r.get(e.key);if(t!==void 0&&JSON.stringify(i??null)!==JSON.stringify(t))throw Error(`Seed checkpoint changed during claim`);await r.put(e)})}applyChunk(e){return Db(this.storageInstance,e)}backfillFeedProvenance(){return kb(this.storageInstance)}migrateNotebookVocabulary(){return Ab(this.storageInstance)}async removeSourceContent(e){return await this.storageInstance.transaction([`notes`,`attachments`,`note_tags`,`block_index`,`block_efforts`,`block_equipment`,`page_notes`,`efforts`,`equipment`,`meta`],`readwrite`,async t=>{let n=new Set,r=[];for(let[t,i]of Object.entries(e.chunks))if(i.noteIds?.length)for(let e of i.noteIds)n.add(e);else r.push(t);if(r.length)for(let e of await t.readwrite(`notes`).getAll())e.seedOrigin===`seed`&&e.seedChunkId&&r.includes(e.seedChunkId)&&n.add(e.id);let i=t.readwrite(`meta`),a=[];for(let t of await i.getAll()){let n=t;if(!n||typeof n.key!=`string`||!n.key.startsWith(`seed:`)||n.key===e.key)continue;let r=new Set;for(let e of Object.values(n.chunks??{}))for(let t of e.noteIds??[])r.add(t);a.push({key:n.key,sourceId:n.key.slice(5),rank:Ey(n.key,n.tier),meta:n,noteIds:r})}a.sort((e,t)=>t.rank-e.rank);let o=e=>a.some(t=>t.noteIds.has(e)),s=e.key.startsWith(`seed:`)?e.key.slice(5):e.key,c=t.readwrite(`notes`),l=0,u=new Set;for(let r of n){if(o(r))continue;let n=await c.get(r);if(!n||n.seedOrigin!==`seed`||n.seedChunkId&&!e.chunks[n.seedChunkId])continue;n.sourcePath&&u.add(n.sourcePath),await c.delete(r);let i=t.readwrite(`attachments`);for(let e of await i.getAllFromIndex(`by-note`,r))await i.delete(e.id);let a=t.readwrite(`note_tags`);for(let e of await a.getAllFromIndex(`by-note`,r))await a.delete(e.id);let s=t.readwrite(`block_index`);for(let e of await s.getAllFromIndex(`by-note`,r))await s.delete(e.id);let d=t.readwrite(`block_efforts`);for(let e of await d.getAllFromIndex(`by-note`,r))await d.delete(e.id);let f=t.readwrite(`block_equipment`);for(let e of await f.getAllFromIndex(`by-note`,r))await f.delete(e.id);let p=t.readwrite(`page_notes`);for(let e of await p.getAllFromIndex(`by-note`,r))await p.delete(e.id);l++}let d=[{storeName:`efforts`,familyPathPrefix:`markdown/efforts/`,parse:ul},{storeName:`equipment`,familyPathPrefix:`markdown/equipment/`,parse:dl}];for(let{storeName:e,familyPathPrefix:r,parse:i}of d){let o=t.readwrite(e);for(let t of await o.getAll()){if(t.registrySource!==`bundled`||!(t.sourceId===s||t.ownerNoteId!==void 0&&n.has(t.ownerNoteId)&&(!t.sourceId||t.sourceId===e)||t.sourcePath!==void 0&&t.sourcePath.startsWith(r)&&u.has(t.sourcePath)))continue;let l=!1;for(let n of a){let r=n.meta.chunks?.[e]?.noteIds??[];for(let e of r){let r=await c.get(e);if(!r||r.seedOrigin!==`seed`)continue;let a=i(r.rawContent);if(a&&a.slug===t.slug){await o.put({...a,registrySource:`bundled`,ownerNoteId:r.id,sourceId:n.sourceId,feedSourceId:n.sourceId,sourcePath:r.sourcePath??``}),l=!0;break}}if(l)break}l||await o.delete(t.slug)}}return await i.delete(e.key),l})}};function bM(){return new _te(Ek)}var xM={core:1};function vte(e,t){return e===void 0||e<=0||t>e?`import`:t===e?`current`:`server-stale`}function yte(e,t){return e?.schema!==void 0&&e.schema!==9?!1:e?.seedVersion!=null&&e.seedVersion>0&&e.seedVersion===t}var SM=`wodwiki.seedSubscriptions`,CM=`wodwiki.seedAutoSync`,wM=null,TM=null,EM=new Set;function DM(e){let t={};try{let n=localStorage.getItem(e),r=n?JSON.parse(n):{};if(r&&typeof r==`object`&&!Array.isArray(r))for(let[e,n]of Object.entries(r))typeof n==`boolean`&&(t[e]=n)}catch{t={}}return t}function OM(){return wM||(wM=DM(SM),wM)}function kM(e,t){let n=!0;try{localStorage.setItem(e,JSON.stringify(t))}catch{n=!1}return n}function AM(e){wM=e;let t=kM(SM,e);for(let e of EM)e();return t}function jM(e){let t=EA(e);if(t===`core`)return`full`;let n=OM();if(n[t]===!0||n[e]===!0)return`full`;let r=`${t}#`,i=`${e}#`;return Object.entries(n).some(([e,t])=>t===!0&&(e.startsWith(r)||e.startsWith(i)))?`partial`:`unsubscribed`}function MM(e){return e===`core`||jM(e)!==`unsubscribed`}function NM(e,t){if(e===`core`)return!0;let n={},r=`${e}#`;for(let[t,i]of Object.entries(OM()))t.startsWith(r)||vA.some(n=>n.feedId===e&&n.id===t)||(n[t]=i);return n[e]=t,AM(n)}function PM(e,t){let n=EA(e);if(n===`core`)return!0;let r=OM(),i=`${n}#${t}`;if(i in r)return r[i]===!0;let a=`${e}#${t}`;return a in r?r[a]===!0:r[n]===!0||r[e]===!0}function FM(e,t,n,r){if(e===`core`)return!0;let i={...OM()},a=`${e}#${t}`,o=`${e}#`,s=r??vA.filter(t=>t.feedId===e).map(e=>e.chunkId);if(i[e]===!0&&!n){i[e]=!1;for(let n of s)n!==t&&(i[`${e}#${n}`]=!0);return i[a]=!1,AM(i)}if(i[a]=n,n&&s.length>0&&s.every(n=>n===t||i[`${e}#${n}`]===!0)){i[e]=!0;for(let e of Object.keys(i))e.startsWith(o)&&delete i[e]}else!n&&s.length>0&&s.every(t=>i[`${e}#${t}`]===!1)&&(i[e]=!1);return AM(i)}function IM(e){let t=EA(e),n=jM(t);if(n===`full`)return null;if(n===`unsubscribed`)return[];let r=OM(),i=`${t}#`,a=`${e}#`;return Object.entries(r).filter(([e,t])=>t===!0&&(e.startsWith(i)||e.startsWith(a))).map(([e])=>e.startsWith(i)?e.slice(i.length):e.slice(a.length))}function LM(e){return EM.add(e),()=>{EM.delete(e)}}function RM(){return TM||(TM=DM(CM),TM)}function zM(e){let t=RM();return e in t?t[e]===!0:e===`core`}function BM(e,t){let n={...RM(),[e]:t},r=kM(CM,n);TM=n;for(let e of EM)e();return r}async function VM(e,t=bM()){let n={...OM()},r=[],i=!1;for(let[e,t]of Object.entries(TA))e in n&&(t in n||(n[t]=n[e],n[e]&&r.push(t)),delete n[e],i=!0);for(let e of vA){let t=e.chunkId.replace(/^notebook\./,``),r=`${e.feedId}#${e.chunkId}`,a=[e.feedId];for(let[t,n]of Object.entries(TA))n===e.feedId&&a.push(t);for(let o of a)for(let a of[`collection.${t}`,`feed.${t}`,e.chunkId]){let e=`${o}#${a}`;e===r||!(e in n)||(r in n||(n[r]=n[e]),delete n[e],i=!0)}}for(let e of vA)e.id in n&&(e.feedId in n||(n[e.feedId]=n[e.id],n[e.id]&&r.push(e.feedId)),delete n[e.id]);for(let{id:i}of e)if(!(i===`core`||i in n))try{let e=await t.getSeedMeta(ky(i));e&&e.seedVersion>0&&(n[i]=!0,r.push(i))}catch{}return(r.length||i)&&AM(n),r}var HM=new class{_db;constructor(e){this._db=e}get db(){return this._db??Z}async load(){return this.db.getAllEquipment()}async save(e){await this.db.saveEquipment(e)}async delete(e){await this.db.deleteEquipment(e)}};async function UM(e){let t=await Z.getAllEquipment();await e.loadBundled(t.filter(e=>e.registrySource===`bundled`)),KM()}var WM=new Set;function GM(e){return WM.add(e),()=>WM.delete(e)}function KM(){for(let e of WM)e()}var qM=null;function JM(){return qM||=new Ml({storage:HM}),qM}var YM=class{storage;source;sourceId;now;constructor(e,t,n,r=Date.now){this.storage=e,this.source=t,this.sourceId=n,this.now=r}async applyAll(e={}){let t=_b(e.manifest??await this.source.fetchManifest()),n=ky(this.sourceId),r=e.stored===void 0?await this.storage.getSeedMeta(n):e.stored,i=r?.schema===9?r:void 0,a=i??jy(n);if(t.version<a.seedVersion)throw Error(`Seed manifest is older than the stored checkpoint`);let o=t.chunks.filter(t=>!(e.notebookIds!==void 0&&e.notebookIds!==null&&(e.notebookIds.length===0||!e.notebookIds.includes(t.id)&&t.id!==`efforts`&&t.id!==`equipment`))),s=!!(t.notebooks&&t.notebooks.length>0),c=o.filter(n=>{let r=t.notebooks?.find(e=>e.notebookId===n.id),i=a.chunks[n.id];if(e.forceAll||!i)return!0;if(r){if((r.version??0)>(i.version??0))return!0}else if(!s&&(t.version!==a.seedVersion||t.builtAt!==a.builtAt))return!0;return i.sha256!==n.sha256});c.sort((e,t)=>Number(t.id===Oy)-Number(e.id===Oy));let l=Object.keys(a.chunks).filter(e=>!t.chunks.some(t=>t.id===e)),u={status:`current`,appliedChunks:0,totalNotes:0,totalEfforts:0,totalEquipment:0,totalBlocks:0,skippedUserOwned:0,deleted:0,addedNotes:0,updatedNotes:0};if(!c.length&&!l.length&&t.version===a.seedVersion&&t.builtAt===a.builtAt)return u;u.status=`imported`;let d=(t,n,r,i,a)=>e.onProgress?.({phase:t,chunkId:n,completedChunks:u.appliedChunks,totalChunks:c.length,totalNotes:u.totalNotes,totalEfforts:u.totalEfforts,totalEquipment:u.totalEquipment,totalBlocks:u.totalBlocks,skippedUserOwned:u.skippedUserOwned,deleted:u.deleted,addedNotes:u.addedNotes,updatedNotes:u.updatedNotes,...r===void 0?{}:{recordId:r},...i===void 0?{}:{completedRecords:i},...a===void 0?{}:{totalRecords:a}});for(let n=0;n<c.length;){let r=c.slice(n,n+(c[n]?.id===`canvas`?1:4));for(let n of r){let r,o=t.notebooks?.find(e=>e.notebookId===n.id),s=n.records,c=!!(a.chunks[n.id]&&e.granularRecords&&(o?.indexPath||n.records));if(c||e.granularRecords&&n.records&&n.records.length>0){if(c&&o?.indexPath&&(s=vb(await this.source.fetchChunk(o.indexPath)).records),s&&s.length>0){let t=!e.forceAll&&this.storage.getNoteCommits?await this.storage.getNoteCommits(s.map(e=>e.uuid)):void 0,i=t?s.filter(e=>t.get(e.uuid)!==e.commit):s;if(c&&i.length>s.length/2){if(d(`fetching`,n.id),r=yb(await this.source.fetchChunk(n.path)),r.length!==n.count)throw Error(`Seed chunk count mismatch`)}else{let e=[],t=0;for(let r of i){d(`fetching`,n.id,r.uuid,t,i.length);let a=await this.source.fetchChunk(r.recordPath),o=Array.isArray(a)?yb(a):[bb(a)];e.push(...o),t++}r=e}}else if(d(`fetching`,n.id),r=yb(await this.source.fetchChunk(n.path)),r.length!==n.count)throw Error(`Seed chunk count mismatch`)}else if(d(`fetching`,n.id),r=yb(await this.source.fetchChunk(n.path)),r.length!==n.count)throw Error(`Seed chunk count mismatch`);let l=s&&s.length>0?s.map(e=>e.uuid):await Promise.all(r.map(e=>xb(e.path))),f={...a,seedVersion:t.version,builtAt:t.builtAt,chunks:{...a.chunks,[n.id]:{sha256:n.sha256,version:o?.version,builtAt:o?.builtAt??t.builtAt,importedAt:this.now(),noteIds:l}},importedAt:this.now()};d(`applying`,n.id);let p=await this.storage.applyChunk({chunkId:n.id,rows:r,manifest:t,expectedMeta:i,meta:f});u.totalNotes+=p.totalNotes,u.totalEfforts+=p.totalEfforts,u.totalEquipment+=p.totalEquipment,u.totalBlocks+=p.totalBlocks,u.skippedUserOwned+=p.skippedUserOwned,u.deleted+=p.deleted,u.addedNotes+=p.addedNotes,u.updatedNotes+=p.updatedNotes,u.appliedChunks++,a=f,i=f,d(`committed`,n.id),n.id===`canvas`&&e.onFirstPaintApplied?.()}n+=r.length}for(let e of l){let n={...a.chunks};delete n[e];let r={...a,chunks:n,importedAt:this.now()},o=await this.storage.applyChunk({chunkId:e,rows:[],manifest:t,expectedMeta:i,meta:r});u.deleted+=o.deleted,a=r,i=r}let f={...a,schema:9,seedVersion:t.version,builtAt:t.builtAt,importedAt:this.now()};return await this.storage.applyChunk({chunkId:null,rows:[],manifest:t,expectedMeta:i,meta:f}),d(`finalizing`,null),u}},XM=45e3;function ZM(e){return(e instanceof Error?e.message:String(e)).replace(/(authToken["'=:\s]+)[^&\s,"']+/gi,`$1…`).replace(/(Bearer\s+)[\w.-]+/gi,`$1…`).replace(/https?:\/\/[^\s]+/gi,e=>{try{let t=new URL(e);return`${t.protocol}//${t.host}/…`}catch{return`…`}}).slice(0,300)}function QM(e,t,n){let r=e?.claim;return!!r&&r.owner!==t&&n-r.at<45e3}async function $M(e,t,n={}){let{storage:r,owner:i}=t,a=t.now,o=ky(e.id),s={outcome:`current`,error:null,manifestChecked:!1,hadCheckpoint:!1};try{let c=await r.getSeedMeta(o);if(s.hadCheckpoint=(c?.seedVersion??0)>0,!t.force&&!t.probeManifests&&yte(c,e.embeddedVersion))return s.outcome=`current`,s;if(QM(c,i,a()))return s.outcome=`busy`,s;let l=_b(await e.source.fetchManifest());s.manifestChecked=!0;let u=t.force?`import`:vte(c?.seedVersion,l.version);if(u===`server-stale`)return s.outcome=`server-stale`,s;if(c&&c.schema!==9)throw Error(`Incompatible seed checkpoint; recreate storage`);if(t.background&&!e.autoSyncOn)return s.outcome=l.chunks.filter(t=>!(e.notebookIds!==void 0&&e.notebookIds!==null&&(e.notebookIds.length===0||!e.notebookIds.includes(t.id)&&t.id!==`efforts`&&t.id!==`equipment`))).some(e=>{let t=l.notebooks?.find(t=>t.notebookId===e.id),n=c?.chunks[e.id];return!n||t&&(t.version??0)>(n.version??0)?!0:n.sha256!==e.sha256})?`update-pending`:`current`,s;if(!t.force&&u===`current`&&c?.schema===9&&c.builtAt===l.builtAt)return s.outcome=`current`,s;let d={...c??jy(o),...e.tier?{tier:e.tier}:{},claim:{owner:i,at:a()}};await r.putSeedMeta(d,c??null);try{let i=await new YM(r,e.source,e.id,a).applyAll({forceAll:t.force===!0,onFirstPaintApplied:()=>n.onFirstPaint?.(),onProgress:n.onProgress,notebookIds:e.notebookIds,granularRecords:e.granularRecords,manifest:l,stored:d});s.outcome=`imported`,i.status===`imported`&&(s.applied=!0,s.importedVersion=l.version,s.added=i.addedNotes,s.updated=i.updatedNotes)}finally{let e=await r.getSeedMeta(o);e?.claim?.owner===i&&await r.putSeedMeta({...e,claim:null},e)}return s}catch(t){return console.warn(`[feedSync] ${e.id} seed sync failed`,t),s.outcome=`error`,s.error=ZM(t),s}}function eN(){try{return typeof localStorage<`u`&&localStorage.getItem(`wodwiki.seedImport.enabled`)!==`0`}catch{return!1}}function tN(){let e=new Set(lA()),t=eA($k);return[{id:`core`,label:`Core`,source:new yM(t),url:t,embeddedVersion:xM.core??0},...pA.map(e=>({id:e.id,label:e.label,source:new yM(e.url),url:e.url,...e.repositoryUrl?{repositoryUrl:e.repositoryUrl}:{},embeddedVersion:0,autoImport:e.autoImport??!1,tier:e.tier,...e.description?{description:e.description}:{}})),...nA().map(e=>({id:e.id,label:e.label,source:new yM(e.url),url:e.url,repositoryUrl:e.repositoryUrl,embeddedVersion:xM[e.id]??0,autoImport:!1}))].filter(t=>!e.has(t.id))}function nN(e){try{if(typeof BroadcastChannel<`u`){let t=new BroadcastChannel(Dy);t.postMessage(e),t.close()}}catch{}}async function rN(){lk(),await zj().catch(()=>{});let e=RO();e.isInitialized()&&await NO(e);let t=JM();t.isInitialized()&&await UM(t)}function iN(e){return e.includes(`error`)?`error`:e.includes(`imported`)?`imported`:e.includes(`update-pending`)?`update-pending`:e.includes(`server-stale`)?`server-stale`:e.includes(`busy`)?`busy`:`current`}function aN(e,t,n,r){let i=n.now??Date.now,a=n.broadcast??nN,o=n.reportActivity!==!1;if(t.manifestChecked&&_N(e.id,i()),t.outcome===`error`){let i=t.error??`feed sync failed`;n.mode===`background`&&r?.set(e.id,{sourceId:e.id,label:e.label,state:`error`}),o&&$x(i);return}t.outcome===`imported`&&t.applied&&(a({kind:`seed-imported`,source:e.id,version:t.importedVersion}),rN(),o&&Zx({source:e.label,added:t.added??0,updated:t.updated??0}),r&&t.hadCheckpoint&&r.set(e.id,{sourceId:e.id,label:e.label,state:`updated`})),r&&t.outcome===`update-pending`&&r.set(e.id,{sourceId:e.id,label:e.label,state:`pending`})}function oN(){return typeof Worker<`u`&&!1}async function sN(e,t,n){return await new Promise(r=>{let i;try{i=new Worker(new URL(`/assets/feedSync.worker-CK48nNHX.js`,``+import.meta.url),{type:`module`})}catch(e){console.warn(`[feedSync] seed worker unavailable; running on main thread`,e),r(null);return}let a=t.mode===`background`?new Map:void 0,o=[],s=e.length,c=!1,l=e=>{Qx(null),i.terminate(),r(e)};i.onerror=e=>{console.warn(`[feedSync] feed worker failed`,e.message??`unknown error`),l(c?iN(o):null)},i.onmessage=n=>{c=!0;let r=n.data;if(r.type===`progress`){let n=e.find(e=>e.id===r.sourceId);Qx({sourceId:r.sourceId,sourceLabel:n?.label??r.sourceId,chunkId:r.progress.chunkId,recordId:r.progress.recordId,completedRecords:r.progress.completedRecords,totalRecords:r.progress.totalRecords,completedChunks:r.progress.completedChunks,totalChunks:r.progress.totalChunks,phase:r.progress.phase}),t.onProgress?.({...r.progress,sourceId:r.sourceId,sourceLabel:n?.label??r.sourceId,sourceIndex:e.indexOf(n)+1,totalSources:s});return}if(r.type===`first-paint`){rN(),t.onFirstPaint?.();return}if(r.type===`source-result`){let n=e.findIndex(e=>e.id===r.sourceId),i=e[n];if(!i)return;o.push(r.result.outcome),aN(i,r.result,t,a),t.onProgress?.({phase:`finished`,outcome:r.result.outcome,error:r.result.error,sourceId:i.id,sourceLabel:i.label,sourceIndex:n+1,totalSources:s});return}a&&pN([...a.values()]),l(iN(r.outcomes.length?r.outcomes:o))},i.postMessage({type:`run`,dbName:hk(),userId:Ck.currentSync()?.id??null,owner:n,force:t.force,probeManifests:t.probeManifests,background:t.mode===`background`,sources:e.map(e=>({id:e.id,label:e.label,url:eA(e.url),...e.tier?{tier:e.tier}:{},embeddedVersion:e.embeddedVersion,autoSyncOn:zM(e.id),notebookIds:t.notebookIds===void 0?jM(e.id)===`partial`?IM(e.id)??void 0:t.mode===`background`&&jM(e.id)===`unsubscribed`?[]:void 0:t.notebookIds??void 0,granularRecords:!0}))})})}var cN=null,lN=0,uN=new Set;function dN(){return cN}function fN(e){return uN.add(e),()=>{uN.delete(e)}}function pN(e){cN=e.length?{id:++lN,updates:e}:null;for(let e of uN)e()}function mN(e){cN?.updates.some(t=>t.sourceId===e)&&pN(cN.updates.filter(t=>t.sourceId!==e))}var hN=`wodwiki.seedChecks`;function gN(){try{let e=JSON.parse(localStorage.getItem(hN)??`null`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`number`))}catch{return{}}}function _N(e,t){try{localStorage.setItem(hN,JSON.stringify({...gN(),[e]:t}))}catch{}}function vN(e){return gN()[e]??null}async function yN(e={}){let t=[],n=e.storage??bM(),r=e.mode===`background`?new Map:void 0;if(!(e.isEnabled??eN)())return`disabled`;let i=e.owner??`seed-${(e.now??Date.now)()}-${Math.random().toString(36).slice(2,8)}`,a=e.sources??tN();if(!e.storage&&!e.now&&oN()){let t=await sN(a,e,i);if(t)return t}for(let[o,s]of a.entries()){let c=await xN(s,e,n,i,o+1,a.length,r);console.debug(`[feedSync] ${s.id} outcome: ${c}`),t.push(c)}return r&&pN([...r.values()]),iN(t)}async function bN(e={}){let t=e.sources??tN(),n=e.storage??bM();await NN({storage:n}).catch(e=>console.warn(`[feedSync] core registry migration failed`,e));let r;try{r=await n.getSeedMeta(ky(`core`))}catch(e){return console.warn(`[feedSync] boot provider probe failed`,e),`error`}if(!r||r.seedVersion<=0)return yN({...e,sources:t.filter(e=>e.autoImport!==!1)});let i=t.filter(e=>e.id===`core`||jM(e.id)!==`unsubscribed`);return yN({...e,sources:i,probeManifests:!0,mode:`background`,reportActivity:!1})}async function xN(e,t,n,r,i,a,o){let s=t.now??Date.now,c=t.onProgress,l=t.reportActivity!==!1,u=(t,n=null)=>c?.({phase:`finished`,outcome:t,error:n,sourceId:e.id,sourceLabel:e.label,sourceIndex:i,totalSources:a});c?.({phase:`checking`,sourceId:e.id,sourceLabel:e.label,sourceIndex:i,totalSources:a});let d=l?Xx(`download`,e.label):()=>{};try{let l=await $M({id:e.id,label:e.label,source:e.source,embeddedVersion:e.embeddedVersion,autoSyncOn:zM(e.id),...e.tier?{tier:e.tier}:{},notebookIds:t.notebookIds===void 0?jM(e.id)===`partial`?IM(e.id)??void 0:t.mode===`background`&&jM(e.id)===`unsubscribed`?[]:void 0:t.notebookIds??void 0,granularRecords:!0},{storage:n,owner:r,now:s,force:t.force,probeManifests:t.probeManifests,background:t.mode===`background`},{onProgress:t=>{Qx({sourceId:e.id,sourceLabel:e.label,chunkId:t.chunkId,recordId:t.recordId,completedRecords:t.completedRecords,totalRecords:t.totalRecords,completedChunks:t.completedChunks,totalChunks:t.totalChunks,phase:t.phase}),c?.({...t,sourceId:e.id,sourceLabel:e.label,sourceIndex:i,totalSources:a})},onFirstPaint:()=>{lk(),t.onFirstPaint?.()}});return aN(e,l,t,o),u(l.outcome,l.error),l.outcome}finally{Qx(null),d()}}async function SN(e,t={}){let n=(t.sources??tN()).find(t=>t.id===e);if(!n)return console.warn(`[feedSync] unknown feed source: ${e}`),`error`;let r=await yN({...t,sources:[n]});return(r===`imported`||r===`current`)&&(t.subscribe===!1?MM(e)||NM(e,!1):!t.preserveSubscriptionState&&!t.notebookIds&&NM(e,!0),mN(e)),r}async function CN(e,t,n={}){return SN(e,{...n,notebookIds:[t],preserveSubscriptionState:!0,force:!0})}async function wN(e,t,n,r={}){if(n)return FM(e,t,!0),{outcome:await CN(e,t,r)};{FM(e,t,!1);let n=r.storage??bM(),i=await n.getSeedMeta(ky(e));if(!i||!i.chunks[t])return{deleted:0};let a={...i.chunks};if(delete a[t],Object.keys(a).length===0){let t=await n.removeSourceContent(i);lk();let r=RO();r.isInitialized()&&await NO(r);let a=JM();return a.isInitialized()&&await UM(a),nN({kind:`seed-removed`,source:e}),{deleted:t}}let o={...i,chunks:a,importedAt:Date.now()},s={schema:9,version:i.seedVersion,builtAt:i.builtAt,chunks:[]},c=await n.applyChunk({chunkId:t,rows:[],manifest:s,expectedMeta:i,meta:o});lk();let l=RO();l.isInitialized()&&await NO(l);let u=JM();return u.isInitialized()&&await UM(u),nN({kind:`seed-removed`,source:e}),{deleted:c.deleted}}}async function TN(e,t={}){if(e===`core`)return{deleted:0};let n=t.storage??bM(),r=await n.getSeedMeta(ky(e)),i=r?await n.removeSourceContent(r):0;NM(e,!1),BM(e,!1),mN(e),lk();let a=RO();a.isInitialized()&&await NO(a);let o=JM();return o.isInitialized()&&await UM(o),nN({kind:`seed-removed`,source:e}),{deleted:i}}async function EN(e,t={}){if(e===`core`)return{deleted:0};let n=await TN(e,t);return nA().some(t=>t.id===e)?aA(e):cA(e),n}async function DN(e={}){let t=e.storage??bM(),n=!1,r=!1;return await Promise.all((e.sources??tN()).map(async e=>{try{let i=await t.getSeedMeta(ky(e.id));if(!i||i.seedVersion<=0)return;e.autoImport===!1?r=!0:n=!0}catch{}})),{coreImported:n,libraryImported:r}}async function ON(e={}){let t=e.storage??bM();return{sources:await Promise.all((e.sources??tN()).map(async n=>{let r=await t.getSeedMeta(ky(n.id)),i=null,a=null,o=null,s=n.repositoryUrl;try{o=_b(await n.source.fetchManifest()),i={version:o.version,schema:o.schema,builtAt:o.builtAt},s??=Qk(o.repositoryUrl??``)??void 0,_N(n.id,(e.now??Date.now)())}catch(e){a=e instanceof Error?e.message:String(e)}let c=kN(n.id,o,r);return{id:n.id,label:n.label,url:n.url,...s?{repositoryUrl:s}:{},...n.description?{description:n.description}:{},autoImport:n.autoImport!==!1,notebooks:c,stored:r?{version:r.seedVersion,schema:r.schema,builtAt:r.builtAt,importedAt:r.importedAt}:null,remote:i,remoteError:a,upToDate:r!=null&&i!=null&&r.schema===9&&r.seedVersion===i.version,count:c.reduce((e,t)=>e+t.count,0),bytes:c.reduce((e,t)=>e+t.bytes,0),checkedAt:vN(n.id),subscribed:MM(n.id),autoSync:zM(n.id)}}))}}function kN(e,t,n){let r={};for(let t of SA(e))r[t.chunkId]=t;let i=(t?.chunks??[]).map(t=>({id:r[t.id]?.id??t.id,label:r[t.id]?.label??t.id,chunkId:t.id,count:t.count,bytes:t.bytes,imported:!!n?.chunks[t.id],subscribed:PM(e,t.id)}));return i.length>0?i:SA(e).map(t=>({id:t.id,label:t.label,chunkId:t.chunkId,count:0,bytes:0,imported:!!n?.chunks[t.chunkId],subscribed:PM(e,t.chunkId)}))}async function AN(e={}){let t=e.storage??bM(),n=0;for(let e of pA){let r=ky(e.id);try{let i=await t.getSeedMeta(r);if(i&&i.seedVersion>0)continue;let a=[];for(let n of SA(e.id)){if(n.id===e.id)continue;let r=await t.getSeedMeta(ky(n.id));r&&r.seedVersion>0&&a.push(r)}if(a.length===0)continue;let o=a.reduce((e,t)=>t.seedVersion>e.seedVersion?t:e),s=a.find(e=>e.tier)?.tier,c={key:r,schema:o.schema,seedVersion:o.seedVersion,builtAt:o.builtAt,importedAt:Math.max(...a.map(e=>e.importedAt)),chunks:Object.assign({},...a.map(e=>e.chunks)),...s?{tier:s}:{},claim:null};await t.putSeedMeta(c,i??null);for(let e of a)await t.putSeedMeta({...e,seedVersion:0,chunks:{},claim:null},e);n+=1}catch(t){console.warn(`[feedSync] legacy checkpoint adoption failed for ${e.id}`,t)}}return n}async function jN(e={}){return await(e.storage??bM()).backfillFeedProvenance()}async function MN(e={}){return await(e.storage??bM()).migrateNotebookVocabulary()}async function NN(e={}){let t=e.storage??bM(),n=ky(`seed-core`),r=await t.getSeedMeta(n),i=r?.chunks??{};if(!r||r.seedVersion<=0&&Object.keys(i).length===0&&!r.claim)return!1;let a=ky(`core`),o=await t.getSeedMeta(a),s={...o?.chunks};for(let[e,t]of Object.entries(i)){let n=s[e];s[e]=n?{sha256:n.sha256,noteIds:[...new Set([...n.noteIds??[],...t.noteIds??[]])]}:{...t,noteIds:t.noteIds??[]}}let c=o?{...o,builtAt:``,claim:null,chunks:s}:{...jy(a),chunks:s};return await t.putSeedMeta(c,o??null),await t.putSeedMeta(jy(n),r),!0}var PN=(0,W.createContext)(null);function FN({children:e}){let[{isReady:t,error:n,revision:r},i]=(0,W.useState)({isReady:!1,error:null,revision:0}),a=RO(),o=(0,W.useCallback)(async()=>{try{await NO(a),i(e=>({isReady:!0,error:null,revision:e.revision+1}))}catch(e){i(t=>({...t,isReady:!1,error:e instanceof Error?e:Error(String(e))}))}},[a]),s=(0,W.useCallback)(async()=>{await o()},[o]);return(0,W.useEffect)(()=>{o()},[o]),(0,W.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(Dy);return e.onmessage=()=>{s()},()=>e.close()},[s]),(0,G.jsx)(PN.Provider,{value:{registry:a,isReady:t,error:n,revision:r,refresh:s},children:e})}function IN(){let e=(0,W.useContext)(PN);if(!e)throw Error(`useEffortRegistry must be within EffortRegistryProvider`);return e}var LN=(0,W.createContext)(null);function RN({children:e}){let[t,n]=(0,W.useState)(!1),[r,i]=(0,W.useState)(null),a=JM(),o=(0,W.useCallback)(async()=>{try{await UM(a),n(!0),i(null)}catch(e){i(e instanceof Error?e:Error(String(e))),n(!1)}},[a]),s=(0,W.useCallback)(async()=>{n(!1),await o()},[o]);return(0,W.useEffect)(()=>{o()},[o]),(0,W.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(Dy);return e.onmessage=()=>{s()},()=>e.close()},[s]),(0,G.jsx)(LN.Provider,{value:{registry:a,isReady:t,error:r,refresh:s},children:e})}function zN(){let e=(0,W.useContext)(LN);if(!e)throw Error(`useEquipmentRegistry must be within EquipmentRegistryProvider`);return e}var BN=mt,VN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(p,{ref:n,className:K(`pointer-events-none fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]`,e),...t}));VN.displayName=p.displayName;var HN=R(`group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),UN=W.forwardRef(({className:e,variant:t,...n},r)=>(0,G.jsx)(ar,{ref:r,className:K(HN({variant:t}),e),...n}));UN.displayName=ar.displayName;var WN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(it,{ref:n,className:K(`inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive`,e),...t}));WN.displayName=it.displayName;var GN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xn,{ref:n,className:K(`absolute right-2 top-2 rounded-md p-1 text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-destructive-foreground group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive group-[.destructive]:focus:ring-offset-background`,e),"toast-close":``,"aria-label":`Dismiss notification`,...t,children:(0,G.jsx)(_r,{className:`h-4 w-4`})}));GN.displayName=Xn.displayName;var KN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ee,{ref:n,className:K(`text-sm font-semibold`,e),...t}));KN.displayName=Ee.displayName;var qN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(lr,{ref:n,className:K(`text-sm opacity-90`,e),...t}));qN.displayName=lr.displayName;var JN=3,YN=1e6,XN=0;function ZN(){return XN=(XN+1)%(2**53-1),XN.toString()}var QN=new Map,$N=e=>{if(QN.has(e))return;let t=setTimeout(()=>{QN.delete(e),rP({type:`REMOVE_TOAST`,toastId:e})},YN);QN.set(e,t)},eP=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,JN)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?$N(n):e.toasts.forEach(e=>$N(e.id)),{...e,toasts:e.toasts.map(e=>!n||e.id===n?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},tP=[],nP={toasts:[]};function rP(e){nP=eP(nP,e),tP.forEach(e=>e(nP))}function Q(e){let t=ZN(),n=()=>rP({type:`DISMISS_TOAST`,toastId:t}),r=e=>rP({type:`UPDATE_TOAST`,toast:{...e,id:t}});return rP({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||n()}}}),{id:t,dismiss:n,update:r}}function iP(){let[e,t]=W.useState(nP);return W.useEffect(()=>(tP.push(t),()=>{let e=tP.indexOf(t);e>-1&&tP.splice(e,1)}),[e]),{...e,toast:Q,dismiss:e=>rP({type:`DISMISS_TOAST`,toastId:e})}}function aP(){let{toasts:e}=iP();return(0,G.jsxs)(BN,{children:[e.map(function({id:e,title:t,description:n,action:r,...i}){return(0,G.jsxs)(UN,{...i,children:[(0,G.jsxs)(`div`,{className:`grid gap-1`,children:[t&&(0,G.jsx)(KN,{children:t}),n&&(0,G.jsx)(qN,{children:n})]}),r,(0,G.jsx)(GN,{})]},e)}),(0,G.jsx)(VN,{})]})}var oP={activeL1Id:null,activeL2Id:null,activeL3Id:null,leftDrawerOpen:!1,rightDrawerOpen:!1,expandedIds:new Set,journalFilter:{selectedDate:null,selectedTags:[]},searchFilter:{scope:`all`}};function sP(e,t){switch(t.type){case`SET_ACTIVE_L1`:return e.activeL1Id===t.id?e:{...e,activeL1Id:t.id};case`SET_ACTIVE_L2`:return e.activeL2Id===t.id?e:{...e,activeL2Id:t.id};case`SET_ACTIVE_L3`:return e.activeL3Id===t.id?e:{...e,activeL3Id:t.id};case`SET_LEFT_DRAWER`:return e.leftDrawerOpen===t.open?e:{...e,leftDrawerOpen:t.open};case`SET_RIGHT_DRAWER`:return e.rightDrawerOpen===t.open?e:{...e,rightDrawerOpen:t.open};case`TOGGLE_EXPANDED`:{let n=new Set(e.expandedIds);return n.has(t.id)?n.delete(t.id):n.add(t.id),{...e,expandedIds:n}}case`SET_JOURNAL_DATE`:return{...e,journalFilter:{...e.journalFilter,selectedDate:t.date}};case`SET_JOURNAL_TAGS`:return{...e,journalFilter:{...e.journalFilter,selectedTags:t.tags}};case`SET_SEARCH_SCOPE`:return{...e,searchFilter:{scope:t.scope}};default:return e}}var cP=e=>{let t=document.getElementById(e);if(t){let e=t.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:e,behavior:`smooth`})}},lP=(0,W.createContext)({tree:[],navState:oP,dispatch:()=>{},l3Items:[],setL3Items:()=>{},secondarySpec:void 0,setSecondarySpec:()=>{},contextNav:void 0,setContextNav:()=>{},streamControls:null,setStreamControls:()=>{},scrollToSection:cP,registerScrollFn:()=>{},openCreateJournal:()=>{},registerCreateJournal:()=>{}});function uP(){return(0,W.useContext)(lP)}function dP(e){let{tree:t,dispatch:n}=uP();(0,W.useEffect)(()=>{e&&t.some(t=>t.id===e)&&n({type:`SET_ACTIVE_L1`,id:e})},[e,t,n])}function fP({tree:e,children:t}){let[n,r]=(0,W.useReducer)(sP,oP),[i,a]=(0,W.useState)([]),[o,s]=(0,W.useState)(void 0),[c,l]=(0,W.useState)(void 0),[u,d]=(0,W.useState)(null),f=(0,W.useCallback)(e=>{s(t=>t===e?t:e)},[]),p=(0,W.useCallback)(e=>{l(t=>{let n=typeof e==`function`?e(t):e;return t===n||!t&&!n||t&&n&&t.pathname===n.pathname&&t.spec===n.spec?t:n})},[]),m=(0,W.useCallback)(e=>{d(t=>t===e?t:e)},[]),h=wn(),g=(0,W.useRef)(cP),_=(0,W.useRef)(null);(0,W.useEffect)(()=>{let t=e.find(e=>e.isActive?e.isActive(h,n):e.action.type===`route`?e.action.to===`/`?h.pathname===`/`||h.pathname===``:h.pathname.startsWith(e.action.to):!1);r({type:`SET_ACTIVE_L1`,id:t?.id??null})},[h.pathname]),(0,W.useEffect)(()=>{r({type:`SET_LEFT_DRAWER`,open:!1})},[h.pathname]);let v=(0,W.useCallback)(e=>{a(t=>t.length===e.length&&t.every((t,n)=>t.id===e[n]?.id&&t.label===e[n]?.label&&t.secondaryAction?.id===e[n]?.secondaryAction?.id&&t.secondaryRunIcon===e[n]?.secondaryRunIcon)?t:e)},[]),y=(0,W.useCallback)(e=>{r({type:`SET_ACTIVE_L3`,id:e}),g.current(e)},[]),b=(0,W.useCallback)(e=>{g.current=e},[]),x=(0,W.useCallback)(e=>{_.current?.(e)},[]),S=(0,W.useCallback)(e=>{_.current=e},[]),C=(0,W.useMemo)(()=>({tree:e,navState:n,dispatch:r,l3Items:i,setL3Items:v,secondarySpec:o,setSecondarySpec:f,contextNav:c,setContextNav:p,streamControls:u,setStreamControls:m,scrollToSection:y,registerScrollFn:b,openCreateJournal:x,registerCreateJournal:S}),[e,n,i,v,o,f,c,p,u,m,y,b,x,S]);return(0,G.jsx)(lP.Provider,{value:C,children:t})}function pP(e){if(!e)return null;let t=X(e);return t.error?`Couldn't parse "${e}" — ${t.error}`:null}var mP=1e3;function hP(e){let t=(0,W.useRef)(e);t.current=e;let[n,r]=Lt(),i=n.get(`q`)??``,[a,o]=(0,W.useState)(()=>{let{defaultQuery:e,legacy:r}=t.current;return i?X(i).error?r?.salvageQ?.(i,n)??e:i:r?.toQuery(n)??e}),[s,c]=(0,W.useState)(()=>!i||!X(i).error||t.current.legacy?.salvageQ?.(i,n)?null:pP(i)),l=(0,W.useRef)(a);l.current=a;let u=(0,W.useRef)(n);u.current=n;let d=(0,W.useRef)(!1);(0,W.useEffect)(()=>{if(d.current)return;d.current=!0;let{legacy:e}=t.current,n=u.current,i=n.get(`q`)??``,a=null;if(i?X(i).error&&(a=e?.salvageQ?.(i,n)??null):a=e?.toQuery(n)??null,!a)return;let o=new URLSearchParams(n);for(let t of e?.keys??[])o.delete(t);o.set(`q`,a),r(o,{replace:!0})},[r]);let f=(0,W.useRef)(!0),p=(0,W.useRef)(null),m=(0,W.useRef)(i);(0,W.useEffect)(()=>{if(i===m.current)return;m.current=i,f.current=!0,clearTimeout(p.current),p.current=null,c(pP(i));let e=i&&!X(i).error?i:t.current.defaultQuery;o(t=>t===e?t:e)},[i]);let h=(0,W.useRef)(t.current.defaultQuery);return(0,W.useEffect)(()=>{let e=t.current.defaultQuery;e!==h.current&&(h.current=e,!i&&o(t=>t===e?t:e))},[i,t.current.defaultQuery]),(0,W.useEffect)(()=>{let e=()=>{let e=new URLSearchParams(window.location.search).get(`q`)??``;e!==m.current&&(m.current=e,f.current=!0,clearTimeout(p.current),p.current=null,c(pP(e)),o(e&&!X(e).error?e:t.current.defaultQuery))};return window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`popstate`,e),clearTimeout(p.current)}},[]),{query:a,setQuery:(0,W.useCallback)(e=>{if(o(e),!X(e).error&&e!==l.current){let t=new URLSearchParams(u.current);t.set(`q`,e),m.current=e,r(t,{replace:!f.current}),f.current=!1,clearTimeout(p.current),p.current=setTimeout(()=>{f.current=!0,p.current=null},mP)}},[r]),urlQueryError:s}}var gP=[`origin`,`discipline`];function _P(e){return/\s/.test(e)?`text:"${e}"`:`text:${e}`}function vP(e){let t=e.filter(Boolean);return`:effort${t.length?`{${t.join(`,`)}}`:``}`}function yP(e,t){let n=e.trim();if(!n||n.startsWith(`:`)||n.includes(`{`)||n.includes(`}`))return null;let r=t.get(`origin`),i=t.get(`discipline`)?.trim();return vP([_P(n),...r&&r!==`all`?[`origin:${r}`]:[],...i?[`discipline:${i}`]:[]])}function bP(e){if(!gP.some(t=>e.get(t)))return null;let t=e.get(`origin`),n=e.get(`discipline`)?.trim();return vP([...t&&t!==`all`?[`origin:${t}`]:[],...n?[`discipline:${n}`]:[]])}var xP={keys:gP,toQuery:bP,salvageQ:yP};function SP(e){return e.endsWith(`/`)&&e.length>1?e.slice(0,-1):e}function CP(e){let t=[`note`,`session`,`post`,`text`,`timePreset`,`rangeStart`,`rangeEnd`,`s`,`tags`,`mode`];return{keys:t,toQuery(n){if(!t.some(e=>n.has(e)))return null;let r=null;if(n.has(`note`)||n.has(`session`)||n.has(`post`)){let e=[];(n.get(`note`)??`include`)!==`hide`&&e.push(`journal`),(n.get(`session`)??`include`)!==`hide`&&e.push(`notebooks`),e.length===1&&(r=`source:${e[0]}`)}else e&&(r=`source:${e}`);let i=n.get(`timePreset`)??`2w`,a=i===`all`||i===`custom`?null:`last ${i}`,o=n.get(`text`)?.trim(),s=n.get(`tags`)?.trim(),c=o?/\s/.test(o)?`text:"${o}"`:`text:${o}`:null,l=s?`tags:${s}`:null,u=`:note`,d=[c,l].filter(Boolean);r===`source:journal`?u=`:journal`:r===`source:notebooks`?u=`:notebooks`:r===`source:playground`?u=`:playground`:r&&d.unshift(r);let f=d.length?`{${d.join(`,`)}}`:``;return[`${u}${f}`,a].filter(Boolean).join(` `)}}}var wP={route:`/journal`,title:`Journal`,defaultWql:`:note{notebook:journal} by {date} last 4w`,level:`note`,target:`note`,scopeOptions:[`journal`],calendarCapable:!0,legacy:CP(`journal`)},TP={route:`/notebooks`,title:`Notebooks`,defaultWql:`:notebook{subscribed:true} by {feed}`,level:`session`,target:`note`,scopeOptions:[`notebooks`],shelfVisible:!1,feedNotice:!0,legacy:CP(`notebooks`)},EP={route:`/notes`,title:`Notes`,defaultWql:`:note{notebook:*}`,level:`note`,target:`note`,scopeOptions:[`journal`,`notebooks`],emptyMessage:`No note entries match your search.`,calendarCapable:!0,legacy:CP(`notebooks`)},DP={route:`/feeds`,title:`Feeds`,defaultWql:`:notebook{source:notebooks}`,level:`session`,target:`notebook`,scopeOptions:[`notebooks`],shelfVisible:!1,defaultLayout:`cards`,emptyMessage:`No feeds match your search.`,feedNotice:!0,legacy:CP(`notebooks`)},OP={route:`/pages`,title:`Pages`,defaultWql:`:page{}`,level:`note`,target:`page`,scopeOptions:[],emptyMessage:`No pages match your search.`},kP={route:`/efforts`,title:`Efforts`,defaultWql:`:effort`,level:`effort`,target:`effort`,scopeOptions:[],emptyMessage:`No efforts match your search.`,legacy:xP},AP={route:`/equipment`,title:`Equipment`,defaultWql:`:equipment{}`,level:`note`,target:`equipment`,scopeOptions:[`equipment`],emptyMessage:`No equipment matches your search.`},jP={route:`/tags`,title:`Tags`,defaultWql:`:tag{}`,level:`note`,target:`tag`,scopeOptions:[],emptyMessage:`No tags match your search.`},MP={route:`/sessions`,title:`Sessions`,defaultWql:`:session{}`,level:`result`,target:`session`,scopeOptions:[],emptyMessage:`No completed session results recorded in this period.`,calendarCapable:!0},NP={route:`/playgrounds`,title:`Playgrounds`,defaultWql:`:playground{} by {date} last 1w`,level:`note`,target:`note`,scopeOptions:[`playground`],shelfVisible:!0,legacy:CP(`playground`)};function PP(e){return{route:`/session/${e}`,defaultWql:`:session{} from ${e} to ${e}`,level:`result`,target:`session`,scopeOptions:[],emptyMessage:`No session results recorded on ${e}.`}}function FP(e){return{route:`/results/${e}`,defaultWql:`:session{result:${e}, plane:segment}`,level:`segment`,target:`session`,scopeOptions:[],defaultLayout:`rows`,dashboardEnabled:!0,emptyMessage:`No segment records found for result ${e}.`}}function IP(e){let t=wA(e);return{route:`/notebook/${e}`,title:VO(t),defaultWql:`:note{notebook:${t}} by {date}`,level:`session`,target:`note`,scopeOptions:[`notebooks`],shelfVisible:!1,defaultLayout:`cards`,calendarCapable:!0,notebookSlug:t,legacy:CP(`notebooks`)}}var LP={"/journal":wP,"/notebooks":TP,"/notes":EP,"/feeds":DP,"/pages":OP,"/efforts":kP,"/equipment":AP,"/tags":jP,"/sessions":MP,"/playgrounds":NP};function RP(e){let t=SP(e),n=LP[t];if(n)return n;if(t.startsWith(`/results/`)){let e=t.slice(9);if(e)return FP(e)}if(t.startsWith(`/session/`)){let e=t.slice(9);if(e)return PP(e)}if(t.startsWith(`/notebook/`)){let e=t.slice(10);if(e&&!e.includes(`/`))return IP(e)}}function zP(e){return RP(e)??wP}function BP(e){let t=LP[SP(e)]?.title;if(t)return t;if(SP(e).startsWith(`/notebook/`)){let t=SP(e).slice(10);if(t&&!t.includes(`/`))return VO(t)}}function VP(e){let t=SP(e);if(LP[t])return!0;if(t.startsWith(`/results/`)||t.startsWith(`/session/`))return t.slice(9)!==``;if(t.startsWith(`/notebook/`)){let e=t.slice(10);return!!(e&&!e.includes(`/`))}return!1}var $={home:`/`,playgroundRoot:`/playground`,playground:`/playground/:id`,note:`/note/:noteId`,notes:`/notes`,journal:`/journal`,day:`/day/:date`,plan:`/plan`,aiFirst:`/ai-first`,feeds:`/feeds`,feed:`/feed/:slug`,notebooks:`/notebooks`,notebook:`/notebook/:slug`,notebookTarget:`/notebook/:slug/:target`,notebookItem:`/notebook/:slug/:itemDate/:item`,subscribe:`/subscribe`,pages:`/pages`,page:`/page/:slug`,tags:`/tags`,tagCategory:`/t/:type`,tag:`/t/:type/:tag`,sessions:`/sessions`,sessionDetail:`/results/:sessionId`,sessionDate:`/session/:date`,playgrounds:`/playgrounds`,tracker:`/tracker/:runtimeId`,run:`/run/:runtimeId`,load:`/load`,loadJournal:`/load/journal`,loadJournalDate:`/load/journal/:date`,efforts:`/efforts`,effort:`/effort/:slug`,equipment:`/equipment`,equipmentSlug:`/equipment/:slug`,dashboards:`/dashboards`,dashboardView:`/dashboard/:slug`,settings:`/settings`,settingsAppearance:`/settings/appearance`,settingsProfile:`/settings/profile`,settingsStorage:`/settings/storage`,settingsSync:`/settings/sync`,settingsSystem:`/settings/system`,settingsTags:`/settings/tags`,settingsSoundProfiles:`/settings/sound-profiles`,settingsData:`/settings/data`,settingsDatabase:`/settings/database`,settingsQueries:`/settings/queries`};function HP(e){return`/playground/${encodeURIComponent(e)}`}function UP(e){return`/day/${encodeURIComponent(e)}`}function WP(e,t){return`/day/${encodeURIComponent(e)}?autoStart=${encodeURIComponent(t)}`}function GP(e){return`/note/${encodeURIComponent(e)}`}function KP(e){let t=wA(e);return`/notebook/${encodeURIComponent(t)}`}function qP(e,t){return`/notebook/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}function JP(e,t){return`/notebook/${encodeURIComponent(e)}/${t.split(`/`).map(encodeURIComponent).join(`/`)}`}function YP(e){return`/run/${encodeURIComponent(e)}`}function XP({zip:e}){return`/load?zip=${encodeURIComponent(e)}`}function ZP(e){return`/results/${encodeURIComponent(e)}`}function QP(e){return`/page/${encodeURIComponent(e)}`}function $P(){return`/playgrounds`}function eF(){return`/efforts`}function tF(e){return`/equipment/${encodeURIComponent(e)}`}function nF(e){return`/t/${encodeURIComponent(e)}`}function rF(e,t){return`/t/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}function iF(e){let t=new URLSearchParams;e?.q&&t.set(`q`,e.q),e?.weeks&&t.set(`weeks`,String(e.weeks));let n=t.toString();return`/dashboards${n?`?${n}`:``}`}function aF(){return`/dashboards`}function oF(e){return`/dashboard/${encodeURIComponent(e)}`}function sF(e,t,n){let r=new URLSearchParams;if(t)for(let[e,n]of Object.entries(t))r.set(e,n);n?.mode&&r.set(`mode`,n.mode),n?.tab&&r.set(`tab`,n.tab);let i=r.toString();return i?`/effort/${encodeURIComponent(e)}?${i}`:`/effort/${encodeURIComponent(e)}`}function cF(e){return{mode:e.get(`mode`)??void 0,tab:e.get(`tab`)??void 0,q:e.get(`q`)??void 0,origin:e.get(`origin`)??void 0}}function lF(e){return e.startsWith(`/playground/`)}function uF(e){return e===`/efforts`||e.startsWith(`/effort/`)||e===`/t/effort`||e.startsWith(`/t/effort/`)}function dF(e){return e===`/equipment`||e.startsWith(`/equipment/`)||e===`/t/equipment`||e.startsWith(`/t/equipment/`)}function fF(e){let t=e.match(/^\/notebook\/([^/]+)\/([^/]+)\/([^/]+)$/);return t?[t[1],t[2],t[3]]:null}function pF(e){let t=e.match(/^\/feed\/([^/]+)$/);return t?t[1]:null}function mF(e){return Object.entries(e).filter(([e])=>e.startsWith(`markdown/dashboards/`)).map(([e,t])=>{let{meta:n}=Za(t),r=e.split(`/`).pop().replace(/\.md$/,``);return{slug:typeof n.slug==`string`&&n.slug?n.slug:r,title:typeof n.title==`string`&&n.title?n.title:r,rawContent:t}}).sort((e,t)=>e.title.localeCompare(t.title))}function hF(e){return e.map(e=>{let{meta:t}=Za(e.rawContent);if(t.dashboard!==`true`)return null;let n=typeof t.slug==`string`&&t.slug?t.slug:null,r=typeof t.title==`string`&&t.title?t.title:n??e.id;return n?{noteId:e.id,slug:n,title:r,rawContent:e.rawContent}:null}).filter(e=>e!==null)}function gF(e,t){let n=dk(),r=(0,W.useMemo)(()=>n?mF(n):[],[n]),[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(!0);return(0,W.useEffect)(()=>{if(!e){a(null),s(!1);return}let t=!1;return s(!0),tj.listNotes({kind:`dashboard`}).then(n=>{if(t)return;let i=hF(n).find(t=>t.slug===e);if(i)a({slug:e,title:i.title,rawContent:i.rawContent,editable:!0,noteId:i.noteId});else{let t=r.find(t=>t.slug===e);a(t?{slug:t.slug,title:t.title,rawContent:t.rawContent,editable:!1}:null)}}).catch(()=>{t||a(null)}).finally(()=>{t||s(!1)}),()=>{t=!0}},[e,t,r]),{source:i,loading:o}}function _F(){let e=dk(),t=(0,W.useMemo)(()=>e?mF(e):[],[e]),[n,r]=(0,W.useState)([]),[i,a]=(0,W.useState)(!0);return(0,W.useEffect)(()=>{let e=!1;return tj.listNotes({kind:`dashboard`}).then(n=>{if(e)return;let i=hF(n),a=new Set(i.map(e=>e.slug)),o=[...i.map(e=>({slug:e.slug,title:e.title,editable:!0})),...t.filter(e=>!a.has(e.slug)).map(e=>({slug:e.slug,title:e.title,editable:!1}))];e||r(o)}).catch(()=>{e||r(t.map(e=>({slug:e.slug,title:e.title,editable:!1})))}).finally(()=>{e||a(!1)}),()=>{e=!0}},[t]),{items:n,loading:i}}function vF(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function yF(){return vF(new Date)}function bF(e){return e<yF()}function xF(e){let t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let n=Number(t[1]),r=Number(t[2])-1,i=Number(t[3]),a=new Date(n,r,i),o=vF(a);return o===e?{dateKey:o,date:a}:null}function SF(e){let t=xF(e);if(!t)throw Error(`Invalid journal date: ${e}`);return t.date.getTime()}function CF({persistence:e,moveRecordPlacement:t,addRecordPlacement:n,uuid:r=$t}){let i=new Map;return{async create(t){let n=t.journalDate?SF(t.journalDate):Date.now();return e.createNote({id:r(),title:bx(t.title),rawContent:t.rawContent,tags:t.tags??[],targetDate:n,journalDate:t.journalDate||void 0,type:t.type??`journal`,slug:t.slug,sourceId:t.sourceId})},getById(t){return e.getNote({id:t},{projection:`workbench`,resultSelection:{mode:`all-for-note`},includeSections:!0,includeAttachments:!0})},resolve(t){return e.getNote(t,{projection:`workbench`,resultSelection:{mode:`all-for-note`},includeSections:!0,includeAttachments:!0})},async listByDate(t){return SF(t),(await e.listNotes({journalDate:t,kind:`journal`,projection:`summary`})).sort((e,t)=>e.createdAt-t.createdAt||e.id.localeCompare(t.id))},update(t,n,r){let a=t.id,o=bx(n.match(/^#\s+(.+)$/m)?.[1]?.trim()),s=t.sourceRevision;if(s===void 0)return Promise.reject(Error(`Loaded Note source revision is required`));let c=0;for(;c<t.rawContent.length&&c<n.length&&t.rawContent[c]===n[c];)c++;let l=t.rawContent.length,u=n.length;for(;l>c&&u>c&&t.rawContent[l-1]===n[u-1];)l--,u--;let d=Fa(t.blocks??{},r?.changes??[{from:c,to:l,insert:n.slice(c,u)}]);for(let e of r?.retainedBlocks??[]){let n=Object.values(t.blocks??{}).find(t=>t.from===e.from&&t.to===e.to);n&&(d[n.id]={...n,from:e.nextFrom,to:e.nextTo})}let f=Na(n,{sourceRevision:s,registeredWidgets:Ea,blocks:d}),p=async()=>e.mutateNote({id:a},{rawContent:n,blocks:f,expectedSourceRevision:s,metadata:o?{title:o}:void 0}),m=(i.get(a)??Promise.resolve()).then(p,p);i.set(a,m);let h=()=>{i.get(a)===m&&i.delete(a)};return m.then(h,h),m},async moveToDate(r,i){let a=SF(i);if(t&&n){let a=(await e.getNote({id:r},{projection:`summary`})).placements?.find(e=>e.date);return a?t(r,a.pageId,{date:i}):n(r,{date:i})}return e.mutateNote({id:r},{metadata:{journalDate:i,targetDate:a}})},delete(t){return e.deleteNote({id:t})}}}var wF=new Bk,TF=CF({persistence:tj,moveRecordPlacement:(e,t,n)=>wF.moveRecordPlacement(e,t,n),addRecordPlacement:(e,t)=>wF.addRecordPlacement(e,t)});function EF({persistence:e,journal:t}){async function n(n){let r=await e.listNotes({kind:`dashboard`});for(let e of r){if(n&&e.id===n)continue;let{meta:r,body:i}=Za(e.rawContent);if(r.dashboard!==`true`||r[`dashboard.active`]!==`true`)continue;let a={...r};delete a[`dashboard.active`],await t.update(e,`---\n${$a(a)}\n---\n${i}`)}}return{async createDashboard(e=Kv){return await n(),t.create({title:e,rawContent:Jv(e),type:`dashboard`,sourceId:`dashboards`})},async createDashboardFromScope(e){await n();let r=my(e),{meta:i}=Za(r),a=typeof i.title==`string`&&i.title?i.title:Kv;return t.create({title:a,rawContent:r,type:`dashboard`,sourceId:`dashboards`})},async cloneDashboard(e,r,i){await n();let{meta:a,body:o}=Za(r),s={...a,slug:e};i&&(s.title=i);let c=`---\n${$a(s)}\n---\n${o}`;return t.create({title:typeof s.title==`string`?s.title:e,rawContent:c,type:`dashboard`,sourceId:`dashboards`})}}}var DF=EF({persistence:tj,journal:TF}),OF=[{query:`sum:totalVolume{discipline:strength} by {week}`,label:`Weekly strength volume`,question:`Is strength volume rising?`},{query:`avg:tis{effort:thruster} by {week}`,label:`Thruster time-in-motion`,question:`Is time-in-motion improving?`},{query:`sum:totalReps{discipline:strength} by {effort}`,label:`Reps by lift`,question:`Where do the reps go?`},{query:`last:sessionLoad{note:benchmark} by {session}`,label:`Benchmark loads`,question:`Is session load dropping?`},{query:`sum:sessionLoad{} by {intensity, week}`,label:`Polarized weekly load`,question:`Is my intensity 80/20?`},{query:`avg:calc.acwr{} by {day}`,label:`Injury risk (ACWR)`,question:`Am I spiking my workload?`},{query:`count:totalReps{tags:mobility} by {week}`,label:`Mobility habit`,question:`Did I do mobility work?`},{query:`avg:tis{} by {round}`,label:`TIS by round`,question:`Where does the pace fall apart?`},{query:`sum:totalVolume{} by {effort}`,label:`Volume by lift`,question:`Where does the volume go?`},{query:`:note{tags:pr,source:journal}`,label:`Find PR notes`,question:`Which notes are tagged PR?`},{query:`:note{type:wod,source:journal} last 8w`,label:`Recent workouts`,question:`What workouts did I do recently?`},{query:`:note{source:feeds}`,label:`Notebook workouts`,question:`What workouts are in the library?`},{query:`:block{text:fran}`,label:`Find Fran everywhere`,question:`Which blocks mention Fran?`}],kF=(0,W.createContext)(()=>{});function AF({close:e,children:t}){return(0,G.jsx)(kF.Provider,{value:e,children:t})}function jF(){return(0,W.useContext)(kF)}function MF(e,t){if(!e)return!1;if(e===t)return!0;let n=X(e),r=X(t);return!n.error&&!r.error&&mg(n)===mg(r)}function NF(e){let t=wn(),n=ln(),r=jF(),{items:i,loading:a}=_F(),[o,s]=(0,W.useState)(!1),c=async()=>{s(!0);try{let e=await DF.createDashboard(),{meta:t}=Za(e.rawContent),i=typeof t.slug==`string`&&t.slug?t.slug:e.id;n(oF(i)),r()}finally{s(!1)}},l=t.pathname===`/dashboards`,u=l?new URLSearchParams(t.search).get(`q`):null;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 px-2 py-3`,"data-testid":`dashboards-nav-panel`,children:[(0,G.jsx)(PF,{label:`Explorer`,active:l,onClick:()=>{n(aF()),r()}}),l?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`mt-1 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/60 px-3`,children:`Examples`}),OF.map(e=>(0,G.jsx)(PF,{label:e.label,title:e.question,active:MF(u,e.query),onClick:()=>{n(iF({q:e.query})),r()}},e.query))]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`mt-1 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/60 px-3`,children:`Dashboards`}),a?(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground/60`,children:`Loading…`}):i.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground/60`,children:`No dashboards yet.`}):i.map(e=>(0,G.jsx)(PF,{label:e.title,badge:e.editable?void 0:`prebuilt`,active:t.pathname===`/dashboard/${e.slug}`,onClick:()=>{n(oF(e.slug)),r()}},e.slug)),(0,G.jsxs)(`button`,{type:`button`,onClick:c,disabled:o,"data-testid":`dashboards-nav-new`,className:`mt-2 flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-muted-foreground hover:bg-muted hover:text-foreground transition-colors disabled:opacity-50`,children:[(0,G.jsx)(Qn,{className:`size-3.5`}),`New dashboard`]})]})]})}function PF({label:e,active:t,onClick:n,badge:r,title:i}){return(0,G.jsxs)(`button`,{type:`button`,onClick:n,title:i,className:K(`flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-left transition-colors`,t?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,G.jsx)(`span`,{className:K(`size-2 rounded-full shrink-0`,t?`bg-primary`:`bg-border`)}),(0,G.jsx)(`span`,{className:`truncate`,children:e}),r&&(0,G.jsx)(`span`,{className:`ml-auto text-[9px] font-bold uppercase tracking-wide text-muted-foreground/50 shrink-0`,children:r})]})}function FF({children:e}){return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`absolute left-1/2 top-1/2 size-[max(100%,2.75rem)] -translate-x-1/2 -translate-y-1/2 pointer-events-auto`,"aria-hidden":`true`}),e]})}var IF=(0,W.forwardRef)(function(e,t){return(0,G.jsx)(mn,{children:(0,G.jsx)(rn,{...e,to:e.href,ref:t})})});function LF({className:e,...t}){return(0,G.jsx)(`nav`,{...t,className:ut(e,`flex h-full min-h-0 flex-col`)})}function RF({className:e,...t}){return(0,G.jsx)(`div`,{...t,className:ut(e,`flex flex-col border-b border-zinc-950/5 p-4 dark:border-white/5 [&>[data-slot=section]+[data-slot=section]]:mt-2.5`)})}function zF({className:e,...t}){return(0,G.jsx)(`div`,{...t,className:ut(e,`flex flex-1 flex-col overflow-y-auto p-4 [&>[data-slot=section]+[data-slot=section]]:mt-8`)})}function BF({className:e,...t}){let n=(0,W.useId)();return(0,G.jsx)(tee,{id:n,children:(0,G.jsx)(`div`,{...t,"data-slot":`section`,className:ut(e,`flex flex-col gap-0.5`)})})}function VF({className:e,...t}){return(0,G.jsx)(`h3`,{...t,className:ut(e,`mb-1 px-2 text-xs/6 font-medium text-muted-foreground`)})}var HF=(0,W.forwardRef)(function({current:e,className:t,children:n,...r},i){let a=ut(`group flex w-full items-center gap-3 rounded-xl px-2 py-2.5 text-left text-base/6 font-medium text-foreground sm:py-2 sm:text-sm/5 transition-all duration-200`,`[&>[data-slot=icon]]:size-6 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:text-muted-foreground sm:[&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:transition-colors`,`[&>[data-slot=icon]:last-child]:ml-auto [&>[data-slot=icon]:last-child]:size-5 sm:[&>[data-slot=icon]:last-child]:size-4`,`[&>[data-slot=avatar]]:-m-0.5 [&>[data-slot=avatar]]:size-7 sm:[&>[data-slot=avatar]]:size-6`,`data-[hover]:bg-primary/10 data-[hover]:text-primary data-[hover]:[&>[data-slot=icon]]:text-primary`,`data-[active]:bg-primary/15 data-[active]:scale-[0.98]`,`data-[current]:bg-primary/10 data-[current]:text-primary data-[current]:[&>[data-slot=icon]]:text-primary font-bold`);return(0,G.jsxs)(`span`,{className:ut(t,`relative`),children:[e&&(0,G.jsx)(Vt.span,{layoutId:`current-indicator`,className:`absolute inset-y-2 -left-4 w-1 rounded-full bg-primary shadow-[0_0_8px_rgba(129,140,248,0.5)]`}),typeof r.href==`string`?(0,G.jsx)(Nn,{as:IF,...r,className:a,"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(FF,{children:n})}):(0,G.jsx)(qt,{...r,className:ut(`cursor-default`,a),"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(FF,{children:n})})]})});function UF({className:e,...t}){return(0,G.jsx)(`span`,{...t,className:ut(e,`truncate`)})}function WF(e){return e.replace(/(^|[{,\s!])catalog:("[^"]*"|[\w][\w/-]*)/g,`$1notebook:$2`)}var GF=[{id:`date`,label:`Date`},{id:`week`,label:`Week`},{id:`month`,label:`Month`},{id:`year`,label:`Year`},{id:`tag`,label:`Tags`},{id:`type`,label:`Type`},{id:`discipline`,label:`Discipline`},{id:`source`,label:`Source`},{id:`origin`,label:`Origin`}],KF=GF.map(e=>e.id),qF=Object.fromEntries(GF.map(e=>[e.id,e.label]));function JF(e){return qF[e]??e}function YF(e,t,n){let r=n?.sink,i=n?.priority??[],a=e=>{let t=i.indexOf(e);return t===-1?1/0:t};return[...e].sort((e,n)=>{if(t===`chronological-desc`)return n[0].localeCompare(e[0]);if(t===`priority-then-alpha`){let t=a(e[0]),r=a(n[0]);return t===r?e[0].localeCompare(n[0]):t-r}if(r){if(e[0]===r)return 1;if(n[0]===r)return-1}return e[0].localeCompare(n[0])})}function XF(e,t){let n=new Set(e);if(!t||t.length===0)return GF.filter(e=>n.has(e.id));let r=t.filter(e=>n.has(e)),i=new Set(r);return[...r.map(e=>({id:e,label:JF(e)})),...GF.filter(e=>n.has(e.id)&&!i.has(e.id))]}function ZF(e,t,n){if(!e)return n;let r=new Set(t);return e.find(e=>r.has(e))??n}function QF(e){if(!e)return{options:[],invalid:[]};let t=[],n=[],r=new Set;for(let i of e){if(!KF.includes(i)){n.includes(i)||n.push(i);continue}r.has(i)||(r.add(i),t.push(i))}return{options:t,invalid:n}}var $F=`/palette`,eI=new jx(`wodwiki.routeWql.v1`,nj?oj:void 0),tI=[...Pm,...Fm],nI={notes:`note`,blocks:`block`,efforts:`effort`,collections:`notebooks`,feeds:`notebooks`};function rI(e){let t=e.startsWith(`/`)?e:`/${e}`;return cI[t]??t}function iI(e){if(Array.isArray(e))return e.filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim())}function aI(e,t,n){let r=[],i=[],a=new Set;for(let o of e){let e=n[o]??o;if(!t.includes(e)){i.includes(o)||i.push(o);continue}a.has(e)||(a.add(e),r.push(e))}return{options:r,invalid:i}}var oI={"/notebooks":`/catalogs`,"/notes":`/feeds`,"/sessions":`/results`,"/dashboards":`/dashboard`},sI={"/notes":`/collections`},cI={"/feeds":`/feeds@2`};function lI(e){return WF(e).replace(/^:(collections?|feeds?)(?![\w:])/,e=>e===`:collections`||e===`:feeds`?`:notebooks`:`:notebook`).replace(/(^|[{,\s])source:(collections|feeds)(?![\w:])/g,`$1source:notebooks`).replace(/(^|[{,\s])source:collection:/g,`$1source:notebook:`).replace(/(^|[{,\s])type:(feed|collection)(?![\w:])/g,`$1type:note`)}function uI(e,t=eI){let n=rI(e),r=oI[n],i=t.get(n,{alias:r});if(i==null&&r&&(i=t.get(r,{alias:sI[n]})),!i)return{};let a=iI(i.typeOptions),o=iI(i.groupByOptions),s=a&&aI(a,tI,nI),c=o?QF(o):void 0;return{defaultWql:typeof i.defaultWql==`string`&&i.defaultWql.trim().length>0?lI(i.defaultWql.trim()):void 0,typeOptions:s?.options,groupByOptions:c?.options,...s?.invalid.length?{invalidTypeOptions:s.invalid}:{},...c?.invalid.length?{invalidGroupByOptions:c.invalid}:{}}}async function dI(e,t,n=eI){let r=rI(e),i={defaultWql:t.defaultWql?.trim()||void 0,typeOptions:iI(t.typeOptions),groupByOptions:iI(t.groupByOptions)};if(nj){try{await cj(n.qualify(r),JSON.stringify(i))}catch(e){return console.error(`[routeWqlConfig] server write failed:`,e),!1}return _I(),!0}return n.set(r,i),_I(),!0}async function fI(e,t=eI){let n=rI(e),r=oI[n];if(nj){try{await lj(r?[t.qualify(n),t.qualify(r)]:[t.qualify(n)])}catch(e){return console.error(`[routeWqlConfig] server delete failed:`,e),!1}return _I(),!0}return t.remove(n,r),_I(),!0}var pI=0,mI=new Set;function hI(e){return mI.add(e),()=>{mI.delete(e)}}function gI(){return pI}function _I(){pI+=1;for(let e of mI)e()}function vI(e){let t=(0,W.useSyncExternalStore)(hI,gI,gI);return(0,W.useMemo)(()=>uI(e),[e,t])}function yI(e,t){let n=t??uI(e.route);return!n.defaultWql&&!n.typeOptions&&!n.groupByOptions?e:{...e,defaultWql:n.defaultWql??e.defaultWql,scopeOptions:n.typeOptions?n.typeOptions.filter(e=>Fm.includes(e)):e.scopeOptions,groupByOptions:n.groupByOptions}}function bI(e){let t=vI(e?.route??``);return(0,W.useMemo)(()=>e?yI(e,t):void 0,[e,t])}var xI={bookmark:Me,calendar:sr,"clipboard-list":Rn,clock:xn,dumbbell:be,flame:ie,folder:Fe,"flask-conical":k,heart:ze,library:pe,plus:Qn,rss:Ut,star:kt,tag:Ye,activity:ve,wrench:f},SI=new jx(`wodwiki.routeWqlShortcuts.v1`,nj?oj:void 0);function CI(e,t){return{id:`all`,label:e,icon:t,wql:``}}var wI={"/journal":`All entries`,"/notebooks":`Subscribed notebooks`,"/notes":`All notes`,"/feeds":`All feeds`,"/pages":`All pages`,"/playgrounds":`All playgrounds`,"/efforts":`All Efforts`,"/equipment":`All Equipment`,"/sessions":`All Sessions`,"/tags":`All Tags`},TI={"/journal":`calendar`,"/notebooks":`library`,"/notes":`rss`,"/feeds":`rss`,"/pages":`clipboard-list`,"/playgrounds":`flask-conical`,"/efforts":`dumbbell`,"/equipment":`wrench`,"/sessions":`clipboard-list`,"/tags":`tag`};function EI(e){let t=kI(e);return t===`/notebooks`?[CI(`Subscribed notebooks`,`library`),{id:`all-configured`,label:`All configured`,icon:`bookmark`,wql:`:notebook{subscribed:true,false}`},{id:`available`,label:`Available to subscribe`,icon:`plus`,wql:`:notebook{subscribed:false}`}]:t===`/sessions`?[CI(`All Sessions`,`clipboard-list`),{id:`recent-1d`,label:`Recent (last 1d)`,icon:`clock`,wql:`:session{} last 1d`},{id:`recent-7d`,label:`Last 7 days`,icon:`calendar`,wql:`:session{} last 7d`}]:[CI(wI[t]??`Landing link`,TI[t]??`bookmark`)]}function DI(e){return e.map(e=>({id:`tag-type-${e.name}`,label:e.label,icon:`tag`,wql:`:tag{type:${e.name}}`}))}function OI(e){let t=(0,W.useMemo)(()=>EI(e),[e]),[n,r]=(0,W.useState)([]);return(0,W.useEffect)(()=>{if(kI(e)!==`/tags`)return;let t=!0;return Z.getAllTagTypes().then(e=>{t&&r(e)}).catch(()=>{t&&r([])}),()=>{t=!1}},[e]),(0,W.useMemo)(()=>kI(e)===`/tags`?[...t,...DI(n)]:t,[e,t,n])}function kI(e){return e.startsWith(`/`)?e:`/${e}`}var AI={"/notebooks":`/catalogs`,"/notes":`/feeds`},jI={"/feeds":`/feeds@2`};function MI(e){let t=kI(e);return jI[t]??t}function NI(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let r of e){if(typeof r!=`object`||!r||Array.isArray(r))continue;let e=r;typeof e.id!=`string`||!e.id.trim()||n.has(e.id)||typeof e.label!=`string`||!e.label.trim()||typeof e.icon!=`string`||!xI[e.icon]||typeof e.wql==`string`&&(e.to!==void 0&&(typeof e.to!=`string`||!/^\/(?!\/)/.test(e.to))||(n.add(e.id.trim()),t.push({id:e.id.trim(),label:e.label.trim(),icon:e.icon,wql:lI(e.wql.trim()),...typeof e.to==`string`?{to:e.to}:{}})))}return t}function PI(e,t=SI){let n=MI(e);return NI(t.get(n,{alias:AI[n]}))}function FI(e,t=SI,n=EI(e)){let r=MI(e),i=AI[r];if(t.getRaw(r)!=null||i!=null&&t.getRaw(i)!=null){let r=PI(e,t);return r.some(e=>e.id===`all`)?r:[n[0],...r]}return n}async function II(e,t,n=SI){let r=MI(e),i=NI(t);if(nj){try{await cj(n.qualify(r),JSON.stringify(i))}catch(e){return console.error(`[routeWqlShortcuts] server write failed:`,e),!1}return VI(),!0}return n.set(r,i),n.getRaw(r)===JSON.stringify(i)&&(VI(),!0)}var LI=0,RI=new Set;function zI(e){return RI.add(e),()=>{RI.delete(e)}}function BI(){return LI}function VI(){LI++;for(let e of RI)e()}function HI(e,t=SI){return(0,W.useSyncExternalStore)(zI,BI),FI(e,t,OI(e))}function UI(e){return xh(e)?mg({...e,filters:(e.filters??[]).map(e=>({...e,values:[...e.values??[]].sort((e,t)=>e.value.localeCompare(t.value))})).sort((e,t)=>e.key.localeCompare(t.key)||Number(e.negate)-Number(t.negate)||e.values.map(e=>e.value).join(`|`).localeCompare(t.values.map(e=>e.value).join(`|`))),groupBy:[...e.groupBy??[]].sort((e,t)=>e.localeCompare(t))}):mg(e)}function WI(e,t){return e.to?t.pathname===e.to||t.pathname.startsWith(`${e.to}/`):GI(e.wql,t.query)}function GI(e,t){if(!e.trim())return t.trim()===``;if(t.trim()===``)return!1;if(t===e)return!0;let n=X(t),r=X(e);return!n.error&&!r.error&&UI(n)===UI(r)}var KI=`w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary/40`;function qI({open:e,onOpenChange:t,route:n,editing:r=null,initialQuery:i=``}){let[a,o]=(0,W.useState)(r?.label??``),[s,c]=(0,W.useState)(r?.icon??`bookmark`),[l,u]=(0,W.useState)(r?r.wql:i),[d,f]=(0,W.useState)(null),p=OI(n);(0,W.useEffect)(()=>{e&&(o(r?.label??``),c(r?.icon??`bookmark`),u(r?r.wql:i),f(null))},[e,r,i]);let m=r!==null&&!!r.to,h=r?.id!==`all`,g=a.trim(),_=l.trim(),v=_?Uw(_).error??null:null,y=g?null:`Label is required.`,b=!!g&&!m&&(!h||!!_)&&!v;return(0,G.jsx)(zC,{open:e,onClose:()=>t(!1),title:r?`Edit shortcut`:`Save search shortcut`,description:`Saved shortcuts appear in this route's navigation panel. Stored ${nj?`on the server.`:`in this browser only.`}`,footer:(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsx)(q,{type:`submit`,form:`save-wql-shortcut-form`,size:`sm`,disabled:!b,"data-testid":`shortcut-save`,children:`Save`})]}),children:(0,G.jsxs)(`form`,{id:`save-wql-shortcut-form`,onSubmit:async e=>{if(e.preventDefault(),!b)return;let i={id:r?.id??crypto.randomUUID(),label:g,icon:s,wql:m?r.wql:_,...r?.to===void 0?{}:{to:r.to}};if(!await II(n,[...FI(n,void 0,p).filter(e=>e.id!==i.id),i])){f(`Couldn’t save — storage is unavailable. Your input is kept.`);return}t(!1)},className:`flex flex-col gap-4`,noValidate:!0,children:[(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{htmlFor:`shortcut-label`,className:`text-xs font-semibold text-muted-foreground`,children:`Label`}),(0,G.jsx)(`input`,{id:`shortcut-label`,value:a,onChange:e=>o(e.target.value),placeholder:`e.g. Strength this month`,"data-testid":`shortcut-label-input`,"aria-invalid":y?!0:void 0,className:KI}),y&&(0,G.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,"data-testid":`shortcut-label-error`,children:y})]}),m?(0,G.jsxs)(`p`,{className:`rounded-md border border-border/60 bg-muted/30 px-3 py-2 text-xs text-muted-foreground`,children:[`Route action — always opens `,r?.to,`. Label and icon are editable.`]}):(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{htmlFor:`shortcut-query`,className:`text-xs font-semibold text-muted-foreground`,children:`Query (WQL)`}),(0,G.jsx)(`textarea`,{id:`shortcut-query`,rows:2,value:l,onChange:e=>u(e.target.value),placeholder:h?`find …`:`Empty — the plain route landing`,"data-testid":`shortcut-query-input`,"aria-invalid":v?!0:void 0,className:`${KI} font-mono text-xs`}),v?(0,G.jsxs)(`p`,{role:`alert`,className:`text-xs text-destructive`,"data-testid":`shortcut-query-error`,children:[`Couldn't parse — `,v]}):!_&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:h?`A shortcut needs a query.`:`Empty — opens the plain route landing.`})]}),(0,G.jsxs)(`fieldset`,{className:`space-y-1.5`,children:[(0,G.jsx)(`legend`,{className:`text-xs font-semibold text-muted-foreground`,children:`Icon`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Object.entries(xI).map(([e,t])=>(0,G.jsxs)(`label`,{title:e,className:s===e?`cursor-pointer rounded-md border border-primary bg-primary/10 p-1.5 text-primary`:`cursor-pointer rounded-md border border-border p-1.5 text-muted-foreground hover:text-foreground`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`shortcut-icon`,value:e,checked:s===e,onChange:()=>c(e),"aria-label":`Icon ${e}`,"data-testid":`shortcut-icon-${e}`,className:`sr-only`}),(0,G.jsx)(t,{className:`size-4`,"aria-hidden":`true`})]},e))})]}),d&&(0,G.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,"data-testid":`shortcut-storage-error`,children:d})]})})}var JI=null,YI=new Set;function XI(e){JI=e;for(let e of YI)e()}function ZI(e){return YI.add(e),()=>{YI.delete(e)}}function QI(){return JI}function $I(){return(0,W.useSyncExternalStore)(ZI,QI)}function eL(e){let t=e.split(`/`),n=t[0]??e,r=t[1]??``;return n===`journal`?{kind:`journal`,id:r,raw:e}:n===`playground`?{kind:`playground`,id:r,raw:e}:t.length<2?{kind:`workout`,id:n,raw:e}:{kind:`workout`,category:n,id:r,raw:e}}var tL=/^(?:uuid-|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)/i;function nL(e){return typeof e==`string`&&e&&!tL.test(e)?e:void 0}function rL(e){return!!e.sourceId?.startsWith(`notebook:`)||e.sourcePath?.startsWith(`markdown/notebooks/`)===!0}function iL(e){return e.type===`dashboard`||e.sourceId===`dashboards`||e.sourcePath?.startsWith(`markdown/dashboards/`)===!0}function aL(e){return e.sourceId===`efforts`||e.sourcePath?.startsWith(`markdown/efforts/`)===!0}function oL(e){return e.sourceId===`equipment`||e.sourcePath?.startsWith(`markdown/equipment/`)===!0}function sL(e){return e.type===`tag`&&e.id.startsWith(`tag/`)}function cL(e){let t=/^tag\/([^/]+)\/(.+)$/.exec(e.id);return t?{type:t[1],label:t[2]}:void 0}function lL(e,t){let n=e.sourcePath?.replace(/^markdown\/[^/]+\//,``).replace(/\.md$/,``);if(!n)return;let r=n.split(`/`);return r.length===t?r[t-1]:void 0}function uL(e){let t=e.sourceId;if(t?.startsWith(`notebook:`)){let e=t.slice(9);if(e&&e!==`_root`){let t=e.indexOf(`/`);return t===-1?{slug:e,item:``}:{slug:e.slice(0,t),item:e.slice(t+1)}}}let n=/^markdown\/notebooks\/([^/]+)\/(.+)\.md$/.exec(e.sourcePath??``);if(n)return{slug:n[1],item:n[2].toLowerCase()===`readme`?``:n[2]};let r=e.id;if(tL.test(r))return{slug:``,item:``};let[i,...a]=r.split(`/`);return{slug:i,item:a.join(`/`)}}function dL(e){return e.sourceId===`playground`||e.type===`playground`||e.id.startsWith(`playground/`)}function fL(e){let t=e.slug??e.id;return t.startsWith(`playground/`)?t.slice(11):t}function pL(e){return{...mL(e),noteType:e.type,notebookId:z_(e),feedId:e.feedSourceId??(B_(e)===`user`?`local`:`core`),editable:wa(e,B_(e))}}function mL(e){let t=e.id,n=e.title,r=e.tags&&e.tags.length>0?e.tags:void 0;if(dL(e))return{id:t,kind:`note`,sourceNotebook:`playground`,sourceNote:fL(e),sourceId:e.sourceId,title:Zb(n||fL(e)),date:null,createdAt:e.createdAt,...r?{tags:r}:{}};if(rL(e)){let{slug:i,item:a}=uL(e),o=!a,s=a.split(`/`),c=s.length>1&&/^\d{4}-\d{2}-\d{2}$/.test(s[0])?s[0]:null;return{id:t,kind:`note`,sourceNotebook:i,sourceNote:o?``:a,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:c??(e.date?vF(new Date(e.date)):null),createdAt:e.createdAt,subtitle:i,...r?{tags:r}:{}}}if(iL(e))return{id:t,kind:`dashboard`,sourceNotebook:`dashboards`,sourceNote:lL(e,1)??t,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:null,createdAt:e.createdAt,subtitle:`dashboards`,...r?{tags:r}:{}};if(aL(e)){let i=lL(e,2)??t,a=e.sourcePath?.match(/^markdown\/efforts\/([^/]+)\//)?.[1];return{id:t,kind:`effort`,sourceNotebook:`efforts`,sourceNote:i,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:null,createdAt:e.createdAt,subtitle:a,effort:{slug:i},...r?{tags:r}:{}}}if(oL(e))return{id:t,kind:`equipment`,sourceNotebook:`equipment`,sourceNote:lL(e,1)??t,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:null,createdAt:e.createdAt,subtitle:`equipment`,...r?{tags:r}:{}};if(sL(e)){let i=cL(e);return{id:t,kind:`tag`,sourceNotebook:`tags`,sourceNote:i?.label??n,title:n||i?.label||t,date:null,createdAt:e.createdAt,subtitle:(`tagType`in e&&typeof e.tagType==`string`?e.tagType:void 0)??i?.type,detail:e.rawContent||void 0,...r?{tags:r}:{}}}if(e.sourceId?.startsWith(`guides:`)){let i=e.sourceId.slice(7)||t;return{id:t,kind:`note`,sourceNotebook:`guides`,sourceNote:i,sourceId:e.sourceId,sourcePath:e.sourcePath,pageSlug:nL(i.replace(/^\//,``).replace(/^page\//,``)),title:n,date:null,createdAt:e.createdAt,...r?{tags:r}:{}}}let i=null;return`journalDate`in e&&typeof e.journalDate==`string`?i=e.journalDate:`date`in e&&typeof e.date==`string`?i=e.date:e.type===`journal`&&`date`in e&&typeof e.date==`number`&&Number.isFinite(e.date)?i=vF(new Date(e.date)):`targetDate`in e&&e.targetDate&&(typeof e.targetDate==`number`||typeof e.targetDate==`string`)?i=vF(new Date(e.targetDate)):e.createdAt&&(i=vF(new Date(e.createdAt))),{id:t,kind:`note`,sourceNotebook:`journal`,sourceNote:t,sourceId:e.sourceId,sourcePath:e.sourcePath,pageId:`pageId`in e&&typeof e.pageId==`string`?e.pageId:void 0,pageSlug:`slug`in e?nL(e.slug):void 0,title:n,date:i,createdAt:e.createdAt,...r?{tags:r}:{}}}function hL(e){return{id:e.noteId,title:e.noteTitle,createdAt:e.createdAt,type:`note`,sourceId:e.sourceId,sourcePath:e.sourcePath,rawContent:``,sourceRevision:1,blocks:{}}}var gL=3,_L=120;function vL(e){return e.split(`
84
+ `).length-1,version:e.version,state:`idle`,widgetIds:{},createdAt:e.savedAt}}async function Hj(e,t,n,r,i=tj){let a=Date.now(),o=await i.startSession(e,{id:n,noteId:e.noteId,blockId:t.id,blockContentId:t.contentId,origin:r??`journal`,startTime:a,endTime:a,duration:0,completed:!1,status:`in-progress`,createdAt:a});return{...o,block:Vj(o.revision)}}async function Uj(e,t,n,r){let i=await Z.getNote(e);if(!i)throw Error(`The note is unavailable. Save the note before starting a workout.`);return Hj({noteId:i.id,rawContent:i.rawContent,blocks:i.blocks,expectedSourceRevision:i.sourceRevision},t,n,r)}function Wj(e,...t){console.warn(`[${e}]`,...t)}function Gj(e,...t){console.error(`[${e}]`,...t)}var Kj=new Set;function qj(e){return Kj.add(e),()=>{Kj.delete(e)}}function Jj(e){for(let t of Kj)try{t(e)}catch(e){Gj(`resultRecorder`,`error in listener:`,e)}}function Yj(e){return{async record({resultId:t,data:n,createdAt:r}){let i=await e.finishSession(t,n,r);return Jj(i),i}}}var Xj=Yj(tj),Zj=`sound`,Qj=`wodwiki.soundProfiles.v1`,$j=`profiles`,eM=new jx(Qj,nj?oj:void 0);function tM(e){return`${Tj}${e}`}function nM(e){return[{kind:`metric`,type:`sound`,value:e}]}function rM(e=eM){let t=e.get($j);if(!Array.isArray(t))return[];let n=[],r=new Set;for(let e of t){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.id!=`string`||t.id.length===0||r.has(t.id))continue;r.add(t.id);let i=[];if(Array.isArray(t.rules))for(let e of t.rules){if(!e||typeof e!=`object`)continue;let t=e;typeof t.trigger==`string`&&typeof t.sound==`string`&&i.push({trigger:t.trigger,sound:t.sound})}n.push({id:t.id,name:typeof t.name==`string`&&t.name.length>0?t.name:t.id,rules:i})}return n}async function cte(e,t=eM){let n=e.map(e=>({id:e.id,name:e.name,rules:e.rules.map(e=>({trigger:e.trigger,sound:e.sound}))})),r=JSON.stringify(n);if(nj){try{await cj(t.qualify($j),r)}catch(e){return console.error(`[soundProfiles] server write failed:`,e),!1}return sM(),!0}return t.set($j,n),t.getRaw($j)===r&&(sM(),!0)}var iM=Promise.resolve();async function lte(e,t=eM){let n=iM.then(async()=>cte(e(rM(t)),t));return iM=n.catch(()=>!1),n}async function ute(e,t){let n=tM(e),r=(await t.getAllTags()).find(e=>e.label===n);if(r){let n=nM(e),i=r.contributions?.[0];if(r.contributions?.length===1&&i?.kind===`metric`&&i.type===n[0].type&&i.value===n[0].value)return;await t.putTag({...r,contributions:n,type:Zj});return}await t.putTag({id:`sound-profile-${e}`,label:n,type:Zj,contributions:nM(e),createdAt:Date.now()})}async function dte(e,t){let n=tM(e),r=(await t.getAllTags()).find(e=>e.label===n);r&&await t.deleteTag(r.id)}var aM=new Set,oM=0;function sM(){oM+=1;for(let e of aM)e()}function fte(e){return aM.add(e),()=>{aM.delete(e)}}function pte(){return oM}async function mte(e,t={}){let{resultId:n,occurrence:r,metric:i}=e;if(!n||typeof n!=`string`)throw TypeError(`captureMetricCorrection: resultId is required`);if(!r?.blockKey||typeof r.blockKey!=`string`)throw TypeError(`captureMetricCorrection: occurrence.blockKey is required`);if(!i||typeof i.image!=`string`||i.image.length===0)throw TypeError(`captureMetricCorrection: metric.image is required`);if(typeof i.value!=`number`||!Number.isFinite(i.value))throw RangeError(`captureMetricCorrection: metric.value must be finite, got ${i.value}`);if(i.type===J.Rep&&(!Number.isSafeInteger(i.value)||i.value<0))throw RangeError(`captureMetricCorrection: rep corrections must be nonnegative safe integers, got ${i.value}`);let a=t.storage??Z,o=t.persistence??new ej(a);if(!await a.getSessionById(n)||await a.withTransaction([`events`],async e=>{let t=(await e.getEventsByResult(n)).filter(e=>e.grain===`event`&&e.outputType===`segment`&&e.sourceBlockKey===r.blockKey&&(r.sourceStatementId===void 0||e.sourceStatementId===r.sourceStatementId)&&(r.stackLevel===void 0||e.stackLevel===r.stackLevel));if(t.length===0)return`not-found`;if(t.length>1)throw Error(`captureMetricCorrection: ambiguous occurrence ${r.blockKey} in result ${n} — ${t.length} segments match; pass sourceStatementId/stackLevel`);let a=t[0],o=[...a.metrics.filter(e=>e.origin!==`user`||e.type!==i.type),{type:i.type,value:i.value,image:i.image,origin:`user`,timestamp:new Date}],s=a.timeSpan?.started??a.timestamp,c={...a,metrics:o,...a.metricTemporal?{metricTemporal:o.map(()=>({temporalKind:`instant`,instant:s}))}:{}};return await e.appendEvents([c]),`captured`})===`not-found`)return`not-found`;try{return await o.rederiveResultAnalytics(n),`captured`}catch(e){if(e instanceof $b&&e.code===`BLOCK_REVISION_NOT_FOUND`)return`captured-no-rederive`;throw e}}var cM=null,lM=new Set;function uM(e){cM!==e&&(cM=e,lM.forEach(e=>e(cM)))}function dM(){return cM}function fM(e){return lM.add(e),()=>{lM.delete(e)}}var pM=(0,W.createContext)({transport:null});function mM(){let e=(0,W.useContext)(pM),[t,n]=W.useState(()=>dM());return W.useEffect(()=>fM(n),[]),e.transport??t}var hte=({children:e,transport:t})=>{let n=(0,W.useMemo)(()=>({transport:t}),[t]);return(0,G.jsx)(pM.Provider,{value:n,children:e})},hM=(0,W.createContext)(void 0);function gte({children:e}){let[t,n]=(0,W.useState)(Kk.isEnabled()),r=mM();(0,W.useEffect)(()=>{Kk.setEnabled(t)},[t]);let i=(0,W.useCallback)((e,n=1)=>{if(t){if(r?.connected){console.log(`[AudioContext] Routing sound '${e}' to cast receiver`);try{r.send({type:`rpc-audio`,name:e,volume:n})}catch(t){console.error(`[AudioContext] Failed to send rpc-audio`,t),Kk.playSound(e,n).catch(gM)}}else Kk.playSound(e,n).catch(gM)}},[t,r]),a=(0,W.useCallback)(()=>{let e=!t;n(e),e&&(Kk.setEnabled(!0),Kk.playSound(`beep`).catch(gM))},[t]),o=(0,W.useCallback)(()=>{i(`chime`)},[i]),s=(0,W.useCallback)(()=>{i(`click`,.5)},[i]),c=(0,W.useMemo)(()=>({isEnabled:t,toggleAudio:a,playTestSound:o,playSound:i,playClick:s}),[t,a,o,i,s]);return(0,G.jsx)(hM.Provider,{value:c,children:e})}function gM(e){console.error(`[AudioContext] Sound playback failed`,e)}function _M(){let e=(0,W.useContext)(hM);if(e===void 0)throw Error(`useAudio must be used within an AudioProvider`);return e}var vM=class extends Error{status;constructor(e,t){super(e),this.status=t,this.name=`FeedSourceError`}},yM=class{baseUrl;fetchImpl;constructor(e,t=fetch.bind(globalThis)){this.baseUrl=e,this.fetchImpl=t}async fetchManifest(){let e=await this.fetchImpl(`${this.baseUrl}manifest.json`,{cache:`no-cache`});if(!e.ok)throw new vM(`feed manifest fetch failed: HTTP ${e.status}`,e.status);return _b(await e.json())}async fetchChunk(e){let t=await this.fetchImpl(`${this.baseUrl}${e}`);if(!t.ok)throw new vM(`feed chunk fetch failed: HTTP ${t.status} for ${e}`,t.status);return await t.json()}},_te=class{storageInstance;constructor(e){this.storageInstance=e}async getSeedMeta(e){return await this.storageInstance.readonly(`meta`).get(e)}async getNoteCommits(e){let t=await this.storageInstance.readonly(`notes`).getMany(e),n=new Map;for(let r=0;r<e.length;r++){let i=t[r];n.set(e[r],i?.seedCommit)}return n}async putSeedMeta(e,t){await this.storageInstance.transaction([`meta`],`readwrite`,async n=>{let r=n.readwrite(`meta`),i=await r.get(e.key);if(t!==void 0&&JSON.stringify(i??null)!==JSON.stringify(t))throw Error(`Seed checkpoint changed during claim`);await r.put(e)})}applyChunk(e){return Db(this.storageInstance,e)}backfillFeedProvenance(){return kb(this.storageInstance)}migrateNotebookVocabulary(){return Ab(this.storageInstance)}async removeSourceContent(e){return await this.storageInstance.transaction([`notes`,`attachments`,`note_tags`,`block_index`,`block_efforts`,`block_equipment`,`page_notes`,`efforts`,`equipment`,`meta`],`readwrite`,async t=>{let n=new Set,r=[];for(let[t,i]of Object.entries(e.chunks))if(i.noteIds?.length)for(let e of i.noteIds)n.add(e);else r.push(t);if(r.length)for(let e of await t.readwrite(`notes`).getAll())e.seedOrigin===`seed`&&e.seedChunkId&&r.includes(e.seedChunkId)&&n.add(e.id);let i=t.readwrite(`meta`),a=[];for(let t of await i.getAll()){let n=t;if(!n||typeof n.key!=`string`||!n.key.startsWith(`seed:`)||n.key===e.key)continue;let r=new Set;for(let e of Object.values(n.chunks??{}))for(let t of e.noteIds??[])r.add(t);a.push({key:n.key,sourceId:n.key.slice(5),rank:Ey(n.key,n.tier),meta:n,noteIds:r})}a.sort((e,t)=>t.rank-e.rank);let o=e=>a.some(t=>t.noteIds.has(e)),s=e.key.startsWith(`seed:`)?e.key.slice(5):e.key,c=t.readwrite(`notes`),l=0,u=new Set;for(let r of n){if(o(r))continue;let n=await c.get(r);if(!n||n.seedOrigin!==`seed`||n.seedChunkId&&!e.chunks[n.seedChunkId])continue;n.sourcePath&&u.add(n.sourcePath),await c.delete(r);let i=t.readwrite(`attachments`);for(let e of await i.getAllFromIndex(`by-note`,r))await i.delete(e.id);let a=t.readwrite(`note_tags`);for(let e of await a.getAllFromIndex(`by-note`,r))await a.delete(e.id);let s=t.readwrite(`block_index`);for(let e of await s.getAllFromIndex(`by-note`,r))await s.delete(e.id);let d=t.readwrite(`block_efforts`);for(let e of await d.getAllFromIndex(`by-note`,r))await d.delete(e.id);let f=t.readwrite(`block_equipment`);for(let e of await f.getAllFromIndex(`by-note`,r))await f.delete(e.id);let p=t.readwrite(`page_notes`);for(let e of await p.getAllFromIndex(`by-note`,r))await p.delete(e.id);l++}let d=[{storeName:`efforts`,familyPathPrefix:`markdown/efforts/`,parse:ul},{storeName:`equipment`,familyPathPrefix:`markdown/equipment/`,parse:dl}];for(let{storeName:e,familyPathPrefix:r,parse:i}of d){let o=t.readwrite(e);for(let t of await o.getAll()){if(t.registrySource!==`bundled`||!(t.sourceId===s||t.ownerNoteId!==void 0&&n.has(t.ownerNoteId)&&(!t.sourceId||t.sourceId===e)||t.sourcePath!==void 0&&t.sourcePath.startsWith(r)&&u.has(t.sourcePath)))continue;let l=!1;for(let n of a){let r=n.meta.chunks?.[e]?.noteIds??[];for(let e of r){let r=await c.get(e);if(!r||r.seedOrigin!==`seed`)continue;let a=i(r.rawContent);if(a&&a.slug===t.slug){await o.put({...a,registrySource:`bundled`,ownerNoteId:r.id,sourceId:n.sourceId,feedSourceId:n.sourceId,sourcePath:r.sourcePath??``}),l=!0;break}}if(l)break}l||await o.delete(t.slug)}}return await i.delete(e.key),l})}};function bM(){return new _te(Ek)}var xM={core:1};function vte(e,t){return e===void 0||e<=0||t>e?`import`:t===e?`current`:`server-stale`}function yte(e,t){return e?.schema!==void 0&&e.schema!==9?!1:e?.seedVersion!=null&&e.seedVersion>0&&e.seedVersion===t}var SM=`wodwiki.seedSubscriptions`,CM=`wodwiki.seedAutoSync`,wM=null,TM=null,EM=new Set;function DM(e){let t={};try{let n=localStorage.getItem(e),r=n?JSON.parse(n):{};if(r&&typeof r==`object`&&!Array.isArray(r))for(let[e,n]of Object.entries(r))typeof n==`boolean`&&(t[e]=n)}catch{t={}}return t}function OM(){return wM||(wM=DM(SM),wM)}function kM(e,t){let n=!0;try{localStorage.setItem(e,JSON.stringify(t))}catch{n=!1}return n}function AM(e){wM=e;let t=kM(SM,e);for(let e of EM)e();return t}function jM(e){let t=EA(e);if(t===`core`)return`full`;let n=OM();if(n[t]===!0||n[e]===!0)return`full`;let r=`${t}#`,i=`${e}#`;return Object.entries(n).some(([e,t])=>t===!0&&(e.startsWith(r)||e.startsWith(i)))?`partial`:`unsubscribed`}function MM(e){return e===`core`||jM(e)!==`unsubscribed`}function NM(e,t){if(e===`core`)return!0;let n={},r=`${e}#`;for(let[t,i]of Object.entries(OM()))t.startsWith(r)||vA.some(n=>n.feedId===e&&n.id===t)||(n[t]=i);return n[e]=t,AM(n)}function PM(e,t){let n=EA(e);if(n===`core`)return!0;let r=OM(),i=`${n}#${t}`;if(i in r)return r[i]===!0;let a=`${e}#${t}`;return a in r?r[a]===!0:r[n]===!0||r[e]===!0}function FM(e,t,n,r){if(e===`core`)return!0;let i={...OM()},a=`${e}#${t}`,o=`${e}#`,s=r??vA.filter(t=>t.feedId===e).map(e=>e.chunkId);if(i[e]===!0&&!n){i[e]=!1;for(let n of s)n!==t&&(i[`${e}#${n}`]=!0);return i[a]=!1,AM(i)}if(i[a]=n,n&&s.length>0&&s.every(n=>n===t||i[`${e}#${n}`]===!0)){i[e]=!0;for(let e of Object.keys(i))e.startsWith(o)&&delete i[e]}else!n&&s.length>0&&s.every(t=>i[`${e}#${t}`]===!1)&&(i[e]=!1);return AM(i)}function IM(e){let t=EA(e),n=jM(t);if(n===`full`)return null;if(n===`unsubscribed`)return[];let r=OM(),i=`${t}#`,a=`${e}#`;return Object.entries(r).filter(([e,t])=>t===!0&&(e.startsWith(i)||e.startsWith(a))).map(([e])=>e.startsWith(i)?e.slice(i.length):e.slice(a.length))}function LM(e){return EM.add(e),()=>{EM.delete(e)}}function RM(){return TM||(TM=DM(CM),TM)}function zM(e){let t=RM();return e in t?t[e]===!0:e===`core`}function BM(e,t){let n={...RM(),[e]:t},r=kM(CM,n);TM=n;for(let e of EM)e();return r}async function VM(e,t=bM()){let n={...OM()},r=[],i=!1;for(let[e,t]of Object.entries(TA))e in n&&(t in n||(n[t]=n[e],n[e]&&r.push(t)),delete n[e],i=!0);for(let e of vA){let t=e.chunkId.replace(/^notebook\./,``),r=`${e.feedId}#${e.chunkId}`,a=[e.feedId];for(let[t,n]of Object.entries(TA))n===e.feedId&&a.push(t);for(let o of a)for(let a of[`collection.${t}`,`feed.${t}`,e.chunkId]){let e=`${o}#${a}`;e===r||!(e in n)||(r in n||(n[r]=n[e]),delete n[e],i=!0)}}for(let e of vA)e.id in n&&(e.feedId in n||(n[e.feedId]=n[e.id],n[e.id]&&r.push(e.feedId)),delete n[e.id]);for(let{id:i}of e)if(!(i===`core`||i in n))try{let e=await t.getSeedMeta(ky(i));e&&e.seedVersion>0&&(n[i]=!0,r.push(i))}catch{}return(r.length||i)&&AM(n),r}var HM=new class{_db;constructor(e){this._db=e}get db(){return this._db??Z}async load(){return this.db.getAllEquipment()}async save(e){await this.db.saveEquipment(e)}async delete(e){await this.db.deleteEquipment(e)}};async function UM(e){let t=await Z.getAllEquipment();await e.loadBundled(t.filter(e=>e.registrySource===`bundled`)),KM()}var WM=new Set;function GM(e){return WM.add(e),()=>WM.delete(e)}function KM(){for(let e of WM)e()}var qM=null;function JM(){return qM||=new Ml({storage:HM}),qM}var YM=class{storage;source;sourceId;now;constructor(e,t,n,r=Date.now){this.storage=e,this.source=t,this.sourceId=n,this.now=r}async applyAll(e={}){let t=_b(e.manifest??await this.source.fetchManifest()),n=ky(this.sourceId),r=e.stored===void 0?await this.storage.getSeedMeta(n):e.stored,i=r?.schema===9?r:void 0,a=i??jy(n);if(t.version<a.seedVersion)throw Error(`Seed manifest is older than the stored checkpoint`);let o=t.chunks.filter(t=>!(e.notebookIds!==void 0&&e.notebookIds!==null&&(e.notebookIds.length===0||!e.notebookIds.includes(t.id)&&t.id!==`efforts`&&t.id!==`equipment`))),s=!!(t.notebooks&&t.notebooks.length>0),c=o.filter(n=>{let r=t.notebooks?.find(e=>e.notebookId===n.id),i=a.chunks[n.id];if(e.forceAll||!i)return!0;if(r){if((r.version??0)>(i.version??0))return!0}else if(!s&&(t.version!==a.seedVersion||t.builtAt!==a.builtAt))return!0;return i.sha256!==n.sha256});c.sort((e,t)=>Number(t.id===Oy)-Number(e.id===Oy));let l=Object.keys(a.chunks).filter(e=>!t.chunks.some(t=>t.id===e)),u={status:`current`,appliedChunks:0,totalNotes:0,totalEfforts:0,totalEquipment:0,totalBlocks:0,skippedUserOwned:0,deleted:0,addedNotes:0,updatedNotes:0};if(!c.length&&!l.length&&t.version===a.seedVersion&&t.builtAt===a.builtAt)return u;u.status=`imported`;let d=(t,n,r,i,a)=>e.onProgress?.({phase:t,chunkId:n,completedChunks:u.appliedChunks,totalChunks:c.length,totalNotes:u.totalNotes,totalEfforts:u.totalEfforts,totalEquipment:u.totalEquipment,totalBlocks:u.totalBlocks,skippedUserOwned:u.skippedUserOwned,deleted:u.deleted,addedNotes:u.addedNotes,updatedNotes:u.updatedNotes,...r===void 0?{}:{recordId:r},...i===void 0?{}:{completedRecords:i},...a===void 0?{}:{totalRecords:a}});for(let n=0;n<c.length;){let r=c.slice(n,n+(c[n]?.id===`canvas`?1:4));for(let n of r){let r,o=t.notebooks?.find(e=>e.notebookId===n.id),s=n.records,c=!!(a.chunks[n.id]&&e.granularRecords&&(o?.indexPath||n.records));if(c||e.granularRecords&&n.records&&n.records.length>0){if(c&&o?.indexPath&&(s=vb(await this.source.fetchChunk(o.indexPath)).records),s&&s.length>0){let t=!e.forceAll&&this.storage.getNoteCommits?await this.storage.getNoteCommits(s.map(e=>e.uuid)):void 0,i=t?s.filter(e=>t.get(e.uuid)!==e.commit):s;if(c&&i.length>s.length/2){if(d(`fetching`,n.id),r=yb(await this.source.fetchChunk(n.path)),r.length!==n.count)throw Error(`Seed chunk count mismatch`)}else{let e=[],t=0;for(let r of i){d(`fetching`,n.id,r.uuid,t,i.length);let a=await this.source.fetchChunk(r.recordPath),o=Array.isArray(a)?yb(a):[bb(a)];e.push(...o),t++}r=e}}else if(d(`fetching`,n.id),r=yb(await this.source.fetchChunk(n.path)),r.length!==n.count)throw Error(`Seed chunk count mismatch`)}else if(d(`fetching`,n.id),r=yb(await this.source.fetchChunk(n.path)),r.length!==n.count)throw Error(`Seed chunk count mismatch`);let l=s&&s.length>0?s.map(e=>e.uuid):await Promise.all(r.map(e=>xb(e.path))),f={...a,seedVersion:t.version,builtAt:t.builtAt,chunks:{...a.chunks,[n.id]:{sha256:n.sha256,version:o?.version,builtAt:o?.builtAt??t.builtAt,importedAt:this.now(),noteIds:l}},importedAt:this.now()};d(`applying`,n.id);let p=await this.storage.applyChunk({chunkId:n.id,rows:r,manifest:t,expectedMeta:i,meta:f});u.totalNotes+=p.totalNotes,u.totalEfforts+=p.totalEfforts,u.totalEquipment+=p.totalEquipment,u.totalBlocks+=p.totalBlocks,u.skippedUserOwned+=p.skippedUserOwned,u.deleted+=p.deleted,u.addedNotes+=p.addedNotes,u.updatedNotes+=p.updatedNotes,u.appliedChunks++,a=f,i=f,d(`committed`,n.id),n.id===`canvas`&&e.onFirstPaintApplied?.()}n+=r.length}for(let e of l){let n={...a.chunks};delete n[e];let r={...a,chunks:n,importedAt:this.now()},o=await this.storage.applyChunk({chunkId:e,rows:[],manifest:t,expectedMeta:i,meta:r});u.deleted+=o.deleted,a=r,i=r}let f={...a,schema:9,seedVersion:t.version,builtAt:t.builtAt,importedAt:this.now()};return await this.storage.applyChunk({chunkId:null,rows:[],manifest:t,expectedMeta:i,meta:f}),d(`finalizing`,null),u}},XM=45e3;function ZM(e){return(e instanceof Error?e.message:String(e)).replace(/(authToken["'=:\s]+)[^&\s,"']+/gi,`$1…`).replace(/(Bearer\s+)[\w.-]+/gi,`$1…`).replace(/https?:\/\/[^\s]+/gi,e=>{try{let t=new URL(e);return`${t.protocol}//${t.host}/…`}catch{return`…`}}).slice(0,300)}function QM(e,t,n){let r=e?.claim;return!!r&&r.owner!==t&&n-r.at<45e3}async function $M(e,t,n={}){let{storage:r,owner:i}=t,a=t.now,o=ky(e.id),s={outcome:`current`,error:null,manifestChecked:!1,hadCheckpoint:!1};try{let c=await r.getSeedMeta(o);if(s.hadCheckpoint=(c?.seedVersion??0)>0,!t.force&&!t.probeManifests&&yte(c,e.embeddedVersion))return s.outcome=`current`,s;if(QM(c,i,a()))return s.outcome=`busy`,s;let l=_b(await e.source.fetchManifest());s.manifestChecked=!0;let u=t.force?`import`:vte(c?.seedVersion,l.version);if(u===`server-stale`)return s.outcome=`server-stale`,s;if(c&&c.schema!==9)throw Error(`Incompatible seed checkpoint; recreate storage`);if(t.background&&!e.autoSyncOn)return s.outcome=l.chunks.filter(t=>!(e.notebookIds!==void 0&&e.notebookIds!==null&&(e.notebookIds.length===0||!e.notebookIds.includes(t.id)&&t.id!==`efforts`&&t.id!==`equipment`))).some(e=>{let t=l.notebooks?.find(t=>t.notebookId===e.id),n=c?.chunks[e.id];return!n||t&&(t.version??0)>(n.version??0)?!0:n.sha256!==e.sha256})?`update-pending`:`current`,s;if(!t.force&&u===`current`&&c?.schema===9&&c.builtAt===l.builtAt)return s.outcome=`current`,s;let d={...c??jy(o),...e.tier?{tier:e.tier}:{},claim:{owner:i,at:a()}};await r.putSeedMeta(d,c??null);try{let i=await new YM(r,e.source,e.id,a).applyAll({forceAll:t.force===!0,onFirstPaintApplied:()=>n.onFirstPaint?.(),onProgress:n.onProgress,notebookIds:e.notebookIds,granularRecords:e.granularRecords,manifest:l,stored:d});s.outcome=`imported`,i.status===`imported`&&(s.applied=!0,s.importedVersion=l.version,s.added=i.addedNotes,s.updated=i.updatedNotes)}finally{let e=await r.getSeedMeta(o);e?.claim?.owner===i&&await r.putSeedMeta({...e,claim:null},e)}return s}catch(t){return console.warn(`[feedSync] ${e.id} seed sync failed`,t),s.outcome=`error`,s.error=ZM(t),s}}function eN(){try{return typeof localStorage<`u`&&localStorage.getItem(`wodwiki.seedImport.enabled`)!==`0`}catch{return!1}}function tN(){let e=new Set(lA()),t=eA($k);return[{id:`core`,label:`Core`,source:new yM(t),url:t,embeddedVersion:xM.core??0},...pA.map(e=>({id:e.id,label:e.label,source:new yM(e.url),url:e.url,...e.repositoryUrl?{repositoryUrl:e.repositoryUrl}:{},embeddedVersion:0,autoImport:e.autoImport??!1,tier:e.tier,...e.description?{description:e.description}:{}})),...nA().map(e=>({id:e.id,label:e.label,source:new yM(e.url),url:e.url,repositoryUrl:e.repositoryUrl,embeddedVersion:xM[e.id]??0,autoImport:!1}))].filter(t=>!e.has(t.id))}function nN(e){try{if(typeof BroadcastChannel<`u`){let t=new BroadcastChannel(Dy);t.postMessage(e),t.close()}}catch{}}async function rN(){lk(),await zj().catch(()=>{});let e=RO();e.isInitialized()&&await NO(e);let t=JM();t.isInitialized()&&await UM(t)}function iN(e){return e.includes(`error`)?`error`:e.includes(`imported`)?`imported`:e.includes(`update-pending`)?`update-pending`:e.includes(`server-stale`)?`server-stale`:e.includes(`busy`)?`busy`:`current`}function aN(e,t,n,r){let i=n.now??Date.now,a=n.broadcast??nN,o=n.reportActivity!==!1;if(t.manifestChecked&&_N(e.id,i()),t.outcome===`error`){let i=t.error??`feed sync failed`;n.mode===`background`&&r?.set(e.id,{sourceId:e.id,label:e.label,state:`error`}),o&&$x(i);return}t.outcome===`imported`&&t.applied&&(a({kind:`seed-imported`,source:e.id,version:t.importedVersion}),rN(),o&&Zx({source:e.label,added:t.added??0,updated:t.updated??0}),r&&t.hadCheckpoint&&r.set(e.id,{sourceId:e.id,label:e.label,state:`updated`})),r&&t.outcome===`update-pending`&&r.set(e.id,{sourceId:e.id,label:e.label,state:`pending`})}function oN(){return typeof Worker<`u`&&!1}async function sN(e,t,n){return await new Promise(r=>{let i;try{i=new Worker(new URL(`/assets/feedSync.worker-ftP9nOAl.js`,``+import.meta.url),{type:`module`})}catch(e){console.warn(`[feedSync] seed worker unavailable; running on main thread`,e),r(null);return}let a=t.mode===`background`?new Map:void 0,o=[],s=e.length,c=!1,l=e=>{Qx(null),i.terminate(),r(e)};i.onerror=e=>{console.warn(`[feedSync] feed worker failed`,e.message??`unknown error`),l(c?iN(o):null)},i.onmessage=n=>{c=!0;let r=n.data;if(r.type===`progress`){let n=e.find(e=>e.id===r.sourceId);Qx({sourceId:r.sourceId,sourceLabel:n?.label??r.sourceId,chunkId:r.progress.chunkId,recordId:r.progress.recordId,completedRecords:r.progress.completedRecords,totalRecords:r.progress.totalRecords,completedChunks:r.progress.completedChunks,totalChunks:r.progress.totalChunks,phase:r.progress.phase}),t.onProgress?.({...r.progress,sourceId:r.sourceId,sourceLabel:n?.label??r.sourceId,sourceIndex:e.indexOf(n)+1,totalSources:s});return}if(r.type===`first-paint`){rN(),t.onFirstPaint?.();return}if(r.type===`source-result`){let n=e.findIndex(e=>e.id===r.sourceId),i=e[n];if(!i)return;o.push(r.result.outcome),aN(i,r.result,t,a),t.onProgress?.({phase:`finished`,outcome:r.result.outcome,error:r.result.error,sourceId:i.id,sourceLabel:i.label,sourceIndex:n+1,totalSources:s});return}a&&pN([...a.values()]),l(iN(r.outcomes.length?r.outcomes:o))},i.postMessage({type:`run`,dbName:hk(),userId:Ck.currentSync()?.id??null,owner:n,force:t.force,probeManifests:t.probeManifests,background:t.mode===`background`,sources:e.map(e=>({id:e.id,label:e.label,url:eA(e.url),...e.tier?{tier:e.tier}:{},embeddedVersion:e.embeddedVersion,autoSyncOn:zM(e.id),notebookIds:t.notebookIds===void 0?jM(e.id)===`partial`?IM(e.id)??void 0:t.mode===`background`&&jM(e.id)===`unsubscribed`?[]:void 0:t.notebookIds??void 0,granularRecords:!0}))})})}var cN=null,lN=0,uN=new Set;function dN(){return cN}function fN(e){return uN.add(e),()=>{uN.delete(e)}}function pN(e){cN=e.length?{id:++lN,updates:e}:null;for(let e of uN)e()}function mN(e){cN?.updates.some(t=>t.sourceId===e)&&pN(cN.updates.filter(t=>t.sourceId!==e))}var hN=`wodwiki.seedChecks`;function gN(){try{let e=JSON.parse(localStorage.getItem(hN)??`null`);return!e||typeof e!=`object`||Array.isArray(e)?{}:Object.fromEntries(Object.entries(e).filter(e=>typeof e[1]==`number`))}catch{return{}}}function _N(e,t){try{localStorage.setItem(hN,JSON.stringify({...gN(),[e]:t}))}catch{}}function vN(e){return gN()[e]??null}async function yN(e={}){let t=[],n=e.storage??bM(),r=e.mode===`background`?new Map:void 0;if(!(e.isEnabled??eN)())return`disabled`;let i=e.owner??`seed-${(e.now??Date.now)()}-${Math.random().toString(36).slice(2,8)}`,a=e.sources??tN();if(!e.storage&&!e.now&&oN()){let t=await sN(a,e,i);if(t)return t}for(let[o,s]of a.entries()){let c=await xN(s,e,n,i,o+1,a.length,r);console.debug(`[feedSync] ${s.id} outcome: ${c}`),t.push(c)}return r&&pN([...r.values()]),iN(t)}async function bN(e={}){let t=e.sources??tN(),n=e.storage??bM();await NN({storage:n}).catch(e=>console.warn(`[feedSync] core registry migration failed`,e));let r;try{r=await n.getSeedMeta(ky(`core`))}catch(e){return console.warn(`[feedSync] boot provider probe failed`,e),`error`}if(!r||r.seedVersion<=0)return yN({...e,sources:t.filter(e=>e.autoImport!==!1)});let i=t.filter(e=>e.id===`core`||jM(e.id)!==`unsubscribed`);return yN({...e,sources:i,probeManifests:!0,mode:`background`,reportActivity:!1})}async function xN(e,t,n,r,i,a,o){let s=t.now??Date.now,c=t.onProgress,l=t.reportActivity!==!1,u=(t,n=null)=>c?.({phase:`finished`,outcome:t,error:n,sourceId:e.id,sourceLabel:e.label,sourceIndex:i,totalSources:a});c?.({phase:`checking`,sourceId:e.id,sourceLabel:e.label,sourceIndex:i,totalSources:a});let d=l?Xx(`download`,e.label):()=>{};try{let l=await $M({id:e.id,label:e.label,source:e.source,embeddedVersion:e.embeddedVersion,autoSyncOn:zM(e.id),...e.tier?{tier:e.tier}:{},notebookIds:t.notebookIds===void 0?jM(e.id)===`partial`?IM(e.id)??void 0:t.mode===`background`&&jM(e.id)===`unsubscribed`?[]:void 0:t.notebookIds??void 0,granularRecords:!0},{storage:n,owner:r,now:s,force:t.force,probeManifests:t.probeManifests,background:t.mode===`background`},{onProgress:t=>{Qx({sourceId:e.id,sourceLabel:e.label,chunkId:t.chunkId,recordId:t.recordId,completedRecords:t.completedRecords,totalRecords:t.totalRecords,completedChunks:t.completedChunks,totalChunks:t.totalChunks,phase:t.phase}),c?.({...t,sourceId:e.id,sourceLabel:e.label,sourceIndex:i,totalSources:a})},onFirstPaint:()=>{lk(),t.onFirstPaint?.()}});return aN(e,l,t,o),u(l.outcome,l.error),l.outcome}finally{Qx(null),d()}}async function SN(e,t={}){let n=(t.sources??tN()).find(t=>t.id===e);if(!n)return console.warn(`[feedSync] unknown feed source: ${e}`),`error`;let r=await yN({...t,sources:[n]});return(r===`imported`||r===`current`)&&(t.subscribe===!1?MM(e)||NM(e,!1):!t.preserveSubscriptionState&&!t.notebookIds&&NM(e,!0),mN(e)),r}async function CN(e,t,n={}){return SN(e,{...n,notebookIds:[t],preserveSubscriptionState:!0,force:!0})}async function wN(e,t,n,r={}){if(n)return FM(e,t,!0),{outcome:await CN(e,t,r)};{FM(e,t,!1);let n=r.storage??bM(),i=await n.getSeedMeta(ky(e));if(!i||!i.chunks[t])return{deleted:0};let a={...i.chunks};if(delete a[t],Object.keys(a).length===0){let t=await n.removeSourceContent(i);lk();let r=RO();r.isInitialized()&&await NO(r);let a=JM();return a.isInitialized()&&await UM(a),nN({kind:`seed-removed`,source:e}),{deleted:t}}let o={...i,chunks:a,importedAt:Date.now()},s={schema:9,version:i.seedVersion,builtAt:i.builtAt,chunks:[]},c=await n.applyChunk({chunkId:t,rows:[],manifest:s,expectedMeta:i,meta:o});lk();let l=RO();l.isInitialized()&&await NO(l);let u=JM();return u.isInitialized()&&await UM(u),nN({kind:`seed-removed`,source:e}),{deleted:c.deleted}}}async function TN(e,t={}){if(e===`core`)return{deleted:0};let n=t.storage??bM(),r=await n.getSeedMeta(ky(e)),i=r?await n.removeSourceContent(r):0;NM(e,!1),BM(e,!1),mN(e),lk();let a=RO();a.isInitialized()&&await NO(a);let o=JM();return o.isInitialized()&&await UM(o),nN({kind:`seed-removed`,source:e}),{deleted:i}}async function EN(e,t={}){if(e===`core`)return{deleted:0};let n=await TN(e,t);return nA().some(t=>t.id===e)?aA(e):cA(e),n}async function DN(e={}){let t=e.storage??bM(),n=!1,r=!1;return await Promise.all((e.sources??tN()).map(async e=>{try{let i=await t.getSeedMeta(ky(e.id));if(!i||i.seedVersion<=0)return;e.autoImport===!1?r=!0:n=!0}catch{}})),{coreImported:n,libraryImported:r}}async function ON(e={}){let t=e.storage??bM();return{sources:await Promise.all((e.sources??tN()).map(async n=>{let r=await t.getSeedMeta(ky(n.id)),i=null,a=null,o=null,s=n.repositoryUrl;try{o=_b(await n.source.fetchManifest()),i={version:o.version,schema:o.schema,builtAt:o.builtAt},s??=Qk(o.repositoryUrl??``)??void 0,_N(n.id,(e.now??Date.now)())}catch(e){a=e instanceof Error?e.message:String(e)}let c=kN(n.id,o,r);return{id:n.id,label:n.label,url:n.url,...s?{repositoryUrl:s}:{},...n.description?{description:n.description}:{},autoImport:n.autoImport!==!1,notebooks:c,stored:r?{version:r.seedVersion,schema:r.schema,builtAt:r.builtAt,importedAt:r.importedAt}:null,remote:i,remoteError:a,upToDate:r!=null&&i!=null&&r.schema===9&&r.seedVersion===i.version,count:c.reduce((e,t)=>e+t.count,0),bytes:c.reduce((e,t)=>e+t.bytes,0),checkedAt:vN(n.id),subscribed:MM(n.id),autoSync:zM(n.id)}}))}}function kN(e,t,n){let r={};for(let t of SA(e))r[t.chunkId]=t;let i=(t?.chunks??[]).map(t=>({id:r[t.id]?.id??t.id,label:r[t.id]?.label??t.id,chunkId:t.id,count:t.count,bytes:t.bytes,imported:!!n?.chunks[t.id],subscribed:PM(e,t.id)}));return i.length>0?i:SA(e).map(t=>({id:t.id,label:t.label,chunkId:t.chunkId,count:0,bytes:0,imported:!!n?.chunks[t.chunkId],subscribed:PM(e,t.chunkId)}))}async function AN(e={}){let t=e.storage??bM(),n=0;for(let e of pA){let r=ky(e.id);try{let i=await t.getSeedMeta(r);if(i&&i.seedVersion>0)continue;let a=[];for(let n of SA(e.id)){if(n.id===e.id)continue;let r=await t.getSeedMeta(ky(n.id));r&&r.seedVersion>0&&a.push(r)}if(a.length===0)continue;let o=a.reduce((e,t)=>t.seedVersion>e.seedVersion?t:e),s=a.find(e=>e.tier)?.tier,c={key:r,schema:o.schema,seedVersion:o.seedVersion,builtAt:o.builtAt,importedAt:Math.max(...a.map(e=>e.importedAt)),chunks:Object.assign({},...a.map(e=>e.chunks)),...s?{tier:s}:{},claim:null};await t.putSeedMeta(c,i??null);for(let e of a)await t.putSeedMeta({...e,seedVersion:0,chunks:{},claim:null},e);n+=1}catch(t){console.warn(`[feedSync] legacy checkpoint adoption failed for ${e.id}`,t)}}return n}async function jN(e={}){return await(e.storage??bM()).backfillFeedProvenance()}async function MN(e={}){return await(e.storage??bM()).migrateNotebookVocabulary()}async function NN(e={}){let t=e.storage??bM(),n=ky(`seed-core`),r=await t.getSeedMeta(n),i=r?.chunks??{};if(!r||r.seedVersion<=0&&Object.keys(i).length===0&&!r.claim)return!1;let a=ky(`core`),o=await t.getSeedMeta(a),s={...o?.chunks};for(let[e,t]of Object.entries(i)){let n=s[e];s[e]=n?{sha256:n.sha256,noteIds:[...new Set([...n.noteIds??[],...t.noteIds??[]])]}:{...t,noteIds:t.noteIds??[]}}let c=o?{...o,builtAt:``,claim:null,chunks:s}:{...jy(a),chunks:s};return await t.putSeedMeta(c,o??null),await t.putSeedMeta(jy(n),r),!0}var PN=(0,W.createContext)(null);function FN({children:e}){let[{isReady:t,error:n,revision:r},i]=(0,W.useState)({isReady:!1,error:null,revision:0}),a=RO(),o=(0,W.useCallback)(async()=>{try{await NO(a),i(e=>({isReady:!0,error:null,revision:e.revision+1}))}catch(e){i(t=>({...t,isReady:!1,error:e instanceof Error?e:Error(String(e))}))}},[a]),s=(0,W.useCallback)(async()=>{await o()},[o]);return(0,W.useEffect)(()=>{o()},[o]),(0,W.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(Dy);return e.onmessage=()=>{s()},()=>e.close()},[s]),(0,G.jsx)(PN.Provider,{value:{registry:a,isReady:t,error:n,revision:r,refresh:s},children:e})}function IN(){let e=(0,W.useContext)(PN);if(!e)throw Error(`useEffortRegistry must be within EffortRegistryProvider`);return e}var LN=(0,W.createContext)(null);function RN({children:e}){let[t,n]=(0,W.useState)(!1),[r,i]=(0,W.useState)(null),a=JM(),o=(0,W.useCallback)(async()=>{try{await UM(a),n(!0),i(null)}catch(e){i(e instanceof Error?e:Error(String(e))),n(!1)}},[a]),s=(0,W.useCallback)(async()=>{n(!1),await o()},[o]);return(0,W.useEffect)(()=>{o()},[o]),(0,W.useEffect)(()=>{if(typeof BroadcastChannel>`u`)return;let e=new BroadcastChannel(Dy);return e.onmessage=()=>{s()},()=>e.close()},[s]),(0,G.jsx)(LN.Provider,{value:{registry:a,isReady:t,error:r,refresh:s},children:e})}function zN(){let e=(0,W.useContext)(LN);if(!e)throw Error(`useEquipmentRegistry must be within EquipmentRegistryProvider`);return e}var BN=mt,VN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(p,{ref:n,className:K(`pointer-events-none fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]`,e),...t}));VN.displayName=p.displayName;var HN=R(`group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full`,{variants:{variant:{default:`border bg-background text-foreground`,destructive:`destructive group border-destructive bg-destructive text-destructive-foreground`}},defaultVariants:{variant:`default`}}),UN=W.forwardRef(({className:e,variant:t,...n},r)=>(0,G.jsx)(ar,{ref:r,className:K(HN({variant:t}),e),...n}));UN.displayName=ar.displayName;var WN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(it,{ref:n,className:K(`inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive`,e),...t}));WN.displayName=it.displayName;var GN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xn,{ref:n,className:K(`absolute right-2 top-2 rounded-md p-1 text-muted-foreground opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-destructive-foreground group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive group-[.destructive]:focus:ring-offset-background`,e),"toast-close":``,"aria-label":`Dismiss notification`,...t,children:(0,G.jsx)(_r,{className:`h-4 w-4`})}));GN.displayName=Xn.displayName;var KN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ee,{ref:n,className:K(`text-sm font-semibold`,e),...t}));KN.displayName=Ee.displayName;var qN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(lr,{ref:n,className:K(`text-sm opacity-90`,e),...t}));qN.displayName=lr.displayName;var JN=3,YN=1e6,XN=0;function ZN(){return XN=(XN+1)%(2**53-1),XN.toString()}var QN=new Map,$N=e=>{if(QN.has(e))return;let t=setTimeout(()=>{QN.delete(e),rP({type:`REMOVE_TOAST`,toastId:e})},YN);QN.set(e,t)},eP=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,JN)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?$N(n):e.toasts.forEach(e=>$N(e.id)),{...e,toasts:e.toasts.map(e=>!n||e.id===n?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},tP=[],nP={toasts:[]};function rP(e){nP=eP(nP,e),tP.forEach(e=>e(nP))}function Q(e){let t=ZN(),n=()=>rP({type:`DISMISS_TOAST`,toastId:t}),r=e=>rP({type:`UPDATE_TOAST`,toast:{...e,id:t}});return rP({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||n()}}}),{id:t,dismiss:n,update:r}}function iP(){let[e,t]=W.useState(nP);return W.useEffect(()=>(tP.push(t),()=>{let e=tP.indexOf(t);e>-1&&tP.splice(e,1)}),[e]),{...e,toast:Q,dismiss:e=>rP({type:`DISMISS_TOAST`,toastId:e})}}function aP(){let{toasts:e}=iP();return(0,G.jsxs)(BN,{children:[e.map(function({id:e,title:t,description:n,action:r,...i}){return(0,G.jsxs)(UN,{...i,children:[(0,G.jsxs)(`div`,{className:`grid gap-1`,children:[t&&(0,G.jsx)(KN,{children:t}),n&&(0,G.jsx)(qN,{children:n})]}),r,(0,G.jsx)(GN,{})]},e)}),(0,G.jsx)(VN,{})]})}var oP={activeL1Id:null,activeL2Id:null,activeL3Id:null,leftDrawerOpen:!1,rightDrawerOpen:!1,expandedIds:new Set,journalFilter:{selectedDate:null,selectedTags:[]},searchFilter:{scope:`all`}};function sP(e,t){switch(t.type){case`SET_ACTIVE_L1`:return e.activeL1Id===t.id?e:{...e,activeL1Id:t.id};case`SET_ACTIVE_L2`:return e.activeL2Id===t.id?e:{...e,activeL2Id:t.id};case`SET_ACTIVE_L3`:return e.activeL3Id===t.id?e:{...e,activeL3Id:t.id};case`SET_LEFT_DRAWER`:return e.leftDrawerOpen===t.open?e:{...e,leftDrawerOpen:t.open};case`SET_RIGHT_DRAWER`:return e.rightDrawerOpen===t.open?e:{...e,rightDrawerOpen:t.open};case`TOGGLE_EXPANDED`:{let n=new Set(e.expandedIds);return n.has(t.id)?n.delete(t.id):n.add(t.id),{...e,expandedIds:n}}case`SET_JOURNAL_DATE`:return{...e,journalFilter:{...e.journalFilter,selectedDate:t.date}};case`SET_JOURNAL_TAGS`:return{...e,journalFilter:{...e.journalFilter,selectedTags:t.tags}};case`SET_SEARCH_SCOPE`:return{...e,searchFilter:{scope:t.scope}};default:return e}}var cP=e=>{let t=document.getElementById(e);if(t){let e=t.getBoundingClientRect().top+window.scrollY-80;window.scrollTo({top:e,behavior:`smooth`})}},lP=(0,W.createContext)({tree:[],navState:oP,dispatch:()=>{},l3Items:[],setL3Items:()=>{},secondarySpec:void 0,setSecondarySpec:()=>{},contextNav:void 0,setContextNav:()=>{},streamControls:null,setStreamControls:()=>{},scrollToSection:cP,registerScrollFn:()=>{},openCreateJournal:()=>{},registerCreateJournal:()=>{}});function uP(){return(0,W.useContext)(lP)}function dP(e){let{tree:t,dispatch:n}=uP();(0,W.useEffect)(()=>{e&&t.some(t=>t.id===e)&&n({type:`SET_ACTIVE_L1`,id:e})},[e,t,n])}function fP({tree:e,children:t}){let[n,r]=(0,W.useReducer)(sP,oP),[i,a]=(0,W.useState)([]),[o,s]=(0,W.useState)(void 0),[c,l]=(0,W.useState)(void 0),[u,d]=(0,W.useState)(null),f=(0,W.useCallback)(e=>{s(t=>t===e?t:e)},[]),p=(0,W.useCallback)(e=>{l(t=>{let n=typeof e==`function`?e(t):e;return t===n||!t&&!n||t&&n&&t.pathname===n.pathname&&t.spec===n.spec?t:n})},[]),m=(0,W.useCallback)(e=>{d(t=>t===e?t:e)},[]),h=wn(),g=(0,W.useRef)(cP),_=(0,W.useRef)(null);(0,W.useEffect)(()=>{let t=e.find(e=>e.isActive?e.isActive(h,n):e.action.type===`route`?e.action.to===`/`?h.pathname===`/`||h.pathname===``:h.pathname.startsWith(e.action.to):!1);r({type:`SET_ACTIVE_L1`,id:t?.id??null})},[h.pathname]),(0,W.useEffect)(()=>{r({type:`SET_LEFT_DRAWER`,open:!1})},[h.pathname]);let v=(0,W.useCallback)(e=>{a(t=>t.length===e.length&&t.every((t,n)=>t.id===e[n]?.id&&t.label===e[n]?.label&&t.secondaryAction?.id===e[n]?.secondaryAction?.id&&t.secondaryRunIcon===e[n]?.secondaryRunIcon)?t:e)},[]),y=(0,W.useCallback)(e=>{r({type:`SET_ACTIVE_L3`,id:e}),g.current(e)},[]),b=(0,W.useCallback)(e=>{g.current=e},[]),x=(0,W.useCallback)(e=>{_.current?.(e)},[]),S=(0,W.useCallback)(e=>{_.current=e},[]),C=(0,W.useMemo)(()=>({tree:e,navState:n,dispatch:r,l3Items:i,setL3Items:v,secondarySpec:o,setSecondarySpec:f,contextNav:c,setContextNav:p,streamControls:u,setStreamControls:m,scrollToSection:y,registerScrollFn:b,openCreateJournal:x,registerCreateJournal:S}),[e,n,i,v,o,f,c,p,u,m,y,b,x,S]);return(0,G.jsx)(lP.Provider,{value:C,children:t})}function pP(e){if(!e)return null;let t=X(e);return t.error?`Couldn't parse "${e}" — ${t.error}`:null}var mP=1e3;function hP(e){let t=(0,W.useRef)(e);t.current=e;let[n,r]=Lt(),i=n.get(`q`)??``,[a,o]=(0,W.useState)(()=>{let{defaultQuery:e,legacy:r}=t.current;return i?X(i).error?r?.salvageQ?.(i,n)??e:i:r?.toQuery(n)??e}),[s,c]=(0,W.useState)(()=>!i||!X(i).error||t.current.legacy?.salvageQ?.(i,n)?null:pP(i)),l=(0,W.useRef)(a);l.current=a;let u=(0,W.useRef)(n);u.current=n;let d=(0,W.useRef)(!1);(0,W.useEffect)(()=>{if(d.current)return;d.current=!0;let{legacy:e}=t.current,n=u.current,i=n.get(`q`)??``,a=null;if(i?X(i).error&&(a=e?.salvageQ?.(i,n)??null):a=e?.toQuery(n)??null,!a)return;let o=new URLSearchParams(n);for(let t of e?.keys??[])o.delete(t);o.set(`q`,a),r(o,{replace:!0})},[r]);let f=(0,W.useRef)(!0),p=(0,W.useRef)(null),m=(0,W.useRef)(i);(0,W.useEffect)(()=>{if(i===m.current)return;m.current=i,f.current=!0,clearTimeout(p.current),p.current=null,c(pP(i));let e=i&&!X(i).error?i:t.current.defaultQuery;o(t=>t===e?t:e)},[i]);let h=(0,W.useRef)(t.current.defaultQuery);return(0,W.useEffect)(()=>{let e=t.current.defaultQuery;e!==h.current&&(h.current=e,!i&&o(t=>t===e?t:e))},[i,t.current.defaultQuery]),(0,W.useEffect)(()=>{let e=()=>{let e=new URLSearchParams(window.location.search).get(`q`)??``;e!==m.current&&(m.current=e,f.current=!0,clearTimeout(p.current),p.current=null,c(pP(e)),o(e&&!X(e).error?e:t.current.defaultQuery))};return window.addEventListener(`popstate`,e),()=>{window.removeEventListener(`popstate`,e),clearTimeout(p.current)}},[]),{query:a,setQuery:(0,W.useCallback)(e=>{if(o(e),!X(e).error&&e!==l.current){let t=new URLSearchParams(u.current);t.set(`q`,e),m.current=e,r(t,{replace:!f.current}),f.current=!1,clearTimeout(p.current),p.current=setTimeout(()=>{f.current=!0,p.current=null},mP)}},[r]),urlQueryError:s}}var gP=[`origin`,`discipline`];function _P(e){return/\s/.test(e)?`text:"${e}"`:`text:${e}`}function vP(e){let t=e.filter(Boolean);return`:effort${t.length?`{${t.join(`,`)}}`:``}`}function yP(e,t){let n=e.trim();if(!n||n.startsWith(`:`)||n.includes(`{`)||n.includes(`}`))return null;let r=t.get(`origin`),i=t.get(`discipline`)?.trim();return vP([_P(n),...r&&r!==`all`?[`origin:${r}`]:[],...i?[`discipline:${i}`]:[]])}function bP(e){if(!gP.some(t=>e.get(t)))return null;let t=e.get(`origin`),n=e.get(`discipline`)?.trim();return vP([...t&&t!==`all`?[`origin:${t}`]:[],...n?[`discipline:${n}`]:[]])}var xP={keys:gP,toQuery:bP,salvageQ:yP};function SP(e){return e.endsWith(`/`)&&e.length>1?e.slice(0,-1):e}function CP(e){let t=[`note`,`session`,`post`,`text`,`timePreset`,`rangeStart`,`rangeEnd`,`s`,`tags`,`mode`];return{keys:t,toQuery(n){if(!t.some(e=>n.has(e)))return null;let r=null;if(n.has(`note`)||n.has(`session`)||n.has(`post`)){let e=[];(n.get(`note`)??`include`)!==`hide`&&e.push(`journal`),(n.get(`session`)??`include`)!==`hide`&&e.push(`notebooks`),e.length===1&&(r=`source:${e[0]}`)}else e&&(r=`source:${e}`);let i=n.get(`timePreset`)??`2w`,a=i===`all`||i===`custom`?null:`last ${i}`,o=n.get(`text`)?.trim(),s=n.get(`tags`)?.trim(),c=o?/\s/.test(o)?`text:"${o}"`:`text:${o}`:null,l=s?`tags:${s}`:null,u=`:note`,d=[c,l].filter(Boolean);r===`source:journal`?u=`:journal`:r===`source:notebooks`?u=`:notebooks`:r===`source:playground`?u=`:playground`:r&&d.unshift(r);let f=d.length?`{${d.join(`,`)}}`:``;return[`${u}${f}`,a].filter(Boolean).join(` `)}}}var wP={route:`/journal`,title:`Journal`,defaultWql:`:note{notebook:journal} by {date} last 4w`,level:`note`,target:`note`,scopeOptions:[`journal`],calendarCapable:!0,legacy:CP(`journal`)},TP={route:`/notebooks`,title:`Notebooks`,defaultWql:`:notebook{subscribed:true} by {feed}`,level:`session`,target:`note`,scopeOptions:[`notebooks`],shelfVisible:!1,feedNotice:!0,legacy:CP(`notebooks`)},EP={route:`/notes`,title:`Notes`,defaultWql:`:note{notebook:*}`,level:`note`,target:`note`,scopeOptions:[`journal`,`notebooks`],emptyMessage:`No note entries match your search.`,calendarCapable:!0,legacy:CP(`notebooks`)},DP={route:`/feeds`,title:`Feeds`,defaultWql:`:notebook{source:notebooks}`,level:`session`,target:`notebook`,scopeOptions:[`notebooks`],shelfVisible:!1,defaultLayout:`cards`,emptyMessage:`No feeds match your search.`,feedNotice:!0,legacy:CP(`notebooks`)},OP={route:`/pages`,title:`Pages`,defaultWql:`:page{}`,level:`note`,target:`page`,scopeOptions:[],emptyMessage:`No pages match your search.`},kP={route:`/efforts`,title:`Efforts`,defaultWql:`:effort`,level:`effort`,target:`effort`,scopeOptions:[],emptyMessage:`No efforts match your search.`,legacy:xP},AP={route:`/equipment`,title:`Equipment`,defaultWql:`:equipment{}`,level:`note`,target:`equipment`,scopeOptions:[`equipment`],emptyMessage:`No equipment matches your search.`},jP={route:`/tags`,title:`Tags`,defaultWql:`:tag{}`,level:`note`,target:`tag`,scopeOptions:[],emptyMessage:`No tags match your search.`},MP={route:`/sessions`,title:`Sessions`,defaultWql:`:session{}`,level:`result`,target:`session`,scopeOptions:[],emptyMessage:`No completed session results recorded in this period.`,calendarCapable:!0},NP={route:`/playgrounds`,title:`Playgrounds`,defaultWql:`:playground{} by {date} last 1w`,level:`note`,target:`note`,scopeOptions:[`playground`],shelfVisible:!0,legacy:CP(`playground`)};function PP(e){return{route:`/session/${e}`,defaultWql:`:session{} from ${e} to ${e}`,level:`result`,target:`session`,scopeOptions:[],emptyMessage:`No session results recorded on ${e}.`}}function FP(e){return{route:`/results/${e}`,defaultWql:`:session{result:${e}, plane:segment}`,level:`segment`,target:`session`,scopeOptions:[],defaultLayout:`rows`,dashboardEnabled:!0,emptyMessage:`No segment records found for result ${e}.`}}function IP(e){let t=wA(e);return{route:`/notebook/${e}`,title:VO(t),defaultWql:`:note{notebook:${t}} by {date}`,level:`session`,target:`note`,scopeOptions:[`notebooks`],shelfVisible:!1,defaultLayout:`cards`,calendarCapable:!0,notebookSlug:t,legacy:CP(`notebooks`)}}var LP={"/journal":wP,"/notebooks":TP,"/notes":EP,"/feeds":DP,"/pages":OP,"/efforts":kP,"/equipment":AP,"/tags":jP,"/sessions":MP,"/playgrounds":NP};function RP(e){let t=SP(e),n=LP[t];if(n)return n;if(t.startsWith(`/results/`)){let e=t.slice(9);if(e)return FP(e)}if(t.startsWith(`/session/`)){let e=t.slice(9);if(e)return PP(e)}if(t.startsWith(`/notebook/`)){let e=t.slice(10);if(e&&!e.includes(`/`))return IP(e)}}function zP(e){return RP(e)??wP}function BP(e){let t=LP[SP(e)]?.title;if(t)return t;if(SP(e).startsWith(`/notebook/`)){let t=SP(e).slice(10);if(t&&!t.includes(`/`))return VO(t)}}function VP(e){let t=SP(e);if(LP[t])return!0;if(t.startsWith(`/results/`)||t.startsWith(`/session/`))return t.slice(9)!==``;if(t.startsWith(`/notebook/`)){let e=t.slice(10);return!!(e&&!e.includes(`/`))}return!1}var $={home:`/`,playgroundRoot:`/playground`,playground:`/playground/:id`,note:`/note/:noteId`,notes:`/notes`,journal:`/journal`,day:`/day/:date`,plan:`/plan`,aiFirst:`/ai-first`,feeds:`/feeds`,feed:`/feed/:slug`,notebooks:`/notebooks`,notebook:`/notebook/:slug`,notebookTarget:`/notebook/:slug/:target`,notebookItem:`/notebook/:slug/:itemDate/:item`,subscribe:`/subscribe`,pages:`/pages`,page:`/page/:slug`,tags:`/tags`,tagCategory:`/t/:type`,tag:`/t/:type/:tag`,sessions:`/sessions`,sessionDetail:`/results/:sessionId`,sessionDate:`/session/:date`,playgrounds:`/playgrounds`,tracker:`/tracker/:runtimeId`,run:`/run/:runtimeId`,load:`/load`,loadJournal:`/load/journal`,loadJournalDate:`/load/journal/:date`,efforts:`/efforts`,effort:`/effort/:slug`,equipment:`/equipment`,equipmentSlug:`/equipment/:slug`,dashboards:`/dashboards`,dashboardView:`/dashboard/:slug`,settings:`/settings`,settingsAppearance:`/settings/appearance`,settingsProfile:`/settings/profile`,settingsStorage:`/settings/storage`,settingsSync:`/settings/sync`,settingsSystem:`/settings/system`,settingsTags:`/settings/tags`,settingsSoundProfiles:`/settings/sound-profiles`,settingsData:`/settings/data`,settingsDatabase:`/settings/database`,settingsQueries:`/settings/queries`};function HP(e){return`/playground/${encodeURIComponent(e)}`}function UP(e){return`/day/${encodeURIComponent(e)}`}function WP(e,t){return`/day/${encodeURIComponent(e)}?autoStart=${encodeURIComponent(t)}`}function GP(e){return`/note/${encodeURIComponent(e)}`}function KP(e){let t=wA(e);return`/notebook/${encodeURIComponent(t)}`}function qP(e,t){return`/notebook/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}function JP(e,t){return`/notebook/${encodeURIComponent(e)}/${t.split(`/`).map(encodeURIComponent).join(`/`)}`}function YP(e){return`/run/${encodeURIComponent(e)}`}function XP({zip:e}){return`/load?zip=${encodeURIComponent(e)}`}function ZP(e){return`/results/${encodeURIComponent(e)}`}function QP(e){return`/page/${encodeURIComponent(e)}`}function $P(){return`/playgrounds`}function eF(){return`/efforts`}function tF(e){return`/equipment/${encodeURIComponent(e)}`}function nF(e){return`/t/${encodeURIComponent(e)}`}function rF(e,t){return`/t/${encodeURIComponent(e)}/${encodeURIComponent(t)}`}function iF(e){let t=new URLSearchParams;e?.q&&t.set(`q`,e.q),e?.weeks&&t.set(`weeks`,String(e.weeks));let n=t.toString();return`/dashboards${n?`?${n}`:``}`}function aF(){return`/dashboards`}function oF(e){return`/dashboard/${encodeURIComponent(e)}`}function sF(e,t,n){let r=new URLSearchParams;if(t)for(let[e,n]of Object.entries(t))r.set(e,n);n?.mode&&r.set(`mode`,n.mode),n?.tab&&r.set(`tab`,n.tab);let i=r.toString();return i?`/effort/${encodeURIComponent(e)}?${i}`:`/effort/${encodeURIComponent(e)}`}function cF(e){return{mode:e.get(`mode`)??void 0,tab:e.get(`tab`)??void 0,q:e.get(`q`)??void 0,origin:e.get(`origin`)??void 0}}function lF(e){return e.startsWith(`/playground/`)}function uF(e){return e===`/efforts`||e.startsWith(`/effort/`)||e===`/t/effort`||e.startsWith(`/t/effort/`)}function dF(e){return e===`/equipment`||e.startsWith(`/equipment/`)||e===`/t/equipment`||e.startsWith(`/t/equipment/`)}function fF(e){let t=e.match(/^\/notebook\/([^/]+)\/([^/]+)\/([^/]+)$/);return t?[t[1],t[2],t[3]]:null}function pF(e){let t=e.match(/^\/feed\/([^/]+)$/);return t?t[1]:null}function mF(e){return Object.entries(e).filter(([e])=>e.startsWith(`markdown/dashboards/`)).map(([e,t])=>{let{meta:n}=Za(t),r=e.split(`/`).pop().replace(/\.md$/,``);return{slug:typeof n.slug==`string`&&n.slug?n.slug:r,title:typeof n.title==`string`&&n.title?n.title:r,rawContent:t}}).sort((e,t)=>e.title.localeCompare(t.title))}function hF(e){return e.map(e=>{let{meta:t}=Za(e.rawContent);if(t.dashboard!==`true`)return null;let n=typeof t.slug==`string`&&t.slug?t.slug:null,r=typeof t.title==`string`&&t.title?t.title:n??e.id;return n?{noteId:e.id,slug:n,title:r,rawContent:e.rawContent}:null}).filter(e=>e!==null)}function gF(e,t){let n=dk(),r=(0,W.useMemo)(()=>n?mF(n):[],[n]),[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(!0);return(0,W.useEffect)(()=>{if(!e){a(null),s(!1);return}let t=!1;return s(!0),tj.listNotes({kind:`dashboard`}).then(n=>{if(t)return;let i=hF(n).find(t=>t.slug===e);if(i)a({slug:e,title:i.title,rawContent:i.rawContent,editable:!0,noteId:i.noteId});else{let t=r.find(t=>t.slug===e);a(t?{slug:t.slug,title:t.title,rawContent:t.rawContent,editable:!1}:null)}}).catch(()=>{t||a(null)}).finally(()=>{t||s(!1)}),()=>{t=!0}},[e,t,r]),{source:i,loading:o}}function _F(){let e=dk(),t=(0,W.useMemo)(()=>e?mF(e):[],[e]),[n,r]=(0,W.useState)([]),[i,a]=(0,W.useState)(!0);return(0,W.useEffect)(()=>{let e=!1;return tj.listNotes({kind:`dashboard`}).then(n=>{if(e)return;let i=hF(n),a=new Set(i.map(e=>e.slug)),o=[...i.map(e=>({slug:e.slug,title:e.title,editable:!0})),...t.filter(e=>!a.has(e.slug)).map(e=>({slug:e.slug,title:e.title,editable:!1}))];e||r(o)}).catch(()=>{e||r(t.map(e=>({slug:e.slug,title:e.title,editable:!1})))}).finally(()=>{e||a(!1)}),()=>{e=!0}},[t]),{items:n,loading:i}}function vF(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function yF(){return vF(new Date)}function bF(e){return e<yF()}function xF(e){let t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let n=Number(t[1]),r=Number(t[2])-1,i=Number(t[3]),a=new Date(n,r,i),o=vF(a);return o===e?{dateKey:o,date:a}:null}function SF(e){let t=xF(e);if(!t)throw Error(`Invalid journal date: ${e}`);return t.date.getTime()}function CF({persistence:e,moveRecordPlacement:t,addRecordPlacement:n,uuid:r=$t}){let i=new Map;return{async create(t){let n=t.journalDate?SF(t.journalDate):Date.now();return e.createNote({id:r(),title:bx(t.title),rawContent:t.rawContent,tags:t.tags??[],targetDate:n,journalDate:t.journalDate||void 0,type:t.type??`journal`,slug:t.slug,sourceId:t.sourceId})},getById(t){return e.getNote({id:t},{projection:`workbench`,resultSelection:{mode:`all-for-note`},includeSections:!0,includeAttachments:!0})},resolve(t){return e.getNote(t,{projection:`workbench`,resultSelection:{mode:`all-for-note`},includeSections:!0,includeAttachments:!0})},async listByDate(t){return SF(t),(await e.listNotes({journalDate:t,kind:`journal`,projection:`summary`})).sort((e,t)=>e.createdAt-t.createdAt||e.id.localeCompare(t.id))},update(t,n,r){let a=t.id,o=bx(n.match(/^#\s+(.+)$/m)?.[1]?.trim()),s=t.sourceRevision;if(s===void 0)return Promise.reject(Error(`Loaded Note source revision is required`));let c=0;for(;c<t.rawContent.length&&c<n.length&&t.rawContent[c]===n[c];)c++;let l=t.rawContent.length,u=n.length;for(;l>c&&u>c&&t.rawContent[l-1]===n[u-1];)l--,u--;let d=Fa(t.blocks??{},r?.changes??[{from:c,to:l,insert:n.slice(c,u)}]);for(let e of r?.retainedBlocks??[]){let n=Object.values(t.blocks??{}).find(t=>t.from===e.from&&t.to===e.to);n&&(d[n.id]={...n,from:e.nextFrom,to:e.nextTo})}let f=Na(n,{sourceRevision:s,registeredWidgets:Ea,blocks:d}),p=async()=>e.mutateNote({id:a},{rawContent:n,blocks:f,expectedSourceRevision:s,metadata:o?{title:o}:void 0}),m=(i.get(a)??Promise.resolve()).then(p,p);i.set(a,m);let h=()=>{i.get(a)===m&&i.delete(a)};return m.then(h,h),m},async moveToDate(r,i){let a=SF(i);if(t&&n){let a=(await e.getNote({id:r},{projection:`summary`})).placements?.find(e=>e.date);return a?t(r,a.pageId,{date:i}):n(r,{date:i})}return e.mutateNote({id:r},{metadata:{journalDate:i,targetDate:a}})},delete(t){return e.deleteNote({id:t})}}}var wF=new Bk,TF=CF({persistence:tj,moveRecordPlacement:(e,t,n)=>wF.moveRecordPlacement(e,t,n),addRecordPlacement:(e,t)=>wF.addRecordPlacement(e,t)});function EF({persistence:e,journal:t}){async function n(n){let r=await e.listNotes({kind:`dashboard`});for(let e of r){if(n&&e.id===n)continue;let{meta:r,body:i}=Za(e.rawContent);if(r.dashboard!==`true`||r[`dashboard.active`]!==`true`)continue;let a={...r};delete a[`dashboard.active`],await t.update(e,`---\n${$a(a)}\n---\n${i}`)}}return{async createDashboard(e=Kv){return await n(),t.create({title:e,rawContent:Jv(e),type:`dashboard`,sourceId:`dashboards`})},async createDashboardFromScope(e){await n();let r=my(e),{meta:i}=Za(r),a=typeof i.title==`string`&&i.title?i.title:Kv;return t.create({title:a,rawContent:r,type:`dashboard`,sourceId:`dashboards`})},async cloneDashboard(e,r,i){await n();let{meta:a,body:o}=Za(r),s={...a,slug:e};i&&(s.title=i);let c=`---\n${$a(s)}\n---\n${o}`;return t.create({title:typeof s.title==`string`?s.title:e,rawContent:c,type:`dashboard`,sourceId:`dashboards`})}}}var DF=EF({persistence:tj,journal:TF}),OF=[{query:`sum:totalVolume{discipline:strength} by {week}`,label:`Weekly strength volume`,question:`Is strength volume rising?`},{query:`avg:tis{effort:thruster} by {week}`,label:`Thruster time-in-motion`,question:`Is time-in-motion improving?`},{query:`sum:totalReps{discipline:strength} by {effort}`,label:`Reps by lift`,question:`Where do the reps go?`},{query:`last:sessionLoad{note:benchmark} by {session}`,label:`Benchmark loads`,question:`Is session load dropping?`},{query:`sum:sessionLoad{} by {intensity, week}`,label:`Polarized weekly load`,question:`Is my intensity 80/20?`},{query:`avg:calc.acwr{} by {day}`,label:`Injury risk (ACWR)`,question:`Am I spiking my workload?`},{query:`count:totalReps{tags:mobility} by {week}`,label:`Mobility habit`,question:`Did I do mobility work?`},{query:`avg:tis{} by {round}`,label:`TIS by round`,question:`Where does the pace fall apart?`},{query:`sum:totalVolume{} by {effort}`,label:`Volume by lift`,question:`Where does the volume go?`},{query:`:note{tags:pr,source:journal}`,label:`Find PR notes`,question:`Which notes are tagged PR?`},{query:`:note{type:wod,source:journal} last 8w`,label:`Recent workouts`,question:`What workouts did I do recently?`},{query:`:note{source:feeds}`,label:`Notebook workouts`,question:`What workouts are in the library?`},{query:`:block{text:fran}`,label:`Find Fran everywhere`,question:`Which blocks mention Fran?`}],kF=(0,W.createContext)(()=>{});function AF({close:e,children:t}){return(0,G.jsx)(kF.Provider,{value:e,children:t})}function jF(){return(0,W.useContext)(kF)}function MF(e,t){if(!e)return!1;if(e===t)return!0;let n=X(e),r=X(t);return!n.error&&!r.error&&mg(n)===mg(r)}function NF(e){let t=wn(),n=ln(),r=jF(),{items:i,loading:a}=_F(),[o,s]=(0,W.useState)(!1),c=async()=>{s(!0);try{let e=await DF.createDashboard(),{meta:t}=Za(e.rawContent),i=typeof t.slug==`string`&&t.slug?t.slug:e.id;n(oF(i)),r()}finally{s(!1)}},l=t.pathname===`/dashboards`,u=l?new URLSearchParams(t.search).get(`q`):null;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-1 px-2 py-3`,"data-testid":`dashboards-nav-panel`,children:[(0,G.jsx)(PF,{label:`Explorer`,active:l,onClick:()=>{n(aF()),r()}}),l?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`mt-1 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/60 px-3`,children:`Examples`}),OF.map(e=>(0,G.jsx)(PF,{label:e.label,title:e.question,active:MF(u,e.query),onClick:()=>{n(iF({q:e.query})),r()}},e.query))]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`mt-1 text-[10px] font-bold uppercase tracking-widest text-muted-foreground/60 px-3`,children:`Dashboards`}),a?(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground/60`,children:`Loading…`}):i.length===0?(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-muted-foreground/60`,children:`No dashboards yet.`}):i.map(e=>(0,G.jsx)(PF,{label:e.title,badge:e.editable?void 0:`prebuilt`,active:t.pathname===`/dashboard/${e.slug}`,onClick:()=>{n(oF(e.slug)),r()}},e.slug)),(0,G.jsxs)(`button`,{type:`button`,onClick:c,disabled:o,"data-testid":`dashboards-nav-new`,className:`mt-2 flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-muted-foreground hover:bg-muted hover:text-foreground transition-colors disabled:opacity-50`,children:[(0,G.jsx)(Qn,{className:`size-3.5`}),`New dashboard`]})]})]})}function PF({label:e,active:t,onClick:n,badge:r,title:i}){return(0,G.jsxs)(`button`,{type:`button`,onClick:n,title:i,className:K(`flex items-center gap-2 rounded-lg px-3 py-2 text-sm font-medium text-left transition-colors`,t?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,G.jsx)(`span`,{className:K(`size-2 rounded-full shrink-0`,t?`bg-primary`:`bg-border`)}),(0,G.jsx)(`span`,{className:`truncate`,children:e}),r&&(0,G.jsx)(`span`,{className:`ml-auto text-[9px] font-bold uppercase tracking-wide text-muted-foreground/50 shrink-0`,children:r})]})}function FF({children:e}){return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`absolute left-1/2 top-1/2 size-[max(100%,2.75rem)] -translate-x-1/2 -translate-y-1/2 pointer-events-auto`,"aria-hidden":`true`}),e]})}var IF=(0,W.forwardRef)(function(e,t){return(0,G.jsx)(mn,{children:(0,G.jsx)(rn,{...e,to:e.href,ref:t})})});function LF({className:e,...t}){return(0,G.jsx)(`nav`,{...t,className:ut(e,`flex h-full min-h-0 flex-col`)})}function RF({className:e,...t}){return(0,G.jsx)(`div`,{...t,className:ut(e,`flex flex-col border-b border-zinc-950/5 p-4 dark:border-white/5 [&>[data-slot=section]+[data-slot=section]]:mt-2.5`)})}function zF({className:e,...t}){return(0,G.jsx)(`div`,{...t,className:ut(e,`flex flex-1 flex-col overflow-y-auto p-4 [&>[data-slot=section]+[data-slot=section]]:mt-8`)})}function BF({className:e,...t}){let n=(0,W.useId)();return(0,G.jsx)(tee,{id:n,children:(0,G.jsx)(`div`,{...t,"data-slot":`section`,className:ut(e,`flex flex-col gap-0.5`)})})}function VF({className:e,...t}){return(0,G.jsx)(`h3`,{...t,className:ut(e,`mb-1 px-2 text-xs/6 font-medium text-muted-foreground`)})}var HF=(0,W.forwardRef)(function({current:e,className:t,children:n,...r},i){let a=ut(`group flex w-full items-center gap-3 rounded-xl px-2 py-2.5 text-left text-base/6 font-medium text-foreground sm:py-2 sm:text-sm/5 transition-all duration-200`,`[&>[data-slot=icon]]:size-6 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:text-muted-foreground sm:[&>[data-slot=icon]]:size-5 [&>[data-slot=icon]]:transition-colors`,`[&>[data-slot=icon]:last-child]:ml-auto [&>[data-slot=icon]:last-child]:size-5 sm:[&>[data-slot=icon]:last-child]:size-4`,`[&>[data-slot=avatar]]:-m-0.5 [&>[data-slot=avatar]]:size-7 sm:[&>[data-slot=avatar]]:size-6`,`data-[hover]:bg-primary/10 data-[hover]:text-primary data-[hover]:[&>[data-slot=icon]]:text-primary`,`data-[active]:bg-primary/15 data-[active]:scale-[0.98]`,`data-[current]:bg-primary/10 data-[current]:text-primary data-[current]:[&>[data-slot=icon]]:text-primary font-bold`);return(0,G.jsxs)(`span`,{className:ut(t,`relative`),children:[e&&(0,G.jsx)(Vt.span,{layoutId:`current-indicator`,className:`absolute inset-y-2 -left-4 w-1 rounded-full bg-primary shadow-[0_0_8px_rgba(129,140,248,0.5)]`}),typeof r.href==`string`?(0,G.jsx)(Nn,{as:IF,...r,className:a,"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(FF,{children:n})}):(0,G.jsx)(qt,{...r,className:ut(`cursor-default`,a),"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(FF,{children:n})})]})});function UF({className:e,...t}){return(0,G.jsx)(`span`,{...t,className:ut(e,`truncate`)})}function WF(e){return e.replace(/(^|[{,\s!])catalog:("[^"]*"|[\w][\w/-]*)/g,`$1notebook:$2`)}var GF=[{id:`date`,label:`Date`},{id:`week`,label:`Week`},{id:`month`,label:`Month`},{id:`year`,label:`Year`},{id:`tag`,label:`Tags`},{id:`type`,label:`Type`},{id:`discipline`,label:`Discipline`},{id:`source`,label:`Source`},{id:`origin`,label:`Origin`}],KF=GF.map(e=>e.id),qF=Object.fromEntries(GF.map(e=>[e.id,e.label]));function JF(e){return qF[e]??e}function YF(e,t,n){let r=n?.sink,i=n?.priority??[],a=e=>{let t=i.indexOf(e);return t===-1?1/0:t};return[...e].sort((e,n)=>{if(t===`chronological-desc`)return n[0].localeCompare(e[0]);if(t===`priority-then-alpha`){let t=a(e[0]),r=a(n[0]);return t===r?e[0].localeCompare(n[0]):t-r}if(r){if(e[0]===r)return 1;if(n[0]===r)return-1}return e[0].localeCompare(n[0])})}function XF(e,t){let n=new Set(e);if(!t||t.length===0)return GF.filter(e=>n.has(e.id));let r=t.filter(e=>n.has(e)),i=new Set(r);return[...r.map(e=>({id:e,label:JF(e)})),...GF.filter(e=>n.has(e.id)&&!i.has(e.id))]}function ZF(e,t,n){if(!e)return n;let r=new Set(t);return e.find(e=>r.has(e))??n}function QF(e){if(!e)return{options:[],invalid:[]};let t=[],n=[],r=new Set;for(let i of e){if(!KF.includes(i)){n.includes(i)||n.push(i);continue}r.has(i)||(r.add(i),t.push(i))}return{options:t,invalid:n}}var $F=`/palette`,eI=new jx(`wodwiki.routeWql.v1`,nj?oj:void 0),tI=[...Pm,...Fm],nI={notes:`note`,blocks:`block`,efforts:`effort`,collections:`notebooks`,feeds:`notebooks`};function rI(e){let t=e.startsWith(`/`)?e:`/${e}`;return cI[t]??t}function iI(e){if(Array.isArray(e))return e.filter(e=>typeof e==`string`&&e.trim().length>0).map(e=>e.trim())}function aI(e,t,n){let r=[],i=[],a=new Set;for(let o of e){let e=n[o]??o;if(!t.includes(e)){i.includes(o)||i.push(o);continue}a.has(e)||(a.add(e),r.push(e))}return{options:r,invalid:i}}var oI={"/notebooks":`/catalogs`,"/notes":`/feeds`,"/sessions":`/results`,"/dashboards":`/dashboard`},sI={"/notes":`/collections`},cI={"/feeds":`/feeds@2`};function lI(e){return WF(e).replace(/^:(collections?|feeds?)(?![\w:])/,e=>e===`:collections`||e===`:feeds`?`:notebooks`:`:notebook`).replace(/(^|[{,\s])source:(collections|feeds)(?![\w:])/g,`$1source:notebooks`).replace(/(^|[{,\s])source:collection:/g,`$1source:notebook:`).replace(/(^|[{,\s])type:(feed|collection)(?![\w:])/g,`$1type:note`)}function uI(e,t=eI){let n=rI(e),r=oI[n],i=t.get(n,{alias:r});if(i==null&&r&&(i=t.get(r,{alias:sI[n]})),!i)return{};let a=iI(i.typeOptions),o=iI(i.groupByOptions),s=a&&aI(a,tI,nI),c=o?QF(o):void 0;return{defaultWql:typeof i.defaultWql==`string`&&i.defaultWql.trim().length>0?lI(i.defaultWql.trim()):void 0,typeOptions:s?.options,groupByOptions:c?.options,...s?.invalid.length?{invalidTypeOptions:s.invalid}:{},...c?.invalid.length?{invalidGroupByOptions:c.invalid}:{}}}async function dI(e,t,n=eI){let r=rI(e),i={defaultWql:t.defaultWql?.trim()||void 0,typeOptions:iI(t.typeOptions),groupByOptions:iI(t.groupByOptions)};if(nj){try{await cj(n.qualify(r),JSON.stringify(i))}catch(e){return console.error(`[routeWqlConfig] server write failed:`,e),!1}return _I(),!0}return n.set(r,i),_I(),!0}async function fI(e,t=eI){let n=rI(e),r=oI[n];if(nj){try{await lj(r?[t.qualify(n),t.qualify(r)]:[t.qualify(n)])}catch(e){return console.error(`[routeWqlConfig] server delete failed:`,e),!1}return _I(),!0}return t.remove(n,r),_I(),!0}var pI=0,mI=new Set;function hI(e){return mI.add(e),()=>{mI.delete(e)}}function gI(){return pI}function _I(){pI+=1;for(let e of mI)e()}function vI(e){let t=(0,W.useSyncExternalStore)(hI,gI,gI);return(0,W.useMemo)(()=>uI(e),[e,t])}function yI(e,t){let n=t??uI(e.route);return!n.defaultWql&&!n.typeOptions&&!n.groupByOptions?e:{...e,defaultWql:n.defaultWql??e.defaultWql,scopeOptions:n.typeOptions?n.typeOptions.filter(e=>Fm.includes(e)):e.scopeOptions,groupByOptions:n.groupByOptions}}function bI(e){let t=vI(e?.route??``);return(0,W.useMemo)(()=>e?yI(e,t):void 0,[e,t])}var xI={bookmark:Me,calendar:sr,"clipboard-list":Rn,clock:xn,dumbbell:be,flame:ie,folder:Fe,"flask-conical":k,heart:ze,library:pe,plus:Qn,rss:Ut,star:kt,tag:Ye,activity:ve,wrench:f},SI=new jx(`wodwiki.routeWqlShortcuts.v1`,nj?oj:void 0);function CI(e,t){return{id:`all`,label:e,icon:t,wql:``}}var wI={"/journal":`All entries`,"/notebooks":`Subscribed notebooks`,"/notes":`All notes`,"/feeds":`All feeds`,"/pages":`All pages`,"/playgrounds":`All playgrounds`,"/efforts":`All Efforts`,"/equipment":`All Equipment`,"/sessions":`All Sessions`,"/tags":`All Tags`},TI={"/journal":`calendar`,"/notebooks":`library`,"/notes":`rss`,"/feeds":`rss`,"/pages":`clipboard-list`,"/playgrounds":`flask-conical`,"/efforts":`dumbbell`,"/equipment":`wrench`,"/sessions":`clipboard-list`,"/tags":`tag`};function EI(e){let t=kI(e);return t===`/notebooks`?[CI(`Subscribed notebooks`,`library`),{id:`all-configured`,label:`All configured`,icon:`bookmark`,wql:`:notebook{subscribed:true,false}`},{id:`available`,label:`Available to subscribe`,icon:`plus`,wql:`:notebook{subscribed:false}`}]:t===`/sessions`?[CI(`All Sessions`,`clipboard-list`),{id:`recent-1d`,label:`Recent (last 1d)`,icon:`clock`,wql:`:session{} last 1d`},{id:`recent-7d`,label:`Last 7 days`,icon:`calendar`,wql:`:session{} last 7d`}]:[CI(wI[t]??`Landing link`,TI[t]??`bookmark`)]}function DI(e){return e.map(e=>({id:`tag-type-${e.name}`,label:e.label,icon:`tag`,wql:`:tag{type:${e.name}}`}))}function OI(e){let t=(0,W.useMemo)(()=>EI(e),[e]),[n,r]=(0,W.useState)([]);return(0,W.useEffect)(()=>{if(kI(e)!==`/tags`)return;let t=!0;return Z.getAllTagTypes().then(e=>{t&&r(e)}).catch(()=>{t&&r([])}),()=>{t=!1}},[e]),(0,W.useMemo)(()=>kI(e)===`/tags`?[...t,...DI(n)]:t,[e,t,n])}function kI(e){return e.startsWith(`/`)?e:`/${e}`}var AI={"/notebooks":`/catalogs`,"/notes":`/feeds`},jI={"/feeds":`/feeds@2`};function MI(e){let t=kI(e);return jI[t]??t}function NI(e){if(!Array.isArray(e))return[];let t=[],n=new Set;for(let r of e){if(typeof r!=`object`||!r||Array.isArray(r))continue;let e=r;typeof e.id!=`string`||!e.id.trim()||n.has(e.id)||typeof e.label!=`string`||!e.label.trim()||typeof e.icon!=`string`||!xI[e.icon]||typeof e.wql==`string`&&(e.to!==void 0&&(typeof e.to!=`string`||!/^\/(?!\/)/.test(e.to))||(n.add(e.id.trim()),t.push({id:e.id.trim(),label:e.label.trim(),icon:e.icon,wql:lI(e.wql.trim()),...typeof e.to==`string`?{to:e.to}:{}})))}return t}function PI(e,t=SI){let n=MI(e);return NI(t.get(n,{alias:AI[n]}))}function FI(e,t=SI,n=EI(e)){let r=MI(e),i=AI[r];if(t.getRaw(r)!=null||i!=null&&t.getRaw(i)!=null){let r=PI(e,t);return r.some(e=>e.id===`all`)?r:[n[0],...r]}return n}async function II(e,t,n=SI){let r=MI(e),i=NI(t);if(nj){try{await cj(n.qualify(r),JSON.stringify(i))}catch(e){return console.error(`[routeWqlShortcuts] server write failed:`,e),!1}return VI(),!0}return n.set(r,i),n.getRaw(r)===JSON.stringify(i)&&(VI(),!0)}var LI=0,RI=new Set;function zI(e){return RI.add(e),()=>{RI.delete(e)}}function BI(){return LI}function VI(){LI++;for(let e of RI)e()}function HI(e,t=SI){return(0,W.useSyncExternalStore)(zI,BI),FI(e,t,OI(e))}function UI(e){return xh(e)?mg({...e,filters:(e.filters??[]).map(e=>({...e,values:[...e.values??[]].sort((e,t)=>e.value.localeCompare(t.value))})).sort((e,t)=>e.key.localeCompare(t.key)||Number(e.negate)-Number(t.negate)||e.values.map(e=>e.value).join(`|`).localeCompare(t.values.map(e=>e.value).join(`|`))),groupBy:[...e.groupBy??[]].sort((e,t)=>e.localeCompare(t))}):mg(e)}function WI(e,t){return e.to?t.pathname===e.to||t.pathname.startsWith(`${e.to}/`):GI(e.wql,t.query)}function GI(e,t){if(!e.trim())return t.trim()===``;if(t.trim()===``)return!1;if(t===e)return!0;let n=X(t),r=X(e);return!n.error&&!r.error&&UI(n)===UI(r)}var KI=`w-full rounded-md border border-border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-1 focus:ring-primary/40`;function qI({open:e,onOpenChange:t,route:n,editing:r=null,initialQuery:i=``}){let[a,o]=(0,W.useState)(r?.label??``),[s,c]=(0,W.useState)(r?.icon??`bookmark`),[l,u]=(0,W.useState)(r?r.wql:i),[d,f]=(0,W.useState)(null),p=OI(n);(0,W.useEffect)(()=>{e&&(o(r?.label??``),c(r?.icon??`bookmark`),u(r?r.wql:i),f(null))},[e,r,i]);let m=r!==null&&!!r.to,h=r?.id!==`all`,g=a.trim(),_=l.trim(),v=_?Uw(_).error??null:null,y=g?null:`Label is required.`,b=!!g&&!m&&(!h||!!_)&&!v;return(0,G.jsx)(zC,{open:e,onClose:()=>t(!1),title:r?`Edit shortcut`:`Save search shortcut`,description:`Saved shortcuts appear in this route's navigation panel. Stored ${nj?`on the server.`:`in this browser only.`}`,footer:(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsx)(q,{type:`submit`,form:`save-wql-shortcut-form`,size:`sm`,disabled:!b,"data-testid":`shortcut-save`,children:`Save`})]}),children:(0,G.jsxs)(`form`,{id:`save-wql-shortcut-form`,onSubmit:async e=>{if(e.preventDefault(),!b)return;let i={id:r?.id??crypto.randomUUID(),label:g,icon:s,wql:m?r.wql:_,...r?.to===void 0?{}:{to:r.to}};if(!await II(n,[...FI(n,void 0,p).filter(e=>e.id!==i.id),i])){f(`Couldn’t save — storage is unavailable. Your input is kept.`);return}t(!1)},className:`flex flex-col gap-4`,noValidate:!0,children:[(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{htmlFor:`shortcut-label`,className:`text-xs font-semibold text-muted-foreground`,children:`Label`}),(0,G.jsx)(`input`,{id:`shortcut-label`,value:a,onChange:e=>o(e.target.value),placeholder:`e.g. Strength this month`,"data-testid":`shortcut-label-input`,"aria-invalid":y?!0:void 0,className:KI}),y&&(0,G.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,"data-testid":`shortcut-label-error`,children:y})]}),m?(0,G.jsxs)(`p`,{className:`rounded-md border border-border/60 bg-muted/30 px-3 py-2 text-xs text-muted-foreground`,children:[`Route action — always opens `,r?.to,`. Label and icon are editable.`]}):(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsx)(`label`,{htmlFor:`shortcut-query`,className:`text-xs font-semibold text-muted-foreground`,children:`Query (WQL)`}),(0,G.jsx)(`textarea`,{id:`shortcut-query`,rows:2,value:l,onChange:e=>u(e.target.value),placeholder:h?`find …`:`Empty — the plain route landing`,"data-testid":`shortcut-query-input`,"aria-invalid":v?!0:void 0,className:`${KI} font-mono text-xs`}),v?(0,G.jsxs)(`p`,{role:`alert`,className:`text-xs text-destructive`,"data-testid":`shortcut-query-error`,children:[`Couldn't parse — `,v]}):!_&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:h?`A shortcut needs a query.`:`Empty — opens the plain route landing.`})]}),(0,G.jsxs)(`fieldset`,{className:`space-y-1.5`,children:[(0,G.jsx)(`legend`,{className:`text-xs font-semibold text-muted-foreground`,children:`Icon`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Object.entries(xI).map(([e,t])=>(0,G.jsxs)(`label`,{title:e,className:s===e?`cursor-pointer rounded-md border border-primary bg-primary/10 p-1.5 text-primary`:`cursor-pointer rounded-md border border-border p-1.5 text-muted-foreground hover:text-foreground`,children:[(0,G.jsx)(`input`,{type:`radio`,name:`shortcut-icon`,value:e,checked:s===e,onChange:()=>c(e),"aria-label":`Icon ${e}`,"data-testid":`shortcut-icon-${e}`,className:`sr-only`}),(0,G.jsx)(t,{className:`size-4`,"aria-hidden":`true`})]},e))})]}),d&&(0,G.jsx)(`p`,{role:`alert`,className:`text-xs text-destructive`,"data-testid":`shortcut-storage-error`,children:d})]})})}var JI=null,YI=new Set;function XI(e){JI=e;for(let e of YI)e()}function ZI(e){return YI.add(e),()=>{YI.delete(e)}}function QI(){return JI}function $I(){return(0,W.useSyncExternalStore)(ZI,QI)}function eL(e){let t=e.split(`/`),n=t[0]??e,r=t[1]??``;return n===`journal`?{kind:`journal`,id:r,raw:e}:n===`playground`?{kind:`playground`,id:r,raw:e}:t.length<2?{kind:`workout`,id:n,raw:e}:{kind:`workout`,category:n,id:r,raw:e}}var tL=/^(?:uuid-|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)/i;function nL(e){return typeof e==`string`&&e&&!tL.test(e)?e:void 0}function rL(e){return!!e.sourceId?.startsWith(`notebook:`)||e.sourcePath?.startsWith(`markdown/notebooks/`)===!0}function iL(e){return e.type===`dashboard`||e.sourceId===`dashboards`||e.sourcePath?.startsWith(`markdown/dashboards/`)===!0}function aL(e){return e.sourceId===`efforts`||e.sourcePath?.startsWith(`markdown/efforts/`)===!0}function oL(e){return e.sourceId===`equipment`||e.sourcePath?.startsWith(`markdown/equipment/`)===!0}function sL(e){return e.type===`tag`&&e.id.startsWith(`tag/`)}function cL(e){let t=/^tag\/([^/]+)\/(.+)$/.exec(e.id);return t?{type:t[1],label:t[2]}:void 0}function lL(e,t){let n=e.sourcePath?.replace(/^markdown\/[^/]+\//,``).replace(/\.md$/,``);if(!n)return;let r=n.split(`/`);return r.length===t?r[t-1]:void 0}function uL(e){let t=e.sourceId;if(t?.startsWith(`notebook:`)){let e=t.slice(9);if(e&&e!==`_root`){let t=e.indexOf(`/`);return t===-1?{slug:e,item:``}:{slug:e.slice(0,t),item:e.slice(t+1)}}}let n=/^markdown\/notebooks\/([^/]+)\/(.+)\.md$/.exec(e.sourcePath??``);if(n)return{slug:n[1],item:n[2].toLowerCase()===`readme`?``:n[2]};let r=e.id;if(tL.test(r))return{slug:``,item:``};let[i,...a]=r.split(`/`);return{slug:i,item:a.join(`/`)}}function dL(e){return e.sourceId===`playground`||e.type===`playground`||e.id.startsWith(`playground/`)}function fL(e){let t=e.slug??e.id;return t.startsWith(`playground/`)?t.slice(11):t}function pL(e){return{...mL(e),noteType:e.type,notebookId:z_(e),feedId:e.feedSourceId??(B_(e)===`user`?`local`:`core`),editable:wa(e,B_(e))}}function mL(e){let t=e.id,n=e.title,r=e.tags&&e.tags.length>0?e.tags:void 0;if(dL(e))return{id:t,kind:`note`,sourceNotebook:`playground`,sourceNote:fL(e),sourceId:e.sourceId,title:Zb(n||fL(e)),date:null,createdAt:e.createdAt,...r?{tags:r}:{}};if(rL(e)){let{slug:i,item:a}=uL(e),o=!a,s=a.split(`/`),c=s.length>1&&/^\d{4}-\d{2}-\d{2}$/.test(s[0])?s[0]:null;return{id:t,kind:`note`,sourceNotebook:i,sourceNote:o?``:a,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:c??(e.date?vF(new Date(e.date)):null),createdAt:e.createdAt,subtitle:i,...r?{tags:r}:{}}}if(iL(e))return{id:t,kind:`dashboard`,sourceNotebook:`dashboards`,sourceNote:lL(e,1)??t,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:null,createdAt:e.createdAt,subtitle:`dashboards`,...r?{tags:r}:{}};if(aL(e)){let i=lL(e,2)??t,a=e.sourcePath?.match(/^markdown\/efforts\/([^/]+)\//)?.[1];return{id:t,kind:`effort`,sourceNotebook:`efforts`,sourceNote:i,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:null,createdAt:e.createdAt,subtitle:a,effort:{slug:i},...r?{tags:r}:{}}}if(oL(e))return{id:t,kind:`equipment`,sourceNotebook:`equipment`,sourceNote:lL(e,1)??t,sourceId:e.sourceId,sourcePath:e.sourcePath,title:n,date:null,createdAt:e.createdAt,subtitle:`equipment`,...r?{tags:r}:{}};if(sL(e)){let i=cL(e);return{id:t,kind:`tag`,sourceNotebook:`tags`,sourceNote:i?.label??n,title:n||i?.label||t,date:null,createdAt:e.createdAt,subtitle:(`tagType`in e&&typeof e.tagType==`string`?e.tagType:void 0)??i?.type,detail:e.rawContent||void 0,...r?{tags:r}:{}}}if(e.sourceId?.startsWith(`guides:`)){let i=e.sourceId.slice(7)||t;return{id:t,kind:`note`,sourceNotebook:`guides`,sourceNote:i,sourceId:e.sourceId,sourcePath:e.sourcePath,pageSlug:nL(i.replace(/^\//,``).replace(/^page\//,``)),title:n,date:null,createdAt:e.createdAt,...r?{tags:r}:{}}}let i=null;return`journalDate`in e&&typeof e.journalDate==`string`?i=e.journalDate:`date`in e&&typeof e.date==`string`?i=e.date:e.type===`journal`&&`date`in e&&typeof e.date==`number`&&Number.isFinite(e.date)?i=vF(new Date(e.date)):`targetDate`in e&&e.targetDate&&(typeof e.targetDate==`number`||typeof e.targetDate==`string`)?i=vF(new Date(e.targetDate)):e.createdAt&&(i=vF(new Date(e.createdAt))),{id:t,kind:`note`,sourceNotebook:`journal`,sourceNote:t,sourceId:e.sourceId,sourcePath:e.sourcePath,pageId:`pageId`in e&&typeof e.pageId==`string`?e.pageId:void 0,pageSlug:`slug`in e?nL(e.slug):void 0,title:n,date:i,createdAt:e.createdAt,...r?{tags:r}:{}}}function hL(e){return{id:e.noteId,title:e.noteTitle,createdAt:e.createdAt,type:`note`,sourceId:e.sourceId,sourcePath:e.sourcePath,rawContent:``,sourceRevision:1,blocks:{}}}var gL=3,_L=120;function vL(e){return e.split(`
85
85
  `).map(e=>e.trim()).filter(Boolean).slice(0,gL).map(e=>e.length>_L?`${e.slice(0,119)}…`:e)}function yL(e){let t=pL(hL(e));return{...t,blockContentId:e.blockContentId??t.blockContentId,block:{blockId:e.blockId,dataType:e.dataType,preview:vL(e.rawContent)}}}function bL(e){return e?e.split(`-`).map(e=>{let t=e.toLowerCase();return t===`c2b`?`C2B`:t===`t2b`?`T2B`:t===`ghd`?`GHD`:t===`hspu`?`HSPU`:e.charAt(0).toUpperCase()+e.slice(1)}).join(` `):``}function xL(e){if(!Number.isFinite(e)||e<=0)return`00:00`;let t=Math.floor(e/1e3),n=Math.floor(t/60),r=t%60;if(n>=60){let e=Math.floor(n/60),t=n%60;return`${e}:${String(t).padStart(2,`0`)}:${String(r).padStart(2,`0`)}`}return`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}`}function SL(e){if(!e||tL.test(e))return`Workout Session`;let t=eL(e);return t.kind===`journal`?t.id?`Journal: ${t.id}`:`Journal Entry`:t.kind===`workout`?tL.test(t.id)?`Workout Session`:bL(t.id)||t.id:t.id&&!tL.test(t.id)?bL(t.id):tL.test(e)?`Workout Session`:e}function CL(e){let t=[e.baseAttributes?.discipline,e.baseAttributes?.met==null?void 0:`MET ${e.baseAttributes.met.toFixed(1)}`,e.baseAttributes?.intensityTier].filter(Boolean);return{id:e.slug,kind:`effort`,sourceNotebook:e.registrySource??`effort`,sourceNote:e.slug,title:e.label,date:null,subtitle:t.join(` • `),detail:e.aliases&&e.aliases.length>0?`Aliases: ${e.aliases.join(`, `)}`:void 0,effort:{slug:e.slug,label:e.label,discipline:e.baseAttributes?.discipline,met:e.baseAttributes?.met,intensityTier:e.baseAttributes?.intensityTier,aliases:e.aliases,registrySource:e.registrySource}}}function wL(e){let t=(e.type??``).toLowerCase(),n=(`name`in e&&typeof e.name==`string`?e.name:``).toLowerCase(),r=typeof e.value==`number`?e.value:Number(e.value);return Number.isFinite(r)?t===`rep`||n===`reps`||n===`rep`?{kind:`rep`,val:r}:t===`weight`||t===`load`||n===`load`||n===`weight`||n===`volume`?{kind:`load`,val:r}:t===`distance`||n===`distance`?{kind:`distance`,val:r}:t===`tis`||n===`tis`?{kind:`tis`,val:r}:t===`duration`||n===`duration`?{kind:`duration`,val:r}:null:null}function TL(e){let t=1/0,n=-1/0,r=0,i=0,a=0,o=0,s=new Set;for(let c of e.events)if(c.outputType===`segment`&&o++,c.effortSlug&&s.add(c.effortSlug),c.timeSpan?.started!=null&&(c.timeSpan.started<t&&(t=c.timeSpan.started),c.timeSpan.ended!=null&&c.timeSpan.ended>n&&(n=c.timeSpan.ended)),Array.isArray(c.metrics))for(let e of c.metrics){let t=wL(e);t&&(t.kind===`rep`?r+=t.val:t.kind===`load`?i+=t.val:t.kind===`tis`&&t.val>a&&(a=t.val))}return{elapsedMs:Number.isFinite(t)&&Number.isFinite(n)&&n>t?n-t:void 0,reps:r>0?r:void 0,loadLbs:i>0?i:void 0,tis:a>0?a:void 0,segmentCount:o>0?o:void 0,effortSlugs:Array.from(s)}}function EL(e,t){let n=TL(e),r=[];n.elapsedMs!=null&&r.push(xL(n.elapsedMs)),n.tis!=null&&r.push(`TIS ${n.tis.toFixed(1)}`),n.loadLbs!=null&&r.push(`Volume: ${n.loadLbs.toLocaleString()} lbs`),n.reps!=null&&r.push(`${n.reps} reps`),n.segmentCount!=null&&r.push(`${n.segmentCount} splits`);let i=n.effortSlugs.map(bL),a=vF(new Date(e.timestamp)),o=e.events.find(e=>!!e.blockContentId)?.blockContentId;if(e.timestamp){let t=new Date(e.timestamp).toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`});t&&t!==`Invalid Date`&&r.unshift(t)}let s=t?.noteTitle&&!tL.test(t.noteTitle)?t.noteTitle:SL(e.noteId);return{id:e.resultId,kind:`result`,sourceNotebook:`results`,sourceNote:e.resultId,title:s,date:a,blockContentId:o,subtitle:r.join(` • `),detail:i.length>0?i.join(`, `):void 0,execution:{resultId:e.resultId,noteId:e.noteId,timestamp:e.timestamp,outputType:`all`,elapsedMs:n.elapsedMs,reps:n.reps,loadLbs:n.loadLbs,tis:n.tis,segmentCount:n.segmentCount,events:e.events}}}function DL(e,t){let n;e.timeSpan?.started!=null&&e.timeSpan?.ended!=null&&(n=e.timeSpan.ended-e.timeSpan.started);let r,i,a,o;if(Array.isArray(e.metrics))for(let t of e.metrics){let e=wL(t);e&&(e.kind===`rep`?r=e.val:e.kind===`load`?i=e.val:e.kind===`distance`?a=e.val:e.kind===`tis`?o=e.val:e.kind===`duration`&&!n&&(n=e.val))}let s=e.outputType===`segment`?`segment`:`event`,c=t?.index??0,l=e.effortSlug?bL(e.effortSlug):e.outputType===`segment`?`Round ${c+1}`:`${e.outputType.charAt(0).toUpperCase()+e.outputType.slice(1)} ${c+1}`,u=[];n!=null&&u.push(xL(n)),r!=null&&i!=null?u.push(`${r} reps @ ${i} lbs`):r==null?i!=null&&u.push(`${i} lbs`):u.push(`${r} reps`),a!=null&&u.push(`${a}m`),o!=null&&u.push(`TIS ${o.toFixed(1)}`);let d=vF(new Date(e.timestamp));return{id:e.id,kind:s,sourceNotebook:`results`,sourceNote:e.id,title:l,date:d,blockContentId:e.blockContentId,subtitle:u.join(` • `),detail:e.effortSlug?bL(e.effortSlug):void 0,execution:{resultId:e.resultId,noteId:e.noteId,timestamp:e.timestamp,outputType:e.outputType,effortSlug:e.effortSlug,elapsedMs:n,reps:r,loadLbs:i,distanceMeters:a,tis:o,metrics:e.metrics}}}function OL(e,t){if(!e||e.error||!e.runs)return[];let n=e.parsed?.filters?.find(e=>e.key===`plane`&&!e.negate),r=e.parsed?.outputType??n?.values[0]?.value;if(r===`segment`){let t=[];for(let n of e.runs){let e=0;for(let r of n.events)r.outputType===`segment`&&t.push(DL(r,{index:e++}))}return t}if(r&&r!==`all`){let t=[];for(let n of e.runs){let e=0;for(let i of n.events)i.outputType===r&&t.push(DL(i,{index:e++}))}return t}return e.runs.map(e=>EL(e,{noteTitle:t?.noteTitles?.get(e.noteId)}))}function kL(e){return e.split(`/`).map(encodeURIComponent).join(`/`)}function AL(e){let t=(()=>{switch(e.kind){case`note`:{if(e.sourceNotebook===`guides`)return e.pageSlug?`/page/${kL(e.pageSlug)}`:`/${kL(e.sourceNote.replace(/^\//,``))}`;if(e.sourceNotebook===`playground`)return`/playground/${encodeURIComponent(e.sourceNote)}`;let t=/^markdown\/dashboards\/(.+)\.md$/.exec(e.sourcePath??``);if(t?.[1])return`/dashboard/${kL(t[1])}`;let n=/^markdown\/efforts\/[^/]+\/(.+)\.md$/.exec(e.sourcePath??``);if(n?.[1])return`/effort/${kL(n[1])}`;let r=e.sourceId??``,i=e.sourcePath??``;return r.startsWith(`notebook:`)||i.startsWith(`markdown/notebooks/`)?e.sourceNote?`/notebook/${encodeURIComponent(e.sourceNotebook)}/${kL(e.sourceNote)}`:`/notebook/${encodeURIComponent(e.sourceNotebook)}`:e.pageSlug?`/page/${kL(e.pageSlug)}`:GP(e.id)}case`dashboard`:return e.sourceNotebook===`dashboards`&&e.sourceNote?`/dashboard/${kL(e.sourceNote)}`:GP(e.id);case`equipment`:{let t=e.sourceNote??e.id,n=t.startsWith(`equipment/`)?t.slice(10):t,r=/^(?:uuid-|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)/i.test(n);return n&&!r?`/equipment/${kL(n)}`:GP(e.id)}case`tag`:{let t=cL(e),n=t?.type??`general`,r=t?.label??e.sourceNote??e.id;return`/t/${encodeURIComponent(n)}/${encodeURIComponent(r)}`}case`effort`:return`/effort/${encodeURIComponent(e.effort?.slug??e.id)}`;case`result`:return ZP(e.id);case`segment`:case`event`:return ZP(e.execution?.resultId??(e.sourceNotebook===`results`?e.sourceNote:e.id));default:return`/`}})();return e.block?`${t}#${encodeURIComponent(e.block.blockId)}`:t}function jL(e){return e.sourceNotebook===`playground`||e.sourceId===`playground`}function ML(e){return e.kind===`note`&&!e.sourceNote?`/notebooks?q=${encodeURIComponent(`:notebook{notebook:${e.sourceNotebook}}`)}`:null}function NL(e){return e.blockContentId?iF({q:e.blockContentId}):null}function PL(e){return!!(e.kind===`note`||(e.kind===`result`||e.kind===`segment`)&&e.execution?.noteId)}function FL(e,t){if(e)switch(e.type){case`route`:t.navigate(e.to,{replace:!(e.pushHistory??!0)});break;case`query`:t.setQueryParam(e.params,!(e.pushHistory??!1));break;case`scroll`:t.scrollToSection?.(e.sectionId);break;case`view-source`:t.swapSource?.(e.source);break;case`view-state`:t.setPanelState?.(e.state,e.open);break;case`pipeline`:{let n=e.steps.filter(e=>e.type===`scroll`),r=e.steps.filter(e=>e.type!==`scroll`);r.forEach(e=>FL(e,t)),n.length>0&&(r.length>0?setTimeout(()=>{n.forEach(e=>FL(e,t))},0):n.forEach(e=>FL(e,t)));break}case`call`:e.handler();break;case`external`:window.open(e.href,`_blank`,`noopener,noreferrer`)}}function IL(e,t=`dialog`){if(e.action===`set-source`)return{type:`view-source`,source:e.value};if(e.action===`navigate`)return/^https?:\/\//.test(e.value)?{type:`external`,href:e.value}:{type:`route`,to:e.value};if(e.action===`set-state`){if(e.value===`note`)return{type:`view-state`,state:`note`};if(e.value===`review`)return{type:`view-state`,state:`review`};if(e.value===`track`)return{type:`view-state`,state:`track`,open:t}}return{type:`none`}}function LL(e,t){let n=e.pipeline.map(t=>IL(t,e.open));return{id:`btn-${t}`,label:e.label,action:n.length===1?n[0]:{type:`pipeline`,steps:n}}}function RL(e){let{action:t}=e;return t.type===`view-state`?t.state===`track`:t.type===`pipeline`&&t.steps.some(e=>e.type===`view-state`&&e.state===`track`)}var zL=`sticky top-0 z-10 bg-card`;function BL({title:e,defaultOpen:t=!1,collapsible:n=!0,children:r,count:i,className:a,sticky:o,trailing:s,bodyClassName:c,buttonClassName:u}){if(!n)return(0,G.jsxs)(`div`,{className:a,children:[(0,G.jsxs)(`div`,{className:ut(`group flex w-full items-center gap-1 px-2 py-3 text-[10px] font-black uppercase tracking-[0.2em] text-muted-foreground/80`,o&&zL),children:[(0,G.jsx)(`div`,{className:`size-4 shrink-0`}),(0,G.jsx)(`span`,{children:e}),i!==void 0&&(0,G.jsx)(`span`,{className:`ml-auto flex size-5 items-center justify-center rounded-full bg-border/50 text-[9px] font-black tabular-nums text-muted-foreground`,children:i})]}),(0,G.jsx)(`div`,{className:ut(`flex flex-col gap-0.5`),children:r})]});let d=(0,G.jsxs)(te,{className:ut(`group flex items-center gap-1 px-2 py-3 text-[10px] font-black uppercase tracking-[0.2em] text-muted-foreground/80 hover:text-primary transition-colors`,s?`min-w-0 flex-1`:`w-full`,u,o&&!s&&zL),children:[(0,G.jsx)(l,{className:`size-4 shrink-0 fill-muted-foreground/50 transition-transform duration-300 group-data-[open]:rotate-90 group-hover:fill-primary`}),(0,G.jsx)(`span`,{children:e}),i!==void 0&&(0,G.jsx)(`span`,{className:`ml-auto flex size-5 items-center justify-center rounded-full bg-border/50 text-[9px] font-black tabular-nums text-muted-foreground group-hover:bg-primary/10 group-hover:text-primary transition-colors`,children:i})]});return(0,G.jsxs)(An,{as:`div`,defaultOpen:t,className:a,children:[s?(0,G.jsxs)(`div`,{className:ut(`flex w-full items-center bg-card`,o&&zL),children:[d,s]}):d,(0,G.jsx)(ae,{className:ut(`flex flex-col gap-0.5`,c),transition:!0,children:r})]})}var VL={tags:`tag`},HL={source:!0},UL={text:!0};function WL(e){return VL[e]??e}function GL(e){return!!UL[e]}function KL(e){switch(e){case`note`:return`note`;case`effort`:return`effort`;default:return null}}function qL(e){return e.wildcard?`${e.value}*`:e.value}function JL(e,t){return e.filters.map((e,t)=>({filter:e,filterIndex:t})).filter(({filter:e})=>e.key===t).map(({filter:e,filterIndex:n})=>({filterIndex:n,key:t,negate:e.negate,values:e.values.map(e=>({value:e.value,wildcard:e.wildcard}))}))}function YL(e,t,n){let r=[];for(let i of JL(e,t))i.values.forEach((e,t)=>{let a=qL(e);r.push({display:a,negate:i.negate,label:n?.get(i.negate?a:e.value),occurrence:i,valueIndex:t})});return r}function XL(e,t,n){if(t===`source`)return rR(e,n);let r=X(e);if(r.error||!xh(r))return e;let i=JL(r,t).filter(e=>!e.negate);if(i.length>0&&!HL[t]){let r=i[i.length-1];return oR(e,t,r,[...r.values.map(qL),n].join(`|`))}if(i.length>0)return oR(e,t,i[i.length-1],n);let a=Vw(e,sR(t,WL(t),``),n);return a.valid?a.wql:e}function ZL(e,t,n){let r=n.occurrence.values.filter((e,t)=>t!==n.valueIndex).map(qL).join(`|`);return oR(e,t,n.occurrence,r||null)}function QL(e,t,n){let r=X(e);if(r.error||!xh(r))return`off`;if(t===`source`&&aR(r)===n)return`include`;let i=JL(r,t);return i.some(e=>!e.negate&&e.values.some(e=>qL(e)===n))?`include`:i.some(e=>e.negate&&e.values.some(e=>qL(e)===n))?`exclude`:`off`}function $L(e,t,n,r){return QL(e,t,n)===r?e:r===`off`?eR(e,t,n,`both`):r===`include`?XL(eR(e,t,n,`negative`),t,n):tR(eR(e,t,n,`positive`),t,n)}function eR(e,t,n,r){let i=e;for(;;){let e=X(i);if(e.error||!xh(e))return i;if(t===`source`&&r!==`negative`&&aR(e)===n){let e=rR(i,null);if(e===i)return i;i=e;continue}let a=JL(e,t).find(e=>(r===`both`||r===(e.negate?`negative`:`positive`))&&e.values.some(e=>qL(e)===n));if(!a)return i;let o=a.values.findIndex(e=>qL(e)===n),s=ZL(i,t,{display:n,negate:a.negate,occurrence:a,valueIndex:o});if(s===i)return i;i=s}}function tR(e,t,n){let r=X(e);if(r.error||!xh(r))return e;let i=JL(r,t).filter(e=>e.negate);if(i.length>0){let r=i[i.length-1];return r.values.some(e=>qL(e)===n)?e:oR(e,t,r,[...r.values.map(qL),n].join(`|`))}let a=Vw(e,{...sR(t,WL(t),``),negate:!0},n);return a.valid?a.wql:e}function nR(e,t){let n=t.trim(),r=e,i=!1;for(;;){let e=X(r);if(e.error||!xh(e))return r;let t=JL(e,`text`).filter(e=>!e.negate);if(t.length===0){if(!n||i)return r;let e=Vw(r,sR(`text`,WL(`text`),``),n);return e.valid?e.wql:r}if(!n){let e=oR(r,`text`,t[0],null);if(e===r)return r;r=e;continue}if(!i){let e=oR(r,`text`,t[0],n);if(e===r)return r;r=e,i=!0;continue}if(t.length===1)return r;let a=oR(r,`text`,t[1],null);if(a===r)return r;r=a}}function rR(e,t){let n=X(e);if(n.error||!xh(n))return e;let r=new Set,i=n.filters.filter(e=>{if(e.key!==`source`||e.negate)return!0;let t=e.values.map(e=>`${e.value}${e.wildcard?`*`:``}`).join(`|`);return!r.has(t)&&(r.add(t),!0)}),a=Im.filter(t=>e.startsWith(`:${t}`)).sort((e,t)=>t.length-e.length)[0],o=a?Lm[a]:void 0;if(!t){if(!o)return mg({...n,sourceScope:void 0,filters:i});let e=!1,t=i.filter(t=>e||t.key!==`source`||t.negate?!0:t.values.length===1&&!t.values[0].wildcard&&t.values[0].value===o?(e=!0,!1):!0);return mg({...n,sourceScope:void 0,filters:t})}let s=t===`journal`?`:journal`:t===`notebooks`?`:notebooks`:t===`playground`?`:playground`:`:note{source:${t}}`,c=X(s.startsWith(`:note`)?s:`${s}{}`);if(c.error||!xh(c)||!c.filters.length)return e;let l=i.findIndex(e=>e.key===`source`&&!e.negate),u=l>=0?i.map((e,t)=>t===l?c.filters[0]:e):[...i,c.filters[0]];return mg({...n,sourceScope:void 0,filters:u})}function iR(e,t,n){let r=X(e);if(r.error||!xh(r))return e;let i=r.groupBy??[];if(n===i.some(e=>e.toLowerCase()===t.toLowerCase()))return e;let a=n?[...i,t.toLowerCase()]:i.filter(e=>e.toLowerCase()!==t.toLowerCase());return mg({...r,groupBy:a.length>0?a:void 0})}function aR(e){return e.filters.find(e=>e.key===`source`&&!e.negate)?null:e.sourceScope?.length===1?e.sourceScope[0]:null}function oR(e,t,n,r){let i=Vw(e,{...sR(t,WL(t),n.values.map(qL).join(`|`)),filterIndex:n.filterIndex,negate:n.negate},r);return i.valid?i.wql:e}function sR(e,t,n){return{id:`nav-${e}`,type:t,...ZC(t),value:n}}function cR(e,t,n){let r=new Map,i=(e,t)=>{let n=r.get(e);n?(n.count+=1,!n.label&&t&&(n.label=t)):r.set(e,{value:e,label:t,count:1})},a=Em.includes(t)?t:t===`tags`?`tags`:null;if(a&&!n.tagMembership)return[];let o=(e===`note`||e===`block`)&&t===`effort`;if(o&&!n.effortMembership)return[];let s=e=>{r.has(e)||r.set(e,{value:e,count:0})};for(let r of n.entries)switch(`${e}:${t}`){case`note:notebook`:case`block:notebook`:(r.notebookId||r.sourceNotebook)&&i(r.notebookId??r.sourceNotebook);break;case`note:type`:r.noteType&&i(r.noteType);break;case`block:type`:r.block?.dataType&&i(r.block.dataType);break;case`note:page`:i(r.noteType===`page`?`true`:`false`,r.noteType===`page`?`Pages`:`Non-pages`);break;case`effort:discipline`:r.effort?.discipline&&i(r.effort.discipline);break;case`effort:intensity`:r.effort?.intensityTier&&i(r.effort.intensityTier);break;case`effort:origin`:r.effort?.registrySource&&i(r.effort.registrySource);break;case`effort:effort`:r.effort?.slug&&i(r.effort.slug,r.effort.label);break;case`session:result`:r.execution?.resultId&&i(r.execution.resultId,r.title);break;case`session:block`:{let e=new Set;for(let t of r.execution?.events??[])t.blockContentId&&e.add(t.blockContentId);for(let t of e)i(t,r.title);break}case`session:note`:{let e=new Set;for(let t of r.execution?.events??[])t.noteId&&e.add(t.noteId);for(let t of e)i(t,r.title);break}case`session:plane`:for(let e of r.execution?.events??[])i(e.outputType);break;default:if(a){let e=n.tagMembership.get(r.sourceNotebook??r.id)??n.tagMembership.get(r.id)??[];for(let t of e)(a===`tags`||t.type===a)&&i(t.label)}else if(o){let e=n.effortMembership.get(r.sourceNotebook??r.id)??n.effortMembership.get(r.id)??[];for(let t of e)i(t)}}if(e===`note`&&t===`source`)return Fm.map(e=>({value:e,count:n.entries.filter(t=>J_({id:t.id,sourceId:t.sourceId,type:t.noteType},e)).length})).filter(e=>e.count>0);if(e===`block`&&t===`source`)return Fm.map(e=>({value:e,count:n.entries.filter(t=>J_({id:t.id,sourceId:t.sourceId,type:void 0},e)).length})).filter(e=>e.count>0);if((e===`note`||e===`block`)&&t===`note`)for(let e of n.entries)i(e.id,e.title);if(a)for(let e of n.tagMembership.values())for(let t of e)(a===`tags`||t.type===a)&&s(t.label);if(o)for(let e of n.effortMembership.values())for(let t of e)s(t);return[...r.values()].sort((e,t)=>t.count-e.count||(e.label??e.value).localeCompare(t.label??t.value))}var lR=e=>e.map(e=>({value:e,label:e.charAt(0).toUpperCase()+e.slice(1)})),uR={source:{enabled:!1,expectedValues:lR(Fm)},page:{enabled:!1,expectedValues:[{value:`true`,label:`Pages`},{value:`false`,label:`Non-pages`}]},intensity:{expectedValues:lR(Mm)},discipline:{expectedValues:lR(hg)}};function dR(e){return uR[e]??{}}var fR=[],pR=e=>new URLSearchParams(e.search).get(`q`)??``;async function mR(){let[e,t]=await Promise.all([Z.getNoteTagLabelsBatch(),Z.getAllNotes()]);for(let n of t){let t=e.get(n.id),r=R_(n.sourceId);if(!r||!t?.length)continue;let i=e.get(r);if(i)for(let e of t)i.some(t=>t.label===e.label)||i.push(e);else e.set(r,t.map(({label:e,type:t})=>({label:e,type:t})))}return e}function hR(e,t,n){let r=new URLSearchParams(e.search);r.set(`q`,n),t(`${e.pathname}?${r.toString()}`)}function gR(){let e=wn(),t=ln(),n=$I(),r=pR(e),i=bI(zP(e.pathname)),a=r&&!X(r).error?r:i.defaultWql,o=(0,W.useMemo)(()=>X(a),[a]),s=(0,W.useMemo)(()=>!o.error&&xh(o)?o:null,[o]),c=n&&n.pathname===e.pathname&&n.query===a?n.entries:null,[l,u]=(0,W.useState)(null);(0,W.useEffect)(()=>{n&&n.pathname===e.pathname&&u(n)},[n,e.pathname]);let d=c===null&&l!==null&&l.pathname===e.pathname,f=c??(d?l.entries:fR),p=s?KL(s.target):null,m=!!s&&!!p&&JL(s,p).length>0,h=(0,W.useMemo)(()=>s?ah(s.target,`find`).filter(e=>e!==p||m):[],[s,p,m]),g=h.some(e=>e===`tags`||Em.includes(e)),_=h.includes(`effort`),[v,y]=(0,W.useState)({tags:null,efforts:null});(0,W.useEffect)(()=>{if(!g&&!_||f.length===0)return;let e=!1;return Promise.all([g?mR():null,_?Z.getEffortSlugsByNoteBatch():null]).then(([t,n])=>{e||y({tags:t,efforts:n})}).catch(()=>{e||y({tags:null,efforts:null})}),()=>{e=!0}},[g,_,f]);let b=(0,W.useMemo)(()=>({entries:f,tagMembership:v.tags,effortMembership:v.efforts}),[f,v]),x=(0,W.useRef)(new Map),S=x.current.get(e.pathname);S||(S=new Map,x.current.set(e.pathname,S));let C=c!==null||l!==null,w=n=>hR(e,t,n),T=s?aR(s):null,E=(0,W.useMemo)(()=>h.filter(e=>dR(e).enabled!==!1).sort((e,t)=>(dR(e).order??0)-(dR(t).order??0)),[h]);return s?(0,G.jsxs)(`div`,{className:`flex flex-col`,"aria-busy":d||void 0,"data-testid":`l3-filters`,children:[(0,G.jsx)(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Filters`}),E.map(e=>(0,G.jsx)(`div`,{"data-testid":`conditions-section-${e}`,children:(0,G.jsx)(xR,{query:a,parsed:s,entryKey:e,facetContext:b,labels:_R(s.target,e,f),headScope:e===`source`?T:null,pending:d,hasEverPublished:C,routeKnownOptions:S,onApply:w})},e))]}):null}function _R(e,t,n){let r=new Map,i=(e,t)=>{e&&!r.has(e)&&r.set(e,t)};if((e===`note`||e===`block`)&&t===`note`)for(let e of n)i(e.id,e.title);if(e===`session`)for(let e of n){t===`result`&&i(e.execution?.resultId,e.title);for(let n of e.execution?.events??[])t===`block`&&i(n.blockContentId,e.title),t===`note`&&i(n.noteId,e.title)}return r}var vR=[`off`,`include`,`exclude`],yR={off:`Off`,include:`Include`,exclude:`Exclude`},bR={off:Hn,include:Jt,exclude:Pn};function xR({query:e,parsed:t,entryKey:n,facetContext:r,labels:i,headScope:a,pending:o,hasEverPublished:s,routeKnownOptions:c,onApply:l}){let u=wn(),d=dR(n);if(d.enabled===!1)return null;let f=ZC(WL(n)),p=GL(n)||CR[n]!==void 0,m=YL(t,n,i),h=n===`text`?JL(t,`text`).filter(e=>!e.negate).map(e=>e.values.map(e=>e.value).join(`|`)).join(`|`):null,g=cR(t.target,n,r),_=c.get(n);_||(_=new Map,c.set(n,_));for(let e of g)_.has(e.value)||_.set(e.value,{value:e.value,label:e.label,count:0});let v=new Map(m.map(e=>[e.display,e])),y=new Map(g.map(e=>[e.value,e])),b=d.expectedValues,x=[],S=new Set,C=(t,r,i)=>{S.has(t)||(S.add(t),x.push({value:t,label:i??r?.label??v.get(t)?.label??t,count:r?r.count:null,state:QL(e,n,t)}))};if(s){for(let e of b??[]){let t=y.get(e.value);C(e.value,t,e.label)}if(!b){for(let e of g)C(e.value,e);for(let e of _.values())C(e.value,y.get(e.value),e.label)}}for(let e of m)C(e.display,y.get(e.display));n===`source`&&a&&C(a,y.get(a));let w=new Map((b??[]).map((e,t)=>[e.value,t]));x.sort((e,t)=>(w.get(e.value)??2**53-1)-(w.get(t.value)??2**53-1)||e.label.localeCompare(t.label));let T=u.pathname.startsWith(`/journal`)||u.pathname.startsWith(`/day`),E=d.hideZero||n===`effort`||T&&(n===`tags`||Em.includes(n))?x.filter(e=>e.count!==null&&e.count>0||e.state!==`off`):x;return E.length===0&&!p?null:(0,G.jsxs)(BL,{title:d.label??f.label,count:E.length,defaultOpen:x.some(e=>e.state!==`off`)||p,sticky:!0,buttonClassName:`gap-1.5 py-1.5 text-[11px] font-semibold normal-case tracking-normal [&>span:last-child]:h-auto [&>span:last-child]:w-auto [&>span:last-child]:min-w-0 [&>span:last-child]:rounded-sm [&>span:last-child]:px-1 [&>span:last-child]:bg-transparent [&>span:last-child]:text-[10px] [&>span:last-child]:font-semibold [&>span:last-child]:text-muted-foreground`,bodyClassName:`px-6`,children:[(0,G.jsx)(`ul`,{className:`flex flex-col`,children:E.map(t=>(0,G.jsx)(SR,{query:e,entryKey:n,row:t,pending:o,onApply:l},t.value))}),p&&(0,G.jsx)(wR,{entryKey:n,placeholder:f.placeholder,pending:o,currentText:h??void 0,onTextChange:t=>l(nR(e,t)),onApply:t=>l($L(e,n,t,`include`))})]})}function SR({query:e,entryKey:t,row:n,pending:r,onApply:i}){let a=vR[(vR.indexOf(n.state)+1)%vR.length],o=bR[n.state],s=`${yR[a]} “${n.label}” (currently ${yR[n.state]})`,c=n.count===0&&n.state===`off`;return(0,G.jsx)(`li`,{"data-testid":`conditions-row-${t}:${n.value}`,className:ut(`px-1 py-0.5`,r&&`opacity-60`,c&&`opacity-40`),children:(0,G.jsxs)(`div`,{className:`flex h-11 items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:ut(`min-w-0 flex-1 truncate text-xs leading-4`,c?`text-muted-foreground`:`text-foreground`),children:n.label}),n.count!==null&&(0,G.jsx)(`span`,{className:`text-[10px] leading-4 tabular-nums text-muted-foreground`,children:n.count}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`conditions-state-${t}:${n.value}`,"data-state":n.state,onClick:()=>i($L(e,t,n.value,a)),disabled:r,"aria-label":s,title:s,className:ut(`flex size-11 shrink-0 cursor-pointer items-center justify-center rounded-md border border-transparent transition-colors hover:bg-foreground/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 disabled:cursor-default`,n.state===`include`&&`bg-primary/10 text-primary`,n.state===`exclude`&&`bg-destructive/10 text-destructive`,n.state===`off`&&`text-muted-foreground`),children:(0,G.jsx)(o,{"aria-hidden":`true`,className:`size-4`})})]})})}var CR={note:!0,block:!0,result:!0};function wR({entryKey:e,placeholder:t,pending:n,currentText:r,onTextChange:i,onApply:a}){let[o,s]=(0,W.useState)(``),c=jF();return e===`text`?(0,G.jsxs)(`div`,{className:`px-1 py-1.5`,children:[(0,G.jsx)(`input`,{value:r??``,onChange:e=>i?.(e.target.value),placeholder:t,"aria-label":t,"data-testid":`conditions-input-text`,className:`h-8 w-full min-w-0 rounded-md border border-border/60 bg-background px-2 text-xs text-foreground placeholder:text-muted-foreground/60 focus:outline-none focus:ring-1 focus:ring-primary/40`}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`conditions-jump-wql-text`,onClick:()=>{c(),document.querySelector(`[data-testid="stream-query-bar"]`)?.click()},className:`mt-1 inline-flex items-center gap-1 text-[11px] font-medium text-muted-foreground transition-colors hover:text-foreground`,children:[(0,G.jsx)(hn,{"aria-hidden":`true`,className:`size-3`}),`Edit in WQL bar`]})]}):(0,G.jsxs)(`form`,{onSubmit:e=>{e.preventDefault();let t=o.trim();t&&(a(t),s(``))},className:`flex items-center gap-1 px-1 py-1.5`,children:[(0,G.jsx)(`input`,{value:o,onChange:e=>s(e.target.value),placeholder:t,"aria-label":t,"data-testid":`conditions-input-${e}`,disabled:n,className:`h-8 min-w-0 flex-1 rounded-md border border-border/60 bg-background px-2 text-xs text-foreground placeholder:text-muted-foreground/60 focus:outline-none focus:ring-1 focus:ring-primary/40`}),(0,G.jsx)(`button`,{type:`submit`,"aria-label":`Add ${t}`,"data-testid":`conditions-add-${e}`,disabled:n||!o.trim(),className:`flex size-8 shrink-0 items-center justify-center rounded-md border border-border/60 text-muted-foreground transition-colors hover:bg-foreground/5 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50`,children:(0,G.jsx)(Qn,{"aria-hidden":`true`,className:`size-3.5`})})]})}var TR=e=>new URLSearchParams(e.search).get(`q`)??``;function ER(e){return function(t){let n=wn(),r=ln(),i=bI(e.profile),a=TR(n),o=a&&!X(a).error?a:i.defaultWql,s=e=>hR(n,r,e),c=jF(),l=$I(),u=l&&l.pathname===n.pathname&&l.query===o?l.entries.slice(0,8):[],d=HI(e.route),f={pathname:n.pathname,query:TR(n)},p=d.find(e=>e.id===`all`)??null,m=d.filter(e=>e.to===void 0&&e.id!==`all`),h=p?.wql??``,g=p?.label??e.landingLabel,_=p?xI[p.icon]:e.icon,v=f.query&&!X(f.query).error&&!d.some(e=>WI(e,f))?o:null,[y,b]=(0,W.useState)(!1);return(0,G.jsxs)(`div`,{className:`-mx-4 flex flex-col gap-1 py-3`,"data-testid":`conditions-nav-panel`,children:[(0,G.jsxs)(BF,{className:`px-6`,children:[v?(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,"data-testid":`conditions-nav-custom`,children:[(0,G.jsxs)(HF,{current:!0,className:`min-w-0 flex-1`,title:v,"aria-label":`Custom query: ${v}`,onClick:()=>{s(v),c()},children:[_&&(0,G.jsx)(_,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:`Custom`})]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>b(!0),"aria-label":`Save shortcut`,title:`Save shortcut`,"data-testid":`conditions-nav-custom-save`,className:`grid size-8 shrink-0 place-items-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground`,children:(0,G.jsx)(C,{className:`size-4`,"aria-hidden":`true`})}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>{h?s(h):r(e.route),c()},"aria-label":`Clear query`,title:`Clear to all entries`,"data-testid":`conditions-nav-custom-clear`,className:`grid size-8 shrink-0 place-items-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground`,children:(0,G.jsx)(_r,{className:`size-4`,"aria-hidden":`true`})})]}):(0,G.jsxs)(HF,{onClick:()=>{h?s(h):r(e.route),c()},current:h&&p?WI(p,f):e.familyActive(n)&&TR(n).trim()===``,children:[_&&(0,G.jsx)(_,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:g})]}),m.map(t=>{let n=xI[t.icon];return(0,G.jsxs)(HF,{onClick:()=>{t.wql?s(t.wql):r(e.route),c()},current:WI(t,f),"data-testid":`nav-shortcut-${t.id}`,children:[(0,G.jsx)(n,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:t.label})]},`shortcut-${t.id}`)}),(e.extraChildren??[]).map(e=>{let t=e.action.type===`route`?e.action.to:null,i=t?d.find(e=>e.to===t):null,a=i?xI[i.icon]:null;return(0,G.jsxs)(HF,{onClick:()=>{e.action&&(FL(e.action,{navigate:r,setQueryParam:()=>{}}),c())},current:e.isActive?.(n)??!1,"data-testid":i?`nav-shortcut-${i.id}`:e.id,children:[a?(0,G.jsx)(a,{"data-slot":`icon`}):e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:i?.label??e.label})]},e.id)})]}),u.length>0&&(0,G.jsxs)(BF,{className:`px-6`,"data-testid":`conditions-nav-recent`,children:[(0,G.jsx)(VF,{children:`Recent`}),u.map(e=>{let t=e.execution?.timestamp?new Date(e.execution.timestamp).toLocaleTimeString(`en-US`,{hour:`numeric`,minute:`2-digit`}):null;return(0,G.jsxs)(HF,{href:AL(e),onClick:c,"data-testid":`conditions-nav-recent-link`,children:[(0,G.jsx)(UF,{children:e.title}),t&&(0,G.jsx)(`span`,{className:`ml-auto text-[10px] text-muted-foreground/60 tabular-nums shrink-0`,children:t})]},`${e.id}:${e.block?.blockId??``}`)})]}),(0,G.jsx)(qI,{open:y,onOpenChange:b,route:e.route,initialQuery:o})]})}}var DR=e=>JR(e.pathname,`/journal`,`/day`),OR=e=>JR(e.pathname,`/playgrounds`,`/playground`),kR={id:`journal-all-notes`,label:`All`,level:2,icon:L,action:{type:`route`,to:`/journal?q=%3Anote%7B!source%3Aplayground%7D`},isActive:e=>e.pathname===$.journal&&new URLSearchParams(e.search).get(`q`)===`:note{!source:playground}`},AR=[{id:`notebooks-view-playgrounds`,label:`Playgrounds`,level:2,icon:k,action:{type:`route`,to:$.playgrounds},isActive:OR},{id:`notebooks-configure-sources`,label:`Configure sources`,level:2,icon:qn,action:{type:`route`,to:$.settingsSync},isActive:e=>JR(e.pathname,$.settingsSync)}],jR=ER({landingLabel:`Subscribed notebooks`,icon:pe,route:$.notebooks,profile:TP,extraChildren:AR,familyActive:e=>JR(e.pathname,`/notebooks`,`/notebook`,`/playgrounds`,`/playground`)}),MR=ER({landingLabel:`All entries`,icon:sr,route:$.journal,profile:wP,extraChildren:[kR],familyActive:DR}),NR=ER({landingLabel:`All playgrounds`,icon:k,route:$.playgrounds,profile:NP,extraChildren:AR,familyActive:OR});function PR(e){let t=wn();return DR(t)?(0,G.jsx)(MR,{...e}):OR(t)?(0,G.jsx)(NR,{...e}):(0,G.jsx)(jR,{...e})}function FR(e=[]){return[{id:`pages-sub-all`,label:`All Pages`,level:2,icon:kn,action:{type:`route`,to:$.pages},isActive:e=>e.pathname===$.pages},{id:`pages-sub-notes`,label:`Notes`,level:2,icon:Ut,action:{type:`route`,to:$.notes},isActive:e=>e.pathname===`/notes`||e.pathname.startsWith(`/note/`)&&!e.pathname.startsWith(`/notebook`)},...WR(e)]}function IR(e=[]){let t=FR(e),n=ER({landingLabel:`All pages`,icon:kn,route:$.pages,profile:OP,extraChildren:t,familyActive:e=>JR(e.pathname,`/pages`,`/page`)}),r=ER({landingLabel:`All notes`,icon:Ut,route:$.notes,profile:EP,extraChildren:t,familyActive:e=>e.pathname===`/notes`||e.pathname.startsWith(`/note/`)&&!e.pathname.startsWith(`/notebook`)});return function(e){let t=wn();return t.pathname===`/notes`||t.pathname.startsWith(`/note/`)&&!t.pathname.startsWith(`/notebook`)?(0,G.jsx)(r,{...e}):(0,G.jsx)(n,{...e})}}var LR=`wodwiki.unpinnedGuides.v1`,RR=new jx;function zR(e){return!(RR.get(LR)??[]).includes(e)}function BR(e,t){let n=new Set(RR.get(LR)??[]);t?n.delete(e):n.add(e),RR.set(LR,Array.from(n))}var VR=`https://www.buymeacoffee.com/sergeigolos`,HR=({className:e,...t})=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 884 1279`,fill:`currentColor`,className:e,"aria-hidden":`true`,...t,children:[(0,G.jsx)(`path`,{d:`M791.109 297.518L790.231 297.002L788.201 296.383C789.018 297.072 790.04 297.472 791.109 297.518V297.518Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M803.896 388.891L802.916 389.166L803.896 388.891Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M791.484 297.377C791.359 297.361 791.237 297.332 791.118 297.29C791.111 297.371 791.111 297.453 791.118 297.534C791.252 297.516 791.379 297.462 791.484 297.377V297.377Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M791.113 297.529H791.244V297.447L791.113 297.529Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M803.111 388.726L804.591 387.883L805.142 387.573L805.641 387.04C804.702 387.444 803.846 388.016 803.111 388.726V388.726Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M793.669 299.515L792.223 298.138L791.243 297.605C791.77 298.535 792.641 299.221 793.669 299.515V299.515Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M430.019 1186.18C428.864 1186.68 427.852 1187.46 427.076 1188.45L427.988 1187.87C428.608 1187.3 429.485 1186.63 430.019 1186.18Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M641.187 1144.63C641.187 1143.33 640.551 1143.57 640.705 1148.21C640.705 1147.84 640.86 1147.46 640.929 1147.1C641.015 1146.27 641.084 1145.46 641.187 1144.63Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M619.284 1186.18C618.129 1186.68 617.118 1187.46 616.342 1188.45L617.254 1187.87C617.873 1187.3 618.751 1186.63 619.284 1186.18Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M281.304 1196.06C280.427 1195.3 279.354 1194.8 278.207 1194.61C279.136 1195.06 280.065 1195.51 280.684 1195.85L281.304 1196.06Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M247.841 1164.01C247.704 1162.66 247.288 1161.35 246.619 1160.16C247.093 1161.39 247.489 1162.66 247.806 1163.94L247.841 1164.01Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M472.623 590.836C426.682 610.503 374.546 632.802 306.976 632.802C278.71 632.746 250.58 628.868 223.353 621.274L270.086 1101.08C271.74 1121.13 280.876 1139.83 295.679 1153.46C310.482 1167.09 329.87 1174.65 349.992 1174.65C349.992 1174.65 416.254 1178.09 438.365 1178.09C462.161 1178.09 533.516 1174.65 533.516 1174.65C553.636 1174.65 573.019 1167.08 587.819 1153.45C602.619 1139.82 611.752 1121.13 613.406 1101.08L663.459 570.876C641.091 563.237 618.516 558.161 593.068 558.161C549.054 558.144 513.591 573.303 472.623 590.836Z`,fill:`#FFDD00`}),(0,G.jsx)(`path`,{d:`M78.6885 386.132L79.4799 386.872L79.9962 387.182C79.5987 386.787 79.1603 386.435 78.6885 386.132V386.132Z`,fill:`#0D0C22`}),(0,G.jsx)(`path`,{d:`M879.567 341.849L872.53 306.352C866.215 274.503 851.882 244.409 819.19 232.898C808.711 229.215 796.821 227.633 788.786 220.01C780.751 212.388 778.376 200.55 776.518 189.572C773.076 169.423 769.842 149.257 766.314 129.143C763.269 111.85 760.86 92.4243 752.928 76.56C742.604 55.2584 721.182 42.8009 699.88 34.559C688.965 30.4844 677.826 27.0375 666.517 24.2352C613.297 10.1947 557.342 5.03277 502.591 2.09047C436.875 -1.53577 370.983 -0.443234 305.422 5.35968C256.625 9.79894 205.229 15.1674 158.858 32.0469C141.91 38.224 124.445 45.6399 111.558 58.7341C95.7448 74.8221 90.5829 99.7026 102.128 119.765C110.336 134.012 124.239 144.078 138.985 150.737C158.192 159.317 178.251 165.846 198.829 170.215C256.126 182.879 315.471 187.851 374.007 189.968C438.887 192.586 503.87 190.464 568.44 183.618C584.408 181.863 600.347 179.758 616.257 177.304C634.995 174.43 647.022 149.928 641.499 132.859C634.891 112.453 617.134 104.538 597.055 107.618C594.095 108.082 591.153 108.512 588.193 108.942L586.06 109.252C579.257 110.113 572.455 110.915 565.653 111.661C551.601 113.175 537.515 114.414 523.394 115.378C491.768 117.58 460.057 118.595 428.363 118.647C397.219 118.647 366.058 117.769 334.983 115.722C320.805 114.793 306.661 113.611 292.552 112.177C286.134 111.506 279.733 110.801 273.333 110.009L267.241 109.235L265.917 109.046L259.602 108.134C246.697 106.189 233.792 103.953 221.025 101.251C219.737 100.965 218.584 100.249 217.758 99.2193C216.932 98.1901 216.482 96.9099 216.482 95.5903C216.482 94.2706 216.932 92.9904 217.758 91.9612C218.584 90.9319 219.737 90.2152 221.025 89.9293H221.266C232.33 87.5721 243.479 85.5589 254.663 83.8038C258.392 83.2188 262.131 82.6453 265.882 82.0832H265.985C272.988 81.6186 280.026 80.3625 286.994 79.5366C347.624 73.2302 408.614 71.0801 469.538 73.1014C499.115 73.9618 528.676 75.6996 558.116 78.6935C564.448 79.3474 570.746 80.0357 577.043 80.8099C579.452 81.1025 581.878 81.4465 584.305 81.7391L589.191 82.4445C603.438 84.5667 617.61 87.1419 631.708 90.1703C652.597 94.7128 679.422 96.1925 688.713 119.077C691.673 126.338 693.015 134.408 694.649 142.03L696.731 151.752C696.786 151.926 696.826 152.105 696.852 152.285C701.773 175.227 706.7 198.169 711.632 221.111C711.994 222.806 712.002 224.557 711.657 226.255C711.312 227.954 710.621 229.562 709.626 230.982C708.632 232.401 707.355 233.6 705.877 234.504C704.398 235.408 702.75 235.997 701.033 236.236H700.895L697.884 236.649L694.908 237.044C685.478 238.272 676.038 239.419 666.586 240.486C647.968 242.608 629.322 244.443 610.648 245.992C573.539 249.077 536.356 251.102 499.098 252.066C480.114 252.57 461.135 252.806 442.162 252.771C366.643 252.712 291.189 248.322 216.173 239.625C208.051 238.662 199.93 237.629 191.808 236.58C198.106 237.389 187.231 235.96 185.029 235.651C179.867 234.928 174.705 234.177 169.543 233.397C152.216 230.798 134.993 227.598 117.7 224.793C96.7944 221.352 76.8005 223.073 57.8906 233.397C42.3685 241.891 29.8055 254.916 21.8776 270.735C13.7217 287.597 11.2956 305.956 7.64786 324.075C4.00009 342.193 -1.67805 361.688 0.472751 380.288C5.10128 420.431 33.165 453.054 73.5313 460.35C111.506 467.232 149.687 472.807 187.971 477.556C338.361 495.975 490.294 498.178 641.155 484.129C653.44 482.982 665.708 481.732 677.959 480.378C681.786 479.958 685.658 480.398 689.292 481.668C692.926 482.938 696.23 485.005 698.962 487.717C701.694 490.429 703.784 493.718 705.08 497.342C706.377 500.967 706.846 504.836 706.453 508.665L702.633 545.797C694.936 620.828 687.239 695.854 679.542 770.874C671.513 849.657 663.431 928.434 655.298 1007.2C653.004 1029.39 650.71 1051.57 648.416 1073.74C646.213 1095.58 645.904 1118.1 641.757 1139.68C635.218 1173.61 612.248 1194.45 578.73 1202.07C548.022 1209.06 516.652 1212.73 485.161 1213.01C450.249 1213.2 415.355 1211.65 380.443 1211.84C343.173 1212.05 297.525 1208.61 268.756 1180.87C243.479 1156.51 239.986 1118.36 236.545 1085.37C231.957 1041.7 227.409 998.039 222.9 954.381L197.607 711.615L181.244 554.538C180.968 551.94 180.693 549.376 180.435 546.76C178.473 528.023 165.207 509.681 144.301 510.627C126.407 511.418 106.069 526.629 108.168 546.76L120.298 663.214L145.385 904.104C152.532 972.528 159.661 1040.96 166.773 1109.41C168.15 1122.52 169.44 1135.67 170.885 1148.78C178.749 1220.43 233.465 1259.04 301.224 1269.91C340.799 1276.28 381.337 1277.59 421.497 1278.24C472.979 1279.07 524.977 1281.05 575.615 1271.72C650.653 1257.95 706.952 1207.85 714.987 1130.13C717.282 1107.69 719.576 1085.25 721.87 1062.8C729.498 988.559 737.115 914.313 744.72 840.061L769.601 597.451L781.009 486.263C781.577 480.749 783.905 475.565 787.649 471.478C791.392 467.391 796.352 464.617 801.794 463.567C823.25 459.386 843.761 452.245 859.023 435.916C883.318 409.918 888.153 376.021 879.567 341.849ZM72.4301 365.835C72.757 365.68 72.1548 368.484 71.8967 369.792C71.8451 367.813 71.9483 366.058 72.4301 365.835ZM74.5121 381.94C74.6842 381.819 75.2003 382.508 75.7337 383.334C74.925 382.576 74.4089 382.009 74.4949 381.94H74.5121ZM76.5597 384.641C77.2996 385.897 77.6953 386.689 76.5597 384.641V384.641ZM80.672 387.979H80.7752C80.7752 388.1 80.9645 388.22 81.0333 388.341C80.9192 388.208 80.7925 388.087 80.6548 387.979H80.672ZM800.796 382.989C793.088 390.319 781.473 393.726 769.996 395.43C641.292 414.529 510.713 424.199 380.597 419.932C287.476 416.749 195.336 406.407 103.144 393.382C94.1102 392.109 84.3197 390.457 78.1082 383.798C66.4078 371.237 72.1548 345.944 75.2003 330.768C77.9878 316.865 83.3218 298.334 99.8572 296.355C125.667 293.327 155.64 304.218 181.175 308.09C211.917 312.781 242.774 316.538 273.745 319.36C405.925 331.405 540.325 329.529 671.92 311.91C695.905 308.686 719.805 304.941 743.619 300.674C764.835 296.871 788.356 289.731 801.175 311.703C809.967 326.673 811.137 346.701 809.778 363.615C809.359 370.984 806.139 377.915 800.779 382.989H800.796Z`,fill:`#0D0C22`})]}),UR={"/page/guide-start":0,"/page/guide-protocols":1,"/page/guide-structure":2,"/page/guide-metrics":3,"/page/guide-clock":4,"/page/guide-wql":5,"/page/guide-dashboards":6,"/page/guide-sessions":7,"/page/guide-metrics-summaries":8};function WR(e){return e.filter(e=>!e.route.startsWith(`/notebook`)).filter(e=>e.page.frontmatter?.type===`guide`).filter(e=>zR(e.route)).sort((e,t)=>(UR[e.route]??99)-(UR[t.route]??99)).map(e=>({id:`guide-${e.route}`,label:e.page.sections[0]?.heading??`Untitled`,level:2,icon:mr,action:{type:`route`,to:e.route},isActive:t=>t.pathname===e.route,pinned:!0,onTogglePin:()=>{BR(e.route,!1)}}))}function GR(e){return[{id:`home-landing`,label:`Home`,level:2,icon:T,action:{type:`route`,to:$.home},isActive:e=>e.pathname===`/`||e.pathname===``||e.pathname===$.home},{id:`home-all-pages`,label:`All pages`,level:2,icon:kn,action:{type:`route`,to:$.pages},isActive:e=>e.pathname===$.pages},...WR(e)]}var KR=e=>e.replace(/^\//,``).replace(/\/$/,``),qR=e=>{let t=KR(e);return t.charAt(0).toUpperCase()+t.slice(1)},JR=(e,...t)=>t.some(t=>e===t||e.startsWith(`${t}/`));function YR(e){return{id:KR(e.route),label:qR(e.route),level:1,icon:e.icon,action:{type:`route`,to:e.route},isActive:t=>e.familyActive(t),applyFooter:!0,panel:ER({landingLabel:e.landingLabel,icon:e.icon,route:e.route,profile:e.profile,extraChildren:e.extraChildren,familyActive:e.familyActive})}}function XR(e,t=[]){let n=GR(t),r=IR(t);return[{id:`home`,label:`Home`,level:1,icon:T,action:{type:`route`,to:$.home},isActive:e=>e.pathname===`/`||e.pathname===``||e.pathname===$.home||e.pathname===$.aiFirst||e.pathname.startsWith(`/ai-first/`),children:n},{id:KR($.journal),label:qR($.journal),level:1,icon:sr,action:{type:`route`,to:$.journal},isActive:e=>JR(e.pathname,`/journal`,`/day`),applyFooter:!0,panel:MR},{id:KR($.notebooks),label:qR($.notebooks),level:1,icon:pe,action:{type:`route`,to:$.notebooks},isActive:e=>JR(e.pathname,`/notebooks`,`/notebook`,`/playgrounds`,`/playground`),applyFooter:!0,panel:PR},{id:KR($.pages),label:qR($.pages),level:1,icon:kn,action:{type:`route`,to:$.pages},isActive:e=>JR(e.pathname,`/pages`,`/page`,`/canvas`,`/notes`,`/note`),applyFooter:!0,panel:r},YR({landingLabel:`All Efforts`,icon:be,route:$.efforts,profile:kP,familyActive:e=>uF(e.pathname)}),YR({landingLabel:`All Equipment`,icon:f,route:$.equipment,profile:AP,familyActive:e=>dF(e.pathname)}),YR({landingLabel:`All Tags`,icon:Ye,route:$.tags,profile:jP,familyActive:e=>JR(e.pathname,`/tags`,`/t`)}),{id:KR($.dashboards),label:qR($.dashboards),level:1,icon:$n,action:{type:`route`,to:$.dashboards},isActive:e=>e.pathname===$.dashboards||e.pathname.startsWith(`/dashboard/`),panel:NF},YR({landingLabel:`All Sessions`,icon:Rn,route:$.sessions,profile:MP,familyActive:e=>JR(e.pathname,`/sessions`,`/session`,`/results`)}),{id:`settings`,label:`Settings`,level:1,icon:qn,action:{type:`route`,to:$.settingsAppearance},isActive:e=>JR(e.pathname,`/settings`,`/feeds`,`/feed`),children:[{id:`settings-profile`,label:`Profile`,level:2,icon:Le,action:{type:`route`,to:$.settingsProfile},isActive:e=>e.pathname===$.settingsProfile},{id:`settings-feeds`,label:`Feeds & Sources`,level:2,icon:Ut,action:{type:`route`,to:$.feeds},isActive:e=>JR(e.pathname,`/feeds`,`/feed`)},{id:`settings-appearance`,label:`Appearance`,level:2,icon:v,action:{type:`route`,to:$.settingsAppearance},isActive:e=>e.pathname===$.settings||e.pathname===$.settingsAppearance},{id:`settings-tags`,label:`Tag Types`,level:2,icon:Ye,action:{type:`route`,to:$.settingsTags},isActive:e=>e.pathname===$.settingsTags},{id:`settings-sound-profiles`,label:`Sound Profiles`,level:2,icon:F,action:{type:`route`,to:$.settingsSoundProfiles},isActive:e=>e.pathname===$.settingsSoundProfiles},{id:`settings-sync`,label:`Sync`,level:2,icon:ft,action:{type:`route`,to:$.settingsSync},isActive:e=>e.pathname===$.settingsSync},{id:`settings-storage`,label:`Storage`,level:2,icon:At,action:{type:`route`,to:$.settingsStorage},isActive:e=>e.pathname===$.settingsStorage},{id:`settings-system`,label:`System`,level:2,icon:bn,action:{type:`route`,to:$.settingsSystem},isActive:e=>e.pathname===$.settingsSystem}]},{id:`buy-me-a-coffee`,label:`Buy Me a Coffee`,level:1,icon:HR,action:{type:`external`,href:VR}}]}XR(()=>{});var ZR={slate:{panel:`border-slate-500/35 shadow-slate-500/12`,accent:`from-slate-500/70 via-slate-400/25 to-transparent`,progress:`from-slate-500 to-slate-400`},amber:{panel:`border-amber-500/35 shadow-amber-500/12`,accent:`from-amber-500/75 via-amber-400/25 to-transparent`,progress:`from-amber-500 to-orange-400`},emerald:{panel:`border-emerald-500/35 shadow-emerald-500/12`,accent:`from-emerald-500/75 via-emerald-400/25 to-transparent`,progress:`from-emerald-500 to-teal-400`},sky:{panel:`border-sky-500/35 shadow-sky-500/12`,accent:`from-sky-500/75 via-sky-400/25 to-transparent`,progress:`from-sky-500 to-cyan-400`},violet:{panel:`border-violet-500/35 shadow-violet-500/12`,accent:`from-violet-500/75 via-fuchsia-400/25 to-transparent`,progress:`from-violet-500 to-fuchsia-400`},rose:{panel:`border-rose-500/35 shadow-rose-500/12`,accent:`from-rose-500/75 via-pink-400/25 to-transparent`,progress:`from-rose-500 to-pink-400`}};function QR(e){return e.proseChunks.filter(e=>e.kind===`prose`).map(e=>e.text).join(``)}function $R(e){let t=new Map;for(let n of e.sections)for(let e of n.proseChunks)e.kind===`challenge`&&t.set(e.id,n.id);return t}function ez(e){return e.toLowerCase().replace(/[^\w\s-]/g,``).replace(/\s+/g,`-`).replace(/^-+|-+$/g,``)}function tz(e){let t=e.match(/^(#{1,6}) (.+)$/);if(!t)return null;let n=t[1].length,r=t[2],i=r.match(/\{([^}]+)\}$/),a=i?i[1].trim().split(/\s+/).filter(Boolean):[];return{level:n,text:i?r.slice(0,i.index).trim():r.trim(),attrs:a}}function nz(e){let t={};for(let n of e){let e=n.match(/^([a-zA-Z][\w-]*):\s*(.+)$/);e&&(t[e[1]]=e[2].trim())}return t}function rz(e){let t=[];for(let n of e){let e=n.match(/^\s*-\s+([\w-]+):\s+(.+)$/);e&&t.push({action:e[1],value:e[2].trim()})}return t}function iz(e){let t=e.split(`
86
86
  `),n=nz(t),r=[];for(let e of t){let t=e.match(/^button:\s*(.+)$/);if(!t)continue;let n=t[1].split(`|`).map(e=>e.trim()),i=n[0]??`Run`,a,o=[];for(let e of n.slice(1)){let t=e.match(/^open:\s*(view|dialog|route)$/);if(t){a=t[1];continue}o.push(`- ${e}`)}r.push({label:i,open:a,pipeline:rz(o)})}return{name:n.name??`view`,state:n.state??`note`,source:n.source??``,runtime:n.runtime,launch:n.launch,align:n.align??`right`,width:n.width??`50%`,buttons:r}}function az(e){let t=e.split(`
87
87
  `),n=``,r;for(let e of t){let t=e.match(/^target:\s*(.+)$/);if(t){n=t[1].trim();continue}let i=e.match(/^open:\s*(view|dialog|route)$/);if(i){r=i[1];continue}}return{target:n,open:r,pipeline:rz(t)}}function oz(e){let t=e.split(`
@@ -106,7 +106,7 @@ sum:$metric{} by {week}
106
106
 
107
107
  `,i=n?.from??e.rawContent.length,a=n?.to??i,o=r+t.rawContent,s=o.length-(a-i),c={};for(let[n,r]of Object.entries(e.blocks))n!==t.blockId&&(c[n]=r.from>=a?{...r,from:r.from+s,to:r.to+s}:r);return c[t.blockId]={id:t.blockId,kind:t.kind,version:n?.version??t.version,sourceRevision:e.sourceRevision,from:i+r.length,to:i+o.length,...t.dialect?{dialect:t.dialect}:{},...t.sport?{sport:t.sport}:{}},{...e,rawContent:e.rawContent.slice(0,i)+o+e.rawContent.slice(a),blocks:c}}function Rz({noteId:e,sourceRevision:t,blocks:n={},persistence:r=tj,onRevert:i}){let[a,o]=(0,W.useState)([]),[s,c]=(0,W.useState)(``),[l,u]=(0,W.useState)(0),[d,f]=(0,W.useState)(0),[p,m]=(0,W.useState)(null),[h,g]=(0,W.useState)(!1);(0,W.useEffect)(()=>{let t=!1;return m(null),r.getNoteBlockHistory(e).then(e=>{t||o(e.toSorted((e,t)=>e.savedAt-t.savedAt||e.version-t.version))}).catch(e=>{t||m(e instanceof Error?e.message:String(e))}),()=>{t=!0}},[e,t,r]);let _=Array.from(new Set(a.map(e=>e.blockId))),v=_.includes(s)?s:_[0]??``,y=a.filter(e=>e.blockId===v).toSorted((e,t)=>e.version-t.version),b=y.find(e=>e.version===l)??y[0],x=y.find(e=>e.version===d)??y.at(-1),S=async()=>{if(!(!b||!i)){g(!0),m(null);try{await i(b),o(await r.getNoteBlockHistory(e))}catch(e){m(e instanceof Error?e.message:String(e))}finally{g(!1)}}};return(0,G.jsxs)(`details`,{className:`rounded-lg border border-border p-3`,children:[(0,G.jsx)(`summary`,{className:`cursor-pointer font-medium focus-visible:ring-2`,children:`Saved block history`}),(0,G.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[p&&(0,G.jsx)(`p`,{role:`alert`,children:p}),_.length===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No saved actionable blocks.`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`label`,{className:`block text-sm`,children:[`Block occurrence`,(0,G.jsx)(`select`,{className:`mt-1 block max-w-full rounded border bg-background p-2 text-foreground focus-visible:ring-2`,value:v,onChange:e=>{c(e.target.value),u(0),f(0)},children:_.map((e,t)=>(0,G.jsxs)(`option`,{value:e,children:[`Block `,t+1,` · `,e,n[e]?``:` · removed`]},e))})]}),(0,G.jsx)(`ol`,{"aria-label":`Saved versions`,className:`space-y-1 text-sm`,style:{contentVisibility:`auto`},children:y.map(e=>(0,G.jsxs)(`li`,{children:[`v`,e.version,` · `,(0,G.jsx)(`time`,{dateTime:new Date(e.savedAt).toISOString(),children:Hb(new Date(e.savedAt))}),` · `,e.kind,e.dialect?` · ${e.dialect}`:``,e.sport?` · ${e.sport}`:``]},e.version))}),(0,G.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[{label:`Compare saved version`,row:b,set:u},{label:`With saved version`,row:x,set:f}].map(({label:e,row:t,set:n})=>(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsxs)(`label`,{className:`block text-sm`,children:[e,(0,G.jsx)(`select`,{className:`ml-2 rounded border bg-background p-1 text-foreground focus-visible:ring-2`,value:t?.version??0,onChange:e=>n(Number(e.target.value)),children:y.map(e=>(0,G.jsxs)(`option`,{value:e.version,children:[`v`,e.version]},e.version))})]}),(0,G.jsx)(`pre`,{"aria-label":`${e} source`,className:`mt-2 max-h-80 overflow-auto whitespace-pre-wrap break-words rounded bg-muted p-3 text-xs`,children:t?.rawContent})]},e))}),(0,G.jsx)(`p`,{role:`status`,"aria-live":`polite`,className:`text-sm`,children:b?.rawContent===x?.rawContent&&b?.kind===x?.kind&&b?.dialect===x?.dialect&&b?.sport===x?.sport?`Saved states are identical.`:`Saved states differ.`}),i&&b&&(0,G.jsx)(`button`,{type:`button`,disabled:h,className:`rounded border px-3 py-2 hover:bg-accent focus-visible:ring-2 disabled:opacity-50`,onClick:()=>void S(),children:h?`Saving…`:`Restore v${b.version} as a new saved version`})]})]})]})}async function zz(e){let t=await ck(),n=[`markdown/notebooks/${e}.md`,`markdown/canvas/${e}.md`];for(let e of n)if(t[e])return t[e];let r=`/${e}.md`.toLowerCase(),i=Object.entries(t).find(([e])=>e.toLowerCase().endsWith(r));return i?i[1]:void 0}async function Bz(e){return await zz(e)??null}var Vz=class{transport;handlers=new Set;transportUnsub=null;disposed=!1;constructor(e){this.transport=e,this.transportUnsub=this.transport.onMessage(e=>{if(e.type===`rpc-event`){let t={name:e.name,timestamp:new Date(e.timestamp),data:e.data};for(let e of this.handlers)e(t)}})}dispatch(e){this.disposed||!this.transport.connected||this.transport.send({type:`rpc-event`,name:e.name,timestamp:e.timestamp.getTime(),data:e.data})}onEvent(e){return this.disposed?()=>{}:(this.handlers.add(e),()=>this.handlers.delete(e))}dispose(){this.disposed||(this.disposed=!0,this.transportUnsub?.(),this.transportUnsub=null,this.handlers.clear())}};function Hz(e){let t=e.getMemoryByTag(`time`);if(t.length===0)return null;let n=t[0].metrics;if(n.length===0)return null;let r=n[0]?.value;if(!r||!Array.isArray(r.spans))return null;let i=r.spans.map(e=>({started:e.started,ended:e.ended})),a=r.direction??`up`,o=r.role,s=o===`hidden`?`auto`:o;return{label:r.label,format:a,durationMs:r.durationMs,direction:a,spans:i,isRunning:i.some(e=>e.ended===void 0),role:s}}function Uz(e){let t=e.getMetricMemoryByVisibility(`display`).map(e=>e.metrics.toArray()),n=e.getMetricMemoryByVisibility(`promote`).map(e=>e.metrics.toArray()),r=e.getMetricMemoryByVisibility(`result`).map(e=>e.metrics.toArray()),i=e.getMetricMemoryByVisibility(`private`),a={};for(let e of i)a[e.tag]||(a[e.tag]=[]),a[e.tag].push(e.metrics.toArray());let o=e.getMemoryByTag(`metric:next`).flatMap(e=>e.metrics.toArray()),s;try{e.behaviors&&e.behaviors.length>0&&(s=e.behaviors.map(e=>({name:e.constructor.name})))}catch{}return{key:e.key.toString(),blockType:e.blockType??`Block`,label:e.label,sourceIds:[...e.sourceIds],isComplete:e.isComplete,completionReason:e.completionReason,displayFragments:t,promoteFragments:n.length>0?n:void 0,resultFragments:r.length>0?r:void 0,privateFragments:Object.keys(a).length>0?a:void 0,timer:Hz(e),nextFragments:o,behaviorsMetadata:s}}function Wz(e){return{type:`rpc-stack-update`,snapshotType:e.type,blocks:e.blocks.map(Uz),affectedBlockKey:e.affectedBlock?.key.toString(),depth:e.depth,clockTime:e.clockTime.getTime()}}function Gz(e){let t=e.timeSpan.started,n=e.timeSpan.ended,r=n===void 0?0:n-t;return{type:`rpc-output`,outputType:e.outputType,sourceBlockKey:e.sourceBlockKey,stackLevel:e.stackLevel,metrics:Array.isArray(e.metrics)?e.metrics:e.metrics.toArray(),completionReason:e.completionReason,timeSpan:{started:t,ended:n},elapsed:r}}function Kz(e,t,n){return{type:`rpc-analytics-summary`,totalDurationMs:t,completedSegments:n,projections:e}}function qz(e){return(e??[]).map(e=>e.map(e=>`${e?.type??``}:${e?.value==null||typeof e.value==`object`?``:String(e.value)}:${e?.image??``}:${e?.unit??``}`).join(`,`)).join(`;`)}var Jz=class{transport;id;lastFingerprint=``;constructor(e,t){this.transport=e,this.id=t?.id??`chromecast`}onStackSnapshot(e){if(!this.transport.connected)return;let t=Wz(e),n=this.computeFingerprint(t);n!==this.lastFingerprint&&(this.lastFingerprint=n,this.transport.send(t))}onOutput(e){this.transport.connected&&this.transport.send(Gz(e))}sendAnalyticsSummary(e,t,n){this.transport.connected&&this.transport.send(Kz(e,t,n))}dispose(){this.lastFingerprint=``}computeFingerprint(e){let t=[e.snapshotType,String(e.depth)];for(let n of e.blocks){t.push(`${n.key}:${n.blockType}:${n.label}:${n.isComplete}`),n.timer&&t.push(`timer:${n.timer.isRunning}:${n.timer.spans.length}:${n.timer.durationMs}:${n.timer.spans[0]?.started??``}:${n.timer.role??``}`),t.push(`frags:${qz(n.displayFragments)}`),t.push(`promote:${qz(n.promoteFragments)}`),t.push(`result:${qz(n.resultFragments)}`);let e=Object.keys(n.privateFragments??{}).sort().join(`,`);t.push(`private:${e}`);let r=n.nextFragments?.map(e=>`${e.type??``}:${e.image??(e.value==null?``:String(e.value))}`).join(`,`)??``;t.push(`next:${r}`);let i=n.behaviorsMetadata?.map(e=>e.name).join(`,`)??``;t.push(`behaviors:${i}`)}return t.join(`|`)}},Yz=class{transport;options;disposed=!1;syncSamples=[];constructor(e,t={}){this.transport=e,this.options=t}async sync(){let e=this.options.samples??3,t=this.options.maxRttMs??500;console.log(`[ClockSyncService] Starting sync (${e} samples, max RTT: ${t}ms)`),this.syncSamples.length=0;for(let n=0;n<e;n++){if(this.disposed)throw Error(`ClockSyncService was disposed during sync`);let r=await this.performSyncSample(t);r===null?console.warn(`[ClockSyncService] Sample ${n+1} failed (RTT exceeded ${t}ms)`):(this.syncSamples.push(r),console.log(`[ClockSyncService] Sample ${n+1}/${e}: offset=${r.offsetMs.toFixed(2)}ms, RTT=${r.rttMs.toFixed(2)}ms`)),n<e-1&&await new Promise(e=>setTimeout(e,100))}if(this.syncSamples.length===0)throw Error(`Clock sync failed: all samples exceeded max RTT`);let n=[...this.syncSamples].map(e=>e.offsetMs).sort((e,t)=>e-t),r=n.length%2==0?(n[n.length/2-1]+n[n.length/2])/2:n[Math.floor(n.length/2)],i=this.syncSamples.reduce((e,t)=>e+t.rttMs,0)/this.syncSamples.length,a={offsetMs:r,avgRttMs:i};return console.log(`[ClockSyncService] Sync complete: offset=${r.toFixed(2)}ms (median), avg RTT=${i.toFixed(2)}ms`),this.sendResult(a),a}sendResult(e){if(this.disposed||!this.transport.connected)return;let t={type:`rpc-clock-sync-result`,offsetMs:e.offsetMs,rttMs:e.avgRttMs};this.transport.send(t)}async performSyncSample(e){let t=Date.now(),n={type:`rpc-clock-sync-request`,timestamp:t};this.transport.send(n);let r=await this.waitForResponse(e=>e.type===`rpc-clock-sync-response`&&e.requestTimestamp===t,2e3),i=Date.now()-t;if(i>e)return null;let a=i/2;return{offsetMs:r.receiverTimestamp-(t+a),rttMs:i}}waitForResponse(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>{a(),r(Error(`Clock sync response timeout after ${t}ms`))},t),a=this.transport.onMessage(t=>{e(t)&&(clearTimeout(i),a(),n(t))})})}dispose(){this.disposed=!0,this.syncSamples.length=0}};function Xz(e,...t){console.warn(`[${e}]`,...t)}function Zz(e,...t){console.error(`[${e}]`,...t)}var Qz={createSubscription:(e,t)=>new Jz(e,{id:t}),createEventProvider:e=>new Vz(e),createClockSync:e=>new Yz(e)},$z=new class{deps;activeHandle=null;activeMeta=null;constructor(e=Qz){this.deps=e}get isConnected(){return this.activeHandle!==null}getActiveHandle(){return this.activeHandle}setSubscriptionRegistry(e){!this.activeHandle||!this.activeMeta||this.activeMeta.registry!==e&&(this.activeMeta.registry&&this.activeMeta.registry.remove(this.activeMeta.subscriptionId),this.activeMeta.registry=e,e&&e.add(this.activeHandle.subscription))}connect(e,t=null,n={}){this.dispose();let r=n.subscriptionId??`chromecast`,i=this.deps.createSubscription(e,r),a=this.deps.createEventProvider(e),o=e.needsClockSync?this.deps.createClockSync(e):null;t?.add(i),o&&o.sync().catch(e=>{Zz(`CastSessionManager`,`Clock sync failed`,e)});let s=e.onDisconnected(()=>this.dispose());return this.activeHandle={transport:e,eventProvider:a,subscription:i,pushInitialWorkbench:t=>{try{e.send(t)}catch{}},dispose:()=>this.dispose()},this.activeMeta={registry:t,subscriptionId:r,unsubDisconnected:s,clockSync:o},this.activeHandle}sendDisposeSignal(){this.activeHandle?.transport.connected&&this.activeHandle.transport.send({type:`rpc-dispose`})}pushInitialWorkbench(e){if(!this.activeHandle)return!1;try{return this.activeHandle.transport.send(e),!0}catch{return!1}}dispose(e=!1){if(!this.activeHandle)return;let t=this.activeHandle,n=this.activeMeta;if(this.activeHandle=null,this.activeMeta=null,n?.unsubDisconnected(),e&&t.transport.connected)try{t.transport.send({type:`rpc-dispose`})}catch{}n?.registry&&n.registry.remove(n.subscriptionId),t.subscription.dispose(),t.eventProvider.dispose(),n?.clockSync?.dispose()}};function eB(){return(0,W.useSyncExternalStore)(Bj,Ij,Ij)}function tB(e,t){if(!e||e.trim().length===0)return{statements:[],errors:[],success:!0};try{let n=e.endsWith(`
108
108
  `)?e:e+`
109
- `;return{statements:mc(Qr.create({doc:n,extensions:[Hc]}),t),errors:[],success:!0}}catch(e){return{statements:[],errors:[{message:e instanceof Error?e.message:`Unknown parse error`,severity:`error`}],success:!1}}}function nB(e,t={}){let n=t.sourceRevision??1,r=Na(e,{...t,blocks:t.noteBlocks,sourceRevision:n}),i=ja(e,t),a=[];for(let e of i){if(!Ma(e))continue;let t=Object.values(r).find(t=>t.from===e.from&&t.to===e.to);t&&(e.id=t.id,e.version=t.version,e.scriptBlock&&(e.scriptBlock=rB({...e.scriptBlock,id:t.id,version:t.version}),a.push(e.scriptBlock)))}return{sections:i,blocks:a,noteBlocks:r,rawContent:e,sourceRevision:n}}function rB(e){try{let t=tB(e.content,e.sport);return{...e,statements:t.statements,errors:t.errors,state:t.success?`parsed`:`error`}}catch(t){return Gj(`WorkbenchDocumentModel`,`Block parse error:`,t),e}}var iB={content:``,sections:null,noteBlocks:{},sourceRevision:0,capturedRun:null,saveError:null,blocks:[],activeBlockId:null,saveState:`idle`,lastSavedContent:``,loadedRouteId:null,results:[],currentEntry:null,historyEntries:[],panelLayouts:{},attachments:[],runtime:null,execution:{status:`idle`,elapsedTime:0,stepCount:0,startTime:null,start:()=>{},pause:()=>{},stop:()=>{},reset:()=>{},step:()=>{}},handles:{handleStart:()=>{},handlePause:()=>{},handleStop:()=>{},handleNext:()=>{},handleStartWorkoutAction:()=>{}},activeSegmentIds:new Set,activeStatementIds:new Set,analyticsSegments:[],analyticsGroups:[],selectedAnalyticsIds:new Set,lastSelectedAnalyticsId:null,outputStatementList:[],logOutputList:[],userOutputOverrides:new Map,gridViewPreset:`default`,hoveredBlockKey:null,documentItems:[],selectedBlock:null,selectedBlockId:null,cursorLine:1,highlightedLine:null,subscriptionManager:null,viewMode:`plan`},aB=5e3;function oB(e={}){let t=e.listeners??[],n=e.nowProvider??Gl,r=e.notePersistence,i=e.setTimeout??((e,t)=>window.setTimeout(e,t)),a=e.clearTimeout??(e=>{typeof e==`number`&&window.clearTimeout(e)}),o=null,s=[],c=Cn()((t,n)=>{let c=Promise.resolve(),l=async i=>{let a=n(),o=a.currentEntry?.id??a.loadedRouteId;if(!(!o||!r||!e.provider?.capabilities.canWrite)&&(i.rawContent!==a.lastSavedContent||JSON.stringify(Object.values(i.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))!==JSON.stringify(Object.values(a.currentEntry?.blocks??{}).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport])))){t({saveState:`saving`,saveError:null});try{let e=await r.saveNote({noteId:o,rawContent:i.rawContent,blocks:i.blocks,expectedSourceRevision:a.sourceRevision,metadata:{title:i.rawContent.match(/^#\s+(.+)$/m)?.[1]?.trim()??`Untitled Session`},noteType:`playground`}),s=n();t({currentEntry:e,...s.content===i.rawContent&&JSON.stringify(Object.values(s.noteBlocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))===JSON.stringify(Object.values(i.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))?{noteBlocks:e.blocks}:{},sourceRevision:e.sourceRevision??a.sourceRevision,lastSavedContent:i.rawContent,saveState:`saved`})}catch(e){throw t({saveState:`error`,saveError:e instanceof Error?e.message:String(e)}),e}}},u=()=>{o=null;let e=n(),t={rawContent:e.content,blocks:e.noteBlocks,sourceRevision:e.sourceRevision},r=c.catch(()=>{}).then(()=>l(t));return c=r,r};return{...iB,setContent:r=>{let s=nB(r,{noteBlocks:n().noteBlocks,sourceRevision:Math.max(1,n().sourceRevision)}),c=n(),l={content:r,sections:s.sections,blocks:s.blocks,noteBlocks:s.noteBlocks};r!==c.lastSavedContent&&(c.saveState===`idle`&&(l.saveState=`changed`),o!==null&&a(o),e.provider&&e.provider.capabilities.canWrite&&(o=i(()=>{u().catch(()=>{})},aB))),t(l)},setBlocks:e=>t({blocks:e}),setEditorIdentity:r=>{let s=JSON.stringify(Object.values(n().noteBlocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))!==JSON.stringify(Object.values(r.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]));t({content:r.rawContent,noteBlocks:r.blocks}),s&&e.provider?.capabilities.canWrite&&(o!==null&&a(o),o=i(()=>{u().catch(()=>{})},aB))},acceptSaved:e=>t(t=>({...t.content===e.rawContent&&JSON.stringify(Object.values(t.noteBlocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))===JSON.stringify(Object.values(e.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))?{noteBlocks:e.blocks}:{},sourceRevision:e.sourceRevision,lastSavedContent:e.rawContent})),restoreBlock:async e=>{if(!r)throw Error(`Note persistence is unavailable.`);await u();let i=n(),a=Lz({rawContent:i.content,blocks:i.noteBlocks,sourceRevision:i.sourceRevision},e),o=await r.saveNote({noteId:e.noteId,rawContent:a.rawContent,blocks:a.blocks,expectedSourceRevision:i.sourceRevision}),s=nB(o.rawContent,{noteBlocks:o.blocks,sourceRevision:o.sourceRevision});t({content:o.rawContent,noteBlocks:o.blocks,sourceRevision:o.sourceRevision,lastSavedContent:o.rawContent,currentEntry:o,sections:s.sections,blocks:s.blocks})},startPinnedRun:async e=>{await c.catch(()=>{});let i=n(),a=i.currentEntry?.id??i.loadedRouteId;if(!a||!r)throw Error(`Save the note before starting a workout.`);try{let n=await Hj({noteId:a,rawContent:i.content,blocks:i.noteBlocks,expectedSourceRevision:i.sourceRevision},e,$t(),void 0,r);return t({capturedRun:n,noteBlocks:n.note.blocks,sourceRevision:n.note.sourceRevision,currentEntry:{...i.currentEntry,...n.note,updatedAt:Date.now(),targetDate:i.currentEntry?.targetDate??Date.now(),schemaVersion:1},lastSavedContent:n.note.rawContent,saveError:null}),n.block}catch(e){throw t({saveState:`error`,saveError:e instanceof Error?e.message:String(e)}),e}},setActiveBlockId:e=>t({activeBlockId:e}),setSaveState:e=>t({saveState:e}),flushSave:async()=>{o!==null&&a(o),o=null,await u()},markSaved:e=>t({lastSavedContent:e,saveState:`saved`}),setResults:e=>t({results:e}),resetResults:()=>t({results:[]}),setCurrentEntry:e=>{if(e&&e.id!==n().currentEntry?.id){let n=nB(e.rawContent,{noteBlocks:e.blocks,sourceRevision:Math.max(1,e.sourceRevision??0)});t({currentEntry:e,content:e.rawContent,noteBlocks:n.noteBlocks,sections:n.sections,blocks:n.blocks,sourceRevision:e.sourceRevision??0,lastSavedContent:e.rawContent})}else t({currentEntry:e})},setHistoryEntries:e=>t({historyEntries:e}),setPanelLayouts:e=>t({panelLayouts:e}),expandPanel:(e,n)=>t(t=>{let r=t.panelLayouts[e]??{viewId:e,panelSpans:{},expandedPanelId:null},i=r.expandedPanelId?r.panelSpans:{...r.panelSpans};return{panelLayouts:{...t.panelLayouts,[e]:{...r,panelSpans:{...i,[n]:3},expandedPanelId:n}}}}),collapsePanel:e=>t(t=>{let n=t.panelLayouts[e];return n?{panelLayouts:{...t.panelLayouts,[e]:{...n,expandedPanelId:null}}}:t}),setAttachments:e=>t({attachments:e}),addAttachment:async r=>{let i=e.notePersistence,a=e.provider,o=n().currentEntry?.id;if(!o||!a?.capabilities.canWrite||!i)return;console.log(`[WorkbenchSession] Processing attachment: ${r.name}`);let s=await Lb.process(r),{v7:c}=await at(async()=>{let{v7:e}=await import(`./vendor-BiwvmytJ.js`).then(e=>e.At);return{v7:e}},__vite__mapDeps([0,1,2]));console.log(`[WorkbenchSession] Saving attachment to entry ${o}`),await i.mutateNote(o,{attachments:{add:[{id:c(),label:s.label,mimeType:s.mimeType,data:s.data,timeSpan:s.timeSpan??{start:Date.now(),end:Date.now()}}]}}),t({attachments:(await i.getNote(o,{projection:`workbench`,includeAttachments:!0})).attachments??[]}),console.log(`[WorkbenchSession] Attachment saved successfully`)},deleteAttachment:async r=>{let i=e.notePersistence,a=n().currentEntry?.id;!a||!i||(await i.mutateNote(a,{attachments:{remove:[r]}}),t({attachments:(await i.getNote(a,{projection:`workbench`,includeAttachments:!0})).attachments??[]}))},patchCurrentEntryResults:e=>t(t=>t.currentEntry?{currentEntry:{...t.currentEntry,results:e}}:t),completeWorkout:async(e,i)=>{let a=n().capturedRun,o=i??a?.session.id;if(!o||!r?.finishSession)throw Error(`The saved run pin is unavailable.`);let s=await r.finishSession(o,e,e.endTime);return t(t=>({results:[...t.results,e]})),s.id},loadEntry:async r=>{let i=e.notePersistence,a=e.provider;if(!i||!a)return null;let{routeId:o,routeView:s,routeSectionId:c,routeResultId:l,resultFromLocationState:u,initialActiveEntryId:d,propInitialContent:f}=r;if(n().setContent(``),n().setBlocks([]),t({currentEntry:null,loadedRouteId:o??null}),o){if(a.mode===`history`||a.mode===`static`)try{let e=l?{mode:`by-result-id`,resultId:l}:c&&s===`review`?{mode:`latest-for-section`,blockId:c}:{mode:`latest`},d=await i.getNote(o,{projection:s===`review`?`review`:`workbench`,includeAttachments:!0,includeSections:!0,resultSelection:e}).catch(async t=>(console.warn(`[WorkbenchSession] Note persistence projection failed, falling back to provider entry:`,{routeId:o,projection:s===`review`?`review`:`workbench`,resultSelectionMode:e.mode,err:t}),a.getRecord(o)));if(d){let e=nB(d.rawContent,{noteBlocks:d.blocks,sourceRevision:Math.max(1,d.sourceRevision??0)});return t({currentEntry:d,content:d.rawContent,sections:e.sections,blocks:e.blocks,noteBlocks:e.noteBlocks,sourceRevision:d.sourceRevision??0,lastSavedContent:d.rawContent,saveState:`saved`}),s===`review`&&u&&t(e=>e.currentEntry?{currentEntry:{...e.currentEntry,results:u}}:e),r.onLoaded?.(d),d}if(a.mode===`static`){let e=await Bz(o);if(e)return n().setContent(e),null}}catch(e){console.error(`[WorkbenchSession] Failed to load entry for ID:`,o,e)}}else d&&e.navigate?.({type:`goToPlan`,noteId:d});return n().setContent(f??``),null},setActiveSegmentIds:e=>t({activeSegmentIds:e}),setActiveStatementIds:e=>t({activeStatementIds:e}),setAnalytics:(e,n)=>t({analyticsSegments:e,analyticsGroups:n}),appendOutputStatement:e=>t(t=>{let n=[...t.outputStatementList,e],{segments:r,groups:i}=Fz(t.runtime);return t.runtime?{outputStatementList:n,analyticsSegments:r,analyticsGroups:i}:{outputStatementList:n}}),clearOutputStatementList:()=>t({outputStatementList:[]}),feedLogOutputs:(e,n)=>{let{segments:r,groups:i}=Iz(e,n);t({logOutputList:e,analyticsSegments:r,analyticsGroups:i})},toggleAnalyticsSegment:(e,n,r)=>t(t=>{let i=new Set(t.selectedAnalyticsIds);if(n?.shiftKey&&t.lastSelectedAnalyticsId!==null&&r){let n=r.indexOf(t.lastSelectedAnalyticsId),a=r.indexOf(e);if(n!==-1&&a!==-1){let e=Math.min(n,a),t=Math.max(n,a);r.slice(e,t+1).forEach(e=>i.add(e))}}else n?.ctrlKey?i.has(e)?i.delete(e):i.add(e):(i.clear(),i.add(e));return{selectedAnalyticsIds:i,lastSelectedAnalyticsId:e}}),setUserOverride:(e,n)=>t(t=>{let r=new Map(t.userOutputOverrides);return r.set(e,ca.from(n,e)),{userOutputOverrides:r}}),clearUserOverride:e=>t(t=>{let n=new Map(t.userOutputOverrides);return n.delete(e),{userOutputOverrides:n}}),setGridViewPreset:e=>t({gridViewPreset:e}),setHoveredBlockKey:e=>t({hoveredBlockKey:e}),setDocumentItems:e=>t({documentItems:e}),setSelectedBlock:e=>t({selectedBlock:e,selectedBlockId:e?.id??null}),setSelectedBlockId:e=>t({selectedBlockId:e}),setCursorLine:e=>t({cursorLine:e}),setHighlightedLine:e=>t({highlightedLine:e}),setSubscriptionManager:e=>{t({subscriptionManager:e}),$z.setSubscriptionRegistry(e)},setViewMode:e=>t({viewMode:e}),setRuntime:e=>{for(let e of s)e();if(s=[],e){let r=Fz(e);t({runtime:e,outputStatementList:[],analyticsSegments:r.segments,analyticsGroups:r.groups}),s.push(e.subscribeToOutput(()=>{n().appendOutputStatement({})})),s.push(e.subscribeToStack(e=>{let n=e.blocks[0],r=new Set;for(let t of e.blocks)r.add(Di(t.key.toString()));let i=new Set;if(n&&Array.isArray(n.sourceIds))for(let e of n.sourceIds)i.add(e);t({activeSegmentIds:r,activeStatementIds:i})}));let i=dM();if(i?.connected){let t=new Jz(i);s.push(e.subscribeToStack(e=>t.onStackSnapshot(e)),e.subscribeToOutput(e=>t.onOutput(e)),()=>t.dispose());try{t.onStackSnapshot(e.getStackSnapshot())}catch{}}}else t({runtime:null,outputStatementList:[]})},setExecution:e=>t({execution:e}),setHandles:e=>t({handles:e}),getNote:async(e,t)=>{if(!r)throw Error(`[WorkbenchSession] getNote called without a notePersistence port`);return r.getNote(e,t)},resetStore:()=>{o!==null&&(a(o),o=null);for(let e of s)e();s=[],t({...iB})}}});return t.length>0&&c.subscribe(e=>{for(let n of t)n(e)}),Object.assign(c,{__nowProvider:n})}var sB=oB();function cB(e){let t=sB;return sB=e,t}function lB(){return sB}var uB=e=>Mt(sB,e),dB=({nowProvider:e,notePersistence:t,provider:n,navigate:r,children:i})=>{let a=(0,W.useMemo)(()=>oB({nowProvider:e,notePersistence:t,provider:n,navigate:r}),[e,t,n,r]);return(0,W.useEffect)(()=>{let e=cB(a);return()=>{cB(e),a.getState().resetStore()}},[a]),W.createElement(W.Fragment,null,i)},fB={getEventsByTimeRange:(e,t)=>Z.getEventsByTimeRange(e,t),getEventsByMetricDates:e=>Z.getEventsByMetricDates(e),getEventsByResult:e=>Z.getEventsByResult(e),getEventsForNote:e=>Z.getEventsForNote(e),getEventsByContent:e=>Z.getEventsByContent(e),scanAll:()=>Z.scanAll(),appendEvents:e=>Z.appendEvents(e),finalizeSummaries:(e,t)=>Z.finalizeSummaries(e,t),deleteEvents:e=>Z.deleteEvents(e)},pB={getAllNotes:()=>Z.getAllNotes(),getNotesByIds:async e=>[...(await Z.getDetailBatches(e)).values()].map(e=>e.note),getNoteIdsForTag:async e=>new Set((await Z.getNotesForTag(e)).map(e=>e.id)),getNoteTagLabels:async e=>(await Z.getTagsForNote(e)).map(e=>e.label),queryDomain:async e=>{if(!Z.queryDomain)return;let t=await Z.queryDomain({...e,plan:`notes`});return t&&t.plan===`notes`?t:void 0}},mB={getAllBlocks:()=>Z.getAllBlockIndex(),queryDomain:async e=>{if(!Z.queryDomain)return;let t=await Z.queryDomain({...e,plan:`blocks`});return t&&t.plan===`blocks`?t:void 0}},hB=class{async getAllEfforts(){let e=RO();return e.isInitialized()||await NO(e),[...e.list()]}},gB=new v_,_B={events:[],notes:[]},vB={events:[],notes:[]};gB.set(`@session`,_B),gB.set(`@today`,vB);function yB(){let e=lB().getState(),t=e.runtime?.getOutputStatements()??[],n=e.currentEntry;return _B.notes=n?[{id:n.id,title:n.title,createdAt:n.createdAt,date:n.targetDate,rawContent:n.rawContent,sourceRevision:n.sourceRevision??1,blocks:n.blocks??{}}]:[],t.length===0?(_B.events=[],_B):(_B.events=k_(t.map(Sm),{noteId:n?.id??``,resultId:`live:${n?.id??`session`}`,origin:`playground`,workoutTimestamp:n?.targetDate}),_B)}function bB(e,t,n,r){let i=[...t].sort((e,t)=>(e.position??1/0)-(t.position??1/0)||e.createdAt-t.createdAt);for(let e of i){let t=n.get(e.pageId)?.date;if(t)return t}return n_(e.date??e.createdAt,r)}async function xB(e,t){let n=n_(e.instant,e.timeZone),r=s_(n,e.timeZone),i=s_(r_(n,1),e.timeZone),[a,o,s,c]=await Promise.all([Z.getEventsByTimeRange(r,i),Z.getAllNotes(),Z.getAllPageNotes(),Z.getAllPages()]),l=a.filter(e=>e.timestamp>=r&&e.timestamp<i),u=new Map(c.map(e=>[e.id,e])),d=new Map;for(let e of s){let t=d.get(e.noteId);t?t.push(e):d.set(e.noteId,[e])}let f=[];for(let t of o)bB(t,d.get(t.id)??[],u,e.timeZone)===n&&f.push(t);t===wB&&(vB.events=l,vB.notes=f,yB())}var SB=null,CB=null,wB=0,TB=!1,EB=new Set;function DB(){for(let e of EB)e()}function OB(e,t){CB=t;let n=++wB;return SB=xB(e,n),SB.then(()=>{n===wB&&kB()},()=>{n===wB&&kB()}),SB}function kB(){TB=!0,DB()}function AB(){let e=Xg(),t=n_(e.instant,e.timeZone);return!SB||CB!==t?OB(e,t):SB}function jB(){TB=!1;let e=Xg();return OB(e,n_(e.instant,e.timeZone))}function MB(){return TB}function NB(e){return EB.add(e),()=>{EB.delete(e)}}var PB=class extends _v{async runQuery(e,t){return await AB(),super.runQuery(e,t)}async runPipeline(e,t){return await AB(),super.runPipeline(e,t)}async runFind(e,t){return await AB(),super.runFind(e,t)}async runRows(e,t){return await AB(),super.runRows(e,t)}async run(e,t){return await AB(),super.run(e,t)}};function FB(){return new PB({eventStore:fB,noteStore:pB,blockStore:mB,effortStore:new hB,blockEffortsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`block_efforts`,e,t)},tagsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`tags`,e,t),getAll:()=>Z.getAllTags()},noteTagsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`note_tags`,e,t)},pageStore:{getNotePages:e=>Z.getNotePages(e),getPage:e=>Z.getPage(e),getAllPages:()=>Z.getAllPages(),getAllLinks:()=>Z.getAllPageNotes()},relationStore:{getBatches:e=>Z.getDetailBatches(e)},datasetStore:{getDataset:e=>e===`@session`?yB():gB.getDataset(e)}})}var IB=FB();function LB(e,t,n){let r=typeof e.__id==`string`&&e.__id?e.__id:void 0,i=typeof e.__resultId==`string`&&e.__resultId?e.__resultId:void 0,a=typeof e.effort==`string`&&e.effort?e.effort:void 0,o=[];for(let[t,n]of Object.entries(e))t.startsWith(`__`)||t===`date`||t===`effort`||(typeof n==`string`||typeof n==`number`||typeof n==`boolean`)&&o.push(`${t}: ${n}`);return{id:r??i??`${t}:${n}`,kind:t,sourceNotebook:`results`,sourceNote:i??r??`${t}:${n}`,title:a?bL(a):`${t===`segment`?`Segment`:`Event`} ${n+1}`,date:typeof e.date==`string`?e.date:null,subtitle:o.length>0?o.join(` • `):void 0}}function RB(e){let t=e.parsed.family===`aggregate`?e.parsed.metric:`metric`;return e.series.map(e=>{let n=e.points.map(t=>`${t.value}${e.unit?` ${e.unit}`:``}`).join(` • `);return{id:`aggregate:${t}:${e.key}`,kind:`result`,sourceNotebook:`results`,sourceNote:e.label,title:`${t}: ${n}`,subtitle:e.label,date:null}})}function zB(e,t,n){e&&e({selected:Math.max(t?.selected??0,n.length),matched:n.length})}function BB(e){return typeof e==`object`&&!!e&&`runFind`in e}var VB=new class e{customService;noteTitleResolver;noteTagsResolver;noteBlockInfo;constructor(e){BB(e)?this.customService=e:(this.customService=e?.service,this.noteTitleResolver=e?.noteTitleResolver,this.noteBlockInfo=e?.noteBlockInfo??!1,this.noteTagsResolver=e?.noteTagsResolver),this.noteTitleResolver||=async e=>{try{let t=await Z.getNote(e);return t?bx(t.title)||xx(t.rawContent??``):void 0}catch{return}}}get service(){return this.customService??IB}withNoteBlockInfo(){let t=new e({service:this.service,noteTitleResolver:this.noteTitleResolver,noteTagsResolver:this.noteTagsResolver,noteBlockInfo:!0});return Object.prototype.hasOwnProperty.call(this,`query`)&&(t.query=this.query),t}async hydrateEntries(e,t){let n=new Set;for(let r of e)r.sourceNotebook===`journal`&&n.add(r.id),t&&(!r.title||!r.tags||r.tags.length===0)&&n.add(r.id);if(n.size===0)return;let r=await Z.getDetailBatches([...n]);for(let t of e){if(t.sourceNotebook!==`journal`)continue;let e=r.get(t.id),n=va(e?.links??[],e?.pages??[]);t.placements=n;let i=ya(n);t.pageId??=i.pageId,i.pageSlug&&(t.pageSlug=i.pageSlug)}if(t)for(let t of e){let e=r.get(t.id);!t.title&&e?.note.title&&(t.title=e.note.title),e&&e.tags.length>0&&((!t.tags||t.tags.length===0)&&(t.tags=e.tags.map(e=>e.label)),t.typedTags=e.tags.map(e=>({label:e.label,type:e.type})))}}async query(e,t){let n=typeof e==`string`?X(e):e;if(!n||n.error)return[];if(xh(n)){if(n.target===`effort`){let e=this.service.runFindEffort?await this.service.runFindEffort(n):await this.service.runFind(n),r=new Map(e.notes.map(e=>[e.id,e])),i=(e.efforts??[]).map(e=>e.ownerNoteId&&r.has(e.ownerNoteId)?pL(r.get(e.ownerNoteId)):CL(e));return zB(t,e.stages,i),i}if(n.target===`block`){let e=await this.service.runFind(n),r=e.blocks.map(yL);return await this.hydrateEntries(r,!0),zB(t,e.stages,r),r}if(n.target===`session`){let e=await this.service.runFind(n);t?.(e.stages);let r;if(this.noteTitleResolver&&e.runs){r=new Map;for(let t of e.runs)if(!r.has(t.noteId)){let e=await this.noteTitleResolver(t.noteId);e&&r.set(t.noteId,e)}}let i=OL(e,{noteTitles:r});return zB(t,e.stages,i),i}if(n.target===`segment`||n.target===`event`){let e=n.target,r=await this.service.runFind(n),i=(r.table?.rows??[]).map((t,n)=>LB(t,e,n));return zB(t,r.stages,i),i}let e=await this.service.runFind(n),r=e.notes.map(pL);if(this.noteTagsResolver?(await this.hydrateEntries(r,!1),await Promise.all(r.map(async e=>{if(!e.tags||e.tags.length===0){let t=await this.noteTagsResolver(e.id);t&&t.length>0&&(e.tags=t)}}))):await this.hydrateEntries(r,!0),zB(t,e.stages,r),this.noteBlockInfo)for(let t=0;t<r.length;t++){let n=r[t],i=e.notes[t];n.excerpt=vL(i.rawContent);try{Pa(i.rawContent,i.blocks,i.sourceRevision)}catch{continue}let a=Object.values(i.blocks).sort((e,t)=>e.from-t.from).find(e=>e.kind===`wod`),o=a&&ja(i.rawContent).find(e=>e.from===a.from&&e.scriptBlock);if(a&&o?.scriptBlock){let e=o.scriptBlock.content,t=ha(e);n.wodBlock={blockId:a.id,blockVersion:a.version,blockContentId:t,content:e},n.blockContentId=t}}return r}if(n.family===`aggregate`){if(!this.service.runQuery)return[];let e=await this.service.runQuery(n.raw),r=RB(e);return t?.({selected:e.stages?.selected??r.length,matched:r.length}),r}return[]}};async function HB(e,t=VB,n){return t.query(e,n)}function UB(e){return e?e.map(e=>e.kind===`wql`?`${e.id}|${e.query}|${e.limit??``}`:`s:${e.id}`).join(`;`):``}async function WB(e){try{let t=(await HB(e.query)).filter(t=>!e.filterEntry||e.filterEntry(t)).slice(0,e.limit??6).map(t=>({kind:`link`,id:`${e.id}:${t.id}`,label:e.labelFromEntry?e.labelFromEntry(t):t.title,to:e.toEntry?e.toEntry(t):void 0,muted:!0}));return{kind:`section`,id:e.id,label:e.label,entries:t}}catch{return{kind:`section`,id:e.id,label:e.label,entries:[]}}}function GB(e){let t=UB(e),n=(0,W.useRef)(e);n.current=e;let[r,i]=(0,W.useState)(()=>e&&!e.some(e=>e.kind===`wql`)?e:[]);return(0,W.useEffect)(()=>{let e=n.current;if(!e){i([]);return}if(!e.some(e=>e.kind===`wql`)){i(e);return}let t=!1;return Promise.all(e.map(e=>e.kind===`wql`?WB(e):Promise.resolve(e))).then(e=>{t||i(e)}),()=>{t=!0}},[t]),r}function KB(){let[e]=cn(`h`,{shallow:!0}),[t]=cn(`s`,{shallow:!0}),{navState:n}=uP(),r=n.activeL3Id??``;return e||t||r||``}function qB({entry:e,active:t,onActivate:n}){let r=e.onRun;return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:K(`group flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left transition-colors`,e.muted?`text-[11.5px]`:`text-[13px]`,t?`bg-primary/10 font-semibold text-primary`:K(`hover:bg-muted/60 hover:text-foreground`,e.muted?`text-muted-foreground/70`:`text-muted-foreground`)),children:[e.icon&&(0,G.jsx)(e.icon,{className:`size-4 shrink-0`}),e.timestamp&&(0,G.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] tabular-nums text-muted-foreground/60`,children:e.timestamp}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 line-clamp-2 break-words`,title:e.label,children:e.label}),e.badge&&(0,G.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-muted-foreground/50`,children:e.badge}),r&&(0,G.jsx)(`span`,{role:`button`,tabIndex:-1,title:e.runIcon===`link`?`View workout`:e.runIcon===`stop`?`Stop workout`:e.runIcon===`edit`?`Edit note`:`Start workout`,onClick:t=>{t.stopPropagation(),e.onRun?.()},className:`flex size-5 shrink-0 items-center justify-center rounded text-primary opacity-0 transition-all group-hover:opacity-100 hover:bg-primary/10`,children:e.runIcon===`link`?(0,G.jsx)(re,{className:`size-3.5`}):e.runIcon===`stop`?(0,G.jsx)(_,{className:`size-3.5`}):e.runIcon===`edit`?(0,G.jsx)(fe,{className:`size-3.5`}):(0,G.jsx)(V,{className:`size-3.5`})})]})}function JB({entries:e,activeId:t,onSection:n}){let r=ln(),{scrollToSection:i}=uP(),a=jF(),o=e=>{if(a(),n)return n(e);if(e.onRun)return e.onRun();if(e.to)return r(e.to);if(e.sectionId)return i(e.sectionId)};return(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.map(e=>e.kind===`section`?e.entries.length===0?null:(0,G.jsxs)(`div`,{className:`mt-1 flex flex-col gap-0.5 first:mt-0`,children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 pt-3 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:e.label}),(0,G.jsx)(JB,{entries:e.entries,activeId:t,onSection:n})]},e.id):e.kind===`wql`?null:e.kind===`widget`?(0,G.jsx)(`div`,{className:`px-1 py-1`,children:e.render()},e.id):(0,G.jsx)(qB,{entry:e,active:t!=null&&e.sectionId===t,onActivate:o},e.id))})}function YB(){let e=ln(),{scrollToSection:t}=uP();return{navigate:(t,n)=>e(t,{replace:n?.replace}),setQueryParam:(e,t)=>{},scrollToSection:t}}function XB(){let e=YB(),t=jF();return n=>{t(),FL(n.action,e)}}function ZB(e,t,n){return e.isActive?e.isActive(n,t):e.action.type===`route`?e.action.to===`/`?n.pathname===`/`||n.pathname===``:n.pathname===e.action.to:e.action.type===`scroll`?t.activeL3Id===e.action.sectionId:e.action.type===`query`&&t.activeL3Id===e.id}function QB({items:e}){let{navState:t}=uP(),n=wn(),r=XB();return(0,G.jsx)(BF,{children:e.map(e=>{let i=ZB(e,t,n);return e.children&&e.children.length>0?(0,G.jsx)(BL,{title:e.label,count:e.children.length,defaultOpen:e.children.some(e=>ZB(e,t,n)),collapsible:e.id!==`syntax-group`,children:e.children.map(e=>{let i=ZB(e,t,n);return(0,G.jsxs)(HF,{onClick:()=>r(e),current:i,children:[e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:e.label})]},e.id)})},e.id):(0,G.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,G.jsxs)(HF,{onClick:e.disabled?void 0:()=>r(e),current:i,disabled:e.disabled,"aria-label":e.disabled?`${e.label} (coming soon)`:void 0,className:K(`flex-1`,e.disabled&&`opacity-60`),children:[e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:e.disabled?`+`:e.label})]}),e.onTogglePin&&(0,G.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e.onTogglePin?.()},title:e.pinned?`Unpin from sidebar`:`Pin to sidebar`,"aria-label":e.pinned?`Unpin ${e.label}`:`Pin ${e.label}`,className:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 p-1 text-muted-foreground hover:text-foreground transition-opacity`,children:(0,G.jsx)(gt,{className:`size-3.5`})})]},e.id)})})}function $B({navSpec:e}){let{tree:t,navState:n,dispatch:r,contextNav:i}=uP(),a=wn(),o=GB(e),s=(t??[]).find(e=>e?.id===n.activeL1Id)??null,c=i?.pathname===a.pathname?i:null;return(0,G.jsxs)(LF,{children:[(0,G.jsx)(RF,{children:(0,G.jsx)(`div`,{className:`px-2 pt-3 pb-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:s?.label??`Wod Wiki`})}),(0,G.jsxs)(zF,{children:[(()=>{if(c||!s)return null;if(s.panel){let e=s.panel;return(0,G.jsx)(`div`,{className:`border-b border-border/40 pb-2 mb-2`,children:(0,G.jsx)(e,{item:s,navState:n,dispatch:r})})}return s.children&&s.children.length>0?(0,G.jsx)(`div`,{className:`border-b border-border/40 pb-2 mb-2`,children:(0,G.jsx)(QB,{items:s.children})}):null})(),c?(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(JB,{entries:c.spec})}):o.length>0&&(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(JB,{entries:o})})]})]})}var eV=`0.51.2195`,tV=`https://github.com/bitcobblers/wod-wiki/releases`;function nV(e){return/-pr\.\d+$/.test(e)?tV:`${tV}/tag/v${e}`}function rV({onSearch:e,onCreate:t}){let{tree:n,navState:r,dispatch:i}=uP(),a=ln(),o=wn(),s=jF(),c={navigate:(e,t)=>a(e,{replace:t?.replace}),setQueryParam:()=>{},scrollToSection:()=>{}},l=(n??[]).filter(e=>e!=null&&e.icon!=null&&e.id!==`settings`&&e.id!==`buy-me-a-coffee`),u=o.pathname.startsWith(`/settings`);o.pathname===`/`||o.pathname;let d=`pointer-events-none absolute left-full top-1/2 -translate-y-1/2 z-50 ml-2 w-max rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground opacity-0 shadow-md transition-opacity group-focus-within:opacity-100 group-hover:opacity-100`;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:()=>{s(),a(`/`)},title:`Wod Wiki home`,"aria-label":`Wod Wiki home`,className:`group relative mb-3 grid size-8 shrink-0 place-items-center rounded-xl bg-primary text-primary-foreground shadow-md shadow-primary/20 rotate-3`,children:[(0,G.jsx)(be,{size:17}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Wod Wiki home`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Wod Wiki home`})]}),(0,G.jsx)(`nav`,{"aria-label":`Primary`,className:`flex flex-col items-center gap-1.5`,children:l.map(e=>{let t=e.icon,n=ZB(e,r,o);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),i({type:`SET_ACTIVE_L1`,id:e.id}),FL(e.action,c)},title:e.label,"aria-label":e.label,"aria-current":n?`page`:void 0,className:K(`group relative grid size-9 place-items-center rounded-lg transition-colors`,n?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[n&&(0,G.jsx)(`span`,{className:`absolute -left-[14px] top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary`}),(0,G.jsx)(t,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:e.label}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:e.label})]},e.id)})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`button`,{type:`button`,onClick:e,title:`Search (⌘/)`,"aria-label":`Search`,className:`group relative grid size-9 place-items-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground`,children:[(0,G.jsx)(ge,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Search`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Search (⌘/)`})]}),(0,G.jsxs)(`a`,{href:VR,target:`_blank`,rel:`noopener noreferrer`,title:`Buy Me a Coffee`,"aria-label":`Buy Me a Coffee`,className:`group relative grid size-9 place-items-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground`,children:[(0,G.jsx)(HR,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Buy Me a Coffee`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Buy Me a Coffee`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),a(`/settings/profile`)},title:`Profile`,"aria-label":`Profile`,"aria-current":o.pathname.startsWith(`/settings/profile`)?`page`:void 0,"data-testid":`nav-profile`,className:K(`group relative grid size-9 place-items-center rounded-lg transition-colors mt-1.5`,o.pathname.startsWith(`/settings/profile`)?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[o.pathname.startsWith(`/settings/profile`)&&(0,G.jsx)(`span`,{className:`absolute -left-[14px] top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary`}),(0,G.jsx)(Le,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Profile`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Profile`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),a(`/settings/appearance`)},title:`Settings`,"aria-label":`Settings`,"aria-current":u?`page`:void 0,"data-testid":`nav-settings`,className:K(`group relative grid size-9 place-items-center rounded-lg transition-colors mt-1.5`,u?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[u&&(0,G.jsx)(`span`,{className:`absolute -left-[14px] top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary`}),(0,G.jsx)(qn,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Settings`}),(0,G.jsxs)(`span`,{role:`tooltip`,className:`pointer-events-none absolute bottom-0 left-full z-50 ml-2 w-max rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground opacity-0 shadow-md transition-opacity group-focus-within:opacity-100 group-hover:opacity-100`,children:[`Settings (v`,eV,`)`]})]})]})}function iV({activations:e,activeSection:t,variant:n,deps:r,className:i}){return(0,G.jsx)(`nav`,{className:K(`lg:sticky z-20 flex items-center gap-1 px-4 py-2 bg-background/95 backdrop-blur-sm border-b border-border/50 overflow-x-auto`,n===`top-fixed`?`lg:top-0`:`lg:top-[104px]`,i),children:e.map(e=>(0,G.jsx)(`button`,{onClick:()=>FL(e.action,r),className:K(`px-3 py-1.5 rounded-full text-[10px] font-black uppercase tracking-[0.12em] whitespace-nowrap transition-all ring-1`,t===e.id?`bg-primary text-primary-foreground ring-primary/30 shadow-md`:`bg-muted/50 text-muted-foreground ring-transparent hover:bg-muted hover:ring-border`),children:e.label},e.id))})}var aV=class e{now;name=`tick`;timestamp;data;static _counter=0;constructor(t,n=Gl){this.now=n;let r=this.now.nowMs();e._counter++,this.timestamp=new Date(r+e._counter),this.data=t}},oV=20,sV=e=>{let[t,n]=(0,W.useState)(`idle`),[r,i]=(0,W.useState)(0),[a,o]=(0,W.useState)(0),[s,c]=(0,W.useState)(null),l=(0,W.useRef)(null),u=(0,W.useRef)(null),d=(0,W.useCallback)(()=>{l.current&&=(clearInterval(l.current),null),n(`idle`)},[]),f=(0,W.useCallback)(()=>{if(e)try{let t=new aV(void 0,e.nowProvider);e.handle(t),o(e=>e+1)}catch{d(),n(`error`)}},[e,d]);(0,W.useEffect)(()=>{if(e)return e.subscribeToStack(e=>{e.blocks.length===0&&t!==`completed`&&(l.current&&=(clearInterval(l.current),null),n(`completed`))})},[e,t]),(0,W.useEffect)(()=>()=>{l.current&&=(clearInterval(l.current),null)},[]);let p=(0,W.useCallback)(()=>{if(!e){console.warn(`useRuntimeExecution: Cannot start execution without a runtime`);return}if(t===`running`){console.warn(`useRuntimeExecution: Runtime is already running`);return}t===`paused`&&e.handle({name:`timer:resume`,timestamp:new Date,data:{}}),n(`running`);let i=e?.nowProvider?.nowMs()??Gl.nowMs();u.current=i-r,r===0&&c(i),l.current=setInterval(f,oV)},[e,t,r,f]),m=(0,W.useCallback)(()=>{l.current&&=(clearInterval(l.current),null),e&&e.handle({name:`timer:pause`,timestamp:new Date,data:{}}),n(`paused`)},[e]),h=(0,W.useCallback)(()=>{l.current&&=(clearInterval(l.current),null),i(0),o(0),n(`idle`),c(null),u.current=null},[e]),g=(0,W.useCallback)(()=>{!e||t===`running`||(n(`paused`),f())},[e,t,f]);return(0,W.useEffect)(()=>{if(t!==`running`||!u.current)return;let n=setInterval(()=>{i((e?.nowProvider?.nowMs()??Gl.nowMs())-u.current)},100);return()=>clearInterval(n)},[t,e?.nowProvider]),(0,W.useEffect)(()=>()=>{l.current&&=(clearInterval(l.current),null)},[]),(0,W.useEffect)(()=>{h()},[e,h]),(0,W.useMemo)(()=>({status:t,elapsedTime:r,stepCount:a,startTime:s,start:p,pause:m,stop:d,reset:h,step:g}),[t,r,a,s,p,m,d,h,g])},cV=(e,t)=>!e||!Array.isArray(e)?0:e.reduce((e,n)=>{if(`started`in n){let r=n.started,i=n.ended??t;return e+Math.max(0,i-r)}let r=n.start instanceof Date?n.start.getTime():n.start||0,i=n.stop?n.stop instanceof Date?n.stop.getTime():n.stop:t;return e+Math.max(0,i-r)},0);function lV(e,t){let n=t,r=()=>{let t=e?.getMemoryByTag(n)[0];if(t)return n===`round`?t.metrics[0]:t.metrics[0]?.value},[i,a]=(0,W.useState)(r);return(0,W.useEffect)(()=>{if(!e){a(void 0);return}a(r());let t=e.getMemoryByTag(n)[0];if(t)return t.subscribe(e=>{a(n===`round`?e[0]:e[0]?.value)})},[e,t]),i}function uV(e){return lV(e,`round`)}function dV(e){return lV(e,`display`)}function fV(e){let t=uV(e),n=dV(e);return(0,W.useMemo)(()=>{if(!t)return null;let e=n?.roundDisplay??(t.total===void 0?`Round ${t.current}`:`Round ${t.current} of ${t.total}`),r=t.total===void 0?void 0:Math.min(1,(t.current-1)/t.total);return{current:t.current,total:t.total,label:e,progress:r}},[t,n?.roundDisplay])}var pV=(0,W.createContext)(void 0),mV=({runtime:e,children:t})=>(0,G.jsx)(pV.Provider,{value:e,children:t});function hV(){let e=(0,W.useContext)(pV);if(!e)throw Error(`useScriptRuntime must be used within ScriptRuntimeProvider`);return e}function gV(e){let t=hV(),n=e===void 0?t:e,[r,i]=(0,W.useState)(()=>n?.getOutputStatements?.()??[]);return(0,W.useEffect)(()=>{if(!n){i([]);return}return i(n.getOutputStatements()),n.subscribeToOutput?.(()=>{i(n.getOutputStatements())})},[n]),(0,W.useMemo)(()=>{let e=new Map,t=new Map,n=[],i=[];for(let a of r){e.set(a.id,a);let r=t.get(a.sourceBlockKey)??[];switch(r.push(a),t.set(a.sourceBlockKey,r),a.outputType){case`segment`:n.push(a);break;case`metric`:i.push(a)}}let a=n.filter(e=>e.completionReason!==void 0);return{outputs:r,byId:e,byBlockKey:t,segments:n,completions:a,metrics:i}},[r])}function _V(e){let t=hV(),n=e===void 0?t:e,[r,i]=(0,W.useState)(()=>n?.getLiveAnalytics?.()??[]);return(0,W.useEffect)(()=>{if(!n){i([]);return}return i(n.getLiveAnalytics?.()??[]),n.subscribeToOutput?.(()=>{i(n.getLiveAnalytics?.()??[])})},[n]),r}function vV(){let e=hV(),[t,n]=(0,W.useState)({type:`initial`,blocks:e.stack.blocks,depth:e.stack.count,clockTime:e.clock.currentDate});return(0,W.useEffect)(()=>e.subscribeToStack(e=>{n(e)}),[e]),t}function yV(){return vV().blocks}function bV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`metric:next`);for(let r of e){let e=r.subscribe(()=>{n(e=>e+1)});t.push(e)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{for(let t of e){let e=t.getMemoryByTag(`metric:next`);if(e.length===0)continue;let n=ca.empty(t.key.toString());for(let t of e)n.merge(t.metrics);if(n.length>0)return{metrics:n,block:t}}return null},[e,t])}function xV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`time`)[0];if(e){let r=e.subscribe(()=>{n(e=>e+1)});t.push(r)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{let t=[];for(let n of e){let e=n.getMemoryByTag(`time`)[0];if(!e)continue;let r=e.metrics[0]?.value;r&&t.push({block:n,timer:r,isPinned:r.role===`primary`})}return t},[e,t])}function SV(){let e=xV();return(0,W.useMemo)(()=>{if(e.length===0)return;let t=e[0];return t.block.blockType===`Rest`?t:[...e].reverse().find(e=>e.isPinned)||t},[e])}function CV(){let e=xV(),t=SV();return(0,W.useMemo)(()=>t?e.filter(e=>e.block!==t.block):[],[e,t])}function wV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`controls`);for(let r of e){let e=r.subscribe(()=>{n(e=>e+1)});t.push(e)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r].getMemoryByTag(`controls`);if(i.length===0)continue;let a=i[0].metrics.map(e=>e.value).filter(Boolean),o=r===e.length-1;for(let e of a)e.isPinned?t.push(e):o&&n.push(e)}let r=new Set,i=[];for(let e of t)r.has(e.id)||(r.add(e.id),i.push(e));for(let e of n)r.has(e.id)||(r.add(e.id),i.push(e));return i},[e,t])}function TV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`metric:display`);for(let r of e){let e=r.subscribe(()=>{n(e=>e+1)});t.push(e)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{if(e.length===0)return;let t=[],n=[...e].reverse();return n.forEach((e,r)=>{if(e.blockType===`Root`&&!e.label)return;let i=e.getMemoryByTag(`metric:display`),a=i.map(e=>e.metrics);if(a.length===0&&!e.label)return;let o=r===n.length-1,s=i.length>1?i.map(e=>e.metrics):void 0;t.push({block:e,displayRows:a,label:e.label,depth:r,isLeaf:o,metricGroups:s})}),t.length>0?t:void 0},[e,t])}function EV(e){let t=hV(),n=(0,W.useMemo)(()=>t.stack.blocks.find(t=>t.key.toString()===e),[t,e]),[r,i]=(0,W.useState)(()=>n?.getMemoryByTag(`time`)[0]?.metrics[0]?.value);(0,W.useEffect)(()=>t.stack.subscribe(()=>{let n=t.stack.blocks.find(t=>t.key.toString()===e);if(n){let e=n.getMemoryByTag(`time`)[0];i(e?.metrics[0]?.value)}else i(void 0)}),[t,e]),(0,W.useEffect)(()=>{if(!n){i(void 0);return}let e=n.getMemoryByTag(`time`)[0];if(i(e?.metrics[0]?.value),e)return e.subscribe(e=>{i(e[0]?.value)})},[n]);let a=(0,W.useMemo)(()=>r?.spans??[],[r]),o=a.length>0&&a[a.length-1].ended===void 0,[s,c]=(0,W.useState)(Nu()),l=(0,W.useMemo)(()=>a.length===0?0:cV(a,s),[a,s]);return(0,W.useEffect)(()=>{if(!o)return;let e,t=()=>{c(Nu()),e=requestAnimationFrame(t)};return t(),()=>cancelAnimationFrame(e)},[o]),{elapsed:l,isRunning:o,timeSpans:a}}var DV=(0,W.createContext)(void 0),OV=(0,W.createContext)(null),kV={getState:()=>lB().getState(),setState:(e,t)=>{let n=lB();typeof e==`function`?n.setState(e(n.getState()),t):n.setState(e,t)},subscribe:e=>lB().subscribe(e)},AV=({factory:e,children:t})=>{let[n,r]=(0,W.useState)(null),[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(!1),[c,l]=(0,W.useState)(null),u=(0,W.useRef)(e);u.current=e;let d=(0,W.useRef)(null),f=(0,W.useRef)(null),p=(0,W.useRef)(!1),m=(0,W.useCallback)(()=>{f.current&&=(f.current.dispose(),null),a(null),kV.getState().setSubscriptionManager(null);let e=d.current;if(d.current=null,e)try{u.current.disposeRuntime(e)}catch(e){console.error(`[RuntimeProvider] Error disposing runtime:`,e)}r(null),l(null)},[]),h=(0,W.useCallback)((e,t)=>{if(!p.current){p.current=!0,s(!0),l(null);try{f.current&&=(f.current.dispose(),null);let n=d.current;if(d.current=null,n)try{u.current.disposeRuntime(n)}catch(e){console.error(`[RuntimeProvider] Error disposing existing runtime:`,e)}let i=u.current.createRuntime(e,t);if(d.current=i,r(i),i){let e=new xm(i);e.add(new bm({id:`local`})),f.current=e,a(e),kV.getState().setSubscriptionManager(e)}else f.current=null,a(null),kV.getState().setSubscriptionManager(null)}catch(e){console.error(`[RuntimeProvider] Error creating runtime:`,e),l(e instanceof Error?e:Error(String(e))),d.current=null}finally{p.current=!1,s(!1)}}},[]);(0,W.useEffect)(()=>()=>{if(f.current&&f.current.dispose(),d.current)try{u.current.disposeRuntime(d.current)}catch(e){console.error(`[RuntimeProvider] Error disposing runtime on unmount:`,e)}},[]);let g={runtime:n,isInitializing:o,error:c,initializeRuntime:h,disposeRuntime:m};return(0,G.jsx)(DV.Provider,{value:g,children:(0,G.jsx)(OV.Provider,{value:i,children:t})})};function jV({factory:e,children:t}){return(0,G.jsx)(AV,{factory:e,children:t})}var MV=`bg-background ring-1 ring-zinc-950/5 shadow-sm lg:shadow-[-18px_0_36px_-28px_rgba(15,23,42,0.16),18px_0_36px_-28px_rgba(15,23,42,0.16)] dark:shadow-none dark:ring-white/10`,NV=`flex flex-col flex-1 min-w-0 xl:max-w-[984px] 2xl:max-w-none min-h-screen lg:rounded-[2.5rem]`;function PV({id:e,title:t,subtitle:n,titleAccessory:r,actions:i,queryBar:a,subheader:o,titleTestId:s,className:c}){return(0,G.jsxs)(`div`,{id:e,"data-page-sticky-boundary":`true`,className:K(`max-lg:hidden lg:sticky lg:top-0 z-30 border-b border-border/50 bg-background/95 backdrop-blur-md transition-colors`,c),children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 px-4 sm:px-6 lg:px-8 py-2 sm:py-2.5`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2.5 sm:gap-3 min-w-0`,children:[(0,G.jsx)(`div`,{className:`h-5 w-1.5 shrink-0 rounded-full bg-primary`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h1`,{"data-testid":s,className:`text-base sm:text-lg font-black tracking-tight text-foreground leading-none truncate`,children:t}),n&&(0,G.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground truncate`,children:n})]}),r]})]}),a&&(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:a}),i&&(0,G.jsx)(`div`,{className:`flex items-center gap-1.5 sm:gap-2 shrink-0 ml-auto`,children:i})]}),o&&(0,G.jsx)(`div`,{className:`bg-background/40`,children:o})]})}function FV({ids:e,enabled:t=!0,rootMargin:n=`-10% 0px -40% 0px`,threshold:r=[0,.3,1],onChange:i,shouldAcceptChange:a,scrollDirection:o=`ratio`,dataAttribute:s,debounceMs:c=0}){let l=(0,W.useRef)(``),u=(0,W.useRef)(i),d=(0,W.useRef)(a),f=(0,W.useRef)(null),p=(0,W.useRef)(1);(0,W.useEffect)(()=>{u.current=i},[i]),(0,W.useEffect)(()=>{d.current=a},[a]);let m=e.filter(Boolean).join(`\0`),h=r.join(`,`),g=(0,W.useMemo)(()=>m?m.split(`\0`):[],[m]),_=(0,W.useMemo)(()=>h.split(`,`).map(Number),[h]),v=(0,W.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null)},[]);(0,W.useEffect)(()=>{if(!t||g.length===0||typeof IntersectionObserver>`u`)return;let e=new Map,r=e=>s?e.getAttribute(s):e.id||null,i;if(o===`topmost-when-up`){let e=window.scrollY,t=()=>{let t=window.scrollY;t!==e&&(p.current=t>e?1:-1),e=t};window.addEventListener(`scroll`,t,{passive:!0}),i=()=>window.removeEventListener(`scroll`,t)}let a=new IntersectionObserver(t=>{if(t.forEach(t=>{let n=r(t.target);n&&(t.isIntersecting?e.set(n,t.intersectionRatio):e.delete(n))}),e.size===0)return;let n=``;if(o===`topmost-when-up`&&p.current===-1){let t=1/0;e.forEach((e,r)=>{let i=g.indexOf(r);i>=0&&i<t&&(t=i,n=r)})}else{let t=-1;e.forEach((e,r)=>{e>t&&(t=e,n=r)})}!n||n===l.current||d.current&&!d.current(n)||(l.current=n,c>0?(v(),f.current=setTimeout(()=>{u.current(n),f.current=null},c)):u.current(n))},{rootMargin:n,threshold:_});return g.forEach(e=>{let t=s?document.querySelector(`[${s}="${e}"]`):document.getElementById(e);t&&a.observe(t)}),()=>{a.disconnect(),v(),i?.()}},[t,g,_,n,o,s,c,v])}function IV({title:e,titleAccessory:t,actions:n,subheader:r,children:i,index:a=[],activeSectionId:o,hero:s,sections:c,className:l}){let u=!!(c&&c.length>0)&&!e,[,d]=cn(`s`,{defaultValue:o??a[0]?.id??``,shallow:!0,history:`replace`}),[f,p]=(0,W.useState)(c?.[0]?.id??``);if(FV({ids:a.map(e=>e.id),enabled:!u&&a.length>0,rootMargin:`-10% 0px -40% 0px`,threshold:[0,.3,1],onChange:e=>{d(e)},shouldAcceptChange:()=>!0}),FV({ids:c?.map(e=>e.id)??[],enabled:u,rootMargin:`-20% 0px -50% 0px`,threshold:[0,.25,.5,.75],onChange:p}),u){let e=c.map(e=>({id:e.id,label:e.label,action:{type:`scroll`,sectionId:e.id}}));return(0,G.jsxs)(`div`,{className:K(`flex flex-col min-h-screen bg-background`,l),children:[s,(0,G.jsx)(iV,{activations:e,activeSection:f,variant:`top-fixed`,deps:{navigate:()=>{},setQueryParam:()=>{},scrollToSection:e=>{let t=document.getElementById(e);if(t){let e=t.getBoundingClientRect().top+window.scrollY-64;window.scrollTo({top:e,behavior:`smooth`})}}}}),(0,G.jsx)(`div`,{className:`flex-1`,children:c.map(e=>{let t=(0,G.jsx)(`div`,{id:e.id,"data-section-id":e.id,className:`py-12 lg:py-16 px-6 lg:px-10 border-b border-border/30`,children:e.content},e.id);return e.runtimeFactory?(0,G.jsx)(jV,{factory:e.runtimeFactory,children:t},e.id):t})})]})}return(0,G.jsx)(`div`,{className:K(`relative flex w-full min-h-screen justify-start items-start`,l),children:(0,G.jsxs)(`div`,{className:K(NV,MV),children:[(0,G.jsx)(PV,{title:e,titleAccessory:t,actions:n,subheader:r}),(0,G.jsx)(`div`,{className:`flex-1`,children:i})]})})}var LV=`[data-page-sticky-boundary="true"]`,RV=0;function zV(e,t=RV){if(typeof document>`u`)return e;let n=Array.from(document.querySelectorAll(LV)).reduce((e,t)=>{let n=t.getBoundingClientRect();return n.height<=0||n.bottom<=0?e:Math.max(e,n.bottom)},0);return n>0?n+t:e}function BV(e,t=RV){let[n,r]=(0,W.useState)(e);return(0,W.useEffect)(()=>{let n=0,i=()=>r(zV(e,t)),a=()=>{cancelAnimationFrame(n),n=requestAnimationFrame(i)};i(),window.addEventListener(`scroll`,a,{passive:!0}),window.addEventListener(`resize`,i);let o=typeof ResizeObserver>`u`?void 0:new ResizeObserver(i);document.querySelectorAll(LV).forEach(e=>o?.observe(e));let s=typeof MutationObserver>`u`?void 0:new MutationObserver(()=>{document.querySelectorAll(LV).forEach(e=>o?.observe(e)),i()});return typeof document<`u`&&document.body&&s?.observe(document.body,{childList:!0,subtree:!0}),()=>{s?.disconnect(),o?.disconnect(),cancelAnimationFrame(n),window.removeEventListener(`scroll`,a),window.removeEventListener(`resize`,i)}},[e,t]),n}function VV({top:e,label:t,icon:n,badge:r,meta:i,testId:a,className:o}){return(0,G.jsxs)(`div`,{"data-testid":a,className:K(`sticky z-10 flex items-center gap-2 border-y border-border/60 bg-card/95 px-6 py-2 shadow-[0_1px_2px_rgba(0,0,0,0.03)] backdrop-blur`,o),style:{top:`${e}px`},children:[n,(0,G.jsx)(`span`,{className:`min-w-0 truncate text-xs font-bold text-foreground`,children:t}),r,i&&(0,G.jsx)(`span`,{className:`ml-auto shrink-0 pl-2 font-mono text-[10px] text-muted-foreground`,children:i})]})}var HV=(0,W.createContext)(null),UV=(0,W.createContext)(null);function WV({children:e}){let[t,n]=(0,W.useState)(null);return(0,G.jsx)(UV.Provider,{value:n,children:(0,G.jsx)(HV.Provider,{value:t,children:e})})}function GV({className:e}){let t=(0,W.useContext)(UV);return(0,G.jsx)(`div`,{ref:t,className:e,"data-testid":`mobile-query-slot`})}function KV(){return(0,W.useContext)(HV)}function qV({editor:e,title:t,subtitle:n,titleTestId:r,actions:i,timerOverlay:a,reviewOverlay:o,isTimerOpen:s=!1,isReviewOpen:c=!1,onCloseTimer:l,onCloseReview:u,className:d}){return(0,G.jsxs)(`div`,{className:K(`relative flex w-full min-h-screen justify-start items-start`,d),children:[(0,G.jsxs)(`div`,{className:K(NV,MV),children:[(0,G.jsx)(PV,{title:t,subtitle:n,titleTestId:r,actions:i}),(0,G.jsx)(`main`,{className:`flex-1 min-w-0 max-w-full`,children:e})]}),s&&a&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-background/95 backdrop-blur-sm`,children:(0,G.jsxs)(`div`,{className:`w-full h-full flex flex-col`,children:[(0,G.jsx)(`div`,{className:`flex justify-end p-4`,children:(0,G.jsx)(`button`,{onClick:l,className:`px-3 py-1.5 rounded-md text-sm font-bold text-muted-foreground hover:text-foreground bg-muted/60 hover:bg-muted transition-colors`,children:`Close`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,children:a})]})}),c&&o&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-background/95 backdrop-blur-sm`,children:(0,G.jsxs)(`div`,{className:`w-full h-full flex flex-col`,children:[(0,G.jsx)(`div`,{className:`flex justify-end p-4`,children:(0,G.jsx)(`button`,{onClick:u,className:`px-3 py-1.5 rounded-md text-sm font-bold text-muted-foreground hover:text-foreground bg-muted/60 hover:bg-muted transition-colors`,children:`Close`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,children:o})]})})]})}function JV(e){return e.map(e=>{if(e.panel){let t=e.panel;return{kind:`widget`,id:e.id,render:()=>(0,W.createElement)(`div`,{className:`flex flex-col gap-1`},(0,W.createElement)(`span`,{className:`px-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`},e.label),(0,W.createElement)(t,{currentPath:``,location:null}))}}let t=e.action,n=e.secondaryAction?.action,r={kind:`link`,id:e.id,label:e.label};return n&&n.type===`call`&&(r.onRun=n.handler,r.runIcon=e.secondaryRunIcon??`play`),t.type===`route`?{...r,to:t.to}:t.type===`scroll`?{...r,sectionId:t.sectionId}:t.type===`call`?{...r,onRun:t.handler}:r})}var YV=W.createContext(null);function XV(){let e=W.useContext(YV);if(!e)throw Error(`DropdownMenu components must be used inside a DropdownMenu`);return e}function ZV(){let e=W.useContext(YV);return W.useCallback(()=>{e?.setIsOpen(!1)},[e])}var QV=({children:e,open:t,onOpenChange:n})=>{let r=W.useContext(YV),i=W.useId(),a=r?`${r.portalChain}/${i}`:i,[o,s]=W.useState(t??!1),c=W.useRef(null),[l,u]=W.useState(-1),d=W.useRef(new Map),[,f]=W.useReducer(e=>e+1,0);W.useEffect(()=>{t!==void 0&&s(t)},[t]);let p=W.useCallback(e=>{s(e),u(-1),n?.(e)},[n]),m=W.useCallback((e,t)=>{d.current.set(e,t),f()},[]),h=W.useCallback(e=>{d.current.delete(e),f()},[]),g=W.useCallback(e=>Array.from(d.current.keys()).indexOf(e),[]),_=d.current.size,v=W.useMemo(()=>({isOpen:o,setIsOpen:p,triggerRef:c,registerItem:m,unregisterItem:h,getItemIndex:g,activeIndex:l,setActiveIndex:u,itemCount:_,menuId:i,portalChain:a}),[o,p,m,h,g,l,_,i,a]);return(0,G.jsx)(YV.Provider,{value:v,children:(0,G.jsx)(`div`,{ref:c,className:`relative inline-block`,children:e})})},$V=W.forwardRef(({className:e,children:t,asChild:n,...r},i)=>{let{isOpen:a,setIsOpen:o}=XV(),s=e=>{e.stopPropagation(),o(!a)};return n&&W.isValidElement(t)?W.cloneElement(t,{...r,onClick:s}):(0,G.jsx)(`button`,{ref:i,className:e,onClick:s,...r,children:t})});$V.displayName=`DropdownMenuTrigger`;var eH=W.forwardRef(({className:e,children:t,align:n=`center`,side:r=`bottom`,...i},a)=>{let{isOpen:o,setIsOpen:s,triggerRef:c,setActiveIndex:l,itemCount:u,menuId:d,portalChain:f}=XV(),p=W.useRef(null),m=a||p,[h,g]=W.useState({top:0,bottom:0,left:0,width:0}),_=r===`bottom`,[v,y]=W.useState(!1);W.useEffect(()=>{if(!o||!c.current)return;let e=c.current.getBoundingClientRect();g({top:e.bottom+8,bottom:window.innerHeight-e.top+8,left:e.left,width:e.width}),y(!1)},[o,c]),W.useLayoutEffect(()=>{if(!o||!_||!m.current)return;let e=m.current.getBoundingClientRect();y(h.top+e.height>window.innerHeight)},[o,_,h.top,m]),W.useEffect(()=>{if(!o||u===0)return;let e=setTimeout(()=>{l(0)},0);return()=>clearTimeout(e)},[o,u,l]),W.useEffect(()=>{if(!o)return;let e=e=>{let t=e.target;if(m.current&&m.current.contains(t)||c.current&&c.current.contains(t))return;let n=t.closest?.(`[data-dropdown-chain]`)?.getAttribute(`data-dropdown-chain`);n&&n.split(`/`).includes(d)||s(!1)},t=setTimeout(()=>{document.addEventListener(`mousedown`,e)},0);return()=>{clearTimeout(t),document.removeEventListener(`mousedown`,e)}},[o,s,m,c,d]);let b=e=>{if(u!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),l(e=>e<u-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),l(e=>e>0?e-1:u-1);break;case`Home`:e.preventDefault(),l(0);break;case`End`:e.preventDefault(),l(u-1);break;case`Escape`:e.preventDefault(),s(!1),c.current?.querySelector(`button`)?.focus();break;case`Tab`:s(!1)}};if(!o)return null;let x={position:`fixed`,zIndex:9999};return r===`top`||v?x.bottom=h.bottom:x.top=h.top,n===`end`?x.right=window.innerWidth-h.left-h.width:n===`start`?x.left=h.left:(x.left=h.left+h.width/2,x.transform=`translateX(-50%)`),IC.createPortal((0,G.jsx)(`div`,{ref:m,role:`menu`,"data-dropdown-chain":f,className:K(`min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95`,e),style:x,onKeyDown:b,...i,children:t}),document.body)});eH.displayName=`DropdownMenuContent`;var tH=W.forwardRef(({className:e,disabled:t,inset:n,onClick:r,onKeyDown:i,...a},o)=>{let{setIsOpen:s,registerItem:c,unregisterItem:l,getItemIndex:u,activeIndex:d}=XV(),f=W.useId(),p=W.useRef(null),m=W.useCallback(e=>{p.current=e,typeof o==`function`?o(e):o&&(o.current=e)},[o]);W.useEffect(()=>(c(f,p),()=>l(f)),[f,c,l]);let h=u(f)===d;return W.useEffect(()=>{h&&p.current?.focus()},[h]),(0,G.jsx)(`div`,{ref:m,role:`menuitem`,tabIndex:t?-1:h?0:-1,"aria-disabled":t,"data-active":h?`true`:void 0,className:K(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors`,`focus:bg-accent focus:text-accent-foreground`,`data-[active]:bg-accent data-[active]:text-accent-foreground`,n&&`pl-8`,t&&`pointer-events-none opacity-50`,e),onClick:e=>{t||(r?.(e),s(!1))},onKeyDown:e=>{t||(i?.(e),(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r?.(e),s(!1)))},...a})});tH.displayName=`DropdownMenuItem`;var nH=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(`div`,{ref:r,className:K(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));nH.displayName=`DropdownMenuLabel`;var rH=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:K(`-mx-1 my-1 h-px bg-muted`,e),...t}));rH.displayName=`DropdownMenuSeparator`;function iH({className:e,children:t,...n}){return(0,G.jsx)(`div`,{className:K(`px-2 py-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,e),...n,children:t})}var aH=[{label:`Past 1 week`,value:`last 1w`},{label:`Past 2 weeks`,value:`last 2w`},{label:`Past 4 weeks`,value:`last 4w`},{label:`Past 8 weeks`,value:`last 8w`},{label:`Past 12 weeks`,value:`last 12w`},{label:`Past 1 year`,value:`last 52w`},{label:`All time`,value:`all`}],oH=[`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`,`Su`];function sH(e,t){return new Date(e,t+1,0).getDate()}function cH(e,t){let n=new Date(e,t,1).getDay();return n===0?6:n-1}function lH(e,t){let n=X(e);if(n.error)return e;if(!t||t===`all`)return mg({...n,window:void 0});let r=X(`:note ${t}`);return r.error||r.family!==`find`||!r.window?e:mg({...n,window:r.window})}function uH(e){let t=X(e);return t.error||t.family===`pipeline`?null:`window`in t?t.window??null:null}function dH({query:e,onQueryChange:t,highlightDates:n=new Set,className:r}){let i=(0,W.useMemo)(()=>uH(e),[e]),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(()=>new Date),l=s.getFullYear(),u=s.getMonth(),d=(0,W.useMemo)(()=>i?i.kind===`relative`?`last ${i.size}${i.unit}`:i.end?`from ${i.start} to ${i.end}`:`from ${i.start}`:`All time`,[i]),f=(0,W.useMemo)(()=>{if(!i)return null;if(i.kind===`range`)return{start:i.start,end:i.end??i.start};let e=new Date,t=new Date;return i.unit===`d`?t.setDate(e.getDate()-i.size):t.setDate(e.getDate()-i.size*7),{start:vF(t),end:vF(e)}},[i]),p=(0,W.useMemo)(()=>{let e=sH(l,u),t=cH(l,u),n=[];for(let e=0;e<t;e++)n.push(null);for(let t=1;t<=e;t++)n.push(t);return n},[l,u]),m=n=>{if(!a)o(n),t(lH(e,`from ${n} to ${n}`));else{let[r,i]=a<=n?[a,n]:[n,a];o(null),t(lH(e,`from ${r} to ${i}`))}},h=e=>{e.stopPropagation(),c(new Date(l,u-1,1))},g=e=>{e.stopPropagation(),c(new Date(l,u+1,1))},_=s.toLocaleDateString(`en-US`,{month:`short`,year:`numeric`}),v=vF(new Date);return(0,G.jsxs)(`div`,{className:K(`relative inline-flex items-center`,r),children:[(0,G.jsxs)(QV,{children:[(0,G.jsx)($V,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wql-window-picker-trigger`,className:`flex h-9 items-center gap-1.5 rounded-lg border border-border bg-background px-2.5 text-xs font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,G.jsx)(sr,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`font-mono text-xs`,children:d}),(0,G.jsx)(Wt,{className:`size-3 text-muted-foreground`,"aria-hidden":`true`})]})}),(0,G.jsxs)(eH,{align:`end`,className:`w-72 p-3`,children:[(0,G.jsx)(`div`,{className:`mb-3 flex flex-wrap gap-1 border-b border-border/60 pb-2`,children:aH.map(n=>{let r=n.value===`all`?!i:i?.kind===`relative`&&`last ${i.size}${i.unit}`===n.value;return(0,G.jsx)(`button`,{type:`button`,"data-testid":`wql-window-preset-${n.value}`,onClick:()=>{o(null),t(lH(e,n.value))},className:K(`rounded-md px-2 py-1 text-[11px] font-medium transition-colors`,r?`bg-primary text-primary-foreground`:`bg-muted/50 text-muted-foreground hover:bg-muted hover:text-foreground`),children:n.label},n.value)})}),(0,G.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:h,"data-testid":`wql-calendar-prev-month`,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Previous month`,children:(0,G.jsx)(dn,{className:`size-4`})}),(0,G.jsx)(`span`,{className:`text-xs font-semibold text-foreground`,children:_}),(0,G.jsx)(`button`,{type:`button`,onClick:g,"data-testid":`wql-calendar-next-month`,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Next month`,children:(0,G.jsx)(En,{className:`size-4`})})]}),(0,G.jsx)(`div`,{className:`mb-1 grid grid-cols-7 gap-1`,children:oH.map(e=>(0,G.jsx)(`div`,{className:`text-center text-[10px] font-medium text-muted-foreground`,children:e},e))}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1`,"data-testid":`wql-calendar-grid`,children:p.map((e,t)=>{if(e===null)return(0,G.jsx)(`div`,{className:`size-8`},`empty-${t}`);let r=`${l}-${String(u+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,i=f&&r>=f.start&&r<=f.end,o=f&&r===f.start||a===r,s=f&&r===f.end,c=r===v,d=n.has(r);return(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wql-calendar-day-${r}`,onClick:()=>m(r),className:K(`relative flex size-8 items-center justify-center rounded-md text-xs transition-colors`,o||s?`bg-primary font-bold text-primary-foreground`:i?`bg-primary/15 font-semibold text-primary`:c?`border border-primary font-semibold text-primary`:`text-foreground hover:bg-muted`),children:[(0,G.jsx)(`span`,{children:e}),d&&!o&&!s&&(0,G.jsx)(`span`,{className:`absolute bottom-0.5 size-1 rounded-full bg-primary`})]},r)})}),a&&(0,G.jsxs)(`div`,{className:`mt-2 text-center text-[10px] text-muted-foreground`,children:[`Select second date to complete range (starting from `,a,`)`]})]})]}),i&&(0,G.jsx)(`button`,{type:`button`,"data-testid":`wql-window-picker-clear`,onClick:()=>{o(null),t(lH(e,null))},title:`Clear time window`,"aria-label":`Clear time window`,className:`ml-1 grid size-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,children:(0,G.jsx)(_r,{className:`size-3.5`})})]})}function fH({onOpen:e}){let t=ZV();return(0,G.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{t(),e()},"data-testid":`query-settings-trigger`,className:`w-full justify-start gap-2 rounded-lg text-xs`,children:[(0,G.jsx)(Ln,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:`Query settings`})]})}function pH(e){switch(e.kind){case`note`:return`note`;case`result`:return`result`;case`segment`:case`event`:return`segment`;case`effort`:return`effort`;default:return`note`}}var mH=[{id:`title`,label:`Title`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`tags`,label:`Tags`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.tags??[],formatValue:e=>Array.isArray(e)?e.join(`, `):String(e??``)},{id:`excerpt`,label:`Text Excerpt`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.block?.preview?.join(` `)||e.detail||``,formatValue:e=>String(e??``)},{id:`sourceNotebook`,label:`Notebook`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.sourceNotebook,formatValue:e=>String(e??``)},{id:`date`,label:`Date`,level:`note`,defaultVisible:!0,align:`right`,getValue:e=>e.date,formatValue:e=>String(e??``)}],hH={note:mH,session:[{id:`title`,label:`Title`,level:`session`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`protocol`,label:`Protocol`,level:`session`,defaultVisible:!0,align:`left`,getValue:e=>e.block?.dataType||e.subtitle||``,formatValue:e=>String(e??``)},{id:`movements`,label:`Movements`,level:`session`,defaultVisible:!0,align:`left`,getValue:e=>e.detail||``,formatValue:e=>String(e??``)},{id:`targetDuration`,label:`Target Duration`,level:`session`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.elapsedMs==null?``:xL(e.execution.elapsedMs),formatValue:e=>String(e??``)},{id:`sessionLoad`,label:`Session Load`,level:`session`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.loadLbs,formatValue:e=>typeof e==`number`?`${e.toLocaleString()} lbs`:``}],result:[{id:`title`,label:`Title`,level:`result`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`elapsedTime`,label:`Elapsed Time`,level:`result`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.elapsedMs==null?``:xL(e.execution.elapsedMs),formatValue:e=>String(e??``)},{id:`totalTonnage`,label:`Total Tonnage`,level:`result`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.loadLbs,formatValue:e=>typeof e==`number`?`${e.toLocaleString()} lbs`:``},{id:`tis`,label:`TIS Score`,level:`result`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.tis,formatValue:e=>typeof e==`number`?e.toFixed(1):``},{id:`prBadges`,label:`PR Badges`,level:`result`,defaultVisible:!0,align:`center`,getValue:e=>e.detail&&/\bPR\b/.test(e.detail)?`PR`:``,formatValue:e=>String(e??``)}],segment:[{id:`splitDuration`,label:`Split Duration`,level:`segment`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.elapsedMs==null?``:xL(e.execution.elapsedMs),formatValue:e=>String(e??``)},{id:`roundIndex`,label:`Round/Lap Index`,level:`segment`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`reps`,label:`Reps`,level:`segment`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.reps,formatValue:e=>e==null?``:String(e)},{id:`load`,label:`Load`,level:`segment`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.loadLbs,formatValue:e=>typeof e==`number`?`${e.toLocaleString()} lbs`:``},{id:`pacingTier`,label:`Pacing / HR Tier`,level:`segment`,defaultVisible:!0,align:`center`,getValue:e=>e.effort?.intensityTier||e.execution?.effortSlug||``,formatValue:e=>String(e??``)}],effort:[{id:`label`,label:`Label`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.label||e.title,formatValue:e=>String(e??``)},{id:`canonicalSlug`,label:`Canonical Slug`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.slug||e.id,formatValue:e=>String(e??``)},{id:`discipline`,label:`Discipline`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.discipline??``,formatValue:e=>String(e??``)},{id:`met`,label:`MET Score`,level:`effort`,defaultVisible:!0,align:`right`,getValue:e=>e.effort?.met,formatValue:e=>typeof e==`number`?e.toFixed(1):``},{id:`intensityTier`,label:`Intensity Tier`,level:`effort`,defaultVisible:!0,align:`center`,getValue:e=>e.effort?.intensityTier??``,formatValue:e=>String(e??``)},{id:`aliases`,label:`Aliases`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.aliases??[],formatValue:e=>Array.isArray(e)?e.join(`, `):String(e??``)}]};function gH(e){return hH[e]??mH}function _H(e){return gH(e).filter(e=>e.defaultVisible).map(e=>e.id)}var vH=1023;function yH(e){return e===`/`?`canvas:home`:`canvas:${e.replace(/^\//,``)}`}function bH(e,t){if(e===`query:new`)return``;let n=e=>{let n=`/${e}`;for(let r of Object.keys(t))if(r===e||r.endsWith(n))return r;return null},r=e=>{let r=n(e);if(r===null)return null;let i=t[r],{meta:a,body:o}=Za(i),s=new Set([`search`,`template`,`route`,`type`,`title`,`description`,`subtitle`,`section`,`order`]);return Object.keys(a).some(e=>!s.has(e.trim().toLowerCase()))?i:o};if(e.startsWith(`markdown/`)){let t=r(e);if(t!==null)return t}let i=e;if(e.startsWith(`wods/examples/`))i=`markdown/canvas/`+e.replace(/^wods\/examples\//,``);else if(e.startsWith(`wods/`))i=`markdown/canvas/`+e.replace(/^wods\//,``);else if(e.startsWith(`canvas/`))i=`markdown/canvas/`+e.replace(/^canvas\//,``);else{let t=r(`markdown/canvas/`+e);if(t!==null)return t;i=`markdown/`+e}return r(i)??`# Source not found\n\nPath: \`${e}\`\nResolved: \`${i}\``}function xH(e){return(e.examples??[]).length>0||e.commands.some(e=>e.pipeline.length>0)}function SH(e){let t=new Map,n=null;for(let r of e)xH(r)&&(n=r),t.set(r.id,n);return t}function CH(){let[e,t]=(0,W.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: ${vH}px)`).matches);return(0,W.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: ${vH}px)`),n=e=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var wH=[{id:`cards`,label:`Cards`,icon:_e},{id:`rows`,label:`Rows`,icon:rt},{id:`feed`,label:`Feed`,icon:Ut},{id:`agenda`,label:`Agenda`,icon:h},{id:`planner`,label:`Planner`,icon:gn}];function TH({streamControls:e}){let t=e.availableLayouts;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,"data-testid":`l3-stream-controls`,children:[e.onOpenQuerySettings&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`This page`}),(0,G.jsx)(fH,{onOpen:e.onOpenQuerySettings})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Date window`}),(0,G.jsx)(dH,{query:e.query,onQueryChange:e.onQueryChange,className:`w-full justify-between`})]}),e.availableGroupDims.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Group by`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`l3-groupby-options`,children:e.availableGroupDims.map(t=>{let n=e.groupDims.some(e=>e.toLowerCase()===t.id.toLowerCase());return(0,G.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 text-xs text-foreground/80 hover:bg-muted/60 transition-colors`,"data-testid":`l3-groupby-${t.id}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:n,onChange:()=>e.onToggleGroupDim(t.id),className:`size-3.5 rounded border-border accent-primary cursor-pointer`}),(0,G.jsx)(`span`,{children:t.label})]},t.id)})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Layout`}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 gap-1`,"data-testid":`l3-layout-options`,children:wH.filter(e=>!t||t.includes(e.id)).map(t=>{let n=t.icon,r=e.settings.layout===t.id;return(0,G.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>e.onLayoutChange(t.id),"data-testid":`l3-layout-${t.id}`,className:`flex min-h-8 items-center justify-center gap-1 rounded-md border px-1.5 py-1 text-[11px] font-medium transition-colors ${r?`border-border/80 bg-card text-foreground shadow-sm`:`border-transparent text-muted-foreground hover:text-foreground`}`,children:[(0,G.jsx)(n,{"aria-hidden":!0,className:`size-3`}),t.label]},t.id)})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Fields`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`l3-field-options`,children:gH(e.level).map(t=>{let n=e.settings.visibleFields.includes(t.id);return(0,G.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 text-xs text-foreground/80 hover:bg-muted/60 transition-colors`,"data-testid":`l3-field-${t.id}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:n,onChange:()=>e.onToggleField(t.id),className:`size-3.5 rounded border-border accent-primary cursor-pointer`}),(0,G.jsx)(`span`,{children:t.label})]},t.id)})})]}),(0,G.jsx)(gR,{})]})}function EH(){let e=CH(),{streamControls:t}=uP();return!e||!t?null:(0,G.jsx)(TH,{streamControls:t})}function DH({spec:e,pageAction:t}){let{l3Items:n,streamControls:r}=uP(),i=GB(e),a=(0,W.useMemo)(()=>JV(n),[n]),o=KB();return i.length===0&&a.length===0&&!r&&!t?null:(0,G.jsxs)(`div`,{className:`flex flex-col px-3 py-4 gap-4`,children:[r&&(0,G.jsx)(`div`,{className:`pb-3 border-b border-border/50`,children:(0,G.jsx)(TH,{streamControls:r})}),i.length>0&&(0,G.jsx)(JB,{entries:i,activeId:o}),a.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 pt-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`On this page`}),(0,G.jsx)(JB,{entries:a,activeId:o})]}),t&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-border/50`,children:t})]})}var OH=`wodwiki:fabAlignment`,kH=[{id:`left`,label:`Bottom left`,description:`Left-handed — search and page actions float near your left thumb`},{id:`right`,label:`Bottom right`,description:`Right-handed — search and page actions float near your right thumb`}];function AH(){try{return jH(localStorage.getItem(OH))}catch{return}}function jH(e){return e===`right`||e===`left`?e:void 0}var MH=typeof window>`u`?void 0:AH();typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key===OH&&(MH=jH(e.newValue))});function NH(e){MH=e;try{e===`right`?localStorage.removeItem(OH):localStorage.setItem(OH,e)}catch{}window.dispatchEvent(new StorageEvent(`storage`,{key:OH,newValue:e}))}function PH(){let[e,t]=(0,W.useState)(()=>MH??`right`);return(0,W.useEffect)(()=>{let e=e=>{e.key===OH&&t(jH(e.newValue)??`right`)};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),[e,NH]}function FH({onOpen:e}){return(0,G.jsxs)(`button`,{type:`button`,onClick:e,"aria-label":`Search`,title:`Search`,"data-testid":`search-fab`,className:K(`size-14 rounded-full flex items-center justify-center`,`bg-primary text-primary-foreground shadow-lg`,`hover:bg-primary/90 active:scale-95 transition-all`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`),children:[(0,G.jsx)(ge,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Search`})]})}var IH=(0,W.createContext)(null),LH=(0,W.createContext)(!1),RH=(0,W.createContext)(null);function zH(){return(0,W.useContext)(IH)!==null}function BH({primary:e,navbar:t,children:n,label:r,fallback:i=!1}){let a=(0,W.useContext)(IH),o=(0,W.useContext)(LH),s=CH(),c=(0,W.useId)(),l=a!==null&&!o&&s&&!i,u=a!==null&&i,d=n!=null&&n!==!1,f=(0,W.useMemo)(()=>(0,G.jsx)(LH.Provider,{value:!0,children:n}),[n]),p=l||u,m=(0,W.useRef)(null);return m.current={id:c,primary:e,navbar:t,children:f,hasContent:d,label:r??`Page options`,fallback:i},(0,W.useEffect)(()=>{if(p)return a.register(m.current),()=>a.unregister(c)},[p,a,c]),(0,W.useEffect)(()=>{p&&a.register(m.current)},[p,a,e,t,f,d,r,i]),i||a&&s&&!o?null:(0,G.jsx)(LH.Provider,{value:!0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t,e,n]})})}function VH({onSearch:e,children:t}){let[n,r]=(0,W.useState)([]),i=(0,W.useCallback)(e=>r(t=>{let n=t.findIndex(t=>t.id===e.id);if(n===-1)return[...t,e];let r=t[n];if(r.primary===e.primary&&r.navbar===e.navbar&&r.children===e.children&&r.hasContent===e.hasContent&&r.label===e.label&&r.fallback===e.fallback)return t;let i=[...t];return i[n]=e,i}),[]),a=(0,W.useCallback)(e=>r(t=>t.filter(t=>t.id!==e)),[]),o=(0,W.useMemo)(()=>({register:i,unregister:a}),[i,a]),s=(0,W.useMemo)(()=>{for(let e=n.length-1;e>=0;--e)if(!n[e].fallback)return n[e].navbar??null;return null},[n]);return(0,G.jsx)(IH.Provider,{value:o,children:(0,G.jsxs)(RH.Provider,{value:s,children:[t,(0,G.jsx)(UH,{registrations:n,onSearch:e})]})})}function HH(){let e=(0,W.useContext)(RH);return e?(0,G.jsx)(G.Fragment,{children:e}):null}function UH({registrations:e,onSearch:t}){let n=CH(),[r]=PH(),i=RC(),[a,o]=(0,W.useState)(!1),s=(0,W.useCallback)(()=>o(!1),[]),c=(0,W.useRef)(null),l=(0,W.useRef)(null),u=(0,W.useRef)(null),d=(0,W.useMemo)(()=>{for(let t=e.length-1;t>=0;--t)if(!e[t].fallback)return e[t]},[e]),f=(0,W.useMemo)(()=>{for(let t=e.length-1;t>=0;--t)if(e[t].fallback)return e[t]},[e]);(0,W.useLayoutEffect)(()=>{a&&c.current?.focus({preventScroll:!0})},[a]);let p=!!(d?.hasContent||f?.hasContent);return!n||!t&&!d&&!f?null:(0,G.jsxs)(`div`,{"data-testid":`actions-dock`,className:K(`lg:hidden relative z-40 mt-4 flex flex-col items-center gap-2`,`transition-[transform,visibility] duration-200 ease-out`,r===`left`?`self-start items-start`:`self-end items-end`),children:[(0,G.jsxs)(`div`,{className:`relative z-40 flex flex-col items-center gap-2`,children:[t&&(0,G.jsx)(FH,{onOpen:()=>{o(!1),t()}}),d?.primary&&(0,G.jsx)(`div`,{className:`[&_button]:min-h-11 [&_button]:min-w-11`,children:d.primary})]}),a&&p&&(0,G.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-hidden":`true`,className:`fixed inset-0 z-30 cursor-default`,onClick:()=>o(!1)}),(0,G.jsx)(`div`,{ref:c,role:`dialog`,"aria-label":d?.label??f?.label??`Page options`,tabIndex:-1,hidden:!a||!p,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),o(!1))},className:K(a&&p?`flex`:`hidden`,`relative z-40 w-60 max-w-[calc(100vw-2rem)] flex-col gap-3 overflow-y-auto rounded-2xl bg-card p-3 shadow-xl ring-1 ring-foreground/5 outline-none`,`[&_button]:min-h-11 [&_button]:min-w-11`),style:{maxHeight:`calc(${i.height===null?`100dvh`:`${i.height}px`} - 6rem - env(safe-area-inset-bottom))`},children:(0,G.jsxs)(AF,{close:s,children:[(0,G.jsx)(`div`,{ref:l,className:`contents`,children:d?.children}),d?.children&&f?.children&&(0,G.jsx)(`div`,{className:`my-1 border-t border-border/60`,"aria-hidden":`true`}),(0,G.jsx)(`div`,{ref:u,className:`contents`,children:f?.children})]})}),p&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-label":d?.label??f?.label??`Page options`,title:d?.label??f?.label??`Page options`,"aria-expanded":a,"data-testid":`actions-overflow`,className:K(`relative z-40 flex size-12 items-center justify-center rounded-full`,`bg-card text-foreground shadow-lg ring-1 ring-foreground/10`,`hover:bg-muted active:scale-95 transition-all`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`),children:[a?(0,G.jsx)(tr,{className:`size-6`}):(0,G.jsx)(I,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:d?.label??f?.label??`Page options`})]})]})}function WH(){return(0,G.jsx)(`svg`,{"data-slot":`icon`,viewBox:`0 0 20 20`,"aria-hidden":`true`,className:`[&>[data-slot=icon]]:size-5`,children:(0,G.jsx)(`path`,{d:`M2 6.75C2 6.33579 2.33579 6 2.75 6H17.25C17.6642 6 18 6.33579 18 6.75C18 7.16421 17.6642 7.5 17.25 7.5H2.75C2.33579 7.5 2 7.16421 2 6.75ZM2 13.25C2 12.8358 2.33579 12.5 2.75 12.5H17.25C17.6642 12.5 18 12.8358 18 13.25C18 13.6642 17.6642 14 17.25 14H2.75C2.33579 14 2 13.6642 2 13.25Z`})})}function GH(){return(0,G.jsx)(`svg`,{"data-slot":`icon`,viewBox:`0 0 20 20`,"aria-hidden":`true`,className:`[&>[data-slot=icon]]:size-5`,children:(0,G.jsx)(`path`,{d:`M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z`})})}function KH(){let{tree:e,navState:t,contextNav:n}=uP(),r=wn(),i=jF();return!e.find(e=>e.id===t.activeL1Id)?.applyFooter||n?.pathname===r.pathname?null:(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border/50 bg-card p-3`,children:(0,G.jsx)(`button`,{type:`button`,onClick:i,className:`h-11 w-full rounded-lg bg-primary text-sm font-medium text-primary-foreground`,children:`Apply`})})}function qH({open:e,close:t,onSearch:n,children:r}){return(0,G.jsxs)(nt,{open:e,onClose:t,className:`relative z-50 lg:hidden`,children:[(0,G.jsx)(Qe,{transition:!0,className:`fixed inset-0 bg-black/30 dark:bg-black/30 transition data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in`}),(0,G.jsx)(i,{transition:!0,className:`fixed inset-y-0 left-0 w-full transition duration-300 ease-out data-closed:-translate-x-full`,children:(0,G.jsx)(AF,{close:t,children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 bg-card`,children:[(0,G.jsx)(`div`,{className:`flex h-full w-14 shrink-0 flex-col items-center border-r border-zinc-950/5 bg-background/72 py-3 dark:border-white/5 [&_a]:size-11 [&_button]:size-11`,children:(0,G.jsx)(rV,{onSearch:()=>{t(),n?.()}})}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,G.jsx)(`div`,{className:`flex items-center px-4 pt-3`,children:(0,G.jsxs)(Nn,{as:Az,"aria-label":`Close navigation`,title:`Close navigation`,children:[(0,G.jsx)(GH,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close navigation`})]})}),(0,G.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:r}),(0,G.jsx)(KH,{})]})]})})})]})}function JH({open:e,close:t,children:n}){return(0,G.jsxs)(nt,{open:e,onClose:t,className:`relative z-50 lg:hidden`,children:[(0,G.jsx)(Qe,{transition:!0,className:`fixed inset-0 bg-black/30 dark:bg-black/30 transition data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in`}),(0,G.jsx)(i,{transition:!0,className:`fixed inset-y-0 right-0 w-full transition duration-300 ease-out data-closed:translate-x-full`,children:(0,G.jsx)(AF,{close:t,children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-card`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-end px-4 pt-3`,children:(0,G.jsxs)(Nn,{as:Az,"aria-label":`Close page options`,title:`Close page options`,children:[(0,G.jsx)(GH,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close page options`})]})}),(0,G.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:n}),(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border/50 bg-card p-3`,children:(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`h-11 w-full rounded-lg bg-primary text-sm font-medium text-primary-foreground`,children:`Apply`})})]})})})]})}function YH({navbar:e,sidebar:t,onSearch:n,secondary:r,pageAction:i,hideDesktopSidebar:a,children:o}){let[s,c]=(0,W.useState)(!1),[l,u]=(0,W.useState)(!1),{streamControls:d,l3Items:f}=uP(),p=!!(r&&r.length>0||f&&f.length>0||d||i),m=(0,W.useMemo)(()=>{let e=X(d?.query??``);return!e.error&&xh(e)&&e.filters.length>0},[d?.query]);return(0,W.useEffect)(()=>{if(!s&&!l)return;let e=()=>{c(!1),u(!1)};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[s,l]),(0,G.jsx)(WV,{children:(0,G.jsx)(VH,{onSearch:n,children:(0,G.jsx)(`div`,{className:`relative isolate flex min-h-svh w-full bg-background max-lg:flex-col lg:flex-row`,children:(0,G.jsxs)(`div`,{className:`flex flex-1 w-full max-lg:flex-col lg:flex-row`,children:[(0,G.jsxs)(`nav`,{"aria-label":`Main`,className:`hidden lg:flex`,children:[(0,G.jsx)(`div`,{className:`w-14 shrink-0 sticky top-0 h-svh flex flex-col items-center border-r border-zinc-950/5 dark:border-white/5 bg-background/72 backdrop-blur-sm z-40 py-3`,children:(0,G.jsx)(rV,{onSearch:n??(()=>{})})}),(0,G.jsx)(`div`,{className:K(`w-60 shrink-0 sticky top-0 self-start h-svh min-h-0 overflow-hidden border-r border-zinc-950/5 dark:border-white/5 bg-background/72 backdrop-blur-sm flex flex-col`,a&&`lg:hidden`),children:t})]}),(0,G.jsx)(qH,{open:s,close:()=>c(!1),onSearch:n,children:t}),(0,G.jsxs)(`div`,{className:`flex flex-1 flex-col min-w-0 xl:max-w-[984px] 2xl:max-w-none`,children:[(0,G.jsxs)(`header`,{"data-page-sticky-boundary":`true`,className:`lg:hidden sticky top-0 z-20 flex items-center px-2 sm:px-4 bg-card`,children:[(0,G.jsx)(`div`,{className:`py-2.5 shrink-0`,children:(0,G.jsxs)(Az,{onClick:()=>c(!0),"aria-label":`Open navigation`,title:`Open navigation`,children:[(0,G.jsx)(WH,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Open navigation`})]})}),(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:e}),p&&(0,G.jsx)(`div`,{className:`py-2.5 shrink-0`,children:(0,G.jsxs)(Az,{onClick:()=>u(!0),"aria-label":`Open page options`,title:`Open page options`,children:[(0,G.jsxs)(`span`,{className:`relative inline-flex`,children:[(0,G.jsx)(Ln,{className:`size-5`}),m&&(0,G.jsx)(`span`,{"data-testid":`drawer-filters-active`,className:`absolute -top-1 -right-1 size-2 rounded-full bg-amber-500`,"aria-hidden":`true`})]}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Open page options`})]})})]}),(0,G.jsxs)(`main`,{className:`flex flex-1 flex-col lg:min-w-0`,children:[(0,G.jsx)(`div`,{className:`grow w-full max-lg:pb-48 lg:overflow-visible`,children:o}),(0,G.jsx)(XH,{})]})]}),(0,G.jsx)(`aside`,{className:`hidden 2xl:flex w-60 shrink-0 sticky top-0 h-svh flex-col overflow-y-auto bg-background/72 backdrop-blur-sm`,children:(0,G.jsx)(DH,{spec:r,pageAction:i})}),(0,G.jsx)(JH,{open:l,close:()=>u(!1),children:(0,G.jsx)(DH,{spec:r,pageAction:i})})]})})})})}function XH(){let e=(0,W.useRef)(null),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=e.current;if(!t)return;let r=new ResizeObserver(e=>{let t=Math.round(e[0]?.contentRect.height??0);n(e=>e===t?e:t)});r.observe(t,{box:`content-box`});let i=Math.round(t.getBoundingClientRect().height);return n(e=>e===i?e:i),()=>r.disconnect()},[]),(0,W.useEffect)(()=>(document.documentElement.style.setProperty(`--thumb-dock-lift`,`${t}px`),()=>document.documentElement.style.setProperty(`--thumb-dock-lift`,`0px`)),[t]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:K(`lg:hidden fixed inset-x-0 bottom-0 z-30`,t>0&&`bg-card border-t border-border/50 px-3 py-2`),children:(0,G.jsx)(`div`,{ref:e,className:`w-full min-w-0`,children:(0,G.jsx)(GV,{className:`flex w-full min-w-0`})})}),(0,G.jsx)(`div`,{className:`lg:hidden`,"aria-hidden":`true`,style:{height:t}})]})}function ZH(e){let t=e.indexOf(`markdown`);return t!==-1&&e.length>t+2?e[t+2]:`General`}function QH(e){return String(to(Za(e).meta,`search`)??``).toLowerCase()===`hidden`}function $H(e){let t=to(Za(e).meta,`date`);if(typeof t!=`string`||!/^\d{4}-\d{2}-\d{2}$/.test(t))return;let n=new Date(`${t}T12:00:00Z`);return Number.isFinite(n.getTime())&&n.toISOString().slice(0,10)===t?n.getTime():void 0}function eU(e){return Object.entries(e).map(([e,t])=>{let n=e.split(`/`),r=n[n.length-1].replace(`.md`,``),i=t,a=to(Za(i).meta,`title`);return{id:e,name:r,displayName:typeof a==`string`&&a.trim()?a.trim():UO(r),category:ZH(n),content:i,date:$H(i),searchHidden:QH(i)}})}function tU(){let e=dk();return(0,W.useMemo)(()=>e?eU(e):[],[e])}var nU={};function rU(e){if(!(`payload`in e))return;let t=e.payload;if(!t||typeof t!=`object`)return;let n=t;return n.targetDate??n.updatedAt}function iU(e,t){let{canvasPage:n,workoutItems:r,recentResults:i,selectWorkout:a}=t;if(e===`/`)return[];if(n){let t=/^\/notebook\//.test(e),i=t?e.split(`/`).pop()??null:null,o=[],s=e.startsWith(`/page/guide-`);return n.sections.filter(e=>e.level>1).forEach(e=>{if(o.push({id:e.id,label:e.heading,type:`heading`}),!s){let t=QR(e).split(`
109
+ `;return{statements:mc(Qr.create({doc:n,extensions:[Hc]}),t),errors:[],success:!0}}catch(e){return{statements:[],errors:[{message:e instanceof Error?e.message:`Unknown parse error`,severity:`error`}],success:!1}}}function nB(e,t={}){let n=t.sourceRevision??1,r=Na(e,{...t,blocks:t.noteBlocks,sourceRevision:n}),i=ja(e,t),a=[];for(let e of i){if(!Ma(e))continue;let t=Object.values(r).find(t=>t.from===e.from&&t.to===e.to);t&&(e.id=t.id,e.version=t.version,e.scriptBlock&&(e.scriptBlock=rB({...e.scriptBlock,id:t.id,version:t.version}),a.push(e.scriptBlock)))}return{sections:i,blocks:a,noteBlocks:r,rawContent:e,sourceRevision:n}}function rB(e){try{let t=tB(e.content,e.sport);return{...e,statements:t.statements,errors:t.errors,state:t.success?`parsed`:`error`}}catch(t){return Gj(`WorkbenchDocumentModel`,`Block parse error:`,t),e}}var iB={content:``,sections:null,noteBlocks:{},sourceRevision:0,capturedRun:null,saveError:null,blocks:[],activeBlockId:null,saveState:`idle`,lastSavedContent:``,loadedRouteId:null,results:[],currentEntry:null,historyEntries:[],panelLayouts:{},attachments:[],runtime:null,execution:{status:`idle`,elapsedTime:0,stepCount:0,startTime:null,start:()=>{},pause:()=>{},stop:()=>{},reset:()=>{},step:()=>{}},handles:{handleStart:()=>{},handlePause:()=>{},handleStop:()=>{},handleNext:()=>{},handleStartWorkoutAction:()=>{}},activeSegmentIds:new Set,activeStatementIds:new Set,analyticsSegments:[],analyticsGroups:[],selectedAnalyticsIds:new Set,lastSelectedAnalyticsId:null,outputStatementList:[],logOutputList:[],userOutputOverrides:new Map,gridViewPreset:`default`,hoveredBlockKey:null,documentItems:[],selectedBlock:null,selectedBlockId:null,cursorLine:1,highlightedLine:null,subscriptionManager:null,viewMode:`plan`},aB=5e3;function oB(e={}){let t=e.listeners??[],n=e.nowProvider??Gl,r=e.notePersistence,i=e.setTimeout??((e,t)=>window.setTimeout(e,t)),a=e.clearTimeout??(e=>{typeof e==`number`&&window.clearTimeout(e)}),o=null,s=[],c=Cn()((t,n)=>{let c=Promise.resolve(),l=async i=>{let a=n(),o=a.currentEntry?.id??a.loadedRouteId;if(!(!o||!r||!e.provider?.capabilities.canWrite)&&(i.rawContent!==a.lastSavedContent||JSON.stringify(Object.values(i.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))!==JSON.stringify(Object.values(a.currentEntry?.blocks??{}).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport])))){t({saveState:`saving`,saveError:null});try{let e=await r.saveNote({noteId:o,rawContent:i.rawContent,blocks:i.blocks,expectedSourceRevision:a.sourceRevision,metadata:{title:i.rawContent.match(/^#\s+(.+)$/m)?.[1]?.trim()??`Untitled Session`},noteType:`playground`}),s=n();t({currentEntry:e,...s.content===i.rawContent&&JSON.stringify(Object.values(s.noteBlocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))===JSON.stringify(Object.values(i.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))?{noteBlocks:e.blocks}:{},sourceRevision:e.sourceRevision??a.sourceRevision,lastSavedContent:i.rawContent,saveState:`saved`})}catch(e){throw t({saveState:`error`,saveError:e instanceof Error?e.message:String(e)}),e}}},u=()=>{o=null;let e=n(),t={rawContent:e.content,blocks:e.noteBlocks,sourceRevision:e.sourceRevision},r=c.catch(()=>{}).then(()=>l(t));return c=r,r};return{...iB,setContent:r=>{let s=nB(r,{noteBlocks:n().noteBlocks,sourceRevision:Math.max(1,n().sourceRevision)}),c=n(),l={content:r,sections:s.sections,blocks:s.blocks,noteBlocks:s.noteBlocks};r!==c.lastSavedContent&&(c.saveState===`idle`&&(l.saveState=`changed`),o!==null&&a(o),e.provider&&e.provider.capabilities.canWrite&&(o=i(()=>{u().catch(()=>{})},aB))),t(l)},setBlocks:e=>t({blocks:e}),setEditorIdentity:r=>{let s=JSON.stringify(Object.values(n().noteBlocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))!==JSON.stringify(Object.values(r.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]));t({content:r.rawContent,noteBlocks:r.blocks}),s&&e.provider?.capabilities.canWrite&&(o!==null&&a(o),o=i(()=>{u().catch(()=>{})},aB))},acceptSaved:e=>t(t=>({...t.content===e.rawContent&&JSON.stringify(Object.values(t.noteBlocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))===JSON.stringify(Object.values(e.blocks).map(e=>[e.id,e.from,e.to,e.kind,e.dialect,e.sport]))?{noteBlocks:e.blocks}:{},sourceRevision:e.sourceRevision,lastSavedContent:e.rawContent})),restoreBlock:async e=>{if(!r)throw Error(`Note persistence is unavailable.`);await u();let i=n(),a=Lz({rawContent:i.content,blocks:i.noteBlocks,sourceRevision:i.sourceRevision},e),o=await r.saveNote({noteId:e.noteId,rawContent:a.rawContent,blocks:a.blocks,expectedSourceRevision:i.sourceRevision}),s=nB(o.rawContent,{noteBlocks:o.blocks,sourceRevision:o.sourceRevision});t({content:o.rawContent,noteBlocks:o.blocks,sourceRevision:o.sourceRevision,lastSavedContent:o.rawContent,currentEntry:o,sections:s.sections,blocks:s.blocks})},startPinnedRun:async e=>{await c.catch(()=>{});let i=n(),a=i.currentEntry?.id??i.loadedRouteId;if(!a||!r)throw Error(`Save the note before starting a workout.`);try{let n=await Hj({noteId:a,rawContent:i.content,blocks:i.noteBlocks,expectedSourceRevision:i.sourceRevision},e,$t(),void 0,r);return t({capturedRun:n,noteBlocks:n.note.blocks,sourceRevision:n.note.sourceRevision,currentEntry:{...i.currentEntry,...n.note,updatedAt:Date.now(),targetDate:i.currentEntry?.targetDate??Date.now(),schemaVersion:1},lastSavedContent:n.note.rawContent,saveError:null}),n.block}catch(e){throw t({saveState:`error`,saveError:e instanceof Error?e.message:String(e)}),e}},setActiveBlockId:e=>t({activeBlockId:e}),setSaveState:e=>t({saveState:e}),flushSave:async()=>{o!==null&&a(o),o=null,await u()},markSaved:e=>t({lastSavedContent:e,saveState:`saved`}),setResults:e=>t({results:e}),resetResults:()=>t({results:[]}),setCurrentEntry:e=>{if(e&&e.id!==n().currentEntry?.id){let n=nB(e.rawContent,{noteBlocks:e.blocks,sourceRevision:Math.max(1,e.sourceRevision??0)});t({currentEntry:e,content:e.rawContent,noteBlocks:n.noteBlocks,sections:n.sections,blocks:n.blocks,sourceRevision:e.sourceRevision??0,lastSavedContent:e.rawContent})}else t({currentEntry:e})},setHistoryEntries:e=>t({historyEntries:e}),setPanelLayouts:e=>t({panelLayouts:e}),expandPanel:(e,n)=>t(t=>{let r=t.panelLayouts[e]??{viewId:e,panelSpans:{},expandedPanelId:null},i=r.expandedPanelId?r.panelSpans:{...r.panelSpans};return{panelLayouts:{...t.panelLayouts,[e]:{...r,panelSpans:{...i,[n]:3},expandedPanelId:n}}}}),collapsePanel:e=>t(t=>{let n=t.panelLayouts[e];return n?{panelLayouts:{...t.panelLayouts,[e]:{...n,expandedPanelId:null}}}:t}),setAttachments:e=>t({attachments:e}),addAttachment:async r=>{let i=e.notePersistence,a=e.provider,o=n().currentEntry?.id;if(!o||!a?.capabilities.canWrite||!i)return;console.log(`[WorkbenchSession] Processing attachment: ${r.name}`);let s=await Lb.process(r),{v7:c}=await at(async()=>{let{v7:e}=await import(`./vendor-BiwvmytJ.js`).then(e=>e.At);return{v7:e}},__vite__mapDeps([0,1,2]));console.log(`[WorkbenchSession] Saving attachment to entry ${o}`),await i.mutateNote(o,{attachments:{add:[{id:c(),label:s.label,mimeType:s.mimeType,data:s.data,timeSpan:s.timeSpan??{start:Date.now(),end:Date.now()}}]}}),t({attachments:(await i.getNote(o,{projection:`workbench`,includeAttachments:!0})).attachments??[]}),console.log(`[WorkbenchSession] Attachment saved successfully`)},deleteAttachment:async r=>{let i=e.notePersistence,a=n().currentEntry?.id;!a||!i||(await i.mutateNote(a,{attachments:{remove:[r]}}),t({attachments:(await i.getNote(a,{projection:`workbench`,includeAttachments:!0})).attachments??[]}))},patchCurrentEntryResults:e=>t(t=>t.currentEntry?{currentEntry:{...t.currentEntry,results:e}}:t),completeWorkout:async(e,i)=>{let a=n().capturedRun,o=i??a?.session.id;if(!o||!r?.finishSession)throw Error(`The saved run pin is unavailable.`);let s=await r.finishSession(o,e,e.endTime);return t(t=>({results:[...t.results,e]})),s.id},loadEntry:async r=>{let i=e.notePersistence,a=e.provider;if(!i||!a)return null;let{routeId:o,routeView:s,routeSectionId:c,routeResultId:l,resultFromLocationState:u,initialActiveEntryId:d,propInitialContent:f}=r;if(n().setContent(``),n().setBlocks([]),t({currentEntry:null,loadedRouteId:o??null}),o){if(a.mode===`history`||a.mode===`static`)try{let e=l?{mode:`by-result-id`,resultId:l}:c&&s===`review`?{mode:`latest-for-section`,blockId:c}:{mode:`latest`},d=await i.getNote(o,{projection:s===`review`?`review`:`workbench`,includeAttachments:!0,includeSections:!0,resultSelection:e}).catch(async t=>(console.warn(`[WorkbenchSession] Note persistence projection failed, falling back to provider entry:`,{routeId:o,projection:s===`review`?`review`:`workbench`,resultSelectionMode:e.mode,err:t}),a.getRecord(o)));if(d){let e=nB(d.rawContent,{noteBlocks:d.blocks,sourceRevision:Math.max(1,d.sourceRevision??0)});return t({currentEntry:d,content:d.rawContent,sections:e.sections,blocks:e.blocks,noteBlocks:e.noteBlocks,sourceRevision:d.sourceRevision??0,lastSavedContent:d.rawContent,saveState:`saved`}),s===`review`&&u&&t(e=>e.currentEntry?{currentEntry:{...e.currentEntry,results:u}}:e),r.onLoaded?.(d),d}if(a.mode===`static`){let e=await Bz(o);if(e)return n().setContent(e),null}}catch(e){console.error(`[WorkbenchSession] Failed to load entry for ID:`,o,e)}}else d&&e.navigate?.({type:`goToPlan`,noteId:d});return n().setContent(f??``),null},setActiveSegmentIds:e=>t({activeSegmentIds:e}),setActiveStatementIds:e=>t({activeStatementIds:e}),setAnalytics:(e,n)=>t({analyticsSegments:e,analyticsGroups:n}),appendOutputStatement:e=>t(t=>{let n=[...t.outputStatementList,e],{segments:r,groups:i}=Fz(t.runtime);return t.runtime?{outputStatementList:n,analyticsSegments:r,analyticsGroups:i}:{outputStatementList:n}}),clearOutputStatementList:()=>t({outputStatementList:[]}),feedLogOutputs:(e,n)=>{let{segments:r,groups:i}=Iz(e,n);t({logOutputList:e,analyticsSegments:r,analyticsGroups:i})},toggleAnalyticsSegment:(e,n,r)=>t(t=>{let i=new Set(t.selectedAnalyticsIds);if(n?.shiftKey&&t.lastSelectedAnalyticsId!==null&&r){let n=r.indexOf(t.lastSelectedAnalyticsId),a=r.indexOf(e);if(n!==-1&&a!==-1){let e=Math.min(n,a),t=Math.max(n,a);r.slice(e,t+1).forEach(e=>i.add(e))}}else n?.ctrlKey?i.has(e)?i.delete(e):i.add(e):(i.clear(),i.add(e));return{selectedAnalyticsIds:i,lastSelectedAnalyticsId:e}}),setUserOverride:(e,n)=>t(t=>{let r=new Map(t.userOutputOverrides);return r.set(e,ca.from(n,e)),{userOutputOverrides:r}}),clearUserOverride:e=>t(t=>{let n=new Map(t.userOutputOverrides);return n.delete(e),{userOutputOverrides:n}}),setGridViewPreset:e=>t({gridViewPreset:e}),setHoveredBlockKey:e=>t({hoveredBlockKey:e}),setDocumentItems:e=>t({documentItems:e}),setSelectedBlock:e=>t({selectedBlock:e,selectedBlockId:e?.id??null}),setSelectedBlockId:e=>t({selectedBlockId:e}),setCursorLine:e=>t({cursorLine:e}),setHighlightedLine:e=>t({highlightedLine:e}),setSubscriptionManager:e=>{t({subscriptionManager:e}),$z.setSubscriptionRegistry(e)},setViewMode:e=>t({viewMode:e}),setRuntime:e=>{for(let e of s)e();if(s=[],e){let r=Fz(e);t({runtime:e,outputStatementList:[],analyticsSegments:r.segments,analyticsGroups:r.groups}),s.push(e.subscribeToOutput(()=>{n().appendOutputStatement({})})),s.push(e.subscribeToStack(e=>{let n=e.blocks[0],r=new Set;for(let t of e.blocks)r.add(Di(t.key.toString()));let i=new Set;if(n&&Array.isArray(n.sourceIds))for(let e of n.sourceIds)i.add(e);t({activeSegmentIds:r,activeStatementIds:i})}));let i=dM();if(i?.connected){let t=new Jz(i);s.push(e.subscribeToStack(e=>t.onStackSnapshot(e)),e.subscribeToOutput(e=>t.onOutput(e)),()=>t.dispose());try{t.onStackSnapshot(e.getStackSnapshot())}catch{}}}else t({runtime:null,outputStatementList:[]})},setExecution:e=>t({execution:e}),setHandles:e=>t({handles:e}),getNote:async(e,t)=>{if(!r)throw Error(`[WorkbenchSession] getNote called without a notePersistence port`);return r.getNote(e,t)},resetStore:()=>{o!==null&&(a(o),o=null);for(let e of s)e();s=[],t({...iB})}}});return t.length>0&&c.subscribe(e=>{for(let n of t)n(e)}),Object.assign(c,{__nowProvider:n})}var sB=oB();function cB(e){let t=sB;return sB=e,t}function lB(){return sB}var uB=e=>Mt(sB,e),dB=({nowProvider:e,notePersistence:t,provider:n,navigate:r,children:i})=>{let a=(0,W.useMemo)(()=>oB({nowProvider:e,notePersistence:t,provider:n,navigate:r}),[e,t,n,r]);return(0,W.useEffect)(()=>{let e=cB(a);return()=>{cB(e),a.getState().resetStore()}},[a]),W.createElement(W.Fragment,null,i)},fB={getEventsByTimeRange:(e,t)=>Z.getEventsByTimeRange(e,t),getEventsByMetricDates:e=>Z.getEventsByMetricDates(e),getEventsByResult:e=>Z.getEventsByResult(e),getEventsForNote:e=>Z.getEventsForNote(e),getEventsByContent:e=>Z.getEventsByContent(e),scanAll:()=>Z.scanAll(),appendEvents:e=>Z.appendEvents(e),finalizeSummaries:(e,t)=>Z.finalizeSummaries(e,t),deleteEvents:e=>Z.deleteEvents(e)},pB={getAllNotes:()=>Z.getAllNotes(),getNotesByIds:async e=>[...(await Z.getDetailBatches(e)).values()].map(e=>e.note),getNoteIdsForTag:async e=>new Set((await Z.getNotesForTag(e)).map(e=>e.id)),getNoteTagLabels:async e=>(await Z.getTagsForNote(e)).map(e=>e.label),queryDomain:async e=>{if(!Z.queryDomain)return;let t=await Z.queryDomain({...e,plan:`notes`});return t&&t.plan===`notes`?t:void 0}},mB={getAllBlocks:()=>Z.getAllBlockIndex(),queryDomain:async e=>{if(!Z.queryDomain)return;let t=await Z.queryDomain({...e,plan:`blocks`});return t&&t.plan===`blocks`?t:void 0}},hB=class{async getAllEfforts(){let e=RO();return e.isInitialized()||await NO(e),[...e.list()]}},gB=new v_,_B={events:[],notes:[]},vB={events:[],notes:[]};gB.set(`@session`,_B),gB.set(`@today`,vB);function yB(){let e=lB().getState(),t=e.runtime?.getOutputStatements()??[],n=e.currentEntry;return _B.notes=n?[{id:n.id,title:n.title,createdAt:n.createdAt,date:n.targetDate,rawContent:n.rawContent,sourceRevision:n.sourceRevision??1,blocks:n.blocks??{}}]:[],t.length===0?(_B.events=[],_B):(_B.events=k_(t.map(Sm),{noteId:n?.id??``,resultId:`live:${n?.id??`session`}`,origin:`playground`,workoutTimestamp:n?.targetDate}),_B)}function bB(e,t,n,r){let i=[...t].sort((e,t)=>(e.position??1/0)-(t.position??1/0)||e.createdAt-t.createdAt);for(let e of i){let t=n.get(e.pageId)?.date;if(t)return t}return n_(e.date??e.createdAt,r)}async function xB(e,t){let n=n_(e.instant,e.timeZone),r=s_(n,e.timeZone),i=s_(r_(n,1),e.timeZone),[a,o,s,c]=await Promise.all([Z.getEventsByTimeRange(r,i),Z.getAllNotes(),Z.getAllPageNotes(),Z.getAllPages()]),l=a.filter(e=>e.timestamp>=r&&e.timestamp<i),u=new Map(c.map(e=>[e.id,e])),d=new Map;for(let e of s){let t=d.get(e.noteId);t?t.push(e):d.set(e.noteId,[e])}let f=[];for(let t of o)bB(t,d.get(t.id)??[],u,e.timeZone)===n&&f.push(t);t===wB&&(vB.events=l,vB.notes=f,yB())}var SB=null,CB=null,wB=0,TB=!1,EB=new Set;function DB(){for(let e of EB)e()}function OB(e,t){CB=t;let n=++wB;return SB=xB(e,n),SB.then(()=>{n===wB&&kB()},()=>{n===wB&&kB()}),SB}function kB(){TB=!0,DB()}function AB(){let e=Xg(),t=n_(e.instant,e.timeZone);return!SB||CB!==t?OB(e,t):SB}function jB(){TB=!1;let e=Xg();return OB(e,n_(e.instant,e.timeZone))}function MB(){return TB}function NB(e){return EB.add(e),()=>{EB.delete(e)}}var PB=class extends _v{async runQuery(e,t){return await AB(),super.runQuery(e,t)}async runPipeline(e,t){return await AB(),super.runPipeline(e,t)}async runFind(e,t){return await AB(),super.runFind(e,t)}async runRows(e,t){return await AB(),super.runRows(e,t)}async run(e,t){return await AB(),super.run(e,t)}};function FB(){return new PB({eventStore:fB,noteStore:pB,blockStore:mB,effortStore:new hB,blockEffortsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`block_efforts`,e,t)},tagsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`tags`,e,t),getAll:()=>Z.getAllTags()},noteTagsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`note_tags`,e,t)},pageStore:{getNotePages:e=>Z.getNotePages(e),getPage:e=>Z.getPage(e),getAllPages:()=>Z.getAllPages(),getAllLinks:()=>Z.getAllPageNotes()},relationStore:{getBatches:e=>Z.getDetailBatches(e)},datasetStore:{getDataset:e=>e===`@session`?yB():gB.getDataset(e)}})}var IB=FB();function LB(e,t,n){let r=typeof e.__id==`string`&&e.__id?e.__id:void 0,i=typeof e.__resultId==`string`&&e.__resultId?e.__resultId:void 0,a=typeof e.effort==`string`&&e.effort?e.effort:void 0,o=[];for(let[t,n]of Object.entries(e))t.startsWith(`__`)||t===`date`||t===`effort`||(typeof n==`string`||typeof n==`number`||typeof n==`boolean`)&&o.push(`${t}: ${n}`);return{id:r??i??`${t}:${n}`,kind:t,sourceNotebook:`results`,sourceNote:i??r??`${t}:${n}`,title:a?bL(a):`${t===`segment`?`Segment`:`Event`} ${n+1}`,date:typeof e.date==`string`?e.date:null,subtitle:o.length>0?o.join(` • `):void 0}}function RB(e){let t=e.parsed.family===`aggregate`?e.parsed.metric:`metric`;return e.series.map(e=>{let n=e.points.map(t=>`${t.value}${e.unit?` ${e.unit}`:``}`).join(` • `);return{id:`aggregate:${t}:${e.key}`,kind:`result`,sourceNotebook:`results`,sourceNote:e.label,title:`${t}: ${n}`,subtitle:e.label,date:null}})}function zB(e,t,n){e&&e({selected:Math.max(t?.selected??0,n.length),matched:n.length})}function BB(e){return typeof e==`object`&&!!e&&`runFind`in e}var VB=new class e{customService;noteTitleResolver;noteTagsResolver;noteBlockInfo;constructor(e){BB(e)?this.customService=e:(this.customService=e?.service,this.noteTitleResolver=e?.noteTitleResolver,this.noteBlockInfo=e?.noteBlockInfo??!1,this.noteTagsResolver=e?.noteTagsResolver),this.noteTitleResolver||=async e=>{try{let t=await Z.getNote(e);return t?bx(t.title)||xx(t.rawContent??``):void 0}catch{return}}}get service(){return this.customService??IB}withNoteBlockInfo(){let t=new e({service:this.service,noteTitleResolver:this.noteTitleResolver,noteTagsResolver:this.noteTagsResolver,noteBlockInfo:!0});return Object.prototype.hasOwnProperty.call(this,`query`)&&(t.query=this.query),t}async hydrateEntries(e,t){let n=new Set;for(let r of e)r.sourceNotebook===`journal`&&n.add(r.id),t&&(!r.title||!r.tags||r.tags.length===0)&&n.add(r.id);if(n.size===0)return;let r=await Z.getDetailBatches([...n]);for(let t of e){if(t.sourceNotebook!==`journal`)continue;let e=r.get(t.id),n=va(e?.links??[],e?.pages??[]);t.placements=n;let i=ya(n);t.pageId??=i.pageId,i.pageSlug&&(t.pageSlug=i.pageSlug)}if(t)for(let t of e){let e=r.get(t.id);!t.title&&e?.note.title&&(t.title=e.note.title),e&&e.tags.length>0&&((!t.tags||t.tags.length===0)&&(t.tags=e.tags.map(e=>e.label)),t.typedTags=e.tags.map(e=>({label:e.label,type:e.type})))}}async query(e,t){let n=typeof e==`string`?X(e):e;if(!n||n.error)return[];if(xh(n)){if(n.target===`effort`){let e=this.service.runFindEffort?await this.service.runFindEffort(n):await this.service.runFind(n),r=new Map(e.notes.map(e=>[e.id,e])),i=(e.efforts??[]).map(e=>e.ownerNoteId&&r.has(e.ownerNoteId)?pL(r.get(e.ownerNoteId)):CL(e));return zB(t,e.stages,i),i}if(n.target===`block`){let e=await this.service.runFind(n),r=e.blocks.map(yL);return await this.hydrateEntries(r,!0),zB(t,e.stages,r),r}if(n.target===`session`){let e=await this.service.runFind(n);t?.(e.stages);let r;if(this.noteTitleResolver&&e.runs){r=new Map;for(let t of e.runs)if(!r.has(t.noteId)){let e=await this.noteTitleResolver(t.noteId);e&&r.set(t.noteId,e)}}let i=OL(e,{noteTitles:r});return zB(t,e.stages,i),i}if(n.target===`segment`||n.target===`event`){let e=n.target,r=await this.service.runFind(n),i=(r.table?.rows??[]).map((t,n)=>LB(t,e,n));return zB(t,r.stages,i),i}let e=await this.service.runFind(n),r=e.notes.map(pL);if(this.noteTagsResolver?(await this.hydrateEntries(r,!1),await Promise.all(r.map(async e=>{if(!e.tags||e.tags.length===0){let t=await this.noteTagsResolver(e.id);t&&t.length>0&&(e.tags=t)}}))):await this.hydrateEntries(r,!0),zB(t,e.stages,r),this.noteBlockInfo)for(let t=0;t<r.length;t++){let n=r[t],i=e.notes[t];n.excerpt=vL(i.rawContent);try{Pa(i.rawContent,i.blocks,i.sourceRevision)}catch{continue}let a=Object.values(i.blocks).sort((e,t)=>e.from-t.from).find(e=>e.kind===`wod`),o=a&&ja(i.rawContent).find(e=>e.from===a.from&&e.scriptBlock);if(a&&o?.scriptBlock){let e=o.scriptBlock.content,t=ha(e);n.wodBlock={blockId:a.id,blockVersion:a.version,blockContentId:t,content:e},n.blockContentId=t}}return r}if(n.family===`aggregate`){if(!this.service.runQuery)return[];let e=await this.service.runQuery(n.raw),r=RB(e);return t?.({selected:e.stages?.selected??r.length,matched:r.length}),r}return[]}};async function HB(e,t=VB,n){return t.query(e,n)}function UB(e){return e?e.map(e=>e.kind===`wql`?`${e.id}|${e.query}|${e.limit??``}`:`s:${e.id}`).join(`;`):``}async function WB(e){try{let t=(await HB(e.query)).filter(t=>!e.filterEntry||e.filterEntry(t)).slice(0,e.limit??6).map(t=>({kind:`link`,id:`${e.id}:${t.id}`,label:e.labelFromEntry?e.labelFromEntry(t):t.title,to:e.toEntry?e.toEntry(t):void 0,muted:!0}));return{kind:`section`,id:e.id,label:e.label,entries:t}}catch{return{kind:`section`,id:e.id,label:e.label,entries:[]}}}function GB(e){let t=UB(e),n=(0,W.useRef)(e);n.current=e;let[r,i]=(0,W.useState)(()=>e&&!e.some(e=>e.kind===`wql`)?e:[]);return(0,W.useEffect)(()=>{let e=n.current;if(!e){i([]);return}if(!e.some(e=>e.kind===`wql`)){i(e);return}let t=!1;return Promise.all(e.map(e=>e.kind===`wql`?WB(e):Promise.resolve(e))).then(e=>{t||i(e)}),()=>{t=!0}},[t]),r}function KB(){let[e]=cn(`h`,{shallow:!0}),[t]=cn(`s`,{shallow:!0}),{navState:n}=uP(),r=n.activeL3Id??``;return e||t||r||``}function qB({entry:e,active:t,onActivate:n}){let r=e.onRun;return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:K(`group flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left transition-colors`,e.muted?`text-[11.5px]`:`text-[13px]`,t?`bg-primary/10 font-semibold text-primary`:K(`hover:bg-muted/60 hover:text-foreground`,e.muted?`text-muted-foreground/70`:`text-muted-foreground`)),children:[e.icon&&(0,G.jsx)(e.icon,{className:`size-4 shrink-0`}),e.timestamp&&(0,G.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] tabular-nums text-muted-foreground/60`,children:e.timestamp}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 line-clamp-2 break-words`,title:e.label,children:e.label}),e.badge&&(0,G.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-muted-foreground/50`,children:e.badge}),r&&(0,G.jsx)(`span`,{role:`button`,tabIndex:-1,title:e.runIcon===`link`?`View workout`:e.runIcon===`stop`?`Stop workout`:e.runIcon===`edit`?`Edit note`:`Start workout`,onClick:t=>{t.stopPropagation(),e.onRun?.()},className:`flex size-5 shrink-0 items-center justify-center rounded text-primary opacity-0 transition-all group-hover:opacity-100 hover:bg-primary/10`,children:e.runIcon===`link`?(0,G.jsx)(re,{className:`size-3.5`}):e.runIcon===`stop`?(0,G.jsx)(_,{className:`size-3.5`}):e.runIcon===`edit`?(0,G.jsx)(fe,{className:`size-3.5`}):(0,G.jsx)(V,{className:`size-3.5`})})]})}function JB({entries:e,activeId:t,onSection:n}){let r=ln(),{scrollToSection:i}=uP(),a=jF(),o=e=>{if(a(),n)return n(e);if(e.onRun)return e.onRun();if(e.to)return r(e.to);if(e.sectionId)return i(e.sectionId)};return(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.map(e=>e.kind===`section`?e.entries.length===0?null:(0,G.jsxs)(`div`,{className:`mt-1 flex flex-col gap-0.5 first:mt-0`,children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 pt-3 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:e.label}),(0,G.jsx)(JB,{entries:e.entries,activeId:t,onSection:n})]},e.id):e.kind===`wql`?null:e.kind===`widget`?(0,G.jsx)(`div`,{className:`px-1 py-1`,children:e.render()},e.id):(0,G.jsx)(qB,{entry:e,active:t!=null&&e.sectionId===t,onActivate:o},e.id))})}function YB(){let e=ln(),{scrollToSection:t}=uP();return{navigate:(t,n)=>e(t,{replace:n?.replace}),setQueryParam:(e,t)=>{},scrollToSection:t}}function XB(){let e=YB(),t=jF();return n=>{t(),FL(n.action,e)}}function ZB(e,t,n){return e.isActive?e.isActive(n,t):e.action.type===`route`?e.action.to===`/`?n.pathname===`/`||n.pathname===``:n.pathname===e.action.to:e.action.type===`scroll`?t.activeL3Id===e.action.sectionId:e.action.type===`query`&&t.activeL3Id===e.id}function QB({items:e}){let{navState:t}=uP(),n=wn(),r=XB();return(0,G.jsx)(BF,{children:e.map(e=>{let i=ZB(e,t,n);return e.children&&e.children.length>0?(0,G.jsx)(BL,{title:e.label,count:e.children.length,defaultOpen:e.children.some(e=>ZB(e,t,n)),collapsible:e.id!==`syntax-group`,children:e.children.map(e=>{let i=ZB(e,t,n);return(0,G.jsxs)(HF,{onClick:()=>r(e),current:i,children:[e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:e.label})]},e.id)})},e.id):(0,G.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,G.jsxs)(HF,{onClick:e.disabled?void 0:()=>r(e),current:i,disabled:e.disabled,"aria-label":e.disabled?`${e.label} (coming soon)`:void 0,className:K(`flex-1`,e.disabled&&`opacity-60`),children:[e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(UF,{children:e.disabled?`+`:e.label})]}),e.onTogglePin&&(0,G.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),e.onTogglePin?.()},title:e.pinned?`Unpin from sidebar`:`Pin to sidebar`,"aria-label":e.pinned?`Unpin ${e.label}`:`Pin ${e.label}`,className:`opacity-0 group-hover:opacity-100 focus-visible:opacity-100 p-1 text-muted-foreground hover:text-foreground transition-opacity`,children:(0,G.jsx)(gt,{className:`size-3.5`})})]},e.id)})})}function $B({navSpec:e}){let{tree:t,navState:n,dispatch:r,contextNav:i}=uP(),a=wn(),o=GB(e),s=(t??[]).find(e=>e?.id===n.activeL1Id)??null,c=i?.pathname===a.pathname?i:null;return(0,G.jsxs)(LF,{children:[(0,G.jsx)(RF,{children:(0,G.jsx)(`div`,{className:`px-2 pt-3 pb-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:s?.label??`Wod Wiki`})}),(0,G.jsxs)(zF,{children:[(()=>{if(c||!s)return null;if(s.panel){let e=s.panel;return(0,G.jsx)(`div`,{className:`border-b border-border/40 pb-2 mb-2`,children:(0,G.jsx)(e,{item:s,navState:n,dispatch:r})})}return s.children&&s.children.length>0?(0,G.jsx)(`div`,{className:`border-b border-border/40 pb-2 mb-2`,children:(0,G.jsx)(QB,{items:s.children})}):null})(),c?(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(JB,{entries:c.spec})}):o.length>0&&(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(JB,{entries:o})})]})]})}var eV=`0.51.2196`,tV=`https://github.com/bitcobblers/wod-wiki/releases`;function nV(e){return/-pr\.\d+$/.test(e)?tV:`${tV}/tag/v${e}`}function rV({onSearch:e,onCreate:t}){let{tree:n,navState:r,dispatch:i}=uP(),a=ln(),o=wn(),s=jF(),c={navigate:(e,t)=>a(e,{replace:t?.replace}),setQueryParam:()=>{},scrollToSection:()=>{}},l=(n??[]).filter(e=>e!=null&&e.icon!=null&&e.id!==`settings`&&e.id!==`buy-me-a-coffee`),u=o.pathname.startsWith(`/settings`);o.pathname===`/`||o.pathname;let d=`pointer-events-none absolute left-full top-1/2 -translate-y-1/2 z-50 ml-2 w-max rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground opacity-0 shadow-md transition-opacity group-focus-within:opacity-100 group-hover:opacity-100`;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{onClick:()=>{s(),a(`/`)},title:`Wod Wiki home`,"aria-label":`Wod Wiki home`,className:`group relative mb-3 grid size-8 shrink-0 place-items-center rounded-xl bg-primary text-primary-foreground shadow-md shadow-primary/20 rotate-3`,children:[(0,G.jsx)(be,{size:17}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Wod Wiki home`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Wod Wiki home`})]}),(0,G.jsx)(`nav`,{"aria-label":`Primary`,className:`flex flex-col items-center gap-1.5`,children:l.map(e=>{let t=e.icon,n=ZB(e,r,o);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),i({type:`SET_ACTIVE_L1`,id:e.id}),FL(e.action,c)},title:e.label,"aria-label":e.label,"aria-current":n?`page`:void 0,className:K(`group relative grid size-9 place-items-center rounded-lg transition-colors`,n?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[n&&(0,G.jsx)(`span`,{className:`absolute -left-[14px] top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary`}),(0,G.jsx)(t,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:e.label}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:e.label})]},e.id)})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsxs)(`button`,{type:`button`,onClick:e,title:`Search (⌘/)`,"aria-label":`Search`,className:`group relative grid size-9 place-items-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground`,children:[(0,G.jsx)(ge,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Search`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Search (⌘/)`})]}),(0,G.jsxs)(`a`,{href:VR,target:`_blank`,rel:`noopener noreferrer`,title:`Buy Me a Coffee`,"aria-label":`Buy Me a Coffee`,className:`group relative grid size-9 place-items-center rounded-lg text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground`,children:[(0,G.jsx)(HR,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Buy Me a Coffee`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Buy Me a Coffee`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),a(`/settings/profile`)},title:`Profile`,"aria-label":`Profile`,"aria-current":o.pathname.startsWith(`/settings/profile`)?`page`:void 0,"data-testid":`nav-profile`,className:K(`group relative grid size-9 place-items-center rounded-lg transition-colors mt-1.5`,o.pathname.startsWith(`/settings/profile`)?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[o.pathname.startsWith(`/settings/profile`)&&(0,G.jsx)(`span`,{className:`absolute -left-[14px] top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary`}),(0,G.jsx)(Le,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Profile`}),(0,G.jsx)(`span`,{role:`tooltip`,className:d,children:`Profile`})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),a(`/settings/appearance`)},title:`Settings`,"aria-label":`Settings`,"aria-current":u?`page`:void 0,"data-testid":`nav-settings`,className:K(`group relative grid size-9 place-items-center rounded-lg transition-colors mt-1.5`,u?`bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[u&&(0,G.jsx)(`span`,{className:`absolute -left-[14px] top-1/2 h-5 w-[3px] -translate-y-1/2 rounded-r-full bg-primary`}),(0,G.jsx)(qn,{className:`size-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Settings`}),(0,G.jsxs)(`span`,{role:`tooltip`,className:`pointer-events-none absolute bottom-0 left-full z-50 ml-2 w-max rounded-md border border-border bg-popover px-2 py-1 text-xs text-popover-foreground opacity-0 shadow-md transition-opacity group-focus-within:opacity-100 group-hover:opacity-100`,children:[`Settings (v`,eV,`)`]})]})]})}function iV({activations:e,activeSection:t,variant:n,deps:r,className:i}){return(0,G.jsx)(`nav`,{className:K(`lg:sticky z-20 flex items-center gap-1 px-4 py-2 bg-background/95 backdrop-blur-sm border-b border-border/50 overflow-x-auto`,n===`top-fixed`?`lg:top-0`:`lg:top-[104px]`,i),children:e.map(e=>(0,G.jsx)(`button`,{onClick:()=>FL(e.action,r),className:K(`px-3 py-1.5 rounded-full text-[10px] font-black uppercase tracking-[0.12em] whitespace-nowrap transition-all ring-1`,t===e.id?`bg-primary text-primary-foreground ring-primary/30 shadow-md`:`bg-muted/50 text-muted-foreground ring-transparent hover:bg-muted hover:ring-border`),children:e.label},e.id))})}var aV=class e{now;name=`tick`;timestamp;data;static _counter=0;constructor(t,n=Gl){this.now=n;let r=this.now.nowMs();e._counter++,this.timestamp=new Date(r+e._counter),this.data=t}},oV=20,sV=e=>{let[t,n]=(0,W.useState)(`idle`),[r,i]=(0,W.useState)(0),[a,o]=(0,W.useState)(0),[s,c]=(0,W.useState)(null),l=(0,W.useRef)(null),u=(0,W.useRef)(null),d=(0,W.useCallback)(()=>{l.current&&=(clearInterval(l.current),null),n(`idle`)},[]),f=(0,W.useCallback)(()=>{if(e)try{let t=new aV(void 0,e.nowProvider);e.handle(t),o(e=>e+1)}catch{d(),n(`error`)}},[e,d]);(0,W.useEffect)(()=>{if(e)return e.subscribeToStack(e=>{e.blocks.length===0&&t!==`completed`&&(l.current&&=(clearInterval(l.current),null),n(`completed`))})},[e,t]),(0,W.useEffect)(()=>()=>{l.current&&=(clearInterval(l.current),null)},[]);let p=(0,W.useCallback)(()=>{if(!e){console.warn(`useRuntimeExecution: Cannot start execution without a runtime`);return}if(t===`running`){console.warn(`useRuntimeExecution: Runtime is already running`);return}t===`paused`&&e.handle({name:`timer:resume`,timestamp:new Date,data:{}}),n(`running`);let i=e?.nowProvider?.nowMs()??Gl.nowMs();u.current=i-r,r===0&&c(i),l.current=setInterval(f,oV)},[e,t,r,f]),m=(0,W.useCallback)(()=>{l.current&&=(clearInterval(l.current),null),e&&e.handle({name:`timer:pause`,timestamp:new Date,data:{}}),n(`paused`)},[e]),h=(0,W.useCallback)(()=>{l.current&&=(clearInterval(l.current),null),i(0),o(0),n(`idle`),c(null),u.current=null},[e]),g=(0,W.useCallback)(()=>{!e||t===`running`||(n(`paused`),f())},[e,t,f]);return(0,W.useEffect)(()=>{if(t!==`running`||!u.current)return;let n=setInterval(()=>{i((e?.nowProvider?.nowMs()??Gl.nowMs())-u.current)},100);return()=>clearInterval(n)},[t,e?.nowProvider]),(0,W.useEffect)(()=>()=>{l.current&&=(clearInterval(l.current),null)},[]),(0,W.useEffect)(()=>{h()},[e,h]),(0,W.useMemo)(()=>({status:t,elapsedTime:r,stepCount:a,startTime:s,start:p,pause:m,stop:d,reset:h,step:g}),[t,r,a,s,p,m,d,h,g])},cV=(e,t)=>!e||!Array.isArray(e)?0:e.reduce((e,n)=>{if(`started`in n){let r=n.started,i=n.ended??t;return e+Math.max(0,i-r)}let r=n.start instanceof Date?n.start.getTime():n.start||0,i=n.stop?n.stop instanceof Date?n.stop.getTime():n.stop:t;return e+Math.max(0,i-r)},0);function lV(e,t){let n=t,r=()=>{let t=e?.getMemoryByTag(n)[0];if(t)return n===`round`?t.metrics[0]:t.metrics[0]?.value},[i,a]=(0,W.useState)(r);return(0,W.useEffect)(()=>{if(!e){a(void 0);return}a(r());let t=e.getMemoryByTag(n)[0];if(t)return t.subscribe(e=>{a(n===`round`?e[0]:e[0]?.value)})},[e,t]),i}function uV(e){return lV(e,`round`)}function dV(e){return lV(e,`display`)}function fV(e){let t=uV(e),n=dV(e);return(0,W.useMemo)(()=>{if(!t)return null;let e=n?.roundDisplay??(t.total===void 0?`Round ${t.current}`:`Round ${t.current} of ${t.total}`),r=t.total===void 0?void 0:Math.min(1,(t.current-1)/t.total);return{current:t.current,total:t.total,label:e,progress:r}},[t,n?.roundDisplay])}var pV=(0,W.createContext)(void 0),mV=({runtime:e,children:t})=>(0,G.jsx)(pV.Provider,{value:e,children:t});function hV(){let e=(0,W.useContext)(pV);if(!e)throw Error(`useScriptRuntime must be used within ScriptRuntimeProvider`);return e}function gV(e){let t=hV(),n=e===void 0?t:e,[r,i]=(0,W.useState)(()=>n?.getOutputStatements?.()??[]);return(0,W.useEffect)(()=>{if(!n){i([]);return}return i(n.getOutputStatements()),n.subscribeToOutput?.(()=>{i(n.getOutputStatements())})},[n]),(0,W.useMemo)(()=>{let e=new Map,t=new Map,n=[],i=[];for(let a of r){e.set(a.id,a);let r=t.get(a.sourceBlockKey)??[];switch(r.push(a),t.set(a.sourceBlockKey,r),a.outputType){case`segment`:n.push(a);break;case`metric`:i.push(a)}}let a=n.filter(e=>e.completionReason!==void 0);return{outputs:r,byId:e,byBlockKey:t,segments:n,completions:a,metrics:i}},[r])}function _V(e){let t=hV(),n=e===void 0?t:e,[r,i]=(0,W.useState)(()=>n?.getLiveAnalytics?.()??[]);return(0,W.useEffect)(()=>{if(!n){i([]);return}return i(n.getLiveAnalytics?.()??[]),n.subscribeToOutput?.(()=>{i(n.getLiveAnalytics?.()??[])})},[n]),r}function vV(){let e=hV(),[t,n]=(0,W.useState)({type:`initial`,blocks:e.stack.blocks,depth:e.stack.count,clockTime:e.clock.currentDate});return(0,W.useEffect)(()=>e.subscribeToStack(e=>{n(e)}),[e]),t}function yV(){return vV().blocks}function bV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`metric:next`);for(let r of e){let e=r.subscribe(()=>{n(e=>e+1)});t.push(e)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{for(let t of e){let e=t.getMemoryByTag(`metric:next`);if(e.length===0)continue;let n=ca.empty(t.key.toString());for(let t of e)n.merge(t.metrics);if(n.length>0)return{metrics:n,block:t}}return null},[e,t])}function xV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`time`)[0];if(e){let r=e.subscribe(()=>{n(e=>e+1)});t.push(r)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{let t=[];for(let n of e){let e=n.getMemoryByTag(`time`)[0];if(!e)continue;let r=e.metrics[0]?.value;r&&t.push({block:n,timer:r,isPinned:r.role===`primary`})}return t},[e,t])}function SV(){let e=xV();return(0,W.useMemo)(()=>{if(e.length===0)return;let t=e[0];return t.block.blockType===`Rest`?t:[...e].reverse().find(e=>e.isPinned)||t},[e])}function CV(){let e=xV(),t=SV();return(0,W.useMemo)(()=>t?e.filter(e=>e.block!==t.block):[],[e,t])}function wV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`controls`);for(let r of e){let e=r.subscribe(()=>{n(e=>e+1)});t.push(e)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{let t=[],n=[];for(let r=0;r<e.length;r++){let i=e[r].getMemoryByTag(`controls`);if(i.length===0)continue;let a=i[0].metrics.map(e=>e.value).filter(Boolean),o=r===e.length-1;for(let e of a)e.isPinned?t.push(e):o&&n.push(e)}let r=new Set,i=[];for(let e of t)r.has(e.id)||(r.add(e.id),i.push(e));for(let e of n)r.has(e.id)||(r.add(e.id),i.push(e));return i},[e,t])}function TV(){let e=yV(),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=[];for(let r of e){let e=r.getMemoryByTag(`metric:display`);for(let r of e){let e=r.subscribe(()=>{n(e=>e+1)});t.push(e)}}return()=>{t.forEach(e=>e())}},[e]),(0,W.useMemo)(()=>{if(e.length===0)return;let t=[],n=[...e].reverse();return n.forEach((e,r)=>{if(e.blockType===`Root`&&!e.label)return;let i=e.getMemoryByTag(`metric:display`),a=i.map(e=>e.metrics);if(a.length===0&&!e.label)return;let o=r===n.length-1,s=i.length>1?i.map(e=>e.metrics):void 0;t.push({block:e,displayRows:a,label:e.label,depth:r,isLeaf:o,metricGroups:s})}),t.length>0?t:void 0},[e,t])}function EV(e){let t=hV(),n=(0,W.useMemo)(()=>t.stack.blocks.find(t=>t.key.toString()===e),[t,e]),[r,i]=(0,W.useState)(()=>n?.getMemoryByTag(`time`)[0]?.metrics[0]?.value);(0,W.useEffect)(()=>t.stack.subscribe(()=>{let n=t.stack.blocks.find(t=>t.key.toString()===e);if(n){let e=n.getMemoryByTag(`time`)[0];i(e?.metrics[0]?.value)}else i(void 0)}),[t,e]),(0,W.useEffect)(()=>{if(!n){i(void 0);return}let e=n.getMemoryByTag(`time`)[0];if(i(e?.metrics[0]?.value),e)return e.subscribe(e=>{i(e[0]?.value)})},[n]);let a=(0,W.useMemo)(()=>r?.spans??[],[r]),o=a.length>0&&a[a.length-1].ended===void 0,[s,c]=(0,W.useState)(Nu()),l=(0,W.useMemo)(()=>a.length===0?0:cV(a,s),[a,s]);return(0,W.useEffect)(()=>{if(!o)return;let e,t=()=>{c(Nu()),e=requestAnimationFrame(t)};return t(),()=>cancelAnimationFrame(e)},[o]),{elapsed:l,isRunning:o,timeSpans:a}}var DV=(0,W.createContext)(void 0),OV=(0,W.createContext)(null),kV={getState:()=>lB().getState(),setState:(e,t)=>{let n=lB();typeof e==`function`?n.setState(e(n.getState()),t):n.setState(e,t)},subscribe:e=>lB().subscribe(e)},AV=({factory:e,children:t})=>{let[n,r]=(0,W.useState)(null),[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(!1),[c,l]=(0,W.useState)(null),u=(0,W.useRef)(e);u.current=e;let d=(0,W.useRef)(null),f=(0,W.useRef)(null),p=(0,W.useRef)(!1),m=(0,W.useCallback)(()=>{f.current&&=(f.current.dispose(),null),a(null),kV.getState().setSubscriptionManager(null);let e=d.current;if(d.current=null,e)try{u.current.disposeRuntime(e)}catch(e){console.error(`[RuntimeProvider] Error disposing runtime:`,e)}r(null),l(null)},[]),h=(0,W.useCallback)((e,t)=>{if(!p.current){p.current=!0,s(!0),l(null);try{f.current&&=(f.current.dispose(),null);let n=d.current;if(d.current=null,n)try{u.current.disposeRuntime(n)}catch(e){console.error(`[RuntimeProvider] Error disposing existing runtime:`,e)}let i=u.current.createRuntime(e,t);if(d.current=i,r(i),i){let e=new xm(i);e.add(new bm({id:`local`})),f.current=e,a(e),kV.getState().setSubscriptionManager(e)}else f.current=null,a(null),kV.getState().setSubscriptionManager(null)}catch(e){console.error(`[RuntimeProvider] Error creating runtime:`,e),l(e instanceof Error?e:Error(String(e))),d.current=null}finally{p.current=!1,s(!1)}}},[]);(0,W.useEffect)(()=>()=>{if(f.current&&f.current.dispose(),d.current)try{u.current.disposeRuntime(d.current)}catch(e){console.error(`[RuntimeProvider] Error disposing runtime on unmount:`,e)}},[]);let g={runtime:n,isInitializing:o,error:c,initializeRuntime:h,disposeRuntime:m};return(0,G.jsx)(DV.Provider,{value:g,children:(0,G.jsx)(OV.Provider,{value:i,children:t})})};function jV({factory:e,children:t}){return(0,G.jsx)(AV,{factory:e,children:t})}var MV=`bg-background ring-1 ring-zinc-950/5 shadow-sm lg:shadow-[-18px_0_36px_-28px_rgba(15,23,42,0.16),18px_0_36px_-28px_rgba(15,23,42,0.16)] dark:shadow-none dark:ring-white/10`,NV=`flex flex-col flex-1 min-w-0 xl:max-w-[984px] 2xl:max-w-none min-h-screen lg:rounded-[2.5rem]`;function PV({id:e,title:t,subtitle:n,titleAccessory:r,actions:i,queryBar:a,subheader:o,titleTestId:s,className:c}){return(0,G.jsxs)(`div`,{id:e,"data-page-sticky-boundary":`true`,className:K(`max-lg:hidden lg:sticky lg:top-0 z-30 border-b border-border/50 bg-background/95 backdrop-blur-md transition-colors`,c),children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-3 px-4 sm:px-6 lg:px-8 py-2 sm:py-2.5`,children:[t&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2.5 sm:gap-3 min-w-0`,children:[(0,G.jsx)(`div`,{className:`h-5 w-1.5 shrink-0 rounded-full bg-primary`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2.5 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`min-w-0`,children:[(0,G.jsx)(`h1`,{"data-testid":s,className:`text-base sm:text-lg font-black tracking-tight text-foreground leading-none truncate`,children:t}),n&&(0,G.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground truncate`,children:n})]}),r]})]}),a&&(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:a}),i&&(0,G.jsx)(`div`,{className:`flex items-center gap-1.5 sm:gap-2 shrink-0 ml-auto`,children:i})]}),o&&(0,G.jsx)(`div`,{className:`bg-background/40`,children:o})]})}function FV({ids:e,enabled:t=!0,rootMargin:n=`-10% 0px -40% 0px`,threshold:r=[0,.3,1],onChange:i,shouldAcceptChange:a,scrollDirection:o=`ratio`,dataAttribute:s,debounceMs:c=0}){let l=(0,W.useRef)(``),u=(0,W.useRef)(i),d=(0,W.useRef)(a),f=(0,W.useRef)(null),p=(0,W.useRef)(1);(0,W.useEffect)(()=>{u.current=i},[i]),(0,W.useEffect)(()=>{d.current=a},[a]);let m=e.filter(Boolean).join(`\0`),h=r.join(`,`),g=(0,W.useMemo)(()=>m?m.split(`\0`):[],[m]),_=(0,W.useMemo)(()=>h.split(`,`).map(Number),[h]),v=(0,W.useCallback)(()=>{f.current&&=(clearTimeout(f.current),null)},[]);(0,W.useEffect)(()=>{if(!t||g.length===0||typeof IntersectionObserver>`u`)return;let e=new Map,r=e=>s?e.getAttribute(s):e.id||null,i;if(o===`topmost-when-up`){let e=window.scrollY,t=()=>{let t=window.scrollY;t!==e&&(p.current=t>e?1:-1),e=t};window.addEventListener(`scroll`,t,{passive:!0}),i=()=>window.removeEventListener(`scroll`,t)}let a=new IntersectionObserver(t=>{if(t.forEach(t=>{let n=r(t.target);n&&(t.isIntersecting?e.set(n,t.intersectionRatio):e.delete(n))}),e.size===0)return;let n=``;if(o===`topmost-when-up`&&p.current===-1){let t=1/0;e.forEach((e,r)=>{let i=g.indexOf(r);i>=0&&i<t&&(t=i,n=r)})}else{let t=-1;e.forEach((e,r)=>{e>t&&(t=e,n=r)})}!n||n===l.current||d.current&&!d.current(n)||(l.current=n,c>0?(v(),f.current=setTimeout(()=>{u.current(n),f.current=null},c)):u.current(n))},{rootMargin:n,threshold:_});return g.forEach(e=>{let t=s?document.querySelector(`[${s}="${e}"]`):document.getElementById(e);t&&a.observe(t)}),()=>{a.disconnect(),v(),i?.()}},[t,g,_,n,o,s,c,v])}function IV({title:e,titleAccessory:t,actions:n,subheader:r,children:i,index:a=[],activeSectionId:o,hero:s,sections:c,className:l}){let u=!!(c&&c.length>0)&&!e,[,d]=cn(`s`,{defaultValue:o??a[0]?.id??``,shallow:!0,history:`replace`}),[f,p]=(0,W.useState)(c?.[0]?.id??``);if(FV({ids:a.map(e=>e.id),enabled:!u&&a.length>0,rootMargin:`-10% 0px -40% 0px`,threshold:[0,.3,1],onChange:e=>{d(e)},shouldAcceptChange:()=>!0}),FV({ids:c?.map(e=>e.id)??[],enabled:u,rootMargin:`-20% 0px -50% 0px`,threshold:[0,.25,.5,.75],onChange:p}),u){let e=c.map(e=>({id:e.id,label:e.label,action:{type:`scroll`,sectionId:e.id}}));return(0,G.jsxs)(`div`,{className:K(`flex flex-col min-h-screen bg-background`,l),children:[s,(0,G.jsx)(iV,{activations:e,activeSection:f,variant:`top-fixed`,deps:{navigate:()=>{},setQueryParam:()=>{},scrollToSection:e=>{let t=document.getElementById(e);if(t){let e=t.getBoundingClientRect().top+window.scrollY-64;window.scrollTo({top:e,behavior:`smooth`})}}}}),(0,G.jsx)(`div`,{className:`flex-1`,children:c.map(e=>{let t=(0,G.jsx)(`div`,{id:e.id,"data-section-id":e.id,className:`py-12 lg:py-16 px-6 lg:px-10 border-b border-border/30`,children:e.content},e.id);return e.runtimeFactory?(0,G.jsx)(jV,{factory:e.runtimeFactory,children:t},e.id):t})})]})}return(0,G.jsx)(`div`,{className:K(`relative flex w-full min-h-screen justify-start items-start`,l),children:(0,G.jsxs)(`div`,{className:K(NV,MV),children:[(0,G.jsx)(PV,{title:e,titleAccessory:t,actions:n,subheader:r}),(0,G.jsx)(`div`,{className:`flex-1`,children:i})]})})}var LV=`[data-page-sticky-boundary="true"]`,RV=0;function zV(e,t=RV){if(typeof document>`u`)return e;let n=Array.from(document.querySelectorAll(LV)).reduce((e,t)=>{let n=t.getBoundingClientRect();return n.height<=0||n.bottom<=0?e:Math.max(e,n.bottom)},0);return n>0?n+t:e}function BV(e,t=RV){let[n,r]=(0,W.useState)(e);return(0,W.useEffect)(()=>{let n=0,i=()=>r(zV(e,t)),a=()=>{cancelAnimationFrame(n),n=requestAnimationFrame(i)};i(),window.addEventListener(`scroll`,a,{passive:!0}),window.addEventListener(`resize`,i);let o=typeof ResizeObserver>`u`?void 0:new ResizeObserver(i);document.querySelectorAll(LV).forEach(e=>o?.observe(e));let s=typeof MutationObserver>`u`?void 0:new MutationObserver(()=>{document.querySelectorAll(LV).forEach(e=>o?.observe(e)),i()});return typeof document<`u`&&document.body&&s?.observe(document.body,{childList:!0,subtree:!0}),()=>{s?.disconnect(),o?.disconnect(),cancelAnimationFrame(n),window.removeEventListener(`scroll`,a),window.removeEventListener(`resize`,i)}},[e,t]),n}function VV({top:e,label:t,icon:n,badge:r,meta:i,testId:a,className:o}){return(0,G.jsxs)(`div`,{"data-testid":a,className:K(`sticky z-10 flex items-center gap-2 border-y border-border/60 bg-card/95 px-6 py-2 shadow-[0_1px_2px_rgba(0,0,0,0.03)] backdrop-blur`,o),style:{top:`${e}px`},children:[n,(0,G.jsx)(`span`,{className:`min-w-0 truncate text-xs font-bold text-foreground`,children:t}),r,i&&(0,G.jsx)(`span`,{className:`ml-auto shrink-0 pl-2 font-mono text-[10px] text-muted-foreground`,children:i})]})}var HV=(0,W.createContext)(null),UV=(0,W.createContext)(null);function WV({children:e}){let[t,n]=(0,W.useState)(null);return(0,G.jsx)(UV.Provider,{value:n,children:(0,G.jsx)(HV.Provider,{value:t,children:e})})}function GV({className:e}){let t=(0,W.useContext)(UV);return(0,G.jsx)(`div`,{ref:t,className:e,"data-testid":`mobile-query-slot`})}function KV(){return(0,W.useContext)(HV)}function qV({editor:e,title:t,subtitle:n,titleTestId:r,actions:i,timerOverlay:a,reviewOverlay:o,isTimerOpen:s=!1,isReviewOpen:c=!1,onCloseTimer:l,onCloseReview:u,className:d}){return(0,G.jsxs)(`div`,{className:K(`relative flex w-full min-h-screen justify-start items-start`,d),children:[(0,G.jsxs)(`div`,{className:K(NV,MV),children:[(0,G.jsx)(PV,{title:t,subtitle:n,titleTestId:r,actions:i}),(0,G.jsx)(`main`,{className:`flex-1 min-w-0 max-w-full`,children:e})]}),s&&a&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-background/95 backdrop-blur-sm`,children:(0,G.jsxs)(`div`,{className:`w-full h-full flex flex-col`,children:[(0,G.jsx)(`div`,{className:`flex justify-end p-4`,children:(0,G.jsx)(`button`,{onClick:l,className:`px-3 py-1.5 rounded-md text-sm font-bold text-muted-foreground hover:text-foreground bg-muted/60 hover:bg-muted transition-colors`,children:`Close`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,children:a})]})}),c&&o&&(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 bg-background/95 backdrop-blur-sm`,children:(0,G.jsxs)(`div`,{className:`w-full h-full flex flex-col`,children:[(0,G.jsx)(`div`,{className:`flex justify-end p-4`,children:(0,G.jsx)(`button`,{onClick:u,className:`px-3 py-1.5 rounded-md text-sm font-bold text-muted-foreground hover:text-foreground bg-muted/60 hover:bg-muted transition-colors`,children:`Close`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,children:o})]})})]})}function JV(e){return e.map(e=>{if(e.panel){let t=e.panel;return{kind:`widget`,id:e.id,render:()=>(0,W.createElement)(`div`,{className:`flex flex-col gap-1`},(0,W.createElement)(`span`,{className:`px-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`},e.label),(0,W.createElement)(t,{currentPath:``,location:null}))}}let t=e.action,n=e.secondaryAction?.action,r={kind:`link`,id:e.id,label:e.label};return n&&n.type===`call`&&(r.onRun=n.handler,r.runIcon=e.secondaryRunIcon??`play`),t.type===`route`?{...r,to:t.to}:t.type===`scroll`?{...r,sectionId:t.sectionId}:t.type===`call`?{...r,onRun:t.handler}:r})}var YV=W.createContext(null);function XV(){let e=W.useContext(YV);if(!e)throw Error(`DropdownMenu components must be used inside a DropdownMenu`);return e}function ZV(){let e=W.useContext(YV);return W.useCallback(()=>{e?.setIsOpen(!1)},[e])}var QV=({children:e,open:t,onOpenChange:n})=>{let r=W.useContext(YV),i=W.useId(),a=r?`${r.portalChain}/${i}`:i,[o,s]=W.useState(t??!1),c=W.useRef(null),[l,u]=W.useState(-1),d=W.useRef(new Map),[,f]=W.useReducer(e=>e+1,0);W.useEffect(()=>{t!==void 0&&s(t)},[t]);let p=W.useCallback(e=>{s(e),u(-1),n?.(e)},[n]),m=W.useCallback((e,t)=>{d.current.set(e,t),f()},[]),h=W.useCallback(e=>{d.current.delete(e),f()},[]),g=W.useCallback(e=>Array.from(d.current.keys()).indexOf(e),[]),_=d.current.size,v=W.useMemo(()=>({isOpen:o,setIsOpen:p,triggerRef:c,registerItem:m,unregisterItem:h,getItemIndex:g,activeIndex:l,setActiveIndex:u,itemCount:_,menuId:i,portalChain:a}),[o,p,m,h,g,l,_,i,a]);return(0,G.jsx)(YV.Provider,{value:v,children:(0,G.jsx)(`div`,{ref:c,className:`relative inline-block`,children:e})})},$V=W.forwardRef(({className:e,children:t,asChild:n,...r},i)=>{let{isOpen:a,setIsOpen:o}=XV(),s=e=>{e.stopPropagation(),o(!a)};return n&&W.isValidElement(t)?W.cloneElement(t,{...r,onClick:s}):(0,G.jsx)(`button`,{ref:i,className:e,onClick:s,...r,children:t})});$V.displayName=`DropdownMenuTrigger`;var eH=W.forwardRef(({className:e,children:t,align:n=`center`,side:r=`bottom`,...i},a)=>{let{isOpen:o,setIsOpen:s,triggerRef:c,setActiveIndex:l,itemCount:u,menuId:d,portalChain:f}=XV(),p=W.useRef(null),m=a||p,[h,g]=W.useState({top:0,bottom:0,left:0,width:0}),_=r===`bottom`,[v,y]=W.useState(!1);W.useEffect(()=>{if(!o||!c.current)return;let e=c.current.getBoundingClientRect();g({top:e.bottom+8,bottom:window.innerHeight-e.top+8,left:e.left,width:e.width}),y(!1)},[o,c]),W.useLayoutEffect(()=>{if(!o||!_||!m.current)return;let e=m.current.getBoundingClientRect();y(h.top+e.height>window.innerHeight)},[o,_,h.top,m]),W.useEffect(()=>{if(!o||u===0)return;let e=setTimeout(()=>{l(0)},0);return()=>clearTimeout(e)},[o,u,l]),W.useEffect(()=>{if(!o)return;let e=e=>{let t=e.target;if(m.current&&m.current.contains(t)||c.current&&c.current.contains(t))return;let n=t.closest?.(`[data-dropdown-chain]`)?.getAttribute(`data-dropdown-chain`);n&&n.split(`/`).includes(d)||s(!1)},t=setTimeout(()=>{document.addEventListener(`mousedown`,e)},0);return()=>{clearTimeout(t),document.removeEventListener(`mousedown`,e)}},[o,s,m,c,d]);let b=e=>{if(u!==0)switch(e.key){case`ArrowDown`:e.preventDefault(),l(e=>e<u-1?e+1:0);break;case`ArrowUp`:e.preventDefault(),l(e=>e>0?e-1:u-1);break;case`Home`:e.preventDefault(),l(0);break;case`End`:e.preventDefault(),l(u-1);break;case`Escape`:e.preventDefault(),s(!1),c.current?.querySelector(`button`)?.focus();break;case`Tab`:s(!1)}};if(!o)return null;let x={position:`fixed`,zIndex:9999};return r===`top`||v?x.bottom=h.bottom:x.top=h.top,n===`end`?x.right=window.innerWidth-h.left-h.width:n===`start`?x.left=h.left:(x.left=h.left+h.width/2,x.transform=`translateX(-50%)`),IC.createPortal((0,G.jsx)(`div`,{ref:m,role:`menu`,"data-dropdown-chain":f,className:K(`min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95`,e),style:x,onKeyDown:b,...i,children:t}),document.body)});eH.displayName=`DropdownMenuContent`;var tH=W.forwardRef(({className:e,disabled:t,inset:n,onClick:r,onKeyDown:i,...a},o)=>{let{setIsOpen:s,registerItem:c,unregisterItem:l,getItemIndex:u,activeIndex:d}=XV(),f=W.useId(),p=W.useRef(null),m=W.useCallback(e=>{p.current=e,typeof o==`function`?o(e):o&&(o.current=e)},[o]);W.useEffect(()=>(c(f,p),()=>l(f)),[f,c,l]);let h=u(f)===d;return W.useEffect(()=>{h&&p.current?.focus()},[h]),(0,G.jsx)(`div`,{ref:m,role:`menuitem`,tabIndex:t?-1:h?0:-1,"aria-disabled":t,"data-active":h?`true`:void 0,className:K(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors`,`focus:bg-accent focus:text-accent-foreground`,`data-[active]:bg-accent data-[active]:text-accent-foreground`,n&&`pl-8`,t&&`pointer-events-none opacity-50`,e),onClick:e=>{t||(r?.(e),s(!1))},onKeyDown:e=>{t||(i?.(e),(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),r?.(e),s(!1)))},...a})});tH.displayName=`DropdownMenuItem`;var nH=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(`div`,{ref:r,className:K(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));nH.displayName=`DropdownMenuLabel`;var rH=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:K(`-mx-1 my-1 h-px bg-muted`,e),...t}));rH.displayName=`DropdownMenuSeparator`;function iH({className:e,children:t,...n}){return(0,G.jsx)(`div`,{className:K(`px-2 py-1.5 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,e),...n,children:t})}var aH=[{label:`Past 1 week`,value:`last 1w`},{label:`Past 2 weeks`,value:`last 2w`},{label:`Past 4 weeks`,value:`last 4w`},{label:`Past 8 weeks`,value:`last 8w`},{label:`Past 12 weeks`,value:`last 12w`},{label:`Past 1 year`,value:`last 52w`},{label:`All time`,value:`all`}],oH=[`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`,`Su`];function sH(e,t){return new Date(e,t+1,0).getDate()}function cH(e,t){let n=new Date(e,t,1).getDay();return n===0?6:n-1}function lH(e,t){let n=X(e);if(n.error)return e;if(!t||t===`all`)return mg({...n,window:void 0});let r=X(`:note ${t}`);return r.error||r.family!==`find`||!r.window?e:mg({...n,window:r.window})}function uH(e){let t=X(e);return t.error||t.family===`pipeline`?null:`window`in t?t.window??null:null}function dH({query:e,onQueryChange:t,highlightDates:n=new Set,className:r}){let i=(0,W.useMemo)(()=>uH(e),[e]),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(()=>new Date),l=s.getFullYear(),u=s.getMonth(),d=(0,W.useMemo)(()=>i?i.kind===`relative`?`last ${i.size}${i.unit}`:i.end?`from ${i.start} to ${i.end}`:`from ${i.start}`:`All time`,[i]),f=(0,W.useMemo)(()=>{if(!i)return null;if(i.kind===`range`)return{start:i.start,end:i.end??i.start};let e=new Date,t=new Date;return i.unit===`d`?t.setDate(e.getDate()-i.size):t.setDate(e.getDate()-i.size*7),{start:vF(t),end:vF(e)}},[i]),p=(0,W.useMemo)(()=>{let e=sH(l,u),t=cH(l,u),n=[];for(let e=0;e<t;e++)n.push(null);for(let t=1;t<=e;t++)n.push(t);return n},[l,u]),m=n=>{if(!a)o(n),t(lH(e,`from ${n} to ${n}`));else{let[r,i]=a<=n?[a,n]:[n,a];o(null),t(lH(e,`from ${r} to ${i}`))}},h=e=>{e.stopPropagation(),c(new Date(l,u-1,1))},g=e=>{e.stopPropagation(),c(new Date(l,u+1,1))},_=s.toLocaleDateString(`en-US`,{month:`short`,year:`numeric`}),v=vF(new Date);return(0,G.jsxs)(`div`,{className:K(`relative inline-flex items-center`,r),children:[(0,G.jsxs)(QV,{children:[(0,G.jsx)($V,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wql-window-picker-trigger`,className:`flex h-9 items-center gap-1.5 rounded-lg border border-border bg-background px-2.5 text-xs font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,G.jsx)(sr,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`font-mono text-xs`,children:d}),(0,G.jsx)(Wt,{className:`size-3 text-muted-foreground`,"aria-hidden":`true`})]})}),(0,G.jsxs)(eH,{align:`end`,className:`w-72 p-3`,children:[(0,G.jsx)(`div`,{className:`mb-3 flex flex-wrap gap-1 border-b border-border/60 pb-2`,children:aH.map(n=>{let r=n.value===`all`?!i:i?.kind===`relative`&&`last ${i.size}${i.unit}`===n.value;return(0,G.jsx)(`button`,{type:`button`,"data-testid":`wql-window-preset-${n.value}`,onClick:()=>{o(null),t(lH(e,n.value))},className:K(`rounded-md px-2 py-1 text-[11px] font-medium transition-colors`,r?`bg-primary text-primary-foreground`:`bg-muted/50 text-muted-foreground hover:bg-muted hover:text-foreground`),children:n.label},n.value)})}),(0,G.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:h,"data-testid":`wql-calendar-prev-month`,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Previous month`,children:(0,G.jsx)(dn,{className:`size-4`})}),(0,G.jsx)(`span`,{className:`text-xs font-semibold text-foreground`,children:_}),(0,G.jsx)(`button`,{type:`button`,onClick:g,"data-testid":`wql-calendar-next-month`,className:`rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,"aria-label":`Next month`,children:(0,G.jsx)(En,{className:`size-4`})})]}),(0,G.jsx)(`div`,{className:`mb-1 grid grid-cols-7 gap-1`,children:oH.map(e=>(0,G.jsx)(`div`,{className:`text-center text-[10px] font-medium text-muted-foreground`,children:e},e))}),(0,G.jsx)(`div`,{className:`grid grid-cols-7 gap-1`,"data-testid":`wql-calendar-grid`,children:p.map((e,t)=>{if(e===null)return(0,G.jsx)(`div`,{className:`size-8`},`empty-${t}`);let r=`${l}-${String(u+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,i=f&&r>=f.start&&r<=f.end,o=f&&r===f.start||a===r,s=f&&r===f.end,c=r===v,d=n.has(r);return(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wql-calendar-day-${r}`,onClick:()=>m(r),className:K(`relative flex size-8 items-center justify-center rounded-md text-xs transition-colors`,o||s?`bg-primary font-bold text-primary-foreground`:i?`bg-primary/15 font-semibold text-primary`:c?`border border-primary font-semibold text-primary`:`text-foreground hover:bg-muted`),children:[(0,G.jsx)(`span`,{children:e}),d&&!o&&!s&&(0,G.jsx)(`span`,{className:`absolute bottom-0.5 size-1 rounded-full bg-primary`})]},r)})}),a&&(0,G.jsxs)(`div`,{className:`mt-2 text-center text-[10px] text-muted-foreground`,children:[`Select second date to complete range (starting from `,a,`)`]})]})]}),i&&(0,G.jsx)(`button`,{type:`button`,"data-testid":`wql-window-picker-clear`,onClick:()=>{o(null),t(lH(e,null))},title:`Clear time window`,"aria-label":`Clear time window`,className:`ml-1 grid size-7 place-items-center rounded-md text-muted-foreground transition-colors hover:bg-muted hover:text-foreground`,children:(0,G.jsx)(_r,{className:`size-3.5`})})]})}function fH({onOpen:e}){let t=ZV();return(0,G.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{t(),e()},"data-testid":`query-settings-trigger`,className:`w-full justify-start gap-2 rounded-lg text-xs`,children:[(0,G.jsx)(Ln,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:`Query settings`})]})}function pH(e){switch(e.kind){case`note`:return`note`;case`result`:return`result`;case`segment`:case`event`:return`segment`;case`effort`:return`effort`;default:return`note`}}var mH=[{id:`title`,label:`Title`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`tags`,label:`Tags`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.tags??[],formatValue:e=>Array.isArray(e)?e.join(`, `):String(e??``)},{id:`excerpt`,label:`Text Excerpt`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.block?.preview?.join(` `)||e.detail||``,formatValue:e=>String(e??``)},{id:`sourceNotebook`,label:`Notebook`,level:`note`,defaultVisible:!0,align:`left`,getValue:e=>e.sourceNotebook,formatValue:e=>String(e??``)},{id:`date`,label:`Date`,level:`note`,defaultVisible:!0,align:`right`,getValue:e=>e.date,formatValue:e=>String(e??``)}],hH={note:mH,session:[{id:`title`,label:`Title`,level:`session`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`protocol`,label:`Protocol`,level:`session`,defaultVisible:!0,align:`left`,getValue:e=>e.block?.dataType||e.subtitle||``,formatValue:e=>String(e??``)},{id:`movements`,label:`Movements`,level:`session`,defaultVisible:!0,align:`left`,getValue:e=>e.detail||``,formatValue:e=>String(e??``)},{id:`targetDuration`,label:`Target Duration`,level:`session`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.elapsedMs==null?``:xL(e.execution.elapsedMs),formatValue:e=>String(e??``)},{id:`sessionLoad`,label:`Session Load`,level:`session`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.loadLbs,formatValue:e=>typeof e==`number`?`${e.toLocaleString()} lbs`:``}],result:[{id:`title`,label:`Title`,level:`result`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`elapsedTime`,label:`Elapsed Time`,level:`result`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.elapsedMs==null?``:xL(e.execution.elapsedMs),formatValue:e=>String(e??``)},{id:`totalTonnage`,label:`Total Tonnage`,level:`result`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.loadLbs,formatValue:e=>typeof e==`number`?`${e.toLocaleString()} lbs`:``},{id:`tis`,label:`TIS Score`,level:`result`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.tis,formatValue:e=>typeof e==`number`?e.toFixed(1):``},{id:`prBadges`,label:`PR Badges`,level:`result`,defaultVisible:!0,align:`center`,getValue:e=>e.detail&&/\bPR\b/.test(e.detail)?`PR`:``,formatValue:e=>String(e??``)}],segment:[{id:`splitDuration`,label:`Split Duration`,level:`segment`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.elapsedMs==null?``:xL(e.execution.elapsedMs),formatValue:e=>String(e??``)},{id:`roundIndex`,label:`Round/Lap Index`,level:`segment`,defaultVisible:!0,align:`left`,getValue:e=>e.title,formatValue:e=>String(e??``)},{id:`reps`,label:`Reps`,level:`segment`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.reps,formatValue:e=>e==null?``:String(e)},{id:`load`,label:`Load`,level:`segment`,defaultVisible:!0,align:`right`,getValue:e=>e.execution?.loadLbs,formatValue:e=>typeof e==`number`?`${e.toLocaleString()} lbs`:``},{id:`pacingTier`,label:`Pacing / HR Tier`,level:`segment`,defaultVisible:!0,align:`center`,getValue:e=>e.effort?.intensityTier||e.execution?.effortSlug||``,formatValue:e=>String(e??``)}],effort:[{id:`label`,label:`Label`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.label||e.title,formatValue:e=>String(e??``)},{id:`canonicalSlug`,label:`Canonical Slug`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.slug||e.id,formatValue:e=>String(e??``)},{id:`discipline`,label:`Discipline`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.discipline??``,formatValue:e=>String(e??``)},{id:`met`,label:`MET Score`,level:`effort`,defaultVisible:!0,align:`right`,getValue:e=>e.effort?.met,formatValue:e=>typeof e==`number`?e.toFixed(1):``},{id:`intensityTier`,label:`Intensity Tier`,level:`effort`,defaultVisible:!0,align:`center`,getValue:e=>e.effort?.intensityTier??``,formatValue:e=>String(e??``)},{id:`aliases`,label:`Aliases`,level:`effort`,defaultVisible:!0,align:`left`,getValue:e=>e.effort?.aliases??[],formatValue:e=>Array.isArray(e)?e.join(`, `):String(e??``)}]};function gH(e){return hH[e]??mH}function _H(e){return gH(e).filter(e=>e.defaultVisible).map(e=>e.id)}var vH=1023;function yH(e){return e===`/`?`canvas:home`:`canvas:${e.replace(/^\//,``)}`}function bH(e,t){if(e===`query:new`)return``;let n=e=>{let n=`/${e}`;for(let r of Object.keys(t))if(r===e||r.endsWith(n))return r;return null},r=e=>{let r=n(e);if(r===null)return null;let i=t[r],{meta:a,body:o}=Za(i),s=new Set([`search`,`template`,`route`,`type`,`title`,`description`,`subtitle`,`section`,`order`]);return Object.keys(a).some(e=>!s.has(e.trim().toLowerCase()))?i:o};if(e.startsWith(`markdown/`)){let t=r(e);if(t!==null)return t}let i=e;if(e.startsWith(`wods/examples/`))i=`markdown/canvas/`+e.replace(/^wods\/examples\//,``);else if(e.startsWith(`wods/`))i=`markdown/canvas/`+e.replace(/^wods\//,``);else if(e.startsWith(`canvas/`))i=`markdown/canvas/`+e.replace(/^canvas\//,``);else{let t=r(`markdown/canvas/`+e);if(t!==null)return t;i=`markdown/`+e}return r(i)??`# Source not found\n\nPath: \`${e}\`\nResolved: \`${i}\``}function xH(e){return(e.examples??[]).length>0||e.commands.some(e=>e.pipeline.length>0)}function SH(e){let t=new Map,n=null;for(let r of e)xH(r)&&(n=r),t.set(r.id,n);return t}function CH(){let[e,t]=(0,W.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: ${vH}px)`).matches);return(0,W.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: ${vH}px)`),n=e=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var wH=[{id:`cards`,label:`Cards`,icon:_e},{id:`rows`,label:`Rows`,icon:rt},{id:`feed`,label:`Feed`,icon:Ut},{id:`agenda`,label:`Agenda`,icon:h},{id:`planner`,label:`Planner`,icon:gn}];function TH({streamControls:e}){let t=e.availableLayouts;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,"data-testid":`l3-stream-controls`,children:[e.onOpenQuerySettings&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`This page`}),(0,G.jsx)(fH,{onOpen:e.onOpenQuerySettings})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Date window`}),(0,G.jsx)(dH,{query:e.query,onQueryChange:e.onQueryChange,className:`w-full justify-between`})]}),e.availableGroupDims.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Group by`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`l3-groupby-options`,children:e.availableGroupDims.map(t=>{let n=e.groupDims.some(e=>e.toLowerCase()===t.id.toLowerCase());return(0,G.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 text-xs text-foreground/80 hover:bg-muted/60 transition-colors`,"data-testid":`l3-groupby-${t.id}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:n,onChange:()=>e.onToggleGroupDim(t.id),className:`size-3.5 rounded border-border accent-primary cursor-pointer`}),(0,G.jsx)(`span`,{children:t.label})]},t.id)})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Layout`}),(0,G.jsx)(`div`,{className:`grid grid-cols-3 gap-1`,"data-testid":`l3-layout-options`,children:wH.filter(e=>!t||t.includes(e.id)).map(t=>{let n=t.icon,r=e.settings.layout===t.id;return(0,G.jsxs)(`button`,{type:`button`,"aria-pressed":r,onClick:()=>e.onLayoutChange(t.id),"data-testid":`l3-layout-${t.id}`,className:`flex min-h-8 items-center justify-center gap-1 rounded-md border px-1.5 py-1 text-[11px] font-medium transition-colors ${r?`border-border/80 bg-card text-foreground shadow-sm`:`border-transparent text-muted-foreground hover:text-foreground`}`,children:[(0,G.jsx)(n,{"aria-hidden":!0,className:`size-3`}),t.label]},t.id)})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Fields`}),(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`l3-field-options`,children:gH(e.level).map(t=>{let n=e.settings.visibleFields.includes(t.id);return(0,G.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 text-xs text-foreground/80 hover:bg-muted/60 transition-colors`,"data-testid":`l3-field-${t.id}`,children:[(0,G.jsx)(`input`,{type:`checkbox`,checked:n,onChange:()=>e.onToggleField(t.id),className:`size-3.5 rounded border-border accent-primary cursor-pointer`}),(0,G.jsx)(`span`,{children:t.label})]},t.id)})})]}),(0,G.jsx)(gR,{})]})}function EH(){let e=CH(),{streamControls:t}=uP();return!e||!t?null:(0,G.jsx)(TH,{streamControls:t})}function DH({spec:e,pageAction:t}){let{l3Items:n,streamControls:r}=uP(),i=GB(e),a=(0,W.useMemo)(()=>JV(n),[n]),o=KB();return i.length===0&&a.length===0&&!r&&!t?null:(0,G.jsxs)(`div`,{className:`flex flex-col px-3 py-4 gap-4`,children:[r&&(0,G.jsx)(`div`,{className:`pb-3 border-b border-border/50`,children:(0,G.jsx)(TH,{streamControls:r})}),i.length>0&&(0,G.jsx)(JB,{entries:i,activeId:o}),a.length>0&&(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 pt-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`On this page`}),(0,G.jsx)(JB,{entries:a,activeId:o})]}),t&&(0,G.jsx)(`div`,{className:`pt-2 border-t border-border/50`,children:t})]})}var OH=`wodwiki:fabAlignment`,kH=[{id:`left`,label:`Bottom left`,description:`Left-handed — search and page actions float near your left thumb`},{id:`right`,label:`Bottom right`,description:`Right-handed — search and page actions float near your right thumb`}];function AH(){try{return jH(localStorage.getItem(OH))}catch{return}}function jH(e){return e===`right`||e===`left`?e:void 0}var MH=typeof window>`u`?void 0:AH();typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key===OH&&(MH=jH(e.newValue))});function NH(e){MH=e;try{e===`right`?localStorage.removeItem(OH):localStorage.setItem(OH,e)}catch{}window.dispatchEvent(new StorageEvent(`storage`,{key:OH,newValue:e}))}function PH(){let[e,t]=(0,W.useState)(()=>MH??`right`);return(0,W.useEffect)(()=>{let e=e=>{e.key===OH&&t(jH(e.newValue)??`right`)};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),[e,NH]}function FH({onOpen:e}){return(0,G.jsxs)(`button`,{type:`button`,onClick:e,"aria-label":`Search`,title:`Search`,"data-testid":`search-fab`,className:K(`size-14 rounded-full flex items-center justify-center`,`bg-primary text-primary-foreground shadow-lg`,`hover:bg-primary/90 active:scale-95 transition-all`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`),children:[(0,G.jsx)(ge,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Search`})]})}var IH=(0,W.createContext)(null),LH=(0,W.createContext)(!1),RH=(0,W.createContext)(null);function zH(){return(0,W.useContext)(IH)!==null}function BH({primary:e,navbar:t,children:n,label:r,fallback:i=!1}){let a=(0,W.useContext)(IH),o=(0,W.useContext)(LH),s=CH(),c=(0,W.useId)(),l=a!==null&&!o&&s&&!i,u=a!==null&&i,d=n!=null&&n!==!1,f=(0,W.useMemo)(()=>(0,G.jsx)(LH.Provider,{value:!0,children:n}),[n]),p=l||u,m=(0,W.useRef)(null);return m.current={id:c,primary:e,navbar:t,children:f,hasContent:d,label:r??`Page options`,fallback:i},(0,W.useEffect)(()=>{if(p)return a.register(m.current),()=>a.unregister(c)},[p,a,c]),(0,W.useEffect)(()=>{p&&a.register(m.current)},[p,a,e,t,f,d,r,i]),i||a&&s&&!o?null:(0,G.jsx)(LH.Provider,{value:!0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t,e,n]})})}function VH({onSearch:e,children:t}){let[n,r]=(0,W.useState)([]),i=(0,W.useCallback)(e=>r(t=>{let n=t.findIndex(t=>t.id===e.id);if(n===-1)return[...t,e];let r=t[n];if(r.primary===e.primary&&r.navbar===e.navbar&&r.children===e.children&&r.hasContent===e.hasContent&&r.label===e.label&&r.fallback===e.fallback)return t;let i=[...t];return i[n]=e,i}),[]),a=(0,W.useCallback)(e=>r(t=>t.filter(t=>t.id!==e)),[]),o=(0,W.useMemo)(()=>({register:i,unregister:a}),[i,a]),s=(0,W.useMemo)(()=>{for(let e=n.length-1;e>=0;--e)if(!n[e].fallback)return n[e].navbar??null;return null},[n]);return(0,G.jsx)(IH.Provider,{value:o,children:(0,G.jsxs)(RH.Provider,{value:s,children:[t,(0,G.jsx)(UH,{registrations:n,onSearch:e})]})})}function HH(){let e=(0,W.useContext)(RH);return e?(0,G.jsx)(G.Fragment,{children:e}):null}function UH({registrations:e,onSearch:t}){let n=CH(),[r]=PH(),i=RC(),[a,o]=(0,W.useState)(!1),s=(0,W.useCallback)(()=>o(!1),[]),c=(0,W.useRef)(null),l=(0,W.useRef)(null),u=(0,W.useRef)(null),d=(0,W.useMemo)(()=>{for(let t=e.length-1;t>=0;--t)if(!e[t].fallback)return e[t]},[e]),f=(0,W.useMemo)(()=>{for(let t=e.length-1;t>=0;--t)if(e[t].fallback)return e[t]},[e]);(0,W.useLayoutEffect)(()=>{a&&c.current?.focus({preventScroll:!0})},[a]);let p=!!(d?.hasContent||f?.hasContent);return!n||!t&&!d&&!f?null:(0,G.jsxs)(`div`,{"data-testid":`actions-dock`,className:K(`lg:hidden relative z-40 mt-4 flex flex-col items-center gap-2`,`transition-[transform,visibility] duration-200 ease-out`,r===`left`?`self-start items-start`:`self-end items-end`),children:[(0,G.jsxs)(`div`,{className:`relative z-40 flex flex-col items-center gap-2`,children:[t&&(0,G.jsx)(FH,{onOpen:()=>{o(!1),t()}}),d?.primary&&(0,G.jsx)(`div`,{className:`[&_button]:min-h-11 [&_button]:min-w-11`,children:d.primary})]}),a&&p&&(0,G.jsx)(`button`,{type:`button`,tabIndex:-1,"aria-hidden":`true`,className:`fixed inset-0 z-30 cursor-default`,onClick:()=>o(!1)}),(0,G.jsx)(`div`,{ref:c,role:`dialog`,"aria-label":d?.label??f?.label??`Page options`,tabIndex:-1,hidden:!a||!p,onKeyDown:e=>{e.key===`Escape`&&(e.stopPropagation(),o(!1))},className:K(a&&p?`flex`:`hidden`,`relative z-40 w-60 max-w-[calc(100vw-2rem)] flex-col gap-3 overflow-y-auto rounded-2xl bg-card p-3 shadow-xl ring-1 ring-foreground/5 outline-none`,`[&_button]:min-h-11 [&_button]:min-w-11`),style:{maxHeight:`calc(${i.height===null?`100dvh`:`${i.height}px`} - 6rem - env(safe-area-inset-bottom))`},children:(0,G.jsxs)(AF,{close:s,children:[(0,G.jsx)(`div`,{ref:l,className:`contents`,children:d?.children}),d?.children&&f?.children&&(0,G.jsx)(`div`,{className:`my-1 border-t border-border/60`,"aria-hidden":`true`}),(0,G.jsx)(`div`,{ref:u,className:`contents`,children:f?.children})]})}),p&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-label":d?.label??f?.label??`Page options`,title:d?.label??f?.label??`Page options`,"aria-expanded":a,"data-testid":`actions-overflow`,className:K(`relative z-40 flex size-12 items-center justify-center rounded-full`,`bg-card text-foreground shadow-lg ring-1 ring-foreground/10`,`hover:bg-muted active:scale-95 transition-all`,`focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary`),children:[a?(0,G.jsx)(tr,{className:`size-6`}):(0,G.jsx)(I,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:d?.label??f?.label??`Page options`})]})]})}function WH(){return(0,G.jsx)(`svg`,{"data-slot":`icon`,viewBox:`0 0 20 20`,"aria-hidden":`true`,className:`[&>[data-slot=icon]]:size-5`,children:(0,G.jsx)(`path`,{d:`M2 6.75C2 6.33579 2.33579 6 2.75 6H17.25C17.6642 6 18 6.33579 18 6.75C18 7.16421 17.6642 7.5 17.25 7.5H2.75C2.33579 7.5 2 7.16421 2 6.75ZM2 13.25C2 12.8358 2.33579 12.5 2.75 12.5H17.25C17.6642 12.5 18 12.8358 18 13.25C18 13.6642 17.6642 14 17.25 14H2.75C2.33579 14 2 13.6642 2 13.25Z`})})}function GH(){return(0,G.jsx)(`svg`,{"data-slot":`icon`,viewBox:`0 0 20 20`,"aria-hidden":`true`,className:`[&>[data-slot=icon]]:size-5`,children:(0,G.jsx)(`path`,{d:`M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z`})})}function KH(){let{tree:e,navState:t,contextNav:n}=uP(),r=wn(),i=jF();return!e.find(e=>e.id===t.activeL1Id)?.applyFooter||n?.pathname===r.pathname?null:(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border/50 bg-card p-3`,children:(0,G.jsx)(`button`,{type:`button`,onClick:i,className:`h-11 w-full rounded-lg bg-primary text-sm font-medium text-primary-foreground`,children:`Apply`})})}function qH({open:e,close:t,onSearch:n,children:r}){return(0,G.jsxs)(nt,{open:e,onClose:t,className:`relative z-50 lg:hidden`,children:[(0,G.jsx)(Qe,{transition:!0,className:`fixed inset-0 bg-black/30 dark:bg-black/30 transition data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in`}),(0,G.jsx)(i,{transition:!0,className:`fixed inset-y-0 left-0 w-full transition duration-300 ease-out data-closed:-translate-x-full`,children:(0,G.jsx)(AF,{close:t,children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 bg-card`,children:[(0,G.jsx)(`div`,{className:`flex h-full w-14 shrink-0 flex-col items-center border-r border-zinc-950/5 bg-background/72 py-3 dark:border-white/5 [&_a]:size-11 [&_button]:size-11`,children:(0,G.jsx)(rV,{onSearch:()=>{t(),n?.()}})}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,G.jsx)(`div`,{className:`flex items-center px-4 pt-3`,children:(0,G.jsxs)(Nn,{as:Az,"aria-label":`Close navigation`,title:`Close navigation`,children:[(0,G.jsx)(GH,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close navigation`})]})}),(0,G.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:r}),(0,G.jsx)(KH,{})]})]})})})]})}function JH({open:e,close:t,children:n}){return(0,G.jsxs)(nt,{open:e,onClose:t,className:`relative z-50 lg:hidden`,children:[(0,G.jsx)(Qe,{transition:!0,className:`fixed inset-0 bg-black/30 dark:bg-black/30 transition data-closed:opacity-0 data-enter:duration-300 data-enter:ease-out data-leave:duration-200 data-leave:ease-in`}),(0,G.jsx)(i,{transition:!0,className:`fixed inset-y-0 right-0 w-full transition duration-300 ease-out data-closed:translate-x-full`,children:(0,G.jsx)(AF,{close:t,children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col bg-card`,children:[(0,G.jsx)(`div`,{className:`flex items-center justify-end px-4 pt-3`,children:(0,G.jsxs)(Nn,{as:Az,"aria-label":`Close page options`,title:`Close page options`,children:[(0,G.jsx)(GH,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close page options`})]})}),(0,G.jsx)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto`,children:n}),(0,G.jsx)(`div`,{className:`shrink-0 border-t border-border/50 bg-card p-3`,children:(0,G.jsx)(`button`,{type:`button`,onClick:t,className:`h-11 w-full rounded-lg bg-primary text-sm font-medium text-primary-foreground`,children:`Apply`})})]})})})]})}function YH({navbar:e,sidebar:t,onSearch:n,secondary:r,pageAction:i,hideDesktopSidebar:a,children:o}){let[s,c]=(0,W.useState)(!1),[l,u]=(0,W.useState)(!1),{streamControls:d,l3Items:f}=uP(),p=!!(r&&r.length>0||f&&f.length>0||d||i),m=(0,W.useMemo)(()=>{let e=X(d?.query??``);return!e.error&&xh(e)&&e.filters.length>0},[d?.query]);return(0,W.useEffect)(()=>{if(!s&&!l)return;let e=()=>{c(!1),u(!1)};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[s,l]),(0,G.jsx)(WV,{children:(0,G.jsx)(VH,{onSearch:n,children:(0,G.jsx)(`div`,{className:`relative isolate flex min-h-svh w-full bg-background max-lg:flex-col lg:flex-row`,children:(0,G.jsxs)(`div`,{className:`flex flex-1 w-full max-lg:flex-col lg:flex-row`,children:[(0,G.jsxs)(`nav`,{"aria-label":`Main`,className:`hidden lg:flex`,children:[(0,G.jsx)(`div`,{className:`w-14 shrink-0 sticky top-0 h-svh flex flex-col items-center border-r border-zinc-950/5 dark:border-white/5 bg-background/72 backdrop-blur-sm z-40 py-3`,children:(0,G.jsx)(rV,{onSearch:n??(()=>{})})}),(0,G.jsx)(`div`,{className:K(`w-60 shrink-0 sticky top-0 self-start h-svh min-h-0 overflow-hidden border-r border-zinc-950/5 dark:border-white/5 bg-background/72 backdrop-blur-sm flex flex-col`,a&&`lg:hidden`),children:t})]}),(0,G.jsx)(qH,{open:s,close:()=>c(!1),onSearch:n,children:t}),(0,G.jsxs)(`div`,{className:`flex flex-1 flex-col min-w-0 xl:max-w-[984px] 2xl:max-w-none`,children:[(0,G.jsxs)(`header`,{"data-page-sticky-boundary":`true`,className:`lg:hidden sticky top-0 z-20 flex items-center px-2 sm:px-4 bg-card`,children:[(0,G.jsx)(`div`,{className:`py-2.5 shrink-0`,children:(0,G.jsxs)(Az,{onClick:()=>c(!0),"aria-label":`Open navigation`,title:`Open navigation`,children:[(0,G.jsx)(WH,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Open navigation`})]})}),(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:e}),p&&(0,G.jsx)(`div`,{className:`py-2.5 shrink-0`,children:(0,G.jsxs)(Az,{onClick:()=>u(!0),"aria-label":`Open page options`,title:`Open page options`,children:[(0,G.jsxs)(`span`,{className:`relative inline-flex`,children:[(0,G.jsx)(Ln,{className:`size-5`}),m&&(0,G.jsx)(`span`,{"data-testid":`drawer-filters-active`,className:`absolute -top-1 -right-1 size-2 rounded-full bg-amber-500`,"aria-hidden":`true`})]}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Open page options`})]})})]}),(0,G.jsxs)(`main`,{className:`flex flex-1 flex-col lg:min-w-0`,children:[(0,G.jsx)(`div`,{className:`grow w-full max-lg:pb-48 lg:overflow-visible`,children:o}),(0,G.jsx)(XH,{})]})]}),(0,G.jsx)(`aside`,{className:`hidden 2xl:flex w-60 shrink-0 sticky top-0 h-svh flex-col overflow-y-auto bg-background/72 backdrop-blur-sm`,children:(0,G.jsx)(DH,{spec:r,pageAction:i})}),(0,G.jsx)(JH,{open:l,close:()=>u(!1),children:(0,G.jsx)(DH,{spec:r,pageAction:i})})]})})})})}function XH(){let e=(0,W.useRef)(null),[t,n]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=e.current;if(!t)return;let r=new ResizeObserver(e=>{let t=Math.round(e[0]?.contentRect.height??0);n(e=>e===t?e:t)});r.observe(t,{box:`content-box`});let i=Math.round(t.getBoundingClientRect().height);return n(e=>e===i?e:i),()=>r.disconnect()},[]),(0,W.useEffect)(()=>(document.documentElement.style.setProperty(`--thumb-dock-lift`,`${t}px`),()=>document.documentElement.style.setProperty(`--thumb-dock-lift`,`0px`)),[t]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:K(`lg:hidden fixed inset-x-0 bottom-0 z-30`,t>0&&`bg-card border-t border-border/50 px-3 py-2`),children:(0,G.jsx)(`div`,{ref:e,className:`w-full min-w-0`,children:(0,G.jsx)(GV,{className:`flex w-full min-w-0`})})}),(0,G.jsx)(`div`,{className:`lg:hidden`,"aria-hidden":`true`,style:{height:t}})]})}function ZH(e){let t=e.indexOf(`markdown`);return t!==-1&&e.length>t+2?e[t+2]:`General`}function QH(e){return String(to(Za(e).meta,`search`)??``).toLowerCase()===`hidden`}function $H(e){let t=to(Za(e).meta,`date`);if(typeof t!=`string`||!/^\d{4}-\d{2}-\d{2}$/.test(t))return;let n=new Date(`${t}T12:00:00Z`);return Number.isFinite(n.getTime())&&n.toISOString().slice(0,10)===t?n.getTime():void 0}function eU(e){return Object.entries(e).map(([e,t])=>{let n=e.split(`/`),r=n[n.length-1].replace(`.md`,``),i=t,a=to(Za(i).meta,`title`);return{id:e,name:r,displayName:typeof a==`string`&&a.trim()?a.trim():UO(r),category:ZH(n),content:i,date:$H(i),searchHidden:QH(i)}})}function tU(){let e=dk();return(0,W.useMemo)(()=>e?eU(e):[],[e])}var nU={};function rU(e){if(!(`payload`in e))return;let t=e.payload;if(!t||typeof t!=`object`)return;let n=t;return n.targetDate??n.updatedAt}function iU(e,t){let{canvasPage:n,workoutItems:r,recentResults:i,selectWorkout:a}=t;if(e===`/`)return[];if(n){let t=/^\/notebook\//.test(e),i=t?e.split(`/`).pop()??null:null,o=[],s=e.startsWith(`/page/guide-`);return n.sections.filter(e=>e.level>1).forEach(e=>{if(o.push({id:e.id,label:e.heading,type:`heading`}),!s){let t=QR(e).split(`
110
110
  `),n=0;t.forEach((t,r)=>{let i=t.trim().match(/^```(time|log)(:\w+)?\s*$/);if(i){let t=i[1];n++,o.push({id:`${e.id}-${t}-${r+1}`,label:`Workout ${n}`,type:t})}})}}),t&&i&&(o.push({id:`notebook-workouts`,label:`Explore`,type:`heading`}),r.filter(e=>e.category===i&&e.name.toLowerCase()!==`readme`).forEach(e=>{o.push({id:`workout-${e.id}`,label:e.name,type:`time`,onRun:()=>a(e),runIcon:`link`})})),o}if(e===`/journal`){let e=new Set;return i.forEach(t=>{let n=new Date(t.createdAt).getTime();Number.isFinite(n)&&e.add(vF(new Date(n)))}),r.forEach(t=>{let n=rU(t);n&&Number.isFinite(new Date(n).getTime())&&e.add(vF(new Date(n)))}),Array.from(e).sort().reverse().slice(0,10).map(e=>({id:e,label:Bb(new Date(e+`T00:00:00`)),type:`heading`}))}return[]}var aU=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function oU(e){return aU.test(e)}function sU(e){try{return decodeURIComponent(e)}catch{return null}}function cU(e){if(!xF(e))return!1;let t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return!1;let n=new Date(Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3])));return n.getUTCFullYear()===Number(t[1])&&n.getUTCMonth()===Number(t[2])-1&&n.getUTCDate()===Number(t[3])}function lU(e){let t=(e.length>1?e.replace(/\/+$/,``):e).match(/^\/day\/([^/]+)$/);if(!t)return{kind:`invalid`};let n=sU(t[1]);return n!=null&&cU(n)?{kind:`date`,date:n}:{kind:`invalid`}}var uU=`# My Workout Notebook
111
111
 
112
112
  Welcome to the **WOD.WIKI** playground.
@@ -169,7 +169,7 @@ Timer 12:00
169
169
  border border-border/80 shadow-xl rounded-lg overflow-hidden pointer-events-auto`,style:{top:k,maxHeight:200},children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 bg-muted/40 border-b border-border/50 shrink-0`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-mono px-2 py-0.5 rounded bg-metric-time/10 text-metric-time uppercase tracking-wider font-semibold`,children:h.type}),(0,G.jsxs)(`div`,{className:`flex items-center min-w-0 gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground/60`,children:[`L`,D]}),(0,G.jsx)(`span`,{className:`text-muted-foreground/40`,children:`·`}),(0,G.jsx)(`span`,{className:`text-xs font-mono text-foreground/90 truncate font-medium`,title:E,children:E||(0,G.jsx)(`span`,{className:`italic text-muted-foreground`,children:`—`})})]})]}),(0,G.jsx)(`div`,{className:`px-3 py-2.5 min-h-0 overflow-auto`,children:w.length>0?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:w.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-1 rounded-md text-sm font-semibold ${e.color}`,title:e.label,children:[(0,G.jsx)(`span`,{className:`text-base leading-none`,children:e.icon}),(0,G.jsx)(`span`,{className:`font-mono tracking-tight`,children:e.value})]},t))}):(0,G.jsx)(`span`,{className:`text-xs italic text-muted-foreground`,children:`No metrics on this line`})}),T&&(0,G.jsx)(XY,{summary:T}),(0,G.jsx)(`div`,{className:`border-t border-border/40 shrink-0`,children:(0,G.jsx)(eX,{commands:f,section:h,view:n})})]})]})},nX=({sectionId:e,widgetName:t,view:n,registry:r,docVersion:i})=>{let{rawContent:a,config:o}=(0,W.useMemo)(()=>{let t=n.state.field(TT).sections.find(t=>t.id===e),r=t?.contentFrom!==void 0&&t?.contentTo!==void 0?n.state.doc.sliceString(t.contentFrom,t.contentTo).trim():``,i={};if(r)try{i=JSON.parse(r)}catch{}return{rawContent:r,config:i}},[n,e,i]),s=r.get(t);return s?(0,G.jsx)(`div`,{className:`h-full w-full overflow-hidden rounded-l-md border-l border-border bg-background shadow-sm`,children:(0,G.jsx)(s,{config:o,rawContent:a,sectionId:e})}):(0,G.jsxs)(`div`,{className:`flex h-full w-full items-center justify-center rounded-l-md border-l border-border bg-muted/60 p-4 text-xs text-muted-foreground`,children:[(0,G.jsxs)(`span`,{className:`font-mono`,children:[`widget:`,t]}),(0,G.jsx)(`span`,{className:`ml-2 opacity-60`,children:`— not registered`})]})};function rX(e,t,n,r,i){switch(t.type){case`fixed-field`:return iX(e,t);case`metric-type`:return aX(e,t);case`derived`:return oX(e,t,n,r,i);case`fallback`:return sX(e,t,n,r,i);default:return}}function iX(e,t){return e[t.field]}function aX(e,t){return e.cells.get(t.metricType)}function oX(e,t,n,r,i){let a=new Map;if(t.dependencies&&r)for(let o of t.dependencies){if(i?.includes(o))throw Error(`Circular dependency detected in column '${o}': ${(i??[]).join(` -> `)} -> ${o}`);let t=r.get(o);if(t){let s=rX(e,t.source,n,r,[...i??[],o]);a.set(o,s)}}let o={...n,allRows:n?.allRows??[e],rowIndex:n?.rowIndex??0,columnDef:n?.columnDef??{id:`unknown`,label:``,source:t,format:{type:`text`}},dependencies:a,...t.context};return t.compute(e,o)}function sX(e,t,n,r,i){return cX(e,t,n,r,i)}function cX(e,t,n,r,i){if(!(!t.sources||t.sources.length===0))switch(t.semantics){case`first-present`:return lX(e,t.sources,n,r,i);case`all-present-joined`:return uX(e,t.sources,t.joinString,n,r,i);case`all-present-combined`:return dX(e,t.sources,n,r,i);default:return}}function lX(e,t,n,r,i){for(let a of t){let t=rX(e,a,n,r,i);if(t!=null)return t}}function uX(e,t,n,r,i,a){let o=[];for(let n of t){let t=rX(e,n,r,i,a);if(t==null)return;o.push(t)}let s=n??` `;return o.map(e=>pX(e)).join(s)}function dX(e,t,n,r,i){let a=[];for(let o of t){let t=rX(e,o,n,r,i);if(t==null)return;a.push(t)}return a}function fX(e){if(e==null)return``;let t=Array.isArray(e)?e:e instanceof ca?e.toArray():[];if(t.length===0)return``;let n=t[0];if(typeof n==`object`&&n){if(`image`in n&&typeof n.image==`string`)return n.image;if(`value`in n&&n.value!==void 0)return String(n.value)}return String(n)}function pX(e){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(typeof e==`object`&&`metrics`in e){let t=fX(e.metrics);if(t.length>0)return t}return String(e)}function mX(e,t,n,r){if(!t.sort)return``;let i=rX(e,t.source,n,r);return(t.sort.type===`custom`?typeof i==`number`||typeof i==`string`?i:String(i??``):t.sort.extractor(i))??``}function hX(e,t){if(typeof e==`number`&&typeof t==`number`)return Number.isNaN(e)&&Number.isNaN(t)?0:Number.isNaN(e)?1:Number.isNaN(t)?-1:e-t;let n=String(e??``),r=String(t??``),i=parseFloat(n),a=parseFloat(r);return!Number.isNaN(i)&&!Number.isNaN(a)&&n===String(i)&&r===String(a)?i-a:n.localeCompare(r)}function gX(e,t,n,r){if(!t.graph)return;let i=rX(e,t.source,n,r);return t.graph.extractor(i)}function _X(e,t,n,r){if(!t.filter)return``;let i=rX(e,t.source,n,r);return t.filter.extractor(i)??``}function vX(e,t,n,r,i){if(!n||n.trim().length===0||!t.filter)return!0;let a=_X(e,t,r,i),o=t.filter.caseInsensitive===!1?n.trim():n.trim().toLowerCase(),s=t.filter.caseInsensitive===!1?a:a.toLowerCase();return t.filter.matcher?t.filter.matcher(s,o):s.includes(o)}var yX=({metric:e})=>{let t=e.origin===`hinted`||e.image===`?`,n=(0,W.useMemo)(()=>IG(Ko.present(e,`review-grid-cell`)),[e]);return(0,G.jsxs)(`span`,{className:[`inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-xs font-medium border transition-all`,t?`bg-warning/10 border-warning/40 text-warning animate-pulse-opacity`:`${n.colorClasses} ${n.originClasses}`].join(` `),title:t?`Missing value - click to fill`:n.tooltip,children:[t&&(0,G.jsx)(`span`,{className:`mr-0.5 text-[10px]`,children:`◉`}),n.label,n.userEntered&&!t&&(0,G.jsx)(`span`,{className:`text-[10px] opacity-70 ml-0.5`,children:`👤`})]})},bX=({columnDef:e,row:t,allRows:n,rowIndex:r,indent:i=0,onDoubleClick:a,className:o,style:s,definitionMap:c})=>{let l=(0,W.useRef)(null),u=(0,W.useMemo)(()=>{if(!(!n||r===void 0))return{allRows:n,rowIndex:r,columnDef:e,dependencies:new Map}},[n,r,e]),d=(0,W.useMemo)(()=>rX(t,e.source,u,c),[t,e.source,u,c]),f=e.source.type===`metric-type`,p=(0,W.useCallback)(n=>{if(n.stopPropagation(),f&&a&&l.current){let n=l.current.getBoundingClientRect();a(t.sourceBlockKey,e.source.metricType,n)}},[f,e.source,t.sourceBlockKey,a]),m=(0,W.useMemo)(()=>xX(d,e.format,i,t),[d,e.format,i,t]);return(0,G.jsx)(`td`,{ref:l,className:K(`py-1 px-2`,f&&`cursor-cell`,o),style:s,onDoubleClick:p,children:m})};function xX(e,t,n,r){if(e==null)return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[PX(n),(0,G.jsx)(`span`,{className:`text-muted-foreground opacity-40`,children:`—`})]});switch(t.type){case`text`:return SX(e,t,n);case`time`:return CX(e,t);case`number`:return wX(e,t);case`badge`:return TX(e,t);case`pill`:return EX(e,t);case`combined`:return OX(e,t,n);case`custom`:return AX(e,t,r);default:return MX(e,n)}}function SX(e,t,n){let r=t.transform?t.transform(e):FX(e);return(0,G.jsxs)(`span`,{className:K(`inline-flex items-center gap-1`,t.className),children:[PX(n),r]})}function CX(e,t){let n=IX(e);if(n==null||!Number.isFinite(n))return(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});let r;switch(t.style){case`long`:r=$W(n);break;case`precise`:r=`${n.toFixed(2)}s`;break;default:r=QW(n)}return t.transform&&(r=t.transform(r)),(0,G.jsx)(`span`,{className:`font-mono text-xs whitespace-nowrap`,children:r})}function wX(e,t){let n=IX(e);if(n==null||!Number.isFinite(n))return(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`—`});let r=t.decimals??0,i=n.toFixed(r)+(t.unit??``);return t.transform?(0,G.jsx)(`span`,{children:t.transform(i)}):(0,G.jsx)(`span`,{children:i})}function TX(e,t){let n=t.styleResolver(e),r=t.textResolver(e);return(0,G.jsxs)(`span`,{className:K(`inline-flex items-center px-1.5 py-0.5 rounded text-xs font-medium`,n.className),title:n.title,children:[n.icon&&(0,G.jsx)(`span`,{className:`mr-0.5`,children:n.icon}),r]})}function EX(e,t){let n=t.transform?t.transform(e):FX(e),r=t.backgroundColor??`bg-muted`,i=t.borderRadius??`rounded`;return(0,G.jsx)(`span`,{className:K(`inline-block px-1.5 py-0.5 text-xs font-medium`,r,i),children:n})}var DX={primary:`text-sm font-semibold text-foreground`,secondary:`text-xs text-muted-foreground`,tertiary:`text-[11px] text-muted-foreground opacity-80`};function OX(e,t,n,r){let[i,a,o]=Array.isArray(e)?e:[e],s=i===void 0?null:kX(i,t.primaryFormat??{type:`text`},r,`primary`),c=a===void 0?null:kX(a,t.secondaryFormat??{type:`text`},r,`secondary`),l=o===void 0?null:kX(o,t.tertiaryFormat??{type:`text`},r,`tertiary`),u=t.layout===`horizontal`;return(0,G.jsxs)(`div`,{className:K(`inline-flex`,u?`flex-row items-center gap-1`:`flex-col items-start gap-0.5`,t.containerClassName),children:[PX(n),s,c&&(0,G.jsxs)(G.Fragment,{children:[u&&t.separator&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:t.separator}),c]}),l&&(0,G.jsxs)(G.Fragment,{children:[u&&t.separator&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:t.separator}),l]})]})}function kX(e,t,n,r){let i=xX(e,t,0,n);return r?(0,G.jsx)(`span`,{className:K(`inline-flex items-center`,DX[r]),children:i}):i}function AX(e,t,n){let r=n?{...t.context,row:n}:t.context;return t.render(e,r)}function jX(e){let t=e?.metrics;if(!t)return[];if(Array.isArray(t))return t;if(typeof t==`object`&&t&&`toArray`in t){let e=t;if(typeof e.toArray==`function`)return e.toArray()}return[]}function MX(e,t){return e?.metrics?NX(e,t):(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[PX(t),FX(e)]})}function NX(e,t){let n=jX(e);return n.length===0?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[PX(t),(0,G.jsx)(`span`,{className:`text-muted-foreground opacity-40`,children:`—`})]}):(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1 items-center`,children:[PX(t),n.map((e,t)=>(0,G.jsx)(yX,{metric:e},t))]})}function PX(e){return e<=0?null:(0,G.jsx)(`div`,{className:`flex-shrink-0 mr-1 border-l-2 border-muted h-4`,style:{width:`${e*1.25}rem`,marginLeft:`2px`}})}function FX(e){if(e==null)return``;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);let t=jX(e);if(t.length>0){let e=t[0];if(e?.image)return e.image;if(e?.value!==void 0)return String(e.value)}return String(e)}function IX(e){if(e==null)return;if(typeof e==`number`)return e;if(typeof e==`string`){let t=parseFloat(e);if(!Number.isNaN(t))return t}let t=jX(e);if(t.length>0&&typeof t[0]?.value==`number`)return t[0].value}var LX=e=>e;function RX(e){let t=e?.metrics;if(!t)return[];if(Array.isArray(t))return t;if(typeof t==`object`&&t&&`toArray`in t){let e=t;if(typeof e.toArray==`function`)return e.toArray()}return[]}function zX(e){let t=RX(e);if(t.length===0)return;let n=t[0];return typeof n?.value==`number`?n.value:n?.image?n.image:String(n?.value??``)}function BX(e){let t=RX(e);for(let e of t)if(typeof e?.value==`number`)return e.value}function VX(e){return RX(e).map(e=>e.image??String(e.value??``)).join(`, `)}function HX(e){return e==null?``:Array.isArray(e)?e.map(e=>HX(e)).filter(Boolean).join(` — `):typeof e==`string`?e:typeof e==`number`?String(e):VX(e)}function UX(e){switch(e){case J.Duration:case J.Rep:case J.Distance:case J.Rounds:case J.Resistance:case J.Increment:case J.Metric:case J.Volume:case J.Intensity:case J.Load:case J.Work:case J.CurrentRound:case J.Calculated:return!0;default:return!1}}function WX(e){switch(e){case J.Duration:return`s`;case J.Rep:return`reps`;case J.Distance:return`m`;case J.Rounds:return`rounds`;case J.Resistance:return`kg`;case J.Increment:return`Δ`;case J.Calculated:case J.Custom:return``;default:return``}}function GX(e,t){let n=Ao(e),r=vG(e)??void 0,i=t?.graphable??UX(e);return{id:e,label:n,icon:r,source:{type:`metric-type`,metricType:e},format:{type:`custom`,render:e=>NX(e,0)},sort:UX(e)?{type:`numeric`,extractor:e=>BX(e)}:{type:`text`,extractor:e=>{let t=zX(e);return t===void 0?void 0:String(t)}},graph:i?{extractor:e=>BX(e),axisLabel:n,unit:WX(e)}:void 0,filter:{extractor:e=>VX(e),caseInsensitive:!0},meta:{defaultVisible:t?.defaultVisible??!0,debugOnly:t?.debugOnly,tags:[e]}}}function KX(e){switch(e){case`segment`:return`bg-blue-100 text-blue-800 dark:bg-blue-900/50 dark:text-blue-200`;case`milestone`:return`bg-yellow-100 text-yellow-800 dark:bg-yellow-900/50 dark:text-yellow-200`;case`system`:return`bg-gray-100 text-gray-600 dark:bg-gray-800 dark:text-gray-400`;case`event`:return`bg-purple-100 text-purple-800 dark:bg-purple-900/50 dark:text-purple-200`;case`group`:return`bg-indigo-100 text-indigo-800 dark:bg-indigo-900/50 dark:text-indigo-200`;case`load`:return`bg-green-100 text-green-800 dark:bg-green-900/50 dark:text-green-200`;case`compiler`:return`bg-pink-100 text-pink-800 dark:bg-pink-900/50 dark:text-pink-200`;default:return`bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-300`}}function qX(e,t){if(!e||e.length===0)return``;let n=e=>QW(e);if(t===0)return n(e[0].started);let r=n(e[0].started),i=e[e.length-1];if(i.ended===void 0)return r;let a=n(i.ended);return r===a?r:`${r} — ${a}`}function JX(e,t=!0){if(e===void 0||e===0)return``;let n=new Date(e),r=n.getHours().toString().padStart(2,`0`),i=n.getMinutes().toString().padStart(2,`0`),a=n.getSeconds().toString().padStart(2,`0`);return t?`${r}:${i}:${a}.${n.getMilliseconds().toString().padStart(3,`0`)}`:`${r}:${i}:${a}`}function YX({value:e}){let t=e.match(/^(-?)(\d+)(:\d{2})(?::\d{2})?(\.\d+)?$/);if(!t)return(0,G.jsx)(`span`,{className:`font-mono text-xs whitespace-nowrap`,children:e});let[,n,r,i,a,o]=t,s=i.slice(1);return(0,G.jsxs)(`span`,{className:`font-mono text-xs whitespace-nowrap inline-flex items-baseline`,children:[n&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:n}),(0,G.jsx)(`span`,{className:`font-semibold text-foreground`,children:r}),(0,G.jsxs)(`span`,{className:`text-muted-foreground/60`,children:[`:`,s]}),a&&(0,G.jsx)(`span`,{className:`text-muted-foreground/40`,children:a}),o&&(0,G.jsx)(`span`,{className:`text-muted-foreground/30 text-[10px]`,children:o})]})}function XX({elapsed:e,duration:t}){let n=QW(e);return(0,G.jsxs)(`span`,{className:`inline-flex items-baseline gap-0.5`,children:[(0,G.jsx)(YX,{value:n}),t!==void 0&&t>0&&t!==e&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`text-muted-foreground/40 mx-0.5`,children:`/`}),(0,G.jsx)(`span`,{className:`opacity-60`,children:(0,G.jsx)(YX,{value:QW(t)})})]})]})}var ZX={id:`#`,label:`#`,source:{type:`derived`,compute:e=>({index:e.index,outputType:e.outputType,sourceBlockKey:e.sourceBlockKey})},format:{type:`custom`,render:e=>{let{index:t,outputType:n,sourceBlockKey:r}=e??{};return(0,G.jsx)(`span`,{className:K(`font-mono text-[11px] w-8 text-right inline-block`,KX(n)),title:`Type: ${n}\nBlock: ${r}`,children:t})}},sort:{type:`numeric`,extractor:e=>LX(e)?.index||0},meta:{tags:[`layout`],defaultVisible:!0,width:`40px`,resizable:!1}},QX={id:`timestamp`,label:`Timestamp`,source:{type:`fixed-field`,field:`absoluteStartTime`},format:{type:`custom`,render:(e,t)=>{let n=e,r=LX(t)?.hideMs!==!1;return(0,G.jsx)(`span`,{className:`text-muted-foreground font-mono text-[10px] text-center w-24 whitespace-nowrap`,children:JX(n,r)})},context:{hideMs:!1}},sort:{type:`numeric`,extractor:e=>LX(e)?.absoluteStartTime??0},meta:{tags:[`timing`,`layout`],defaultVisible:!0}},$X={id:`spans`,label:`Time`,source:{type:`derived`,compute:e=>({spans:e.spans,duration:e.duration})},format:{type:`custom`,render:e=>{let{spans:t,duration:n}=e??{};return(0,G.jsx)(`span`,{className:`text-muted-foreground font-mono text-[10px] text-center w-40 whitespace-nowrap`,children:qX(t,n)})}},sort:{type:`numeric`,extractor:e=>(LX(e)?.spans)?.[0]?.started??0},meta:{tags:[`timing`,`layout`],defaultVisible:!0}},eZ={id:`timeSpan`,label:`Time`,source:{type:`derived`,compute:e=>({timestamp:e.absoluteStartTime,elapsed:e.elapsed,duration:e.duration})},format:{type:`custom`,render:e=>{let{timestamp:t,elapsed:n,duration:r}=e??{};return n===void 0?(0,G.jsx)(`span`,{className:`text-muted-foreground opacity-40`,children:`—`}):(0,G.jsxs)(`div`,{className:`flex flex-col items-start gap-0 leading-tight`,children:[t!==void 0&&t>0&&(0,G.jsx)(`span`,{className:`text-muted-foreground/50 font-mono text-[10px] whitespace-nowrap`,children:JX(t,!1)}),(0,G.jsx)(XX,{elapsed:n,duration:r})]})}},sort:{type:`numeric`,extractor:e=>LX(e)?.elapsed??0},graph:{extractor:e=>LX(e)?.elapsed,axisLabel:`Elapsed`,unit:`s`},filter:{extractor:e=>{let{timestamp:t,elapsed:n,duration:r}=e??{},i=[];return t!==void 0&&t>0&&i.push(JX(t,!1)),n!==void 0&&i.push(QW(n)),r!==void 0&&r>0&&r!==n&&i.push(QW(r)),i.join(` `)},caseInsensitive:!0},meta:{tags:[`timing`,`compound`],defaultVisible:!0,width:`100px`,subsumes:[`duration`,`elapsedTotal`]}},tZ={id:`blockKey`,label:`Block`,source:{type:`fixed-field`,field:`sourceBlockKey`},format:{type:`text`,className:`truncate max-w-[160px] text-sm`},sort:{type:`text`,extractor:e=>LX(e)?.sourceBlockKey??``},filter:{extractor:e=>LX(e)?.sourceBlockKey??``,caseInsensitive:!0},meta:{tags:[`layout`],defaultVisible:!1}},nZ={id:`outputType`,label:`Type`,source:{type:`fixed-field`,field:`outputType`},format:{type:`custom`,render:e=>{let t=String(e??``);return(0,G.jsx)(`span`,{className:K(`text-xs px-1.5 py-0.5 rounded font-medium`,KX(t)),children:t})}},sort:{type:`text`,extractor:e=>LX(e)?.outputType??``},filter:{extractor:e=>LX(e)?.outputType??``,caseInsensitive:!0},meta:{tags:[`debug`],defaultVisible:!1}},rZ={id:`stackLevel`,label:`Depth`,source:{type:`fixed-field`,field:`stackLevel`},format:{type:`text`,className:`text-muted-foreground font-mono text-xs text-center w-12`},sort:{type:`numeric`,extractor:e=>LX(e)?.stackLevel??0},meta:{tags:[`debug`],defaultVisible:!1,debugOnly:!0}},iZ={id:`elapsedTotal`,label:`Elapsed`,source:{type:`derived`,compute:e=>({elapsed:e.elapsed,total:e.total})},format:{type:`custom`,render:e=>{let{elapsed:t,total:n}=e??{};if(t===void 0||n===void 0)return``;let r=t===n?QW(t):`${QW(t)} / ${QW(n)}`;return(0,G.jsx)(`span`,{className:`text-foreground font-mono text-xs text-right w-32 whitespace-nowrap`,children:r})}},sort:{type:`numeric`,extractor:e=>LX(e)?.elapsed??0},graph:{extractor:e=>LX(e)?.elapsed,axisLabel:`Elapsed`,unit:`s`,color:`#14b8a6`},meta:{tags:[`timing`],defaultVisible:!1}},aZ={id:`completionReason`,label:`Reason`,source:{type:`fixed-field`,field:`completionReason`},format:{type:`text`,className:`text-muted-foreground text-xs truncate max-w-[120px]`},sort:{type:`text`,extractor:e=>LX(e)?.completionReason??``},filter:{extractor:e=>LX(e)?.completionReason??``,caseInsensitive:!0},meta:{tags:[`debug`],defaultVisible:!1,debugOnly:!0}},oZ=GX(J.Effort,{defaultVisible:!1}),sZ=GX(J.Duration,{debugOnly:!0}),cZ=GX(J.Rep),lZ=GX(J.Rounds,{defaultVisible:!1}),uZ=GX(J.Distance),dZ=GX(J.Resistance),fZ=GX(J.Action),pZ=GX(J.Increment),mZ=GX(J.Metric),hZ=GX(J.Calculated),gZ=GX(J.Custom,{defaultVisible:!1}),_Z=GX(J.Group,{defaultVisible:!1}),vZ=GX(J.System,{defaultVisible:!1}),yZ=GX(J.Label,{defaultVisible:!1}),bZ=GX(J.Text),xZ=GX(J.CurrentRound,{defaultVisible:!1}),SZ=GX(J.Volume),CZ=GX(J.Intensity),wZ=GX(J.Load),TZ=GX(J.Work),EZ=GX(J.Diagnostic),DZ=[ZX,eZ,QX,$X,tZ,nZ,rZ,iZ,aZ,{id:`exercise`,label:`Exercise`,icon:vG(J.Effort)??void 0,source:{type:`fallback`,semantics:`first-present`,sources:[{type:`fallback`,semantics:`all-present-combined`,sources:[{type:`metric-type`,metricType:J.Effort},{type:`metric-type`,metricType:J.Text}]},{type:`metric-type`,metricType:J.Text},{type:`metric-type`,metricType:J.Label},{type:`metric-type`,metricType:J.Effort}]},format:{type:`combined`,layout:`vertical`,primaryFormat:{type:`text`,className:`font-medium text-foreground`},secondaryFormat:{type:`text`,className:`text-muted-foreground text-xs`},containerClassName:`items-start`},sort:{type:`text`,extractor:e=>HX(e)},filter:{extractor:e=>HX(e),caseInsensitive:!0},meta:{defaultVisible:!1,tags:[`grouping`,`fallback`,`descriptor`],subsumes:[`effort`,`text`,`label`]}},{id:`descriptor`,label:`Descriptor`,icon:vG(J.Effort)??void 0,source:{type:`fallback`,semantics:`first-present`,sources:[{type:`metric-type`,metricType:J.Effort},{type:`metric-type`,metricType:J.Label},{type:`metric-type`,metricType:J.Rounds},{type:`metric-type`,metricType:J.CurrentRound}]},format:{type:`custom`,render:e=>NX(e,0)},sort:{type:`text`,extractor:e=>HX(e)},filter:{extractor:e=>HX(e),caseInsensitive:!0},meta:{defaultVisible:!0,subsumes:[`effort`,`label`,`rounds`,`current-round`]}},oZ,bZ,yZ,sZ,{id:`pace`,label:`Pace`,icon:`⏱️`,source:{type:`derived`,dependencies:[`distance`,`duration`],compute:(e,t)=>{let n=BX(t.dependencies.get(`distance`)),r=BX(t.dependencies.get(`duration`));if(!(!n||!r))return n/r}},format:{type:`custom`,render:e=>{if(typeof e!=`number`||!Number.isFinite(e)||e<=0)return(0,G.jsx)(`span`,{className:`text-muted-foreground opacity-40`,children:`—`});let t=1e3/e;return(0,G.jsxs)(`span`,{className:`font-mono text-xs whitespace-nowrap`,children:[QW(t),`/km`]})}},sort:{type:`numeric`,extractor:e=>typeof e==`number`?e:void 0},graph:{extractor:e=>typeof e==`number`?e:void 0,axisLabel:`Pace`,unit:`m/s`},filter:{extractor:e=>typeof e!=`number`||!Number.isFinite(e)||e<=0?``:`${QW(1e3/e)}/km`,caseInsensitive:!0},meta:{defaultVisible:!1,tags:[`endurance`,`derived`]}},cZ,lZ,uZ,dZ,fZ,pZ,mZ,hZ,gZ,xZ,SZ,CZ,{id:`loadFocus`,label:`Load`,icon:vG(J.Load)??vG(J.Resistance)??void 0,source:{type:`fallback`,semantics:`first-present`,sources:[{type:`metric-type`,metricType:J.Load},{type:`metric-type`,metricType:J.Resistance}]},format:{type:`custom`,render:e=>NX(e,0)},sort:{type:`numeric`,extractor:e=>BX(e)},graph:{extractor:e=>BX(e),axisLabel:`Load`,unit:`kg`},filter:{extractor:e=>VX(e),caseInsensitive:!0},meta:{defaultVisible:!1,tags:[`strength`,`fallback`]}},wZ,TZ,EZ,_Z,vZ],OZ={outputTypes:[`segment`,`milestone`,`group`,`analytics`]},kZ={definitions:DZ,presets:{default:{label:`Default`,filters:OZ,visibleColumnIds:[`#`,`timeSpan`,`descriptor`,`rep`,`distance`,`resistance`,`action`,`increment`,`metric`,`calculated`,`custom`,`volume`,`intensity`,`load`,`work`,`diagnostic`]},debug:{label:`Debug`,filters:{},visibleColumnIds:`#.timeSpan.timestamp.spans.blockKey.outputType.stackLevel.descriptor.duration.rep.distance.resistance.action.increment.metric.calculated.custom.volume.intensity.load.work.diagnostic.group.system.elapsedTotal.completionReason`.split(`.`)},strength:{label:`Strength`,filters:OZ,visibleColumnIds:[`#`,`timeSpan`,`exercise`,`rep`,`loadFocus`,`volume`,`intensity`,`load`,`work`,`elapsedTotal`]},endurance:{label:`Endurance`,filters:OZ,visibleColumnIds:[`#`,`timeSpan`,`exercise`,`distance`,`duration`,`pace`,`rounds`,`increment`,`work`,`elapsedTotal`]}},defaultPreset:`default`},AZ=class{config;definitionMap;constructor(e){this.config=e,this.definitionMap=new Map(e.definitions.map(e=>[e.id,e]))}getVisibleColumns(e){return this.getOrderedCandidates(e).filter(t=>this.computeVisibility(t.id,e))}getAvailableColumns(e){let t=new Set(this.getVisibleColumns(e).map(e=>e.id));return this.config.definitions.filter(n=>!t.has(n.id)&&this.isColumnAvailable(n,e))}getGraphableColumns(e){return this.getVisibleColumns(e).filter(e=>e.graph!==void 0)}getGraphTaggedColumns(e){let t=e.graphTaggedColumnIds;return!t||t.size===0?[]:this.getVisibleColumns(e).filter(e=>t.has(e.id))}isColumnVisible(e,t){return this.getDefinition(e)?this.computeVisibility(e,t):!1}getDefinition(e){return this.definitionMap.get(e)}getPreset(e){return this.config.presets[e]??this.config.presets[this.config.defaultPreset]}getAllDefinitions(){return this.config.definitions}get definitions(){return this.definitionMap}resolveColumnValue(e,t,n,r){let i=this.getDefinition(t);if(!i)return;let a={allRows:n,rowIndex:r??n.findIndex(t=>t.id===e.id),columnDef:i,dependencies:new Map};return rX(e,i.source,a,this.definitionMap)}getOrderedCandidates(e){let t=this.getPreset(e.activePresetId),n=[],r=new Set,i=e=>{if(r.has(e))return;let t=this.getDefinition(e);t&&(n.push(t),r.add(e))};for(let e of t.visibleColumnIds)i(e);for(let e of this.config.definitions)i(e.id);if(e.addedColumnIds)for(let t of e.addedColumnIds)i(t);return n}computeVisibility(e,t,n){if(t.visibilityOverrides&&e in t.visibilityOverrides)return t.visibilityOverrides[e];if(t.addedColumnIds?.has(e))return!0;let r=this.getDefinition(e);if(!r||r.meta?.debugOnly&&!t.isDebugMode||!n&&this.isColumnSubsumed(e,t))return!1;let i=this.getPreset(t.activePresetId).visibleColumnIds.includes(e),a=this.hasDataInRows(r,t.rows);switch(r.source.type){case`fixed-field`:return i;case`derived`:return i;case`metric-type`:return a;case`fallback`:return i&&a;default:return i}}isColumnSubsumed(e,t){for(let n of this.config.definitions)if(n.meta?.subsumes?.length&&this.getPreset(t.activePresetId).visibleColumnIds.includes(n.id)&&n.meta.subsumes.includes(e))return!0;return!1}isColumnAvailable(e,t){return e.meta?.debugOnly&&!t.isDebugMode?!1:this.getPreset(t.activePresetId).visibleColumnIds.includes(e.id)?!this.computeVisibility(e.id,t):e.source.type===`fixed-field`||e.source.type===`derived`||this.hasDataInRows(e,t.rows)}hasDataInRows(e,t){if(t.length===0)return!1;switch(e.source.type){case`fixed-field`:return!0;case`metric-type`:{let{metricType:n}=e.source;return t.some(e=>e.cells.has(n))}case`derived`:return!0;case`fallback`:{let{sources:n}=e.source;return t.some(e=>n.some(t=>this.sourceHasDataInRow(t,e)))}default:return!0}}sourceHasDataInRow(e,t){switch(e.type){case`fixed-field`:return t[e.field]!==void 0&&t[e.field]!==null;case`metric-type`:return t.cells.has(e.metricType);case`derived`:return!0;case`fallback`:return e.sources.some(e=>this.sourceHasDataInRow(e,t));default:return!1}}};function jZ(e){let{segments:t,userOutputOverrides:n,presetId:r,isDebugMode:i,sortConfigs:a,filterOverrides:o,graphTaggedColumns:s,extraMetricTypes:c,columnVisibilityOverrides:l,addedColumnIds:u}=e,d=(0,W.useMemo)(()=>MZ(t,n),[t,n]),f=(0,W.useMemo)(()=>{let e=[...kZ.definitions],t=new Set(e.map(e=>e.id));for(let n of d)for(let r of n.cells.keys())t.has(r)||(e.push(GX(r)),t.add(r));return new AZ({...kZ,definitions:e})},[d]),p=(0,W.useMemo)(()=>{let e=new Set(u??[]);for(let t of c??[])e.add(t);return e},[u,c]),m=(0,W.useMemo)(()=>({rows:d,activePresetId:r,isDebugMode:i,graphTaggedColumnIds:s,visibilityOverrides:l,addedColumnIds:p}),[d,r,i,s,l,p]),h=(0,W.useMemo)(()=>f.getVisibleColumns(m),[f,m]),g=(0,W.useMemo)(()=>f.getAvailableColumns(m),[f,m]),_=(0,W.useMemo)(()=>({...f.getPreset(r).filters??{},...o}),[r,o,f]);return{rows:(0,W.useMemo)(()=>IZ(FZ(d,_,h,f.definitions),a,h,f.definitions),[d,_,a,h,f]),visibleColumns:h,availableColumns:g,graphTaggedColumnIds:(0,W.useMemo)(()=>Array.from(s??[]),[s])}}function MZ(e,t){return e.map((e,n)=>{let r=new Map;if(e.metrics)for(let t of e.metrics)PZ(r,t);let i=NZ(e),a=i?t.get(i):void 0;if(a)for(let e of a)PZ(r,e);for(let[,e]of r)e.hasUserOverride=e.metrics.some(e=>e.origin===`user`);let o=e.context?.outputType??e.type;return{id:e.id,index:n+1,sourceBlockKey:i??`segment-${e.id}`,sourceStatementId:e.context?.sourceStatementId,outputType:o,stackLevel:e.depth,absoluteStartTime:e.absoluteStartTime,duration:e.duration,elapsed:e.elapsed,total:e.total,spans:e.spans?[...e.spans]:[],completionReason:e.context?.completionReason,cells:r}})}function NZ(e){let t=e.context;return t?.sourceBlockKey?t.sourceBlockKey:e.name}function PZ(e,t){let n=t.type;if(n===J.Sound)return;let r=e.get(n);r?e.set(n,{metrics:r.metrics.clone().add(t),hasUserOverride:r.hasUserOverride}):e.set(n,{metrics:ca.empty(n).add(t),hasUserOverride:!1})}function FZ(e,t,n,r){let i=e;if(t.outputTypes&&t.outputTypes.length>0){let e=new Set(t.outputTypes);i=i.filter(t=>e.has(t.outputType))}if(t.origins&&t.origins.length>0){let e=new Set(t.origins);i=i.filter(t=>{for(let[,n]of t.cells)if(n.metrics.some(t=>t.origin&&e.has(t.origin)))return!0;return!1})}if(t.searchText&&t.searchText.trim().length>0){let a=t.searchText.trim().toLowerCase();i=i.filter(t=>{for(let i of n)if(i.filter&&_X(t,i,{allRows:e,rowIndex:e.indexOf(t),columnDef:i,dependencies:new Map},r).toLowerCase().includes(a))return!0;return!1})}if(t.columnFilters)for(let[a,o]of Object.entries(t.columnFilters)){if(!o||o.trim().length===0)continue;let t=n.find(e=>e.id===a);t&&(i=i.filter(n=>{let i={allRows:e,rowIndex:e.indexOf(n),columnDef:t,dependencies:new Map};return vX(n,t,o,i,r)}))}return i}function IZ(e,t,n,r){if(t.length===0)return e;let i=[...e];return i.sort((i,a)=>{for(let o of t){let t=n.find(e=>e.id===o.columnId);if(!t||!t.sort)continue;let s={allRows:e,rowIndex:e.indexOf(i),columnDef:t,dependencies:new Map},c={allRows:e,rowIndex:e.indexOf(a),columnDef:t,dependencies:new Map},l=hX(mX(i,t,s,r),mX(a,t,c,r));if(l!==0)return o.direction===`asc`?l:-l}return i.index-a.index}),i}function LZ(e,t){return{id:e,label:t.label,filters:t.filters??{},visibleColumns:[...t.visibleColumnIds],isDefault:e===kZ.defaultPreset}}var RZ=Object.fromEntries(Object.entries(kZ.presets).map(([e,t])=>[e,LZ(e,t)])),zZ=RZ.default;RZ.debug,RZ.strength,RZ.endurance;function BZ(e){return RZ[e]??zZ}var VZ=({activePreset:e,onPresetChange:t,searchText:n,onSearchChange:r,showFilters:i,onToggleFilters:a,totalRows:o,visibleRows:s})=>(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 px-3 py-2 border-b border-border bg-muted/10 dark:bg-muted/5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`label`,{className:`text-xs text-muted-foreground font-medium`,children:`View:`}),(0,G.jsx)(`select`,{className:`text-xs rounded border border-border bg-background text-foreground px-1.5 py-1 focus:outline-none focus:ring-1 focus:ring-primary/40`,value:e.id,onChange:e=>t(e.target.value),children:Object.values(RZ).map(e=>(0,G.jsx)(`option`,{value:e.id,children:e.label},e.id))})]}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-border`}),(0,G.jsx)(`div`,{className:`flex items-center flex-1 max-w-md`,children:(0,G.jsxs)(`div`,{className:`flex w-full group`,children:[(0,G.jsx)(`input`,{type:`text`,className:`flex-1 px-2.5 py-1 text-xs rounded-l border border-r-0 border-border bg-background text-foreground placeholder:text-muted-foreground/40 focus:outline-none focus:ring-1 focus:ring-primary/40 focus:z-10`,placeholder:`Filter results…`,value:n,onChange:e=>r(e.target.value)}),(0,G.jsxs)(`button`,{className:`px-2.5 py-1 text-xs rounded-r border border-border bg-muted/30 text-muted-foreground hover:bg-muted/50 hover:text-foreground transition-colors flex items-center gap-1.5 border-l-0`,title:`Filter results`,children:[(0,G.jsx)(`span`,{children:`🔍`}),(0,G.jsx)(`span`,{className:`font-medium`,children:`Search`})]})]})}),(0,G.jsx)(`div`,{className:`w-px h-5 bg-border`}),(0,G.jsx)(`button`,{className:[`text-xs px-2 py-1 rounded border transition-colors`,i?`bg-primary/10 border-primary/30 text-primary`:`bg-muted/30 border-border text-muted-foreground hover:text-foreground`].join(` `),onClick:a,title:i?`Hide column filters`:`Show column filters`,children:`🔽 Filters`}),(0,G.jsx)(`div`,{className:`ml-auto text-xs text-muted-foreground tabular-nums`,children:s===o?`${o} rows`:`${s} / ${o} rows`})]}),HZ={"#":`40px`,exercise:`180px`,text:`160px`,notes:`160px`,completionReason:`160px`,rep:`72px`,rounds:`72px`,"current-round":`72px`,duration:`96px`,distance:`96px`,resistance:`96px`,load:`96px`,volume:`96px`,intensity:`96px`,metric:`96px`,work:`96px`,elapsedTotal:`96px`,action:`96px`,increment:`96px`,timestamp:`96px`,spans:`96px`,blockKey:`180px`,outputType:`96px`,stackLevel:`72px`,elapsed:`96px`},UZ=`48px`;function WZ(e){return e.meta?.width??HZ[e.id]??`96px`}function GZ(){return UZ}var KZ=({columns:e,sortConfigs:t,onSort:n,onToggleGraph:r,showFilters:i,columnFilters:a,onColumnFilterChange:o,availableToAdd:s,onAddColumn:c,graphTaggedColumnIds:l})=>(0,G.jsxs)(`thead`,{className:`bg-muted/50 dark:bg-muted/30 sticky top-0 z-10`,children:[(0,G.jsxs)(`tr`,{className:`border-b border-border`,children:[e.map(e=>(0,G.jsx)(qZ,{column:e,sortConfig:t.find(t=>t.columnId===e.id),onSort:n,onToggleGraph:r,isGraphed:l?.has(e.id)??!1},e.id)),c&&(0,G.jsx)(`th`,{className:`py-2 px-1`,style:{minWidth:GZ()},children:(0,G.jsx)(XZ,{availableToAdd:s??[],onAddColumn:c})})]}),i&&(0,G.jsxs)(`tr`,{className:`border-b border-border/50 bg-muted/20 dark:bg-muted/10`,children:[e.map(e=>(0,G.jsx)(YZ,{column:e,value:a[e.id]??``,onChange:o},e.id)),c&&(0,G.jsx)(`th`,{className:`py-1 px-1`,style:{minWidth:GZ()}})]})]}),qZ=({column:e,sortConfig:t,onSort:n,onToggleGraph:r,isGraphed:i})=>{let a=e.sort!==void 0,o=e.graph!==void 0,s=(0,W.useCallback)(t=>{a&&n(e.id,t.shiftKey)},[e.id,a,n]),c=(0,W.useCallback)(t=>{t.stopPropagation(),r(e.id)},[e.id,r]);return(0,G.jsx)(`th`,{className:[`py-1.5 px-2 text-[11px] font-semibold text-muted-foreground uppercase tracking-wider whitespace-nowrap select-none`,a?`cursor-pointer hover:text-foreground transition-colors`:``].join(` `),style:{minWidth:WZ(e)},onClick:s,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-sm`,children:e.icon}),(0,G.jsx)(`span`,{children:e.label}),t&&(0,G.jsx)(JZ,{direction:t.direction}),o&&(0,G.jsx)(`button`,{className:[`ml-auto text-sm opacity-40 hover:opacity-100 transition-opacity`,i?`opacity-100 text-primary`:``].join(` `),onClick:c,title:i?`Remove from graph`:`Add to graph`,children:`📊`})]})})},JZ=({direction:e})=>(0,G.jsx)(`span`,{className:`text-primary text-[10px] ml-0.5`,children:e===`asc`?`▲`:`▼`}),YZ=({column:e,value:t,onChange:n})=>e.filter?(0,G.jsx)(`th`,{className:`py-1 px-2`,style:{minWidth:WZ(e)},children:(0,G.jsx)(`input`,{type:`text`,className:`w-full px-1.5 py-0.5 text-xs rounded border border-border bg-background text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-1 focus:ring-primary/40`,placeholder:`Filter…`,value:t,onChange:t=>n(e.id,t.target.value)})}):(0,G.jsx)(`th`,{className:`py-1 px-2`,style:{minWidth:WZ(e)}}),XZ=({availableToAdd:e,onAddColumn:t})=>{let[n,r]=(0,W.useState)(!1),i=(0,W.useRef)(null),a=(0,W.useRef)(null);return(0,W.useEffect)(()=>{if(!n)return;let e=e=>{i.current&&!i.current.contains(e.target)&&a.current&&!a.current.contains(e.target)&&r(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[n]),e.length===0?null:(0,G.jsxs)(`div`,{className:`relative flex items-center justify-center`,children:[(0,G.jsx)(`button`,{ref:a,title:`Add metric column`,onClick:e=>{e.stopPropagation(),r(e=>!e)},className:[`flex items-center justify-center w-5 h-5 rounded text-[11px] font-bold transition-all`,`text-muted-foreground hover:text-foreground hover:bg-primary/10 hover:border-primary/40`,`border border-dashed border-muted-foreground/40`,n?`bg-primary/10 border-primary/40 text-foreground`:``].join(` `),children:`+`}),n&&(0,G.jsxs)(`div`,{ref:i,className:`absolute right-0 top-full mt-1 z-50 min-w-[160px] max-h-64 overflow-y-auto
170
170
  bg-popover border border-border rounded-md shadow-xl py-1`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(`div`,{className:`px-3 py-1.5 text-[10px] font-semibold text-muted-foreground uppercase tracking-wider border-b border-border/50 mb-1`,children:`Add metric column`}),e.map(e=>{let n=vG(e)??`•`,i=Ko.columnLabel(e);return(0,G.jsxs)(`button`,{onClick:()=>{t(e),r(!1)},className:`w-full flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-muted text-foreground transition-colors`,children:[(0,G.jsx)(`span`,{className:`text-sm w-4 text-center`,children:n}),(0,G.jsx)(`span`,{children:i})]},e)})]})]})},ZZ=({row:e,allRows:t,rowIndex:n,columns:r,isSelected:i,onSelect:a,isHovered:o,onHover:s,onCellDoubleClick:c})=>{let l=t=>{a(e.id,{ctrlKey:t.ctrlKey||t.metaKey,shiftKey:t.shiftKey})},u=e.outputType===`group`;return(0,G.jsx)(`tr`,{className:K(`border-b border-border transition-colors cursor-pointer`,u?`bg-muted/50 font-bold`:``,i?`bg-accent dark:bg-accent/20`:o?`bg-muted/50 dark:bg-muted/40`:`hover:bg-muted/30 dark:hover:bg-muted/20`),onClick:l,onMouseEnter:()=>s(e.sourceBlockKey),onMouseLeave:()=>s(null),children:r.map(r=>{let i=r.source.type===`metric-type`&&r.source.metricType===J.Effort;return(0,G.jsx)(bX,{columnDef:r,row:e,allRows:t,rowIndex:n,indent:i?e.stackLevel:0,onDoubleClick:c,style:{minWidth:WZ(r)}},r.id)})})};function QZ(e){let{rows:t,columns:n,graphTaggedColumnIds:r,definitionMap:i}=e,a=(0,W.useMemo)(()=>$Z(r,n),[r,n]),o=(0,W.useMemo)(()=>eQ(t,r,n,i),[t,r,n,i]);return{data:o,graphConfigs:a,hasData:a.length>0&&o.length>0}}function $Z(e,t){let n=[];for(let r of e){let e=t.find(e=>e.id===r);e&&n.push({id:r,label:e.label,unit:iQ(e),color:tQ(e),dataKey:r,icon:e.icon})}return n}function eQ(e,t,n,r){return t.length===0?[]:e.map((i,a)=>{let o={index:i.index,label:i.sourceBlockKey};for(let s of t){let t=n.find(e=>e.id===s);if(!t||!t.graph){o[s]=0;continue}o[s]=gX(i,t,{allRows:e,rowIndex:a,columnDef:t,dependencies:new Map},r)??0}return o})}function tQ(e){if(e.graph?.color)return e.graph.color;let t=nQ(e);return t?rQ[t]??`#888888`:`#888888`}function nQ(e){if(e.source.type===`metric-type`)return e.source.metricType}var rQ={[J.Time]:`#3b82f6`,[J.Rep]:`#22c55e`,[J.Effort]:`#eab308`,[J.Distance]:`#14b8a6`,[J.Rounds]:`#a855f7`,[J.Resistance]:`#ef4444`,[J.Increment]:`#6366f1`,[J.Action]:`#ec4899`};function iQ(e){if(e.graph?.unit)return e.graph.unit;let t=nQ(e);if(!t)return``;switch(t){case J.Time:return`ms`;case J.Rep:return`reps`;case J.Distance:return`m`;case J.Rounds:return`rounds`;case J.Resistance:return`kg`;case J.Increment:return`Δ`;default:return``}}var aQ=({rows:e,columns:t,graphTaggedColumnIds:r,selectedIds:i,onSelectRow:a})=>{let[o,s]=(0,W.useState)(!1),{data:c,graphConfigs:l,hasData:u}=QZ({rows:e,columns:t,graphTaggedColumnIds:r,selectedIds:i}),d=(0,W.useCallback)(t=>{if(!t?.activePayload?.[0])return;let n=t.activePayload[0].payload,r=e.find(e=>e.index===n.index);r&&a&&a(r.id)},[e,a]);return r.length===0?null:(0,G.jsxs)(`div`,{className:`border-b border-border bg-background`,children:[(0,G.jsxs)(`button`,{className:`w-full flex items-center justify-between px-3 py-1.5 text-xs font-medium text-muted-foreground hover:text-foreground hover:bg-muted/20 transition-colors`,onClick:()=>s(e=>!e),children:[(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{children:`📊`}),(0,G.jsxs)(`span`,{children:[`Graph — `,l.map(e=>e.label).join(`, `)]})]}),(0,G.jsx)(`span`,{className:`text-[10px]`,children:o?`▼`:`▲`})]}),!o&&(0,G.jsx)(`div`,{className:`px-3 pb-3`,children:u?(0,G.jsx)(`div`,{className:`w-full bg-muted/30 rounded-lg border border-border p-2`,style:{height:220},children:(0,G.jsx)(zn,{width:`100%`,height:`100%`,children:(0,G.jsxs)(et,{data:c,onClick:d,children:[(0,G.jsx)(_n,{strokeDasharray:`3 3`,stroke:`hsl(var(--border))`,vertical:!1}),(0,G.jsx)(n,{dataKey:`index`,stroke:`hsl(var(--muted-foreground))`,tick:{fontSize:10},label:{value:`Row #`,position:`insideBottom`,offset:-5,fill:`hsl(var(--muted-foreground))`,fontSize:10}}),(0,G.jsx)(ye,{stroke:`hsl(var(--muted-foreground))`,tick:{fontSize:10},domain:[`auto`,`auto`]}),(0,G.jsx)(pt,{contentStyle:{backgroundColor:`hsl(var(--popover))`,borderColor:`hsl(var(--border))`,fontSize:`12px`,color:`hsl(var(--popover-foreground))`},labelFormatter:e=>`Row ${e}`,formatter:(e,t)=>{let n=l.find(e=>e.dataKey===t);return[`${typeof e==`number`?e.toLocaleString():e}${n?.unit?` ${n.unit}`:``}`,n?.label??t]}}),(0,G.jsx)(Sn,{verticalAlign:`top`,height:24,wrapperStyle:{fontSize:`11px`}}),l.map(e=>(0,G.jsx)(Wn,{type:`monotone`,dataKey:e.dataKey,name:e.label,stroke:e.color,strokeWidth:2,dot:{r:3,fill:e.color},activeDot:{r:5,stroke:e.color,strokeWidth:2}},e.id))]})})}):(0,G.jsx)(`div`,{className:`h-32 flex items-center justify-center text-sm text-muted-foreground`,children:`No numeric data available for the tagged columns.`})})]})},oQ=({isOpen:e,blockKey:t,metricType:n,existingFragments:r,existingUserValue:i,anchorRect:a,onSave:o,onRemove:s,onClose:c})=>{let[l,u]=(0,W.useState)(``),d=(0,W.useRef)(null),f=(0,W.useRef)(null);(0,W.useEffect)(()=>{e&&(u(i===void 0?``:String(i)),setTimeout(()=>d.current?.focus(),0))},[e,i]),(0,W.useEffect)(()=>{if(!e)return;let t=e=>{e.key===`Escape`&&c()};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[e,c]),(0,W.useEffect)(()=>{if(!e)return;let t=e=>{f.current&&!f.current.contains(e.target)&&c()},n=setTimeout(()=>{document.addEventListener(`mousedown`,t)},100);return()=>{clearTimeout(n),document.removeEventListener(`mousedown`,t)}},[e,c]);let p=(0,W.useCallback)(()=>{if(l.trim()===``)return;let e=Number(l.trim()),r=!isNaN(e)&&l.trim()!==``?e:l.trim();o(t,n,r,String(r)),c()},[l,t,n,o,c]),m=(0,W.useCallback)(()=>{s(t,n),c()},[t,n,s,c]),h=(0,W.useCallback)(e=>{e.key===`Enter`&&(e.preventDefault(),p())},[p]);if(!e)return null;let g=vG(n),_=gG(n),v=i!==void 0,y=r.filter(e=>e.origin!==`user`),b=a?{position:`fixed`,top:a.bottom+4,left:Math.max(8,Math.min(a.left,window.innerWidth-280)),zIndex:50}:{position:`fixed`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,zIndex:50};return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`fixed inset-0 bg-black/20 dark:bg-black/40 z-40`}),(0,G.jsxs)(`div`,{ref:f,className:`w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-lg`,style:b,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 border-b border-border`,children:[g&&(0,G.jsx)(`span`,{className:`text-sm`,children:g}),(0,G.jsx)(`span`,{className:`text-sm font-medium capitalize`,children:n}),(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground ml-auto truncate max-w-[100px]`,title:t,children:t})]}),y.length>0&&(0,G.jsxs)(`div`,{className:`px-3 py-1.5 border-b border-border/50 bg-muted/10`,children:[(0,G.jsx)(`div`,{className:`text-[10px] text-muted-foreground mb-1 uppercase tracking-wider`,children:`Current`}),(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:y.map((e,t)=>(0,G.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded text-xs border ${_}`,children:e.image??String(e.value??e.type)},t))})]}),(0,G.jsxs)(`div`,{className:`px-3 py-2`,children:[(0,G.jsx)(`label`,{className:`text-[10px] text-muted-foreground uppercase tracking-wider mb-1 block`,children:v?`Update override`:`Enter value`}),(0,G.jsx)(`input`,{ref:d,type:`text`,className:`w-full px-2 py-1.5 text-sm rounded border border-border bg-background text-foreground placeholder:text-muted-foreground/50 focus:outline-none focus:ring-2 focus:ring-primary/40`,placeholder:`Enter ${n} value…`,value:l,onChange:e=>u(e.target.value),onKeyDown:h})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 px-3 py-2 border-t border-border/50`,children:[(0,G.jsx)(`button`,{className:`flex-1 px-2 py-1 text-xs rounded border border-border text-muted-foreground hover:text-foreground hover:bg-muted/30 transition-colors`,onClick:c,children:`Cancel`}),v&&(0,G.jsx)(`button`,{className:`px-2 py-1 text-xs rounded border border-destructive/30 text-destructive hover:bg-destructive/10 transition-colors`,onClick:m,title:`Remove user override`,children:`Clear`}),(0,G.jsx)(`button`,{className:`flex-1 px-2 py-1 text-xs rounded bg-primary text-primary-foreground hover:bg-primary/90 transition-colors disabled:opacity-50`,onClick:p,disabled:l.trim()===``,children:`Save`})]})]})]})},sQ=({segments:e,selectedSegmentIds:t,onSelectSegment:n,userOutputOverrides:r=new Map,gridViewPreset:i=`default`,onPresetChange:a,hoveredBlockKey:o,onHoverBlockKey:s})=>{let{isDebugMode:c}=Nb(),[l,u]=(0,W.useState)([]),[d,f]=(0,W.useState)(``),[p,m]=(0,W.useState)({}),[h,g]=(0,W.useState)(!1),[_,v]=(0,W.useState)(new Set),[y,b]=(0,W.useState)({}),[x,S]=(0,W.useState)(new Set),{overrides:C,setOverride:w,removeOverride:T}=Dq(!0),[E,D]=(0,W.useState)({isOpen:!1,blockKey:``,type:`Time`,anchorRect:null,existingFragments:[]}),O=(0,W.useMemo)(()=>{let e=new Map;for(let[t,n]of r)e.set(t,n instanceof ca?n:ca.from(n,t));for(let[t,n]of C)e.set(t,n);return e},[r,C]),k=c?`debug`:i,A=(0,W.useMemo)(()=>BZ(k),[k]),{rows:j,visibleColumns:M,availableColumns:N,graphTaggedColumnIds:P}=jZ({segments:e,userOutputOverrides:O,presetId:k,isDebugMode:c,sortConfigs:l,filterOverrides:(0,W.useMemo)(()=>({searchText:d||void 0,columnFilters:Object.keys(p).length>0?p:void 0}),[d,p]),graphTaggedColumns:_,extraMetricTypes:x,columnVisibilityOverrides:y,addedColumnIds:x}),F=M,I=e.length,L=(0,W.useMemo)(()=>j.map(e=>e.id),[j]),R=(0,W.useCallback)((e,t)=>{u(n=>{let r=n.find(t=>t.columnId===e);return t?r?r.direction===`asc`?n.map(t=>t.columnId===e?{...t,direction:`desc`}:t):n.filter(t=>t.columnId!==e):[...n,{columnId:e,direction:`asc`}]:r?r.direction===`asc`?[{columnId:e,direction:`desc`}]:[]:[{columnId:e,direction:`asc`}]})},[]),z=(0,W.useCallback)(e=>{v(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ee=(0,W.useCallback)((e,t)=>{m(n=>{if(!t){let t={...n};return delete t[e],t}return{...n,[e]:t}})},[]),te=(0,W.useCallback)(e=>{b({}),m({}),f(``),a?.(e)},[a]),ne=(0,W.useCallback)(e=>{S(t=>{let n=new Set(t);return n.add(e),n})},[]),re=(0,W.useMemo)(()=>N.filter(e=>e.source.type===`metric-type`).map(e=>e.source.metricType),[N]),ie=(0,W.useCallback)((e,t)=>{n(e,t,L)},[n,L]),ae=(0,W.useCallback)(e=>{s?.(e)},[s]),oe=(0,W.useCallback)(e=>{n(e,{ctrlKey:!1,shiftKey:!1},L)},[n,L]),se=(0,W.useCallback)((e,t,n)=>{let r=(j.find(t=>t.sourceBlockKey===e)?.cells.get(t))?.metrics.toArray()??[],i=r.find(e=>e.origin===`user`),a=i?.value==null?void 0:String(i.value);D({isOpen:!0,blockKey:e,type:t,anchorRect:n,existingFragments:r,existingUserValue:a})},[j]),B=(0,W.useCallback)((e,t,n,r)=>{w(e,t,n,r),D(e=>({...e,isOpen:!1}))},[w]),ce=(0,W.useCallback)(()=>{T(E.blockKey,E.type),D(e=>({...e,isOpen:!1}))},[E.blockKey,E.type,T]),V=(0,W.useCallback)(()=>{D(e=>({...e,isOpen:!1}))},[]);return(0,G.jsxs)(`div`,{className:`h-full flex flex-col bg-background`,children:[(0,G.jsx)(VZ,{activePreset:A,onPresetChange:te,searchText:d,onSearchChange:f,showFilters:h,onToggleFilters:()=>g(e=>!e),totalRows:I,visibleRows:j.length}),(0,G.jsx)(aQ,{rows:j,columns:M,graphTaggedColumnIds:P,selectedIds:t,onSelectRow:oe}),(0,G.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,G.jsxs)(`table`,{className:`text-left text-sm border-collapse min-w-[700px]`,children:[(0,G.jsx)(KZ,{columns:F,sortConfigs:l,onSort:R,onToggleGraph:z,showFilters:h,columnFilters:p,onColumnFilterChange:ee,availableToAdd:re,onAddColumn:ne,graphTaggedColumnIds:_}),(0,G.jsx)(`tbody`,{className:`divide-y divide-border`,children:j.length===0?(0,G.jsx)(`tr`,{children:(0,G.jsx)(`td`,{colSpan:F.length,className:`py-8 text-center text-muted-foreground text-sm`,children:e.length===0?`Finish or stop the timer — results land here`:`No rows match the current filters.`})}):j.map((e,n)=>(0,G.jsx)(ZZ,{row:e,allRows:j,rowIndex:n,columns:F,isSelected:t.has(e.id),onSelect:ie,isHovered:o===e.sourceBlockKey,onHover:ae,onCellDoubleClick:se},e.id))})]})}),(0,G.jsx)(oQ,{isOpen:E.isOpen,blockKey:E.blockKey,metricType:E.type,existingFragments:E.existingFragments,existingUserValue:E.existingUserValue,anchorRect:E.anchorRect??void 0,onSave:B,onRemove:ce,onClose:V}),(0,G.jsxs)(`div`,{className:`px-3 py-1.5 border-t border-border bg-muted/10 text-xs text-muted-foreground flex items-center justify-between`,children:[(0,G.jsx)(`span`,{children:t.size>0?`${t.size} selected`:`Click a row to select`}),(0,G.jsxs)(`span`,{className:`tabular-nums`,children:[j.length,` / `,I,` rows`]})]})]})};Kt();var cQ=({title:e,onClose:t,children:n,closeButtonClassName:r,floatingClose:i=!1,variant:a=`default`,actions:o,closeLabel:s})=>{(0,W.useEffect)(()=>(document.body.style.overflow=`hidden`,()=>{document.body.style.overflow=``}),[]);let c=W.useRef(null);(0,W.useEffect)(()=>{let e=document.activeElement;return c.current?.focus({preventScroll:!0}),()=>e?.focus({preventScroll:!0})},[]);let l=e=>{if(e.key!==`Tab`||!c.current)return;let t=Array.from(c.current.querySelectorAll(`button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`)).filter(e=>e.offsetParent!==null);if(t.length===0){e.preventDefault();return}let n=document.activeElement,r=t[0],i=t[t.length-1];e.shiftKey&&(n===r||n===c.current||!c.current.contains(n))?(e.preventDefault(),i.focus()):!e.shiftKey&&n===i&&(e.preventDefault(),r.focus())},u=a===`minimal`,d=(0,G.jsx)(`button`,{onClick:t,className:r??`rounded-pill transition-colors shadow-[rgba(0,0,0,0.06)_0px_1px_2px] ${u?`bg-muted hover:bg-muted/80 text-muted-foreground hover:text-foreground`:`bg-muted/50 hover:bg-muted text-muted-foreground hover:text-foreground`} ${s?`flex h-11 min-w-[44px] items-center justify-center px-4 text-sm font-medium hover:text-foreground`:`p-2`}`,title:s??`Close`,"data-testid":lG.FOCUSED_DIALOG_CLOSE,children:s??(0,G.jsx)(_r,{className:`h-5 w-5`})});return IC.createPortal((0,G.jsxs)(`div`,{ref:c,onKeyDown:l,tabIndex:-1,role:`dialog`,"aria-modal":`true`,"aria-label":e??`Workout`,className:`fixed inset-0 z-[100] flex flex-col bg-background text-foreground outline-none animate-in fade-in duration-200`,children:[i||u&&!e?(0,G.jsxs)(`div`,{className:`absolute top-4 right-4 z-[110] flex items-center gap-2`,children:[o,d]}):e?(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-border ${u?`bg-muted/10`:`bg-muted/30`} shrink-0`,children:[(0,G.jsx)(`h2`,{className:`text-lg ${u?`font-black tracking-tight uppercase text-[11px] text-muted-foreground`:`font-semibold`}`,children:e}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[o,d]})]}):null,(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-hidden flex flex-col`,children:n})]}),document.body)},lQ=(0,W.createContext)({updateFromSegments:()=>{},clear:()=>{}}),uQ=({children:e,chromecastSubscription:t=null})=>(0,G.jsx)(lQ.Provider,{value:{updateFromSegments:(e,n,r)=>{t&&t.sendAnalyticsSummary([],n,r)},clear:()=>{}},children:e}),dQ=new class{resolve(e){let t=this.resolveMode(e);return t===`active`?{type:`rpc-workbench-update`,mode:`active`}:t===`review`?Cq(e.analyticsSegments):Tq(e.selectedBlock,e.documentItems)}resolveMode(e){return e.viewMode===`track`?e.runtime&&(e.executionStatus===`running`||e.executionStatus===`paused`)?`active`:e.analyticsSegments.length>0?`review`:e.runtime?`active`:`preview`:e.viewMode===`review`&&e.analyticsSegments.length>0?`review`:`preview`}};function fQ(){if(!(`wakeLock`in navigator))return;let e=navigator.wakeLock;if(!(typeof e!=`object`||!e||!(`request`in e)))return e}function pQ(e){let t=(0,W.useRef)(null);(0,W.useEffect)(()=>{let n=fQ();if(!n||!e)return;let r=!1,i=async()=>{if(document.visibilityState===`visible`)try{let e=await n.request(`screen`);if(r){e.release();return}t.current=e,e.addEventListener(`release`,()=>{t.current===e&&(t.current=null)})}catch{}},a=()=>{document.visibilityState===`visible`&&!t.current&&i()};return i(),document.addEventListener(`visibilitychange`,a),()=>{r=!0,document.removeEventListener(`visibilitychange`,a);let e=t.current;t.current=null,e&&!e.released&&e.release()}},[e])}function mQ(e){if(e instanceof Error)return e.message;if(typeof e==`object`&&e){let{code:t,description:n}=e;if(t!==void 0||n!==void 0)return[t===void 0?null:String(t),n?String(n):null].filter(e=>e!==null).join(`: `)||`unknown`;try{return JSON.stringify(e)}catch{return String(e)}}return String(e)}var hQ=``,gQ=null,_Q=()=>{let e=wK(),[t,n]=(0,W.useState)(e.state),[r,i]=(0,W.useState)(!1);pQ(r);let[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(null),[l,u]=(0,W.useState)(null),d=(0,W.useRef)(null),f=$z,p=(0,W.useRef)(f.getActiveHandle()),m=(0,W.useRef)(!1),h=(0,W.useCallback)(e=>{let t=p.current;p.current=null,t&&f.dispose(e),uM(null),u(null),c(null),i(!1)},[f]),g=(0,W.useCallback)(async e=>{if(!m.current){m.current=!0;try{let t=kV.getState().subscriptionManager,n=f.connect(e,t);p.current=n,u(n),c(n.subscription),i(!0),uM(n.transport),n.eventProvider.onEvent(e=>{if(e.name===`clock-command`){let t=xq(e.data);if(!t){console.warn(`[CastButtonRpc] Dropped malformed clock-command payload`);return}HK(t.runId,t.command)||console.warn(`[CastButtonRpc] Clock command rejected by authority:`,t.command.kind);return}let t=BK(),n=Sq(e.name,t);n&&t&&!HK(t.runId,n)&&console.warn(`[CastButtonRpc] Legacy receiver event rejected by authority:`,e.name)});let r=kV.getState(),a=dQ.resolve({viewMode:r.viewMode,executionStatus:r.execution.status,runtime:r.runtime,analyticsSegments:r.analyticsSegments,selectedBlock:r.selectedBlock,documentItems:r.documentItems});n.pushInitialWorkbench(a)}finally{m.current=!1}}},[f]),_=(0,W.useRef)(!1),v=(0,W.useCallback)(async()=>{if(f.isConnected&&f.getActiveHandle()){let e=f.getActiveHandle();p.current=e,u(e),c(e.subscription),i(!0);return}if(!(p.current||_.current)&&typeof e.resumeSession==`function`){_.current=!0;try{let t=await e.resumeSession();await g(t)}catch(t){console.warn(`[CastButtonRpc] Session resume failed:`,mQ(t)),h(!1),e.endSession()}finally{_.current=!1}}},[e,g,h,f]);(0,W.useEffect)(()=>e.onStateChanged(e=>{n(e),e===`session-active`?(i(!0),v()):e===`ready`||e===`unavailable`?i(!1):e===`session-ended`&&h(!1)}),[e,h,v]),(0,W.useEffect)(()=>{if(f.isConnected&&f.getActiveHandle()){let e=f.getActiveHandle();p.current=e,u(e),c(e.subscription),i(!0)}else e.state===`session-active`&&v()},[e,f]),(0,W.useEffect)(()=>{let e=l?.transport;if(!e)return;let t=()=>{let t=BK(),n=JSON.stringify(t);if(n!==hQ||e!==gQ){hQ=n,gQ=e;try{e.send({type:`rpc-clock-snapshot`,snapshot:t})}catch{}}};return t(),VK(t)},[l]),(0,W.useEffect)(()=>{let e=()=>{f.sendDisposeSignal()};return window.addEventListener(`pagehide`,e),()=>window.removeEventListener(`pagehide`,e)},[f]),(0,W.useEffect)(()=>{let t=d.current;if(!t)return;let n=async()=>{if(y.current===`session-active`){if(b.current)return;o(!0);try{h(!0),e.endSession()}finally{setTimeout(()=>o(!1),2e3)}return}try{let t=await e.startSession();i(!0),await g(t)}catch(e){let t=mQ(e);t===`cancel`||t.includes(`cancel`)?console.log(`[CastButtonRpc] Cast request canceled or gesture expired`):console.error(`[CastButtonRpc] Cast failed:`,t),h(!1)}};return t.addEventListener(`click`,n),()=>t.removeEventListener(`click`,n)},[e,g,h]);let y=(0,W.useRef)(t);y.current=t;let b=(0,W.useRef)(a);b.current=a;let x=t===`unavailable`,S=t===`ready`,C=t===`session-active`,w=t===`connecting`,T=r&&C,E=w,D=E||a,O=S||C;return x?(0,G.jsxs)(q,{variant:`ghost`,size:`icon`,disabled:!0,className:`opacity-20 cursor-not-allowed`,"aria-label":`Cast to TV (unavailable)`,title:`Cast to TV (unavailable)`,children:[(0,G.jsx)(fr,{className:`h-5 w-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Cast to TV (unavailable)`})]}):(0,G.jsx)(hte,{transport:l?.transport??null,children:(0,G.jsx)(uQ,{chromecastSubscription:s,children:(0,G.jsxs)(q,{ref:d,variant:`ghost`,size:`icon`,disabled:D,onClick:()=>{},className:K(`transition-all`,T&&`text-signal-positive ring-2 ring-signal-positive/30`,E&&`animate-pulse text-signal-caution`,!O&&`opacity-50`),"aria-label":T?`Stop casting`:`Cast to TV`,title:T?`Stop casting`:E?`Connecting...`:`Cast to TV`,children:[T?(0,G.jsx)(j,{className:`h-5 w-5`}):(0,G.jsx)(fr,{className:`h-5 w-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:T?`Stop casting`:`Cast to TV`})]})})})};function vQ(){let{isEnabled:e,toggleAudio:t}=_M();return(0,G.jsxs)(q,{variant:`ghost`,size:`icon`,onClick:t,className:`h-9 w-9 text-muted-foreground hover:text-foreground`,title:e?`Mute audio`:`Enable audio`,children:[e?(0,G.jsx)(F,{className:`h-[1.2rem] w-[1.2rem]`}):(0,G.jsx)(Ve,{className:`h-[1.2rem] w-[1.2rem]`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Toggle audio`})]})}var yQ=new Map,bQ=({block:e,noteContent:t,prepareRun:n,view:r,onClose:i,onCompleteWorkout:a,resultId:o,autoStart:s,onRuntimeReady:c,onRunStarted:l,externalStop:u,adoptRuntime:d,parkOnUnmount:f,onPark:p})=>{let[m,h]=(0,W.useState)(n?null:e),[g,_]=(0,W.useState)(null),v=(0,W.useRef)(!1),y=(0,W.useCallback)(async()=>{if(!(!n||v.current)){v.current=!0,_(null);try{h(await n())}catch(e){_(e instanceof Error?e.message:String(e))}finally{v.current=!1}}},[n]);(0,W.useEffect)(()=>{y()},[y]);let[b,x]=(0,W.useState)(null),[S,C]=(0,W.useState)(new Set),{isDebugMode:w}=Nb(),T=(0,W.useRef)(Date.now()),E=(0,W.useRef)(typeof document<`u`?document.title:`Wod.Wiki`),D=(0,W.useRef)(null);(0,W.useEffect)(()=>{let t=e.label||e.id,n=b!==null,r=n?`Wod.Wiki - Workout Complete${t?`: `+t:``}`:`Wod.Wiki - Workout Timer${t?`: `+t:``}`,i=n?`/workout/review`:`/workout/timer`;document.title=r,D.current!==i&&(D.current=i,window.gtag?.(`event`,`page_view`,{page_title:r,page_path:i,page_location:typeof window<`u`?window.location.href:i,engagement_time_msec:yj()}));let a=bj.consent;n?a&&window.gtag?.(`event`,`runtime_dialog_review`,{workout_label:t,block_type:e.blockType}):(bj.record(`runtime:dialog_loaded`,{workout_label:t,block_type:e.blockType}),a&&window.gtag?.(`event`,`runtime_dialog_loaded`,{workout_label:t,block_type:e.blockType}))},[e.id,e.label,e.blockType,b]),(0,W.useEffect)(()=>{let t=E.current,n=T.current,r=e.label||e.id;return()=>{let e=Date.now()-n;e>=1e3&&window.gtag?.(`event`,`runtime_dialog_closed`,{workout_label:r,duration_seconds:Math.round(e/1e3),engagement_time_msec:e}),typeof document<`u`&&(document.title=t)}},[e.id,e.label]);let O=(0,W.useRef)(!1),k=(0,W.useRef)(!1),A=(0,W.useRef)(!1),[j,M]=(0,W.useState)(!1),[N,P]=(0,W.useState)(!1),F=(0,W.useRef)(!1),I=(0,W.useRef)(!1),L=(0,W.useRef)(null),[R,z]=(0,W.useState)(`idle`),[ee,te]=(0,W.useState)(null),[ne,re]=(0,W.useState)(!1),{collectionItems:ie}=eJ(b??[],yQ,null),[ae,oe]=(0,W.useState)(new Set),[se,B]=(0,W.useState)(new Set),[ce,V]=(0,W.useState)(!1),le=(0,W.useMemo)(()=>ie.filter(e=>{let t=Bq(e);return!ae.has(t)&&!se.has(t)}),[ie,ae,se]),ue=b!==null&&!!o&&le.length>0&&!ce,de=(0,W.useCallback)(async(e,t)=>{if(typeof t!=`number`||!Number.isFinite(t))throw Error(`Invalid value`);if(e.kind!==`value`)throw Error(`Unsupported entry`);if(!o)throw Error(`The saved run is unavailable.`);if(await mte({resultId:o,occurrence:{blockKey:e.blockKey,...e.sourceStatementId===void 0?{}:{sourceStatementId:e.sourceStatementId},...e.stackLevel===void 0?{}:{stackLevel:e.stackLevel}},metric:{type:e.metricType,value:t,image:String(t)}})===`not-found`)throw Error(`This result entry could not be found — retry or skip.`);let{segments:n}=Iz(M_(await Z.getEventsByResult(o)).map(e=>BA(new ua(e))));x(n),oe(t=>new Set(t).add(Bq(e)))},[o]),fe=(0,W.useCallback)(e=>{B(t=>new Set(t).add(Bq(e)))},[]),pe=(0,W.useMemo)(()=>b===null||ue?null:{runId:o?`result:${o}`:`review`,phase:`review`,status:`idle`,canNext:!1,canStop:!1,stopRequested:!1,reps:[],selectedOccurrenceId:null,entry:null,error:null,saving:!1},[b,ue,o]),me=async()=>{let e=L.current;if(!e||F.current)return;F.current=!0,I.current=!1,z(`saving`),te(null);let t;try{t=a?.(e.blockId,e.results),await t}catch(e){I.current=!0,te(e instanceof Error?e.message:String(e)),z(`error`),F.current=!1;return}F.current=!1,z(`idle`),re(!0);let{results:n}=e;if(n.logs&&n.logs.length>0)try{let{segments:e}=Iz(n.logs,n.startTime);x(e)}catch{x([])}else n.completed?x([]):A.current&&i()},H=(0,W.useCallback)(()=>{O.current=!0,l?.()},[l]),he=()=>{if(F.current||I.current){A.current=!0;return}if(b!==null||k.current||!O.current){i();return}if(!j&&!u){P(!0);return}A.current=!0,M(!0)},ge=()=>{P(!1),A.current=!0,M(!0)},_e=(0,W.useRef)(he);_e.current=he,TK(pe,(0,W.useCallback)(e=>e.kind===`dismiss`&&(_e.current(),!0),[]),20,{keyboard:!0});let ve=(e,t)=>{k.current||(k.current=!0,L.current={blockId:e,results:t},me())},ye=(e,t,n)=>{C(r=>{let i=new Set(r);if(t?.ctrlKey)i.has(e)?i.delete(e):i.add(e);else if(t?.shiftKey&&n){let t=Array.from(r).pop();if(t!==void 0){let r=n.indexOf(t),a=n.indexOf(e);if(r!==-1&&a!==-1){let e=Math.min(r,a),t=Math.max(r,a);for(let r=e;r<=t;r++)i.add(n[r])}else i.add(e)}else i.add(e)}else i.clear(),i.add(e);return i})},be=R===`idle`?null:(0,G.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-3 border-b border-border bg-muted/20 px-6 py-2 text-sm`,children:[R===`saving`&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`Saving…`}),R===`error`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{role:`alert`,className:`text-destructive`,children:[`Save failed`,ee?` — ${ee}`:``]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>void me(),className:`rounded-pill border border-border px-3 py-1 text-xs font-medium text-foreground transition-colors hover:bg-accent`,children:`Retry save`})]})]});return m?b===null?(0,G.jsx)(cQ,{onClose:he,title:`Workout`,closeLabel:`Exit`,actions:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,onClick:he,title:`Stop Session`,className:`flex h-11 min-w-[44px] items-center justify-center rounded-pill bg-muted/50 px-4 text-sm font-medium text-muted-foreground shadow-[rgba(0,0,0,0.06)_0px_1px_2px] transition-colors hover:bg-muted hover:text-foreground`,children:`Stop`}),(0,G.jsx)(_Q,{}),(0,G.jsx)(vQ,{})]}),children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[be,g?(0,G.jsxs)(`div`,{className:`space-y-2 p-4`,children:[(0,G.jsxs)(`p`,{role:`alert`,children:[`Workout not started. `,g]}),(0,G.jsx)(`button`,{type:`button`,className:`rounded border px-3 py-2 hover:bg-accent focus-visible:ring-2`,onClick:()=>void y(),children:`Retry starting workout`})]}):m?null:(0,G.jsx)(`p`,{role:`status`,"aria-live":`polite`,className:`p-4`,children:`Saving workout before starting…`}),(0,G.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,G.jsx)(wJ,{block:m,noteContent:t,view:r,onClose:he,onComplete:ve,isExpanded:!0,autoStart:s,onRuntimeReady:c,onRunStarted:H,externalStop:u||j,adoptRuntime:d,parkOnUnmount:f,onPark:p})}),N&&(0,G.jsx)(cQ,{title:`Stop workout?`,onClose:()=>P(!1),closeLabel:`Keep going`,actions:void 0,children:(0,G.jsxs)(`div`,{className:`space-y-4 p-6`,children:[(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`The run stops now and your partial results are kept.`}),(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-3`,children:[(0,G.jsx)(`button`,{type:`button`,"data-testid":`stop-cancel`,onClick:()=>P(!1),className:`rounded-lg border border-border px-4 py-2 text-sm font-medium text-foreground transition-colors hover:bg-accent`,children:`Keep going`}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`stop-confirm`,onClick:ge,className:`rounded-lg bg-destructive px-4 py-2 text-sm font-bold text-destructive-foreground transition-colors hover:brightness-110`,children:`Stop — keep partial results`})]})]})})]})}):(0,G.jsx)(cQ,{title:`Workout Complete`,onClose:he,actions:(0,G.jsxs)(G.Fragment,{children:[ne&&(0,G.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:`Saved ✓`}),(0,G.jsx)(_Q,{}),(0,G.jsx)(vQ,{})]}),children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[be,(0,G.jsx)(`div`,{className:`min-h-0 flex-1`,children:ue?(0,G.jsx)(aJ,{mode:`post-run`,items:le,onSave:de,onSkip:fe,onClose:()=>V(!0),runId:o?`result:${o}`:void 0,className:`mx-auto max-w-md`}):(0,G.jsx)(sQ,{runtime:null,segments:b,selectedSegmentIds:S,onSelectSegment:ye,groups:[],gridViewPreset:w?`debug`:`default`})})]})}):(0,G.jsx)(cQ,{title:`Starting workout`,onClose:i,children:g?(0,G.jsxs)(`div`,{className:`space-y-3 p-6`,children:[(0,G.jsxs)(`p`,{role:`alert`,children:[`Workout not started. `,g,` Your draft is kept.`]}),(0,G.jsx)(`button`,{type:`button`,className:`rounded border px-3 py-2 focus-visible:ring-2`,onClick:()=>void y(),children:`Retry start`})]}):(0,G.jsx)(`p`,{role:`status`,className:`p-6`,children:`Saving workout before starting…`})})},xQ={play:!0,"add-to-today":!0,schedule:!0},SQ=`log`;function CQ(e,t){return e.filter(e=>e.id===SQ?t===`log`:!xQ[e.id]||t===`run`)}function wQ(e,t){let n=t.contentFrom!==void 0&&t.contentTo!==void 0?e.state.doc.sliceString(t.contentFrom,t.contentTo):``,r=t.type===`time`||t.type===`log`?t.type:`time`;return{id:t.id,contentId:t.contentId,dialect:r,sport:t.sport,startLine:t.startLine-1,endLine:t.endLine-1,content:n,state:`idle`,version:1,createdAt:Date.now(),widgetIds:{}}}function TQ(e){return function({className:t}){return W.isValidElement(e)?W.cloneElement(e,{className:K(e.props.className,t)}):(0,G.jsx)(`span`,{className:K(`flex items-center`,t),children:e})}}var EQ=({cmd:e,block:t})=>{let[n,r]=(0,W.useState)(!1),[i,a]=(0,W.useState)(!1),o=(0,W.useCallback)(async()=>{!e.onSplitClick||n||(await e.onSplitClick(t),r(!0),setTimeout(()=>r(!1),1500))},[e,t,n]),s=(0,W.useCallback)(async()=>{i||(await e.onClick(t),e.successIcon&&(a(!0),setTimeout(()=>a(!1),1500)))},[e,t,i]),c=(0,W.useMemo)(()=>TQ(i?e.successIcon??e.icon:e.icon),[e.icon,e.successIcon,i]),l=(0,W.useMemo)(()=>TQ(n?e.splitSuccessIcon??e.splitIcon:e.splitIcon),[n,e.splitIcon,e.splitSuccessIcon]),u=(0,W.useMemo)(()=>({id:e.id,label:e.label,icon:c,action:{type:`call`,handler:()=>s()}}),[e.id,e.label,c,s]),d=(0,W.useMemo)(()=>({id:`${e.id}-split`,label:`Copy link`,icon:l,action:{type:`call`,handler:o}}),[e.id,l,o]),f=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]);if(!e.onSplitClick){let t=i?e.successIcon??e.icon:e.icon;return(0,G.jsxs)(q,{variant:e.primary?`default`:`secondary`,className:K(e.iconOnly?`h-11 w-11 rounded-full p-0 sm:h-auto sm:min-h-[44px] sm:min-w-[44px] sm:w-auto sm:rounded-sm sm:px-1.5 sm:py-0.5 text-[10px] font-medium shadow-sm`:`h-11 w-11 rounded-full p-0 text-[10px] font-medium shadow-sm gap-0 sm:h-auto sm:min-h-[44px] sm:w-auto sm:gap-1 sm:rounded-sm sm:px-2 sm:py-0.5`,!e.primary&&`border border-border/50`,i&&`text-emerald-600 bg-emerald-500/15 dark:text-emerald-400 dark:bg-emerald-500/20 border-emerald-500/30`),title:e.label,"aria-label":e.label,"data-testid":e.id===`run`?lG.EDITOR_START_WORKOUT:void 0,onClick:e=>{f(e),s()},onMouseDown:f,onPointerDown:f,children:[(0,G.jsx)(`span`,{className:`flex items-center justify-center size-4 sm:size-3`,children:t}),!e.iconOnly&&(0,G.jsx)(`span`,{className:`sr-only sm:not-sr-only sm:inline`,children:e.label})]})}return(0,G.jsx)(`div`,{onClick:f,onMouseDown:f,onPointerDown:f,children:(0,G.jsx)(HY,{primary:u,secondary:d,size:`xs`,variant:e.primary?`primary`:`default`,className:`rounded-full sm:rounded-sm`,labelClassName:`sr-only sm:not-sr-only sm:inline`})})},DQ=({view:e,commands:t})=>{let[n,r]=(0,W.useState)(()=>e?.plugin(ZT)?.rects??[]),[i,a]=(0,W.useState)(0);(0,W.useEffect)(()=>{if(!e)return;let t=e.plugin(ZT);t&&(r([...t.rects]),t.addListener(e=>r([...e])))},[e]),(0,W.useEffect)(()=>{if(!e)return;let t=e.scrollDOM,n=null,r=()=>{n===null&&(n=requestAnimationFrame(()=>{n=null,a(t.scrollTop)}))};return t.addEventListener(`scroll`,r,{passive:!0}),a(t.scrollTop),()=>{n!==null&&cancelAnimationFrame(n),t.removeEventListener(`scroll`,r)}},[e]);let o=e?e.plugin(ZT):null,s=(n.length>0?n:o?.rects??[]).filter(e=>e.type===`time`||e.type===`log`);if(s.length===0)return null;let{sections:c}=e.state.field(TT),l=new Map(c.map(e=>[e.id,e]));return(0,G.jsx)(G.Fragment,{children:s.map(n=>{let r=l.get(n.sectionId);if(!r)return null;let a=wQ(e,r),o=CQ(t,xa(r.type));return o.length===0?null:(0,G.jsx)(`div`,{className:`absolute right-1 z-10 flex items-end gap-1 pointer-events-auto`,style:{top:n.top-i,height:n.firstLineHeight},children:o.map(e=>(0,G.jsx)(EQ,{cmd:e,block:a},e.id))},n.sectionId)})})},OQ=({sections:e,isRuntimeActive:t,editorState:n,onSelectBlock:r})=>{let i=mM(),a=(0,W.useRef)(``);return(0,W.useEffect)(()=>{if(!i?.connected||t||!n)return;let r=e.filter(e=>e.type===`time`).map(e=>{let t=e.contentFrom!==void 0&&e.contentTo!==void 0?n.doc.sliceString(e.contentFrom,e.contentTo):``,r=t.split(`
171
171
  `).filter(e=>e.trim().length>0),i=r.slice(0,3).join(`
172
- `),a=t.match(/^(\d{1,2}:\d{2}(?::\d{2})?)/m)?.[1],o=r[0]?.substring(0,60)||`Workout`,s=e.type===`time`||e.type===`log`?e.type:`time`;return{id:e.id,title:o,statementCount:r.length,contentPreview:i,timerHint:a,dialect:s}}),o={type:`rpc-workbench-update`,mode:r.length>0?`preview`:`idle`,previewData:r.length>0?{title:r[0].title,blocks:r}:void 0},s=JSON.stringify(o);if(s!==a.current){a.current=s;try{i.send(o)}catch{}}},[i,e,t,n]),(0,W.useEffect)(()=>{i?.connected||(a.current=``)},[i]),(0,W.useEffect)(()=>{t||(a.current=``)},[t]),(0,W.useEffect)(()=>{if(!(!i?.connected||!r||!n))return i.onMessage(t=>{if(t.type!==`rpc-event`||t.name!==`select-block`)return;let{index:i,blockId:a}=t.data??{},o=e.filter(e=>e.type===`time`),s=a?o.find(e=>e.id===a):o[i??0];if(!s||!n)return;let c=s.contentFrom!==void 0&&s.contentTo!==void 0?n.doc.sliceString(s.contentFrom,s.contentTo):``;r({id:s.id,dialect:s.type===`time`||s.type===`log`?s.type:`time`,sport:s.sport,startLine:s.startLine-1,endLine:s.endLine-1,content:c,state:`idle`,version:1,createdAt:Date.now(),widgetIds:{}})})},[i,e,n,r,t]),null},kQ={[J.Duration]:{label:`Timer`,icon:`⏱`,textClass:`text-metric-time`,bgClass:`bg-metric-time/10`,borderClass:`border-metric-time/30`},[J.Rep]:{label:`Reps`,icon:`✕`,textClass:`text-metric-rep`,bgClass:`bg-metric-rep/10`,borderClass:`border-metric-rep/30`},[J.Effort]:{label:`Exercise`,icon:`🏋`,textClass:`text-metric-effort`,bgClass:`bg-metric-effort/10`,borderClass:`border-metric-effort/30`},[J.Rounds]:{label:`Rounds`,icon:`↻`,textClass:`text-metric-rounds`,bgClass:`bg-metric-rounds/10`,borderClass:`border-metric-rounds/30`},[J.Distance]:{label:`Distance`,icon:`📏`,textClass:`text-metric-distance`,bgClass:`bg-metric-distance/10`,borderClass:`border-metric-distance/30`},[J.Resistance]:{label:`Weight`,icon:`⚖`,textClass:`text-metric-resistance`,bgClass:`bg-metric-resistance/10`,borderClass:`border-metric-resistance/30`},[J.Equipment]:{label:`Equipment`,icon:`🧰`,textClass:`text-metric-equipment`,bgClass:`bg-metric-equipment/10`,borderClass:`border-metric-equipment/30`},[J.Action]:{label:`Action`,icon:`⚡`,textClass:`text-metric-action`,bgClass:`bg-metric-action/10`,borderClass:`border-metric-action/30`},[J.Label]:{label:`Label`,icon:`🏷`,textClass:`text-muted-foreground`,bgClass:`bg-muted/30`,borderClass:`border-border/40`}},AQ={[J.Rep]:`reps`,[J.Effort]:`movement`,[J.Resistance]:`weight`},jQ=({metric:e,tooltip:t,isFocused:n,onClick:r})=>{let i=kQ[e.type],a=e.type===J.Hint,o=e.name??e.image??(e.value===void 0?``:String(e.value)),s=i?.label??String(e.type);return(0,G.jsxs)(`span`,{title:t,onClick:r,className:K(`inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full border text-[10px] leading-none font-medium whitespace-nowrap`,`pointer-events-auto transition-opacity hover:opacity-80`,i?.bgClass??`bg-muted/30`,i?.textClass??`text-muted-foreground`,i?.borderClass??`border-border/40`,r&&`cursor-pointer`,n&&`font-bold shadow-xs`),children:[(0,G.jsx)(`span`,{children:a?e.icon:i?.icon??`•`}),!a&&(0,G.jsx)(`span`,{className:`sr-only`,children:s}),!a&&(0,G.jsx)(`span`,{className:`font-semibold`,children:o||s})]})};function MQ(e){let t=oa(e.metadata);return{refs:t?.refs??[],diagnostics:t?.diagnostics??[]}}function NQ(e,t){try{let n=e.coordsAtPos(t.lineFrom);if(!n)return null;let r=typeof t.lineTo==`number`?e.coordsAtPos(t.lineTo)??n:n,i=e.dom?.getBoundingClientRect?.()??{top:0,left:0,width:600},a=e.contentDOM?.getBoundingClientRect?.()??{left:0,width:600},o=Math.max(0,a.left-i.left),s=o+Math.max(240,a.width),c=r.left-i.left+12,l=s-c;if(l>=180){let e=typeof r.top==`number`?r.top:r.bottom-20;return{top:Math.max(0,e-i.top-1),left:c,maxWidth:l-4,belowLine:!1}}return{top:r.bottom-i.top+3,left:o,maxWidth:Math.max(220,a.width),belowLine:!0}}catch{return null}}var PQ=({view:e,cursorVersion:t,getCursorFocusState:n})=>{let[r,i]=(0,W.useState)(null),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(null),l=(0,W.useRef)(null),u=(0,W.useCallback)(()=>{if(!e){o(null),i(null);return}let t=(n??bY)(e.state);o(t),i(t?NQ(e,t):null)},[e,n]);(0,W.useEffect)(()=>{u()},[u,t]),(0,W.useEffect)(()=>{if(!e)return;let t=()=>u();return window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t,!0),()=>{window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t,!0)}},[e,u]);let d=e?.state&&typeof e.state.field==`function`?Ir(e.state)===`active`:!1;if(!r||!a?.section||d)return null;let f=a.allStatements?.filter(e=>e.meta?.line===a.cursorLine-a.section.startLine)??(a.statement?[a.statement]:[]),p=f.flatMap(e=>e.metrics.toArray()).filter(e=>{if(e.type===J.Sound||e.type===J.System||e.type===J.Hint&&!e.icon||e.type===J.Custom&&typeof e.value==`string`&&/^#[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(e.value.trim()))return!1;if(e.type===J.Effort||e.type===J.Equipment){let t=MQ(e);if(t.refs.length>0||t.diagnostics.length>0)return!1}return!0}),m=LG(p,`runtime-badge`),h=f.flatMap(e=>e.metrics.toArray()),g=[],_=[],v=[];for(let e of h){let t=MQ(e);for(let e of t.refs){let t=`${e.kind}:${e.slug}`;g.includes(t)||(g.push(t),_.push(e))}v.push(...t.diagnostics)}let y=[],b=[];for(let e of h){let t=ma(e.metadata);if(t){y.some(e=>e.slug===t.slug)||y.push(t);continue}if(e.type===J.Custom&&typeof e.value==`string`&&/^#[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(e.value.trim())){let t=e.value.trim().slice(1);b.includes(t)||b.push(t)}}let x=typeof e?.state?.facet==`function`?e.state.facet(uE)?.()??null:null,S=typeof e?.state?.doc?.sliceString==`function`?cY(e.state.doc.sliceString(a.lineFrom,a.lineTo)):null,C=e=>e.reason===`conflict`||e.reason.endsWith(`equipment`)||e.reason===`invalid-explicit`&&e.token&&S?.equipment.includes(e.token)?`equipment`:`effort`,w=e=>typeof e==`string`&&e.trim()?e:null,T=async t=>{if(!e)return;let n=e.state.doc.sliceString(a.lineFrom,a.lineTo),r=DU.getState();if(t===`effort`){let t=await r.open({placeholder:`Change effort…`,sources:[tY(`effort`)]});if(t.dismissed)return;let i=w(t.item.payload);if(!i)return;e.dispatch({changes:{from:a.lineFrom,to:a.lineTo,insert:lY(n,{effort:i})}});return}let i=[...S?.equipment??[]];for(;;){let e=await r.open({placeholder:i.length>0?`Add equipment (Esc to finish)…`:`Set equipment…`,sources:[tY(`equipment`)]});if(e.dismissed)break;let t=w(e.item.payload);t&&!i.includes(t)&&i.push(t)}((S?.jsonFrom??-1)>=0||i.length>0)&&e.dispatch({changes:{from:a.lineFrom,to:a.lineTo,insert:lY(n,{equipment:i})}})},E=async()=>{if(!e)return;let t=e.state.doc.sliceString(a.lineFrom,a.lineTo),n=DU.getState(),r,i=await n.open({placeholder:`Add effort (Esc to skip)…`,sources:[tY(`effort`)]});i.dismissed||(r=w(i.item.payload)??void 0);let o=[];for(;;){let e=await n.open({placeholder:`Add equipment (Esc to finish)…`,sources:[tY(`equipment`)]});if(e.dismissed)break;let t=w(e.item.payload);t&&!o.includes(t)&&o.push(t)}!r&&o.length===0||e.dispatch({changes:{from:a.lineFrom,to:a.lineTo,insert:lY(t,{effort:r,equipment:o})}})},D=()=>{e&&typeof e.dispatch==`function`&&e.dispatch({effects:[fY.of(null)]}),u()},O=async t=>{if(!e||!t.token)return;let n=C(t),r=await DU.getState().open({placeholder:`Replace “${t.token}”…`,sources:[tY(n,t.candidates)]});if(r.dismissed)return;let i=w(r.item.payload);if(!i)return;let o=e.state.doc.sliceString(a.lineFrom,a.lineTo).indexOf(t.token);o<0||e.dispatch({changes:{from:a.lineFrom+o,to:a.lineFrom+o+t.token.length,insert:i}})},k=async(e,t)=>{t.trim()&&(e===`effort`?await rY(t):await aY(t),D())},A=async e=>{if(!e.trim())return;let t=await DU.getState().open({placeholder:`Link “${e}” as alias to effort…`,sources:[tY(`effort`)]});if(t.dismissed)return;let n=w(t.item.payload);n&&(await iY(n,e),D())},j=async e=>{e.trim()&&(await oY(e),D())},M=t=>{let n=AQ[t.type];if(!n||!e)return;let r=t.type===J.Effort?`effort`:t.type===J.Equipment?`equipment`:null;if(r&&S?.jsonFrom!==void 0&&S.jsonFrom>=0){T(r);return}at(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-D5c1zwcv.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([3,1,0,2])).then(({runStatementBuilderFlow:t})=>{t(a,e,n)})};return(0,G.jsx)(`div`,{ref:l,className:K(`cm-metric-inline-panel`,`absolute z-40 pointer-events-auto`,`inline-flex items-center gap-1 px-1.5 py-0.5 min-h-[22px]`,r.belowLine?`bg-popover/95 backdrop-blur-md border border-border/70 rounded-md shadow-sm`:`bg-transparent`,`transition-opacity duration-100 max-w-full`),style:{top:r.top,left:r.left,maxWidth:r.maxWidth},"aria-live":`polite`,"aria-label":`Metric inline panel`,children:p.length>0||_.length>0||y.length>0||v.length>0||b.length>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[p.map((e,t)=>(0,G.jsx)(jQ,{metric:e,tooltip:e.type===J.Hint?String(e.value??``):m[t]?.tooltip,isFocused:a.focusedMetric===e,onClick:AQ[e.type]?()=>M(e):void 0},`${e.type}-${t}`)),_.map(e=>{let t=e.kind===`effort`&&a.focusedMetric?.type===J.Effort||e.kind===`equipment`&&a.focusedMetric?.type===J.Equipment;return(0,G.jsxs)(`span`,{title:`${e.kind===`effort`?`Effort`:`Equipment`}: ${e.label} (${e.slug})${e.matchedAlias?` · matched alias "${e.matchedAlias}"`:``} · click to change`,onClick:()=>void T(e.kind),className:K(`pointer-events-auto inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full border text-[10px] leading-none font-medium cursor-pointer hover:opacity-80 whitespace-nowrap`,e.kind===`effort`?`bg-metric-effort/10 text-metric-effort border-metric-effort/30`:`bg-metric-equipment/10 text-metric-equipment border-metric-equipment/30`,t&&`font-bold shadow-xs`),children:[(0,G.jsx)(`span`,{children:e.kind===`effort`?`🏋`:`🧰`}),(0,G.jsx)(`span`,{className:`sr-only`,children:e.kind===`effort`?`Exercise`:`Equipment`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:e.label}),x&&(0,G.jsx)(`a`,{href:x.openHref(e.kind,e.slug),title:`Open ${e.label} page`,"aria-label":`Open ${e.label} page`,className:`opacity-70 hover:opacity-100 ml-0.5`,onClick:e=>e.stopPropagation(),children:`↗`})]},`${e.kind}:${e.slug}`)}),y.map(e=>(0,G.jsxs)(`span`,{title:e.soundProfileId?`Tag ${e.label} · names the ${e.soundProfileId} sound profile`:`Tag ${e.label}`,className:`pointer-events-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full border text-[10px] leading-none font-medium bg-primary/10 text-primary border-primary/30 whitespace-nowrap`,children:[(0,G.jsx)(`span`,{children:`#`}),(0,G.jsx)(`span`,{className:`font-semibold font-mono`,children:e.label}),x&&(0,G.jsx)(`a`,{href:x.openHref(`tag`,e.slug),title:`Open the ${e.label} tag`,"aria-label":`Open the ${e.label} tag`,className:`opacity-70 hover:opacity-100 ml-0.5`,onClick:e=>e.stopPropagation(),children:`↗`})]},`tag:${e.slug}`)),S?.malformed&&(0,G.jsxs)(`span`,{"data-testid":`editor-ref-unknown`,title:`Reference JSON on this line does not parse — fix it in the raw text.`,className:`pointer-events-auto inline-flex items-center gap-1.5 px-2 py-0.5 rounded border text-[11px] font-medium bg-destructive/10 text-destructive border-destructive/30`,children:[(0,G.jsx)(`span`,{children:`⚠`}),(0,G.jsx)(`span`,{children:`Malformed reference JSON`})]}),b.map(e=>(0,G.jsxs)(`span`,{"data-testid":`editor-tag-unknown`,title:`Unknown tag #${e} — click to create`,className:`pointer-events-auto inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full border border-dashed text-[10px] leading-none font-medium bg-warning/10 text-warning border-warning/40 whitespace-nowrap`,children:[(0,G.jsxs)(`span`,{className:`font-mono font-semibold`,children:[`#`,e]}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-create-tag-inline`,className:`underline cursor-pointer hover:text-foreground font-semibold ml-0.5`,onClick:()=>void j(e),children:`+ Tag`})]},`unresolved-tag:${e}`)),v.map((e,t)=>{let n=C(e),r=e.token?.trim()??``,i=e.reason===`unknown-effort`,a=`${e.reason}-${r||t}`,o=s===a||s===`all`;return(0,G.jsxs)(`span`,{"data-testid":`editor-ref-unknown`,title:e.message,onClick:()=>{o||c(a)},className:K(`pointer-events-auto inline-flex flex-wrap items-center gap-1.5 px-1.5 py-0.5 rounded-xl border border-dashed text-[10px] leading-tight font-medium bg-warning/10 text-warning border-warning/40 max-w-full`,!o&&`rounded-full whitespace-nowrap cursor-pointer hover:bg-warning/15`),children:[(0,G.jsx)(`span`,{children:`?`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:e.token??e.reason}),o?(0,G.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-1.5 pl-1 border-l border-warning/30`,children:[r&&(0,G.jsxs)(`button`,{type:`button`,"data-testid":`editor-create-${n}-inline`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),k(n,r)},children:[`+ `,n===`effort`?`Effort`:`Equipment`]}),r&&i&&(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-link-alias-inline`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),A(r)},children:`+ Alias`}),r&&i&&(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-create-equipment-from-token`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),k(`equipment`,r)},children:`+ Equipment`}),(0,G.jsx)(`button`,{type:`button`,className:`underline cursor-pointer hover:text-foreground`,onClick:t=>{t.stopPropagation(),O(e)},children:`Select existing`}),x&&(0,G.jsx)(`a`,{href:x.createHref(n),className:`underline hover:text-foreground`,onClick:e=>e.stopPropagation(),children:`Create page`})]}):(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-define-token`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),c(a)},children:`Define ▾`})]},a)}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-add-metric-line`,title:`Add effort/equipment reference to this line`,onClick:()=>void E(),className:`pointer-events-auto inline-flex items-center px-1.5 py-0.5 rounded-full border border-dashed border-border/60 text-[10px] leading-none text-muted-foreground hover:text-foreground hover:border-primary/50 cursor-pointer whitespace-nowrap`,children:`+ Metric`})]}):(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground/60 italic select-none`,children:`No metrics on this line`})})},FQ=new ai,IQ=new ai,LQ=new ai;async function RQ(e){let t=new TextEncoder().encode(e);if(typeof CompressionStream<`u`)try{let e=new CompressionStream(`gzip`),n=e.writable.getWriter(),r=e.readable.getReader();n.write(t),n.close();let i=[];for(;;){let{done:e,value:t}=await r.read();if(e)break;i.push(t)}let a=i.reduce((e,t)=>e+t.length,0),o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.length;return btoa(String.fromCharCode(...o)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}catch{}return btoa(String.fromCharCode(...t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}async function zQ(e){let t=await RQ(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`);return`${window.location.origin}/load?zip=${t}`}async function BQ(e){let t=await RQ(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`),n=`shared by ${Nx()}`;return`${window.location.origin}/?z=${t}&by=${encodeURIComponent(n)}`}var VQ=({noteId:e,noteBlocks:t,sourceRevision:n=0,onIdentityChange:r,onSaved:i,beforeRun:a,onSaveRequest:o,onCommitChange:s,value:c,onChange:l,onDocUpdate:u,onCursorPositionChange:d,onBlur:f,theme:p=`vs`,readonly:m=!1,className:h=``,ariaLabel:g=`Note editor`,onStartWorkout:_,onCompleteWorkout:v,onBlocksChange:y,onAddToPlan:b,notePersistence:x,onViewCreated:S,mode:C=`edit`,lineWrapping:w=!0,showLineNumbers:T=!0,enablePreview:E=!0,showFrontmatter:D=!0,enableLinting:O=!0,enableOverlay:k=!1,commands:A,hideDefaultCommands:j=!1,enableInlineRuntime:M=!0,extensions:N,widgetComponents:P,activeSectionId:F,scrollToSectionId:I,results:L,placeholder:R})=>{let z=(0,W.useRef)(null),ee=(0,W.useRef)(null),te=(0,W.useRef)(null),ne=(0,W.useRef)(``),re=p===`dark`||p===`vs-dark`,{isDebugMode:ie}=Nb(),ae=uY(te,x),[oe,se]=(0,W.useState)(null),[B,ce]=(0,W.useState)([]),[V,le]=(0,W.useState)(1),[ue,de]=(0,W.useState)(0),fe=F??oe,pe=jY(B,fe),[me,H]=(0,W.useState)(null),[he,ge]=(0,W.useState)(null),[_e,ve]=(0,W.useState)(null),[ye,be]=(0,W.useState)(!1),xe=(0,W.useRef)(null),Se=(0,W.useRef)(!1),Ce=(0,W.useRef)(n??0);(0,W.useEffect)(()=>{Ce.current=n??0},[n]);let[we,Te]=(0,W.useState)(null),Ee=(0,W.useRef)(null),De=(0,W.useCallback)(async(t,n=!1)=>{let r=ee.current;if(!(!r||Se.current)){Se.current=!0,Te(null);try{let o=await a?.();typeof o==`number`&&(Ce.current=o);let s=r.state.field(TT),c=await Hj({noteId:e??$t(),rawContent:s.rawContent,blocks:s.noteBlocks,expectedSourceRevision:Ce.current,...e?{}:{metadata:{title:`Playground workout`},noteType:`playground`}},t,$t(),e?void 0:`playground`,ae);xe.current=c,Ee.current=null,Ce.current=c.note.sourceRevision,r.dispatch({effects:_T.of({blocks:c.note.blocks,sourceRevision:c.note.sourceRevision})}),i?.({rawContent:c.note.rawContent,blocks:c.note.blocks,sourceRevision:c.note.sourceRevision}),be(n),ge(c.block),ve(c.session.id)}catch(e){Te(e instanceof Error?e.message:String(e))}finally{Se.current=!1}}},[e,ae,i,a]),Oe=(0,W.useCallback)(()=>{ge(null),ve(null),be(!1)},[]),ke=(0,W.useCallback)(e=>{M&&De(e,!0)},[M,De]),Ae=(0,W.useRef)(null),je=(0,W.useCallback)((e,t)=>{let n=Ae.current,r=n!==null&&n.results===t,i=xe.current;if(!i||!t)return Promise.reject(Error(`The saved run pin is unavailable.`));let a=i.session.id;if(Ee.current===a)return Promise.resolve();let o={id:i.block.id,contentId:i.session.blockContentId};if(!r&&t&&ee.current){let t=ee.current,n=WD(t.state,e,a);if(n){let e=n.from+n.insert.indexOf("```");t.dispatch({changes:n,effects:[Tr.scrollIntoView(e,{y:`start`,yMargin:96})]}),l?.(t.state.doc.toString())}}r||(Ae.current={results:t,resultId:a,runBlock:o});let s;try{s=Yj(ae).record({resultId:a,noteId:i.session.noteId,blockId:i.session.blockId,data:t,createdAt:t.endTime}).then(()=>v?.(e,t,a,o))}catch(e){return Promise.reject(e instanceof Error?e:Error(String(e)))}return Promise.resolve(s).then(()=>{Ae.current?.results===t&&(Ae.current=null),Ee.current=a},()=>{}),s},[l,v,ae]),Me=(0,W.useMemo)(()=>{if(j)return[];if(A&&A.length>0)return A;let e=[];return M?e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(dr,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:De}):_&&e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(dr,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:_}),e.push({id:`playground`,label:`Playground`,icon:(0,G.jsx)(tt,{className:`h-3 w-3`}),splitIcon:(0,G.jsx)(Un,{className:`h-3 w-3`}),splitSuccessIcon:(0,G.jsx)(zt,{className:`h-3 w-3`}),onClick:e=>{zQ(e.content).then(e=>{let t=window.open(e,`wodwiki-playground`);t&&t.focus()})},onSplitClick:async e=>{let t=await BQ(e.content);await navigator.clipboard.writeText(t)}}),b&&e.push({id:`plan`,label:`Plan`,icon:(0,G.jsx)(Qn,{className:`h-3 w-3`}),onClick:b}),e},[A,_,b,M,j,De]),Ne=(0,W.useMemo)(()=>ui({codeLanguages:AO}),[]),Pe=(0,W.useMemo)(()=>{let e=Math.max(1,n),r=P?[...P.keys()]:Ea;if(t&&Object.keys(t).length>0)try{return Pa(c,t,e,{registeredWidgets:r}),t}catch{return Na(c,{sourceRevision:e,blocks:t,registeredWidgets:r})}return Na(c,{sourceRevision:e,registeredWidgets:r})},[c,t,n,P]),Fe=(0,W.useMemo)(()=>[...T?[Jr(),cee()]:[],Br(),ci(),Or(),li(),...w?[Tr.lineWrapping]:[],Qr.allowMultipleSelections.of(!0),Er(),bi(),zr(),mi(),si.highest(vr.of([{key:`Tab`,run:e=>Ir(e.state)!==null&&(xi(e),!0)},{key:`Enter`,run:e=>{let t=e.state.selection.main,n=GQ(e.state,t.head),r=e.state.doc.lineAt(t.head);return!t.empty||n?.value.trim()!==``||r.text.slice(t.head-r.from).trim()?!1:(br(e),lee(e))}}])),vr.of([...oee,...Yr,...ii,...ri,...yi,...oi,Xr,{key:`Mod-s`,run:()=>(o?.(),!0)},{key:`Ctrl-.`,run:e=>{let t=bY(e.state);if(!t?.focusedMetric)return!1;let n=t.focusedMetric.type;return!new Set([`duration`,`rep`,`rounds`,`distance`,`resistance`]).has(n)&&(at(()=>Promise.resolve().then(()=>EU).then(()=>{at(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-D5c1zwcv.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([3,1,0,2])).then(({runStatementBuilderFlow:n})=>{n(t,e)}).catch(()=>{DU.getState().open({placeholder:`Modify metric…`,sources:[]})})}),void 0),!0)}}]),XD,TT,mT.of({blocks:Pe,sourceRevision:Math.max(1,n),rawContent:c}),hT.of(P?[...P.keys()]:Ea),ET,fE.of(D),pE.of(ie),...E||!D?[nD]:[],...E?[nE,aE,HJ(),ZJ(),yD,pD(),AD]:[],...O?[jT]:[],YT,Gw,LT,IT,RT.of(HQ),zT.of(UQ),...k?[ZD]:[],ZT,pT,CY,...ID,lT,...P&&P.size>0?[kO(P)]:[],aO({executor:IB,onResultSaved:qj,readOnly:m,noteHref:e=>AL(`blockContentId`in e||`dataType`in e?yL(e):pL(e))}),dY(e,ae),Tr.domEventHandlers({blur:()=>(f?.(),!1)}),Tr.updateListener.of(e=>{if(e.docChanged){let t=e.state.field(TT);r?.({rawContent:t.rawContent,blocks:t.noteBlocks,sourceRevision:t.sourceRevision}),l(t.rawContent),u?.(e),qQ(e.state,y,ne),e.transactions.some(e=>e.isUserEvent(`input`)||e.isUserEvent(`delete`)||e.isUserEvent(`paste`)||e.isUserEvent(`drop`))||s?.()}if(e.selectionSet||e.docChanged){de(e=>e+1),e.transactions.some(e=>e.isUserEvent(`delete.backward`))&&Ir(e.startState)!==null&&Ir(e.state)===null&&GQ(e.state,e.state.selection.main.head)?.value===``&&queueMicrotask(()=>{e.view.state===e.state&&$r(e.view)});let{head:t}=e.state.selection.main,n=e.state.doc.lineAt(t);d?.(n.number,t-n.from+1);let r=OT(e.state);se(r?.id??null),le(n.number);let{sections:i}=e.state.field(TT);ce(i)}}),Qr.readOnly.of(m),Tr.editable.of(!m),...R?[hi(R)]:[],Tr.contentAttributes.of({"aria-label":g})],[l,d,f,u,y,r,m,o,s,T,w,E,D,ie,O,k,e,ae,P,R,g]);return(0,W.useEffect)(()=>{let e=z.current;if(!e)return;let t;try{t=Qr.create({doc:c,extensions:[...Fe,FQ.of(cT(re)),IQ.of(Ne),LQ.of([]),...N??[]]})}catch(e){console.error(`NoteEditor: Failed to initialize EditorState, recovering with safe fallback`,e),t=Qr.create({doc:c,extensions:[FQ.of(cT(re)),IQ.of(Ne)]})}let n=new Tr({state:t,parent:e}),i=window.visualViewport,a=0,o=()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>{n.hasFocus&&i?.scale===1&&i.height<window.innerHeight&&n.dispatch({effects:Tr.scrollIntoView(n.state.selection.main.head,{y:`nearest`,yMargin:24})})})};i?.addEventListener(`resize`,o),n.contentDOM.addEventListener(`focus`,o),ee.current=n,H(n),e.__codemirrorView=n,S?.(n);let{sections:s}=n.state.field(TT);ce(s);let l=n.state.doc.lineAt(n.state.selection.main.head).number;le(l);let u=OT(n.state);se(u?.id??null);let d=n.state.field(TT);return r?.({rawContent:d.rawContent,blocks:d.noteBlocks,sourceRevision:d.sourceRevision}),qQ(n.state,y,ne),()=>{cancelAnimationFrame(a),i?.removeEventListener(`resize`,o),n.contentDOM.removeEventListener(`focus`,o),delete e.__codemirrorView,H(null),n.destroy()}},[]),(0,W.useEffect)(()=>{let e=ee.current;if(!e)return;let r=e.state.field(TT);if(c!==r.rawContent){let r=Math.max(1,n),i=t?Na(c,{sourceRevision:r,blocks:t,registeredWidgets:P?[...P.keys()]:Ea}):void 0,a=i&&t&&Object.keys(i).length===Object.keys(t).length&&Object.entries(t).every(([e,t])=>{let n=i[e];return n&&n.from===t.from&&n.to===t.to&&n.kind===t.kind&&n.dialect===t.dialect&&n.sport===t.sport});e.dispatch({changes:{from:0,to:e.state.doc.length,insert:c},...a?{effects:vT.of({rawContent:c,blocks:t,sourceRevision:r})}:{}})}else t&&n!==r.sourceRevision&&e.dispatch({effects:_T.of({blocks:t,sourceRevision:Math.max(1,n)})})},[c,t,n]),(0,W.useEffect)(()=>{ee.current&&ee.current.dispatch({effects:FQ.reconfigure(cT(re))})},[re]),(0,W.useEffect)(()=>{if(ee.current){let e=[];ee.current.dispatch({effects:[Kr.reconfigure.of([...Fe,FQ.of(cT(re)),IQ.of(Ne),LQ.of(e),...N??[]])]})}},[Fe,N,C,re,Ne]),(0,W.useEffect)(()=>{m||ee.current?.focus()},[m]),(0,W.useEffect)(()=>{if(I&&ee.current){let e=ee.current,t=e.state.doc.toString().split(`
172
+ `),a=t.match(/^(\d{1,2}:\d{2}(?::\d{2})?)/m)?.[1],o=r[0]?.substring(0,60)||`Workout`,s=e.type===`time`||e.type===`log`?e.type:`time`;return{id:e.id,title:o,statementCount:r.length,contentPreview:i,timerHint:a,dialect:s}}),o={type:`rpc-workbench-update`,mode:r.length>0?`preview`:`idle`,previewData:r.length>0?{title:r[0].title,blocks:r}:void 0},s=JSON.stringify(o);if(s!==a.current){a.current=s;try{i.send(o)}catch{}}},[i,e,t,n]),(0,W.useEffect)(()=>{i?.connected||(a.current=``)},[i]),(0,W.useEffect)(()=>{t||(a.current=``)},[t]),(0,W.useEffect)(()=>{if(!(!i?.connected||!r||!n))return i.onMessage(t=>{if(t.type!==`rpc-event`||t.name!==`select-block`)return;let{index:i,blockId:a}=t.data??{},o=e.filter(e=>e.type===`time`),s=a?o.find(e=>e.id===a):o[i??0];if(!s||!n)return;let c=s.contentFrom!==void 0&&s.contentTo!==void 0?n.doc.sliceString(s.contentFrom,s.contentTo):``;r({id:s.id,dialect:s.type===`time`||s.type===`log`?s.type:`time`,sport:s.sport,startLine:s.startLine-1,endLine:s.endLine-1,content:c,state:`idle`,version:1,createdAt:Date.now(),widgetIds:{}})})},[i,e,n,r,t]),null},kQ={[J.Duration]:{label:`Timer`,icon:`⏱`,textClass:`text-metric-time`,bgClass:`bg-metric-time/10`,borderClass:`border-metric-time/30`},[J.Rep]:{label:`Reps`,icon:`✕`,textClass:`text-metric-rep`,bgClass:`bg-metric-rep/10`,borderClass:`border-metric-rep/30`},[J.Effort]:{label:`Exercise`,icon:`🏋`,textClass:`text-metric-effort`,bgClass:`bg-metric-effort/10`,borderClass:`border-metric-effort/30`},[J.Rounds]:{label:`Rounds`,icon:`↻`,textClass:`text-metric-rounds`,bgClass:`bg-metric-rounds/10`,borderClass:`border-metric-rounds/30`},[J.Distance]:{label:`Distance`,icon:`📏`,textClass:`text-metric-distance`,bgClass:`bg-metric-distance/10`,borderClass:`border-metric-distance/30`},[J.Resistance]:{label:`Weight`,icon:`⚖`,textClass:`text-metric-resistance`,bgClass:`bg-metric-resistance/10`,borderClass:`border-metric-resistance/30`},[J.Equipment]:{label:`Equipment`,icon:`🧰`,textClass:`text-metric-equipment`,bgClass:`bg-metric-equipment/10`,borderClass:`border-metric-equipment/30`},[J.Action]:{label:`Action`,icon:`⚡`,textClass:`text-metric-action`,bgClass:`bg-metric-action/10`,borderClass:`border-metric-action/30`},[J.Label]:{label:`Label`,icon:`🏷`,textClass:`text-muted-foreground`,bgClass:`bg-muted/30`,borderClass:`border-border/40`}},AQ={[J.Rep]:`reps`,[J.Effort]:`movement`,[J.Resistance]:`weight`},jQ=({metric:e,tooltip:t,isFocused:n,onClick:r})=>{let i=kQ[e.type],a=e.type===J.Hint,o=e.name??e.image??(e.value===void 0?``:String(e.value)),s=i?.label??String(e.type);return(0,G.jsxs)(`span`,{title:t,onClick:r,className:K(`inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full border text-[10px] leading-none font-medium whitespace-nowrap`,`pointer-events-auto transition-opacity hover:opacity-80`,i?.bgClass??`bg-muted/30`,i?.textClass??`text-muted-foreground`,i?.borderClass??`border-border/40`,r&&`cursor-pointer`,n&&`font-bold shadow-xs`),children:[(0,G.jsx)(`span`,{children:a?e.icon:i?.icon??`•`}),!a&&(0,G.jsx)(`span`,{className:`sr-only`,children:s}),!a&&(0,G.jsx)(`span`,{className:`font-semibold`,children:o||s})]})};function MQ(e){let t=oa(e.metadata);return{refs:t?.refs??[],diagnostics:t?.diagnostics??[]}}function NQ(e,t){try{let n=e.coordsAtPos(t.lineFrom);if(!n)return null;let r=typeof t.lineTo==`number`?e.coordsAtPos(t.lineTo)??n:n,i=e.dom?.getBoundingClientRect?.()??{top:0,left:0,width:600},a=e.contentDOM?.getBoundingClientRect?.()??{left:0,width:600},o=Math.max(0,a.left-i.left),s=o+Math.max(240,a.width),c=r.left-i.left+12,l=s-c;if(l>=180){let e=typeof r.top==`number`?r.top:r.bottom-20;return{top:Math.max(0,e-i.top-1),left:c,maxWidth:l-4,belowLine:!1}}return{top:r.bottom-i.top+3,left:o,maxWidth:Math.max(220,a.width),belowLine:!0}}catch{return null}}var PQ=({view:e,cursorVersion:t,getCursorFocusState:n})=>{let[r,i]=(0,W.useState)(null),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(null),l=(0,W.useRef)(null),u=(0,W.useCallback)(()=>{if(!e){o(null),i(null);return}let t=(n??bY)(e.state);o(t),i(t?NQ(e,t):null)},[e,n]);(0,W.useEffect)(()=>{u()},[u,t]),(0,W.useEffect)(()=>{if(!e)return;let t=()=>u();return window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t,!0),()=>{window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t,!0)}},[e,u]);let d=e?.state&&typeof e.state.field==`function`?Ir(e.state)===`active`:!1;if(!r||!a?.section||d)return null;let f=a.allStatements?.filter(e=>e.meta?.line===a.cursorLine-a.section.startLine)??(a.statement?[a.statement]:[]),p=f.flatMap(e=>e.metrics.toArray()).filter(e=>{if(e.type===J.Sound||e.type===J.System||e.type===J.Hint&&!e.icon||e.type===J.Custom&&typeof e.value==`string`&&/^#[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(e.value.trim()))return!1;if(e.type===J.Effort||e.type===J.Equipment){let t=MQ(e);if(t.refs.length>0||t.diagnostics.length>0)return!1}return!0}),m=LG(p,`runtime-badge`),h=f.flatMap(e=>e.metrics.toArray()),g=[],_=[],v=[];for(let e of h){let t=MQ(e);for(let e of t.refs){let t=`${e.kind}:${e.slug}`;g.includes(t)||(g.push(t),_.push(e))}v.push(...t.diagnostics)}let y=[],b=[];for(let e of h){let t=ma(e.metadata);if(t){y.some(e=>e.slug===t.slug)||y.push(t);continue}if(e.type===J.Custom&&typeof e.value==`string`&&/^#[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(e.value.trim())){let t=e.value.trim().slice(1);b.includes(t)||b.push(t)}}let x=typeof e?.state?.facet==`function`?e.state.facet(uE)?.()??null:null,S=typeof e?.state?.doc?.sliceString==`function`?cY(e.state.doc.sliceString(a.lineFrom,a.lineTo)):null,C=e=>e.reason===`conflict`||e.reason.endsWith(`equipment`)||e.reason===`invalid-explicit`&&e.token&&S?.equipment.includes(e.token)?`equipment`:`effort`,w=e=>typeof e==`string`&&e.trim()?e:null,T=async t=>{if(!e)return;let n=e.state.doc.sliceString(a.lineFrom,a.lineTo),r=DU.getState();if(t===`effort`){let t=await r.open({placeholder:`Change effort…`,sources:[tY(`effort`)]});if(t.dismissed)return;let i=w(t.item.payload);if(!i)return;e.dispatch({changes:{from:a.lineFrom,to:a.lineTo,insert:lY(n,{effort:i})}});return}let i=[...S?.equipment??[]];for(;;){let e=await r.open({placeholder:i.length>0?`Add equipment (Esc to finish)…`:`Set equipment…`,sources:[tY(`equipment`)]});if(e.dismissed)break;let t=w(e.item.payload);t&&!i.includes(t)&&i.push(t)}((S?.jsonFrom??-1)>=0||i.length>0)&&e.dispatch({changes:{from:a.lineFrom,to:a.lineTo,insert:lY(n,{equipment:i})}})},E=async()=>{if(!e)return;let t=e.state.doc.sliceString(a.lineFrom,a.lineTo),n=DU.getState(),r,i=await n.open({placeholder:`Add effort (Esc to skip)…`,sources:[tY(`effort`)]});i.dismissed||(r=w(i.item.payload)??void 0);let o=[];for(;;){let e=await n.open({placeholder:`Add equipment (Esc to finish)…`,sources:[tY(`equipment`)]});if(e.dismissed)break;let t=w(e.item.payload);t&&!o.includes(t)&&o.push(t)}!r&&o.length===0||e.dispatch({changes:{from:a.lineFrom,to:a.lineTo,insert:lY(t,{effort:r,equipment:o})}})},D=()=>{e&&typeof e.dispatch==`function`&&e.dispatch({effects:[fY.of(null)]}),u()},O=async t=>{if(!e||!t.token)return;let n=C(t),r=await DU.getState().open({placeholder:`Replace “${t.token}”…`,sources:[tY(n,t.candidates)]});if(r.dismissed)return;let i=w(r.item.payload);if(!i)return;let o=e.state.doc.sliceString(a.lineFrom,a.lineTo).indexOf(t.token);o<0||e.dispatch({changes:{from:a.lineFrom+o,to:a.lineFrom+o+t.token.length,insert:i}})},k=async(e,t)=>{t.trim()&&(e===`effort`?await rY(t):await aY(t),D())},A=async e=>{if(!e.trim())return;let t=await DU.getState().open({placeholder:`Link “${e}” as alias to effort…`,sources:[tY(`effort`)]});if(t.dismissed)return;let n=w(t.item.payload);n&&(await iY(n,e),D())},j=async e=>{e.trim()&&(await oY(e),D())},M=t=>{let n=AQ[t.type];if(!n||!e)return;let r=t.type===J.Effort?`effort`:t.type===J.Equipment?`equipment`:null;if(r&&S?.jsonFrom!==void 0&&S.jsonFrom>=0){T(r);return}at(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-BgrBt6FL.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([3,1,0,2])).then(({runStatementBuilderFlow:t})=>{t(a,e,n)})};return(0,G.jsx)(`div`,{ref:l,className:K(`cm-metric-inline-panel`,`absolute z-40 pointer-events-auto`,`inline-flex items-center gap-1 px-1.5 py-0.5 min-h-[22px]`,r.belowLine?`bg-popover/95 backdrop-blur-md border border-border/70 rounded-md shadow-sm`:`bg-transparent`,`transition-opacity duration-100 max-w-full`),style:{top:r.top,left:r.left,maxWidth:r.maxWidth},"aria-live":`polite`,"aria-label":`Metric inline panel`,children:p.length>0||_.length>0||y.length>0||v.length>0||b.length>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[p.map((e,t)=>(0,G.jsx)(jQ,{metric:e,tooltip:e.type===J.Hint?String(e.value??``):m[t]?.tooltip,isFocused:a.focusedMetric===e,onClick:AQ[e.type]?()=>M(e):void 0},`${e.type}-${t}`)),_.map(e=>{let t=e.kind===`effort`&&a.focusedMetric?.type===J.Effort||e.kind===`equipment`&&a.focusedMetric?.type===J.Equipment;return(0,G.jsxs)(`span`,{title:`${e.kind===`effort`?`Effort`:`Equipment`}: ${e.label} (${e.slug})${e.matchedAlias?` · matched alias "${e.matchedAlias}"`:``} · click to change`,onClick:()=>void T(e.kind),className:K(`pointer-events-auto inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full border text-[10px] leading-none font-medium cursor-pointer hover:opacity-80 whitespace-nowrap`,e.kind===`effort`?`bg-metric-effort/10 text-metric-effort border-metric-effort/30`:`bg-metric-equipment/10 text-metric-equipment border-metric-equipment/30`,t&&`font-bold shadow-xs`),children:[(0,G.jsx)(`span`,{children:e.kind===`effort`?`🏋`:`🧰`}),(0,G.jsx)(`span`,{className:`sr-only`,children:e.kind===`effort`?`Exercise`:`Equipment`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:e.label}),x&&(0,G.jsx)(`a`,{href:x.openHref(e.kind,e.slug),title:`Open ${e.label} page`,"aria-label":`Open ${e.label} page`,className:`opacity-70 hover:opacity-100 ml-0.5`,onClick:e=>e.stopPropagation(),children:`↗`})]},`${e.kind}:${e.slug}`)}),y.map(e=>(0,G.jsxs)(`span`,{title:e.soundProfileId?`Tag ${e.label} · names the ${e.soundProfileId} sound profile`:`Tag ${e.label}`,className:`pointer-events-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded-full border text-[10px] leading-none font-medium bg-primary/10 text-primary border-primary/30 whitespace-nowrap`,children:[(0,G.jsx)(`span`,{children:`#`}),(0,G.jsx)(`span`,{className:`font-semibold font-mono`,children:e.label}),x&&(0,G.jsx)(`a`,{href:x.openHref(`tag`,e.slug),title:`Open the ${e.label} tag`,"aria-label":`Open the ${e.label} tag`,className:`opacity-70 hover:opacity-100 ml-0.5`,onClick:e=>e.stopPropagation(),children:`↗`})]},`tag:${e.slug}`)),S?.malformed&&(0,G.jsxs)(`span`,{"data-testid":`editor-ref-unknown`,title:`Reference JSON on this line does not parse — fix it in the raw text.`,className:`pointer-events-auto inline-flex items-center gap-1.5 px-2 py-0.5 rounded border text-[11px] font-medium bg-destructive/10 text-destructive border-destructive/30`,children:[(0,G.jsx)(`span`,{children:`⚠`}),(0,G.jsx)(`span`,{children:`Malformed reference JSON`})]}),b.map(e=>(0,G.jsxs)(`span`,{"data-testid":`editor-tag-unknown`,title:`Unknown tag #${e} — click to create`,className:`pointer-events-auto inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full border border-dashed text-[10px] leading-none font-medium bg-warning/10 text-warning border-warning/40 whitespace-nowrap`,children:[(0,G.jsxs)(`span`,{className:`font-mono font-semibold`,children:[`#`,e]}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-create-tag-inline`,className:`underline cursor-pointer hover:text-foreground font-semibold ml-0.5`,onClick:()=>void j(e),children:`+ Tag`})]},`unresolved-tag:${e}`)),v.map((e,t)=>{let n=C(e),r=e.token?.trim()??``,i=e.reason===`unknown-effort`,a=`${e.reason}-${r||t}`,o=s===a||s===`all`;return(0,G.jsxs)(`span`,{"data-testid":`editor-ref-unknown`,title:e.message,onClick:()=>{o||c(a)},className:K(`pointer-events-auto inline-flex flex-wrap items-center gap-1.5 px-1.5 py-0.5 rounded-xl border border-dashed text-[10px] leading-tight font-medium bg-warning/10 text-warning border-warning/40 max-w-full`,!o&&`rounded-full whitespace-nowrap cursor-pointer hover:bg-warning/15`),children:[(0,G.jsx)(`span`,{children:`?`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:e.token??e.reason}),o?(0,G.jsxs)(`span`,{className:`inline-flex flex-wrap items-center gap-1.5 pl-1 border-l border-warning/30`,children:[r&&(0,G.jsxs)(`button`,{type:`button`,"data-testid":`editor-create-${n}-inline`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),k(n,r)},children:[`+ `,n===`effort`?`Effort`:`Equipment`]}),r&&i&&(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-link-alias-inline`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),A(r)},children:`+ Alias`}),r&&i&&(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-create-equipment-from-token`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),k(`equipment`,r)},children:`+ Equipment`}),(0,G.jsx)(`button`,{type:`button`,className:`underline cursor-pointer hover:text-foreground`,onClick:t=>{t.stopPropagation(),O(e)},children:`Select existing`}),x&&(0,G.jsx)(`a`,{href:x.createHref(n),className:`underline hover:text-foreground`,onClick:e=>e.stopPropagation(),children:`Create page`})]}):(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-define-token`,className:`underline cursor-pointer hover:text-foreground font-semibold`,onClick:e=>{e.stopPropagation(),c(a)},children:`Define ▾`})]},a)}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`editor-add-metric-line`,title:`Add effort/equipment reference to this line`,onClick:()=>void E(),className:`pointer-events-auto inline-flex items-center px-1.5 py-0.5 rounded-full border border-dashed border-border/60 text-[10px] leading-none text-muted-foreground hover:text-foreground hover:border-primary/50 cursor-pointer whitespace-nowrap`,children:`+ Metric`})]}):(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground/60 italic select-none`,children:`No metrics on this line`})})},FQ=new ai,IQ=new ai,LQ=new ai;async function RQ(e){let t=new TextEncoder().encode(e);if(typeof CompressionStream<`u`)try{let e=new CompressionStream(`gzip`),n=e.writable.getWriter(),r=e.readable.getReader();n.write(t),n.close();let i=[];for(;;){let{done:e,value:t}=await r.read();if(e)break;i.push(t)}let a=i.reduce((e,t)=>e+t.length,0),o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.length;return btoa(String.fromCharCode(...o)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}catch{}return btoa(String.fromCharCode(...t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}async function zQ(e){let t=await RQ(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`);return`${window.location.origin}/load?zip=${t}`}async function BQ(e){let t=await RQ(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`),n=`shared by ${Nx()}`;return`${window.location.origin}/?z=${t}&by=${encodeURIComponent(n)}`}var VQ=({noteId:e,noteBlocks:t,sourceRevision:n=0,onIdentityChange:r,onSaved:i,beforeRun:a,onSaveRequest:o,onCommitChange:s,value:c,onChange:l,onDocUpdate:u,onCursorPositionChange:d,onBlur:f,theme:p=`vs`,readonly:m=!1,className:h=``,ariaLabel:g=`Note editor`,onStartWorkout:_,onCompleteWorkout:v,onBlocksChange:y,onAddToPlan:b,notePersistence:x,onViewCreated:S,mode:C=`edit`,lineWrapping:w=!0,showLineNumbers:T=!0,enablePreview:E=!0,showFrontmatter:D=!0,enableLinting:O=!0,enableOverlay:k=!1,commands:A,hideDefaultCommands:j=!1,enableInlineRuntime:M=!0,extensions:N,widgetComponents:P,activeSectionId:F,scrollToSectionId:I,results:L,placeholder:R})=>{let z=(0,W.useRef)(null),ee=(0,W.useRef)(null),te=(0,W.useRef)(null),ne=(0,W.useRef)(``),re=p===`dark`||p===`vs-dark`,{isDebugMode:ie}=Nb(),ae=uY(te,x),[oe,se]=(0,W.useState)(null),[B,ce]=(0,W.useState)([]),[V,le]=(0,W.useState)(1),[ue,de]=(0,W.useState)(0),fe=F??oe,pe=jY(B,fe),[me,H]=(0,W.useState)(null),[he,ge]=(0,W.useState)(null),[_e,ve]=(0,W.useState)(null),[ye,be]=(0,W.useState)(!1),xe=(0,W.useRef)(null),Se=(0,W.useRef)(!1),Ce=(0,W.useRef)(n??0);(0,W.useEffect)(()=>{Ce.current=n??0},[n]);let[we,Te]=(0,W.useState)(null),Ee=(0,W.useRef)(null),De=(0,W.useCallback)(async(t,n=!1)=>{let r=ee.current;if(!(!r||Se.current)){Se.current=!0,Te(null);try{let o=await a?.();typeof o==`number`&&(Ce.current=o);let s=r.state.field(TT),c=await Hj({noteId:e??$t(),rawContent:s.rawContent,blocks:s.noteBlocks,expectedSourceRevision:Ce.current,...e?{}:{metadata:{title:`Playground workout`},noteType:`playground`}},t,$t(),e?void 0:`playground`,ae);xe.current=c,Ee.current=null,Ce.current=c.note.sourceRevision,r.dispatch({effects:_T.of({blocks:c.note.blocks,sourceRevision:c.note.sourceRevision})}),i?.({rawContent:c.note.rawContent,blocks:c.note.blocks,sourceRevision:c.note.sourceRevision}),be(n),ge(c.block),ve(c.session.id)}catch(e){Te(e instanceof Error?e.message:String(e))}finally{Se.current=!1}}},[e,ae,i,a]),Oe=(0,W.useCallback)(()=>{ge(null),ve(null),be(!1)},[]),ke=(0,W.useCallback)(e=>{M&&De(e,!0)},[M,De]),Ae=(0,W.useRef)(null),je=(0,W.useCallback)((e,t)=>{let n=Ae.current,r=n!==null&&n.results===t,i=xe.current;if(!i||!t)return Promise.reject(Error(`The saved run pin is unavailable.`));let a=i.session.id;if(Ee.current===a)return Promise.resolve();let o={id:i.block.id,contentId:i.session.blockContentId};if(!r&&t&&ee.current){let t=ee.current,n=WD(t.state,e,a);if(n){let e=n.from+n.insert.indexOf("```");t.dispatch({changes:n,effects:[Tr.scrollIntoView(e,{y:`start`,yMargin:96})]}),l?.(t.state.doc.toString())}}r||(Ae.current={results:t,resultId:a,runBlock:o});let s;try{s=Yj(ae).record({resultId:a,noteId:i.session.noteId,blockId:i.session.blockId,data:t,createdAt:t.endTime}).then(()=>v?.(e,t,a,o))}catch(e){return Promise.reject(e instanceof Error?e:Error(String(e)))}return Promise.resolve(s).then(()=>{Ae.current?.results===t&&(Ae.current=null),Ee.current=a},()=>{}),s},[l,v,ae]),Me=(0,W.useMemo)(()=>{if(j)return[];if(A&&A.length>0)return A;let e=[];return M?e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(dr,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:De}):_&&e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(dr,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:_}),e.push({id:`playground`,label:`Playground`,icon:(0,G.jsx)(tt,{className:`h-3 w-3`}),splitIcon:(0,G.jsx)(Un,{className:`h-3 w-3`}),splitSuccessIcon:(0,G.jsx)(zt,{className:`h-3 w-3`}),onClick:e=>{zQ(e.content).then(e=>{let t=window.open(e,`wodwiki-playground`);t&&t.focus()})},onSplitClick:async e=>{let t=await BQ(e.content);await navigator.clipboard.writeText(t)}}),b&&e.push({id:`plan`,label:`Plan`,icon:(0,G.jsx)(Qn,{className:`h-3 w-3`}),onClick:b}),e},[A,_,b,M,j,De]),Ne=(0,W.useMemo)(()=>ui({codeLanguages:AO}),[]),Pe=(0,W.useMemo)(()=>{let e=Math.max(1,n),r=P?[...P.keys()]:Ea;if(t&&Object.keys(t).length>0)try{return Pa(c,t,e,{registeredWidgets:r}),t}catch{return Na(c,{sourceRevision:e,blocks:t,registeredWidgets:r})}return Na(c,{sourceRevision:e,registeredWidgets:r})},[c,t,n,P]),Fe=(0,W.useMemo)(()=>[...T?[Jr(),cee()]:[],Br(),ci(),Or(),li(),...w?[Tr.lineWrapping]:[],Qr.allowMultipleSelections.of(!0),Er(),bi(),zr(),mi(),si.highest(vr.of([{key:`Tab`,run:e=>Ir(e.state)!==null&&(xi(e),!0)},{key:`Enter`,run:e=>{let t=e.state.selection.main,n=GQ(e.state,t.head),r=e.state.doc.lineAt(t.head);return!t.empty||n?.value.trim()!==``||r.text.slice(t.head-r.from).trim()?!1:(br(e),lee(e))}}])),vr.of([...oee,...Yr,...ii,...ri,...yi,...oi,Xr,{key:`Mod-s`,run:()=>(o?.(),!0)},{key:`Ctrl-.`,run:e=>{let t=bY(e.state);if(!t?.focusedMetric)return!1;let n=t.focusedMetric.type;return!new Set([`duration`,`rep`,`rounds`,`distance`,`resistance`]).has(n)&&(at(()=>Promise.resolve().then(()=>EU).then(()=>{at(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-BgrBt6FL.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([3,1,0,2])).then(({runStatementBuilderFlow:n})=>{n(t,e)}).catch(()=>{DU.getState().open({placeholder:`Modify metric…`,sources:[]})})}),void 0),!0)}}]),XD,TT,mT.of({blocks:Pe,sourceRevision:Math.max(1,n),rawContent:c}),hT.of(P?[...P.keys()]:Ea),ET,fE.of(D),pE.of(ie),...E||!D?[nD]:[],...E?[nE,aE,HJ(),ZJ(),yD,pD(),AD]:[],...O?[jT]:[],YT,Gw,LT,IT,RT.of(HQ),zT.of(UQ),...k?[ZD]:[],ZT,pT,CY,...ID,lT,...P&&P.size>0?[kO(P)]:[],aO({executor:IB,onResultSaved:qj,readOnly:m,noteHref:e=>AL(`blockContentId`in e||`dataType`in e?yL(e):pL(e))}),dY(e,ae),Tr.domEventHandlers({blur:()=>(f?.(),!1)}),Tr.updateListener.of(e=>{if(e.docChanged){let t=e.state.field(TT);r?.({rawContent:t.rawContent,blocks:t.noteBlocks,sourceRevision:t.sourceRevision}),l(t.rawContent),u?.(e),qQ(e.state,y,ne),e.transactions.some(e=>e.isUserEvent(`input`)||e.isUserEvent(`delete`)||e.isUserEvent(`paste`)||e.isUserEvent(`drop`))||s?.()}if(e.selectionSet||e.docChanged){de(e=>e+1),e.transactions.some(e=>e.isUserEvent(`delete.backward`))&&Ir(e.startState)!==null&&Ir(e.state)===null&&GQ(e.state,e.state.selection.main.head)?.value===``&&queueMicrotask(()=>{e.view.state===e.state&&$r(e.view)});let{head:t}=e.state.selection.main,n=e.state.doc.lineAt(t);d?.(n.number,t-n.from+1);let r=OT(e.state);se(r?.id??null),le(n.number);let{sections:i}=e.state.field(TT);ce(i)}}),Qr.readOnly.of(m),Tr.editable.of(!m),...R?[hi(R)]:[],Tr.contentAttributes.of({"aria-label":g})],[l,d,f,u,y,r,m,o,s,T,w,E,D,ie,O,k,e,ae,P,R,g]);return(0,W.useEffect)(()=>{let e=z.current;if(!e)return;let t;try{t=Qr.create({doc:c,extensions:[...Fe,FQ.of(cT(re)),IQ.of(Ne),LQ.of([]),...N??[]]})}catch(e){console.error(`NoteEditor: Failed to initialize EditorState, recovering with safe fallback`,e),t=Qr.create({doc:c,extensions:[FQ.of(cT(re)),IQ.of(Ne)]})}let n=new Tr({state:t,parent:e}),i=window.visualViewport,a=0,o=()=>{cancelAnimationFrame(a),a=requestAnimationFrame(()=>{n.hasFocus&&i?.scale===1&&i.height<window.innerHeight&&n.dispatch({effects:Tr.scrollIntoView(n.state.selection.main.head,{y:`nearest`,yMargin:24})})})};i?.addEventListener(`resize`,o),n.contentDOM.addEventListener(`focus`,o),ee.current=n,H(n),e.__codemirrorView=n,S?.(n);let{sections:s}=n.state.field(TT);ce(s);let l=n.state.doc.lineAt(n.state.selection.main.head).number;le(l);let u=OT(n.state);se(u?.id??null);let d=n.state.field(TT);return r?.({rawContent:d.rawContent,blocks:d.noteBlocks,sourceRevision:d.sourceRevision}),qQ(n.state,y,ne),()=>{cancelAnimationFrame(a),i?.removeEventListener(`resize`,o),n.contentDOM.removeEventListener(`focus`,o),delete e.__codemirrorView,H(null),n.destroy()}},[]),(0,W.useEffect)(()=>{let e=ee.current;if(!e)return;let r=e.state.field(TT);if(c!==r.rawContent){let r=Math.max(1,n),i=t?Na(c,{sourceRevision:r,blocks:t,registeredWidgets:P?[...P.keys()]:Ea}):void 0,a=i&&t&&Object.keys(i).length===Object.keys(t).length&&Object.entries(t).every(([e,t])=>{let n=i[e];return n&&n.from===t.from&&n.to===t.to&&n.kind===t.kind&&n.dialect===t.dialect&&n.sport===t.sport});e.dispatch({changes:{from:0,to:e.state.doc.length,insert:c},...a?{effects:vT.of({rawContent:c,blocks:t,sourceRevision:r})}:{}})}else t&&n!==r.sourceRevision&&e.dispatch({effects:_T.of({blocks:t,sourceRevision:Math.max(1,n)})})},[c,t,n]),(0,W.useEffect)(()=>{ee.current&&ee.current.dispatch({effects:FQ.reconfigure(cT(re))})},[re]),(0,W.useEffect)(()=>{if(ee.current){let e=[];ee.current.dispatch({effects:[Kr.reconfigure.of([...Fe,FQ.of(cT(re)),IQ.of(Ne),LQ.of(e),...N??[]])]})}},[Fe,N,C,re,Ne]),(0,W.useEffect)(()=>{m||ee.current?.focus()},[m]),(0,W.useEffect)(()=>{if(I&&ee.current){let e=ee.current,t=e.state.doc.toString().split(`
173
173
  `),n=-1,r=I.match(/-line-(\d+)$/);if(n=r?parseInt(r[1],10)-1:t.findIndex(e=>{let t=e.match(/^(#{1,6})\s+(.*)$/);if(t){let e=t[2].trim(),n=e.match(/(\d{1,2}:\d{2})/);if(n){let t=n[1];e=e.replace(t,``).replace(/\s+/g,` `).trim(),e||=t}return e.toLowerCase().replace(/[^\w]+/g,`-`)===I}return!1}),n>=0&&n<t.length){let t=e.state.doc.line(n+1).from;e.dispatch({selection:{anchor:t,head:t},effects:[Tr.scrollIntoView(t,{y:`start`,yMargin:20})]})}}},[I]),(0,G.jsxs)(`div`,{ref:z,className:`cm-note-editor relative w-full min-w-0 ${h}`,children:[k&&(0,G.jsx)(EY,{view:me??ee.current,widths:pe.widths,activeSectionId:fe,renderSlot:t=>{if(!D&&t.sectionType===`frontmatter`)return null;if(t.sectionType===`time`||t.sectionType===`log`)return(0,G.jsx)(tX,{noteId:e,sectionId:t.sectionId,view:t.view,isActive:t.isActive,widthPercent:t.widthPercent,cursorLine:V,docVersion:t.docVersion,commands:Me,extendedResults:L,hoverLine:t.hoverLine,stickyTopOffset:t.stickyTopOffset,isPanelHovered:t.isPanelHovered,lineDocY:t.lineDocY,rect:t.rect});if(t.sectionType===`frontmatter`||t.sectionType===`embed`){let{sections:e}=t.view.state.field(TT),n=e.find(e=>e.id===t.sectionId);return(0,G.jsx)(FY,{sectionId:t.sectionId,section:n,view:t.view,isActive:t.isActive,widthPercent:t.widthPercent,docVersion:t.docVersion})}return t.sectionType===`widget`&&t.widgetName?(0,G.jsx)(nX,{sectionId:t.sectionId,widgetName:t.widgetName,view:t.view,registry:P??new Map,docVersion:t.docVersion}):(0,G.jsx)(`div`,{className:`h-full w-full bg-popover/80 backdrop-blur-sm border-l border-border rounded-l-md p-2 text-xs text-muted-foreground`,children:(0,G.jsx)(`div`,{className:`font-medium text-foreground`,children:t.sectionType})})},cursorLine:V}),we&&(0,G.jsxs)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:[`Workout not started. `,we,` Your draft is kept.`]}),!k&&Me.length>0&&(0,G.jsx)(DQ,{view:me??ee.current,commands:Me}),(0,G.jsx)(PQ,{view:me??ee.current,cursorVersion:ue}),he&&ee.current&&(0,G.jsx)(bQ,{block:he,view:me??ee.current,onClose:Oe,onCompleteWorkout:je,resultId:_e??void 0,autoStart:ye}),(0,G.jsx)(OQ,{sections:B,isRuntimeActive:he!==null,editorState:(me??ee.current)?.state??null,onSelectBlock:ke})]})},HQ=async e=>{if(!WQ(e.state,e.pos))return null;let t=e.state.doc.lineAt(e.pos),n=t.text.slice(0,e.pos-t.from).match(/^([a-zA-Z][\w.-]*)$/),r=GQ(e.state,e.pos);if(!n&&!r)return null;let[i,a]=await Promise.all([Z.getAllTagTypes().catch(()=>[]),Z.getAllTags().catch(()=>[])]);if(n)return{from:t.from,options:i.map(e=>({label:e.name,detail:`Tag Type (${e.label})`,type:`property`,apply:`${e.name}:\n - `})),validFor:(e,t,n,r)=>/^[a-zA-Z][\w.-]*$/.test(e)&&WQ(r,n)};if(!r)return null;let{propertyKey:o,from:s}=r,c={"metrics.effort":`effort`,"metrics.equipment":`equipment`,equipment:`equipment`}[o.toLowerCase()];if(c){let e=await QJ();return{from:s,options:(c===`effort`?e.efforts:e.equipment).map(e=>({label:`${e.label} (${e.slug})`,detail:c===`effort`?`Effort`:`Equipment`,type:`constant`,apply:e.slug})),validFor:(e,t,n,r)=>{let i=GQ(r,n);return/^[\w-]*$/.test(e)&&i?.propertyKey===o&&i.from===t}}}let l=i.find(e=>e.name.toLowerCase()===o.toLowerCase());if(!l)return null;let u=a.filter(e=>e.type?.toLowerCase()===l.name.toLowerCase());return u.length===0?null:{from:s,options:u.map(e=>({label:e.label,detail:l.label,type:`constant`})),validFor:(e,t,n,r)=>{let i=GQ(r,n);return/^[\w-]*$/.test(e)&&i?.propertyKey===o&&i.from===t}}},UQ=$J();function WQ(e,t){let n=e.doc.lineAt(t);if(n.number===1||e.doc.line(1).text.trim()!==`---`)return!1;for(let t=2;t<=n.number;t++)if(/^(---|\.\.\.)\s*$/.test(e.doc.line(t).text))return!1;return!0}function GQ(e,t){if(!WQ(e,t))return null;let n=e.doc.lineAt(t),r=n.text.slice(0,t-n.from),i=r.match(/^([a-zA-Z][\w.-]*)\s*:\s*(.*)$/);if(i)return{propertyKey:i[1],from:t-i[2].length,value:i[2]};let a=r.match(/^\s*-\s*(.*)$/);if(!a)return null;for(let r=n.number-1;r>1;r--){let n=e.doc.line(r).text.match(/^([a-zA-Z][\w.-]*)\s*:/);if(n)return{propertyKey:n[1],from:t-a[1].length,value:a[1]}}return null}function KQ(e,t){if(e.type!==`time`&&e.type!==`log`)return null;let n=e.contentFrom!==void 0&&e.contentTo!==void 0?t.doc.sliceString(e.contentFrom,e.contentTo):``,r=[];try{n.trim()&&(r=xc({tags:Ij()}).read(n,e.sport).statements??[])}catch{}return{id:e.id,contentId:e.contentId,dialect:e.type,sport:e.sport,startLine:e.startLine-1,endLine:e.endLine-1,content:n,statements:r,state:`idle`,version:t.field(TT).noteBlocks[e.id]?.version??1,createdAt:Date.now(),widgetIds:{}}}function qQ(e,t,n){if(!t)return;let r=e.field(TT).sections.filter(e=>e.type===`time`||e.type===`log`).map(t=>KQ(t,e)).filter(e=>e!==null),i=JSON.stringify(r.map(e=>({id:e.id,startLine:e.startLine,endLine:e.endLine,content:e.content})));i!==n.current&&(n.current=i,t(r))}function JQ({title:e,subtitle:t,doc:n,onDocChange:r,noteId:i,onBlocksChange:a,theme:o,readonly:s=!1,showLineNumbers:c=!1,enableOverlay:l=!1,enableInlineRuntime:u=!1,enablePreview:d=!0,showFrontmatter:f=!1,enableLinting:p=!0,commands:m,hideDefaultCommands:h,onViewCreated:g,onReset:_,run:v,headerActions:y,subheader:b,children:x,className:S,editorClassName:C,bodyRef:w}){let T=(0,W.useRef)([]),E=(0,W.useCallback)(e=>{T.current=e,a?.(e)},[a]),D=(0,W.useCallback)(()=>{v?.onRun(n,T.current[0]??null)},[v,n]),O=(0,G.jsxs)(G.Fragment,{children:[y,v&&(0,G.jsxs)(`button`,{ref:v.ref,type:`button`,title:v.title??`Run the workout`,onClick:D,className:`inline-flex items-center gap-1.5 rounded-md bg-primary px-2.5 py-1 text-[11px] font-medium text-primary-foreground transition-colors hover:bg-primary/90`,children:[(0,G.jsx)(dr,{size:11,fill:`currentColor`}),v.label??`Run`]})]});return(0,G.jsx)(VJ,{title:e,subtitle:t,onReset:_,headerActions:O,className:S,children:(0,G.jsxs)(`div`,{className:`flex h-full flex-col min-h-0`,children:[b,(0,G.jsxs)(`div`,{ref:w,className:K(`relative flex-1 min-h-0`,C),children:[(0,G.jsx)(VQ,{noteId:i,value:n,onChange:r,onBlocksChange:E,theme:o,readonly:s,showLineNumbers:c,enableOverlay:l,enableInlineRuntime:u,enablePreview:d,showFrontmatter:f,enableLinting:p,commands:m,hideDefaultCommands:h,onViewCreated:g,className:`h-full`}),x]})]})})}function YQ({editorSource:e,editorOpacity:t,activeOriginalSource:n,handleEditorChange:r,onResetToSource:i,canvasNoteId:a,theme:o,commands:s,onBlocksChange:c,onViewCreated:l,panelTitle:u,panelSubtitle:d,panelThemeClass:f,headerActions:p,onRun:m,readonly:h=!1,showFrontmatter:g}){return(0,G.jsx)(`div`,{className:`h-full`,style:{opacity:t,transition:`opacity 180ms ease`},children:(0,G.jsx)(JQ,{title:u,subtitle:d,doc:e,onDocChange:r,noteId:a,onBlocksChange:c,onViewCreated:l,theme:o,readonly:h,showLineNumbers:!1,showFrontmatter:g,enableOverlay:!1,enableInlineRuntime:!1,commands:s,hideDefaultCommands:!1,headerActions:p,className:f,subheader:(0,G.jsxs)(`div`,{style:{opacity:t,transition:`opacity 180ms ease`},className:`flex items-center justify-between gap-3 border-b border-border/40 bg-primary/5 px-4 py-2 text-[11px] font-bold uppercase tracking-[0.18em] text-muted-foreground`,children:[(0,G.jsx)(`span`,{children:`Try editing this example ↓`}),e===n?null:(0,G.jsx)(`button`,{type:`button`,onClick:()=>{i()},className:`rounded-full border border-primary/30 px-3 py-1 text-[10px] font-black text-primary transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/50`,children:`Reset to example`})]}),run:m?{onRun:m}:void 0})})}function XQ(e,t){return e>=t?`split`:`stack`}function ZQ(e,t){let n=(0,W.useCallback)(()=>{if(typeof window>`u`)return{width:0,height:0,mode:`stack`};let t=window.innerWidth,n=Math.max(0,window.innerHeight-e);return{width:t,height:n,mode:XQ(t,n)}},[e]),[r,i]=(0,W.useState)(n);return(0,W.useEffect)(()=>{if(t&&typeof ResizeObserver<`u`){let e=new ResizeObserver(([e])=>{let{width:t,height:n}=e.contentRect;i(e=>e.width===t&&e.height===n?e:{width:t,height:n,mode:XQ(t,n)})});return e.observe(t),()=>e.disconnect()}let e=()=>i(e=>{let t=n();return e.width===t.width&&e.height===t.height?e:t});return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[t,n]),r}var QQ=e=>Math.max(0,Math.min(1,e)),$Q=(e,t,n)=>e+(t-e)*n,e$=e=>1-(1-e)**2;function t$(e,t){return e===``||t===e}var n$={id:``,range:[0,1]};function r$(e,t){if(!t||t.length===0)return{index:-1,stage:n$,t:0,ring:null};let n=QQ(e),r=t.map(e=>({...e,start:QQ(Math.min(e.range[0],e.range[1])),end:QQ(Math.max(e.range[0],e.range[1]))})),i=r.findIndex(e=>n>=e.start&&n<e.end);i===-1&&(i=n>=1?r.length-1:0);let a=r[i]??n$,o=(a.end??1)-(a.start??0),s=o>0?QQ((n-(a.start??0))/o):0,c=a.ring?{tag:a.ring===!0?void 0:a.ring.tag,key:a.ring===!0?void 0:a.ring.key,lines:a.ring===!0?void 0:a.ring.lines}:null;return{index:i,stage:a,t:s,ring:c}}function i$(e,t,n){let r=t-n;return{progress:r>0?QQ(-e/r):0,reached:e<=0,inView:e<n&&e+t>0}}function a$(e,t){let n=t/2;for(let t of e)if(t.top<=n&&t.bottom>n)return t.id;return null}var o$=(0,W.createContext)(null);function s$(){return(0,W.useContext)(o$)}function c$({children:e}){let t=(0,W.useRef)(new Map),n=(0,W.useRef)(new Map),r=(0,W.useRef)(null),i=(0,W.useRef)(0),[a,o]=(0,W.useState)(null),s=(0,W.useRef)(null),c=(0,W.useCallback)(e=>{r.current?.gateId===e&&(r.current=null,o(null))},[]),l=(0,W.useCallback)((e,t)=>{r.current={gateId:e,segmentId:t},o(e)},[]),u=(0,W.useCallback)(()=>{i.current&&cancelAnimationFrame(i.current),i.current=0;let e=window.innerHeight,a=new Map,c=(e,t)=>{let n=t();n&&a.set(e,n.getBoundingClientRect())};t.current.forEach((e,t)=>c(t,e)),n.current.forEach((e,t)=>c(t,e.getEl));let l=[];a.forEach((e,t)=>l.push({id:t,top:e.top,bottom:e.top+e.height}));let u=a$(l,e);if(u!==s.current){s.current=u;let e=r.current;e&&e.segmentId!==u&&(r.current=null,o(null))}n.current.forEach((t,n)=>{let r=a.get(n);if(!r||r.height-e<=0)return;let i=i$(r.top,r.height,e);t.onMeasure({slice:r$(i.progress,t.getStages()),progress:i.progress,reached:i.reached})})},[]),d=(0,W.useCallback)(()=>{i.current||=requestAnimationFrame(u)},[u]);(0,W.useEffect)(()=>(window.addEventListener(`scroll`,d,{passive:!0,capture:!0}),window.addEventListener(`resize`,d),u(),()=>{window.removeEventListener(`scroll`,d,{capture:!0}),window.removeEventListener(`resize`,d),i.current&&cancelAnimationFrame(i.current)}),[d,u]);let f=(0,W.useCallback)((e,n)=>(t.current.set(e,n),d(),()=>{t.current.delete(e)}),[d]),p=(0,W.useCallback)((e,t)=>(n.current.set(e,t),d(),()=>{n.current.delete(e)}),[d]),m=(0,W.useCallback)(()=>u(),[u]),h=(0,W.useMemo)(()=>({registerAnchor:f,registerDriver:p,resync:m,capturedGateId:a,captureGate:l,releaseGate:c}),[f,p,m,a,l,c]);return(0,G.jsx)(o$.Provider,{value:h,children:e})}function l$(e,t){let n=s$()?.registerAnchor;(0,W.useEffect)(()=>{if(n)return n(e,()=>t.current)},[n,e,t])}function u$({gateId:e,segmentId:t,className:n,children:r}){let i=s$(),a=(0,W.useRef)(null),[o,s]=(0,W.useState)(!1);if((0,W.useEffect)(()=>{let e=a.current;if(!e||typeof ResizeObserver>`u`)return;let t=()=>{let t=e.querySelectorAll(`.cm-scroller, [data-scroll-pane], .overflow-auto, .overflow-y-auto`);s(e.scrollHeight>e.clientHeight+1||[...t].some(e=>e.scrollHeight>e.clientHeight+1))},n=new ResizeObserver(t);n.observe(e);let r=0,i=new MutationObserver(()=>{t(),window.clearTimeout(r),r=window.setTimeout(t,400)});i.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`style`]}),window.addEventListener(`resize`,t);let o=window.setTimeout(t,1200);return t(),()=>{window.clearTimeout(r),window.clearTimeout(o),n.disconnect(),i.disconnect(),window.removeEventListener(`resize`,t)}},[]),!i)return(0,G.jsx)(`div`,{className:n,children:r});let c=i.capturedGateId===e?`captured`:`yield`;return(0,G.jsxs)(`div`,{"data-scroll-gate":c,"data-gate-id":e,className:`${n??``} flex flex-col`,onFocus:n=>{let r=n.target;r instanceof HTMLElement&&r.closest(`input:not([readonly]):not([disabled]), textarea:not([readonly]):not([disabled]), select:not([disabled]), [contenteditable="true"]`)&&i.captureGate(e,t??null)},onBlur:t=>{(!(t.relatedTarget instanceof Node)||!t.currentTarget.contains(t.relatedTarget))&&i.releaseGate(e)},children:[(0,G.jsx)(`div`,{ref:a,className:`relative min-h-0 flex-1`,children:r}),(o||c===`captured`)&&(0,G.jsx)(`button`,{type:`button`,className:`min-h-11 self-start rounded px-3 py-2 text-xs text-muted-foreground hover:text-foreground focus-visible:outline-2 focus-visible:outline-primary`,"aria-label":`${c===`captured`?`Scroll page`:`Scroll panel`}: ${e.replace(/-/g,` `)} content`,"aria-pressed":c===`captured`,onClick:()=>c===`captured`?i.releaseGate(e):i.captureGate(e,t??null),onKeyDown:t=>{t.key===`Escape`&&i.releaseGate(e)},children:c===`captured`?`Scroll page`:`Scroll panel`})]})}function d$({trackRef:e,height:t,stages:n,activeIndex:r,pane:i,captions:a,status:o,segmentId:s,testId:c,className:l}){let[u,d]=(0,W.useState)(null),f=ZQ(104,u).mode===`split`,p={status:o,pips:(0,G.jsx)(`div`,{className:`flex items-center gap-1.5`,"aria-hidden":`true`,children:n.map((e,t)=>{let n=r===t;return(0,G.jsx)(`span`,{className:`h-1 rounded-full transition-all duration-300`,style:{width:n?30:10,background:n?e.accent??`hsl(var(--primary))`:r>t?`hsl(var(--foreground))`:`hsl(var(--foreground) / 0.15)`}},e.id)})})};return(0,G.jsx)(`section`,{ref:e,"data-testid":c,className:l?`relative ${l}`:`relative`,style:{height:t},children:(0,G.jsx)(zJ.Provider,{value:p,children:(0,G.jsx)(`div`,{className:`sticky top-[65px] flex h-[calc(100dvh-65px)] flex-col overflow-hidden lg:top-[104px] lg:h-[calc(100dvh-104px)]`,children:(0,G.jsxs)(`div`,{ref:d,className:`mx-auto flex min-h-0 w-full max-w-[1500px] 2xl:max-w-[1720px] flex-1 px-5 pt-2 pb-5 lg:px-10 lg:pt-3 xl:px-16 xl:pb-8 2xl:pb-10 ${f?`flex-row items-stretch gap-[clamp(20px,2.5vw,56px)] xl:gap-12 2xl:gap-16`:`flex-col gap-6 xl:gap-8`}`,children:[(0,G.jsx)(`div`,{className:`relative min-h-0 min-w-0 flex-[3_1_0%]`,children:i}),(0,G.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-[2_1_0%] flex-col`,children:s?(0,G.jsx)(u$,{gateId:`${s}-captions`,segmentId:s,className:`relative min-h-0 flex-1`,children:a}):(0,G.jsx)(`div`,{className:`relative min-h-0 flex-1`,children:a})})]})})})})}function f$(e){let t=e.parentElement;for(;t;){let e=window.getComputedStyle(t).overflowY;if(e===`auto`||e===`scroll`)return t;t=t.parentElement}return window}function p$(e,t,n=`smooth`){let r=f$(e),i=e.offsetHeight-window.innerHeight;if(i<=0)return;if(r instanceof HTMLElement){let a=e.offsetTop;r.scrollTo({top:a+t*i,behavior:n});return}let a=e.getBoundingClientRect().top+window.scrollY;window.scrollTo({top:a+t*i,behavior:n})}function m$(e,t,n,r){let[i,a]=(0,W.useState)(()=>r$(0,n)),[o,s]=(0,W.useState)(!1),c=(0,W.useRef)(0),l=(0,W.useRef)(i),u=(0,W.useRef)(new Set),d=(0,W.useRef)(0),f=(0,W.useRef)(t);f.current=t;let p=s$(),m=p?.registerDriver,h=(0,W.useRef)(p);h.current=p;let g=(0,W.useId)(),_=r??g,v=(0,W.useRef)(n);v.current=n;let y=(0,W.useCallback)((e,t)=>{let n=l.current;l.current=e,c.current=t,(n.index!==e.index||n.ring?.key!==e.ring?.key)&&a(e),u.current.forEach(n=>n(e,t))},[]),b=(0,W.useCallback)(()=>{if(d.current=0,f.current)return;let t=e.current;if(!t)return;let n=t.getBoundingClientRect(),r=n.height-window.innerHeight;if(r<=0)return;let i=Math.max(0,Math.min(1,-n.top/r));s(n.top<=0),y(r$(i,v.current),i)},[e,y]),x=(0,W.useCallback)(()=>{if(h.current){h.current.resync();return}b()},[b]),S=(0,W.useCallback)(()=>{d.current||=requestAnimationFrame(x)},[x]);(0,W.useEffect)(()=>{if(m)return m(_,{getEl:()=>e.current,getStages:()=>v.current,onMeasure:({slice:e,progress:t,reached:n})=>{f.current||(s(n),y(e,t))}})},[m,_,e,y]),(0,W.useEffect)(()=>{if(!m)return window.addEventListener(`scroll`,S,{passive:!0,capture:!0}),window.addEventListener(`resize`,S),b(),()=>{window.removeEventListener(`scroll`,S,{capture:!0}),window.removeEventListener(`resize`,S),d.current&&cancelAnimationFrame(d.current)}},[m,S,b]);let C=(0,W.useCallback)(e=>(u.current.add(e),e(l.current,c.current),()=>{u.current.delete(e)}),[]),w=(0,W.useCallback)(()=>{x()},[x]);return{slice:i,progress:c.current,runwayReached:o,subscribe:C,resync:w}}var h$={reference:!0},g$={start:[[`fences`,`first-workout`],[`measurements`,`actions-comments`],[`system`,`try-it`]],protocols:[[`countdown-countup`,`required-rest`],[`amrap`,`emom`],[`tabata-intervals`,`caps`,`distance-intervals`,`try-it`]],structure:[[`rounds`,`rep-schemes`,`sets`],[`nesting`,`rep-math`,`named-sections`,`try-it`]],metrics:[[`planned-vs-recorded`,`custom-metrics`],[`capture`,`session-rpe`],[`calculated`,`try-it`]],clock:[[`run-next`,`pause-skip`],[`capture-prompts`,`casting`,`provenance`,`try-it`]],wql:[[`planes`,`aggregate`,`filters`,`sources`],[`windows`,`grouping-rollup`,`joins`],[`content`,`pipes`,`try-it`]],dashboards:[[`note-frontmatter`,`avg-tis`,`weekly-tonnage`,`widgets`],[`composer`,`cookbook`,`seeded-boards`,`try-it`]],sessions:[[`intent`,`full-session`],[`nested`,`partner`,`swimming`],[`barbell-cycling`,`climbing`,`try-it`]],"metrics-summaries":[[`frontmatter-metrics`,`tag-summaries`,`stacking-overrides`],[`querying-summaries`,`dependency-diagnostics`,`try-it`]]};function _$(e,t){let n=e.filter(e=>!h$[e.id]),r=e.filter(e=>h$[e.id]);if(n.length===0)return{groups:[],tail:r};let i=t?g$[t]:void 0;if(i){let e=new Map(n.map(e=>[e.id,e])),t=new Set,a=[];for(let n of i){let r=n.map(t=>e.get(t)).filter(e=>!!e&&!t.has(e.id));for(let e of r)t.add(e.id);r.length>0&&a.push(r)}let o=n.filter(e=>!t.has(e.id));if(o.length>0){let e=a[a.length-1];if(e&&e.length+o.length<=4)e.push(...o);else for(let e=0;e<o.length;e+=4)a.push(o.slice(e,e+4))}if(a.length>0)return{groups:a,tail:r}}let a=Math.max(1,Math.ceil(n.length/4)),o=Math.floor(n.length/a),s=n.length%a,c=[],l=0;for(let e=0;e<a;e++){let t=o+ +(e<s);c.push(n.slice(l,l+t)),l+=t}return{groups:c,tail:r}}function v$(e){let t=Math.max(1,e.length);return e.map((e,n)=>({id:e.id,range:[n/t,(n+1)/t]}))}var y$=[{src:`/images/hero/editing.png`,alt:`WhiteboardScript editor with live syntax highlighting and inline previews`,eyebrow:`Write`,title:`Type your workout in plain Markdown.`,caption:"Movements, reps, time caps, and rounds — fenced in a familiar ```time block. No drag-and-drop. No proprietary DSL."},{src:`/images/hero/timer.png`,alt:`Live runtime timer HUD counting down an interval with active round and rest indicators`,eyebrow:`Run`,title:`Press Run. The compiler takes over.`,caption:`Your Markdown becomes a live wallclock. The JIT engine dispatches rounds, counts reps, and tracks rest — all offline.`},{src:`/images/hero/journal.png`,alt:`Unified Library listing journal notes, notebook workouts, and dated entries`,eyebrow:`Library`,title:`Browse Journal and Notebook notes in one Library.`,caption:`Your dated journal notes and preloaded notebook benchmarks live in one unified surface. Search, filter by source, or clone to today’s note.`},{src:`/images/hero/results.png`,alt:`WQL Metric Explorer displaying volume trends and embedded dashboard blocks`,eyebrow:`Query`,title:`Ask questions with Wod Query Language (WQL).`,caption:`Aggregate volume, track TIS intensity trends, or embed live query and dashboard blocks directly in your Markdown notes.`}];function b$({slides:e=y$,className:t}){let n=(0,W.useRef)(null),[r,i]=(0,W.useState)(0);(0,W.useEffect)(()=>{let t=n.current;if(!t)return;let r=()=>{let n=t.clientWidth,r=Math.round(t.scrollLeft/n);i(Math.min(Math.max(r,0),e.length-1))};return t.addEventListener(`scroll`,r,{passive:!0}),()=>t.removeEventListener(`scroll`,r)},[e.length]);let a=e=>{let t=n.current;t&&t.scrollTo({left:e*t.clientWidth,behavior:`smooth`})};return(0,G.jsxs)(`div`,{className:K(`relative w-full`,t),children:[(0,G.jsx)(`div`,{ref:n,className:`flex w-full snap-x snap-mandatory overflow-x-auto scroll-smooth scrollbar-none`,style:{scrollbarWidth:`none`},children:e.map((t,n)=>(0,G.jsxs)(`article`,{className:`relative flex w-full shrink-0 snap-start flex-col gap-4 sm:flex-row sm:items-center sm:gap-8`,"aria-label":`Slide ${n+1} of ${e.length}: ${t.title}`,children:[(0,G.jsx)(`div`,{className:`relative aspect-[16/10] w-full overflow-hidden rounded-2xl border border-border/60 bg-muted shadow-sm sm:w-1/2`,children:(0,G.jsx)(`img`,{src:t.src,alt:t.alt,loading:n===0?`eager`:`lazy`,className:`h-full w-full object-cover`})}),(0,G.jsxs)(`div`,{className:`flex w-full flex-col gap-2 sm:w-1/2 sm:gap-3`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-black uppercase tracking-[0.24em] text-primary/80`,children:t.eyebrow}),(0,G.jsx)(`h3`,{className:`text-2xl font-black tracking-[-0.04em] text-foreground sm:text-3xl`,children:t.title}),(0,G.jsx)(`p`,{className:`text-sm leading-7 text-muted-foreground sm:text-base`,children:t.caption}),(0,G.jsxs)(`div`,{className:`mt-2 inline-flex items-center gap-2 text-[10px] font-black uppercase tracking-[0.2em] text-muted-foreground`,children:[(0,G.jsxs)(`span`,{className:`text-primary`,children:[`Step `,n+1]}),(0,G.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,G.jsx)(`span`,{children:e.length})]})]})]},t.src))}),(0,G.jsx)(`div`,{className:`mt-4 flex items-center justify-center gap-2`,children:e.map((e,t)=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>a(t),"aria-label":`Go to slide ${t+1}: ${e.title}`,"aria-current":t===r?`true`:`false`,className:K(`h-2 rounded-full transition-all`,t===r?`w-8 bg-primary`:`w-2 bg-border hover:bg-muted-foreground/40`)},e.src))})]})}var x$=`wodwiki:text-filter-navigation`,S$=({paramName:e=`q`,placeholder:t=`Search…`,autoFocus:n=!1,className:r,navigationScope:i,inputTestId:a})=>{let[o,s]=cn(e,{defaultValue:``}),c=i??e,l=(0,W.useRef)(null);return(0,W.useEffect)(()=>{let e=e=>{e.key===`/`&&document.activeElement?.tagName!==`INPUT`&&document.activeElement?.tagName!==`TEXTAREA`&&(e.preventDefault(),l.current?.focus())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,G.jsxs)(`div`,{className:K(`flex items-center gap-3 px-6 lg:px-10 pb-3`,r),children:[(0,G.jsx)(ge,{className:`size-5 text-muted-foreground shrink-0`}),(0,G.jsx)(`input`,{ref:l,type:`text`,"data-testid":a,value:o,onChange:e=>s(e.target.value),onKeyDown:e=>{if(e.altKey||e.ctrlKey||e.metaKey||![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`,`Enter`].includes(e.key))return;let t=new CustomEvent(x$,{detail:{key:e.key,scopeId:c},cancelable:!0});window.dispatchEvent(t),t.defaultPrevented&&e.preventDefault()},placeholder:t,autoFocus:n,autoComplete:`off`,spellCheck:!1,className:`flex-1 bg-transparent border-none outline-none text-foreground placeholder:text-muted-foreground text-sm sm:text-base font-medium`}),o&&(0,G.jsx)(`button`,{onClick:()=>s(``),"aria-label":`Clear`,className:`text-muted-foreground hover:text-foreground transition-colors text-lg leading-none`,children:`×`})]})};function C$(e){let t=[],n=!1;for(let r of e){if(r.trim()===`---`){n=!n;continue}n||t.push(r)}return t}function w$(e){let t=e;return t=t.replace(/\*\*([^*]+)\*\*/g,`$1`),t=t.replace(/__([^_]+)__/g,`$1`),t=t.replace(/`([^`]+)`/g,`$1`),t=t.replace(/\[([^\]]+)\]\([^)]+\)/g,`$1`),t=t.replace(/\*\*/g,``),t=t.replace(/__/g,``),t=t.replace(/`/g,``),t.trim()}function T$(e){return new Date(e).toISOString().slice(0,10)}function E$(e,t){let n=t.trim().toLowerCase();return!n||e.name.toLowerCase().includes(n)||e.content.toLowerCase().includes(n)||e.date!==void 0&&T$(e.date).includes(n)}function D$(e){if(!e)return null;let t=C$(eo(e).split(`
174
174
  `)).map(e=>e.trim()).filter(e=>e.length>0&&!e.startsWith(`#`)&&!e.startsWith("```"))[0];return t?w$(t):null}var O$=({category:e,workoutItems:t,onSelect:n,showSearch:r=!0,variant:i=`card`,className:a,navigationScope:o=`q`,getItemActions:s})=>{let[c]=cn(`q`,{defaultValue:``}),[l,u]=(0,W.useState)(0),[d,f]=(0,W.useState)(0),p=(0,W.useRef)([]),m=(0,W.useMemo)(()=>t.filter(t=>t.category===e&&t.name.toLowerCase()!==`readme`).filter(e=>E$(e,c)),[t,e,c]),h=(0,W.useMemo)(()=>m.map(e=>({item:e,preview:D$(e.content),actions:s?.(e)??[{id:`open`,label:`Open`,onSelect:n}]})),[m,s,n]);return(0,W.useEffect)(()=>{if(h.length===0){u(0),f(0);return}let e=Math.min(l,h.length-1),t=h[e]?.actions.length??1;e!==l&&u(e),d>t-1&&f(t-1)},[h,d,l]),(0,W.useEffect)(()=>{p.current=[]},[h]),(0,W.useEffect)(()=>{u(0),f(0)},[c]),(0,W.useEffect)(()=>{(p.current[l]?.[d])?.scrollIntoView({block:`nearest`,inline:`nearest`})},[d,l]),(0,W.useEffect)(()=>{let e=e=>{let t=e;if(t.detail.scopeId===o&&h.length!==0)switch(t.detail.key){case`ArrowDown`:t.preventDefault(),u(e=>Math.min(e+1,h.length-1)),f(0);break;case`ArrowUp`:t.preventDefault(),u(e=>Math.max(e-1,0)),f(0);break;case`ArrowRight`:{let e=h[l]?.actions.length??1;if(e<=1)return;t.preventDefault(),f(t=>Math.min(t+1,e-1));break}case`ArrowLeft`:if((h[l]?.actions.length??1)<=1)return;t.preventDefault(),f(e=>Math.max(e-1,0));break;case`Enter`:{let e=h[l]?.actions[d],n=h[l]?.item;if(!e||!n)return;t.preventDefault(),e.onSelect(n);break}}};return window.addEventListener(x$,e),()=>{window.removeEventListener(x$,e)}},[h,o,d,l]),(0,G.jsxs)(`div`,{className:K(`flex flex-col`,i===`card`&&`rounded-3xl border border-border bg-card overflow-hidden shadow-2xl shadow-black/5`,a),children:[r?(0,G.jsx)(`div`,{className:`border-b border-border/60 bg-background/95 backdrop-blur-md`,children:(0,G.jsx)(S$,{placeholder:`Filter collection workouts…`,className:`pt-3`,navigationScope:o})}):null,h.length===0?(0,G.jsx)(`div`,{className:`px-6 py-10 text-sm font-medium text-muted-foreground`,children:`No workouts found.`}):(0,G.jsx)(`div`,{className:`divide-y divide-border/60`,role:`listbox`,"aria-label":`Collection workouts`,children:h.map((e,t)=>{let n=t===l;return(0,G.jsx)(`div`,{role:`option`,"aria-selected":n,className:K(`flex items-stretch gap-2 px-3 py-2 transition-colors`,n?`bg-muted/50`:`hover:bg-muted/40`),children:e.actions.map((r,i)=>{let a=i===0;return(0,G.jsx)(`button`,{ref:e=>{p.current[t]||(p.current[t]=[]),p.current[t][i]=e},onClick:()=>r.onSelect(e.item),onMouseEnter:()=>{u(t),f(i)},className:K(`transition-colors text-left`,a?`flex-1 flex items-center gap-4 rounded-2xl px-3 py-2 hover:bg-background/80`:`shrink-0 self-center rounded-full border border-border px-3 py-2 text-[11px] font-black uppercase tracking-[0.18em] text-muted-foreground hover:bg-background/80 hover:text-foreground`,n&&i===d&&`bg-background text-foreground ring-2 ring-primary/40`),children:a?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`flex-shrink-0 size-10 rounded-xl bg-muted flex items-center justify-center transition-colors`,children:(0,G.jsx)(be,{className:`size-4 text-primary`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`h3`,{className:`text-sm font-bold text-foreground truncate uppercase tracking-tight`,children:e.item.displayName??e.item.name}),e.preview?(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground font-medium truncate mt-1`,children:e.preview}):null]}),e.item.date===void 0?null:(0,G.jsx)(`span`,{className:`shrink-0 self-center text-[11px] font-semibold uppercase tracking-wide text-muted-foreground`,children:zb(new Date(e.item.date))}),(0,G.jsx)(En,{className:`size-4 text-muted-foreground shrink-0 transition-opacity`})]}):r.label},r.id)})},e.item.id)})})]})};function k$(){return(0,W.useEffect)(()=>{AB().catch(e=>console.warn(`[queryService] page source population failed`,e))},[]),(0,W.useSyncExternalStore)(NB,MB)}function A$(e,t){let n=e.find(e=>e.key===t&&!e.negate);return n&&n.values.length===1?n.values[0].value:null}function j$(e){let t=e.trim();if(!t.startsWith(`:`))return null;let n=lI(t),r=X(n);if(r.error||!xh(r))return null;let i=`?q=${encodeURIComponent(n)}`;switch(r.target){case`effort`:return`/efforts${i}`;case`session`:case`segment`:case`event`:return`/sessions${i}`;case`notebook`:{let e=A$(r.filters,`notebook`);if(e){let t=Sa(e);return`/notebook/${encodeURIComponent(t)}${i}`}return`/notebooks${i}`}case`page`:return`/pages${i}`;case`tag`:return`/tags${i}`;case`equipment`:return`/equipment${i}`;case`note`:case`block`:{let e=A$(r.filters,`notebook`);if(e){let t=Sa(e);return t===`journal`?`/journal${i}`:t===`playground`?`/playgrounds${i}`:`/notebook/${encodeURIComponent(t)}${i}`}let t=A$(r.filters,`source`);return t===`journal`?`/journal${i}`:t===`playground`?`/playgrounds${i}`:t===`feeds`||t===`notebooks`||t===`notebook`||t===`guides`?`/notes${i}`:A$(r.filters,`type`)===`dashboard`?`/dashboards${i}`:`/notes${i}`}default:return null}}function M$(e){let t=e.trim().split(/\s+/).filter(e=>e!==``);if(t.length===0)return;let n={};for(let e of t){let t=e.indexOf(`=`);if(t===-1)continue;let r=e.slice(0,t),i=e.slice(t+1);i.startsWith(`"`)&&i.endsWith(`"`)&&i.length>=2&&(i=i.slice(1,-1)),n[r]=i}return Object.keys(n).length===0?void 0:n}var N$=[{label:`Auto`,spanCols:void 0,spanFull:!1},{label:`1 col`,spanCols:1,spanFull:!1},{label:`2 cols`,spanCols:2,spanFull:!1},{label:`4 cols`,spanCols:4,spanFull:!1},{label:`Full row`,spanCols:void 0,spanFull:!0}],P$=300;function F$({open:e,...t}){return e?(0,G.jsx)(I$,{...t}):null}function I$({onClose:e,mode:t,initialWql:n,initial:r,subsetQuery:i,destination:a,executor:o,rangeStart:s,rangeEnd:c,preferredUnit:l,tokenValues:u,onApply:d,footerExtra:f,applyLabel:p=t===`edit`?`Apply changes`:`Add widget`}){let m=t===`inspect`,[h,g]=(0,W.useState)(n),[_,v]=(0,W.useState)(r?.title??``),[y,b]=(0,W.useState)(r?.question??``),[x,S]=(0,W.useState)(r?.type||`table`),[C,w]=(0,W.useState)({spanCols:r?.spanCols,spanFull:r?.spanFull}),[T,E]=(0,W.useState)(Object.entries(r?.attributes??{}).map(([e,t])=>`${e}=${t}`).join(` `)),[D,O]=(0,W.useState)(!1),[k,A]=(0,W.useState)(()=>!X(n).error),[j,M]=(0,W.useState)(null),N=(0,W.useMemo)(()=>X(h.trim()),[h]),P=x===``?`table`:x,F=!N.error&&h.trim()!==``&&(xh(N)?P===`table`||P===`list`:P!==`list`),[I,L]=(0,W.useState)({status:`idle`}),R=(0,W.useRef)(0);(0,W.useEffect)(()=>{if(!F||!o){L(e=>e.status===`ok`?e:{status:`idle`});return}let e=Vv(h.trim(),u??{});if(e.missing.length>0){L({status:`blocked`,message:Mv(e.missing)});return}let t=++R.current;L({status:`loading`});let n=setTimeout(()=>{new b_(_S(o,{rangeStart:s,rangeEnd:c,preferredUnit:l})).run(e.query).then(n=>{if(R.current!==t)return;let r=n.outputs[0],i=r?.error??n.diagnostics[0];if(!r||i){L({status:`error`,message:i??`widget produced no output`});return}L({status:`ok`,result:yS(X(e.query),r)})}).catch(e=>{R.current===t&&L({status:`error`,message:e instanceof Error?e.message:String(e)})})},P$);return()=>clearTimeout(n)},[h,F,o,s,c,l,u]);let z=!F&&I.status===`ok`,ee=F&&k,te=async()=>{if(!(!ee||!d||D)&&!(X(h.trim()).error||h.trim()===``)){O(!0),M(null);try{await d({title:_.trim()||void 0,question:y.trim()||void 0,type:x===`table`?``:x,spanCols:C.spanFull?void 0:C.spanCols,spanFull:C.spanFull||void 0,wql:h.trim(),attributes:M$(T)}),e()}catch(e){M(e instanceof Error?e.message:String(e))}finally{O(!1)}}};return(0,G.jsx)(zC,{open:!0,onClose:e,presentation:`sheet`,title:t===`inspect`?`Inspect widget`:t===`edit`?`Edit widget`:`Add widget`,description:m?`Read-only — clone the dashboard to edit this widget.`:`Dataset, calculation, visualization, preview — then apply.`,footer:m&&!f?void 0:(0,G.jsxs)(G.Fragment,{children:[f,(0,G.jsx)(`div`,{className:`flex-1`}),!m&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,onClick:e,className:`min-h-12 px-3 py-1.5 text-xs font-medium text-muted-foreground hover:text-foreground rounded-lg border border-border hover:bg-muted transition-colors`,children:`Cancel`}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`widget-composer-apply`,disabled:!ee||D,title:N.error?N.error:void 0,onClick:()=>void te(),className:`min-h-12 px-3 py-1.5 text-xs font-medium text-primary-foreground bg-primary hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed rounded-lg shadow transition-colors`,children:D?`Applying…`:p})]})]}),children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[i!==void 0&&(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`div`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground mb-1.5`,children:`Dataset — the subset`}),i?(0,G.jsx)(`code`,{className:`block rounded-md border border-border bg-muted/40 px-3 py-2 font-mono text-xs text-foreground break-all`,"data-testid":`widget-composer-subset`,children:i}):(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,"data-testid":`widget-composer-subset`,children:`No subset — the calculation runs over the whole store.`})]}),a,(0,G.jsxs)(`section`,{children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-1.5`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground`,children:`Query & Filter Manipulation`}),!m&&u&&Object.keys(u).length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap items-center gap-1`,"data-testid":`widget-composer-token-chips`,children:Object.keys(u).map(e=>(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{let t=h.trim();e===`scope`?t.includes(`{}`)?g(t.replace(`{}`,`{$scope}`)):t.includes(`$scope`)||g(`${t} where :note{$scope}`):t.includes(`$${e}`)||g(t.replace(/\{([^}]*)\}/,(t,n)=>n.trim()?`{${n},${e}:$${e}}`:`{${e}:$${e}}`))},className:`rounded border border-primary/30 bg-primary/10 px-1.5 py-0.5 font-mono text-[10px] font-semibold text-primary hover:bg-primary/20 transition-colors`,title:`Bind $${e} token into query`,children:[`+$`,e]},e))})]}),m?(0,G.jsx)(`code`,{className:`block rounded-md border border-border bg-muted/40 px-3 py-2 font-mono text-xs text-foreground break-all`,"data-testid":`widget-composer-query`,children:h}):(0,G.jsx)(rT,{query:h,onQueryChange:g,onValidationChange:e=>A(e.valid),showDiagnostics:!0,...o?{execute:e=>o.runQuery(e.raw,{rangeStart:s,rangeEnd:c,preferredUnit:l})}:{}}),!m&&h.trim()!==``&&(0,G.jsx)(`code`,{className:`mt-1.5 block rounded-md border border-primary/30 bg-primary/[0.04] px-3 py-2 font-mono text-xs text-foreground break-all`,"data-testid":`widget-composer-wql`,children:h.trim()}),!m&&(0,G.jsxs)(`div`,{className:`mt-3 flex flex-col gap-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground`,children:`Visualization`}),(0,G.jsx)(`select`,{value:x,onChange:e=>S(e.target.value),"data-testid":`widget-composer-type`,"aria-label":`Visualization`,className:`rounded-md border border-border bg-card px-2 py-1 text-xs font-mono text-foreground focus:outline-none focus:border-primary`,children:Ov.map(e=>(0,G.jsx)(`option`,{value:e,children:e},e))})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-5 gap-1.5`,role:`group`,"aria-label":`Visualization picker`,children:Ov.map(e=>{let t=x===e;return(0,G.jsx)(`button`,{type:`button`,"aria-pressed":t,onClick:()=>S(e),className:`rounded-lg border px-2 py-1.5 text-[11px] font-semibold truncate transition-colors ${t?`border-primary bg-primary/10 text-primary`:`border-border/70 bg-card text-muted-foreground hover:text-foreground hover:bg-muted/60`}`,children:e},e)})})]})]}),!m&&(0,G.jsxs)(`section`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3`,children:[(0,G.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground`,children:`Title`}),(0,G.jsx)(`input`,{type:`text`,value:_,onChange:e=>v(e.target.value),placeholder:`Weekly volume`,"data-testid":`widget-composer-title`,className:`rounded-lg border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus:border-primary`})]}),(0,G.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,G.jsxs)(`span`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground`,children:[`Coaching question `,(0,G.jsx)(`span`,{className:`normal-case font-normal`,children:`(optional)`})]}),(0,G.jsx)(`input`,{type:`text`,value:y,onChange:e=>b(e.target.value),placeholder:`How much work per week?`,"data-testid":`widget-composer-question`,className:`rounded-lg border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus:border-primary`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,G.jsx)(`span`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground`,children:`Size`}),(0,G.jsx)(`div`,{className:`inline-flex items-center gap-1 rounded-lg border border-border bg-card p-1 self-start`,children:N$.map(e=>{let t=e.spanFull?C.spanFull===!0:e.spanCols==null?!C.spanFull&&C.spanCols==null:!C.spanFull&&C.spanCols===e.spanCols;return(0,G.jsx)(`button`,{type:`button`,"aria-pressed":t,onClick:()=>w(e.spanFull?{spanFull:!0}:{spanCols:e.spanCols}),className:`text-xs px-2.5 py-1 rounded-md transition-colors ${t?`bg-primary text-primary-foreground font-medium`:`text-muted-foreground hover:text-foreground hover:bg-muted`}`,children:e.label},e.label)})})]}),(0,G.jsxs)(`label`,{className:`flex flex-col gap-1 sm:col-span-2`,children:[(0,G.jsxs)(`span`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground`,children:[`Parameters `,(0,G.jsx)(`span`,{className:`normal-case font-normal`,children:`(goal targets, space-separated)`})]}),(0,G.jsx)(`input`,{type:`text`,value:T,onChange:e=>E(e.target.value),placeholder:`300 200`,"data-testid":`widget-composer-params`,className:`rounded-lg border border-border bg-card px-3 py-1.5 text-sm font-mono text-foreground focus:outline-none focus:border-primary`})]})]}),m&&(0,G.jsxs)(`section`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs text-muted-foreground`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`font-bold uppercase tracking-wider text-[10px]`,children:`Title`}),(0,G.jsx)(`div`,{className:`text-foreground`,children:r?.title||`—`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`font-bold uppercase tracking-wider text-[10px]`,children:`Question`}),(0,G.jsx)(`div`,{className:`text-foreground`,children:r?.question||`—`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`font-bold uppercase tracking-wider text-[10px]`,children:`Type`}),(0,G.jsx)(`div`,{className:`font-mono text-foreground`,children:x||`table`})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`span`,{className:`font-bold uppercase tracking-wider text-[10px]`,children:`Size`}),(0,G.jsx)(`div`,{className:`font-mono text-foreground`,children:r?.spanFull?`full row`:r?.spanCols?`${r.spanCols} cols`:`default`})]})]}),(0,G.jsxs)(`section`,{children:[(0,G.jsxs)(`div`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground mb-1.5 flex items-center gap-2`,children:[`Preview`,z&&(0,G.jsx)(`span`,{"data-testid":`widget-preview-stale`,className:`font-medium normal-case tracking-normal text-amber-600`,children:`stale — showing the last valid query`})]}),(0,G.jsxs)(`div`,{className:`rounded-lg border border-border bg-background/50 p-3 h-56 overflow-hidden`,children:[I.status===`idle`&&(F?(0,G.jsx)(`div`,{className:`h-full flex items-center justify-center text-xs text-muted-foreground`,children:`Preview runs as you compose…`}):(0,G.jsx)(`div`,{className:`h-full flex items-center justify-center text-xs text-destructive font-mono px-4 text-center`,children:N.error?N.error:xh(N)?`find: queries return things — use a table or list widget instead`:`Compose a calculation to preview.`})),I.status===`loading`&&(0,G.jsx)(`div`,{className:`h-full flex items-center justify-center text-xs text-muted-foreground`,children:`Running preview…`}),I.status===`blocked`&&(0,G.jsx)(`div`,{className:`h-full flex items-center justify-center text-xs text-destructive font-mono px-4 text-center`,children:I.message}),I.status===`error`&&(0,G.jsx)(`div`,{className:`h-full flex items-center justify-center text-xs text-destructive font-mono px-4 text-center`,children:I.message}),I.status===`ok`&&(0,G.jsx)(RS,{type:x,result:I.result,label:_.trim()||void 0,unit:l,attributes:M$(T)})]})]}),j&&(0,G.jsx)(`p`,{role:`alert`,"data-testid":`widget-composer-error`,className:`rounded-md border border-destructive/40 bg-destructive/10 px-3 py-2 text-xs text-destructive font-mono`,children:j})]})})}var L$=`__new__`;function R$(e){return e.open?(0,G.jsx)(z$,{...e},e.subsetQuery??`(whole-store)`):null}function z$({onOpenChange:e,initialQuery:t,subsetQuery:n,rangeStart:r,rangeEnd:i,preferredUnit:a}){let o=ln(),{items:s,loading:c}=_F(),l=s.filter(e=>e.editable),[u,d]=(0,W.useState)(l[0]?.slug??L$),[f,p]=(0,W.useState)(``),[m,h]=(0,W.useState)(null),g=()=>e(!1);return(0,G.jsx)(F$,{open:!0,onClose:g,mode:`add`,initialWql:t,subsetQuery:n,rangeStart:r,rangeEnd:i,preferredUnit:a,onApply:async e=>{h(null);let t={title:e.title,question:e.question,type:e.type,spanCols:e.spanCols,spanFull:e.spanFull,wql:e.wql,attributes:e.attributes};try{if(u===L$){let e=f.trim()||`New Dashboard`,n=await DF.createDashboard(e);await TF.update(n,ty(n.rawContent,t)),g(),o(oF(qv(e)))}else{let e=await TF.resolve(u);await TF.update(e,ty(e.rawContent,t)),g(),o(oF(u))}}catch(e){let t=e instanceof Error?e.message:String(e);throw h(t),e}},applyLabel:`Add to dashboard`,destination:(0,G.jsxs)(`section`,{children:[(0,G.jsx)(`div`,{className:`text-[11px] font-bold uppercase tracking-wider text-muted-foreground mb-1.5`,children:`Destination`}),c?(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Loading dashboards…`}):(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[l.map(e=>(0,G.jsx)(`button`,{type:`button`,"aria-pressed":u===e.slug,onClick:()=>d(e.slug),className:`rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors ${u===e.slug?`border-primary/60 bg-primary/10 text-primary`:`border-border text-muted-foreground hover:text-foreground hover:bg-muted`}`,children:e.title},e.slug)),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`dashboard-dest-new`,"aria-pressed":u===L$,onClick:()=>d(L$),className:`flex items-center gap-1 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors ${u===L$?`border-primary/60 bg-primary/10 text-primary`:`border-border text-muted-foreground hover:text-foreground hover:bg-muted`}`,children:[(0,G.jsx)(Qn,{className:`size-3`}),` New dashboard`]})]}),u===L$&&(0,G.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.target.value),placeholder:`New Dashboard`,"data-testid":`dashboard-new-title`,className:`w-full sm:w-64 rounded-lg border border-border bg-card px-3 py-1.5 text-sm text-foreground focus:outline-none focus:border-primary`})]}),m&&(0,G.jsxs)(`p`,{role:`alert`,"data-testid":`dashboard-save-error`,className:`mt-2 text-xs text-destructive font-mono`,children:[`Could not save: `,m]})]})})}var B$=new Set([`pdf`,`doc`,`docx`,`xls`,`xlsx`,`ppt`,`pptx`,`zip`,`tar`,`gz`,`rar`,`mp4`,`mov`,`avi`,`mkv`,`webm`,`mp3`,`wav`,`flac`,`png`,`jpg`,`jpeg`,`gif`,`svg`,`webp`]);function V$(e){let t=e.split(`.`).pop()?.split(`?`)[0]?.toLowerCase()??``;return B$.has(t)}function H$(e){return/^https?:\/\//.test(e)||e.startsWith(`//`)}function U$({queryText:e,widgetType:t,widgetError:n,attributes:r}){let i=k$(),a=wn(),[o,s]=(0,W.useState)(!1),c=/^\/dashboards?(?:\/|$)/.test(a.pathname),l=X(e),u=!l.error&&xh(l)?e:null;return i?(0,G.jsxs)(`div`,{className:`my-5 not-prose`,children:[(0,G.jsx)(aT,{query:e,widgetType:t,widgetError:n,attributes:r,executor:IB,readOnly:!0,onAddToDashboard:c?void 0:()=>s(!0),noteHref:e=>AL(`blockContentId`in e||`dataType`in e?yL(e):pL(e))}),(0,G.jsx)(R$,{open:o,onOpenChange:s,initialQuery:e,subsetQuery:u})]}):(0,G.jsx)(`div`,{className:`my-5 not-prose text-xs text-muted-foreground py-2`,children:`Loading…`})}function W$(e){let{meta:t,body:n}=Za(e);return Object.keys(t).length===0&&n===e?{fields:null,body:e}:{fields:t,body:n.trim()}}var G$={table({children:e}){return(0,G.jsx)(`div`,{className:`my-6 overflow-x-auto rounded-xl border border-border`,children:(0,G.jsx)(`table`,{className:`w-full text-sm border-collapse`,children:e})})},thead({children:e}){return(0,G.jsx)(`thead`,{className:`bg-muted/50 text-left`,children:e})},tbody({children:e}){return(0,G.jsx)(`tbody`,{className:`divide-y divide-border/50`,children:e})},tr({children:e}){return(0,G.jsx)(`tr`,{className:`hover:bg-muted/20 transition-colors`,children:e})},th({children:e}){return(0,G.jsx)(`th`,{className:`px-4 py-2.5 text-[11px] font-black tracking-widest uppercase text-muted-foreground border-b border-border`,children:e})},td({children:e}){return(0,G.jsx)(`td`,{className:`px-4 py-2.5 text-sm text-foreground`,children:e})},img({src:e,alt:t,node:n}){let r=n?.properties??{},i=r.width,a=r.height;return(0,G.jsxs)(`figure`,{className:`my-6`,children:[(0,G.jsx)(`img`,{src:e??``,alt:t??``,loading:`lazy`,width:i,height:a,className:`rounded-xl border border-border max-w-full h-auto`}),t&&(0,G.jsx)(`figcaption`,{className:`mt-2 text-center text-xs text-muted-foreground italic`,children:t})]})},a({href:e,children:t}){let n=e??``;if(n.startsWith(`:`)){let e=n;try{e=decodeURIComponent(n)}catch{}let r=j$(e);if(r)return(0,G.jsx)(rn,{to:r,className:`underline underline-offset-2 transition-colors text-primary hover:text-primary/70`,children:t})}let r=H$(n),i=V$(n);return(0,G.jsxs)(`a`,{href:n,rel:r?`noopener noreferrer`:void 0,target:r||i?`_blank`:void 0,className:K(`underline underline-offset-2 transition-colors`,i?`text-primary font-medium`:`text-primary hover:text-primary/70`),children:[t,r&&(0,G.jsx)(`span`,{className:`ml-0.5 text-[10px] align-super opacity-60`,children:`↗`}),i&&!r&&(0,G.jsx)(`span`,{className:`ml-0.5 text-[10px] align-super opacity-60`,children:`⬇`})]})},code({children:e,className:t}){let n=t?.replace(`language-`,``)??``,r=typeof e==`string`?e:Array.isArray(e)?e.join(``):String(e??``);if(!t&&!r.includes(`
175
175
  `))return(0,G.jsx)(`code`,{className:`px-1.5 py-0.5 rounded-md bg-muted font-mono text-[0.85em] text-foreground`,children:e});if(n===`query`||n.startsWith(`query:`)||n.startsWith(`query `)||n.startsWith(`widget:`)){let t=(typeof e==`string`?e:Array.isArray(e)?e.join(``):String(e??``)).trim(),r=n.replace(/^(?:query|widget)[:\s]?/,``).trim(),i=r?Pv(r):void 0;return(0,G.jsx)(U$,{queryText:t,widgetType:i?.type,widgetError:i?.error,attributes:i?.attributes})}return(0,G.jsxs)(`div`,{className:`my-5 rounded-xl overflow-hidden border border-border`,children:[n&&(0,G.jsx)(`div`,{className:`flex items-center gap-2 px-4 py-2 bg-muted border-b border-border`,children:(0,G.jsx)(`span`,{className:`text-[10px] font-black tracking-widest uppercase text-muted-foreground`,children:n})}),(0,G.jsx)(`pre`,{className:`overflow-x-auto p-4 bg-muted/30`,children:(0,G.jsx)(`code`,{className:`font-mono text-sm text-foreground`,children:e})})]})},h1({children:e,id:t}){return(0,G.jsx)(`h1`,{id:t,className:`text-2xl lg:text-3xl font-black tracking-tight text-foreground uppercase leading-tight mt-10 mb-4 first:mt-0`,children:e})},h2({children:e,id:t}){return(0,G.jsx)(`h2`,{id:t,className:`text-xl lg:text-2xl font-black tracking-tight text-foreground uppercase leading-tight mt-8 mb-3 first:mt-0`,children:e})},h3({children:e,id:t}){return(0,G.jsx)(`h3`,{id:t,className:`text-base lg:text-lg font-black tracking-wide text-foreground uppercase mt-6 mb-2 first:mt-0`,children:e})},h4({children:e,id:t}){return(0,G.jsx)(`h4`,{id:t,className:`text-sm font-black tracking-widest text-primary uppercase mt-5 mb-2 first:mt-0`,children:e})},p({children:e}){return(0,G.jsx)(`p`,{className:`text-sm lg:text-[15px] font-medium text-muted-foreground leading-relaxed my-4 first:mt-0`,children:e})},ul({children:e}){return(0,G.jsx)(`ul`,{className:`my-4 pl-5 space-y-1.5 list-disc list-outside text-left text-sm text-muted-foreground font-medium leading-relaxed`,children:e})},ol({children:e}){return(0,G.jsx)(`ol`,{className:`my-4 pl-5 space-y-1.5 list-decimal list-outside text-left text-sm text-muted-foreground font-medium leading-relaxed`,children:e})},li({children:e}){return(0,G.jsx)(`li`,{className:`leading-relaxed`,children:e})},blockquote({children:e}){return(0,G.jsx)(`blockquote`,{className:`my-5 pl-4 border-l-2 border-primary/40 text-muted-foreground italic text-sm`,children:e})},hr(){return(0,G.jsx)(`hr`,{className:`my-8 border-border/50`})},strong({children:e}){return(0,G.jsx)(`strong`,{className:`font-black text-foreground`,children:e})},em({children:e}){return(0,G.jsx)(`em`,{className:`italic text-foreground/80`,children:e})}},K$={...G$,p({children:e}){return(0,G.jsx)(`p`,{className:`text-3xl sm:text-4xl lg:text-5xl font-black tracking-tight text-foreground leading-[1.08] my-0`,children:e})},strong({children:e}){let t=W.Children.toArray(e).map(e=>typeof e==`string`||typeof e==`number`?String(e):``).join(``).trim();return t.includes(`Write it in Markdown`)&&t.includes(`Run it as a Timer`)&&t.includes(`Own the Analytics`)?(0,G.jsxs)(`span`,{className:`flex flex-col select-none mt-4 w-full gap-5 sm:gap-7`,children:[(0,G.jsxs)(`span`,{className:`block text-3xl sm:text-4xl lg:text-5xl text-primary font-black text-left pl-[5%] sm:pl-[10%] transform hover:translate-x-1 transition-transform duration-200`,children:[`Write it in `,(0,G.jsx)(`span`,{className:`inline-block border-b-4 border-primary/70 pb-1 hover:scale-105 transition-transform duration-200`,children:`Markdown`}),`.`]}),(0,G.jsxs)(`span`,{className:`block text-3xl sm:text-4xl lg:text-5xl text-primary font-black text-center transform hover:scale-[1.02] transition-transform duration-200`,children:[(0,G.jsx)(`span`,{className:`inline-block border-b-4 border-primary/70 pb-1 hover:scale-105 transition-transform duration-200`,children:`Run`}),` it as a Timer.`]}),(0,G.jsxs)(`span`,{className:`block text-3xl sm:text-4xl lg:text-5xl text-primary font-black text-right pr-[5%] sm:pr-[10%] transform hover:-translate-x-1 transition-transform duration-200`,children:[`Own the `,(0,G.jsx)(`span`,{className:`inline-block border-b-4 border-primary/70 pb-1 hover:scale-105 transition-transform duration-200`,children:`Analytics`}),`.`]})]}):(0,G.jsx)(`strong`,{className:`font-black text-foreground`,children:e})}},q$={...G$,p({children:e}){return(0,G.jsx)(`p`,{className:`text-base lg:text-lg font-medium text-foreground/75 leading-relaxed my-4 first:mt-0`,children:e})}},J$=[Bn];function Y$(e){return e.startsWith(`:`)?e:Mn(e)}function X$(e){return e.type===`text`&&typeof e.value==`string`?e.value:(e.children??[]).map(X$).join(``)}function Z$(e){return e.trim().toLowerCase().replace(/[^\p{L}\p{N} _-]/gu,``).replace(/ /g,`-`).replace(/-+/g,`-`)||`heading`}var Q$=()=>e=>{let t=new Map,n=e=>{if(e.tagName&&/^h[1-6]$/.test(e.tagName)){let n=Z$(X$(e)),r=t.get(n)??0;t.set(n,r+1),(e.properties??={}).id=r===0?n:`${n}-${r}`}for(let t of e.children??[])n(t)};n(e)};function $$({fields:e}){let t=Object.entries(e);return t.length===0?null:(0,G.jsxs)(`div`,{className:`my-6 rounded-xl border border-border bg-muted/30 overflow-hidden`,children:[(0,G.jsx)(`div`,{className:`px-4 py-2 border-b border-border bg-muted/50`,children:(0,G.jsx)(`span`,{className:`text-[10px] font-black tracking-[0.2em] uppercase text-muted-foreground`,children:`Metadata`})}),(0,G.jsx)(`dl`,{className:`divide-y divide-border/50`,children:t.map(([e,t])=>(0,G.jsxs)(`div`,{className:`flex items-baseline gap-4 px-4 py-2`,children:[(0,G.jsx)(`dt`,{className:`text-[11px] font-semibold text-muted-foreground uppercase tracking-wide min-w-[100px] shrink-0`,children:e}),(0,G.jsx)(`dd`,{className:`text-sm text-foreground break-words`,children:Array.isArray(t)?t.join(`, `):String(t)})]},e))})]})}var e1={default:G$,heroLead:K$,heroBody:q$};function t1({prose:e,className:t,variant:n=`default`}){if(!e)return null;let{fields:r,body:i}=W$(e);return(0,G.jsxs)(`div`,{className:K(`prose-canvas`,t),children:[r&&(0,G.jsx)($$,{fields:r}),i&&(0,G.jsx)(pn,{remarkPlugins:J$,rehypePlugins:[Q$],urlTransform:Y$,components:e1[n],children:i})]})}var n1=({activations:e,fullBleed:t,runState:n,deps:r})=>{if(e.length===0)return null;let i=e[0];if(RL(i)&&n){let a=e.slice(1),o=n.isReconnect?(0,G.jsxs)(`button`,{onClick:n.onReconnect,className:K(`flex items-center gap-2 px-5 py-2 text-[11px] font-black uppercase tracking-widest`,`rounded-full border transition-all active:scale-95`,`border-amber-500/40 bg-amber-500/15 text-amber-600 hover:bg-amber-500/20`,`dark:text-amber-400`,t&&`mx-auto`),children:[(0,G.jsx)(qe,{className:`size-3.5`}),`View`]}):(0,G.jsxs)(`button`,{type:`button`,onClick:n.onRun,className:K(`flex items-center gap-2 transition-all active:scale-95 bg-primary text-primary-foreground hover:bg-primary/90 font-black uppercase tracking-widest rounded-full shadow-lg shadow-primary/25 min-h-[44px] px-6 py-2 text-xs`,t&&`mx-auto`),children:[(()=>{let e=i.icon||dr;return(0,G.jsx)(e,{className:`shrink-0 size-4 fill-current sm:size-3`})})(),(0,G.jsx)(`span`,{children:i.label})]});return(0,G.jsxs)(`div`,{className:K(`flex flex-wrap items-center gap-4 mt-8`,t&&`justify-center`),children:[o,a.map((e,t)=>(0,G.jsx)(`button`,{onClick:()=>FL(e.action,r),className:`flex items-center gap-2 px-6 py-2 text-xs font-black uppercase tracking-widest rounded-full bg-background border border-border text-foreground hover:bg-muted transition-all active:scale-95`,children:e.label},e.id||t))]})}return(0,G.jsx)(`div`,{className:K(`flex flex-wrap gap-4 mt-8`,t&&`justify-center`),children:e.map((e,t)=>(0,G.jsx)(`button`,{onClick:()=>FL(e.action,r),className:K(`flex items-center gap-2 px-8 py-4 text-xs font-black uppercase tracking-widest rounded-full transition-all active:scale-95`,t===0?`bg-primary text-primary-foreground shadow-xl shadow-primary/25 hover:scale-[1.04]`:`bg-background border border-border text-foreground hover:bg-muted`),children:e.label},e.id||t))})},r1=({examples:e,activeIndex:t,onSelect:n})=>e.length===0?null:(0,G.jsx)(`div`,{className:`mt-6 rounded-2xl border border-border/70 bg-card/80 backdrop-blur-sm`,children:(0,G.jsx)(`div`,{className:`flex flex-wrap items-center gap-2 px-3 py-3`,children:e.map((e,r)=>{let i=r===t,a=e.anchor===!0&&!i,o=!!e.badge&&a;return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>n(r),"aria-current":i?`true`:void 0,className:K(`relative rounded-full px-4 py-2 text-[11px] font-black uppercase tracking-[0.18em] transition-all active:scale-95`,i?`bg-primary text-primary-foreground shadow-lg shadow-primary/25`:a?`border border-brand bg-brand/5 text-brand-deep hover:bg-brand/10 dark:text-brand-light`:`border border-border bg-background text-muted-foreground hover:bg-muted hover:text-foreground`),children:[e.label,o?(0,G.jsx)(`span`,{className:`ml-2 inline-block rounded-pill bg-brand px-1.5 py-0.5 align-middle text-[8px] font-black leading-none tracking-[0.12em] text-background`,children:e.badge}):null]},`${e.label}-${r}`)})})}),i1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`struct-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00E676`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#00F2FF`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#struct-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M35 35 L65 35 L65 45 L45 45 L45 65 L35 65 Z`,fill:`url(#struct-grad)`}),(0,G.jsx)(`path`,{d:`M55 45 L65 45 L65 65 L45 65 L45 55 L55 55 Z`,fill:`url(#struct-grad)`,opacity:`0.7`})]}),a1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`proto-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#FFD600`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#FFAB00`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#proto-grad)`,strokeWidth:`4`}),(0,G.jsx)(`circle`,{cx:`50`,cy:`50`,r:`5`,fill:`url(#proto-grad)`}),(0,G.jsx)(`circle`,{cx:`50`,cy:`50`,r:`15`,fill:`none`,stroke:`url(#proto-grad)`,strokeWidth:`2`,strokeDasharray:`4 2`}),(0,G.jsx)(`circle`,{cx:`50`,cy:`50`,r:`25`,fill:`none`,stroke:`url(#proto-grad)`,strokeWidth:`1`,opacity:`0.5`}),(0,G.jsx)(`line`,{x1:`50`,y1:`50`,x2:`50`,y2:`25`,stroke:`url(#proto-grad)`,strokeWidth:`4`,strokeLinecap:`round`})]}),o1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`complex-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#F50057`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#D500F9`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#complex-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M40 35 H60 V45 A5 5 0 0 1 60 55 V65 H40 V55 A5 5 0 0 0 40 45 Z`,fill:`url(#complex-grad)`})]}),s1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsxs)(`defs`,{children:[(0,G.jsxs)(`linearGradient`,{id:`basics-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00F2FF`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#6200EA`,stopOpacity:1}})]}),(0,G.jsxs)(`filter`,{id:`glow`,x:`-20%`,y:`-20%`,width:`140%`,height:`140%`,children:[(0,G.jsx)(`feGaussianBlur`,{stdDeviation:`3`,result:`blur`}),(0,G.jsx)(`feComposite`,{in:`SourceGraphic`,in2:`blur`,operator:`over`})]})]}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#basics-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M55 20 L30 55 L45 55 L40 85 L70 45 L55 45 Z`,fill:`url(#basics-grad)`,filter:`url(#glow)`})]}),c1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`basics-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00F2FF`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#6200EA`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#basics-grad)`,strokeWidth:`4`}),(0,G.jsx)(`text`,{x:`50`,y:`65`,fontFamily:`monospace`,fontSize:`40`,fontWeight:`bold`,fill:`url(#basics-grad)`,textAnchor:`middle`,children:`10`})]}),l1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`basics-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00F2FF`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#6200EA`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#basics-grad)`,strokeWidth:`4`}),(0,G.jsx)(`rect`,{x:`30`,y:`30`,width:`40`,height:`8`,rx:`2`,fill:`url(#basics-grad)`}),(0,G.jsx)(`rect`,{x:`30`,y:`45`,width:`40`,height:`8`,rx:`2`,fill:`url(#basics-grad)`}),(0,G.jsx)(`rect`,{x:`30`,y:`60`,width:`40`,height:`8`,rx:`2`,fill:`url(#basics-grad)`})]}),u1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`struct-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00E676`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#00F2FF`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#struct-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M50 30 A20 20 0 1 1 35.8 35.8 L30 30 M35.8 35.8 L42 38`,fill:`none`,stroke:`url(#struct-grad)`,strokeWidth:`6`,strokeLinecap:`round`})]}),d1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`struct-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00E676`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#00F2FF`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#struct-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M30 40 L45 40 M30 50 L55 50 M30 60 L70 60`,fill:`none`,stroke:`url(#struct-grad)`,strokeWidth:`6`,strokeLinecap:`round`}),(0,G.jsx)(`text`,{x:`50`,y:`30`,fontFamily:`monospace`,fontSize:`12`,fill:`url(#struct-grad)`,textAnchor:`middle`,children:`21-15-9`})]}),f1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`proto-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#FFD600`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#FFAB00`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#proto-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M35 35 H65 V55 L50 70 L35 55 Z`,fill:`url(#proto-grad)`}),(0,G.jsx)(`circle`,{cx:`50`,cy:`45`,r:`4`,fill:`#0b1326`})]}),p1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`metric-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00E5FF`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#1DE9B6`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#metric-grad)`,strokeWidth:`4`}),(0,G.jsx)(`rect`,{x:`30`,y:`60`,width:`10`,height:`15`,fill:`url(#metric-grad)`}),(0,G.jsx)(`rect`,{x:`45`,y:`40`,width:`10`,height:`35`,fill:`url(#metric-grad)`}),(0,G.jsx)(`rect`,{x:`60`,y:`25`,width:`10`,height:`50`,fill:`url(#metric-grad)`})]}),m1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`metric-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#00E5FF`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#1DE9B6`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#metric-grad)`,strokeWidth:`4`}),(0,G.jsx)(`path`,{d:`M35 40 L65 60 M65 40 L35 60 M35 30 H65 M35 70 H65`,fill:`none`,stroke:`url(#metric-grad)`,strokeWidth:`4`,strokeLinecap:`round`})]}),h1=e=>(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 100 100`,...e,children:[(0,G.jsx)(`defs`,{children:(0,G.jsxs)(`linearGradient`,{id:`dialect-grad`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`100%`,children:[(0,G.jsx)(`stop`,{offset:`0%`,style:{stopColor:`#76FF03`,stopOpacity:1}}),(0,G.jsx)(`stop`,{offset:`100%`,style:{stopColor:`#00E676`,stopOpacity:1}})]})}),(0,G.jsx)(`path`,{d:`M50 5 L90 27.5 L90 72.5 L50 95 L10 72.5 L10 27.5 Z`,fill:`none`,stroke:`url(#dialect-grad)`,strokeWidth:`4`,strokeLinecap:`round`}),(0,G.jsx)(`path`,{d:`M35 30 H65 M35 45 H65 M35 60 H55 M35 75 H65`,fill:`none`,stroke:`url(#dialect-grad)`,strokeWidth:`4`,strokeLinecap:`round`})]});function g1(e){switch(e){case`trophy`:return s1;case`dumbbell`:return be;case`timer`:return a1;case`play`:return dr;case`blocks`:return i1;case`puzzle`:return o1;case`activity`:return p1;case`file-text`:return h1;default:return oe}}function _1(e){switch(e){case`basics-movement`:return s1;case`basics-reps`:return c1;case`basics-load`:return l1;case`structure-rounds`:case`complex-rounds`:case`protocols-rounds`:return u1;case`structure-repscheme`:return d1;case`protocols-timer`:case`complex-time`:return a1;case`protocols-tag`:return f1;case`metrics-custom`:return p1;case`metrics-calc`:return m1;case`dialects-log`:case`dialects-climb`:return h1;default:return null}}function v1({quest:e,onClick:t,className:n,compact:r=!1,disabled:i=!1}){let a=_1(e.id),o=t?`Select to jump to its section.`:`Open the editor to begin.`,s=e.isCompleted?`Challenge complete.`:e.result?e.result.pass?`Ready — ${e.result.detail??`looks good`}`:e.result.reason??o:o,c={"data-testid":`challenge-row-${e.id}`,"data-completed":e.isCompleted?`true`:`false`,className:K(`w-full text-left flex items-start gap-3 rounded-xl border px-3 py-2 text-sm transition-colors`,e.isCompleted?`border-primary/40 bg-primary/5`:`border-border/50 bg-background/60`,t&&!i&&`cursor-pointer hover:bg-background/80`,i&&`opacity-60 cursor-default`,r&&`px-2.5 py-1.5`,n)},l=(0,G.jsxs)(G.Fragment,{children:[a?(0,G.jsxs)(`span`,{className:K(`relative shrink-0 mt-0.5`,r?`size-5`:`size-6`),children:[(0,G.jsx)(a,{className:`w-full h-full`}),e.isCompleted&&(0,G.jsx)(`span`,{className:`absolute -bottom-1 -right-1 flex size-3.5 items-center justify-center rounded-full bg-emerald-500 text-white border border-background shadow`,children:(0,G.jsx)(zt,{className:`size-2`,strokeWidth:3})})]}):(0,G.jsx)(`span`,{className:K(`mt-0.5 shrink-0`,e.isCompleted?`text-primary`:`text-muted-foreground/50`),"aria-hidden":`true`,children:e.isCompleted?(0,G.jsx)(on,{className:r?`size-3.5`:`size-4`}):(0,G.jsx)(St,{className:r?`size-3.5`:`size-4`})}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`p`,{className:K(`font-semibold`,e.isCompleted?`text-foreground line-through decoration-primary/40`:`text-foreground`,r&&`text-xs`),children:e.label}),e.desc&&!r&&(0,G.jsx)(`p`,{className:`mt-0.5 text-xs text-muted-foreground`,children:e.desc}),(0,G.jsx)(`p`,{"data-testid":`challenge-hint-${e.id}`,className:K(`mt-1 text-xs`,e.isCompleted||e.result?.pass?`text-primary/80`:`text-muted-foreground`),children:s})]})]});return t?(0,G.jsx)(`button`,{type:`button`,onClick:t,disabled:i,...c,children:l}):(0,G.jsx)(`div`,{...c,children:l})}function y1(e){let t=e.replace(/^\s+/,``),n=t.match(/\n\s*\n/);return!n||n.index===void 0?{lead:t,rest:``}:{lead:t.slice(0,n.index),rest:t.slice(n.index).trimStart()}}var b1=({section:e,idx:t,prose:n,blockId:r,keySuffix:i,showHeading:a=!0,showEyebrow:o=!0,renderButtons:s=!0,isActive:c=!1,hasViewDef:l=!1,runState:u,deps:d,onExampleSelect:f,selectedExampleIndex:p,chapters:m=[],challengeQuests:h=[],isCollection:g=!1,notebookSlug:_=null,workoutItems:v=[],handleSelectWorkout:y,onScrollToSection:b,variant:x=`default`})=>{let S=!!e.isFullBleed,C=!!e.isDark&&x!==`caption`,w=e.density,T=ZR[e.theme||`slate`]??ZR.slate,E=e.examples??[],D=t===-1,O=W.useMemo(()=>{if(!m||!h)return null;for(let t of m){let n=t.sectionIds.indexOf(e.id);if(n>=0&&t.questIds[n]){let e=t.questIds[n],r=h.find(t=>t.id===e);if(r)return{quest:r,chapterTitle:t.title}}}return null},[m,h,e.id]);if(D){let t=e.proseChunks.filter(e=>e.kind===`button`).map(e=>e.button),n=e.proseChunks.findIndex(e=>e.kind===`prose`&&e.text.trim()!==``),a=n>=0?e.proseChunks[n]:null,{lead:o,rest:s}=a&&a.kind===`prose`?y1(a.text.trim()):{lead:``,rest:``},c=e.proseChunks.slice(n+1);return(0,G.jsxs)(`div`,{id:r,"data-section-id":i==="default"?e.id:void 0,className:`group relative flex min-h-[70vh] lg:min-h-[80vh] items-center justify-center overflow-hidden border-b-2 border-primary/10 bg-gradient-to-b from-primary/[0.08] via-muted/30 to-background px-6 py-16 lg:px-10 lg:py-24`,children:[(0,G.jsx)(`div`,{className:`pointer-events-none absolute inset-0 bg-[radial-gradient(ellipse_75%_60%_at_50%_0%,_var(--tw-gradient-stops))] from-primary/30 via-primary/5 to-transparent`}),(0,G.jsx)(`div`,{className:`pointer-events-none absolute inset-0 text-primary opacity-[0.15]`,style:{backgroundImage:`radial-gradient(circle, currentColor 1.5px, transparent 1.5px)`,backgroundSize:`24px 24px`,maskImage:`radial-gradient(ellipse 70% 60% at 50% 40%, black 40%, transparent 90%)`,WebkitMaskImage:`radial-gradient(ellipse 70% 60% at 50% 40%, black 40%, transparent 90%)`}}),(0,G.jsxs)(`div`,{className:`relative max-w-2xl w-full text-center`,children:[o&&(0,G.jsx)(t1,{prose:o,variant:`heroLead`,className:`mb-5`}),s&&(0,G.jsx)(t1,{prose:s,variant:`heroBody`,className:`mb-2`}),c.map((e,t)=>{if(e.kind===`prose`){let n=e.text.trim();return n?(0,G.jsx)(t1,{prose:n,className:`mt-6 mb-2`},`hero-prose-${t}`):null}if(e.kind===`challenge`){let n=h.find(t=>t.id===e.id);return n?(0,G.jsx)(`div`,{className:`my-4 flex justify-center`,children:(0,G.jsx)(v1,{quest:n,onClick:()=>b?.(r),compact:!0})},`hero-challenge-${t}`):null}return null}),t.length>0&&(0,G.jsx)(n1,{activations:t.map((e,t)=>LL(e,t)),fullBleed:!0,runState:l?u:void 0,deps:d})]})]})}let k=n===void 0?e.proseChunks??[]:[{kind:`prose`,text:n}],A=!k.some(e=>e.kind===`button`)&&(e.buttons??[]).length>0;return(0,G.jsxs)(`div`,{id:r,"data-section-id":i==="default"||i===`before-workouts`?e.id:void 0,className:K(`group relative border-b border-border/50 transition-colors duration-300`,x===`caption`?`py-6 pb-10`:l?S?`flex items-center justify-center min-h-[35vh] py-12 lg:py-16 px-6 lg:px-10`:w===`compact`?`py-10 lg:py-12 px-6 lg:px-10`:`py-14 lg:py-20 px-6 lg:px-10`:w===`compact`?`py-10 lg:py-12 px-6 lg:px-12`:`py-16 lg:py-20 px-6 lg:px-12`,!x||x==="default"?C&&`bg-muted/20 overflow-hidden`:void 0,x!==`caption`&&!C&&!S&&(t%2==0?`bg-background`:`bg-muted/[0.18]`)),children:[x!==`caption`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:K(`pointer-events-none absolute inset-y-0 left-0 w-px bg-gradient-to-b opacity-0 transition-opacity duration-300`,T.accent,c&&`opacity-100`)}),(0,G.jsx)(`div`,{className:K(`pointer-events-none absolute left-0 top-0 h-full w-1 origin-top rounded-r-full bg-gradient-to-b transition-all duration-300`,T.progress,c?`scale-y-100 opacity-100`:`scale-y-[0.18] opacity-25`)})]}),C&&(0,G.jsx)(`div`,{className:`pointer-events-none absolute inset-0 opacity-40 bg-[radial-gradient(circle_at_center,_var(--tw-gradient-stops))] from-primary/20 via-transparent to-transparent`}),(0,G.jsxs)(`div`,{className:K(`relative`,x===`caption`?`max-w-none`:l?S?`max-w-md w-full text-center`:`max-w-sm`:`max-w-4xl w-full mx-auto`),children:[o&&(!S||!l)&&O&&(0,G.jsx)(`div`,{className:`mb-4 flex items-center gap-2 select-none min-h-[14px]`,children:O.quest.isCompleted?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[9px] font-black uppercase tracking-wider text-emerald-800 dark:text-emerald-400 bg-emerald-500/10 px-2 py-0.5 rounded-full border border-emerald-500/20`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-emerald-500 dark:bg-emerald-400 animate-pulse`}),`Challenge Complete`]}):(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-[9px] font-black uppercase tracking-wider text-muted-foreground bg-muted/60 px-2 py-0.5 rounded-full border border-border/50`,children:[(0,G.jsx)(`span`,{className:`w-1.5 h-1.5 rounded-full bg-zinc-400 dark:bg-zinc-500`}),O.chapterTitle,`: Challenge Pending`]})}),a?(0,G.jsx)(`h2`,{className:K(`font-bold tracking-tight text-foreground leading-tight`,x===`caption`?`text-xl lg:text-2xl mb-4`:`text-2xl lg:text-3xl font-black uppercase mb-5`),children:e.heading}):null,k.map((e,t)=>{if(e.kind===`prose`){let n=e.text.trim();return n?(0,G.jsx)(t1,{prose:n,className:t===0?`mb-6`:`mt-4 mb-6`},`prose-${t}`):null}if(e.kind===`button`)return(0,G.jsx)(n1,{activations:[LL(e.button,t)],fullBleed:S,runState:l?u:void 0,deps:d},`button-${t}`);if(e.kind===`widget`){if(e.widget===`hero-carousel`)return(0,G.jsx)(`div`,{className:`my-6`,children:(0,G.jsx)(b$,{})},`hero-carousel-${t}`);if(e.widget===`workouts-list`&&g&&_&&y)return(0,G.jsx)(`div`,{id:`notebook-workouts`,className:`border-b border-border/50 bg-card my-6`,children:(0,G.jsx)(`div`,{className:`w-full mx-auto`,children:(0,G.jsx)(O$,{category:_,workoutItems:v,onSelect:y,showSearch:!1,variant:`flat`})})},`workouts-${t}`)}if(e.kind===`challenge`){let n=h.find(t=>t.id===e.id);return n?(0,G.jsx)(`div`,{className:`my-4`,children:(0,G.jsx)(v1,{quest:n,onClick:()=>b?.(r),compact:!0})},`challenge-${t}`):null}return null}),E.length>0?(0,G.jsx)(r1,{examples:E,activeIndex:Math.min(p,E.length-1),onSelect:t=>f(e,t)}):null,s&&A?(0,G.jsx)(n1,{activations:e.buttons.map((e,t)=>LL(e,t)),fullBleed:S,runState:l?u:void 0,deps:d}):null]})]},`${e.id}-${i}`)};function x1({sections:e,activeIndex:t,part:n,args:r}){return(0,G.jsx)(`div`,{className:`h-full min-h-0 pr-1`,"data-testid":`guide-captions-${n}`,children:e.map((e,n)=>{let i=n===t;return(0,G.jsx)(`div`,{className:`absolute inset-0 min-h-0 overflow-y-auto transition-opacity duration-300 ${i?`opacity-100`:`pointer-events-none invisible opacity-0`}`,"aria-hidden":!i,children:(0,G.jsx)(b1,{section:e,idx:n,blockId:`guide-caption-${e.id}`,keySuffix:`caption`,variant:`caption`,isActive:i,hasViewDef:r.hasViewDef??!0,runState:r.runState,deps:r.deps,onExampleSelect:r.onExampleSelect,selectedExampleIndex:r.selectedExamples[e.id]??0,chapters:r.chapters,challengeQuests:r.challengeQuests,onScrollToSection:r.onScrollToSection})},e.id)})})}function S1({sections:e,part:t,partCount:n,title:r,pane:i,cardArgs:a,onActivateSection:o}){let s=(0,W.useRef)(null),c=(0,W.useMemo)(()=>v$(e),[e]),{slice:l,subscribe:u}=m$(s,!1,c),d=(0,W.useRef)(e);d.current=e;let[f,p]=(0,W.useState)(!1);(0,W.useEffect)(()=>{let e=s.current;if(!e||typeof IntersectionObserver>`u`){p(!0);return}let t=new IntersectionObserver(([e])=>{e.isIntersecting&&(p(!0),t.disconnect())},{rootMargin:`100px`});return t.observe(e),()=>t.disconnect()},[]);let m=()=>{let e=s.current;if(!e)return!1;let{top:t,bottom:n}=e.getBoundingClientRect();return t<=0&&n>window.innerHeight},[h,g]=(0,W.useState)(!1);(0,W.useEffect)(()=>u(()=>{let e=m();g(t=>t===e?t:e)}),[u]);let _=(0,W.useRef)(!1),v=(0,W.useRef)(-1),y=(0,W.useRef)(o);y.current=o,(0,W.useEffect)(()=>{let e=_.current,t=v.current;if(_.current=h,v.current=l.index,!h||e&&t===l.index)return;let n=d.current[l.index];n&&y.current(n)},[h,l.index]);let b=e[l.index]??null;return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`header`,{"data-testid":`guide-runway-header-${t}`,className:`mx-auto w-full max-w-[1500px] px-6 pt-12 pb-6 lg:px-12`,children:[(0,G.jsxs)(`div`,{className:`font-mono text-[11px] uppercase tracking-[0.22em] text-muted-foreground`,children:[`Part `,t,` / `,n]}),(0,G.jsx)(`h2`,{className:`mt-1 text-xl font-black uppercase tracking-tight text-foreground`,children:r})]}),(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(d$,{trackRef:s,height:`${(e.length+1)*100}vh`,stages:c,activeIndex:l.index,pane:f?i:null,captions:(0,G.jsx)(x1,{sections:e,activeIndex:l.index,part:t,args:a}),status:(0,G.jsxs)(`div`,{className:`truncate font-mono text-[11px] uppercase tracking-[0.22em] text-muted-foreground`,children:[String(l.index+1).padStart(2,`0`),b?` — ${b.heading}`:``]}),testId:`guide-runway-${t}`}),e.map((t,n)=>(0,G.jsx)(`span`,{id:t.id,"data-section-id":t.id,"aria-hidden":`true`,className:`pointer-events-none absolute left-0 h-px w-px`,style:{top:`calc((100% - 100vh) * ${n/e.length} + 160px)`}},t.id))]})]})}function C1({sections:e,groupKey:t,title:n,pane:r,cardArgs:i,onActivateSection:a}){let{groups:o,tail:s}=_$(e,t);return(0,G.jsxs)(G.Fragment,{children:[o.map((e,t)=>(0,G.jsx)(S1,{sections:e,part:t+1,partCount:o.length,title:n,pane:r,cardArgs:i,onActivateSection:a},e[0]?.id??t)),s.length>0&&(0,G.jsx)(`div`,{className:`mx-auto w-full max-w-[1500px] px-6 lg:px-12`,"data-testid":`guide-static-tail`,children:(0,G.jsx)(`div`,{className:`lg:max-w-[50%]`,children:s.map((e,t)=>(0,G.jsx)(b1,{section:e,idx:t,blockId:e.id,keySuffix:`default`,isActive:i.activeSectionId===e.id,hasViewDef:i.hasViewDef??!0,runState:i.runState,deps:i.deps,onExampleSelect:i.onExampleSelect,selectedExampleIndex:i.selectedExamples[e.id]??0,chapters:i.chapters,challengeQuests:i.challengeQuests,onScrollToSection:i.onScrollToSection},`tail-${e.id}`))})})]})}function w1({videoId:e,title:t=`YouTube video`,onClose:n}){return(0,W.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,IC.createPortal)((0,G.jsxs)(`div`,{className:`fixed inset-0 z-[100] flex items-center justify-center bg-black/90 p-4 animate-in fade-in duration-200`,"data-testid":`youtube-lightbox`,onClick:e=>{e.target===e.currentTarget&&n()},children:[(0,G.jsx)(`button`,{type:`button`,onClick:n,title:`Close video`,"data-testid":`youtube-lightbox-close`,className:`absolute right-4 top-4 z-[110] flex size-11 items-center justify-center rounded-full border border-border bg-background/80 text-foreground transition-colors hover:bg-accent`,children:(0,G.jsx)(_r,{className:`size-5`})}),(0,G.jsx)(`div`,{className:`aspect-video w-full max-w-5xl overflow-hidden rounded-lg border border-border bg-black shadow-2xl`,children:(0,G.jsx)(`iframe`,{className:`h-full w-full border-0`,src:`https://www.youtube-nocookie.com/embed/${encodeURIComponent(e)}?autoplay=1&rel=0`,title:t,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:!0})})]}),document.body)}function T1({index:e,before:t,accentText:n,after:r,accent:i,blurb:a}){return(0,G.jsx)(`header`,{className:`flex items-center px-6 py-14 lg:px-12 xl:py-20 2xl:py-24 xl:px-16`,children:(0,G.jsxs)(`div`,{className:`mx-auto w-full max-w-[1500px] 2xl:max-w-[1720px]`,children:[(0,G.jsxs)(`h2`,{className:`flex items-baseline gap-4 xl:gap-6 text-[clamp(26px,3.6vw,52px)] font-extrabold leading-[1.1] tracking-[-0.03em]`,children:[(0,G.jsx)(`span`,{className:`font-mono text-xs font-normal tracking-normal text-muted-foreground`,children:e}),(0,G.jsxs)(`span`,{children:[t,n,r]})]}),(0,G.jsx)(`p`,{className:`mt-3 xl:mt-4 max-w-xl xl:max-w-2xl 2xl:max-w-3xl text-[clamp(14px,1.2vw,18px)] leading-[1.65] text-muted-foreground`,children:a})]})})}var E1=`hsl(var(--primary))`,D1={ink:`hsl(var(--foreground))`,editor:E1,timer:E1,analytics:E1,library:E1,rounds:E1},O1={editor:`WOD Editor & Autocomplete`,timer:`Clock`,analytics:`WQL Analytics`,metrics:`Own the Metrics`,result:`Run Results`},k1={start:`/page/guide-start`,protocols:`/page/guide-protocols`,structure:`/page/guide-structure`,metrics:`/page/guide-metrics`,clock:`/page/guide-clock`,wql:`/page/guide-wql`,dashboards:`/page/guide-dashboards`,sessions:`/page/guide-sessions`,basics:`/page/guide-start`,"custom-metrics":`/page/guide-metrics`,dialects:`/page/guide-sessions#intent`,complex:`/page/guide-sessions#full-session`},A1=`dQw4w9WgXcQ`,j1=`https://i.ytimg.com/vi/${A1}/hqdefault.jpg`;function M1({variant:e=`index`}){let t=Dz(),{pathname:n}=wn(),[r,i]=(0,W.useState)(null),a=(0,W.useMemo)(()=>WR(t).flatMap(e=>e.action?.type===`route`?[{id:e.id,label:e.label,to:e.action.to}]:[]),[t]),o=(0,W.useMemo)(()=>{let e=new Map;for(let n of t){if(n.route.startsWith(`/notebook`)||n.page.frontmatter?.type!==`guide`)continue;let t=n.page.frontmatter?.description;t&&e.set(`guide-${n.route}`,String(t))}return e},[t]);if(a.length===0)return null;let s=a.findIndex(e=>e.to===n),c=s>=0,l=c&&a.length>1?(s+1)%a.length:-1,u=r&&(0,G.jsx)(w1,{videoId:A1,title:r.label,onClose:()=>i(null)});return e===`university`?(0,G.jsxs)(`section`,{id:`tour-section-university`,"data-testid":`tour-section-university`,"aria-label":`Wod Wiki University`,children:[(0,G.jsx)(T1,{index:`05`,before:`Wod Wiki `,accentText:`University`,after:``,accent:D1.library,blurb:`Eight short chapters take you from your first workout to querying your training history. Each guide pairs a video walkthrough with a runnable example.`}),(0,G.jsx)(`nav`,{"aria-label":`Wod Wiki University`,className:`px-6 pb-16 lg:px-12 xl:px-16`,children:(0,G.jsx)(`ul`,{className:`mx-auto flex w-full max-w-5xl flex-col gap-5`,children:a.map((e,t)=>(0,G.jsxs)(`li`,{className:K(`flex flex-col gap-5 rounded-lg border border-border p-5 md:flex-row md:items-center md:gap-8 md:p-6`,t%2==1&&`md:flex-row-reverse`),children:[(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i({id:e.id,label:e.label}),title:`Watch: ${e.label}`,"aria-label":`Watch: ${e.label}`,"data-testid":`guide-watch`,className:`group relative block w-full flex-none overflow-hidden rounded-md border border-border md:w-56`,children:[(0,G.jsx)(`img`,{src:j1,alt:``,loading:`lazy`,className:`aspect-video w-full object-cover transition-transform duration-300 group-hover:scale-105`}),(0,G.jsx)(`span`,{className:`absolute inset-0 flex items-center justify-center bg-black/25 transition-colors group-hover:bg-black/40`,children:(0,G.jsx)(dr,{className:`size-9 fill-white text-white`})})]}),(0,G.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[(0,G.jsx)(rn,{to:e.to,className:`font-semibold hover:underline`,children:e.label}),(0,G.jsx)(`p`,{className:`text-sm leading-relaxed text-muted-foreground`,children:o.get(e.id)??e.to})]})]},e.id))})}),u]}):(0,G.jsxs)(`nav`,{"aria-label":c?`What’s Next`:`Syntax & Guides`,"data-testid":`guide-index-footer`,className:`border-t border-border px-6 py-12 xl:py-16`,children:[(0,G.jsxs)(`div`,{className:`mx-auto flex w-full max-w-3xl flex-col rounded-lg border border-border overflow-hidden`,children:[(0,G.jsxs)(`h2`,{className:`px-4 py-2 text-xs font-black uppercase tracking-wider text-muted-foreground bg-muted/40`,children:[c?`What’s Next`:`Syntax & Guides`,` · `,a.length]}),(0,G.jsx)(`ul`,{className:`flex flex-col divide-y divide-border`,children:a.map((e,t)=>(0,G.jsxs)(`li`,{className:`flex items-stretch`,children:[(0,G.jsxs)(rn,{to:e.to,"aria-current":t===s?`page`:void 0,className:K(`flex min-w-0 flex-1 flex-col gap-0.5 px-4 py-3 hover:bg-muted/50`,t===s&&`bg-muted/50`),children:[(0,G.jsxs)(`span`,{className:`flex w-full items-baseline justify-between gap-3`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:e.label}),t===l&&(0,G.jsx)(`span`,{className:`text-xs font-semibold text-primary`,"data-testid":`guide-next-marker`,children:`Next →`})]}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.to})]}),(0,G.jsxs)(`button`,{type:`button`,onClick:()=>i({id:e.id,label:e.label}),title:`Watch: ${e.label}`,"aria-label":`Watch: ${e.label}`,"data-testid":`guide-watch`,className:`flex flex-none items-center gap-1.5 border-l border-border px-4 text-xs font-semibold text-muted-foreground transition-colors hover:bg-muted/50 hover:text-foreground`,children:[(0,G.jsx)(dr,{className:`size-3.5`}),`Watch`]})]},e.id))})]}),u]})}var N1=`22rem`,P1=`42rem`,F1=`20rem`,I1=`calc(100dvh - var(--canvas-sticky-top) - 2rem)`;function L1(e){return{editorWidth:e||`50%`,editorMinWidth:N1,editorMaxWidth:P1,editorMinHeight:F1,editorMaxHeight:I1}}function R1(e){let t=Math.max(1,e.split(`
@@ -496,4 +496,4 @@ Fran went unbroken until round three. Throat on fire.
496
496
  `,k9]})]})}var zne=`✎`;function Bne({wql:e,setWql:t}){let[n,r]=(0,W.useState)(!1),[i,a]=(0,W.useState)(e);return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(j9,{wql:e}),!n&&(0,G.jsx)(`button`,{onClick:()=>{a(e),r(!0)},className:`absolute top-2 right-2 text-muted-foreground hover:text-foreground text-xs px-1.5 py-0.5 rounded hover:bg-muted`,children:zne})]}),n&&(0,G.jsxs)(`div`,{className:`rounded-lg border border-sky-500/50 bg-card p-3 space-y-2 shadow-lg shadow-sky-500/5`,children:[(0,G.jsx)(`div`,{className:`text-[10px] text-sky-400 font-mono`,children:`editing query:table — Apply writes the fence`}),(0,G.jsx)(rT,{query:i,onQueryChange:a,autoFocus:!0,placeholder:`:session…`}),(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(`button`,{onClick:()=>r(!1),className:`px-3 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground`,children:`Cancel`}),(0,G.jsx)(`button`,{onClick:()=>{t(i),r(!1)},className:`px-3 py-1 text-xs rounded-md bg-sky-500 text-zinc-950 font-medium`,children:`Apply to fence`})]})]})]})}function Vne({wql:e,setWql:t}){let[n,r]=(0,W.useState)(!1);return(0,G.jsxs)(`div`,{className:`space-y-3 pb-24`,children:[(0,G.jsx)(`button`,{onClick:()=>r(!0),className:`block w-full text-left rounded-lg transition-shadow ${n?`ring-2 ring-sky-500/70`:`hover:ring-1 hover:ring-border`}`,children:(0,G.jsx)(j9,{wql:e})}),(0,G.jsxs)(`div`,{className:`sticky bottom-20 rounded-xl border p-3 space-y-2 shadow-xl backdrop-blur transition-colors ${n?`border-sky-500/60 bg-card/95`:`border-border bg-card/80 opacity-70`}`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-mono ${n?`text-sky-400`:`text-muted-foreground`}`,children:n?`◉ bound: query:table · ${D9.slice(0,8)}…`:`○ click a query block to bind the composer`}),n&&(0,G.jsx)(`button`,{onClick:()=>r(!1),className:`text-[10px] text-muted-foreground hover:text-foreground`,children:`Done`})]}),n&&(0,G.jsx)(rT,{query:e,onQueryChange:t,autoFocus:!0,showDiagnostics:!1,placeholder:`:session…`})]})]})}function Hne({wql:e,setWql:t}){let[n,r]=(0,W.useState)(!1);return(0,W.useEffect)(()=>{if(!n)return;let e=e=>{e.key===`Escape`&&r(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),n?(0,G.jsxs)(`div`,{className:`rounded-lg border border-sky-500/50 bg-muted/60 shadow-lg shadow-sky-500/5`,children:[(0,G.jsx)(`div`,{className:`px-3 pt-2 text-[10px] font-mono text-muted-foreground select-none`,children:"```query:table"}),(0,G.jsx)(`div`,{className:`px-3 py-2`,children:(0,G.jsx)(rT,{query:e,onQueryChange:t,autoFocus:!0,showDiagnostics:!1,placeholder:`:session…`,className:`bg-transparent border-0 shadow-none`})}),(0,G.jsxs)(`div`,{className:`px-3 pb-2 flex items-center justify-between`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-mono text-muted-foreground select-none`,children:"```"}),(0,G.jsx)(`button`,{onClick:()=>r(!1),className:`text-[10px] text-sky-400 hover:text-sky-300 font-mono`,children:`Esc / leave fence ↩`})]})]}):(0,G.jsx)(`button`,{onClick:()=>r(!0),className:`block w-full text-left hover:ring-1 hover:ring-border rounded-lg`,children:(0,G.jsx)(j9,{wql:e})})}var N9=[[`inline`,`A · in-flow expansion`],[`dock`,`B · bound dock`],[`fence`,`C · fence-as-composer`]];function Une(){let[e,t]=Lt(),n=e.get(`v`)??`inline`,[r,i]=(0,W.useState)(Fne),a=e=>{let r=N9[(N9.findIndex(([e])=>e===n)+e+N9.length)%N9.length][0];t({v:r})};return(0,W.useEffect)(()=>{let e=e=>{e.target.closest(`input, textarea, [contenteditable]`)||(e.key===`ArrowLeft`&&a(-1),e.key===`ArrowRight`&&a(1))};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)}),(0,G.jsxs)(`div`,{className:`min-h-screen bg-background text-foreground p-6`,children:[(0,G.jsxs)(`div`,{className:`max-w-5xl mx-auto grid grid-cols-[1fr_320px] gap-6 items-start`,children:[(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`div`,{className:`text-[11px] text-amber-500 mb-1`,children:`PROTOTYPE — throwaway · query:table editing via WqlComposer`}),(0,G.jsx)(`h1`,{className:`text-xl font-bold`,children:`Journal — 2026-09-13`})]}),(0,G.jsx)(M9,{children:O9.split("```time")[0].trim()}),(0,G.jsx)(Lne,{}),n===`inline`&&(0,G.jsx)(Bne,{wql:r,setWql:i}),n===`dock`&&(0,G.jsx)(Vne,{wql:r,setWql:i}),n===`fence`&&(0,G.jsx)(Hne,{wql:r,setWql:i}),(0,G.jsx)(M9,{children:k9})]}),(0,G.jsx)(`div`,{className:`sticky top-6`,children:(0,G.jsx)(Rne,{wql:r})})]}),(0,G.jsxs)(`div`,{className:`fixed bottom-4 left-1/2 -translate-x-1/2 flex items-center gap-1 rounded-xl border border-border bg-card/95 backdrop-blur px-2 py-1.5 shadow-2xl z-50`,children:[(0,G.jsx)(`button`,{onClick:()=>a(-1),className:`px-2 text-muted-foreground hover:text-foreground`,children:`←`}),N9.map(([e,r])=>(0,G.jsx)(`button`,{onClick:()=>t({v:e}),className:`px-3 py-1 rounded-lg text-xs transition-colors ${n===e?`bg-sky-400 text-zinc-950 font-medium`:`text-muted-foreground hover:text-foreground`}`,children:r},e)),(0,G.jsx)(`button`,{onClick:()=>a(1),className:`px-2 text-muted-foreground hover:text-foreground`,children:`→`})]})]})}function P9(e,t,n=`absent`){return{id:e,fields:t,missPolicy:n,get:()=>void 0}}function Wne(){let e=new Pp;return e.register(P9(`effort`,{met:{dimension:Y,type:`number`},disciplineFactor:{dimension:Y,type:`number`},discipline:{dimension:Y,type:`string`},intensityTier:{dimension:Y,type:`string`},resolvedFrom:{dimension:Y,type:`string`}},`default-row`)),e.register(P9(`rpe-labels`,{rpe:{dimension:Y,type:`number`}})),e.register(P9(`profile`,{vo2max:{dimension:Y,type:`number`}})),e.register(P9(`disciplines`,{disciplineFactor:{dimension:Y,type:`number`}},`default-row`)),e}function Gne(e,t){for(let n of t)try{e.register(n)}catch{}}function F9(e,t=`segment`){let n=[],r=[];try{let i=Jd(e,{scope:t});r=i.defs;for(let e of i.warnings)n.push({severity:`warning`,message:e})}catch(e){return{defs:r,diagnostics:[{severity:`error`,message:e instanceof Error?e.message:String(e)}],dim:void 0,compound:void 0}}let i=new vp(Wne());Gne(i,[...Lp,...Vp]);let a;for(let e of r){try{i.register(e)}catch(e){n.push({severity:`error`,message:e instanceof Error?e.message:String(e)});continue}let t=rf(e)??(e.kind===`library`?Object.keys(e.variants[0]?.nodes??{})[0]:void 0),r=[...e.variants].sort((e,t)=>t.priority-e.priority)[0],o=t&&r.nodeDims?.[t];o&&(a=o)}let o;return a&&(o=hd(a)),r.length===0&&n.push({severity:`warning`,message:`No calc line parsed.`}),{defs:r,diagnostics:n,dim:a,compound:o}}var Kne=[`segment`,`workout`,`store`],I9=[`when`,`where`,`key`,`grouped`,`label`,`emit`,`meta`,`estimated`,`library`,`on`,`by`,`without`,`and`,`or`,`not`],L9=[`convert`,`lookup`,`has`,`round`,`floor`,`ceil`,`abs`,`clamp`,`min`,`max`,`sum`,`avg`,`count`,`last`,`windowMean`,`windowSum`,`windowSd`,`mean`],R9=[{name:`elapsed`,dim:gd.elapsed.dim,detail:`s (time)`},{name:`reps`,dim:gd.reps.dim,detail:`count`},{name:`resistance`,dim:gd.resistance.dim,detail:`kg (mass)`},{name:`distance`,dim:gd.distance.dim,detail:`m (length)`},{name:`effort`,dim:_d.effort,detail:`resolved effort slug`},{name:`effortLabel`,dim:_d.effortLabel,detail:`raw effort label`}],z9=[{name:`sessionRpe`,dim:_d.sessionRpe,detail:`captured session RPE`},{name:`session.duration`,dim:_d[`session.duration`],detail:`workout duration`},{name:`profile.vo2max`,dim:_d[`profile.vo2max`],detail:`user VO₂max (mL/kg/min)`}],B9=Object.keys(gd),qne=Object.keys(vd),V9=[{name:`effort`,detail:`effort library`,fields:[`met`,`disciplineFactor`,`discipline`,`intensityTier`,`resolvedFrom`]},{name:`rpe-labels`,detail:`effort label → RPE`,fields:[`rpe`]},{name:`profile`,detail:`user profile`,fields:[`vo2max`]},{name:`disciplines`,detail:`canonical disciplines`,fields:[`disciplineFactor`]}],H9=Object.keys(Sd),Jne=Object.keys(vd);function Yne(e){return e?H9.filter(t=>{let n=Sd[t];return n?n.dim.every((t,n)=>t===e[n]):!1}):H9}var Xne=new Set([...I9,...Kne,`lookup`]),Zne=new Set(L9),Qne=new Set([...R9.map(e=>e.name),...z9.map(e=>e.name),...B9,...V9.map(e=>e.name)]),$ne=/^\d*\.?\d+(?:d)?/,ere=/^[A-Za-z_][\w.]*/,tre=Cr.define({name:`calcLine`,token(e){if(e.eatSpace())return null;if(e.match(`#`,!1))return e.skipToEnd(),`comment`;if(e.match(/^"([^"]*)"/)||e.match(/^'([^']*)'/))return`string`;if(e.match(/^(->|==|!=|<=|>=)/)||e.match(/^[+\-*/=<>(),:{}[\]]/))return`operator`;if(e.match($ne))return`number`;if(e.match(ere)){let t=e.current();return Xne.has(t)?`keyword`:Zne.has(t)?`function`:(Qne.has(t),`variableName`)}return e.next(),null}}),nre=Ar.define([{tag:U.keyword,color:`#c084fc`},{tag:U.function(U.variableName),color:`#60a5fa`},{tag:U.variableName,color:`#e4e4e7`},{tag:U.number,color:`#fbbf24`},{tag:U.string,color:`#34d399`},{tag:U.operator,color:`#a1a1aa`},{tag:U.comment,color:`#71717a`,fontStyle:`italic`}]);function rre(){return new Nr(tre,[kr(nre)])}var ire=[`effort`,`thruster`,`push-press`,`front-squat`,`wall-ball`,`row`,`run`];function U9(e,t){return`${t?``:`"`}${e}"`}function are(e={}){let t=e.scope??`segment`,n=()=>{let t=e.effortKeys?.().filter(Boolean)??[];return[`effort`,...t.length?t:ire.slice(1)]};return e=>{let r=e.state.sliceDoc(0,e.pos),i=e.matchBefore(/[\w./"]*/);if(!i)return null;if(/lookup\(\s*/.test(r)){let t=r.lastIndexOf(`lookup(`),i=r.slice(t+7);if(!/,/.test(i)&&/^"?[\w.-]*"?$/.test(i.replace(/"/g,``).trim()||``)){let t=i.replace(/"/g,``).trim(),n=i.trimStart().startsWith(`"`),r=V9.filter(e=>e.name.startsWith(t)).map(e=>({label:e.name,apply:U9(e.name,n),detail:e.detail}));if(r.length)return{from:e.pos-t.length,to:e.pos+ +(e.state.sliceDoc(e.pos,e.pos+1)===`"`),options:r,validFor:/^[\w.-]*$/}}let a=/lookup\(\s*"[^"]+"\s*,\s*[^,]+,\s*"?([\w-]*)"?$/.exec(r);if(a){let t=/lookup\(\s*"([^"]+)"/.exec(r)?.[1],n=V9.find(e=>e.name===t),i=e.pos-a[1].length,o=e.state.sliceDoc(i-1,i)===`"`,s=(n?.fields??[]).filter(e=>e.startsWith(a[1])).map(e=>({label:e,apply:U9(e,o),detail:`${t} field`}));return{from:i,to:e.pos+ +(e.state.sliceDoc(e.pos,e.pos+1)===`"`),options:s,validFor:/^[\w-]*$/}}let o=/lookup\(\s*"(effort)"\s*,\s*"?([\w.-]*)"?$/.exec(r);if(o){let t=n().filter(e=>e.startsWith(o[2])),r=e.pos-o[2].length,i=e.state.sliceDoc(r-1,r)===`"`,a=t.map(e=>({label:e,apply:e===`effort`?e:U9(e,i),detail:`effort key`}));return{from:r,to:e.pos+ +(e.state.sliceDoc(e.pos,e.pos+1)===`"`),options:a,validFor:/^[\w.-]*$/}}}let a=/->\s*([\w/]*)$/.exec(r);if(a){let n=e.state.doc.lineAt(e.pos).text,r=F9(n,t);if(!r.dim){let e=n.lastIndexOf(`->`);if(e>=0){let i=F9(n.slice(0,e),t);i.diagnostics.length===0&&(r=i)}}let i=r.diagnostics.length===0?r.dim:void 0,o=Yne(i).filter(e=>e.startsWith(a[1])).map(e=>({label:e,detail:i?`matches inferred dimension`:`unit`}));return{from:e.pos-a[1].length,options:o,validFor:/^[\w/]*$/}}if(t===`store`){let e=/^(sum|avg|max|min|count|last):([\w.]*)$/.exec(i.text);if(e){let t=B9.filter(t=>t.startsWith(e[2])).map(e=>({label:e,detail:`metric key`}));return{from:i.from+i.text.indexOf(`:`)+1,options:t,validFor:/^[\w.]*$/}}}let o=[];if(t===`segment`)o.push(...R9.map(e=>({label:e.name,apply:e.name,detail:e.detail})));else if(o.push(...z9.map(e=>({label:e.name,apply:e.name,detail:e.detail}))),t===`workout`){for(let e of qne)for(let t of[`reps`,`distance`,`segmentVolume`,`metMinutes`,`elapsed`,`effortRpe`])o.push({label:`${e}(${t})`,apply:`${e}(${t})`,detail:`aggregate`});o.push({label:`sum(reps, without: rest)`,apply:`sum(reps, without: rest)`,detail:`exclusion aggregate`})}o.push(...L9.map(e=>({label:`${e}()`,apply:`${e}()`,detail:`function`}))),t===`store`&&o.push(...Jne.map(e=>({label:`${e}:{}`,apply:`${e}:`,detail:`WQL atom`}))),o.push(...I9.map(e=>({label:e,apply:e===`when`?`when `:e,detail:`clause`}))),o.push({label:`estimated`,apply:`estimated`,detail:`variant origin`}),o.push({label:`(library)`,apply:`(library)`,detail:`library calc`});let s=o.filter(e=>e.label.startsWith(i.text)).slice(0,20);return s.length?{from:i.from,options:s,validFor:/^[\w./]*$/}:null}}function ore(e){return Wr({override:[are(e)],interactionDelay:0})}function sre({value:e,onChange:t,scope:n=`segment`,placeholder:r,readOnly:i=!1,autoFocus:a=!1,className:o}){let s=(0,W.useRef)(null),c=(0,W.useRef)(null),l=(0,W.useRef)(t);return l.current=t,(0,W.useEffect)(()=>{let t=s.current;if(!t)return;c.current?.destroy();let r=Tr.updateListener.of(e=>{e.docChanged&&l.current(e.state.doc.toString())}),o=new Tr({state:Qr.create({doc:e,extensions:[rre(),ore({scope:n,effortKeys:()=>RO().list().map(e=>e.slug)}),Gw,Jr(),ci(),vr.of([Xr,...Yr,...ri]),Tr.lineWrapping,Qr.readOnly.of(i),r,Tr.theme({"&":{height:`auto`,minHeight:`120px`,fontSize:`13px`,border:`1px solid rgb(63 63 70)`,borderRadius:`8px`},".cm-scroller":{fontFamily:`ui-monospace, SFMono-Regular, Menlo, monospace`,lineHeight:`1.55`},".cm-content":{padding:`8px 4px`},".cm-gutters":{borderRight:`1px solid rgb(63 63 70)`,minWidth:`28px`},"&.cm-focused":{outline:`2px solid rgb(139 92 246 / 0.5)`,outlineOffset:`1px`}})]}),parent:t});return a&&requestAnimationFrame(()=>o.focus()),c.current=o,()=>o.destroy()},[n,i]),(0,W.useEffect)(()=>{let t=c.current;if(!t)return;let n=t.state.doc.toString();n!==e&&t.dispatch({changes:{from:0,to:n.length,insert:e}})},[e]),(0,G.jsx)(`div`,{ref:s,className:`calc-line-editor ${o??``}`,"data-testid":`calc-line-editor`})}function cre({analysis:e}){let{dim:t,compound:n,diagnostics:r}=e,i=r.filter(e=>e.severity===`error`),a=r.filter(e=>e.severity===`warning`),o=i.length===0&&a.length===0&&t!==void 0;return(0,G.jsxs)(`div`,{className:`rounded-lg border border-border bg-card/60 px-3 py-2 text-xs`,"data-testid":`calc-diagnostics`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,children:[t?(0,G.jsxs)(`div`,{className:`text-muted-foreground`,children:[`computes `,(0,G.jsx)(`b`,{className:`text-foreground`,children:lre(t)}),n&&(0,G.jsxs)(`span`,{className:`text-purple-400 dark:text-purple-300`,children:[` → `,n]})]}):!o&&(0,G.jsx)(`div`,{className:`text-muted-foreground`,children:`dimension unknown`}),o&&(0,G.jsx)(`span`,{className:`text-signal-positive`,children:`✓ valid`})]}),i.map((e,t)=>(0,G.jsxs)(`div`,{className:`text-destructive`,children:[`⚠ `,e.message]},`e-${t}`)),a.map((e,t)=>(0,G.jsxs)(`div`,{className:`text-signal-caution`,children:[`⚠ `,e.message]},`w-${t}`)),i.length===0&&a.length===0&&t===void 0&&(0,G.jsx)(`div`,{className:`text-muted-foreground`,children:`Type a calc line to see diagnostics.`})]})}var W9=[[`L`,`length`],[`M`,`mass`],[`T`,`time`],[`C`,`count`],[`E`,`energy`]];function lre(e){let t=[];return e.forEach((e,n)=>{e!==0&&t.push(e===1?W9[n][1]:`${W9[n][1]}${e}`)}),t.length?t.join(`·`):`dimensionless`}function G9(e){return new ua({outputType:e.outputType,timeSpan:e.timeSpan,sourceBlockKey:e.sourceBlockKey,stackLevel:e.stackLevel,sourceStatementId:e.sourceStatementId,line:e.line,text:e.text,dialect:e.dialect,metrics:e.metrics,parent:e.parent,completionReason:e.completionReason})}function K9(e){return{...e,metrics:e.metrics.filter(e=>e.origin!==`analyzed`)}}function ure(e){return e.output?.emitType??e.output?.key??e.id}function dre(e,t){for(let n of e){if(n.outputType!==`analytics`||!(n.metrics.find(e=>e.type?.toLowerCase()===`label`&&String(e.value)===t)??n.metrics.find(e=>String(e.value)===t)))continue;let e=n.metrics.find(e=>typeof e.value==`number`);if(e)return{value:e.value,unit:e.unit,origin:e.origin}}}function q9(e){return String(Number.isInteger(e)?e:Math.round(e*100)/100)}function J9(e,t,n){return Qp(e,{userProfile:t.vo2max===void 0?void 0:{vo2max:t.vo2max},calcs:n}).engine}function fre(e){let t=[],n=e.defs[0];if(!n)return{rows:[],errors:[`No calc line to preview.`]};let r=ure(n),i=e.logs.filter(e=>e.outputType===`segment`);if(e.scope===`segment`){let n=J9(e.block,e,e.defs),a=[];for(let e of i){let t=n.run(G9(K9(e))).metrics.rawMetrics.find(e=>e.type===r);if(!t){a.push(null);continue}let i=typeof t.value==`number`?t.value:NaN;if(!Number.isFinite(i)){a.push(null);continue}a.push({label:e.metrics.find(e=>e.type===`effort-data`)?.value?.label??`segment`,text:q9(i),unit:t.unit,estimated:t.origin===`analyzed-estimated`,raw:i})}return{rows:a,errors:t}}if(e.scope===`workout`){let n=i.map(K9),a=[];for(let t=1;t<=n.length;t++){let i=J9(e.block,e,e.defs);for(let e=0;e<t;e++)i.run(G9(n[e]));let o=dre(i.finalize(),r),s=o&&typeof o.value==`number`?o.value:NaN;o&&Number.isFinite(s)?a.push({label:`after line ${t}`,text:q9(s),unit:o.unit,estimated:o.origin===`analyzed-estimated`,raw:s}):a.push(null)}return{rows:a,errors:t}}return pre(n,t)}var Y9=[420,0,380,510,0,290,610,450,0,520,340,0,480,390,560,0,410,470,0,530,360,440,0,500,580,320,0,460];function pre(e,t){let n=[],r=e.variants[0]?.nodes[rf(e)??`value`]?.expression??``,i=e=>e.reduce((e,t)=>e+t,0)/e.length,a=e=>{let t=i(e);return Math.sqrt(i(e.map(e=>(e-t)**2)))},o=(e,t)=>Y9.map((n,r)=>r+1>=e?t(Y9.slice(r+1-e,r+1)):NaN),s=o(7,i),c=o(28,i),l=o(7,a),u=o(7,e=>e.reduce((e,t)=>e+t,0)),d=r.includes(`windowSd`)||r.length===0?s.map((e,t)=>e/l[t]):s.map((e,t)=>e/c[t]);return mre(r.includes(`windowSum`)||r.includes(` * sum`)?u:d,n),{rows:[],series:n,errors:t}}function mre(e,t){for(let n of e.slice(-7))t.push(Number.isNaN(n)?null:Number(Math.round(n*100)/100))}var hre=[{label:`Thruster`,slug:`thruster`,met:8.5,discipline:`strength`,elapsedMs:15e4,reps:21,resistanceKg:43},{label:`Pull-up`,slug:`pull-up`,met:7,discipline:`gymnastics`,elapsedMs:12e4,reps:21,resistanceKg:0},{label:`Thruster`,slug:`thruster`,met:8.5,discipline:`strength`,elapsedMs:15e4,reps:15,resistanceKg:43},{label:`Pull-up`,slug:`pull-up`,met:7,discipline:`gymnastics`,elapsedMs:12e4,reps:15,resistanceKg:0},{label:`Thruster`,slug:`thruster`,met:8.5,discipline:`strength`,elapsedMs:15e4,reps:9,resistanceKg:43},{label:`Pull-up`,slug:`pull-up`,met:7,discipline:`gymnastics`,elapsedMs:12e4,reps:9,resistanceKg:0}];function gre(e){return{type:`effort-data`,origin:`analyzed`,value:{slug:e.slug,label:e.label,aliases:[],baseAttributes:{met:e.met,discipline:e.discipline},registrySource:`bundled`}}}function _re(e,t){let n=[gre(e)];return n.push({type:`elapsed`,value:e.elapsedMs,origin:`runtime`}),e.reps!==void 0&&n.push({type:`rep`,value:e.reps,origin:`runtime`}),e.resistanceKg!==void 0&&n.push({type:`resistance`,value:e.resistanceKg,origin:`runtime`}),BA(new ua({outputType:`segment`,timeSpan:{started:t*1e3,ended:t*1e3+e.elapsedMs},sourceBlockKey:`preview-block`,stackLevel:1,metrics:n}))}function vre(){return{id:`preview-block`,dialect:`time`,startLine:0,endLine:10,content:"```time\nFran preview\n```",state:`idle`,widgetIds:{},version:1,createdAt:0}}var yre=hre.map((e,t)=>_re(e,t+1)),bre=vre();function xre(e){return e==null?`—`:String(e)}function Sre({scope:e,analysis:t,vo2max:n}){let r=(0,W.useMemo)(()=>t.defs.filter(()=>t.diagnostics.length===0),[t]),i=r[0],a=(0,W.useMemo)(()=>{if(i)return fre({logs:yre,block:bre,defs:r,scope:e,vo2max:n})},[i,e,n]);return(0,G.jsxs)(`div`,{className:`rounded-lg border border-border bg-card/60 p-3 text-xs`,"data-testid":`calc-preview`,children:[(0,G.jsxs)(`div`,{className:`mb-2 text-[11px] uppercase tracking-wide text-muted-foreground`,children:[`Live preview — `,e===`store`?`last 7 of 28 fixture days`:`Fran (fixture)`]}),!i&&(0,G.jsx)(`div`,{className:`text-muted-foreground`,children:`Enter a valid calc line to see live results.`}),i&&a?.rows&&(0,G.jsxs)(`div`,{className:`space-y-1 font-mono`,children:[a.rows.length===0&&(0,G.jsx)(`div`,{className:`text-muted-foreground`,children:`No applicable segments.`}),a.rows.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex justify-between text-foreground`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e?e.label:`segment ${t+1}`}),(0,G.jsx)(`span`,{className:e?`text-sky-300 dark:text-sky-400`:`text-muted-foreground`,children:e?`${e.text}${e.unit?` ${e.unit}`:``}${e.estimated?` (est.)`:``}`:`—`})]},t))]}),i&&a?.series&&(0,G.jsx)(`div`,{className:`space-y-1 font-mono`,children:a.series.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex justify-between text-foreground`,children:[(0,G.jsxs)(`span`,{className:`text-muted-foreground`,children:[`D-`,6-t]}),(0,G.jsx)(`span`,{className:`text-sky-300 dark:text-sky-400`,children:xre(e)})]},t))}),a?.errors?.length?a.errors.map((e,t)=>(0,G.jsxs)(`div`,{className:`text-destructive`,children:[`⚠ `,e]},`e-${t}`)):null]})}var Cre=[`segment`,`workout`,`store`];function wre(e,t){let n=e[0]?.id;if(n)return n;let r=/^[\s\S]*?^\s*([A-Za-z_][\w.-]*)\s*=.*$/m.exec(t);return r?r[1]:`custom-${Date.now().toString(36)}`}function Tre({defaultScope:e=`segment`,initialId:t}){let[n,r]=(0,W.useState)(`# ${e} calc line
497
497
  segmentVolume = reps * resistance (library) when has(reps) and has(resistance)
498
498
  `),[i,a]=(0,W.useState)(e),[o,s]=(0,W.useState)([]),[c,l]=(0,W.useState)(),u=(0,W.useMemo)(()=>F9(n,i),[n,i]),d=wre(u.defs,n),f=u.diagnostics.every(e=>e.severity!==`error`)&&u.defs.length>0,p=async()=>{s(await V5())};(0,W.useEffect)(()=>{p()},[]),(0,W.useEffect)(()=>{t&&(async()=>{let e=(await V5()).find(e=>e.id===t);e&&(r(e.lineForm),l(`Loaded "${e.id}".`))})()},[t]);let m=async()=>{if(!f){l(`Cannot save: fix the errors first.`);return}try{await H5({id:d,lineForm:n,updatedAt:Date.now()}),await p(),l(`Saved "${d}".`)}catch(e){console.error(`[CalcAuthoringPanel] save failed:`,e),l(`Save failed: ${e instanceof Error?e.message:String(e)}`)}},h=async e=>{try{await U5(e),await p(),l(`Deleted "${e}".`)}catch(e){console.error(`[CalcAuthoringPanel] delete failed:`,e),l(`Delete failed: ${e instanceof Error?e.message:String(e)}`)}},g=e=>{let t=/^\s*(segment|workout|store)\b/.exec(e.lineForm);t&&a(t[1]),r(e.lineForm),l(`Loaded "${e.id}".`)};return(0,G.jsxs)(`div`,{className:`space-y-3`,"data-testid":`calc-authoring-panel`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`Scope`}),(0,G.jsx)(`div`,{className:`flex gap-1`,children:Cre.map(e=>(0,G.jsx)(`button`,{onClick:()=>a(e),className:`rounded px-2.5 py-1 text-xs font-medium transition-colors ${i===e?`bg-purple-600 text-white dark:bg-purple-700 dark:text-white`:`bg-muted text-muted-foreground hover:bg-muted/80`}`,children:e},e))}),(0,G.jsx)(`div`,{className:`ml-auto flex gap-2`,children:(0,G.jsx)(`button`,{onClick:m,disabled:!f,className:`rounded bg-signal-positive px-3 py-1 text-xs font-medium text-white dark:text-white disabled:opacity-40`,children:`Save`})})]}),(0,G.jsx)(sre,{value:n,onChange:r,scope:i,autoFocus:!0}),(0,G.jsx)(cre,{analysis:u}),(0,G.jsx)(Sre,{scope:i,analysis:u}),c&&(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:c}),o.length>0&&(0,G.jsxs)(`div`,{className:`mt-2`,children:[(0,G.jsx)(`div`,{className:`mb-1 text-[11px] uppercase tracking-wide text-muted-foreground`,children:`Saved user calcs`}),(0,G.jsx)(`ul`,{className:`divide-y divide-border rounded-lg border border-border`,children:o.map(e=>(0,G.jsxs)(`li`,{className:`flex items-center justify-between px-3 py-2 text-sm`,children:[(0,G.jsx)(`button`,{onClick:()=>g(e),className:`text-left font-mono text-purple-300 dark:text-purple-400 hover:underline`,children:e.id}),(0,G.jsx)(`button`,{onClick:()=>h(e.id),className:`text-xs text-muted-foreground hover:text-destructive`,children:`delete`})]},e.id))})]})]})}function Ere(){let e=ln(),[t]=cn(`zip`),[n]=cn(`z`),[r]=(0,W.useState)(()=>{let e=window.location.search;return e.includes(`zip=`)||e.includes(`z=`)});return(0,W.useEffect)(()=>{!t&&!n&&!r&&e(`/`,{replace:!0})},[t,n,e,r]),(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`})}async function X9(e){try{let t=e.replace(/-/g,`+`).replace(/_/g,`/`);for(;t.length%4!=0;)t+=`=`;let n=atob(t),r=Uint8Array.from(n,e=>e.charCodeAt(0));try{let e=new DecompressionStream(`gzip`),t=e.writable.getWriter(),n=e.readable.getReader();t.write(r),t.close();let i=[];for(;;){let{done:e,value:t}=await n.read();if(e)break;i.push(t)}let a=i.reduce((e,t)=>e+t.length,0),o=new Uint8Array(a),s=0;for(let e of i)o.set(e,s),s+=e.length;return new TextDecoder().decode(o)}catch{return new TextDecoder().decode(r)}}catch{return null}}function Z9(){let e=ln(),t=wn(),{date:n}=Ht(),[r]=cn(`zip`),[i,a]=(0,W.useState)({state:`loading`});return(0,W.useEffect)(()=>{if(!(t.pathname===`/load/journal`||t.pathname.startsWith(`/load/journal/`)))return;if(!r){e($.journal,{replace:!0});return}let i=!1,o=async()=>{try{a({state:`loading`});let t;try{t=await X9(r)}catch(e){console.error(`Failed to decode zip:`,e),a({state:`error`,error:`Failed to decode the journal entry`,onRetry:()=>{o()}}),Q({title:`Error`,description:`Failed to decode the journal entry. Please check the link.`,variant:`destructive`});return}if(i)return;let c;if(n){let t=xF(n);if(!t){a({state:`error`,error:`Invalid date format`}),Q({title:`Error`,description:`Invalid date format. Expected YYYY-MM-DD.`,variant:`destructive`}),e($.journal,{replace:!0});return}c=t.dateKey}else c=yF();if(i)return;if(bF(c)){a({state:`pending-confirmation`,content:t,dateKey:c,onConfirmBackdate:async()=>{i||await s(t,c)}});return}await s(t,c)}catch(e){console.error(`Unexpected error in journal zip processor:`,e),i||(a({state:`error`,error:`An unexpected error occurred`,onRetry:()=>{o()}}),Q({title:`Error`,description:`An unexpected error occurred.`,variant:`destructive`}))}},s=async(t,n)=>{if(!i)try{a({state:`creating`});let r=await TF.create({journalDate:n,title:n,rawContent:t});i||(a({state:`success`,content:t,dateKey:n}),e(GP(r.id),{replace:!0}))}catch(e){console.error(`Failed to create journal entry:`,e),i||(a({state:`error`,error:`Failed to create journal entry`,onRetry:()=>{s(t,n)}}),Q({title:`Error`,description:`Failed to create journal entry.`,variant:`destructive`}))}};return o(),()=>{i=!0}},[r,n,e]),i}var Dre=({selectedDate:e,onImportToday:t,onDateSelect:n,entryDates:r,isLoading:i=!1,className:a})=>{let[o,s]=(0,W.useState)(!1),[c,l]=(0,W.useState)(!1),{triggerRef:u,align:d,recompute:f}=u2(`end`),p=async()=>{l(!0);try{await t()}finally{l(!1)}},m=async e=>{l(!0),s(!1);try{await n(e)}finally{l(!1)}},g=e=>{e&&f(),s(e)},_=e?zb(e):`Date`,v=i||c;return(0,G.jsxs)(`div`,{className:K(`inline-flex items-stretch rounded-lg overflow-hidden border border-border/70`,`bg-muted text-muted-foreground shadow-sm hover:shadow-md transition-shadow font-medium`,`text-xs`,a),children:[(0,G.jsxs)(`button`,{type:`button`,title:`Import to today's journal`,onClick:p,disabled:v,className:K(`flex items-center gap-2 px-3 py-2 transition-colors`,`hover:bg-accent hover:text-accent-foreground`,v&&`opacity-60 cursor-not-allowed`),children:[c?(0,G.jsx)(`span`,{className:`inline-block animate-spin`,children:`⏳`}):(0,G.jsx)(on,{className:`h-4 w-4 shrink-0`}),(0,G.jsx)(`span`,{children:`Import Today`})]}),(0,G.jsx)(`div`,{className:`w-px bg-border/60 self-stretch`}),(0,G.jsxs)(QV,{open:o,onOpenChange:g,children:[(0,G.jsx)($V,{asChild:!0,children:(0,G.jsxs)(`button`,{ref:e=>{u.current=e},type:`button`,title:`Select a date to plan for the future`,className:K(`flex items-center gap-1.5 px-2.5 py-2 transition-colors`,`hover:bg-accent hover:text-accent-foreground`,e&&`text-primary`,v&&`opacity-60 cursor-not-allowed`),disabled:v,children:[(0,G.jsx)(h,{className:`h-4 w-4 shrink-0`}),e&&(0,G.jsx)(`span`,{className:`leading-none text-xs`,children:_})]})}),(0,G.jsx)(eH,{align:d,className:`p-0 w-auto`,children:(0,G.jsx)(U0,{selectedDate:e||null,onDateSelect:m,entryDates:r})})]})]})},Ore=({dateKey:e,onConfirm:t,onCancel:n,isLoading:r=!1})=>{let[i,a]=W.useState(!1),o=Rb(new Date(`${e}T00:00:00`));return(0,G.jsxs)(`div`,{role:`dialog`,"aria-modal":`true`,className:`fixed inset-0 z-50 flex items-center justify-center`,onKeyDown:e=>{e.key===`Escape`&&n()},onClick:e=>{e.target===e.currentTarget&&n()},children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-black/50 animate-in fade-in`}),(0,G.jsx)(`div`,{className:`relative z-10 w-full max-w-sm mx-auto px-4 animate-in zoom-in-95 fade-in`,children:(0,G.jsxs)(`div`,{className:`bg-background rounded-lg border border-border shadow-lg`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-6 py-4 border-b border-border`,children:[(0,G.jsx)(`h2`,{className:`text-base font-semibold`,children:`Backdate Journal Entry`}),(0,G.jsx)(`button`,{onClick:n,className:`p-1 text-muted-foreground hover:text-foreground hover:bg-muted rounded transition-colors`,"aria-label":`Close modal`,children:(0,G.jsx)(_r,{className:`h-4 w-4`})})]}),(0,G.jsxs)(`div`,{className:`px-6 py-4 space-y-4`,children:[(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`The date you selected is in the past.`}),(0,G.jsxs)(`p`,{className:`text-sm`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`Import to: `}),(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:o})]}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This will create a journal entry for the selected date. Are you sure you want to proceed?`})]}),(0,G.jsxs)(`div`,{className:`px-6 py-4 border-t border-border flex gap-2 justify-end`,children:[(0,G.jsx)(q,{variant:`outline`,onClick:n,disabled:r||i,children:`Cancel`}),(0,G.jsx)(q,{onClick:async()=>{a(!0);try{await t()}finally{a(!1)}},disabled:r||i,className:K(r||i?`opacity-70`:``),children:i?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`span`,{className:`inline-block animate-spin mr-2`,children:`⏳`}),`Importing...`]}):`Confirm & Import`})]})]})})]})},kre={h1:({children:e})=>(0,G.jsx)(`h1`,{className:`text-3xl font-bold mt-8 mb-4 first:mt-0 text-foreground`,children:e}),h2:({children:e})=>(0,G.jsx)(`h2`,{className:`text-2xl font-bold mt-6 mb-3 text-foreground`,children:e}),h3:({children:e})=>(0,G.jsx)(`h3`,{className:`text-xl font-semibold mt-5 mb-2 text-foreground`,children:e}),h4:({children:e})=>(0,G.jsx)(`h4`,{className:`text-lg font-semibold mt-4 mb-2 text-foreground`,children:e}),h5:({children:e})=>(0,G.jsx)(`h5`,{className:`text-base font-semibold mt-3 mb-1 text-foreground`,children:e}),h6:({children:e})=>(0,G.jsx)(`h6`,{className:`text-sm font-semibold mt-2 mb-1 text-muted-foreground`,children:e}),p:({children:e})=>(0,G.jsx)(`p`,{className:`text-sm leading-relaxed mb-4 text-muted-foreground`,children:e}),strong:({children:e})=>(0,G.jsx)(`strong`,{className:`font-semibold text-foreground`,children:e}),em:({children:e})=>(0,G.jsx)(`em`,{className:`italic text-muted-foreground`,children:e}),ul:({children:e})=>(0,G.jsx)(`ul`,{className:`list-disc list-inside space-y-1 mb-4 text-sm text-muted-foreground`,children:e}),ol:({children:e})=>(0,G.jsx)(`ol`,{className:`list-decimal list-inside space-y-1 mb-4 text-sm text-muted-foreground`,children:e}),li:({children:e})=>(0,G.jsx)(`li`,{className:`ml-2`,children:e}),code:({children:e,className:t})=>t?null:(0,G.jsx)(`code`,{className:`px-1.5 py-0.5 rounded bg-muted text-primary font-mono text-xs`,children:e}),pre:({children:e})=>(0,G.jsx)(`pre`,{className:`bg-muted rounded-lg p-4 overflow-x-auto mb-4 text-xs font-mono text-muted-foreground border border-border`,children:e}),blockquote:({children:e})=>(0,G.jsx)(`blockquote`,{className:`border-l-4 border-primary/30 pl-4 py-2 mb-4 italic text-muted-foreground text-sm`,children:e}),a:({href:e,children:t})=>(0,G.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-primary hover:underline font-medium`,children:t}),table:({children:e})=>(0,G.jsx)(`div`,{className:`my-4 overflow-x-auto rounded border border-border`,children:(0,G.jsx)(`table`,{className:`w-full text-xs`,children:e})}),thead:({children:e})=>(0,G.jsx)(`thead`,{className:`bg-muted/50`,children:e}),tbody:({children:e})=>(0,G.jsx)(`tbody`,{className:`divide-y divide-border/50`,children:e}),tr:({children:e})=>(0,G.jsx)(`tr`,{className:`hover:bg-muted/20 transition-colors`,children:e}),th:({children:e})=>(0,G.jsx)(`th`,{className:`px-3 py-2 text-left font-semibold text-foreground text-xs`,children:e}),td:({children:e})=>(0,G.jsx)(`td`,{className:`px-3 py-2 text-muted-foreground`,children:e}),hr:()=>(0,G.jsx)(`hr`,{className:`my-6 border-border/50`})};function Q9(){let e=ln(),t=Z9(),[n,r]=(0,W.useState)(!1),[i,a]=(0,W.useState)(null),{state:o,content:s,dateKey:c,error:l,onConfirmBackdate:u,onRetry:d}=t;return(0,G.jsxs)(`div`,{className:`flex flex-col h-screen bg-background`,children:[(0,G.jsxs)(`div`,{className:`border-b border-border/50 bg-muted/30 px-6 py-4 flex items-center justify-between gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`button`,{onClick:()=>{e(-1)},className:`p-1.5 rounded hover:bg-muted transition-colors text-muted-foreground hover:text-foreground`,title:`Go back`,children:(0,G.jsx)(Qt,{className:`h-5 w-5`})}),(0,G.jsx)(`h1`,{className:`text-lg font-semibold text-foreground`,children:`Import Journal Entry`})]}),o===`loading`?(0,G.jsxs)(`div`,{className:`text-xs text-muted-foreground flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`inline-block animate-spin`,children:`⏳`}),`Preparing preview...`]}):o===`error`?(0,G.jsx)(q,{variant:`outline`,size:`sm`,onClick:d,children:`Retry`}):o===`pending-confirmation`||o===`creating`?null:(0,G.jsx)(Dre,{selectedDate:i,onImportToday:async()=>{u&&await u()},onDateSelect:async e=>{a(e);let t=new Date;t.setHours(0,0,0,0);let n=new Date(e);n.setHours(0,0,0,0),n<t?r(!0):u&&await u()},isLoading:o===`creating`})]}),(0,G.jsxs)(`div`,{className:`flex-1 overflow-auto px-6 py-6`,children:[o===`loading`&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center min-h-96 gap-4`,children:[(0,G.jsx)(`div`,{className:`animate-spin`,children:`⏳`}),(0,G.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Loading preview...`})]}),o===`error`&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center min-h-96 gap-4`,children:[(0,G.jsx)(`div`,{className:`bg-destructive/10 border border-destructive/50 rounded-lg p-4 max-w-md`,children:(0,G.jsxs)(`div`,{className:`flex gap-3 items-start`,children:[(0,G.jsx)(Et,{className:`h-5 w-5 text-destructive mt-0.5 shrink-0`}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h3`,{className:`font-semibold text-foreground`,children:`Error Loading Preview`}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:l||`Failed to decode the zip content`})]})]})}),(0,G.jsx)(q,{onClick:d,variant:`outline`,children:`Try Again`})]}),o===`pending-confirmation`&&(0,G.jsx)(`div`,{className:`flex flex-col items-center justify-center min-h-96 gap-4`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-foreground mb-2`,children:`Backdate Confirmation Required`}),(0,G.jsx)(`p`,{className:`text-muted-foreground text-sm mb-4`,children:`This date is in the past. Please confirm to proceed.`})]})}),o===`creating`&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center min-h-96 gap-4`,children:[(0,G.jsx)(`div`,{className:`animate-spin`,children:`⏳`}),(0,G.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Creating journal entry...`})]}),o===`success`&&(0,G.jsx)(`div`,{className:`flex flex-col items-center justify-center min-h-96 gap-4`,children:(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold text-foreground mb-2`,children:`✓ Entry Created`}),(0,G.jsx)(`p`,{className:`text-muted-foreground text-sm`,children:`Redirecting...`})]})}),o===`loading`||o===`error`||o===`pending-confirmation`||o===`creating`||o===`success`?null:s?(0,G.jsx)(`article`,{className:`prose prose-sm max-w-2xl mx-auto`,children:(0,G.jsx)(pn,{remarkPlugins:[Bn],components:kre,children:s})}):null]}),n&&c&&(0,G.jsx)(Ore,{dateKey:c,onConfirm:async()=>{u&&(r(!1),await u())},onCancel:()=>r(!1),isLoading:o===`creating`})]})}function Are(){let e=wn(),t=ln();return(0,W.useEffect)(()=>{let n=new URLSearchParams(e.search).get(`source`);t(n?`${$.notebooks}?feed=${encodeURIComponent(n)}`:$.notebooks,{replace:!0})},[e.search,t]),(0,G.jsx)(`div`,{className:`p-8 text-center text-xs text-muted-foreground`,"data-testid":`feed-subscription-intake`,children:`Redirecting to Library…`})}async function jre(e,t,n){let r=await Z.getNote(e);if(!r)return;let i=`:session{result:${n}}`;if(r.rawContent.includes(i))return;let a=Object.values(r.blocks??{}).find(e=>e.id===t);if(!a||a.to==null)return;let o=`${r.rawContent.slice(0,a.to)}\n\n\`\`\`query:table\n${i}\n\`\`\`${r.rawContent.slice(a.to)}`;await new Bk().updateRecord(r.id,{rawContent:o,expectedSourceRevision:r.sourceRevision})}function Mre(){let{runtimeId:e}=Ht(),t=ln(),n=(0,W.useRef)(e?q0.get(e):void 0),r=(0,W.useRef)(null),i=(0,W.useCallback)(async()=>{let t=n.current;if(!t||!e)throw Error(`The pending workout is unavailable.`);return t.captured?(r.current=t.captured,t.captured.block):(r.current||=t.snapshot?await Hj(t.snapshot,t.block,e,t.origin):await Uj(t.noteId,t.block,e,t.origin),r.current.block)},[e]);(0,W.useEffect)(()=>{e&&q0.delete(e)},[e]);let a=n.current,o=(0,W.useRef)(!1),s=(0,W.useCallback)((t,n)=>!n||!e||!a?Promise.reject(Error(`Run cannot be saved — its session data or runtime id is missing.`)):(o.current=n.completed,Xj.record({runBlock:a.block,blockId:a.block.id,noteId:a.noteId,resultId:e,data:n,createdAt:n.endTime||Date.now(),...a.origin?{origin:a.origin}:{}}).then(async()=>{if(n.completed)try{await jre(a.noteId,a.block.id,e)}catch{}})),[e,a]),c=(0,W.useCallback)(()=>{if(!a){t(`/`);return}if(o.current){t(ZP(e),{replace:!0});return}if(a.returnTo){t(a.returnTo,{replace:!0});return}t(x0(eL(a.noteId)),{replace:!0})},[e,a,t]);if(!a)return(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-red-400`,children:`Runtime not found. Please start the workout from the editor.`});let l=r.current?.note.rawContent??a.captured?.note.rawContent??a.snapshot?.rawContent;return(0,G.jsx)(bQ,{block:a.block,noteContent:l,prepareRun:i,onClose:c,onCompleteWorkout:s,resultId:e,autoStart:!0})}var $9=null;async function Nre(e){(!$9||$9.attempt!==e)&&($9={attempt:e,promise:gW(kW.content)});try{return await $9.promise}finally{$9?.attempt===e&&($9=null)}}function Pre(){let e=ln(),[t,n]=(0,W.useState)(!1),[r,i]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=!1;return(async()=>{try{let n=await Nre(r);t||e(HP(n),{replace:!0})}catch{t||n(!0)}})(),()=>{t=!0}},[e,r]),t?(0,G.jsxs)(`div`,{className:`flex-1 flex flex-col items-center justify-center gap-3 text-zinc-300 px-4 text-center`,children:[(0,G.jsx)(`p`,{role:`alert`,children:`Unable to create a new playground note.`}),(0,G.jsx)(`button`,{type:`button`,className:`rounded border border-zinc-600 px-3 py-1 text-sm hover:bg-zinc-800`,onClick:()=>{n(!1),i(e=>e+1)},children:`Try again`})]}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`})}function Fre(){let e=ln(),t=wn(),[n]=cn(`zip`),[r]=cn(`z`),[i]=cn(`by`),[a]=cn(`src`);(0,W.useEffect)(()=>{if(t.pathname!==`/load`&&!(t.pathname===`/`&&r))return;if(r){let t=!1;return(async()=>{try{let e=await X9(r);if(e===null)throw Error(`Invalid workout link`);if(t)return;let n=F2(e,i??void 0);if(await _W(n,{reuseKey:`home`,title:`Home playground`}),t)return;R2({content:n,by:i??void 0})}catch(e){console.error(`Failed to decode zip:`,e),t||Q({title:`Could not import workout`,description:`The link was invalid or the workout could not be saved.`,variant:`destructive`})}t||e(`/`,{replace:!0})})(),()=>{t=!0}}if(!n)return;let o=!1,s=a&&a.startsWith(`/`)?a:void 0;return(async()=>{try{let t=await X9(n);if(t===null)throw Error(`Invalid workout link`);if(o)return;let r=s?await gW(t,{sourcePath:s}):await gW(t);o||e(HP(r),{replace:!0})}catch(t){console.error(`Failed to decode zip:`,t),o||(Q({title:`Could not import workout`,description:`The link was invalid or the workout could not be saved.`,variant:`destructive`}),e($.home,{replace:!0}))}})(),()=>{o=!0}},[n,r,i,a,e,t.pathname])}function Ire(){let{pathname:e,hash:t}=wn(),{scrollToSection:n}=uP();return(0,W.useEffect)(()=>{if(t){let e=t.slice(1);n(e);let r=setTimeout(()=>{n(e)},50);return()=>clearTimeout(r)}window.scrollTo(0,0)},[e,t]),null}function Lre(){return Fre(),Z9(),(0,W.useEffect)(()=>{Ck.current().catch(console.error),pk(),z3(),Rj().catch(()=>{})},[]),null}function Rre({settling:e}){let t=L3();if(e){let e=X4(t);return(0,G.jsxs)(`div`,{role:`status`,className:`flex min-h-dvh flex-col items-center justify-center gap-2 text-muted-foreground`,children:[(0,G.jsx)(`span`,{children:t?Y4(t):`Loading library…`}),e&&(0,G.jsx)(`span`,{className:`text-xs`,"data-testid":`boot-progress-detail`,children:e})]})}return(0,G.jsxs)(`div`,{role:`alert`,className:`flex min-h-dvh flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm font-semibold`,children:`The library's routed content failed to load.`}),(0,G.jsx)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:`The feed corpus has not supplied this page. Re-running the feed import usually restores it.`}),(0,G.jsx)(q,{variant:`outline`,size:`sm`,"data-testid":`root-refeed`,onClick:()=>{yN().then(()=>lk())},children:`Re-import library`})]})}function zre(){let e=(0,W.useRef)(()=>{}),t=Dz(),n=I3(),r=(0,W.useMemo)(()=>XR(()=>e.current(),t),[t]);return(0,G.jsx)(Ti,{defaultTheme:`system`,storageKey:`wod-wiki-playground-theme`,children:(0,G.jsx)(Mb,{children:(0,G.jsx)(FN,{children:(0,G.jsx)(RN,{children:(0,G.jsx)(gte,{children:(0,G.jsx)(bt,{children:(0,G.jsxs)(aee,{children:[(0,G.jsx)(Lre,{}),(0,G.jsx)(aP,{}),(0,G.jsxs)(fP,{tree:r,children:[(0,G.jsx)(Ire,{}),(0,G.jsxs)(Nt,{children:[(0,G.jsx)(Tt,{path:$.home,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:`*`,element:t.length===0?(0,G.jsx)(Rre,{settling:n===`preparing`||eN()&&n!==`error`}):(0,G.jsx)(xne,{})}),(0,G.jsx)(Tt,{path:`/proto/calc-authoring`,element:(0,G.jsx)(Nne,{})}),(0,G.jsx)(Tt,{path:`/proto/query-block-composer`,element:(0,G.jsx)(Une,{})}),(0,G.jsx)(Tt,{path:`/settings`,element:(0,G.jsx)(Kn,{to:`/settings/appearance`,replace:!0})}),(0,G.jsx)(Tt,{path:`/settings/appearance`,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.settingsProfile,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.settingsData,element:(0,G.jsx)(Kn,{to:$.settingsStorage,replace:!0})}),(0,G.jsx)(Tt,{path:$.settingsDatabase,element:(0,G.jsx)(Kn,{to:$.settingsStorage,replace:!0})}),(0,G.jsx)(Tt,{path:$.settingsStorage,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.settingsSync,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:`/settings/system`,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.settingsQueries,element:(0,G.jsx)(Kn,{to:$.journal,replace:!0})}),(0,G.jsx)(Tt,{path:$.settingsTags,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.settingsSoundProfiles,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:`/settings/library/calcs`,element:(0,G.jsx)(`div`,{className:`p-6`,children:(0,G.jsx)(Tre,{})})}),(0,G.jsx)(Tt,{path:`/legacy`,element:(0,G.jsx)(sne,{})}),(0,G.jsx)(Tt,{path:`/syntax`,element:(0,G.jsx)(bne,{})}),(0,G.jsx)(Tt,{path:$.plan,element:(0,G.jsx)($te,{})}),(0,G.jsx)(Tt,{path:$.feeds,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.feed,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.notebooks,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.notebook,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.notebookTarget,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.notebookItem,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.subscribe,element:(0,G.jsx)(Are,{})}),(0,G.jsx)(Tt,{path:$.pages,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.page,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.load,element:(0,G.jsx)(W.Suspense,{fallback:(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`}),children:(0,G.jsx)(Ere,{})})}),(0,G.jsx)(Tt,{path:$.loadJournal,element:(0,G.jsx)(W.Suspense,{fallback:(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`}),children:(0,G.jsx)(Q9,{})})}),(0,G.jsx)(Tt,{path:$.loadJournalDate,element:(0,G.jsx)(W.Suspense,{fallback:(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`}),children:(0,G.jsx)(Q9,{})})}),(0,G.jsx)(Tt,{path:$.playgroundRoot,element:(0,G.jsx)(Pre,{})}),(0,G.jsx)(Tt,{path:$.playground,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.playgrounds,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.notes,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.note,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.journal,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.day,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.run,element:(0,G.jsx)(W.Suspense,{fallback:(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`}),children:(0,G.jsx)(Mre,{})})}),(0,G.jsx)(Tt,{path:$.tracker,element:(0,G.jsx)(Qte,{})}),(0,G.jsx)(Tt,{path:`/results/segments`,element:(0,G.jsx)(Zte,{})}),(0,G.jsx)(Tt,{path:$.sessionDetail,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.sessions,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.sessionDate,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:`/review/:runtimeId`,element:(0,G.jsx)(J7,{})}),(0,G.jsx)(Tt,{path:`/note/:noteId/review`,element:(0,G.jsx)(J7,{})}),(0,G.jsx)(Tt,{path:`/note/:noteId/review/:sectionId`,element:(0,G.jsx)(J7,{})}),(0,G.jsx)(Tt,{path:`/note/:noteId/review/:sectionId/:resultId`,element:(0,G.jsx)(J7,{})}),(0,G.jsx)(Tt,{path:$.efforts,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.effort,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.equipment,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.equipmentSlug,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.tags,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.tagCategory,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.tag,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.dashboards,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),(0,G.jsx)(Tt,{path:$.dashboardView,element:(0,G.jsx)(q7,{searchHandlerRef:e})}),t.map(({route:t})=>(0,G.jsx)(Tt,{path:t,element:(0,G.jsx)(q7,{searchHandlerRef:e})},t))]}),(0,G.jsx)(ene,{})]})]})})})})})})})}function Bre({error:e,onRetry:t}){let n=e instanceof Error?e.message:String(e);return bk(),(0,G.jsxs)(`div`,{role:`alert`,className:`flex min-h-dvh flex-col items-center justify-center gap-4 p-6 text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm font-semibold`,children:`The API data store could not be opened.`}),(0,G.jsx)(`p`,{className:`max-w-md text-xs text-muted-foreground font-mono break-all`,"data-testid":`boot-recovery-error`,children:n}),(0,G.jsxs)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:[`Your stored data has not been cleared. Retry after resolving the error above.`,!1]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,onClick:t,"data-testid":`boot-recovery-retry`,className:`rounded-md border border-border bg-card px-3 py-1.5 text-xs font-medium hover:bg-accent`,children:`Retry`}),!1]}),!1]})}function Vre(){let e=(0,W.useSyncExternalStore)(aS,iS),t=e.phase===`updating`;return(0,G.jsxs)(`div`,{role:`status`,"aria-live":`polite`,className:`flex min-h-dvh flex-col items-center justify-center gap-3 p-6 text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm font-semibold`,children:t?`Updating local database…`:`Checking for storage updates…`}),t&&e.fromVersion!==null&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Schema v`,e.fromVersion,` → v`,e.toVersion]}),e.message&&(0,G.jsx)(`p`,{className:`max-w-md text-xs text-muted-foreground`,children:e.message})]})}var Hre=(0,Ci.createRoot)(document.getElementById(`root`));function Ure(){let[e,t]=(0,W.useState)(!1),[n,r]=(0,W.useState)(null),[i,a]=(0,W.useState)(0),o=(0,W.useSyncExternalStore)(aS,iS);return(0,W.useEffect)(()=>{let e=!1,n;return kk().then(()=>nj?sj():void 0).then(()=>IA.ensureNotebooks().catch(e=>Wj(`NotebookService`,`ensureNotebooks failed`,e))).then(()=>{e||(n=Mk(),t(!0))}).catch(t=>{e||r(t)}),()=>{e=!0,n?.()}},[i]),n?(0,G.jsx)(Bre,{error:n,onRetry:()=>{r(null),a(e=>e+1)}}):o.phase===`checking`||o.phase===`updating`?(0,G.jsx)(Vre,{}):e?(0,G.jsx)(zre,{}):(0,G.jsx)(`div`,{role:`status`,className:`flex min-h-dvh items-center justify-center text-muted-foreground`,children:`Opening local library…`})}Hre.render((0,G.jsx)(W.StrictMode,{children:(0,G.jsx)(Ure,{})}));export{DU as t};
499
- //# sourceMappingURL=main-DYNiJfcz.js.map
499
+ //# sourceMappingURL=main-4y8Q5pTh.js.map