@flowstack-ui/agent-tools 0.1.0-bootstrap.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/.codex-plugin/plugin.json +37 -0
- package/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +125 -0
- package/docs/architecture.md +77 -0
- package/docs/releasing.md +26 -0
- package/docs/testing.md +32 -0
- package/package.json +63 -0
- package/public/index.json +2073 -0
- package/public/llms.txt +19 -0
- package/public/packages/atom/0.24.0/components/accordion.txt +131 -0
- package/public/packages/atom/0.24.0/components/alert-dialog.txt +112 -0
- package/public/packages/atom/0.24.0/components/app-bar.txt +96 -0
- package/public/packages/atom/0.24.0/components/aspect-ratio.txt +111 -0
- package/public/packages/atom/0.24.0/components/avatar.txt +119 -0
- package/public/packages/atom/0.24.0/components/badge.txt +123 -0
- package/public/packages/atom/0.24.0/components/bottom-navigation.txt +96 -0
- package/public/packages/atom/0.24.0/components/breadcrumb.txt +96 -0
- package/public/packages/atom/0.24.0/components/button.txt +98 -0
- package/public/packages/atom/0.24.0/components/carousel.txt +128 -0
- package/public/packages/atom/0.24.0/components/checkbox-group.txt +118 -0
- package/public/packages/atom/0.24.0/components/checkbox.txt +100 -0
- package/public/packages/atom/0.24.0/components/clipboard.txt +112 -0
- package/public/packages/atom/0.24.0/components/collapsible.txt +112 -0
- package/public/packages/atom/0.24.0/components/color-picker.txt +117 -0
- package/public/packages/atom/0.24.0/components/combobox.txt +126 -0
- package/public/packages/atom/0.24.0/components/context-menu.txt +114 -0
- package/public/packages/atom/0.24.0/components/data-grid.txt +136 -0
- package/public/packages/atom/0.24.0/components/dialog.txt +116 -0
- package/public/packages/atom/0.24.0/components/direction.txt +132 -0
- package/public/packages/atom/0.24.0/components/divider.txt +94 -0
- package/public/packages/atom/0.24.0/components/drag-drop.txt +141 -0
- package/public/packages/atom/0.24.0/components/drawer.txt +96 -0
- package/public/packages/atom/0.24.0/components/dropdown-menu.txt +112 -0
- package/public/packages/atom/0.24.0/components/feed.txt +132 -0
- package/public/packages/atom/0.24.0/components/field.txt +108 -0
- package/public/packages/atom/0.24.0/components/fieldset.txt +96 -0
- package/public/packages/atom/0.24.0/components/file-upload.txt +120 -0
- package/public/packages/atom/0.24.0/components/form.txt +98 -0
- package/public/packages/atom/0.24.0/components/hover-card.txt +114 -0
- package/public/packages/atom/0.24.0/components/image.txt +94 -0
- package/public/packages/atom/0.24.0/components/input.txt +96 -0
- package/public/packages/atom/0.24.0/components/label.txt +121 -0
- package/public/packages/atom/0.24.0/components/link.txt +100 -0
- package/public/packages/atom/0.24.0/components/list.txt +131 -0
- package/public/packages/atom/0.24.0/components/listbox.txt +120 -0
- package/public/packages/atom/0.24.0/components/menu.txt +126 -0
- package/public/packages/atom/0.24.0/components/menubar.txt +120 -0
- package/public/packages/atom/0.24.0/components/modal.txt +118 -0
- package/public/packages/atom/0.24.0/components/multi-select.txt +120 -0
- package/public/packages/atom/0.24.0/components/nav-list.txt +104 -0
- package/public/packages/atom/0.24.0/components/navigation-menu.txt +104 -0
- package/public/packages/atom/0.24.0/components/number-input.txt +124 -0
- package/public/packages/atom/0.24.0/components/otp-field.txt +122 -0
- package/public/packages/atom/0.24.0/components/pagination.txt +111 -0
- package/public/packages/atom/0.24.0/components/password-toggle-field.txt +116 -0
- package/public/packages/atom/0.24.0/components/popover.txt +122 -0
- package/public/packages/atom/0.24.0/components/pressable.txt +94 -0
- package/public/packages/atom/0.24.0/components/progress.txt +130 -0
- package/public/packages/atom/0.24.0/components/radio-group.txt +118 -0
- package/public/packages/atom/0.24.0/components/rating.txt +122 -0
- package/public/packages/atom/0.24.0/components/reorder.txt +141 -0
- package/public/packages/atom/0.24.0/components/scroll-area.txt +96 -0
- package/public/packages/atom/0.24.0/components/select.txt +126 -0
- package/public/packages/atom/0.24.0/components/sidebar.txt +96 -0
- package/public/packages/atom/0.24.0/components/skip-link.txt +96 -0
- package/public/packages/atom/0.24.0/components/slider.txt +124 -0
- package/public/packages/atom/0.24.0/components/swipeable-item.txt +118 -0
- package/public/packages/atom/0.24.0/components/switch.txt +116 -0
- package/public/packages/atom/0.24.0/components/table.txt +128 -0
- package/public/packages/atom/0.24.0/components/tabs.txt +96 -0
- package/public/packages/atom/0.24.0/components/textarea.txt +96 -0
- package/public/packages/atom/0.24.0/components/toast.txt +124 -0
- package/public/packages/atom/0.24.0/components/toggle-group.txt +118 -0
- package/public/packages/atom/0.24.0/components/toggle.txt +110 -0
- package/public/packages/atom/0.24.0/components/toolbar.txt +98 -0
- package/public/packages/atom/0.24.0/components/tooltip.txt +112 -0
- package/public/packages/atom/0.24.0/components/tree-grid.txt +138 -0
- package/public/packages/atom/0.24.0/components/tree.txt +138 -0
- package/public/packages/atom/0.24.0/components/visually-hidden.txt +119 -0
- package/public/packages/atom/0.24.0/docs/guides/agent-knowledge.txt +55 -0
- package/public/packages/atom/0.24.0/docs/guides/getting-started.txt +65 -0
- package/public/packages/atom/0.24.0/docs/guides/imports.txt +26 -0
- package/public/packages/atom/0.24.0/docs/guides/public-api.txt +100 -0
- package/public/packages/atom/0.24.0/guides/behavior-composition.txt +277 -0
- package/public/packages/atom/0.24.0/guides/layer-selection.txt +807 -0
- package/public/packages/atom/0.24.0/index.txt +89 -0
- package/public/packages/brick/0.1.11/components/accordion.txt +158 -0
- package/public/packages/brick/0.1.11/components/alert-dialog.txt +175 -0
- package/public/packages/brick/0.1.11/components/app-bar.txt +134 -0
- package/public/packages/brick/0.1.11/components/appearance.txt +143 -0
- package/public/packages/brick/0.1.11/components/aspect-ratio.txt +136 -0
- package/public/packages/brick/0.1.11/components/avatar.txt +152 -0
- package/public/packages/brick/0.1.11/components/badge.txt +139 -0
- package/public/packages/brick/0.1.11/components/bleed.txt +104 -0
- package/public/packages/brick/0.1.11/components/bottom-navigation.txt +106 -0
- package/public/packages/brick/0.1.11/components/breadcrumb.txt +96 -0
- package/public/packages/brick/0.1.11/components/button.txt +103 -0
- package/public/packages/brick/0.1.11/components/card.txt +132 -0
- package/public/packages/brick/0.1.11/components/carousel.txt +206 -0
- package/public/packages/brick/0.1.11/components/checkbox-group.txt +175 -0
- package/public/packages/brick/0.1.11/components/checkbox.txt +103 -0
- package/public/packages/brick/0.1.11/components/chip.txt +128 -0
- package/public/packages/brick/0.1.11/components/code-block.txt +134 -0
- package/public/packages/brick/0.1.11/components/code.txt +120 -0
- package/public/packages/brick/0.1.11/components/collapsible.txt +179 -0
- package/public/packages/brick/0.1.11/components/color-picker.txt +135 -0
- package/public/packages/brick/0.1.11/components/color-swatch.txt +98 -0
- package/public/packages/brick/0.1.11/components/combobox.txt +157 -0
- package/public/packages/brick/0.1.11/components/container.txt +112 -0
- package/public/packages/brick/0.1.11/components/context-menu.txt +174 -0
- package/public/packages/brick/0.1.11/components/data-grid.txt +199 -0
- package/public/packages/brick/0.1.11/components/data-list.txt +115 -0
- package/public/packages/brick/0.1.11/components/dialog.txt +176 -0
- package/public/packages/brick/0.1.11/components/divider.txt +104 -0
- package/public/packages/brick/0.1.11/components/drawer.txt +146 -0
- package/public/packages/brick/0.1.11/components/dropdown-menu.txt +179 -0
- package/public/packages/brick/0.1.11/components/feed.txt +143 -0
- package/public/packages/brick/0.1.11/components/field.txt +115 -0
- package/public/packages/brick/0.1.11/components/fieldset.txt +103 -0
- package/public/packages/brick/0.1.11/components/file-upload.txt +154 -0
- package/public/packages/brick/0.1.11/components/form.txt +108 -0
- package/public/packages/brick/0.1.11/components/frame.txt +132 -0
- package/public/packages/brick/0.1.11/components/grid.txt +141 -0
- package/public/packages/brick/0.1.11/components/group.txt +136 -0
- package/public/packages/brick/0.1.11/components/hide.txt +121 -0
- package/public/packages/brick/0.1.11/components/hover-card.txt +156 -0
- package/public/packages/brick/0.1.11/components/icon-button.txt +119 -0
- package/public/packages/brick/0.1.11/components/icon.txt +160 -0
- package/public/packages/brick/0.1.11/components/image.txt +163 -0
- package/public/packages/brick/0.1.11/components/input.txt +101 -0
- package/public/packages/brick/0.1.11/components/link-box.txt +161 -0
- package/public/packages/brick/0.1.11/components/link.txt +133 -0
- package/public/packages/brick/0.1.11/components/list.txt +139 -0
- package/public/packages/brick/0.1.11/components/menubar.txt +174 -0
- package/public/packages/brick/0.1.11/components/multi-select.txt +153 -0
- package/public/packages/brick/0.1.11/components/nav-list.txt +130 -0
- package/public/packages/brick/0.1.11/components/navigation-menu.txt +150 -0
- package/public/packages/brick/0.1.11/components/notification-badge.txt +148 -0
- package/public/packages/brick/0.1.11/components/number-input.txt +150 -0
- package/public/packages/brick/0.1.11/components/otp-field.txt +146 -0
- package/public/packages/brick/0.1.11/components/pagination.txt +124 -0
- package/public/packages/brick/0.1.11/components/password-toggle-field.txt +146 -0
- package/public/packages/brick/0.1.11/components/popover.txt +181 -0
- package/public/packages/brick/0.1.11/components/progress-circle.txt +142 -0
- package/public/packages/brick/0.1.11/components/progress.txt +150 -0
- package/public/packages/brick/0.1.11/components/radio-group.txt +152 -0
- package/public/packages/brick/0.1.11/components/rating.txt +151 -0
- package/public/packages/brick/0.1.11/components/reorderable-list.txt +130 -0
- package/public/packages/brick/0.1.11/components/scroll-area.txt +110 -0
- package/public/packages/brick/0.1.11/components/section.txt +118 -0
- package/public/packages/brick/0.1.11/components/segment-group.txt +116 -0
- package/public/packages/brick/0.1.11/components/select.txt +157 -0
- package/public/packages/brick/0.1.11/components/show.txt +121 -0
- package/public/packages/brick/0.1.11/components/sidebar.txt +126 -0
- package/public/packages/brick/0.1.11/components/skeleton.txt +127 -0
- package/public/packages/brick/0.1.11/components/skip-link.txt +102 -0
- package/public/packages/brick/0.1.11/components/slider.txt +147 -0
- package/public/packages/brick/0.1.11/components/stack.txt +155 -0
- package/public/packages/brick/0.1.11/components/status.txt +110 -0
- package/public/packages/brick/0.1.11/components/surface.txt +194 -0
- package/public/packages/brick/0.1.11/components/swipeable-item.txt +154 -0
- package/public/packages/brick/0.1.11/components/switch.txt +152 -0
- package/public/packages/brick/0.1.11/components/table.txt +183 -0
- package/public/packages/brick/0.1.11/components/tabs.txt +136 -0
- package/public/packages/brick/0.1.11/components/text.txt +148 -0
- package/public/packages/brick/0.1.11/components/textarea.txt +101 -0
- package/public/packages/brick/0.1.11/components/toast.txt +150 -0
- package/public/packages/brick/0.1.11/components/toggle-group.txt +149 -0
- package/public/packages/brick/0.1.11/components/toggle.txt +140 -0
- package/public/packages/brick/0.1.11/components/toolbar.txt +118 -0
- package/public/packages/brick/0.1.11/components/tooltip.txt +156 -0
- package/public/packages/brick/0.1.11/components/tree-grid.txt +160 -0
- package/public/packages/brick/0.1.11/components/tree.txt +156 -0
- package/public/packages/brick/0.1.11/components/visually-hidden.txt +123 -0
- package/public/packages/brick/0.1.11/components/z-stack.txt +143 -0
- package/public/packages/brick/0.1.11/docs/guides/agent-knowledge.txt +67 -0
- package/public/packages/brick/0.1.11/docs/guides/appearance-and-tokens.txt +179 -0
- package/public/packages/brick/0.1.11/docs/guides/browser-support.txt +25 -0
- package/public/packages/brick/0.1.11/docs/guides/control-sizing.txt +59 -0
- package/public/packages/brick/0.1.11/docs/guides/installation.txt +79 -0
- package/public/packages/brick/0.1.11/docs/guides/theme-contract.txt +90 -0
- package/public/packages/brick/0.1.11/guides/interface-composition.txt +665 -0
- package/public/packages/brick/0.1.11/guides/layer-selection.txt +1437 -0
- package/public/packages/brick/0.1.11/index.txt +110 -0
- package/public/packages/colors/0.1.1/docs/agent-knowledge.txt +63 -0
- package/public/packages/colors/0.1.1/docs/architecture.txt +74 -0
- package/public/packages/colors/0.1.1/docs/color-foundations.txt +128 -0
- package/public/packages/colors/0.1.1/docs/compatibility.txt +75 -0
- package/public/packages/colors/0.1.1/docs/dependency-qualification.txt +117 -0
- package/public/packages/colors/0.1.1/docs/installation.txt +48 -0
- package/public/packages/colors/0.1.1/docs/palette-generation.txt +151 -0
- package/public/packages/colors/0.1.1/docs/releasing.txt +34 -0
- package/public/packages/colors/0.1.1/docs/testing.txt +51 -0
- package/public/packages/colors/0.1.1/guides/colors-system.txt +282 -0
- package/public/packages/colors/0.1.1/index.txt +29 -0
- package/public/packages/colors/0.1.1/operations/color-conversion.txt +14 -0
- package/public/packages/colors/0.1.1/operations/color-inspection.txt +23 -0
- package/public/packages/colors/0.1.1/operations/color-measurement.txt +18 -0
- package/public/packages/colors/0.1.1/operations/color-provenance.txt +14 -0
- package/public/packages/colors/0.1.1/operations/named-palette-reference.txt +15 -0
- package/public/packages/colors/0.1.1/operations/palette-candidate.txt +37 -0
- package/public/packages/theme/0.1.1/docs/agent-knowledge.txt +44 -0
- package/public/packages/theme/0.1.1/docs/appearances-and-portals.txt +41 -0
- package/public/packages/theme/0.1.1/docs/architecture.txt +121 -0
- package/public/packages/theme/0.1.1/docs/authoring.txt +141 -0
- package/public/packages/theme/0.1.1/docs/colors-interchange.txt +82 -0
- package/public/packages/theme/0.1.1/docs/fonts.txt +40 -0
- package/public/packages/theme/0.1.1/docs/installation.txt +45 -0
- package/public/packages/theme/0.1.1/docs/migration.txt +40 -0
- package/public/packages/theme/0.1.1/docs/testing.txt +64 -0
- package/public/packages/theme/0.1.1/docs/troubleshooting.txt +53 -0
- package/public/packages/theme/0.1.1/guides/theme-system.txt +340 -0
- package/public/packages/theme/0.1.1/index.txt +31 -0
- package/public/packages/theme/0.1.1/operations/brick-contract-compatibility.txt +35 -0
- package/public/packages/theme/0.1.1/operations/colors-interchange.txt +35 -0
- package/public/packages/theme/0.1.1/operations/theme-artifacts.txt +19 -0
- package/public/packages/theme/0.1.1/operations/theme-cli.txt +10 -0
- package/public/packages/theme/0.1.1/operations/theme-compilation.txt +23 -0
- package/public/packages/theme/0.1.1/operations/theme-definition.txt +36 -0
- package/public/packages/theme/0.1.1/operations/theme-validation.txt +19 -0
- package/public/tasks/data.txt +39 -0
- package/public/tasks/forms.txt +65 -0
- package/public/tasks/layout.txt +37 -0
- package/public/tasks/navigation.txt +51 -0
- package/public/tasks/overlays.txt +39 -0
- package/public/tasks/theming.txt +37 -0
- package/skills/flowstack-ui-builder/SKILL.md +35 -0
- package/skills/flowstack-ui-builder/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-builder/scripts/resolve-agent-knowledge.mjs +399 -0
- package/skills/flowstack-ui-compose/SKILL.md +32 -0
- package/skills/flowstack-ui-compose/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-compose/scripts/resolve-agent-knowledge.mjs +399 -0
- package/skills/flowstack-ui-maintainer/SKILL.md +40 -0
- package/skills/flowstack-ui-maintainer/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-maintainer/scripts/resolve-agent-knowledge.mjs +399 -0
- package/skills/flowstack-ui-review/SKILL.md +29 -0
- package/skills/flowstack-ui-review/agents/openai.yaml +4 -0
- package/skills/flowstack-ui-review/scripts/resolve-agent-knowledge.mjs +399 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# Public document: palette-generation
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
|
|
5
|
+
# Palette Candidate Generation
|
|
6
|
+
|
|
7
|
+
Status: **Batch 7.4 implemented; interchange schema qualified**
|
|
8
|
+
|
|
9
|
+
Colors turns one or more explicit seeds into reviewable palette candidates. It
|
|
10
|
+
does not turn them into a Theme and never guesses semantic meaning from hue.
|
|
11
|
+
|
|
12
|
+
## Request
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import {
|
|
16
|
+
COLOR_GENERATION_REQUEST_SCHEMA,
|
|
17
|
+
generatePaletteCandidate,
|
|
18
|
+
} from "@flowstack-ui/colors";
|
|
19
|
+
|
|
20
|
+
const candidate = generatePaletteCandidate({
|
|
21
|
+
$schema: COLOR_GENERATION_REQUEST_SCHEMA,
|
|
22
|
+
seeds: [
|
|
23
|
+
{
|
|
24
|
+
id: "primary-brand",
|
|
25
|
+
name: "Primary brand",
|
|
26
|
+
intent: "Main interactive identity",
|
|
27
|
+
color: "#3157d5",
|
|
28
|
+
profile: "interface",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
id: "campaign",
|
|
32
|
+
color: "#f97316",
|
|
33
|
+
profile: "interface",
|
|
34
|
+
preservation: { mode: "bounded", maxDeltaE: 0.03 },
|
|
35
|
+
},
|
|
36
|
+
],
|
|
37
|
+
});
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Seed IDs must be unique. CSS Color 4 strings and structured Design Tokens
|
|
41
|
+
color values use the same input contract as the foundation APIs. Light and
|
|
42
|
+
dark are generated by default; `options.appearances` can request either one.
|
|
43
|
+
|
|
44
|
+
Malformed requests throw a `TypeError`. A well-formed request that cannot meet
|
|
45
|
+
its constraints returns a serializable `rejected` candidate with exact paths,
|
|
46
|
+
measurements, and reasons. Rejection is data, not an exception.
|
|
47
|
+
|
|
48
|
+
## Profiles
|
|
49
|
+
|
|
50
|
+
### Interface
|
|
51
|
+
|
|
52
|
+
An interface family contains `soft`, `softHover`, `softPressed`, `border`,
|
|
53
|
+
`borderStrong`, `focusRing`, `solid`, `solidHover`, `solidPressed`, `text`,
|
|
54
|
+
`textHover`, `textPressed`, `onSoft`, and `onSolid` roles for each appearance.
|
|
55
|
+
The exact seed is the `solid` anchor. The three text roles form a separately
|
|
56
|
+
generated resting, hover, and pressed foreground sequence; they are candidate
|
|
57
|
+
values for Theme mapping, not interaction behavior owned by Colors.
|
|
58
|
+
|
|
59
|
+
Colors measures:
|
|
60
|
+
|
|
61
|
+
- state lightness direction and adjacent deltaEOK distinction;
|
|
62
|
+
- `onSoft` against every soft state;
|
|
63
|
+
- one `onSolid` foreground against all solid states;
|
|
64
|
+
- resting, hover, and pressed text state order and adjacent deltaEOK
|
|
65
|
+
distinction;
|
|
66
|
+
- every text state against every appearance reference background; and
|
|
67
|
+
- solid, strong border, and focus ring against that background.
|
|
68
|
+
|
|
69
|
+
Reference backgrounds default to `#ffffff` for light and `#111111` for dark.
|
|
70
|
+
An author may provide one or more opaque backgrounds per appearance with
|
|
71
|
+
`options.referenceBackgrounds`. Colors then finds `text`, `textHover`,
|
|
72
|
+
`textPressed`, `borderStrong`, and `focusRing` values that pass every supplied
|
|
73
|
+
surface and records every exact measurement. This lets a Theme candidate
|
|
74
|
+
account for canvas, raised, overlay, and similar real surfaces before mapping.
|
|
75
|
+
Theme still remeasures the actual Brick pairs after mapping.
|
|
76
|
+
|
|
77
|
+
### Neutral
|
|
78
|
+
|
|
79
|
+
A neutral family uses the seed hue and bounded chroma influence to propose
|
|
80
|
+
canvas, surfaces, surface states, borders, ordinary text levels, and an
|
|
81
|
+
inverse text foreground. The exact seed is
|
|
82
|
+
kept as a separate family anchor rather than forced into an unsuitable semantic
|
|
83
|
+
role. Text and strong-border pairs and interactive surface distinctions are
|
|
84
|
+
measured in each appearance.
|
|
85
|
+
|
|
86
|
+
### Decorative
|
|
87
|
+
|
|
88
|
+
A decorative family is an ordered raw light/dark palette with no accessibility
|
|
89
|
+
claim. It defaults to 12 steps with the seed at step 9, preserving the former
|
|
90
|
+
explicit scale capability. Authors can request 3 through 24 steps and choose an
|
|
91
|
+
interior anchor step. Colors validates order, adjacent distinction, gamut, and
|
|
92
|
+
preservation only.
|
|
93
|
+
|
|
94
|
+
## Preservation
|
|
95
|
+
|
|
96
|
+
`exact` is the default. The canonical sRGB seed remains the family anchor. An
|
|
97
|
+
exact source outside sRGB is rejected rather than silently changed; the
|
|
98
|
+
structured source and required gamut change remain visible.
|
|
99
|
+
|
|
100
|
+
`bounded` authorizes deterministic adaptation up to `maxDeltaE`. Colors tries
|
|
101
|
+
the canonical sRGB seed first, then searches lightness and chroma candidates in
|
|
102
|
+
a stable order. It chooses the smallest measured adaptation that satisfies the
|
|
103
|
+
declared profile. The source hex, final anchor hex, deltaEOK, and whether an
|
|
104
|
+
adaptation occurred are all recorded. If no solution fits inside the bound,
|
|
105
|
+
the family is rejected.
|
|
106
|
+
|
|
107
|
+
## Safety defaults
|
|
108
|
+
|
|
109
|
+
- text pairs: at least `4.5:1` WCAG contrast;
|
|
110
|
+
- non-text pairs: at least `3:1`;
|
|
111
|
+
- adjacent states and decorative steps: at least `0.02` deltaEOK; and
|
|
112
|
+
- multi-seed collision warning: below `0.05` deltaEOK.
|
|
113
|
+
|
|
114
|
+
A request can strengthen these thresholds. It cannot lower the text, non-text,
|
|
115
|
+
or state safety floors. A collision is advisory because two intentionally
|
|
116
|
+
duplicated families may still be useful; it does not reject otherwise valid
|
|
117
|
+
families.
|
|
118
|
+
|
|
119
|
+
Every generated color includes its desired structured value, exact sRGB hex,
|
|
120
|
+
whether gamut mapping occurred, mapping deltaEOK, method, and difference from
|
|
121
|
+
the seed. All contrast measurements use the exact emitted hex values, not
|
|
122
|
+
unrounded intermediate coordinates.
|
|
123
|
+
|
|
124
|
+
## Named raw references
|
|
125
|
+
|
|
126
|
+
`NAMED_PALETTE_NAMES`, `isNamedPaletteName()`, and `getNamedPalette()` expose
|
|
127
|
+
31 familiar neutral and chromatic names. Every result is generated entirely by
|
|
128
|
+
FLOWSTACK from a documented FLOWSTACK seed, contains 12-step light and dark
|
|
129
|
+
output, and is marked `raw-reference`. These values are convenient color
|
|
130
|
+
families, not Theme-qualified relationships.
|
|
131
|
+
|
|
132
|
+
## Candidate meaning
|
|
133
|
+
|
|
134
|
+
`flowstack.colors-candidate.v1` records families, measurements,
|
|
135
|
+
diagnostics, source records, preservation, `unreviewed` status, and deterministic
|
|
136
|
+
algorithm provenance. It has no timestamps or random values, so identical
|
|
137
|
+
normalized inputs produce identical JSON bytes.
|
|
138
|
+
|
|
139
|
+
Batch 7.4 finalized this serialized boundary after a reviewed seven-family
|
|
140
|
+
candidate was scaffolded into an ordinary editable Theme, passed all 152 exact
|
|
141
|
+
Brick contrast evaluations, and passed the complete rendered catalog in light
|
|
142
|
+
and dark at desktop and mobile sizes. That qualifies the interchange contract,
|
|
143
|
+
not every future candidate. A person must still review each candidate, Theme
|
|
144
|
+
must explicitly map its chosen values, and the relevant product must earn its
|
|
145
|
+
own contract and rendered qualification.
|
|
146
|
+
|
|
147
|
+
`reviewPaletteCandidate(candidate, decision)` records an explicit `accepted`,
|
|
148
|
+
`edited`, or `rejected` human decision without mutating generation evidence or
|
|
149
|
+
adding timestamps and environment data. A generator-rejected candidate cannot
|
|
150
|
+
be marked accepted without edits. Theme interchange accepts only reviewed
|
|
151
|
+
candidates and still validates every exact mapped value independently.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Public document: releasing
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
|
|
5
|
+
# Releasing
|
|
6
|
+
|
|
7
|
+
Colors publishes only from a version tag on protected repository history. A
|
|
8
|
+
maintainer does not run `npm publish` from a working tree.
|
|
9
|
+
|
|
10
|
+
## Release contract
|
|
11
|
+
|
|
12
|
+
1. Set the package, lockfile, exported producer, changelog, and documentation
|
|
13
|
+
to the same version.
|
|
14
|
+
2. Run `npm run check:release` and review the exact archive inspected by the
|
|
15
|
+
clean-consumer gate.
|
|
16
|
+
3. Merge the release commit into `main` through required CI.
|
|
17
|
+
4. Create and push the matching `v<version>` tag on that merged commit.
|
|
18
|
+
5. The tag workflow confirms that the tag matches `package.json`, belongs to
|
|
19
|
+
`main`, and is not already published.
|
|
20
|
+
6. CI rebuilds and rechecks the repository, creates one archive, uploads it,
|
|
21
|
+
and publishes that same archive through the protected `npm` environment
|
|
22
|
+
using trusted publishing and provenance.
|
|
23
|
+
7. Verify the registry metadata and install the exact public version into a
|
|
24
|
+
fresh consumer before declaring the release complete.
|
|
25
|
+
|
|
26
|
+
The workflow is idempotent for an already-published version and creates the
|
|
27
|
+
matching GitHub release. Tags must never be moved or reused.
|
|
28
|
+
|
|
29
|
+
## Requalification triggers
|
|
30
|
+
|
|
31
|
+
Repeat the Theme and complete rendered Brick qualification before releasing a
|
|
32
|
+
change to candidate roles, generation algorithms, exact palette relationships,
|
|
33
|
+
contrast rules, semantic interchange requirements, or the color engine. Pure
|
|
34
|
+
documentation corrections still run repository and exact-archive gates.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Public document: testing
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
|
|
5
|
+
# Colors Testing
|
|
6
|
+
|
|
7
|
+
Colors must earn trust through exact evidence rather than visual smoothness
|
|
8
|
+
alone.
|
|
9
|
+
|
|
10
|
+
## Repository gate
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm run check:repository
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The repository gate covers TypeScript, serializable boundary tests, CSS and
|
|
17
|
+
Design Tokens inputs, conversion without hidden mapping, difficult gamut
|
|
18
|
+
cases, exact contrast vectors, alpha rejection, difference methods,
|
|
19
|
+
provenance, deterministic fixtures, qualified Culori behavior, package
|
|
20
|
+
contents, Agent Knowledge catalog and report parity, and a clean packed
|
|
21
|
+
consumer. The Agent Knowledge gate rejects missing, stale, duplicate, or extra
|
|
22
|
+
classifications and generated artifacts. Candidate tests add multiple profiles,
|
|
23
|
+
independent appearances, exact and bounded preservation, state ordering,
|
|
24
|
+
foreground pairs, rejection diagnostics, configurable decorative output,
|
|
25
|
+
multi-seed collisions, 31 named raw references, difficult-color gates, and a
|
|
26
|
+
byte-stable golden digest. It also covers explicit review decisions, neutral
|
|
27
|
+
inverse text, and interface qualification against multiple exact project
|
|
28
|
+
surfaces. See
|
|
29
|
+
`dependency-qualification.md` [source reference: dependency-qualification.md] for the selection
|
|
30
|
+
evidence and requalification triggers. The file interchange has additionally
|
|
31
|
+
passed a private real Theme compilation with all 152 Brick contrast results and
|
|
32
|
+
the complete 80-route desktop/mobile light/dark catalog. Those cross-repository
|
|
33
|
+
gates must be repeated when candidate meaning or mapping behavior changes.
|
|
34
|
+
|
|
35
|
+
## Release gate
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm run check:release
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
The release gate equals the complete repository gate. It verifies the public
|
|
42
|
+
source boundary, release metadata and pinned workflow actions, exact engine
|
|
43
|
+
version, candidate behavior, types, deterministic fixtures, archive contents,
|
|
44
|
+
and a clean JavaScript and TypeScript consumer installed from the archive. The
|
|
45
|
+
installed-copy check resolves the manifest and every guide artifact, traverses
|
|
46
|
+
all 76 classified API surfaces, and exercises all six operation families.
|
|
47
|
+
|
|
48
|
+
Publishing happens only from a matching immutable tag on `main`. The protected
|
|
49
|
+
workflow rebuilds and repeats this gate, uploads one archive, then publishes
|
|
50
|
+
that exact archive with npm provenance. See
|
|
51
|
+
`releasing.md` [source reference: releasing.md].
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
# FLOWSTACK Colors system
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
Kind: guide
|
|
5
|
+
ID: colors-system
|
|
6
|
+
|
|
7
|
+
# FLOWSTACK Colors system
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Select, execute, and review deterministic color operations without assigning component semantics or hiding changes to source colors.
|
|
12
|
+
|
|
13
|
+
## Decision order
|
|
14
|
+
|
|
15
|
+
1. Identify whether the task is inspection, conversion, measurement, raw-reference lookup, candidate generation and review, or provenance recording.
|
|
16
|
+
2. Preserve the exact source color unless the caller explicitly requests a bounded adaptation policy.
|
|
17
|
+
3. Keep conversion, gamut mapping, contrast, and perceptual difference as distinct reported operations.
|
|
18
|
+
4. For palette work, declare the intended profile and every exact interface reference surface before generation.
|
|
19
|
+
5. Review the deterministic candidate explicitly and retain its generation and engine provenance.
|
|
20
|
+
6. Hand only reviewed serialized candidates to Theme for semantic mapping and exact Brick contract validation.
|
|
21
|
+
7. Let the application or authorized project process make final brand and product-use decisions.
|
|
22
|
+
|
|
23
|
+
## Selection map
|
|
24
|
+
|
|
25
|
+
- **parse, normalize, or validate a supported color value:** use Color inspection. Use parseColor for syntax, normalizeColor for a serializable record, and validateColor for structured diagnostics.
|
|
26
|
+
- **convert a color space or explicitly map a color into an output gamut:** use Color conversion and gamut mapping. Conversion does not silently imply gamut mapping; request and report mapping separately.
|
|
27
|
+
- **measure exact contrast or perceptual difference:** use Color contrast and difference measurement. Measure exact pairs and provide an explicit backdrop before making a claim about translucent colors.
|
|
28
|
+
- **retrieve a stable named FLOWSTACK palette:** use Named palette reference. Treat the result as raw-reference data; step positions do not confer UI meaning or accessibility.
|
|
29
|
+
- **generate, inspect, and explicitly accept or reject a deterministic palette candidate:** use Palette candidate generation and review. Acceptance covers declared Colors measurements only; Theme and rendered Brick qualification remain separate.
|
|
30
|
+
- **record the source, engine, package, and transformation evidence for a color result:** use Color provenance. Keep provenance serializable and preserve the exact qualified engine version.
|
|
31
|
+
- **assign accent, danger, warning, success, information, surface, or text meaning:** use Theme semantic mapping after explicit candidate review. Colors never infers component or project semantics from hue or palette position.
|
|
32
|
+
|
|
33
|
+
## Rules
|
|
34
|
+
|
|
35
|
+
- **MUST:** Treat Colors output as a candidate until a person or explicitly authorized project process approves it and Theme maps and validates its exact values.
|
|
36
|
+
- **MUST:** Preserve exact source colors by default; adapt only under an explicit bounded policy and report the perceptual change.
|
|
37
|
+
- **MUST:** Make accessibility claims only for exact measured foreground and background pairs.
|
|
38
|
+
- **MUST:** Do not infer accent, danger, warning, success, or information meaning merely from hue or palette position.
|
|
39
|
+
- **MUST:** Keep Colors out of React, the DOM, Brick, Theme, and the ordinary application browser runtime; exchange serializable artifacts with Theme.
|
|
40
|
+
- **MUST:** Pin the qualified color engine exactly and treat its recorded version as part of deterministic provenance.
|
|
41
|
+
- **MUST:** Do not regenerate an accepted Theme merely because Colors is upgraded; review candidate diffs and repeat semantic and rendered qualification.
|
|
42
|
+
- **MUST:** Keep conversion and gamut mapping separate and report the method and perceptual change whenever a color is mapped.
|
|
43
|
+
- **MUST:** Do not claim contrast or perceptual difference for a translucent color without an explicit backdrop.
|
|
44
|
+
- **MUST:** Treat accepted as passing only the candidate's declared Colors measurements; Theme mapping and rendered Brick qualification remain separate gates.
|
|
45
|
+
- **MUST:** Record an explicit review decision before giving a serialized candidate to Theme and preserve its exact generation evidence.
|
|
46
|
+
- **MUST:** Supply every intended interface reference surface when a family must work across canvas, raised, overlay, or similar backgrounds.
|
|
47
|
+
- **MUST:** Keep named FLOWSTACK palettes labelled raw-reference and do not infer interface semantics or accessibility from their step positions.
|
|
48
|
+
|
|
49
|
+
## Native and higher-layer handoff
|
|
50
|
+
|
|
51
|
+
1. Check the six Colors operations before writing a new color parser, converter, mapper, measurement, candidate generator, named palette lookup, or provenance envelope.
|
|
52
|
+
2. Use Theme for semantic mapping and an application or authorized project process for final brand approval; do not rebuild those owners inside Colors.
|
|
53
|
+
3. Report the exact unsupported operation, input, output, backdrop, or higher-layer decision when a Colors owner does not apply.
|
|
54
|
+
|
|
55
|
+
## Validation checklist
|
|
56
|
+
|
|
57
|
+
- Confirm the selected operation matches the task and every input uses a supported serialized color shape.
|
|
58
|
+
- Verify parsing and normalization preserve the source while conversion and gamut mapping report their distinct outcomes.
|
|
59
|
+
- Verify contrast and difference claims identify the exact opaque pair or an explicit qualified backdrop.
|
|
60
|
+
- For candidates, inspect profile, appearances, exact reference surfaces, preservation policy, diagnostics, measurements, status, and deterministic output.
|
|
61
|
+
- Confirm explicit review and complete provenance precede Theme interchange and that accepted is not described as Theme-qualified.
|
|
62
|
+
- Confirm no React, DOM, Brick, Theme, application, private brand data, random generation, or hidden semantic inference entered the operation.
|
|
63
|
+
- Resolve the installed package manifest and coverage report and confirm all six operation owners and all 76 public API surfaces are covered.
|
|
64
|
+
|
|
65
|
+
## Related guidance
|
|
66
|
+
|
|
67
|
+
- `docs/architecture.md`
|
|
68
|
+
- `docs/color-foundations.md`
|
|
69
|
+
- `docs/compatibility.md`
|
|
70
|
+
- `docs/installation.md`
|
|
71
|
+
- `docs/palette-generation.md`
|
|
72
|
+
- `docs/dependency-qualification.md`
|
|
73
|
+
- `docs/testing.md`
|
|
74
|
+
|
|
75
|
+
## Current status
|
|
76
|
+
|
|
77
|
+
0.1-release
|
|
78
|
+
|
|
79
|
+
## Machine record
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"schema": "flowstack.agent-guide.v1",
|
|
84
|
+
"id": "colors-system",
|
|
85
|
+
"name": "FLOWSTACK Colors system",
|
|
86
|
+
"package": "@flowstack-ui/colors",
|
|
87
|
+
"layer": "colors",
|
|
88
|
+
"kind": "guide",
|
|
89
|
+
"purpose": "Select, execute, and review deterministic color operations without assigning component semantics or hiding changes to source colors.",
|
|
90
|
+
"status": "0.1-release",
|
|
91
|
+
"decisionOrder": [
|
|
92
|
+
"Identify whether the task is inspection, conversion, measurement, raw-reference lookup, candidate generation and review, or provenance recording.",
|
|
93
|
+
"Preserve the exact source color unless the caller explicitly requests a bounded adaptation policy.",
|
|
94
|
+
"Keep conversion, gamut mapping, contrast, and perceptual difference as distinct reported operations.",
|
|
95
|
+
"For palette work, declare the intended profile and every exact interface reference surface before generation.",
|
|
96
|
+
"Review the deterministic candidate explicitly and retain its generation and engine provenance.",
|
|
97
|
+
"Hand only reviewed serialized candidates to Theme for semantic mapping and exact Brick contract validation.",
|
|
98
|
+
"Let the application or authorized project process make final brand and product-use decisions."
|
|
99
|
+
],
|
|
100
|
+
"selection": [
|
|
101
|
+
{
|
|
102
|
+
"intent": "parse, normalize, or validate a supported color value",
|
|
103
|
+
"use": "Color inspection",
|
|
104
|
+
"note": "Use parseColor for syntax, normalizeColor for a serializable record, and validateColor for structured diagnostics.",
|
|
105
|
+
"destinations": [
|
|
106
|
+
{
|
|
107
|
+
"kind": "operation",
|
|
108
|
+
"id": "color-inspection"
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"intent": "convert a color space or explicitly map a color into an output gamut",
|
|
114
|
+
"use": "Color conversion and gamut mapping",
|
|
115
|
+
"note": "Conversion does not silently imply gamut mapping; request and report mapping separately.",
|
|
116
|
+
"destinations": [
|
|
117
|
+
{
|
|
118
|
+
"kind": "operation",
|
|
119
|
+
"id": "color-conversion"
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"intent": "measure exact contrast or perceptual difference",
|
|
125
|
+
"use": "Color contrast and difference measurement",
|
|
126
|
+
"note": "Measure exact pairs and provide an explicit backdrop before making a claim about translucent colors.",
|
|
127
|
+
"destinations": [
|
|
128
|
+
{
|
|
129
|
+
"kind": "operation",
|
|
130
|
+
"id": "color-measurement"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"intent": "retrieve a stable named FLOWSTACK palette",
|
|
136
|
+
"use": "Named palette reference",
|
|
137
|
+
"note": "Treat the result as raw-reference data; step positions do not confer UI meaning or accessibility.",
|
|
138
|
+
"destinations": [
|
|
139
|
+
{
|
|
140
|
+
"kind": "operation",
|
|
141
|
+
"id": "named-palette-reference"
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"intent": "generate, inspect, and explicitly accept or reject a deterministic palette candidate",
|
|
147
|
+
"use": "Palette candidate generation and review",
|
|
148
|
+
"note": "Acceptance covers declared Colors measurements only; Theme and rendered Brick qualification remain separate.",
|
|
149
|
+
"destinations": [
|
|
150
|
+
{
|
|
151
|
+
"kind": "operation",
|
|
152
|
+
"id": "palette-candidate"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"kind": "native-application",
|
|
156
|
+
"id": "human-candidate-review"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"kind": "native-application",
|
|
160
|
+
"id": "theme-semantic-mapping"
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"intent": "record the source, engine, package, and transformation evidence for a color result",
|
|
166
|
+
"use": "Color provenance",
|
|
167
|
+
"note": "Keep provenance serializable and preserve the exact qualified engine version.",
|
|
168
|
+
"destinations": [
|
|
169
|
+
{
|
|
170
|
+
"kind": "operation",
|
|
171
|
+
"id": "color-provenance"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"intent": "assign accent, danger, warning, success, information, surface, or text meaning",
|
|
177
|
+
"use": "Theme semantic mapping after explicit candidate review",
|
|
178
|
+
"note": "Colors never infers component or project semantics from hue or palette position.",
|
|
179
|
+
"destinations": [
|
|
180
|
+
{
|
|
181
|
+
"kind": "native-application",
|
|
182
|
+
"id": "theme-semantic-mapping"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"kind": "native-application",
|
|
186
|
+
"id": "application-brand-approval"
|
|
187
|
+
}
|
|
188
|
+
]
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"rules": [
|
|
192
|
+
{
|
|
193
|
+
"id": "colors-candidate-not-theme",
|
|
194
|
+
"level": "must",
|
|
195
|
+
"statement": "Treat Colors output as a candidate until a person or explicitly authorized project process approves it and Theme maps and validates its exact values."
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "colors-preserve-seed",
|
|
199
|
+
"level": "must",
|
|
200
|
+
"statement": "Preserve exact source colors by default; adapt only under an explicit bounded policy and report the perceptual change."
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"id": "colors-pair-claims",
|
|
204
|
+
"level": "must",
|
|
205
|
+
"statement": "Make accessibility claims only for exact measured foreground and background pairs."
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "colors-no-semantic-hue",
|
|
209
|
+
"level": "must",
|
|
210
|
+
"statement": "Do not infer accent, danger, warning, success, or information meaning merely from hue or palette position."
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"id": "colors-no-runtime",
|
|
214
|
+
"level": "must",
|
|
215
|
+
"statement": "Keep Colors out of React, the DOM, Brick, Theme, and the ordinary application browser runtime; exchange serializable artifacts with Theme."
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"id": "colors-engine-version",
|
|
219
|
+
"level": "must",
|
|
220
|
+
"statement": "Pin the qualified color engine exactly and treat its recorded version as part of deterministic provenance."
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"id": "colors-upgrade-review",
|
|
224
|
+
"level": "must",
|
|
225
|
+
"statement": "Do not regenerate an accepted Theme merely because Colors is upgraded; review candidate diffs and repeat semantic and rendered qualification."
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"id": "colors-gamut-honesty",
|
|
229
|
+
"level": "must",
|
|
230
|
+
"statement": "Keep conversion and gamut mapping separate and report the method and perceptual change whenever a color is mapped."
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"id": "colors-alpha-context",
|
|
234
|
+
"level": "must",
|
|
235
|
+
"statement": "Do not claim contrast or perceptual difference for a translucent color without an explicit backdrop."
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"id": "colors-accepted-scope",
|
|
239
|
+
"level": "must",
|
|
240
|
+
"statement": "Treat accepted as passing only the candidate's declared Colors measurements; Theme mapping and rendered Brick qualification remain separate gates."
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"id": "colors-explicit-review",
|
|
244
|
+
"level": "must",
|
|
245
|
+
"statement": "Record an explicit review decision before giving a serialized candidate to Theme and preserve its exact generation evidence."
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"id": "colors-reference-surfaces",
|
|
249
|
+
"level": "must",
|
|
250
|
+
"statement": "Supply every intended interface reference surface when a family must work across canvas, raised, overlay, or similar backgrounds."
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
"id": "colors-named-reference",
|
|
254
|
+
"level": "must",
|
|
255
|
+
"statement": "Keep named FLOWSTACK palettes labelled raw-reference and do not infer interface semantics or accessibility from their step positions."
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"nativeFallback": {
|
|
259
|
+
"check": "Check the six Colors operations before writing a new color parser, converter, mapper, measurement, candidate generator, named palette lookup, or provenance envelope.",
|
|
260
|
+
"use": "Use Theme for semantic mapping and an application or authorized project process for final brand approval; do not rebuild those owners inside Colors.",
|
|
261
|
+
"report": "Report the exact unsupported operation, input, output, backdrop, or higher-layer decision when a Colors owner does not apply."
|
|
262
|
+
},
|
|
263
|
+
"validation": [
|
|
264
|
+
"Confirm the selected operation matches the task and every input uses a supported serialized color shape.",
|
|
265
|
+
"Verify parsing and normalization preserve the source while conversion and gamut mapping report their distinct outcomes.",
|
|
266
|
+
"Verify contrast and difference claims identify the exact opaque pair or an explicit qualified backdrop.",
|
|
267
|
+
"For candidates, inspect profile, appearances, exact reference surfaces, preservation policy, diagnostics, measurements, status, and deterministic output.",
|
|
268
|
+
"Confirm explicit review and complete provenance precede Theme interchange and that accepted is not described as Theme-qualified.",
|
|
269
|
+
"Confirm no React, DOM, Brick, Theme, application, private brand data, random generation, or hidden semantic inference entered the operation.",
|
|
270
|
+
"Resolve the installed package manifest and coverage report and confirm all six operation owners and all 76 public API surfaces are covered."
|
|
271
|
+
],
|
|
272
|
+
"related": [
|
|
273
|
+
"docs/architecture.md",
|
|
274
|
+
"docs/color-foundations.md",
|
|
275
|
+
"docs/compatibility.md",
|
|
276
|
+
"docs/installation.md",
|
|
277
|
+
"docs/palette-generation.md",
|
|
278
|
+
"docs/dependency-qualification.md",
|
|
279
|
+
"docs/testing.md"
|
|
280
|
+
]
|
|
281
|
+
}
|
|
282
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @flowstack-ui/colors@0.1.1
|
|
2
|
+
|
|
3
|
+
Archive SHA-256: `f23b0be0e9f0a2d514ea893c6555d7562a97e0829828b1aeff5a78c760218b08`
|
|
4
|
+
Coverage: 76/76 public surfaces; zero failures.
|
|
5
|
+
|
|
6
|
+
## document
|
|
7
|
+
|
|
8
|
+
- [agent-knowledge](/packages/colors/0.1.1/docs/agent-knowledge.txt)
|
|
9
|
+
- [architecture](/packages/colors/0.1.1/docs/architecture.txt)
|
|
10
|
+
- [color-foundations](/packages/colors/0.1.1/docs/color-foundations.txt)
|
|
11
|
+
- [compatibility](/packages/colors/0.1.1/docs/compatibility.txt)
|
|
12
|
+
- [dependency-qualification](/packages/colors/0.1.1/docs/dependency-qualification.txt)
|
|
13
|
+
- [installation](/packages/colors/0.1.1/docs/installation.txt)
|
|
14
|
+
- [palette-generation](/packages/colors/0.1.1/docs/palette-generation.txt)
|
|
15
|
+
- [releasing](/packages/colors/0.1.1/docs/releasing.txt)
|
|
16
|
+
- [testing](/packages/colors/0.1.1/docs/testing.txt)
|
|
17
|
+
|
|
18
|
+
## guide
|
|
19
|
+
|
|
20
|
+
- [FLOWSTACK Colors system](/packages/colors/0.1.1/guides/colors-system.txt)
|
|
21
|
+
|
|
22
|
+
## operation
|
|
23
|
+
|
|
24
|
+
- [Color conversion and gamut mapping](/packages/colors/0.1.1/operations/color-conversion.txt)
|
|
25
|
+
- [Color inspection](/packages/colors/0.1.1/operations/color-inspection.txt)
|
|
26
|
+
- [Color contrast and difference measurement](/packages/colors/0.1.1/operations/color-measurement.txt)
|
|
27
|
+
- [Color provenance](/packages/colors/0.1.1/operations/color-provenance.txt)
|
|
28
|
+
- [Named palette reference](/packages/colors/0.1.1/operations/named-palette-reference.txt)
|
|
29
|
+
- [Palette candidate generation and review](/packages/colors/0.1.1/operations/palette-candidate.txt)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Color conversion and gamut mapping
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
Kind: operation
|
|
5
|
+
ID: color-conversion
|
|
6
|
+
Guide: [colors-system](/packages/colors/0.1.1/guides/colors-system.txt)
|
|
7
|
+
|
|
8
|
+
## Covered public surfaces
|
|
9
|
+
|
|
10
|
+
- `.#ColorConversionResult`
|
|
11
|
+
- `.#GamutMappingResult`
|
|
12
|
+
- `.#OutputGamut`
|
|
13
|
+
- `.#convertColor`
|
|
14
|
+
- `.#mapColorToGamut`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Color inspection
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
Kind: operation
|
|
5
|
+
ID: color-inspection
|
|
6
|
+
Guide: [colors-system](/packages/colors/0.1.1/guides/colors-system.txt)
|
|
7
|
+
|
|
8
|
+
## Covered public surfaces
|
|
9
|
+
|
|
10
|
+
- `.#ColorComponents`
|
|
11
|
+
- `.#ColorDiagnostic`
|
|
12
|
+
- `.#ColorDiagnosticCode`
|
|
13
|
+
- `.#ColorInput`
|
|
14
|
+
- `.#ColorRecord`
|
|
15
|
+
- `.#ColorValidationResult`
|
|
16
|
+
- `.#DtcgColorComponent`
|
|
17
|
+
- `.#DtcgColorToken`
|
|
18
|
+
- `.#DtcgColorValue`
|
|
19
|
+
- `.#StructuredColor`
|
|
20
|
+
- `.#SupportedColorSpace`
|
|
21
|
+
- `.#normalizeColor`
|
|
22
|
+
- `.#parseColor`
|
|
23
|
+
- `.#validateColor`
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Color contrast and difference measurement
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
Kind: operation
|
|
5
|
+
ID: color-measurement
|
|
6
|
+
Guide: [colors-system](/packages/colors/0.1.1/guides/colors-system.txt)
|
|
7
|
+
|
|
8
|
+
## Covered public surfaces
|
|
9
|
+
|
|
10
|
+
- `.#ColorDifferenceMethod`
|
|
11
|
+
- `.#ColorDifferenceReport`
|
|
12
|
+
- `.#ContrastMeasurement`
|
|
13
|
+
- `.#ContrastReport`
|
|
14
|
+
- `.#DifferenceMeasurement`
|
|
15
|
+
- `.#calculateColorDifference`
|
|
16
|
+
- `.#calculateContrast`
|
|
17
|
+
- `.#colorDifference`
|
|
18
|
+
- `.#contrastRatio`
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Color provenance
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
Kind: operation
|
|
5
|
+
ID: color-provenance
|
|
6
|
+
Guide: [colors-system](/packages/colors/0.1.1/guides/colors-system.txt)
|
|
7
|
+
|
|
8
|
+
## Covered public surfaces
|
|
9
|
+
|
|
10
|
+
- `.#ColorProvenance`
|
|
11
|
+
- `.#ColorSource`
|
|
12
|
+
- `.#SeedPreservationPolicy`
|
|
13
|
+
- `.#SeedPreservationResult`
|
|
14
|
+
- `.#createColorProvenance`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Named palette reference
|
|
2
|
+
|
|
3
|
+
Source: @flowstack-ui/colors@0.1.1
|
|
4
|
+
Kind: operation
|
|
5
|
+
ID: named-palette-reference
|
|
6
|
+
Guide: [colors-system](/packages/colors/0.1.1/guides/colors-system.txt)
|
|
7
|
+
|
|
8
|
+
## Covered public surfaces
|
|
9
|
+
|
|
10
|
+
- `.#NAMED_PALETTE_NAMES`
|
|
11
|
+
- `.#NamedPaletteName`
|
|
12
|
+
- `.#NamedPaletteReference`
|
|
13
|
+
- `.#TwelveStepScale`
|
|
14
|
+
- `.#getNamedPalette`
|
|
15
|
+
- `.#isNamedPaletteName`
|