mlform 0.1.2 → 0.1.4
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/README.md +241 -88
- package/dist/design-system-CrrSGfFB.js +1352 -0
- package/dist/engine-nnhWPT2L.js +5301 -0
- package/dist/kit-Dt_1Fxlc.js +76 -0
- package/dist/mlform/design-system.mjs +2 -0
- package/dist/mlform/engine.mjs +3 -0
- package/dist/mlform/kit.mjs +3 -0
- package/dist/mlform/primitives.mjs +2 -0
- package/dist/mlform/questionnaire.mjs +640 -0
- package/dist/mlform/transport.mjs +2 -0
- package/dist/mlform.mjs +4 -709
- package/dist/primitives-Pi-ztAr6.js +5063 -0
- package/dist/transport-A1RsnZhD.js +2143 -0
- package/dist/types/src/design-system/constants.d.ts +34 -0
- package/dist/types/src/design-system/contract/component-keys.d.ts +2 -0
- package/dist/types/src/design-system/contract/component-tokens.d.ts +5 -0
- package/dist/types/src/design-system/contract/global-tokens.d.ts +7 -0
- package/dist/types/src/design-system/contract/index.d.ts +4 -0
- package/dist/types/src/design-system/contract/token-keys.d.ts +12 -0
- package/dist/types/src/design-system/index.d.ts +8 -0
- package/dist/types/src/design-system/recipes/contrast.d.ts +2 -0
- package/dist/types/src/design-system/recipes/default.d.ts +2 -0
- package/dist/types/src/design-system/recipes/index.d.ts +4 -0
- package/dist/types/src/design-system/recipes/minimal.d.ts +2 -0
- package/dist/types/src/design-system/recipes/soft.d.ts +2 -0
- package/dist/types/src/design-system/registry/builtins.d.ts +5 -0
- package/dist/types/src/design-system/registry/create-registry.d.ts +2 -0
- package/dist/types/src/design-system/registry/deep-freeze.d.ts +5 -0
- package/dist/types/src/design-system/registry/define-recipe.d.ts +2 -0
- package/dist/types/src/design-system/registry/define-theme.d.ts +2 -0
- package/dist/types/src/design-system/registry/define-token-maps.d.ts +6 -0
- package/dist/types/src/design-system/registry/index.d.ts +5 -0
- package/dist/types/src/design-system/resolve/diagnostics.d.ts +9 -0
- package/dist/types/src/design-system/resolve/index.d.ts +5 -0
- package/dist/types/src/design-system/resolve/merge-config.d.ts +2 -0
- package/dist/types/src/design-system/resolve/migrate-tokens.d.ts +44 -0
- package/dist/types/src/design-system/resolve/resolve-mode.d.ts +6 -0
- package/dist/types/src/design-system/resolve/resolve-recipe.d.ts +2 -0
- package/dist/types/src/design-system/resolve/resolve-theme.d.ts +2 -0
- package/dist/types/src/design-system/resolve/resolve-tokens.d.ts +2 -0
- package/dist/types/src/design-system/runtime/apply-tokens.d.ts +4 -0
- package/dist/types/src/design-system/runtime/attach-design-system.d.ts +11 -0
- package/dist/types/src/design-system/runtime/create-stylesheet.d.ts +11 -0
- package/dist/types/src/design-system/runtime/declarations.d.ts +5 -0
- package/dist/types/src/design-system/runtime/design-system-controller.d.ts +9 -0
- package/dist/types/src/design-system/runtime/host-state.d.ts +3 -0
- package/dist/types/src/design-system/runtime/hydrate-design-system.d.ts +25 -0
- package/dist/types/src/design-system/runtime/index.d.ts +8 -0
- package/dist/types/src/design-system/themes/cobalt.d.ts +2 -0
- package/dist/types/src/design-system/themes/graphite.d.ts +2 -0
- package/dist/types/src/design-system/themes/index.d.ts +5 -0
- package/dist/types/src/design-system/themes/neutral.d.ts +2 -0
- package/dist/types/src/design-system/themes/sage.d.ts +2 -0
- package/dist/types/src/design-system/themes/sunset.d.ts +2 -0
- package/dist/types/src/design-system/tokens/base.d.ts +5 -0
- package/dist/types/src/design-system/tokens/contrast.d.ts +8 -0
- package/dist/types/src/design-system/tokens/density.d.ts +9 -0
- package/dist/types/src/design-system/tokens/forced-colors.d.ts +12 -0
- package/dist/types/src/design-system/tokens/index.d.ts +5 -0
- package/dist/types/src/design-system/tokens/motion.d.ts +2 -0
- package/dist/types/src/design-system/types.d.ts +225 -0
- package/dist/types/src/engine/builtins/fields/boolean.d.ts +8 -0
- package/dist/types/src/engine/builtins/fields/category.d.ts +11 -0
- package/dist/types/src/engine/builtins/fields/date.d.ts +9 -0
- package/dist/types/src/engine/builtins/fields/long-text.d.ts +10 -0
- package/dist/types/src/engine/builtins/fields/multi-choice.d.ts +12 -0
- package/dist/types/src/engine/builtins/fields/number.d.ts +11 -0
- package/dist/types/src/engine/builtins/fields/rating.d.ts +9 -0
- package/dist/types/src/engine/builtins/fields/series.d.ts +20 -0
- package/dist/types/src/engine/builtins/fields/single-choice.d.ts +12 -0
- package/dist/types/src/engine/builtins/fields/text.d.ts +10 -0
- package/dist/types/src/engine/builtins/index.d.ts +97 -0
- package/dist/types/src/engine/builtins/reports/classifier.d.ts +8 -0
- package/dist/types/src/engine/builtins/reports/regressor.d.ts +8 -0
- package/dist/types/src/engine/builtins/shared.d.ts +49 -0
- package/dist/types/src/engine/comparison.d.ts +2 -0
- package/dist/types/src/engine/constants.d.ts +51 -0
- package/dist/types/src/engine/declarative/explanation.d.ts +2 -0
- package/dist/types/src/engine/declarative/field.d.ts +2 -0
- package/dist/types/src/engine/declarative/presentation.d.ts +61 -0
- package/dist/types/src/engine/declarative/report.d.ts +2 -0
- package/dist/types/src/engine/equality.d.ts +4 -0
- package/dist/types/src/engine/errors.d.ts +28 -0
- package/dist/types/src/engine/explanations/controller.d.ts +13 -0
- package/dist/types/src/engine/explanations/index.d.ts +1 -0
- package/dist/types/src/engine/fields/controller.d.ts +30 -0
- package/dist/types/src/engine/fields/index.d.ts +1 -0
- package/dist/types/src/engine/form.d.ts +2 -0
- package/dist/types/src/engine/index.d.ts +11 -0
- package/dist/types/src/engine/paths.d.ts +2 -0
- package/dist/types/src/engine/registry/index.d.ts +26 -0
- package/dist/types/src/engine/reports/controller.d.ts +19 -0
- package/dist/types/src/engine/reports/index.d.ts +1 -0
- package/dist/types/src/engine/schema/index.d.ts +7 -0
- package/dist/types/src/engine/state/engine.d.ts +60 -0
- package/dist/types/src/engine/state/index.d.ts +3 -0
- package/dist/types/src/engine/state/snapshots.d.ts +5 -0
- package/dist/types/src/engine/state/store.d.ts +13 -0
- package/dist/types/src/engine/submission/abort.d.ts +15 -0
- package/dist/types/src/engine/submission/explanations.d.ts +2 -0
- package/dist/types/src/engine/submission/index.d.ts +5 -0
- package/dist/types/src/engine/submission/lifecycle.d.ts +16 -0
- package/dist/types/src/engine/submission/pipeline.d.ts +2 -0
- package/dist/types/src/engine/submission/reports.d.ts +12 -0
- package/dist/types/src/engine/submission/request.d.ts +23 -0
- package/dist/types/src/engine/submission/result.d.ts +4 -0
- package/dist/types/src/engine/submission/submitter.d.ts +40 -0
- package/dist/types/src/engine/types/explanation.d.ts +109 -0
- package/dist/types/src/engine/types/field.d.ts +172 -0
- package/dist/types/src/engine/types/form.d.ts +120 -0
- package/dist/types/src/engine/types/index.d.ts +9 -0
- package/dist/types/src/engine/types/pipeline.d.ts +31 -0
- package/dist/types/src/engine/types/registry.d.ts +17 -0
- package/dist/types/src/engine/types/report.d.ts +87 -0
- package/dist/types/src/engine/types/transport.d.ts +41 -0
- package/dist/types/src/engine/utils.d.ts +9 -0
- package/dist/types/src/engine/validation/conditions.d.ts +11 -0
- package/dist/types/src/engine/validation/field.d.ts +29 -0
- package/dist/types/src/engine/validation/form.d.ts +35 -0
- package/dist/types/src/engine/validation/index.d.ts +3 -0
- package/dist/types/src/engine/values.d.ts +2 -0
- package/dist/types/src/index.d.ts +7 -0
- package/dist/types/src/kit/constants.d.ts +4 -0
- package/dist/types/src/kit/defaults.d.ts +11 -0
- package/dist/types/src/kit/index.d.ts +4 -0
- package/dist/types/src/kit/mount-form.d.ts +3 -0
- package/dist/types/src/kit/types.d.ts +52 -0
- package/dist/types/src/primitives/base-async-report-element.d.ts +19 -0
- package/dist/types/src/primitives/base-explanation-element.d.ts +21 -0
- package/dist/types/src/primitives/base-field-element.d.ts +21 -0
- package/dist/types/src/primitives/base-report-element.d.ts +15 -0
- package/dist/types/src/primitives/components/declarative-explanation.d.ts +5 -0
- package/dist/types/src/primitives/components/declarative-field.d.ts +6 -0
- package/dist/types/src/primitives/components/declarative-report.d.ts +5 -0
- package/dist/types/src/primitives/components/explanation-panel.d.ts +22 -0
- package/dist/types/src/primitives/components/field-frame.d.ts +21 -0
- package/dist/types/src/primitives/components/form-errors.d.ts +19 -0
- package/dist/types/src/primitives/components/form-root.d.ts +29 -0
- package/dist/types/src/primitives/components/presentation.d.ts +4 -0
- package/dist/types/src/primitives/components/report-frame.d.ts +22 -0
- package/dist/types/src/primitives/components/submit-button.d.ts +21 -0
- package/dist/types/src/primitives/components/unsupported-component.d.ts +14 -0
- package/dist/types/src/primitives/constants.d.ts +94 -0
- package/dist/types/src/primitives/controller-binding.d.ts +32 -0
- package/dist/types/src/primitives/fields/boolean-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/category-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/date-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/long-text-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/multi-choice-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/number-field.d.ts +8 -0
- package/dist/types/src/primitives/fields/rating-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/series-field.d.ts +8 -0
- package/dist/types/src/primitives/fields/single-choice-field.d.ts +6 -0
- package/dist/types/src/primitives/fields/text-field.d.ts +6 -0
- package/dist/types/src/primitives/index.d.ts +8 -0
- package/dist/types/src/primitives/mount-form.d.ts +4 -0
- package/dist/types/src/primitives/register.d.ts +0 -0
- package/dist/types/src/primitives/registry.d.ts +3 -0
- package/dist/types/src/primitives/reports/classifier-report.d.ts +5 -0
- package/dist/types/src/primitives/reports/regressor-report.d.ts +5 -0
- package/dist/types/src/primitives/types.d.ts +128 -0
- package/dist/types/src/primitives/utils.d.ts +3 -0
- package/dist/types/src/questionnaire/constants.d.ts +31 -0
- package/dist/types/src/questionnaire/defaults.d.ts +8 -0
- package/dist/types/src/questionnaire/engine/controller.d.ts +12 -0
- package/dist/types/src/questionnaire/engine/schema.d.ts +9 -0
- package/dist/types/src/questionnaire/errors.d.ts +3 -0
- package/dist/types/src/questionnaire/index.d.ts +6 -0
- package/dist/types/src/questionnaire/mount.d.ts +3 -0
- package/dist/types/src/questionnaire/primitives/components/questionnaire-root.d.ts +23 -0
- package/dist/types/src/questionnaire/primitives/components/step-indicator.d.ts +14 -0
- package/dist/types/src/questionnaire/primitives/register.d.ts +0 -0
- package/dist/types/src/questionnaire/types.d.ts +69 -0
- package/dist/types/src/shared/errors.d.ts +3 -0
- package/dist/types/src/shared/index.d.ts +1 -0
- package/dist/types/src/transport/capabilities.d.ts +7 -0
- package/dist/types/src/transport/clone.d.ts +6 -0
- package/dist/types/src/transport/composition/fallback.d.ts +2 -0
- package/dist/types/src/transport/composition/fanout.d.ts +3 -0
- package/dist/types/src/transport/composition/hedged.d.ts +2 -0
- package/dist/types/src/transport/composition/index.d.ts +7 -0
- package/dist/types/src/transport/composition/load-balancing.d.ts +2 -0
- package/dist/types/src/transport/composition/pipeline.d.ts +2 -0
- package/dist/types/src/transport/composition/racing.d.ts +2 -0
- package/dist/types/src/transport/composition/routing.d.ts +3 -0
- package/dist/types/src/transport/constants.d.ts +34 -0
- package/dist/types/src/transport/errors.d.ts +36 -0
- package/dist/types/src/transport/index.d.ts +9 -0
- package/dist/types/src/transport/internal.d.ts +110 -0
- package/dist/types/src/transport/middleware/auth.d.ts +2 -0
- package/dist/types/src/transport/middleware/cache.d.ts +2 -0
- package/dist/types/src/transport/middleware/circuit-breaker.d.ts +2 -0
- package/dist/types/src/transport/middleware/dedup.d.ts +2 -0
- package/dist/types/src/transport/middleware/index.d.ts +12 -0
- package/dist/types/src/transport/middleware/logging.d.ts +2 -0
- package/dist/types/src/transport/middleware/metrics.d.ts +2 -0
- package/dist/types/src/transport/middleware/pipe.d.ts +2 -0
- package/dist/types/src/transport/middleware/rate-limit.d.ts +2 -0
- package/dist/types/src/transport/middleware/retry.d.ts +2 -0
- package/dist/types/src/transport/middleware/timeout.d.ts +2 -0
- package/dist/types/src/transport/middleware/tracing.d.ts +2 -0
- package/dist/types/src/transport/middleware/transform.d.ts +3 -0
- package/dist/types/src/transport/policy-context.d.ts +3 -0
- package/dist/types/src/transport/protocols/graphql.d.ts +2 -0
- package/dist/types/src/transport/protocols/grpc.d.ts +5 -0
- package/dist/types/src/transport/protocols/index.d.ts +5 -0
- package/dist/types/src/transport/protocols/json.d.ts +2 -0
- package/dist/types/src/transport/protocols/sse.d.ts +2 -0
- package/dist/types/src/transport/protocols/websocket.d.ts +2 -0
- package/dist/types/src/transport/runtime.d.ts +4 -0
- package/dist/types/src/transport/state/cache-store.d.ts +2 -0
- package/dist/types/src/transport/state/circuit-breaker.d.ts +2 -0
- package/dist/types/src/transport/state/health.d.ts +2 -0
- package/dist/types/src/transport/state/index.d.ts +5 -0
- package/dist/types/src/transport/state/rate-limiter.d.ts +2 -0
- package/dist/types/src/transport/state/session.d.ts +2 -0
- package/dist/types/src/transport/types/capabilities.d.ts +35 -0
- package/dist/types/src/transport/types/core.d.ts +57 -0
- package/dist/types/src/transport/types/events.d.ts +50 -0
- package/dist/types/src/transport/types/index.d.ts +7 -0
- package/dist/types/src/transport/types/middleware.d.ts +3 -0
- package/dist/types/src/transport/types/options.d.ts +258 -0
- package/dist/types/src/transport/types/session.d.ts +48 -0
- package/dist/types/src/transport/types/state.d.ts +46 -0
- package/package.json +93 -37
- package/dist/FieldStrategy-pPekBtH-.js +0 -2318
- package/dist/ModelTypes-B9_veCKB.js +0 -5
- package/dist/ReportStrategy-DY3GC_mJ.js +0 -23
- package/dist/boolean-field-Cd3uhIPj.js +0 -104
- package/dist/category-field-D_Ms1x9u.js +0 -73
- package/dist/classifier-prediction-C5QzorTo.js +0 -193
- package/dist/custom-element-ttkHUa8w.js +0 -13
- package/dist/date-field-Cg_ja679.js +0 -162
- package/dist/error-card-BwjPChwf.js +0 -195
- package/dist/field-wrapper-DqIQl76d.js +0 -177
- package/dist/ml-layout-Dx63KKf7.js +0 -332
- package/dist/mlform/extensions.mjs +0 -38
- package/dist/mlform/strategies.mjs +0 -292
- package/dist/number-field-CC2DrVEb.js +0 -165
- package/dist/property-jKFNMQpR.js +0 -561
- package/dist/range-field-Cr7LEtsJ.js +0 -98
- package/dist/regressor-prediction-C18dHlfK.js +0 -236
- package/dist/src/core/app/DescriptorItem.d.ts +0 -6
- package/dist/src/core/app/DescriptorRegistry.d.ts +0 -13
- package/dist/src/core/app/DescriptorService.d.ts +0 -22
- package/dist/src/core/app/DescriptorStrategy.d.ts +0 -11
- package/dist/src/core/app/index.d.ts +0 -4
- package/dist/src/core/domain/index.d.ts +0 -24
- package/dist/src/core/index.d.ts +0 -3
- package/dist/src/core/ui/error-card.d.ts +0 -38
- package/dist/src/core/ui/field-wrapper.d.ts +0 -23
- package/dist/src/core/ui/index.d.ts +0 -3
- package/dist/src/core/ui/ml-layout.d.ts +0 -23
- package/dist/src/extensions/app/FieldStrategy.d.ts +0 -10
- package/dist/src/extensions/app/ReportStrategy.d.ts +0 -9
- package/dist/src/extensions/app/index.d.ts +0 -2
- package/dist/src/extensions/domain/BaseField.d.ts +0 -7
- package/dist/src/extensions/domain/BaseModel.d.ts +0 -6
- package/dist/src/extensions/domain/index.d.ts +0 -2
- package/dist/src/extensions/index.d.ts +0 -3
- package/dist/src/extensions/ui/field-element.d.ts +0 -9
- package/dist/src/extensions/ui/index.d.ts +0 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/mlform/index.d.ts +0 -1
- package/dist/src/mlform/mlform.d.ts +0 -27
- package/dist/src/mlform/mlform.types.d.ts +0 -11
- package/dist/src/strategies/app/BooleanStrategy.d.ts +0 -12
- package/dist/src/strategies/app/CategoryStrategy.d.ts +0 -13
- package/dist/src/strategies/app/ClassifierStrategy.d.ts +0 -15
- package/dist/src/strategies/app/DateStrategy.d.ts +0 -15
- package/dist/src/strategies/app/NumberStrategy.d.ts +0 -29
- package/dist/src/strategies/app/RegressorStrategy.d.ts +0 -15
- package/dist/src/strategies/app/TextStrategy.d.ts +0 -16
- package/dist/src/strategies/app/index.d.ts +0 -7
- package/dist/src/strategies/domain/BooleanField.d.ts +0 -10
- package/dist/src/strategies/domain/CategoryField.d.ts +0 -11
- package/dist/src/strategies/domain/ClassifierModel.d.ts +0 -11
- package/dist/src/strategies/domain/DateField.d.ts +0 -13
- package/dist/src/strategies/domain/FieldTypes.d.ts +0 -7
- package/dist/src/strategies/domain/ModelTypes.d.ts +0 -4
- package/dist/src/strategies/domain/NumberField.d.ts +0 -15
- package/dist/src/strategies/domain/RegressorModel.d.ts +0 -11
- package/dist/src/strategies/domain/TextField.d.ts +0 -14
- package/dist/src/strategies/domain/index.d.ts +0 -9
- package/dist/src/strategies/index.d.ts +0 -1
- package/dist/src/strategies/ui/boolean-field.d.ts +0 -13
- package/dist/src/strategies/ui/category-field.d.ts +0 -14
- package/dist/src/strategies/ui/classifier-prediction.d.ts +0 -39
- package/dist/src/strategies/ui/date-field.d.ts +0 -18
- package/dist/src/strategies/ui/index.d.ts +0 -8
- package/dist/src/strategies/ui/number-field.d.ts +0 -19
- package/dist/src/strategies/ui/range-field.d.ts +0 -17
- package/dist/src/strategies/ui/regressor-prediction.d.ts +0 -29
- package/dist/src/strategies/ui/text-field.d.ts +0 -17
- package/dist/state-CLlTRyl1.js +0 -12
- package/dist/test/_fixtures/DummyField.d.ts +0 -9
- package/dist/test/setup.d.ts +0 -1
- package/dist/test/unit/DummyField.test.d.ts +0 -1
- package/dist/text-field-DwP-Fa1w.js +0 -114
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { ComponentKey, MlfTokenKey } from './contract';
|
|
2
|
+
export type DesignSystemScheme = "light" | "dark";
|
|
3
|
+
export type DesignSystemMode = "light" | "dark" | "auto" | "inherit";
|
|
4
|
+
export type Density = "compact" | "comfortable" | "spacious";
|
|
5
|
+
export type Motion = "none" | "subtle" | "standard";
|
|
6
|
+
export type EffectiveModeSource = "explicit" | "system" | "host-attribute" | "host-style" | "host-resolver" | "theme-fallback" | "default";
|
|
7
|
+
export type DesignSystemWarningCode = "unknown-theme-id" | "unknown-recipe-id" | "invalid-theme-variant" | "unknown-token-key" | "misplaced-component-token" | "broken-token-reference";
|
|
8
|
+
export interface DesignSystemWarning {
|
|
9
|
+
code: DesignSystemWarningCode;
|
|
10
|
+
message: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
value?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Utility type for token maps with IDE autocompletion for all `--mlf-*` keys.
|
|
16
|
+
*
|
|
17
|
+
* Use this when authoring custom themes, recipes, or overrides to get
|
|
18
|
+
* completion suggestions and catch typos in token key names. Structurally
|
|
19
|
+
* compatible with `Record<string, string>` — accepts any CSS custom property.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* const myTheme: ThemeManifest = {
|
|
23
|
+
* id: "brand",
|
|
24
|
+
* label: "Brand",
|
|
25
|
+
* schemes: {
|
|
26
|
+
* light: {
|
|
27
|
+
* tokens: {
|
|
28
|
+
* "--mlf-color-accent": "#c0392b", // ← autocomplete + typo detection
|
|
29
|
+
* } satisfies Partial<TokenMap>,
|
|
30
|
+
* },
|
|
31
|
+
* },
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export type TokenMap = Partial<Record<MlfTokenKey, string>> & {
|
|
36
|
+
[key: string]: string;
|
|
37
|
+
};
|
|
38
|
+
export type ComponentTokenKey<K extends ComponentKey = ComponentKey> = `--mlf-${K}-${string}`;
|
|
39
|
+
export type GlobalTokenKey = Exclude<MlfTokenKey, ComponentTokenKey>;
|
|
40
|
+
export type GlobalTokenMap = Partial<Record<GlobalTokenKey, string>>;
|
|
41
|
+
export type ComponentTokenMap<K extends ComponentKey> = Partial<Record<ComponentTokenKey<K>, string>>;
|
|
42
|
+
export interface ThemeScheme {
|
|
43
|
+
/**
|
|
44
|
+
* Informational — declares the intended scheme for this slot.
|
|
45
|
+
* Does NOT affect scheme resolution; the resolved scheme is determined
|
|
46
|
+
* by `mode`, the media query, or parent inheritance.
|
|
47
|
+
*/
|
|
48
|
+
colorScheme?: DesignSystemScheme;
|
|
49
|
+
tokens: Record<string, string>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A named variant of a base scheme. Variants overlay additional tokens
|
|
53
|
+
* on top of a base scheme's tokens — use for accessibility variants
|
|
54
|
+
* (e.g. `"high-contrast-light"`, `"high-contrast-dark"`) or brand variants.
|
|
55
|
+
*/
|
|
56
|
+
export interface ThemeVariant {
|
|
57
|
+
/** Which base scheme this variant extends. */
|
|
58
|
+
baseScheme: DesignSystemScheme;
|
|
59
|
+
/** Additional tokens overlaid on the base scheme's tokens. */
|
|
60
|
+
tokens: Record<string, string>;
|
|
61
|
+
}
|
|
62
|
+
export interface ThemeManifest {
|
|
63
|
+
id: string;
|
|
64
|
+
label: string;
|
|
65
|
+
schemes: {
|
|
66
|
+
light: ThemeScheme;
|
|
67
|
+
dark?: ThemeScheme;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Additional scheme variants that overlay base scheme tokens.
|
|
71
|
+
* Keyed by arbitrary variant names (e.g. `"high-contrast-light"`,
|
|
72
|
+
* `"high-contrast-dark"`). Each variant specifies a `baseScheme` and
|
|
73
|
+
* additional tokens applied on top.
|
|
74
|
+
*
|
|
75
|
+
* When `prefersMoreContrast` is detected and no explicit `variant` is set,
|
|
76
|
+
* the resolver auto-selects `"high-contrast-${effectiveScheme}"` if present.
|
|
77
|
+
*/
|
|
78
|
+
variants?: Record<string, ThemeVariant>;
|
|
79
|
+
/**
|
|
80
|
+
* Tokens applied to both schemes before scheme-specific tokens.
|
|
81
|
+
* Use for values that don't change between light and dark (e.g. brand fonts,
|
|
82
|
+
* static radii). Scheme tokens win over `sharedTokens` when keys collide.
|
|
83
|
+
*/
|
|
84
|
+
sharedTokens?: Record<string, string>;
|
|
85
|
+
}
|
|
86
|
+
export interface ComponentManifest {
|
|
87
|
+
tokens: Record<string, string>;
|
|
88
|
+
}
|
|
89
|
+
export interface RecipeManifest {
|
|
90
|
+
id: string;
|
|
91
|
+
label: string;
|
|
92
|
+
density: Density;
|
|
93
|
+
motion: Motion;
|
|
94
|
+
tokens?: Record<string, string>;
|
|
95
|
+
components?: Partial<Record<ComponentKey, ComponentManifest>>;
|
|
96
|
+
}
|
|
97
|
+
export interface DesignSystemOverrides {
|
|
98
|
+
density?: Density;
|
|
99
|
+
motion?: Motion;
|
|
100
|
+
tokens?: Record<string, string>;
|
|
101
|
+
components?: Partial<Record<ComponentKey, Partial<ComponentManifest>>>;
|
|
102
|
+
}
|
|
103
|
+
export interface DesignSystemConfig {
|
|
104
|
+
mode?: DesignSystemMode;
|
|
105
|
+
theme?: string | ThemeManifest;
|
|
106
|
+
recipe?: string | RecipeManifest;
|
|
107
|
+
/**
|
|
108
|
+
* Select a named theme variant (e.g. `"high-contrast-light"`). When set,
|
|
109
|
+
* the variant's tokens overlay the resolved base scheme tokens only when the
|
|
110
|
+
* variant's `baseScheme` matches the effective scheme. Mismatches emit an
|
|
111
|
+
* `"invalid-theme-variant"` warning and the variant is ignored.
|
|
112
|
+
*
|
|
113
|
+
* When omitted and `prefersMoreContrast` is active, the resolver
|
|
114
|
+
* auto-selects `"high-contrast-${effectiveScheme}"` if it exists in the theme.
|
|
115
|
+
*/
|
|
116
|
+
variant?: string;
|
|
117
|
+
overrides?: DesignSystemOverrides;
|
|
118
|
+
hostSchemeResolver?: (host: HTMLElement) => DesignSystemScheme | null;
|
|
119
|
+
strict?: boolean;
|
|
120
|
+
onWarning?: (warning: DesignSystemWarning) => void;
|
|
121
|
+
}
|
|
122
|
+
export interface ResolvedComponentConfig {
|
|
123
|
+
tokens: Record<string, string>;
|
|
124
|
+
}
|
|
125
|
+
export interface ResolvedDesignSystem {
|
|
126
|
+
requestedMode: DesignSystemMode;
|
|
127
|
+
effectiveScheme: DesignSystemScheme;
|
|
128
|
+
effectiveModeSource: EffectiveModeSource;
|
|
129
|
+
themeId: string;
|
|
130
|
+
/** The active theme variant, or `null` if no variant is applied. */
|
|
131
|
+
variant: string | null;
|
|
132
|
+
recipeId: string;
|
|
133
|
+
density: Density;
|
|
134
|
+
motion: Motion;
|
|
135
|
+
tokens: Record<string, string>;
|
|
136
|
+
tokenOverrides: Record<string, string>;
|
|
137
|
+
components: Record<ComponentKey, ResolvedComponentConfig>;
|
|
138
|
+
warnings: DesignSystemWarning[];
|
|
139
|
+
}
|
|
140
|
+
export interface ResolveDesignSystemRuntimeOptions {
|
|
141
|
+
inheritedScheme?: DesignSystemScheme | null;
|
|
142
|
+
inheritedSource?: Extract<EffectiveModeSource, "host-attribute" | "host-style" | "host-resolver">;
|
|
143
|
+
systemScheme?: DesignSystemScheme;
|
|
144
|
+
/** When true and `motion` is not explicitly overridden, effective motion collapses to `"none"`. */
|
|
145
|
+
prefersReducedMotion?: boolean;
|
|
146
|
+
/** When true and `density` is not explicitly overridden, effective density becomes `"spacious"`. */
|
|
147
|
+
prefersMoreContrast?: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* When true, Windows High Contrast Mode (or equivalent `forced-colors: active`)
|
|
150
|
+
* is active. Color tokens are remapped to CSS system colors so the browser's
|
|
151
|
+
* forced-color palette is respected.
|
|
152
|
+
*/
|
|
153
|
+
forcedColors?: boolean;
|
|
154
|
+
}
|
|
155
|
+
export type DesignSystemRegistryChangeType = "theme-registered" | "theme-removed" | "recipe-registered" | "recipe-removed";
|
|
156
|
+
export interface DesignSystemRegistryChangeEvent {
|
|
157
|
+
type: DesignSystemRegistryChangeType;
|
|
158
|
+
id: string;
|
|
159
|
+
}
|
|
160
|
+
export type DesignSystemRegistryChangeListener = (event: DesignSystemRegistryChangeEvent) => void;
|
|
161
|
+
export interface DesignSystemRegistry {
|
|
162
|
+
registerTheme(theme: ThemeManifest): DesignSystemRegistry;
|
|
163
|
+
registerRecipe(recipe: RecipeManifest): DesignSystemRegistry;
|
|
164
|
+
/**
|
|
165
|
+
* Register a variant for an existing theme without re-registering the
|
|
166
|
+
* entire theme. If the theme does not exist yet, the variant is stored
|
|
167
|
+
* and will be attached when the theme is later registered.
|
|
168
|
+
*/
|
|
169
|
+
registerVariant(themeId: string, variantId: string, variant: ThemeVariant): DesignSystemRegistry;
|
|
170
|
+
removeTheme(id: string): DesignSystemRegistry;
|
|
171
|
+
removeRecipe(id: string): DesignSystemRegistry;
|
|
172
|
+
getTheme(id: string): ThemeManifest | undefined;
|
|
173
|
+
getRecipe(id: string): RecipeManifest | undefined;
|
|
174
|
+
listThemes(): ThemeManifest[];
|
|
175
|
+
listRecipes(): RecipeManifest[];
|
|
176
|
+
clone(): DesignSystemRegistry;
|
|
177
|
+
onChange(listener: DesignSystemRegistryChangeListener): () => void;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Strategy for animating design-system transitions (theme/scheme switches).
|
|
181
|
+
*
|
|
182
|
+
* - `"none"` — instant switch (default).
|
|
183
|
+
* - `"view-transition"` — uses the View Transitions API (`document.startViewTransition`)
|
|
184
|
+
* when available; falls back to instant switch. Stale transitions are ignored
|
|
185
|
+
* when a newer update supersedes them.
|
|
186
|
+
* - A custom function receives the update callback and is responsible for
|
|
187
|
+
* calling it (e.g. wrapping in a CSS transition or animation). It may return
|
|
188
|
+
* cleanup function and should observe `context.signal` for cancellation.
|
|
189
|
+
*/
|
|
190
|
+
export interface DesignSystemTransitionContext {
|
|
191
|
+
host: HTMLElement;
|
|
192
|
+
resolved: ResolvedDesignSystem;
|
|
193
|
+
previous: ResolvedDesignSystem | null;
|
|
194
|
+
signal: AbortSignal;
|
|
195
|
+
}
|
|
196
|
+
export type DesignSystemTransition = "none" | "view-transition" | ((apply: () => void, context: DesignSystemTransitionContext) => void | (() => void));
|
|
197
|
+
export interface DesignSystemControllerOptions {
|
|
198
|
+
host: HTMLElement;
|
|
199
|
+
registry?: DesignSystemRegistry;
|
|
200
|
+
getConfig: () => DesignSystemConfig;
|
|
201
|
+
onChange?: (resolved: ResolvedDesignSystem) => void;
|
|
202
|
+
/** When true, seed controller state from matching SSR/inline DOM before first refresh. */
|
|
203
|
+
hydrate?: boolean;
|
|
204
|
+
/**
|
|
205
|
+
* How to animate when the resolved design system changes. Defaults to `"none"`.
|
|
206
|
+
*/
|
|
207
|
+
transition?: DesignSystemTransition;
|
|
208
|
+
}
|
|
209
|
+
export interface AttachDesignSystemOptions {
|
|
210
|
+
config?: DesignSystemConfig;
|
|
211
|
+
registry?: DesignSystemRegistry;
|
|
212
|
+
onChange?: (resolved: ResolvedDesignSystem) => void;
|
|
213
|
+
/** How to animate when the resolved design system changes. Defaults to `"none"`. */
|
|
214
|
+
transition?: DesignSystemTransition;
|
|
215
|
+
}
|
|
216
|
+
export interface AttachedDesignSystem {
|
|
217
|
+
readonly host: HTMLElement;
|
|
218
|
+
readonly registry: DesignSystemRegistry;
|
|
219
|
+
readonly config: DesignSystemConfig;
|
|
220
|
+
readonly resolved: ResolvedDesignSystem | null;
|
|
221
|
+
update(config: DesignSystemConfig): void;
|
|
222
|
+
replace(config: DesignSystemConfig): void;
|
|
223
|
+
reset(): void;
|
|
224
|
+
disconnect(): void;
|
|
225
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type BooleanFieldConfig = BaseFieldConfig & {
|
|
3
|
+
kind: "boolean";
|
|
4
|
+
trueLabel?: string;
|
|
5
|
+
falseLabel?: string;
|
|
6
|
+
};
|
|
7
|
+
export declare const booleanFieldDefinition: FieldDefinition<BooleanFieldConfig, boolean>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type CategoryOption = string | {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
type CategoryFieldConfig = BaseFieldConfig & {
|
|
7
|
+
kind: "category";
|
|
8
|
+
options: CategoryOption[];
|
|
9
|
+
};
|
|
10
|
+
export declare const categoryFieldDefinition: FieldDefinition<CategoryFieldConfig, string | null>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type DateFieldConfig = BaseFieldConfig & {
|
|
3
|
+
kind: "date";
|
|
4
|
+
min?: string;
|
|
5
|
+
max?: string;
|
|
6
|
+
step?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const dateFieldDefinition: FieldDefinition<DateFieldConfig, Date | null>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type LongTextFieldConfig = BaseFieldConfig & {
|
|
3
|
+
kind: "long-text";
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
minLength?: number;
|
|
6
|
+
maxLength?: number;
|
|
7
|
+
rows?: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const longTextFieldDefinition: FieldDefinition<LongTextFieldConfig, string>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type MultiChoiceOption = string | {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
type MultiChoiceFieldConfig = BaseFieldConfig & {
|
|
7
|
+
kind: "multi-choice";
|
|
8
|
+
options: MultiChoiceOption[];
|
|
9
|
+
layout?: "horizontal" | "vertical";
|
|
10
|
+
};
|
|
11
|
+
export declare const multiChoiceFieldDefinition: FieldDefinition<MultiChoiceFieldConfig, string[]>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type NumberFieldConfig = BaseFieldConfig & {
|
|
3
|
+
kind: "number";
|
|
4
|
+
min?: number;
|
|
5
|
+
max?: number;
|
|
6
|
+
step?: number;
|
|
7
|
+
unit?: string;
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const numberFieldDefinition: FieldDefinition<NumberFieldConfig, number | string | null>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type RatingFieldConfig = BaseFieldConfig & {
|
|
3
|
+
kind: "rating";
|
|
4
|
+
min?: number;
|
|
5
|
+
max: number;
|
|
6
|
+
step?: number;
|
|
7
|
+
};
|
|
8
|
+
export declare const ratingFieldDefinition: FieldDefinition<RatingFieldConfig, number | null>;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type SeriesPoint = {
|
|
3
|
+
field1: unknown;
|
|
4
|
+
field2: unknown;
|
|
5
|
+
};
|
|
6
|
+
type SeriesSubFieldConfig = {
|
|
7
|
+
kind: string;
|
|
8
|
+
label: string;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
};
|
|
12
|
+
type SeriesFieldConfig = BaseFieldConfig & {
|
|
13
|
+
kind: "series";
|
|
14
|
+
field1: SeriesSubFieldConfig;
|
|
15
|
+
field2: SeriesSubFieldConfig;
|
|
16
|
+
minPoints?: number;
|
|
17
|
+
maxPoints?: number;
|
|
18
|
+
};
|
|
19
|
+
export declare const seriesFieldDefinition: FieldDefinition<SeriesFieldConfig, SeriesPoint[]>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type SingleChoiceOption = string | {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
};
|
|
6
|
+
type SingleChoiceFieldConfig = BaseFieldConfig & {
|
|
7
|
+
kind: "single-choice";
|
|
8
|
+
options: SingleChoiceOption[];
|
|
9
|
+
layout?: "horizontal" | "vertical";
|
|
10
|
+
};
|
|
11
|
+
export declare const singleChoiceFieldDefinition: FieldDefinition<SingleChoiceFieldConfig, string | null>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseFieldConfig, FieldDefinition } from '../../types';
|
|
2
|
+
type TextFieldConfig = BaseFieldConfig & {
|
|
3
|
+
kind: "text";
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
minLength?: number;
|
|
6
|
+
maxLength?: number;
|
|
7
|
+
pattern?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare const textFieldDefinition: FieldDefinition<TextFieldConfig, string>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { Registry } from '../types';
|
|
2
|
+
import { booleanFieldDefinition } from './fields/boolean';
|
|
3
|
+
import { categoryFieldDefinition } from './fields/category';
|
|
4
|
+
import { dateFieldDefinition } from './fields/date';
|
|
5
|
+
import { longTextFieldDefinition } from './fields/long-text';
|
|
6
|
+
import { multiChoiceFieldDefinition } from './fields/multi-choice';
|
|
7
|
+
import { numberFieldDefinition } from './fields/number';
|
|
8
|
+
import { ratingFieldDefinition } from './fields/rating';
|
|
9
|
+
import { seriesFieldDefinition } from './fields/series';
|
|
10
|
+
import { singleChoiceFieldDefinition } from './fields/single-choice';
|
|
11
|
+
import { textFieldDefinition } from './fields/text';
|
|
12
|
+
import { classifierReportDefinition } from './reports/classifier';
|
|
13
|
+
import { regressorReportDefinition } from './reports/regressor';
|
|
14
|
+
export { booleanFieldDefinition, categoryFieldDefinition, classifierReportDefinition, dateFieldDefinition, longTextFieldDefinition, multiChoiceFieldDefinition, numberFieldDefinition, ratingFieldDefinition, regressorReportDefinition, seriesFieldDefinition, singleChoiceFieldDefinition, textFieldDefinition, };
|
|
15
|
+
export declare const builtinFieldDefinitions: readonly [import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
16
|
+
kind: "text";
|
|
17
|
+
placeholder?: string;
|
|
18
|
+
minLength?: number;
|
|
19
|
+
maxLength?: number;
|
|
20
|
+
pattern?: string;
|
|
21
|
+
}, string>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
22
|
+
kind: "number";
|
|
23
|
+
min?: number;
|
|
24
|
+
max?: number;
|
|
25
|
+
step?: number;
|
|
26
|
+
unit?: string;
|
|
27
|
+
placeholder?: string;
|
|
28
|
+
}, string | number | null>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
29
|
+
kind: "boolean";
|
|
30
|
+
trueLabel?: string;
|
|
31
|
+
falseLabel?: string;
|
|
32
|
+
}, boolean>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
33
|
+
kind: "category";
|
|
34
|
+
options: (string | {
|
|
35
|
+
label: string;
|
|
36
|
+
value: string;
|
|
37
|
+
})[];
|
|
38
|
+
}, string | null>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
39
|
+
kind: "date";
|
|
40
|
+
min?: string;
|
|
41
|
+
max?: string;
|
|
42
|
+
step?: number;
|
|
43
|
+
}, Date | null>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
44
|
+
kind: "series";
|
|
45
|
+
field1: {
|
|
46
|
+
[key: string]: unknown;
|
|
47
|
+
kind: string;
|
|
48
|
+
label: string;
|
|
49
|
+
required?: boolean;
|
|
50
|
+
};
|
|
51
|
+
field2: {
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
kind: string;
|
|
54
|
+
label: string;
|
|
55
|
+
required?: boolean;
|
|
56
|
+
};
|
|
57
|
+
minPoints?: number;
|
|
58
|
+
maxPoints?: number;
|
|
59
|
+
}, {
|
|
60
|
+
field1: unknown;
|
|
61
|
+
field2: unknown;
|
|
62
|
+
}[]>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
63
|
+
kind: "long-text";
|
|
64
|
+
placeholder?: string;
|
|
65
|
+
minLength?: number;
|
|
66
|
+
maxLength?: number;
|
|
67
|
+
rows?: number;
|
|
68
|
+
}, string>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
69
|
+
kind: "single-choice";
|
|
70
|
+
options: (string | {
|
|
71
|
+
label: string;
|
|
72
|
+
value: string;
|
|
73
|
+
})[];
|
|
74
|
+
layout?: "horizontal" | "vertical";
|
|
75
|
+
}, string | null>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
76
|
+
kind: "multi-choice";
|
|
77
|
+
options: (string | {
|
|
78
|
+
label: string;
|
|
79
|
+
value: string;
|
|
80
|
+
})[];
|
|
81
|
+
layout?: "horizontal" | "vertical";
|
|
82
|
+
}, string[]>, import('..').FieldDefinition<import('..').BaseFieldConfig & {
|
|
83
|
+
kind: "rating";
|
|
84
|
+
min?: number;
|
|
85
|
+
max: number;
|
|
86
|
+
step?: number;
|
|
87
|
+
}, number | null>];
|
|
88
|
+
export declare const builtinReportDefinitions: readonly [import('..').ReportDefinition<import('..').BaseReportConfig & {
|
|
89
|
+
kind: "classifier";
|
|
90
|
+
labels?: string[];
|
|
91
|
+
details?: boolean;
|
|
92
|
+
}>, import('..').ReportDefinition<import('..').BaseReportConfig & {
|
|
93
|
+
kind: "regressor";
|
|
94
|
+
unit?: string;
|
|
95
|
+
precision?: number;
|
|
96
|
+
}>];
|
|
97
|
+
export declare const createBuiltinRegistry: () => Registry;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseReportConfig, ReportDefinition } from '../../types';
|
|
2
|
+
type ClassifierReportConfig = BaseReportConfig & {
|
|
3
|
+
kind: "classifier";
|
|
4
|
+
labels?: string[];
|
|
5
|
+
details?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const classifierReportDefinition: ReportDefinition<ClassifierReportConfig>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BaseReportConfig, ReportDefinition } from '../../types';
|
|
2
|
+
type RegressorReportConfig = BaseReportConfig & {
|
|
3
|
+
kind: "regressor";
|
|
4
|
+
unit?: string;
|
|
5
|
+
precision?: number;
|
|
6
|
+
};
|
|
7
|
+
export declare const regressorReportDefinition: ReportDefinition<RegressorReportConfig>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { BaseFieldConfig, BaseReportConfig, DeclarativeFieldCondition, NormalizedFieldConfig, SubmitResult } from '../types';
|
|
2
|
+
import * as z from "zod";
|
|
3
|
+
export declare const uiSchema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
4
|
+
export declare const baseFieldShape: {
|
|
5
|
+
id: z.ZodOptional<z.ZodString>;
|
|
6
|
+
label: z.ZodString;
|
|
7
|
+
description: z.ZodOptional<z.ZodString>;
|
|
8
|
+
required: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
9
|
+
disabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
10
|
+
hidden: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
11
|
+
readOnly: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
12
|
+
disabledWhen: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<(context: unknown) => boolean, (context: unknown) => boolean>, z.ZodType<DeclarativeFieldCondition, unknown, z.core.$ZodTypeInternals<DeclarativeFieldCondition, unknown>>]>>;
|
|
13
|
+
hiddenWhen: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<(context: unknown) => boolean, (context: unknown) => boolean>, z.ZodType<DeclarativeFieldCondition, unknown, z.core.$ZodTypeInternals<DeclarativeFieldCondition, unknown>>]>>;
|
|
14
|
+
readOnlyWhen: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<(context: unknown) => boolean, (context: unknown) => boolean>, z.ZodType<DeclarativeFieldCondition, unknown, z.core.$ZodTypeInternals<DeclarativeFieldCondition, unknown>>]>>;
|
|
15
|
+
asyncValidationDebounceMs: z.ZodOptional<z.ZodNumber>;
|
|
16
|
+
inactiveFieldPolicy: z.ZodOptional<z.ZodEnum<{
|
|
17
|
+
include: "include";
|
|
18
|
+
omit: "omit";
|
|
19
|
+
"reset-on-hide": "reset-on-hide";
|
|
20
|
+
}>>;
|
|
21
|
+
valuePath: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
22
|
+
defaultValue: z.ZodOptional<z.ZodUnknown>;
|
|
23
|
+
ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
24
|
+
};
|
|
25
|
+
export declare const baseReportShape: {
|
|
26
|
+
id: z.ZodOptional<z.ZodString>;
|
|
27
|
+
label: z.ZodOptional<z.ZodString>;
|
|
28
|
+
description: z.ZodOptional<z.ZodString>;
|
|
29
|
+
source: z.ZodOptional<z.ZodString>;
|
|
30
|
+
ui: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
31
|
+
};
|
|
32
|
+
export declare const optionSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
33
|
+
label: z.ZodString;
|
|
34
|
+
value: z.ZodString;
|
|
35
|
+
}, z.core.$strip>]>;
|
|
36
|
+
export declare const resolveLegacyOutput: (result: SubmitResult, kind: string) => unknown;
|
|
37
|
+
export declare const makeFieldDescriptor: (component: string, config: NormalizedFieldConfig, valueExtras: Record<string, unknown>) => {
|
|
38
|
+
component: string;
|
|
39
|
+
props: {
|
|
40
|
+
id: string;
|
|
41
|
+
kind: string;
|
|
42
|
+
label: string;
|
|
43
|
+
description: string;
|
|
44
|
+
required: boolean;
|
|
45
|
+
disabled: boolean;
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export type BuiltinFieldConfig = BaseFieldConfig;
|
|
49
|
+
export type BuiltinReportConfig = BaseReportConfig;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export declare const builtinReportKinds: {
|
|
2
|
+
readonly classifier: "classifier";
|
|
3
|
+
readonly regressor: "regressor";
|
|
4
|
+
};
|
|
5
|
+
export declare const builtinLegacyOutputTypes: {
|
|
6
|
+
readonly classifier: "classifier";
|
|
7
|
+
readonly regressor: "regressor";
|
|
8
|
+
};
|
|
9
|
+
export declare const builtinFieldKinds: {
|
|
10
|
+
readonly text: "text";
|
|
11
|
+
readonly number: "number";
|
|
12
|
+
readonly boolean: "boolean";
|
|
13
|
+
readonly category: "category";
|
|
14
|
+
readonly date: "date";
|
|
15
|
+
readonly series: "series";
|
|
16
|
+
readonly longText: "long-text";
|
|
17
|
+
readonly singleChoice: "single-choice";
|
|
18
|
+
readonly multiChoice: "multi-choice";
|
|
19
|
+
readonly rating: "rating";
|
|
20
|
+
};
|
|
21
|
+
export declare const builtinReportLabels: {
|
|
22
|
+
readonly classifier: "Classifier report";
|
|
23
|
+
readonly regressor: "Regressor report";
|
|
24
|
+
};
|
|
25
|
+
export declare const builtinReportFallbacks: {
|
|
26
|
+
readonly unknownPrediction: "Unknown";
|
|
27
|
+
readonly classifierClassLabel: (index: number) => string;
|
|
28
|
+
};
|
|
29
|
+
export declare const builtinValidationMessages: {
|
|
30
|
+
readonly invalidNumber: "Value must be a valid number.";
|
|
31
|
+
readonly textPatternMismatch: "Value does not match the expected pattern.";
|
|
32
|
+
readonly booleanRequired: "This field must be accepted.";
|
|
33
|
+
readonly categoryOptionMismatch: "Value must match one of the available options.";
|
|
34
|
+
readonly invalidTextLengthRange: "Minimum length cannot exceed maximum length.";
|
|
35
|
+
readonly invalidNumericRange: "Minimum value cannot exceed maximum value.";
|
|
36
|
+
readonly invalidDateRange: "Minimum date cannot be after maximum date.";
|
|
37
|
+
readonly invalidPointCountRange: "Minimum number of points cannot exceed maximum number of points.";
|
|
38
|
+
readonly minLength: (value: number) => string;
|
|
39
|
+
readonly maxLength: (value: number) => string;
|
|
40
|
+
readonly minValue: (value: number) => string;
|
|
41
|
+
readonly maxValue: (value: number) => string;
|
|
42
|
+
readonly stepValue: (value: number) => string;
|
|
43
|
+
readonly dateOnOrAfter: (value: string) => string;
|
|
44
|
+
readonly dateOnOrBefore: (value: string) => string;
|
|
45
|
+
readonly stepDate: (value: number) => string;
|
|
46
|
+
readonly minPoints: (value: number) => string;
|
|
47
|
+
readonly maxPoints: (value: number) => string;
|
|
48
|
+
readonly timestampsUnique: "Timestamps must be unique.";
|
|
49
|
+
readonly timestampsAscending: "Timestamps must be sorted in ascending order.";
|
|
50
|
+
readonly timestampsDescending: "Timestamps must be sorted in descending order.";
|
|
51
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export type PresentationTone = "neutral" | "info" | "success" | "warning" | "danger";
|
|
2
|
+
export interface PresentationSummary {
|
|
3
|
+
title?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
value?: unknown;
|
|
6
|
+
badge?: string;
|
|
7
|
+
tone?: PresentationTone;
|
|
8
|
+
}
|
|
9
|
+
export interface PresentationTextNode {
|
|
10
|
+
type: "text";
|
|
11
|
+
label?: string;
|
|
12
|
+
value: unknown;
|
|
13
|
+
tone?: PresentationTone;
|
|
14
|
+
}
|
|
15
|
+
export interface PresentationMetricNode {
|
|
16
|
+
type: "metric";
|
|
17
|
+
label: string;
|
|
18
|
+
value: unknown;
|
|
19
|
+
hint?: string;
|
|
20
|
+
tone?: PresentationTone;
|
|
21
|
+
}
|
|
22
|
+
export interface PresentationKeyValueEntry {
|
|
23
|
+
label: string;
|
|
24
|
+
value: unknown;
|
|
25
|
+
}
|
|
26
|
+
export interface PresentationKeyValueNode {
|
|
27
|
+
type: "kv";
|
|
28
|
+
label?: string;
|
|
29
|
+
entries: PresentationKeyValueEntry[] | Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
export interface PresentationListNode {
|
|
32
|
+
type: "list";
|
|
33
|
+
label?: string;
|
|
34
|
+
items: unknown[];
|
|
35
|
+
ordered?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface PresentationTableNode {
|
|
38
|
+
type: "table";
|
|
39
|
+
label?: string;
|
|
40
|
+
columns: string[];
|
|
41
|
+
rows: Array<Record<string, unknown> | unknown[]>;
|
|
42
|
+
}
|
|
43
|
+
export interface PresentationBadgeNode {
|
|
44
|
+
type: "badge";
|
|
45
|
+
label: string;
|
|
46
|
+
tone?: PresentationTone;
|
|
47
|
+
}
|
|
48
|
+
export interface PresentationNoticeNode {
|
|
49
|
+
type: "notice";
|
|
50
|
+
title?: string;
|
|
51
|
+
body: unknown;
|
|
52
|
+
tone?: PresentationTone;
|
|
53
|
+
}
|
|
54
|
+
export interface PresentationJsonNode {
|
|
55
|
+
type: "json";
|
|
56
|
+
label?: string;
|
|
57
|
+
value: unknown;
|
|
58
|
+
}
|
|
59
|
+
export type PresentationNode = PresentationTextNode | PresentationMetricNode | PresentationKeyValueNode | PresentationListNode | PresentationTableNode | PresentationBadgeNode | PresentationNoticeNode | PresentationJsonNode;
|
|
60
|
+
export type PresentationContent = PresentationNode | PresentationNode[];
|
|
61
|
+
export declare const toPresentationNodes: (value: PresentationContent | undefined) => PresentationNode[];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const defaultEquality: <T>(previous: T, next: T) => boolean;
|
|
2
|
+
export declare const shallowArrayEquality: <T>(previous: readonly T[], next: readonly T[]) => boolean;
|
|
3
|
+
export declare const shallowObjectEquality: (previous: Record<string, unknown>, next: Record<string, unknown>) => boolean;
|
|
4
|
+
export declare const shallowEquality: <T>(previous: T, next: T) => boolean;
|