@flickfyi/flkr 0.0.182 → 0.0.185
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/{api-client-CAg1b8Bh.js → api-client-nn4U_Vfn.js} +1 -1
- package/dist/{app-DpM5nhb9.js → app-COXGJhrt.js} +3 -3
- package/dist/{bundler-DNrDcqyk.js → bundler-CW4YC73e.js} +4 -2
- package/dist/cli.js +11 -11
- package/dist/{delegate-DcVye0KE.js → delegate-aUVluBjB.js} +2 -2
- package/dist/{generate-B1l1z_FZ.js → generate-BeL1QPDi.js} +1 -1
- package/dist/{preview-Dqn_Tq6K.js → preview-DTVM8Csb.js} +2 -2
- package/dist/{publish-BmDqO1xU.js → publish-BJG-s-w5.js} +4 -4
- package/dist/{pull-CO80DMn8.js → pull-B_Yfjpi2.js} +1 -1
- package/dist/{save-8crfOeo1.js → save-UrfgmK2-.js} +2 -2
- package/dist/{sdk-app-BXWrf_pf.js → sdk-app-BAxznAf9.js} +3 -3
- package/dist/{sdk-deploy-CaEonlvx.js → sdk-deploy-D1wgQxse.js} +3 -3
- package/dist/{sdk-generation-CF8ATbrL.js → sdk-generation-CLQ-QrVM.js} +1 -1
- package/dist/{sdk-project-CKV3U3u9.js → sdk-project-BaO0fqhW.js} +1 -1
- package/dist/{use-auth-B6nwU2rp.js → use-auth-CtM4_BAY.js} +1 -1
- package/node_modules/@flickfyi/biscuit/.turbo/turbo-build.log +4 -4
- package/node_modules/@flickfyi/core/README.md +19 -9
- package/node_modules/@flickfyi/core/dist/chunks/{default-CuxDsQoM.js → default-BTmKidHV.js} +1 -1
- package/node_modules/@flickfyi/core/dist/chunks/{default-BB6YexEH.cjs → default-JhTq5I_y.cjs} +1 -1
- package/node_modules/@flickfyi/core/dist/chunks/{define-CUJRqVKY.cjs → define-BKCRhpuY.cjs} +1 -1
- package/node_modules/@flickfyi/core/dist/chunks/{define-e_VqSs4M.js → define-DZXgUsy7.js} +5 -5
- package/node_modules/@flickfyi/core/dist/kowalski/catalog.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/kowalski/catalog.js +728 -549
- package/node_modules/@flickfyi/core/dist/kowalski/index.cjs +5 -5
- package/node_modules/@flickfyi/core/dist/kowalski/index.js +4297 -3700
- package/node_modules/@flickfyi/core/dist/kowalski/schemas.cjs +1 -0
- package/node_modules/@flickfyi/core/dist/kowalski/schemas.js +637 -0
- package/node_modules/@flickfyi/core/dist/kowalski-catalog.css +516 -0
- package/node_modules/@flickfyi/core/dist/kowalski.css +10 -0
- package/node_modules/@flickfyi/core/dist/themes/athletic/athletic.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/athletic/athletic.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/compact/compact.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/compact/compact.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/default/default.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/default/default.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/editorial/editorial.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/editorial/editorial.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/handwritten/handwritten.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/handwritten/handwritten.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/index.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/index.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/kids/kids.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/kids/kids.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/rounded/rounded.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/rounded/rounded.js +1 -1
- package/node_modules/@flickfyi/core/dist/themes/technical/technical.cjs +1 -1
- package/node_modules/@flickfyi/core/dist/themes/technical/technical.js +1 -1
- package/node_modules/@flickfyi/core/dist-types/hooks/use-feature-store/index.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/calculations.d.ts +57 -3
- package/node_modules/@flickfyi/core/dist-types/kowalski/calculator.d.ts +7 -6
- package/node_modules/@flickfyi/core/dist-types/kowalski/catalog.d.cts +524 -809
- package/node_modules/@flickfyi/core/dist-types/kowalski/catalog.d.ts +524 -809
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/bill-split.d.ts +38 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/bookmark.d.ts +48 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/budget.d.ts +39 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/calculator.d.ts +62 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/checklist.d.ts +35 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/color-palette.d.ts +32 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/contact.d.ts +41 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/countdown.d.ts +34 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/event.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/expense.d.ts +40 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/goal.d.ts +36 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/habit.d.ts +57 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/ledger.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/note.d.ts +35 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/poll.d.ts +41 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/random-picker.d.ts +69 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/rating.d.ts +33 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/reminder.d.ts +48 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/rotation.d.ts +39 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/scoreboard.d.ts +37 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/shopping-list.d.ts +41 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/task-board.d.ts +39 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/time-zone.d.ts +34 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/timer.d.ts +43 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/trip.d.ts +61 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/components/unit-converter.d.ts +106 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/create-schemas.d.ts +6 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/date-time.d.ts +1 -1
- package/node_modules/@flickfyi/core/dist-types/kowalski/everyday.d.ts +28 -8
- package/node_modules/@flickfyi/core/dist-types/kowalski/feature-schema.d.ts +65 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/format.d.ts +4 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/fortune.d.ts +21 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/frame.d.ts +4 -4
- package/node_modules/@flickfyi/core/dist-types/kowalski/index.d.cts +31 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/index.d.ts +31 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/lesson.d.ts +89 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/recipe.d.ts +129 -8
- package/node_modules/@flickfyi/core/dist-types/kowalski/schemas.d.cts +4 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/schemas.d.ts +4 -0
- package/node_modules/@flickfyi/core/dist-types/kowalski/time-since.d.ts +34 -0
- package/node_modules/@flickfyi/core/examples/example-metadata.ts +19 -2
- package/node_modules/@flickfyi/core/examples/kowalski/bill-split/bill-split.stories.tsx +25 -6
- package/node_modules/@flickfyi/core/examples/kowalski/bill-split/bill-split.tsx +6 -12
- package/node_modules/@flickfyi/core/examples/kowalski/bookmark/bookmark.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/bookmark/bookmark.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/budget/budget.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/budget/budget.tsx +6 -21
- package/node_modules/@flickfyi/core/examples/kowalski/calculator/calculator.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/calculator/calculator.tsx +6 -19
- package/node_modules/@flickfyi/core/examples/kowalski/checklist/checklist.stories.tsx +25 -5
- package/node_modules/@flickfyi/core/examples/kowalski/checklist/checklist.tsx +6 -21
- package/node_modules/@flickfyi/core/examples/kowalski/color-palette/color-palette.stories.tsx +19 -6
- package/node_modules/@flickfyi/core/examples/kowalski/color-palette/color-palette.tsx +6 -17
- package/node_modules/@flickfyi/core/examples/kowalski/contact/contact.stories.tsx +30 -5
- package/node_modules/@flickfyi/core/examples/kowalski/contact/contact.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/countdown/countdown.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/countdown/countdown.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/event/event.stories.tsx +23 -5
- package/node_modules/@flickfyi/core/examples/kowalski/event/event.tsx +6 -19
- package/node_modules/@flickfyi/core/examples/kowalski/expense/expense.stories.tsx +23 -5
- package/node_modules/@flickfyi/core/examples/kowalski/expense/expense.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/fortune/fortune.stories.tsx +61 -0
- package/node_modules/@flickfyi/core/examples/kowalski/fortune/fortune.tsx +11 -0
- package/node_modules/@flickfyi/core/examples/kowalski/goal/goal.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/goal/goal.tsx +3 -19
- package/node_modules/@flickfyi/core/examples/kowalski/habit/habit.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/habit/habit.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/ledger/ledger.stories.tsx +25 -5
- package/node_modules/@flickfyi/core/examples/kowalski/ledger/ledger.tsx +6 -20
- package/node_modules/@flickfyi/core/examples/kowalski/lesson/lesson.stories.tsx +99 -0
- package/node_modules/@flickfyi/core/examples/kowalski/lesson/lesson.tsx +11 -0
- package/node_modules/@flickfyi/core/examples/kowalski/note/note.stories.tsx +21 -5
- package/node_modules/@flickfyi/core/examples/kowalski/note/note.tsx +3 -17
- package/node_modules/@flickfyi/core/examples/kowalski/poll/poll.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/poll/poll.tsx +3 -21
- package/node_modules/@flickfyi/core/examples/kowalski/random-picker/random-picker.stories.tsx +37 -6
- package/node_modules/@flickfyi/core/examples/kowalski/random-picker/random-picker.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/rating/rating.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/rating/rating.tsx +6 -14
- package/node_modules/@flickfyi/core/examples/kowalski/recipe/recipe.stories.tsx +117 -5
- package/node_modules/@flickfyi/core/examples/kowalski/recipe/recipe.tsx +6 -115
- package/node_modules/@flickfyi/core/examples/kowalski/reminder/reminder.stories.tsx +22 -5
- package/node_modules/@flickfyi/core/examples/kowalski/reminder/reminder.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/rotation/rotation.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/rotation/rotation.tsx +6 -22
- package/node_modules/@flickfyi/core/examples/kowalski/scoreboard/scoreboard.stories.tsx +26 -5
- package/node_modules/@flickfyi/core/examples/kowalski/scoreboard/scoreboard.tsx +6 -21
- package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.stories.tsx +28 -6
- package/node_modules/@flickfyi/core/examples/kowalski/shopping-list/shopping-list.tsx +6 -22
- package/node_modules/@flickfyi/core/examples/kowalski/task-board/task-board.stories.tsx +27 -6
- package/node_modules/@flickfyi/core/examples/kowalski/task-board/task-board.tsx +6 -22
- package/node_modules/@flickfyi/core/examples/kowalski/time-since/time-since.stories.tsx +33 -0
- package/node_modules/@flickfyi/core/examples/kowalski/time-since/time-since.tsx +12 -0
- package/node_modules/@flickfyi/core/examples/kowalski/time-zone/time-zone.stories.tsx +22 -6
- package/node_modules/@flickfyi/core/examples/kowalski/time-zone/time-zone.tsx +6 -17
- package/node_modules/@flickfyi/core/examples/kowalski/timer/timer.stories.tsx +18 -5
- package/node_modules/@flickfyi/core/examples/kowalski/timer/timer.tsx +6 -18
- package/node_modules/@flickfyi/core/examples/kowalski/trip/trip.stories.tsx +25 -5
- package/node_modules/@flickfyi/core/examples/kowalski/trip/trip.tsx +3 -21
- package/node_modules/@flickfyi/core/examples/kowalski/unit-converter/unit-converter.stories.tsx +19 -6
- package/node_modules/@flickfyi/core/examples/kowalski/unit-converter/unit-converter.tsx +6 -19
- package/node_modules/@flickfyi/core/examples/parrott/calculator/calculator.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/calculator/calculator.tsx +2 -13
- package/node_modules/@flickfyi/core/examples/parrott/checklist/checklist.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/checklist/checklist.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/countdown/countdown.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/countdown/countdown.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/counter/counter.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/counter/counter.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/fortune/fortune.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/fortune/fortune.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/grid/grid.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/grid/grid.tsx +4 -9
- package/node_modules/@flickfyi/core/examples/parrott/kale-smoothie/kale-smoothie.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/kale-smoothie/kale-smoothie.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/list/list.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/list/list.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/log/log.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/log/log.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/timed-task/timed-task.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/timed-task/timed-task.tsx +0 -8
- package/node_modules/@flickfyi/core/examples/parrott/timer/timer.stories.tsx +10 -3
- package/node_modules/@flickfyi/core/examples/parrott/timer/timer.tsx +0 -8
- package/node_modules/@flickfyi/core/package.json +16 -3
- package/node_modules/@flickfyi/core/src/{kowalski/use-configured-feature.ts → hooks/use-configured-feature/index.ts} +1 -1
- package/node_modules/@flickfyi/core/src/{kowalski/use-feature-store.ts → hooks/use-feature-store/index.ts} +37 -12
- package/node_modules/@flickfyi/core/src/kowalski/README.md +13 -0
- package/node_modules/@flickfyi/core/src/kowalski/calculations.ts +36 -8
- package/node_modules/@flickfyi/core/src/kowalski/calculator.ts +15 -7
- package/node_modules/@flickfyi/core/src/kowalski/catalog.ts +110 -704
- package/node_modules/@flickfyi/core/src/kowalski/components/bill-split.tsx +284 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/bookmark.tsx +347 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/budget.tsx +169 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/calculator.tsx +202 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/checklist.tsx +119 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/color-palette.tsx +302 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/contact.tsx +247 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/countdown.tsx +173 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/event.tsx +260 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/expense.tsx +257 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/goal.tsx +182 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/habit.tsx +272 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/ledger.tsx +211 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/note.tsx +188 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/poll.tsx +242 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/random-picker.tsx +308 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/rating.tsx +112 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/reminder.tsx +298 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/rotation.tsx +146 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/scoreboard.tsx +139 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/shopping-list.tsx +144 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/task-board.tsx +146 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/time-zone.tsx +240 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/timer.tsx +225 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/trip.tsx +338 -0
- package/node_modules/@flickfyi/core/src/kowalski/components/unit-converter.tsx +285 -0
- package/node_modules/@flickfyi/core/src/kowalski/create-schemas.ts +8 -0
- package/node_modules/@flickfyi/core/src/kowalski/date-time.tsx +1 -1
- package/node_modules/@flickfyi/core/src/kowalski/everyday.tsx +1 -640
- package/node_modules/@flickfyi/core/src/kowalski/feature-schema.ts +84 -0
- package/node_modules/@flickfyi/core/src/kowalski/format.ts +29 -3
- package/node_modules/@flickfyi/core/src/kowalski/fortune.tsx +67 -0
- package/node_modules/@flickfyi/core/src/kowalski/frame.tsx +5 -6
- package/node_modules/@flickfyi/core/src/kowalski/index.ts +31 -22
- package/node_modules/@flickfyi/core/src/kowalski/lesson.tsx +564 -0
- package/node_modules/@flickfyi/core/src/kowalski/recipe.tsx +78 -37
- package/node_modules/@flickfyi/core/src/kowalski/schemas.ts +67 -0
- package/node_modules/@flickfyi/core/src/kowalski/stories/composition.tsx +22 -20
- package/node_modules/@flickfyi/core/src/kowalski/time-since.tsx +145 -0
- package/node_modules/@flickfyi/core/src/molecules/progress/progress.tsx +4 -1
- package/node_modules/@flickfyi/core/src/oklch.ts +1 -6
- package/node_modules/@flickfyi/core/src/parrott/theme.ts +3 -1
- package/node_modules/@flickfyi/core/src/themes/editorial/editorial.ts +6 -1
- package/node_modules/@flickfyi/core/src/themes/palette.ts +5 -5
- package/node_modules/@flickfyi/core/src/themes/stories/composition.tsx +11 -9
- package/node_modules/@flickfyi/core/src/themes/stories/gallery.tsx +7 -11
- package/node_modules/@flickfyi/core/tsgo.bun.lock +7 -7
- package/node_modules/@flickfyi/core/tsgo.package.json +1 -1
- package/package.json +2 -2
- package/node_modules/@flickfyi/core/dist-types/kowalski/clocks.d.ts +0 -4
- package/node_modules/@flickfyi/core/dist-types/kowalski/details.d.ts +0 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/productivity.d.ts +0 -5
- package/node_modules/@flickfyi/core/dist-types/kowalski/tools.d.ts +0 -7
- package/node_modules/@flickfyi/core/dist-types/kowalski/use-feature-store.d.ts +0 -15
- package/node_modules/@flickfyi/core/src/kowalski/clocks.tsx +0 -464
- package/node_modules/@flickfyi/core/src/kowalski/details.tsx +0 -1387
- package/node_modules/@flickfyi/core/src/kowalski/productivity.tsx +0 -575
- package/node_modules/@flickfyi/core/src/kowalski/tools.tsx +0 -1213
- /package/node_modules/@flickfyi/core/dist-types/{kowalski/use-clock.d.ts → hooks/use-clock/index.d.ts} +0 -0
- /package/node_modules/@flickfyi/core/dist-types/{kowalski/use-configured-feature.d.ts → hooks/use-configured-feature/index.d.ts} +0 -0
- /package/node_modules/@flickfyi/core/src/{kowalski/use-clock.ts → hooks/use-clock/index.ts} +0 -0
|
@@ -1,16 +1,276 @@
|
|
|
1
|
-
import e from "
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { z as e } from "zod/v4";
|
|
2
|
+
import { Decimal as t } from "decimal.js";
|
|
3
|
+
import { z as n } from "zod";
|
|
4
|
+
// src/kowalski/calculations.ts
|
|
5
|
+
var r = {
|
|
6
|
+
c: {
|
|
7
|
+
dimension: "temperature",
|
|
8
|
+
factor: 1,
|
|
9
|
+
offset: 0
|
|
10
|
+
},
|
|
11
|
+
f: {
|
|
12
|
+
dimension: "temperature",
|
|
13
|
+
factor: 5 / 9,
|
|
14
|
+
offset: -32
|
|
15
|
+
},
|
|
16
|
+
ft: {
|
|
17
|
+
dimension: "length",
|
|
18
|
+
factor: .3048,
|
|
19
|
+
offset: 0
|
|
20
|
+
},
|
|
21
|
+
g: {
|
|
22
|
+
dimension: "mass",
|
|
23
|
+
factor: .001,
|
|
24
|
+
offset: 0
|
|
25
|
+
},
|
|
26
|
+
k: {
|
|
27
|
+
dimension: "temperature",
|
|
28
|
+
factor: 1,
|
|
29
|
+
offset: -273.15
|
|
30
|
+
},
|
|
31
|
+
kg: {
|
|
32
|
+
dimension: "mass",
|
|
33
|
+
factor: 1,
|
|
34
|
+
offset: 0
|
|
35
|
+
},
|
|
36
|
+
km: {
|
|
37
|
+
dimension: "length",
|
|
38
|
+
factor: 1e3,
|
|
39
|
+
offset: 0
|
|
40
|
+
},
|
|
41
|
+
lb: {
|
|
42
|
+
dimension: "mass",
|
|
43
|
+
factor: .45359237,
|
|
44
|
+
offset: 0
|
|
45
|
+
},
|
|
46
|
+
m: {
|
|
47
|
+
dimension: "length",
|
|
48
|
+
factor: 1,
|
|
49
|
+
offset: 0
|
|
50
|
+
},
|
|
51
|
+
mi: {
|
|
52
|
+
dimension: "length",
|
|
53
|
+
factor: 1609.344,
|
|
54
|
+
offset: 0
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
t.clone({
|
|
58
|
+
precision: 40,
|
|
59
|
+
rounding: t.ROUND_HALF_UP
|
|
60
|
+
});
|
|
61
|
+
// src/kowalski/feature-schema.ts
|
|
62
|
+
var i = e.string().regex(/^[A-Za-z][A-Za-z0-9]*$/).optional(), a = e.enum(["private", "public"]).default("private"), o = {
|
|
63
|
+
id: i,
|
|
64
|
+
revision: e.number().default(0),
|
|
65
|
+
scope: a
|
|
66
|
+
};
|
|
67
|
+
function s(t) {
|
|
68
|
+
return e.object({
|
|
69
|
+
configuration: e.record(e.string(), e.unknown()).nullable().default(null),
|
|
70
|
+
configurationRevision: e.number().default(0),
|
|
71
|
+
...t
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
var ee = e.enum(/* @__PURE__ */ "checklist.timer.habit.goal.poll.event.reminder.trip.countdown.timeZone.colorPalette.billSplit.expense.unitConverter.calculator.randomPicker.contact.bookmark.note.budget.scoreboard.taskBoard.recipe.rotation.shoppingList.rating.ledger.timeSince.fortune.lesson".split("."));
|
|
75
|
+
function c(t, n, r) {
|
|
76
|
+
let i = s(r), a = new Set(Object.keys(i.shape));
|
|
77
|
+
return e.intersection(i.loose(), e.looseRecord(e.templateLiteral([t, e.string()]), n)).refine((e) => Object.keys(e).every((e) => a.has(e) || e.startsWith(t)), `Item fields must start with ${t}.`);
|
|
78
|
+
}
|
|
79
|
+
function l(t) {
|
|
80
|
+
return e.object({ value: t }).default(() => ({ value: t.parse(void 0) }));
|
|
81
|
+
}
|
|
82
|
+
// src/kowalski/components/bill-split.tsx
|
|
83
|
+
var te = "private", u = /* @__PURE__ */ e.strictObject({
|
|
84
|
+
currency: e.string().optional().describe("A three-letter ISO currency code, e.g. \"USD\" or \"EUR\". Omit for \"USD\"."),
|
|
85
|
+
people: e.number().describe("How many people split the bill, e.g. 4."),
|
|
86
|
+
tipPercent: e.number().optional().describe("Tip as a percentage of the total, e.g. 18. Omit for no tip."),
|
|
87
|
+
title: e.string().optional().describe("A short heading. Omit for \"Split the bill\"."),
|
|
88
|
+
total: e.number().describe("The bill total before tip, in the currency, e.g. 84.5.")
|
|
89
|
+
}).describe("Split a bill equally with an optional tip, rounding in the selected currency."), d = e.strictObject({
|
|
90
|
+
data: u,
|
|
91
|
+
...o,
|
|
92
|
+
scope: o.scope.default(te)
|
|
93
|
+
});
|
|
94
|
+
s({
|
|
95
|
+
people: e.number().default(1),
|
|
96
|
+
tipPercent: e.number().default(0),
|
|
97
|
+
total: e.number().default(0)
|
|
98
|
+
});
|
|
99
|
+
// src/kowalski/components/bookmark.tsx
|
|
100
|
+
var ne = {
|
|
101
|
+
max_allowed_length: 2048,
|
|
102
|
+
protocols: ["http", "https"],
|
|
103
|
+
require_host: !0,
|
|
104
|
+
require_protocol: !0,
|
|
105
|
+
require_tld: !1,
|
|
106
|
+
require_valid_protocol: !0
|
|
107
|
+
}, re = "private", f = /* @__PURE__ */ e.strictObject({
|
|
108
|
+
note: e.string().optional().describe("A short note about the link. Omit for none."),
|
|
109
|
+
title: e.string().describe("A short heading."),
|
|
110
|
+
url: e.string().describe("The full http or https address, e.g. \"https://example.com\".")
|
|
111
|
+
}).describe("Display, edit, and retain a web bookmark. No implicit metadata fetch."), ie = e.strictObject({
|
|
112
|
+
data: f,
|
|
113
|
+
...o,
|
|
114
|
+
scope: o.scope.default(re)
|
|
115
|
+
});
|
|
116
|
+
s({
|
|
117
|
+
note: l(e.string().default("")),
|
|
118
|
+
title: l(e.string().default("")),
|
|
119
|
+
url: l(e.string().nullable().default(null))
|
|
120
|
+
});
|
|
121
|
+
// src/kowalski/components/budget.tsx
|
|
122
|
+
var ae = "private", p = /* @__PURE__ */ e.strictObject({
|
|
123
|
+
categories: e.array(e.strictObject({
|
|
124
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
125
|
+
label: e.string().describe("The category name, e.g. \"Groceries\"."),
|
|
126
|
+
limit: e.number().describe("The spending limit for the period, e.g. 400.")
|
|
127
|
+
})).describe("A few spending categories."),
|
|
128
|
+
currency: e.string().optional().describe("A three-letter ISO currency code, e.g. \"USD\" or \"EUR\". Omit for \"USD\"."),
|
|
129
|
+
title: e.string().optional().describe("A short heading. Omit for \"Budget\".")
|
|
130
|
+
}).describe("Track spending against category limits for one budget period. No bank connection or payments."), m = e.strictObject({
|
|
131
|
+
data: p,
|
|
132
|
+
...o,
|
|
133
|
+
scope: o.scope.default(ae)
|
|
134
|
+
});
|
|
135
|
+
c("spent_", e.number(), {});
|
|
136
|
+
// src/kowalski/components/calculator.tsx
|
|
137
|
+
var h = "private", g = /* @__PURE__ */ e.strictObject({
|
|
138
|
+
left: e.number().optional().describe("The starting number. Omit for 0."),
|
|
139
|
+
operator: e.enum([
|
|
140
|
+
"+",
|
|
141
|
+
"-",
|
|
142
|
+
"*",
|
|
143
|
+
"/"
|
|
144
|
+
]).optional().describe("The pending operator. Omit for \"+\"."),
|
|
145
|
+
right: e.number().optional().describe("The second operand. Omit for 0."),
|
|
146
|
+
title: e.string().optional().describe("A short heading. Omit for \"Calculate\".")
|
|
147
|
+
}).describe("A persistent keypad calculator with chained arithmetic, decimals, sign, percent, and repeated equals. Supports +, -, *, /. No executable expression strings."), _ = e.strictObject({
|
|
148
|
+
data: g,
|
|
149
|
+
...o,
|
|
150
|
+
scope: o.scope.default(h)
|
|
151
|
+
});
|
|
152
|
+
s({ calculation: e.object({
|
|
153
|
+
entry: e.string().max(40).regex(/^(?:-?\d+(?:\.\d*)?(?:e[+-]?\d+)?|Error)$/),
|
|
154
|
+
left: e.number(),
|
|
155
|
+
operator: e.enum([
|
|
156
|
+
"+",
|
|
157
|
+
"-",
|
|
158
|
+
"*",
|
|
159
|
+
"/"
|
|
160
|
+
]),
|
|
161
|
+
overwrite: e.boolean(),
|
|
162
|
+
phase: e.enum([
|
|
163
|
+
"left",
|
|
164
|
+
"operator",
|
|
165
|
+
"right",
|
|
166
|
+
"result",
|
|
167
|
+
"error"
|
|
168
|
+
]),
|
|
169
|
+
right: e.number()
|
|
170
|
+
}).refine((e) => e.phase === "error" ? e.entry === "Error" : e.entry !== "Error" && Number.isFinite(Number(e.entry)), "Calculator entry must match its phase and represent a finite number.").default({
|
|
171
|
+
entry: "0",
|
|
172
|
+
left: 0,
|
|
173
|
+
operator: "+",
|
|
174
|
+
overwrite: !1,
|
|
175
|
+
phase: "left",
|
|
176
|
+
right: 0
|
|
177
|
+
}) });
|
|
178
|
+
// src/kowalski/components/checklist.tsx
|
|
179
|
+
var oe = "private", v = /* @__PURE__ */ e.strictObject({
|
|
180
|
+
items: e.array(e.strictObject({
|
|
181
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
182
|
+
label: e.string().describe("One short task, e.g. \"Pack tent\".")
|
|
183
|
+
})).describe("The checklist items, in order."),
|
|
184
|
+
title: e.string().describe("A short heading.")
|
|
185
|
+
}).describe("A persistent checklist with independent completion and progress. No external actions."), se = e.strictObject({
|
|
186
|
+
data: v,
|
|
187
|
+
...o,
|
|
188
|
+
scope: o.scope.default(oe)
|
|
189
|
+
});
|
|
190
|
+
c("completed_", e.boolean(), {});
|
|
191
|
+
// src/kowalski/components/color-palette.tsx
|
|
192
|
+
var ce = "private", y = /* @__PURE__ */ e.strictObject({
|
|
193
|
+
color: e.string().describe("The starting color as a six-digit hex code, e.g. \"#3366FF\"."),
|
|
194
|
+
title: e.string().optional().describe("A short heading. Omit for \"Palette\".")
|
|
195
|
+
}).describe("Choose and retain an sRGB color and display matching shades."), le = e.strictObject({
|
|
196
|
+
data: y,
|
|
197
|
+
...o,
|
|
198
|
+
scope: o.scope.default(ce)
|
|
199
|
+
});
|
|
200
|
+
s({ color: l(e.string().default("#6366f1")) });
|
|
201
|
+
// ../schemas/dist/person.js
|
|
202
|
+
var ue = /* @__PURE__ */ n.strictObject({
|
|
203
|
+
email: n.string().optional().describe("An email address. Omit if unknown."),
|
|
204
|
+
name: n.string().describe("The person’s name."),
|
|
205
|
+
phone: n.string().optional().describe("A phone number as written. Omit if unknown.")
|
|
206
|
+
}).describe("Display, edit, and retain a contact. Does not insert into the address book."), de = "private", b = ue, fe = e.strictObject({
|
|
207
|
+
data: b,
|
|
208
|
+
...o,
|
|
209
|
+
scope: o.scope.default(de)
|
|
210
|
+
});
|
|
211
|
+
s({
|
|
212
|
+
email: l(e.string().nullable().default(null)),
|
|
213
|
+
name: l(e.string().default("")),
|
|
214
|
+
phone: l(e.string().nullable().default(null))
|
|
215
|
+
});
|
|
216
|
+
// src/kowalski/components/countdown.tsx
|
|
217
|
+
var pe = "private", x = /* @__PURE__ */ e.strictObject({
|
|
218
|
+
target: e.string().describe("The moment to count down to, as ISO 8601 with an offset, e.g. \"2026-12-31T23:59:59-08:00\"."),
|
|
219
|
+
timeZone: e.string().optional().describe("An IANA time zone, e.g. \"America/New_York\". Omit for UTC."),
|
|
220
|
+
title: e.string().describe("A short heading.")
|
|
221
|
+
}).describe("Count down to an explicit instant. Resolve missing dates before instantiation."), me = e.strictObject({
|
|
222
|
+
data: x,
|
|
223
|
+
...o,
|
|
224
|
+
scope: o.scope.default(pe)
|
|
225
|
+
});
|
|
226
|
+
s({ target: l(e.string().nullable().default(null)) });
|
|
227
|
+
// ../schemas/dist/event.js
|
|
228
|
+
var he = /* @__PURE__ */ n.strictObject({
|
|
229
|
+
location: n.string().optional().describe("Where it happens. Omit if unknown."),
|
|
230
|
+
startsAt: n.string().optional().describe("When it starts, as ISO 8601 with an offset, e.g. \"2026-11-01T18:30:00-07:00\". Omit if unknown."),
|
|
231
|
+
timeZone: n.string().optional().describe("An IANA time zone, e.g. \"America/New_York\". Omit for UTC."),
|
|
232
|
+
title: n.string().describe("A short heading.")
|
|
233
|
+
}).describe("Save and edit event details in the app. Does not create a calendar event."), ge = "private", S = he, _e = e.strictObject({
|
|
234
|
+
data: S,
|
|
235
|
+
...o,
|
|
236
|
+
scope: o.scope.default(ge)
|
|
237
|
+
});
|
|
238
|
+
s({
|
|
239
|
+
location: l(e.string().default("")),
|
|
240
|
+
startsAt: l(e.string().nullable().default(null)),
|
|
241
|
+
title: l(e.string().default(""))
|
|
242
|
+
});
|
|
243
|
+
// src/kowalski/components/expense.tsx
|
|
244
|
+
var ve = "private", C = /* @__PURE__ */ e.strictObject({
|
|
245
|
+
amount: e.number().describe("The amount spent, e.g. 12.5."),
|
|
246
|
+
category: e.string().optional().describe("A short category, e.g. \"Food\". Omit for \"Other\"."),
|
|
247
|
+
currency: e.string().optional().describe("A three-letter ISO currency code, e.g. \"USD\" or \"EUR\". Omit for \"USD\"."),
|
|
248
|
+
title: e.string().describe("A short heading.")
|
|
249
|
+
}).describe("Edit and retain one expense. No payments, bank connection, or exchange-rate lookup."), ye = e.strictObject({
|
|
250
|
+
data: C,
|
|
251
|
+
...o,
|
|
252
|
+
scope: o.scope.default(ve)
|
|
253
|
+
});
|
|
254
|
+
s({
|
|
255
|
+
amount: e.number().default(0),
|
|
256
|
+
category: l(e.string().default("Other")),
|
|
257
|
+
title: l(e.string().default(""))
|
|
258
|
+
});
|
|
259
|
+
// src/kowalski/components/goal.tsx
|
|
260
|
+
var w = "private", T = /* @__PURE__ */ e.strictObject({
|
|
261
|
+
progress: e.number().optional().describe("Progress so far. Omit for 0."),
|
|
262
|
+
step: e.number().optional().describe("How much one tap adds, e.g. 1 or 0.5. Omit for 1."),
|
|
263
|
+
target: e.number().describe("The amount that completes the goal, e.g. 10."),
|
|
264
|
+
title: e.string().describe("A short heading."),
|
|
265
|
+
unit: e.string().optional().describe("A short unit after the numbers, e.g. \"km\" or \"pages\". Omit for none.")
|
|
266
|
+
}).describe("A personal goal with editable progress, target, and a fixed increment. Not a distributed counter."), E = e.strictObject({
|
|
267
|
+
data: T,
|
|
268
|
+
...o,
|
|
269
|
+
scope: o.scope.default(w)
|
|
270
|
+
});
|
|
271
|
+
s({ progress: e.number().default(0) });
|
|
272
|
+
// src/kowalski/components/habit.tsx
|
|
273
|
+
var D = [
|
|
14
274
|
"sunday",
|
|
15
275
|
"monday",
|
|
16
276
|
"tuesday",
|
|
@@ -18,621 +278,540 @@ var n = t.string().regex(/^[A-Za-z][A-Za-z0-9]*$/).optional(), r = t.enum(["priv
|
|
|
18
278
|
"thursday",
|
|
19
279
|
"friday",
|
|
20
280
|
"saturday"
|
|
21
|
-
],
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
281
|
+
], O = "private", k = /* @__PURE__ */ e.strictObject({
|
|
282
|
+
timeZone: e.string().optional().describe("An IANA time zone, e.g. \"America/New_York\". Omit for UTC."),
|
|
283
|
+
title: e.string().describe("A short heading."),
|
|
284
|
+
weekdays: e.array(e.enum(D)).optional().describe("The days the habit is scheduled. Omit for every day.")
|
|
285
|
+
}).describe("Track a habit by local date and edit its weekday schedule. No notifications."), A = e.strictObject({
|
|
286
|
+
data: k,
|
|
287
|
+
...o,
|
|
288
|
+
scope: o.scope.default(O)
|
|
289
|
+
});
|
|
290
|
+
c("completed_", e.boolean(), { weekdays: e.array(e.enum(D)).default([...D]) });
|
|
291
|
+
// src/kowalski/components/ledger.tsx
|
|
292
|
+
var j = "private", M = /* @__PURE__ */ e.strictObject({
|
|
293
|
+
currency: e.string().optional().describe("A three-letter ISO currency code, e.g. \"USD\" or \"EUR\". Omit for \"USD\"."),
|
|
294
|
+
people: e.array(e.strictObject({
|
|
295
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
296
|
+
label: e.string().describe("A person’s name.")
|
|
297
|
+
})).describe("Exactly two people sharing the tab."),
|
|
298
|
+
title: e.string().optional().describe("A short heading. Omit for \"Shared tab\".")
|
|
299
|
+
}).describe("A running tab of shared costs between two people, split evenly, with settle up. No payments."), N = e.strictObject({
|
|
300
|
+
data: M,
|
|
301
|
+
...o,
|
|
302
|
+
scope: o.scope.default(j)
|
|
303
|
+
});
|
|
304
|
+
s({ entries: e.array(e.strictObject({
|
|
305
|
+
amount: e.number(),
|
|
306
|
+
id: e.string(),
|
|
307
|
+
label: e.string(),
|
|
308
|
+
paidBy: e.string()
|
|
309
|
+
})).default([]) });
|
|
310
|
+
// src/kowalski/components/note.tsx
|
|
311
|
+
var P = "private", F = /* @__PURE__ */ e.strictObject({
|
|
312
|
+
body: e.string().describe("The note text, as plain text."),
|
|
313
|
+
title: e.string().describe("A short heading. Use an empty string for none.")
|
|
314
|
+
}).describe("An editable persistent note. Plain text; no HTML or code execution."), be = e.strictObject({
|
|
315
|
+
data: F,
|
|
316
|
+
...o,
|
|
317
|
+
scope: o.scope.default(P)
|
|
318
|
+
});
|
|
319
|
+
s({
|
|
320
|
+
body: l(e.string().default("")),
|
|
321
|
+
title: l(e.string().default(""))
|
|
322
|
+
});
|
|
323
|
+
// src/kowalski/components/poll.tsx
|
|
324
|
+
var I = /* @__PURE__ */ e.strictObject({
|
|
325
|
+
options: e.array(e.strictObject({
|
|
326
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
327
|
+
label: e.string().describe("One short answer choice.")
|
|
328
|
+
})).describe("Two or more answer choices."),
|
|
329
|
+
question: e.string().describe("The question being voted on."),
|
|
330
|
+
shared: e.boolean().optional().describe("True only when other people vote on the same poll. Omit for a private poll.")
|
|
331
|
+
}).describe("Cast or change a vote and derive totals from votes. Shared voting only when explicitly requested."), xe = e.strictObject({
|
|
332
|
+
data: I,
|
|
333
|
+
...o
|
|
334
|
+
});
|
|
335
|
+
c("vote_", v.shape.items.element.shape.id, {});
|
|
336
|
+
var Se = e.object({
|
|
337
|
+
configuration: e.string().default(""),
|
|
338
|
+
voter: e.string()
|
|
339
|
+
}), Ce = "private", L = /* @__PURE__ */ e.discriminatedUnion("mode", [
|
|
340
|
+
e.strictObject({
|
|
341
|
+
mode: e.literal("coin"),
|
|
342
|
+
title: e.string().optional().describe("A short heading. Omit for \"Pick one\".")
|
|
343
|
+
}),
|
|
344
|
+
e.strictObject({
|
|
345
|
+
mode: e.literal("dice"),
|
|
346
|
+
title: e.string().optional().describe("A short heading. Omit for \"Pick one\".")
|
|
347
|
+
}),
|
|
348
|
+
e.strictObject({
|
|
349
|
+
maximum: e.number().describe("The largest whole number that can be picked."),
|
|
350
|
+
minimum: e.number().describe("The smallest whole number that can be picked."),
|
|
351
|
+
mode: e.literal("range"),
|
|
352
|
+
title: e.string().optional().describe("A short heading. Omit for \"Pick one\".")
|
|
353
|
+
}),
|
|
354
|
+
e.strictObject({
|
|
355
|
+
mode: e.literal("list"),
|
|
356
|
+
options: e.array(e.string()).describe("The choices to pick from."),
|
|
357
|
+
title: e.string().optional().describe("A short heading. Omit for \"Pick one\".")
|
|
358
|
+
})
|
|
359
|
+
]).describe("Flip a coin, roll a die, or pick from a whole-number range or list. Retains the last result."), we = e.strictObject({
|
|
360
|
+
data: L,
|
|
361
|
+
...o,
|
|
362
|
+
scope: o.scope.default(Ce)
|
|
363
|
+
});
|
|
364
|
+
s({ result: e.strictObject({
|
|
365
|
+
domain: Te(),
|
|
366
|
+
value: e.union([e.number(), e.string()])
|
|
367
|
+
}).nullable().default(null) });
|
|
368
|
+
function Te() {
|
|
369
|
+
return e.union([
|
|
370
|
+
e.strictObject({ mode: e.literal("coin") }),
|
|
371
|
+
e.strictObject({ mode: e.literal("dice") }),
|
|
372
|
+
e.strictObject({
|
|
373
|
+
maximum: e.number(),
|
|
374
|
+
minimum: e.number(),
|
|
375
|
+
mode: e.literal("range")
|
|
31
376
|
}),
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
total: t.number().min(0).max(0xe8d4a51000).default(0)
|
|
377
|
+
e.strictObject({
|
|
378
|
+
mode: e.literal("list"),
|
|
379
|
+
options: e.array(e.string())
|
|
36
380
|
})
|
|
381
|
+
]);
|
|
382
|
+
}
|
|
383
|
+
// src/kowalski/components/rating.tsx
|
|
384
|
+
var Ee = "private", R = /* @__PURE__ */ e.strictObject({
|
|
385
|
+
subject: e.string().describe("What is being rated, e.g. \"Pad thai at Lotus\"."),
|
|
386
|
+
title: e.string().optional().describe("A short heading. Omit for \"Your rating\".")
|
|
387
|
+
}).describe("Rate one thing from one to five stars and keep a short note about it."), De = e.strictObject({
|
|
388
|
+
data: R,
|
|
389
|
+
...o,
|
|
390
|
+
scope: o.scope.default(Ee)
|
|
391
|
+
});
|
|
392
|
+
s({
|
|
393
|
+
note: l(e.string().default("")),
|
|
394
|
+
stars: e.number().default(0)
|
|
395
|
+
});
|
|
396
|
+
// src/kowalski/components/reminder.tsx
|
|
397
|
+
var Oe = "private", z = /* @__PURE__ */ e.strictObject({
|
|
398
|
+
dueAt: e.string().optional().describe("When it is due, as ISO 8601 with an offset, e.g. \"2026-11-01T09:00:00-07:00\". Omit if no time was given."),
|
|
399
|
+
recurrence: e.enum([
|
|
400
|
+
"none",
|
|
401
|
+
"daily",
|
|
402
|
+
"weekly"
|
|
403
|
+
]).optional().describe("How it repeats. Omit for \"none\"."),
|
|
404
|
+
timeZone: e.string().optional().describe("An IANA time zone, e.g. \"America/New_York\". Omit for the device’s time zone."),
|
|
405
|
+
title: e.string().describe("What to be reminded of.")
|
|
406
|
+
}).describe("Complete, reopen, and edit an in-app reminder. Does not schedule notifications."), ke = e.strictObject({
|
|
407
|
+
data: z,
|
|
408
|
+
...o,
|
|
409
|
+
scope: o.scope.default(Oe)
|
|
410
|
+
});
|
|
411
|
+
s({
|
|
412
|
+
completedAt: e.number().nullable().default(null),
|
|
413
|
+
dueAt: l(e.string().nullable().default(null)),
|
|
414
|
+
title: l(e.string().default(""))
|
|
415
|
+
});
|
|
416
|
+
// src/kowalski/components/rotation.tsx
|
|
417
|
+
var Ae = "private", B = /* @__PURE__ */ e.strictObject({
|
|
418
|
+
people: e.array(e.strictObject({
|
|
419
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
420
|
+
label: e.string().describe("A person’s name.")
|
|
421
|
+
})).describe("Everyone taking turns, in order."),
|
|
422
|
+
task: e.string().describe("The chore or turn, e.g. \"Take out the trash\"."),
|
|
423
|
+
title: e.string().optional().describe("A short heading. Omit for \"Whose turn\".")
|
|
424
|
+
}).describe("Take turns through a fixed group in order and pass the turn on when done."), je = e.strictObject({
|
|
425
|
+
data: B,
|
|
426
|
+
...o,
|
|
427
|
+
scope: o.scope.default(Ae)
|
|
428
|
+
});
|
|
429
|
+
s({
|
|
430
|
+
completed: e.number().default(0),
|
|
431
|
+
turn: e.string().nullable().default(null)
|
|
432
|
+
});
|
|
433
|
+
// src/kowalski/components/scoreboard.tsx
|
|
434
|
+
var Me = "private", V = /* @__PURE__ */ e.strictObject({
|
|
435
|
+
players: e.array(e.strictObject({
|
|
436
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
437
|
+
label: e.string().describe("A player or team name.")
|
|
438
|
+
})).describe("Everyone keeping score."),
|
|
439
|
+
step: e.number().optional().describe("Points per tap. Omit for 1."),
|
|
440
|
+
title: e.string().optional().describe("A short heading. Omit for \"Scores\".")
|
|
441
|
+
}).describe("Keep score for a few players with a fixed step. Not a distributed counter or a league."), Ne = e.strictObject({
|
|
442
|
+
data: V,
|
|
443
|
+
...o,
|
|
444
|
+
scope: o.scope.default(Me)
|
|
445
|
+
});
|
|
446
|
+
c("score_", e.number(), {});
|
|
447
|
+
// src/kowalski/components/shopping-list.tsx
|
|
448
|
+
var Pe = "private", H = /* @__PURE__ */ e.strictObject({
|
|
449
|
+
currency: e.string().optional().describe("A three-letter ISO currency code, e.g. \"USD\" or \"EUR\". Omit for \"USD\"."),
|
|
450
|
+
items: e.array(e.strictObject({
|
|
451
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
452
|
+
label: e.string().describe("One item to buy, e.g. \"Oat milk\"."),
|
|
453
|
+
price: e.number().optional().describe("Price per unit. Omit if unknown."),
|
|
454
|
+
quantity: e.number().optional().describe("How many to buy. Omit for 1.")
|
|
455
|
+
})).describe("The items to buy."),
|
|
456
|
+
title: e.string().optional().describe("A short heading. Omit for \"Shopping list\".")
|
|
457
|
+
}).describe("Check items off a shopping list with optional prices and a running cart total. No ordering."), Fe = e.strictObject({
|
|
458
|
+
data: H,
|
|
459
|
+
...o,
|
|
460
|
+
scope: o.scope.default(Pe)
|
|
461
|
+
});
|
|
462
|
+
c("got_", e.boolean(), {});
|
|
463
|
+
// src/kowalski/components/task-board.tsx
|
|
464
|
+
var Ie = "private", U = /* @__PURE__ */ e.strictObject({
|
|
465
|
+
tasks: e.array(e.strictObject({
|
|
466
|
+
id: e.string().describe("A short ID, unique within this list, e.g. \"tent\"."),
|
|
467
|
+
label: e.string().describe("One short task.")
|
|
468
|
+
})).describe("The tasks, all starting in To do."),
|
|
469
|
+
title: e.string().optional().describe("A short heading. Omit for \"Tasks\".")
|
|
470
|
+
}).describe("Move tasks between To do, Doing, and Done. No assignees, dates, or sync."), Le = e.strictObject({
|
|
471
|
+
data: U,
|
|
472
|
+
...o,
|
|
473
|
+
scope: o.scope.default(Ie)
|
|
474
|
+
});
|
|
475
|
+
c("status_", e.enum([
|
|
476
|
+
"todo",
|
|
477
|
+
"doing",
|
|
478
|
+
"done"
|
|
479
|
+
]), {});
|
|
480
|
+
// src/kowalski/components/time-zone.tsx
|
|
481
|
+
var Re = "private", W = /* @__PURE__ */ e.strictObject({
|
|
482
|
+
at: e.string().optional().describe("A moment to compare, as ISO 8601 with an offset. Omit to show the live current time."),
|
|
483
|
+
title: e.string().optional().describe("A short heading. Omit for \"World clock\"."),
|
|
484
|
+
zones: e.array(e.string()).describe("Two or more IANA time zones to compare, e.g. \"Europe/London\".")
|
|
485
|
+
}).describe("Compare local times in named time zones, live or at an explicit instant."), ze = e.strictObject({
|
|
486
|
+
data: W,
|
|
487
|
+
...o,
|
|
488
|
+
scope: o.scope.default(Re)
|
|
489
|
+
});
|
|
490
|
+
s({ at: l(e.string().nullable().default(null)) });
|
|
491
|
+
// src/kowalski/components/timer.tsx
|
|
492
|
+
var Be = "private", G = /* @__PURE__ */ e.strictObject({
|
|
493
|
+
durationSeconds: e.number().optional().describe("Countdown length in seconds, e.g. 1500 for 25 minutes. Omit for 300."),
|
|
494
|
+
mode: e.enum([
|
|
495
|
+
"countdown",
|
|
496
|
+
"focus",
|
|
497
|
+
"break",
|
|
498
|
+
"stopwatch"
|
|
499
|
+
]).optional().describe("Omit for \"countdown\"."),
|
|
500
|
+
title: e.string().optional().describe("A short heading. Omit for \"Timer\".")
|
|
501
|
+
}).describe("Countdown, focus, break, or stopwatch. Start, pause, resume, reset; no background alarm."), Ve = e.strictObject({
|
|
502
|
+
data: G,
|
|
503
|
+
...o,
|
|
504
|
+
scope: o.scope.default(Be)
|
|
505
|
+
});
|
|
506
|
+
s({
|
|
507
|
+
elapsedSeconds: e.number().default(0),
|
|
508
|
+
startedAt: e.number().nullable().default(null)
|
|
509
|
+
});
|
|
510
|
+
// src/kowalski/components/trip.tsx
|
|
511
|
+
var He = "private", K = /* @__PURE__ */ e.strictObject({
|
|
512
|
+
destination: e.string().describe("Where the trip goes."),
|
|
513
|
+
endDate: e.string().optional().describe("The last day as YYYY-MM-DD. Omit if unknown."),
|
|
514
|
+
origin: e.string().describe("Where the trip starts."),
|
|
515
|
+
startDate: e.string().optional().describe("The first day as YYYY-MM-DD. Omit if unknown."),
|
|
516
|
+
title: e.string().optional().describe("A short heading. Omit for \"Trip\"."),
|
|
517
|
+
transport: e.enum([
|
|
518
|
+
"car",
|
|
519
|
+
"train",
|
|
520
|
+
"plane",
|
|
521
|
+
"walk",
|
|
522
|
+
"other"
|
|
523
|
+
]).optional().describe("How the trip is made. Omit for \"other\".")
|
|
524
|
+
}).describe("Edit and retain trip details. No bookings or itinerary retrieval."), Ue = e.strictObject({
|
|
525
|
+
data: K,
|
|
526
|
+
...o,
|
|
527
|
+
scope: o.scope.default(He)
|
|
528
|
+
});
|
|
529
|
+
s({
|
|
530
|
+
destination: l(e.string().default("")),
|
|
531
|
+
endDate: l(e.string().nullable().default(null)),
|
|
532
|
+
origin: l(e.string().default("")),
|
|
533
|
+
startDate: l(e.string().nullable().default(null))
|
|
534
|
+
}).refine((e) => !e.startDate.value || !e.endDate.value || e.endDate.value >= e.startDate.value, "The trip cannot end before it starts.");
|
|
535
|
+
// src/kowalski/components/unit-converter.tsx
|
|
536
|
+
var We = "private", q = /* @__PURE__ */ e.strictObject({
|
|
537
|
+
from: e.enum([
|
|
538
|
+
"m",
|
|
539
|
+
"km",
|
|
540
|
+
"mi",
|
|
541
|
+
"ft",
|
|
542
|
+
"kg",
|
|
543
|
+
"g",
|
|
544
|
+
"lb",
|
|
545
|
+
"c",
|
|
546
|
+
"f",
|
|
547
|
+
"k"
|
|
548
|
+
]).describe("The unit to convert from."),
|
|
549
|
+
title: e.string().optional().describe("A short heading. Omit for \"Convert\"."),
|
|
550
|
+
to: e.enum([
|
|
551
|
+
"m",
|
|
552
|
+
"km",
|
|
553
|
+
"mi",
|
|
554
|
+
"ft",
|
|
555
|
+
"kg",
|
|
556
|
+
"g",
|
|
557
|
+
"lb",
|
|
558
|
+
"c",
|
|
559
|
+
"f",
|
|
560
|
+
"k"
|
|
561
|
+
]).describe("The unit to convert to; it must measure the same thing."),
|
|
562
|
+
value: e.number().describe("The amount to convert.")
|
|
563
|
+
}).describe("Convert compatible length, mass, or temperature units deterministically."), Ge = e.strictObject({
|
|
564
|
+
data: q,
|
|
565
|
+
...o,
|
|
566
|
+
scope: o.scope.default(We)
|
|
567
|
+
});
|
|
568
|
+
s({
|
|
569
|
+
from: l(q.shape.from.default("km")),
|
|
570
|
+
to: l(q.shape.from.default("mi")),
|
|
571
|
+
value: e.number().default(0)
|
|
572
|
+
});
|
|
573
|
+
// src/kowalski/fortune.tsx
|
|
574
|
+
var J = /* @__PURE__ */ e.strictObject({
|
|
575
|
+
action: e.string().describe("A short button command, e.g. \"Crack cookie\" or \"Ask the eight ball\"."),
|
|
576
|
+
answers: e.array(e.string()).describe("The complete pool of short fortunes or answers to reveal, one at a time. Match the requested topic and tone."),
|
|
577
|
+
prompt: e.string().describe("The short invitation shown before the first reveal, e.g. \"Your fortune awaits\" or \"Think of a yes-or-no question\"."),
|
|
578
|
+
title: e.string().describe("The heading, e.g. \"Fortune cookie\" or \"Magic 8 Ball\".")
|
|
579
|
+
}).describe("Content for one existing Fortune React component. It already implements a button that randomly reveals one answer. Supply concise UI copy and a ready-to-use answer pool for a fortune cookie, magic eight ball, or themed oracle. Answers are supplied at generation time; the component does not generate new answers or interpret questions at runtime."), Y = e.strictObject({ data: J }), X = /* @__PURE__ */ n.strictObject({
|
|
580
|
+
hasPart: n.array(n.strictObject({
|
|
581
|
+
acceptedAnswer: n.array(n.strictObject({
|
|
582
|
+
answerExplanation: n.string().describe("One or two sentences explaining why this answer is right."),
|
|
583
|
+
text: n.string().describe("The correct answer.")
|
|
584
|
+
})).describe("The correct answers: exactly one for \"Multiple choice\" and \"Flashcard\", one or more for \"Checkbox\". For \"Checkbox\", put each independently selectable correct answer in its own object, so each gets a separate checkbox."),
|
|
585
|
+
assesses: n.string().describe("The id of the concept in teaches that this question practices. The app teaches this concept before showing its questions. Use only material from this concept or earlier ones."),
|
|
586
|
+
eduQuestionType: n.enum([
|
|
587
|
+
"Checkbox",
|
|
588
|
+
"Flashcard",
|
|
589
|
+
"Multiple choice"
|
|
590
|
+
]).describe("\"Multiple choice\" picks one answer, \"Checkbox\" picks every correct answer, and \"Flashcard\" reveals the answer for the learner to grade themselves."),
|
|
591
|
+
id: n.string().describe("A short ID, unique within this lesson, e.g. \"count-1\"."),
|
|
592
|
+
suggestedAnswer: n.array(n.strictObject({
|
|
593
|
+
comment: n.string().optional().describe("Why this choice is wrong, shown when the learner picks it. Omit if the correct answer’s explanation covers it."),
|
|
594
|
+
text: n.string().describe("A plausible wrong answer.")
|
|
595
|
+
})).describe("One to three plausible wrong answers shown alongside the correct ones. Empty for \"Flashcard\"."),
|
|
596
|
+
text: n.string().describe("The question, applying only what has been taught so far, e.g. \"You hold ♠KQ4 ♥A73 ♦J852 ♣K6. How many points?\"")
|
|
597
|
+
})).describe("The questions, two or three per concept, in teaching order."),
|
|
598
|
+
teaches: n.array(n.strictObject({
|
|
599
|
+
description: n.string().describe("Two to four sentences that teach this one idea to a beginner."),
|
|
600
|
+
examples: n.array(n.strictObject({
|
|
601
|
+
name: n.string().describe("The example itself, e.g. \"Buenos días\" or \"♠AK5 ♥QJ4 ♦K82 ♣J73\"."),
|
|
602
|
+
value: n.string().describe("What the example shows, e.g. \"morning\" or \"15 points\".")
|
|
603
|
+
})).describe("Worked examples of the idea as schema.org PropertyValue pairs: the example and what it shows. Empty if none helps."),
|
|
604
|
+
id: n.string().describe("A short ID, unique within this lesson, e.g. \"count-points\"."),
|
|
605
|
+
name: n.string().describe("A short name for the idea, e.g. \"Counting points\".")
|
|
606
|
+
})).describe("The ideas this lesson teaches, in teaching order, usually two to four."),
|
|
607
|
+
title: n.string().describe("The lesson name, e.g. \"Opening bids\".")
|
|
608
|
+
}).describe("A short lesson: the ideas it teaches in order, and questions that practice each idea."), Ke = e.strictObject({
|
|
609
|
+
data: X,
|
|
610
|
+
...o
|
|
611
|
+
});
|
|
612
|
+
c("result_", e.enum(["first", "retry"]).nullable(), {
|
|
613
|
+
missed: e.array(e.string()).default([]),
|
|
614
|
+
seen: e.array(e.string()).default([]),
|
|
615
|
+
started: e.boolean().default(!1)
|
|
616
|
+
});
|
|
617
|
+
// ../schemas/dist/recipe.js
|
|
618
|
+
var qe = /* @__PURE__ */ n.strictObject({
|
|
619
|
+
ingredients: n.array(n.strictObject({
|
|
620
|
+
amount: n.number().optional().describe("How much, e.g. 2 or 0.5. Omit if unmeasured."),
|
|
621
|
+
id: Z(),
|
|
622
|
+
label: n.string().describe("The ingredient, e.g. \"Flour\"."),
|
|
623
|
+
notes: n.array(n.string()).optional().describe("Short notes, e.g. \"sifted\"."),
|
|
624
|
+
unit: n.string().optional().describe("A short unit, e.g. \"cup\" or \"g\".")
|
|
625
|
+
})).describe("Every ingredient, each with an ID unique among ingredients."),
|
|
626
|
+
servings: n.number().optional().describe("How many it serves. Omit if unknown."),
|
|
627
|
+
steps: n.array(n.strictObject({
|
|
628
|
+
after: n.array(Z()).optional().describe("Prerequisite step IDs, all earlier in this recipe. Independent steps have no dependency."),
|
|
629
|
+
attention: n.enum(["active", "passive"]).optional().describe("\"passive\" when the cook can walk away, e.g. while baking."),
|
|
630
|
+
doneness: n.string().optional().describe("How to tell it is done."),
|
|
631
|
+
duration: n.strictObject({
|
|
632
|
+
maxMinutes: n.number().optional(),
|
|
633
|
+
minMinutes: n.number().optional(),
|
|
634
|
+
raw: n.string().describe("The duration as written, e.g. \"10–12 minutes\".")
|
|
635
|
+
}).optional(),
|
|
636
|
+
equipment: n.array(n.string()).optional(),
|
|
637
|
+
id: Z(),
|
|
638
|
+
instruction: n.string().describe("What to do in this step."),
|
|
639
|
+
kind: n.enum([
|
|
640
|
+
"setup",
|
|
641
|
+
"transform",
|
|
642
|
+
"wait",
|
|
643
|
+
"serve"
|
|
644
|
+
]).optional(),
|
|
645
|
+
label: n.string().optional().describe("A short name for the step."),
|
|
646
|
+
outputs: n.array(n.strictObject({
|
|
647
|
+
id: Z(),
|
|
648
|
+
name: n.string().optional()
|
|
649
|
+
})).optional().describe("Products of this step, referenced by later steps through uses."),
|
|
650
|
+
temperature: n.string().optional().describe("As written, e.g. \"350°F\"."),
|
|
651
|
+
uses: n.array(n.strictObject({
|
|
652
|
+
id: Z(),
|
|
653
|
+
portion: n.string().optional().describe("How much of it, e.g. \"half\"."),
|
|
654
|
+
source: n.discriminatedUnion("kind", [n.strictObject({
|
|
655
|
+
ingredientId: Z(),
|
|
656
|
+
kind: n.literal("ingredient")
|
|
657
|
+
}), n.strictObject({
|
|
658
|
+
kind: n.literal("output"),
|
|
659
|
+
outputId: Z()
|
|
660
|
+
})])
|
|
661
|
+
})).optional().describe("Ingredients or earlier step outputs consumed here. Output references create dependencies.")
|
|
662
|
+
})).describe("The steps in order, each with an ID unique among steps."),
|
|
663
|
+
title: n.string().describe("The recipe name."),
|
|
664
|
+
yield: n.string().optional().describe("What it makes, e.g. \"12 cookies\".")
|
|
665
|
+
}).describe("A recipe dependency graph (RGF), with ingredients and ordered steps.");
|
|
666
|
+
function Z() {
|
|
667
|
+
return n.string().describe("A short ID, e.g. \"flour\".");
|
|
668
|
+
}
|
|
669
|
+
// src/kowalski/recipe.tsx
|
|
670
|
+
var Je = "private", Q = qe, Ye = e.strictObject({
|
|
671
|
+
data: Q,
|
|
672
|
+
...o,
|
|
673
|
+
scope: o.scope.default(Je)
|
|
674
|
+
});
|
|
675
|
+
c("step_", e.strictObject({
|
|
676
|
+
done: e.boolean(),
|
|
677
|
+
endsAt: e.number().nullable()
|
|
678
|
+
}), {
|
|
679
|
+
cooking: e.boolean().default(!1),
|
|
680
|
+
servings: e.number().default(1)
|
|
681
|
+
});
|
|
682
|
+
// src/kowalski/time-since.tsx
|
|
683
|
+
var Xe = "public", $ = /* @__PURE__ */ e.strictObject({
|
|
684
|
+
action: e.string().describe("The big button that updates it, as a short command for doing it now, e.g. \"Give pill\" or \"Water plants\"."),
|
|
685
|
+
label: e.string().describe("A small line above the title naming the kind of tracker, e.g. \"Pill timer\". Pass an empty string to hide it."),
|
|
686
|
+
subject: e.string().describe("What gets done, as a short noun, e.g. \"pill\" or \"watering\". With \"pill\", the timestamp reads \"Last pill today at 5:04 PM\"."),
|
|
687
|
+
title: e.string().describe("Who or what is being tracked, shown as the heading, e.g. \"Winnie\" or \"Fern\".")
|
|
688
|
+
}).describe("Four short UI strings for an existing TimeSince React component: a heading, tracker label, event noun, and button command. The component already implements the elapsed clock, reset button, and saved state. Supply concise copy for each field, not explanations, implementation instructions, timestamps, or claims about the timer’s current state."), Ze = e.strictObject({
|
|
689
|
+
data: $,
|
|
690
|
+
...o,
|
|
691
|
+
scope: o.scope.default(Xe)
|
|
692
|
+
});
|
|
693
|
+
s({ lastAt: e.number().nullable().default(null) });
|
|
694
|
+
// src/kowalski/catalog.ts
|
|
695
|
+
var Qe = {
|
|
696
|
+
billSplit: {
|
|
697
|
+
exportName: "BillSplit",
|
|
698
|
+
props: d
|
|
37
699
|
},
|
|
38
700
|
bookmark: {
|
|
39
|
-
description: "Display, edit, and retain a web bookmark. No implicit metadata fetch.",
|
|
40
701
|
exportName: "Bookmark",
|
|
41
|
-
props:
|
|
42
|
-
note: t.string().max(1e4).default(""),
|
|
43
|
-
title: v(),
|
|
44
|
-
url: C()
|
|
45
|
-
}),
|
|
46
|
-
storeSchema: _({
|
|
47
|
-
note: w(t.string().max(1e4).default("")),
|
|
48
|
-
title: w(t.string().max(160).default("")),
|
|
49
|
-
url: w(C().nullable().default(null))
|
|
50
|
-
})
|
|
702
|
+
props: ie
|
|
51
703
|
},
|
|
52
704
|
budget: {
|
|
53
|
-
description: "Track spending against category limits for one budget period. No bank connection or payments.",
|
|
54
705
|
exportName: "Budget",
|
|
55
|
-
props:
|
|
56
|
-
categories: m({
|
|
57
|
-
label: t.string().min(1).max(80),
|
|
58
|
-
limit: t.number().positive().max(0xe8d4a51000)
|
|
59
|
-
}, 12),
|
|
60
|
-
currency: f(),
|
|
61
|
-
title: v("Budget")
|
|
62
|
-
}),
|
|
63
|
-
storeSchema: p(i.budget, t.number().min(0).max(0xe8d4a51000), {})
|
|
706
|
+
props: m
|
|
64
707
|
},
|
|
65
708
|
calculator: {
|
|
66
|
-
description: "A persistent keypad calculator with chained arithmetic, decimals, sign, percent, and repeated equals. Supports +, -, *, /. No executable expression strings.",
|
|
67
709
|
exportName: "Calculator",
|
|
68
|
-
props:
|
|
69
|
-
left: t.number().default(0),
|
|
70
|
-
operator: t.enum([
|
|
71
|
-
"+",
|
|
72
|
-
"-",
|
|
73
|
-
"*",
|
|
74
|
-
"/"
|
|
75
|
-
]).default("+"),
|
|
76
|
-
right: t.number().default(0),
|
|
77
|
-
title: v("Calculate")
|
|
78
|
-
}),
|
|
79
|
-
storeSchema: _({ calculation: t.object({
|
|
80
|
-
entry: t.string().max(40).regex(/^(?:-?\d+(?:\.\d*)?(?:e[+-]?\d+)?|Error)$/),
|
|
81
|
-
left: t.number(),
|
|
82
|
-
operator: t.enum([
|
|
83
|
-
"+",
|
|
84
|
-
"-",
|
|
85
|
-
"*",
|
|
86
|
-
"/"
|
|
87
|
-
]),
|
|
88
|
-
overwrite: t.boolean(),
|
|
89
|
-
phase: t.enum([
|
|
90
|
-
"left",
|
|
91
|
-
"operator",
|
|
92
|
-
"right",
|
|
93
|
-
"result",
|
|
94
|
-
"error"
|
|
95
|
-
]),
|
|
96
|
-
right: t.number()
|
|
97
|
-
}).refine((e) => e.phase === "error" ? e.entry === "Error" : e.entry !== "Error" && Number.isFinite(Number(e.entry)), "Calculator entry must match its phase and represent a finite number.").default({
|
|
98
|
-
entry: "0",
|
|
99
|
-
left: 0,
|
|
100
|
-
operator: "+",
|
|
101
|
-
overwrite: !1,
|
|
102
|
-
phase: "left",
|
|
103
|
-
right: 0
|
|
104
|
-
}) })
|
|
710
|
+
props: _
|
|
105
711
|
},
|
|
106
712
|
checklist: {
|
|
107
|
-
description: "A persistent checklist with independent completion and progress. No external actions.",
|
|
108
713
|
exportName: "Checklist",
|
|
109
|
-
props:
|
|
110
|
-
items: m({ label: t.string().min(1).max(500) }, 100),
|
|
111
|
-
title: v()
|
|
112
|
-
}),
|
|
113
|
-
storeSchema: p(i.checklist, t.boolean(), {})
|
|
714
|
+
props: se
|
|
114
715
|
},
|
|
115
716
|
colorPalette: {
|
|
116
|
-
description: "Choose and retain an sRGB color and display matching shades.",
|
|
117
717
|
exportName: "ColorPalette",
|
|
118
|
-
props:
|
|
119
|
-
color: t.string().regex(/^#[\da-fA-F]{6}$/),
|
|
120
|
-
title: v("Palette")
|
|
121
|
-
}),
|
|
122
|
-
storeSchema: _({ color: w(t.string().regex(/^#[\da-fA-F]{6}$/).default("#6366f1")) })
|
|
718
|
+
props: le
|
|
123
719
|
},
|
|
124
720
|
contact: {
|
|
125
|
-
description: "Display, edit, and retain a contact. Does not insert into the address book.",
|
|
126
721
|
exportName: "Contact",
|
|
127
|
-
props:
|
|
128
|
-
email: t.email().optional(),
|
|
129
|
-
name: t.string().min(1).max(160),
|
|
130
|
-
phone: t.string().min(1).max(80).optional()
|
|
131
|
-
}),
|
|
132
|
-
storeSchema: _({
|
|
133
|
-
email: w(t.email().nullable().default(null)),
|
|
134
|
-
name: w(t.string().max(160).default("")),
|
|
135
|
-
phone: w(t.string().min(1).max(80).nullable().default(null))
|
|
136
|
-
})
|
|
722
|
+
props: fe
|
|
137
723
|
},
|
|
138
724
|
countdown: {
|
|
139
|
-
description: "Count down to an explicit instant. Resolve missing dates before instantiation.",
|
|
140
725
|
exportName: "Countdown",
|
|
141
|
-
props:
|
|
142
|
-
target: t.iso.datetime({ offset: !0 }),
|
|
143
|
-
timeZone: x().default("UTC"),
|
|
144
|
-
title: v()
|
|
145
|
-
}),
|
|
146
|
-
storeSchema: _({ target: w(t.iso.datetime({ offset: !0 }).nullable().default(null)) })
|
|
726
|
+
props: me
|
|
147
727
|
},
|
|
148
728
|
event: {
|
|
149
|
-
description: "Save and edit event details in the app. Does not create a calendar event.",
|
|
150
729
|
exportName: "Event",
|
|
151
|
-
props:
|
|
152
|
-
location: t.string().max(500).default(""),
|
|
153
|
-
startsAt: t.iso.datetime({ offset: !0 }).nullable().default(null),
|
|
154
|
-
timeZone: x().default("UTC"),
|
|
155
|
-
title: v()
|
|
156
|
-
}),
|
|
157
|
-
storeSchema: _({
|
|
158
|
-
location: w(t.string().max(500).default("")),
|
|
159
|
-
startsAt: w(t.iso.datetime({ offset: !0 }).nullable().default(null)),
|
|
160
|
-
title: w(t.string().max(160).default(""))
|
|
161
|
-
})
|
|
730
|
+
props: _e
|
|
162
731
|
},
|
|
163
732
|
expense: {
|
|
164
|
-
description: "Edit and retain one expense. No payments, bank connection, or exchange-rate lookup.",
|
|
165
733
|
exportName: "Expense",
|
|
166
|
-
props:
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}),
|
|
172
|
-
storeSchema: _({
|
|
173
|
-
amount: t.number().min(0).max(0xe8d4a51000).default(0),
|
|
174
|
-
category: w(t.string().max(80).default("Other")),
|
|
175
|
-
title: w(t.string().max(160).default(""))
|
|
176
|
-
})
|
|
734
|
+
props: ye
|
|
735
|
+
},
|
|
736
|
+
fortune: {
|
|
737
|
+
exportName: "Fortune",
|
|
738
|
+
props: Y
|
|
177
739
|
},
|
|
178
740
|
goal: {
|
|
179
|
-
description: "A personal goal with editable progress, target, and a fixed increment. Not a distributed counter.",
|
|
180
741
|
exportName: "Goal",
|
|
181
|
-
props:
|
|
182
|
-
progress: t.number().min(0).max(0xe8d4a51000).default(0),
|
|
183
|
-
step: t.number().positive().max(1e9).default(1),
|
|
184
|
-
target: t.number().positive().max(0xe8d4a51000),
|
|
185
|
-
title: v(),
|
|
186
|
-
unit: t.string().max(40).default("")
|
|
187
|
-
}),
|
|
188
|
-
storeSchema: _({ progress: t.number().min(0).default(0) })
|
|
742
|
+
props: E
|
|
189
743
|
},
|
|
190
744
|
habit: {
|
|
191
|
-
description: "Track a habit by local date and edit its weekday schedule. No notifications.",
|
|
192
745
|
exportName: "Habit",
|
|
193
|
-
props:
|
|
194
|
-
timeZone: x().default("UTC"),
|
|
195
|
-
title: v(),
|
|
196
|
-
weekdays: S()
|
|
197
|
-
}),
|
|
198
|
-
storeSchema: p(i.habit, t.boolean(), { weekdays: S() })
|
|
746
|
+
props: A
|
|
199
747
|
},
|
|
200
748
|
ledger: {
|
|
201
|
-
description: "A running tab of shared costs between two people, split evenly, with settle up. No payments.",
|
|
202
749
|
exportName: "Ledger",
|
|
203
|
-
props:
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
storeSchema: _({ entries: t.array(t.strictObject({
|
|
209
|
-
amount: t.number().positive().max(0xe8d4a51000),
|
|
210
|
-
id: h(),
|
|
211
|
-
label: t.string().max(160),
|
|
212
|
-
paidBy: h()
|
|
213
|
-
})).max(200).default([]) })
|
|
750
|
+
props: N
|
|
751
|
+
},
|
|
752
|
+
lesson: {
|
|
753
|
+
exportName: "Lesson",
|
|
754
|
+
props: Ke
|
|
214
755
|
},
|
|
215
756
|
note: {
|
|
216
|
-
description: "An editable persistent note. Plain text; no HTML or code execution.",
|
|
217
757
|
exportName: "Note",
|
|
218
|
-
props:
|
|
219
|
-
body: t.string().max(2e4),
|
|
220
|
-
title: t.string().max(160)
|
|
221
|
-
}),
|
|
222
|
-
storeSchema: _({
|
|
223
|
-
body: w(t.string().max(2e4).default("")),
|
|
224
|
-
title: w(t.string().max(160).default(""))
|
|
225
|
-
})
|
|
758
|
+
props: be
|
|
226
759
|
},
|
|
227
760
|
poll: {
|
|
228
761
|
exportName: "Poll",
|
|
229
|
-
|
|
230
|
-
props: d({
|
|
231
|
-
options: m({ label: t.string().min(1).max(160) }, 12, 2),
|
|
232
|
-
question: t.string().min(1).max(500),
|
|
233
|
-
shared: t.boolean().default(!1)
|
|
234
|
-
}),
|
|
235
|
-
storeSchema: p(i.poll, h(), {})
|
|
762
|
+
props: xe
|
|
236
763
|
},
|
|
237
764
|
randomPicker: {
|
|
238
|
-
description: "Flip a coin, roll a die, or pick from a bounded integer range or list. Retains the last result.",
|
|
239
765
|
exportName: "RandomPicker",
|
|
240
|
-
props:
|
|
241
|
-
d({
|
|
242
|
-
mode: t.literal("coin"),
|
|
243
|
-
title: v("Pick one")
|
|
244
|
-
}),
|
|
245
|
-
d({
|
|
246
|
-
mode: t.literal("dice"),
|
|
247
|
-
title: v("Pick one")
|
|
248
|
-
}),
|
|
249
|
-
d({
|
|
250
|
-
maximum: t.number().int().min(-1e9).max(1e9),
|
|
251
|
-
minimum: t.number().int().min(-1e9).max(1e9),
|
|
252
|
-
mode: t.literal("range"),
|
|
253
|
-
title: v("Pick one")
|
|
254
|
-
}).refine((e) => e.minimum <= e.maximum, {
|
|
255
|
-
message: "Minimum cannot exceed maximum.",
|
|
256
|
-
path: ["maximum"]
|
|
257
|
-
}),
|
|
258
|
-
d({
|
|
259
|
-
mode: t.literal("list"),
|
|
260
|
-
options: t.array(t.string().min(1).max(160)).min(1).max(100),
|
|
261
|
-
title: v("Pick one")
|
|
262
|
-
})
|
|
263
|
-
]),
|
|
264
|
-
storeSchema: _({ result: t.strictObject({
|
|
265
|
-
domain: g(),
|
|
266
|
-
value: t.union([t.number().int(), t.string().max(160)])
|
|
267
|
-
}).nullable().default(null) })
|
|
766
|
+
props: we
|
|
268
767
|
},
|
|
269
768
|
rating: {
|
|
270
|
-
description: "Rate one thing from one to five stars and keep a short note about it.",
|
|
271
769
|
exportName: "Rating",
|
|
272
|
-
props:
|
|
273
|
-
subject: t.string().min(1).max(160),
|
|
274
|
-
title: v("Your rating")
|
|
275
|
-
}),
|
|
276
|
-
storeSchema: _({
|
|
277
|
-
note: w(t.string().max(2e3).default("")),
|
|
278
|
-
stars: t.number().int().min(0).max(5).default(0)
|
|
279
|
-
})
|
|
770
|
+
props: De
|
|
280
771
|
},
|
|
281
772
|
recipe: {
|
|
282
|
-
description: "Cook a recipe whose steps follow the Recipe Graph Format (rgf/0-draft): each step uses ingredients or earlier step outputs, waits on the steps in after, and may carry a duration, doneness cue, and attention. Ingredients carry a numeric amount and unit, and meta.servings is a number, so amounts scale with servings. Shows running timers, the current step, and the next few. No nutrition or shopping lookup.",
|
|
283
773
|
exportName: "Recipe",
|
|
284
|
-
props:
|
|
285
|
-
ingredients: m({
|
|
286
|
-
amount: t.number().positive().max(1e6).optional(),
|
|
287
|
-
label: t.string().min(1).max(160),
|
|
288
|
-
notes: t.array(t.string().max(160)).max(10).optional(),
|
|
289
|
-
unit: t.string().max(40).optional()
|
|
290
|
-
}, 60),
|
|
291
|
-
servings: t.number().int().min(1).max(100).optional(),
|
|
292
|
-
steps: t.array(t.strictObject({
|
|
293
|
-
after: t.array(h()).max(60).optional(),
|
|
294
|
-
attention: t.enum(["active", "passive"]).optional(),
|
|
295
|
-
doneness: t.string().max(200).optional(),
|
|
296
|
-
duration: t.strictObject({
|
|
297
|
-
maxMinutes: t.number().nonnegative().max(10080).optional(),
|
|
298
|
-
minMinutes: t.number().nonnegative().max(10080).optional(),
|
|
299
|
-
raw: t.string().min(1).max(80)
|
|
300
|
-
}).refine((e) => e.minMinutes === void 0 || e.maxMinutes === void 0 || e.minMinutes <= e.maxMinutes, "minMinutes cannot exceed maxMinutes.").optional(),
|
|
301
|
-
equipment: t.array(t.string().min(1).max(160)).max(20).optional(),
|
|
302
|
-
id: h(),
|
|
303
|
-
instruction: t.string().min(1).max(500),
|
|
304
|
-
kind: t.enum([
|
|
305
|
-
"setup",
|
|
306
|
-
"transform",
|
|
307
|
-
"wait",
|
|
308
|
-
"serve"
|
|
309
|
-
]).optional(),
|
|
310
|
-
label: t.string().max(80).optional(),
|
|
311
|
-
outputs: t.array(t.strictObject({
|
|
312
|
-
id: h(),
|
|
313
|
-
name: t.string().max(160).optional()
|
|
314
|
-
})).max(10).optional(),
|
|
315
|
-
temperature: t.string().min(1).max(80).optional(),
|
|
316
|
-
uses: t.array(t.strictObject({
|
|
317
|
-
id: h(),
|
|
318
|
-
portion: t.string().max(80).optional(),
|
|
319
|
-
source: t.discriminatedUnion("kind", [t.strictObject({
|
|
320
|
-
ingredientId: h(),
|
|
321
|
-
kind: t.literal("ingredient")
|
|
322
|
-
}), t.strictObject({
|
|
323
|
-
kind: t.literal("output"),
|
|
324
|
-
outputId: h()
|
|
325
|
-
})])
|
|
326
|
-
})).max(30).default([])
|
|
327
|
-
})).min(1).max(60),
|
|
328
|
-
title: v(),
|
|
329
|
-
yield: t.string().max(160).optional()
|
|
330
|
-
}).superRefine((e, t) => {
|
|
331
|
-
let n = new Set(e.ingredients.map((e) => e.id)), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set();
|
|
332
|
-
for (let a of e.steps) {
|
|
333
|
-
!r.has(a.id) && (a.after ?? []).every((e) => r.has(e)) && a.uses.every((e) => e.source.kind === "ingredient" ? n.has(e.source.ingredientId) : i.has(e.source.outputId)) || t.addIssue({
|
|
334
|
-
code: "custom",
|
|
335
|
-
message: `Step ${a.id} needs a unique ID and can only use ingredients and earlier steps.`
|
|
336
|
-
}), r.add(a.id);
|
|
337
|
-
for (let e of a.outputs ?? []) i.has(e.id) && t.addIssue({
|
|
338
|
-
code: "custom",
|
|
339
|
-
message: "Output IDs must be unique."
|
|
340
|
-
}), i.add(e.id);
|
|
341
|
-
}
|
|
342
|
-
}),
|
|
343
|
-
storeSchema: p(i.recipe, t.strictObject({
|
|
344
|
-
done: t.boolean(),
|
|
345
|
-
endsAt: t.number().nullable()
|
|
346
|
-
}), {
|
|
347
|
-
cooking: t.boolean().default(!1),
|
|
348
|
-
servings: t.number().int().min(1).max(100).default(1)
|
|
349
|
-
})
|
|
774
|
+
props: Ye
|
|
350
775
|
},
|
|
351
776
|
reminder: {
|
|
352
|
-
description: "Complete, reopen, and edit an in-app reminder. Does not schedule notifications.",
|
|
353
777
|
exportName: "Reminder",
|
|
354
|
-
props:
|
|
355
|
-
dueAt: t.iso.datetime({ offset: !0 }).nullable().default(null),
|
|
356
|
-
recurrence: t.enum([
|
|
357
|
-
"none",
|
|
358
|
-
"daily",
|
|
359
|
-
"weekly"
|
|
360
|
-
]).default("none"),
|
|
361
|
-
timeZone: x().optional(),
|
|
362
|
-
title: t.string().min(1).max(500)
|
|
363
|
-
}),
|
|
364
|
-
storeSchema: _({
|
|
365
|
-
completedAt: t.number().nullable().default(null),
|
|
366
|
-
dueAt: w(t.iso.datetime({ offset: !0 }).nullable().default(null)),
|
|
367
|
-
title: w(t.string().max(500).default(""))
|
|
368
|
-
})
|
|
778
|
+
props: ke
|
|
369
779
|
},
|
|
370
780
|
rotation: {
|
|
371
|
-
description: "Take turns through a fixed group in order and pass the turn on when done.",
|
|
372
781
|
exportName: "Rotation",
|
|
373
|
-
props:
|
|
374
|
-
people: m({ label: t.string().min(1).max(80) }, 20, 2),
|
|
375
|
-
task: t.string().min(1).max(160),
|
|
376
|
-
title: v("Whose turn")
|
|
377
|
-
}),
|
|
378
|
-
storeSchema: _({
|
|
379
|
-
completed: t.number().int().min(0).default(0),
|
|
380
|
-
turn: h().nullable().default(null)
|
|
381
|
-
})
|
|
782
|
+
props: je
|
|
382
783
|
},
|
|
383
784
|
scoreboard: {
|
|
384
|
-
description: "Keep score for a few players with a fixed step. Not a distributed counter or a league.",
|
|
385
785
|
exportName: "Scoreboard",
|
|
386
|
-
props:
|
|
387
|
-
players: m({ label: t.string().min(1).max(80) }, 12, 2),
|
|
388
|
-
step: t.number().int().positive().max(1e3).default(1),
|
|
389
|
-
title: v("Scores")
|
|
390
|
-
}),
|
|
391
|
-
storeSchema: p(i.scoreboard, t.number().int(), {})
|
|
786
|
+
props: Ne
|
|
392
787
|
},
|
|
393
788
|
shoppingList: {
|
|
394
|
-
description: "Check items off a shopping list with optional prices and a running cart total. No ordering.",
|
|
395
789
|
exportName: "ShoppingList",
|
|
396
|
-
props:
|
|
397
|
-
currency: f(),
|
|
398
|
-
items: m({
|
|
399
|
-
label: t.string().min(1).max(160),
|
|
400
|
-
price: t.number().min(0).max(1e9).optional(),
|
|
401
|
-
quantity: t.number().int().min(1).max(999).default(1)
|
|
402
|
-
}, 100),
|
|
403
|
-
title: v("Shopping list")
|
|
404
|
-
}),
|
|
405
|
-
storeSchema: p(i.shoppingList, t.boolean(), {})
|
|
790
|
+
props: Fe
|
|
406
791
|
},
|
|
407
792
|
taskBoard: {
|
|
408
|
-
description: "Move tasks between To do, Doing, and Done. No assignees, dates, or sync.",
|
|
409
793
|
exportName: "TaskBoard",
|
|
410
|
-
props:
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
"todo",
|
|
416
|
-
"doing",
|
|
417
|
-
"done"
|
|
418
|
-
]), {})
|
|
794
|
+
props: Le
|
|
795
|
+
},
|
|
796
|
+
timeSince: {
|
|
797
|
+
exportName: "TimeSince",
|
|
798
|
+
props: Ze
|
|
419
799
|
},
|
|
420
800
|
timeZone: {
|
|
421
|
-
description: "Compare local times in named time zones, live or at an explicit instant.",
|
|
422
801
|
exportName: "TimeZone",
|
|
423
|
-
props:
|
|
424
|
-
at: t.iso.datetime({ offset: !0 }).nullable().default(null),
|
|
425
|
-
title: v("World clock"),
|
|
426
|
-
zones: t.array(x()).min(2).max(6)
|
|
427
|
-
}),
|
|
428
|
-
storeSchema: _({ at: w(t.iso.datetime({ offset: !0 }).nullable().default(null)) })
|
|
802
|
+
props: ze
|
|
429
803
|
},
|
|
430
804
|
timer: {
|
|
431
|
-
description: "Countdown, focus, break, or stopwatch. Start, pause, resume, reset; no background alarm.",
|
|
432
805
|
exportName: "Timer",
|
|
433
|
-
props:
|
|
434
|
-
durationSeconds: t.number().int().min(1).max(604800).default(300),
|
|
435
|
-
mode: t.enum([
|
|
436
|
-
"countdown",
|
|
437
|
-
"focus",
|
|
438
|
-
"break",
|
|
439
|
-
"stopwatch"
|
|
440
|
-
]).default("countdown"),
|
|
441
|
-
title: v("Timer")
|
|
442
|
-
}),
|
|
443
|
-
storeSchema: _({
|
|
444
|
-
elapsedSeconds: t.number().min(0).default(0),
|
|
445
|
-
startedAt: t.number().nullable().default(null)
|
|
446
|
-
})
|
|
806
|
+
props: Ve
|
|
447
807
|
},
|
|
448
808
|
trip: {
|
|
449
|
-
description: "Edit and retain trip details. No bookings or itinerary retrieval.",
|
|
450
809
|
exportName: "Trip",
|
|
451
|
-
props:
|
|
452
|
-
destination: t.string().min(1).max(160),
|
|
453
|
-
endDate: t.iso.date().nullable().default(null),
|
|
454
|
-
origin: t.string().min(1).max(160),
|
|
455
|
-
startDate: t.iso.date().nullable().default(null),
|
|
456
|
-
title: v("Trip"),
|
|
457
|
-
transport: t.enum([
|
|
458
|
-
"car",
|
|
459
|
-
"train",
|
|
460
|
-
"plane",
|
|
461
|
-
"walk",
|
|
462
|
-
"other"
|
|
463
|
-
]).default("other")
|
|
464
|
-
}).refine((e) => !e.startDate || !e.endDate || e.endDate >= e.startDate, {
|
|
465
|
-
message: "The trip cannot end before it starts.",
|
|
466
|
-
path: ["endDate"]
|
|
467
|
-
}),
|
|
468
|
-
storeSchema: _({
|
|
469
|
-
destination: w(t.string().max(160).default("")),
|
|
470
|
-
endDate: w(t.iso.date().nullable().default(null)),
|
|
471
|
-
origin: w(t.string().max(160).default("")),
|
|
472
|
-
startDate: w(t.iso.date().nullable().default(null))
|
|
473
|
-
}).refine((e) => !e.startDate.value || !e.endDate.value || e.endDate.value >= e.startDate.value, "The trip cannot end before it starts.")
|
|
810
|
+
props: Ue
|
|
474
811
|
},
|
|
475
812
|
unitConverter: {
|
|
476
|
-
description: "Convert compatible length, mass, or temperature units deterministically.",
|
|
477
813
|
exportName: "UnitConverter",
|
|
478
|
-
props:
|
|
479
|
-
from: b(),
|
|
480
|
-
title: v("Convert"),
|
|
481
|
-
to: b(),
|
|
482
|
-
value: t.number()
|
|
483
|
-
}).refine(({ from: e, to: t }) => u[e].dimension === u[t].dimension, {
|
|
484
|
-
message: "Source and destination units must measure the same dimension.",
|
|
485
|
-
path: ["to"]
|
|
486
|
-
}),
|
|
487
|
-
storeSchema: _({
|
|
488
|
-
from: w(b().default("km")),
|
|
489
|
-
to: w(b().default("mi")),
|
|
490
|
-
value: t.number().default(0)
|
|
491
|
-
}).refine(({ from: e, to: t }) => u[e.value].dimension === u[t.value].dimension, "Incompatible units.")
|
|
492
|
-
}
|
|
493
|
-
}, s = t.enum(/* @__PURE__ */ "checklist.timer.habit.goal.poll.event.reminder.trip.countdown.timeZone.colorPalette.billSplit.expense.unitConverter.calculator.randomPicker.contact.bookmark.note.budget.scoreboard.taskBoard.recipe.rotation.shoppingList.rating.ledger".split(".")), c = t.object({
|
|
494
|
-
configuration: t.string().default(""),
|
|
495
|
-
voter: t.string().min(1)
|
|
496
|
-
}), l = {
|
|
497
|
-
max_allowed_length: 2048,
|
|
498
|
-
protocols: ["http", "https"],
|
|
499
|
-
require_host: !0,
|
|
500
|
-
require_protocol: !0,
|
|
501
|
-
require_tld: !1,
|
|
502
|
-
require_valid_protocol: !0
|
|
503
|
-
}, u = {
|
|
504
|
-
c: {
|
|
505
|
-
dimension: "temperature",
|
|
506
|
-
factor: 1,
|
|
507
|
-
offset: 0
|
|
508
|
-
},
|
|
509
|
-
f: {
|
|
510
|
-
dimension: "temperature",
|
|
511
|
-
factor: 5 / 9,
|
|
512
|
-
offset: -32
|
|
513
|
-
},
|
|
514
|
-
ft: {
|
|
515
|
-
dimension: "length",
|
|
516
|
-
factor: .3048,
|
|
517
|
-
offset: 0
|
|
518
|
-
},
|
|
519
|
-
g: {
|
|
520
|
-
dimension: "mass",
|
|
521
|
-
factor: .001,
|
|
522
|
-
offset: 0
|
|
523
|
-
},
|
|
524
|
-
k: {
|
|
525
|
-
dimension: "temperature",
|
|
526
|
-
factor: 1,
|
|
527
|
-
offset: -273.15
|
|
528
|
-
},
|
|
529
|
-
kg: {
|
|
530
|
-
dimension: "mass",
|
|
531
|
-
factor: 1,
|
|
532
|
-
offset: 0
|
|
533
|
-
},
|
|
534
|
-
km: {
|
|
535
|
-
dimension: "length",
|
|
536
|
-
factor: 1e3,
|
|
537
|
-
offset: 0
|
|
538
|
-
},
|
|
539
|
-
lb: {
|
|
540
|
-
dimension: "mass",
|
|
541
|
-
factor: .45359237,
|
|
542
|
-
offset: 0
|
|
543
|
-
},
|
|
544
|
-
m: {
|
|
545
|
-
dimension: "length",
|
|
546
|
-
factor: 1,
|
|
547
|
-
offset: 0
|
|
548
|
-
},
|
|
549
|
-
mi: {
|
|
550
|
-
dimension: "length",
|
|
551
|
-
factor: 1609.344,
|
|
552
|
-
offset: 0
|
|
814
|
+
props: Ge
|
|
553
815
|
}
|
|
554
816
|
};
|
|
555
|
-
|
|
556
|
-
return t.strictObject({
|
|
557
|
-
id: n,
|
|
558
|
-
revision: t.number().int().min(0).default(0),
|
|
559
|
-
scope: r,
|
|
560
|
-
...e
|
|
561
|
-
});
|
|
562
|
-
}
|
|
563
|
-
function f() {
|
|
564
|
-
return t.string().regex(/^[A-Z]{3}$/).default("USD");
|
|
565
|
-
}
|
|
566
|
-
function p(e, n, r) {
|
|
567
|
-
let i = _(r), a = new Set(Object.keys(i.shape));
|
|
568
|
-
return t.intersection(i.loose(), t.looseRecord(t.templateLiteral([e, t.string()]), n)).refine((t) => Object.keys(t).every((t) => a.has(t) || t.startsWith(e)), `Item fields must start with ${e}.`);
|
|
569
|
-
}
|
|
570
|
-
function m(e, n, r = 1) {
|
|
571
|
-
return t.array(t.strictObject(e).extend({ id: h() })).min(r).max(n).refine(y, "IDs must be unique.");
|
|
572
|
-
}
|
|
573
|
-
function h() {
|
|
574
|
-
return t.string().min(1).max(80).refine((e) => e !== "__proto__");
|
|
575
|
-
}
|
|
576
|
-
function g() {
|
|
577
|
-
return t.union([
|
|
578
|
-
t.strictObject({ mode: t.literal("coin") }),
|
|
579
|
-
t.strictObject({ mode: t.literal("dice") }),
|
|
580
|
-
t.strictObject({
|
|
581
|
-
maximum: t.number().int(),
|
|
582
|
-
minimum: t.number().int(),
|
|
583
|
-
mode: t.literal("range")
|
|
584
|
-
}),
|
|
585
|
-
t.strictObject({
|
|
586
|
-
mode: t.literal("list"),
|
|
587
|
-
options: t.array(t.string().max(160)).max(100)
|
|
588
|
-
})
|
|
589
|
-
]);
|
|
590
|
-
}
|
|
591
|
-
function _(e) {
|
|
592
|
-
return t.object({
|
|
593
|
-
configuration: t.record(t.string(), t.unknown()).nullable().default(null),
|
|
594
|
-
configurationRevision: t.number().int().min(0).default(0),
|
|
595
|
-
...e
|
|
596
|
-
});
|
|
597
|
-
}
|
|
598
|
-
function v(e) {
|
|
599
|
-
let n = t.string().min(1).max(160);
|
|
600
|
-
return e === void 0 ? n : n.default(e);
|
|
601
|
-
}
|
|
602
|
-
function y(e) {
|
|
603
|
-
let t = e.map((e) => "id" in e ? e.id : void 0);
|
|
604
|
-
return new Set(t).size === t.length;
|
|
605
|
-
}
|
|
606
|
-
function b() {
|
|
607
|
-
return t.enum([
|
|
608
|
-
"m",
|
|
609
|
-
"km",
|
|
610
|
-
"mi",
|
|
611
|
-
"ft",
|
|
612
|
-
"kg",
|
|
613
|
-
"g",
|
|
614
|
-
"lb",
|
|
615
|
-
"c",
|
|
616
|
-
"f",
|
|
617
|
-
"k"
|
|
618
|
-
]);
|
|
619
|
-
}
|
|
620
|
-
function x() {
|
|
621
|
-
return t.string().max(80).refine((e) => {
|
|
622
|
-
try {
|
|
623
|
-
return new Intl.DateTimeFormat("en", { timeZone: e }).format(0), !0;
|
|
624
|
-
} catch {
|
|
625
|
-
return !1;
|
|
626
|
-
}
|
|
627
|
-
}, "Use a valid IANA time zone.");
|
|
628
|
-
}
|
|
629
|
-
function S() {
|
|
630
|
-
return t.array(t.enum(a)).max(7).default([...a]);
|
|
631
|
-
}
|
|
632
|
-
function C() {
|
|
633
|
-
return t.string().max(2048).refine((t) => e(t, l), "Use a valid HTTP or HTTPS address.");
|
|
634
|
-
}
|
|
635
|
-
function w(e) {
|
|
636
|
-
return t.object({ value: e }).default(() => ({ value: e.parse(void 0) }));
|
|
637
|
-
}
|
|
638
|
-
export { i as entryPrefixes, o as kowalskiCatalog, s as kowalskiComponentSchema, n as kowalskiFeatureId, r as kowalskiScope, c as pollVoterSchema, u as unitDefinitions, l as webAddressOptions, a as weekdayNames };
|
|
817
|
+
export { u as BillSplitData, f as BookmarkData, p as BudgetData, g as CalculatorData, v as ChecklistData, y as ColorPaletteData, b as ContactData, x as CountdownData, S as EventData, C as ExpenseData, J as FortuneData, T as GoalData, k as HabitData, M as LedgerData, X as LessonData, F as NoteData, I as PollData, L as RandomPickerData, R as RatingData, Q as RecipeData, z as ReminderData, B as RotationData, V as ScoreboardData, H as ShoppingListData, U as TaskBoardData, $ as TimeSinceData, W as TimeZoneData, G as TimerData, K as TripData, q as UnitConverterData, Qe as kowalskiCatalog, ee as kowalskiComponentSchema, i as kowalskiFeatureId, a as kowalskiScope, Se as pollVoterSchema, r as unitDefinitions, ne as webAddressOptions };
|