@ajuarezso/sui-design-system 0.2.0 → 0.2.1
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.1",
|
|
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"
|
|
@@ -1306,7 +1306,7 @@ type SuiBrandLogoSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
|
1306
1306
|
* ariaLabel="Síguenos en GitHub" />
|
|
1307
1307
|
*/
|
|
1308
1308
|
declare class SuiBrandLogo {
|
|
1309
|
-
readonly company: _angular_core.InputSignal<"
|
|
1309
|
+
readonly company: _angular_core.InputSignal<"apple" | "x-twitter" | "google" | "facebook" | "linkedin" | "github" | "dropbox" | "adobe" | "amazon" | "bitcoin" | "discord" | "figma" | "framer" | "instagram" | "microsoft" | "netflix" | "notion" | "paypal" | "pinterest" | "slack" | "spotify" | "stripe" | "telegram" | "twitch" | "webflow" | "whatsapp" | "wise" | "youtube">;
|
|
1310
1310
|
readonly variant: _angular_core.InputSignal<SuiBrandLogoStyle>;
|
|
1311
1311
|
readonly size: _angular_core.InputSignal<SuiBrandLogoSize>;
|
|
1312
1312
|
readonly href: _angular_core.InputSignal<string | null>;
|
|
@@ -1527,7 +1527,7 @@ declare class SuiButtonGroupItem {
|
|
|
1527
1527
|
/** aria-label para icon-only buttons */
|
|
1528
1528
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
1529
1529
|
/** Estado del data-attribute para CSS scoping */
|
|
1530
|
-
readonly state: _angular_core.Signal<"
|
|
1530
|
+
readonly state: _angular_core.Signal<"disabled" | "default" | "active">;
|
|
1531
1531
|
/** True cuando solo tiene icon (left o right) sin label */
|
|
1532
1532
|
readonly onlyIcon: _angular_core.Signal<boolean>;
|
|
1533
1533
|
/**
|
|
@@ -2235,7 +2235,7 @@ declare class SuiColorDot {
|
|
|
2235
2235
|
* - `selected` → dot 12×12 + ring 2px.
|
|
2236
2236
|
* - `disabled` → dot gris pálido, sin pointer events.
|
|
2237
2237
|
*/
|
|
2238
|
-
readonly state: _angular_core.InputSignal<"
|
|
2238
|
+
readonly state: _angular_core.InputSignal<"disabled" | "default" | "hover" | "selected">;
|
|
2239
2239
|
/** aria-label override. */
|
|
2240
2240
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
2241
2241
|
readonly clicked: _angular_core.OutputEmitterRef<void>;
|
|
@@ -3172,7 +3172,7 @@ declare class SuiContentCard {
|
|
|
3172
3172
|
/** Logo de empresa para type=company (mini-avatar bottom-right del sui-avatar). */
|
|
3173
3173
|
readonly companyLogoSrc: _angular_core.InputSignal<string | null>;
|
|
3174
3174
|
/** Marca para type=brand / card-provider. */
|
|
3175
|
-
readonly brand: _angular_core.InputSignal<"
|
|
3175
|
+
readonly brand: _angular_core.InputSignal<"apple" | "x-twitter" | "google" | "facebook" | "linkedin" | "github" | "dropbox" | "adobe" | "amazon" | "bitcoin" | "discord" | "figma" | "framer" | "instagram" | "microsoft" | "netflix" | "notion" | "paypal" | "pinterest" | "slack" | "spotify" | "stripe" | "telegram" | "twitch" | "webflow" | "whatsapp" | "wise" | "youtube" | null>;
|
|
3176
3176
|
/** Mostrar el botón X de dismiss. Default true. */
|
|
3177
3177
|
readonly dismissible: _angular_core.InputSignal<boolean>;
|
|
3178
3178
|
/** aria-label del botón X. */
|
|
@@ -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
|
*
|
|
@@ -4927,13 +4927,13 @@ 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<"error" | "
|
|
4930
|
+
protected readonly state: _angular_core.Signal<"error" | "disabled" | "default" | "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>;
|
|
4934
4934
|
/** Icon size px. Figma verified = 24 (medium). small/large/xlarge escalan +4
|
|
4935
4935
|
* (small 20 → medium 24 → large 28 → xlarge 32) — extensión de proyecto. */
|
|
4936
|
-
protected readonly iconSize: _angular_core.Signal<
|
|
4936
|
+
protected readonly iconSize: _angular_core.Signal<24 | 20 | 32 | 28>;
|
|
4937
4937
|
onClick(): void;
|
|
4938
4938
|
/** Browse File button — abre el picker. stopPropagation evita doble-open
|
|
4939
4939
|
* (el host también es clickeable). */
|
|
@@ -5591,7 +5591,7 @@ declare class SuiImageUpload {
|
|
|
5591
5591
|
* (matchea el escalado del contenedor 32→40 en SCSS). */
|
|
5592
5592
|
protected readonly iconSize: _angular_core.Signal<20 | 16>;
|
|
5593
5593
|
protected readonly hasSrc: _angular_core.Signal<boolean>;
|
|
5594
|
-
protected readonly state: _angular_core.Signal<"
|
|
5594
|
+
protected readonly state: _angular_core.Signal<"disabled" | "filled" | "dragover" | "empty">;
|
|
5595
5595
|
protected readonly resolvedTitle: _angular_core.Signal<string>;
|
|
5596
5596
|
protected readonly resolvedSubtitle: _angular_core.Signal<string>;
|
|
5597
5597
|
onHostClick(): void;
|
|
@@ -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<"button" | "
|
|
6982
|
+
readonly type: _angular_core.InputSignal<"button" | "basic" | "file" | "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). */
|
|
@@ -7631,7 +7631,7 @@ declare class SuiRadioCard implements ControlValueAccessor {
|
|
|
7631
7631
|
readonly size: _angular_core.InputSignal<SuiRadioSize>;
|
|
7632
7632
|
/** Lado en px del radio según size: medium 20 · large 24 · xlarge 28. Los
|
|
7633
7633
|
* insets internos (bg/box) son % → escalan solos. */
|
|
7634
|
-
readonly radioPx: _angular_core.Signal<
|
|
7634
|
+
readonly radioPx: _angular_core.Signal<24 | 20 | 28>;
|
|
7635
7635
|
/** Valor del radio (requerido para uso en grupo). */
|
|
7636
7636
|
readonly value: _angular_core.InputSignal<string>;
|
|
7637
7637
|
/** Título principal del card (label de la fila Title). */
|
|
@@ -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>;
|
|
@@ -8679,7 +8691,7 @@ declare class SuiStatusBadge {
|
|
|
8679
8691
|
*/
|
|
8680
8692
|
readonly withDot: _angular_core.InputSignal<boolean>;
|
|
8681
8693
|
/** Icono Remix mapeado al status. Solo se usa cuando withDot=false. */
|
|
8682
|
-
readonly iconName: _angular_core.Signal<"checkbox-circle-fill" | "alert-fill" | "error-warning-fill" | "
|
|
8694
|
+
readonly iconName: _angular_core.Signal<"information-fill" | "checkbox-circle-fill" | "alert-fill" | "error-warning-fill" | "forbid-fill">;
|
|
8683
8695
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SuiStatusBadge, never>;
|
|
8684
8696
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SuiStatusBadge, "sui-status-badge", never, { "status": { "alias": "status"; "required": false; "isSignal": true; }; "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "withDot": { "alias": "withDot"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
8685
8697
|
}
|
|
@@ -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
|
/**
|