@bitcobblers/wod-wiki-tools 0.53.2203 → 0.53.2204
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.
- package/dist/bin/wod.cjs +1 -1
- package/dist/bin/wod.cjs.map +1 -1
- package/dist/bin/wod.mjs +2 -2
- package/dist/{chunk-ES4ZZ447.mjs → chunk-5NNSHRMZ.mjs} +3 -3
- package/dist/chunk-5NNSHRMZ.mjs.map +1 -0
- package/dist/{chunk-LWW4HK4G.mjs → chunk-SLCRIGUR.mjs} +4 -4
- package/dist/{chunk-LWW4HK4G.mjs.map → chunk-SLCRIGUR.mjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/{scaffoldFeed-OS5HGYG4.mjs → scaffoldFeed-TCRNXYQU.mjs} +3 -3
- package/dist/{scaffoldFeed-OS5HGYG4.mjs.map → scaffoldFeed-TCRNXYQU.mjs.map} +1 -1
- package/dist/skills/README.md +2 -4
- package/dist/skills/wod-wiki-testing/SKILL.md +45 -0
- package/dist/skills/wod-wiki-testing/references/catalog.md +81 -0
- package/dist/web/playground/assets/{main-BChtcigM.js → main-DfHqNhwO.js} +6 -6
- package/dist/web/playground/assets/{statementBuilderFlow-BHGR9gIs.js → statementBuilderFlow-CQWO7k9W.js} +2 -2
- package/dist/web/playground/index.html +1 -1
- package/dist/web/playground/seed/core/chunks/{canvas.28c523ac.json → canvas.deac64e3.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{dashboards.dc521d4e.json → dashboards.08301ab4.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{efforts.cc1d51a5.json → efforts.47f650fe.json} +1 -1
- package/dist/web/playground/seed/core/chunks/{equipment.3c479de5.json → equipment.79146d31.json} +1 -1
- package/dist/web/playground/seed/core/indexes/notebooks/canvas.json +180 -180
- package/dist/web/playground/seed/core/indexes/notebooks/dashboards.json +16 -16
- package/dist/web/playground/seed/core/indexes/notebooks/efforts.json +326 -326
- package/dist/web/playground/seed/core/indexes/notebooks/equipment.json +50 -50
- package/dist/web/playground/seed/core/manifest.json +27 -27
- package/dist/web/playground/seed/core/markdown/canvas/ai-first/README.json +1 -1
- package/dist/web/playground/seed/core/markdown/canvas/guide/README.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/guide/clock.json +1 -1
- package/dist/web/playground/seed/core/markdown/canvas/guide/dashboards.json +1 -1
- package/dist/web/playground/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/guide/metrics.json +12 -12
- package/dist/web/playground/seed/core/markdown/canvas/guide/protocols.json +20 -20
- package/dist/web/playground/seed/core/markdown/canvas/guide/sessions.json +33 -33
- package/dist/web/playground/seed/core/markdown/canvas/guide/start.json +11 -11
- package/dist/web/playground/seed/core/markdown/canvas/guide/structure.json +25 -25
- package/dist/web/playground/seed/core/markdown/canvas/guide/wql.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/home/sample-script.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/home/welcome-1.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
- package/dist/web/playground/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-1.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-2.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-3.json +10 -10
- package/dist/web/playground/seed/core/markdown/canvas/syntax/document-4.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/measurements.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
- package/dist/web/playground/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
- package/dist/web/playground/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
- package/dist/web/playground/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
- package/dist/web/playground/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
- package/dist/web/playground/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
- package/dist/web/playground/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
- package/dist/web/playground/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
- package/dist/web/playground/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
- package/dist/web/playground/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
- package/dist/web/playground/seed/core/markdown/dashboards/training-block-review.json +11 -11
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/recovery/rest.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/recovery/stretching.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/rowing/rowing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/backward-running.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/running/running-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/snatch.json +2 -2
- package/dist/web/playground/seed/core/markdown/efforts/strength/back-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/bench-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/carioca.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/cluster.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/devils-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/front-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/good-morning.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/l-sit.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/man-maker.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/power-clean.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/push-press.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/sled-push.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/thruster.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/swimming/swimming.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
- package/dist/web/playground/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/air-bike.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/barbell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/bench.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/bike-erg.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/climbing-rope.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/clubs.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/dumbbell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/ghd.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/jump-rope.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/kettlebell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/macebell.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/medicine-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/parallettes.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/plyo-box.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/pull-up-bar.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/rower.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/sandbag.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/ski-erg.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/slam-ball.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/sled.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/sledgehammer.json +1 -1
- package/dist/web/playground/seed/core/markdown/equipment/weight-vest.json +1 -1
- package/dist/web/playground/seed/core/report.html +13 -13
- package/dist/web/server/assets/{main-BT4Llg8k.js → main-VXFEU44Q.js} +6 -6
- package/dist/web/server/assets/{statementBuilderFlow-C7ob6Wnu.js → statementBuilderFlow-C7x-7JGx.js} +2 -2
- package/dist/web/server/index.html +1 -1
- package/dist/web/server/seed/core/chunks/{canvas.28c523ac.json → canvas.deac64e3.json} +1 -1
- package/dist/web/server/seed/core/chunks/{dashboards.dc521d4e.json → dashboards.08301ab4.json} +1 -1
- package/dist/web/server/seed/core/chunks/{efforts.cc1d51a5.json → efforts.47f650fe.json} +1 -1
- package/dist/web/server/seed/core/chunks/{equipment.3c479de5.json → equipment.79146d31.json} +1 -1
- package/dist/web/server/seed/core/indexes/notebooks/canvas.json +180 -180
- package/dist/web/server/seed/core/indexes/notebooks/dashboards.json +16 -16
- package/dist/web/server/seed/core/indexes/notebooks/efforts.json +326 -326
- package/dist/web/server/seed/core/indexes/notebooks/equipment.json +50 -50
- package/dist/web/server/seed/core/manifest.json +27 -27
- package/dist/web/server/seed/core/markdown/canvas/ai-first/README.json +1 -1
- package/dist/web/server/seed/core/markdown/canvas/guide/README.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/guide/clock.json +1 -1
- package/dist/web/server/seed/core/markdown/canvas/guide/dashboards.json +1 -1
- package/dist/web/server/seed/core/markdown/canvas/guide/metrics-summaries.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/guide/metrics.json +12 -12
- package/dist/web/server/seed/core/markdown/canvas/guide/protocols.json +20 -20
- package/dist/web/server/seed/core/markdown/canvas/guide/sessions.json +33 -33
- package/dist/web/server/seed/core/markdown/canvas/guide/start.json +11 -11
- package/dist/web/server/seed/core/markdown/canvas/guide/structure.json +25 -25
- package/dist/web/server/seed/core/markdown/canvas/guide/wql.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/home/sample-script.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/home/welcome-1.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/actions-comments.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/alternating-emom.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/basic-emom.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/calculated-metrics.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/classic-amrap.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-barbell-cycling.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-full-session.json +10 -10
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-nested-protocols.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-partner-workout.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/complex-swimming.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/core-rules.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-and-calculated-metrics.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-intervals.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-1.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-2.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-3.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/custom-metrics-5.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-bouldering.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-hangboard.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-climb-sport.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-log.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-plan.json +8 -8
- package/dist/web/server/seed/core/markdown/canvas/syntax/dialect-wod.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/distance-intervals.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-1.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-2.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-3.json +10 -10
- package/dist/web/server/seed/core/markdown/canvas/syntax/document-4.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/effort-notes.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/frontmatter-summaries.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-1.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-2.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-3.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/groups-4.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/longer-duration.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/longer-intervals.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/measurements.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-1.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-2.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-3.json +8 -8
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-4.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/metrics-5.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-sections.json +10 -10
- package/dist/web/server/seed/core/markdown/canvas/syntax/mixed-timers.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-amrap-windows.json +7 -7
- package/dist/web/server/seed/core/markdown/canvas/syntax/multiple-sets.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/named-groups.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-1.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-2.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-3.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-4.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/protocols-5.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/single-movement.json +3 -3
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-1.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-2.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-3.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/supplemental-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/time-cap.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/timer-modifiers.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-1.json +6 -6
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-2.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-3.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-4.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-5.json +5 -5
- package/dist/web/server/seed/core/markdown/canvas/syntax/timers-rest.json +4 -4
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-effort.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/aggregate-by-week.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/content-fran.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/filter-combos.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/pipes-limit.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/session-rpe.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/source-journal.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/tis-trend.json +2 -2
- package/dist/web/server/seed/core/markdown/canvas/wql-presets/where-join.json +2 -2
- package/dist/web/server/seed/core/markdown/dashboards/benchmark-pr-board.json +6 -6
- package/dist/web/server/seed/core/markdown/dashboards/finger-strength-v8.json +5 -5
- package/dist/web/server/seed/core/markdown/dashboards/polarized-base-marathon.json +9 -9
- package/dist/web/server/seed/core/markdown/dashboards/recovery-readiness.json +7 -7
- package/dist/web/server/seed/core/markdown/dashboards/road-to-560-total.json +9 -9
- package/dist/web/server/seed/core/markdown/dashboards/training-block-review.json +11 -11
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/air-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/box-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/broad-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-box-jump-over.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee-over-dumbbell.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/burpee.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/dumbbell-squat-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/ghd-sit-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/ground-kong.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/jumping-jack.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/kong-walk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/lunge.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/overhead-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-roll.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/parkour-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/pistol-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/plank.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-burpee.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/precision-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/quadrupedal-movement.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/russian-twist.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/sit-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-hold.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/squat-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/tuck-jump.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/bodyweight/wall-burpee.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/cycling/assault-bike.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-moderate.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/cycling/cycling-vigorous.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/assisted-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/burpee-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/chest-to-bar-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/dip.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/double-under.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-hold.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-push-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/handstand-walk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jump-rope.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/jumping-push-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/l-sit-pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/muscle-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/pull-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/push-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/reverse-wall-dip.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/rope-climb.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/gymnastics/toes-to-bar.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-arm-bar.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-around-the-world.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-bent-over-row.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean-and-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-floor-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-front-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-goblet-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-gorilla-row.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-halo.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-overhead-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-swing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/kettlebell-windmill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/kettlebell/turkish-get-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/recovery/rest.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/recovery/stretching.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/rowing/rowing-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/rowing/rowing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/rowing/ski-erg.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/backward-running.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/running-6-mph.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/running-8-mph.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/running/running-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/snatch.json +2 -2
- package/dist/web/server/seed/core/markdown/efforts/strength/back-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/bench-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/box-step-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/carioca.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/clean-and-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/cluster.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dead-hang.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/devils-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-box-step-up.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-fly.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-row.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/dumbbell-thruster.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/elbows-to-knees.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/farmer-carry.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/frog-stand.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/front-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/good-morning.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/hanging-leg-raise.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/hollow-rock.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/knees-to-elbows.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/l-sit.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/man-maker.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/medicine-ball-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/overhead-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/parkour-vault.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/pig-flip.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/power-clean.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/power-snatch.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/push-jerk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/push-press.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/romanian-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/single-leg-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/skull-crusher.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/slam-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/sled-pull.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/sled-push.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/sumo-deadlift.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/thruster.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/triceps-extension.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/v-sit-hold.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/wall-walk.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/strength/yoga-sun-salutation.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-assisted-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-backstroke.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke-kick.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-breaststroke.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-butterfly.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-catch-up-drill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-choice-stroke.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dive-start.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-dolphin-kick.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-drafting.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-fingertip-drag.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-freestyle.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-individual-medley.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-kick.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-pull.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-resisted-sprint.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-rotation-drill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-sighting.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-single-arm-drill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-stroke-transition.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-two-kick-one-pull.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming-vigorous.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/swimming/swimming.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-arm-cast.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-circles.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-mill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-reverse-mill.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/clubbell-shield-cast.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-10-to-2-swing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-360-swing.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-barbarian-squat.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-flow.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-gravedigger.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/macebell-touchdown.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-carry.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-bear-hug-extension.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/unconventional/sandbag-over-shoulder.json +1 -1
- package/dist/web/server/seed/core/markdown/efforts/walking/walking-3-mph.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/air-bike.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/barbell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/bench.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/bike-erg.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/climbing-rope.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/clubs.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/dumbbell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/ghd.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/gymnastic-rings.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/jump-rope.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/kettlebell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/macebell.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/medicine-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/parallettes.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/plyo-box.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/pull-up-bar.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/rower.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/sandbag.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/ski-erg.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/slam-ball.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/sled.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/sledgehammer.json +1 -1
- package/dist/web/server/seed/core/markdown/equipment/weight-vest.json +1 -1
- package/dist/web/server/seed/core/report.html +13 -13
- package/package.json +6 -6
- package/dist/chunk-ES4ZZ447.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/statementBuilderFlow-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/statementBuilderFlow-C7x-7JGx.js","assets/rolldown-runtime-C0FnF6B9.js","assets/vendor-Dz-Azkoq.js","assets/vendor-CelWxf33.css"])))=>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,Ai as s,An as c,Ar as l,At as u,B as d,Bi as f,Bn as p,Br as m,Bt as h,C as g,Ci as _,Cn as v,Cr as y,Ct as b,D as x,Di as S,Dn as C,Dr as w,Dt as T,E,Ei as D,En as O,Er as k,Et as A,F as j,Fi as M,Fn as N,Fr as P,Ft as F,G as I,Gi as L,Gn as R,Gr as z,Gt as ee,H as te,Hi as B,Hn as ne,Hr as re,Ht as ie,I as ae,Ii as oe,In as se,Ir as ce,It as le,J as ue,Jn as de,Jr as fe,Jt as pe,K as me,Ki as he,Kn as ge,Kr as _e,Kt as ve,L as ye,Li as V,Ln as be,Lr as xe,Lt as Se,M as Ce,Mi as we,Mn as Te,Mr as H,Mt as Ee,N as De,Ni as Oe,Nn as ke,Nr as Ae,Nt as je,O as Me,Oi as Ne,On as Pe,Or as Fe,Ot as Ie,P as Le,Pi as Re,Pn as ze,Pr as Be,Pt as Ve,Q as He,Qn as Ue,Qr as We,Qt as Ge,R as Ke,Ri as qe,Rn as Je,Rr as Ye,Rt as Xe,S as Ze,Si as Qe,Sn as $e,Sr as et,St as tt,T as nt,Ti as rt,Tn as it,Tr as at,Tt as ot,U as st,Ui as ct,Un as lt,Ur as ut,Ut as dt,V as ft,Vi as pt,Vn as mt,Vr as ht,Vt as gt,W as _t,Wi as vt,Wn as yt,Wr as bt,Wt as xt,X as St,Xn as Ct,Xr as wt,Xt as Tt,Y as Et,Yn as Dt,Yr as Ot,Yt as kt,Z as At,Zn as jt,Zr as Mt,_ as Nt,_i as Pt,_n as Ft,_r as It,_t as Lt,a as Rt,ai as zt,ar as Bt,at as Vt,b as Ht,bi as Ut,bn as Wt,br as Gt,bt as Kt,c as qt,ci as Jt,cn as Yt,cr as eee,ct as Xt,d as Zt,di as Qt,dn as $t,dr as en,dt as tn,ei as nn,en as rn,er as an,et as on,f as sn,fi as cn,fn as ln,fr as un,ft as dn,g as fn,gi as pn,gn as mn,gr as hn,gt as gn,h as _n,hi as vn,hn as yn,hr as bn,ht as xn,i as tee,ii as Sn,ir as Cn,it as nee,j as ree,ji as wn,jn as Tn,jr as En,jt as Dn,k as On,ki as kn,kn as An,kt as jn,l as Mn,li as Nn,ln as Pn,lr as Fn,lt as In,m as Ln,mi as Rn,mn as zn,mr as Bn,mt as Vn,n as Hn,ni as Un,nr as Wn,nt as Gn,o as Kn,oi as qn,or as Jn,ot as Yn,p as Xn,pi as Zn,pn as Qn,pr as $n,pt as er,q as tr,qn as nr,qr as rr,qt as ir,r as ar,ri as iee,rr as or,rt as sr,s as aee,si as cr,sn as lr,sr as ur,st as dr,t as fr,ti as pr,tr as mr,tt as hr,u as gr,ui as _r,un as vr,ur as yr,ut as br,v as xr,vi as Sr,vn as Cr,vr as wr,vt as Tr,w as Er,wi as Dr,wn as Or,wr as kr,wt as Ar,x as jr,xi as Mr,xn as Nr,xr as Pr,xt as Fr,y as Ir,yi as Lr,yn as Rr,yr as zr,yt as Br,z as Vr,zi as Hr,zn as Ur,zr as Wr,zt as Gr}from"./vendor-Dz-Azkoq.js";import{$ as Kr,A as qr,B as Jr,C as Yr,D as Xr,E as Zr,F as Qr,G as $r,H as ei,I as ti,J as ni,K as ri,L as ii,M as ai,N as oi,O as si,P as ci,Q as li,R as ui,S as di,T as fi,U,V as pi,W as mi,X as hi,Y as oee,Z as see,_ as gi,a as _i,at as vi,b as cee,c as yi,ct as bi,d as lee,dt as xi,et as Si,f as Ci,ft as wi,g as uee,h as Ti,i as Ei,it as Di,j as Oi,k as ki,l as Ai,lt as ji,m as Mi,n as Ni,nt as Pi,o as Fi,ot as Ii,p as Li,pt as Ri,q as zi,r as Bi,rt as Vi,s as Hi,st as Ui,t as dee,tt as fee,u as Wi,ut as Gi,v as Ki,w as qi,x as Ji,y as Yi,z as Xi}from"./vendor-codemirror-B4BeZarI.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 Zi=vt(),W=e(he(),1),G=we(),Qi=(0,W.createContext)({theme:`system`,setTheme:()=>null});function $i({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)(Qi.Provider,{value:o,children:e})}var ea=()=>{let e=(0,W.useContext)(Qi);if(e===void 0)throw Error(`useTheme must be used within a ThemeProvider`);return e};function K(...e){return cr(wn(e))}var ta=Jt(`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?Nn:`button`;return(0,G.jsx)(s,{as:o,className:K(ta({variant:t,size:n,className:e})),ref:a,...i})}));q.displayName=`Button`;var na=[`parser`,`dialect`,`user-plan`,`runtime`,`user-entry`],ra={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 ia(e){return ra[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}({}),aa={parser:0,dialect:1,"user-plan":2,runtime:3,"user-entry":4};function oa(e){return e.ownershipLayer??ia(e.origin)}function sa(e){return aa[oa(e)]??0}function ca(e){return e.map((e,t)=>{let n=oa(e);return{metric:e,type:e.type,layer:n,layerRank:aa[n]??0,index:t,isSuppressor:e.action===`suppress`}})}function la(e,t){return t?e.filter(e=>!(t.types&&!t.types.includes(e.type)||t.layers&&!t.layers.includes(e.layer))):[...e]}function ua(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 da(e){let t;for(let n of e)n.isSuppressor||(t==null||n.layerRank>t)&&(t=n.layerRank);return t}function fa(e,t){return{metric:e.metric,type:e.type,layer:e.layer,outcome:t}}function pa(e,t){return e.index-t.index}function ma(e){let t=ca(e);return{raw(e){return la(t,e).map(e=>e.metric)},visible(e){let n=ua(la(t,e)),r=[];for(let e of n.values()){if(e.some(e=>e.isSuppressor))continue;let t=da(e);if(t!=null)for(let n of e)!n.isSuppressor&&n.layerRank===t&&r.push(n)}return r.sort(pa),r.map(e=>e.metric)},byLayer(e){let n=la(t,e),r={};for(let e of na)r[e]=[];for(let e of n)r[e.layer].push(e.metric);for(let e of na)r[e]?.length===0&&delete r[e];return r},promotionCandidates(e){let n=ua(la(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:na[i]});continue}let i=da(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:na[i]})}return r.sort((e,t)=>{let n=(aa[t.layer]??0)-(aa[e.layer]??0);return n===0?0:n}),r},explain(e){let n=ua(la(t,e)),r=[];for(let[e,t]of n.entries()){let n=t.some(e=>e.isSuppressor),i=n?void 0:da(t),a=t.map(e=>e.isSuppressor?fa(e,`suppressor`):n?fa(e,`hidden-by-suppressor`):i!=null&&e.layerRank===i?fa(e,`visible`):fa(e,`hidden-by-layer`));r.push({type:e,winnerLayer:i==null?void 0:na[i],suppressed:n,entries:a})}return r}}}function ha(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 ga=class{resolve(e,t){return ma(ha(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)=>sa(t)-sa(e))}};function _a(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 va(e){let t=_a(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 ya(e){return e.split(`.`).map(va).filter(e=>e.length>0).join(`.`)}function ba(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 xa(e){return JSON.stringify([e.path,e.kind,e.dimension??null])}var Sa=class extends Error{code;constructor(e,t){super(t),this.name=`UnitConversionError`,this.code=e}},Ca=[{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`]}],wa=(()=>{let e=new Map;for(let t of Ca){e.set(t.canonical.toLowerCase(),t);for(let n of t.aliases??[])e.has(n.toLowerCase())||e.set(n.toLowerCase(),t)}return e})();function Ta(e){if(typeof e==`string`)return wa.get(e.trim().toLowerCase())}function Ea(e){return Ta(e)?.dimension}var Da=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 Oa(e){return Da[e]}function ka(e,t,n){let r=Ta(t);if(!r)throw new Sa(`unknown-unit`,`Unknown unit "${t}"`);let i=Ta(n);if(!i)throw new Sa(`unknown-unit`,`Unknown unit "${n}"`);if(r.dimension!==i.dimension)throw new Sa(`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 Sa(`scale-mismatch`,`Named scales ${t} and ${n} are not interchangeable`);if(!Number.isFinite(e))throw new Sa(`non-finite`,`Non-finite value cannot be converted`);return e*r.factor/i.factor}var Aa=`references`,ja=[`explicit`,`split`,`whole`,`default`,`none`];function Ma(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 Na(e){return!e||typeof e!=`object`?!1:typeof e.reason==`string`}function Pa(e){let t=e?.[Aa];if(!t||typeof t!=`object`)return;let n=t;if(!(typeof n.matched!=`string`||!ja.includes(n.matched))&&typeof n.source==`string`&&!(n.refs!==void 0&&(!Array.isArray(n.refs)||!n.refs.every(Ma)))&&!(n.diagnostics!==void 0&&(!Array.isArray(n.diagnostics)||!n.diagnostics.every(Na))))return t}var Fa=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}},Ia=class e{_metrics;_indexedLength=0;_resolver=new ga;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)=>sa(t)-sa(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=>sa(e))),i=Math.max(...t.map(e=>sa(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 Ia?this.metrics:Ia.from(this.metrics,this.id)}},Ra=class extends La{id=0;parent;children=[];meta=new Fa(0,0,0,0);_metrics=Ia.empty();metricMeta=new Map;isLeaf;get metrics(){return this._metrics}set metrics(e){this._metrics=Ia.from(e,this.id)}constructor(e){super(),e&&(Object.assign(this,e),e.metrics&&(this.metrics=Ia.from(e.metrics,this.id)),this.metricMeta||=new Map)}},za=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=Ia.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 Fa(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=Ia.from(n,this.id),this.metricMeta=new Map,this.children=[],this.isLeaf=!0,this.meta=i?.meta??new Fa(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}},Ba=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 Va(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 Ha=`tagReference`;function Ua(e){let t=e?.[Ha];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 Wa(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 pee(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 Ga(e){return[...e].sort(pee)}function Ka(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[];for(let t of Ga(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 qa(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 mee=[`segment`,`system`,`load`,`event`,`compiler`,`completion`,`analytics`,`wellness`];function hee(e){return e===`time`?`run`:e===`log`?`log`:null}var gee=[`defaults`,`guides`,`efforts`,`equipment`,`dashboards`],_ee=[`journal`,`playground`,`defaults`,`custom`,`guides`,`efforts`,`equipment`,`dashboards`],vee=new Set(gee),yee=new Set(_ee);function Ja(e){return vee.has(Xa(e))}function Ya(e){return yee.has(Xa(e))}function Xa(e){let t=e.trim();return t.startsWith(`notebook/`)||t.startsWith(`notebook:`)?t.slice(9):t}function Za(e){return`notebook/${Xa(e)}`}function Qa(e,t,n){let r=n??e.notebookId??void 0;return r&&Ja(r)?!1:t?t!==`feed`:e.seedOrigin!==`seed`&&e.feedOrigin!==`feed`}var $a=[{slug:`journal`,notebookId:`notebook/journal`,name:`Journal`,description:`Private training log tracking all created notes and sessions across journal and playground.`,icon:`J`,href:`/journal`,readOnly:!1,publishable:!1},{slug:`playground`,notebookId:`notebook/playground`,name:`Playground`,description:`Scratchpad workouts and timer experiments.`,icon:`P`,href:`/playgrounds`,readOnly:!1,publishable:!1},{slug:`defaults`,notebookId:`notebook/defaults`,name:`Defaults`,description:`Read-only base primitives: Tags, Efforts, Equipment, and shared dynamic properties.`,icon:`D`,href:`/notebook/defaults`,readOnly:!0,publishable:!1},{slug:`custom`,notebookId:`notebook/custom`,name:`Custom`,description:`User overrides and custom Tags, Efforts, Equipment, and starter workouts.`,icon:`C`,href:`/notebook/custom`,readOnly:!1,publishable:!1},{slug:`guides`,notebookId:`notebook/guides`,name:`Guides`,description:`Pre-subscribed read-only Whiteboard Language and WQL guides.`,icon:`G`,href:`/notebook/guides`,readOnly:!0,publishable:!1,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`}],eo=[`playground-run-tip`,`attention`,`code-example`,`syntax-group`],to={table:!0,list:!0,value:!0,timeseries:!0,bar:!0,donut:!0,toplist:!0,"stacked-bar":!0,"goal-rings":!0,"zone-distribution":!0};function no(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 ro(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 io(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 ao(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]==="`"?no(`\`\`\`${h}`):null,_=a[0]==="`"?h.match(/^widget:([\w-]+)$/):null,v=t.registeredWidgets??eo,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&&to[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=Wa(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=ro(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=io(m.displayContent.trim()),a&&(c=!1),o.push(m),l=p+1}return o}function oo(e){return e.type===`time`||e.type===`log`?`wod`:e.type===`query`||e.type===`widget`||e.type===`embed`?e.type:null}function so(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 ao(e,t)){let e=oo(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 co(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=so(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 lo(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 uo=/^[A-Za-z][\w.-]*$/,fo=/^---\r?\n([\s\S]*?)\r?\n---/;function po(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function mo(e){let t=e.trim();return t===``||t.startsWith(`#`)}function ho(e){return Array.isArray(e)}function go(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 _o(e,t,n){let r=` `.repeat(e);return ho(n)?n.length===0?[`${r}${t}: []`]:[`${r}${t}:`,...n.map(e=>`${r} - ${typeof e==`number`?String(e):go(e)}`)]:[`${r}${t}: ${typeof n==`number`?String(n):go(n)}`]}function vo(e,t,n,r){let i=[],a=r;for(let r=t;r<e.length;r++)r===e.length-1?i.push(..._o(a,e[r],n)):i.push(`${` `.repeat(a)}${e[r]}:`),a+=2;return i}function yo(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 bo(e,t,n){let r=[t],i=[];for(let a=t+1;a<e.length;a++){let t=e[a];if(mo(t)){i.push(a);continue}if(t.length-t.trimStart().length>n)r.push(...i,a),i=[];else break}return r}function xo(e,t,n,r,i){let a=RegExp(`^ {${n}}${po(t)}\\s*:`);for(let t=r;t<i;t++)if(a.test(e[t]))return t;return-1}function So(e,t,n){if(t.length===0||!t.every(e=>typeof e==`string`&&uo.test(e)))return e;let r=e.includes(`\r
|
|
@@ -98,7 +98,7 @@ query: sum:$metric{} by {week}
|
|
|
98
98
|
`)+`
|
|
99
99
|
`}function Yb(e){let t=Hb(e);if(t.length<2)return{bundles:[],errors:[]};let n=Vb(t[0]);if(n[0]!==`recordKind`)try{let t=Kb(e);return{bundles:[{sessions:[t.session],events:t.events}],errors:[]}}catch(e){return{bundles:[],errors:[e instanceof Error?e.message:String(e)]}}let r=new Map;n.forEach((e,t)=>r.set(e,t));let i=(e,t)=>{let n=r.get(t);return n===void 0?``:e[n]??``},a=new Map,o=new Map,s=new Map,c=[];for(let[e,n]of t.slice(1).entries()){let t=Vb(n);if(t.length===1&&t[0]===``)continue;let r=i(t,`recordKind`),l=Wb(i(t,`noteId`));if(!l){c.push(`Row ${e+2}: missing noteId`);continue}if(r===`revision`){let n=Wb(i(t,`revisionKind`)),r=Wb(i(t,`blockId`)),o=Ub(i(t,`blockVersion`)),s=Ub(i(t,`revisionSavedAt`));if(!n||!r||!o||s===void 0){c.push(`Row ${e+2}: invalid revision columns`);continue}let u={noteId:l,blockId:r,version:o,kind:n,rawContent:i(t,`revisionRawContent`),savedAt:s,...Wb(i(t,`revisionDialect`))?{dialect:Wb(i(t,`revisionDialect`))}:{},...Wb(i(t,`revisionSport`))?{sport:Wb(i(t,`revisionSport`))}:{}},d=a.get(l)??[];d.push(u),a.set(l,d)}else if(r===`parse`){let n=Wb(i(t,`parseId`)),r=Wb(i(t,`parseStage`)),a=Wb(i(t,`parseStatus`)),s=Ub(i(t,`timestamp`));if(!n||!r||!a||s===void 0){c.push(`Row ${e+2}: invalid parse columns`);continue}let u={id:n,noteId:l,...Wb(i(t,`blockId`))?{blockId:Wb(i(t,`blockId`))}:{},...Ub(i(t,`blockVersion`))===void 0?{}:{blockVersion:Ub(i(t,`blockVersion`))},stage:r,status:a,timestamp:s,...Wb(i(t,`parseDiagnosticsJson`))?{diagnostics:Gb(i(t,`parseDiagnosticsJson`))}:{},...Wb(i(t,`parseMetricsJson`))?{metrics:Gb(i(t,`parseMetricsJson`))}:{}},d=o.get(l)??[];d.push(u),o.set(l,d)}else if(r===`session`||r===`event`){let n=Wb(i(t,`sessionId`));if(!n){c.push(`Row ${e+2}: missing sessionId`);continue}let r=Rb.map(e=>zb(i(t,e))),a=s.get(n)??{noteId:l,lines:[Rb.join(`,`)]};a.lines.push(r.join(`,`)),s.set(n,a)}else c.push(`Row ${e+2}: unknown recordKind '${r}'`)}let l=new Map,u=e=>{let t=l.get(e);if(t)return t;let n={sessions:[],events:[]};return l.set(e,n),n};for(let[e,t]of a)u(e).revisions=t;for(let[e,t]of o)u(e).parses=t;for(let[,{noteId:e,lines:t}]of s)try{let n=Kb(t.join(`
|
|
100
100
|
`)+`
|
|
101
|
-
`),r=u(e);r.sessions.push(n.session),r.events.push(...n.events)}catch(e){c.push(e instanceof Error?e.message:String(e))}return{bundles:[...l.values()],errors:c}}var jte=`0.53.2203`,Xb=eo,Mte=`1b671a64-40d5-491e-99b0-da01ff1f3341`,Nte={core:0,community:1,imported:2,user:3};function Pte(e,t){if(t)return t;if(!e)return`core`;if(e===`user`)return`user`;let n=e.startsWith(`seed:`)?e.slice(5):e;return n===`core`||n===`efforts`||n===`equipment`?`core`:n===`community`||n.startsWith(`community-`)||n===`common`?`community`:`imported`}function Zb(e,t){return Nte[Pte(e,t)]}var Qb=`wodwiki.seed`,$b=`efforts`,ex=`equipment`,tx=`canvas`;function nx(e){return`seed:${e}`}function Fte(e){return e.startsWith(`seed:`)?e.slice(5):e}function rx(e){return{key:e,schema:9,seedVersion:0,builtAt:``,importedAt:0,chunks:{},claim:null}}function ix(e){let t=/^notebook\.(.+)$/.exec(e)?.[1];return t&&t!==`_root`?t:void 0}function Ite(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/.exec(e);return t?.[1]&&!/^template:\s*canvas\s*$/m.test(t[1])?null:t?.[1]?.match(/^route:\s*(\S+)\s*$/m)?.[1]?.replace(/^\//,``)||null}function Lte(e,t,n){let r=e.split(`/`),i=(r.at(-1)??``).replace(/\.md$/i,``),a=r.slice(2).map(e=>e.replace(/\.md$/i,``)).join(`/`);if(n===`canvas`)return`guides:${Ite(t)??a}`;if(n===`dashboards`)return`dashboards`;if(n===`efforts`)return`efforts`;if(n===`equipment`)return`equipment`;if(n.startsWith(`notebook.`)){let e=ix(n);return e?i.toLowerCase()===`readme`?`notebook:${e}`:`notebook:${a}`:`notebook:_root`}}var ax=[{name:`notes`,keyPath:[`id`],indexes:[{name:`by-date`,keyPath:[`date`]},{name:`by-created`,keyPath:[`createdAt`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`page`,keyPath:[`id`],indexes:[{name:`by-date`,keyPath:[`date`],unique:!0},{name:`by-slug`,keyPath:[`slug`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`page_notes`,keyPath:[`id`],indexes:[{name:`by-page`,keyPath:[`pageId`]},{name:`by-note`,keyPath:[`noteId`]},{name:`by-page-note`,keyPath:[`pageId`,`noteId`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`tags`,keyPath:[`id`],indexes:[{name:`by-label`,keyPath:[`label`],unique:!0},{name:`by-type`,keyPath:[`type`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`tag_types`,keyPath:[`id`],indexes:[{name:`by-name`,keyPath:[`name`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`note_tags`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-tag`,keyPath:[`tagId`]},{name:`by-note-tag`,keyPath:[`noteId`,`tagId`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_revisions`,keyPath:[`noteId`,`blockId`,`version`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-block`,keyPath:[`noteId`,`blockId`]}]},{name:`sessions`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-completed`,keyPath:[`createdAt`]},{name:`by-content`,keyPath:[`blockContentId`]},{name:`by-block`,keyPath:[`blockId`]},{name:`by-page`,keyPath:[`pageId`]},{name:`by-origin`,keyPath:[`origin`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`attachments`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-time`,keyPath:[`createdAt`]},{name:`by-page`,keyPath:[`pageId`]},{name:`by-result`,keyPath:[`resultId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`events`,keyPath:[`id`],indexes:[{name:`by-timestamp`,keyPath:[`timestamp`]},{name:`by-result-grain`,keyPath:[`resultId`,`grain`]},{name:`by-content-grain`,keyPath:[`blockContentId`,`grain`]},{name:`by-effort`,keyPath:[`effortSlug`]},{name:`by-outputType`,keyPath:[`outputType`]},{name:`by-grain`,keyPath:[`grain`]},{name:`by-metric-date`,keyPath:[`metricDateKeys`],multiEntry:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`field_catalog`,keyPath:[`id`],indexes:[{name:`by-path`,keyPath:[`path`]}]},{name:`field_sources`,keyPath:[`id`],indexes:[]},{name:`field_values`,keyPath:[`key`],indexes:[{name:`by-field`,keyPath:[`fieldId`]}]},{name:`field_catalog_meta`,keyPath:[`id`],indexes:[]},{name:`efforts`,keyPath:[`slug`],indexes:[{name:`by-discipline`,keyPath:[`baseAttributes.discipline`]},{name:`by-source`,keyPath:[`registrySource`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`equipment`,keyPath:[`slug`],indexes:[{name:`by-source`,keyPath:[`registrySource`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_index`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-content`,keyPath:[`blockContentId`]},{name:`by-type`,keyPath:[`dataType`]},{name:`by-source`,keyPath:[`sourceId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_efforts`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-effort`,keyPath:[`effortSlug`]},{name:`by-block`,keyPath:[`blockContentId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_equipment`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-equipment`,keyPath:[`equipmentSlug`]},{name:`by-block`,keyPath:[`blockContentId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`notebook_links`,keyPath:[`id`],indexes:[{name:`by-notebook`,keyPath:[`notebookId`]},{name:`by-note`,keyPath:[`noteId`]},{name:`by-target`,keyPath:[`targetKind`,`targetId`]},{name:`by-notebook-target`,keyPath:[`notebookId`,`targetKind`,`targetId`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`property_overrides`,keyPath:[`id`],indexes:[{name:`by-notebook`,keyPath:[`notebookId`]},{name:`by-kind-slug`,keyPath:[`kind`,`slug`]},{name:`by-owner-note`,keyPath:[`ownerNoteId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`meta`,keyPath:[`key`],indexes:[]},{name:`memberships`,keyPath:[`id`],indexes:[],system:!0}],ox=`default`;function sx(e=Date.now()){return{id:ox,displayName:`Anonymous`,createdAt:e}}var cx=[`notes`,`page`,`page_notes`,`tags`,`tag_types`,`note_tags`,`sessions`,`attachments`,`events`,`efforts`,`block_index`,`block_efforts`,`equipment`,`block_equipment`,`notebook_links`,`property_overrides`],Rte=Object.fromEntries(cx.map(e=>[e,!0]));function lx(e,t,n){if(!Rte[e]||typeof t!=`object`||!t||Array.isArray(t))return t;let r=t;return r.seedOrigin===`seed`||r.userId===n?t:{...r,userId:n}}function ux(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&(`only`in e||`lower`in e||`upper`in e||`lowerOpen`in e||`upperOpen`in e)}function dx(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;let t=n;if(!(e in t))return;n=t[e]}if(n!==null&&typeof n!=`object`&&n!==void 0)return n}function fx(e,t){let n=e.keyPath.map(e=>dx(t,e));for(let[t,r]of n.entries())if(r===void 0)throw Error(`keyFromValue(${e.name}): keyPath part '${e.keyPath[t]}' missing on value`);let r=n;return r.length===1?r[0]:r}function zte(e){return encodeURIComponent(JSON.stringify(e))}function px(e){if(e===void 0)return;if(!ux(e))return{only:e};if(e.only!==void 0)return e;let t={};return e.lower!==void 0&&e.lower!==null&&(t.lower=e.lower,t.lowerOpen=e.lowerOpen===!0),e.upper!==void 0&&e.upper!==null&&(t.upper=Array.isArray(e.upper)?e.upper.map(e=>Array.isArray(e)&&e.length===0?``:e):e.upper,t.upperOpen=e.upperOpen===!0),t.lower!==void 0||t.upper!==void 0?t:void 0}function mx(e,t){if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t))return Array.isArray(e)?1:-1;for(let n=0;n<Math.min(e.length,t.length);n++){let r=mx(e[n],t[n]);if(r!==0)return r}return e.length-t.length}return typeof e==`number`&&typeof t==`number`?e<t?-1:+(e>t):typeof e==`number`||typeof t==`number`?typeof e==`number`?-1:1:e<t?-1:+(e>t)}function hx(e,t){if(t.only!==void 0)return mx(e,t.only)===0;if(t.lower!==void 0){let n=mx(e,t.lower);if(n<0||n===0&&t.lowerOpen===!0)return!1}if(t.upper!==void 0){let n=mx(e,t.upper);if(n>0||n===0&&t.upperOpen===!0)return!1}return!0}function gx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _x(e,t){return t.every(t=>e[t]===void 0||typeof e[t]==`string`)}function vx(e,t){return t.every(t=>typeof e[t]==`number`&&Number.isFinite(e[t]))}function yx(e){if(!gx(e)||typeof e.id!=`string`||typeof e.title!=`string`||typeof e.rawContent!=`string`||!Number.isSafeInteger(e.sourceRevision)||typeof e.sourceRevision!=`number`||e.sourceRevision<1||!gx(e.blocks)||!vx(e,[`createdAt`])||e.date!==void 0&&!vx(e,[`date`])||!_x(e,[`type`,`sourceId`,`notebookId`,`sourcePath`,`seedOrigin`,`seedChunkId`,`feedOrigin`,`feedSourceId`])||e.tags!==void 0&&(!Array.isArray(e.tags)||!e.tags.every(e=>typeof e==`string`)))return!1;try{return co(e.rawContent,e.blocks,e.sourceRevision),!0}catch{return!1}}function Bte(e){return gx(e)&&typeof e.id==`string`&&typeof e.noteId==`string`&&typeof e.blockId==`string`&&vx(e,[`blockVersion`,`sourceRevision`,`from`,`to`,`createdAt`])&&e.id===`${e.noteId}:${e.blockId}`&&typeof e.blockVersion==`number`&&Number.isSafeInteger(e.blockVersion)&&e.blockVersion>0&&typeof e.sourceRevision==`number`&&Number.isSafeInteger(e.sourceRevision)&&e.sourceRevision>0&&typeof e.from==`number`&&Number.isSafeInteger(e.from)&&e.from>=0&&typeof e.to==`number`&&Number.isSafeInteger(e.to)&&e.to>e.from&&[`wod`,`query`,`widget`,`embed`].includes(String(e.dataType))&&typeof e.rawContent==`string`&&typeof e.noteTitle==`string`&&_x(e,[`blockContentId`,`sourceId`,`sourcePath`,`routeId`])&&(e.position===void 0||vx(e,[`position`]))&&(e.isStatic===void 0||typeof e.isStatic==`boolean`)}function Vte(e){return gx(e)&&typeof e.id==`string`&&typeof e.label==`string`&&vx(e,[`createdAt`])&&_x(e,[`type`])}function Hte(e){return gx(e)&&typeof e.id==`string`&&vx(e,[`createdAt`])&&_x(e,[`date`,`slug`,`title`])}function Ute(e){return gx(e)&&typeof e.id==`string`&&typeof e.noteId==`string`&&typeof e.pageId==`string`&&vx(e,[`createdAt`])&&(e.position===void 0||vx(e,[`position`]))}function Wte(e){return gx(e)&&yx(e.note)&&Array.isArray(e.tags)&&e.tags.every(Vte)&&Array.isArray(e.links)&&e.links.every(Ute)&&Array.isArray(e.pages)&&e.pages.every(Hte)}function Gte(e,t){if(!gx(e)||e.projectionVersion!==4||e.plan!==t||!Array.isArray(e.rows)||typeof e.selectedCount!=`number`||!Number.isSafeInteger(e.selectedCount)||e.selectedCount<0||typeof e.matchedCount!=`number`||!Number.isSafeInteger(e.matchedCount)||e.matchedCount<0||e.matchedCount>e.selectedCount||e.rows.length>e.matchedCount)throw Error(`ApiStorage: invalid or stale domain projection response`);let n={projectionVersion:4,selectedCount:e.selectedCount,matchedCount:e.matchedCount};switch(t){case`notes`:if(e.rows.every(yx))return{...n,plan:t,rows:e.rows};break;case`blocks`:if(e.rows.every(Bte))return{...n,plan:t,rows:e.rows};break;case`detail`:if(e.rows.every(Wte))return{...n,plan:t,rows:e.rows}}throw Error(`ApiStorage: invalid domain query rows`)}var bx=(e,t)=>`${e}\u0000${JSON.stringify(t)}`;function xx(e,t,n){if(n?.has(e))return!0;if(!t)return!1;let r=`${e}\u0000`;for(let e of t.keys())if(e.startsWith(r))return!0;return!1}function Kte(e,t,n){if(!n)return;let r=n.get(bx(e,t));if(r)return r.kind===`put`?{hit:!0,value:r.value}:{hit:!1}}function qte(e,t,n,r,i,a,o,s){if(!n||!xx(t,n,r))return a===void 0?i:i.slice(0,a);let c=new Map;if(!r?.has(t))for(let t of i)c.set(JSON.stringify(fx(e,t)),t);let l=`${t}\u0000`;for(let[e,t]of n)e.startsWith(l)&&(t.kind===`put`?c.set(e.slice(l.length),t.value):c.delete(e.slice(l.length)));let u=s?e.indexes.find(e=>e.name===s):void 0;if(s&&!u)throw Error(`unknown index '${s}' for ${t}`);let d=t=>{if(!u)return fx(e,t);let n=u.keyPath.map(e=>dx(t,e));if(n.some(e=>e===void 0))return;let r=n.filter(e=>e!==void 0);return r.length===1?r[0]:r},f=e=>{if(u?.multiEntry){let t=e;for(let e of u.keyPath[0].split(`.`)){if(typeof t!=`object`||!t||!(e in t))return!1;t=Reflect.get(t,e)}return Array.isArray(t)&&t.some(e=>(typeof e==`string`||typeof e==`number`)&&(!o||hx(e,o)))}let t=d(e);return t!==void 0&&(!o||hx(t,o))},p=[...c.values()].filter(f);return p.sort((t,n)=>{let r=mx(fx(e,t),fx(e,n));if(u?.multiEntry)return r;let i=d(t),a=d(n);return i!==void 0&&a!==void 0&&mx(i,a)||r}),a===void 0?p:p.slice(0,a)}function Jte(e,t,n){let r=new Set(e),i=[];for(let e of n)r.has(e)&&i.push({op:`clear`,store:e});for(let[e,n]of t){let t=e.indexOf(`\0`),a=e.slice(0,t);r.has(a)&&(n.kind===`put`?i.push({op:`put`,store:a,value:n.value}):i.push({op:`delete`,store:a,key:JSON.parse(e.slice(t+1))}))}return i}var Sx=class extends Error{status;code;constructor(e,t,n){super(t),this.status=e,this.code=n,this.name=`StorageError`}};function Cx(e,t){if(Object.is(e,t))return!0;if(e instanceof ArrayBuffer&&t instanceof ArrayBuffer){let n=new Uint8Array(e),r=new Uint8Array(t);return n.length===r.length&&n.every((e,t)=>e===r[t])}if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Cx(e,t[n]));let n=Object.keys(e).filter(t=>Reflect.get(e,t)!==void 0),r=Object.keys(t).filter(e=>Reflect.get(t,e)!==void 0);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&Cx(Reflect.get(e,n),Reflect.get(t,n)))}function wx(e){if(typeof e!=`object`||!e||Array.isArray(e))throw new Sx(400,`storage row must be an object`);return e}function Tx(e,t){if(e!==`notes`&&e!==`block_revisions`&&e!==`sessions`&&e!==`block_index`)return;let n=wx(t),r=e=>typeof n[e]==`number`&&Number.isSafeInteger(n[e])&&n[e]>0,i=e=>typeof n[e]==`string`&&n[e].length>0;if(e===`notes`){if(!i(`id`)||typeof n.title!=`string`||typeof n.rawContent!=`string`||!r(`sourceRevision`)||typeof n.createdAt!=`number`||!Number.isFinite(n.createdAt)||`segments`in n||`segmentIds`in n||n.date!==void 0&&(typeof n.date!=`number`||!Number.isFinite(n.date))||n.seedOrigin!==void 0&&n.seedOrigin!==`seed`&&n.seedOrigin!==`user`||n.feedOrigin!==void 0&&n.feedOrigin!==`feed`&&n.feedOrigin!==`user`||n.feedOrigin===`feed`&&(n.seedOrigin===void 0||typeof n.feedSourceId!=`string`||n.feedSourceId.length===0)||n.feedOrigin===`user`&&n.seedOrigin===`seed`||n.feedSourceId!==void 0&&n.feedOrigin!==`feed`||n.seedVersion!==void 0&&!(typeof n.seedVersion==`number`&&Number.isSafeInteger(n.seedVersion)&&n.seedVersion>=0)||n.tags!==void 0&&(!Array.isArray(n.tags)||!n.tags.every(e=>typeof e==`string`))||n.public!==void 0&&typeof n.public!=`boolean`||n.notebookIds!==void 0&&(!Array.isArray(n.notebookIds)||!n.notebookIds.every(e=>typeof e==`string`))||n.provenance!==void 0&&(typeof n.provenance!=`object`||n.provenance===null||Array.isArray(n.provenance)||typeof n.provenance.sourceNoteId!=`string`)||[`type`,`sourceId`,`sourcePath`,`notebookId`,`seedChunkId`,`feedSourceId`].some(e=>n[e]!==void 0&&typeof n[e]!=`string`))throw new Sx(400,`invalid whole Note`,`invalid_note_blocks`);try{co(n.rawContent,wx(n.blocks),n.sourceRevision)}catch(e){throw new Sx(400,e instanceof Error?e.message:`invalid block map`,`invalid_note_blocks`)}}else if(e===`block_revisions`){if(!i(`noteId`)||!i(`blockId`)||!r(`version`)||typeof n.rawContent!=`string`||typeof n.savedAt!=`number`||!Number.isFinite(n.savedAt)||![`wod`,`query`,`widget`,`embed`].includes(String(n.kind))||(n.kind===`wod`?n.dialect!==`time`&&n.dialect!==`log`:n.dialect!==void 0||n.sport!==void 0)||n.sport!==void 0&&typeof n.sport!=`string`)throw new Sx(400,`invalid block revision`,`invalid_note_blocks`);try{co(n.rawContent,{[String(n.blockId)]:{id:String(n.blockId),kind:n.kind,version:n.version,sourceRevision:1,from:0,to:n.rawContent.length,...n.dialect===void 0?{}:{dialect:n.dialect},...n.sport===void 0?{}:{sport:n.sport}}},1)}catch(e){throw new Sx(400,e instanceof Error?e.message:`invalid revision source`,`invalid_note_blocks`)}}else if(e===`sessions`){if(!i(`noteId`)||!i(`blockId`)||!r(`blockVersion`)||n.public!==void 0&&typeof n.public!=`boolean`||n.notebookIds!==void 0&&(!Array.isArray(n.notebookIds)||!n.notebookIds.every(e=>typeof e==`string`))||[`segmentId`,`segmentVersion`,`version`,`rawContent`,`script`,`serializedScript`,`source`,`data`,`logs`].some(e=>e in n))throw new Sx(400,`Session requires immutable block pin`,`invalid_session_pin`)}else if(!i(`noteId`)||!i(`blockId`)||!r(`blockVersion`)||!r(`sourceRevision`)||n.id!==`${n.noteId}:${n.blockId}`||!Number.isSafeInteger(n.from)||!Number.isSafeInteger(n.to)||`segmentId`in n||`segmentVersion`in n||![`wod`,`query`,`widget`,`embed`].includes(String(n.dataType))||typeof n.rawContent!=`string`||typeof n.noteTitle!=`string`||typeof n.from!=`number`||typeof n.to!=`number`||n.from<0||n.to<=n.from)throw new Sx(400,`invalid actionable block projection`,`invalid_note_blocks`)}function Yte(e,t){if(e===void 0||Cx(e,t))return;let n=wx(e),r=wx(t);if(typeof n.sourceRevision!=`number`||typeof r.sourceRevision!=`number`||r.sourceRevision<n.sourceRevision||(!Cx(n.blocks,r.blocks)||n.rawContent!==r.rawContent)&&r.sourceRevision<=n.sourceRevision)throw new Sx(409,`stale Note source revision`,`transaction_conflict`)}function Xte(e,t){if(e===void 0)return;let n=wx(e),r=wx(t);if(n.noteId!==r.noteId||n.blockId!==r.blockId||n.blockVersion!==r.blockVersion)throw new Sx(409,`Session pin is immutable`,`invalid_session_pin`)}async function Ex(e,t,n){let r=[];for(let t of e)for(let e of Object.values(t.blocks))r.push([t.id,e.id,e.version]);for(let e of t)r.push([e.noteId,e.blockId,e.blockVersion]);let i=await n(r),a=0;for(let t of e)for(let e of Object.values(t.blocks)){let n=i[a++];if(!n||n.kind!==e.kind||n.rawContent!==t.rawContent.slice(e.from,e.to)||n.dialect!==e.dialect||n.sport!==e.sport)throw new Sx(409,`Note block has no matching immutable revision`,`invalid_note_blocks`)}for(let e=0;e<t.length;e++){let e=i[a++];if(!e||e.kind!==`wod`)throw new Sx(409,`Session pin must reference a saved workout revision`,`invalid_session_pin`)}}async function Dx(e,t,n,r){let i=r?.params?.toString(),a=await e.fetchImpl(`${e.baseUrl}/v1${n}${i?`?${i}`:``}`,{method:t,headers:r?.body===void 0?void 0:{"content-type":`application/json`},body:r?.body===void 0?void 0:JSON.stringify(r.body)});if(!a.ok)throw Error(`ApiStorage: ${t} /v1${n} → ${a.status}`);return a}async function Zte(e,t,n){let r=await e.fetchImpl(`${e.baseUrl}/v1/${t}/get?key=${zte(n)}`);if(r.status!==404){if(!r.ok)throw Error(`ApiStorage: GET /v1/${t}/get → ${r.status}`);return await r.json()}}async function Qte(e,t,n,r,i){let a=new URLSearchParams;return r&&a.set(`range`,JSON.stringify(r)),i!==void 0&&a.set(`count`,String(i)),await(await Dx(e,`GET`,`/${t}/${n}`,{params:a})).json()}async function Ox(e,t,n,r){let i=new URLSearchParams;return n&&i.set(`range`,JSON.stringify(n)),r!==void 0&&i.set(`index`,r),(await(await Dx(e,`GET`,`/${t}/count`,{params:i})).json()).count}async function kx(e,t,n){await Dx(e,`DELETE`,`/${t}`,{params:new URLSearchParams({key:JSON.stringify(n)})})}var $te=class{http;defs;getUserId;constructor(e=`/api`,t=globalThis.fetch.bind(globalThis),n={}){this.http={baseUrl:e,fetchImpl:t},this.getUserId=n.getUserId,this.defs=Object.fromEntries(ax.map(e=>[e.name,e]))}def(e){let t=this.defs[e];if(!t)throw Error(`ApiStorage: unknown store '${e}'`);return t}makeView(e,t,n,r,i=!1){return new ene(this.http,this.def(e),e,t,n,this.getUserId,r,i)}readonly(e){return this.makeView(e)}readwrite(e){return this.makeView(e,void 0,void 0,void 0,!0)}async queryDomain(e){let t=await this.http.fetchImpl(`${this.http.baseUrl}/v1/query`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});if(t.status===409){let e=await t.json();if(typeof e==`object`&&e&&`code`in e&&e.code===`domain_projection_unavailable`)return}if(!t.ok)throw Error(`ApiStorage: POST /v1/query → ${t.status}`);return Gte(await t.json(),e.plan)}async transaction(e,t,n){let r=new Map,i=new Set,a=new Map,o=new Set(e),s=(e,n)=>{if(!o.has(e))throw Error(`store outside transaction scope`);if(n&&t!==`readwrite`)throw Error(`read-only transaction`);return this.makeView(e,r,i,a,n)},c=await n({readonly:e=>s(e,!1),readwrite:e=>s(e,!0)});return await this.flush(r,i,a),c}async flush(e,t,n){let r=Jte(ax.map(e=>e.name),e,t);r.length>0&&await Dx(this.http,`POST`,`/tx`,{body:{ops:[...n.values(),...r]}})}async wipe(){await Dx(this.http,`POST`,`/wipe`)}async close(){}},ene=class{http;def;store;buffer;cleared;getUserId;checks;mutable;constructor(e,t,n,r,i,a,o,s=!1){this.http=e,this.def=t,this.store=n,this.buffer=r,this.cleared=i,this.getUserId=a,this.checks=o,this.mutable=s}dirty(){return xx(this.store,this.buffer,this.cleared)}async get(e){let t=ux(e)?e:void 0,n;if(t){if(t.only===void 0)throw Error(`ApiStorage.get: needs a plain key or {only}; bounded ranges match no single row`);n=t.only}else n=e;let r=Kte(this.store,n,this.buffer);if(r)return r.hit?r.value:void 0;if(this.cleared?.has(this.store))return;let i=await Zte(this.http,this.store,n),a=bx(this.store,n);return this.checks?.has(a)||this.checks?.set(a,{op:`check`,store:this.store,key:n,value:structuredClone(i??null)}),i}async getMany(e){return Promise.all(e.map(e=>this.get(e)))}async getAllFromIndexMany(e,t){return Promise.all(t.map(t=>this.getAllFromIndex(e,t)))}async getAll(e,t){let n=px(e);return this.overlay(await this.serverRows(`all`,n,this.dirty()?void 0:t),t,n)}async getAllFromIndex(e,t,n){let r=px(t);return this.overlay(await this.serverRows(`index/${encodeURIComponent(e)}`,r,this.dirty()?void 0:n),n,r,e)}async count(e){let t=px(e);return this.dirty()?this.overlay(await this.serverRows(`all`,t),void 0,t).length:Ox(this.http,this.store,t)}async countFromIndex(e,t){let n=px(t);return this.dirty()?this.overlay(await this.serverRows(`index/${encodeURIComponent(e)}`,n),void 0,n,e).length:Ox(this.http,this.store,n,e)}async serverRows(e,t,n){if(this.cleared?.has(this.store))return[];let r=await Qte(this.http,this.store,e,t,n);for(let e of r){let t=fx(this.def,e),n=bx(this.store,t);this.checks?.has(n)||this.checks?.set(n,{op:`check`,store:this.store,key:t,value:structuredClone(e)})}return r}overlay(e,t,n,r){return qte(this.def,this.store,this.buffer,this.cleared,e,t,n,r)}async put(e,t){if(!this.mutable)throw Error(`read-only store`);let n=this.getUserId?.(),r=n?lx(this.store,e,n):e,i=fx(this.def,r);if(this.store===`block_revisions`){let e=this.buffer?.get(bx(this.store,i));if(e?.kind===`put`&&!Cx(e.value,r))throw Error(`immutable block revision collision`)}return this.buffer?(this.buffer.set(bx(this.store,i),{kind:`put`,value:r}),i):(await Dx(this.http,`POST`,`/tx`,{body:{ops:[{op:`put`,store:this.store,value:r}]}}),i)}async putMany(e,t){if(!this.mutable)throw Error(`read-only store`);if(this.buffer){let t=[];for(let n of e)t.push(await this.put(n));return t}let n=e.map(e=>this.getUserId?lx(this.store,e,this.getUserId()):e),r=n.map(e=>fx(this.def,e));return await Dx(this.http,`POST`,`/tx`,{body:{ops:n.map(e=>({op:`put`,store:this.store,value:e}))}}),r}async delete(e){if(!this.mutable)throw Error(`read-only store`);if(this.store===`block_revisions`)throw Error(`block history requires explicit wipe`);let t=ux(e)?e:void 0;if(t){if(this.buffer){let e=await this.getAll(t);for(let t of e){let e=fx(this.def,t);this.buffer.set(bx(this.store,e),{kind:`delete`,key:e})}return}await kx(this.http,this.store,t);return}let n=e;if(this.buffer){this.buffer.set(bx(this.store,n),{kind:`delete`,key:n});return}await kx(this.http,this.store,n)}async clear(){if(!this.mutable)throw Error(`read-only store`);if(this.store===`block_revisions`)throw Error(`block history requires explicit wipe`);if(this.buffer){this.cleared?.add(this.store);let e=`${this.store}\u0000`;for(let t of[...this.buffer.keys()])t.startsWith(e)&&this.buffer.delete(t);return}await Dx(this.http,`POST`,`/tx`,{body:{ops:[{op:`clear`,store:this.store}]}})}},tne=`user-deleted-seed:`;function nne(e){return`${tne}${e}`}function rne(e){if(!(typeof e!=`string`||!e.startsWith(`user-deleted-seed:`)))return e.slice(18)||void 0}function ine(e){return typeof e==`string`&&e.startsWith(`seed:`)}function Ax(e){let t=new Set;for(let n of e)typeof n==`object`&&n&&`seedOrigin`in n&&n.seedOrigin===`seed`&&`id`in n&&typeof n.id==`string`&&t.add(n.id);return{seedNoteIds:t}}function jx(e,t,n){if(typeof t!=`object`||!t)return!0;switch(e){case`notes`:return!(`seedOrigin`in t&&t.seedOrigin===`seed`);case`block_index`:case`block_efforts`:case`block_equipment`:return!(`isStatic`in t&&t.isStatic===!0&&`noteId`in t&&typeof t.noteId==`string`&&n.seedNoteIds.has(t.noteId));case`efforts`:case`equipment`:return!(`registrySource`in t&&t.registrySource===`bundled`);case`property_overrides`:return!(`seedOrigin`in t&&t.seedOrigin===`seed`);case`meta`:return!ine(`key`in t?t.key:void 0);default:return!0}}function Mx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Nx(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function Px(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Fx(e){return typeof e==`number`&&Number.isFinite(e)}function Ix(e){if(!Mx(e)||e.schema!==9)throw Error(`Incompatible seed schema; rebuild seed artifacts`);if(!Px(e.version)||typeof e.builtAt!=`string`||!Number.isFinite(Date.parse(e.builtAt))||!Array.isArray(e.chunks))throw Error(`seed manifest failed shape validation`);for(let t of[`versionLabel`,`commit`,`name`,`description`])if(e[t]!==void 0&&typeof e[t]!=`string`)throw Error(`invalid seed manifest metadata`);if(e.repositoryUrl!==void 0&&(typeof e.repositoryUrl!=`string`||!/^https:\/\//.test(e.repositoryUrl)||new URL(e.repositoryUrl).username||new URL(e.repositoryUrl).password))throw Error(`invalid seed repository URL`);if(e.dirty!==void 0&&typeof e.dirty!=`boolean`)throw Error(`invalid seed manifest metadata`);let t=new Set,n=new Set;for(let r of e.chunks){if(!Mx(r)||typeof r.id!=`string`||!r.id||typeof r.path!=`string`||!/^chunks\/[a-zA-Z0-9._-]+\.json$/.test(r.path)||typeof r.sha256!=`string`||!/^[0-9a-f]{64}$/.test(r.sha256)||!Px(r.bytes)||!Px(r.count)||r.kind!==void 0&&r.kind!==`notes`||t.has(r.id)||n.has(r.path))throw Error(`seed manifest failed shape validation`);t.add(r.id),n.add(r.path)}if(e.notebooks!==void 0){if(!Array.isArray(e.notebooks))throw Error(`seed manifest failed shape validation`);for(let t of e.notebooks){if(!Mx(t)||typeof t.notebookId!=`string`||!t.notebookId||typeof t.label!=`string`||!Px(t.count)||typeof t.indexPath!=`string`||!t.indexPath||!Px(t.version)||typeof t.commit!=`string`||typeof t.builtAt!=`string`||typeof t.sha256!=`string`||!Px(t.bytes))throw Error(`seed manifest failed shape validation`);if(`records`in t&&Array.isArray(t.records))throw Error(`seed manifest failed shape validation: manifest.notebooks must not contain inline records`)}}return e}function Lx(e){if(!Mx(e))throw Error(`notebook index failed shape validation`);if(typeof e.notebookId!=`string`||!e.notebookId||typeof e.label!=`string`||!e.label||typeof e.indexPath!=`string`||!e.indexPath||!Px(e.version)||typeof e.commit!=`string`||typeof e.builtAt!=`string`||typeof e.sha256!=`string`||!Px(e.bytes)||!Px(e.count)||!Array.isArray(e.records))throw Error(`notebook index failed shape validation: missing required index summary or records`);for(let t of e.records)if(!Mx(t)||typeof t.uuid!=`string`||typeof t.path!=`string`||typeof t.recordPath!=`string`||typeof t.commit!=`string`||!Px(t.version)||typeof t.sha256!=`string`)throw Error(`notebook index failed shape validation: invalid record ref`);return e}function Rx(e,t){if(e.telemetry===void 0)return;if(!Mx(e.telemetry)||!Array.isArray(e.telemetry.sessions)||!Array.isArray(e.telemetry.events))throw Error(`invalid seed telemetry`);let n=new Map;for(let r of e.telemetry.sessions){if(!Mx(r)||typeof r.id!=`string`||!r.id||n.has(r.id)||typeof r.noteId!=`string`||!r.noteId||typeof e.uuid==`string`&&r.noteId!==e.uuid||typeof r.blockId!=`string`||!Nx(r.blockVersion)||typeof r.blockContentId!=`string`||!Fx(r.startTime)||!Fx(r.endTime)||!Fx(r.duration)||typeof r.completed!=`boolean`||!Fx(r.createdAt))throw Error(`invalid seed session`);let i=t.find(e=>Mx(e)&&e.blockId===r.blockId);if(!Mx(i)||i.dataType!==`wod`||i.blockVersion!==r.blockVersion||i.blockContentId!==r.blockContentId)throw Error(`orphan or incompatible seed session pin`);n.set(r.id,r)}let r=new Set;for(let t of e.telemetry.events){if(!Mx(t)||typeof t.id!=`string`||!t.id||r.has(t.id)||typeof t.resultId!=`string`||typeof t.noteId!=`string`||!Fx(t.timestamp)||t.grain!==`event`&&t.grain!==`summary`||typeof t.outputType!=`string`||!Array.isArray(t.metrics)||!t.metrics.every(e=>Mx(e)&&typeof e.type==`string`)||t.grain===`summary`&&t.metrics.length!==1)throw Error(`invalid seed event`);let e=n.get(t.resultId);if(!e||t.noteId!==e.noteId||t.blockId!==e.blockId||t.blockVersion!==e.blockVersion||t.blockContentId!==e.blockContentId)throw Error(`orphan or incompatible seed event identity`);r.add(t.id)}}function zx(e){if(!Array.isArray(e))throw Error(`seed chunk is not an array`);let t=new Set;for(let n of e){if(!Mx(n)||typeof n.path!=`string`||!n.path||n.path.startsWith(`/`)||n.path.split(`/`).includes(`..`)||t.has(n.path)||typeof n.content!=`string`||!Mx(n.blocks)||!Array.isArray(n.blockIndex)||!Array.isArray(n.blockEfforts)||!Array.isArray(n.blockEquipment))throw Error(`seed chunk row failed shape validation`);t.add(n.path);for(let[e,t]of Object.entries(n.blocks))if(!Mx(t)||t.id!==e||!e||t.version!==1||t.sourceRevision!==1||!Px(t.from)||!Nx(t.to)||t.from>=t.to||t.to>n.content.length||![`wod`,`query`,`widget`,`embed`].includes(String(t.kind))||(t.kind===`wod`?![`time`,`log`].includes(String(t.dialect)):t.dialect!==void 0)||t.sport!==void 0&&typeof t.sport!=`string`)throw Error(`invalid seed block range or revision`);co(n.content,n.blocks,1,{registeredWidgets:Xb});let e=new Set,r=ao(n.content,{registeredWidgets:Xb});for(let t of n.blockIndex){if(!Mx(t)||typeof t.blockId!=`string`)throw Error(`invalid seed projection`);let i=n.blocks[t.blockId];if(!Mx(i)||e.has(t.blockId)||typeof t.id!=`string`||typeof t.noteId!=`string`||t.id!==`${t.noteId}:${t.blockId}`||t.blockVersion!==1||t.sourceRevision!==1||t.from!==i.from||t.to!==i.to||t.dataType!==i.kind||t.rawContent!==n.content.slice(Number(i.from),Number(i.to))||typeof t.noteTitle!=`string`||typeof t.createdAt!=`number`||!Number.isFinite(t.createdAt)||t.sourcePath!==n.path||t.isStatic!==!0)throw Error(`orphan or incompatible seed projection`);if(`segmentId`in t||`segmentVersion`in t)throw Error(`incompatible seed projection`);for(let e of[`sourceId`,`routeId`,`blockContentId`])if(t[e]!==void 0&&typeof t[e]!=`string`)throw Error(`invalid seed projection metadata`);if(t.position!==void 0&&!Px(t.position))throw Error(`invalid seed projection position`);if(i.kind===`wod`){let e=r.find(e=>e.from===i.from&&e.to===i.to);if(t.blockContentId!==Wa(e?.scriptBlock?.content??n.content.slice(Number(i.from),Number(i.to))))throw Error(`invalid seed workout fingerprint`)}else if(t.blockContentId!==void 0)throw Error(`non-workout seed fingerprint`);e.add(t.blockId)}if(e.size!==Object.keys(n.blocks).length)throw Error(`missing actionable seed projection`);let i=new Set;for(let t of n.blockEfforts){if(!Mx(t)||typeof t.blockId!=`string`||typeof t.noteId!=`string`||typeof t.effortSlug!=`string`||!t.effortSlug)throw Error(`invalid seed effort identity`);let r=n.blocks[t.blockId];if(t.id!==`${t.noteId}:${t.blockId}:${t.effortSlug}`||i.has(String(t.id))||!Mx(r)||r.kind!==`wod`||!e.has(t.blockId)||t.sourcePath!==n.path||t.isStatic!==!0||typeof t.createdAt!=`number`)throw Error(`orphan or incompatible seed effort link`);let a=n.blockIndex.find(e=>Mx(e)&&e.blockId===t.blockId);if(!Mx(a)||t.noteId!==a.noteId||t.blockContentId!==a.blockContentId||!Number.isFinite(t.createdAt))throw Error(`invalid seed effort metadata`);i.add(String(t.id))}let a=new Set;for(let t of n.blockEquipment){if(!Mx(t)||typeof t.blockId!=`string`||typeof t.noteId!=`string`||typeof t.equipmentSlug!=`string`||!t.equipmentSlug)throw Error(`invalid seed equipment identity`);let r=n.blocks[t.blockId];if(t.id!==`${t.noteId}:${t.blockId}:${t.equipmentSlug}`||a.has(String(t.id))||!Mx(r)||r.kind!==`wod`||!e.has(t.blockId)||t.sourcePath!==n.path||t.isStatic!==!0||typeof t.createdAt!=`number`)throw Error(`orphan or incompatible seed equipment link`);let i=n.blockIndex.find(e=>Mx(e)&&e.blockId===t.blockId);if(!Mx(i)||t.noteId!==i.noteId||t.blockContentId!==i.blockContentId||!Number.isFinite(t.createdAt))throw Error(`invalid seed equipment metadata`);a.add(String(t.id))}Rx(n,n.blockIndex)}return e}function Bx(e){return zx([e])[0]}function Vx(e,t,n){return`${e}:${t}:${n}`}function Hx(e){let t=[];for(let[n,r]of Object.entries(e.metrics)){if(typeof r!=`string`&&typeof r!=`number`)continue;let e=String(r).trim().match(/^([+-]?\d+(?:\.\d+)?)\s*([A-Za-z%/][\w%/.-]*)$/);e?t.push({kind:`metric`,type:n,value:Number(e[1]),unit:e[2]}):t.push({kind:`metric`,type:n,value:r})}for(let[n,r]of Object.entries(e.summaries))t.push({kind:`metric`,type:`summaries.${n}`,value:r});for(let[n,r]of Object.entries(e.widgets??{}))t.push({kind:`metric`,type:`widgets.${n}`,value:r});for(let n of e.tags)t.push({kind:`tag`,slug:n});for(let n of e.functions)t.push({kind:`function`,name:n});return t}async function Ux(e,t){let n=Za(t.targetNotebookId);if(Ja(n))throw Error(`Notebook '${n}' is read-only and cannot store overrides.`);if(n===`notebook/journal`||n===`notebook/playground`)throw Error(`Property overrides belong in 'notebook/custom' or a shared user Notebook, not '${n}'.`);let r=t.slug.trim().toLowerCase();if(!r)throw Error(`Property override requires a non-empty canonical slug.`);let i=Xa(n),a=`override/${i}/${t.kind}/${r}`,o=`${t.kind}-override-${i}-${r}`,s=Date.now(),c=t.rawContent,l=Nb(c);(typeof l.id!=`string`||!l.id.trim())&&(c=So(c,[`id`],o)),(typeof l.slug!=`string`||l.slug.trim()!==r)&&(c=So(c,[`slug`],r));let u=t.title?.trim()||r,d;if(t.kind===`effort`){let e=Vl(c);if(e.errors.length>0)throw Error(e.errors.join(`
|
|
101
|
+
`),r=u(e);r.sessions.push(n.session),r.events.push(...n.events)}catch(e){c.push(e instanceof Error?e.message:String(e))}return{bundles:[...l.values()],errors:c}}var jte=`0.53.2204`,Xb=eo,Mte=`1b671a64-40d5-491e-99b0-da01ff1f3341`,Nte={core:0,community:1,imported:2,user:3};function Pte(e,t){if(t)return t;if(!e)return`core`;if(e===`user`)return`user`;let n=e.startsWith(`seed:`)?e.slice(5):e;return n===`core`||n===`efforts`||n===`equipment`?`core`:n===`community`||n.startsWith(`community-`)||n===`common`?`community`:`imported`}function Zb(e,t){return Nte[Pte(e,t)]}var Qb=`wodwiki.seed`,$b=`efforts`,ex=`equipment`,tx=`canvas`;function nx(e){return`seed:${e}`}function Fte(e){return e.startsWith(`seed:`)?e.slice(5):e}function rx(e){return{key:e,schema:9,seedVersion:0,builtAt:``,importedAt:0,chunks:{},claim:null}}function ix(e){let t=/^notebook\.(.+)$/.exec(e)?.[1];return t&&t!==`_root`?t:void 0}function Ite(e){let t=/^---\r?\n([\s\S]*?)\r?\n---/.exec(e);return t?.[1]&&!/^template:\s*canvas\s*$/m.test(t[1])?null:t?.[1]?.match(/^route:\s*(\S+)\s*$/m)?.[1]?.replace(/^\//,``)||null}function Lte(e,t,n){let r=e.split(`/`),i=(r.at(-1)??``).replace(/\.md$/i,``),a=r.slice(2).map(e=>e.replace(/\.md$/i,``)).join(`/`);if(n===`canvas`)return`guides:${Ite(t)??a}`;if(n===`dashboards`)return`dashboards`;if(n===`efforts`)return`efforts`;if(n===`equipment`)return`equipment`;if(n.startsWith(`notebook.`)){let e=ix(n);return e?i.toLowerCase()===`readme`?`notebook:${e}`:`notebook:${a}`:`notebook:_root`}}var ax=[{name:`notes`,keyPath:[`id`],indexes:[{name:`by-date`,keyPath:[`date`]},{name:`by-created`,keyPath:[`createdAt`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`page`,keyPath:[`id`],indexes:[{name:`by-date`,keyPath:[`date`],unique:!0},{name:`by-slug`,keyPath:[`slug`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`page_notes`,keyPath:[`id`],indexes:[{name:`by-page`,keyPath:[`pageId`]},{name:`by-note`,keyPath:[`noteId`]},{name:`by-page-note`,keyPath:[`pageId`,`noteId`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`tags`,keyPath:[`id`],indexes:[{name:`by-label`,keyPath:[`label`],unique:!0},{name:`by-type`,keyPath:[`type`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`tag_types`,keyPath:[`id`],indexes:[{name:`by-name`,keyPath:[`name`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`note_tags`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-tag`,keyPath:[`tagId`]},{name:`by-note-tag`,keyPath:[`noteId`,`tagId`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_revisions`,keyPath:[`noteId`,`blockId`,`version`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-block`,keyPath:[`noteId`,`blockId`]}]},{name:`sessions`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-completed`,keyPath:[`createdAt`]},{name:`by-content`,keyPath:[`blockContentId`]},{name:`by-block`,keyPath:[`blockId`]},{name:`by-page`,keyPath:[`pageId`]},{name:`by-origin`,keyPath:[`origin`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`attachments`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-time`,keyPath:[`createdAt`]},{name:`by-page`,keyPath:[`pageId`]},{name:`by-result`,keyPath:[`resultId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`events`,keyPath:[`id`],indexes:[{name:`by-timestamp`,keyPath:[`timestamp`]},{name:`by-result-grain`,keyPath:[`resultId`,`grain`]},{name:`by-content-grain`,keyPath:[`blockContentId`,`grain`]},{name:`by-effort`,keyPath:[`effortSlug`]},{name:`by-outputType`,keyPath:[`outputType`]},{name:`by-grain`,keyPath:[`grain`]},{name:`by-metric-date`,keyPath:[`metricDateKeys`],multiEntry:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`field_catalog`,keyPath:[`id`],indexes:[{name:`by-path`,keyPath:[`path`]}]},{name:`field_sources`,keyPath:[`id`],indexes:[]},{name:`field_values`,keyPath:[`key`],indexes:[{name:`by-field`,keyPath:[`fieldId`]}]},{name:`field_catalog_meta`,keyPath:[`id`],indexes:[]},{name:`efforts`,keyPath:[`slug`],indexes:[{name:`by-discipline`,keyPath:[`baseAttributes.discipline`]},{name:`by-source`,keyPath:[`registrySource`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`equipment`,keyPath:[`slug`],indexes:[{name:`by-source`,keyPath:[`registrySource`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_index`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-content`,keyPath:[`blockContentId`]},{name:`by-type`,keyPath:[`dataType`]},{name:`by-source`,keyPath:[`sourceId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_efforts`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-effort`,keyPath:[`effortSlug`]},{name:`by-block`,keyPath:[`blockContentId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`block_equipment`,keyPath:[`id`],indexes:[{name:`by-note`,keyPath:[`noteId`]},{name:`by-equipment`,keyPath:[`equipmentSlug`]},{name:`by-block`,keyPath:[`blockContentId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`notebook_links`,keyPath:[`id`],indexes:[{name:`by-notebook`,keyPath:[`notebookId`]},{name:`by-note`,keyPath:[`noteId`]},{name:`by-target`,keyPath:[`targetKind`,`targetId`]},{name:`by-notebook-target`,keyPath:[`notebookId`,`targetKind`,`targetId`],unique:!0},{name:`by-user`,keyPath:[`userId`]}]},{name:`property_overrides`,keyPath:[`id`],indexes:[{name:`by-notebook`,keyPath:[`notebookId`]},{name:`by-kind-slug`,keyPath:[`kind`,`slug`]},{name:`by-owner-note`,keyPath:[`ownerNoteId`]},{name:`by-user`,keyPath:[`userId`]}]},{name:`meta`,keyPath:[`key`],indexes:[]},{name:`memberships`,keyPath:[`id`],indexes:[],system:!0}],ox=`default`;function sx(e=Date.now()){return{id:ox,displayName:`Anonymous`,createdAt:e}}var cx=[`notes`,`page`,`page_notes`,`tags`,`tag_types`,`note_tags`,`sessions`,`attachments`,`events`,`efforts`,`block_index`,`block_efforts`,`equipment`,`block_equipment`,`notebook_links`,`property_overrides`],Rte=Object.fromEntries(cx.map(e=>[e,!0]));function lx(e,t,n){if(!Rte[e]||typeof t!=`object`||!t||Array.isArray(t))return t;let r=t;return r.seedOrigin===`seed`||r.userId===n?t:{...r,userId:n}}function ux(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&(`only`in e||`lower`in e||`upper`in e||`lowerOpen`in e||`upperOpen`in e)}function dx(e,t){let n=e;for(let e of t.split(`.`)){if(typeof n!=`object`||!n)return;let t=n;if(!(e in t))return;n=t[e]}if(n!==null&&typeof n!=`object`&&n!==void 0)return n}function fx(e,t){let n=e.keyPath.map(e=>dx(t,e));for(let[t,r]of n.entries())if(r===void 0)throw Error(`keyFromValue(${e.name}): keyPath part '${e.keyPath[t]}' missing on value`);let r=n;return r.length===1?r[0]:r}function zte(e){return encodeURIComponent(JSON.stringify(e))}function px(e){if(e===void 0)return;if(!ux(e))return{only:e};if(e.only!==void 0)return e;let t={};return e.lower!==void 0&&e.lower!==null&&(t.lower=e.lower,t.lowerOpen=e.lowerOpen===!0),e.upper!==void 0&&e.upper!==null&&(t.upper=Array.isArray(e.upper)?e.upper.map(e=>Array.isArray(e)&&e.length===0?``:e):e.upper,t.upperOpen=e.upperOpen===!0),t.lower!==void 0||t.upper!==void 0?t:void 0}function mx(e,t){if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t))return Array.isArray(e)?1:-1;for(let n=0;n<Math.min(e.length,t.length);n++){let r=mx(e[n],t[n]);if(r!==0)return r}return e.length-t.length}return typeof e==`number`&&typeof t==`number`?e<t?-1:+(e>t):typeof e==`number`||typeof t==`number`?typeof e==`number`?-1:1:e<t?-1:+(e>t)}function hx(e,t){if(t.only!==void 0)return mx(e,t.only)===0;if(t.lower!==void 0){let n=mx(e,t.lower);if(n<0||n===0&&t.lowerOpen===!0)return!1}if(t.upper!==void 0){let n=mx(e,t.upper);if(n>0||n===0&&t.upperOpen===!0)return!1}return!0}function gx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _x(e,t){return t.every(t=>e[t]===void 0||typeof e[t]==`string`)}function vx(e,t){return t.every(t=>typeof e[t]==`number`&&Number.isFinite(e[t]))}function yx(e){if(!gx(e)||typeof e.id!=`string`||typeof e.title!=`string`||typeof e.rawContent!=`string`||!Number.isSafeInteger(e.sourceRevision)||typeof e.sourceRevision!=`number`||e.sourceRevision<1||!gx(e.blocks)||!vx(e,[`createdAt`])||e.date!==void 0&&!vx(e,[`date`])||!_x(e,[`type`,`sourceId`,`notebookId`,`sourcePath`,`seedOrigin`,`seedChunkId`,`feedOrigin`,`feedSourceId`])||e.tags!==void 0&&(!Array.isArray(e.tags)||!e.tags.every(e=>typeof e==`string`)))return!1;try{return co(e.rawContent,e.blocks,e.sourceRevision),!0}catch{return!1}}function Bte(e){return gx(e)&&typeof e.id==`string`&&typeof e.noteId==`string`&&typeof e.blockId==`string`&&vx(e,[`blockVersion`,`sourceRevision`,`from`,`to`,`createdAt`])&&e.id===`${e.noteId}:${e.blockId}`&&typeof e.blockVersion==`number`&&Number.isSafeInteger(e.blockVersion)&&e.blockVersion>0&&typeof e.sourceRevision==`number`&&Number.isSafeInteger(e.sourceRevision)&&e.sourceRevision>0&&typeof e.from==`number`&&Number.isSafeInteger(e.from)&&e.from>=0&&typeof e.to==`number`&&Number.isSafeInteger(e.to)&&e.to>e.from&&[`wod`,`query`,`widget`,`embed`].includes(String(e.dataType))&&typeof e.rawContent==`string`&&typeof e.noteTitle==`string`&&_x(e,[`blockContentId`,`sourceId`,`sourcePath`,`routeId`])&&(e.position===void 0||vx(e,[`position`]))&&(e.isStatic===void 0||typeof e.isStatic==`boolean`)}function Vte(e){return gx(e)&&typeof e.id==`string`&&typeof e.label==`string`&&vx(e,[`createdAt`])&&_x(e,[`type`])}function Hte(e){return gx(e)&&typeof e.id==`string`&&vx(e,[`createdAt`])&&_x(e,[`date`,`slug`,`title`])}function Ute(e){return gx(e)&&typeof e.id==`string`&&typeof e.noteId==`string`&&typeof e.pageId==`string`&&vx(e,[`createdAt`])&&(e.position===void 0||vx(e,[`position`]))}function Wte(e){return gx(e)&&yx(e.note)&&Array.isArray(e.tags)&&e.tags.every(Vte)&&Array.isArray(e.links)&&e.links.every(Ute)&&Array.isArray(e.pages)&&e.pages.every(Hte)}function Gte(e,t){if(!gx(e)||e.projectionVersion!==4||e.plan!==t||!Array.isArray(e.rows)||typeof e.selectedCount!=`number`||!Number.isSafeInteger(e.selectedCount)||e.selectedCount<0||typeof e.matchedCount!=`number`||!Number.isSafeInteger(e.matchedCount)||e.matchedCount<0||e.matchedCount>e.selectedCount||e.rows.length>e.matchedCount)throw Error(`ApiStorage: invalid or stale domain projection response`);let n={projectionVersion:4,selectedCount:e.selectedCount,matchedCount:e.matchedCount};switch(t){case`notes`:if(e.rows.every(yx))return{...n,plan:t,rows:e.rows};break;case`blocks`:if(e.rows.every(Bte))return{...n,plan:t,rows:e.rows};break;case`detail`:if(e.rows.every(Wte))return{...n,plan:t,rows:e.rows}}throw Error(`ApiStorage: invalid domain query rows`)}var bx=(e,t)=>`${e}\u0000${JSON.stringify(t)}`;function xx(e,t,n){if(n?.has(e))return!0;if(!t)return!1;let r=`${e}\u0000`;for(let e of t.keys())if(e.startsWith(r))return!0;return!1}function Kte(e,t,n){if(!n)return;let r=n.get(bx(e,t));if(r)return r.kind===`put`?{hit:!0,value:r.value}:{hit:!1}}function qte(e,t,n,r,i,a,o,s){if(!n||!xx(t,n,r))return a===void 0?i:i.slice(0,a);let c=new Map;if(!r?.has(t))for(let t of i)c.set(JSON.stringify(fx(e,t)),t);let l=`${t}\u0000`;for(let[e,t]of n)e.startsWith(l)&&(t.kind===`put`?c.set(e.slice(l.length),t.value):c.delete(e.slice(l.length)));let u=s?e.indexes.find(e=>e.name===s):void 0;if(s&&!u)throw Error(`unknown index '${s}' for ${t}`);let d=t=>{if(!u)return fx(e,t);let n=u.keyPath.map(e=>dx(t,e));if(n.some(e=>e===void 0))return;let r=n.filter(e=>e!==void 0);return r.length===1?r[0]:r},f=e=>{if(u?.multiEntry){let t=e;for(let e of u.keyPath[0].split(`.`)){if(typeof t!=`object`||!t||!(e in t))return!1;t=Reflect.get(t,e)}return Array.isArray(t)&&t.some(e=>(typeof e==`string`||typeof e==`number`)&&(!o||hx(e,o)))}let t=d(e);return t!==void 0&&(!o||hx(t,o))},p=[...c.values()].filter(f);return p.sort((t,n)=>{let r=mx(fx(e,t),fx(e,n));if(u?.multiEntry)return r;let i=d(t),a=d(n);return i!==void 0&&a!==void 0&&mx(i,a)||r}),a===void 0?p:p.slice(0,a)}function Jte(e,t,n){let r=new Set(e),i=[];for(let e of n)r.has(e)&&i.push({op:`clear`,store:e});for(let[e,n]of t){let t=e.indexOf(`\0`),a=e.slice(0,t);r.has(a)&&(n.kind===`put`?i.push({op:`put`,store:a,value:n.value}):i.push({op:`delete`,store:a,key:JSON.parse(e.slice(t+1))}))}return i}var Sx=class extends Error{status;code;constructor(e,t,n){super(t),this.status=e,this.code=n,this.name=`StorageError`}};function Cx(e,t){if(Object.is(e,t))return!0;if(e instanceof ArrayBuffer&&t instanceof ArrayBuffer){let n=new Uint8Array(e),r=new Uint8Array(t);return n.length===r.length&&n.every((e,t)=>e===r[t])}if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((e,n)=>Cx(e,t[n]));let n=Object.keys(e).filter(t=>Reflect.get(e,t)!==void 0),r=Object.keys(t).filter(e=>Reflect.get(t,e)!==void 0);return n.length===r.length&&n.every(n=>Object.hasOwn(t,n)&&Cx(Reflect.get(e,n),Reflect.get(t,n)))}function wx(e){if(typeof e!=`object`||!e||Array.isArray(e))throw new Sx(400,`storage row must be an object`);return e}function Tx(e,t){if(e!==`notes`&&e!==`block_revisions`&&e!==`sessions`&&e!==`block_index`)return;let n=wx(t),r=e=>typeof n[e]==`number`&&Number.isSafeInteger(n[e])&&n[e]>0,i=e=>typeof n[e]==`string`&&n[e].length>0;if(e===`notes`){if(!i(`id`)||typeof n.title!=`string`||typeof n.rawContent!=`string`||!r(`sourceRevision`)||typeof n.createdAt!=`number`||!Number.isFinite(n.createdAt)||`segments`in n||`segmentIds`in n||n.date!==void 0&&(typeof n.date!=`number`||!Number.isFinite(n.date))||n.seedOrigin!==void 0&&n.seedOrigin!==`seed`&&n.seedOrigin!==`user`||n.feedOrigin!==void 0&&n.feedOrigin!==`feed`&&n.feedOrigin!==`user`||n.feedOrigin===`feed`&&(n.seedOrigin===void 0||typeof n.feedSourceId!=`string`||n.feedSourceId.length===0)||n.feedOrigin===`user`&&n.seedOrigin===`seed`||n.feedSourceId!==void 0&&n.feedOrigin!==`feed`||n.seedVersion!==void 0&&!(typeof n.seedVersion==`number`&&Number.isSafeInteger(n.seedVersion)&&n.seedVersion>=0)||n.tags!==void 0&&(!Array.isArray(n.tags)||!n.tags.every(e=>typeof e==`string`))||n.public!==void 0&&typeof n.public!=`boolean`||n.notebookIds!==void 0&&(!Array.isArray(n.notebookIds)||!n.notebookIds.every(e=>typeof e==`string`))||n.provenance!==void 0&&(typeof n.provenance!=`object`||n.provenance===null||Array.isArray(n.provenance)||typeof n.provenance.sourceNoteId!=`string`)||[`type`,`sourceId`,`sourcePath`,`notebookId`,`seedChunkId`,`feedSourceId`].some(e=>n[e]!==void 0&&typeof n[e]!=`string`))throw new Sx(400,`invalid whole Note`,`invalid_note_blocks`);try{co(n.rawContent,wx(n.blocks),n.sourceRevision)}catch(e){throw new Sx(400,e instanceof Error?e.message:`invalid block map`,`invalid_note_blocks`)}}else if(e===`block_revisions`){if(!i(`noteId`)||!i(`blockId`)||!r(`version`)||typeof n.rawContent!=`string`||typeof n.savedAt!=`number`||!Number.isFinite(n.savedAt)||![`wod`,`query`,`widget`,`embed`].includes(String(n.kind))||(n.kind===`wod`?n.dialect!==`time`&&n.dialect!==`log`:n.dialect!==void 0||n.sport!==void 0)||n.sport!==void 0&&typeof n.sport!=`string`)throw new Sx(400,`invalid block revision`,`invalid_note_blocks`);try{co(n.rawContent,{[String(n.blockId)]:{id:String(n.blockId),kind:n.kind,version:n.version,sourceRevision:1,from:0,to:n.rawContent.length,...n.dialect===void 0?{}:{dialect:n.dialect},...n.sport===void 0?{}:{sport:n.sport}}},1)}catch(e){throw new Sx(400,e instanceof Error?e.message:`invalid revision source`,`invalid_note_blocks`)}}else if(e===`sessions`){if(!i(`noteId`)||!i(`blockId`)||!r(`blockVersion`)||n.public!==void 0&&typeof n.public!=`boolean`||n.notebookIds!==void 0&&(!Array.isArray(n.notebookIds)||!n.notebookIds.every(e=>typeof e==`string`))||[`segmentId`,`segmentVersion`,`version`,`rawContent`,`script`,`serializedScript`,`source`,`data`,`logs`].some(e=>e in n))throw new Sx(400,`Session requires immutable block pin`,`invalid_session_pin`)}else if(!i(`noteId`)||!i(`blockId`)||!r(`blockVersion`)||!r(`sourceRevision`)||n.id!==`${n.noteId}:${n.blockId}`||!Number.isSafeInteger(n.from)||!Number.isSafeInteger(n.to)||`segmentId`in n||`segmentVersion`in n||![`wod`,`query`,`widget`,`embed`].includes(String(n.dataType))||typeof n.rawContent!=`string`||typeof n.noteTitle!=`string`||typeof n.from!=`number`||typeof n.to!=`number`||n.from<0||n.to<=n.from)throw new Sx(400,`invalid actionable block projection`,`invalid_note_blocks`)}function Yte(e,t){if(e===void 0||Cx(e,t))return;let n=wx(e),r=wx(t);if(typeof n.sourceRevision!=`number`||typeof r.sourceRevision!=`number`||r.sourceRevision<n.sourceRevision||(!Cx(n.blocks,r.blocks)||n.rawContent!==r.rawContent)&&r.sourceRevision<=n.sourceRevision)throw new Sx(409,`stale Note source revision`,`transaction_conflict`)}function Xte(e,t){if(e===void 0)return;let n=wx(e),r=wx(t);if(n.noteId!==r.noteId||n.blockId!==r.blockId||n.blockVersion!==r.blockVersion)throw new Sx(409,`Session pin is immutable`,`invalid_session_pin`)}async function Ex(e,t,n){let r=[];for(let t of e)for(let e of Object.values(t.blocks))r.push([t.id,e.id,e.version]);for(let e of t)r.push([e.noteId,e.blockId,e.blockVersion]);let i=await n(r),a=0;for(let t of e)for(let e of Object.values(t.blocks)){let n=i[a++];if(!n||n.kind!==e.kind||n.rawContent!==t.rawContent.slice(e.from,e.to)||n.dialect!==e.dialect||n.sport!==e.sport)throw new Sx(409,`Note block has no matching immutable revision`,`invalid_note_blocks`)}for(let e=0;e<t.length;e++){let e=i[a++];if(!e||e.kind!==`wod`)throw new Sx(409,`Session pin must reference a saved workout revision`,`invalid_session_pin`)}}async function Dx(e,t,n,r){let i=r?.params?.toString(),a=await e.fetchImpl(`${e.baseUrl}/v1${n}${i?`?${i}`:``}`,{method:t,headers:r?.body===void 0?void 0:{"content-type":`application/json`},body:r?.body===void 0?void 0:JSON.stringify(r.body)});if(!a.ok)throw Error(`ApiStorage: ${t} /v1${n} → ${a.status}`);return a}async function Zte(e,t,n){let r=await e.fetchImpl(`${e.baseUrl}/v1/${t}/get?key=${zte(n)}`);if(r.status!==404){if(!r.ok)throw Error(`ApiStorage: GET /v1/${t}/get → ${r.status}`);return await r.json()}}async function Qte(e,t,n,r,i){let a=new URLSearchParams;return r&&a.set(`range`,JSON.stringify(r)),i!==void 0&&a.set(`count`,String(i)),await(await Dx(e,`GET`,`/${t}/${n}`,{params:a})).json()}async function Ox(e,t,n,r){let i=new URLSearchParams;return n&&i.set(`range`,JSON.stringify(n)),r!==void 0&&i.set(`index`,r),(await(await Dx(e,`GET`,`/${t}/count`,{params:i})).json()).count}async function kx(e,t,n){await Dx(e,`DELETE`,`/${t}`,{params:new URLSearchParams({key:JSON.stringify(n)})})}var $te=class{http;defs;getUserId;constructor(e=`/api`,t=globalThis.fetch.bind(globalThis),n={}){this.http={baseUrl:e,fetchImpl:t},this.getUserId=n.getUserId,this.defs=Object.fromEntries(ax.map(e=>[e.name,e]))}def(e){let t=this.defs[e];if(!t)throw Error(`ApiStorage: unknown store '${e}'`);return t}makeView(e,t,n,r,i=!1){return new ene(this.http,this.def(e),e,t,n,this.getUserId,r,i)}readonly(e){return this.makeView(e)}readwrite(e){return this.makeView(e,void 0,void 0,void 0,!0)}async queryDomain(e){let t=await this.http.fetchImpl(`${this.http.baseUrl}/v1/query`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(e)});if(t.status===409){let e=await t.json();if(typeof e==`object`&&e&&`code`in e&&e.code===`domain_projection_unavailable`)return}if(!t.ok)throw Error(`ApiStorage: POST /v1/query → ${t.status}`);return Gte(await t.json(),e.plan)}async transaction(e,t,n){let r=new Map,i=new Set,a=new Map,o=new Set(e),s=(e,n)=>{if(!o.has(e))throw Error(`store outside transaction scope`);if(n&&t!==`readwrite`)throw Error(`read-only transaction`);return this.makeView(e,r,i,a,n)},c=await n({readonly:e=>s(e,!1),readwrite:e=>s(e,!0)});return await this.flush(r,i,a),c}async flush(e,t,n){let r=Jte(ax.map(e=>e.name),e,t);r.length>0&&await Dx(this.http,`POST`,`/tx`,{body:{ops:[...n.values(),...r]}})}async wipe(){await Dx(this.http,`POST`,`/wipe`)}async close(){}},ene=class{http;def;store;buffer;cleared;getUserId;checks;mutable;constructor(e,t,n,r,i,a,o,s=!1){this.http=e,this.def=t,this.store=n,this.buffer=r,this.cleared=i,this.getUserId=a,this.checks=o,this.mutable=s}dirty(){return xx(this.store,this.buffer,this.cleared)}async get(e){let t=ux(e)?e:void 0,n;if(t){if(t.only===void 0)throw Error(`ApiStorage.get: needs a plain key or {only}; bounded ranges match no single row`);n=t.only}else n=e;let r=Kte(this.store,n,this.buffer);if(r)return r.hit?r.value:void 0;if(this.cleared?.has(this.store))return;let i=await Zte(this.http,this.store,n),a=bx(this.store,n);return this.checks?.has(a)||this.checks?.set(a,{op:`check`,store:this.store,key:n,value:structuredClone(i??null)}),i}async getMany(e){return Promise.all(e.map(e=>this.get(e)))}async getAllFromIndexMany(e,t){return Promise.all(t.map(t=>this.getAllFromIndex(e,t)))}async getAll(e,t){let n=px(e);return this.overlay(await this.serverRows(`all`,n,this.dirty()?void 0:t),t,n)}async getAllFromIndex(e,t,n){let r=px(t);return this.overlay(await this.serverRows(`index/${encodeURIComponent(e)}`,r,this.dirty()?void 0:n),n,r,e)}async count(e){let t=px(e);return this.dirty()?this.overlay(await this.serverRows(`all`,t),void 0,t).length:Ox(this.http,this.store,t)}async countFromIndex(e,t){let n=px(t);return this.dirty()?this.overlay(await this.serverRows(`index/${encodeURIComponent(e)}`,n),void 0,n,e).length:Ox(this.http,this.store,n,e)}async serverRows(e,t,n){if(this.cleared?.has(this.store))return[];let r=await Qte(this.http,this.store,e,t,n);for(let e of r){let t=fx(this.def,e),n=bx(this.store,t);this.checks?.has(n)||this.checks?.set(n,{op:`check`,store:this.store,key:t,value:structuredClone(e)})}return r}overlay(e,t,n,r){return qte(this.def,this.store,this.buffer,this.cleared,e,t,n,r)}async put(e,t){if(!this.mutable)throw Error(`read-only store`);let n=this.getUserId?.(),r=n?lx(this.store,e,n):e,i=fx(this.def,r);if(this.store===`block_revisions`){let e=this.buffer?.get(bx(this.store,i));if(e?.kind===`put`&&!Cx(e.value,r))throw Error(`immutable block revision collision`)}return this.buffer?(this.buffer.set(bx(this.store,i),{kind:`put`,value:r}),i):(await Dx(this.http,`POST`,`/tx`,{body:{ops:[{op:`put`,store:this.store,value:r}]}}),i)}async putMany(e,t){if(!this.mutable)throw Error(`read-only store`);if(this.buffer){let t=[];for(let n of e)t.push(await this.put(n));return t}let n=e.map(e=>this.getUserId?lx(this.store,e,this.getUserId()):e),r=n.map(e=>fx(this.def,e));return await Dx(this.http,`POST`,`/tx`,{body:{ops:n.map(e=>({op:`put`,store:this.store,value:e}))}}),r}async delete(e){if(!this.mutable)throw Error(`read-only store`);if(this.store===`block_revisions`)throw Error(`block history requires explicit wipe`);let t=ux(e)?e:void 0;if(t){if(this.buffer){let e=await this.getAll(t);for(let t of e){let e=fx(this.def,t);this.buffer.set(bx(this.store,e),{kind:`delete`,key:e})}return}await kx(this.http,this.store,t);return}let n=e;if(this.buffer){this.buffer.set(bx(this.store,n),{kind:`delete`,key:n});return}await kx(this.http,this.store,n)}async clear(){if(!this.mutable)throw Error(`read-only store`);if(this.store===`block_revisions`)throw Error(`block history requires explicit wipe`);if(this.buffer){this.cleared?.add(this.store);let e=`${this.store}\u0000`;for(let t of[...this.buffer.keys()])t.startsWith(e)&&this.buffer.delete(t);return}await Dx(this.http,`POST`,`/tx`,{body:{ops:[{op:`clear`,store:this.store}]}})}},tne=`user-deleted-seed:`;function nne(e){return`${tne}${e}`}function rne(e){if(!(typeof e!=`string`||!e.startsWith(`user-deleted-seed:`)))return e.slice(18)||void 0}function ine(e){return typeof e==`string`&&e.startsWith(`seed:`)}function Ax(e){let t=new Set;for(let n of e)typeof n==`object`&&n&&`seedOrigin`in n&&n.seedOrigin===`seed`&&`id`in n&&typeof n.id==`string`&&t.add(n.id);return{seedNoteIds:t}}function jx(e,t,n){if(typeof t!=`object`||!t)return!0;switch(e){case`notes`:return!(`seedOrigin`in t&&t.seedOrigin===`seed`);case`block_index`:case`block_efforts`:case`block_equipment`:return!(`isStatic`in t&&t.isStatic===!0&&`noteId`in t&&typeof t.noteId==`string`&&n.seedNoteIds.has(t.noteId));case`efforts`:case`equipment`:return!(`registrySource`in t&&t.registrySource===`bundled`);case`property_overrides`:return!(`seedOrigin`in t&&t.seedOrigin===`seed`);case`meta`:return!ine(`key`in t?t.key:void 0);default:return!0}}function Mx(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Nx(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>0}function Px(e){return typeof e==`number`&&Number.isSafeInteger(e)&&e>=0}function Fx(e){return typeof e==`number`&&Number.isFinite(e)}function Ix(e){if(!Mx(e)||e.schema!==9)throw Error(`Incompatible seed schema; rebuild seed artifacts`);if(!Px(e.version)||typeof e.builtAt!=`string`||!Number.isFinite(Date.parse(e.builtAt))||!Array.isArray(e.chunks))throw Error(`seed manifest failed shape validation`);for(let t of[`versionLabel`,`commit`,`name`,`description`])if(e[t]!==void 0&&typeof e[t]!=`string`)throw Error(`invalid seed manifest metadata`);if(e.repositoryUrl!==void 0&&(typeof e.repositoryUrl!=`string`||!/^https:\/\//.test(e.repositoryUrl)||new URL(e.repositoryUrl).username||new URL(e.repositoryUrl).password))throw Error(`invalid seed repository URL`);if(e.dirty!==void 0&&typeof e.dirty!=`boolean`)throw Error(`invalid seed manifest metadata`);let t=new Set,n=new Set;for(let r of e.chunks){if(!Mx(r)||typeof r.id!=`string`||!r.id||typeof r.path!=`string`||!/^chunks\/[a-zA-Z0-9._-]+\.json$/.test(r.path)||typeof r.sha256!=`string`||!/^[0-9a-f]{64}$/.test(r.sha256)||!Px(r.bytes)||!Px(r.count)||r.kind!==void 0&&r.kind!==`notes`||t.has(r.id)||n.has(r.path))throw Error(`seed manifest failed shape validation`);t.add(r.id),n.add(r.path)}if(e.notebooks!==void 0){if(!Array.isArray(e.notebooks))throw Error(`seed manifest failed shape validation`);for(let t of e.notebooks){if(!Mx(t)||typeof t.notebookId!=`string`||!t.notebookId||typeof t.label!=`string`||!Px(t.count)||typeof t.indexPath!=`string`||!t.indexPath||!Px(t.version)||typeof t.commit!=`string`||typeof t.builtAt!=`string`||typeof t.sha256!=`string`||!Px(t.bytes))throw Error(`seed manifest failed shape validation`);if(`records`in t&&Array.isArray(t.records))throw Error(`seed manifest failed shape validation: manifest.notebooks must not contain inline records`)}}return e}function Lx(e){if(!Mx(e))throw Error(`notebook index failed shape validation`);if(typeof e.notebookId!=`string`||!e.notebookId||typeof e.label!=`string`||!e.label||typeof e.indexPath!=`string`||!e.indexPath||!Px(e.version)||typeof e.commit!=`string`||typeof e.builtAt!=`string`||typeof e.sha256!=`string`||!Px(e.bytes)||!Px(e.count)||!Array.isArray(e.records))throw Error(`notebook index failed shape validation: missing required index summary or records`);for(let t of e.records)if(!Mx(t)||typeof t.uuid!=`string`||typeof t.path!=`string`||typeof t.recordPath!=`string`||typeof t.commit!=`string`||!Px(t.version)||typeof t.sha256!=`string`)throw Error(`notebook index failed shape validation: invalid record ref`);return e}function Rx(e,t){if(e.telemetry===void 0)return;if(!Mx(e.telemetry)||!Array.isArray(e.telemetry.sessions)||!Array.isArray(e.telemetry.events))throw Error(`invalid seed telemetry`);let n=new Map;for(let r of e.telemetry.sessions){if(!Mx(r)||typeof r.id!=`string`||!r.id||n.has(r.id)||typeof r.noteId!=`string`||!r.noteId||typeof e.uuid==`string`&&r.noteId!==e.uuid||typeof r.blockId!=`string`||!Nx(r.blockVersion)||typeof r.blockContentId!=`string`||!Fx(r.startTime)||!Fx(r.endTime)||!Fx(r.duration)||typeof r.completed!=`boolean`||!Fx(r.createdAt))throw Error(`invalid seed session`);let i=t.find(e=>Mx(e)&&e.blockId===r.blockId);if(!Mx(i)||i.dataType!==`wod`||i.blockVersion!==r.blockVersion||i.blockContentId!==r.blockContentId)throw Error(`orphan or incompatible seed session pin`);n.set(r.id,r)}let r=new Set;for(let t of e.telemetry.events){if(!Mx(t)||typeof t.id!=`string`||!t.id||r.has(t.id)||typeof t.resultId!=`string`||typeof t.noteId!=`string`||!Fx(t.timestamp)||t.grain!==`event`&&t.grain!==`summary`||typeof t.outputType!=`string`||!Array.isArray(t.metrics)||!t.metrics.every(e=>Mx(e)&&typeof e.type==`string`)||t.grain===`summary`&&t.metrics.length!==1)throw Error(`invalid seed event`);let e=n.get(t.resultId);if(!e||t.noteId!==e.noteId||t.blockId!==e.blockId||t.blockVersion!==e.blockVersion||t.blockContentId!==e.blockContentId)throw Error(`orphan or incompatible seed event identity`);r.add(t.id)}}function zx(e){if(!Array.isArray(e))throw Error(`seed chunk is not an array`);let t=new Set;for(let n of e){if(!Mx(n)||typeof n.path!=`string`||!n.path||n.path.startsWith(`/`)||n.path.split(`/`).includes(`..`)||t.has(n.path)||typeof n.content!=`string`||!Mx(n.blocks)||!Array.isArray(n.blockIndex)||!Array.isArray(n.blockEfforts)||!Array.isArray(n.blockEquipment))throw Error(`seed chunk row failed shape validation`);t.add(n.path);for(let[e,t]of Object.entries(n.blocks))if(!Mx(t)||t.id!==e||!e||t.version!==1||t.sourceRevision!==1||!Px(t.from)||!Nx(t.to)||t.from>=t.to||t.to>n.content.length||![`wod`,`query`,`widget`,`embed`].includes(String(t.kind))||(t.kind===`wod`?![`time`,`log`].includes(String(t.dialect)):t.dialect!==void 0)||t.sport!==void 0&&typeof t.sport!=`string`)throw Error(`invalid seed block range or revision`);co(n.content,n.blocks,1,{registeredWidgets:Xb});let e=new Set,r=ao(n.content,{registeredWidgets:Xb});for(let t of n.blockIndex){if(!Mx(t)||typeof t.blockId!=`string`)throw Error(`invalid seed projection`);let i=n.blocks[t.blockId];if(!Mx(i)||e.has(t.blockId)||typeof t.id!=`string`||typeof t.noteId!=`string`||t.id!==`${t.noteId}:${t.blockId}`||t.blockVersion!==1||t.sourceRevision!==1||t.from!==i.from||t.to!==i.to||t.dataType!==i.kind||t.rawContent!==n.content.slice(Number(i.from),Number(i.to))||typeof t.noteTitle!=`string`||typeof t.createdAt!=`number`||!Number.isFinite(t.createdAt)||t.sourcePath!==n.path||t.isStatic!==!0)throw Error(`orphan or incompatible seed projection`);if(`segmentId`in t||`segmentVersion`in t)throw Error(`incompatible seed projection`);for(let e of[`sourceId`,`routeId`,`blockContentId`])if(t[e]!==void 0&&typeof t[e]!=`string`)throw Error(`invalid seed projection metadata`);if(t.position!==void 0&&!Px(t.position))throw Error(`invalid seed projection position`);if(i.kind===`wod`){let e=r.find(e=>e.from===i.from&&e.to===i.to);if(t.blockContentId!==Wa(e?.scriptBlock?.content??n.content.slice(Number(i.from),Number(i.to))))throw Error(`invalid seed workout fingerprint`)}else if(t.blockContentId!==void 0)throw Error(`non-workout seed fingerprint`);e.add(t.blockId)}if(e.size!==Object.keys(n.blocks).length)throw Error(`missing actionable seed projection`);let i=new Set;for(let t of n.blockEfforts){if(!Mx(t)||typeof t.blockId!=`string`||typeof t.noteId!=`string`||typeof t.effortSlug!=`string`||!t.effortSlug)throw Error(`invalid seed effort identity`);let r=n.blocks[t.blockId];if(t.id!==`${t.noteId}:${t.blockId}:${t.effortSlug}`||i.has(String(t.id))||!Mx(r)||r.kind!==`wod`||!e.has(t.blockId)||t.sourcePath!==n.path||t.isStatic!==!0||typeof t.createdAt!=`number`)throw Error(`orphan or incompatible seed effort link`);let a=n.blockIndex.find(e=>Mx(e)&&e.blockId===t.blockId);if(!Mx(a)||t.noteId!==a.noteId||t.blockContentId!==a.blockContentId||!Number.isFinite(t.createdAt))throw Error(`invalid seed effort metadata`);i.add(String(t.id))}let a=new Set;for(let t of n.blockEquipment){if(!Mx(t)||typeof t.blockId!=`string`||typeof t.noteId!=`string`||typeof t.equipmentSlug!=`string`||!t.equipmentSlug)throw Error(`invalid seed equipment identity`);let r=n.blocks[t.blockId];if(t.id!==`${t.noteId}:${t.blockId}:${t.equipmentSlug}`||a.has(String(t.id))||!Mx(r)||r.kind!==`wod`||!e.has(t.blockId)||t.sourcePath!==n.path||t.isStatic!==!0||typeof t.createdAt!=`number`)throw Error(`orphan or incompatible seed equipment link`);let i=n.blockIndex.find(e=>Mx(e)&&e.blockId===t.blockId);if(!Mx(i)||t.noteId!==i.noteId||t.blockContentId!==i.blockContentId||!Number.isFinite(t.createdAt))throw Error(`invalid seed equipment metadata`);a.add(String(t.id))}Rx(n,n.blockIndex)}return e}function Bx(e){return zx([e])[0]}function Vx(e,t,n){return`${e}:${t}:${n}`}function Hx(e){let t=[];for(let[n,r]of Object.entries(e.metrics)){if(typeof r!=`string`&&typeof r!=`number`)continue;let e=String(r).trim().match(/^([+-]?\d+(?:\.\d+)?)\s*([A-Za-z%/][\w%/.-]*)$/);e?t.push({kind:`metric`,type:n,value:Number(e[1]),unit:e[2]}):t.push({kind:`metric`,type:n,value:r})}for(let[n,r]of Object.entries(e.summaries))t.push({kind:`metric`,type:`summaries.${n}`,value:r});for(let[n,r]of Object.entries(e.widgets??{}))t.push({kind:`metric`,type:`widgets.${n}`,value:r});for(let n of e.tags)t.push({kind:`tag`,slug:n});for(let n of e.functions)t.push({kind:`function`,name:n});return t}async function Ux(e,t){let n=Za(t.targetNotebookId);if(Ja(n))throw Error(`Notebook '${n}' is read-only and cannot store overrides.`);if(n===`notebook/journal`||n===`notebook/playground`)throw Error(`Property overrides belong in 'notebook/custom' or a shared user Notebook, not '${n}'.`);let r=t.slug.trim().toLowerCase();if(!r)throw Error(`Property override requires a non-empty canonical slug.`);let i=Xa(n),a=`override/${i}/${t.kind}/${r}`,o=`${t.kind}-override-${i}-${r}`,s=Date.now(),c=t.rawContent,l=Nb(c);(typeof l.id!=`string`||!l.id.trim())&&(c=So(c,[`id`],o)),(typeof l.slug!=`string`||l.slug.trim()!==r)&&(c=So(c,[`slug`],r));let u=t.title?.trim()||r,d;if(t.kind===`effort`){let e=Vl(c);if(e.errors.length>0)throw Error(e.errors.join(`
|
|
102
102
|
`));u=e.effort.label||u,d={...e.effort,id:typeof l.id==`string`&&l.id.trim()?l.id.trim():o,slug:r,label:u,registrySource:`user`,ownerNoteId:a,sourceId:n,updatedAt:new Date(s).toISOString()}}else if(t.kind===`equipment`){let e=Wl(c);if(e.errors.length>0)throw Error(e.errors.join(`
|
|
103
103
|
`));u=e.equipment.label||u,d={...e.equipment,id:typeof l.id==`string`&&l.id.trim()?l.id.trim():o,slug:r,label:u,registrySource:`user`,ownerNoteId:a,sourceId:n,updatedAt:new Date(s).toISOString()}}else if(t.kind===`tag`){let e=t.category??`tag`,n=Kl(c,e);if(n.errors.length>0)throw Error(n.errors.join(`
|
|
104
104
|
`));let i=n.tag.category||e;u=n.tag.label||u,d={id:n.tag.id||o,label:r,...i===`tag`?{}:{type:i},contributions:Hx(n.tag),createdAt:s}}else{let e=Hx(Kl(c,`tag`).tag);u=typeof l.label==`string`&&l.label.trim()||u,d={id:o,name:r,label:u,...typeof l.color==`string`&&l.color.trim()?{color:l.color.trim()}:{},...e.length>0?{contributions:e}:{},createdAt:s}}let f={id:Vx(n,t.kind,r),notebookId:n,kind:t.kind,slug:r,label:u,ownerNoteId:a,rawContent:c,payload:d,seedOrigin:`user`,updatedAt:s};return await e.transaction([`notes`,`block_revisions`,`property_overrides`,`tags`,`tag_types`],`readwrite`,async e=>{let r=await e.readonly(`notes`).get(n);if(r&&(r.feedOrigin===`feed`||r.seedOrigin===`seed`))throw Error(`Notebook '${n}' is feed-delivered and read-only.`);let i=await e.readonly(`notes`).get(a),o=(i?.sourceRevision??0)+1,l=so(c,{sourceRevision:o,registeredWidgets:eo}),p=Object.values(l).map(e=>({noteId:a,blockId:e.id,version:e.version,kind:e.kind,rawContent:c.slice(e.from,e.to),savedAt:s,...e.dialect?{dialect:e.dialect}:{},...e.sport?{sport:e.sport}:{}}));await e.readwrite(`notes`).put({id:a,title:u,rawContent:c,sourceRevision:o,blocks:l,createdAt:i?.createdAt??s,notebookId:n,notebookIds:[n],seedOrigin:`user`}),p.length>0&&await e.readwrite(`block_revisions`).putMany(p),await e.readwrite(`property_overrides`).put(f),n===`notebook/custom`&&(t.kind===`tag`?await e.readwrite(`tags`).put(d):t.kind===`tag-type`&&await e.readwrite(`tag_types`).put(d))}),f}async function Wx(e,t){let n;try{n=t?.notebookId?await e.readonly(`property_overrides`).getAllFromIndex(`by-notebook`,t.notebookId):t?.kind&&t?.slug?await e.readonly(`property_overrides`).getAllFromIndex(`by-kind-slug`,[t.kind,t.slug]):await e.readonly(`property_overrides`).getAll()}catch{return[]}return n.filter(e=>!(t?.notebookId&&e.notebookId!==t.notebookId||t?.kind&&e.kind!==t.kind||t?.slug&&e.slug!==t.slug))}function Gx(e){let t=[],n=e=>{if(!e||!e.trim())return;if(e.startsWith(`feed:`)){t.includes(e)||t.push(e);return}let n=Za(e);n!==`notebook/defaults`&&n!==`notebook/custom`&&n!==`notebook/journal`&&n!==`notebook/playground`&&(t.includes(n)||t.push(n))};if(e.note){let t=e.note.provenance?.feedSourceId??e.note.feedSourceId;t&&t!==`core`&&t!==`local`&&n(`feed:${t}`),e.note.provenance?.sourceNotebookId&&n(e.note.provenance.sourceNotebookId);for(let t of ey(e.note))n(t);let r=ty(e.note);r&&n(r)}return e.notebookId&&n(e.notebookId),t}async function Kx(e,t={}){let n=[];try{n=await e.readonly(`property_overrides`).getAll()}catch{}let r=[],i=[],a=[],o=[];try{[r,i,a,o]=await Promise.all([e.readonly(`efforts`).getAll(),e.readonly(`equipment`).getAll(),e.readonly(`tags`).getAll(),e.readonly(`tag_types`).getAll()])}catch{}let s=new Map,c=new Map,l=new Map,u=new Map,d=new Map;for(let e of r)e.registrySource===`bundled`&&(!e.sourceId||e.sourceId===`core`||e.sourceId===`efforts`)&&(s.set(e.slug,e),d.set(`effort:${e.slug}`,`notebook/defaults`));for(let e of i)e.registrySource===`bundled`&&(!e.sourceId||e.sourceId===`core`||e.sourceId===`equipment`)&&(c.set(e.slug,e),d.set(`equipment:${e.slug}`,`notebook/defaults`));for(let e of a)l.set(e.label,e),d.set(`tag:${e.label}`,`notebook/defaults`);for(let e of o)u.set(e.name,e),d.set(`tag-type:${e.name}`,`notebook/defaults`);let f=t.notebookId?Za(t.notebookId):void 0,p=t.mode??`source-first`,m=Gx(t),h;if(h=f===`notebook/defaults`?[`notebook/defaults`]:p===`custom-runtime`||m.length===0?[`notebook/defaults`,...m,`notebook/custom`]:[`notebook/defaults`,`notebook/custom`,...m],h.includes(`notebook/custom`)){for(let e of r)e.registrySource===`user`&&!s.has(e.slug)&&(s.set(e.slug,e),d.set(`effort:${e.slug}`,`notebook/custom`));for(let e of i)e.registrySource===`user`&&!c.has(e.slug)&&(c.set(e.slug,e),d.set(`equipment:${e.slug}`,`notebook/custom`))}let g=new Map;for(let e of n){let t=g.get(e.notebookId)??[];t.push(e),g.set(e.notebookId,t)}for(let e of h){let t=g.get(e)??[];for(let n of t){let t=(e.startsWith(`feed:`),e);if(n.kind===`effort`){let e=n.payload??Vl(n.rawContent).effort;s.set(n.slug,{...e,slug:n.slug}),d.set(`effort:${n.slug}`,t)}else if(n.kind===`equipment`){let e=n.payload??Wl(n.rawContent).equipment;c.set(n.slug,{...e,slug:n.slug}),d.set(`equipment:${n.slug}`,t)}else if(n.kind===`tag`){let e=n.payload;e&&(l.set(n.slug,e),d.set(`tag:${n.slug}`,t))}else if(n.kind===`tag-type`){let e=n.payload;e&&(u.set(n.slug,e),d.set(`tag-type:${n.slug}`,t))}}}let _=[...s.values()],v=[...c.values()],y=[...l.values()],b=[...u.values()],x=[...b.filter(e=>e.contributions&&e.contributions.length>0).map(e=>({slug:`category:${e.name}`,contributions:e.contributions??[]})),...y.map(e=>({slug:e.label,contributions:e.contributions??[]}))];return{efforts:_,equipment:v,tags:y,tagTypes:b,referenceIndex:su({efforts:_,equipment:v}),tagIndex:Va(x),originByKey:d}}async function qx(e,t){let n=Za(t.notebookId);if(Ya(n))return[];let r,i;try{[r,i]=await Promise.all([e.readonly(`property_overrides`).getAllFromIndex(`by-notebook`,`notebook/custom`),e.readonly(`property_overrides`).getAllFromIndex(`by-notebook`,n)])}catch{return[]}let a=new Map(i.map(e=>[`${e.kind}:${e.slug}`,e])),o=new Map(r.map(e=>[`${e.kind}:${e.slug}`,e])),s=new Set;for(let e of t.effortSlugs??[])s.add(`effort:${e}`);for(let e of t.equipmentSlugs??[])s.add(`equipment:${e}`);for(let e of t.tagSlugs??[])s.add(`tag:${e}`);let c=[],l=Date.now();for(let e of s){if(a.has(e))continue;let t=o.get(e);if(!t)continue;let r={...t,id:Vx(n,t.kind,t.slug),notebookId:n,updatedAt:l};c.push(r),a.set(e,r)}return c.length>0&&await e.transaction([`property_overrides`],`readwrite`,async e=>{await e.readwrite(`property_overrides`).putMany(c)}),[...a.values()]}async function Jx(e){let t=await crypto.subtle.digest(`SHA-1`,new TextEncoder().encode(`${Mte}:${e}`)),n=new Uint8Array(t.slice(0,16));n[6]=n[6]&15|80,n[8]=n[8]&63|128;let r=Array.from(n,e=>e.toString(16).padStart(2,`0`)).join(``);return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function Yx(e,t){if(Object.is(e,t))return!0;if(!e||!t||typeof e!=`object`||typeof t!=`object`)return!1;let n=Object.keys(e).filter(t=>Reflect.get(e,t)!==void 0),r=Object.keys(t).filter(e=>Reflect.get(t,e)!==void 0);return n.length===r.length&&n.every(n=>n in t&&Yx(Reflect.get(e,n),Reflect.get(t,n)))}function Xx(e){return(e.split(`/`).at(-1)??e).replace(/\.md$/,``).replace(/[-_]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function Zx(e,t,n){let r=e.rawContent,i=0,a=r.length,o=t.length;for(;i<a&&i<o&&r[i]===t[i];)i++;for(;a>i&&o>i&&r[a-1]===t[o-1];)a--,o--;let s=Object.values(e.blocks).filter(e=>i<e.to&&a>e.from),c=lo(s.length<=1?e.blocks:Object.fromEntries(Object.entries(e.blocks).filter(([,e])=>!s.includes(e))),[{from:i,to:a,insert:t.slice(i,o)}]),l=0;return so(t,{sourceRevision:n,blocks:c,registeredWidgets:Xb,createId:()=>`seed:${e.id}:r${n}:${l++}`})}async function Qx(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=new Set(s),m=e=>{let t=-1;for(let n of o)n.noteIds.has(e)&&n.rank>t&&(t=n.rank);return t},h=[],g=i;for(let[e,t]of c.entries()){if(!u.has(l[e]))continue;let r=n(t.content);r&&h.push({...r,registrySource:`bundled`,ownerNoteId:l[e],sourceId:g,sourcePath:t.path})}let _=await e.getMany(h.map(e=>e.slug)),v=h.filter((e,t)=>{let n=_[t];if(!n)return!0;if(n.registrySource!==`bundled`)return!1;let r;if(n.ownerNoteId===e.ownerNoteId||n.ownerNoteId&&p.has(n.ownerNoteId)&&m(n.ownerNoteId)<a)r=a;else{let e=n.ownerNoteId?m(n.ownerNoteId):-1;r=e>=0?e:Zb(n.sourceId)}return a>=r&&!Yx(e,n)});v.length&&await e.putMany(v);let y=new Set(h.map(e=>e.slug)),b=new Map;for(let e of f){let t=d.get(e);if(!t||t.seedOrigin!==`seed`)continue;let r=n(t.rawContent)?.slug;r&&!y.has(r)&&b.set(r,e)}let x=[...b.keys()];if(x.length){let a=await e.getMany(x);for(let[s,c]of a.entries()){let a=x[s];if(!c||c.registrySource!==`bundled`)continue;let l=b.get(a);if(!(c.ownerNoteId===l&&(!c.sourceId||c.sourceId===i||c.sourceId===r)))continue;let u=!1;for(let i of o){let o=i.meta.chunks?.[r]?.noteIds??[];if(!o.length)continue;let s=await t.getMany(o);for(let t of s){if(!t||t.seedOrigin!==`seed`)continue;let r=n(t.rawContent);if(r&&r.slug===a){await e.put({...r,registrySource:`bundled`,ownerNoteId:t.id,sourceId:i.sourceId,sourcePath:t.sourcePath??``}),u=!0;break}}if(u)break}u||await e.delete(a)}}return v.length}async function $x(e,t,n){if(!t.length)return;let r=await e.getMany(n),i=t.filter((e,t)=>!Yx(e,r[t]));i.length&&await e.putMany(i)}async function eS(e,t){Ix(t.manifest),zx(t.rows);let n={totalNotes:0,totalEfforts:0,totalEquipment:0,totalBlocks:0,skippedUserOwned:0,deleted:0,addedNotes:0,updatedNotes:0},r=await Promise.all(t.rows.map(e=>Jx(e.path))),i=new Map,a=new Map,o=new Map;for(let[e,n]of t.rows.entries()){let t=Nb(n.content).slug;typeof t==`string`&&t.trim()&&(i.set(t,await Jx(`page:${t}`)),a.set(r[e],await Jx(`pagenote:${t}:${n.path}`)));for(let{label:e}of Fb(n.content))o.has(e)||o.set(e,await Jx(`tag:${e}`))}return e.transaction([`notes`,`block_revisions`,`block_index`,`block_efforts`,`block_equipment`,`page`,`page_notes`,`tags`,`note_tags`,`efforts`,`equipment`,`property_overrides`,`meta`,`sessions`,`events`],`readwrite`,async e=>{let s=e.readwrite(`meta`),c=new Set;for(let e of await s.getAll()){let t=rne(e?.key);t!==void 0&&c.add(t)}if(!Yx(await s.get(t.meta.key),t.expectedMeta))throw Error(`Seed checkpoint changed during import`);if(t.meta.schema!==9||t.manifest.schema!==9)throw Error(`Incompatible seed schema; recreate artifacts`);let l=e.readwrite(`notes`),u=t.chunkId?t.expectedMeta?.chunks[t.chunkId]?.noteIds??[]:[],d=new Set((t.chunkId?t.meta.chunks[t.chunkId]?.noteIds:void 0)??r),f=u.filter(e=>!d.has(e)),p=[...new Set([...r,...f])],m=await l.getMany(p),h=new Map(p.map((e,t)=>[e,m[t]])),g=t.meta.key.startsWith(`seed:`)?t.meta.key.slice(5):t.meta.key,_=Fte(t.meta.key),v=Zb(t.meta.key,t.meta.tier),y=[];for(let e of await s.getAll()){let n=e;if(!n||typeof n.key!=`string`||!n.key.startsWith(`seed:`)||n.key===t.meta.key)continue;let r=new Set;for(let e of Object.values(n.chunks??{}))for(let t of e.noteIds??[])r.add(t);y.push({key:n.key,sourceId:n.key.slice(5),rank:Zb(n.key,n.tier),meta:n,noteIds:r})}y.sort((e,t)=>t.rank-e.rank);let b=e=>{let t=-1;for(let n of y)n.noteIds.has(e)&&n.rank>t&&(t=n.rank);return t},x=p.filter(e=>{if(c.has(e))return!1;let n=h.get(e);if(!n)return d.has(e);if(n.seedOrigin!==`seed`)return!1;let r=b(e);return d.has(e)?v>=r:r<0&&n.seedChunkId===t.chunkId}),S=new Set(x),C=e.readwrite(`block_revisions`),w=r.filter((e,n)=>S.has(e)&&h.get(e)?.rawContent!==t.rows[n].content),T=await C.getAllFromIndexMany(`by-note`,w),E=new Map(w.map((e,t)=>[e,T[t]])),D=e.readwrite(`block_index`),O=e.readwrite(`block_efforts`),k=e.readwrite(`block_equipment`),A=e.readwrite(`note_tags`),j=e.readwrite(`page_notes`),M=await D.getAllFromIndexMany(`by-note`,x),N=await O.getAllFromIndexMany(`by-note`,x),P=await k.getAllFromIndexMany(`by-note`,x),F=await A.getAllFromIndexMany(`by-note`,x),I=await j.getAllFromIndexMany(`by-note`,x),L=new Map(x.map((e,t)=>[e,t])),R=e.readwrite(`tags`),z=[...o.keys()],ee=await R.getAllFromIndexMany(`by-label`,z),te=new Map(z.map((e,t)=>[e,ee[t][0]])),B=[],ne=[],re=[],ie=[],ae=[],oe=[],se=[],ce=[],le=[],ue=e.readwrite(`sessions`),de=e.readwrite(`events`),fe=t.rows.flatMap(e=>e.telemetry?.sessions.map(e=>e.id)??[]),pe=await ue.getMany(fe),me=new Map(fe.map((e,t)=>[e,pe[t]])),he=[],ge=[];for(let[e,s]of t.rows.entries()){let c=r[e],l=h.get(c);if(!S.has(c)){l&&l.seedOrigin!==`seed`&&n.skippedUserOwned++;continue}l?l.rawContent!==s.content&&n.updatedNotes++:n.addedNotes++,co(s.content,s.blocks,1,{registeredWidgets:Xb});let u=l?l.sourceRevision+(l.rawContent===s.content?0:1):1,d=0,f=E.get(c)??[],p=l?l.rawContent===s.content?structuredClone(l.blocks):Zx(l,s.content,u):f.length?so(s.content,{sourceRevision:u,registeredWidgets:Xb,createId:()=>`seed:${c}:new${f.length}:${d++}`}):structuredClone(s.blocks);for(let e of Object.values(p)){let n=(E.get(c)??[]).filter(t=>t.blockId===e.id).sort((e,t)=>t.version-e.version)[0],r=s.content.slice(e.from,e.to);if(l?.rawContent===s.content)continue;let i=n&&n.kind===e.kind&&n.rawContent===r&&n.dialect===e.dialect&&n.sport===e.sport;e.version=l?i?n.version:(n?.version??0)+1:1,(!l||!i)&&re.push({noteId:c,blockId:e.id,version:e.version,kind:e.kind,rawContent:r,savedAt:t.meta.importedAt,...e.dialect?{dialect:e.dialect}:{},...e.sport?{sport:e.sport}:{}})}co(s.content,p,u,{registeredWidgets:Xb});let m=Nb(s.content),g=typeof m.title==`string`&&m.title.trim()?m.title.trim():Xx(s.path),v=t.chunkId?Lte(s.path,s.content,t.chunkId):void 0;if(!v)throw Error(`Unknown seed source family ${t.chunkId}`);let y=typeof m.date==`string`?m.date.match(/^(\d{4})-(\d{2})-(\d{2})$/):null,b;if(y){let e=Date.parse(`${m.date}T12:00:00Z`);if(!(Number.isFinite(e)&&new Date(e).getUTCMonth()===Number(y[2])-1&&new Date(e).getUTCDate()===Number(y[3])))throw Error(`invalid frontmatter date '${m.date}' in '${s.path}' — expected a real calendar day (YYYY-MM-DD)`);b=e}let x=s.commit??t.manifest.commit,C={...l,id:c,title:g,rawContent:s.content,sourceRevision:u,blocks:p,createdAt:t.manifest.version,...b===void 0?{}:{date:b},type:t.chunkId===`dashboards`?`dashboard`:`note`,sourceId:v,seedOrigin:`seed`,seedVersion:t.manifest.version,seedChunkId:t.chunkId??void 0,feedOrigin:`feed`,feedSourceId:_,sourcePath:s.path,...x?{seedCommit:x}:{}};b===void 0&&delete C.date,Yx(C,l)||ne.push(C);let w=new Map(Object.values(p).map(e=>[`${e.from}:${e.to}`,e])),T=new Map(s.blockIndex.map(e=>[e.blockId,e])),D=new Map;for(let e of s.blockIndex){let t=w.get(`${e.from}:${e.to}`);if(!t||t.kind!==e.dataType)throw Error(`Orphan seed projection`);D.set(e.blockId,t.id);let n={...e,id:`${c}:${t.id}`,noteId:c,blockId:t.id,blockVersion:t.version,sourceRevision:u,noteTitle:g,sourceId:v,sourcePath:s.path,rawContent:s.content.slice(t.from,t.to)},r=M[L.get(c)].find(e=>e.id===n.id);(!r||r.isStatic===!0)&&se.push(n)}let O=new Map;for(let e of s.telemetry?.sessions??[]){if(T.get(e.blockId)?.dataType!==`wod`)throw Error(`Orphan seed session pin`);let t=me.get(e.id);if(t&&t.noteId!==c)throw Error(`Seed session ${e.id} belongs to another note`);let n=t?.blockId??D.get(e.blockId);if(!n)throw Error(`Orphan seed session pin`);let r=p[n];if(!t&&!r)throw Error(`Orphan seed session pin`);let i={...e,noteId:c,blockId:n,blockVersion:t?.blockVersion??r.version,blockContentId:t?.blockContentId??T.get(e.blockId)?.blockContentId};he.push(i),O.set(i.id,i)}for(let e of s.telemetry?.events??[]){let t=O.get(e.resultId);if(!t)throw Error(`Orphan seed event result`);ge.push({...e,noteId:c,blockId:t.blockId,blockVersion:t.blockVersion,blockContentId:t.blockContentId})}for(let e of s.blockEfforts){let t=D.get(e.blockId);if(!t||T.get(e.blockId)?.dataType!==`wod`)throw Error(`Orphan seed effort link`);let n={...e,id:`${c}:${t}:${e.effortSlug}`,noteId:c,blockId:t,sourcePath:s.path},r=N[L.get(c)].find(e=>e.id===n.id);(!r||r.isStatic===!0)&&ce.push(r?{...n,createdAt:r.createdAt}:n)}for(let e of s.blockEquipment){let t=D.get(e.blockId);if(!t||T.get(e.blockId)?.dataType!==`wod`)throw Error(`Orphan seed equipment link`);let n={...e,id:`${c}:${t}:${e.equipmentSlug}`,noteId:c,blockId:t,sourcePath:s.path},r=P[L.get(c)].find(e=>e.id===n.id);(!r||r.isStatic===!0)&&le.push(r?{...n,createdAt:r.createdAt}:n)}let k=L.get(c),j=new Set;for(let e of Fb(s.content)){let n=te.get(e.label);n?e.type&&!n.type&&(n={...n,type:e.type},B.push(n),te.set(e.label,n)):(n={id:o.get(e.label),label:e.label,type:e.type,createdAt:t.meta.importedAt},B.push(n),te.set(e.label,n)),!j.has(n.id)&&(j.add(n.id),F[k].find(e=>e.tagId===n.id)||oe.push({id:`${c}:${n.id}`,noteId:c,tagId:n.id}))}for(let e of F[k])j.has(e.tagId)||await A.delete(e.id);let I=m.slug;if(typeof I==`string`&&i.has(I)){let e=i.get(I);ie.push({id:e,slug:I,title:Xx(s.path),createdAt:t.manifest.version}),ae.push({id:a.get(c),pageId:e,noteId:c,createdAt:t.manifest.version})}n.totalNotes++,n.totalBlocks+=Object.keys(p).length}let _e=new Set(se.map(e=>e.id)),ve=new Set(ce.map(e=>e.id)),ye=new Set(le.map(e=>e.id));for(let e of M)for(let t of e)t.isStatic===!0&&!_e.has(t.id)&&await D.delete(t.id);for(let e of N)for(let t of e)t.isStatic===!0&&!ve.has(t.id)&&await O.delete(t.id);for(let e of P)for(let t of e)t.isStatic===!0&&!ye.has(t.id)&&await k.delete(t.id);for(let e of f){if(!S.has(e)||!h.get(e))continue;let t=L.get(e);await l.delete(e);for(let e of F[t])await A.delete(e.id);for(let e of I[t])await j.delete(e.id);n.deleted++}let V=async(n,i)=>{let a;try{a=e.readwrite(`property_overrides`)}catch{return}let o=_===`core`?[`notebook/defaults`]:[`feed:${_}`,...t.manifest.chunks.filter(e=>e.id.startsWith(`notebook.`)).map(e=>`notebook/${ix(e.id)}`)],s=new Set,c=[];for(let[e,a]of t.rows.entries()){let l=i(a.content);if(l)for(let i of o){let o=Vx(i,n,l.slug);s.add(o),c.push({id:o,notebookId:i,kind:n,slug:l.slug,label:l.label,ownerNoteId:r[e],rawContent:a.content,payload:l,seedOrigin:`seed`,feedSourceId:_,updatedAt:t.meta.importedAt})}}c.length>0&&await a.putMany(c);let l=await a.getAll();for(let e of l)e.seedOrigin===`seed`&&e.feedSourceId===_&&e.kind===n&&!s.has(e.id)&&await a.delete(e.id)};return t.chunkId===`efforts`&&(n.totalEfforts=await Qx(e.readwrite(`efforts`),l,Rl,`efforts`,g,v,y,u,t.rows,r,S,h,p),await V(`effort`,Rl)),t.chunkId===`equipment`&&(n.totalEquipment=await Qx(e.readwrite(`equipment`),l,zl,`equipment`,g,v,y,u,t.rows,r,S,h,p),await V(`equipment`,zl)),ne.length&&await l.putMany(ne),re.length&&await C.putMany(re),await $x(D,se,se.map(e=>e.id)),await $x(O,ce,ce.map(e=>e.id)),await $x(k,le,le.map(e=>e.id)),await $x(ue,he,he.map(e=>e.id)),await $x(de,ge,ge.map(e=>e.id)),B.length&&await R.putMany([...new Map(B.map(e=>[e.id,e])).values()]),oe.length&&await A.putMany(oe),await $x(e.readwrite(`page`),ie,ie.map(e=>e.id)),await $x(j,ae,ae.map(e=>e.id)),await s.put(t.meta),n})}function tS(e,t){let n=t.seedChunkId?e.filter(e=>e.chunkId===t.seedChunkId):[];return[...n.length>0?n:e].sort((e,t)=>t.rank-e.rank||(e.key<t.key?-1:+(e.key>t.key)))[0]}async function nS(e){return await e.transaction([`meta`,`notes`,`block_index`],`readwrite`,async e=>{let t=e.readwrite(`meta`),n=new Map;for(let e of await t.getAll()){let t=e;if(!t||typeof t.key!=`string`||!t.key.startsWith(`seed:`))continue;let r=t.key.slice(5),i=Zb(t.key,t.tier);for(let[e,a]of Object.entries(t.chunks??{}))for(let o of a.noteIds??[]){let a=n.get(o)??[];a.push({sourceId:r,chunkId:e,rank:i,key:t.key}),n.set(o,a)}}if(n.size===0)return 0;let r=e.readwrite(`notes`),i=e.readwrite(`block_index`),a=[...n.keys()],o=await r.getMany(a),s=[];for(let e=0;e<a.length;e++){let t=a[e],i=o[e];if(!i||i.seedOrigin!==`seed`||i.feedSourceId)continue;let c=tS(n.get(t),i),l=i.sourceRevision+1,u=Object.fromEntries(Object.entries(i.blocks).map(([e,t])=>[e,{...t,sourceRevision:l}]));await r.put({...i,blocks:u,sourceRevision:l,feedOrigin:`feed`,feedSourceId:c.sourceId}),s.push({id:t,sourceRevision:l})}if(s.length>0){let e=new Map(s.map(e=>[e.id,e.sourceRevision])),t=(await i.getAllFromIndexMany(`by-note`,s.map(e=>e.id))).flatMap(t=>t.flatMap(t=>{let n=e.get(t.noteId);return n!==void 0&&t.sourceRevision!==n?[{...t,sourceRevision:n}]:[]}));t.length>0&&await i.putMany(t)}return s.length})}async function rS(e){return await e.transaction([`meta`,`notes`,`block_index`,`block_efforts`,`block_equipment`],`readwrite`,async e=>{let t=0,n=e.readwrite(`meta`);for(let e of await n.getAll()){let r=e;if(!r||typeof r.key!=`string`||!r.key.startsWith(`seed:`))continue;let i=r.chunks??{},a=!1,o={};for(let[e,t]of Object.entries(i)){let n=Vy(e);n!==e&&(a=!0),o[n]=o[n]&&o[n]!==t?{...o[n],noteIds:[...new Set([...o[n].noteIds??[],...t.noteIds??[]])]}:t}a&&(await n.put({...r,chunks:o}),t++)}for(let n of[`notes`,`block_index`,`block_efforts`,`block_equipment`]){let r=e.readwrite(n);for(let e of await r.getAll()){let n=e;Ky(n)&&(await r.put(Gy(n)),t++)}}return t})}var iS=`https://wod.wiki`,aS=`wod-feed-qr`;function oS(e=iS){return ane.replace(`__APP_ORIGIN__`,e)}var ane=`(function () {
|
|
@@ -749,7 +749,7 @@ ${t??`A WOD Wiki workout feed compiled from authored Markdown notes and optional
|
|
|
749
749
|
`));e?o?r[o]?console.warn(`[canvas] duplicate named \`\`\`scroll:${o} block ignored`):r[o]=e:n===null?n=e:console.warn("[canvas] duplicate unnamed ```scroll block ignored"):console.warn("[canvas] ```scroll block ignored: missing or malformed stages"),s=[],o=null};for(let e of t){if(a){/^```\s*$/.test(e)?(c(),a=!1):s.push(e);continue}let t=e.match(/^```scroll(?::([\w-]+))?\s*$/);if(t){a=!0,o=t[1]??null;continue}i.push(e)}return a&&c(),{scroll:n,namedScrolls:r,body:i.join(`
|
|
750
750
|
`)}}function NU(e){if(!e)return[];let t=[{token:`{{hero-carousel}}`,widget:`hero-carousel`}],n=[{kind:`prose`,text:e}];for(let{token:e,widget:r}of t){let t=[];for(let i of n){if(i.kind!==`prose`){t.push(i);continue}let n=i.text.split(e);for(let e=0;e<n.length;e++)e>0&&t.push({kind:`widget`,widget:r}),t.push({kind:`prose`,text:n[e]})}n=t}let r=/\{\{challenge:([^}]+)\}\}/g,i=[];for(let e of n){if(e.kind!==`prose`){i.push(e);continue}let t=e.text,n=0,a;for(r.lastIndex=0;(a=r.exec(t))!==null;)i.push({kind:`prose`,text:t.slice(n,a.index)}),i.push({kind:`challenge`,id:a[1].trim()}),n=a.index+a[0].length;i.push({kind:`prose`,text:t.slice(n)})}return n=i,n.filter(e=>e.kind!==`prose`||e.text!==``)}function PU(e){let t=/^```(\w+)\n([\s\S]*?)^```[ \t]*$/gm,n=[],r;for(;(r=t.exec(e))!==null;)n.push({start:r.index,end:r.index+r[0].length,type:r[1],content:r[2]});let i,a=[],o=[],s=[],c=[];for(let e=0;e<n.length;e++){let{type:t,content:r}=n[e];if(t===`view`)i=yU(r),c.push(null);else if(t===`command`)a.push(bU(r)),c.push(null);else if(t===`button`){let e=xU(r);o.push(e),c.push(e)}else t===`example`&&s.push(SU(r)),c.push(null)}let l=new Set([`view`,`command`,`example`]),u=[],d=0;for(let t=0;t<n.length;t++){let r=n[t],i=c[t];i?(u.push(...NU(e.slice(d,r.start))),u.push({kind:`button`,button:i}),d=r.end):l.has(r.type)&&(u.push(...NU(e.slice(d,r.start))),d=r.end)}return u.push(...NU(e.slice(d))),{proseChunks:u,view:i,commands:a,buttons:o,examples:s}}function FU(e,t=`/`){let{meta:n,body:r}=Eo(e);if(String(n.template??``)!==`canvas`)return null;let{quests:i,body:a}=wU(r),{scroll:o,namedScrolls:s,body:c}=MU(a),{chapters:l}=DU(c),u=String(n.route??t),d=[],f=null,p=e=>{let{proseChunks:t,view:n,commands:r,buttons:i,examples:a}=PU(e.lines.join(`
|
|
751
751
|
`)),o=e.attrs.find(e=>e.startsWith(`#`))?.slice(1),s=e.attrs.filter(e=>!e.startsWith(`#`)),c=e=>s.includes(e),l=e=>s.find(t=>t.startsWith(`${e}:`))?.slice(e.length+1);d.push({id:o||hU(e.heading)||`section-${d.length}`,heading:e.heading,level:e.level,attrs:s,theme:l(`theme`)??`slate`,density:l(`density`)??`default`,isDark:c(`dark`),isFullBleed:c(`full-bleed`),isSticky:c(`sticky`),prose:pU({proseChunks:t}),proseChunks:t,view:n,commands:r,buttons:i,examples:a})},m=!1;for(let e of c.split(`
|
|
752
|
-
`)){/^`{3,}/.test(e)&&(m=!m);let t=m?null:gU(e);t?(f&&p(f),f={heading:t.text,level:t.level,attrs:t.attrs,lines:[]}):f&&f.lines.push(e)}return f&&p(f),{template:`canvas`,route:u,type:n.type?String(n.type):void 0,sections:d,frontmatter:n,quests:i,chapters:l,scroll:o,namedScrolls:s}}function IU(e){if(!e)return`/`;let t=e.trim();return t.startsWith(`/`)||(t=`/`+t),t=t.replace(/\/+/g,`/`),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function LU(e,t){let n=IU(t);for(let t of e)if(t.route===n)return t.page;return null}function RU(e){return[IU(e)]}function zU(e,t){for(let n of RU(t)){let t=LU(e,n);if(t!==null)return t}return null}function BU(e){let t=[];for(let[n,r]of Object.entries(e))if(n.match(/^markdown\/canvas\/(.+\.md)$/)){let e=FU(r);e&&e.route!==$.home&&t.push({route:e.route,page:e});continue}return t}function VU(e,t){return zU(e,t)}function HU(){let e=CN();return(0,W.useMemo)(()=>e?BU(e):[],[e])}function UU(e){let t=HU();return(0,W.useMemo)(()=>VU(t,e),[t,e])}function WU({className:e,...t}){return(0,G.jsx)(`nav`,{...t,className:wn(e,`flex flex-1 items-center gap-2 sm:gap-4 py-2.5 min-w-0`)})}var GU=(0,W.forwardRef)(function({current:e,className:t,children:n,...r},i){let a=wn(`group relative flex min-w-0 min-h-11 min-w-11 items-center justify-center gap-3 rounded-lg p-2 text-left text-base/6 font-medium text-foreground sm:text-sm/5 sm:justify-start`,`[&>[data-slot=icon]]:size-6 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:fill-muted-foreground sm:[&>[data-slot=icon]]:size-5`,`[&>*:not(:nth-child(2)):last-child[data-slot=icon]]:ml-auto [&>*:not(:nth-child(2)):last-child[data-slot=icon]]:size-5 sm:[&>*:not(:nth-child(2)):last-child[data-slot=icon]]:size-4`,`[&>[data-slot=avatar]]:-m-0.5 [&>[data-slot=avatar]]:size-7 [&>[data-slot=avatar]]:[--avatar-radius:theme(borderRadius.md)] sm:[&>[data-slot=avatar]]:size-6`,`data-[hover]:bg-muted/50 data-[hover]:[&>[data-slot=icon]]:fill-foreground`,`data-[active]:bg-muted/50 data-[active]:[&>[data-slot=icon]]:fill-foreground`,`dark:data-[hover]:bg-white/5 dark:data-[hover]:[&>[data-slot=icon]]:fill-foreground`,`dark:data-[active]:bg-white/5 dark:data-[active]:[&>[data-slot=icon]]:fill-foreground`);return(0,G.jsxs)(`span`,{className:wn(t,`relative`),children:[e&&(0,G.jsx)(ae.span,{layoutId:`current-indicator`,className:`absolute inset-x-2 -bottom-2.5 h-0.5 rounded-full bg-foreground`}),typeof r.href==`string`?(0,G.jsx)(Qz,{...r,className:a,"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(Zz,{children:n})}):(0,G.jsx)(s,{...r,className:wn(`cursor-default`,a),"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(Zz,{children:n})})]})}),KU={WORKBENCH_ROOT:`workbench-root`,WORKBENCH_HEADER:`workbench-header`,WORKBENCH_RESET_BUTTON:`workbench-reset`,WORKBENCH_DOWNLOAD_BUTTON:`workbench-download`,TAB_PLAN:`tab-plan`,TAB_TRACK:`tab-track`,TAB_REVIEW:`tab-review`,TRACKER_PANEL:`tracker-panel`,TRACKER_NEXT_BUTTON:`tracker-next`,TRACKER_CURRENT_BLOCK_LABEL:`tracker-current-block`,TRACKER_ROUND_INDICATOR:`tracker-round`,TRACKER_REP_INDICATOR:`tracker-reps`,TRACKER_COMPLETION_BANNER:`tracker-completion`,TIMER_DISPLAY:`timer-display`,TIMER_VALUE:`timer-value`,TIMER_NEXT_BLOCK:`timer-next-block`,TIMER_STOP_SESSION:`timer-stop-session`,TIMER_PLAY_PAUSE:`timer-play-pause`,TIMER_UP_NEXT_CAPTION:`timer-up-next-caption`,TIMER_SURFACE_MINIMAL:`timer-surface-minimal`,TIMER_SURFACE_GENERAL:`timer-surface-general`,TIMER_METRIC_PROMPTS:`timer-metric-prompts`,FOCUSED_DIALOG_CLOSE:`focused-dialog-close`,CLOCK_COMMAND_BOARD:`clock-command-board`,CLOCK_REP_COUNTER:`clock-rep-counter`,CLOCK_REP_VALUE:`clock-rep-value`,CLOCK_REP_MINUS:`clock-rep-minus`,CLOCK_REP_PLUS:`clock-rep-plus`,CLOCK_REP_SELECT:`clock-rep-select`,CLOCK_VALUES_BUTTON:`clock-values-button`,CLOCK_DRAFT_CHIP:`clock-draft-chip`,CLOCK_LEGEND:`clock-legend`,CLOCK_KEY_MODE_TOGGLE:`clock-key-mode-toggle`,CLOCK_KEY_CHECK_BUTTON:`clock-key-check-button`,CLOCK_KEY_CHECK_DIALOG:`clock-key-check-dialog`,CLOCK_STOP_CONFIRM:`clock-stop-confirm`,CLOCK_STOP_CONFIRM_ACCEPT:`clock-stop-confirm-accept`,CLOCK_STOP_CONFIRM_CANCEL:`clock-stop-confirm-cancel`,CLOCK_ENTRY_OVERLAY:`clock-entry-overlay`,CLOCK_ERROR:`clock-error`,REVIEW_PANEL:`review-panel`,REVIEW_RESULTS_TABLE:`review-results-table`,REVIEW_METRIC_ROW:`review-metric-row`,REVIEW_TOTAL_TIME:`review-total-time`,EDITOR_PANEL:`editor-panel`,EDITOR_CONTENT:`editor-content`,EDITOR_START_WORKOUT:`editor-start-workout`,TESTBENCH_ROOT:`testbench-root`,TESTBENCH_NEXT_BUTTON:`testbench-next`,TESTBENCH_RUNTIME_STACK:`testbench-runtime-stack`,TESTBENCH_MEMORY:`testbench-memory`,TESTBENCH_SCRIPT_EDITOR:`testbench-script-editor`,EFFORTS_ROOT:`efforts-root`,EFFORTS_SEARCH:`efforts-search`,EFFORTS_CREATE_BTN:`efforts-create-btn`,EFFORTS_EMPTY_STATE:`efforts-empty-state`,EFFORTS_LOADING:`efforts-loading`,EFFORT_DETAIL_ROOT:`effort-detail-root`,EFFORT_DETAIL_LABEL:`effort-detail-label`,EFFORT_DETAIL_ALIASES:`effort-detail-aliases`,EFFORT_DETAIL_ATTRIBUTES:`effort-detail-attributes`,EFFORT_DETAIL_SOURCE:`effort-detail-source`,EFFORT_DETAIL_EDIT_BTN:`effort-detail-edit-btn`,EFFORT_DETAIL_CLONE_BTN:`effort-detail-clone-btn`,EFFORT_DETAIL_SAVE_BTN:`effort-detail-save-btn`,EFFORT_DETAIL_CANCEL_BTN:`effort-detail-cancel-btn`,EFFORT_DETAIL_DELETE_BTN:`effort-detail-delete-btn`,EFFORT_DETAIL_NOTEBOOK_EDITOR:`effort-detail-notebook-editor`,EFFORT_DETAIL_ANALYTICS_PLACEHOLDER:`effort-detail-analytics-placeholder`,EFFORT_NOT_FOUND:`effort-not-found`,EFFORT_NOT_FOUND_CREATE_BTN:`effort-not-found-create-btn`,EFFORT_NOT_FOUND_ALIAS_BTN:`effort-not-found-alias-btn`,EFFORT_NOT_FOUND_ALIAS_SELECT:`effort-not-found-alias-select`,EFFORT_NOT_FOUND_ALIAS_CONFIRM:`effort-not-found-alias-confirm`,EFFORTS_NAV_ORIGIN_FILTER:`efforts-nav-origin-filter`,EFFORTS_NAV_DISCIPLINE_FILTER:`efforts-nav-discipline-filter`,EFFORTS_NAV_RECENT_WORKOUTS:`efforts-nav-recent-workouts`,EFFORTS_NAV_RECENT_WORKOUT_ITEM:`efforts-nav-recent-workout-item`,EQUIPMENT_DETAIL_ROOT:`equipment-detail-root`,EQUIPMENT_DETAIL_LABEL:`equipment-detail-label`,EQUIPMENT_DETAIL_SOURCE:`equipment-detail-source`,EQUIPMENT_DETAIL_CLONE_BTN:`equipment-detail-clone-btn`,EQUIPMENT_DETAIL_NOTEBOOK_EDITOR:`equipment-detail-notebook-editor`,EQUIPMENT_NOT_FOUND:`equipment-not-found`,EQUIPMENT_NOT_FOUND_CREATE_BTN:`equipment-not-found-create-btn`,EQUIPMENT_CREATE_BTN:`equipment-create-btn`,EQUIPMENT_LOAD_ERROR:`equipment-load-error`,COMMAND_PALETTE_TRIGGER:`command-palette-trigger`,COMMAND_PALETTE_INPUT:`command-palette-input`,COMMAND_PALETTE_RESULTS:`command-palette-results`,NAV_L1_HOME:`nav-l1-home`,NAV_L1_JOURNAL:`nav-l1-journal`,NAV_L1_LIBRARY:`nav-l1-library`,NAV_L1_DASHBOARDS:`nav-l1-dashboards`,NAV_L1_SEARCH:`nav-l1-search`,MOBILE_NAV_OPEN:`mobile-nav-open`,MOBILE_NAV_DRAWER:`mobile-nav-drawer`,MOBILE_NAV_CLOSE:`mobile-nav-close`,DRAWER_APPLY_BTN:`drawer-apply-btn`,NEW_ENTRY_PRIMARY:`new-entry-primary`,STREAM_VIEW:`queriable-stream-view`,STREAM_FEED_ITEM:`stream-feed-item`,STREAM_QUERY_BAR:`stream-query-bar`,PROPERTY_TABLE:`property-table`,LIBRARY_ROW_NOTEBOOK:`library-row-notebook`,NOTEBOOKS_CREATE_BUTTON:`notebooks-create-button`,ENTRY_CREATE_TITLE_INPUT:`entry-create-title-input`,ENTRY_CREATE_DATE_INPUT:`entry-create-date-input`,ENTRY_CREATE_SUBMIT_BTN:`entry-create-submit-btn`,ENTRY_CREATE_CANCEL_BTN:`entry-create-cancel-btn`,NOTEBOOK_DIALOG_NAME_INPUT:`notebook-dialog-name-input`,NOTEBOOK_DIALOG_SAVE_BTN:`notebook-dialog-save-btn`,PLACEMENT_DIALOG:`placement-dialog`,PLACEMENT_DATE_INPUT:`placement-date-input`,PLACEMENT_SLUG_INPUT:`placement-slug-input`,PLACEMENT_ADD_BTN:`placement-add-btn`,PLACEMENT_MOVE_BTN:`placement-move-btn`,PLACEMENT_REMOVE_BTN:`placement-remove-btn`,PLACEMENT_CLONE_SUBMIT_BTN:`placement-clone-submit-btn`,PUBLICATION_PILL:`publication-pill`,PUBLICATION_PILL_POPOVER:`publication-pill-popover`,PROMOTION_PROVENANCE_ROW:`promotion-provenance-row`,PROMOTION_CLONE_READONLY_BTN:`promotion-clone-readonly-btn`,PROMOTION_NEW_NOTEBOOK_INPUT:`promotion-new-notebook-input`,PROMOTION_NEW_NOTEBOOK_SUBMIT:`promotion-new-notebook-submit`,PUBLICATION_NOTEBOOK_PUBLIC_TOGGLE:`publication-notebook-public-toggle`,PUBLICATION_EXPORT_REPO_ZIP_BTN:`publication-export-repo-zip-btn`,PROPERTY_OVERRIDE_SHEET:`property-override-sheet`,PROPERTY_OVERRIDE_EDITOR:`property-override-editor`,PROPERTY_OVERRIDE_SAVE_BTN:`property-override-save-btn`,PROPERTY_OVERRIDE_CANCEL_BTN:`property-override-cancel-btn`,TIMER_FULLSCREEN_OVERLAY:`timer-fullscreen-overlay`,TIMER_DETAIL_SURFACE:`timer-detail-surface`,SYNC_SUBSCRIBED_ONLY_TOGGLE:`sync-subscribed-only-toggle`},qU=new Map,JU=new Map;function YU(e){JU.set(e.runtimeId,e)}function XU(e){let t=JU.get(e);return t&&JU.delete(e),t}function ZU(e){for(let t of JU.values())if(t.journalDate===e)return t}function QU(e){JU.delete(e)}var $U={status:`idle`,elapsedTime:0,stepCount:0,startTime:null},eW=Le(e=>({runtime:null,activeNoteId:null,subscriptionManager:null,execution:$U,userOutputOverrides:new Map,setRuntime:(t,n=null)=>e(()=>({runtime:t,activeNoteId:n,...t===null?{execution:$U}:{}})),setSubscriptionManager:t=>e({subscriptionManager:t}),setExecution:t=>e(e=>({execution:{...e.execution,...t}})),resetExecution:()=>e({execution:$U}),setUserOverride:(t,n)=>e(e=>{let r=new Map(e.userOutputOverrides),i=n instanceof Ia?n:Ia.from(n,t);return r.set(t,i),{userOutputOverrides:r}}),clearUserOverride:t=>e(e=>{if(!e.userOutputOverrides.has(t))return e;let n=new Map(e.userOutputOverrides);return n.delete(t),{userOutputOverrides:n}})})),tW=yb({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)}),nW={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}},rW={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}},iW=class{async getAllEfforts(){let e=oN();return e.isInitialized()||await nN(e),[...e.list()]}},aW=new Av,oW={events:[],notes:[]},sW={events:[],notes:[]};aW.set(`@session`,oW),aW.set(`@today`,sW);function cW(){let{runtime:e,activeNoteId:t}=eW.getState(),n=e?.getOutputStatements()??[];if(oW.notes=[],n.length===0)return oW.events=[],oW;let r=t??``;return oW.events=Hv(n.map(km),{noteId:r,resultId:`live:${r||`session`}`,origin:`playground`}),oW}function lW(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 iv(e.date??e.createdAt,r)}async function uW(e,t){let n=iv(e.instant,e.timeZone),r=lv(n,e.timeZone),i=lv(av(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)lW(t,d.get(t.id)??[],u,e.timeZone)===n&&f.push(t);t===pW&&(sW.events=l,sW.notes=f,cW())}var dW=null,fW=null,pW=0,mW=!1,hW=new Set;function gW(){for(let e of hW)e()}function _W(e,t){fW=t;let n=++pW;return dW=uW(e,n),dW.then(()=>{n===pW&&vW()},()=>{n===pW&&vW()}),dW}function vW(){mW=!0,gW()}function yW(){let e=Q_(),t=iv(e.instant,e.timeZone);return!dW||fW!==t?_W(e,t):dW}function bW(){mW=!1;let e=Q_();return _W(e,iv(e.instant,e.timeZone))}function xW(){return mW}function SW(e){return hW.add(e),()=>{hW.delete(e)}}var CW=class extends Iy{async runQuery(e,t){return await yW(),super.runQuery(e,t)}async runPipeline(e,t){return await yW(),super.runPipeline(e,t)}async runFind(e,t){return await yW(),super.runFind(e,t)}async runRows(e,t){return await yW(),super.runRows(e,t)}async run(e,t){return await yW(),super.run(e,t)}};function wW(){return new CW({eventStore:tW,noteStore:nW,blockStore:rW,effortStore:new iW,blockEffortsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`block_efforts`,e,t)},blockEquipmentStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`block_equipment`,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`?cW():aW.getDataset(e)},feedCatalogStore:uL,isNotebookSubscribed:(e,t)=>yI(e,t)})}var TW=wW();function EW(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?FV(a):`${t===`segment`?`Segment`:`Event`} ${n+1}`,date:typeof e.date==`string`?e.date:null,subtitle:o.length>0?o.join(` • `):void 0}}function DW(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 OW(e,t,n){e&&e({selected:Math.max(t?.selected??0,n.length),matched:n.length})}function kW(e){return typeof e==`object`&&!!e&&`runFind`in e}var AW=new class e{customService;noteTitleResolver;noteTagsResolver;noteBlockInfo;constructor(e){kW(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?XC(t.title)||ZC(t.rawContent??``):void 0}catch{return}}}get service(){return this.customService??TW}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.kind===`feed`||r.kind===`notebook`||r.isRemotePreview||(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=Ka(e?.links??[],e?.pages??[]);t.placements=n;let i=qa(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,n){let r=typeof e==`string`?X(e):e;if(!r||r.error)return[];if(Ah(r)){if(r.target===`effort`){let e=this.service.runFindEffort?await this.service.runFindEffort(r):await this.service.runFind(r),n=new Map(e.notes.map(e=>[e.id,e])),i=(e.efforts??[]).map(e=>e.ownerNoteId&&n.has(e.ownerNoteId)?OV(n.get(e.ownerNoteId)):RV(e));return OW(t,e.stages,i),i}if(r.target===`block`){let e=await this.service.runFind(r),n=e.blocks.map(PV);return await this.hydrateEntries(n,!0),OW(t,e.stages,n),n}if(r.target===`session`){let e=await this.service.runFind(r);t?.(e.stages);let n;if(this.noteTitleResolver&&e.runs){n=new Map;for(let t of e.runs)if(!n.has(t.noteId)){let e=await this.noteTitleResolver(t.noteId);e&&n.set(t.noteId,e)}}let i=UV(e,{noteTitles:n});return OW(t,e.stages,i),i}if(r.target===`segment`||r.target===`event`){let e=r.target,n=await this.service.runFind(r),i=(n.table?.rows??[]).map((t,n)=>EW(t,e,n));return OW(t,n.stages,i),i}let e=await this.service.runFind(r,n?.notebookPlane?{notebookPlane:n.notebookPlane}:void 0),i=e.notes.map(OV);if(this.noteTagsResolver?(await this.hydrateEntries(i,!1),await Promise.all(i.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(i,!0),OW(t,e.stages,i),this.noteBlockInfo)for(let t=0;t<i.length;t++){let n=i[t],r=e.notes[t];n.excerpt=NV(r.rawContent);try{co(r.rawContent,r.blocks,r.sourceRevision)}catch{continue}let a=Object.values(r.blocks).sort((e,t)=>e.from-t.from).find(e=>e.kind===`wod`),o=a&&ao(r.rawContent).find(e=>e.from===a.from&&e.scriptBlock);if(a&&o?.scriptBlock){let e=o.scriptBlock.content,t=Wa(e);n.wodBlock={blockId:a.id,blockVersion:a.version,blockContentId:t,content:e},n.blockContentId=t}}return i}if(r.family===`aggregate`){if(!this.service.runQuery)return[];let e=await this.service.runQuery(r.raw),n=DW(e);return t?.({selected:e.stages?.selected??n.length,matched:n.length}),n}return[]}};async function jW(e,t=AW,n){return t.query(e,n)}function MW(e){return e?e.map(e=>e.kind===`wql`?`${e.id}|${e.query}|${e.limit??``}`:`s:${e.id}`).join(`;`):``}async function NW(e){try{let t=(await jW(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 PW(e){let t=MW(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`?NW(e):Promise.resolve(e))).then(e=>{t||i(e)}),()=>{t=!0}},[t]),r}function FW(){let[e]=j(`h`,{shallow:!0}),[t]=j(`s`,{shallow:!0}),{navState:n}=CR(),r=n.activeL3Id??``;return e||t||r||``}function IW({entry:e,active:t,onActivate:n,onFilter:r}){let i=e.onRun,a=e.filterTo,o=e.filterLabel??`Filter notes by ${e.label}`,s=e.runIcon===`link`?`View workout`:e.runIcon===`stop`?`Stop workout`:e.runIcon===`edit`?`Edit note`:`Start workout`,c=(0,G.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:K(`flex min-w-0 flex-1 items-center gap-2 rounded-lg px-2 py-1.5 text-left transition-colors`,!i&&!a&&`w-full`,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 rounded bg-muted px-1.5 py-0.5 font-mono text-[9.5px] uppercase tracking-wide text-muted-foreground/80`,children:e.badge})]});return!i&&!a?c:(0,G.jsxs)(`div`,{className:`group flex w-full items-center gap-0.5`,children:[c,a&&(0,G.jsx)(`button`,{type:`button`,"aria-label":o,title:o,"data-testid":`menu-filter-${e.id}`,onClick:()=>r(a),className:`flex size-7 max-lg:size-9 shrink-0 items-center justify-center rounded-md text-muted-foreground/55 transition-colors hover:bg-muted hover:text-foreground`,children:(0,G.jsx)(mr,{className:`size-3.5`})}),i&&(0,G.jsx)(`button`,{type:`button`,"aria-label":s,title:s,onClick:()=>e.onRun?.(),className:`flex size-6 max-lg:size-8 shrink-0 items-center justify-center rounded text-primary opacity-70 lg:opacity-0 transition-all group-hover:opacity-100 hover:bg-primary/10`,children:e.runIcon===`link`?(0,G.jsx)(Vn,{className:`size-3.5`}):e.runIcon===`stop`?(0,G.jsx)(Et,{className:`size-3.5`}):e.runIcon===`edit`?(0,G.jsx)(hr,{className:`size-3.5`}):(0,G.jsx)(on,{className:`size-3.5`})})]})}function LW({entries:e,activeId:t,onSection:n}){let r=f(),{scrollToSection:i}=CR(),a=qz(),o=e=>{if(a(),n)return n(e);if(e.onSelect)return e.onSelect();if(e.onRun)return e.onRun();if(e.to)return r(e.to);if(e.sectionId)return i(e.sectionId)},s=e=>{a(),r(e)};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)(LW,{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)(IW,{entry:e,active:t!=null&&e.sectionId===t,onActivate:o,onFilter:s},e.id))})}function RW(){let e=f(),{scrollToSection:t}=CR();return{navigate:(t,n)=>e(t,{replace:n?.replace}),setQueryParam:(e,t)=>{},scrollToSection:t}}function zW(){let e=RW(),t=qz();return n=>{t(),XV(n.action,e)}}function BW(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 VW({items:e}){let{navState:t}=CR(),n=Hr(),r=zW();return(0,G.jsx)(nB,{children:e.map(e=>{let i=BW(e,t,n);return e.children&&e.children.length>0?(0,G.jsx)(tH,{title:e.label,count:e.children.length,defaultOpen:e.children.some(e=>BW(e,t,n)),collapsible:e.id!==`syntax-group`,children:e.children.map(e=>{let i=BW(e,t,n);return(0,G.jsxs)(iB,{onClick:()=>r(e),current:i,children:[e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(aB,{children:e.label})]},e.id)})},e.id):(0,G.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,G.jsxs)(iB,{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)(aB,{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)(lt,{className:`size-3.5`})})]},e.id)})})}function HW({navSpec:e}){let{tree:t,navState:n,dispatch:r,contextNav:i}=CR(),a=Hr(),o=PW(e),s=(t??[]).find(e=>e?.id===n.activeL1Id)??null,c=i?.pathname===a.pathname?i:null;return(0,G.jsxs)($z,{children:[(0,G.jsx)(eB,{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)(tB,{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)(VW,{items:s.children})}):null})(),c?(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(LW,{entries:c.spec})}):o.length>0&&(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(LW,{entries:o})})]})]})}var UW=`0.53.2203`,WW=`https://github.com/bitcobblers/wod-wiki/releases`;function GW(e){return/-pr\.\d+$/.test(e)?WW:`${WW}/tag/v${e}`}function KW({onSearch:e,onCreate:t}){let{tree:n,navState:r,dispatch:i}=CR(),a=f(),o=Hr(),s=qz(),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`,"data-testid":KU.NAV_L1_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)(y,{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=BW(e,r,o);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),i({type:`SET_ACTIVE_L1`,id:e.id}),XV(e.action,c)},title:e.label,"aria-label":e.label,"aria-current":n?`page`:void 0,"data-testid":`nav-l1-${e.id}`,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`,"data-testid":KU.NAV_L1_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)(Gn,{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:nU,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)(rU,{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)($t,{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)(ke,{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`,UW,`)`]})]})]})}function qW({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:()=>XV(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 JW=class e{now;name=`tick`;timestamp;data;static _counter=0;constructor(t,n=fu){this.now=n;let r=this.now.nowMs();e._counter++,this.timestamp=new Date(r+e._counter),this.data=t}},YW=20,XW=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 JW(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()??fu.nowMs();u.current=i-r,r===0&&c(i),l.current=setInterval(f,YW)},[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()??fu.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])};function ZW(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 QW(e){return ZW(e,`round`)}function $W(e){return ZW(e,`display`)}function eG(e){let t=QW(e),n=$W(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 tG=(0,W.createContext)(void 0),nG=({runtime:e,children:t})=>(0,G.jsx)(tG.Provider,{value:e,children:t});function rG(){let e=(0,W.useContext)(tG);if(!e)throw Error(`useScriptRuntime must be used within ScriptRuntimeProvider`);return e}function iG(e){let t=rG(),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 aG(e){let t=rG(),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 oG(){let e=rG(),[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 sG(){return oG().blocks}function cG(){let e=sG(),[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=Ia.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 lG(){let e=sG(),[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 uG(){let e=lG();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 dG(){let e=lG(),t=uG();return(0,W.useMemo)(()=>t?e.filter(e=>e.block!==t.block):[],[e,t])}function fG(){let e=sG(),[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 pG(){let e=sG(),[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 mG(e){let t=rG(),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)(ed()),l=(0,W.useMemo)(()=>a.length===0?0:Am(a,s),[a,s]);return(0,W.useEffect)(()=>{if(!o)return;let e,t=()=>{c(ed()),e=requestAnimationFrame(t)};return t(),()=>cancelAnimationFrame(e)},[o]),{elapsed:l,isRunning:o,timeSpans:a}}var hG=(0,W.createContext)(void 0),gG=(0,W.createContext)(null),_G=({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),eW.getState().setSubscriptionManager(null),eW.getState().setRuntime(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 bm(i);e.add(new ym({id:`local`})),f.current=e,a(e),eW.getState().setRuntime(i),eW.getState().setSubscriptionManager(e)}else f.current=null,a(null),eW.getState().setRuntime(null),eW.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)(hG.Provider,{value:g,children:(0,G.jsx)(gG.Provider,{value:i,children:t})})};function vG({factory:e,children:t}){return(0,G.jsx)(_G,{factory:e,children:t})}var yG=`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`,bG=`flex flex-col flex-1 min-w-0 xl:max-w-[984px] 2xl:max-w-none min-h-screen lg:rounded-[2.5rem]`,xG=(0,W.createContext)(null);function SG({value:e,children:t}){return(0,G.jsx)(xG.Provider,{value:e,children:t})}function CG(){let e=(0,W.useContext)(xG),{dispatch:t,streamControls:n,analyticsControls:r,l3Items:i,l3Actions:a=[],secondarySpec:o}=CR(),s=(0,W.useMemo)(()=>{let e=X(n?.query??``);return!e.error&&Ah(e)&&e.filters.length>0},[n?.query]);return e||{railHasContent:!!(o&&o.length>0||i&&i.length>0||a&&a.length>0||n||r),hasAppliedFilters:s,openRightDrawer:()=>t({type:`SET_RIGHT_DRAWER`,open:!0})}}function wG(){let{railHasContent:e,hasAppliedFilters:t,openRightDrawer:n}=CG();return e?(0,G.jsxs)(q,{type:`button`,variant:`ghost`,size:`icon`,onClick:n,"aria-label":`Page options`,title:`Page options (⌘.)`,"data-testid":`l3-drawer-trigger`,className:`relative hidden lg:inline-flex 2xl:hidden text-muted-foreground hover:text-foreground`,children:[(0,G.jsx)(An,{className:`size-4`,"aria-hidden":`true`}),t&&(0,G.jsx)(`span`,{"data-testid":`header-filters-active`,className:`absolute top-1.5 right-1.5 size-2 rounded-full bg-amber-500`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Page options`})]}):null}function TG({id:e,title:t,subtitle:n,titleAccessory:r,actions:i,queryBar:a,subheader:o,titleTestId:s,className:c}){let{railHasContent:l}=CG(),u=!!(i||l);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}),u&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 sm:gap-2 shrink-0 ml-auto`,children:[i,(0,G.jsx)(wG,{})]})]}),o&&(0,G.jsx)(`div`,{className:`bg-background/40`,children:o})]})}function EG({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 DG({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]=j(`s`,{defaultValue:o??a[0]?.id??``,shallow:!0,history:`replace`}),[f,p]=(0,W.useState)(c?.[0]?.id??``);if(EG({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}),EG({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)(qW,{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)(vG,{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(bG,yG),children:[(0,G.jsx)(TG,{title:e,titleAccessory:t,actions:n,subheader:r}),(0,G.jsx)(`div`,{className:`flex-1`,children:i})]})})}var OG=`[data-page-sticky-boundary="true"]`,kG=0;function AG(e,t=kG){if(typeof document>`u`)return e;let n=Array.from(document.querySelectorAll(OG)).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 jG(e,t=kG){let[n,r]=(0,W.useState)(e);return(0,W.useEffect)(()=>{let n=0,i=()=>r(AG(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(OG).forEach(e=>o?.observe(e));let s=typeof MutationObserver>`u`?void 0:new MutationObserver(()=>{document.querySelectorAll(OG).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 MG({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 NG=(0,W.createContext)(null),PG=(0,W.createContext)(null);function FG({children:e}){let[t,n]=(0,W.useState)(null);return(0,G.jsx)(PG.Provider,{value:n,children:(0,G.jsx)(NG.Provider,{value:t,children:e})})}function IG({className:e}){let t=(0,W.useContext)(PG);return(0,G.jsx)(`div`,{ref:t,className:e,"data-testid":`mobile-query-slot`})}function LG(){return(0,W.useContext)(NG)}function RG({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(bG,yG),children:[(0,G.jsx)(TG,{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 zG(e){return e.map(e=>{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 BG=W.createContext(null);function VG(){let e=W.useContext(BG);if(!e)throw Error(`DropdownMenu components must be used inside a DropdownMenu`);return e}function HG(){let e=W.useContext(BG);return W.useCallback(()=>{e?.setIsOpen(!1)},[e])}var UG=({children:e,open:t,onOpenChange:n})=>{let r=W.useContext(BG),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)(BG.Provider,{value:v,children:(0,G.jsx)(`div`,{ref:c,className:`relative inline-block`,children:e})})},WG=W.forwardRef(({className:e,children:t,asChild:n,...r},i)=>{let{isOpen:a,setIsOpen:o}=VG(),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})});WG.displayName=`DropdownMenuTrigger`;var GG=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}=VG(),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%)`),NE.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)});GG.displayName=`DropdownMenuContent`;var KG=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}=VG(),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})});KG.displayName=`DropdownMenuItem`;var qG=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}));qG.displayName=`DropdownMenuLabel`;var JG=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:K(`-mx-1 my-1 h-px bg-muted`,e),...t}));JG.displayName=`DropdownMenuSeparator`;var YG=[{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`}],XG=[`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`,`Su`];function ZG(e,t){return new Date(e,t+1,0).getDate()}function QG(e,t){let n=new Date(e,t,1).getDay();return n===0?6:n-1}function $G(e,t){let n=X(e);if(n.error)return e;if(!t||t===`all`)return Cg({...n,window:void 0});let r=X(`:note ${t}`);return r.error||r.family!==`find`||!r.window?e:Cg({...n,window:r.window})}function eK(e){let t=X(e);return t.error||t.family===`pipeline`?null:`window`in t?t.window??null:null}function tK({query:e,onQueryChange:t,highlightDates:n=new Set,className:r}){let i=(0,W.useMemo)(()=>eK(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.kind===`param`?`last $${i.param}${i.unit?` ${i.unit}`:``}`:i.end?`from ${i.start} to ${i.end}`:`from ${i.start}`:`All time`,[i]),f=(0,W.useMemo)(()=>{if(!i||i.kind===`param`)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:Pz(t),end:Pz(e)}},[i]),p=(0,W.useMemo)(()=>{let e=ZG(l,u),t=QG(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]),h=n=>{if(!a)o(n),t($G(e,`from ${n} to ${n}`));else{let[r,i]=a<=n?[a,n]:[n,a];o(null),t($G(e,`from ${r} to ${i}`))}},g=e=>{e.stopPropagation(),c(new Date(l,u-1,1))},_=e=>{e.stopPropagation(),c(new Date(l,u+1,1))},v=s.toLocaleDateString(`en-US`,{month:`short`,year:`numeric`}),y=Pz(new Date);return(0,G.jsxs)(`div`,{className:K(`relative inline-flex items-center`,r),children:[(0,G.jsxs)(UG,{children:[(0,G.jsx)(WG,{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)(rr,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`font-mono text-xs`,children:d}),(0,G.jsx)(ht,{className:`size-3 text-muted-foreground`,"aria-hidden":`true`})]})}),(0,G.jsxs)(GG,{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:YG.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($G(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:g,"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)(m,{className:`size-4`})}),(0,G.jsx)(`span`,{className:`text-xs font-semibold text-foreground`,children:v}),(0,G.jsx)(`button`,{type:`button`,onClick:_,"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)(Wr,{className:`size-4`})})]}),(0,G.jsx)(`div`,{className:`mb-1 grid grid-cols-7 gap-1`,children:XG.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===y,d=n.has(r);return(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wql-calendar-day-${r}`,onClick:()=>h(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($G(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)(lr,{className:`size-3.5`})})]})}function nK({onOpen:e}){let t=HG(),n=qz();return(0,G.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{t(),n(),e()},"data-testid":`query-settings-trigger`,className:`w-full justify-start gap-2 rounded-lg text-xs`,children:[(0,G.jsx)(An,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:`Query settings`})]})}function rK(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 iK=[{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??``)}],aK={note:iK,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?``:IV(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?``:IV(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?``:IV(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 oK(e){return aK[e]??iK}function sK(e){return oK(e).filter(e=>e.defaultVisible).map(e=>e.id)}var cK=[4,8,16],lK=`sum:totalVolume{}`;function uK(e){let t=Number.parseInt(e??``,10);return cK.includes(t)?t:16}function dK(e={}){let{defaultQuery:t=lK,runOnLanding:n=!1}=e,[r,i]=B(),a=r.get(`q`)??``,o=uK(r.get(`weeks`)),[s,c]=(0,W.useState)(()=>a&&!X(a).error?a:t),[l,u]=(0,W.useState)(a||(n?t:``)),d=(0,W.useRef)(s);d.current=s;let f=(0,W.useRef)(r);f.current=r;let p=(0,W.useRef)(!0),m=(0,W.useRef)(a);m.current=a;let h=(0,W.useRef)(a);(0,W.useEffect)(()=>{a!==h.current&&(h.current=a,d.current!==a&&(p.current=!0,c(a&&!X(a).error?a:t),u(a||(n?t:``))))},[a,t,n]);let g=(0,W.useRef)(t);return(0,W.useEffect)(()=>{t!==g.current&&(g.current=t,!a&&(c(t),u(n?t:``)))},[t,a,n]),{draft:s,setDraft:(0,W.useCallback)(e=>{if(e===d.current)return;let t=new URLSearchParams(f.current);t.set(`q`,e),i(t,{replace:!p.current}),p.current=!1,c(e)},[i]),submitted:l,submit:(0,W.useCallback)(e=>{let t=e??d.current;if(X(t).error)return;if(p.current&&m.current===t){u(t);return}let n=new URLSearchParams(f.current);n.set(`q`,t),i(n,{replace:!0}),p.current=!0,u(t)},[i]),weeks:o,setWeeks:(0,W.useCallback)(e=>{let t=new URLSearchParams(f.current);t.set(`weeks`,String(e)),i(t,{replace:!0})},[i])}}var fK=[{id:`cards`,label:`Cards`,icon:Cn},{id:`rows`,label:`Rows`,icon:Rr},{id:`feed`,label:`Feed`,icon:Je},{id:`agenda`,label:`Agenda`,icon:Ot},{id:`planner`,label:`Planner`,icon:w}];function pK({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)(nK,{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)(tK,{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:fK.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:oK(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)(jH,{})]})}function mK({controls:e}){let{unit:t,setUnit:n}=UT(),r=e.showRange!==!1,i=e.showUnits!==!1,a=e.weeks!==void 0&&e.onWeeksChange!==void 0;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,"data-testid":`l3-analytics-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)(nK,{onOpen:e.onOpenQuerySettings})]}),r&&(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 range`}),a?(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`l3-range-options`,children:cK.map(t=>{let n=e.weeks===t;return(0,G.jsxs)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>e.onWeeksChange?.(t),"data-testid":`l3-range-${t}w`,className:K(`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs transition-colors`,n?`bg-primary/10 font-semibold text-primary`:`text-foreground/80 hover:bg-muted/60 hover:text-foreground`),children:[(0,G.jsx)(`span`,{className:`w-3.5 text-primary`,children:n?(0,G.jsx)(re,{className:`size-3.5`,"aria-hidden":`true`}):null}),(0,G.jsxs)(`span`,{children:[`Past `,t,` weeks`]})]},t)})}):(0,G.jsx)(PT,{})]}),i&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsxs)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[`Units`,e.unitForced?` — pinned by query`:``]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-1`,"data-testid":`l3-unit-options`,children:[`kg`,`lb`].map(r=>{let i=t===r;return(0,G.jsx)(`button`,{type:`button`,disabled:!!e.unitForced,"aria-pressed":i,onClick:()=>n(r),"data-testid":`l3-unit-${r}`,className:K(`flex min-h-8 items-center justify-center rounded-md border px-2 py-1 text-xs font-medium transition-colors`,e.unitForced?`border-transparent text-muted-foreground/50 cursor-not-allowed`:i?`border-border/80 bg-card text-foreground shadow-sm`:`border-transparent text-muted-foreground hover:text-foreground`),children:r},r)})})]})]})}function hK({action:e}){let t=qz(),n=e.icon;return(0,G.jsxs)(`button`,{type:`button`,disabled:e.disabled,"data-testid":e.testId,onClick:()=>{e.disabled||(t(),e.onRun())},className:K(`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-[13px] transition-colors`,e.disabled?`cursor-not-allowed text-muted-foreground/45`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[n&&(0,G.jsx)(n,{className:`size-4 shrink-0`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.label,children:e.label})]})}function gK({spec:e,pageAction:t}){let{l3Items:n,l3Actions:r=[],streamControls:i,analyticsControls:a}=CR(),o=PW(e),s=(0,W.useMemo)(()=>zG(n),[n]),c=FW(),l=!!(i||a),u=o.length>0||s.length>0,d=r.length>0||!!t;return!l&&!u&&!d?null:(0,G.jsxs)(`div`,{className:`flex flex-col px-3 py-4 gap-4`,children:[l&&(0,G.jsxs)(`div`,{className:K(`flex flex-col gap-4`,(u||d)&&`pb-3 border-b border-border/50`),children:[i&&(0,G.jsx)(pK,{streamControls:i}),a&&(0,G.jsx)(mK,{controls:a})]}),o.length>0&&(0,G.jsx)(LW,{entries:o,activeId:c}),s.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)(LW,{entries:s,activeId:c})]}),d&&(0,G.jsxs)(`div`,{"data-testid":`l3-actions`,className:K(`flex flex-col gap-0.5`,u&&`pt-2 border-t border-border/50`),children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 pt-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Actions`}),r.map(e=>(0,G.jsx)(hK,{action:e},e.id)),t&&(0,G.jsx)(`div`,{className:K(r.length>0&&`pt-1`),children:t})]})]})}var _K=1023;function vK(e){return e===`/`?`canvas:home`:`canvas:${e.replace(/^\//,``)}`}function yK(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}=Eo(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 bK(e){return(e.examples??[]).length>0||e.commands.some(e=>e.pipeline.length>0)}function xK(e){let t=new Map,n=null;for(let r of e)bK(r)&&(n=r),t.set(r.id,n);return t}function SK(){let[e,t]=(0,W.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: ${_K}px)`).matches);return(0,W.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: ${_K}px)`),n=e=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var CK=`wodwiki:fabAlignment`,wK=[{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 TK(){try{return EK(localStorage.getItem(CK))}catch{return}}function EK(e){return e===`right`||e===`left`?e:void 0}var DK=typeof window>`u`?void 0:TK();typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key===CK&&(DK=EK(e.newValue))});function OK(e){DK=e;try{e===`right`?localStorage.removeItem(CK):localStorage.setItem(CK,e)}catch{}window.dispatchEvent(new StorageEvent(`storage`,{key:CK,newValue:e}))}function kK(){let[e,t]=(0,W.useState)(()=>DK??`right`);return(0,W.useEffect)(()=>{let e=e=>{e.key===CK&&t(EK(e.newValue)??`right`)};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),[e,OK]}function AK({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)(Gn,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Search`})]})}var jK=(0,W.createContext)(null),MK=(0,W.createContext)(!1),NK=(0,W.createContext)(null);function PK(){return(0,W.useContext)(jK)!==null}function FK({primary:e,navbar:t,children:n,label:r,fallback:i=!1}){let a=(0,W.useContext)(jK),o=(0,W.useContext)(MK),s=SK(),c=(0,W.useId)(),l=a!==null&&!o&&s&&!i,u=a!==null&&i,d=W.Children.toArray(n).length>0,f=(0,W.useMemo)(()=>(0,G.jsx)(MK.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)(MK.Provider,{value:!0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t,e,n]})})}function IK({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)(jK.Provider,{value:o,children:(0,G.jsxs)(NK.Provider,{value:s,children:[t,(0,G.jsx)(RK,{registrations:n,onSearch:e})]})})}function LK(){let e=(0,W.useContext)(NK);return e?(0,G.jsx)(G.Fragment,{children:e}):null}function RK({registrations:e,onSearch:t}){let n=SK(),[r]=kK(),i=FE(),[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)(AK,{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)(Kz,{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)(me,{className:`size-6`}):(0,G.jsx)(nee,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:d?.label??f?.label??`Page options`})]})]})}function zK(){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 BK(){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 VK(){let{tree:e,navState:t,contextNav:n}=CR(),r=Hr(),i=qz();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,"data-testid":KU.DRAWER_APPLY_BTN,className:`h-11 w-full rounded-lg bg-primary text-sm font-medium text-primary-foreground`,children:`Apply`})})}function HK({open:e,close:t,onSearch:n,children:r}){return(0,G.jsxs)(_,{open:e,onClose:t,className:`fixed inset-0 z-50 lg:hidden`,children:[(0,G.jsx)(Mr,{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)(rt,{transition:!0,"data-testid":KU.MOBILE_NAV_DRAWER,className:`fixed inset-y-0 left-0 w-full transition duration-300 ease-out data-closed:-translate-x-full`,children:(0,G.jsx)(Kz,{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)(KW,{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)(kn,{as:GU,"aria-label":`Close navigation`,title:`Close navigation`,"data-testid":KU.MOBILE_NAV_CLOSE,children:[(0,G.jsx)(BK,{}),(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)(VK,{})]})]})})})]})}function UK({open:e,close:t,children:n}){return(0,W.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.stopPropagation(),t())};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),e?(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 2xl:hidden`,"data-testid":`l3-right-drawer`,children:[(0,G.jsx)(`div`,{"aria-hidden":`true`,onClick:t,className:`fixed inset-0 bg-black/25 dark:bg-black/40 transition-opacity`}),(0,G.jsx)(`div`,{role:`region`,"aria-label":`Page options panel`,className:`fixed inset-y-0 right-0 flex h-full min-h-0 w-full lg:w-80 flex-col bg-card lg:border-l lg:border-border/60 lg:shadow-2xl animate-in slide-in-from-right duration-200`,children:(0,G.jsxs)(Kz,{close:t,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/40 px-4 py-2.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Page options`}),(0,G.jsxs)(GU,{onClick:t,"aria-label":`Close page options`,title:`Close page options`,children:[(0,G.jsx)(BK,{}),(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 lg:hidden`,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`})})]})})]}):null}function WK({navbar:e,sidebar:t,onSearch:n,secondary:r,pageAction:i,hideDesktopSidebar:a,children:o}){let[s,c]=(0,W.useState)(!1),{navState:l,dispatch:u,streamControls:d,analyticsControls:f,l3Items:p,l3Actions:m=[]}=CR(),h=!!l?.rightDrawerOpen,g=(0,W.useCallback)(e=>u({type:`SET_RIGHT_DRAWER`,open:e}),[u]),_=(0,W.useCallback)(()=>g(!0),[g]),v=(0,W.useCallback)(()=>g(!1),[g]),y=!!(r&&r.length>0||p&&p.length>0||m&&m.length>0||d||f||i),b=(0,W.useMemo)(()=>{let e=X(d?.query??``);return!e.error&&Ah(e)&&e.filters.length>0},[d?.query]),x=(0,W.useMemo)(()=>({railHasContent:y,hasAppliedFilters:b,openRightDrawer:_}),[y,b,_]);return(0,W.useEffect)(()=>{if(!s&&!h)return;let e=()=>{c(!1),g(!1)};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[s,h,g]),(0,W.useEffect)(()=>{if(!y)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key===`.`&&!e.shiftKey&&!e.altKey){if(window.innerWidth>=1520)return;e.preventDefault(),g(!h)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y,h,g]),(0,G.jsx)(SG,{value:x,children:(0,G.jsx)(FG,{children:(0,G.jsx)(IK,{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)(KW,{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)(HK,{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)(GU,{onClick:()=>c(!0),"aria-label":`Open navigation`,title:`Open navigation`,"data-testid":KU.MOBILE_NAV_OPEN,children:[(0,G.jsx)(zK,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Open navigation`})]})}),(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:e}),y&&(0,G.jsx)(`div`,{className:`py-2.5 shrink-0`,children:(0,G.jsxs)(GU,{onClick:_,"aria-label":`Open page options`,title:`Open page options`,children:[(0,G.jsxs)(`span`,{className:`relative inline-flex`,children:[(0,G.jsx)(An,{className:`size-5`}),b&&(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)(GK,{})]})]}),(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)(gK,{spec:r,pageAction:i})}),(0,G.jsx)(UK,{open:h,close:v,children:(0,G.jsx)(gK,{spec:r,pageAction:i})})]})})})})})}function GK(){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)(IG,{className:`flex w-full min-w-0`})})}),(0,G.jsx)(`div`,{className:`lg:hidden`,"aria-hidden":`true`,style:{height:t}})]})}function KK(e){let t=e.indexOf(`markdown`);return t!==-1&&e.length>t+2?e[t+2]:`General`}function qK(e){return String(Ao(Eo(e).meta,`search`)??``).toLowerCase()===`hidden`}function JK(e){let t=Ao(Eo(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 YK(e){return Object.entries(e).map(([e,t])=>{let n=e.split(`/`),r=n[n.length-1].replace(`.md`,``),i=t,a=Ao(Eo(i).meta,`title`);return{id:e,name:r,displayName:typeof a==`string`&&a.trim()?a.trim():cN(r),category:KK(n),content:i,date:JK(i),searchHidden:qK(i)}})}function XK(){let e=CN();return(0,W.useMemo)(()=>e?YK(e):[],[e])}var ZK={};function QK(e,t){let{canvasPage:n,workoutItems:r,selectWorkout:i}=t;if(e===`/`)return[];if(n){let t=/^\/notebook\//.test(e),a=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=pU(e).split(`
|
|
752
|
+
`)){/^`{3,}/.test(e)&&(m=!m);let t=m?null:gU(e);t?(f&&p(f),f={heading:t.text,level:t.level,attrs:t.attrs,lines:[]}):f&&f.lines.push(e)}return f&&p(f),{template:`canvas`,route:u,type:n.type?String(n.type):void 0,sections:d,frontmatter:n,quests:i,chapters:l,scroll:o,namedScrolls:s}}function IU(e){if(!e)return`/`;let t=e.trim();return t.startsWith(`/`)||(t=`/`+t),t=t.replace(/\/+/g,`/`),t.length>1&&t.endsWith(`/`)&&(t=t.slice(0,-1)),t}function LU(e,t){let n=IU(t);for(let t of e)if(t.route===n)return t.page;return null}function RU(e){return[IU(e)]}function zU(e,t){for(let n of RU(t)){let t=LU(e,n);if(t!==null)return t}return null}function BU(e){let t=[];for(let[n,r]of Object.entries(e))if(n.match(/^markdown\/canvas\/(.+\.md)$/)){let e=FU(r);e&&e.route!==$.home&&t.push({route:e.route,page:e});continue}return t}function VU(e,t){return zU(e,t)}function HU(){let e=CN();return(0,W.useMemo)(()=>e?BU(e):[],[e])}function UU(e){let t=HU();return(0,W.useMemo)(()=>VU(t,e),[t,e])}function WU({className:e,...t}){return(0,G.jsx)(`nav`,{...t,className:wn(e,`flex flex-1 items-center gap-2 sm:gap-4 py-2.5 min-w-0`)})}var GU=(0,W.forwardRef)(function({current:e,className:t,children:n,...r},i){let a=wn(`group relative flex min-w-0 min-h-11 min-w-11 items-center justify-center gap-3 rounded-lg p-2 text-left text-base/6 font-medium text-foreground sm:text-sm/5 sm:justify-start`,`[&>[data-slot=icon]]:size-6 [&>[data-slot=icon]]:shrink-0 [&>[data-slot=icon]]:fill-muted-foreground sm:[&>[data-slot=icon]]:size-5`,`[&>*:not(:nth-child(2)):last-child[data-slot=icon]]:ml-auto [&>*:not(:nth-child(2)):last-child[data-slot=icon]]:size-5 sm:[&>*:not(:nth-child(2)):last-child[data-slot=icon]]:size-4`,`[&>[data-slot=avatar]]:-m-0.5 [&>[data-slot=avatar]]:size-7 [&>[data-slot=avatar]]:[--avatar-radius:theme(borderRadius.md)] sm:[&>[data-slot=avatar]]:size-6`,`data-[hover]:bg-muted/50 data-[hover]:[&>[data-slot=icon]]:fill-foreground`,`data-[active]:bg-muted/50 data-[active]:[&>[data-slot=icon]]:fill-foreground`,`dark:data-[hover]:bg-white/5 dark:data-[hover]:[&>[data-slot=icon]]:fill-foreground`,`dark:data-[active]:bg-white/5 dark:data-[active]:[&>[data-slot=icon]]:fill-foreground`);return(0,G.jsxs)(`span`,{className:wn(t,`relative`),children:[e&&(0,G.jsx)(ae.span,{layoutId:`current-indicator`,className:`absolute inset-x-2 -bottom-2.5 h-0.5 rounded-full bg-foreground`}),typeof r.href==`string`?(0,G.jsx)(Qz,{...r,className:a,"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(Zz,{children:n})}):(0,G.jsx)(s,{...r,className:wn(`cursor-default`,a),"data-current":e?`true`:void 0,"aria-current":e?`page`:void 0,ref:i,children:(0,G.jsx)(Zz,{children:n})})]})}),KU={WORKBENCH_ROOT:`workbench-root`,WORKBENCH_HEADER:`workbench-header`,WORKBENCH_RESET_BUTTON:`workbench-reset`,WORKBENCH_DOWNLOAD_BUTTON:`workbench-download`,TAB_PLAN:`tab-plan`,TAB_TRACK:`tab-track`,TAB_REVIEW:`tab-review`,TRACKER_PANEL:`tracker-panel`,TRACKER_NEXT_BUTTON:`tracker-next`,TRACKER_CURRENT_BLOCK_LABEL:`tracker-current-block`,TRACKER_ROUND_INDICATOR:`tracker-round`,TRACKER_REP_INDICATOR:`tracker-reps`,TRACKER_COMPLETION_BANNER:`tracker-completion`,TIMER_DISPLAY:`timer-display`,TIMER_VALUE:`timer-value`,TIMER_NEXT_BLOCK:`timer-next-block`,TIMER_STOP_SESSION:`timer-stop-session`,TIMER_PLAY_PAUSE:`timer-play-pause`,TIMER_UP_NEXT_CAPTION:`timer-up-next-caption`,TIMER_SURFACE_MINIMAL:`timer-surface-minimal`,TIMER_SURFACE_GENERAL:`timer-surface-general`,TIMER_METRIC_PROMPTS:`timer-metric-prompts`,FOCUSED_DIALOG_CLOSE:`focused-dialog-close`,CLOCK_COMMAND_BOARD:`clock-command-board`,CLOCK_REP_COUNTER:`clock-rep-counter`,CLOCK_REP_VALUE:`clock-rep-value`,CLOCK_REP_MINUS:`clock-rep-minus`,CLOCK_REP_PLUS:`clock-rep-plus`,CLOCK_REP_SELECT:`clock-rep-select`,CLOCK_VALUES_BUTTON:`clock-values-button`,CLOCK_DRAFT_CHIP:`clock-draft-chip`,CLOCK_LEGEND:`clock-legend`,CLOCK_KEY_MODE_TOGGLE:`clock-key-mode-toggle`,CLOCK_KEY_CHECK_BUTTON:`clock-key-check-button`,CLOCK_KEY_CHECK_DIALOG:`clock-key-check-dialog`,CLOCK_STOP_CONFIRM:`clock-stop-confirm`,CLOCK_STOP_CONFIRM_ACCEPT:`clock-stop-confirm-accept`,CLOCK_STOP_CONFIRM_CANCEL:`clock-stop-confirm-cancel`,CLOCK_ENTRY_OVERLAY:`clock-entry-overlay`,CLOCK_ERROR:`clock-error`,REVIEW_PANEL:`review-panel`,REVIEW_RESULTS_TABLE:`review-results-table`,REVIEW_METRIC_ROW:`review-metric-row`,REVIEW_TOTAL_TIME:`review-total-time`,EDITOR_PANEL:`editor-panel`,EDITOR_CONTENT:`editor-content`,EDITOR_START_WORKOUT:`editor-start-workout`,TESTBENCH_ROOT:`testbench-root`,TESTBENCH_NEXT_BUTTON:`testbench-next`,TESTBENCH_RUNTIME_STACK:`testbench-runtime-stack`,TESTBENCH_MEMORY:`testbench-memory`,TESTBENCH_SCRIPT_EDITOR:`testbench-script-editor`,EFFORTS_ROOT:`efforts-root`,EFFORTS_SEARCH:`efforts-search`,EFFORTS_CREATE_BTN:`efforts-create-btn`,EFFORTS_EMPTY_STATE:`efforts-empty-state`,EFFORTS_LOADING:`efforts-loading`,EFFORT_DETAIL_ROOT:`effort-detail-root`,EFFORT_DETAIL_LABEL:`effort-detail-label`,EFFORT_DETAIL_ALIASES:`effort-detail-aliases`,EFFORT_DETAIL_ATTRIBUTES:`effort-detail-attributes`,EFFORT_DETAIL_SOURCE:`effort-detail-source`,EFFORT_DETAIL_EDIT_BTN:`effort-detail-edit-btn`,EFFORT_DETAIL_CLONE_BTN:`effort-detail-clone-btn`,EFFORT_DETAIL_SAVE_BTN:`effort-detail-save-btn`,EFFORT_DETAIL_CANCEL_BTN:`effort-detail-cancel-btn`,EFFORT_DETAIL_DELETE_BTN:`effort-detail-delete-btn`,EFFORT_DETAIL_NOTEBOOK_EDITOR:`effort-detail-notebook-editor`,EFFORT_DETAIL_ANALYTICS_PLACEHOLDER:`effort-detail-analytics-placeholder`,EFFORT_NOT_FOUND:`effort-not-found`,EFFORT_NOT_FOUND_CREATE_BTN:`effort-not-found-create-btn`,EFFORT_NOT_FOUND_ALIAS_BTN:`effort-not-found-alias-btn`,EFFORT_NOT_FOUND_ALIAS_SELECT:`effort-not-found-alias-select`,EFFORT_NOT_FOUND_ALIAS_CONFIRM:`effort-not-found-alias-confirm`,EFFORTS_NAV_ORIGIN_FILTER:`efforts-nav-origin-filter`,EFFORTS_NAV_DISCIPLINE_FILTER:`efforts-nav-discipline-filter`,EFFORTS_NAV_RECENT_WORKOUTS:`efforts-nav-recent-workouts`,EFFORTS_NAV_RECENT_WORKOUT_ITEM:`efforts-nav-recent-workout-item`,EQUIPMENT_DETAIL_ROOT:`equipment-detail-root`,EQUIPMENT_DETAIL_LABEL:`equipment-detail-label`,EQUIPMENT_DETAIL_SOURCE:`equipment-detail-source`,EQUIPMENT_DETAIL_CLONE_BTN:`equipment-detail-clone-btn`,EQUIPMENT_DETAIL_NOTEBOOK_EDITOR:`equipment-detail-notebook-editor`,EQUIPMENT_NOT_FOUND:`equipment-not-found`,EQUIPMENT_NOT_FOUND_CREATE_BTN:`equipment-not-found-create-btn`,EQUIPMENT_CREATE_BTN:`equipment-create-btn`,EQUIPMENT_LOAD_ERROR:`equipment-load-error`,COMMAND_PALETTE_TRIGGER:`command-palette-trigger`,COMMAND_PALETTE_INPUT:`command-palette-input`,COMMAND_PALETTE_RESULTS:`command-palette-results`,NAV_L1_HOME:`nav-l1-home`,NAV_L1_JOURNAL:`nav-l1-journal`,NAV_L1_LIBRARY:`nav-l1-library`,NAV_L1_DASHBOARDS:`nav-l1-dashboards`,NAV_L1_SEARCH:`nav-l1-search`,MOBILE_NAV_OPEN:`mobile-nav-open`,MOBILE_NAV_DRAWER:`mobile-nav-drawer`,MOBILE_NAV_CLOSE:`mobile-nav-close`,DRAWER_APPLY_BTN:`drawer-apply-btn`,NEW_ENTRY_PRIMARY:`new-entry-primary`,STREAM_VIEW:`queriable-stream-view`,STREAM_FEED_ITEM:`stream-feed-item`,STREAM_QUERY_BAR:`stream-query-bar`,PROPERTY_TABLE:`property-table`,LIBRARY_ROW_NOTEBOOK:`library-row-notebook`,NOTEBOOKS_CREATE_BUTTON:`notebooks-create-button`,ENTRY_CREATE_TITLE_INPUT:`entry-create-title-input`,ENTRY_CREATE_DATE_INPUT:`entry-create-date-input`,ENTRY_CREATE_SUBMIT_BTN:`entry-create-submit-btn`,ENTRY_CREATE_CANCEL_BTN:`entry-create-cancel-btn`,NOTEBOOK_DIALOG_NAME_INPUT:`notebook-dialog-name-input`,NOTEBOOK_DIALOG_SAVE_BTN:`notebook-dialog-save-btn`,PLACEMENT_DIALOG:`placement-dialog`,PLACEMENT_DATE_INPUT:`placement-date-input`,PLACEMENT_SLUG_INPUT:`placement-slug-input`,PLACEMENT_ADD_BTN:`placement-add-btn`,PLACEMENT_MOVE_BTN:`placement-move-btn`,PLACEMENT_REMOVE_BTN:`placement-remove-btn`,PLACEMENT_CLONE_SUBMIT_BTN:`placement-clone-submit-btn`,PUBLICATION_PILL:`publication-pill`,PUBLICATION_PILL_POPOVER:`publication-pill-popover`,PROMOTION_PROVENANCE_ROW:`promotion-provenance-row`,PROMOTION_CLONE_READONLY_BTN:`promotion-clone-readonly-btn`,PROMOTION_NEW_NOTEBOOK_INPUT:`promotion-new-notebook-input`,PROMOTION_NEW_NOTEBOOK_SUBMIT:`promotion-new-notebook-submit`,PUBLICATION_NOTEBOOK_PUBLIC_TOGGLE:`publication-notebook-public-toggle`,PUBLICATION_EXPORT_REPO_ZIP_BTN:`publication-export-repo-zip-btn`,PROPERTY_OVERRIDE_SHEET:`property-override-sheet`,PROPERTY_OVERRIDE_EDITOR:`property-override-editor`,PROPERTY_OVERRIDE_SAVE_BTN:`property-override-save-btn`,PROPERTY_OVERRIDE_CANCEL_BTN:`property-override-cancel-btn`,TIMER_FULLSCREEN_OVERLAY:`timer-fullscreen-overlay`,TIMER_DETAIL_SURFACE:`timer-detail-surface`,SYNC_SUBSCRIBED_ONLY_TOGGLE:`sync-subscribed-only-toggle`},qU=new Map,JU=new Map;function YU(e){JU.set(e.runtimeId,e)}function XU(e){let t=JU.get(e);return t&&JU.delete(e),t}function ZU(e){for(let t of JU.values())if(t.journalDate===e)return t}function QU(e){JU.delete(e)}var $U={status:`idle`,elapsedTime:0,stepCount:0,startTime:null},eW=Le(e=>({runtime:null,activeNoteId:null,subscriptionManager:null,execution:$U,userOutputOverrides:new Map,setRuntime:(t,n=null)=>e(()=>({runtime:t,activeNoteId:n,...t===null?{execution:$U}:{}})),setSubscriptionManager:t=>e({subscriptionManager:t}),setExecution:t=>e(e=>({execution:{...e.execution,...t}})),resetExecution:()=>e({execution:$U}),setUserOverride:(t,n)=>e(e=>{let r=new Map(e.userOutputOverrides),i=n instanceof Ia?n:Ia.from(n,t);return r.set(t,i),{userOutputOverrides:r}}),clearUserOverride:t=>e(e=>{if(!e.userOutputOverrides.has(t))return e;let n=new Map(e.userOutputOverrides);return n.delete(t),{userOutputOverrides:n}})})),tW=yb({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)}),nW={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}},rW={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}},iW=class{async getAllEfforts(){let e=oN();return e.isInitialized()||await nN(e),[...e.list()]}},aW=new Av,oW={events:[],notes:[]},sW={events:[],notes:[]};aW.set(`@session`,oW),aW.set(`@today`,sW);function cW(){let{runtime:e,activeNoteId:t}=eW.getState(),n=e?.getOutputStatements()??[];if(oW.notes=[],n.length===0)return oW.events=[],oW;let r=t??``;return oW.events=Hv(n.map(km),{noteId:r,resultId:`live:${r||`session`}`,origin:`playground`}),oW}function lW(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 iv(e.date??e.createdAt,r)}async function uW(e,t){let n=iv(e.instant,e.timeZone),r=lv(n,e.timeZone),i=lv(av(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)lW(t,d.get(t.id)??[],u,e.timeZone)===n&&f.push(t);t===pW&&(sW.events=l,sW.notes=f,cW())}var dW=null,fW=null,pW=0,mW=!1,hW=new Set;function gW(){for(let e of hW)e()}function _W(e,t){fW=t;let n=++pW;return dW=uW(e,n),dW.then(()=>{n===pW&&vW()},()=>{n===pW&&vW()}),dW}function vW(){mW=!0,gW()}function yW(){let e=Q_(),t=iv(e.instant,e.timeZone);return!dW||fW!==t?_W(e,t):dW}function bW(){mW=!1;let e=Q_();return _W(e,iv(e.instant,e.timeZone))}function xW(){return mW}function SW(e){return hW.add(e),()=>{hW.delete(e)}}var CW=class extends Iy{async runQuery(e,t){return await yW(),super.runQuery(e,t)}async runPipeline(e,t){return await yW(),super.runPipeline(e,t)}async runFind(e,t){return await yW(),super.runFind(e,t)}async runRows(e,t){return await yW(),super.runRows(e,t)}async run(e,t){return await yW(),super.run(e,t)}};function wW(){return new CW({eventStore:tW,noteStore:nW,blockStore:rW,effortStore:new iW,blockEffortsStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`block_efforts`,e,t)},blockEquipmentStore:{getAllFromIndex:(e,t)=>Z.getAllFromIndex(`block_equipment`,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`?cW():aW.getDataset(e)},feedCatalogStore:uL,isNotebookSubscribed:(e,t)=>yI(e,t)})}var TW=wW();function EW(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?FV(a):`${t===`segment`?`Segment`:`Event`} ${n+1}`,date:typeof e.date==`string`?e.date:null,subtitle:o.length>0?o.join(` • `):void 0}}function DW(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 OW(e,t,n){e&&e({selected:Math.max(t?.selected??0,n.length),matched:n.length})}function kW(e){return typeof e==`object`&&!!e&&`runFind`in e}var AW=new class e{customService;noteTitleResolver;noteTagsResolver;noteBlockInfo;constructor(e){kW(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?XC(t.title)||ZC(t.rawContent??``):void 0}catch{return}}}get service(){return this.customService??TW}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.kind===`feed`||r.kind===`notebook`||r.isRemotePreview||(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=Ka(e?.links??[],e?.pages??[]);t.placements=n;let i=qa(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,n){let r=typeof e==`string`?X(e):e;if(!r||r.error)return[];if(Ah(r)){if(r.target===`effort`){let e=this.service.runFindEffort?await this.service.runFindEffort(r):await this.service.runFind(r),n=new Map(e.notes.map(e=>[e.id,e])),i=(e.efforts??[]).map(e=>e.ownerNoteId&&n.has(e.ownerNoteId)?OV(n.get(e.ownerNoteId)):RV(e));return OW(t,e.stages,i),i}if(r.target===`block`){let e=await this.service.runFind(r),n=e.blocks.map(PV);return await this.hydrateEntries(n,!0),OW(t,e.stages,n),n}if(r.target===`session`){let e=await this.service.runFind(r);t?.(e.stages);let n;if(this.noteTitleResolver&&e.runs){n=new Map;for(let t of e.runs)if(!n.has(t.noteId)){let e=await this.noteTitleResolver(t.noteId);e&&n.set(t.noteId,e)}}let i=UV(e,{noteTitles:n});return OW(t,e.stages,i),i}if(r.target===`segment`||r.target===`event`){let e=r.target,n=await this.service.runFind(r),i=(n.table?.rows??[]).map((t,n)=>EW(t,e,n));return OW(t,n.stages,i),i}let e=await this.service.runFind(r,n?.notebookPlane?{notebookPlane:n.notebookPlane}:void 0),i=e.notes.map(OV);if(this.noteTagsResolver?(await this.hydrateEntries(i,!1),await Promise.all(i.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(i,!0),OW(t,e.stages,i),this.noteBlockInfo)for(let t=0;t<i.length;t++){let n=i[t],r=e.notes[t];n.excerpt=NV(r.rawContent);try{co(r.rawContent,r.blocks,r.sourceRevision)}catch{continue}let a=Object.values(r.blocks).sort((e,t)=>e.from-t.from).find(e=>e.kind===`wod`),o=a&&ao(r.rawContent).find(e=>e.from===a.from&&e.scriptBlock);if(a&&o?.scriptBlock){let e=o.scriptBlock.content,t=Wa(e);n.wodBlock={blockId:a.id,blockVersion:a.version,blockContentId:t,content:e},n.blockContentId=t}}return i}if(r.family===`aggregate`){if(!this.service.runQuery)return[];let e=await this.service.runQuery(r.raw),n=DW(e);return t?.({selected:e.stages?.selected??n.length,matched:n.length}),n}return[]}};async function jW(e,t=AW,n){return t.query(e,n)}function MW(e){return e?e.map(e=>e.kind===`wql`?`${e.id}|${e.query}|${e.limit??``}`:`s:${e.id}`).join(`;`):``}async function NW(e){try{let t=(await jW(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 PW(e){let t=MW(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`?NW(e):Promise.resolve(e))).then(e=>{t||i(e)}),()=>{t=!0}},[t]),r}function FW(){let[e]=j(`h`,{shallow:!0}),[t]=j(`s`,{shallow:!0}),{navState:n}=CR(),r=n.activeL3Id??``;return e||t||r||``}function IW({entry:e,active:t,onActivate:n,onFilter:r}){let i=e.onRun,a=e.filterTo,o=e.filterLabel??`Filter notes by ${e.label}`,s=e.runIcon===`link`?`View workout`:e.runIcon===`stop`?`Stop workout`:e.runIcon===`edit`?`Edit note`:`Start workout`,c=(0,G.jsxs)(`button`,{type:`button`,onClick:()=>n(e),className:K(`flex min-w-0 flex-1 items-center gap-2 rounded-lg px-2 py-1.5 text-left transition-colors`,!i&&!a&&`w-full`,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 rounded bg-muted px-1.5 py-0.5 font-mono text-[9.5px] uppercase tracking-wide text-muted-foreground/80`,children:e.badge})]});return!i&&!a?c:(0,G.jsxs)(`div`,{className:`group flex w-full items-center gap-0.5`,children:[c,a&&(0,G.jsx)(`button`,{type:`button`,"aria-label":o,title:o,"data-testid":`menu-filter-${e.id}`,onClick:()=>r(a),className:`flex size-7 max-lg:size-9 shrink-0 items-center justify-center rounded-md text-muted-foreground/55 transition-colors hover:bg-muted hover:text-foreground`,children:(0,G.jsx)(mr,{className:`size-3.5`})}),i&&(0,G.jsx)(`button`,{type:`button`,"aria-label":s,title:s,onClick:()=>e.onRun?.(),className:`flex size-6 max-lg:size-8 shrink-0 items-center justify-center rounded text-primary opacity-70 lg:opacity-0 transition-all group-hover:opacity-100 hover:bg-primary/10`,children:e.runIcon===`link`?(0,G.jsx)(Vn,{className:`size-3.5`}):e.runIcon===`stop`?(0,G.jsx)(Et,{className:`size-3.5`}):e.runIcon===`edit`?(0,G.jsx)(hr,{className:`size-3.5`}):(0,G.jsx)(on,{className:`size-3.5`})})]})}function LW({entries:e,activeId:t,onSection:n}){let r=f(),{scrollToSection:i}=CR(),a=qz(),o=e=>{if(a(),n)return n(e);if(e.onSelect)return e.onSelect();if(e.onRun)return e.onRun();if(e.to)return r(e.to);if(e.sectionId)return i(e.sectionId)},s=e=>{a(),r(e)};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)(LW,{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)(IW,{entry:e,active:t!=null&&e.sectionId===t,onActivate:o,onFilter:s},e.id))})}function RW(){let e=f(),{scrollToSection:t}=CR();return{navigate:(t,n)=>e(t,{replace:n?.replace}),setQueryParam:(e,t)=>{},scrollToSection:t}}function zW(){let e=RW(),t=qz();return n=>{t(),XV(n.action,e)}}function BW(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 VW({items:e}){let{navState:t}=CR(),n=Hr(),r=zW();return(0,G.jsx)(nB,{children:e.map(e=>{let i=BW(e,t,n);return e.children&&e.children.length>0?(0,G.jsx)(tH,{title:e.label,count:e.children.length,defaultOpen:e.children.some(e=>BW(e,t,n)),collapsible:e.id!==`syntax-group`,children:e.children.map(e=>{let i=BW(e,t,n);return(0,G.jsxs)(iB,{onClick:()=>r(e),current:i,children:[e.icon&&(0,G.jsx)(e.icon,{"data-slot":`icon`}),(0,G.jsx)(aB,{children:e.label})]},e.id)})},e.id):(0,G.jsxs)(`div`,{className:`group relative flex items-center`,children:[(0,G.jsxs)(iB,{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)(aB,{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)(lt,{className:`size-3.5`})})]},e.id)})})}function HW({navSpec:e}){let{tree:t,navState:n,dispatch:r,contextNav:i}=CR(),a=Hr(),o=PW(e),s=(t??[]).find(e=>e?.id===n.activeL1Id)??null,c=i?.pathname===a.pathname?i:null;return(0,G.jsxs)($z,{children:[(0,G.jsx)(eB,{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)(tB,{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)(VW,{items:s.children})}):null})(),c?(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(LW,{entries:c.spec})}):o.length>0&&(0,G.jsx)(`div`,{className:`pt-1`,children:(0,G.jsx)(LW,{entries:o})})]})]})}var UW=`0.53.2204`,WW=`https://github.com/bitcobblers/wod-wiki/releases`;function GW(e){return/-pr\.\d+$/.test(e)?WW:`${WW}/tag/v${e}`}function KW({onSearch:e,onCreate:t}){let{tree:n,navState:r,dispatch:i}=CR(),a=f(),o=Hr(),s=qz(),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`,"data-testid":KU.NAV_L1_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)(y,{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=BW(e,r,o);return(0,G.jsxs)(`button`,{type:`button`,onClick:()=>{s(),i({type:`SET_ACTIVE_L1`,id:e.id}),XV(e.action,c)},title:e.label,"aria-label":e.label,"aria-current":n?`page`:void 0,"data-testid":`nav-l1-${e.id}`,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`,"data-testid":KU.NAV_L1_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)(Gn,{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:nU,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)(rU,{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)($t,{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)(ke,{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`,UW,`)`]})]})]})}function qW({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:()=>XV(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 JW=class e{now;name=`tick`;timestamp;data;static _counter=0;constructor(t,n=fu){this.now=n;let r=this.now.nowMs();e._counter++,this.timestamp=new Date(r+e._counter),this.data=t}},YW=20,XW=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 JW(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()??fu.nowMs();u.current=i-r,r===0&&c(i),l.current=setInterval(f,YW)},[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()??fu.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])};function ZW(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 QW(e){return ZW(e,`round`)}function $W(e){return ZW(e,`display`)}function eG(e){let t=QW(e),n=$W(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 tG=(0,W.createContext)(void 0),nG=({runtime:e,children:t})=>(0,G.jsx)(tG.Provider,{value:e,children:t});function rG(){let e=(0,W.useContext)(tG);if(!e)throw Error(`useScriptRuntime must be used within ScriptRuntimeProvider`);return e}function iG(e){let t=rG(),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 aG(e){let t=rG(),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 oG(){let e=rG(),[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 sG(){return oG().blocks}function cG(){let e=sG(),[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=Ia.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 lG(){let e=sG(),[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 uG(){let e=lG();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 dG(){let e=lG(),t=uG();return(0,W.useMemo)(()=>t?e.filter(e=>e.block!==t.block):[],[e,t])}function fG(){let e=sG(),[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 pG(){let e=sG(),[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 mG(e){let t=rG(),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)(ed()),l=(0,W.useMemo)(()=>a.length===0?0:Am(a,s),[a,s]);return(0,W.useEffect)(()=>{if(!o)return;let e,t=()=>{c(ed()),e=requestAnimationFrame(t)};return t(),()=>cancelAnimationFrame(e)},[o]),{elapsed:l,isRunning:o,timeSpans:a}}var hG=(0,W.createContext)(void 0),gG=(0,W.createContext)(null),_G=({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),eW.getState().setSubscriptionManager(null),eW.getState().setRuntime(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 bm(i);e.add(new ym({id:`local`})),f.current=e,a(e),eW.getState().setRuntime(i),eW.getState().setSubscriptionManager(e)}else f.current=null,a(null),eW.getState().setRuntime(null),eW.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)(hG.Provider,{value:g,children:(0,G.jsx)(gG.Provider,{value:i,children:t})})};function vG({factory:e,children:t}){return(0,G.jsx)(_G,{factory:e,children:t})}var yG=`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`,bG=`flex flex-col flex-1 min-w-0 xl:max-w-[984px] 2xl:max-w-none min-h-screen lg:rounded-[2.5rem]`,xG=(0,W.createContext)(null);function SG({value:e,children:t}){return(0,G.jsx)(xG.Provider,{value:e,children:t})}function CG(){let e=(0,W.useContext)(xG),{dispatch:t,streamControls:n,analyticsControls:r,l3Items:i,l3Actions:a=[],secondarySpec:o}=CR(),s=(0,W.useMemo)(()=>{let e=X(n?.query??``);return!e.error&&Ah(e)&&e.filters.length>0},[n?.query]);return e||{railHasContent:!!(o&&o.length>0||i&&i.length>0||a&&a.length>0||n||r),hasAppliedFilters:s,openRightDrawer:()=>t({type:`SET_RIGHT_DRAWER`,open:!0})}}function wG(){let{railHasContent:e,hasAppliedFilters:t,openRightDrawer:n}=CG();return e?(0,G.jsxs)(q,{type:`button`,variant:`ghost`,size:`icon`,onClick:n,"aria-label":`Page options`,title:`Page options (⌘.)`,"data-testid":`l3-drawer-trigger`,className:`relative hidden lg:inline-flex 2xl:hidden text-muted-foreground hover:text-foreground`,children:[(0,G.jsx)(An,{className:`size-4`,"aria-hidden":`true`}),t&&(0,G.jsx)(`span`,{"data-testid":`header-filters-active`,className:`absolute top-1.5 right-1.5 size-2 rounded-full bg-amber-500`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Page options`})]}):null}function TG({id:e,title:t,subtitle:n,titleAccessory:r,actions:i,queryBar:a,subheader:o,titleTestId:s,className:c}){let{railHasContent:l}=CG(),u=!!(i||l);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}),u&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 sm:gap-2 shrink-0 ml-auto`,children:[i,(0,G.jsx)(wG,{})]})]}),o&&(0,G.jsx)(`div`,{className:`bg-background/40`,children:o})]})}function EG({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 DG({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]=j(`s`,{defaultValue:o??a[0]?.id??``,shallow:!0,history:`replace`}),[f,p]=(0,W.useState)(c?.[0]?.id??``);if(EG({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}),EG({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)(qW,{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)(vG,{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(bG,yG),children:[(0,G.jsx)(TG,{title:e,titleAccessory:t,actions:n,subheader:r}),(0,G.jsx)(`div`,{className:`flex-1`,children:i})]})})}var OG=`[data-page-sticky-boundary="true"]`,kG=0;function AG(e,t=kG){if(typeof document>`u`)return e;let n=Array.from(document.querySelectorAll(OG)).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 jG(e,t=kG){let[n,r]=(0,W.useState)(e);return(0,W.useEffect)(()=>{let n=0,i=()=>r(AG(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(OG).forEach(e=>o?.observe(e));let s=typeof MutationObserver>`u`?void 0:new MutationObserver(()=>{document.querySelectorAll(OG).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 MG({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 NG=(0,W.createContext)(null),PG=(0,W.createContext)(null);function FG({children:e}){let[t,n]=(0,W.useState)(null);return(0,G.jsx)(PG.Provider,{value:n,children:(0,G.jsx)(NG.Provider,{value:t,children:e})})}function IG({className:e}){let t=(0,W.useContext)(PG);return(0,G.jsx)(`div`,{ref:t,className:e,"data-testid":`mobile-query-slot`})}function LG(){return(0,W.useContext)(NG)}function RG({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(bG,yG),children:[(0,G.jsx)(TG,{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 zG(e){return e.map(e=>{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 BG=W.createContext(null);function VG(){let e=W.useContext(BG);if(!e)throw Error(`DropdownMenu components must be used inside a DropdownMenu`);return e}function HG(){let e=W.useContext(BG);return W.useCallback(()=>{e?.setIsOpen(!1)},[e])}var UG=({children:e,open:t,onOpenChange:n})=>{let r=W.useContext(BG),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)(BG.Provider,{value:v,children:(0,G.jsx)(`div`,{ref:c,className:`relative inline-block`,children:e})})},WG=W.forwardRef(({className:e,children:t,asChild:n,...r},i)=>{let{isOpen:a,setIsOpen:o}=VG(),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})});WG.displayName=`DropdownMenuTrigger`;var GG=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}=VG(),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%)`),NE.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)});GG.displayName=`DropdownMenuContent`;var KG=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}=VG(),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})});KG.displayName=`DropdownMenuItem`;var qG=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}));qG.displayName=`DropdownMenuLabel`;var JG=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:K(`-mx-1 my-1 h-px bg-muted`,e),...t}));JG.displayName=`DropdownMenuSeparator`;var YG=[{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`}],XG=[`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`,`Su`];function ZG(e,t){return new Date(e,t+1,0).getDate()}function QG(e,t){let n=new Date(e,t,1).getDay();return n===0?6:n-1}function $G(e,t){let n=X(e);if(n.error)return e;if(!t||t===`all`)return Cg({...n,window:void 0});let r=X(`:note ${t}`);return r.error||r.family!==`find`||!r.window?e:Cg({...n,window:r.window})}function eK(e){let t=X(e);return t.error||t.family===`pipeline`?null:`window`in t?t.window??null:null}function tK({query:e,onQueryChange:t,highlightDates:n=new Set,className:r}){let i=(0,W.useMemo)(()=>eK(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.kind===`param`?`last $${i.param}${i.unit?` ${i.unit}`:``}`:i.end?`from ${i.start} to ${i.end}`:`from ${i.start}`:`All time`,[i]),f=(0,W.useMemo)(()=>{if(!i||i.kind===`param`)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:Pz(t),end:Pz(e)}},[i]),p=(0,W.useMemo)(()=>{let e=ZG(l,u),t=QG(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]),h=n=>{if(!a)o(n),t($G(e,`from ${n} to ${n}`));else{let[r,i]=a<=n?[a,n]:[n,a];o(null),t($G(e,`from ${r} to ${i}`))}},g=e=>{e.stopPropagation(),c(new Date(l,u-1,1))},_=e=>{e.stopPropagation(),c(new Date(l,u+1,1))},v=s.toLocaleDateString(`en-US`,{month:`short`,year:`numeric`}),y=Pz(new Date);return(0,G.jsxs)(`div`,{className:K(`relative inline-flex items-center`,r),children:[(0,G.jsxs)(UG,{children:[(0,G.jsx)(WG,{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)(rr,{className:`size-3.5 text-muted-foreground`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`font-mono text-xs`,children:d}),(0,G.jsx)(ht,{className:`size-3 text-muted-foreground`,"aria-hidden":`true`})]})}),(0,G.jsxs)(GG,{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:YG.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($G(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:g,"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)(m,{className:`size-4`})}),(0,G.jsx)(`span`,{className:`text-xs font-semibold text-foreground`,children:v}),(0,G.jsx)(`button`,{type:`button`,onClick:_,"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)(Wr,{className:`size-4`})})]}),(0,G.jsx)(`div`,{className:`mb-1 grid grid-cols-7 gap-1`,children:XG.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===y,d=n.has(r);return(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wql-calendar-day-${r}`,onClick:()=>h(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($G(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)(lr,{className:`size-3.5`})})]})}function nK({onOpen:e}){let t=HG(),n=qz();return(0,G.jsxs)(q,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{t(),n(),e()},"data-testid":`query-settings-trigger`,className:`w-full justify-start gap-2 rounded-lg text-xs`,children:[(0,G.jsx)(An,{className:`size-3.5 shrink-0`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:`Query settings`})]})}function rK(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 iK=[{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??``)}],aK={note:iK,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?``:IV(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?``:IV(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?``:IV(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 oK(e){return aK[e]??iK}function sK(e){return oK(e).filter(e=>e.defaultVisible).map(e=>e.id)}var cK=[4,8,16],lK=`sum:totalVolume{}`;function uK(e){let t=Number.parseInt(e??``,10);return cK.includes(t)?t:16}function dK(e={}){let{defaultQuery:t=lK,runOnLanding:n=!1}=e,[r,i]=B(),a=r.get(`q`)??``,o=uK(r.get(`weeks`)),[s,c]=(0,W.useState)(()=>a&&!X(a).error?a:t),[l,u]=(0,W.useState)(a||(n?t:``)),d=(0,W.useRef)(s);d.current=s;let f=(0,W.useRef)(r);f.current=r;let p=(0,W.useRef)(!0),m=(0,W.useRef)(a);m.current=a;let h=(0,W.useRef)(a);(0,W.useEffect)(()=>{a!==h.current&&(h.current=a,d.current!==a&&(p.current=!0,c(a&&!X(a).error?a:t),u(a||(n?t:``))))},[a,t,n]);let g=(0,W.useRef)(t);return(0,W.useEffect)(()=>{t!==g.current&&(g.current=t,!a&&(c(t),u(n?t:``)))},[t,a,n]),{draft:s,setDraft:(0,W.useCallback)(e=>{if(e===d.current)return;let t=new URLSearchParams(f.current);t.set(`q`,e),i(t,{replace:!p.current}),p.current=!1,c(e)},[i]),submitted:l,submit:(0,W.useCallback)(e=>{let t=e??d.current;if(X(t).error)return;if(p.current&&m.current===t){u(t);return}let n=new URLSearchParams(f.current);n.set(`q`,t),i(n,{replace:!0}),p.current=!0,u(t)},[i]),weeks:o,setWeeks:(0,W.useCallback)(e=>{let t=new URLSearchParams(f.current);t.set(`weeks`,String(e)),i(t,{replace:!0})},[i])}}var fK=[{id:`cards`,label:`Cards`,icon:Cn},{id:`rows`,label:`Rows`,icon:Rr},{id:`feed`,label:`Feed`,icon:Je},{id:`agenda`,label:`Agenda`,icon:Ot},{id:`planner`,label:`Planner`,icon:w}];function pK({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)(nK,{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)(tK,{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:fK.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:oK(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)(jH,{})]})}function mK({controls:e}){let{unit:t,setUnit:n}=UT(),r=e.showRange!==!1,i=e.showUnits!==!1,a=e.weeks!==void 0&&e.onWeeksChange!==void 0;return(0,G.jsxs)(`div`,{className:`flex flex-col gap-3`,"data-testid":`l3-analytics-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)(nK,{onOpen:e.onOpenQuerySettings})]}),r&&(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 range`}),a?(0,G.jsx)(`div`,{className:`flex flex-col gap-0.5`,"data-testid":`l3-range-options`,children:cK.map(t=>{let n=e.weeks===t;return(0,G.jsxs)(`button`,{type:`button`,"aria-pressed":n,onClick:()=>e.onWeeksChange?.(t),"data-testid":`l3-range-${t}w`,className:K(`flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs transition-colors`,n?`bg-primary/10 font-semibold text-primary`:`text-foreground/80 hover:bg-muted/60 hover:text-foreground`),children:[(0,G.jsx)(`span`,{className:`w-3.5 text-primary`,children:n?(0,G.jsx)(re,{className:`size-3.5`,"aria-hidden":`true`}):null}),(0,G.jsxs)(`span`,{children:[`Past `,t,` weeks`]})]},t)})}):(0,G.jsx)(PT,{})]}),i&&(0,G.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,G.jsxs)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:[`Units`,e.unitForced?` — pinned by query`:``]}),(0,G.jsx)(`div`,{className:`grid grid-cols-2 gap-1`,"data-testid":`l3-unit-options`,children:[`kg`,`lb`].map(r=>{let i=t===r;return(0,G.jsx)(`button`,{type:`button`,disabled:!!e.unitForced,"aria-pressed":i,onClick:()=>n(r),"data-testid":`l3-unit-${r}`,className:K(`flex min-h-8 items-center justify-center rounded-md border px-2 py-1 text-xs font-medium transition-colors`,e.unitForced?`border-transparent text-muted-foreground/50 cursor-not-allowed`:i?`border-border/80 bg-card text-foreground shadow-sm`:`border-transparent text-muted-foreground hover:text-foreground`),children:r},r)})})]})]})}function hK({action:e}){let t=qz(),n=e.icon;return(0,G.jsxs)(`button`,{type:`button`,disabled:e.disabled,"data-testid":e.testId,onClick:()=>{e.disabled||(t(),e.onRun())},className:K(`flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-[13px] transition-colors`,e.disabled?`cursor-not-allowed text-muted-foreground/45`:`text-muted-foreground hover:bg-muted/60 hover:text-foreground`),children:[n&&(0,G.jsx)(n,{className:`size-4 shrink-0`}),(0,G.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.label,children:e.label})]})}function gK({spec:e,pageAction:t}){let{l3Items:n,l3Actions:r=[],streamControls:i,analyticsControls:a}=CR(),o=PW(e),s=(0,W.useMemo)(()=>zG(n),[n]),c=FW(),l=!!(i||a),u=o.length>0||s.length>0,d=r.length>0||!!t;return!l&&!u&&!d?null:(0,G.jsxs)(`div`,{className:`flex flex-col px-3 py-4 gap-4`,children:[l&&(0,G.jsxs)(`div`,{className:K(`flex flex-col gap-4`,(u||d)&&`pb-3 border-b border-border/50`),children:[i&&(0,G.jsx)(pK,{streamControls:i}),a&&(0,G.jsx)(mK,{controls:a})]}),o.length>0&&(0,G.jsx)(LW,{entries:o,activeId:c}),s.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)(LW,{entries:s,activeId:c})]}),d&&(0,G.jsxs)(`div`,{"data-testid":`l3-actions`,className:K(`flex flex-col gap-0.5`,u&&`pt-2 border-t border-border/50`),children:[(0,G.jsx)(`div`,{className:`px-2 pb-1 pt-1 text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Actions`}),r.map(e=>(0,G.jsx)(hK,{action:e},e.id)),t&&(0,G.jsx)(`div`,{className:K(r.length>0&&`pt-1`),children:t})]})]})}var _K=1023;function vK(e){return e===`/`?`canvas:home`:`canvas:${e.replace(/^\//,``)}`}function yK(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}=Eo(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 bK(e){return(e.examples??[]).length>0||e.commands.some(e=>e.pipeline.length>0)}function xK(e){let t=new Map,n=null;for(let r of e)bK(r)&&(n=r),t.set(r.id,n);return t}function SK(){let[e,t]=(0,W.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: ${_K}px)`).matches);return(0,W.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: ${_K}px)`),n=e=>t(e.matches);return e.addEventListener(`change`,n),()=>e.removeEventListener(`change`,n)},[]),e}var CK=`wodwiki:fabAlignment`,wK=[{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 TK(){try{return EK(localStorage.getItem(CK))}catch{return}}function EK(e){return e===`right`||e===`left`?e:void 0}var DK=typeof window>`u`?void 0:TK();typeof window<`u`&&window.addEventListener(`storage`,e=>{e.key===CK&&(DK=EK(e.newValue))});function OK(e){DK=e;try{e===`right`?localStorage.removeItem(CK):localStorage.setItem(CK,e)}catch{}window.dispatchEvent(new StorageEvent(`storage`,{key:CK,newValue:e}))}function kK(){let[e,t]=(0,W.useState)(()=>DK??`right`);return(0,W.useEffect)(()=>{let e=e=>{e.key===CK&&t(EK(e.newValue)??`right`)};return window.addEventListener(`storage`,e),()=>window.removeEventListener(`storage`,e)},[]),[e,OK]}function AK({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)(Gn,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Search`})]})}var jK=(0,W.createContext)(null),MK=(0,W.createContext)(!1),NK=(0,W.createContext)(null);function PK(){return(0,W.useContext)(jK)!==null}function FK({primary:e,navbar:t,children:n,label:r,fallback:i=!1}){let a=(0,W.useContext)(jK),o=(0,W.useContext)(MK),s=SK(),c=(0,W.useId)(),l=a!==null&&!o&&s&&!i,u=a!==null&&i,d=W.Children.toArray(n).length>0,f=(0,W.useMemo)(()=>(0,G.jsx)(MK.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)(MK.Provider,{value:!0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t,e,n]})})}function IK({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)(jK.Provider,{value:o,children:(0,G.jsxs)(NK.Provider,{value:s,children:[t,(0,G.jsx)(RK,{registrations:n,onSearch:e})]})})}function LK(){let e=(0,W.useContext)(NK);return e?(0,G.jsx)(G.Fragment,{children:e}):null}function RK({registrations:e,onSearch:t}){let n=SK(),[r]=kK(),i=FE(),[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)(AK,{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)(Kz,{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)(me,{className:`size-6`}):(0,G.jsx)(nee,{className:`size-6`}),(0,G.jsx)(`span`,{className:`sr-only`,children:d?.label??f?.label??`Page options`})]})]})}function zK(){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 BK(){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 VK(){let{tree:e,navState:t,contextNav:n}=CR(),r=Hr(),i=qz();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,"data-testid":KU.DRAWER_APPLY_BTN,className:`h-11 w-full rounded-lg bg-primary text-sm font-medium text-primary-foreground`,children:`Apply`})})}function HK({open:e,close:t,onSearch:n,children:r}){return(0,G.jsxs)(_,{open:e,onClose:t,className:`fixed inset-0 z-50 lg:hidden`,children:[(0,G.jsx)(Mr,{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)(rt,{transition:!0,"data-testid":KU.MOBILE_NAV_DRAWER,className:`fixed inset-y-0 left-0 w-full transition duration-300 ease-out data-closed:-translate-x-full`,children:(0,G.jsx)(Kz,{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)(KW,{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)(kn,{as:GU,"aria-label":`Close navigation`,title:`Close navigation`,"data-testid":KU.MOBILE_NAV_CLOSE,children:[(0,G.jsx)(BK,{}),(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)(VK,{})]})]})})})]})}function UK({open:e,close:t,children:n}){return(0,W.useEffect)(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&(e.stopPropagation(),t())};return window.addEventListener(`keydown`,n),()=>window.removeEventListener(`keydown`,n)},[e,t]),e?(0,G.jsxs)(`div`,{className:`fixed inset-0 z-50 2xl:hidden`,"data-testid":`l3-right-drawer`,children:[(0,G.jsx)(`div`,{"aria-hidden":`true`,onClick:t,className:`fixed inset-0 bg-black/25 dark:bg-black/40 transition-opacity`}),(0,G.jsx)(`div`,{role:`region`,"aria-label":`Page options panel`,className:`fixed inset-y-0 right-0 flex h-full min-h-0 w-full lg:w-80 flex-col bg-card lg:border-l lg:border-border/60 lg:shadow-2xl animate-in slide-in-from-right duration-200`,children:(0,G.jsxs)(Kz,{close:t,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/40 px-4 py-2.5`,children:[(0,G.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-[0.14em] text-muted-foreground`,children:`Page options`}),(0,G.jsxs)(GU,{onClick:t,"aria-label":`Close page options`,title:`Close page options`,children:[(0,G.jsx)(BK,{}),(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 lg:hidden`,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`})})]})})]}):null}function WK({navbar:e,sidebar:t,onSearch:n,secondary:r,pageAction:i,hideDesktopSidebar:a,children:o}){let[s,c]=(0,W.useState)(!1),{navState:l,dispatch:u,streamControls:d,analyticsControls:f,l3Items:p,l3Actions:m=[]}=CR(),h=!!l?.rightDrawerOpen,g=(0,W.useCallback)(e=>u({type:`SET_RIGHT_DRAWER`,open:e}),[u]),_=(0,W.useCallback)(()=>g(!0),[g]),v=(0,W.useCallback)(()=>g(!1),[g]),y=!!(r&&r.length>0||p&&p.length>0||m&&m.length>0||d||f||i),b=(0,W.useMemo)(()=>{let e=X(d?.query??``);return!e.error&&Ah(e)&&e.filters.length>0},[d?.query]),x=(0,W.useMemo)(()=>({railHasContent:y,hasAppliedFilters:b,openRightDrawer:_}),[y,b,_]);return(0,W.useEffect)(()=>{if(!s&&!h)return;let e=()=>{c(!1),g(!1)};return window.addEventListener(`popstate`,e),()=>window.removeEventListener(`popstate`,e)},[s,h,g]),(0,W.useEffect)(()=>{if(!y)return;let e=e=>{if((e.metaKey||e.ctrlKey)&&e.key===`.`&&!e.shiftKey&&!e.altKey){if(window.innerWidth>=1520)return;e.preventDefault(),g(!h)}};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y,h,g]),(0,G.jsx)(SG,{value:x,children:(0,G.jsx)(FG,{children:(0,G.jsx)(IK,{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)(KW,{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)(HK,{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)(GU,{onClick:()=>c(!0),"aria-label":`Open navigation`,title:`Open navigation`,"data-testid":KU.MOBILE_NAV_OPEN,children:[(0,G.jsx)(zK,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Open navigation`})]})}),(0,G.jsx)(`div`,{className:`min-w-0 flex-1`,children:e}),y&&(0,G.jsx)(`div`,{className:`py-2.5 shrink-0`,children:(0,G.jsxs)(GU,{onClick:_,"aria-label":`Open page options`,title:`Open page options`,children:[(0,G.jsxs)(`span`,{className:`relative inline-flex`,children:[(0,G.jsx)(An,{className:`size-5`}),b&&(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)(GK,{})]})]}),(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)(gK,{spec:r,pageAction:i})}),(0,G.jsx)(UK,{open:h,close:v,children:(0,G.jsx)(gK,{spec:r,pageAction:i})})]})})})})})}function GK(){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)(IG,{className:`flex w-full min-w-0`})})}),(0,G.jsx)(`div`,{className:`lg:hidden`,"aria-hidden":`true`,style:{height:t}})]})}function KK(e){let t=e.indexOf(`markdown`);return t!==-1&&e.length>t+2?e[t+2]:`General`}function qK(e){return String(Ao(Eo(e).meta,`search`)??``).toLowerCase()===`hidden`}function JK(e){let t=Ao(Eo(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 YK(e){return Object.entries(e).map(([e,t])=>{let n=e.split(`/`),r=n[n.length-1].replace(`.md`,``),i=t,a=Ao(Eo(i).meta,`title`);return{id:e,name:r,displayName:typeof a==`string`&&a.trim()?a.trim():cN(r),category:KK(n),content:i,date:JK(i),searchHidden:qK(i)}})}function XK(){let e=CN();return(0,W.useMemo)(()=>e?YK(e):[],[e])}var ZK={};function QK(e,t){let{canvasPage:n,workoutItems:r,selectWorkout:i}=t;if(e===`/`)return[];if(n){let t=/^\/notebook\//.test(e),a=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=pU(e).split(`
|
|
753
753
|
`),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&&a&&(o.push({id:`notebook-workouts`,label:`Explore`,type:`heading`}),r.filter(e=>e.category===a&&e.name.toLowerCase()!==`readme`).forEach(e=>{o.push({id:`workout-${e.id}`,label:e.name,type:`time`,onRun:()=>i(e),runIcon:`link`})})),o}return[]}var $K=/^[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 eq(e){return $K.test(e)}function tq(e){try{return decodeURIComponent(e)}catch{return null}}function nq(e){if(!Lz(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 rq(e){let t=(e.length>1?e.replace(/\/+$/,``):e).match(/^\/day\/([^/]+)$/);if(!t)return{kind:`invalid`};let n=tq(t[1]);return n!=null&&nq(n)?{kind:`date`,date:n}:{kind:`invalid`}}var iq=`# My Workout Notebook
|
|
754
754
|
|
|
755
755
|
Welcome to the **WOD.WIKI** playground.
|
|
@@ -813,8 +813,8 @@ Timer 12:00
|
|
|
813
813
|
bg-background/70 backdrop-blur-sm border-l border-b border-border/40 rounded-bl-md`,style:{top:o,height:D},children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[h.length>0&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 px-2 py-0.5 rounded-sm text-[10px] font-medium bg-primary/10 text-primary border border-primary/20 shadow-sm`,children:[(0,G.jsx)(yr,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:h.length})]}),(0,G.jsx)(`div`,{className:`h-3 w-[1px] bg-border/40 mx-0.5`})]}),(0,G.jsx)(y1,{commands:d,section:m,view:n,compact:!0})]})}),x&&(0,G.jsxs)(`div`,{className:`absolute inset-x-0 flex flex-col bg-popover/95 backdrop-blur-md
|
|
814
814
|
border border-border/80 shadow-xl rounded-lg overflow-hidden pointer-events-auto`,style:{top:O,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:m.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`,E]}),(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:T,children:T||(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:C.length>0?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:C.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`})}),w&&(0,G.jsx)(h1,{summary:w}),(0,G.jsx)(`div`,{className:`border-t border-border/40 shrink-0`,children:(0,G.jsx)(y1,{commands:d,section:m,view:n})})]})]})},x1=({sectionId:e,widgetName:t,view:n,registry:r,docVersion:i})=>{let{rawContent:a,config:o}=(0,W.useMemo)(()=>{let t=n.state.field(ak).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`})]})},S1=({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":KU.FOCUSED_DIALOG_CLOSE,children:s??(0,G.jsx)(lr,{className:`h-5 w-5`})});return NE.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)},C1=(0,W.createContext)({updateFromSegments:()=>{},clear:()=>{}}),w1=({children:e,chromecastSubscription:t=null})=>(0,G.jsx)(C1.Provider,{value:{updateFromSegments:(e,n,r)=>{t&&t.sendAnalyticsSummary([],n,r)},clear:()=>{}},children:e}),T1=new class{resolve(e){let t=this.resolveMode(e);return t===`active`?{type:`rpc-workbench-update`,mode:`active`}:t===`review`?zZ(e.analyticsSegments):VZ(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 E1(){if(!(`wakeLock`in navigator))return;let e=navigator.wakeLock;if(!(typeof e!=`object`||!e||!(`request`in e)))return e}function D1(e){let t=(0,W.useRef)(null);(0,W.useEffect)(()=>{let n=E1();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 O1(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 k1=``,A1=null,j1=()=>{let e=kX(),[t,n]=(0,W.useState)(e.state),[r,i]=(0,W.useState)(!1);D1(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=BX,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),WF(null),u(null),c(null),i(!1)},[f]),g=(0,W.useCallback)(async e=>{if(!m.current){m.current=!0;try{let t=eW.getState().subscriptionManager,n=f.connect(e,t);p.current=n,u(n),c(n.subscription),i(!0),WF(n.transport),n.eventProvider.onEvent(e=>{if(e.name===`clock-command`){let t=LZ(e.data);if(!t){console.warn(`[CastButtonRpc] Dropped malformed clock-command payload`);return}iZ(t.runId,t.command)||console.warn(`[CastButtonRpc] Clock command rejected by authority:`,t.command.kind);return}let t=nZ(),n=RZ(e.name,t);n&&t&&!iZ(t.runId,n)&&console.warn(`[CastButtonRpc] Legacy receiver event rejected by authority:`,e.name)});let r=eW.getState(),a=T1.resolve({viewMode:r.runtime?`track`:`plan`,executionStatus:r.execution.status,runtime:r.runtime,analyticsSegments:[],selectedBlock:null,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:`,O1(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=nZ(),n=JSON.stringify(t);if(n!==k1||e!==A1){k1=n,A1=e;try{e.send({type:`rpc-clock-snapshot`,snapshot:t})}catch{}}};return t(),rZ(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=O1(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)(z,{className:`h-5 w-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Cast to TV (unavailable)`})]}):(0,G.jsx)(YF,{transport:l?.transport??null,children:(0,G.jsx)(w1,{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)(Qn,{className:`h-5 w-5`}):(0,G.jsx)(z,{className:`h-5 w-5`}),(0,G.jsx)(`span`,{className:`sr-only`,children:T?`Stop casting`:`Cast to TV`})]})})})};function M1(){let{isEnabled:e,toggleAudio:t}=$F();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)(vr,{className:`h-[1.2rem] w-[1.2rem]`}):(0,G.jsx)(Pn,{className:`h-[1.2rem] w-[1.2rem]`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Toggle audio`})]})}var N1=new Map,P1=({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,RuntimePanelSlot:m=VQ,CastButtonSlot:h=j1,AudioToggleSlot:g=M1})=>{let[_,v]=(0,W.useState)(n?null:e),[y,b]=(0,W.useState)(null),x=(0,W.useRef)(!1),S=(0,W.useCallback)(async()=>{if(!(!n||x.current)){x.current=!0,b(null);try{v(await n())}catch(e){b(e instanceof Error?e.message:String(e))}finally{x.current=!1}}},[n]);(0,W.useEffect)(()=>{S()},[S]);let[C,w]=(0,W.useState)(null),[T,E]=(0,W.useState)(null),{isDebugMode:D}=qS(),O=(0,W.useRef)(Date.now()),k=(0,W.useRef)(typeof document<`u`?document.title:`Wod.Wiki`),A=(0,W.useRef)(null);(0,W.useEffect)(()=>{let t=e.label||e.id,n=C!==null,r=n?`Wod.Wiki - Workout Complete${t?`: `+t:``}`:`Wod.Wiki - Workout Timer${t?`: `+t:``}`,i=n?`/workout/review`:`/workout/timer`;document.title=r,A.current!==i&&(A.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:RP()}));let a=zP.consent;n?a&&window.gtag?.(`event`,`runtime_dialog_review`,{workout_label:t,block_type:e.blockType}):(zP.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,C]),(0,W.useEffect)(()=>{let t=k.current,n=O.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 j=(0,W.useRef)(!1),M=(0,W.useRef)(!1),N=(0,W.useRef)(!1),[P,F]=(0,W.useState)(!1),[I,L]=(0,W.useState)(!1),R=(0,W.useRef)(!1),z=(0,W.useRef)(!1),ee=(0,W.useRef)(null),[te,B]=(0,W.useState)(`idle`),[ne,re]=(0,W.useState)(null),[ie,ae]=(0,W.useState)(!1),{collectionItems:oe}=_Q(C??[],N1,null),[se,ce]=(0,W.useState)(new Set),[le,ue]=(0,W.useState)(new Set),[de,fe]=(0,W.useState)(!1),pe=(0,W.useMemo)(()=>oe.filter(e=>{let t=rQ(e);return!se.has(t)&&!le.has(t)}),[oe,se,le]),me=C!==null&&!!o&&pe.length>0&&!de,he=(0,W.useCallback)(async e=>{let t=await Z.getEventsByResult(e);E(t);let{segments:n}=Tm(Kv(t).map(e=>_C(new za(e))));w(n)},[]),ge=(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 BF({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.`);await he(o),ce(t=>new Set(t).add(rQ(e)))},[o,he]),_e=(0,W.useCallback)(async(e,t)=>{if(await BF({resultId:e,occurrence:t.occurrence,metric:{type:t.metric.type,value:t.metric.value,image:t.metric.image}})===`not-found`)throw Error(`This result entry could not be found.`);await he(e)},[he]),ve=(0,W.useCallback)(async(e,t)=>{await VF(e,t),await he(e)},[he]),ye=(0,W.useCallback)(e=>{ue(t=>new Set(t).add(rQ(e)))},[]),V=(0,W.useMemo)(()=>C===null||me?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},[C,me,o]),be=async()=>{let e=ee.current;if(!e||R.current)return;R.current=!0,z.current=!1,B(`saving`),re(null);let t;try{t=a?.(e.blockId,e.results),await t}catch(e){z.current=!0,re(e instanceof Error?e.message:String(e)),B(`error`),R.current=!1;return}R.current=!1,B(`idle`),ae(!0);let{results:n}=e;if(o)try{let e=await Z.getEventsByResult(o);e.length>0&&E(e)}catch{}if(n.logs&&n.logs.length>0)try{let{segments:e}=Tm(n.logs,n.startTime);w(e)}catch{w([])}else n.completed?w([]):N.current&&i()},xe=(0,W.useCallback)(()=>{j.current=!0,l?.()},[l]),Se=()=>{if(R.current||z.current){N.current=!0;return}if(C!==null||M.current||!j.current){i();return}if(!P&&!u){L(!0);return}N.current=!0,F(!0)},Ce=()=>{L(!1),N.current=!0,F(!0)},we=(0,W.useRef)(Se);we.current=Se,VX(V,(0,W.useCallback)(e=>e.kind===`dismiss`&&(we.current(),!0),[]),20,{keyboard:!0});let Te=(e,t)=>{M.current||(M.current=!0,ee.current={blockId:e,results:t},be())},H=(0,W.useMemo)(()=>{if(C===null)return null;let e=o??`standalone-review`,t=T&&T.length>0?T:C.map((t,n)=>{let r=t.context,i=t.absoluteStartTime??Date.now(),a=i+Math.max(0,(t.duration??0)*1e3);return{id:`${e}:${t.id??n}`,grain:`event`,outputType:String(r?.outputType??t.type??`segment`),sourceBlockKey:String(r?.sourceBlockKey??t.name??`segment-${n}`),...typeof r?.sourceStatementId==`number`?{sourceStatementId:r.sourceStatementId}:{},stackLevel:t.depth,completionReason:typeof r?.completionReason==`string`?r.completionReason:void 0,timestamp:i,timeSpan:{started:i,ended:a},metrics:t.metrics?Array.from(t.metrics):[]}}),n=t[0]?.timeSpan?.started??Date.now();return{parsed:{family:`find`,raw:`:session{result:${e}}`,target:`session`,filters:[{key:`result`,negate:!1,values:[{value:e,wildcard:!1}]}]},runs:[{resultId:e,noteId:``,timestamp:n,events:t}]}},[C,T,o]),Ee=te===`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:[te===`saving`&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`Saving…`}),te===`error`&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{role:`alert`,className:`text-destructive`,children:[`Save failed`,ne?` — ${ne}`:``]}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>void be(),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 _?C===null?(0,G.jsx)(S1,{onClose:Se,title:`Workout`,closeLabel:`Exit`,actions:(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`button`,{type:`button`,onClick:Se,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)(h,{}),(0,G.jsx)(g,{})]}),children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-testid":KU.TIMER_FULLSCREEN_OVERLAY,children:[Ee,y?(0,G.jsxs)(`div`,{className:`space-y-2 p-4`,children:[(0,G.jsxs)(`p`,{role:`alert`,children:[`Workout not started. `,y]}),(0,G.jsx)(`button`,{type:`button`,className:`rounded border px-3 py-2 hover:bg-accent focus-visible:ring-2`,onClick:()=>void S(),children:`Retry starting workout`})]}):_?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)(m,{block:_,noteContent:t,view:r,onClose:Se,onComplete:Te,isExpanded:!0,autoStart:s,onRuntimeReady:c,onRunStarted:xe,externalStop:u||P,adoptRuntime:d,parkOnUnmount:f,onPark:p})}),I&&(0,G.jsx)(S1,{title:`Stop workout?`,onClose:()=>L(!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:()=>L(!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:Ce,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)(S1,{title:`Workout Complete`,onClose:Se,actions:(0,G.jsxs)(G.Fragment,{children:[ie&&(0,G.jsx)(`span`,{className:`text-xs font-medium text-muted-foreground`,children:`Saved ✓`}),(0,G.jsx)(h,{}),(0,G.jsx)(g,{})]}),children:(0,G.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,"data-testid":KU.TIMER_FULLSCREEN_OVERLAY,children:[Ee,(0,G.jsx)(`div`,{className:`min-h-0 flex-1`,children:me?(0,G.jsx)(SQ,{mode:`post-run`,items:pe,onSave:ge,onSkip:ye,onClose:()=>fe(!0),runId:o?`result:${o}`:void 0,className:`mx-auto max-w-md`}):H&&o?(0,G.jsx)(`div`,{className:`h-full overflow-auto p-4 sm:p-6`,children:(0,G.jsx)(OE,{resultId:o,sessionResult:H,executor:TW,onCaptureRpe:ve,onEditMetric:_e})}):H?(0,G.jsx)(`div`,{className:`h-full overflow-auto p-4 sm:p-6`,children:(0,G.jsx)(CE,{result:H,filter:D?``:void 0})}):null})]})}):(0,G.jsx)(S1,{title:`Starting workout`,onClose:i,children:y?(0,G.jsxs)(`div`,{className:`space-y-3 p-6`,children:[(0,G.jsxs)(`p`,{role:`alert`,children:[`Workout not started. `,y,` Your draft is kept.`]}),(0,G.jsx)(`button`,{type:`button`,className:`rounded border px-3 py-2 focus-visible:ring-2`,onClick:()=>void S(),children:`Retry start`})]}):(0,G.jsx)(`p`,{role:`status`,className:`p-6`,children:`Saving workout before starting…`})})},F1={play:!0,"add-to-today":!0,schedule:!0},I1=`log`;function L1(e,t){return e.filter(e=>e.id===I1?t===`log`:!F1[e.id]||t===`run`)}function R1(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 z1(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 B1=({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)(()=>z1(i?e.successIcon??e.icon:e.icon),[e.icon,e.successIcon,i]),l=(0,W.useMemo)(()=>z1(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-8 min-w-[34px] rounded-[5px] px-2 py-0.5 text-[11px] font-medium shadow-none`:`h-8 rounded-[5px] px-2.5 py-0.5 text-[11px] font-medium shadow-none gap-1.5`,e.primary?`bg-foreground text-background hover:bg-foreground/90 border border-foreground`:`bg-card text-foreground hover:bg-muted border border-border`,i&&`text-success bg-success/15 border-success/30`),title:e.label,"aria-label":e.label,"data-testid":e.id===`run`?KU.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-3.5`,children:t}),!e.iconOnly&&(0,G.jsx)(`span`,{children:e.label})]})}return(0,G.jsx)(`div`,{onClick:f,onMouseDown:f,onPointerDown:f,children:(0,G.jsx)(s1,{primary:u,secondary:d,size:`xs`,variant:e.primary?`primary`:`default`,className:`rounded-[5px] shadow-none`,labelClassName:`sr-only sm:not-sr-only sm:inline`})})},V1=({view:e,commands:t})=>{let[n,r]=(0,W.useState)(()=>e?.plugin(Fk)?.rects??[]),[i,a]=(0,W.useState)(0);(0,W.useEffect)(()=>{if(!e)return;let t=e.plugin(Fk);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(Fk):null,s=(n.length>0?n:o?.rects??[]).filter(e=>e.type===`time`||e.type===`log`);if(s.length===0||!e)return null;let{sections:c}=e.state.field(ak),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=R1(e,r),o=L1(t,hee(r.type));return o.length===0?null:(0,G.jsx)(`div`,{className:`absolute right-1.5 z-10 flex items-end gap-1 pb-0.5 pointer-events-auto`,style:{top:n.top-i,height:n.firstLineHeight},children:o.map(e=>(0,G.jsx)(B1,{cmd:e,block:a},e.id))},n.sectionId)})})},H1=({sections:e,isRuntimeActive:t,editorState:n,onSelectBlock:r})=>{let i=JF(),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(`
|
|
815
815
|
`).filter(e=>e.trim().length>0),i=r.slice(0,3).join(`
|
|
816
|
-
`),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},U1={[J.Duration]:{label:`Timer`,Icon:Kn,textClass:`text-metric-time`,bgClass:`bg-metric-time/10`,borderClass:`border-metric-time/30`},[J.Rep]:{label:`Reps`,Icon:Ht,textClass:`text-metric-rep`,bgClass:`bg-metric-rep/10`,borderClass:`border-metric-rep/30`},[J.Effort]:{label:`Exercise`,Icon:nt,textClass:`text-metric-effort`,bgClass:`bg-metric-effort/10`,borderClass:`border-metric-effort/30`},[J.Rounds]:{label:`Rounds`,Icon:E,textClass:`text-metric-rounds`,bgClass:`bg-metric-rounds/10`,borderClass:`border-metric-rounds/30`},[J.Distance]:{label:`Distance`,Icon:_n,textClass:`text-metric-distance`,bgClass:`bg-metric-distance/10`,borderClass:`border-metric-distance/30`},[J.Resistance]:{label:`Weight`,Icon:Ln,textClass:`text-metric-resistance`,bgClass:`bg-metric-resistance/10`,borderClass:`border-metric-resistance/30`},[J.Equipment]:{label:`Equipment`,Icon:Rt,textClass:`text-metric-equipment`,bgClass:`bg-metric-equipment/10`,borderClass:`border-metric-equipment/30`},[J.Action]:{label:`Action`,Icon:xr,textClass:`text-metric-action`,bgClass:`bg-metric-action/10`,borderClass:`border-metric-action/30`},[J.Label]:{label:`Label`,Icon:sn,textClass:`text-muted-foreground`,bgClass:`bg-muted/40`,borderClass:`border-border`}},W1={[J.Rep]:`reps`,[J.Effort]:`movement`,[J.Resistance]:`weight`},G1=({metric:e,tooltip:t,isFocused:n,onClick:r})=>{let i=U1[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),c=i?.Icon;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 tabular-nums`,`pointer-events-auto transition-opacity hover:opacity-80`,i?.bgClass??`bg-muted/40`,i?.textClass??`text-muted-foreground`,i?.borderClass??`border-border`,r&&`cursor-pointer`,n&&`font-bold ring-1 ring-foreground/20`),children:[a?(0,G.jsx)(`span`,{children:e.icon}):c?(0,G.jsx)(c,{weight:`bold`,className:`h-2.5 w-2.5 shrink-0`}):null,!a&&(0,G.jsx)(`span`,{className:`sr-only`,children:s}),!a&&(0,G.jsx)(`span`,{className:`font-semibold`,children:o||s})]})};function K1(e){let t=Pa(e.metadata);return{refs:t?.refs??[],diagnostics:t?.diagnostics??[]}}function q1(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 J1=({view:e,cursorVersion:t,getCursorFocusState:n,hidden:r=!1})=>{let[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(null),[c,l]=(0,W.useState)(null),u=(0,W.useRef)(null),d=(0,W.useCallback)(()=>{if(!e||r){s(null),a(null);return}let t=(n??z$)(e.state);s(t),a(t?q1(e,t):null)},[e,n,r]);(0,W.useEffect)(()=>{d()},[d,t]),(0,W.useEffect)(()=>{if(!e||r)return;let t=()=>d();return window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t,!0),()=>{window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t,!0)}},[e,d,r]);let f=e?.state&&typeof e.state.field==`function`?si(e.state)===`active`:!1;if(r||!i||!o?.section||f)return null;let p=o.allStatements?.filter(e=>e.meta?.line===o.cursorLine-o.section.startLine)??(o.statement?[o.statement]:[]),m=p.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=K1(e);if(t.refs.length>0||t.diagnostics.length>0)return!1}return!0}),h=VY(m,`runtime-badge`),g=p.flatMap(e=>e.metrics.toArray()),_=[],v=[],y=[];for(let e of g){let t=K1(e);for(let e of t.refs){let t=`${e.kind}:${e.slug}`;_.includes(t)||(_.push(t),v.push(e))}y.push(...t.diagnostics)}let b=[],S=[];for(let e of g){let t=Ua(e.metadata);if(t){b.some(e=>e.slug===t.slug)||b.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);S.includes(t)||S.push(t)}}let C=typeof e?.state?.facet==`function`?e.state.facet(tA)?.()??null:null,w=typeof e?.state?.doc?.sliceString==`function`?T$(e.state.doc.sliceString(o.lineFrom,o.lineTo)):null,T=e=>e.reason===`conflict`||e.reason.endsWith(`equipment`)||e.reason===`invalid-explicit`&&e.token&&w?.equipment.includes(e.token)?`equipment`:`effort`,E=e=>typeof e==`string`&&e.trim()?e:null,D=async t=>{if(!e)return;let n=e.state.doc.sliceString(o.lineFrom,o.lineTo),r=xq.getState();if(t===`effort`){let t=await r.open({placeholder:`Change effort...`,sources:[v$(`effort`)]});if(t.dismissed)return;let i=E(t.item.payload);if(!i)return;e.dispatch({changes:{from:o.lineFrom,to:o.lineTo,insert:E$(n,{effort:i})}});return}let i=[...w?.equipment??[]];for(;;){let e=await r.open({placeholder:i.length>0?`Add equipment (Esc to finish)...`:`Set equipment...`,sources:[v$(`equipment`)]});if(e.dismissed)break;let t=E(e.item.payload);t&&!i.includes(t)&&i.push(t)}((w?.jsonFrom??-1)>=0||i.length>0)&&e.dispatch({changes:{from:o.lineFrom,to:o.lineTo,insert:E$(n,{equipment:i})}})},O=async()=>{if(!e)return;let t=e.state.doc.sliceString(o.lineFrom,o.lineTo),n=xq.getState(),r,i=await n.open({placeholder:`Add effort (Esc to skip)...`,sources:[v$(`effort`)]});i.dismissed||(r=E(i.item.payload)??void 0);let a=[];for(;;){let e=await n.open({placeholder:`Add equipment (Esc to finish)...`,sources:[v$(`equipment`)]});if(e.dismissed)break;let t=E(e.item.payload);t&&!a.includes(t)&&a.push(t)}!r&&a.length===0||e.dispatch({changes:{from:o.lineFrom,to:o.lineTo,insert:E$(t,{effort:r,equipment:a})}})},k=()=>{e&&typeof e.dispatch==`function`&&e.dispatch({effects:[j$.of(null)]}),d()},A=async t=>{if(!e||!t.token)return;let n=T(t),r=await xq.getState().open({placeholder:`Replace "${t.token}"...`,sources:[v$(n,t.candidates)]});if(r.dismissed)return;let i=E(r.item.payload);if(!i)return;let a=e.state.doc.sliceString(o.lineFrom,o.lineTo).indexOf(t.token);a<0||e.dispatch({changes:{from:o.lineFrom+a,to:o.lineFrom+a+t.token.length,insert:i}})},j=async(e,t)=>{t.trim()&&(e===`effort`?await b$(t):await S$(t),k())},M=async e=>{if(!e.trim())return;let t=await xq.getState().open({placeholder:`Link "${e}" as alias to effort...`,sources:[v$(`effort`)]});if(t.dismissed)return;let n=E(t.item.payload);n&&(await x$(n,e),k())},N=async e=>{e.trim()&&(await C$(e),k())},P=t=>{let n=W1[t.type];if(!n||!e)return;let r=t.type===J.Effort?`effort`:t.type===J.Equipment?`equipment`:null;if(r&&w?.jsonFrom!==void 0&&w.jsonFrom>=0){D(r);return}ct(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-C7ob6Wnu.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([0,1,2,3])).then(({runStatementBuilderFlow:t})=>{t(o,e,n)})};return(0,G.jsx)(`div`,{ref:u,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]`,i.belowLine?`bg-card border border-border rounded-[6px]`:`bg-transparent`,`transition-opacity duration-100 max-w-full`),style:{top:i.top,left:i.left,maxWidth:i.maxWidth},"aria-live":`polite`,"aria-label":`Metric inline panel`,children:m.length>0||v.length>0||b.length>0||y.length>0||S.length>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[m.map((e,t)=>(0,G.jsx)(G1,{metric:e,tooltip:e.type===J.Hint?String(e.value??``):h[t]?.tooltip,isFocused:o.focusedMetric===e,onClick:W1[e.type]?()=>P(e):void 0},`${e.type}-${t}`)),v.map(e=>{let t=e.kind===`effort`&&o.focusedMetric?.type===J.Effort||e.kind===`equipment`&&o.focusedMetric?.type===J.Equipment,n=e.kind===`effort`?nt:Rt;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 D(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 ring-1 ring-foreground/20`),children:[(0,G.jsx)(n,{weight:`bold`,className:`h-2.5 w-2.5 shrink-0`}),(0,G.jsx)(`span`,{className:`sr-only`,children:e.kind===`effort`?`Exercise`:`Equipment`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:e.label}),C&&(0,G.jsx)(`a`,{href:C.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 inline-flex items-center`,onClick:e=>e.stopPropagation(),children:(0,G.jsx)(x,{weight:`bold`,className:`h-2.5 w-2.5`})})]},`${e.kind}:${e.slug}`)}),b.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}),C&&(0,G.jsx)(`a`,{href:C.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 inline-flex items-center`,onClick:e=>e.stopPropagation(),children:(0,G.jsx)(x,{weight:`bold`,className:`h-2.5 w-2.5`})})]},`tag:${e.slug}`)),w?.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-[4px] border text-[11px] font-medium bg-destructive/10 text-destructive border-destructive/30`,children:[(0,G.jsx)(tee,{weight:`bold`,className:`h-3 w-3 shrink-0`}),(0,G.jsx)(`span`,{children:`Malformed reference JSON`})]}),S.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 N(e),children:`+ Tag`})]},`unresolved-tag:${e}`)),y.map((e,t)=>{let n=T(e),r=e.token?.trim()??``,i=e.reason===`unknown-effort`,a=`${e.reason}-${r||t}`,o=c===a||c===`all`;return(0,G.jsxs)(`span`,{"data-testid":`editor-ref-unknown`,title:e.message,onClick:()=>{o||l(a)},className:K(`pointer-events-auto inline-flex flex-wrap items-center gap-1.5 px-1.5 py-0.5 rounded-[6px] 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(),j(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(),M(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(),j(`equipment`,r)},children:`+ Equipment`}),(0,G.jsx)(`button`,{type:`button`,className:`underline cursor-pointer hover:text-foreground`,onClick:t=>{t.stopPropagation(),A(e)},children:`Select existing`}),C&&(0,G.jsx)(`a`,{href:C.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(),l(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 O(),className:`pointer-events-auto inline-flex items-center px-1.5 py-0.5 rounded-full border border-dashed border-border text-[10px] leading-none text-muted-foreground hover:text-foreground hover:border-foreground 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`})})},Y1=Array.from({length:61},(e,t)=>({id:`min-${t}`,label:`${t}m`,value:String(t)})),X1=[`00`,`05`,`10`,`15`,`20`,`30`,`45`],Z1=X1.map(e=>({id:`sec-${e}`,label:`${e}s`,value:e})),Q1=[...[`21-15-9`,`15-12-9`,`12-9-6`,`10-8-6-4-2`,`5-5-5-5-5`].map(e=>({id:`scheme-${e}`,label:e,sublabel:`Scheme`,value:e})),...Array.from({length:50},(e,t)=>{let n=String(t+1);return{id:`rep-${n}`,label:n,value:n}}),...[`60`,`75`,`100`].map(e=>({id:`rep-${e}`,label:e,value:e}))],$1=Array.from({length:12},(e,t)=>{let n=t+1,r=`(${n})`;return{id:`rounds-${n}`,label:`${n} ${n===1?`round`:`rounds`}`,sublabel:r,value:r}}),e0=`5,7.5,10,12,15,16,20,22.5,24,25,30,32,35,40,42.5,45,50,52.5,60,65,70,75,80,85,90,95,100,105,115,120,135,140,155,160,185,205,225,245,275,315`.split(`,`),t0=`10,15,20,25,30,40,50,75,100,150,200,250,300,400,500,600,800,1000,1200,1600,2000,5000,1,1.5,2,3,5,10`.split(`,`),n0=[`kg`,`lb`,`pood`,`%`],r0=[`m`,`km`,`cal`,`ft`,`mi`,`yd`],i0=[{id:`act-rest`,label:`Rest`,sublabel:`:rest`,value:`:rest`},{id:`act-emom`,label:`EMOM`,sublabel:`1:00`,value:`1:00`},{id:`act-buyin`,label:`Buy-in`,sublabel:`Header`,value:`Buy-in:`},{id:`act-cashout`,label:`Cash-out`,sublabel:`Header`,value:`Cash-out:`}],a0=[`Air Squat`,`Back Squat`,`Front Squat`,`Deadlift`,`Kettlebell Swing`,`Pull-up`,`Push-up`,`Burpee`,`Thruster`,`Wall Ball`,`Box Jump`,`Row`,`Run`,`Double Under`],o0=[{id:`md-blocks`,label:`Blocks`,options:[{id:`blk-time`,label:`Timer Block`,sublabel:"```time",value:`block:time`},{id:`blk-log`,label:`Log Block`,sublabel:"```log",value:`block:log`},{id:`blk-query`,label:`Query Block`,sublabel:"```query",value:`block:query`},{id:`blk-table`,label:`Table (3x2)`,sublabel:`| Col |`,value:`block:table`},{id:`blk-divider`,label:`Divider`,sublabel:`---`,value:`block:divider`}]},{id:`md-format`,label:`Format`,options:[{id:`fmt-h1`,label:`Heading 1`,sublabel:`# Title`,value:`prefix:# `},{id:`fmt-h2`,label:`Heading 2`,sublabel:`## Section`,value:`prefix:## `},{id:`fmt-h3`,label:`Heading 3`,sublabel:`### Detail`,value:`prefix:### `},{id:`fmt-quote`,label:`Blockquote`,sublabel:`> Quote`,value:`prefix:> `},{id:`fmt-bold`,label:`Bold`,sublabel:`**text**`,value:`wrap:**`},{id:`fmt-code`,label:`Inline Code`,sublabel:"`code`",value:"wrap:`"}]},{id:`md-lists`,label:`Lists & Links`,options:[{id:`lst-task`,label:`Task Checkbox`,sublabel:`- [ ]`,value:`prefix:- [ ] `},{id:`lst-bullet`,label:`Bullet Item`,sublabel:`- `,value:`prefix:- `},{id:`lst-number`,label:`Numbered Item`,sublabel:`1. `,value:`prefix:1. `},{id:`lst-link`,label:`External Link`,sublabel:`[Label](url)`,value:`insert:[Link](https://)`},{id:`lst-wiki`,label:`Note Link`,sublabel:`[[Note]]`,value:`insert:[[Note]]`}]}],s0=[{id:`wql-metric`,label:`Query`,options:[{id:`q-reps`,label:`Total Reps`,sublabel:`sum:reps{}`,value:`replace:sum:reps{}`},{id:`q-vol`,label:`Total Volume`,sublabel:`sum:totalVolume{}`,value:`replace:sum:totalVolume{}`},{id:`q-dur`,label:`Total Duration`,sublabel:`sum:duration{}`,value:`replace:sum:duration{}`},{id:`q-sessions`,label:`Find Sessions`,sublabel:`find session{}`,value:`replace:find session{}`},{id:`q-notes`,label:`Find Notes`,sublabel:`find note{}`,value:`replace:find note{}`}]},{id:`wql-scope`,label:`Scope`,options:[{id:`s-note`,label:`This Note`,sublabel:`:note`,value:`append: :note`},{id:`s-all`,label:`All History`,sublabel:`Global`,value:`noop:`}]},{id:`wql-window`,label:`Window`,options:[{id:`w-week`,label:`Every Week`,sublabel:`every week`,value:`append: every week`},{id:`w-month`,label:`Every Month`,sublabel:`every month`,value:`append: every month`},{id:`w-4w`,label:`Last 4 Weeks`,sublabel:`last 4w`,value:`append: last 4w`},{id:`w-12w`,label:`Last 12 Weeks`,sublabel:`last 12w`,value:`append: last 12w`}]},{id:`wql-chart`,label:`Chart`,options:[{id:`c-bar`,label:`Bar Chart`,sublabel:`| :bar{}`,value:`append: | :bar{}`},{id:`c-line`,label:`Timeseries`,sublabel:`| :timeseries{}`,value:`append: | :timeseries{}`},{id:`c-table`,label:`Table`,sublabel:`| :table{}`,value:`append: | :table{}`}]}];function c0(e){return e.trim().toLowerCase()}function l0(e,t){let n=new Set,r=e=>{if(!e)return;let t=c0(e);if(t){n.add(t);for(let e of t.split(/[\s/_-]+/))e.length>=3&&n.add(e)}};r(e.notebookSlug);for(let t of e.tags)r(t);r(e.defaultEffort);for(let t of e.defaultEquipment)r(t);let i=QZ(t);for(let e of i.activeTags)r(e);if(t.trimStart().startsWith(`---`)){let{meta:e}=Eo(t);for(let t of[`tags`,`domain`,`discipline`,`category`,`equipment`,`format`,`intent`]){let n=e[t];if(typeof n==`string`)r(n);else if(Array.isArray(n))for(let e of n)typeof e==`string`&&r(e)}}return n}async function u0(e,t){let n=_$(t),r=QZ(t,{noteId:e}),i=new Set(r.activeTags),a,o,s=n.effort,c=[...n.equipment??[]],l,u,d=[];if(e)try{let t=await Z.getNote(e);if(t){if(a=t.notebookId,a){o=a.replace(/^notebook\//,``);let e=await Z.getNote(a).catch(()=>null);if(e?.rawContent){let t=_$(e.rawContent);!s&&t.effort&&(s=t.effort);for(let e of t.equipment??[])c.includes(e)||c.push(e);let n=QZ(e.rawContent);for(let e of n.activeTags)i.add(e)}if(e?.tags)for(let t of e.tags)i.add(t)}if(t.tags)for(let e of t.tags)i.add(e)}}catch{}let f=cF(),p=new Set,m=new Set([`duration`,`time`,`rep`,`reps`,`effort`,`rounds`,`distance`,`resistance`,`weight`,`action`,`equipment`,`sound`,`system`,`label`]),h=e=>{let t=f.resolve(e);if(t)for(let e of t.contributions){if(e.kind!==`metric`)continue;let t=e.type.toLowerCase();if(t===`resistance`&&e.unit&&!l)l=e.unit;else if(t===`distance`&&e.unit&&!u)u=e.unit;else if(!m.has(t)&&!p.has(t)){p.add(t);let n=e.value===void 0?`1`:String(e.value);d.push({type:e.type,starterValue:n})}}};for(let e of i)h(e);for(let e of r.propertySources)for(let[t,n]of Object.entries(e.metrics??{})){let e=t.toLowerCase();if(!m.has(e)&&!p.has(e)){p.add(e);let r=typeof n==`object`&&n&&`value`in n?String(n.value??`1`):`1`;d.push({type:t,starterValue:r})}}return{notebookId:a,notebookSlug:o,tags:[...i],defaultEffort:s,defaultEquipment:c,preferredMassUnit:l,preferredDistanceUnit:u,customMetricTypes:d}}function d0(e,t,n){let r=0;if(t.defaultEffort&&e.slug===t.defaultEffort&&(r+=100),e.equipment?.some(e=>t.defaultEquipment.includes(e))&&(r+=40),e.baseAttributes?.discipline&&n.has(e.baseAttributes.discipline.toLowerCase())&&(r+=30),e.sourcePath){let t=e.sourcePath.toLowerCase();for(let e of n)if(e.length>=3&&t.includes(e)){r+=20;break}}let i=e.slug.toLowerCase();for(let e of n)if(e.length>=4&&i.includes(e)){r+=10;break}return r}function f0(e,t,n){let r=oN(),i=r.isInitialized()?[...r.list()]:[],a=l0(t,n);if(i.length===0){let t=a0.map(e=>({id:`eff-${e.toLowerCase().replace(/\s+/g,`-`)}`,label:e,value:e}));return e&&!t.some(t=>t.value.toLowerCase()===e.toLowerCase())?[{id:`eff-current`,label:e,value:e},...t]:t}let o=i.map(e=>({effort:e,score:d0(e,t,a)})).sort((e,t)=>t.score===e.score?e.effort.label.localeCompare(t.effort.label):t.score-e.score).slice(0,80).map(({effort:e,score:t})=>({id:`eff-${e.slug}`,label:e.label,sublabel:t>0?`Scoped`:e.baseAttributes?.discipline,value:e.label})),s=e.trim();return s&&!o.some(e=>e.value.toLowerCase()===s.toLowerCase())&&o.unshift({id:`eff-current`,label:s,value:s}),o}function p0(e,t){let n=XP(),r=[...n.isInitialized()?n.list():[]].sort((e,n)=>{let r=+!!t.defaultEquipment.includes(e.slug),i=+!!t.defaultEquipment.includes(n.slug);return i===r?e.label.localeCompare(n.label):i-r}),i=r.length>0?r.map(e=>({id:`eq-${e.slug}`,label:e.label,value:e.label})):[{id:`eq-kb`,label:`Kettlebell`,value:`KB`},{id:`eq-db`,label:`Dumbbell`,value:`DB`},{id:`eq-bb`,label:`Barbell`,value:`Barbell`},{id:`eq-rig`,label:`Pull-up Bar`,value:`Pull-up Bar`}],a=e.trim();return a&&!i.some(e=>e.value.toLowerCase()===a.toLowerCase())&&i.unshift({id:`eq-current`,label:a,value:a}),i}function m0(e,t){let n=cF().list(),r=new Set(t.tags.map(e=>e.toLowerCase())),i=[...n].filter(e=>!e.isCategory).sort((e,t)=>{let n=+!!r.has(e.slug.toLowerCase()),i=+!!r.has(t.slug.toLowerCase());return i===n?e.slug.localeCompare(t.slug):i-n}).map(e=>({id:`tag-${e.slug}`,label:`#${e.slug}`,value:`#${e.slug}`}));i.length===0&&i.push({id:`tag-emom`,label:`#emom`,value:`#emom`},{id:`tag-amrap`,label:`#amrap`,value:`#amrap`},{id:`tag-for-time`,label:`#for-time`,value:`#for-time`});let a=e.trim();return a&&!i.some(e=>e.value.toLowerCase()===a.toLowerCase())&&i.unshift({id:`tag-current`,label:a,value:a}),i}function h0(e){let t=e.trim().match(/^(\d+):(\d{2})(?::(\d{2}))?$/);if(t){if(t[3]!==void 0){let e=parseInt(t[1],10)*60+parseInt(t[2],10);return{minutes:String(Math.min(60,e)),seconds:t[3]}}return{minutes:String(Math.min(60,parseInt(t[1],10))),seconds:X1.includes(t[2])?t[2]:`00`}}return{minutes:`1`,seconds:`00`}}function g0(e,t,n){let r=e.trim().match(/^(@?\d+(?:\.\d+)?)\s*([a-zA-Z%]+)?$/);return r?{amount:r[1].replace(/^@/,``),unit:r[2]||n}:{amount:t,unit:n}}function _0(e,t,n){let r=e.metricType??``;if(r===J.Duration){let{minutes:t,seconds:n}=h0(e.rawText);return[{id:`duration-min`,label:`Minutes`,options:Y1,selectedValue:t},{id:`duration-sec`,label:`Seconds`,options:Z1,selectedValue:n}]}if(r===J.Rep){let t=e.rawText.trim();return[{id:`rep-value`,label:`Reps / Scheme`,options:Q1.some(e=>e.value===t)?Q1:[{id:`rep-cur`,label:t,value:t},...Q1],selectedValue:t||`10`}]}if(r===J.Rounds){let t=e.rawText.trim();return[{id:`rounds-value`,label:`Rounds`,options:$1.some(e=>e.value===t)?$1:[{id:`rounds-cur`,label:t,value:t},...$1],selectedValue:t||`(3)`}]}if(r===J.Resistance){let n=t.preferredMassUnit??`kg`,{amount:r,unit:i}=g0(e.rawText,`20`,n),a=t.preferredMassUnit&&!n0.includes(t.preferredMassUnit)?[t.preferredMassUnit,...n0]:[n,...n0.filter(e=>e!==n)],o=(e0.includes(r)?e0:[r,...e0]).map(e=>({id:`wt-${e}`,label:e,value:e})),s=(a.includes(i)?a:[i,...a]).map(e=>({id:`wt-u-${e}`,label:e,value:e}));return[{id:`unit-amount`,label:`Load`,options:o,selectedValue:r},{id:`unit-suffix`,label:`Unit`,options:s,selectedValue:i}]}if(r===J.Distance){let n=t.preferredDistanceUnit??`m`,{amount:r,unit:i}=g0(e.rawText,`400`,n),a=t.preferredDistanceUnit&&!r0.includes(t.preferredDistanceUnit)?[t.preferredDistanceUnit,...r0]:[n,...r0.filter(e=>e!==n)],o=(t0.includes(r)?t0:[r,...t0]).map(e=>({id:`dist-${e}`,label:e,value:e})),s=(a.includes(i)?a:[i,...a]).map(e=>({id:`dist-u-${e}`,label:e,value:e}));return[{id:`unit-amount`,label:`Distance`,options:o,selectedValue:r},{id:`unit-suffix`,label:`Unit`,options:s,selectedValue:i}]}if(r===J.Equipment){let n=p0(e.rawText,t);return[{id:`equipment-value`,label:`Equipment`,options:n,selectedValue:n[0]?.value??e.rawText}]}if(r===`tag`){let n=m0(e.rawText,t);return[{id:`tag-value`,label:`Tag`,options:n,selectedValue:n.find(t=>t.value.toLowerCase()===e.rawText.trim().toLowerCase())?.value??n[0]?.value??e.rawText}]}if(r===J.Action){let t=e.rawText.trim();return[{id:`action-value`,label:`Action`,options:i0.some(e=>e.value===t)?i0:[{id:`act-cur`,label:t,value:t},...i0],selectedValue:t}]}let i=f0(e.rawText,t,n);return[{id:`effort-value`,label:`Movement / Effort`,options:i,selectedValue:i.find(t=>t.value.toLowerCase()===e.rawText.trim().toLowerCase())?.value??e.rawText.trim()}]}function v0(e,t){let n=f0(``,e,t)[0]?.value??`Air Squat`,r=e.preferredMassUnit??`kg`,i=e.preferredDistanceUnit??`m`,a=m0(``,e)[0]?.value??`#emom`,o=[{id:`add-duration`,label:`Duration / Timer`,sublabel:`1:00`,value:`1:00`},{id:`add-rep`,label:`Reps / Scheme`,sublabel:`10`,value:`10`},{id:`add-effort`,label:`Movement / Effort`,sublabel:n,value:n},{id:`add-weight`,label:`Weight / Load`,sublabel:`20${r}`,value:`20${r}`},{id:`add-distance`,label:`Distance`,sublabel:`400${i}`,value:`400${i}`},{id:`add-rounds`,label:`Rounds`,sublabel:`(3)`,value:`(3)`},{id:`add-rest`,label:`Rest / Action`,sublabel:`:rest`,value:`:rest`},{id:`add-tag`,label:`Tag (#)`,sublabel:a,value:a},...e.customMetricTypes.map(e=>({id:`add-custom-${e.type}`,label:e.type,sublabel:e.starterValue,value:e.starterValue}))];return{id:`add-metric-type`,label:`Select Metric Type to Insert`,options:o,selectedValue:o[0].value}}function y0(e){let t=z$(e),n=e.selection.main.head,r=e.doc.lineAt(n),i=[];if(t?.statement&&t.section.contentFrom!==void 0){let n=t.section.contentFrom,a=t.statement,o=[];for(let e of a.metrics){if(e.type!==J.Equipment)continue;let t=Pa(e.metadata);if(t?.matched===`whole`||t?.matched==="default")continue;let r=a.metricMeta?.get(e);r&&o.push({from:n+r.startOffset,to:n+r.endOffset})}let s=new Set;Array.from(a.metrics).forEach((t,c)=>{if(t.type===J.Sound||t.type===J.System)return;let l=Ua(t.metadata),u=typeof t.type==`string`&&t.type.startsWith(`tag.`);if(l&&!u)return;if(t.type===J.Equipment){let e=Pa(t.metadata);if(e?.matched===`whole`||e?.matched==="default")return}let d=a.metricMeta?.get(t);if(!d)return;let f=n+d.startOffset,p=n+d.endOffset;if(t.type===J.Effort){for(let t of o)if(t.from===f&&t.to<p)for(f=t.to;f<p&&/\s/.test(e.doc.sliceString(f,f+1));)f++}if(f<r.from||p>r.to||f>=p)return;let m=`${f}:${p}`;if(s.has(m))return;s.add(m);let h=e.doc.sliceString(f,p),g=u||/^#[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(h.trim())?`tag`:t.type===J.Choice?String(t.alternatives[0]?.type??J.Effort):String(t.type);i.push({id:`metric-${c}-${f}`,kind:`metric`,label:h.trim(),metricType:g,from:f,to:p,rawText:h})}),i.sort((e,t)=>e.from-t.from)}return i.push({id:`add-metric`,kind:`add-metric`,label:`+ Add`,from:r.to,to:r.to,rawText:``}),i}function b0(e,t,n){let r=e.selection.main.head,i=e.doc.lineAt(r),a=e.doc.toString(),o=e.field(ak,!1)?.sections.find(e=>(e.type===`time`||e.type===`log`||e.type===`query`)&&i.number>=e.startLine&&i.number<=e.endLine)??null;if(!o)try{o=ck(e)}catch{o=e.field(ak,!1)?.sections.find(e=>i.number>=e.startLine&&i.number<=e.endLine)??null}if((o?.type===`time`||o?.type===`log`)&&i.number>o.startLine&&i.number<o.endLine){let o=y0(e),s=o.findIndex(e=>e.kind===`metric`&&r>=e.from&&r<=e.to);n!=null&&n>=0&&n<o.length?s=n:s<0&&(s=o.length-1);let c=o[s]??o[o.length-1],l=c.kind===`add-metric`?[v0(t,a)]:_0(c,t,a);return{context:`workout`,lineNumber:i.number,lineFrom:i.from,lineTo:i.to,slots:o,activeSlotIndex:s,drums:l}}if(o?.type===`query`&&i.number>o.startLine&&i.number<o.endLine){let e=s0.map(e=>({id:e.id,kind:`query-stage`,label:e.label,from:i.from,to:i.to,rawText:i.text})),t=n!=null&&n>=0&&n<e.length?n:0,r=s0[t];return{context:`query`,lineNumber:i.number,lineFrom:i.from,lineTo:i.to,slots:e,activeSlotIndex:t,drums:[{id:r.id,label:r.label,options:r.options,selectedValue:r.options[0].value}]}}let s=o0.map(e=>({id:e.id,kind:`markdown-group`,label:e.label,from:i.from,to:i.to,rawText:i.text})),c=n!=null&&n>=0&&n<s.length?n:0,l=o0[c];return{context:`markdown`,lineNumber:i.number,lineFrom:i.from,lineTo:i.to,slots:s,activeSlotIndex:c,drums:[{id:l.id,label:l.label,options:l.options,selectedValue:l.options[0].value}]}}var x0={tags:[],defaultEquipment:[],customMetricTypes:[]},S0=36,C0=({drum:e,autoCommitOnScroll:t,onSelect:n})=>{let r=(0,W.useRef)(null),i=(0,W.useRef)(!1),a=(0,W.useRef)(null),o=(0,W.useMemo)(()=>{let t=e.options.findIndex(t=>t.value===e.selectedValue);return t>=0?t:0},[e.options,e.selectedValue]);(0,W.useEffect)(()=>{let e=r.current;if(!e)return;let t=o*S0;Math.abs(e.scrollTop-t)>4&&(i.current=!0,e.scrollTop=t,window.setTimeout(()=>{i.current=!1},80))},[e.id,o]),(0,W.useEffect)(()=>()=>{a.current!==null&&window.clearTimeout(a.current)},[]);let s=(0,W.useCallback)(()=>{!t||i.current||(a.current!==null&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{let t=r.current;if(!t)return;let i=Math.max(0,Math.min(e.options.length-1,Math.round(t.scrollTop/S0))),a=e.options[i];a&&a.value!==e.selectedValue&&n(a)},130))},[t,e.options,e.selectedValue,n]);return(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-0 h-full flex flex-col overflow-hidden`,"data-testid":`wheel-drum-${e.id}`,children:[(0,G.jsx)(`div`,{className:`px-2.5 py-1 text-[10px] font-semibold uppercase tracking-[0.06em] text-muted-foreground border-b border-border/70 truncate`,children:e.label}),(0,G.jsxs)(`div`,{className:`relative flex-1 min-h-0 overflow-hidden`,children:[(0,G.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-x-2 top-1/2 -translate-y-1/2 h-9 border-y border-border bg-background/55 rounded-[4px]`}),(0,G.jsx)(`div`,{ref:r,onScroll:s,className:`relative z-10 h-full overflow-y-auto snap-y snap-mandatory overscroll-contain scrollbar-none`,style:{paddingTop:`calc(50% - 18px)`,paddingBottom:`calc(50% - 18px)`},children:e.options.map((e,t)=>{let a=t===o;return(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wheel-option-${e.id}`,onMouseDown:e=>e.preventDefault(),onClick:()=>{let a=r.current;a&&(i.current=!0,typeof a.scrollTo==`function`?a.scrollTo({top:t*S0,behavior:`smooth`}):a.scrollTop=t*S0,window.setTimeout(()=>{i.current=!1},160)),n(e)},className:K(`w-full h-9 snap-center px-3 flex items-center justify-between gap-2 text-left transition-colors`,a?`text-foreground font-semibold`:`text-muted-foreground hover:text-foreground`),children:[(0,G.jsx)(`span`,{className:`truncate text-[13px] font-mono tabular-nums`,children:e.label}),e.sublabel&&(0,G.jsx)(`span`,{className:`shrink-0 text-[11px] font-mono tabular-nums text-muted-foreground`,children:e.sublabel})]},e.id)})})]})]})},w0=({view:e,noteId:t,cursorVersion:n,isOpen:r,isTypingMode:i,onSwitchToTyping:a,onClose:o})=>{let[s,c]=(0,W.useState)(x0),[l,u]=(0,W.useState)(null),d=(0,W.useRef)(-1),f=(0,W.useRef)(null),[p,m]=(0,W.useState)(0),h=e?.state.doc.toString()??``;(0,W.useEffect)(()=>{if(!r||!e)return;let n=!1;return u0(t,h).then(e=>{n||c(e)}),()=>{n=!0}},[r,t,h,e]),(0,W.useEffect)(()=>{if(!r||!i||typeof window>`u`){m(0);return}let e=window.visualViewport;if(!e)return;let t=()=>{let t=Math.max(0,window.innerHeight-(e.height+e.offsetTop));m(t)};return t(),e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[r,i]),(0,W.useEffect)(()=>{if(!e)return;let t=e.state.doc.lineAt(e.state.selection.main.head).number;t!==d.current&&(d.current=t,u(null))},[e,n]);let _=(0,W.useMemo)(()=>!e||!r?null:b0(e.state,s,l),[e,r,s,l,n]),v=(0,W.useCallback)((e,t)=>{e.dispatch({effects:$r.scrollIntoView(t,{y:`center`,yMargin:32})})},[]),y=(0,W.useCallback)(t=>{if(!e||!_||_.slots.length===0)return;let n=Math.max(0,Math.min(_.slots.length-1,t)),r=_.slots[n];u(n),r.kind===`metric`?(e.dispatch({selection:{anchor:r.from,head:r.to}}),v(e,r.from)):r.kind===`add-metric`&&(e.dispatch({selection:{anchor:r.from,head:r.from}}),v(e,r.from))},[e,_,v]),b=(0,W.useCallback)(e=>{_&&y(_.activeSlotIndex+e)},[_,y]),x=(0,W.useCallback)((t,n)=>{if(!e||!_)return;let r=_.slots[_.activeSlotIndex];if(r){if(_.context===`workout`){if(r.kind===`add-metric`){let t=e.state.doc.lineAt(e.state.selection.main.head),r=t.text.length>0&&!/\s$/.test(t.text),i=`${r?` `:``}${n.value}`,a=t.to+ +!!r,o=t.to+i.length;u(null),e.dispatch({changes:{from:t.to,to:t.to,insert:i},selection:{anchor:a,head:o},userEvent:`input.wheel`}),v(e,a);return}let i=n.value;if(t.id===`duration-min`||t.id===`duration-sec`){let e=_.drums.find(e=>e.id===`duration-min`),r=_.drums.find(e=>e.id===`duration-sec`);i=`${t.id===`duration-min`?n.value:e?.selectedValue??`1`}:${t.id===`duration-sec`?n.value:r?.selectedValue??`00`}`}else if(t.id===`unit-amount`||t.id===`unit-suffix`){let e=_.drums.find(e=>e.id===`unit-amount`),r=_.drums.find(e=>e.id===`unit-suffix`);i=`${t.id===`unit-amount`?n.value:e?.selectedValue??`20`}${t.id===`unit-suffix`?n.value:r?.selectedValue??`kg`}`}let a=r.from+i.length;e.dispatch({changes:{from:r.from,to:r.to,insert:i},selection:{anchor:r.from,head:a},userEvent:`input.wheel`}),v(e,r.from);return}if(_.context===`markdown`){let t=e.state.doc.line(_.lineNumber),r=e.state.selection.main,i=n.value;if(i.startsWith(`block:`)){let n=i.slice(6),r=t.text.trim().length>0?`
|
|
817
|
-
`:``;if(n===`time`||n===`log`){let i=`${r}\`\`\`${n}\n\n\`\`\``,a=t.to+r.length+4+n.length;u(null),e.dispatch({changes:{from:t.to,to:t.to,insert:i},selection:{anchor:a},userEvent:`input.wheel`}),v(e,a)}else if(n===`query`){let n=`${r}\`\`\`query\nsum:reps{} every week | :bar{}\n\`\`\``,i=t.to+r.length+9;u(null),e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:i,head:i+30},userEvent:`input.wheel`}),v(e,i)}else if(n===`table`){let n=`${r}| Movement | Load | Notes |\n| --- | --- | --- |\n| Squat | 100kg | Smooth |\n`;e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:t.to+n.length},userEvent:`input.wheel`})}else if(n===`divider`){let n=`${r}---\n`;e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:t.to+n.length},userEvent:`input.wheel`})}return}if(i.startsWith(`prefix:`)){let n=`${i.slice(7)}${t.text.replace(/^(#{1,6}\s+|>\s+|-\s+\[[ xX]\]\s+|[-*+]\s+|\d+\.\s+)/,``)}`;e.dispatch({changes:{from:t.from,to:t.to,insert:n},selection:{anchor:t.from+n.length},userEvent:`input.wheel`}),v(e,t.from);return}if(i.startsWith(`wrap:`)){let t=i.slice(5),n=r.empty?`text`:e.state.doc.sliceString(r.from,r.to),a=`${t}${n}${t}`;e.dispatch({changes:{from:r.from,to:r.to,insert:a},selection:{anchor:r.from+t.length,head:r.from+t.length+n.length},userEvent:`input.wheel`});return}if(i.startsWith(`insert:`)){let t=i.slice(7);e.dispatch({changes:{from:r.to,to:r.to,insert:t},selection:{anchor:r.to+t.length},userEvent:`input.wheel`});return}}if(_.context===`query`){let t=e.state.doc.line(_.lineNumber),r=n.value;if(r.startsWith(`replace:`)){let n=r.slice(8);e.dispatch({changes:{from:t.from,to:t.to,insert:n},selection:{anchor:t.from+n.length},userEvent:`input.wheel`})}else if(r.startsWith(`append:`)){let n=r.slice(7);t.text.includes(n.trim())||e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:t.to+n.length},userEvent:`input.wheel`})}}}},[e,_,v]),S=(0,W.useCallback)(()=>{if(!e)return;let t=e.state.selection.main.head,n=e.state.doc.lineAt(t),r=n.text.match(/^(\s*)/),i=`\n${r?r[1]:``}`,a=n.to+i.length;u(null),e.dispatch({changes:{from:n.to,to:n.to,insert:i},selection:{anchor:a},userEvent:`input.wheel`}),v(e,a)},[e,v]),C=(0,W.useCallback)(()=>{e&&(e.contentDOM.setAttribute(`inputmode`,`text`),a(!0),e.focus())},[e,a]),w=(0,W.useCallback)(()=>{e&&(e.contentDOM.setAttribute(`inputmode`,`none`),a(!1),e.focus())},[e,a]),T=(0,W.useCallback)(()=>{e?.contentDOM.blur(),o()},[e,o]),E=(0,W.useCallback)((e,t)=>{f.current={x:e,y:t}},[]),D=(0,W.useCallback)((e,t)=>{let n=f.current;if(f.current=null,!n)return;let r=e-n.x,i=t-n.y;Math.abs(r)>=28&&Math.abs(r)>Math.abs(i)*1.2&&b(r<0?1:-1)},[b]);if(!r||!e||!_)return null;if(i)return(0,G.jsxs)(`div`,{"data-testid":`mobile-typing-bar`,style:{bottom:`${p}px`},className:`fixed inset-x-0 z-40 h-10 flex items-center justify-between gap-1.5 px-2.5 bg-[#F7F6F3] dark:bg-card border-t border-border select-none`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-return-wheel-btn`,onMouseDown:e=>e.preventDefault(),onClick:w,className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(Xn,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Wheel`})]}),(0,G.jsx)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>gi(e),"aria-label":`Indent line`,className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(gr,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:S,className:`inline-flex items-center gap-1 h-7 px-2 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(fn,{weight:`bold`,className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:`Line`})]})]}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-done-btn`,onMouseDown:e=>e.preventDefault(),onClick:T,className:`inline-flex items-center gap-1 h-7 px-2.5 rounded-[4px] bg-foreground text-background text-xs font-medium`,children:[(0,G.jsx)(Ze,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Done`})]})]});let O=_.slots[_.activeSlotIndex],k=_.context===`workout`&&O?.kind===`metric`;return(0,G.jsxs)(`section`,{"aria-label":`Mobile workout and note wheel composer`,"data-testid":`mobile-wheel-composer`,onMouseDown:e=>{e.target.tagName!==`INPUT`&&e.preventDefault()},onTouchStart:e=>{let t=e.touches[0];t&&E(t.clientX,t.clientY)},onTouchEnd:e=>{let t=e.changedTouches[0];t&&D(t.clientX,t.clientY)},className:`fixed inset-x-0 bottom-0 z-40 h-[40dvh] max-h-[300px] min-h-[216px] flex flex-col bg-[#F7F6F3] dark:bg-card border-t border-border select-none`,children:[(0,G.jsxs)(`div`,{className:`h-10 px-2.5 flex items-center justify-between gap-1.5 border-b border-border bg-background/70`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,"data-testid":`mobile-wheel-prev-slot`,"aria-label":`Previous slot`,disabled:_.activeSlotIndex<=0,onClick:()=>b(-1),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground disabled:opacity-35 hover:bg-muted transition-colors`,children:(0,G.jsx)(Er,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`mobile-wheel-next-slot`,"aria-label":`Next slot`,disabled:_.activeSlotIndex>=_.slots.length-1,onClick:()=>b(1),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground disabled:opacity-35 hover:bg-muted transition-colors`,children:(0,G.jsx)(g,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-newline-btn`,onClick:S,className:`inline-flex items-center gap-1 h-7 px-2 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(fn,{weight:`bold`,className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:`Line`})]}),(0,G.jsx)(`button`,{type:`button`,"aria-label":`Outdent line`,onClick:()=>uee(e),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(qt,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsx)(`button`,{type:`button`,"aria-label":`Indent line`,onClick:()=>gi(e),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(gr,{weight:`bold`,className:`h-3.5 w-3.5`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-type-btn`,onClick:C,className:`inline-flex items-center gap-1 h-7 px-2.5 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(Ir,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Type`})]}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-done-btn`,onClick:T,className:`inline-flex items-center gap-1 h-7 px-2.5 rounded-[4px] bg-foreground text-background text-xs font-medium`,children:[(0,G.jsx)(Ze,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Done`})]})]})]}),(0,G.jsxs)(`div`,{"data-testid":`mobile-wheel-slot-rail`,onPointerDown:e=>E(e.clientX,e.clientY),onPointerUp:e=>D(e.clientX,e.clientY),className:`h-9 px-2.5 flex items-center gap-1.5 overflow-x-auto border-b border-border scrollbar-none`,children:[(0,G.jsxs)(`span`,{className:`shrink-0 text-[10px] font-mono tabular-nums uppercase tracking-[0.05em] text-muted-foreground pr-1`,children:[`L`,_.lineNumber]}),_.slots.map((e,t)=>{let n=t===_.activeSlotIndex,r=e.kind===`add-metric`;return(0,G.jsx)(`button`,{type:`button`,"data-testid":`mobile-wheel-slot-${e.kind===`add-metric`?`add`:t}`,onClick:()=>y(t),className:K(`shrink-0 h-6 px-2.5 rounded-[4px] text-xs font-mono tabular-nums border transition-colors`,n?`bg-foreground text-background border-foreground font-semibold`:r?`bg-background text-foreground border-dashed border-border hover:bg-muted`:`bg-background text-muted-foreground border-border hover:text-foreground`),children:e.label},e.id)})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 flex divide-x divide-border`,children:_.drums.map(e=>(0,G.jsx)(C0,{drum:e,autoCommitOnScroll:k,onSelect:t=>x(e,t)},e.id))})]})},T0=({view:e,cursorVersion:t,disabled:n=!1})=>{let[r,i]=(0,W.useState)(null);if((0,W.useEffect)(()=>{if(!e||n||e.state.readOnly){i(null);return}let t=e.state.selection.main;if(t.empty||!e.hasFocus){i(null);return}let r=ck(e.state);if(!r||r.type!==`markdown`){i(null);return}let a=e.coordsAtPos(t.from),o=e.coordsAtPos(t.to),s=e.dom.getBoundingClientRect();if(!a||!o){i(null);return}let c=(a.left+o.right)/2-s.left,l=Math.max(96,Math.min(s.width-96,c)),u=a.top-s.top-38,d=u<4?o.bottom-s.top+6:u;i({top:d,left:l})},[e,t,n]),!r||!e)return null;let a=[{id:`bold`,label:`Bold (Ctrl+B)`,Icon:Zt,run:()=>{gk(e,`**`),e.focus()}},{id:`italic`,label:`Italic (Ctrl+I)`,Icon:Mn,run:()=>{gk(e,`*`),e.focus()}},{id:`strike`,label:`Strikethrough`,Icon:aee,run:()=>{gk(e,`~~`),e.focus()}},{id:`code`,label:`Inline code (Ctrl+E)`,Icon:jr,run:()=>{gk(e,"`"),e.focus()}},{id:`link`,label:`Insert link (Ctrl+K)`,Icon:Nt,run:()=>{_k(e),e.focus()}},{id:`timer`,label:`Wrap in timer block`,Icon:Kn,run:()=>{let t=e.state.selection.main;if(t.empty)return;let n=e.state.doc.sliceString(t.from,t.to),r=`\n\`\`\`time\n${n}\n\`\`\`\n`;e.dispatch({changes:{from:t.from,to:t.to,insert:r},selection:{anchor:t.from+9,head:t.from+9+n.length},userEvent:`input.format`}),e.focus()}}];return(0,G.jsx)(`div`,{role:`toolbar`,"aria-label":`Text formatting`,"data-testid":`selection-format-bar`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},style:{position:`absolute`,top:`${r.top}px`,left:`${r.left}px`,transform:`translateX(-50%)`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.04)`},className:`z-30 hidden lg:inline-flex items-center gap-0.5 px-1 py-0.5 rounded-[6px] bg-card border border-border text-foreground`,children:a.map(({id:e,label:t,Icon:n,run:r})=>(0,G.jsx)(`button`,{type:`button`,title:t,"aria-label":t,"data-testid":`format-bar-${e}`,onClick:r,className:`inline-flex items-center justify-center h-6 w-6 rounded-[4px] text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(n,{weight:`bold`,className:`h-3.5 w-3.5`})},e))})},E0=new vi,D0=new vi,O0=new vi,k0=new vi;async function A0(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 j0(e){let t=await A0(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`);return`${window.location.origin}/load?zip=${t}`}async function M0(e){let t=await A0(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`),n=`shared by ${Cw()}`;return`${window.location.origin}/?z=${t}&by=${encodeURIComponent(n)}`}var N0=({noteId:e,noteBlocks:t,sourceRevision:n=0,onIdentityChange:r,onSaved:i,beforeRun:o,onSaveRequest:s,onCommitChange:c,value:l,onChange:u,onDocUpdate:d,onCursorPositionChange:f,onBlur:p,theme:m=`vs`,readonly:h=!1,className:g=``,ariaLabel:_=`Note editor`,onStartWorkout:v,onCompleteWorkout:y,onBlocksChange:b,onAddToPlan:x,notePersistence:S,onViewCreated:C,mode:w=`edit`,lineWrapping:T=!0,showLineNumbers:E=!0,enablePreview:D=!0,showFrontmatter:O=!0,enableLinting:A=!0,enableOverlay:j=!1,commands:M,hideDefaultCommands:N=!1,enableInlineRuntime:P=!0,extensions:F,widgetComponents:I,activeSectionId:L,scrollToSectionId:R,results:z,placeholder:ee})=>{let te=(0,W.useRef)(null),B=(0,W.useRef)(null),ie=(0,W.useRef)(null),ae=(0,W.useRef)(``),oe=m===`dark`||m===`vs-dark`,{isDebugMode:se}=qS(),ce=D$(ie,S),[le,ue]=(0,W.useState)(null),[de,fe]=(0,W.useState)([]),[pe,me]=(0,W.useState)(1),[he,ge]=(0,W.useState)(0),_e=L??le,ve=X$(de,_e),[ye,V]=(0,W.useState)(null),[be,xe]=(0,W.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches),[Se,Ce]=(0,W.useState)(!1),[we,Te]=(0,W.useState)(!1);(0,W.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: 1023px)`),t=e=>{xe(e.matches),e.matches||(Ce(!1),Te(!1))};return xe(e.matches),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[H,Ee]=(0,W.useState)(null),[De,Oe]=(0,W.useState)(null),[ke,Ae]=(0,W.useState)(!1),je=(0,W.useRef)(null),Me=(0,W.useRef)(!1),Ne=(0,W.useRef)(n??0);(0,W.useEffect)(()=>{Ne.current=n??0},[n]);let[Pe,Fe]=(0,W.useState)(null),Ie=(0,W.useRef)(null),Le=(0,W.useCallback)(async(t,n=!1)=>{let r=B.current;if(!(!r||Me.current)){Me.current=!0,Fe(null);try{let s=await o?.();typeof s==`number`&&(Ne.current=s);let c=r.state.field(ak),l=await mF({noteId:e??a(),rawContent:c.rawContent,blocks:c.noteBlocks,expectedSourceRevision:Ne.current,...e?{}:{metadata:{title:`Playground workout`},noteType:`playground`}},t,a(),e?void 0:`playground`,ce);je.current=l,Ie.current=null,Ne.current=l.note.sourceRevision,r.dispatch({effects:ZO.of({blocks:l.note.blocks,sourceRevision:l.note.sourceRevision})}),i?.({rawContent:l.note.rawContent,blocks:l.note.blocks,sourceRevision:l.note.sourceRevision}),Ae(n),Ee(l.block),Oe(l.session.id)}catch(e){Fe(e instanceof Error?e.message:String(e))}finally{Me.current=!1}}},[e,ce,i,o]),Re=(0,W.useCallback)(()=>{Ee(null),Oe(null),Ae(!1)},[]),ze=(0,W.useCallback)(e=>{P&&Le(e,!0)},[P,Le]),Be=(0,W.useRef)(null),Ve=(0,W.useCallback)((e,t)=>{let n=Be.current,r=n!==null&&n.results===t,i=je.current;if(!i||!t)return Promise.reject(Error(`The saved run pin is unavailable.`));let a=i.session.id;if(Ie.current===a)return Promise.resolve();let o={id:i.block.id,contentId:i.session.blockContentId};if(!r&&t&&B.current){let t=B.current,n=dM(t.state,e,a);if(n){let e=n.from+n.insert.indexOf("```");t.dispatch({changes:n,effects:[$r.scrollIntoView(e,{y:`start`,yMargin:96})]}),u?.(t.state.doc.toString())}}r||(Be.current={results:t,resultId:a,runBlock:o});let s;try{s=xF(ce).record({resultId:a,noteId:i.session.noteId,blockId:i.session.blockId,data:t,createdAt:t.endTime}).then(()=>y?.(e,t,a,o))}catch(e){return Promise.reject(e instanceof Error?e:Error(String(e)))}return Promise.resolve(s).then(()=>{Be.current?.results===t&&(Be.current=null),Ie.current=a},()=>{}),s},[u,y,ce]),He=(0,W.useMemo)(()=>{if(N)return[];if(M&&M.length>0)return M;let e=[];return P?e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(ne,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:Le}):v&&e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(ne,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:v}),e.push({id:`playground`,label:`Playground`,icon:(0,G.jsx)(et,{className:`h-3 w-3`}),splitIcon:(0,G.jsx)(k,{className:`h-3 w-3`}),splitSuccessIcon:(0,G.jsx)(re,{className:`h-3 w-3`}),onClick:e=>{j0(e.content).then(e=>{let t=window.open(e,`wodwiki-playground`);t&&t.focus()})},onSplitClick:async e=>{let t=await M0(e.content);await navigator.clipboard.writeText(t)}}),x&&e.push({id:`plan`,label:`Plan`,icon:(0,G.jsx)(mt,{className:`h-3 w-3`}),onClick:x}),e},[M,v,x,P,N,Le]),Ue=(0,W.useMemo)(()=>Bi({codeLanguages:Mne}),[]),We=(0,W.useMemo)(()=>{let e=Math.max(1,n),r=I?[...I.keys()]:eo;if(t&&Object.keys(t).length>0)try{return co(l,t,e,{registeredWidgets:r}),t}catch{return so(l,{sourceRevision:e,blocks:t,registeredWidgets:r})}return so(l,{sourceRevision:e,registeredWidgets:r})},[l,t,n,I]),Ge=(0,W.useMemo)(()=>[...E?[Vi(),Kr()]:[],Si(),Mi(),oee(),hi(),...T?[$r.lineWrapping]:[],Ui.allowMultipleSelections.of(!0),Xi(),qi(),li(),dee(),ji.highest(Pi.of([{key:`Tab`,run:e=>si(e.state)!==null&&(di(e),!0)},{key:`Enter`,run:e=>{let t=e.state.selection.main,n=L0(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:(Zr(e),Yi(e))}}])),Pi.of([...fi,...Ei,...Li,...Ni,...Ti,...Xr,...Hi,Ki,{key:`Mod-s`,run:()=>(s?.(),!0)},{key:`Ctrl-.`,run:e=>{let t=z$(e.state);if(!t?.focusedMetric)return!1;let n=t.focusedMetric.type;return!new Set([`duration`,`rep`,`rounds`,`distance`,`resistance`]).has(n)&&(ct(()=>Promise.resolve().then(()=>bq).then(()=>{ct(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-C7ob6Wnu.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([0,1,2,3])).then(({runStatementBuilderFlow:n})=>{n(t,e)}).catch(()=>{xq.getState().open({placeholder:`Modify metric…`,sources:[]})})}),void 0),!0)}}]),_M,ak,JO.of({blocks:We,sourceRevision:Math.max(1,n),rawContent:l}),YO.of(I?[...I.keys()]:eo),ok,rA.of(O),iA.of(se),...D||!O?[qA]:[],...D?[HO,Hk,Xk,k$(e),a$(),m$(),Mj,wj(),Xj]:[],...A?[dk]:[],Nk,JD,xk,bk,Sk.of(P0),Ck.of(F0),...j?[vM]:[],Fk,WO.of(e=>{if(/^(https?:|mailto:|tel:)/i.test(e)){window.open(e,`_blank`,`noopener,noreferrer`);return}if(e.startsWith(`/`)&&typeof window<`u`){window.history.pushState({},``,e),window.dispatchEvent(new PopStateEvent(`popstate`));return}typeof window<`u`&&window.location.assign(e)}),qO,H$,...nM,UO,...I&&I.size>0?[eN(I)]:[],AM({executor:TW,onResultSaved:yF,readOnly:h,onCaptureRpe:h?void 0:async(e,t)=>{await VF(e,t)},onEditMetric:h?void 0:async(e,t)=>{if(await BF({resultId:e,occurrence:t.occurrence,metric:{type:t.metric.type,value:t.metric.value,image:t.metric.image}})===`not-found`)throw Error(`Result segment not found in storage.`)},noteHref:e=>GV(`blockContentId`in e||`dataType`in e?PV(e):OV(e))}),A$(e,ce),$r.domEventHandlers({focus:()=>(typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches&&!h&&Ce(!0),!1),blur:e=>{let t=e.relatedTarget;return(!t||!te.current?.contains(t))&&(Ce(!1),Te(!1)),p?.(),!1}}),$r.updateListener.of(e=>{if(e.docChanged){let t=e.state.field(ak);r?.({rawContent:t.rawContent,blocks:t.noteBlocks,sourceRevision:t.sourceRevision}),u(t.rawContent),d?.(e),z0(e.state,b,ae),e.transactions.some(e=>e.isUserEvent(`input`)&&!e.isUserEvent(`input.wheel`)&&!e.isUserEvent(`input.format`)||e.isUserEvent(`delete`)||e.isUserEvent(`paste`)||e.isUserEvent(`drop`))||c?.()}if(e.selectionSet||e.docChanged){ge(e=>e+1),e.transactions.some(e=>e.isUserEvent(`delete.backward`))&&si(e.startState)!==null&&si(e.state)===null&&L0(e.state,e.state.selection.main.head)?.value===``&&queueMicrotask(()=>{e.view.state===e.state&&ci(e.view)});let{head:t}=e.state.selection.main,n=e.state.doc.lineAt(t);f?.(n.number,t-n.from+1);let r=ck(e.state);ue(r?.id??null),me(n.number);let{sections:i}=e.state.field(ak);fe(i)}}),Ui.readOnly.of(h),$r.editable.of(!h),...ee?[Di(ee)]:[],$r.contentAttributes.of({"aria-label":_})],[u,f,p,d,b,r,h,s,c,E,T,D,O,se,A,j,e,ce,I,ee,_]);(0,W.useEffect)(()=>{let e=te.current;if(!e)return;let t;try{t=Ui.create({doc:l,extensions:[...Ge,E0.of(RO(oe)),D0.of(Ue),O0.of([]),k0.of($r.contentAttributes.of({inputmode:be&&!we?`none`:`text`})),...F??[]]})}catch(e){console.error(`NoteEditor: Failed to initialize EditorState, recovering with safe fallback`,e),t=Ui.create({doc:l,extensions:[E0.of(RO(oe)),D0.of(Ue)]})}let n=new $r({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:$r.scrollIntoView(n.state.selection.main.head,{y:`nearest`,yMargin:24})})})};i?.addEventListener(`resize`,o),n.contentDOM.addEventListener(`focus`,o),B.current=n,V(n),e.__codemirrorView=n,C?.(n);let{sections:s}=n.state.field(ak);fe(s);let c=n.state.doc.lineAt(n.state.selection.main.head).number;me(c);let u=ck(n.state);ue(u?.id??null);let d=n.state.field(ak);return r?.({rawContent:d.rawContent,blocks:d.noteBlocks,sourceRevision:d.sourceRevision}),z0(n.state,b,ae),()=>{cancelAnimationFrame(a),i?.removeEventListener(`resize`,o),n.contentDOM.removeEventListener(`focus`,o),delete e.__codemirrorView,V(null),n.destroy()}},[]),(0,W.useEffect)(()=>{let e=B.current;if(!e)return;let r=e.state.field(ak);if(l!==r.rawContent){let r=Math.max(1,n),i=t?so(l,{sourceRevision:r,blocks:t,registeredWidgets:I?[...I.keys()]:eo}):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:l},...a?{effects:QO.of({rawContent:l,blocks:t,sourceRevision:r})}:{}})}else t&&n!==r.sourceRevision&&e.dispatch({effects:ZO.of({blocks:t,sourceRevision:Math.max(1,n)})})},[l,t,n]),(0,W.useEffect)(()=>{B.current&&B.current.dispatch({effects:E0.reconfigure(RO(oe))})},[oe]);let Ke=(0,W.useRef)(be);Ke.current=be;let qe=(0,W.useRef)(we);return qe.current=we,(0,W.useEffect)(()=>{if(B.current){let e=[];B.current.dispatch({effects:[xi.reconfigure.of([...Ge,E0.of(RO(oe)),D0.of(Ue),O0.of(e),k0.of($r.contentAttributes.of({inputmode:Ke.current&&!qe.current?`none`:`text`})),...F??[]])]})}},[Ge,F,w,oe,Ue]),(0,W.useEffect)(()=>{B.current&&B.current.dispatch({effects:k0.reconfigure($r.contentAttributes.of({inputmode:be&&!we?`none`:`text`}))})},[be,we]),(0,W.useEffect)(()=>{let e=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches;!h&&!e&&B.current?.focus()},[h]),(0,W.useEffect)(()=>{if(R&&B.current){let e=B.current,t=e.state.doc.toString().split(`
|
|
816
|
+
`),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},U1={[J.Duration]:{label:`Timer`,Icon:Kn,textClass:`text-metric-time`,bgClass:`bg-metric-time/10`,borderClass:`border-metric-time/30`},[J.Rep]:{label:`Reps`,Icon:Ht,textClass:`text-metric-rep`,bgClass:`bg-metric-rep/10`,borderClass:`border-metric-rep/30`},[J.Effort]:{label:`Exercise`,Icon:nt,textClass:`text-metric-effort`,bgClass:`bg-metric-effort/10`,borderClass:`border-metric-effort/30`},[J.Rounds]:{label:`Rounds`,Icon:E,textClass:`text-metric-rounds`,bgClass:`bg-metric-rounds/10`,borderClass:`border-metric-rounds/30`},[J.Distance]:{label:`Distance`,Icon:_n,textClass:`text-metric-distance`,bgClass:`bg-metric-distance/10`,borderClass:`border-metric-distance/30`},[J.Resistance]:{label:`Weight`,Icon:Ln,textClass:`text-metric-resistance`,bgClass:`bg-metric-resistance/10`,borderClass:`border-metric-resistance/30`},[J.Equipment]:{label:`Equipment`,Icon:Rt,textClass:`text-metric-equipment`,bgClass:`bg-metric-equipment/10`,borderClass:`border-metric-equipment/30`},[J.Action]:{label:`Action`,Icon:xr,textClass:`text-metric-action`,bgClass:`bg-metric-action/10`,borderClass:`border-metric-action/30`},[J.Label]:{label:`Label`,Icon:sn,textClass:`text-muted-foreground`,bgClass:`bg-muted/40`,borderClass:`border-border`}},W1={[J.Rep]:`reps`,[J.Effort]:`movement`,[J.Resistance]:`weight`},G1=({metric:e,tooltip:t,isFocused:n,onClick:r})=>{let i=U1[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),c=i?.Icon;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 tabular-nums`,`pointer-events-auto transition-opacity hover:opacity-80`,i?.bgClass??`bg-muted/40`,i?.textClass??`text-muted-foreground`,i?.borderClass??`border-border`,r&&`cursor-pointer`,n&&`font-bold ring-1 ring-foreground/20`),children:[a?(0,G.jsx)(`span`,{children:e.icon}):c?(0,G.jsx)(c,{weight:`bold`,className:`h-2.5 w-2.5 shrink-0`}):null,!a&&(0,G.jsx)(`span`,{className:`sr-only`,children:s}),!a&&(0,G.jsx)(`span`,{className:`font-semibold`,children:o||s})]})};function K1(e){let t=Pa(e.metadata);return{refs:t?.refs??[],diagnostics:t?.diagnostics??[]}}function q1(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 J1=({view:e,cursorVersion:t,getCursorFocusState:n,hidden:r=!1})=>{let[i,a]=(0,W.useState)(null),[o,s]=(0,W.useState)(null),[c,l]=(0,W.useState)(null),u=(0,W.useRef)(null),d=(0,W.useCallback)(()=>{if(!e||r){s(null),a(null);return}let t=(n??z$)(e.state);s(t),a(t?q1(e,t):null)},[e,n,r]);(0,W.useEffect)(()=>{d()},[d,t]),(0,W.useEffect)(()=>{if(!e||r)return;let t=()=>d();return window.addEventListener(`scroll`,t,!0),window.addEventListener(`resize`,t,!0),()=>{window.removeEventListener(`scroll`,t,!0),window.removeEventListener(`resize`,t,!0)}},[e,d,r]);let f=e?.state&&typeof e.state.field==`function`?si(e.state)===`active`:!1;if(r||!i||!o?.section||f)return null;let p=o.allStatements?.filter(e=>e.meta?.line===o.cursorLine-o.section.startLine)??(o.statement?[o.statement]:[]),m=p.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=K1(e);if(t.refs.length>0||t.diagnostics.length>0)return!1}return!0}),h=VY(m,`runtime-badge`),g=p.flatMap(e=>e.metrics.toArray()),_=[],v=[],y=[];for(let e of g){let t=K1(e);for(let e of t.refs){let t=`${e.kind}:${e.slug}`;_.includes(t)||(_.push(t),v.push(e))}y.push(...t.diagnostics)}let b=[],S=[];for(let e of g){let t=Ua(e.metadata);if(t){b.some(e=>e.slug===t.slug)||b.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);S.includes(t)||S.push(t)}}let C=typeof e?.state?.facet==`function`?e.state.facet(tA)?.()??null:null,w=typeof e?.state?.doc?.sliceString==`function`?T$(e.state.doc.sliceString(o.lineFrom,o.lineTo)):null,T=e=>e.reason===`conflict`||e.reason.endsWith(`equipment`)||e.reason===`invalid-explicit`&&e.token&&w?.equipment.includes(e.token)?`equipment`:`effort`,E=e=>typeof e==`string`&&e.trim()?e:null,D=async t=>{if(!e)return;let n=e.state.doc.sliceString(o.lineFrom,o.lineTo),r=xq.getState();if(t===`effort`){let t=await r.open({placeholder:`Change effort...`,sources:[v$(`effort`)]});if(t.dismissed)return;let i=E(t.item.payload);if(!i)return;e.dispatch({changes:{from:o.lineFrom,to:o.lineTo,insert:E$(n,{effort:i})}});return}let i=[...w?.equipment??[]];for(;;){let e=await r.open({placeholder:i.length>0?`Add equipment (Esc to finish)...`:`Set equipment...`,sources:[v$(`equipment`)]});if(e.dismissed)break;let t=E(e.item.payload);t&&!i.includes(t)&&i.push(t)}((w?.jsonFrom??-1)>=0||i.length>0)&&e.dispatch({changes:{from:o.lineFrom,to:o.lineTo,insert:E$(n,{equipment:i})}})},O=async()=>{if(!e)return;let t=e.state.doc.sliceString(o.lineFrom,o.lineTo),n=xq.getState(),r,i=await n.open({placeholder:`Add effort (Esc to skip)...`,sources:[v$(`effort`)]});i.dismissed||(r=E(i.item.payload)??void 0);let a=[];for(;;){let e=await n.open({placeholder:`Add equipment (Esc to finish)...`,sources:[v$(`equipment`)]});if(e.dismissed)break;let t=E(e.item.payload);t&&!a.includes(t)&&a.push(t)}!r&&a.length===0||e.dispatch({changes:{from:o.lineFrom,to:o.lineTo,insert:E$(t,{effort:r,equipment:a})}})},k=()=>{e&&typeof e.dispatch==`function`&&e.dispatch({effects:[j$.of(null)]}),d()},A=async t=>{if(!e||!t.token)return;let n=T(t),r=await xq.getState().open({placeholder:`Replace "${t.token}"...`,sources:[v$(n,t.candidates)]});if(r.dismissed)return;let i=E(r.item.payload);if(!i)return;let a=e.state.doc.sliceString(o.lineFrom,o.lineTo).indexOf(t.token);a<0||e.dispatch({changes:{from:o.lineFrom+a,to:o.lineFrom+a+t.token.length,insert:i}})},j=async(e,t)=>{t.trim()&&(e===`effort`?await b$(t):await S$(t),k())},M=async e=>{if(!e.trim())return;let t=await xq.getState().open({placeholder:`Link "${e}" as alias to effort...`,sources:[v$(`effort`)]});if(t.dismissed)return;let n=E(t.item.payload);n&&(await x$(n,e),k())},N=async e=>{e.trim()&&(await C$(e),k())},P=t=>{let n=W1[t.type];if(!n||!e)return;let r=t.type===J.Effort?`effort`:t.type===J.Equipment?`equipment`:null;if(r&&w?.jsonFrom!==void 0&&w.jsonFrom>=0){D(r);return}ct(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-C7x-7JGx.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([0,1,2,3])).then(({runStatementBuilderFlow:t})=>{t(o,e,n)})};return(0,G.jsx)(`div`,{ref:u,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]`,i.belowLine?`bg-card border border-border rounded-[6px]`:`bg-transparent`,`transition-opacity duration-100 max-w-full`),style:{top:i.top,left:i.left,maxWidth:i.maxWidth},"aria-live":`polite`,"aria-label":`Metric inline panel`,children:m.length>0||v.length>0||b.length>0||y.length>0||S.length>0?(0,G.jsxs)(`div`,{className:`flex items-center gap-1 flex-wrap`,children:[m.map((e,t)=>(0,G.jsx)(G1,{metric:e,tooltip:e.type===J.Hint?String(e.value??``):h[t]?.tooltip,isFocused:o.focusedMetric===e,onClick:W1[e.type]?()=>P(e):void 0},`${e.type}-${t}`)),v.map(e=>{let t=e.kind===`effort`&&o.focusedMetric?.type===J.Effort||e.kind===`equipment`&&o.focusedMetric?.type===J.Equipment,n=e.kind===`effort`?nt:Rt;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 D(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 ring-1 ring-foreground/20`),children:[(0,G.jsx)(n,{weight:`bold`,className:`h-2.5 w-2.5 shrink-0`}),(0,G.jsx)(`span`,{className:`sr-only`,children:e.kind===`effort`?`Exercise`:`Equipment`}),(0,G.jsx)(`span`,{className:`font-semibold`,children:e.label}),C&&(0,G.jsx)(`a`,{href:C.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 inline-flex items-center`,onClick:e=>e.stopPropagation(),children:(0,G.jsx)(x,{weight:`bold`,className:`h-2.5 w-2.5`})})]},`${e.kind}:${e.slug}`)}),b.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}),C&&(0,G.jsx)(`a`,{href:C.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 inline-flex items-center`,onClick:e=>e.stopPropagation(),children:(0,G.jsx)(x,{weight:`bold`,className:`h-2.5 w-2.5`})})]},`tag:${e.slug}`)),w?.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-[4px] border text-[11px] font-medium bg-destructive/10 text-destructive border-destructive/30`,children:[(0,G.jsx)(tee,{weight:`bold`,className:`h-3 w-3 shrink-0`}),(0,G.jsx)(`span`,{children:`Malformed reference JSON`})]}),S.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 N(e),children:`+ Tag`})]},`unresolved-tag:${e}`)),y.map((e,t)=>{let n=T(e),r=e.token?.trim()??``,i=e.reason===`unknown-effort`,a=`${e.reason}-${r||t}`,o=c===a||c===`all`;return(0,G.jsxs)(`span`,{"data-testid":`editor-ref-unknown`,title:e.message,onClick:()=>{o||l(a)},className:K(`pointer-events-auto inline-flex flex-wrap items-center gap-1.5 px-1.5 py-0.5 rounded-[6px] 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(),j(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(),M(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(),j(`equipment`,r)},children:`+ Equipment`}),(0,G.jsx)(`button`,{type:`button`,className:`underline cursor-pointer hover:text-foreground`,onClick:t=>{t.stopPropagation(),A(e)},children:`Select existing`}),C&&(0,G.jsx)(`a`,{href:C.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(),l(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 O(),className:`pointer-events-auto inline-flex items-center px-1.5 py-0.5 rounded-full border border-dashed border-border text-[10px] leading-none text-muted-foreground hover:text-foreground hover:border-foreground 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`})})},Y1=Array.from({length:61},(e,t)=>({id:`min-${t}`,label:`${t}m`,value:String(t)})),X1=[`00`,`05`,`10`,`15`,`20`,`30`,`45`],Z1=X1.map(e=>({id:`sec-${e}`,label:`${e}s`,value:e})),Q1=[...[`21-15-9`,`15-12-9`,`12-9-6`,`10-8-6-4-2`,`5-5-5-5-5`].map(e=>({id:`scheme-${e}`,label:e,sublabel:`Scheme`,value:e})),...Array.from({length:50},(e,t)=>{let n=String(t+1);return{id:`rep-${n}`,label:n,value:n}}),...[`60`,`75`,`100`].map(e=>({id:`rep-${e}`,label:e,value:e}))],$1=Array.from({length:12},(e,t)=>{let n=t+1,r=`(${n})`;return{id:`rounds-${n}`,label:`${n} ${n===1?`round`:`rounds`}`,sublabel:r,value:r}}),e0=`5,7.5,10,12,15,16,20,22.5,24,25,30,32,35,40,42.5,45,50,52.5,60,65,70,75,80,85,90,95,100,105,115,120,135,140,155,160,185,205,225,245,275,315`.split(`,`),t0=`10,15,20,25,30,40,50,75,100,150,200,250,300,400,500,600,800,1000,1200,1600,2000,5000,1,1.5,2,3,5,10`.split(`,`),n0=[`kg`,`lb`,`pood`,`%`],r0=[`m`,`km`,`cal`,`ft`,`mi`,`yd`],i0=[{id:`act-rest`,label:`Rest`,sublabel:`:rest`,value:`:rest`},{id:`act-emom`,label:`EMOM`,sublabel:`1:00`,value:`1:00`},{id:`act-buyin`,label:`Buy-in`,sublabel:`Header`,value:`Buy-in:`},{id:`act-cashout`,label:`Cash-out`,sublabel:`Header`,value:`Cash-out:`}],a0=[`Air Squat`,`Back Squat`,`Front Squat`,`Deadlift`,`Kettlebell Swing`,`Pull-up`,`Push-up`,`Burpee`,`Thruster`,`Wall Ball`,`Box Jump`,`Row`,`Run`,`Double Under`],o0=[{id:`md-blocks`,label:`Blocks`,options:[{id:`blk-time`,label:`Timer Block`,sublabel:"```time",value:`block:time`},{id:`blk-log`,label:`Log Block`,sublabel:"```log",value:`block:log`},{id:`blk-query`,label:`Query Block`,sublabel:"```query",value:`block:query`},{id:`blk-table`,label:`Table (3x2)`,sublabel:`| Col |`,value:`block:table`},{id:`blk-divider`,label:`Divider`,sublabel:`---`,value:`block:divider`}]},{id:`md-format`,label:`Format`,options:[{id:`fmt-h1`,label:`Heading 1`,sublabel:`# Title`,value:`prefix:# `},{id:`fmt-h2`,label:`Heading 2`,sublabel:`## Section`,value:`prefix:## `},{id:`fmt-h3`,label:`Heading 3`,sublabel:`### Detail`,value:`prefix:### `},{id:`fmt-quote`,label:`Blockquote`,sublabel:`> Quote`,value:`prefix:> `},{id:`fmt-bold`,label:`Bold`,sublabel:`**text**`,value:`wrap:**`},{id:`fmt-code`,label:`Inline Code`,sublabel:"`code`",value:"wrap:`"}]},{id:`md-lists`,label:`Lists & Links`,options:[{id:`lst-task`,label:`Task Checkbox`,sublabel:`- [ ]`,value:`prefix:- [ ] `},{id:`lst-bullet`,label:`Bullet Item`,sublabel:`- `,value:`prefix:- `},{id:`lst-number`,label:`Numbered Item`,sublabel:`1. `,value:`prefix:1. `},{id:`lst-link`,label:`External Link`,sublabel:`[Label](url)`,value:`insert:[Link](https://)`},{id:`lst-wiki`,label:`Note Link`,sublabel:`[[Note]]`,value:`insert:[[Note]]`}]}],s0=[{id:`wql-metric`,label:`Query`,options:[{id:`q-reps`,label:`Total Reps`,sublabel:`sum:reps{}`,value:`replace:sum:reps{}`},{id:`q-vol`,label:`Total Volume`,sublabel:`sum:totalVolume{}`,value:`replace:sum:totalVolume{}`},{id:`q-dur`,label:`Total Duration`,sublabel:`sum:duration{}`,value:`replace:sum:duration{}`},{id:`q-sessions`,label:`Find Sessions`,sublabel:`find session{}`,value:`replace:find session{}`},{id:`q-notes`,label:`Find Notes`,sublabel:`find note{}`,value:`replace:find note{}`}]},{id:`wql-scope`,label:`Scope`,options:[{id:`s-note`,label:`This Note`,sublabel:`:note`,value:`append: :note`},{id:`s-all`,label:`All History`,sublabel:`Global`,value:`noop:`}]},{id:`wql-window`,label:`Window`,options:[{id:`w-week`,label:`Every Week`,sublabel:`every week`,value:`append: every week`},{id:`w-month`,label:`Every Month`,sublabel:`every month`,value:`append: every month`},{id:`w-4w`,label:`Last 4 Weeks`,sublabel:`last 4w`,value:`append: last 4w`},{id:`w-12w`,label:`Last 12 Weeks`,sublabel:`last 12w`,value:`append: last 12w`}]},{id:`wql-chart`,label:`Chart`,options:[{id:`c-bar`,label:`Bar Chart`,sublabel:`| :bar{}`,value:`append: | :bar{}`},{id:`c-line`,label:`Timeseries`,sublabel:`| :timeseries{}`,value:`append: | :timeseries{}`},{id:`c-table`,label:`Table`,sublabel:`| :table{}`,value:`append: | :table{}`}]}];function c0(e){return e.trim().toLowerCase()}function l0(e,t){let n=new Set,r=e=>{if(!e)return;let t=c0(e);if(t){n.add(t);for(let e of t.split(/[\s/_-]+/))e.length>=3&&n.add(e)}};r(e.notebookSlug);for(let t of e.tags)r(t);r(e.defaultEffort);for(let t of e.defaultEquipment)r(t);let i=QZ(t);for(let e of i.activeTags)r(e);if(t.trimStart().startsWith(`---`)){let{meta:e}=Eo(t);for(let t of[`tags`,`domain`,`discipline`,`category`,`equipment`,`format`,`intent`]){let n=e[t];if(typeof n==`string`)r(n);else if(Array.isArray(n))for(let e of n)typeof e==`string`&&r(e)}}return n}async function u0(e,t){let n=_$(t),r=QZ(t,{noteId:e}),i=new Set(r.activeTags),a,o,s=n.effort,c=[...n.equipment??[]],l,u,d=[];if(e)try{let t=await Z.getNote(e);if(t){if(a=t.notebookId,a){o=a.replace(/^notebook\//,``);let e=await Z.getNote(a).catch(()=>null);if(e?.rawContent){let t=_$(e.rawContent);!s&&t.effort&&(s=t.effort);for(let e of t.equipment??[])c.includes(e)||c.push(e);let n=QZ(e.rawContent);for(let e of n.activeTags)i.add(e)}if(e?.tags)for(let t of e.tags)i.add(t)}if(t.tags)for(let e of t.tags)i.add(e)}}catch{}let f=cF(),p=new Set,m=new Set([`duration`,`time`,`rep`,`reps`,`effort`,`rounds`,`distance`,`resistance`,`weight`,`action`,`equipment`,`sound`,`system`,`label`]),h=e=>{let t=f.resolve(e);if(t)for(let e of t.contributions){if(e.kind!==`metric`)continue;let t=e.type.toLowerCase();if(t===`resistance`&&e.unit&&!l)l=e.unit;else if(t===`distance`&&e.unit&&!u)u=e.unit;else if(!m.has(t)&&!p.has(t)){p.add(t);let n=e.value===void 0?`1`:String(e.value);d.push({type:e.type,starterValue:n})}}};for(let e of i)h(e);for(let e of r.propertySources)for(let[t,n]of Object.entries(e.metrics??{})){let e=t.toLowerCase();if(!m.has(e)&&!p.has(e)){p.add(e);let r=typeof n==`object`&&n&&`value`in n?String(n.value??`1`):`1`;d.push({type:t,starterValue:r})}}return{notebookId:a,notebookSlug:o,tags:[...i],defaultEffort:s,defaultEquipment:c,preferredMassUnit:l,preferredDistanceUnit:u,customMetricTypes:d}}function d0(e,t,n){let r=0;if(t.defaultEffort&&e.slug===t.defaultEffort&&(r+=100),e.equipment?.some(e=>t.defaultEquipment.includes(e))&&(r+=40),e.baseAttributes?.discipline&&n.has(e.baseAttributes.discipline.toLowerCase())&&(r+=30),e.sourcePath){let t=e.sourcePath.toLowerCase();for(let e of n)if(e.length>=3&&t.includes(e)){r+=20;break}}let i=e.slug.toLowerCase();for(let e of n)if(e.length>=4&&i.includes(e)){r+=10;break}return r}function f0(e,t,n){let r=oN(),i=r.isInitialized()?[...r.list()]:[],a=l0(t,n);if(i.length===0){let t=a0.map(e=>({id:`eff-${e.toLowerCase().replace(/\s+/g,`-`)}`,label:e,value:e}));return e&&!t.some(t=>t.value.toLowerCase()===e.toLowerCase())?[{id:`eff-current`,label:e,value:e},...t]:t}let o=i.map(e=>({effort:e,score:d0(e,t,a)})).sort((e,t)=>t.score===e.score?e.effort.label.localeCompare(t.effort.label):t.score-e.score).slice(0,80).map(({effort:e,score:t})=>({id:`eff-${e.slug}`,label:e.label,sublabel:t>0?`Scoped`:e.baseAttributes?.discipline,value:e.label})),s=e.trim();return s&&!o.some(e=>e.value.toLowerCase()===s.toLowerCase())&&o.unshift({id:`eff-current`,label:s,value:s}),o}function p0(e,t){let n=XP(),r=[...n.isInitialized()?n.list():[]].sort((e,n)=>{let r=+!!t.defaultEquipment.includes(e.slug),i=+!!t.defaultEquipment.includes(n.slug);return i===r?e.label.localeCompare(n.label):i-r}),i=r.length>0?r.map(e=>({id:`eq-${e.slug}`,label:e.label,value:e.label})):[{id:`eq-kb`,label:`Kettlebell`,value:`KB`},{id:`eq-db`,label:`Dumbbell`,value:`DB`},{id:`eq-bb`,label:`Barbell`,value:`Barbell`},{id:`eq-rig`,label:`Pull-up Bar`,value:`Pull-up Bar`}],a=e.trim();return a&&!i.some(e=>e.value.toLowerCase()===a.toLowerCase())&&i.unshift({id:`eq-current`,label:a,value:a}),i}function m0(e,t){let n=cF().list(),r=new Set(t.tags.map(e=>e.toLowerCase())),i=[...n].filter(e=>!e.isCategory).sort((e,t)=>{let n=+!!r.has(e.slug.toLowerCase()),i=+!!r.has(t.slug.toLowerCase());return i===n?e.slug.localeCompare(t.slug):i-n}).map(e=>({id:`tag-${e.slug}`,label:`#${e.slug}`,value:`#${e.slug}`}));i.length===0&&i.push({id:`tag-emom`,label:`#emom`,value:`#emom`},{id:`tag-amrap`,label:`#amrap`,value:`#amrap`},{id:`tag-for-time`,label:`#for-time`,value:`#for-time`});let a=e.trim();return a&&!i.some(e=>e.value.toLowerCase()===a.toLowerCase())&&i.unshift({id:`tag-current`,label:a,value:a}),i}function h0(e){let t=e.trim().match(/^(\d+):(\d{2})(?::(\d{2}))?$/);if(t){if(t[3]!==void 0){let e=parseInt(t[1],10)*60+parseInt(t[2],10);return{minutes:String(Math.min(60,e)),seconds:t[3]}}return{minutes:String(Math.min(60,parseInt(t[1],10))),seconds:X1.includes(t[2])?t[2]:`00`}}return{minutes:`1`,seconds:`00`}}function g0(e,t,n){let r=e.trim().match(/^(@?\d+(?:\.\d+)?)\s*([a-zA-Z%]+)?$/);return r?{amount:r[1].replace(/^@/,``),unit:r[2]||n}:{amount:t,unit:n}}function _0(e,t,n){let r=e.metricType??``;if(r===J.Duration){let{minutes:t,seconds:n}=h0(e.rawText);return[{id:`duration-min`,label:`Minutes`,options:Y1,selectedValue:t},{id:`duration-sec`,label:`Seconds`,options:Z1,selectedValue:n}]}if(r===J.Rep){let t=e.rawText.trim();return[{id:`rep-value`,label:`Reps / Scheme`,options:Q1.some(e=>e.value===t)?Q1:[{id:`rep-cur`,label:t,value:t},...Q1],selectedValue:t||`10`}]}if(r===J.Rounds){let t=e.rawText.trim();return[{id:`rounds-value`,label:`Rounds`,options:$1.some(e=>e.value===t)?$1:[{id:`rounds-cur`,label:t,value:t},...$1],selectedValue:t||`(3)`}]}if(r===J.Resistance){let n=t.preferredMassUnit??`kg`,{amount:r,unit:i}=g0(e.rawText,`20`,n),a=t.preferredMassUnit&&!n0.includes(t.preferredMassUnit)?[t.preferredMassUnit,...n0]:[n,...n0.filter(e=>e!==n)],o=(e0.includes(r)?e0:[r,...e0]).map(e=>({id:`wt-${e}`,label:e,value:e})),s=(a.includes(i)?a:[i,...a]).map(e=>({id:`wt-u-${e}`,label:e,value:e}));return[{id:`unit-amount`,label:`Load`,options:o,selectedValue:r},{id:`unit-suffix`,label:`Unit`,options:s,selectedValue:i}]}if(r===J.Distance){let n=t.preferredDistanceUnit??`m`,{amount:r,unit:i}=g0(e.rawText,`400`,n),a=t.preferredDistanceUnit&&!r0.includes(t.preferredDistanceUnit)?[t.preferredDistanceUnit,...r0]:[n,...r0.filter(e=>e!==n)],o=(t0.includes(r)?t0:[r,...t0]).map(e=>({id:`dist-${e}`,label:e,value:e})),s=(a.includes(i)?a:[i,...a]).map(e=>({id:`dist-u-${e}`,label:e,value:e}));return[{id:`unit-amount`,label:`Distance`,options:o,selectedValue:r},{id:`unit-suffix`,label:`Unit`,options:s,selectedValue:i}]}if(r===J.Equipment){let n=p0(e.rawText,t);return[{id:`equipment-value`,label:`Equipment`,options:n,selectedValue:n[0]?.value??e.rawText}]}if(r===`tag`){let n=m0(e.rawText,t);return[{id:`tag-value`,label:`Tag`,options:n,selectedValue:n.find(t=>t.value.toLowerCase()===e.rawText.trim().toLowerCase())?.value??n[0]?.value??e.rawText}]}if(r===J.Action){let t=e.rawText.trim();return[{id:`action-value`,label:`Action`,options:i0.some(e=>e.value===t)?i0:[{id:`act-cur`,label:t,value:t},...i0],selectedValue:t}]}let i=f0(e.rawText,t,n);return[{id:`effort-value`,label:`Movement / Effort`,options:i,selectedValue:i.find(t=>t.value.toLowerCase()===e.rawText.trim().toLowerCase())?.value??e.rawText.trim()}]}function v0(e,t){let n=f0(``,e,t)[0]?.value??`Air Squat`,r=e.preferredMassUnit??`kg`,i=e.preferredDistanceUnit??`m`,a=m0(``,e)[0]?.value??`#emom`,o=[{id:`add-duration`,label:`Duration / Timer`,sublabel:`1:00`,value:`1:00`},{id:`add-rep`,label:`Reps / Scheme`,sublabel:`10`,value:`10`},{id:`add-effort`,label:`Movement / Effort`,sublabel:n,value:n},{id:`add-weight`,label:`Weight / Load`,sublabel:`20${r}`,value:`20${r}`},{id:`add-distance`,label:`Distance`,sublabel:`400${i}`,value:`400${i}`},{id:`add-rounds`,label:`Rounds`,sublabel:`(3)`,value:`(3)`},{id:`add-rest`,label:`Rest / Action`,sublabel:`:rest`,value:`:rest`},{id:`add-tag`,label:`Tag (#)`,sublabel:a,value:a},...e.customMetricTypes.map(e=>({id:`add-custom-${e.type}`,label:e.type,sublabel:e.starterValue,value:e.starterValue}))];return{id:`add-metric-type`,label:`Select Metric Type to Insert`,options:o,selectedValue:o[0].value}}function y0(e){let t=z$(e),n=e.selection.main.head,r=e.doc.lineAt(n),i=[];if(t?.statement&&t.section.contentFrom!==void 0){let n=t.section.contentFrom,a=t.statement,o=[];for(let e of a.metrics){if(e.type!==J.Equipment)continue;let t=Pa(e.metadata);if(t?.matched===`whole`||t?.matched==="default")continue;let r=a.metricMeta?.get(e);r&&o.push({from:n+r.startOffset,to:n+r.endOffset})}let s=new Set;Array.from(a.metrics).forEach((t,c)=>{if(t.type===J.Sound||t.type===J.System)return;let l=Ua(t.metadata),u=typeof t.type==`string`&&t.type.startsWith(`tag.`);if(l&&!u)return;if(t.type===J.Equipment){let e=Pa(t.metadata);if(e?.matched===`whole`||e?.matched==="default")return}let d=a.metricMeta?.get(t);if(!d)return;let f=n+d.startOffset,p=n+d.endOffset;if(t.type===J.Effort){for(let t of o)if(t.from===f&&t.to<p)for(f=t.to;f<p&&/\s/.test(e.doc.sliceString(f,f+1));)f++}if(f<r.from||p>r.to||f>=p)return;let m=`${f}:${p}`;if(s.has(m))return;s.add(m);let h=e.doc.sliceString(f,p),g=u||/^#[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(h.trim())?`tag`:t.type===J.Choice?String(t.alternatives[0]?.type??J.Effort):String(t.type);i.push({id:`metric-${c}-${f}`,kind:`metric`,label:h.trim(),metricType:g,from:f,to:p,rawText:h})}),i.sort((e,t)=>e.from-t.from)}return i.push({id:`add-metric`,kind:`add-metric`,label:`+ Add`,from:r.to,to:r.to,rawText:``}),i}function b0(e,t,n){let r=e.selection.main.head,i=e.doc.lineAt(r),a=e.doc.toString(),o=e.field(ak,!1)?.sections.find(e=>(e.type===`time`||e.type===`log`||e.type===`query`)&&i.number>=e.startLine&&i.number<=e.endLine)??null;if(!o)try{o=ck(e)}catch{o=e.field(ak,!1)?.sections.find(e=>i.number>=e.startLine&&i.number<=e.endLine)??null}if((o?.type===`time`||o?.type===`log`)&&i.number>o.startLine&&i.number<o.endLine){let o=y0(e),s=o.findIndex(e=>e.kind===`metric`&&r>=e.from&&r<=e.to);n!=null&&n>=0&&n<o.length?s=n:s<0&&(s=o.length-1);let c=o[s]??o[o.length-1],l=c.kind===`add-metric`?[v0(t,a)]:_0(c,t,a);return{context:`workout`,lineNumber:i.number,lineFrom:i.from,lineTo:i.to,slots:o,activeSlotIndex:s,drums:l}}if(o?.type===`query`&&i.number>o.startLine&&i.number<o.endLine){let e=s0.map(e=>({id:e.id,kind:`query-stage`,label:e.label,from:i.from,to:i.to,rawText:i.text})),t=n!=null&&n>=0&&n<e.length?n:0,r=s0[t];return{context:`query`,lineNumber:i.number,lineFrom:i.from,lineTo:i.to,slots:e,activeSlotIndex:t,drums:[{id:r.id,label:r.label,options:r.options,selectedValue:r.options[0].value}]}}let s=o0.map(e=>({id:e.id,kind:`markdown-group`,label:e.label,from:i.from,to:i.to,rawText:i.text})),c=n!=null&&n>=0&&n<s.length?n:0,l=o0[c];return{context:`markdown`,lineNumber:i.number,lineFrom:i.from,lineTo:i.to,slots:s,activeSlotIndex:c,drums:[{id:l.id,label:l.label,options:l.options,selectedValue:l.options[0].value}]}}var x0={tags:[],defaultEquipment:[],customMetricTypes:[]},S0=36,C0=({drum:e,autoCommitOnScroll:t,onSelect:n})=>{let r=(0,W.useRef)(null),i=(0,W.useRef)(!1),a=(0,W.useRef)(null),o=(0,W.useMemo)(()=>{let t=e.options.findIndex(t=>t.value===e.selectedValue);return t>=0?t:0},[e.options,e.selectedValue]);(0,W.useEffect)(()=>{let e=r.current;if(!e)return;let t=o*S0;Math.abs(e.scrollTop-t)>4&&(i.current=!0,e.scrollTop=t,window.setTimeout(()=>{i.current=!1},80))},[e.id,o]),(0,W.useEffect)(()=>()=>{a.current!==null&&window.clearTimeout(a.current)},[]);let s=(0,W.useCallback)(()=>{!t||i.current||(a.current!==null&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{let t=r.current;if(!t)return;let i=Math.max(0,Math.min(e.options.length-1,Math.round(t.scrollTop/S0))),a=e.options[i];a&&a.value!==e.selectedValue&&n(a)},130))},[t,e.options,e.selectedValue,n]);return(0,G.jsxs)(`div`,{className:`relative flex-1 min-w-0 h-full flex flex-col overflow-hidden`,"data-testid":`wheel-drum-${e.id}`,children:[(0,G.jsx)(`div`,{className:`px-2.5 py-1 text-[10px] font-semibold uppercase tracking-[0.06em] text-muted-foreground border-b border-border/70 truncate`,children:e.label}),(0,G.jsxs)(`div`,{className:`relative flex-1 min-h-0 overflow-hidden`,children:[(0,G.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-x-2 top-1/2 -translate-y-1/2 h-9 border-y border-border bg-background/55 rounded-[4px]`}),(0,G.jsx)(`div`,{ref:r,onScroll:s,className:`relative z-10 h-full overflow-y-auto snap-y snap-mandatory overscroll-contain scrollbar-none`,style:{paddingTop:`calc(50% - 18px)`,paddingBottom:`calc(50% - 18px)`},children:e.options.map((e,t)=>{let a=t===o;return(0,G.jsxs)(`button`,{type:`button`,"data-testid":`wheel-option-${e.id}`,onMouseDown:e=>e.preventDefault(),onClick:()=>{let a=r.current;a&&(i.current=!0,typeof a.scrollTo==`function`?a.scrollTo({top:t*S0,behavior:`smooth`}):a.scrollTop=t*S0,window.setTimeout(()=>{i.current=!1},160)),n(e)},className:K(`w-full h-9 snap-center px-3 flex items-center justify-between gap-2 text-left transition-colors`,a?`text-foreground font-semibold`:`text-muted-foreground hover:text-foreground`),children:[(0,G.jsx)(`span`,{className:`truncate text-[13px] font-mono tabular-nums`,children:e.label}),e.sublabel&&(0,G.jsx)(`span`,{className:`shrink-0 text-[11px] font-mono tabular-nums text-muted-foreground`,children:e.sublabel})]},e.id)})})]})]})},w0=({view:e,noteId:t,cursorVersion:n,isOpen:r,isTypingMode:i,onSwitchToTyping:a,onClose:o})=>{let[s,c]=(0,W.useState)(x0),[l,u]=(0,W.useState)(null),d=(0,W.useRef)(-1),f=(0,W.useRef)(null),[p,m]=(0,W.useState)(0),h=e?.state.doc.toString()??``;(0,W.useEffect)(()=>{if(!r||!e)return;let n=!1;return u0(t,h).then(e=>{n||c(e)}),()=>{n=!0}},[r,t,h,e]),(0,W.useEffect)(()=>{if(!r||!i||typeof window>`u`){m(0);return}let e=window.visualViewport;if(!e)return;let t=()=>{let t=Math.max(0,window.innerHeight-(e.height+e.offsetTop));m(t)};return t(),e.addEventListener(`resize`,t),e.addEventListener(`scroll`,t),()=>{e.removeEventListener(`resize`,t),e.removeEventListener(`scroll`,t)}},[r,i]),(0,W.useEffect)(()=>{if(!e)return;let t=e.state.doc.lineAt(e.state.selection.main.head).number;t!==d.current&&(d.current=t,u(null))},[e,n]);let _=(0,W.useMemo)(()=>!e||!r?null:b0(e.state,s,l),[e,r,s,l,n]),v=(0,W.useCallback)((e,t)=>{e.dispatch({effects:$r.scrollIntoView(t,{y:`center`,yMargin:32})})},[]),y=(0,W.useCallback)(t=>{if(!e||!_||_.slots.length===0)return;let n=Math.max(0,Math.min(_.slots.length-1,t)),r=_.slots[n];u(n),r.kind===`metric`?(e.dispatch({selection:{anchor:r.from,head:r.to}}),v(e,r.from)):r.kind===`add-metric`&&(e.dispatch({selection:{anchor:r.from,head:r.from}}),v(e,r.from))},[e,_,v]),b=(0,W.useCallback)(e=>{_&&y(_.activeSlotIndex+e)},[_,y]),x=(0,W.useCallback)((t,n)=>{if(!e||!_)return;let r=_.slots[_.activeSlotIndex];if(r){if(_.context===`workout`){if(r.kind===`add-metric`){let t=e.state.doc.lineAt(e.state.selection.main.head),r=t.text.length>0&&!/\s$/.test(t.text),i=`${r?` `:``}${n.value}`,a=t.to+ +!!r,o=t.to+i.length;u(null),e.dispatch({changes:{from:t.to,to:t.to,insert:i},selection:{anchor:a,head:o},userEvent:`input.wheel`}),v(e,a);return}let i=n.value;if(t.id===`duration-min`||t.id===`duration-sec`){let e=_.drums.find(e=>e.id===`duration-min`),r=_.drums.find(e=>e.id===`duration-sec`);i=`${t.id===`duration-min`?n.value:e?.selectedValue??`1`}:${t.id===`duration-sec`?n.value:r?.selectedValue??`00`}`}else if(t.id===`unit-amount`||t.id===`unit-suffix`){let e=_.drums.find(e=>e.id===`unit-amount`),r=_.drums.find(e=>e.id===`unit-suffix`);i=`${t.id===`unit-amount`?n.value:e?.selectedValue??`20`}${t.id===`unit-suffix`?n.value:r?.selectedValue??`kg`}`}let a=r.from+i.length;e.dispatch({changes:{from:r.from,to:r.to,insert:i},selection:{anchor:r.from,head:a},userEvent:`input.wheel`}),v(e,r.from);return}if(_.context===`markdown`){let t=e.state.doc.line(_.lineNumber),r=e.state.selection.main,i=n.value;if(i.startsWith(`block:`)){let n=i.slice(6),r=t.text.trim().length>0?`
|
|
817
|
+
`:``;if(n===`time`||n===`log`){let i=`${r}\`\`\`${n}\n\n\`\`\``,a=t.to+r.length+4+n.length;u(null),e.dispatch({changes:{from:t.to,to:t.to,insert:i},selection:{anchor:a},userEvent:`input.wheel`}),v(e,a)}else if(n===`query`){let n=`${r}\`\`\`query\nsum:reps{} every week | :bar{}\n\`\`\``,i=t.to+r.length+9;u(null),e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:i,head:i+30},userEvent:`input.wheel`}),v(e,i)}else if(n===`table`){let n=`${r}| Movement | Load | Notes |\n| --- | --- | --- |\n| Squat | 100kg | Smooth |\n`;e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:t.to+n.length},userEvent:`input.wheel`})}else if(n===`divider`){let n=`${r}---\n`;e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:t.to+n.length},userEvent:`input.wheel`})}return}if(i.startsWith(`prefix:`)){let n=`${i.slice(7)}${t.text.replace(/^(#{1,6}\s+|>\s+|-\s+\[[ xX]\]\s+|[-*+]\s+|\d+\.\s+)/,``)}`;e.dispatch({changes:{from:t.from,to:t.to,insert:n},selection:{anchor:t.from+n.length},userEvent:`input.wheel`}),v(e,t.from);return}if(i.startsWith(`wrap:`)){let t=i.slice(5),n=r.empty?`text`:e.state.doc.sliceString(r.from,r.to),a=`${t}${n}${t}`;e.dispatch({changes:{from:r.from,to:r.to,insert:a},selection:{anchor:r.from+t.length,head:r.from+t.length+n.length},userEvent:`input.wheel`});return}if(i.startsWith(`insert:`)){let t=i.slice(7);e.dispatch({changes:{from:r.to,to:r.to,insert:t},selection:{anchor:r.to+t.length},userEvent:`input.wheel`});return}}if(_.context===`query`){let t=e.state.doc.line(_.lineNumber),r=n.value;if(r.startsWith(`replace:`)){let n=r.slice(8);e.dispatch({changes:{from:t.from,to:t.to,insert:n},selection:{anchor:t.from+n.length},userEvent:`input.wheel`})}else if(r.startsWith(`append:`)){let n=r.slice(7);t.text.includes(n.trim())||e.dispatch({changes:{from:t.to,to:t.to,insert:n},selection:{anchor:t.to+n.length},userEvent:`input.wheel`})}}}},[e,_,v]),S=(0,W.useCallback)(()=>{if(!e)return;let t=e.state.selection.main.head,n=e.state.doc.lineAt(t),r=n.text.match(/^(\s*)/),i=`\n${r?r[1]:``}`,a=n.to+i.length;u(null),e.dispatch({changes:{from:n.to,to:n.to,insert:i},selection:{anchor:a},userEvent:`input.wheel`}),v(e,a)},[e,v]),C=(0,W.useCallback)(()=>{e&&(e.contentDOM.setAttribute(`inputmode`,`text`),a(!0),e.focus())},[e,a]),w=(0,W.useCallback)(()=>{e&&(e.contentDOM.setAttribute(`inputmode`,`none`),a(!1),e.focus())},[e,a]),T=(0,W.useCallback)(()=>{e?.contentDOM.blur(),o()},[e,o]),E=(0,W.useCallback)((e,t)=>{f.current={x:e,y:t}},[]),D=(0,W.useCallback)((e,t)=>{let n=f.current;if(f.current=null,!n)return;let r=e-n.x,i=t-n.y;Math.abs(r)>=28&&Math.abs(r)>Math.abs(i)*1.2&&b(r<0?1:-1)},[b]);if(!r||!e||!_)return null;if(i)return(0,G.jsxs)(`div`,{"data-testid":`mobile-typing-bar`,style:{bottom:`${p}px`},className:`fixed inset-x-0 z-40 h-10 flex items-center justify-between gap-1.5 px-2.5 bg-[#F7F6F3] dark:bg-card border-t border-border select-none`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-return-wheel-btn`,onMouseDown:e=>e.preventDefault(),onClick:w,className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(Xn,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Wheel`})]}),(0,G.jsx)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:()=>gi(e),"aria-label":`Indent line`,className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(gr,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`button`,{type:`button`,onMouseDown:e=>e.preventDefault(),onClick:S,className:`inline-flex items-center gap-1 h-7 px-2 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(fn,{weight:`bold`,className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:`Line`})]})]}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-done-btn`,onMouseDown:e=>e.preventDefault(),onClick:T,className:`inline-flex items-center gap-1 h-7 px-2.5 rounded-[4px] bg-foreground text-background text-xs font-medium`,children:[(0,G.jsx)(Ze,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Done`})]})]});let O=_.slots[_.activeSlotIndex],k=_.context===`workout`&&O?.kind===`metric`;return(0,G.jsxs)(`section`,{"aria-label":`Mobile workout and note wheel composer`,"data-testid":`mobile-wheel-composer`,onMouseDown:e=>{e.target.tagName!==`INPUT`&&e.preventDefault()},onTouchStart:e=>{let t=e.touches[0];t&&E(t.clientX,t.clientY)},onTouchEnd:e=>{let t=e.changedTouches[0];t&&D(t.clientX,t.clientY)},className:`fixed inset-x-0 bottom-0 z-40 h-[40dvh] max-h-[300px] min-h-[216px] flex flex-col bg-[#F7F6F3] dark:bg-card border-t border-border select-none`,children:[(0,G.jsxs)(`div`,{className:`h-10 px-2.5 flex items-center justify-between gap-1.5 border-b border-border bg-background/70`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(`button`,{type:`button`,"data-testid":`mobile-wheel-prev-slot`,"aria-label":`Previous slot`,disabled:_.activeSlotIndex<=0,onClick:()=>b(-1),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground disabled:opacity-35 hover:bg-muted transition-colors`,children:(0,G.jsx)(Er,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsx)(`button`,{type:`button`,"data-testid":`mobile-wheel-next-slot`,"aria-label":`Next slot`,disabled:_.activeSlotIndex>=_.slots.length-1,onClick:()=>b(1),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground disabled:opacity-35 hover:bg-muted transition-colors`,children:(0,G.jsx)(g,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-newline-btn`,onClick:S,className:`inline-flex items-center gap-1 h-7 px-2 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(fn,{weight:`bold`,className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:`Line`})]}),(0,G.jsx)(`button`,{type:`button`,"aria-label":`Outdent line`,onClick:()=>uee(e),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(qt,{weight:`bold`,className:`h-3.5 w-3.5`})}),(0,G.jsx)(`button`,{type:`button`,"aria-label":`Indent line`,onClick:()=>gi(e),className:`inline-flex items-center justify-center h-7 w-7 rounded-[4px] border border-border bg-background text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(gr,{weight:`bold`,className:`h-3.5 w-3.5`})})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-type-btn`,onClick:C,className:`inline-flex items-center gap-1 h-7 px-2.5 rounded-[4px] border border-border bg-background text-foreground text-xs font-medium hover:bg-muted transition-colors`,children:[(0,G.jsx)(Ir,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Type`})]}),(0,G.jsxs)(`button`,{type:`button`,"data-testid":`mobile-wheel-done-btn`,onClick:T,className:`inline-flex items-center gap-1 h-7 px-2.5 rounded-[4px] bg-foreground text-background text-xs font-medium`,children:[(0,G.jsx)(Ze,{weight:`bold`,className:`h-3.5 w-3.5`}),(0,G.jsx)(`span`,{children:`Done`})]})]})]}),(0,G.jsxs)(`div`,{"data-testid":`mobile-wheel-slot-rail`,onPointerDown:e=>E(e.clientX,e.clientY),onPointerUp:e=>D(e.clientX,e.clientY),className:`h-9 px-2.5 flex items-center gap-1.5 overflow-x-auto border-b border-border scrollbar-none`,children:[(0,G.jsxs)(`span`,{className:`shrink-0 text-[10px] font-mono tabular-nums uppercase tracking-[0.05em] text-muted-foreground pr-1`,children:[`L`,_.lineNumber]}),_.slots.map((e,t)=>{let n=t===_.activeSlotIndex,r=e.kind===`add-metric`;return(0,G.jsx)(`button`,{type:`button`,"data-testid":`mobile-wheel-slot-${e.kind===`add-metric`?`add`:t}`,onClick:()=>y(t),className:K(`shrink-0 h-6 px-2.5 rounded-[4px] text-xs font-mono tabular-nums border transition-colors`,n?`bg-foreground text-background border-foreground font-semibold`:r?`bg-background text-foreground border-dashed border-border hover:bg-muted`:`bg-background text-muted-foreground border-border hover:text-foreground`),children:e.label},e.id)})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 flex divide-x divide-border`,children:_.drums.map(e=>(0,G.jsx)(C0,{drum:e,autoCommitOnScroll:k,onSelect:t=>x(e,t)},e.id))})]})},T0=({view:e,cursorVersion:t,disabled:n=!1})=>{let[r,i]=(0,W.useState)(null);if((0,W.useEffect)(()=>{if(!e||n||e.state.readOnly){i(null);return}let t=e.state.selection.main;if(t.empty||!e.hasFocus){i(null);return}let r=ck(e.state);if(!r||r.type!==`markdown`){i(null);return}let a=e.coordsAtPos(t.from),o=e.coordsAtPos(t.to),s=e.dom.getBoundingClientRect();if(!a||!o){i(null);return}let c=(a.left+o.right)/2-s.left,l=Math.max(96,Math.min(s.width-96,c)),u=a.top-s.top-38,d=u<4?o.bottom-s.top+6:u;i({top:d,left:l})},[e,t,n]),!r||!e)return null;let a=[{id:`bold`,label:`Bold (Ctrl+B)`,Icon:Zt,run:()=>{gk(e,`**`),e.focus()}},{id:`italic`,label:`Italic (Ctrl+I)`,Icon:Mn,run:()=>{gk(e,`*`),e.focus()}},{id:`strike`,label:`Strikethrough`,Icon:aee,run:()=>{gk(e,`~~`),e.focus()}},{id:`code`,label:`Inline code (Ctrl+E)`,Icon:jr,run:()=>{gk(e,"`"),e.focus()}},{id:`link`,label:`Insert link (Ctrl+K)`,Icon:Nt,run:()=>{_k(e),e.focus()}},{id:`timer`,label:`Wrap in timer block`,Icon:Kn,run:()=>{let t=e.state.selection.main;if(t.empty)return;let n=e.state.doc.sliceString(t.from,t.to),r=`\n\`\`\`time\n${n}\n\`\`\`\n`;e.dispatch({changes:{from:t.from,to:t.to,insert:r},selection:{anchor:t.from+9,head:t.from+9+n.length},userEvent:`input.format`}),e.focus()}}];return(0,G.jsx)(`div`,{role:`toolbar`,"aria-label":`Text formatting`,"data-testid":`selection-format-bar`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},style:{position:`absolute`,top:`${r.top}px`,left:`${r.left}px`,transform:`translateX(-50%)`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.04)`},className:`z-30 hidden lg:inline-flex items-center gap-0.5 px-1 py-0.5 rounded-[6px] bg-card border border-border text-foreground`,children:a.map(({id:e,label:t,Icon:n,run:r})=>(0,G.jsx)(`button`,{type:`button`,title:t,"aria-label":t,"data-testid":`format-bar-${e}`,onClick:r,className:`inline-flex items-center justify-center h-6 w-6 rounded-[4px] text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,children:(0,G.jsx)(n,{weight:`bold`,className:`h-3.5 w-3.5`})},e))})},E0=new vi,D0=new vi,O0=new vi,k0=new vi;async function A0(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 j0(e){let t=await A0(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`);return`${window.location.origin}/load?zip=${t}`}async function M0(e){let t=await A0(`\`\`\`time\n${e.trimEnd()}\n\`\`\`\n`),n=`shared by ${Cw()}`;return`${window.location.origin}/?z=${t}&by=${encodeURIComponent(n)}`}var N0=({noteId:e,noteBlocks:t,sourceRevision:n=0,onIdentityChange:r,onSaved:i,beforeRun:o,onSaveRequest:s,onCommitChange:c,value:l,onChange:u,onDocUpdate:d,onCursorPositionChange:f,onBlur:p,theme:m=`vs`,readonly:h=!1,className:g=``,ariaLabel:_=`Note editor`,onStartWorkout:v,onCompleteWorkout:y,onBlocksChange:b,onAddToPlan:x,notePersistence:S,onViewCreated:C,mode:w=`edit`,lineWrapping:T=!0,showLineNumbers:E=!0,enablePreview:D=!0,showFrontmatter:O=!0,enableLinting:A=!0,enableOverlay:j=!1,commands:M,hideDefaultCommands:N=!1,enableInlineRuntime:P=!0,extensions:F,widgetComponents:I,activeSectionId:L,scrollToSectionId:R,results:z,placeholder:ee})=>{let te=(0,W.useRef)(null),B=(0,W.useRef)(null),ie=(0,W.useRef)(null),ae=(0,W.useRef)(``),oe=m===`dark`||m===`vs-dark`,{isDebugMode:se}=qS(),ce=D$(ie,S),[le,ue]=(0,W.useState)(null),[de,fe]=(0,W.useState)([]),[pe,me]=(0,W.useState)(1),[he,ge]=(0,W.useState)(0),_e=L??le,ve=X$(de,_e),[ye,V]=(0,W.useState)(null),[be,xe]=(0,W.useState)(()=>typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches),[Se,Ce]=(0,W.useState)(!1),[we,Te]=(0,W.useState)(!1);(0,W.useEffect)(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(max-width: 1023px)`),t=e=>{xe(e.matches),e.matches||(Ce(!1),Te(!1))};return xe(e.matches),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let[H,Ee]=(0,W.useState)(null),[De,Oe]=(0,W.useState)(null),[ke,Ae]=(0,W.useState)(!1),je=(0,W.useRef)(null),Me=(0,W.useRef)(!1),Ne=(0,W.useRef)(n??0);(0,W.useEffect)(()=>{Ne.current=n??0},[n]);let[Pe,Fe]=(0,W.useState)(null),Ie=(0,W.useRef)(null),Le=(0,W.useCallback)(async(t,n=!1)=>{let r=B.current;if(!(!r||Me.current)){Me.current=!0,Fe(null);try{let s=await o?.();typeof s==`number`&&(Ne.current=s);let c=r.state.field(ak),l=await mF({noteId:e??a(),rawContent:c.rawContent,blocks:c.noteBlocks,expectedSourceRevision:Ne.current,...e?{}:{metadata:{title:`Playground workout`},noteType:`playground`}},t,a(),e?void 0:`playground`,ce);je.current=l,Ie.current=null,Ne.current=l.note.sourceRevision,r.dispatch({effects:ZO.of({blocks:l.note.blocks,sourceRevision:l.note.sourceRevision})}),i?.({rawContent:l.note.rawContent,blocks:l.note.blocks,sourceRevision:l.note.sourceRevision}),Ae(n),Ee(l.block),Oe(l.session.id)}catch(e){Fe(e instanceof Error?e.message:String(e))}finally{Me.current=!1}}},[e,ce,i,o]),Re=(0,W.useCallback)(()=>{Ee(null),Oe(null),Ae(!1)},[]),ze=(0,W.useCallback)(e=>{P&&Le(e,!0)},[P,Le]),Be=(0,W.useRef)(null),Ve=(0,W.useCallback)((e,t)=>{let n=Be.current,r=n!==null&&n.results===t,i=je.current;if(!i||!t)return Promise.reject(Error(`The saved run pin is unavailable.`));let a=i.session.id;if(Ie.current===a)return Promise.resolve();let o={id:i.block.id,contentId:i.session.blockContentId};if(!r&&t&&B.current){let t=B.current,n=dM(t.state,e,a);if(n){let e=n.from+n.insert.indexOf("```");t.dispatch({changes:n,effects:[$r.scrollIntoView(e,{y:`start`,yMargin:96})]}),u?.(t.state.doc.toString())}}r||(Be.current={results:t,resultId:a,runBlock:o});let s;try{s=xF(ce).record({resultId:a,noteId:i.session.noteId,blockId:i.session.blockId,data:t,createdAt:t.endTime}).then(()=>y?.(e,t,a,o))}catch(e){return Promise.reject(e instanceof Error?e:Error(String(e)))}return Promise.resolve(s).then(()=>{Be.current?.results===t&&(Be.current=null),Ie.current=a},()=>{}),s},[u,y,ce]),He=(0,W.useMemo)(()=>{if(N)return[];if(M&&M.length>0)return M;let e=[];return P?e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(ne,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:Le}):v&&e.push({id:`run`,label:`Run`,icon:(0,G.jsx)(ne,{className:`h-3 w-3 fill-current`}),primary:!0,onClick:v}),e.push({id:`playground`,label:`Playground`,icon:(0,G.jsx)(et,{className:`h-3 w-3`}),splitIcon:(0,G.jsx)(k,{className:`h-3 w-3`}),splitSuccessIcon:(0,G.jsx)(re,{className:`h-3 w-3`}),onClick:e=>{j0(e.content).then(e=>{let t=window.open(e,`wodwiki-playground`);t&&t.focus()})},onSplitClick:async e=>{let t=await M0(e.content);await navigator.clipboard.writeText(t)}}),x&&e.push({id:`plan`,label:`Plan`,icon:(0,G.jsx)(mt,{className:`h-3 w-3`}),onClick:x}),e},[M,v,x,P,N,Le]),Ue=(0,W.useMemo)(()=>Bi({codeLanguages:Mne}),[]),We=(0,W.useMemo)(()=>{let e=Math.max(1,n),r=I?[...I.keys()]:eo;if(t&&Object.keys(t).length>0)try{return co(l,t,e,{registeredWidgets:r}),t}catch{return so(l,{sourceRevision:e,blocks:t,registeredWidgets:r})}return so(l,{sourceRevision:e,registeredWidgets:r})},[l,t,n,I]),Ge=(0,W.useMemo)(()=>[...E?[Vi(),Kr()]:[],Si(),Mi(),oee(),hi(),...T?[$r.lineWrapping]:[],Ui.allowMultipleSelections.of(!0),Xi(),qi(),li(),dee(),ji.highest(Pi.of([{key:`Tab`,run:e=>si(e.state)!==null&&(di(e),!0)},{key:`Enter`,run:e=>{let t=e.state.selection.main,n=L0(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:(Zr(e),Yi(e))}}])),Pi.of([...fi,...Ei,...Li,...Ni,...Ti,...Xr,...Hi,Ki,{key:`Mod-s`,run:()=>(s?.(),!0)},{key:`Ctrl-.`,run:e=>{let t=z$(e.state);if(!t?.focusedMetric)return!1;let n=t.focusedMetric.type;return!new Set([`duration`,`rep`,`rounds`,`distance`,`resistance`]).has(n)&&(ct(()=>Promise.resolve().then(()=>bq).then(()=>{ct(async()=>{let{runStatementBuilderFlow:e}=await import(`./statementBuilderFlow-C7x-7JGx.js`);return{runStatementBuilderFlow:e}},__vite__mapDeps([0,1,2,3])).then(({runStatementBuilderFlow:n})=>{n(t,e)}).catch(()=>{xq.getState().open({placeholder:`Modify metric…`,sources:[]})})}),void 0),!0)}}]),_M,ak,JO.of({blocks:We,sourceRevision:Math.max(1,n),rawContent:l}),YO.of(I?[...I.keys()]:eo),ok,rA.of(O),iA.of(se),...D||!O?[qA]:[],...D?[HO,Hk,Xk,k$(e),a$(),m$(),Mj,wj(),Xj]:[],...A?[dk]:[],Nk,JD,xk,bk,Sk.of(P0),Ck.of(F0),...j?[vM]:[],Fk,WO.of(e=>{if(/^(https?:|mailto:|tel:)/i.test(e)){window.open(e,`_blank`,`noopener,noreferrer`);return}if(e.startsWith(`/`)&&typeof window<`u`){window.history.pushState({},``,e),window.dispatchEvent(new PopStateEvent(`popstate`));return}typeof window<`u`&&window.location.assign(e)}),qO,H$,...nM,UO,...I&&I.size>0?[eN(I)]:[],AM({executor:TW,onResultSaved:yF,readOnly:h,onCaptureRpe:h?void 0:async(e,t)=>{await VF(e,t)},onEditMetric:h?void 0:async(e,t)=>{if(await BF({resultId:e,occurrence:t.occurrence,metric:{type:t.metric.type,value:t.metric.value,image:t.metric.image}})===`not-found`)throw Error(`Result segment not found in storage.`)},noteHref:e=>GV(`blockContentId`in e||`dataType`in e?PV(e):OV(e))}),A$(e,ce),$r.domEventHandlers({focus:()=>(typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches&&!h&&Ce(!0),!1),blur:e=>{let t=e.relatedTarget;return(!t||!te.current?.contains(t))&&(Ce(!1),Te(!1)),p?.(),!1}}),$r.updateListener.of(e=>{if(e.docChanged){let t=e.state.field(ak);r?.({rawContent:t.rawContent,blocks:t.noteBlocks,sourceRevision:t.sourceRevision}),u(t.rawContent),d?.(e),z0(e.state,b,ae),e.transactions.some(e=>e.isUserEvent(`input`)&&!e.isUserEvent(`input.wheel`)&&!e.isUserEvent(`input.format`)||e.isUserEvent(`delete`)||e.isUserEvent(`paste`)||e.isUserEvent(`drop`))||c?.()}if(e.selectionSet||e.docChanged){ge(e=>e+1),e.transactions.some(e=>e.isUserEvent(`delete.backward`))&&si(e.startState)!==null&&si(e.state)===null&&L0(e.state,e.state.selection.main.head)?.value===``&&queueMicrotask(()=>{e.view.state===e.state&&ci(e.view)});let{head:t}=e.state.selection.main,n=e.state.doc.lineAt(t);f?.(n.number,t-n.from+1);let r=ck(e.state);ue(r?.id??null),me(n.number);let{sections:i}=e.state.field(ak);fe(i)}}),Ui.readOnly.of(h),$r.editable.of(!h),...ee?[Di(ee)]:[],$r.contentAttributes.of({"aria-label":_})],[u,f,p,d,b,r,h,s,c,E,T,D,O,se,A,j,e,ce,I,ee,_]);(0,W.useEffect)(()=>{let e=te.current;if(!e)return;let t;try{t=Ui.create({doc:l,extensions:[...Ge,E0.of(RO(oe)),D0.of(Ue),O0.of([]),k0.of($r.contentAttributes.of({inputmode:be&&!we?`none`:`text`})),...F??[]]})}catch(e){console.error(`NoteEditor: Failed to initialize EditorState, recovering with safe fallback`,e),t=Ui.create({doc:l,extensions:[E0.of(RO(oe)),D0.of(Ue)]})}let n=new $r({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:$r.scrollIntoView(n.state.selection.main.head,{y:`nearest`,yMargin:24})})})};i?.addEventListener(`resize`,o),n.contentDOM.addEventListener(`focus`,o),B.current=n,V(n),e.__codemirrorView=n,C?.(n);let{sections:s}=n.state.field(ak);fe(s);let c=n.state.doc.lineAt(n.state.selection.main.head).number;me(c);let u=ck(n.state);ue(u?.id??null);let d=n.state.field(ak);return r?.({rawContent:d.rawContent,blocks:d.noteBlocks,sourceRevision:d.sourceRevision}),z0(n.state,b,ae),()=>{cancelAnimationFrame(a),i?.removeEventListener(`resize`,o),n.contentDOM.removeEventListener(`focus`,o),delete e.__codemirrorView,V(null),n.destroy()}},[]),(0,W.useEffect)(()=>{let e=B.current;if(!e)return;let r=e.state.field(ak);if(l!==r.rawContent){let r=Math.max(1,n),i=t?so(l,{sourceRevision:r,blocks:t,registeredWidgets:I?[...I.keys()]:eo}):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:l},...a?{effects:QO.of({rawContent:l,blocks:t,sourceRevision:r})}:{}})}else t&&n!==r.sourceRevision&&e.dispatch({effects:ZO.of({blocks:t,sourceRevision:Math.max(1,n)})})},[l,t,n]),(0,W.useEffect)(()=>{B.current&&B.current.dispatch({effects:E0.reconfigure(RO(oe))})},[oe]);let Ke=(0,W.useRef)(be);Ke.current=be;let qe=(0,W.useRef)(we);return qe.current=we,(0,W.useEffect)(()=>{if(B.current){let e=[];B.current.dispatch({effects:[xi.reconfigure.of([...Ge,E0.of(RO(oe)),D0.of(Ue),O0.of(e),k0.of($r.contentAttributes.of({inputmode:Ke.current&&!qe.current?`none`:`text`})),...F??[]])]})}},[Ge,F,w,oe,Ue]),(0,W.useEffect)(()=>{B.current&&B.current.dispatch({effects:k0.reconfigure($r.contentAttributes.of({inputmode:be&&!we?`none`:`text`}))})},[be,we]),(0,W.useEffect)(()=>{let e=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 1023px)`).matches;!h&&!e&&B.current?.focus()},[h]),(0,W.useEffect)(()=>{if(R&&B.current){let e=B.current,t=e.state.doc.toString().split(`
|
|
818
818
|
`),n=-1,r=R.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,`-`)===R}return!1}),n>=0&&n<t.length){let t=e.state.doc.line(n+1).from;e.dispatch({selection:{anchor:t,head:t},effects:[$r.scrollIntoView(t,{y:`start`,yMargin:20})]})}}},[R]),(0,G.jsxs)(`div`,{ref:te,className:`cm-note-editor relative w-full min-w-0 ${be&&Se&&!we&&!h?`pb-[42dvh]`:``} ${g}`,children:[j&&(0,G.jsx)(G$,{view:ye??B.current,widths:ve.widths,activeSectionId:_e,renderSlot:t=>{if(!O&&t.sectionType===`frontmatter`)return null;if(t.sectionType===`time`||t.sectionType===`log`)return(0,G.jsx)(b1,{noteId:e,sectionId:t.sectionId,view:t.view,isActive:t.isActive,widthPercent:t.widthPercent,cursorLine:pe,docVersion:t.docVersion,commands:He,extendedResults:z,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(ak),n=e.find(e=>e.id===t.sectionId);return(0,G.jsx)(e1,{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)(x1,{sectionId:t.sectionId,widgetName:t.widgetName,view:t.view,registry:I??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:pe}),Pe&&(0,G.jsxs)(`p`,{role:`alert`,className:`text-sm text-destructive`,children:[`Workout not started. `,Pe,` Your draft is kept.`]}),!j&&He.length>0&&(0,G.jsx)(V1,{view:ye??B.current,commands:He}),!h&&!be&&(0,G.jsx)(T0,{view:ye??B.current,cursorVersion:he}),(0,G.jsx)(J1,{view:ye??B.current,cursorVersion:he,hidden:be&&Se}),be&&!h&&(0,G.jsx)(w0,{view:ye??B.current,noteId:e,cursorVersion:he,isOpen:Se,isTypingMode:we,onSwitchToTyping:Te,onClose:()=>{Ce(!1),Te(!1)}}),H&&B.current&&(0,G.jsx)(P1,{block:H,view:ye??B.current,onClose:Re,onCompleteWorkout:Ve,resultId:De??void 0,autoStart:ke}),(0,G.jsx)(H1,{sections:de,isRuntimeActive:H!==null,editorState:(ye??B.current)?.state??null,onSelectBlock:ze})]})},P0=async e=>{if(!I0(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=L0(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)&&I0(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 h$();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=L0(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=L0(r,n);return/^[\w-]*$/.test(e)&&i?.propertyKey===o&&i.from===t}}},F0=g$();function I0(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 L0(e,t){if(!I0(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 R0(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=Qc({tags:cF()}).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(ak).noteBlocks[e.id]?.version??1,createdAt:Date.now(),widgetIds:{}}}function z0(e,t,n){if(!t)return;let r=e.field(ak).sections.filter(e=>e.type===`time`||e.type===`log`).map(t=>R0(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 B0({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)(ne,{size:11,fill:`currentColor`}),v.label??`Run`]})]});return(0,G.jsx)(i$,{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)(N0,{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 V0({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)(B0,{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 H0(e,t){return e>=t?`split`:`stack`}function U0(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:H0(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:H0(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 W0=e=>Math.max(0,Math.min(1,e)),G0=(e,t,n)=>e+(t-e)*n,K0=e=>1-(1-e)**2;function q0(e,t){return e===``||t===e}var J0={id:``,range:[0,1]};function Y0(e,t){if(!t||t.length===0)return{index:-1,stage:J0,t:0,ring:null};let n=W0(e),r=t.map(e=>({...e,start:W0(Math.min(e.range[0],e.range[1])),end:W0(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]??J0,o=(a.end??1)-(a.start??0),s=o>0?W0((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 X0(e,t,n){let r=t-n;return{progress:r>0?W0(-e/r):0,reached:e<=0,inView:e<n&&e+t>0}}function Z0(e,t){let n=t/2;for(let t of e)if(t.top<=n&&t.bottom>n)return t.id;return null}var Q0=(0,W.createContext)(null);function $0(){return(0,W.useContext)(Q0)}function e2({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=Z0(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=X0(r.top,r.height,e);t.onMeasure({slice:Y0(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)(Q0.Provider,{value:h,children:e})}function t2(e,t){let n=$0()?.registerAnchor;(0,W.useEffect)(()=>{if(n)return n(e,()=>t.current)},[n,e,t])}function n2({gateId:e,segmentId:t,className:n,children:r}){let i=$0(),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 r2({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=U0(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)(n$.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)(n2,{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 i2(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 a2(e,t,n=`smooth`){let r=i2(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 o2(e,t,n,r){let[i,a]=(0,W.useState)(()=>Y0(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=$0(),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(Y0(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 s2={reference:!0},c2={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 l2(e,t){let n=e.filter(e=>!s2[e.id]),r=e.filter(e=>s2[e.id]);if(n.length===0)return{groups:[],tail:r};let i=t?c2[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 u2(e){let t=Math.max(1,e.length);return e.map((e,n)=>({id:e.id,range:[n/t,(n+1)/t]}))}var d2=[{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 f2({slides:e=d2,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 p2=`wodwiki:text-filter-navigation`,m2=({paramName:e=`q`,placeholder:t=`Search…`,autoFocus:n=!1,className:r,navigationScope:i,inputTestId:a})=>{let[o,s]=j(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)(Gn,{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(p2,{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 h2(e){let t=[],n=!1;for(let r of e){if(r.trim()===`---`){n=!n;continue}n||t.push(r)}return t}function g2(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 _2(e){return new Date(e).toISOString().slice(0,10)}function v2(e,t){let n=t.trim().toLowerCase();return!n||e.name.toLowerCase().includes(n)||e.content.toLowerCase().includes(n)||e.date!==void 0&&_2(e.date).includes(n)}function y2(e){if(!e)return null;let t=h2(ko(e).split(`
|
|
819
819
|
`)).map(e=>e.trim()).filter(e=>e.length>0&&!e.startsWith(`#`)&&!e.startsWith("```"))[0];return t?g2(t):null}var b2=({category:e,workoutItems:t,onSelect:n,showSearch:r=!0,variant:i=`card`,className:a,navigationScope:o=`q`,getItemActions:s})=>{let[c]=j(`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=>v2(e,c)),[t,e,c]),h=(0,W.useMemo)(()=>m.map(e=>({item:e,preview:y2(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(p2,e),()=>{window.removeEventListener(p2,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)(m2,{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)(y,{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:ZS(new Date(e.item.date))}),(0,G.jsx)(Wr,{className:`size-4 text-muted-foreground shrink-0 transition-opacity`})]}):r.label},r.id)})},e.item.id)})})]})};function x2(){return(0,W.useEffect)(()=>{yW().catch(e=>console.warn(`[queryService] page source population failed`,e))},[]),(0,W.useSyncExternalStore)(SW,xW)}function S2(e,t){let n=e.find(e=>e.key===t&&!e.negate);return n&&n.values.length===1?n.values[0].value:null}function C2(e){let t=e.trim();if(!t.startsWith(`:`))return null;let n=TB(t),r=X(n);if(r.error||!Ah(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=S2(r.filters,`notebook`);if(e){let t=Xa(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=S2(r.filters,`notebook`);if(e){let t=Xa(e);return t===`journal`?`/journal${i}`:t===`playground`?`/playgrounds${i}`:`/notebook/${encodeURIComponent(t)}${i}`}let t=S2(r.filters,`source`);return t===`journal`?`/journal${i}`:t===`playground`?`/playgrounds${i}`:t===`feeds`||t===`notebooks`||t===`notebook`||t===`guides`?`/notes${i}`:S2(r.filters,`type`)===`dashboard`?`/dashboards${i}`:`/notes${i}`}default:return null}}function w2(e,t,n){return t?{...t,title:n?.title??t.title,description:n?.question??t.description}:r_(e,{fenceTag:Zy({type:n?.type??``,spanCols:n?.spanCols,spanFull:n?.spanFull,attributes:n?.attributes}).slice(3),adjacentTitle:n?.title?.trim()||void 0,adjacentDescription:n?.question?.trim()||void 0})}function T2(e){if(e.error)return!1;let t=c_(e).trim();if(!t)return!1;let n=Ig(t);return!n.doc.degenerate&&n.doc.assignments.length>0?n.diagnostics.length===0:!X(t).error}function E2({open:e,...t}){return e?(0,G.jsx)(D2,{...t}):null}function D2({onClose:e,mode:t,initialWql:n,initialObject:r,initial:i,subsetQuery:a,destination:o,executor:s,rangeStart:c,rangeEnd:l,preferredUnit:u,tokenValues:d,onApply:f,footerExtra:p,applyLabel:m=t===`edit`?`Apply changes`:`Add widget`}){let h=t===`inspect`,[g,_]=(0,W.useState)(()=>w2(n,r,i)),[v,y]=(0,W.useState)(()=>{let e=w2(n,r,i);return{valid:T2(e),error:e.error}}),[b,x]=(0,W.useState)(!1),[S,C]=(0,W.useState)(null),w=async()=>{if(!v.valid||!f||b)return;let t=c_(g).trim();if(!(!t||!T2(g))){x(!0),C(null);try{let n=l_(g).attributes;await f({title:g.title?.trim()||void 0,question:g.description?.trim()||void 0,type:g.view===`table`&&!g.rawViewType?``:g.rawViewType??g.view,spanCols:typeof g.span==`number`?g.span:void 0,spanFull:g.span===`full`||void 0,wql:t,queryObject:g,attributes:Object.keys(n).length>0?n:void 0}),e()}catch(e){C(e instanceof Error?e.message:String(e))}finally{x(!1)}}};return(0,G.jsx)(LE,{open:!0,onClose:e,presentation:`sheet`,title:t===`inspect`?`Inspect widget`:t===`edit`?`Edit widget`:`Add widget`,description:h?`Read-only — clone the dashboard to edit this widget.`:`Dataset, calculation, visualization, preview — then apply.`,footer:h&&!p?void 0:(0,G.jsxs)(G.Fragment,{children:[p,(0,G.jsx)(`div`,{className:`flex-1`}),!h&&(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:!v.valid||b,title:v.error,onClick:()=>void w(),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:b?`Applying…`:m})]})]}),children:(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,G.jsx)(jO,{density:`studio`,value:g,onChange:_,readOnly:h,subsetQuery:a,destination:o,executor:s,rangeStart:c,rangeEnd:l,preferredUnit:u,tokenValues:d,onValidationChange:y}),S&&(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:S})]})})}var O2=`__new__`;function k2(e){return e.open?(0,G.jsx)(A2,{...e},e.subsetQuery??`(whole-store)`):null}function A2({onOpenChange:e,initialQuery:t,subsetQuery:n,rangeStart:r,rangeEnd:i,preferredUnit:a}){let o=f(),{items:s,loading:c}=Nz(),l=s.filter(e=>e.editable),[u,d]=(0,W.useState)(l[0]?.slug??O2),[p,m]=(0,W.useState)(``),[h,g]=(0,W.useState)(null),_=()=>e(!1);return(0,G.jsx)(E2,{open:!0,onClose:_,mode:`add`,initialWql:t,subsetQuery:n,rangeStart:r,rangeEnd:i,preferredUnit:a,onApply:async e=>{g(null);let t={title:e.title,question:e.question,type:e.type,spanCols:e.spanCols,spanFull:e.spanFull,wql:e.wql,queryObject:e.queryObject,attributes:e.attributes};try{if(u===O2){let e=p.trim()||`New Dashboard`,n=await Uz.createDashboard(e);await Vz.update(n,ib(n.rawContent,t)),kz();let{meta:r}=Eo(n.rawContent),i=typeof r.slug==`string`&&r.slug.trim()?Yy(r.slug):Yy(e);_(),o(yz(i))}else{let e=await Vz.resolve(u);await Vz.update(e,ib(e.rawContent,t)),kz(),_(),o(yz(u))}}catch(e){let t=e instanceof Error?e.message:String(e);throw g(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===O2,onClick:()=>d(O2),className:`flex items-center gap-1 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors ${u===O2?`border-primary/60 bg-primary/10 text-primary`:`border-border text-muted-foreground hover:text-foreground hover:bg-muted`}`,children:[(0,G.jsx)(mt,{className:`size-3`}),` New dashboard`]})]}),u===O2&&(0,G.jsx)(`input`,{type:`text`,value:p,onChange:e=>m(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`})]}),h&&(0,G.jsxs)(`p`,{role:`alert`,"data-testid":`dashboard-save-error`,className:`mt-2 text-xs text-destructive font-mono`,children:[`Could not save: `,h]})]})})}var j2=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 M2(e){let t=e.split(`.`).pop()?.split(`?`)[0]?.toLowerCase()??``;return j2.has(t)}function N2(e){return/^https?:\/\//.test(e)||e.startsWith(`//`)}function P2({queryText:e,widgetType:t,widgetError:n,attributes:r}){let i=x2(),a=Hr(),[o,s]=(0,W.useState)(!1),c=/^\/dashboards?(?:\/|$)/.test(a.pathname),l=X(e),u=!l.error&&Ah(l)?e:null;return i?(0,G.jsxs)(`div`,{className:`my-5 not-prose`,children:[(0,G.jsx)(FO,{query:e,widgetType:t,widgetError:n,attributes:r,executor:TW,readOnly:!0,onAddToDashboard:c?void 0:()=>s(!0),noteHref:e=>GV(`blockContentId`in e||`dataType`in e?PV(e):OV(e))}),(0,G.jsx)(k2,{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 F2(e){let{meta:t,body:n}=Eo(e);return Object.keys(t).length===0&&n===e?{fields:null,body:e}:{fields:t,body:n.trim()}}var I2={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=C2(e);if(r)return(0,G.jsx)(M,{to:r,className:`underline underline-offset-2 transition-colors text-primary hover:text-primary/70`,children:t})}let r=N2(n),i=M2(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(`
|
|
820
820
|
`))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?Vg(r):void 0;return(0,G.jsx)(P2,{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})}},L2={...I2,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})}},R2={...I2,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})}},z2=[fr];function B2(e){return e.startsWith(`:`)?e:ar(e)}function V2(e){return e.type===`text`&&typeof e.value==`string`?e.value:(e.children??[]).map(V2).join(``)}function H2(e){return e.trim().toLowerCase().replace(/[^\p{L}\p{N} _-]/gu,``).replace(/ /g,`-`).replace(/-+/g,`-`)||`heading`}var U2=()=>e=>{let t=new Map,n=e=>{if(e.tagName&&/^h[1-6]$/.test(e.tagName)){let n=H2(V2(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 W2({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 G2={default:I2,heroLead:L2,heroBody:R2};function K2({prose:e,className:t,variant:n=`default`}){if(!e)return null;let{fields:r,body:i}=F2(e);return(0,G.jsxs)(`div`,{className:K(`prose-canvas`,t),children:[r&&(0,G.jsx)(W2,{fields:r}),i&&(0,G.jsx)(Hn,{remarkPlugins:z2,rehypePlugins:[U2],urlTransform:B2,components:G2[n],children:i})]})}var q2=({activations:e,fullBleed:t,runState:n,deps:r})=>{if(e.length===0)return null;let i=e[0];if($V(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)(Pr,{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||ne;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:()=>XV(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:()=>XV(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))})},J2=({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}`)})})}),Y2=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`})]}),X2=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`})]}),Z2=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)`})]}),Q2=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)`})]}),$2=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`})]}),e4=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)`})]}),t4=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`})]}),n4=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`})]}),r4=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`})]}),i4=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)`})]}),a4=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`})]}),o4=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 s4(e){switch(e){case`trophy`:return Q2;case`dumbbell`:return y;case`timer`:return X2;case`play`:return ne;case`blocks`:return Y2;case`puzzle`:return Z2;case`activity`:return i4;case`file-text`:return o4;default:return zn}}function c4(e){switch(e){case`basics-movement`:return Q2;case`basics-reps`:return $2;case`basics-load`:return e4;case`structure-rounds`:case`complex-rounds`:case`protocols-rounds`:return t4;case`structure-repscheme`:return n4;case`protocols-timer`:case`complex-time`:return X2;case`protocols-tag`:return r4;case`metrics-custom`:return i4;case`metrics-calc`:return a4;case`dialects-log`:case`dialects-climb`:return o4;default:return null}}function l4({quest:e,onClick:t,className:n,compact:r=!1,disabled:i=!1}){let a=c4(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)(re,{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)(P,{className:r?`size-3.5`:`size-4`}):(0,G.jsx)(Ae,{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 u4(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 d4=({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=fU[e.theme||`slate`]??fU.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`?u4(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)(K2,{prose:o,variant:`heroLead`,className:`mb-5`}),s&&(0,G.jsx)(K2,{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)(K2,{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)(l4,{quest:n,onClick:()=>b?.(r),compact:!0})},`hero-challenge-${t}`):null}return null}),t.length>0&&(0,G.jsx)(q2,{activations:t.map((e,t)=>QV(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)(K2,{prose:n,className:t===0?`mb-6`:`mt-4 mb-6`},`prose-${t}`):null}if(e.kind===`button`)return(0,G.jsx)(q2,{activations:[QV(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)(f2,{})},`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)(b2,{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)(l4,{quest:n,onClick:()=>b?.(r),compact:!0})},`challenge-${t}`):null}return null}),E.length>0?(0,G.jsx)(J2,{examples:E,activeIndex:Math.min(p,E.length-1),onSelect:t=>f(e,t)}):null,s&&A?(0,G.jsx)(q2,{activations:e.buttons.map((e,t)=>QV(e,t)),fullBleed:S,runState:l?u:void 0,deps:d}):null]})]},`${e.id}-${i}`)};function f4({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)(d4,{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 p4({sections:e,part:t,partCount:n,title:r,pane:i,cardArgs:a,onActivateSection:o}){let s=(0,W.useRef)(null),c=(0,W.useMemo)(()=>u2(e),[e]),{slice:l,subscribe:u}=o2(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)(r2,{trackRef:s,height:`${(e.length+1)*100}vh`,stages:c,activeIndex:l.index,pane:f?i:null,captions:(0,G.jsx)(f4,{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 m4({sections:e,groupKey:t,title:n,pane:r,cardArgs:i,onActivateSection:a}){let{groups:o,tail:s}=l2(e,t);return(0,G.jsxs)(G.Fragment,{children:[o.map((e,t)=>(0,G.jsx)(p4,{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)(d4,{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 h4({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,NE.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)(lr,{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 g4({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 _4=`hsl(var(--primary))`,v4={ink:`hsl(var(--foreground))`,editor:_4,timer:_4,analytics:_4,library:_4,rounds:_4},y4={editor:`WOD Editor & Autocomplete`,timer:`Clock`,analytics:`WQL Analytics`,metrics:`Own the Metrics`,result:`Run Results`},b4={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`},x4=`dQw4w9WgXcQ`,S4=`https://i.ytimg.com/vi/${x4}/hqdefault.jpg`;function C4({variant:e=`index`}){let t=HU(),{pathname:n}=Hr(),[r,i]=(0,W.useState)(null),a=(0,W.useMemo)(()=>aU(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)(h4,{videoId:x4,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)(g4,{index:`05`,before:`Wod Wiki `,accentText:`University`,after:``,accent:v4.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:S4,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)(ne,{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)(M,{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)(M,{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)(ne,{className:`size-3.5`}),`Watch`]})]},e.id))})]}),u]})}var w4=`22rem`,T4=`42rem`,E4=`20rem`,D4=`calc(100dvh - var(--canvas-sticky-top) - 2rem)`;function O4(e){return{editorWidth:e||`50%`,editorMinWidth:w4,editorMaxWidth:T4,editorMinHeight:E4,editorMaxHeight:D4}}function k4(e){let t=Math.max(1,e.split(`
|
|
@@ -1146,4 +1146,4 @@ Fran went unbroken until round three. Throat on fire.
|
|
|
1146
1146
|
`,O9]})]})}var Kse=`✎`;function qse({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)(A9,{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:Kse})]}),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)(oO,{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 Jse({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)(A9,{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 · ${E9.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)(oO,{query:e,onQueryChange:t,autoFocus:!0,showDiagnostics:!1,placeholder:`:session…`})]})]})}function Yse({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)(oO,{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)(A9,{wql:e})})}var M9=[[`inline`,`A · in-flow expansion`],[`dock`,`B · bound dock`],[`fence`,`C · fence-as-composer`]];function Xse(){let[e,t]=B(),n=e.get(`v`)??`inline`,[r,i]=(0,W.useState)(Hse),a=e=>{let r=M9[(M9.findIndex(([e])=>e===n)+e+M9.length)%M9.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)(j9,{children:D9.split("```time")[0].trim()}),(0,G.jsx)(Wse,{}),n===`inline`&&(0,G.jsx)(qse,{wql:r,setWql:i}),n===`dock`&&(0,G.jsx)(Jse,{wql:r,setWql:i}),n===`fence`&&(0,G.jsx)(Yse,{wql:r,setWql:i}),(0,G.jsx)(j9,{children:O9})]}),(0,G.jsx)(`div`,{className:`sticky top-6`,children:(0,G.jsx)(Gse,{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:`←`}),M9.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 N9(e,t,n=`absent`){return{id:e,fields:t,missPolicy:n,get:()=>void 0}}function Zse(){let e=new Np;return e.register(N9(`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(N9(`rpe-labels`,{rpe:{dimension:Y,type:`number`}})),e.register(N9(`profile`,{vo2max:{dimension:Y,type:`number`}})),e.register(N9(`disciplines`,{disciplineFactor:{dimension:Y,type:`number`}},`default-row`)),e}function Qse(e,t){for(let n of t)try{e.register(n)}catch{}}function P9(e,t=`segment`){let n=[],r=[];try{let i=xf(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 _p(Zse());Qse(i,[...Ip,...Bp]);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=Of(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=Id(a)),r.length===0&&n.push({severity:`warning`,message:`No calc line parsed.`}),{defs:r,diagnostics:n,dim:a,compound:o}}var $se=[`segment`,`workout`,`store`],F9=[`when`,`where`,`key`,`grouped`,`label`,`emit`,`meta`,`estimated`,`library`,`on`,`by`,`without`,`and`,`or`,`not`],I9=[`convert`,`lookup`,`has`,`round`,`floor`,`ceil`,`abs`,`clamp`,`min`,`max`,`sum`,`avg`,`count`,`last`,`windowMean`,`windowSum`,`windowSd`,`mean`],L9=[{name:`elapsed`,dim:Ld.elapsed.dim,detail:`s (time)`},{name:`reps`,dim:Ld.reps.dim,detail:`count`},{name:`resistance`,dim:Ld.resistance.dim,detail:`kg (mass)`},{name:`distance`,dim:Ld.distance.dim,detail:`m (length)`},{name:`effort`,dim:Rd.effort,detail:`resolved effort slug`},{name:`effortLabel`,dim:Rd.effortLabel,detail:`raw effort label`}],R9=[{name:`sessionRpe`,dim:Rd.sessionRpe,detail:`captured session RPE`},{name:`session.duration`,dim:Rd[`session.duration`],detail:`workout duration`},{name:`profile.vo2max`,dim:Rd[`profile.vo2max`],detail:`user VO₂max (mL/kg/min)`}],z9=Object.keys(Ld),ece=Object.keys(zd),B9=[{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`]}],V9=Object.keys(Ud),tce=Object.keys(zd);function nce(e){return e?V9.filter(t=>{let n=Ud[t];return n?n.dim.every((t,n)=>t===e[n]):!1}):V9}var rce=new Set([...F9,...$se,`lookup`]),ice=new Set(I9),ace=new Set([...L9.map(e=>e.name),...R9.map(e=>e.name),...z9,...B9.map(e=>e.name)]),oce=/^\d*\.?\d+(?:d)?/,sce=/^[A-Za-z_][\w.]*/,cce=ui.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(oce))return`number`;if(e.match(sce)){let t=e.current();return rce.has(t)?`keyword`:ice.has(t)?`function`:(ace.has(t),`variableName`)}return e.next(),null}}),lce=Qr.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 uce(){return new ii(cce,[Jr(lce)])}var dce=[`effort`,`thruster`,`push-press`,`front-squat`,`wall-ball`,`row`,`run`];function H9(e,t){return`${t?``:`"`}${e}"`}function fce(e={}){let t=e.scope??`segment`,n=()=>{let t=e.effortKeys?.().filter(Boolean)??[];return[`effort`,...t.length?t:dce.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=B9.filter(e=>e.name.startsWith(t)).map(e=>({label:e.name,apply:H9(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=B9.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:H9(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:H9(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=P9(n,t);if(!r.dim){let e=n.lastIndexOf(`->`);if(e>=0){let i=P9(n.slice(0,e),t);i.diagnostics.length===0&&(r=i)}}let i=r.diagnostics.length===0?r.dim:void 0,o=nce(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=z9.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(...L9.map(e=>({label:e.name,apply:e.name,detail:e.detail})));else if(o.push(...R9.map(e=>({label:e.name,apply:e.name,detail:e.detail}))),t===`workout`){for(let e of ece)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(...I9.map(e=>({label:`${e}()`,apply:`${e}()`,detail:`function`}))),t===`store`&&o.push(...tce.map(e=>({label:`${e}:{}`,apply:`${e}:`,detail:`WQL atom`}))),o.push(...F9.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 pce(e){return Yr({override:[fce(e)],interactionDelay:0})}function mce({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=$r.updateListener.of(e=>{e.docChanged&&l.current(e.state.doc.toString())}),o=new $r({state:Ui.create({doc:e,extensions:[uce(),pce({scope:n,effortKeys:()=>oN().list().map(e=>e.slug)}),JD,Vi(),Mi(),Pi.of([Ki,...Li,...Ti]),$r.lineWrapping,Ui.readOnly.of(i),r,$r.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 hce({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:gce(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 U9=[[`L`,`length`],[`M`,`mass`],[`T`,`time`],[`C`,`count`],[`E`,`energy`]];function gce(e){let t=[];return e.forEach((e,n)=>{e!==0&&t.push(e===1?U9[n][1]:`${U9[n][1]}${e}`)}),t.length?t.join(`·`):`dimensionless`}function W9(e){return new za({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 G9(e){return{...e,metrics:e.metrics.filter(e=>e.origin!==`analyzed`)}}function _ce(e){return e.output?.emitType??e.output?.key??e.id}function vce(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 K9(e){return String(Number.isInteger(e)?e:Math.round(e*100)/100)}function q9(e,t,n){return Zp(e,{userProfile:t.vo2max===void 0?void 0:{vo2max:t.vo2max},calcs:n}).engine}function yce(e){let t=[],n=e.defs[0];if(!n)return{rows:[],errors:[`No calc line to preview.`]};let r=_ce(n),i=e.logs.filter(e=>e.outputType===`segment`);if(e.scope===`segment`){let n=q9(e.block,e,e.defs),a=[];for(let e of i){let t=n.run(W9(G9(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:K9(i),unit:t.unit,estimated:t.origin===`analyzed-estimated`,raw:i})}return{rows:a,errors:t}}if(e.scope===`workout`){let n=i.map(G9),a=[];for(let t=1;t<=n.length;t++){let i=q9(e.block,e,e.defs);for(let e=0;e<t;e++)i.run(W9(n[e]));let o=vce(i.finalize(),r),s=o&&typeof o.value==`number`?o.value:NaN;o&&Number.isFinite(s)?a.push({label:`after line ${t}`,text:K9(s),unit:o.unit,estimated:o.origin===`analyzed-estimated`,raw:s}):a.push(null)}return{rows:a,errors:t}}return bce(n,t)}var J9=[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 bce(e,t){let n=[],r=e.variants[0]?.nodes[Of(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)=>J9.map((n,r)=>r+1>=e?t(J9.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 xce(r.includes(`windowSum`)||r.includes(` * sum`)?u:d,n),{rows:[],series:n,errors:t}}function xce(e,t){for(let n of e.slice(-7))t.push(Number.isNaN(n)?null:Number(Math.round(n*100)/100))}var Sce=[{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 Cce(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 wce(e,t){let n=[Cce(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`}),_C(new za({outputType:`segment`,timeSpan:{started:t*1e3,ended:t*1e3+e.elapsedMs},sourceBlockKey:`preview-block`,stackLevel:1,metrics:n}))}function Tce(){return{id:`preview-block`,dialect:`time`,startLine:0,endLine:10,content:"```time\nFran preview\n```",state:`idle`,widgetIds:{},version:1,createdAt:0}}var Ece=Sce.map((e,t)=>wce(e,t+1)),Dce=Tce();function Oce(e){return e==null?`—`:String(e)}function kce({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 yce({logs:Ece,block:Dce,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:Oce(e)})]},t))}),a?.errors?.length?a.errors.map((e,t)=>(0,G.jsxs)(`div`,{className:`text-destructive`,children:[`⚠ `,e]},`e-${t}`)):null]})}var Ace=[`segment`,`workout`,`store`];function jce(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 Mce({defaultScope:e=`segment`,initialId:t}){let[n,r]=(0,W.useState)(`# ${e} calc line
|
|
1147
1147
|
segmentVolume = reps * resistance (library) when has(reps) and has(resistance)
|
|
1148
1148
|
`),[i,a]=(0,W.useState)(e),[o,s]=(0,W.useState)([]),[c,l]=(0,W.useState)(),u=(0,W.useMemo)(()=>P9(n,i),[n,i]),d=jce(u.defs,n),f=u.diagnostics.every(e=>e.severity!==`error`)&&u.defs.length>0,p=async()=>{s(await m7())};(0,W.useEffect)(()=>{p()},[]),(0,W.useEffect)(()=>{t&&(async()=>{let e=(await m7()).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 Gae({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 Kae(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:Ace.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)(mce,{value:n,onChange:r,scope:i,autoFocus:!0}),(0,G.jsx)(hce,{analysis:u}),(0,G.jsx)(kce,{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 Nce(){let e=f(),[t]=j(`zip`),[n]=j(`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 Y9(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 X9(e={}){let{decodeZip:t=Y9,getTodayDateKey:n=Fz,isDateInPast:r=Iz,journalNotes:i=Vz,toast:a=Q}=e,o=f(),s=Hr(),{date:c}=pt(),[l]=j(`zip`),[u,d]=(0,W.useState)({state:`loading`});return(0,W.useEffect)(()=>{if(!(s.pathname===`/load/journal`||s.pathname.startsWith(`/load/journal/`)))return;if(!l){o($.journal,{replace:!0});return}let e=!1,u=async()=>{try{d({state:`loading`});let i;try{i=await t(l)}catch(e){console.error(`Failed to decode zip:`,e),d({state:`error`,error:`Failed to decode the journal entry`,onRetry:()=>{u()}}),a({title:`Error`,description:`Failed to decode the journal entry. Please check the link.`,variant:`destructive`});return}if(e)return;let s;if(c){let e=Lz(c);if(!e){d({state:`error`,error:`Invalid date format`}),a({title:`Error`,description:`Invalid date format. Expected YYYY-MM-DD.`,variant:`destructive`}),o($.journal,{replace:!0});return}s=e.dateKey}else s=n();if(e)return;if(r(s)){d({state:`pending-confirmation`,content:i,dateKey:s,onConfirmBackdate:async()=>{e||await f(i,s)}});return}await f(i,s)}catch(t){console.error(`Unexpected error in journal zip processor:`,t),e||(d({state:`error`,error:`An unexpected error occurred`,onRetry:()=>{u()}}),a({title:`Error`,description:`An unexpected error occurred.`,variant:`destructive`}))}},f=async(t,n)=>{if(!e)try{d({state:`creating`});let r=await i.create({journalDate:n,title:n,rawContent:t});e||(d({state:`success`,content:t,dateKey:n}),o(iz(r.id),{replace:!0}))}catch(r){console.error(`Failed to create journal entry:`,r),e||(d({state:`error`,error:`Failed to create journal entry`,onRetry:()=>{f(t,n)}}),a({title:`Error`,description:`Failed to create journal entry.`,variant:`destructive`}))}};return u(),()=>{e=!0}},[l,c,o,t,n,r,i,a]),u}var Pce=({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}=$oe(`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)}},h=e=>{e&&f(),s(e)},g=e?ZS(e):`Date`,_=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:_,className:K(`flex items-center gap-2 px-3 py-2 transition-colors`,`hover:bg-accent hover:text-accent-foreground`,_&&`opacity-60 cursor-not-allowed`),children:[c?(0,G.jsx)(`span`,{className:`inline-block animate-spin`,children:`⏳`}):(0,G.jsx)(P,{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)(UG,{open:o,onOpenChange:h,children:[(0,G.jsx)(WG,{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`,_&&`opacity-60 cursor-not-allowed`),disabled:_,children:[(0,G.jsx)(Ot,{className:`h-4 w-4 shrink-0`}),e&&(0,G.jsx)(`span`,{className:`leading-none text-xs`,children:g})]})}),(0,G.jsx)(GG,{align:d,className:`p-0 w-auto`,children:(0,G.jsx)(H3,{selectedDate:e||null,onDateSelect:m,entryDates:r})})]})]})},Fce=({dateKey:e,onConfirm:t,onCancel:n,isLoading:r=!1})=>{let[i,a]=W.useState(!1),o=XS(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)(lr,{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`})]})]})})]})},Ice={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 Z9(){let e=f(),t=X9(),[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)(iee,{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)(Pce,{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)(xe,{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)(Hn,{remarkPlugins:[fr],components:Ice,children:s})}):null]}),n&&c&&(0,G.jsx)(Fce,{dateKey:c,onConfirm:async()=>{u&&(r(!1),await u())},onCancel:()=>r(!1),isLoading:o===`creating`})]})}function Lce(){let e=Hr(),t=f();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 Rce(e,t,n){let r=await Z.getNote(e);if(!r)return;let i=lM(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${uM(n)}${r.rawContent.slice(a.to)}`;await new HN().updateRecord(r.id,{rawContent:o,expectedSourceRevision:r.sourceRevision})}function zce(){let{runtimeId:e}=pt(),t=f(),n=(0,W.useRef)(e?qU.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 mF(t.snapshot,t.block,e,t.origin):await hF(t.noteId,t.block,e,t.origin),r.current.block)},[e]);(0,W.useEffect)(()=>{e&&qU.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,SF.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 Rce(a.noteId,a.block.id,e)}catch{}})),[e,a]),c=(0,W.useCallback)(()=>{if(!a){t(`/`);return}if(o.current){t(uz(e),{replace:!0});return}if(a.returnTo){t(a.returnTo,{replace:!0});return}t(hV(mV(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)(P1,{block:a.block,noteContent:l,prepareRun:i,onClose:c,onCompleteWorkout:s,resultId:e,autoStart:!0})}var Q9=null;async function Bce(e,t,n){(!Q9||Q9.attempt!==e)&&(Q9={attempt:e,promise:t(xJ.content)});try{let t=await Q9.promise;return!n()&&Q9?.attempt===e&&(Q9=null),t}catch(t){throw Q9?.attempt===e&&(Q9=null),t}}var Vce=()=>cJ(xJ.content);function Hce({createPage:e=Vce}={}){let t=f(),n=(0,W.useRef)(t);(0,W.useLayoutEffect)(()=>{n.current=t},[t]);let[r,i]=(0,W.useState)(!1),[a,o]=(0,W.useState)(0);return(0,W.useEffect)(()=>{let t=!1;return(async()=>{try{let r=await Bce(a,e,()=>t);t||n.current(tz(r),{replace:!0})}catch{t||i(!0)}})(),()=>{t=!0}},[a,e]),r?(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:()=>{i(!1),o(e=>e+1)},children:`Try again`})]}):(0,G.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-zinc-400`,children:`Loading…`})}function Uce(e={}){let{decodeZip:t=Y9,intake:n=sJ,toast:r=Q}=e,i=f(),a=Hr(),[o]=j(`zip`),[s]=j(`z`),[c]=j(`by`),[l]=j(`src`),u=(0,W.useRef)(null);(0,W.useEffect)(()=>{if(a.pathname!==`/load`&&!(a.pathname===`/`&&s))return;if(s){let e=`${s}:${c??``}`;if(u.current===e)return;u.current=e;let a=!1;return(async()=>{try{let e=await t(s);if(e===null)throw Error(`Invalid workout link`);if(a)return;let r=C6(e,c??void 0);if(await n.ensureEntry(r,{reuseKey:`home`,title:`Home playground`}),a)return;E6({content:r,by:c??void 0})}catch(e){console.error(`Failed to decode zip:`,e),a||r({title:`Could not import workout`,description:`The link was invalid or the workout could not be saved.`,variant:`destructive`})}a||i(`/`,{replace:!0})})(),()=>{a=!0}}if(!o)return;let e=!1,d=l&&l.startsWith(`/`)?l:void 0;return(async()=>{try{let r=await t(o);if(r===null)throw Error(`Invalid workout link`);if(e)return;let a=d?await n.createPage(r,{sourcePath:d}):await n.createPage(r);e||i(tz(a),{replace:!0})}catch(t){console.error(`Failed to decode zip:`,t),e||(r({title:`Could not import workout`,description:`The link was invalid or the workout could not be saved.`,variant:`destructive`}),i($.home,{replace:!0}))}})(),()=>{e=!0}},[o,s,c,l,i,a.pathname,t,n,r])}function Wce(){let{pathname:e,hash:t}=Hr(),{scrollToSection:n}=CR();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 Gce(){return Uce(),X9(),(0,W.useEffect)(()=>{ON.current().catch(console.error),qne(),tie(),uF().catch(()=>{}),w7().catch(()=>{})},[]),null}function $9({settling:e}){let t=eie();if(e){let e=kre(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?M8(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:()=>{AL().then(()=>SN())},children:`Re-import library`})]})}function Kce(){let e=(0,W.useRef)(()=>{}),t=HU(),n=$8(),r=(0,W.useMemo)(()=>dU(()=>e.current(),t),[t]);return(0,G.jsx)($i,{defaultTheme:`system`,storageKey:`wod-wiki-playground-theme`,children:(0,G.jsx)(_ne,{children:(0,G.jsx)(KL,{children:(0,G.jsx)(XL,{children:(0,G.jsx)(ZF,{children:(0,G.jsx)(Re,{children:(0,G.jsxs)(Oe,{children:[(0,G.jsx)(Gce,{}),(0,G.jsx)(vR,{}),(0,G.jsxs)(TR,{tree:r,children:[(0,G.jsx)(Wce,{}),(0,G.jsxs)(qe,{children:[(0,G.jsx)(V,{path:$.home,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:`*`,element:t.length===0?(0,G.jsx)($9,{settling:n===`preparing`||dL()&&n!==`error`}):(0,G.jsx)(Ose,{})}),(0,G.jsx)(V,{path:`/proto/calc-authoring`,element:(0,G.jsx)(Bse,{})}),(0,G.jsx)(V,{path:`/proto/query-block-composer`,element:(0,G.jsx)(Xse,{})}),(0,G.jsx)(V,{path:`/settings`,element:(0,G.jsx)(oe,{to:`/settings/appearance`,replace:!0})}),(0,G.jsx)(V,{path:`/settings/appearance`,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.settingsProfile,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.settingsData,element:(0,G.jsx)(oe,{to:$.settingsStorage,replace:!0})}),(0,G.jsx)(V,{path:$.settingsDatabase,element:(0,G.jsx)(oe,{to:$.settingsStorage,replace:!0})}),(0,G.jsx)(V,{path:$.settingsStorage,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.settingsSync,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:`/settings/system`,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.settingsQueries,element:(0,G.jsx)(oe,{to:$.journal,replace:!0})}),(0,G.jsx)(V,{path:$.settingsTags,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.settingsSoundProfiles,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:`/settings/library/calcs`,element:(0,G.jsx)(`div`,{className:`p-6`,children:(0,G.jsx)(Mce,{})})}),(0,G.jsx)(V,{path:`/legacy`,element:(0,G.jsx)(mse,{})}),(0,G.jsx)(V,{path:`/syntax`,element:(0,G.jsx)(Dse,{})}),(0,G.jsx)(V,{path:$.plan,element:(0,G.jsx)(ose,{})}),(0,G.jsx)(V,{path:$.feeds,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.feed,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.notebooks,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.notebook,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.notebookTarget,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.notebookItem,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.subscribe,element:(0,G.jsx)(Lce,{})}),(0,G.jsx)(V,{path:$.pages,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.page,element:t.length===0&&(n===`preparing`||dL()&&n!==`error`)?(0,G.jsx)($9,{settling:!0}):(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{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)(Nce,{})})}),(0,G.jsx)(V,{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)(Z9,{})})}),(0,G.jsx)(V,{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)(Z9,{})})}),(0,G.jsx)(V,{path:$.playgroundRoot,element:(0,G.jsx)(Hce,{})}),(0,G.jsx)(V,{path:$.playground,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.playgrounds,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.notes,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.note,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.journal,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.day,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{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)(zce,{})})}),(0,G.jsx)(V,{path:$.tracker,element:(0,G.jsx)(ase,{})}),(0,G.jsx)(V,{path:`/results/segments`,element:(0,G.jsx)(ise,{})}),(0,G.jsx)(V,{path:$.sessionDetail,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.sessions,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.sessionDate,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:`/review/:runtimeId`,element:(0,G.jsx)(q7,{})}),(0,G.jsx)(V,{path:`/note/:noteId/review`,element:(0,G.jsx)(q7,{})}),(0,G.jsx)(V,{path:`/note/:noteId/review/:sectionId`,element:(0,G.jsx)(q7,{})}),(0,G.jsx)(V,{path:`/note/:noteId/review/:sectionId/:resultId`,element:(0,G.jsx)(q7,{})}),(0,G.jsx)(V,{path:$.efforts,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.effort,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.equipment,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.equipmentSlug,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.tags,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.tagCategory,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.tag,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.dashboards,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),(0,G.jsx)(V,{path:$.dashboardView,element:(0,G.jsx)(K7,{searchHandlerRef:e})}),t.map(({route:t})=>(0,G.jsx)(V,{path:t,element:(0,G.jsx)(K7,{searchHandlerRef:e})},t))]}),(0,G.jsx)(sse,{})]})]})})})})})})})}function qce({error:e,onRetry:t}){let n=e instanceof Error?e.message:String(e);return DN(),(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 Jce(){let e=(0,W.useSyncExternalStore)(Yw,Jw),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 Yce=(0,Zi.createRoot)(document.getElementById(`root`));function Xce(){let[e,t]=(0,W.useState)(!1),[n,r]=(0,W.useState)(null),[i,a]=(0,W.useState)(0),o=(0,W.useSyncExternalStore)(Yw,Jw);return(0,W.useEffect)(()=>{let e=!1,n;return MN().then(()=>wP?Ere():void 0).then(()=>SP.ensureNotebooks().catch(e=>gF(`NotebookService`,`ensureNotebooks failed`,e))).then(()=>{e||(n=FN(),t(!0))}).catch(t=>{e||r(t)}),()=>{e=!0,n?.()}},[i]),n?(0,G.jsx)(qce,{error:n,onRetry:()=>{r(null),a(e=>e+1)}}):o.phase===`checking`||o.phase===`updating`?(0,G.jsx)(Jce,{}):e?(0,G.jsx)(Kce,{}):(0,G.jsx)(`div`,{role:`status`,className:`flex min-h-dvh items-center justify-center text-muted-foreground`,children:`Opening local library…`})}Yce.render((0,G.jsx)(W.StrictMode,{children:(0,G.jsx)(Xce,{})}));export{xq as t};
|
|
1149
|
-
//# sourceMappingURL=main-
|
|
1149
|
+
//# sourceMappingURL=main-VXFEU44Q.js.map
|