COMPONENT
IntentSurfaceWidget
Surface widget compacte pour dashboards: header léger, badges/actions, collapse et dismiss optionnels.
🧱 SurfaceSince v0.2.8
DESIGN SYSTEM
Mode
Intent
Variant
Glow
Intensity
State
PLAYGROUND
Theme
Widget
Padding
Radius
Header align
Structure
Header mode
Collapse / Dismiss
PREVIEW
🐺
Nord
Maison Stark
Wardens of the North · Winter is Coming
Winterfell
Saison 1
House summary
Une maison ancienne, rugueuse comme le vent du Nord, structurée par l’honneur, la mémoire et la survie.
STRENGTH
18 banners
North loyalty
NETWORK
6 allies
Influence score 92%
BANNERS
Oath and memory
92%
readiness
Tip: Widget = un module de dashboard compact. Il peut vivre seul ou en meute, comme plusieurs maisons sur la carte de Westeros 🐺🐉🦁
RESOLVED
{
  "mode": "dark",
  "intent": "informed",
  "variant": "elevated",
  "intensity": "medium",
  "toneStep": 500,
  "toneEffective": "blue",
  "glowKey": null,
  "glowBackground": null,
  "style": {
    "--intent-bg": "var(--ids-color-blue-500)",
    "--intent-ring": "var(--ids-color-blue-700)",
    "--intent-text": "var(--ids-color-blue-200)",
    "--intent-bg-opacity": "0.16",
    "--intent-ring-opacity": "0.304",
    "--intent-border": "var(--ids-color-blue-700)",
    "--intent-glow-fill-opacity": "0",
    "--intent-glow-border-opacity": "0",
    "--intent-glow-filter": "none"
  },
  "classes": {
    "base": "intent-surface inline-flex items-center gap-2",
    "surface": "intent-bg",
    "border": "intent-ring",
    "text": "intent-text",
    "ring": "",
    "shadow": "intent-shadow-soft",
    "glow": "",
    "disabled": ""
  },
  "warnings": []
}
PROPS
PropTypeDefault
PROPS SYSTÈME
intent
Intent sémantique (informed/empowered/warned/threatened/themed/toned/glowed).
IntentDEFAULT_INTENT
variant
Variant visuel (flat/outlined/elevated/ghost).
VariantDEFAULT_VARIANT
tone
Override de tone (n’a d’effet que si intent='toned').
ToneDEFAULT_TONE (si toned)
toneStep
Step Tailwind (50..950) pour éclaircir/assombrir les teintes (autour du step canonique 500).
ToneStepDEFAULT_TONE_STEP
glow
Glow normal (true/false) ou glow esthétique (uniquement si intent='glowed').
boolean | Glowfalse (ou glow par intent)
intensity
Intensité (soft/medium/strong).
IntensityDEFAULT_INTENSITY
mode
Mode colorimétrique (dark/light).
ModeDEFAULT_MODE
disabled
Désactive l’état visuel (hooks + styles).
booleanfalse
PROPS LOCALES
as
Élément HTML rendu.
T extends React.ElementTypesection
className
Classes CSS additionnelles.
string
children
Contenu principal du widget.
React.ReactNode
fullWidth
Étire le widget en largeur.
booleanfalse
padded
Padding interne.
"none" | "xs" | "sm" | "md"sm
bleed
Retire le padding du body.
booleanfalse
radius
Rayon du widget.
"lg" | "xl" | "2xl"xl
minBodyHeight
Hauteur minimale du body.
number | string
header / footer
Slots custom pour header et footer.
React.ReactNode
emoji / icon / title / subtitle / eyebrow
Helpers du header auto.
React.ReactNode
badges / meta / actions
Zones à droite du header.
React.ReactNode
headerAlign
Alignement vertical du header.
"start" | "center"center
headerDivider / footerDivider
Affiche les séparateurs du header / footer.
booleantrue
bodyScrollable
Active un body scrollable.
booleanfalse
interactive
Ajoute un polish hover/focus.
booleanfalse
pressed
État actif / sélectionné.
booleanfalse
collapsible
Active le repli du widget.
booleanfalse
collapsed / defaultCollapsed / onCollapsedChange
État contrôlé / non contrôlé du collapse.
boolean / (collapsed: boolean) => void
keepMountedWhenCollapsed
Garde le body monté quand le widget est replié.
booleantrue
collapseLabel / expandLabel
Labels aria pour le bouton collapse.
string"Réduire" / "Déplier"
dismissible
Active le masquage du widget.
booleanfalse
dismissed / defaultDismissed / onDismissedChange / onDismiss
État contrôlé / non contrôlé du dismiss.
boolean / () => void / (dismissed: boolean) => void
dismissLabel
Label aria du bouton dismiss.
stringMasquer le widget
bodyId / headerId
IDs optionnels pour accessibilité.
string
(native props)
Props natives du tag rendu.
React.ComponentPropsWithoutRef<T>
TYPES & CONSTANTES
APIValeur / Référence
TYPES
IntentNametype
Type union des intents sémantiques.
"informed" | "empowered" | "warned" | "threatened" | "themed" | "toned" | "glowed"
VariantNametype
Type union des variants visuels.
"flat" | "outlined" | "elevated" | "ghost"
ToneNametype
Type union des tones (familles Tailwind + theme + black).
("slate" | "gray" | ... | "theme" | "black")
GlowNametype
Type union des aesthetic glows (utilisable quand intent='glowed').
"aurora" | "ember" | "cosmic" | "mythic" | "royal" | "mono"
Intensitytype
Intensité des effets (glow/contraste).
"soft" | "medium" | "strong"
ModeNametype
Mode colorimétrique.
"dark" | "light"
CONSTANTES
DEFAULT_INTENTconst
Intent par défaut si aucun intent n’est fourni.
informed
DEFAULT_VARIANTconst
Variant par défaut si aucun variant n’est fourni.
elevated
DEFAULT_GLOW_BY_INTENTconst
Mapping intent → glow par défaut (quand glow est implicite).
DEFAULT_GLOW_BY_INTENT