@ajuarezso/sui-design-system 0.2.0 → 0.2.2
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/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ajuarezso/sui-design-system",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "SUI Design System — librería de componentes Angular (SUI 2.0).",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"@angular/common": "^21.2.0",
|
|
11
|
-
"@angular/core": "^21.2.0",
|
|
12
|
-
"@angular/forms": "^21.2.0",
|
|
13
|
-
"@angular/router": "^21.2.0",
|
|
14
|
-
"@angular/cdk": "^21.2.0",
|
|
15
|
-
"@angular/platform-browser": "^21.2.0",
|
|
10
|
+
"@angular/common": "^21.2.0 || ^22.0.0",
|
|
11
|
+
"@angular/core": "^21.2.0 || ^22.0.0",
|
|
12
|
+
"@angular/forms": "^21.2.0 || ^22.0.0",
|
|
13
|
+
"@angular/router": "^21.2.0 || ^22.0.0",
|
|
14
|
+
"@angular/cdk": "^21.2.0 || ^22.0.0",
|
|
15
|
+
"@angular/platform-browser": "^21.2.0 || ^22.0.0",
|
|
16
16
|
"rxjs": "^7.8.0",
|
|
17
17
|
"@capacitor/core": ">=6.0.0",
|
|
18
18
|
"@capacitor/keyboard": ">=6.0.0"
|
|
@@ -904,7 +904,7 @@ declare class SuiAlert {
|
|
|
904
904
|
* `small` (12/16) en los compactos (small/xsmall). Mapea el tipo del action al
|
|
905
905
|
* tamaño del alert.
|
|
906
906
|
*/
|
|
907
|
-
readonly actionLinkSize: _angular_core.Signal<"
|
|
907
|
+
readonly actionLinkSize: _angular_core.Signal<"medium" | "small">;
|
|
908
908
|
/**
|
|
909
909
|
* Tamaño del `sui-compact-button` del cierre, mapeado del size del alert para
|
|
910
910
|
* conservar el footprint del icono: xsmall (icon 16) → compact `medium`;
|
|
@@ -1898,7 +1898,7 @@ declare class SuiCheckboxCard implements ControlValueAccessor {
|
|
|
1898
1898
|
/** RemixIcon name (sin prefijo "ri-") para type='left-icon'. */
|
|
1899
1899
|
readonly icon: _angular_core.InputSignal<string | null>;
|
|
1900
1900
|
/** Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'. */
|
|
1901
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
1901
|
+
readonly emoji: _angular_core.InputSignal<"warning" | "label" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
1902
1902
|
/** URL directa al emoji para type='left-icon'. Precedencia: icon > emoji > iconSrc. */
|
|
1903
1903
|
readonly iconSrc: _angular_core.InputSignal<string | null>;
|
|
1904
1904
|
/** URL de imagen para type='avatar'. Si falla, fallback a iniciales del label. */
|
|
@@ -4353,7 +4353,7 @@ declare class SuiDropdownPanel {
|
|
|
4353
4353
|
* placeholder text "Search..." color text-soft-400
|
|
4354
4354
|
*
|
|
4355
4355
|
* Active (con valor escrito):
|
|
4356
|
-
* search icon:
|
|
4356
|
+
* search icon: icon-sub-600 (oscurece vs el soft-400 de Default)
|
|
4357
4357
|
* text input: color text-strong-950 (el valor escrito en negro)
|
|
4358
4358
|
* close icon 20×20 trailing para clear (text-soft-400)
|
|
4359
4359
|
*
|
|
@@ -4446,7 +4446,7 @@ type SuiEmojiName = keyof typeof SUI_EMOJI_MAP;
|
|
|
4446
4446
|
type SuiEmojiSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
|
|
4447
4447
|
declare class SuiEmoji {
|
|
4448
4448
|
/** Nombre del emoji del catálogo. Si se proveé `src`, este se ignora. */
|
|
4449
|
-
readonly name: _angular_core.InputSignal<"
|
|
4449
|
+
readonly name: _angular_core.InputSignal<"warning" | "label" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
4450
4450
|
/** URL directa al emoji (override del catálogo). Útil para usar emojis fuera del map. */
|
|
4451
4451
|
readonly src: _angular_core.InputSignal<string | null>;
|
|
4452
4452
|
/** Tamaño del emoji. */
|
|
@@ -4927,7 +4927,7 @@ declare class SuiFileUpload {
|
|
|
4927
4927
|
protected readonly inputRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
4928
4928
|
protected readonly dragging: _angular_core.WritableSignal<boolean>;
|
|
4929
4929
|
protected readonly internalError: _angular_core.WritableSignal<string | null>;
|
|
4930
|
-
protected readonly state: _angular_core.Signal<"
|
|
4930
|
+
protected readonly state: _angular_core.Signal<"default" | "error" | "disabled" | "dragover">;
|
|
4931
4931
|
protected readonly resolvedTitle: _angular_core.Signal<string>;
|
|
4932
4932
|
protected readonly resolvedSubtitle: _angular_core.Signal<string>;
|
|
4933
4933
|
protected readonly resolvedErrorMessage: _angular_core.Signal<string | null>;
|
|
@@ -5155,7 +5155,7 @@ declare class SuiFilterPanelFooter {
|
|
|
5155
5155
|
readonly clearDisabled: _angular_core.InputSignal<boolean>;
|
|
5156
5156
|
readonly applyDisabled: _angular_core.InputSignal<boolean>;
|
|
5157
5157
|
/** Tamaño de los botones. Default 'small' (Figma: p-8px/radius-8 = size small). */
|
|
5158
|
-
readonly size: _angular_core.InputSignal<"
|
|
5158
|
+
readonly size: _angular_core.InputSignal<"medium" | "small">;
|
|
5159
5159
|
readonly clear: _angular_core.OutputEmitterRef<void>;
|
|
5160
5160
|
readonly apply: _angular_core.OutputEmitterRef<void>;
|
|
5161
5161
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiFilterPanelFooter, never>;
|
|
@@ -6979,7 +6979,7 @@ declare class SuiNotification {
|
|
|
6979
6979
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
6980
6980
|
readonly unread: _angular_core.InputSignal<boolean>;
|
|
6981
6981
|
/** Item body type. 'basic' keeps the legacy/alert layout (no body slot). */
|
|
6982
|
-
readonly type: _angular_core.InputSignal<"
|
|
6982
|
+
readonly type: _angular_core.InputSignal<"file" | "button" | "basic" | "message">;
|
|
6983
6983
|
/** When true, item paints the Figma hover bg + reveals the more-2-line button. */
|
|
6984
6984
|
readonly showMore: _angular_core.InputSignal<boolean>;
|
|
6985
6985
|
/** Forces the hover affordance visible (e.g. keyboard-focused row). */
|
|
@@ -7650,7 +7650,7 @@ declare class SuiRadioCard implements ControlValueAccessor {
|
|
|
7650
7650
|
* Emoji del catálogo SUI_EMOJI_MAP — alternativa a icon para type='left-icon'.
|
|
7651
7651
|
* Si ambos están, icon tiene precedencia.
|
|
7652
7652
|
*/
|
|
7653
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
7653
|
+
readonly emoji: _angular_core.InputSignal<"warning" | "label" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
7654
7654
|
/**
|
|
7655
7655
|
* URL directa al emoji para type='left-icon'. Útil cuando el consumer ya tiene
|
|
7656
7656
|
* la URL (ej. FLUENT_EMOJI map del proyecto) y no quiere registrar el emoji
|
|
@@ -8585,7 +8585,19 @@ declare class SuiSocialButton {
|
|
|
8585
8585
|
/** Disabled efectivo: el input disabled O el estado loading. */
|
|
8586
8586
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
8587
8587
|
readonly isAnchor: _angular_core.Signal<boolean>;
|
|
8588
|
-
/**
|
|
8588
|
+
/** Marcas con logo MONOCROMÁTICO OSCURO: su `original` es negro/gris horneado en
|
|
8589
|
+
* el SVG (no responde a currentColor por ser <img>), así que en stroke + dark
|
|
8590
|
+
* quedaría casi invisible sobre el bg oscuro → se usa el logo `white`. Las marcas
|
|
8591
|
+
* multicolor (google/facebook/linkedin/dropbox) se ven bien y quedan `original`. */
|
|
8592
|
+
private static readonly MONO_DARK_BRANDS;
|
|
8593
|
+
/** Dark mode reactivo — leído del `data-theme` del root (mecanismo del DS).
|
|
8594
|
+
* Necesario porque el logo es un asset distinto por tema (no un color CSS). */
|
|
8595
|
+
private readonly isDark;
|
|
8596
|
+
private readDark;
|
|
8597
|
+
constructor();
|
|
8598
|
+
/** Logo style derivado del button style + tema. filled → siempre blanco; stroke →
|
|
8599
|
+
* `original`, salvo dark + marca monocromática oscura, donde usa `white` para no
|
|
8600
|
+
* perder el logo sobre la superficie oscura (ver MONO_DARK_BRANDS). */
|
|
8589
8601
|
readonly logoStyle: _angular_core.Signal<"white" | "original">;
|
|
8590
8602
|
/** Color de fondo brand-specific (solo aplica si style=filled). */
|
|
8591
8603
|
readonly filledBg: _angular_core.Signal<string | null>;
|
|
@@ -8981,7 +8993,7 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
8981
8993
|
* `<sui-icon>` proyectado vía `[sui-switch-card-leading]` y se renderiza
|
|
8982
8994
|
* con las MISMAS dimensiones (20×20 dentro del círculo de 40px).
|
|
8983
8995
|
*/
|
|
8984
|
-
readonly emoji: _angular_core.InputSignal<"
|
|
8996
|
+
readonly emoji: _angular_core.InputSignal<"warning" | "label" | "thinking-face" | "grinning-face" | "smiling-face-hearts" | "face-with-rolling-eyes" | "face-screaming" | "partying-face" | "star-struck" | "sleeping-face" | "pensive-face" | "confused-face" | "neutral-face" | "slightly-smiling-face" | "grinning-face-smiling-eyes" | "package" | "receipt" | "money-bag" | "money-with-wings" | "shopping-cart" | "shopping-bags" | "card-index-dividers" | "bell" | "bell-with-slash" | "pushpin" | "mobile-phone" | "gear" | "locked" | "unlocked" | "wrench" | "hammer" | "magnifying-glass-tilted-left" | "spiral-calendar" | "bar-chart" | "delivery-truck" | "motorcycle" | "rocket" | "house" | "office-building" | "shop" | "dollar-banknote" | "glowing-star" | "kick-scooter" | "check-mark" | "check-mark-button" | "cross-mark" | "no-entry" | "sparkles" | "party-popper" | "waving-hand" | "thumbs-up" | "clapping-hands" | "handshake" | "busts-in-silhouette" | "pizza" | "hamburger" | "taco" | "birthday-cake" | null>;
|
|
8985
8997
|
/**
|
|
8986
8998
|
* URL de imagen para type='avatar' — se renderiza con sui-avatar size=lg
|
|
8987
8999
|
* (40×40 redonda). Si la imagen falla, fallback automático a iniciales del
|
|
@@ -9006,6 +9018,8 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
9006
9018
|
readonly isDisabled: _angular_core.Signal<boolean>;
|
|
9007
9019
|
/** True si type requiere render del slot leading. */
|
|
9008
9020
|
readonly hasLeading: _angular_core.Signal<boolean>;
|
|
9021
|
+
/** Box del leading según type — usado por el wrapper único del slot proyectado. */
|
|
9022
|
+
readonly leadingBoxClass: _angular_core.Signal<"" | "sui-switch-card__leading-icon" | "sui-switch-card__leading-card-provider" | "sui-switch-card__leading-brand" | "sui-switch-card__leading-company">;
|
|
9009
9023
|
/** Iniciales para fallback de sui-avatar cuando la imagen no carga. */
|
|
9010
9024
|
readonly initialsFromLabel: _angular_core.Signal<string>;
|
|
9011
9025
|
private _onChange;
|
|
@@ -9022,7 +9036,7 @@ declare class SuiSwitchCard implements ControlValueAccessor {
|
|
|
9022
9036
|
registerOnTouched(fn: () => void): void;
|
|
9023
9037
|
setDisabledState(isDisabled: boolean): void;
|
|
9024
9038
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiSwitchCard, never>;
|
|
9025
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitchCard, "sui-switch-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeLabel": { "alias": "badgeLabel"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, ["[sui-switch-card-leading]"
|
|
9039
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiSwitchCard, "sui-switch-card", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "sublabel": { "alias": "sublabel"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "emoji": { "alias": "emoji"; "required": false; "isSignal": true; }; "imageUrl": { "alias": "imageUrl"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeLabel": { "alias": "badgeLabel"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, ["[sui-switch-card-leading]"], true, never>;
|
|
9026
9040
|
}
|
|
9027
9041
|
|
|
9028
9042
|
/**
|
|
@@ -10292,7 +10306,7 @@ declare class SuiTimePicker implements ControlValueAccessor {
|
|
|
10292
10306
|
readonly error: _angular_core.InputSignal<boolean>;
|
|
10293
10307
|
readonly placeholder: _angular_core.InputSignal<string>;
|
|
10294
10308
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
10295
|
-
readonly size: _angular_core.InputSignal<"
|
|
10309
|
+
readonly size: _angular_core.InputSignal<"medium" | "small">;
|
|
10296
10310
|
/** Formato de display: '12h' (AM/PM) o '24h'. */
|
|
10297
10311
|
readonly format: _angular_core.InputSignal<SuiTimeFormat>;
|
|
10298
10312
|
/** Incremento de minutos de la lista (1, 5, 15, ...). Default 5. */
|