@sonata-innovations/fiber-types 3.0.0 → 4.0.0
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/AGENTS.md +2 -0
- package/CHANGELOG.md +25 -0
- package/README.md +4 -0
- package/dist/properties.d.ts +0 -7
- package/dist/properties.d.ts.map +1 -1
- package/docs/features/custom-presets-and-templates.md +1 -1
- package/docs/features/style-families.md +2 -2
- package/docs/fiber-concepts.md +3 -3
- package/docs/schema/flow-data-schema.md +2 -2
- package/docs/schema/flow-quick-reference.md +1 -1
- package/docs/schema/flow-schema.json +0 -8
- package/docs/schema/flow-schema.md +15 -7
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -30,10 +30,12 @@ npx ajv-cli validate --spec=draft2020 \
|
|
|
30
30
|
- **Condition & validation types** — `FlowConditionConfig`, `ConditionRule`, `ConditionOperator` (19 operators), `FlowValidationConfig`, `ValidationRule` (17 validators)
|
|
31
31
|
- **Preset/template data** — `PresetData`, `TemplateData` (the serializable definitions FBT accepts)
|
|
32
32
|
- **Component manifest** — `COMPONENT_VARIANT_TYPES`, `ComponentType`, `ComponentOfType<K>`, `ComponentPropertiesByType`
|
|
33
|
+
- **Style families** — `FOCUSED_STYLES`, `styleFamily()`, `StyleFamily`. The four focused styles and the derivation from a `FlowStyleType` to `"form"` | `"focused"`
|
|
33
34
|
- **Utilities** — `generateUUID`, `regenerateComponentUUIDs`, `regenerateFlowUUIDs`, `normalizeConditionalOrder`, `getValidationConfig`, `getComponentDisplayLabel`
|
|
34
35
|
|
|
35
36
|
## Facts worth knowing before you generate a Flow
|
|
36
37
|
|
|
38
|
+
- **No `config.mode`.** Removed in 3.0.0. Presentation is `theme.style` (ten values, flat — four of them the `focused` family); behaviour is `navigation.autoAdvance` (default off) and `navigation.advanceOnEnter` (default on). Don't emit `mode`.
|
|
37
39
|
- **30 component types.** Display types (`header`, `text`, `divider`, `callout`, `table`) never appear in FlowData; `computed` does.
|
|
38
40
|
- **19 condition operators, 17 validators.** Exact lists are in the quick reference.
|
|
39
41
|
- **Validation `pattern` rules take `params.regex`**, not `params.pattern`. A `pattern` key is ignored and the rule silently always passes.
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to the Fiber schema types. Dates are release dates.
|
|
4
4
|
|
|
5
|
+
## 4.0.0 — 2026-09-06
|
|
6
|
+
|
|
7
|
+
### Removed — BREAKING
|
|
8
|
+
|
|
9
|
+
- **The legacy flat `required` and `regex` component properties.** Both were documented as legacy and slated for migration since v2; they are now gone from the types and from `docs/schema/flow-schema.json`.
|
|
10
|
+
|
|
11
|
+
`required?: boolean` was declared on six property types (`ComponentInputProperties`, `ComponentOptionProperties`, `ComponentSliderProperties`, `ComponentRatingProperties`, `ComponentFileUploadProperties`, `ComponentSignatureProperties`) and never on the other twenty-odd — an inconsistency the removal resolves. `regex?: string` was declared on `ComponentInputProperties` and was read by nothing in any package.
|
|
12
|
+
|
|
13
|
+
Migrate before loading:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
{ required: true } → { validation: { rules: [{ type: "required" }] } }
|
|
17
|
+
{ regex: "..." } → { validation: { rules: [{ type: "pattern", params: { regex: "..." } }] } }
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
There is no auto-migration. An un-migrated field renders with no required marker and no enforcement — see `docs/schema/flow-schema.md` → **Removed flat properties**. Removing `required` is what lets FBRE 5.0.0 answer "is this field required?" from one key instead of two; see that changelog for the defect this closes.
|
|
21
|
+
|
|
22
|
+
## 3.0.1 — 2026-08-20
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- **`README.md` and `AGENTS.md` did not list the exports 3.0.0 added.** Both files enumerate the package's public surface, and neither mentioned `FOCUSED_STYLES`, `styleFamily()` or the `StyleFamily` type — nor that `FlowConfiguration.mode` and `FlowModeType` had been removed. A consumer reading the README of the version they installed would have seen an API that no longer matched the package. Both now cover the flat style vocabulary, the focused family, and the removal.
|
|
27
|
+
|
|
28
|
+
Documentation only; no code, type or schema change. `docs/features/style-families.md` shipped correct in 3.0.0 and is unchanged.
|
|
29
|
+
|
|
5
30
|
## 3.0.0 — 2026-08-20
|
|
6
31
|
|
|
7
32
|
### Removed — BREAKING
|
package/README.md
CHANGED
|
@@ -53,6 +53,7 @@ import type {
|
|
|
53
53
|
FlowValidationConfig, ValidationRule,
|
|
54
54
|
PresetData, TemplateData,
|
|
55
55
|
ComponentType, ComponentOfType, ComponentPropertiesByType,
|
|
56
|
+
FlowStyleType, StyleFamily,
|
|
56
57
|
} from "@sonata-innovations/fiber-types";
|
|
57
58
|
|
|
58
59
|
import {
|
|
@@ -63,6 +64,8 @@ import {
|
|
|
63
64
|
getValidationConfig,
|
|
64
65
|
getComponentDisplayLabel,
|
|
65
66
|
COMPONENT_VARIANT_TYPES,
|
|
67
|
+
FOCUSED_STYLES,
|
|
68
|
+
styleFamily,
|
|
66
69
|
} from "@sonata-innovations/fiber-types";
|
|
67
70
|
```
|
|
68
71
|
|
|
@@ -82,6 +85,7 @@ if (component.type === "inputText") {
|
|
|
82
85
|
|
|
83
86
|
## Gotchas
|
|
84
87
|
|
|
88
|
+
- **`theme.style` carries the presentation; there is no `config.mode`.** `FlowStyleType` is a flat vocabulary of ten. Four of them — `centered-minimal`, `stacked-cards`, `soft-float`, `bold-statement` — form the **focused** family, which adds a centered narrow column, animated entry and larger targets; the other six are the **form** family. `styleFamily(style)` and `FOCUSED_STYLES` expose that partition so a builder groups its style picker from one list instead of copying a constant. The family is derived and never appears in Flow JSON. `FlowConfiguration.mode` and `FlowModeType` were removed in 3.0.0 — see `docs/features/style-families.md`.
|
|
85
89
|
- **`ThemeConfig.fontFamily` is `string | FontFamilyConfig`.** A plain string is a CSS stack and means "the host page already loads this font"; `{ family, src }` carries the sources a renderer registers itself. Code that reads the knob as a `string` has to narrow — `isFontFamilyConfig` / `fontFamilyStack` are exported from `@sonata-innovations/fiber-fbre` for that.
|
|
86
90
|
- **30 component types.** Display types (`header`, `text`, `divider`, `callout`, `table`) never appear in FlowData; `computed` does.
|
|
87
91
|
- **`pattern` validation rules take `params.regex`**, not `params.pattern`. A `pattern` key is silently ignored and the rule always passes.
|
package/dist/properties.d.ts
CHANGED
|
@@ -13,12 +13,10 @@ export type ComponentDividerProperties = {
|
|
|
13
13
|
};
|
|
14
14
|
export type ComponentInputProperties = {
|
|
15
15
|
label: string;
|
|
16
|
-
required?: boolean;
|
|
17
16
|
placeholder?: string;
|
|
18
17
|
detail?: string;
|
|
19
18
|
showLabel?: boolean;
|
|
20
19
|
helperText?: string;
|
|
21
|
-
regex?: string;
|
|
22
20
|
maxlength?: number;
|
|
23
21
|
startAdornment?: string;
|
|
24
22
|
decimalPlaces?: number;
|
|
@@ -39,7 +37,6 @@ export type OptionItem = {
|
|
|
39
37
|
};
|
|
40
38
|
export type ComponentOptionProperties = {
|
|
41
39
|
label: string;
|
|
42
|
-
required?: boolean;
|
|
43
40
|
detail?: string;
|
|
44
41
|
showLabel?: boolean;
|
|
45
42
|
helperText?: string;
|
|
@@ -60,7 +57,6 @@ export type ComponentSliderProperties = {
|
|
|
60
57
|
steps?: number;
|
|
61
58
|
initValue?: number;
|
|
62
59
|
readOnly?: boolean;
|
|
63
|
-
required?: boolean;
|
|
64
60
|
tooltip?: string;
|
|
65
61
|
width?: ComponentWidth;
|
|
66
62
|
};
|
|
@@ -80,7 +76,6 @@ export type ComponentRatingProperties = {
|
|
|
80
76
|
max: number;
|
|
81
77
|
precision: number;
|
|
82
78
|
icon?: string;
|
|
83
|
-
required?: boolean;
|
|
84
79
|
tooltip?: string;
|
|
85
80
|
validation?: FlowValidationConfig;
|
|
86
81
|
width?: ComponentWidth;
|
|
@@ -90,7 +85,6 @@ export type ComponentFileUploadProperties = {
|
|
|
90
85
|
detail?: string;
|
|
91
86
|
showLabel?: boolean;
|
|
92
87
|
accept: string;
|
|
93
|
-
required?: boolean;
|
|
94
88
|
helperText?: string;
|
|
95
89
|
maxSize?: number;
|
|
96
90
|
tooltip?: string;
|
|
@@ -291,7 +285,6 @@ export type ComponentSignatureProperties = {
|
|
|
291
285
|
detail?: string;
|
|
292
286
|
helperText?: string;
|
|
293
287
|
mode?: SignatureMode;
|
|
294
|
-
required?: boolean;
|
|
295
288
|
tooltip?: string;
|
|
296
289
|
validation?: FlowValidationConfig;
|
|
297
290
|
width?: ComponentWidth;
|
package/dist/properties.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,YAAY,GACZ,SAAS,GACT,gBAAgB,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpE,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../src/properties.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
title: Custom Presets & Templates (FBT)
|
|
3
3
|
applies-to:
|
|
4
4
|
- "@sonata-innovations/fiber-fbt@^3.0"
|
|
5
|
-
- "@sonata-innovations/fiber-types@^
|
|
5
|
+
- "@sonata-innovations/fiber-types@^4.0"
|
|
6
6
|
read-when: "Extending FBT's pool with custom presets/templates: data-based vs factory definitions, icon catalog, collision rules, server-stored definitions."
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Style Families & Advance Behaviors
|
|
3
3
|
applies-to:
|
|
4
|
-
- "@sonata-innovations/fiber-fbre@^
|
|
5
|
-
- "@sonata-innovations/fiber-types@^
|
|
4
|
+
- "@sonata-innovations/fiber-fbre@^5.0"
|
|
5
|
+
- "@sonata-innovations/fiber-types@^4.0"
|
|
6
6
|
- "@sonata-innovations/fiber-fbt@^3.0"
|
|
7
7
|
- "@sonata-innovations/fiber-fbtl@^3.0"
|
|
8
8
|
- "@sonata-innovations/fiber-theme-editor@^2.0"
|
package/docs/fiber-concepts.md
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Fiber Concepts
|
|
3
3
|
applies-to:
|
|
4
|
-
- "@sonata-innovations/fiber-types@^
|
|
4
|
+
- "@sonata-innovations/fiber-types@^4.0"
|
|
5
5
|
- "@sonata-innovations/fiber-shared@^1.2"
|
|
6
|
-
- "@sonata-innovations/fiber-fbre@^
|
|
6
|
+
- "@sonata-innovations/fiber-fbre@^5.0"
|
|
7
7
|
- "@sonata-innovations/fiber-fbt@^3.0"
|
|
8
8
|
- "@sonata-innovations/fiber-fbtl@^3.0"
|
|
9
9
|
- "@sonata-innovations/fiber-theme-editor@^2.0"
|
|
@@ -356,7 +356,7 @@ FBRE uses CSS custom properties for theming. Parent applications can override th
|
|
|
356
356
|
|
|
357
357
|
### Color Scheme
|
|
358
358
|
|
|
359
|
-
Selected via the `theme` prop on FBRE (`{ colorScheme: "dark" }`) or `config.theme.colorScheme` in the Flow JSON (default `"light"`). The prop takes precedence. The scheme seeds a built-in palette preset (all `--fbre-*` tokens shift to light- or dark-appropriate values); palette knobs and raw CSS-variable overrides then layer on top. Replaces the former `darkMode` boolean.
|
|
359
|
+
Selected via the `theme` prop on FBRE (`{ colorScheme: "dark" }`) or `config.theme.colorScheme` in the Flow JSON (default `"light"`). The `theme` prop takes precedence over the Flow; the `themeDefaults` prop is the inverse — it supplies a value only where the Flow left one unset. The scheme seeds a built-in palette preset (all `--fbre-*` tokens shift to light- or dark-appropriate values); palette knobs and raw CSS-variable overrides then layer on top. Replaces the former `darkMode` boolean.
|
|
360
360
|
|
|
361
361
|
For the full theming model — palette knobs, the override precedence, and the complete `--fbre-*` token catalog — see the [FBRE Theming Guide](@sonata-innovations/fiber-fbre/docs/features/fbre-theming.md).
|
|
362
362
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: FlowData Schema
|
|
3
3
|
applies-to:
|
|
4
|
-
- "@sonata-innovations/fiber-types@^
|
|
5
|
-
- "@sonata-innovations/fiber-fbre@^
|
|
4
|
+
- "@sonata-innovations/fiber-types@^4.0"
|
|
5
|
+
- "@sonata-innovations/fiber-fbre@^5.0"
|
|
6
6
|
read-when: "Consuming FlowData output from FBRE: structure, per-type value shapes, exclusion rules, containers, calculations."
|
|
7
7
|
---
|
|
8
8
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Flow JSON Quick Reference
|
|
3
3
|
applies-to:
|
|
4
|
-
- "@sonata-innovations/fiber-types@^
|
|
4
|
+
- "@sonata-innovations/fiber-types@^4.0"
|
|
5
5
|
read-when: "Constructing or interpreting Flow JSON: structure, component types and value types, options, conditions, validation, widths, inline markup. For exhaustive per-property detail, use flow-schema.md instead."
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -372,10 +372,6 @@
|
|
|
372
372
|
"type": "boolean",
|
|
373
373
|
"description": "When true on a 'text' component, renders as display-only (no input)."
|
|
374
374
|
},
|
|
375
|
-
"required": {
|
|
376
|
-
"type": "boolean",
|
|
377
|
-
"description": "Whether the field must have a value to pass validation."
|
|
378
|
-
},
|
|
379
375
|
"placeholder": {
|
|
380
376
|
"type": "string",
|
|
381
377
|
"description": "Placeholder text shown when the field is empty."
|
|
@@ -392,10 +388,6 @@
|
|
|
392
388
|
"type": "string",
|
|
393
389
|
"description": "Rich text displayed above the component. Supports markup ([b], [i], [l]). When set, hides the label unless showLabel is true."
|
|
394
390
|
},
|
|
395
|
-
"regex": {
|
|
396
|
-
"type": "string",
|
|
397
|
-
"description": "Regular expression pattern for input validation."
|
|
398
|
-
},
|
|
399
391
|
"maxlength": {
|
|
400
392
|
"type": "integer",
|
|
401
393
|
"description": "Maximum character length for text inputs."
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Flow JSON Schema Reference
|
|
3
3
|
applies-to:
|
|
4
|
-
- "@sonata-innovations/fiber-types@^
|
|
4
|
+
- "@sonata-innovations/fiber-types@^4.0"
|
|
5
5
|
read-when: "Exhaustive per-property reference for Flow JSON: every component type, property, condition, validation rule, calculation, and config field. For a compact overview use flow-quick-reference.md."
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -305,7 +305,6 @@ Properties vary by component type. All fields are optional; which ones are relev
|
|
|
305
305
|
| Field | Type | Applicable Types | Description |
|
|
306
306
|
| ------------- | ---------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
307
307
|
| `label` | `string` | All | Display label |
|
|
308
|
-
| `required` | `boolean` | All input/selection types | Field must have a value to pass validation |
|
|
309
308
|
| `placeholder` | `string` | Text inputs | Placeholder text when empty (dropdowns render a fixed built-in placeholder) |
|
|
310
309
|
| `helperText` | `string` | All input/selection types | Instructional text below the field |
|
|
311
310
|
| `tooltip` | `string` | All | Tooltip on hover/focus of info icon |
|
|
@@ -350,7 +349,6 @@ Inside a repeater, formula references to sibling template UUIDs resolve to the c
|
|
|
350
349
|
| `showLabel` | `boolean` | Whether to display the label |
|
|
351
350
|
| `detail` | `string` | Rich text description above the signature pad |
|
|
352
351
|
| `mode` | `"draw"` \| `"type"` \| `"both"` | Draw = canvas pad, Type = typed name in script font, Both = toggle between modes |
|
|
353
|
-
| `required` | `boolean` | Whether a signature is required |
|
|
354
352
|
| `width` | `ComponentWidth` | Layout width |
|
|
355
353
|
|
|
356
354
|
Draw mode stores the signature as a base64 PNG data URL. Type mode stores the typed name as a plain string.
|
|
@@ -359,7 +357,6 @@ Draw mode stores the signature as a base64 PNG data URL. Type mode stores the ty
|
|
|
359
357
|
|
|
360
358
|
| Field | Type | Applicable Types | Description |
|
|
361
359
|
| -------------------- | ----------------------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
|
|
362
|
-
| `regex` | `string` | `inputText`, `inputTextArea` | Regular expression for validation |
|
|
363
360
|
| `maxlength` | `integer` | `inputText`, `inputTextArea` | Maximum character length |
|
|
364
361
|
| `startAdornment` | `string` | `inputText`, `inputNumber` | Text/symbol at the start of the field (e.g. `$`, `+1`) |
|
|
365
362
|
| `decimalPlaces` | `integer` | `inputNumber` | When set, restricts input to a fixed number of decimal places (0-10). Uses controlled text input with keystroke filtering |
|
|
@@ -623,7 +620,7 @@ Legacy group `layout` strings (e.g. `"2: 50,50"`) must be migrated to per-child
|
|
|
623
620
|
|
|
624
621
|
## Validation
|
|
625
622
|
|
|
626
|
-
Components can have validation rules defined in `properties.validation`. This
|
|
623
|
+
Components can have validation rules defined in `properties.validation`. This is the only place validation lives: the required marker, the initial validity of a field, and the `aria-required` exposed to assistive technology are all derived from these rules. The legacy flat `required` and `regex` properties were **removed in `@sonata-innovations/fiber-types` 4.0.0** and are ignored if present. See [Removed flat properties](#removed-flat-properties).
|
|
627
624
|
|
|
628
625
|
### FlowValidationConfig
|
|
629
626
|
|
|
@@ -683,13 +680,24 @@ Components can have validation rules defined in `properties.validation`. This re
|
|
|
683
680
|
|
|
684
681
|
When validation fails, the first failing error message is shown below the field. If multiple rules fail, an "(and N more)" indicator is appended.
|
|
685
682
|
|
|
686
|
-
###
|
|
683
|
+
### Removed flat properties
|
|
687
684
|
|
|
688
|
-
|
|
685
|
+
The flat `required` and `regex` properties were removed from the schema in
|
|
686
|
+
`@sonata-innovations/fiber-types` 4.0.0. They are not read, and there is no
|
|
687
|
+
auto-migration — a flow that still carries them must be converted:
|
|
689
688
|
|
|
690
689
|
- `{ required: true }` → `{ validation: { rules: [{ type: "required" }] } }`
|
|
691
690
|
- `{ regex: "..." }` → `{ validation: { rules: [{ type: "pattern", params: { regex: "..." } }] } }`
|
|
692
691
|
|
|
692
|
+
**Until a flow is converted, an un-migrated field renders with no required
|
|
693
|
+
marker and no enforcement** — it behaves as an optional field. This is silent:
|
|
694
|
+
nothing throws and nothing is logged.
|
|
695
|
+
|
|
696
|
+
Before 4.0.0 the two keys disagreed. FBRE drew the asterisk from the flat
|
|
697
|
+
`required` property while enforcing from `validation.rules`, so a flow that
|
|
698
|
+
followed this migration became enforced-but-unmarked and a flow that ignored it
|
|
699
|
+
became marked-but-unenforced. Both answers now come from the rules alone.
|
|
700
|
+
|
|
693
701
|
---
|
|
694
702
|
|
|
695
703
|
## Screen Transitions
|