@flamingo-stack/openframe-frontend-core 0.0.450 → 0.0.451
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-6RA4NRBA.cjs → chunk-2EBWR7TL.cjs} +15 -15
- package/dist/{chunk-6RA4NRBA.cjs.map → chunk-2EBWR7TL.cjs.map} +1 -1
- package/dist/{chunk-76EN3GEH.cjs → chunk-2EDOYQ4B.cjs} +37 -37
- package/dist/{chunk-76EN3GEH.cjs.map → chunk-2EDOYQ4B.cjs.map} +1 -1
- package/dist/{chunk-HYIHXXF3.js → chunk-2OYAYIEY.js} +4 -4
- package/dist/{chunk-HXCQHMS5.js → chunk-6ZIUQ2SL.js} +4 -19
- package/dist/chunk-6ZIUQ2SL.js.map +1 -0
- package/dist/{chunk-VUDZOCPW.js → chunk-A7Z6UBVS.js} +4 -4
- package/dist/{chunk-PCW2TRZ4.js → chunk-B77WL4O5.js} +2 -2
- package/dist/{chunk-5OY7HYII.cjs → chunk-DGQHHMTR.cjs} +59 -59
- package/dist/{chunk-5OY7HYII.cjs.map → chunk-DGQHHMTR.cjs.map} +1 -1
- package/dist/{chunk-4VSTLJDO.js → chunk-DREXTFSD.js} +2 -2
- package/dist/{chunk-CM5XKHHS.js → chunk-FZG2BBFM.js} +4 -4
- package/dist/{chunk-K3GXIGN6.js → chunk-I4KRIE5C.js} +4 -4
- package/dist/{chunk-N53FC732.js → chunk-I5GIVUTT.js} +2 -2
- package/dist/{chunk-XITG5ICQ.cjs → chunk-L5C7LUKR.cjs} +31 -31
- package/dist/{chunk-XITG5ICQ.cjs.map → chunk-L5C7LUKR.cjs.map} +1 -1
- package/dist/{chunk-ROBGJH52.cjs → chunk-OIQVRUXB.cjs} +9 -9
- package/dist/{chunk-ROBGJH52.cjs.map → chunk-OIQVRUXB.cjs.map} +1 -1
- package/dist/{chunk-N5M72LJX.cjs → chunk-PSXGALZS.cjs} +733 -748
- package/dist/chunk-PSXGALZS.cjs.map +1 -0
- package/dist/{chunk-M3AKWFAO.js → chunk-PXCMC2IV.js} +2 -2
- package/dist/{chunk-26JSJMMZ.cjs → chunk-PZJ7K3IB.cjs} +7 -7
- package/dist/{chunk-26JSJMMZ.cjs.map → chunk-PZJ7K3IB.cjs.map} +1 -1
- package/dist/{chunk-6GJKSYM2.cjs → chunk-R3J3J343.cjs} +62 -62
- package/dist/{chunk-6GJKSYM2.cjs.map → chunk-R3J3J343.cjs.map} +1 -1
- package/dist/{chunk-4SZDO3TE.js → chunk-R4WXQKOP.js} +2 -2
- package/dist/{chunk-J5BYYZVM.cjs → chunk-VDG22PSI.cjs} +26 -26
- package/dist/{chunk-J5BYYZVM.cjs.map → chunk-VDG22PSI.cjs.map} +1 -1
- package/dist/{chunk-VLDZ4363.cjs → chunk-X6XGYRAK.cjs} +26 -26
- package/dist/{chunk-VLDZ4363.cjs.map → chunk-X6XGYRAK.cjs.map} +1 -1
- package/dist/{chunk-RQHHACP2.js → chunk-XNH5GGEI.js} +2 -2
- package/dist/{chunk-3ITY2LBM.js → chunk-XSBQ2REJ.js} +2 -2
- package/dist/{chunk-DQ5U6DCR.cjs → chunk-ZDW5ETYK.cjs} +11 -11
- package/dist/{chunk-DQ5U6DCR.cjs.map → chunk-ZDW5ETYK.cjs.map} +1 -1
- package/dist/{chunk-5HW5HMNF.cjs → chunk-ZP62C5A3.cjs} +5 -5
- package/dist/{chunk-5HW5HMNF.cjs.map → chunk-ZP62C5A3.cjs.map} +1 -1
- package/dist/components/case-studies/index.cjs +8 -8
- package/dist/components/case-studies/index.js +2 -2
- package/dist/components/chat/chat-quick-action-row.d.ts +7 -12
- package/dist/components/chat/chat-quick-action-row.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -4
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +1 -3
- package/dist/components/chat/quick-action-chip.d.ts +13 -31
- package/dist/components/chat/quick-action-chip.d.ts.map +1 -1
- package/dist/components/chat/quick-action-wall.d.ts +6 -9
- package/dist/components/chat/quick-action-wall.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +3 -3
- package/dist/components/contact/index.js +2 -2
- package/dist/components/docs/index.cjs +5 -5
- package/dist/components/docs/index.js +4 -4
- package/dist/components/embeds/index.cjs +3 -3
- package/dist/components/embeds/index.js +2 -2
- package/dist/components/faq/index.cjs +3 -3
- package/dist/components/faq/index.js +2 -2
- package/dist/components/features/index.cjs +2 -2
- package/dist/components/features/index.js +1 -1
- package/dist/components/help-center-pages/index.cjs +20 -20
- package/dist/components/help-center-pages/index.js +11 -11
- package/dist/components/index.cjs +129 -131
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +9 -11
- package/dist/components/index.js.map +1 -1
- package/dist/components/navigation/index.cjs +2 -2
- package/dist/components/navigation/index.js +1 -1
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/related-content/index.cjs +3 -3
- package/dist/components/related-content/index.js +2 -2
- package/dist/components/tickets/index.cjs +5 -5
- package/dist/components/tickets/index.js +4 -4
- package/dist/components/ui/index.cjs +2 -4
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +1 -3
- package/dist/index.cjs +2 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -3
- package/package.json +1 -1
- package/src/components/chat/chat-quick-action-row.tsx +7 -16
- package/src/components/chat/quick-action-chip.tsx +17 -48
- package/src/components/chat/quick-action-wall.tsx +5 -10
- package/src/stories/QuickActionWall.stories.tsx +31 -17
- package/dist/chunk-HXCQHMS5.js.map +0 -1
- package/dist/chunk-N5M72LJX.cjs.map +0 -1
- /package/dist/{chunk-HYIHXXF3.js.map → chunk-2OYAYIEY.js.map} +0 -0
- /package/dist/{chunk-VUDZOCPW.js.map → chunk-A7Z6UBVS.js.map} +0 -0
- /package/dist/{chunk-PCW2TRZ4.js.map → chunk-B77WL4O5.js.map} +0 -0
- /package/dist/{chunk-4VSTLJDO.js.map → chunk-DREXTFSD.js.map} +0 -0
- /package/dist/{chunk-CM5XKHHS.js.map → chunk-FZG2BBFM.js.map} +0 -0
- /package/dist/{chunk-K3GXIGN6.js.map → chunk-I4KRIE5C.js.map} +0 -0
- /package/dist/{chunk-N53FC732.js.map → chunk-I5GIVUTT.js.map} +0 -0
- /package/dist/{chunk-M3AKWFAO.js.map → chunk-PXCMC2IV.js.map} +0 -0
- /package/dist/{chunk-4SZDO3TE.js.map → chunk-R4WXQKOP.js.map} +0 -0
- /package/dist/{chunk-RQHHACP2.js.map → chunk-XNH5GGEI.js.map} +0 -0
- /package/dist/{chunk-3ITY2LBM.js.map → chunk-XSBQ2REJ.js.map} +0 -0
|
@@ -14,8 +14,7 @@ import { EntityIcon, type EntityIconValue } from '../icon-display'
|
|
|
14
14
|
* (agent/persona `icon_props.color`). */
|
|
15
15
|
export type QuickActionAccent = 'pink' | 'cyan' | (string & {})
|
|
16
16
|
|
|
17
|
-
/** THE agent→accent pairs (
|
|
18
|
-
* {@link QUICK_ACTION_THEMES} both derive from it). */
|
|
17
|
+
/** THE built-in agent→accent pairs ({@link getAgentAccent} derives from it). */
|
|
19
18
|
const AGENT_ACCENTS = { fae: 'pink', mingo: 'cyan' } as const
|
|
20
19
|
|
|
21
20
|
/**
|
|
@@ -117,43 +116,21 @@ export interface QuickActionChipLozenge {
|
|
|
117
116
|
// =============================================================================
|
|
118
117
|
|
|
119
118
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* agent identities so a category never reads as agent attribution. These two
|
|
128
|
-
* carry the classification lozenge (leading-edge affix) as part of the theme.
|
|
119
|
+
* A caller-supplied chip theme — the accent (and optional classification
|
|
120
|
+
* lozenge) for "who does this work". The lib deliberately ships NO theme
|
|
121
|
+
* registry and NO fallbacks: agent colors are server-configured (resolve via
|
|
122
|
+
* {@link accentFromIdentityIcon} on the agent row's `icon_props.color`, or
|
|
123
|
+
* {@link getAgentAccent} for the built-in agents) and category pairs are
|
|
124
|
+
* product decisions — the CONSUMER defines its specs and injects them, per
|
|
125
|
+
* chip or as a wall default.
|
|
129
126
|
*/
|
|
130
|
-
export type QuickActionTheme = 'fae' | 'mingo' | 'it' | 'sec'
|
|
131
|
-
|
|
132
127
|
export interface QuickActionThemeSpec {
|
|
133
128
|
/** Chip icon tint ({@link QuickActionAccent}: brand token or CSS color). */
|
|
134
129
|
accent: QuickActionAccent
|
|
135
|
-
/** Classification affix rendered inside the chip (category themes
|
|
130
|
+
/** Classification affix rendered inside the chip (category themes). */
|
|
136
131
|
lozenge?: QuickActionChipLozenge
|
|
137
132
|
}
|
|
138
133
|
|
|
139
|
-
/** Caller-injected per-theme accent overrides — how SERVER-CONFIGURED agent
|
|
140
|
-
* colors reach the chips. Consumers resolve the configured value (e.g.
|
|
141
|
-
* {@link accentFromIdentityIcon} on the agent row's `icon_props.color`) and
|
|
142
|
-
* inject it here; {@link QUICK_ACTION_THEMES} below is fallback-only. */
|
|
143
|
-
export type QuickActionThemeAccents = Partial<Record<QuickActionTheme, QuickActionAccent>>
|
|
144
|
-
|
|
145
|
-
/** FALLBACK-ONLY theme specs (same contract as {@link getAgentAccent}): the
|
|
146
|
-
* built-in accents apply when the caller injects nothing. The fae/mingo
|
|
147
|
-
* accents in particular are server-configured per agent — walls/chips accept
|
|
148
|
-
* a {@link QuickActionThemeAccents} override (`themeAccents`/`themeAccent`)
|
|
149
|
-
* that always wins over this map. */
|
|
150
|
-
export const QUICK_ACTION_THEMES: Record<QuickActionTheme, QuickActionThemeSpec> = {
|
|
151
|
-
fae: { accent: AGENT_ACCENTS.fae },
|
|
152
|
-
mingo: { accent: AGENT_ACCENTS.mingo },
|
|
153
|
-
it: { accent: 'var(--color-warning)', lozenge: { label: 'IT', className: 'text-ods-warning' } },
|
|
154
|
-
sec: { accent: 'var(--color-error)', lozenge: { label: 'SEC', className: 'text-ods-error' } },
|
|
155
|
-
}
|
|
156
|
-
|
|
157
134
|
/** Resolve a chip label + optional lozenge to the Tag label node. */
|
|
158
135
|
function composeChipLabel(
|
|
159
136
|
label: React.ReactNode,
|
|
@@ -186,14 +163,10 @@ export interface QuickActionChipButtonProps {
|
|
|
186
163
|
/** Icon: a declarative {@link QuickActionIconSpec} (preferred — unified
|
|
187
164
|
* EntityIcon resolution) or a pre-rendered ReactNode. */
|
|
188
165
|
icon?: React.ReactNode | QuickActionIconSpec
|
|
189
|
-
/**
|
|
190
|
-
* icon spec doesn't carry its own, and the lozenge when `lozenge`
|
|
191
|
-
* `true`. Explicit values always win over the theme. */
|
|
192
|
-
theme?:
|
|
193
|
-
/** Caller-injected accent for `theme` — the server-configured agent color
|
|
194
|
-
* (resolve via {@link accentFromIdentityIcon}). Overrides the theme's
|
|
195
|
-
* built-in fallback accent; the icon spec's own `accent` still wins. */
|
|
196
|
-
themeAccent?: QuickActionAccent
|
|
166
|
+
/** Caller-supplied {@link QuickActionThemeSpec}: supplies the icon accent
|
|
167
|
+
* when the icon spec doesn't carry its own, and the lozenge when `lozenge`
|
|
168
|
+
* is `true`. Explicit values always win over the theme. */
|
|
169
|
+
theme?: QuickActionThemeSpec
|
|
197
170
|
/** {@link QuickActionChipLozenge} at the label's leading edge (e.g. an
|
|
198
171
|
* IT/SEC classification affix). `true` renders the `theme`'s lozenge. */
|
|
199
172
|
lozenge?: QuickActionChipLozenge | boolean
|
|
@@ -286,7 +259,6 @@ export function QuickActionChipButton({
|
|
|
286
259
|
label,
|
|
287
260
|
icon,
|
|
288
261
|
theme,
|
|
289
|
-
themeAccent,
|
|
290
262
|
lozenge,
|
|
291
263
|
variant = 'outline',
|
|
292
264
|
selected = false,
|
|
@@ -298,14 +270,11 @@ export function QuickActionChipButton({
|
|
|
298
270
|
interactive = true,
|
|
299
271
|
className,
|
|
300
272
|
}: QuickActionChipButtonProps) {
|
|
301
|
-
|
|
302
|
-
//
|
|
303
|
-
// agent identity) → caller-injected `themeAccent` (server-configured agent
|
|
304
|
-
// color) → the theme's built-in fallback.
|
|
305
|
-
const accent = themeAccent ?? themeSpec?.accent
|
|
273
|
+
// The theme's accent only fills the gap — an icon spec's own accent
|
|
274
|
+
// (admin-configured per-action color) always wins.
|
|
306
275
|
const themedIcon =
|
|
307
|
-
|
|
308
|
-
const resolvedLozenge = lozenge === true ?
|
|
276
|
+
theme && isQuickActionIconSpec(icon) && !icon.accent ? { ...icon, accent: theme.accent } : icon
|
|
277
|
+
const resolvedLozenge = lozenge === true ? theme?.lozenge : lozenge === false ? undefined : lozenge
|
|
309
278
|
const resolvedIcon = renderQuickActionIcon(themedIcon)
|
|
310
279
|
const resolvedLabel = composeChipLabel(label, resolvedLozenge)
|
|
311
280
|
const tagVariant = selected ? (selectedAccent === 'cyan' ? 'selectedCyan' : 'selected') : variant
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
type MarqueeWallProps,
|
|
11
11
|
} from '../ui/marquee-wall'
|
|
12
12
|
import { QuickActionChipSkeleton } from './quick-action-chip'
|
|
13
|
-
import type {
|
|
13
|
+
import type { QuickActionThemeSpec } from './quick-action-chip'
|
|
14
14
|
import { QuickActionChipFromData } from './chat-quick-action-row'
|
|
15
15
|
import type { QuickActionChip } from './chat-quick-action-row'
|
|
16
16
|
|
|
@@ -49,13 +49,10 @@ export interface QuickActionWallProps {
|
|
|
49
49
|
* chat rows), including per-chip `theme`/`lozenge` for mixed IT/SEC
|
|
50
50
|
* streams. Chips with `onSelect` render as buttons; without, as tags. */
|
|
51
51
|
chips: ReadonlyArray<QuickActionChip>
|
|
52
|
-
/** Wall-default
|
|
53
|
-
theme
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
* (resolve via `accentFromIdentityIcon`); the built-in theme accents are
|
|
57
|
-
* fallback-only. Per-chip `themeAccent` still wins. */
|
|
58
|
-
themeAccents?: QuickActionThemeAccents
|
|
52
|
+
/** Wall-default {@link QuickActionThemeSpec} for chips without their own.
|
|
53
|
+
* Caller-supplied — the lib ships no theme registry; resolve agent colors
|
|
54
|
+
* server-side (e.g. `accentFromIdentityIcon`) and pass the spec here. */
|
|
55
|
+
theme?: QuickActionThemeSpec
|
|
59
56
|
/** `'animated'` (default): marquee + overflow fades. `'plain'`: no motion,
|
|
60
57
|
* no blur — the consumer's per-surface opt-out (forwarded to
|
|
61
58
|
* {@link MarqueeWall}; in brick mode the rows render static and the
|
|
@@ -133,7 +130,6 @@ export interface QuickActionWallProps {
|
|
|
133
130
|
export function QuickActionWall({
|
|
134
131
|
chips,
|
|
135
132
|
theme,
|
|
136
|
-
themeAccents,
|
|
137
133
|
mode = 'animated',
|
|
138
134
|
lozenges = false,
|
|
139
135
|
axis,
|
|
@@ -180,7 +176,6 @@ export function QuickActionWall({
|
|
|
180
176
|
key={chip.id}
|
|
181
177
|
chip={chip}
|
|
182
178
|
defaultTheme={theme}
|
|
183
|
-
themeAccents={themeAccents}
|
|
184
179
|
defaultLozenge={lozenges}
|
|
185
180
|
interactive={!!chip.onSelect}
|
|
186
181
|
className="max-w-full"
|
|
@@ -1,33 +1,47 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/nextjs-vite'
|
|
2
2
|
import { QuickActionWall, interleave } from '../components/chat/quick-action-wall'
|
|
3
3
|
import type { QuickActionChip } from '../components/chat/chat-quick-action-row'
|
|
4
|
+
import type { QuickActionThemeSpec } from '../components/chat/quick-action-chip'
|
|
5
|
+
|
|
6
|
+
// Theme specs are CALLER-supplied (the lib ships no registry, no fallbacks):
|
|
7
|
+
// these are this story's own demo specs — real consumers resolve agent
|
|
8
|
+
// accents from server config and define their own category pairs.
|
|
9
|
+
const IT_THEME: QuickActionThemeSpec = {
|
|
10
|
+
accent: 'var(--color-warning)',
|
|
11
|
+
lozenge: { label: 'IT', className: 'text-ods-warning' },
|
|
12
|
+
}
|
|
13
|
+
const SEC_THEME: QuickActionThemeSpec = {
|
|
14
|
+
accent: 'var(--color-error)',
|
|
15
|
+
lozenge: { label: 'SEC', className: 'text-ods-error' },
|
|
16
|
+
}
|
|
17
|
+
const FAE_THEME: QuickActionThemeSpec = { accent: 'pink' }
|
|
4
18
|
|
|
5
19
|
// A mixed IT/SEC stream (per-chip themes + lozenges) and a fae wall — the two
|
|
6
20
|
// wall registers: category-classified deck panels vs agent-themed hero walls.
|
|
7
21
|
const IT_ACTIONS: ReadonlyArray<QuickActionChip> = [
|
|
8
|
-
{ id: 'reset-password', label: 'Reset a password', icon: { name: 'key' }, theme:
|
|
9
|
-
{ id: 'new-laptop', label: 'Provision a new laptop', icon: { name: 'laptop' }, theme:
|
|
10
|
-
{ id: 'printer', label: 'Fix the printer', icon: { name: 'printer' }, theme:
|
|
11
|
-
{ id: 'vpn', label: 'VPN will not connect', icon: { name: 'globe' }, theme:
|
|
12
|
-
{ id: 'disk-full', label: 'Disk almost full', icon: { name: 'hard-drive' }, theme:
|
|
13
|
-
{ id: 'onboard', label: 'Onboard a new hire', icon: { name: 'user-plus' }, theme:
|
|
22
|
+
{ id: 'reset-password', label: 'Reset a password', icon: { name: 'key' }, theme: IT_THEME },
|
|
23
|
+
{ id: 'new-laptop', label: 'Provision a new laptop', icon: { name: 'laptop' }, theme: IT_THEME },
|
|
24
|
+
{ id: 'printer', label: 'Fix the printer', icon: { name: 'printer' }, theme: IT_THEME },
|
|
25
|
+
{ id: 'vpn', label: 'VPN will not connect', icon: { name: 'globe' }, theme: IT_THEME },
|
|
26
|
+
{ id: 'disk-full', label: 'Disk almost full', icon: { name: 'hard-drive' }, theme: IT_THEME },
|
|
27
|
+
{ id: 'onboard', label: 'Onboard a new hire', icon: { name: 'user-plus' }, theme: IT_THEME },
|
|
14
28
|
]
|
|
15
29
|
|
|
16
30
|
const SEC_ACTIONS: ReadonlyArray<QuickActionChip> = [
|
|
17
|
-
{ id: 'phishing', label: 'Phishing report triage', icon: { name: 'fish' }, theme:
|
|
18
|
-
{ id: 'mfa', label: 'Enforce MFA', icon: { name: 'shield-check' }, theme:
|
|
19
|
-
{ id: 'patch', label: 'Patch the CVE', icon: { name: 'bug' }, theme:
|
|
20
|
-
{ id: 'offboard', label: 'Revoke access on exit', icon: { name: 'user-minus' }, theme:
|
|
21
|
-
{ id: 'edr-alert', label: 'EDR alert review', icon: { name: 'radar' }, theme:
|
|
31
|
+
{ id: 'phishing', label: 'Phishing report triage', icon: { name: 'fish' }, theme: SEC_THEME },
|
|
32
|
+
{ id: 'mfa', label: 'Enforce MFA', icon: { name: 'shield-check' }, theme: SEC_THEME },
|
|
33
|
+
{ id: 'patch', label: 'Patch the CVE', icon: { name: 'bug' }, theme: SEC_THEME },
|
|
34
|
+
{ id: 'offboard', label: 'Revoke access on exit', icon: { name: 'user-minus' }, theme: SEC_THEME },
|
|
35
|
+
{ id: 'edr-alert', label: 'EDR alert review', icon: { name: 'radar' }, theme: SEC_THEME },
|
|
22
36
|
]
|
|
23
37
|
|
|
24
38
|
const FAE_ACTIONS: ReadonlyArray<QuickActionChip> = [
|
|
25
39
|
{ id: 'how-to-start', label: 'How to start', icon: { name: 'fae' } },
|
|
26
|
-
{ id: 'connect-device', label: 'Connect device', icon: { name: 'search' }, theme:
|
|
27
|
-
{ id: 'find-device', label: 'Find device', icon: { name: 'compass' }, theme:
|
|
28
|
-
{ id: 'remote-connection', label: 'Remote connection', icon: { name: 'rocket' }, theme:
|
|
29
|
-
{ id: 'run-scripts', label: 'Run scripts', icon: { name: 'bracket-curly' }, theme:
|
|
30
|
-
{ id: 'device-software', label: 'Device software', icon: { name: 'package' }, theme:
|
|
40
|
+
{ id: 'connect-device', label: 'Connect device', icon: { name: 'search' }, theme: FAE_THEME },
|
|
41
|
+
{ id: 'find-device', label: 'Find device', icon: { name: 'compass' }, theme: FAE_THEME },
|
|
42
|
+
{ id: 'remote-connection', label: 'Remote connection', icon: { name: 'rocket' }, theme: FAE_THEME },
|
|
43
|
+
{ id: 'run-scripts', label: 'Run scripts', icon: { name: 'bracket-curly' }, theme: FAE_THEME },
|
|
44
|
+
{ id: 'device-software', label: 'Device software', icon: { name: 'package' }, theme: FAE_THEME },
|
|
31
45
|
]
|
|
32
46
|
|
|
33
47
|
const meta: Meta<typeof QuickActionWall> = {
|
|
@@ -38,7 +52,7 @@ const meta: Meta<typeof QuickActionWall> = {
|
|
|
38
52
|
docs: {
|
|
39
53
|
description: {
|
|
40
54
|
component:
|
|
41
|
-
'THE quick-action chip wall: a themed pile of the shared chip on the shared `<MarqueeWall>` engine. Static-with-fade when content fits (or `prefers-reduced-motion`); an endless marquee when it overflows — the axis follows the fade (`bottom` fade → content travels bottom→top; `right` fade → right→left).
|
|
55
|
+
'THE quick-action chip wall: a themed pile of the shared chip on the shared `<MarqueeWall>` engine. Static-with-fade when content fits (or `prefers-reduced-motion`); an endless marquee when it overflows — the axis follows the fade (`bottom` fade → content travels bottom→top; `right` fade → right→left). Theme specs (accent + optional lozenge) are caller-supplied per chip or as a wall default — the lib ships no theme registry. Interactive chips pause the track on hover; clone-copy chips stay clickable with wrapper-level a11y. `rows` renders the brick-wall mode (stacked independent row marquees).',
|
|
42
56
|
},
|
|
43
57
|
},
|
|
44
58
|
},
|