COMPONENT
IntentControlSelect
Select intent-first avec recherche, multi-sélection, groupes, rendu custom et menu stylisé par IntentSurface.
🕹️ ControlSince v0.2.12
DESIGN SYSTEM
mode
Intent
Variant
Glow
Intensity
State
PLAYGROUND
Size
Layout
Behavior
Align
Data
Placeholder
Value
Ce select modifie la valeur depuis le playground.
Astuce: teste le clavier (↑ ↓ Enter Escape), la recherche, le portal dans une zone contrainte, et le mode multiple pour valider les tags.
PREVIEW
mode=dark, variant= elevated, intent= informed, size= md, value= null
multiple= false · searchable= false · portal= false · groups= true · customRender= false
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
className
Classes CSS additionnelles appliquées au trigger.
string
optionsrequis
Liste des options.
IntentControlSelectOption[]
value
Valeur contrôlée (string | string[] | null).
string | string[] | null
defaultValue
Valeur initiale non contrôlée.
string | string[] | null
onValueChange
Callback quand la sélection change.
(value, option?) => void
multiple
Active le mode multi-sélection.
booleanfalse
portal
Rend le menu dans un portal pour éviter les soucis de z-index / overflow.
booleanfalse
portalAllowContentWidth
En mode portal, permet au menu de dépasser la largeur du trigger.
booleanfalse
forceOpen
Force l’ouverture du popover quelle que soit la logique interne.
booleanfalse
menuVariant
Override optionnel du variant du menu popover.
"flat" | "outlined" | "elevated" | "ghost"
searchable
Ajoute un input de recherche en haut du menu.
booleanfalse
groupBy
Fonction optionnelle pour grouper les options.
(option) => string | null
renderOption
Rendu personnalisé d’une option.
(option, state) => React.ReactNode
clearable
Affiche une croix de clear dans le trigger.
booleanfalse
insideField
Mode naked pour wrapper dans IntentControlField.
booleanfalse
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