@kaufmann-lab/ui 0.1.13 → 0.1.15
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/fesm2022/kaufmann-lab-ui.mjs +333 -192
- package/fesm2022/kaufmann-lab-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/types/kaufmann-lab-ui.d.ts +103 -5
package/package.json
CHANGED
|
@@ -31,7 +31,7 @@ import { ControlValueAccessor } from '@angular/forms';
|
|
|
31
31
|
* de vehículos; reusarlo para "fijar" generaría ambigüedad con los markers
|
|
32
32
|
* de mapa.
|
|
33
33
|
*/
|
|
34
|
-
type IconName = 'activity' | 'alert-circle' | 'alert-octagon' | 'alert-triangle' | 'award' | 'bar-chart' | 'bell' | 'bus' | 'calculator' | 'calendar' | 'car' | 'cart' | 'check' | 'check-circle' | 'check-square' | 'chevron-down' | 'chevron-left' | 'chevron-left-bar' | 'chevron-right' | 'clipboard' | 'clock' | 'credit-card' | 'crosshair' | 'download' | 'edit' | 'external-link' | 'eye' | 'eye-off' | 'file' | 'filter' | 'gauge' | 'gift' | 'grid' | 'history' | 'home' | 'inbox' | 'layers' | 'list' | 'log-out' | 'map' | 'map-pin' | 'maximize' | 'menu' | 'message-circle' | 'mic' | 'mic-off' | 'minimize' | 'minus' | 'monitor' | 'more-vertical' | 'navigation' | 'pause' | 'phone' | 'pin' | 'play' | 'plus' | 'search' | 'settings' | 'shield-check' | 'sort' | 'star' | 'ticket' | 'tool' | 'trash' | 'truck' | 'upload-cloud' | 'user' | 'user-search' | 'video' | 'x' | 'zap';
|
|
34
|
+
type IconName = 'activity' | 'alert-circle' | 'alert-octagon' | 'alert-triangle' | 'award' | 'bar-chart' | 'bell' | 'bus' | 'calculator' | 'calendar' | 'car' | 'cart' | 'check' | 'check-circle' | 'check-square' | 'chevron-down' | 'chevron-left' | 'chevron-left-bar' | 'chevron-right' | 'clipboard' | 'clock' | 'credit-card' | 'crosshair' | 'download' | 'edit' | 'external-link' | 'eye' | 'eye-off' | 'file' | 'filter' | 'gauge' | 'gift' | 'grid' | 'history' | 'home' | 'inbox' | 'layers' | 'list' | 'log-out' | 'mail' | 'map' | 'map-pin' | 'maximize' | 'menu' | 'message-circle' | 'mic' | 'mic-off' | 'minimize' | 'minus' | 'monitor' | 'more-vertical' | 'navigation' | 'pause' | 'phone' | 'pin' | 'play' | 'plus' | 'search' | 'settings' | 'shield-check' | 'sort' | 'star' | 'ticket' | 'tool' | 'trash' | 'truck' | 'upload-cloud' | 'user' | 'user-search' | 'video' | 'x' | 'zap';
|
|
35
35
|
|
|
36
36
|
type IconSize = 'sm' | 'md' | 'lg';
|
|
37
37
|
/** Ángulos de rotación soportados por `rotate` — cubre los casos reales del
|
|
@@ -724,6 +724,39 @@ declare class CompanySelector {
|
|
|
724
724
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CompanySelector, "kf-company-selector", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "companies": { "alias": "companies"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
725
725
|
}
|
|
726
726
|
|
|
727
|
+
/**
|
|
728
|
+
* Popover de "Datos de contacto" de una persona (asesor, ejecutivo — nombre
|
|
729
|
+
* genérico a propósito, sin lógica de negocio de ninguna pantalla concreta
|
|
730
|
+
* adentro). Cada canal (`whatsapp`/`phone`/`email`) se muestra SOLO si
|
|
731
|
+
* viene con dato — nunca los 3 fijos — y si ninguno viene, un estado vacío
|
|
732
|
+
* explícito en vez de un panel a medio llenar. Mismo criterio que ya
|
|
733
|
+
* resolvía `sitio-privado-one-way-frontend` (repo hermano de Chile) para
|
|
734
|
+
* el asesor de taller, ahora como pieza compartida del design system.
|
|
735
|
+
*
|
|
736
|
+
* <kf-contact-popover
|
|
737
|
+
* [name]="advisor.name"
|
|
738
|
+
* [whatsapp]="advisor.whatsapp"
|
|
739
|
+
* [phone]="advisor.phone"
|
|
740
|
+
* [email]="advisor.email"
|
|
741
|
+
* />
|
|
742
|
+
*/
|
|
743
|
+
declare class ContactPopover {
|
|
744
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
745
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
746
|
+
readonly whatsapp: _angular_core.InputSignal<string | null>;
|
|
747
|
+
readonly phone: _angular_core.InputSignal<string | null>;
|
|
748
|
+
readonly email: _angular_core.InputSignal<string | null>;
|
|
749
|
+
protected readonly open: _angular_core.WritableSignal<boolean>;
|
|
750
|
+
protected readonly whatsappHref: _angular_core.Signal<string | null>;
|
|
751
|
+
protected readonly phoneHref: _angular_core.Signal<string | null>;
|
|
752
|
+
protected readonly emailHref: _angular_core.Signal<string | null>;
|
|
753
|
+
protected readonly hasContactMethods: _angular_core.Signal<boolean>;
|
|
754
|
+
protected onToggle(): void;
|
|
755
|
+
protected onClose(): void;
|
|
756
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ContactPopover, never>;
|
|
757
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ContactPopover, "kf-contact-popover", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "whatsapp": { "alias": "whatsapp"; "required": false; "isSignal": true; }; "phone": { "alias": "phone"; "required": false; "isSignal": true; }; "email": { "alias": "email"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
758
|
+
}
|
|
759
|
+
|
|
727
760
|
/**
|
|
728
761
|
* Marcador genérico para contenido aún por definir (página 38) — comunica
|
|
729
762
|
* "contenido disponible para uso" sin parecer un error, a diferencia de
|
|
@@ -1380,8 +1413,15 @@ declare class DropdownItem {
|
|
|
1380
1413
|
readonly tone: _angular_core.InputSignal<DropdownItemTone>;
|
|
1381
1414
|
/** Ícono opcional al inicio de la fila. */
|
|
1382
1415
|
readonly icon: _angular_core.InputSignal<IconName | undefined>;
|
|
1416
|
+
/**
|
|
1417
|
+
* Deshabilita el ítem (ej. una acción cuyo endpoint todavía no existe,
|
|
1418
|
+
* caso real de "Factura" en `kf-row-actions` de Taller). Default `false`
|
|
1419
|
+
* a propósito — ningún consumidor existente (ej. el menú de sesión del
|
|
1420
|
+
* Shell) pasa esta prop hoy, así que no cambia su comportamiento.
|
|
1421
|
+
*/
|
|
1422
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
1383
1423
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DropdownItem, never>;
|
|
1384
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItem, "kf-dropdown-item", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1424
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DropdownItem, "kf-dropdown-item", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
1385
1425
|
}
|
|
1386
1426
|
|
|
1387
1427
|
type DropdownPanelVariant = 'solid' | 'dark';
|
|
@@ -2885,6 +2925,11 @@ declare class Modal {
|
|
|
2885
2925
|
readonly open: _angular_core.ModelSignal<boolean>;
|
|
2886
2926
|
/** Permite cerrar con el botón, `Escape` o clic en el backdrop. */
|
|
2887
2927
|
readonly dismissible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2928
|
+
/** Ancho por defecto: `480px` (sin pasar nada). Un modal con contenido
|
|
2929
|
+
* tabular/ancho (ej. una lista de varios campos por fila) puede pedir
|
|
2930
|
+
* más, ej. `width="720px"` — sigue topeado por `100vw` en pantallas
|
|
2931
|
+
* angostas, mismo `min()` de siempre. */
|
|
2932
|
+
readonly width: _angular_core.InputSignal<string | null>;
|
|
2888
2933
|
protected readonly titleId: string;
|
|
2889
2934
|
private readonly dialog;
|
|
2890
2935
|
private readonly document;
|
|
@@ -2903,7 +2948,7 @@ declare class Modal {
|
|
|
2903
2948
|
*/
|
|
2904
2949
|
protected onHostClick(event: MouseEvent): void;
|
|
2905
2950
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Modal, never>;
|
|
2906
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Modal, "kf-modal", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*", "[footer]"], true, never>;
|
|
2951
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Modal, "kf-modal", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "dismissible": { "alias": "dismissible"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; }, { "open": "openChange"; }, never, ["*", "[footer]"], true, never>;
|
|
2907
2952
|
}
|
|
2908
2953
|
|
|
2909
2954
|
/** Color de la franja izquierda y del fondo. */
|
|
@@ -3510,6 +3555,59 @@ declare class ReserveBlock {
|
|
|
3510
3555
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReserveBlock, "kf-reserve-block", never, { "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "actionLabel": { "alias": "actionLabel"; "required": false; "isSignal": true; }; "actionHref": { "alias": "actionHref"; "required": false; "isSignal": true; }; "grow": { "alias": "grow"; "required": false; "isSignal": true; }; }, {}, never, ["[actions]"], true, never>;
|
|
3511
3556
|
}
|
|
3512
3557
|
|
|
3558
|
+
type RowActionKind = 'link' | 'button';
|
|
3559
|
+
/**
|
|
3560
|
+
* Una acción de fila — mismo shape que ya usaba `WorkshopRowAction` en
|
|
3561
|
+
* `web-portal-latam-frontend` antes de este componente (Taller, tab
|
|
3562
|
+
* "Trabajos terminados"), ahora compartido: `kind: 'link'` navega (necesita
|
|
3563
|
+
* `href`, `onClick` se ignora), `kind: 'button'` dispara `onClick` en la
|
|
3564
|
+
* pantalla actual. `disabled` aplica a ambos — un link sin `href` (o
|
|
3565
|
+
* explícitamente `disabled`) se renderiza inerte en vez de clickeable, en
|
|
3566
|
+
* vez de omitirse del todo: el consumidor decide que la acción EXISTE pero
|
|
3567
|
+
* no está disponible todavía (ej. "Factura" mientras no exista el endpoint
|
|
3568
|
+
* de descarga).
|
|
3569
|
+
*/
|
|
3570
|
+
interface RowAction {
|
|
3571
|
+
readonly kind: RowActionKind;
|
|
3572
|
+
readonly icon: IconName;
|
|
3573
|
+
readonly label: string;
|
|
3574
|
+
readonly href?: string | null;
|
|
3575
|
+
readonly disabled?: boolean;
|
|
3576
|
+
readonly onClick?: () => void;
|
|
3577
|
+
}
|
|
3578
|
+
type RowActionsMode = 'auto' | 'inline' | 'menu';
|
|
3579
|
+
/**
|
|
3580
|
+
* Columna "Acciones" de cualquier tabla del ecosistema. Decide su propia
|
|
3581
|
+
* forma según cuántas acciones recibe — no hace falta que cada tabla elija
|
|
3582
|
+
* a mano entre "botones sueltos" y "menú":
|
|
3583
|
+
*
|
|
3584
|
+
* - `inline` (`actions().length <= inlineLimit()`, default 2): un
|
|
3585
|
+
* ícono-botón de 32px por acción, sin texto — el `label` vive en un
|
|
3586
|
+
* `kfTooltip`. Todas las acciones quedan visibles sin clic extra.
|
|
3587
|
+
* - `menu` (más de `inlineLimit()`): un único botón "kebab" que abre un
|
|
3588
|
+
* `kf-dropdown-panel` con una fila por acción.
|
|
3589
|
+
*
|
|
3590
|
+
* `mode` fuerza uno de los dos modos sin importar cuántas acciones haya
|
|
3591
|
+
* (ej. una tabla que prefiere el kebab siempre, aunque tenga una sola
|
|
3592
|
+
* acción, por consistencia visual con otra columna).
|
|
3593
|
+
*
|
|
3594
|
+
* <kf-row-actions [actions]="rowActions(row)" />
|
|
3595
|
+
* <kf-row-actions [actions]="rowActions(row)" mode="menu" />
|
|
3596
|
+
*/
|
|
3597
|
+
declare class RowActions {
|
|
3598
|
+
readonly actions: _angular_core.InputSignal<readonly RowAction[]>;
|
|
3599
|
+
readonly mode: _angular_core.InputSignal<RowActionsMode>;
|
|
3600
|
+
/** Desde cuántas acciones el modo `auto` pasa de `inline` a `menu`. */
|
|
3601
|
+
readonly inlineLimit: _angular_core.InputSignal<number>;
|
|
3602
|
+
protected readonly menuOpen: _angular_core.WritableSignal<boolean>;
|
|
3603
|
+
protected readonly effectiveMode: _angular_core.Signal<"menu" | "inline">;
|
|
3604
|
+
protected onToggleMenu(): void;
|
|
3605
|
+
protected onButtonAction(action: RowAction): void;
|
|
3606
|
+
protected onMenuLinkClick(): void;
|
|
3607
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RowActions, never>;
|
|
3608
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RowActions, "kf-row-actions", never, { "actions": { "alias": "actions"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "inlineLimit": { "alias": "inlineLimit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3609
|
+
}
|
|
3610
|
+
|
|
3513
3611
|
/**
|
|
3514
3612
|
* Título de sub-sección con chip de ícono, pensado para anidarse dentro de
|
|
3515
3613
|
* cards o paneles (a diferencia de `PageHeader`, que encabeza una página
|
|
@@ -4518,5 +4616,5 @@ declare class ViewToggle {
|
|
|
4518
4616
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ViewToggle, "kf-view-toggle", never, { "view": { "alias": "view"; "required": true; "isSignal": true; }; }, { "viewChange": "viewChange"; }, never, never, true, never>;
|
|
4519
4617
|
}
|
|
4520
4618
|
|
|
4521
|
-
export { ActionTile, AdminBadge, Alert, AlertRow, AuthLayout, AuthLayoutSso, Avatar, Badge, Breadcrumb, BucketProgress, Button, Card, Carousel, CarouselSlide, Checkbox, Chip, Collapsible, CompanySelector, ContentSlot, ContentState, ContentViewer, DEFAULT_PAGE_SIZE_OPTIONS, DataTable, Divider, DocumentRow, Drawer, DrawerLogout, DrawerSession, Dropdown, DropdownItem, DropdownPanel, EmptyState, EventTimeline, FeatureCard, Field, FieldLabel, Filter, FilterChips, FolderTabs, FolderTabsPanel, Footer, FormatInputDirective, Icon, Input, JourneyStepper, Link, MAP_CONFIG, MapControls, MapView, MetricCard, MobileFooter, MobileHeader, Modal, MultiSelect, NoteBlock, PageHeader, Pagination, Panel, PortalHeader, Progress, PulseDot, QuotePicker, ReserveBlock, STYLE_BY_THEME, SectionHeader, SectionNav, SectionNavItem, SectionNavSubsection, Segmented, Select, SelectableCardGroup, SidebarShell, Skeleton, Spinner, SsoButton, StatCard, StatTile, StatusPill, THEME_LABEL, THEME_ORDER, Tabs, Text, Textarea, TileGrid, ToastHost, ToastService, TooltipDirective, VehicleHeader, ViewToggle, dataTableViewSignal, formatChileanRut, formatClockTime, formatCurrency, formatNumber, isValidChileanRut, matchMediaSignal, parseCurrency, parseNumber, provideMapConfig, sanitizeDocumentId };
|
|
4522
|
-
export type { AlertRowTone, AlertTone, AuthLayoutBackground, BreadcrumbItem, BucketProgressItem, CompanySelectorMeta, ContentStateKind, ContentStateLoad, ContentViewerType, DataTableCardRole, DataTableColumn, DataTableDensity, DataTableSort, DataTableView, DividerOrientation, DocumentRowTone, DrawerSide, DropdownItemTone, DropdownPanelVariant, EventTimelineItem, EventTimelineTone, FilterFieldChange, FilterFieldConfig, FilterFieldType, FilterValue, FolderTabOption, FooterLink, FormatCurrencyOptions, FormatNumberOptions, IconName, IconRotation, IconSize, JourneyStep, JourneyStepStatus, JourneyStepperColorScheme, JourneyStepperSurface, LinkVariant, MapConfig, MapControlKind, MapLatLng, MapMarker, MapMarkerTone, MapPopupAction, MapSize, MapTheme, MapVariant, MultiSelectOption, NoteBlockTone, PageHeaderTitleSize, PaginationItem, PortalHeaderAdminAction, PortalHeaderNavItem, ProgressTone, QuotePickerChip, QuotePickerSortOption, SectionNavSubsectionData, SegmentedOption, SelectableCardOption, SidebarNavItemData, SkeletonVariant, SpinnerSize, SsoProvider, StatCardTone, StatTileTone, StatTileVariant, TabOption, TextAs, TextTone, TextVariant, ToastAction, ToastOptions, ToastPromiseMessages, ToastState, ToastTone, TooltipPosition, VehicleHeaderStatus, ViewToggleOption };
|
|
4619
|
+
export { ActionTile, AdminBadge, Alert, AlertRow, AuthLayout, AuthLayoutSso, Avatar, Badge, Breadcrumb, BucketProgress, Button, Card, Carousel, CarouselSlide, Checkbox, Chip, Collapsible, CompanySelector, ContactPopover, ContentSlot, ContentState, ContentViewer, DEFAULT_PAGE_SIZE_OPTIONS, DataTable, Divider, DocumentRow, Drawer, DrawerLogout, DrawerSession, Dropdown, DropdownItem, DropdownPanel, EmptyState, EventTimeline, FeatureCard, Field, FieldLabel, Filter, FilterChips, FolderTabs, FolderTabsPanel, Footer, FormatInputDirective, Icon, Input, JourneyStepper, Link, MAP_CONFIG, MapControls, MapView, MetricCard, MobileFooter, MobileHeader, Modal, MultiSelect, NoteBlock, PageHeader, Pagination, Panel, PortalHeader, Progress, PulseDot, QuotePicker, ReserveBlock, RowActions, STYLE_BY_THEME, SectionHeader, SectionNav, SectionNavItem, SectionNavSubsection, Segmented, Select, SelectableCardGroup, SidebarShell, Skeleton, Spinner, SsoButton, StatCard, StatTile, StatusPill, THEME_LABEL, THEME_ORDER, Tabs, Text, Textarea, TileGrid, ToastHost, ToastService, TooltipDirective, VehicleHeader, ViewToggle, dataTableViewSignal, formatChileanRut, formatClockTime, formatCurrency, formatNumber, isValidChileanRut, matchMediaSignal, parseCurrency, parseNumber, provideMapConfig, sanitizeDocumentId };
|
|
4620
|
+
export type { AlertRowTone, AlertTone, AuthLayoutBackground, BreadcrumbItem, BucketProgressItem, CompanySelectorMeta, ContentStateKind, ContentStateLoad, ContentViewerType, DataTableCardRole, DataTableColumn, DataTableDensity, DataTableSort, DataTableView, DividerOrientation, DocumentRowTone, DrawerSide, DropdownItemTone, DropdownPanelVariant, EventTimelineItem, EventTimelineTone, FilterFieldChange, FilterFieldConfig, FilterFieldType, FilterValue, FolderTabOption, FooterLink, FormatCurrencyOptions, FormatNumberOptions, IconName, IconRotation, IconSize, JourneyStep, JourneyStepStatus, JourneyStepperColorScheme, JourneyStepperSurface, LinkVariant, MapConfig, MapControlKind, MapLatLng, MapMarker, MapMarkerTone, MapPopupAction, MapSize, MapTheme, MapVariant, MultiSelectOption, NoteBlockTone, PageHeaderTitleSize, PaginationItem, PortalHeaderAdminAction, PortalHeaderNavItem, ProgressTone, QuotePickerChip, QuotePickerSortOption, RowAction, RowActionKind, RowActionsMode, SectionNavSubsectionData, SegmentedOption, SelectableCardOption, SidebarNavItemData, SkeletonVariant, SpinnerSize, SsoProvider, StatCardTone, StatTileTone, StatTileVariant, TabOption, TextAs, TextTone, TextVariant, ToastAction, ToastOptions, ToastPromiseMessages, ToastState, ToastTone, TooltipPosition, VehicleHeaderStatus, ViewToggleOption };
|