skill-calorie 0.2.4 → 0.2.5
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/SKILL.md +10 -9
- package/dist/.gen-inputs.json +16 -100
- package/dist/analysis/anomaly/common.d.ts +11 -1
- package/dist/analysis/anomaly/common.d.ts.map +1 -1
- package/dist/analysis/anomaly/common.js +11 -12
- package/dist/analysis/anomaly/common.js.map +1 -1
- package/dist/analysis/anomaly/diet.d.ts.map +1 -1
- package/dist/analysis/anomaly/diet.js +11 -3
- package/dist/analysis/anomaly/diet.js.map +1 -1
- package/dist/analysis/deficit.d.ts +4 -2
- package/dist/analysis/deficit.d.ts.map +1 -1
- package/dist/analysis/deficit.js +2 -1
- package/dist/analysis/deficit.js.map +1 -1
- package/dist/analysis/historyStore.d.ts +2 -2
- package/dist/analysis/historyStore.d.ts.map +1 -1
- package/dist/analysis/historyStore.js +2 -2
- package/dist/analysis/historyStore.js.map +1 -1
- package/dist/analysis/index.d.ts +7 -13
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +15 -21
- package/dist/analysis/index.js.map +1 -1
- package/dist/analysis/reportDocTracked.d.ts.map +1 -1
- package/dist/analysis/reportDocTracked.js +3 -2
- package/dist/analysis/reportDocTracked.js.map +1 -1
- package/dist/analysis/review.d.ts.map +1 -1
- package/dist/analysis/review.js +5 -3
- package/dist/analysis/review.js.map +1 -1
- package/dist/analysis/simulate.d.ts +4 -2
- package/dist/analysis/simulate.d.ts.map +1 -1
- package/dist/analysis/simulate.js +5 -2
- package/dist/analysis/simulate.js.map +1 -1
- package/dist/analysis/simulate2.d.ts.map +1 -1
- package/dist/analysis/simulate2.js +4 -1
- package/dist/analysis/simulate2.js.map +1 -1
- package/dist/analysis/utils.d.ts +21 -25
- package/dist/analysis/utils.d.ts.map +1 -1
- package/dist/analysis/utils.js +34 -38
- package/dist/analysis/utils.js.map +1 -1
- package/dist/body/commands.d.ts +5 -1
- package/dist/body/commands.d.ts.map +1 -1
- package/dist/body/commands.js +5 -4
- package/dist/body/commands.js.map +1 -1
- package/dist/body/index.d.ts +9 -13
- package/dist/body/index.d.ts.map +1 -1
- package/dist/body/index.js +14 -19
- package/dist/body/index.js.map +1 -1
- package/dist/body/wizardDocs.js +1 -1
- package/dist/body/wizardPlate.d.ts +1 -1
- package/dist/cli/cmd_read.d.ts.map +1 -1
- package/dist/cli/cmd_read.js +23 -4
- package/dist/cli/cmd_read.js.map +1 -1
- package/dist/cli/config.d.ts +16 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +68 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/delivery.d.ts +2 -1
- package/dist/cli/delivery.d.ts.map +1 -1
- package/dist/cli/delivery.js +4 -3
- package/dist/cli/delivery.js.map +1 -1
- package/dist/cli/health.d.ts +7 -0
- package/dist/cli/health.d.ts.map +1 -0
- package/dist/cli/health.js +21 -0
- package/dist/cli/health.js.map +1 -0
- package/dist/cli/keys.d.ts +1 -2
- package/dist/cli/keys.d.ts.map +1 -1
- package/dist/cli/keys.js.map +1 -1
- package/dist/cli/readArgs.d.ts.map +1 -1
- package/dist/cli/readArgs.js +6 -5
- package/dist/cli/readArgs.js.map +1 -1
- package/dist/cli/write.d.ts +9 -12
- package/dist/cli/write.d.ts.map +1 -1
- package/dist/cli/write.js +7 -27
- package/dist/cli/write.js.map +1 -1
- package/dist/config.d.ts +55 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +64 -0
- package/dist/config.js.map +1 -0
- package/dist/diet/commands.d.ts +6 -1
- package/dist/diet/commands.d.ts.map +1 -1
- package/dist/diet/commands.js +15 -14
- package/dist/diet/commands.js.map +1 -1
- package/dist/diet/dietEngine.d.ts.map +1 -1
- package/dist/diet/dietEngine.js +3 -1
- package/dist/diet/dietEngine.js.map +1 -1
- package/dist/diet/dietUi.d.ts +8 -3
- package/dist/diet/dietUi.d.ts.map +1 -1
- package/dist/diet/dietUi.js +18 -25
- package/dist/diet/dietUi.js.map +1 -1
- package/dist/diet/index.d.ts +7 -11
- package/dist/diet/index.d.ts.map +1 -1
- package/dist/diet/index.js +18 -19
- package/dist/diet/index.js.map +1 -1
- package/dist/diet/nutritionPort.d.ts +2 -5
- package/dist/diet/nutritionPort.d.ts.map +1 -1
- package/dist/diet/nutritionPort.js +14 -12
- package/dist/diet/nutritionPort.js.map +1 -1
- package/dist/diet/precheckPort.d.ts.map +1 -1
- package/dist/diet/precheckPort.js +3 -1
- package/dist/diet/precheckPort.js.map +1 -1
- package/dist/diet/review.d.ts.map +1 -1
- package/dist/diet/review.js +3 -18
- package/dist/diet/review.js.map +1 -1
- package/dist/exercise/cardio.js +1 -1
- package/dist/exercise/cardio.js.map +1 -1
- package/dist/exercise/commands.d.ts +1 -1
- package/dist/exercise/commands.d.ts.map +1 -1
- package/dist/exercise/commands.js +3 -3
- package/dist/exercise/commands.js.map +1 -1
- package/dist/exercise/distribution.js +1 -1
- package/dist/exercise/distribution.js.map +1 -1
- package/dist/exercise/edit.d.ts.map +1 -1
- package/dist/exercise/edit.js +4 -2
- package/dist/exercise/edit.js.map +1 -1
- package/dist/exercise/exerciseStore.d.ts.map +1 -1
- package/dist/exercise/exerciseStore.js +16 -10
- package/dist/exercise/exerciseStore.js.map +1 -1
- package/dist/exercise/index.d.ts +7 -12
- package/dist/exercise/index.d.ts.map +1 -1
- package/dist/exercise/index.js +14 -19
- package/dist/exercise/index.js.map +1 -1
- package/dist/exercise/recap.js +1 -1
- package/dist/exercise/recap.js.map +1 -1
- package/dist/exercise/sportPortDocs.d.ts +9 -0
- package/dist/exercise/sportPortDocs.d.ts.map +1 -0
- package/dist/exercise/sportPortDocs.js +896 -0
- package/dist/exercise/sportPortDocs.js.map +1 -0
- package/dist/exercise/sportUi.d.ts +4 -2
- package/dist/exercise/sportUi.d.ts.map +1 -1
- package/dist/exercise/sportUi.js +13 -44
- package/dist/exercise/sportUi.js.map +1 -1
- package/dist/exercise/strength.js +1 -1
- package/dist/exercise/strength.js.map +1 -1
- package/dist/exercise/trend.js +1 -1
- package/dist/exercise/trend.js.map +1 -1
- package/dist/fetch/body.d.ts.map +1 -1
- package/dist/fetch/body.js +15 -12
- package/dist/fetch/body.js.map +1 -1
- package/dist/fetch/diet.d.ts +6 -5
- package/dist/fetch/diet.d.ts.map +1 -1
- package/dist/fetch/diet.js +19 -25
- package/dist/fetch/diet.js.map +1 -1
- package/dist/goal/commands.d.ts +5 -1
- package/dist/goal/commands.d.ts.map +1 -1
- package/dist/goal/commands.js +7 -6
- package/dist/goal/commands.js.map +1 -1
- package/dist/goal/goalExtraPlate.d.ts.map +1 -1
- package/dist/goal/goalExtraPlate.js +3 -1
- package/dist/goal/goalExtraPlate.js.map +1 -1
- package/dist/goal/goalHistory.d.ts +2 -2
- package/dist/goal/goalHistory.d.ts.map +1 -1
- package/dist/goal/goalHistory.js +4 -9
- package/dist/goal/goalHistory.js.map +1 -1
- package/dist/goal/index.d.ts +6 -10
- package/dist/goal/index.d.ts.map +1 -1
- package/dist/goal/index.js +11 -19
- package/dist/goal/index.js.map +1 -1
- package/dist/goal/nutritionGoal.d.ts.map +1 -1
- package/dist/goal/nutritionGoal.js +4 -1
- package/dist/goal/nutritionGoal.js.map +1 -1
- package/dist/goal/read.d.ts +1 -1
- package/dist/goal/read.d.ts.map +1 -1
- package/dist/goal/read.js +1 -1
- package/dist/goal/read.js.map +1 -1
- package/dist/goal/set.d.ts.map +1 -1
- package/dist/goal/set.js +2 -2
- package/dist/goal/set.js.map +1 -1
- package/dist/health.d.ts +41 -0
- package/dist/health.d.ts.map +1 -0
- package/dist/health.js +501 -0
- package/dist/health.js.map +1 -0
- package/dist/help-missing.json +1 -1
- package/dist/home/index.d.ts +8 -9
- package/dist/home/index.d.ts.map +1 -1
- package/dist/home/index.js +11 -11
- package/dist/home/index.js.map +1 -1
- package/dist/index.d.ts +24 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -12
- package/dist/index.js.map +1 -1
- package/dist/migrate/migrate.js +2 -2
- package/dist/migrate/migrate.js.map +1 -1
- package/dist/output.d.ts +4 -3
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +12 -5
- package/dist/output.js.map +1 -1
- package/dist/paths.d.ts +6 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +28 -17
- package/dist/paths.js.map +1 -1
- package/dist/photo/commands.d.ts +1 -1
- package/dist/photo/commands.d.ts.map +1 -1
- package/dist/photo/commands.js +3 -3
- package/dist/photo/commands.js.map +1 -1
- package/dist/photo/compareDoc.js +1 -1
- package/dist/photo/compareDoc.js.map +1 -1
- package/dist/photo/dir.d.ts +1 -1
- package/dist/photo/dir.d.ts.map +1 -1
- package/dist/photo/dir.js +6 -5
- package/dist/photo/dir.js.map +1 -1
- package/dist/photo/gifDoc.d.ts.map +1 -1
- package/dist/photo/gifDoc.js +10 -4
- package/dist/photo/gifDoc.js.map +1 -1
- package/dist/photo/helpCenter.js +1 -1
- package/dist/photo/helpCenter.js.map +1 -1
- package/dist/photo/helpFile.js +1 -1
- package/dist/photo/helpFile.js.map +1 -1
- package/dist/photo/helpPaths.d.ts +1 -1
- package/dist/photo/helpPaths.js +1 -1
- package/dist/photo/helpShell.d.ts +16 -0
- package/dist/photo/helpShell.d.ts.map +1 -0
- package/dist/photo/helpShell.js +27 -0
- package/dist/photo/helpShell.js.map +1 -0
- package/dist/photo/index.d.ts +7 -11
- package/dist/photo/index.d.ts.map +1 -1
- package/dist/photo/index.js +11 -19
- package/dist/photo/index.js.map +1 -1
- package/dist/photo/photos.d.ts +5 -3
- package/dist/photo/photos.d.ts.map +1 -1
- package/dist/photo/photos.js +15 -14
- package/dist/photo/photos.js.map +1 -1
- package/dist/photo/pickerDoc.js +1 -1
- package/dist/photo/templates.d.ts +4 -0
- package/dist/photo/templates.d.ts.map +1 -0
- package/dist/photo/templates.js +29 -0
- package/dist/photo/templates.js.map +1 -0
- package/dist/photo/viewerDoc.js +1 -1
- package/dist/photo/viewerDoc.js.map +1 -1
- package/dist/photo/wizard.d.ts +1 -1
- package/dist/photo/wizard.js +2 -2
- package/dist/photo/wizard.js.map +1 -1
- package/dist/photo/wizardPort.d.ts +70 -0
- package/dist/photo/wizardPort.d.ts.map +1 -0
- package/dist/photo/wizardPort.js +232 -0
- package/dist/photo/wizardPort.js.map +1 -0
- package/dist/photo/wizardPortDocs.d.ts +6 -0
- package/dist/photo/wizardPortDocs.d.ts.map +1 -0
- package/dist/photo/wizardPortDocs.js +322 -0
- package/dist/photo/wizardPortDocs.js.map +1 -0
- package/dist/profile/commands.d.ts +5 -1
- package/dist/profile/commands.d.ts.map +1 -1
- package/dist/profile/commands.js +4 -3
- package/dist/profile/commands.js.map +1 -1
- package/dist/profile/index.d.ts +7 -13
- package/dist/profile/index.d.ts.map +1 -1
- package/dist/profile/index.js +14 -19
- package/dist/profile/index.js.map +1 -1
- package/dist/profile/setup.d.ts +1 -1
- package/dist/render/analysisPlate.d.ts +3 -3
- package/dist/render/analysisPlate.d.ts.map +1 -1
- package/dist/render/analysisPlate.js +4 -21
- package/dist/render/analysisPlate.js.map +1 -1
- package/dist/render/diet.d.ts +10 -6
- package/dist/render/diet.d.ts.map +1 -1
- package/dist/render/diet.js +8 -23
- package/dist/render/diet.js.map +1 -1
- package/dist/render/exercisePort.d.ts +1 -1
- package/dist/render/html.d.ts +0 -6
- package/dist/render/html.d.ts.map +1 -1
- package/dist/render/html.js +2 -44
- package/dist/render/html.js.map +1 -1
- package/dist/render/index.d.ts +0 -3
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +2 -2
- package/dist/render/index.js.map +1 -1
- package/dist/render/planWizardDocs.js +1 -1
- package/dist/render/planWizardDocs.js.map +1 -1
- package/dist/render/trendMiscPort.d.ts.map +1 -1
- package/dist/render/trendMiscPort.js +6 -4
- package/dist/render/trendMiscPort.js.map +1 -1
- package/dist/render/workoutPlanDocs.js +1 -1
- package/dist/render/workoutPlanDocs.js.map +1 -1
- package/dist/shared/alive.d.ts +22 -0
- package/dist/shared/alive.d.ts.map +1 -0
- package/dist/shared/alive.js +22 -0
- package/dist/shared/alive.js.map +1 -0
- package/dist/shared/commandSpec.d.ts +14 -4
- package/dist/shared/commandSpec.d.ts.map +1 -1
- package/dist/shared/copyBlock.d.ts +4 -0
- package/dist/shared/copyBlock.d.ts.map +1 -0
- package/dist/shared/copyBlock.js +26 -0
- package/dist/shared/copyBlock.js.map +1 -0
- package/dist/shared/docPage.js +1 -1
- package/dist/shared/healthRate.d.ts +21 -0
- package/dist/shared/healthRate.d.ts.map +1 -0
- package/dist/shared/healthRate.js +21 -0
- package/dist/shared/healthRate.js.map +1 -0
- package/dist/shared/kcalPerKg.d.ts +16 -0
- package/dist/shared/kcalPerKg.d.ts.map +1 -0
- package/dist/shared/kcalPerKg.js +16 -0
- package/dist/shared/kcalPerKg.js.map +1 -0
- package/dist/shared/meal.d.ts +46 -0
- package/dist/shared/meal.d.ts.map +1 -0
- package/dist/shared/meal.js +75 -0
- package/dist/shared/meal.js.map +1 -0
- package/dist/shared/nutritionRange.d.ts +28 -0
- package/dist/shared/nutritionRange.d.ts.map +1 -0
- package/dist/shared/nutritionRange.js +28 -0
- package/dist/shared/nutritionRange.js.map +1 -0
- package/dist/shared/pageStrips.d.ts +81 -0
- package/dist/shared/pageStrips.d.ts.map +1 -0
- package/dist/shared/pageStrips.js +166 -0
- package/dist/shared/pageStrips.js.map +1 -0
- package/dist/shared/planCopyBlock.d.ts +32 -0
- package/dist/shared/planCopyBlock.d.ts.map +1 -0
- package/dist/shared/planCopyBlock.js +34 -0
- package/dist/shared/planCopyBlock.js.map +1 -0
- package/dist/shared/sourceLine.d.ts +5 -5
- package/dist/shared/sourceLine.d.ts.map +1 -1
- package/dist/shared/sourceLine.js +3 -1
- package/dist/shared/sourceLine.js.map +1 -1
- package/dist/shared/time.d.ts +28 -0
- package/dist/shared/time.d.ts.map +1 -0
- package/dist/shared/time.js +37 -0
- package/dist/shared/time.js.map +1 -0
- package/dist/triggers/routeSpec.d.ts +3 -3
- package/dist/triggers/routeSpec.js +3 -3
- package/dist/triggers/routes.generated.d.ts +2 -2
- package/dist/weight/commands.d.ts +4 -1
- package/dist/weight/commands.d.ts.map +1 -1
- package/dist/weight/commands.js +5 -4
- package/dist/weight/commands.js.map +1 -1
- package/dist/weight/figures.d.ts.map +1 -1
- package/dist/weight/figures.js +3 -1
- package/dist/weight/figures.js.map +1 -1
- package/dist/weight/index.d.ts +11 -17
- package/dist/weight/index.d.ts.map +1 -1
- package/dist/weight/index.js +16 -19
- package/dist/weight/index.js.map +1 -1
- package/dist/weight/records.d.ts.map +1 -1
- package/dist/weight/records.js +4 -2
- package/dist/weight/records.js.map +1 -1
- package/dist/weight/review.js +2 -2
- package/dist/weight/review.js.map +1 -1
- package/dist/weight/weightUi.d.ts +16 -4
- package/dist/weight/weightUi.d.ts.map +1 -1
- package/dist/weight/weightUi.js +23 -53
- package/dist/weight/weightUi.js.map +1 -1
- package/dist/workout/commands.d.ts +16 -2
- package/dist/workout/commands.d.ts.map +1 -1
- package/dist/workout/commands.js +17 -16
- package/dist/workout/commands.js.map +1 -1
- package/dist/workout/index.d.ts +10 -19
- package/dist/workout/index.d.ts.map +1 -1
- package/dist/workout/index.js +17 -31
- package/dist/workout/index.js.map +1 -1
- package/dist/workout/land.d.ts +1 -1
- package/dist/workout/land.js +3 -3
- package/dist/workout/land.js.map +1 -1
- package/dist/workout/landBatch.d.ts +7 -5
- package/dist/workout/landBatch.d.ts.map +1 -1
- package/dist/workout/landBatch.js +17 -15
- package/dist/workout/landBatch.js.map +1 -1
- package/dist/workout/landBatchPages.d.ts.map +1 -1
- package/dist/workout/landBatchPages.js +2 -23
- package/dist/workout/landBatchPages.js.map +1 -1
- package/dist/workout/landPages.d.ts.map +1 -1
- package/dist/workout/landPages.js +2 -23
- package/dist/workout/landPages.js.map +1 -1
- package/dist/workout/landRunner.d.ts +8 -10
- package/dist/workout/landRunner.d.ts.map +1 -1
- package/dist/workout/landRunner.js +35 -56
- package/dist/workout/landRunner.js.map +1 -1
- package/dist/workout/planCopyBlock.d.ts +9 -0
- package/dist/workout/planCopyBlock.d.ts.map +1 -0
- package/dist/workout/planCopyBlock.js +9 -0
- package/dist/workout/planCopyBlock.js.map +1 -0
- package/dist/workout/planEditor.d.ts +94 -0
- package/dist/workout/planEditor.d.ts.map +1 -0
- package/dist/workout/planEditor.js +38 -0
- package/dist/workout/planEditor.js.map +1 -0
- package/dist/workout/planEditorCss.d.ts +13 -0
- package/dist/workout/planEditorCss.d.ts.map +1 -0
- package/dist/workout/planEditorCss.js +140 -0
- package/dist/workout/planEditorCss.js.map +1 -0
- package/dist/workout/planEditorDocs.d.ts +7 -0
- package/dist/workout/planEditorDocs.d.ts.map +1 -0
- package/dist/workout/planEditorDocs.js +56 -0
- package/dist/workout/planEditorDocs.js.map +1 -0
- package/dist/workout/planEditorPort.d.ts +45 -0
- package/dist/workout/planEditorPort.d.ts.map +1 -0
- package/dist/workout/planEditorPort.js +217 -0
- package/dist/workout/planEditorPort.js.map +1 -0
- package/dist/workout/planEditorRuntime.d.ts +15 -0
- package/dist/workout/planEditorRuntime.d.ts.map +1 -0
- package/dist/workout/planEditorRuntime.js +427 -0
- package/dist/workout/planEditorRuntime.js.map +1 -0
- package/dist/workout/planStore.d.ts.map +1 -1
- package/dist/workout/planStore.js +1 -3
- package/dist/workout/planStore.js.map +1 -1
- package/dist/workout/receipt.d.ts +1 -1
- package/dist/workout/receipt.js +1 -1
- package/dist/workout/receipt.js.map +1 -1
- package/dist/workout/review.d.ts +1 -1
- package/dist/workout/review.js +1 -1
- package/dist/workout/review.js.map +1 -1
- package/dist/workout/reviewDocs.d.ts +3 -0
- package/dist/workout/reviewDocs.d.ts.map +1 -0
- package/dist/{render → workout}/reviewDocs.js +2 -2
- package/dist/workout/reviewDocs.js.map +1 -0
- package/dist/workout/reviewDocsCss.d.ts.map +1 -0
- package/dist/{render → workout}/reviewDocsCss.js +1 -1
- package/dist/workout/reviewDocsCss.js.map +1 -0
- package/dist/workout/xunjiBackfill.d.ts.map +1 -1
- package/dist/workout/xunjiBackfill.js +4 -25
- package/dist/workout/xunjiBackfill.js.map +1 -1
- package/dist/workout/xunjiPush.d.ts.map +1 -1
- package/dist/workout/xunjiPush.js +4 -25
- package/dist/workout/xunjiPush.js.map +1 -1
- package/dist/workout/xunjiRunner.d.ts +11 -5
- package/dist/workout/xunjiRunner.d.ts.map +1 -1
- package/dist/workout/xunjiRunner.js +29 -29
- package/dist/workout/xunjiRunner.js.map +1 -1
- package/dist/xunji/backfill.d.ts +5 -3
- package/dist/xunji/backfill.d.ts.map +1 -1
- package/dist/xunji/backfill.js +11 -5
- package/dist/xunji/backfill.js.map +1 -1
- package/dist/xunji/catalog.d.ts +3 -1
- package/dist/xunji/catalog.d.ts.map +1 -1
- package/dist/xunji/catalog.js +12 -6
- package/dist/xunji/catalog.js.map +1 -1
- package/dist/xunji/fetch.d.ts +3 -4
- package/dist/xunji/fetch.d.ts.map +1 -1
- package/dist/xunji/fetch.js +8 -9
- package/dist/xunji/fetch.js.map +1 -1
- package/dist/xunji/key.d.ts +16 -56
- package/dist/xunji/key.d.ts.map +1 -1
- package/dist/xunji/key.js +44 -104
- package/dist/xunji/key.js.map +1 -1
- package/dist/xunji/planSource.d.ts +3 -3
- package/dist/xunji/planSource.js +6 -6
- package/dist/xunji/planSource.js.map +1 -1
- package/dist/xunji/rateLimit.d.ts +7 -2
- package/dist/xunji/rateLimit.d.ts.map +1 -1
- package/dist/xunji/rateLimit.js +12 -3
- package/dist/xunji/rateLimit.js.map +1 -1
- package/dist/xunji/run-sync.d.ts +3 -3
- package/dist/xunji/run-sync.d.ts.map +1 -1
- package/dist/xunji/run-sync.js +5 -5
- package/dist/xunji/run-sync.js.map +1 -1
- package/dist/xunji/run.d.ts +2 -4
- package/dist/xunji/run.d.ts.map +1 -1
- package/dist/xunji/run.js +5 -5
- package/dist/xunji/run.js.map +1 -1
- package/dist/xunji/subcommands.d.ts.map +1 -1
- package/dist/xunji/subcommands.js +2 -3
- package/dist/xunji/subcommands.js.map +1 -1
- package/dist/xunji/upsert.d.ts +4 -4
- package/dist/xunji/upsert.d.ts.map +1 -1
- package/dist/xunji/upsert.js +6 -6
- package/dist/xunji/upsert.js.map +1 -1
- package/package.json +2 -9
- package/dist/cli/legacy/index.d.ts +0 -25
- package/dist/cli/legacy/index.d.ts.map +0 -1
- package/dist/cli/legacy/index.js +0 -37
- package/dist/cli/legacy/index.js.map +0 -1
- package/dist/cli/legacy/routes/index.d.ts +0 -8
- package/dist/cli/legacy/routes/index.d.ts.map +0 -1
- package/dist/cli/legacy/routes/index.js +0 -23
- package/dist/cli/legacy/routes/index.js.map +0 -1
- package/dist/cli/legacy/routes/scene-01.d.ts +0 -12
- package/dist/cli/legacy/routes/scene-01.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-01.js +0 -2
- package/dist/cli/legacy/routes/scene-01.js.map +0 -1
- package/dist/cli/legacy/routes/scene-02.d.ts +0 -18
- package/dist/cli/legacy/routes/scene-02.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-02.js +0 -2
- package/dist/cli/legacy/routes/scene-02.js.map +0 -1
- package/dist/cli/legacy/routes/scene-03.d.ts +0 -13
- package/dist/cli/legacy/routes/scene-03.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-03.js +0 -2
- package/dist/cli/legacy/routes/scene-03.js.map +0 -1
- package/dist/cli/legacy/routes/scene-04.d.ts +0 -10
- package/dist/cli/legacy/routes/scene-04.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-04.js +0 -2
- package/dist/cli/legacy/routes/scene-04.js.map +0 -1
- package/dist/cli/legacy/routes/scene-05.d.ts +0 -10
- package/dist/cli/legacy/routes/scene-05.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-05.js +0 -2
- package/dist/cli/legacy/routes/scene-05.js.map +0 -1
- package/dist/cli/legacy/routes/scene-06.d.ts +0 -10
- package/dist/cli/legacy/routes/scene-06.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-06.js +0 -2
- package/dist/cli/legacy/routes/scene-06.js.map +0 -1
- package/dist/cli/legacy/routes/scene-07.d.ts +0 -10
- package/dist/cli/legacy/routes/scene-07.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-07.js +0 -2
- package/dist/cli/legacy/routes/scene-07.js.map +0 -1
- package/dist/cli/legacy/routes/scene-08.d.ts +0 -12
- package/dist/cli/legacy/routes/scene-08.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-08.js +0 -2
- package/dist/cli/legacy/routes/scene-08.js.map +0 -1
- package/dist/cli/legacy/routes/scene-09.d.ts +0 -12
- package/dist/cli/legacy/routes/scene-09.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-09.js +0 -2
- package/dist/cli/legacy/routes/scene-09.js.map +0 -1
- package/dist/cli/legacy/routes/scene-10.d.ts +0 -10
- package/dist/cli/legacy/routes/scene-10.d.ts.map +0 -1
- package/dist/cli/legacy/routes/scene-10.js +0 -2
- package/dist/cli/legacy/routes/scene-10.js.map +0 -1
- package/dist/cli/legacy/scene-01.d.ts +0 -13
- package/dist/cli/legacy/scene-01.d.ts.map +0 -1
- package/dist/cli/legacy/scene-01.js +0 -2
- package/dist/cli/legacy/scene-01.js.map +0 -1
- package/dist/cli/legacy/scene-02.d.ts +0 -12
- package/dist/cli/legacy/scene-02.d.ts.map +0 -1
- package/dist/cli/legacy/scene-02.js +0 -2
- package/dist/cli/legacy/scene-02.js.map +0 -1
- package/dist/cli/legacy/scene-03.d.ts +0 -14
- package/dist/cli/legacy/scene-03.d.ts.map +0 -1
- package/dist/cli/legacy/scene-03.js +0 -2
- package/dist/cli/legacy/scene-03.js.map +0 -1
- package/dist/cli/legacy/scene-04.d.ts +0 -12
- package/dist/cli/legacy/scene-04.d.ts.map +0 -1
- package/dist/cli/legacy/scene-04.js +0 -2
- package/dist/cli/legacy/scene-04.js.map +0 -1
- package/dist/cli/legacy/scene-05.d.ts +0 -14
- package/dist/cli/legacy/scene-05.d.ts.map +0 -1
- package/dist/cli/legacy/scene-05.js +0 -2
- package/dist/cli/legacy/scene-05.js.map +0 -1
- package/dist/cli/legacy/scene-06.d.ts +0 -15
- package/dist/cli/legacy/scene-06.d.ts.map +0 -1
- package/dist/cli/legacy/scene-06.js +0 -2
- package/dist/cli/legacy/scene-06.js.map +0 -1
- package/dist/cli/legacy/scene-07.d.ts +0 -15
- package/dist/cli/legacy/scene-07.d.ts.map +0 -1
- package/dist/cli/legacy/scene-07.js +0 -2
- package/dist/cli/legacy/scene-07.js.map +0 -1
- package/dist/cli/legacy/scene-08.d.ts +0 -13
- package/dist/cli/legacy/scene-08.d.ts.map +0 -1
- package/dist/cli/legacy/scene-08.js +0 -2
- package/dist/cli/legacy/scene-08.js.map +0 -1
- package/dist/cli/legacy/scene-09.d.ts +0 -13
- package/dist/cli/legacy/scene-09.d.ts.map +0 -1
- package/dist/cli/legacy/scene-09.js +0 -2
- package/dist/cli/legacy/scene-09.js.map +0 -1
- package/dist/cli/legacy/scene-10.d.ts +0 -13
- package/dist/cli/legacy/scene-10.d.ts.map +0 -1
- package/dist/cli/legacy/scene-10.js +0 -2
- package/dist/cli/legacy/scene-10.js.map +0 -1
- package/dist/cli/legacy/types.d.ts +0 -16
- package/dist/cli/legacy/types.d.ts.map +0 -1
- package/dist/cli/legacy/types.js +0 -2
- package/dist/cli/legacy/types.js.map +0 -1
- package/dist/render/reviewDocs.d.ts +0 -3
- package/dist/render/reviewDocs.d.ts.map +0 -1
- package/dist/render/reviewDocs.js.map +0 -1
- package/dist/render/reviewDocsCss.d.ts.map +0 -1
- package/dist/render/reviewDocsCss.js.map +0 -1
- /package/dist/{render → workout}/reviewDocsCss.d.ts +0 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** 窗口条的类名词汇(族给)。 */
|
|
2
|
+
export interface WindowVocab {
|
|
3
|
+
readonly window: string;
|
|
4
|
+
readonly date: string;
|
|
5
|
+
readonly arrow: string;
|
|
6
|
+
readonly days: string;
|
|
7
|
+
}
|
|
8
|
+
/** 事实条的类名词汇(族给)。 */
|
|
9
|
+
export interface FactVocab {
|
|
10
|
+
readonly facts: string;
|
|
11
|
+
readonly fact: string;
|
|
12
|
+
readonly key: string;
|
|
13
|
+
readonly value: string;
|
|
14
|
+
}
|
|
15
|
+
/** 三族的类名词汇表(**唯一一份**;各族形状件从这里取自己那一套)。 */
|
|
16
|
+
export declare const WINDOW_VOCAB: {
|
|
17
|
+
readonly exercise: {
|
|
18
|
+
readonly window: "sui-window";
|
|
19
|
+
readonly date: "sui-date";
|
|
20
|
+
readonly arrow: "sui-arrow";
|
|
21
|
+
readonly days: "sui-days";
|
|
22
|
+
};
|
|
23
|
+
readonly weight: {
|
|
24
|
+
readonly window: "wui-window";
|
|
25
|
+
readonly date: "wui-date";
|
|
26
|
+
readonly arrow: "wui-arrow";
|
|
27
|
+
readonly days: "wui-days";
|
|
28
|
+
};
|
|
29
|
+
readonly diet: {
|
|
30
|
+
readonly window: "dui-window";
|
|
31
|
+
readonly date: "dui-date";
|
|
32
|
+
readonly arrow: "dui-arrow";
|
|
33
|
+
readonly days: "dui-chip";
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
/** 三族的类名词汇表(事实条只有运动族与体重族在用;饮食族不产事实条)。 */
|
|
37
|
+
export declare const FACT_VOCAB: {
|
|
38
|
+
readonly exercise: {
|
|
39
|
+
readonly facts: "sui-facts";
|
|
40
|
+
readonly fact: "sui-fact";
|
|
41
|
+
readonly key: "sui-fact-k";
|
|
42
|
+
readonly value: "sui-fact-v";
|
|
43
|
+
};
|
|
44
|
+
readonly weight: {
|
|
45
|
+
readonly facts: "wui-strip";
|
|
46
|
+
readonly fact: "wui-fact";
|
|
47
|
+
readonly key: "wui-fact-k";
|
|
48
|
+
readonly value: "wui-fact-v";
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
/** 窗口条:`2026-09-01 → 2026-09-07` + 天数(或条数)胶囊。
|
|
52
|
+
*
|
|
53
|
+
* `start === end`(单日窗)只出一枚日期块、不出箭头,块内写「(单日)」——不替读者断言一个
|
|
54
|
+
* 不存在的跨度(#510 立的退化分支,三族同口径)。日期文本走 `escapeHtml`。 */
|
|
55
|
+
export declare function windowStrip(start: string, end: string, chipText: string | undefined, vocab: WindowVocab): string;
|
|
56
|
+
/** 事实条:一组「标签 + 值」。`v` 为空串的那一条整条不出(缺值不留空槽)。
|
|
57
|
+
*
|
|
58
|
+
* `variant` 三位是**落点**不是形状(见 `variantClasses`)。 */
|
|
59
|
+
export declare function factStrip(facts: ReadonlyArray<{
|
|
60
|
+
k: string;
|
|
61
|
+
v: string;
|
|
62
|
+
}>, vocab: FactVocab, variant?: {
|
|
63
|
+
readonly vertical?: boolean;
|
|
64
|
+
readonly gap?: boolean;
|
|
65
|
+
readonly asNote?: boolean;
|
|
66
|
+
}): string;
|
|
67
|
+
/** 窗口条的 CSS(**裸串,不带 `<style>` 标签**;三族逐值保留各自的几何)。
|
|
68
|
+
*
|
|
69
|
+
* 体重族与饮食族取值相同,只类名前缀不同。本函数产出的是一段可直接拼进族样式段的字符串。 */
|
|
70
|
+
export declare function windowStripCss(): string;
|
|
71
|
+
/** 事实条的 CSS(**裸串,不带 `<style>` 标签**)。
|
|
72
|
+
*
|
|
73
|
+
* **本票唯一一处可见版式变更落在这里**:体重族的容器从「一行横排(`flex-wrap:wrap`)」改成
|
|
74
|
+
* 「等宽小格(`auto-fit` 栅格、窄屏塌单列)」——正本取运动族那套(票面 §二、§六 第 1 条,用户已授权)。
|
|
75
|
+
* 类名与其余属性(字号/色/权重)一律不动:体重族那三个变体位(`-v`/`-gap`/`-note`)的原规则
|
|
76
|
+
* 也逐值保留,故 `wui-strip-v` 的纵列版式与 `wui-strip-note` 的脚注口气字**一行未改**。
|
|
77
|
+
*
|
|
78
|
+
* 体重族与运动族的**键/值两小格在桌面档的取向不同**(运动族「键上值下」,体重族「键值同行」),
|
|
79
|
+
* 故 `.wui-fact` 不给 `flex-direction:column`;到了窄屏两族同归「键贴左、值贴右的纵列」。 */
|
|
80
|
+
export declare function factStripCss(): string;
|
|
81
|
+
//# sourceMappingURL=pageStrips.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageStrips.d.ts","sourceRoot":"","sources":["../../src/shared/pageStrips.ts"],"names":[],"mappings":"AA8BA,oBAAoB;AACpB,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,oBAAoB;AACpB,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,yCAAyC;AACzC,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;CAIuB,CAAC;AAEjD,yCAAyC;AACzC,eAAO,MAAM,UAAU;;;;;;;;;;;;;CAGuB,CAAC;AAqB/C;;;mDAGmD;AACnD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,WAAW,GAAG,MAAM,CAWhH;AAED;;mDAEmD;AACnD,wBAAgB,SAAS,CACvB,KAAK,EAAE,aAAa,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,KAAK,EAAE,SAAS,EAChB,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/F,MAAM,CAOR;AAED;;kDAEkD;AAClD,wBAAgB,cAAc,IAAI,MAAM,CAiCvC;AAED;;;;;;;;qEAQqE;AACrE,wBAAgB,YAAY,IAAI,MAAM,CAsCrC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/** #719 · 页内两类形状的**唯一定义地**:**窗口条**与**事实条**。
|
|
2
|
+
*
|
|
3
|
+
* 为什么收在这里:这两类形状原先在三个能力族里各写一份(窗口条四份、事实条两份),
|
|
4
|
+
* 实测「函数体逐字同构、只差 CSS 类名前缀与几处几何值」——任何一处单独改动都会与另外几份漂移。
|
|
5
|
+
* 故按 `docs/agents/structure.md` 铁律二(概念唯一)收成一份:形状的拼装只写一次,
|
|
6
|
+
* 「族用什么类名」(`WindowVocab`/`FactVocab`)与「几处几何值」(下面两段 CSS 里的逐值差异)由族参数给。
|
|
7
|
+
*
|
|
8
|
+
* 谁在用(写得出哪两个能力在用):**运动族**(`src/exercise/sportUi.ts`)、**体重族**
|
|
9
|
+
* (`src/weight/weightUi.ts`,经 `src/goal/goalWeightDoc.ts` 与 `src/weight/plateDocs.ts` 间接使用)、
|
|
10
|
+
* **饮食族**(`src/diet/dietUi.ts`)。三族各自的形状件留一行包装并转出原名字,
|
|
11
|
+
* 调用方一行不动(既有 34 个文件的 import 与 65 处调用点全部原样)。
|
|
12
|
+
*
|
|
13
|
+
* ── 类名不统一,是**故意的** ──
|
|
14
|
+
* `sui-`/`wui-`/`dui-` 三套类名是既有**外部契约**:包内十余个测试件按字面断言它们
|
|
15
|
+
* (`sui-window`/`sui-facts`/`sui-fact-k`/`wui-strip`/`wui-strip-v`/`wui-strip-note`/
|
|
16
|
+
* `dui-window` 等)。统一类名会把十几件测试一起打红,而本票的红线之一是「测试只在外部行为上说话、
|
|
17
|
+
* 不为了绿而改断言」。故共用件收的是**形状的拼装逻辑**,不是类名。
|
|
18
|
+
*
|
|
19
|
+
* ── 几何值也不统一,同样是**故意的** ──
|
|
20
|
+
* 三族的圆角/内距/外边距逐值不同(日期块圆角 `8px` vs `10px`、内距 `4px 8px` vs `3px 9px`、
|
|
21
|
+
* 条外边距 `4px 0 16px` vs `2px 0 10px`、窄屏日期块内距 `8px 12px` vs `6px 10px`)。
|
|
22
|
+
* 那些不是随手写的,是各次视觉裁定落下的值;把它们统一=改三族外观,超出本票授权。
|
|
23
|
+
* 故两段 CSS 里按族逐值保留(体重族与饮食族除类名外**取值相同**,一行对齐即可)。
|
|
24
|
+
*
|
|
25
|
+
* 本件不取数、不取时钟、不出现任何一个能力目录的名字。
|
|
26
|
+
*/
|
|
27
|
+
import { escapeHtml } from 'base-paint';
|
|
28
|
+
const esc = (s) => escapeHtml(s);
|
|
29
|
+
/** 三族的类名词汇表(**唯一一份**;各族形状件从这里取自己那一套)。 */
|
|
30
|
+
export const WINDOW_VOCAB = {
|
|
31
|
+
exercise: { window: 'sui-window', date: 'sui-date', arrow: 'sui-arrow', days: 'sui-days' },
|
|
32
|
+
weight: { window: 'wui-window', date: 'wui-date', arrow: 'wui-arrow', days: 'wui-days' },
|
|
33
|
+
diet: { window: 'dui-window', date: 'dui-date', arrow: 'dui-arrow', days: 'dui-chip' },
|
|
34
|
+
};
|
|
35
|
+
/** 三族的类名词汇表(事实条只有运动族与体重族在用;饮食族不产事实条)。 */
|
|
36
|
+
export const FACT_VOCAB = {
|
|
37
|
+
exercise: { facts: 'sui-facts', fact: 'sui-fact', key: 'sui-fact-k', value: 'sui-fact-v' },
|
|
38
|
+
weight: { facts: 'wui-strip', fact: 'wui-fact', key: 'wui-fact-k', value: 'wui-fact-v' },
|
|
39
|
+
};
|
|
40
|
+
/** 事实条容器/小格的附加类(体重族三个专用变体位;**不进共用件接口**,只作内部附加类串)。
|
|
41
|
+
*
|
|
42
|
+
* `vertical` → `<facts>-v`:整块恒纵列;`gap` → `<facts>-gap`:整块与上一件之间空一行;
|
|
43
|
+
* `asNote` → `<facts>-note`:值退成脚注口气的字。三者的名字都从 `facts` 类派生
|
|
44
|
+
* (`wui-strip` → `wui-strip-v`/`-gap`/`-note`),运动族的 `facts` 是 `sui-facts` 故给了也不出
|
|
45
|
+
* ——运动族的三个调用点从不给这三个位。
|
|
46
|
+
*
|
|
47
|
+
* **顺序固定 `facts` → `-v` → `-gap` → `-note`**:既有测试件按字面断言 `wui-strip-v`/
|
|
48
|
+
* `wui-strip-note`,且原实现就是这个顺序,重排会让产物变形。 */
|
|
49
|
+
function variantClasses(vocab, v) {
|
|
50
|
+
return (v.vertical === true ? ' ' + vocab.facts + '-v' : '')
|
|
51
|
+
+ (v.gap === true ? ' ' + vocab.facts + '-gap' : '')
|
|
52
|
+
+ (v.asNote === true ? ' ' + vocab.facts + '-note' : '');
|
|
53
|
+
}
|
|
54
|
+
/** 窗口条:`2026-09-01 → 2026-09-07` + 天数(或条数)胶囊。
|
|
55
|
+
*
|
|
56
|
+
* `start === end`(单日窗)只出一枚日期块、不出箭头,块内写「(单日)」——不替读者断言一个
|
|
57
|
+
* 不存在的跨度(#510 立的退化分支,三族同口径)。日期文本走 `escapeHtml`。 */
|
|
58
|
+
export function windowStrip(start, end, chipText, vocab) {
|
|
59
|
+
const chip = chipText === undefined || chipText === '' ? '' : '<span class="' + vocab.days + '">' + esc(chipText) + '</span>';
|
|
60
|
+
if (start === end) {
|
|
61
|
+
return '<div class="' + vocab.window + '"><span class="' + vocab.date + '">' + esc(start) + '(单日)</span>' + chip + '</div>';
|
|
62
|
+
}
|
|
63
|
+
return '<div class="' + vocab.window + '">'
|
|
64
|
+
+ '<span class="' + vocab.date + '">' + esc(start) + '</span>'
|
|
65
|
+
+ '<span class="' + vocab.arrow + '">→</span>'
|
|
66
|
+
+ '<span class="' + vocab.date + '">' + esc(end) + '</span>'
|
|
67
|
+
+ chip
|
|
68
|
+
+ '</div>';
|
|
69
|
+
}
|
|
70
|
+
/** 事实条:一组「标签 + 值」。`v` 为空串的那一条整条不出(缺值不留空槽)。
|
|
71
|
+
*
|
|
72
|
+
* `variant` 三位是**落点**不是形状(见 `variantClasses`)。 */
|
|
73
|
+
export function factStrip(facts, vocab, variant = {}) {
|
|
74
|
+
const body = facts
|
|
75
|
+
.filter((f) => f.v !== '')
|
|
76
|
+
.map((f) => '<span class="' + vocab.fact + '"><span class="' + vocab.key + '">' + esc(f.k) + '</span>'
|
|
77
|
+
+ '<span class="' + vocab.value + '">' + esc(f.v) + '</span></span>')
|
|
78
|
+
.join('');
|
|
79
|
+
return body === '' ? '' : '<div class="' + vocab.facts + variantClasses(vocab, variant) + '">' + body + '</div>';
|
|
80
|
+
}
|
|
81
|
+
/** 窗口条的 CSS(**裸串,不带 `<style>` 标签**;三族逐值保留各自的几何)。
|
|
82
|
+
*
|
|
83
|
+
* 体重族与饮食族取值相同,只类名前缀不同。本函数产出的是一段可直接拼进族样式段的字符串。 */
|
|
84
|
+
export function windowStripCss() {
|
|
85
|
+
return ''
|
|
86
|
+
// ── 运动族(`sui-`):圆角 8px/内距 4px 8px/条外边距 4px 0 16px/窄屏 8px 12px ──
|
|
87
|
+
+ '.sui-window{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 16px}'
|
|
88
|
+
+ '.sui-date{font-size:13px;font-weight:600;color:var(--fg);background:var(--card);'
|
|
89
|
+
+ 'border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-variant-numeric:tabular-nums}'
|
|
90
|
+
+ '.sui-arrow{color:var(--fg3);font-size:13px}'
|
|
91
|
+
+ '.sui-days{font-size:12px;font-weight:700;color:var(--blue2);background:var(--soft);'
|
|
92
|
+
+ 'border-radius:999px;padding:4px 8px}'
|
|
93
|
+
+ '@media (max-width:820px){'
|
|
94
|
+
+ ' .sui-window{gap:8px}'
|
|
95
|
+
+ ' .sui-date{padding:8px 12px;min-height:32px;display:inline-flex;align-items:center}'
|
|
96
|
+
+ ' .sui-days{padding:4px 12px}'
|
|
97
|
+
+ '}'
|
|
98
|
+
// ── 体重族(`wui-`):圆角 10px/内距 3px 9px/条外边距 2px 0 10px/窄屏 6px 10px ──
|
|
99
|
+
+ '.wui-window{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 10px}'
|
|
100
|
+
+ '.wui-date{font-size:13px;font-weight:600;color:var(--fg);background:var(--card);border:1px solid var(--line);'
|
|
101
|
+
+ 'border-radius:10px;padding:3px 9px;font-variant-numeric:tabular-nums}'
|
|
102
|
+
+ '.wui-arrow{color:var(--fg3);font-size:13px}'
|
|
103
|
+
+ '.wui-days{font-size:12px;font-weight:700;color:var(--blue2);background:var(--soft);border-radius:999px;padding:3px 10px}'
|
|
104
|
+
+ '@media (max-width:820px){'
|
|
105
|
+
+ ' .wui-window{gap:6px}'
|
|
106
|
+
+ ' .wui-date{padding:6px 10px;min-height:32px;display:inline-flex;align-items:center}'
|
|
107
|
+
+ ' .wui-days{padding:5px 10px}'
|
|
108
|
+
+ '}'
|
|
109
|
+
// ── 饮食族(`dui-`;天数胶囊叫 `dui-chip`):逐值同体重族 ──
|
|
110
|
+
+ '.dui-window{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 10px}'
|
|
111
|
+
+ '.dui-date{font-size:13px;font-weight:600;color:var(--fg);background:var(--card);border:1px solid var(--line);'
|
|
112
|
+
+ 'border-radius:10px;padding:3px 9px;font-variant-numeric:tabular-nums}'
|
|
113
|
+
+ '.dui-arrow{color:var(--fg3);font-size:13px}'
|
|
114
|
+
+ '.dui-chip{font-size:12px;font-weight:700;color:var(--blue2);background:var(--soft);border-radius:999px;padding:3px 10px}'
|
|
115
|
+
+ '@media (max-width:820px){.dui-window{gap:6px}'
|
|
116
|
+
+ '.dui-date{padding:6px 10px;min-height:32px;display:inline-flex;align-items:center}}';
|
|
117
|
+
}
|
|
118
|
+
/** 事实条的 CSS(**裸串,不带 `<style>` 标签**)。
|
|
119
|
+
*
|
|
120
|
+
* **本票唯一一处可见版式变更落在这里**:体重族的容器从「一行横排(`flex-wrap:wrap`)」改成
|
|
121
|
+
* 「等宽小格(`auto-fit` 栅格、窄屏塌单列)」——正本取运动族那套(票面 §二、§六 第 1 条,用户已授权)。
|
|
122
|
+
* 类名与其余属性(字号/色/权重)一律不动:体重族那三个变体位(`-v`/`-gap`/`-note`)的原规则
|
|
123
|
+
* 也逐值保留,故 `wui-strip-v` 的纵列版式与 `wui-strip-note` 的脚注口气字**一行未改**。
|
|
124
|
+
*
|
|
125
|
+
* 体重族与运动族的**键/值两小格在桌面档的取向不同**(运动族「键上值下」,体重族「键值同行」),
|
|
126
|
+
* 故 `.wui-fact` 不给 `flex-direction:column`;到了窄屏两族同归「键贴左、值贴右的纵列」。 */
|
|
127
|
+
export function factStripCss() {
|
|
128
|
+
return ''
|
|
129
|
+
// ── 运动族(`sui-`)──
|
|
130
|
+
+ '.sui-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px 16px;margin:8px 0 16px}'
|
|
131
|
+
+ '.sui-fact{display:flex;flex-direction:column;gap:2px;min-width:0}'
|
|
132
|
+
// 键色 `--fg3`(#86868b) 对白底仅 3.62:1,12px 正文要 4.5:1;`--fg2`(#6e6e73) 为 5.07:1
|
|
133
|
+
// (同包 `base-render/src/style.ts:567` 已为同类 12px 小字做过同一次改动,本处照办)。
|
|
134
|
+
+ '.sui-fact-k{font-size:12px;color:var(--fg2);white-space:nowrap}'
|
|
135
|
+
+ '.sui-fact-v{font-size:13px;font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums;min-width:0}'
|
|
136
|
+
// ── 体重族(`wui-strip`):容器**逐值换成运动族那套栅格**(本票唯一可见变更);键值两格与三个变体位原样 ──
|
|
137
|
+
+ '.wui-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:8px 16px;margin:2px 0 10px}'
|
|
138
|
+
+ '.wui-strip-v{flex-direction:column;align-items:stretch;gap:8px}'
|
|
139
|
+
// 空槽(`margin-top:16px`):**卡片的 `detail` 槽**里本件没有兄弟件可借距(KPI 值槽之下直接是本条)。
|
|
140
|
+
+ '.wui-strip-gap{margin-top:16px}'
|
|
141
|
+
// 纵列里的一组「标签 + 值」:标签在左、值贴右,行行对齐(窄屏的事实一栏读法)。
|
|
142
|
+
+ '.wui-strip-v .wui-fact{width:100%;justify-content:space-between;gap:12px}'
|
|
143
|
+
// 「标签 + **说明句**」那一型(`factStrip(facts, false, true, true)`):值不是量值而是一句脚注口气的
|
|
144
|
+
// 说明(「目标值超出刻度」),整块退一档(同 `.wui-note` 的字号/行高/色),不跟量值抢眼。
|
|
145
|
+
// #510:两半**分两档**——标签留 `--fg3`、说明那半落到 `--fg2` 且不加粗(原来两半同为 13px 加粗 `--fg`,
|
|
146
|
+
// 并排读成一句不通的话:`图上没画目标线 目标值超出刻度`)。
|
|
147
|
+
+ '.wui-strip-note .wui-fact{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px}'
|
|
148
|
+
+ '.wui-strip-note .wui-fact-k{font-size:12px;color:var(--fg3);font-weight:400;white-space:normal}'
|
|
149
|
+
+ '.wui-strip-note .wui-fact-v{font-size:12px;font-weight:400;color:var(--fg2);line-height:1.6}'
|
|
150
|
+
// 体重族的键值两格:**逐值保留原写法**(桌面「键值同行」,与原 `.wui-fact` 一字不差)。
|
|
151
|
+
+ '.wui-fact{display:inline-flex;align-items:baseline;gap:6px;min-width:0}'
|
|
152
|
+
+ '.wui-fact-k{font-size:12px;color:var(--fg3);white-space:nowrap}'
|
|
153
|
+
+ '.wui-fact-v{font-size:13px;font-weight:600;color:var(--fg);font-variant-numeric:tabular-nums}'
|
|
154
|
+
// ── 两族的窄屏段(820):塌单列,键贴左/值贴右(两族同写法,逐值保留)──
|
|
155
|
+
+ '@media (max-width:820px){'
|
|
156
|
+
+ ' .sui-facts{grid-template-columns:minmax(0,1fr);gap:8px}'
|
|
157
|
+
+ ' .sui-fact{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}'
|
|
158
|
+
+ ' .wui-strip{grid-template-columns:minmax(0,1fr);gap:8px}'
|
|
159
|
+
+ ' .wui-strip-v{gap:8px}'
|
|
160
|
+
+ ' .wui-fact{flex-direction:row;justify-content:space-between;align-items:baseline;gap:12px}'
|
|
161
|
+
+ ' .wui-fact-v{font-size:13px}'
|
|
162
|
+
+ '}'
|
|
163
|
+
// ── 触摸面(HELP 第 ①):两族的键值行/窗口条都是读者在手机上会按住的一块内容 ──
|
|
164
|
+
+ '.sui-facts,.sui-window{-webkit-tap-highlight-color:transparent;touch-action:manipulation}';
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=pageStrips.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageStrips.js","sourceRoot":"","sources":["../../src/shared/pageStrips.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/** T351 · 健身计划页面底部复制区:prompt 段(预检确认页才有)+ 冻结双按钮段。
|
|
2
|
+
*
|
|
3
|
+
* 谁在用(写得出哪两个在用):**看训练计划**(`src/render/workoutPlanDocs.ts` 的结果页与过程页)
|
|
4
|
+
* 与**写后回执**(`src/workout/receipt.ts` 的十条会改数据库的命令)——四条调用点产物逐字同形,
|
|
5
|
+
* 故收成一份,免得各自漂移。只有过程型两页(预检确认页)传 `prompt`。
|
|
6
|
+
*
|
|
7
|
+
* 与 `src/shared/copyArea.ts` 的 `copyArea` 分家:`copyArea` 的数据位恒出三格式菜单
|
|
8
|
+
* (纯文本/JSON/CSV,场景 07 等页在用,本次不动它);本件按视觉审查口径**不出菜单**——
|
|
9
|
+
* `renderCopyBlock` 不传 `dataFormats`,并把两颗按钮的 `id` 补成冻结表那两颗
|
|
10
|
+
* (`ilife-copy-data`/`ilife-copy-log`,见 `COPY_ACTION_IDS.actionBar`),供页面运行时的
|
|
11
|
+
* 双通道复制认领。故本件只服务健身计划这一路,不替换 `copyArea` 的既有行为。
|
|
12
|
+
*
|
|
13
|
+
* 复制文本仍走唯一出处:数据位 `base-paint` 的 `buildDataText`(#77 数据投影),
|
|
14
|
+
* 日志位 `buildLogText` + 共用件 `copyLog`(#77 六段日志)。本件不取数、不取时钟。
|
|
15
|
+
*/
|
|
16
|
+
import type { CopyLogFields, SerializableEnvelope } from 'base-paint';
|
|
17
|
+
/** 复制区入参:信封(八键载荷)+ 日志六段(由调用方 `copyLog({…})` 派生)。 */
|
|
18
|
+
interface PlanCopyInput {
|
|
19
|
+
/** 页面载荷信封(`version`/`skill`/`shape`/`key`/`data`)。 */
|
|
20
|
+
readonly envelope: SerializableEnvelope;
|
|
21
|
+
/** 日志六段(调用方给 `command`/`source`/`m5Line`/`actionAt`/`version` 后由 `copyLog` 派生)。 */
|
|
22
|
+
readonly log: CopyLogFields;
|
|
23
|
+
/** 复制数据文本的输出头;不给即按信封模板派生(`DataTextInput.title` 口径)。 */
|
|
24
|
+
readonly dataTitle?: string;
|
|
25
|
+
/** 本写词的逐字 prompt(只在预检确认页给;空串/不给即不出 prompt 段)。 */
|
|
26
|
+
readonly prompt?: string;
|
|
27
|
+
}
|
|
28
|
+
/** 复制区:数据位单格式、日志位直挂,按钮 `id` 补成冻结表那两颗;无三格式菜单、无英文菜单项。
|
|
29
|
+
* 日志位的信封先过 #550 归一(`key` 带 `calorie.` 前缀时剥一层),**数据位一字不动**。 */
|
|
30
|
+
export declare function planCopyBlock(input: PlanCopyInput): string;
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=planCopyBlock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planCopyBlock.d.ts","sourceRoot":"","sources":["../../src/shared/planCopyBlock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAoBtE,oDAAoD;AACpD,UAAU,aAAa;IACrB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,mFAAmF;IACnF,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,iDAAiD;IACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;+DAC+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAa1D"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { buildDataText, buildLogText, renderActionBar } from 'base-paint';
|
|
2
|
+
import { renderCopyBlock, renderPreBlock } from 'base-paint/blocks';
|
|
3
|
+
import { CALORIE_COPY_ACTION } from '../render/copy.js';
|
|
4
|
+
import { sceneEnvelope } from './sceneEnvelope.js';
|
|
5
|
+
/** prompt 段:预览块 + 一颗「复制指令」(预检确认页「复制 prompt 回给 AI」那一环,老侧 `promptCopyArea` 的语序)。
|
|
6
|
+
*
|
|
7
|
+
* **这颗只能走 `renderActionBar` 的日志位**:`renderActionBar`(`base-render/src/controls.ts:1367`)
|
|
8
|
+
* 在「数据位在场而日志位缺席」时会按 #336 自动补一颗**禁用**「复制日志」,其 id 正是
|
|
9
|
+
* `COPY_ACTION_IDS.actionBar.copyLog`——与底部冻结那颗撞 id,页上就成了两颗同名按钮(其中一颗灰的)。
|
|
10
|
+
* 日志位单独给一颗复制按钮不触发 #336,且 actionId/文案由调用方定。「一排三颗」用冻结 API 表达不出来:
|
|
11
|
+
* `buttons` 位的场景按钮不写 `data-t`,运行时认领不到,做成第三颗就是个点不动的死按钮。 */
|
|
12
|
+
function promptArea(prompt) {
|
|
13
|
+
return renderPreBlock({ command: prompt })
|
|
14
|
+
+ renderActionBar({
|
|
15
|
+
copyLog: { actionId: CALORIE_COPY_ACTION.actionId, label: CALORIE_COPY_ACTION.label, text: prompt },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/** 复制区:数据位单格式、日志位直挂,按钮 `id` 补成冻结表那两颗;无三格式菜单、无英文菜单项。
|
|
19
|
+
* 日志位的信封先过 #550 归一(`key` 带 `calorie.` 前缀时剥一层),**数据位一字不动**。 */
|
|
20
|
+
export function planCopyBlock(input) {
|
|
21
|
+
const title = input.dataTitle;
|
|
22
|
+
const prompt = input.prompt;
|
|
23
|
+
return (prompt === undefined || prompt === '' ? '' : promptArea(prompt))
|
|
24
|
+
+ renderCopyBlock({
|
|
25
|
+
dataText: buildDataText({
|
|
26
|
+
envelope: input.envelope,
|
|
27
|
+
...(title === undefined ? {} : { title }),
|
|
28
|
+
}),
|
|
29
|
+
logText: buildLogText({ envelope: sceneEnvelope(input.envelope), copyLog: input.log }),
|
|
30
|
+
})
|
|
31
|
+
.replace('data-action-id="ilife-copy-data"', 'id="ilife-copy-data" data-action-id="ilife-copy-data"')
|
|
32
|
+
.replace('data-action-id="ilife-copy-log"', 'id="ilife-copy-log" data-action-id="ilife-copy-log"');
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=planCopyBlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planCopyBlock.js","sourceRoot":"","sources":["../../src/shared/planCopyBlock.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;;;;2DAM2D;AAC3D,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;UACtC,eAAe,CAAC;YAChB,OAAO,EAAE,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;SACpG,CAAC,CAAC;AACP,CAAC;AAcD;+DAC+D;AAC/D,MAAM,UAAU,aAAa,CAAC,KAAoB;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;UACpE,eAAe,CAAC;YAChB,QAAQ,EAAE,aAAa,CAAC;gBACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;aAC1C,CAAC;YACF,OAAO,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;SACvF,CAAC;aACC,OAAO,CAAC,kCAAkC,EAAE,uDAAuD,CAAC;aACpG,OAAO,CAAC,iCAAiC,EAAE,qDAAqD,CAAC,CAAC;AACzG,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
1
|
+
/** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。
|
|
2
|
+
* 入参形状**内联在签名里**(#708 收掉原来那个零 import 的 `SourceLineInput` 导出名):
|
|
3
|
+
* `source` 不给/空串即只印窗口与条数(老件缺来源时的那种写法)。 */
|
|
4
|
+
export declare function sourceLine(input: {
|
|
3
5
|
readonly source: string;
|
|
4
6
|
readonly start: string;
|
|
5
7
|
readonly end: string;
|
|
6
8
|
readonly count: number;
|
|
7
|
-
}
|
|
8
|
-
/** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。 */
|
|
9
|
-
export declare function sourceLine(input: SourceLineInput): string;
|
|
9
|
+
}): string;
|
|
10
10
|
//# sourceMappingURL=sourceLine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceLine.d.ts","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sourceLine.d.ts","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAoBA;;2CAE2C;AAC3C,wBAAgB,UAAU,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAe3I"}
|
|
@@ -16,7 +16,9 @@ function reqText(value, field) {
|
|
|
16
16
|
}
|
|
17
17
|
return value;
|
|
18
18
|
}
|
|
19
|
-
/** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。
|
|
19
|
+
/** 来源脚注:`数据来源 · 来源 · 起 → 止 · 共 N 条`。
|
|
20
|
+
* 入参形状**内联在签名里**(#708 收掉原来那个零 import 的 `SourceLineInput` 导出名):
|
|
21
|
+
* `source` 不给/空串即只印窗口与条数(老件缺来源时的那种写法)。 */
|
|
20
22
|
export function sourceLine(input) {
|
|
21
23
|
if (input === null || typeof input !== 'object' || Array.isArray(input)) {
|
|
22
24
|
throw new CalorieRenderError('bad-input', 'sourceLine: input 必须是对象');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceLine.js","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"sourceLine.js","sourceRoot":"","sources":["../../src/shared/sourceLine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,SAAS,OAAO,CAAC,KAAc,EAAE,KAAa;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,KAAK,GAAG,qBAAqB,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;2CAE2C;AAC3C,MAAM,UAAU,UAAU,CAAC,KAAwG;IACjI,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC;IACnB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,gCAAgC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAa,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACjG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACrC,OAAO,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** 时钟的**唯一定义地**(#717 批③):「今天是哪一天」「现在是几点」只从这里取。
|
|
2
|
+
*
|
|
3
|
+
* 谁在用(写得出哪两个能力在用):
|
|
4
|
+
* ① 分析能力 `analysis/`(`analysis/utils.ts` 的 `todayISO` 正本在这里,原处按原名转出);
|
|
5
|
+
* ② 饮食能力 `diet/`(`fetch/diet.ts` 记一餐时的落库日期与时刻);
|
|
6
|
+
* ③ 运动能力 `exercise/`(`exercise/exerciseStore.ts` 记一条时的时刻);
|
|
7
|
+
* ④ 体重能力 `weight/`(`weight/records.ts` 记体重时的日期与时刻)。
|
|
8
|
+
*
|
|
9
|
+
* 本件**零依赖**:不 import 任何件,也不出现任何一个能力目录的名字。
|
|
10
|
+
*
|
|
11
|
+
* 收在这里之前的样子(#701 普查、#717 批③):`todayISO` 的正本住 `analysis/utils.ts`,而
|
|
12
|
+
* `fetch/diet.ts`/`exercise/exerciseStore.ts`/`weight/records.ts` **各写一份私有的本地时钟**
|
|
13
|
+
* (`new Date().toISOString().slice(0,10)` 与 `new Date().toTimeString().slice(0,8)`)——
|
|
14
|
+
* 抓取层被要求「不反向依赖 analysis」,于是绕路自己读系统钟,三份副本各自走散。
|
|
15
|
+
*
|
|
16
|
+
* 口径:**读系统钟**(进程级钉钟由测试的 `--require freeze-clock.cjs` 预载件盖住整个 `Date`,
|
|
17
|
+
* 故钉钟时本件三个读数同时跟走——写入日、回执日、累计读日不会再分家)。
|
|
18
|
+
*/
|
|
19
|
+
/** 当刻的日(`YYYY-MM-DD`,UTC 日口径,与全包既有口径一致)。 */
|
|
20
|
+
export declare function todayISO(): string;
|
|
21
|
+
/** 当刻的时刻(`HH:MM:SS`,本地时刻口径)。 */
|
|
22
|
+
export declare function timeOfDayISO(): string;
|
|
23
|
+
/** 日期加减(按整天,`shiftISODate('2026-09-07', -6) === '2026-09-01'`)。
|
|
24
|
+
*
|
|
25
|
+
* 锚到 UTC 正午再加减,避开夏令时把某一天算成 23/25 小时那种边界。
|
|
26
|
+
* 非法日期当场抛(消息形状与全包既有写法一致)。 */
|
|
27
|
+
export declare function shiftISODate(iso: string, deltaDays: number): string;
|
|
28
|
+
//# sourceMappingURL=time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,4CAA4C;AAC5C,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,gCAAgC;AAChC,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;8BAG8B;AAC9B,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAInE"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/** 时钟的**唯一定义地**(#717 批③):「今天是哪一天」「现在是几点」只从这里取。
|
|
2
|
+
*
|
|
3
|
+
* 谁在用(写得出哪两个能力在用):
|
|
4
|
+
* ① 分析能力 `analysis/`(`analysis/utils.ts` 的 `todayISO` 正本在这里,原处按原名转出);
|
|
5
|
+
* ② 饮食能力 `diet/`(`fetch/diet.ts` 记一餐时的落库日期与时刻);
|
|
6
|
+
* ③ 运动能力 `exercise/`(`exercise/exerciseStore.ts` 记一条时的时刻);
|
|
7
|
+
* ④ 体重能力 `weight/`(`weight/records.ts` 记体重时的日期与时刻)。
|
|
8
|
+
*
|
|
9
|
+
* 本件**零依赖**:不 import 任何件,也不出现任何一个能力目录的名字。
|
|
10
|
+
*
|
|
11
|
+
* 收在这里之前的样子(#701 普查、#717 批③):`todayISO` 的正本住 `analysis/utils.ts`,而
|
|
12
|
+
* `fetch/diet.ts`/`exercise/exerciseStore.ts`/`weight/records.ts` **各写一份私有的本地时钟**
|
|
13
|
+
* (`new Date().toISOString().slice(0,10)` 与 `new Date().toTimeString().slice(0,8)`)——
|
|
14
|
+
* 抓取层被要求「不反向依赖 analysis」,于是绕路自己读系统钟,三份副本各自走散。
|
|
15
|
+
*
|
|
16
|
+
* 口径:**读系统钟**(进程级钉钟由测试的 `--require freeze-clock.cjs` 预载件盖住整个 `Date`,
|
|
17
|
+
* 故钉钟时本件三个读数同时跟走——写入日、回执日、累计读日不会再分家)。
|
|
18
|
+
*/
|
|
19
|
+
/** 当刻的日(`YYYY-MM-DD`,UTC 日口径,与全包既有口径一致)。 */
|
|
20
|
+
export function todayISO() {
|
|
21
|
+
return new Date().toISOString().slice(0, 10);
|
|
22
|
+
}
|
|
23
|
+
/** 当刻的时刻(`HH:MM:SS`,本地时刻口径)。 */
|
|
24
|
+
export function timeOfDayISO() {
|
|
25
|
+
return new Date().toTimeString().slice(0, 8);
|
|
26
|
+
}
|
|
27
|
+
/** 日期加减(按整天,`shiftISODate('2026-09-07', -6) === '2026-09-01'`)。
|
|
28
|
+
*
|
|
29
|
+
* 锚到 UTC 正午再加减,避开夏令时把某一天算成 23/25 小时那种边界。
|
|
30
|
+
* 非法日期当场抛(消息形状与全包既有写法一致)。 */
|
|
31
|
+
export function shiftISODate(iso, deltaDays) {
|
|
32
|
+
const t = Date.parse(iso + 'T12:00:00Z');
|
|
33
|
+
if (Number.isNaN(t))
|
|
34
|
+
throw new Error('[calorie] 日期非法: ' + iso);
|
|
35
|
+
return new Date(t + deltaDays * 86400000).toISOString().slice(0, 10);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/shared/time.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,4CAA4C;AAC5C,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;8BAG8B;AAC9B,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,SAAiB;IACzD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,CAAC;IACzC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC;IAC/D,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 本件只放类型与声明形状,不含任何记录数据:
|
|
4
4
|
* - 路由记录类型(`RouteKey`/`SceneNo`/`NonExecBucket`/`ExecWakeRoute`/`NonExecWakeRoute`/`WakeRoute`)
|
|
5
5
|
* —— 与 #81 裁定 D-1~D-4 的运行时事实逐字一致(原住 `src/triggers/routing.ts`)。
|
|
6
|
-
* - 声明形状 `RouteDecl` —— 各声明件(`src
|
|
6
|
+
* - 声明形状 `RouteDecl` —— 各声明件(`src/<能力>/routes.ts`)
|
|
7
7
|
* 写出的记录形状;比运行时记录多两个字段:它属于哪个列表(`list`)与它在原列表内的 0 基位次(`order`)。
|
|
8
8
|
*
|
|
9
9
|
* 顺序权威(#313 硬约束):`WAKE_ROUTES[i].wakeWord` 必须与 SoT 逐位对齐(断言见
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* `src/triggers/routes.generated.ts` 由声明派生,`src/triggers/routing.ts` 只留逻辑与类型再导出。
|
|
15
15
|
*
|
|
16
16
|
* 记账(#313 生成器席落实):`scripts/gen-cli.mjs` 的 `declarationSources()` 必须**显式**纳入
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* 各能力 `src/<能力>/routes.ts`——它们不在命令声明扫描面内,若不入印记则「改了声明没重建」
|
|
18
|
+
* 会被直接放行(假绿)。
|
|
19
19
|
*/
|
|
20
20
|
import type { CalorieComboKey, CalorieWriteKey } from '../cli/keys.js';
|
|
21
21
|
/** 100 键内的路由键(读 65 + 写 35;两 registry 无重叠) */
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* 本件只放类型与声明形状,不含任何记录数据:
|
|
4
4
|
* - 路由记录类型(`RouteKey`/`SceneNo`/`NonExecBucket`/`ExecWakeRoute`/`NonExecWakeRoute`/`WakeRoute`)
|
|
5
5
|
* —— 与 #81 裁定 D-1~D-4 的运行时事实逐字一致(原住 `src/triggers/routing.ts`)。
|
|
6
|
-
* - 声明形状 `RouteDecl` —— 各声明件(`src
|
|
6
|
+
* - 声明形状 `RouteDecl` —— 各声明件(`src/<能力>/routes.ts`)
|
|
7
7
|
* 写出的记录形状;比运行时记录多两个字段:它属于哪个列表(`list`)与它在原列表内的 0 基位次(`order`)。
|
|
8
8
|
*
|
|
9
9
|
* 顺序权威(#313 硬约束):`WAKE_ROUTES[i].wakeWord` 必须与 SoT 逐位对齐(断言见
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
* `src/triggers/routes.generated.ts` 由声明派生,`src/triggers/routing.ts` 只留逻辑与类型再导出。
|
|
15
15
|
*
|
|
16
16
|
* 记账(#313 生成器席落实):`scripts/gen-cli.mjs` 的 `declarationSources()` 必须**显式**纳入
|
|
17
|
-
*
|
|
18
|
-
*
|
|
17
|
+
* 各能力 `src/<能力>/routes.ts`——它们不在命令声明扫描面内,若不入印记则「改了声明没重建」
|
|
18
|
+
* 会被直接放行(假绿)。
|
|
19
19
|
*/
|
|
20
20
|
export {};
|
|
21
21
|
//# sourceMappingURL=routeSpec.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** 本文件由 `scripts/gen-routes.mjs` 生成,勿手改(`pnpm gen` 重生成,`pnpm gen:check` 验真)。
|
|
2
2
|
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* 权威是声明层:各能力 `src/<能力>/routes.ts`(一能力一件,一条命令一个定义地)。
|
|
4
|
+
* 本件只做「按 `list` 分组、按 `order` 升序」的
|
|
5
5
|
* 排序与拼接,不含任何顺序知识——顺序事实只住声明的 `order` 字段,换文件搬动不会打乱顺序。
|
|
6
6
|
* 本次生成:WAKE_ROUTES 437 条 + NEW_KEY_ROUTES 69 条 + COVERAGE_REPAIR_ROUTES 1 条,合计 507 条(与声明逐条自洽:`pnpm gen:check` 验真)。
|
|
7
7
|
*/
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { viewWeight, writeWeightLog } from './log.js';
|
|
2
|
+
import { weightReceiptDoc } from './receipt.js';
|
|
2
3
|
export declare const WEIGHT_COMMANDS: ({
|
|
3
4
|
kind: "read";
|
|
4
5
|
key: string;
|
|
@@ -8,14 +9,16 @@ export declare const WEIGHT_COMMANDS: ({
|
|
|
8
9
|
flows: string[];
|
|
9
10
|
run: typeof viewWeight;
|
|
10
11
|
example: string;
|
|
12
|
+
doc?: undefined;
|
|
11
13
|
} | {
|
|
12
14
|
kind: "write";
|
|
13
15
|
key: string;
|
|
14
|
-
shape: "receipt";
|
|
15
16
|
title: string;
|
|
16
17
|
wakeWord: string;
|
|
17
18
|
flows: string[];
|
|
18
19
|
run: typeof writeWeightLog;
|
|
20
|
+
doc: typeof weightReceiptDoc;
|
|
19
21
|
example: string;
|
|
22
|
+
shape?: undefined;
|
|
20
23
|
})[];
|
|
21
24
|
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,UAAU,EAAoB,cAAc,EAAE,MAAM,UAAU,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;IAUM,CAAC"}
|
package/dist/weight/commands.js
CHANGED
|
@@ -4,15 +4,16 @@ import { viewWeightHistory } from './history.js';
|
|
|
4
4
|
import { viewWeight, writeWeightBatch, writeWeightLog } from './log.js';
|
|
5
5
|
import { viewWeightReview } from './review.js';
|
|
6
6
|
import { viewVolatility } from './volatility.js';
|
|
7
|
+
import { weightReceiptDoc } from './receipt.js';
|
|
7
8
|
export const WEIGHT_COMMANDS = [
|
|
8
9
|
{ kind: 'read', key: 'calorie.view.weight', shape: 'stat', title: '体重盘', wakeWord: '看今日体重', flows: ['量体重', '体重复盘'], run: viewWeight, example: 'calorie-cmd-read calorie.view.weight' },
|
|
9
10
|
{ kind: 'read', key: 'calorie.view.weight-history', shape: 'stat', title: '体重历史', wakeWord: '看本周体重', flows: ['看体重明细', '看体重曲线', '看体重备注'], run: viewWeightHistory, example: 'calorie-cmd-read calorie.view.weight-history --params \'{"days":7}\'' },
|
|
10
11
|
{ kind: 'read', key: 'calorie.view.weight-compare', shape: 'stat', title: '体重对比', wakeWord: '对比体重:本月 vs 上月', flows: ['对比体重'], run: viewWeightCompare, example: 'calorie-cmd-read calorie.view.weight-compare --params \'{"window":"30d","compareWindow":"prev"}\'' },
|
|
11
12
|
{ kind: 'read', key: 'calorie.view.weight-review', shape: 'stat', title: '体重复核', wakeWord: '看体重复核', flows: ['体重复盘'], run: viewWeightReview, example: 'calorie-cmd-read calorie.view.weight-review' },
|
|
12
13
|
{ kind: 'read', key: 'calorie.view.volatility', shape: 'stat', title: '波动分析', wakeWord: '看体重稳不稳(增强版)', flows: ['看体重稳不稳'], run: viewVolatility, example: 'calorie-cmd-read calorie.view.volatility --params \'{"window":"7d"}\'' },
|
|
13
|
-
{ kind: 'write', key: 'calorie.weight.log',
|
|
14
|
-
{ kind: 'write', key: 'calorie.weight.update',
|
|
15
|
-
{ kind: 'write', key: 'calorie.weight.remove',
|
|
16
|
-
{ kind: 'write', key: 'calorie.weight.batch',
|
|
14
|
+
{ kind: 'write', key: 'calorie.weight.log', title: '记体重', wakeWord: '记体重', flows: ['量体重'], run: writeWeightLog, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.log --params \'{"kg":70.5}\'' },
|
|
15
|
+
{ kind: 'write', key: 'calorie.weight.update', title: '改体重', wakeWord: '改体重记录', flows: ['改体重记录'], run: writeWeightUpdate, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.update --params \'{"id":1,"kg":70.2}\'' },
|
|
16
|
+
{ kind: 'write', key: 'calorie.weight.remove', title: '删体重', wakeWord: '删体重记录', flows: ['改体重记录'], run: writeWeightRemove, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.remove --params \'{"id":1}\'' },
|
|
17
|
+
{ kind: 'write', key: 'calorie.weight.batch', title: '批量记体重', wakeWord: '批量补录体重', flows: ['量体重'], run: writeWeightBatch, doc: weightReceiptDoc, example: 'calorie-cmd-read calorie.weight.batch --params \'{"items":[{"date":"<日期>","kg":70.5}]}\'' },
|
|
17
18
|
];
|
|
18
19
|
//# sourceMappingURL=commands.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/weight/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../../src/weight/figures.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"figures.d.ts","sourceRoot":"","sources":["../../src/weight/figures.ts"],"names":[],"mappings":"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"}
|