@flood-md/agent 0.2.10 → 0.2.12
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/DESIGN.md +8 -5
- package/README.md +1 -1
- package/SKILL.md +11 -0
- package/dist/catalog.json +1914 -278
- package/dist/materials/component-app-shell.md +49 -0
- package/dist/materials/component-app-top-bar.md +36 -0
- package/dist/materials/component-autocomplete.md +54 -0
- package/dist/materials/component-bulk-action-bar.md +52 -0
- package/dist/materials/component-button.md +1 -0
- package/dist/materials/component-card.md +2 -2
- package/dist/materials/component-collapsible.md +1 -0
- package/dist/materials/component-collection-toolbar.md +69 -0
- package/dist/materials/component-collection-view-switcher.md +49 -0
- package/dist/materials/component-combobox.md +10 -0
- package/dist/materials/component-command-palette.md +53 -0
- package/dist/materials/component-copy-button.md +1 -0
- package/dist/materials/component-data-table.md +34 -4
- package/dist/materials/component-date-picker.md +1 -0
- package/dist/materials/component-date-range-picker.md +1 -0
- package/dist/materials/component-date-time-picker.md +2 -0
- package/dist/materials/component-date-time-range-picker.md +4 -0
- package/dist/materials/component-drawer.md +1 -0
- package/dist/materials/component-editable.md +4 -0
- package/dist/materials/component-figure.md +1 -1
- package/dist/materials/component-filter-condition.md +53 -0
- package/dist/materials/component-filter-group.md +55 -0
- package/dist/materials/component-heading.md +1 -1
- package/dist/materials/component-icon-button.md +2 -0
- package/dist/materials/component-menubar.md +41 -0
- package/dist/materials/component-multi-select.md +10 -0
- package/dist/materials/component-navigation-group.md +51 -0
- package/dist/materials/component-navigation-item.md +59 -0
- package/dist/materials/component-navigation-tree.md +8 -0
- package/dist/materials/component-overflow-actions.md +47 -0
- package/dist/materials/component-page-header.md +40 -0
- package/dist/materials/component-popover.md +2 -1
- package/dist/materials/component-radio-card.md +2 -2
- package/dist/materials/component-section.md +1 -1
- package/dist/materials/component-segmented-control.md +6 -4
- package/dist/materials/component-sheet.md +49 -0
- package/dist/materials/component-sidebar.md +64 -0
- package/dist/materials/component-sparkline.md +41 -0
- package/dist/materials/component-table.md +2 -0
- package/dist/materials/component-tabs.md +2 -0
- package/dist/materials/component-text.md +2 -2
- package/dist/materials/component-toggle.md +1 -0
- package/dist/materials/component-toolbar.md +5 -0
- package/dist/materials/component-tooltip.md +1 -1
- package/dist/materials/guide-agent-knowledge.md +13 -6
- package/dist/materials/guide-agents.md +8 -1
- package/dist/materials/guide-foundations.md +45 -2
- package/dist/materials/guide-installation.md +6 -6
- package/dist/materials/guide-interface-content.md +1 -1
- package/dist/materials/guide-introduction.md +4 -2
- package/dist/materials/guide-layout.md +39 -10
- package/dist/materials/guide-motion.md +66 -0
- package/dist/materials/guide-skills.md +9 -0
- package/dist/materials/recipe-collection-views.md +670 -0
- package/dist/materials/recipe-command-palette.md +31 -52
- package/dist/materials/recipe-filter-bar.md +12 -3
- package/dist/materials/recipe-grouped-form.md +5 -0
- package/dist/materials/recipe-navigation-workspace.md +222 -0
- package/dist/materials/recipe-record-management.md +310 -0
- package/dist/materials/recipe-record-workspace.md +207 -0
- package/dist/materials/recipe-settings-workspace.md +232 -0
- package/dist/materials/token-sys.color.context.base.action-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.base.action-hover.json +41 -0
- package/dist/materials/token-sys.color.context.base.action-pressed.json +41 -0
- package/dist/materials/token-sys.color.context.base.action-rest.json +41 -0
- package/dist/materials/token-sys.color.context.base.avatar-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.border-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.base.divider-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-border.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.base.field-readonly.json +41 -0
- package/dist/materials/token-sys.color.context.base.indicator-track.json +41 -0
- package/dist/materials/token-sys.color.context.base.loading-placeholder.json +41 -0
- package/dist/materials/token-sys.color.context.base.muted-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-hover.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-pressed.json +41 -0
- package/dist/materials/token-sys.color.context.base.on-surface-action-rest.json +41 -0
- package/dist/materials/token-sys.color.context.base.selection-background.json +41 -0
- package/dist/materials/token-sys.color.context.base.supporting-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-hover.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-pressed.json +41 -0
- package/dist/materials/token-sys.color.context.filled.action-rest.json +41 -0
- package/dist/materials/token-sys.color.context.filled.avatar-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.border-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.filled.divider-decorative.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-border.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-disabled.json +41 -0
- package/dist/materials/token-sys.color.context.filled.field-readonly.json +41 -0
- package/dist/materials/token-sys.color.context.filled.indicator-track.json +41 -0
- package/dist/materials/token-sys.color.context.filled.loading-placeholder.json +41 -0
- package/dist/materials/token-sys.color.context.filled.muted-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.selection-background.json +41 -0
- package/dist/materials/token-sys.color.context.filled.supporting-background.json +41 -0
- package/dist/materials/token-sys.color.field.readonly.json +41 -0
- package/dist/materials/token-sys.color.surface.avatar.json +41 -0
- package/dist/materials/token-sys.color.surface.current.json +41 -0
- package/dist/materials/token-sys.color.surface.muted.json +41 -0
- package/dist/materials/token-sys.color.surface.supporting.json +41 -0
- package/dist/materials/token-sys.motion.distance-panel.json +36 -0
- package/dist/materials/token-sys.motion.distance-small.json +36 -0
- package/dist/materials/token-sys.motion.duration-enter.json +36 -0
- package/dist/materials/token-sys.motion.duration-exit.json +36 -0
- package/dist/materials/token-sys.motion.duration-layer.json +36 -0
- package/dist/materials/token-sys.motion.duration-loop.json +36 -0
- package/dist/materials/token-sys.motion.duration-press.json +36 -0
- package/dist/materials/token-sys.motion.easing-enter.json +38 -0
- package/dist/materials/token-sys.motion.easing-exit.json +38 -0
- package/knowledge.json +115 -2
- package/lib/inspect.mjs +11 -0
- package/manifest.json +11 -1
- package/package.json +9 -3
- package/references/component-families.md +150 -0
- package/references/composition.md +16 -4
- package/references/customization.md +14 -0
- package/references/flood-composition/SKILL.md +4 -0
- package/references/flood-data-display/SKILL.md +146 -0
- package/references/flood-feedback/SKILL.md +37 -0
- package/references/flood-forms/SKILL.md +31 -0
- package/references/flood-foundations/SKILL.md +36 -0
- package/references/flood-hierarchy/SKILL.md +27 -7
- package/references/flood-interface-content/SKILL.md +33 -5
- package/references/flood-motion/SKILL.md +47 -0
- package/references/flood-navigation/SKILL.md +195 -0
- package/references/flood-overlays/SKILL.md +41 -0
- package/references/flood-records/SKILL.md +65 -2
- package/references/flood-spacing/SKILL.md +45 -0
- package/references/flood-verification/SKILL.md +20 -0
- package/references/interface-content-examples.md +4 -0
- package/references/rendered-review.md +5 -0
- package/references/spacing.md +30 -0
- package/rules.json +98 -8
- package/workflows.json +28 -3
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.distance-small",
|
|
3
|
+
"cssName": "--flood-sys-motion-distance-small",
|
|
4
|
+
"description": "Bounded movement for compact surfaces",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.distance-small",
|
|
10
|
+
"type": "dimension",
|
|
11
|
+
"cssName": "--flood-sys-motion-distance-small",
|
|
12
|
+
"description": "Bounded movement for compact surfaces",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Bounded movement for compact surfaces"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": {
|
|
26
|
+
"value": 4,
|
|
27
|
+
"unit": "px"
|
|
28
|
+
},
|
|
29
|
+
"alias": "ref.motion.distance-small",
|
|
30
|
+
"dependencies": [
|
|
31
|
+
"ref.motion.distance-small"
|
|
32
|
+
],
|
|
33
|
+
"dependents": []
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.duration-enter",
|
|
3
|
+
"cssName": "--flood-sys-motion-duration-enter",
|
|
4
|
+
"description": "Anchored layers and arriving feedback",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.duration-enter",
|
|
10
|
+
"type": "duration",
|
|
11
|
+
"cssName": "--flood-sys-motion-duration-enter",
|
|
12
|
+
"description": "Anchored layers and arriving feedback",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Anchored layers and arriving feedback"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": {
|
|
26
|
+
"value": 180,
|
|
27
|
+
"unit": "ms"
|
|
28
|
+
},
|
|
29
|
+
"alias": "ref.motion.duration-enter",
|
|
30
|
+
"dependencies": [
|
|
31
|
+
"ref.motion.duration-enter"
|
|
32
|
+
],
|
|
33
|
+
"dependents": []
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.duration-exit",
|
|
3
|
+
"cssName": "--flood-sys-motion-duration-exit",
|
|
4
|
+
"description": "Dismissal where visual presence is safe",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.duration-exit",
|
|
10
|
+
"type": "duration",
|
|
11
|
+
"cssName": "--flood-sys-motion-duration-exit",
|
|
12
|
+
"description": "Dismissal where visual presence is safe",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Dismissal where visual presence is safe"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": {
|
|
26
|
+
"value": 120,
|
|
27
|
+
"unit": "ms"
|
|
28
|
+
},
|
|
29
|
+
"alias": "ref.motion.duration-exit",
|
|
30
|
+
"dependencies": [
|
|
31
|
+
"ref.motion.duration-exit"
|
|
32
|
+
],
|
|
33
|
+
"dependents": []
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.duration-layer",
|
|
3
|
+
"cssName": "--flood-sys-motion-duration-layer",
|
|
4
|
+
"description": "Modal and edge panel entrances",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.duration-layer",
|
|
10
|
+
"type": "duration",
|
|
11
|
+
"cssName": "--flood-sys-motion-duration-layer",
|
|
12
|
+
"description": "Modal and edge panel entrances",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Modal and edge panel entrances"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": {
|
|
26
|
+
"value": 240,
|
|
27
|
+
"unit": "ms"
|
|
28
|
+
},
|
|
29
|
+
"alias": "ref.motion.duration-layer",
|
|
30
|
+
"dependencies": [
|
|
31
|
+
"ref.motion.duration-layer"
|
|
32
|
+
],
|
|
33
|
+
"dependents": []
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.duration-loop",
|
|
3
|
+
"cssName": "--flood-sys-motion-duration-loop",
|
|
4
|
+
"description": "Repeating activity feedback",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.duration-loop",
|
|
10
|
+
"type": "duration",
|
|
11
|
+
"cssName": "--flood-sys-motion-duration-loop",
|
|
12
|
+
"description": "Repeating activity feedback",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Repeating activity feedback"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": {
|
|
26
|
+
"value": 1000,
|
|
27
|
+
"unit": "ms"
|
|
28
|
+
},
|
|
29
|
+
"alias": "ref.motion.duration-loop",
|
|
30
|
+
"dependencies": [
|
|
31
|
+
"ref.motion.duration-loop"
|
|
32
|
+
],
|
|
33
|
+
"dependents": []
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.duration-press",
|
|
3
|
+
"cssName": "--flood-sys-motion-duration-press",
|
|
4
|
+
"description": "Fast tactile state changes",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.duration-press",
|
|
10
|
+
"type": "duration",
|
|
11
|
+
"cssName": "--flood-sys-motion-duration-press",
|
|
12
|
+
"description": "Fast tactile state changes",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Fast tactile state changes"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": {
|
|
26
|
+
"value": 70,
|
|
27
|
+
"unit": "ms"
|
|
28
|
+
},
|
|
29
|
+
"alias": "ref.motion.duration-press",
|
|
30
|
+
"dependencies": [
|
|
31
|
+
"ref.motion.duration-press"
|
|
32
|
+
],
|
|
33
|
+
"dependents": []
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.easing-enter",
|
|
3
|
+
"cssName": "--flood-sys-motion-easing-enter",
|
|
4
|
+
"description": "Responsive entrance with a soft stop",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.easing-enter",
|
|
10
|
+
"type": "cubicBezier",
|
|
11
|
+
"cssName": "--flood-sys-motion-easing-enter",
|
|
12
|
+
"description": "Responsive entrance with a soft stop",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Responsive entrance with a soft stop"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": [
|
|
26
|
+
0.16,
|
|
27
|
+
1,
|
|
28
|
+
0.3,
|
|
29
|
+
1
|
|
30
|
+
],
|
|
31
|
+
"alias": "ref.motion.easing-enter",
|
|
32
|
+
"dependencies": [
|
|
33
|
+
"ref.motion.easing-enter"
|
|
34
|
+
],
|
|
35
|
+
"dependents": []
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"role": "sys.motion.easing-exit",
|
|
3
|
+
"cssName": "--flood-sys-motion-easing-exit",
|
|
4
|
+
"description": "Short accelerating exit",
|
|
5
|
+
"contexts": [
|
|
6
|
+
{
|
|
7
|
+
"preset": "neutral",
|
|
8
|
+
"theme": "dark",
|
|
9
|
+
"id": "sys.motion.easing-exit",
|
|
10
|
+
"type": "cubicBezier",
|
|
11
|
+
"cssName": "--flood-sys-motion-easing-exit",
|
|
12
|
+
"description": "Short accelerating exit",
|
|
13
|
+
"status": "experimental",
|
|
14
|
+
"visibility": "public",
|
|
15
|
+
"owner": "foundations",
|
|
16
|
+
"since": "0.2.11",
|
|
17
|
+
"usage": {
|
|
18
|
+
"allowed": [
|
|
19
|
+
"Short accelerating exit"
|
|
20
|
+
],
|
|
21
|
+
"avoid": [
|
|
22
|
+
"Using motion to delay focus or state changes"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"value": [
|
|
26
|
+
0.4,
|
|
27
|
+
0,
|
|
28
|
+
1,
|
|
29
|
+
1
|
|
30
|
+
],
|
|
31
|
+
"alias": "ref.motion.easing-exit",
|
|
32
|
+
"dependencies": [
|
|
33
|
+
"ref.motion.easing-exit"
|
|
34
|
+
],
|
|
35
|
+
"dependents": []
|
|
36
|
+
}
|
|
37
|
+
]
|
|
38
|
+
}
|
package/knowledge.json
CHANGED
|
@@ -29,10 +29,11 @@
|
|
|
29
29
|
{
|
|
30
30
|
"id": "motion",
|
|
31
31
|
"name": "Motion",
|
|
32
|
-
"description": "
|
|
32
|
+
"description": "Component motion roles, transition recipes and reduced-motion verification."
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"workflows": {
|
|
36
|
+
"motion": ["motion", "quality"],
|
|
36
37
|
"composition": [
|
|
37
38
|
"composition"
|
|
38
39
|
],
|
|
@@ -208,6 +209,17 @@
|
|
|
208
209
|
],
|
|
209
210
|
"name": "Record metadata decisions",
|
|
210
211
|
"description": "Contextual list/detail, comparison, category/state, priority and timestamp decisions across different tasks."
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"id": "reference:component-families",
|
|
215
|
+
"source": "references/component-families.md",
|
|
216
|
+
"groups": [
|
|
217
|
+
"composition",
|
|
218
|
+
"foundations",
|
|
219
|
+
"quality"
|
|
220
|
+
],
|
|
221
|
+
"name": "Component family authoring",
|
|
222
|
+
"description": "Build reusable components that share Flood anatomy, sizing, geometry and state contracts; compare rendered siblings before introducing a new recipe."
|
|
211
223
|
}
|
|
212
224
|
],
|
|
213
225
|
"componentGroups": {
|
|
@@ -252,8 +264,13 @@
|
|
|
252
264
|
{
|
|
253
265
|
"id": "component-motion-tokens",
|
|
254
266
|
"status": "available",
|
|
255
|
-
"description": "
|
|
267
|
+
"description": "Semantic timing, easing, travel and reduced-motion roles for component states.",
|
|
256
268
|
"materials": [
|
|
269
|
+
"workflow:motion",
|
|
270
|
+
"token:sys.motion.duration-press",
|
|
271
|
+
"token:sys.motion.duration-enter",
|
|
272
|
+
"token:sys.motion.duration-layer",
|
|
273
|
+
"token:sys.motion.duration-exit",
|
|
257
274
|
"token:sys.motion.duration-fast",
|
|
258
275
|
"token:sys.motion.duration-normal",
|
|
259
276
|
"token:sys.motion.duration-reduced",
|
|
@@ -271,9 +288,48 @@
|
|
|
271
288
|
"status": "not-provided",
|
|
272
289
|
"description": "The new foundations profile provides dark only; legacy light controls do not add another foundation theme.",
|
|
273
290
|
"materials": []
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "manual-search-collections",
|
|
294
|
+
"status": "available",
|
|
295
|
+
"description": "Host-owned query/results identity, pending/error/retry and retained selection; no network client.",
|
|
296
|
+
"materials": [
|
|
297
|
+
"component:combobox",
|
|
298
|
+
"component:multi-select",
|
|
299
|
+
"component:autocomplete"
|
|
300
|
+
]
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"id": "server-table-pages",
|
|
304
|
+
"status": "available",
|
|
305
|
+
"description": "Explicit controlled page/sort and selection scope for supplied server pages; host owns fetching and authorization.",
|
|
306
|
+
"materials": [
|
|
307
|
+
"component:data-table",
|
|
308
|
+
"recipe:record-workspace"
|
|
309
|
+
]
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
"id": "collection-view-recipe",
|
|
313
|
+
"status": "available",
|
|
314
|
+
"description": "Typed host recipe for local query drafts and persisted enum-filter/sort views, shared by a table and file list; no new runtime export or remote query service.",
|
|
315
|
+
"materials": [
|
|
316
|
+
"recipe:collection-views"
|
|
317
|
+
]
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"id": "navigation-workspace-recipe",
|
|
321
|
+
"status": "available",
|
|
322
|
+
"description": "Host composition of Sidebar profiles for global modules and contextual pages, independent visibility and scoped focus/query state; no additional GlobalRail runtime export.",
|
|
323
|
+
"materials": [
|
|
324
|
+
"component:sidebar",
|
|
325
|
+
"recipe:navigation-workspace",
|
|
326
|
+
"workflow:navigation"
|
|
327
|
+
]
|
|
274
328
|
}
|
|
275
329
|
],
|
|
276
330
|
"documentGroups": {
|
|
331
|
+
"recipes/record-management.md": ["data-feedback", "composition"],
|
|
332
|
+
"recipes/settings-workspace.md": ["interaction", "composition"],
|
|
277
333
|
"README.md": [
|
|
278
334
|
"composition"
|
|
279
335
|
],
|
|
@@ -286,6 +342,7 @@
|
|
|
286
342
|
"foundations.md": [
|
|
287
343
|
"foundations"
|
|
288
344
|
],
|
|
345
|
+
"motion.md": ["foundations", "motion"],
|
|
289
346
|
"layout.md": [
|
|
290
347
|
"composition"
|
|
291
348
|
],
|
|
@@ -343,6 +400,22 @@
|
|
|
343
400
|
"recipes/grouped-form.md": [
|
|
344
401
|
"composition",
|
|
345
402
|
"interaction"
|
|
403
|
+
],
|
|
404
|
+
"recipes/record-workspace.md": [
|
|
405
|
+
"composition",
|
|
406
|
+
"data-feedback",
|
|
407
|
+
"quality"
|
|
408
|
+
],
|
|
409
|
+
"recipes/collection-views.md": [
|
|
410
|
+
"composition",
|
|
411
|
+
"data-feedback",
|
|
412
|
+
"interaction",
|
|
413
|
+
"quality"
|
|
414
|
+
],
|
|
415
|
+
"recipes/navigation-workspace.md": [
|
|
416
|
+
"composition",
|
|
417
|
+
"interaction",
|
|
418
|
+
"quality"
|
|
346
419
|
]
|
|
347
420
|
},
|
|
348
421
|
"prerequisites": {
|
|
@@ -404,6 +477,46 @@
|
|
|
404
477
|
"workflow:composition",
|
|
405
478
|
"workflow:interface-content",
|
|
406
479
|
"workflow:hierarchy"
|
|
480
|
+
],
|
|
481
|
+
"recipe:record-management": [
|
|
482
|
+
"workflow:records",
|
|
483
|
+
"workflow:overlays",
|
|
484
|
+
"workflow:forms"
|
|
485
|
+
],
|
|
486
|
+
"recipe:settings-workspace": [
|
|
487
|
+
"workflow:composition",
|
|
488
|
+
"workflow:forms",
|
|
489
|
+
"workflow:feedback"
|
|
490
|
+
],
|
|
491
|
+
"recipe:record-workspace": [
|
|
492
|
+
"workflow:composition",
|
|
493
|
+
"workflow:hierarchy",
|
|
494
|
+
"workflow:forms",
|
|
495
|
+
"workflow:navigation",
|
|
496
|
+
"workflow:feedback",
|
|
497
|
+
"workflow:data-display",
|
|
498
|
+
"workflow:interface-content"
|
|
499
|
+
],
|
|
500
|
+
"reference:component-families": [
|
|
501
|
+
"workflow:composition",
|
|
502
|
+
"workflow:foundations",
|
|
503
|
+
"workflow:spacing"
|
|
504
|
+
],
|
|
505
|
+
"recipe:collection-views": [
|
|
506
|
+
"workflow:composition",
|
|
507
|
+
"workflow:forms",
|
|
508
|
+
"workflow:overlays",
|
|
509
|
+
"workflow:data-display",
|
|
510
|
+
"workflow:records",
|
|
511
|
+
"workflow:feedback",
|
|
512
|
+
"workflow:interface-content"
|
|
513
|
+
],
|
|
514
|
+
"recipe:navigation-workspace": [
|
|
515
|
+
"workflow:composition",
|
|
516
|
+
"workflow:navigation",
|
|
517
|
+
"workflow:spacing",
|
|
518
|
+
"workflow:accessibility",
|
|
519
|
+
"workflow:interface-content"
|
|
407
520
|
]
|
|
408
521
|
}
|
|
409
522
|
}
|
package/lib/inspect.mjs
CHANGED
|
@@ -51,6 +51,17 @@ export function inspectRenderedUI(options = {}) {
|
|
|
51
51
|
return matches.slice(0, limit);
|
|
52
52
|
};
|
|
53
53
|
if(root===document&&document.documentElement.scrollWidth>innerWidth+1)addIssue({id:'layout.page-overflow',target:{tag:'html',id:document.documentElement.id||null,className:document.documentElement.getAttribute('class')||'',label:'Document'},offset:document.documentElement.scrollWidth-innerWidth,message:'The document extends beyond the viewport. Review the actual overflow owner at this text size; dense content can scroll locally. Hiding page overflow does not repair the layout.'});
|
|
54
|
+
const documentGutter = innerWidth - document.documentElement.clientWidth;
|
|
55
|
+
const scrollOwner = document.scrollingElement;
|
|
56
|
+
if (documentGutter > 1 && scrollOwner && scrollOwner.scrollHeight > scrollOwner.clientHeight + 1) {
|
|
57
|
+
const table = select('.flood-data-table').find(visible);
|
|
58
|
+
if (table) addIssue({
|
|
59
|
+
id: 'layout.record-scroll-owner',
|
|
60
|
+
target: target(table),
|
|
61
|
+
offset: documentGutter,
|
|
62
|
+
message: 'A document scrollbar consumes width on this record view. Compare full and filtered views with classic scrollbars. For a full-window workspace, use AppShell content scrolling so changes in row count keep the table edges in place.',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
54
65
|
for (const button of select('button.flood-button, button.flood-icon-button')) {
|
|
55
66
|
// Text is inspected outside real icon slots, SVGs and visually hidden names.
|
|
56
67
|
const walker = document.createTreeWalker(button, NodeFilter.SHOW_TEXT);
|
package/manifest.json
CHANGED
|
@@ -72,6 +72,11 @@
|
|
|
72
72
|
"target": ".agents/skills/flood-ui/references/flood-spacing/SKILL.md",
|
|
73
73
|
"kind": "skill"
|
|
74
74
|
},
|
|
75
|
+
{
|
|
76
|
+
"source": "references/flood-motion/SKILL.md",
|
|
77
|
+
"target": ".agents/skills/flood-ui/references/flood-motion/SKILL.md",
|
|
78
|
+
"kind": "skill"
|
|
79
|
+
},
|
|
75
80
|
{
|
|
76
81
|
"source": "references/flood-foundations/SKILL.md",
|
|
77
82
|
"target": ".agents/skills/flood-ui/references/flood-foundations/SKILL.md",
|
|
@@ -146,9 +151,14 @@
|
|
|
146
151
|
"source": "references/record-decisions.md",
|
|
147
152
|
"target": ".agents/skills/flood-ui/references/record-decisions.md",
|
|
148
153
|
"kind": "reference"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"source": "references/component-families.md",
|
|
157
|
+
"target": ".agents/skills/flood-ui/references/component-families.md",
|
|
158
|
+
"kind": "reference"
|
|
149
159
|
}
|
|
150
160
|
],
|
|
151
|
-
"version": "0.2.
|
|
161
|
+
"version": "0.2.12",
|
|
152
162
|
"installedEntry": ".agents/skills/flood-ui/SKILL.md",
|
|
153
163
|
"pathBase": "source is package-relative; target is relative to the host project root"
|
|
154
164
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flood-md/agent",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Versioned Flood design instructions for coding agents.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,8 +22,14 @@
|
|
|
22
22
|
"README.md"
|
|
23
23
|
],
|
|
24
24
|
"exports": {
|
|
25
|
-
"./inspect": {
|
|
26
|
-
|
|
25
|
+
"./inspect": {
|
|
26
|
+
"types": "./lib/inspect.d.ts",
|
|
27
|
+
"import": "./lib/inspect.mjs"
|
|
28
|
+
},
|
|
29
|
+
".": {
|
|
30
|
+
"types": "./lib/index.d.ts",
|
|
31
|
+
"import": "./lib/index.mjs"
|
|
32
|
+
},
|
|
27
33
|
"./dist/*": "./dist/*",
|
|
28
34
|
"./DESIGN.md": "./DESIGN.md",
|
|
29
35
|
"./SKILL.md": "./SKILL.md",
|