@moeve-ui/ui 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/dist/index.d.mts CHANGED
@@ -157,6 +157,28 @@ interface CardProps extends HTMLAttributes<HTMLDivElement> {
157
157
  */
158
158
  declare function Card({ children, className, noPadding, ...rest }: CardProps): react.JSX.Element;
159
159
 
160
+ interface LogoProps {
161
+ /** Primer segmento del wordmark en el color de acento (ej. "RED" de "Redisplay") - opcional, se omite si la marca no tiene ese wordplay (ej. "Fluxer"). */
162
+ accent?: string;
163
+ /** Resto del wordmark, o el nombre completo si `accent` se omite. */
164
+ text: string;
165
+ /** Clase de color para `accent` - default pensado para fondos claros. */
166
+ accentClassName?: string;
167
+ /** Clase de color para `text` - default pensado para fondos claros; pasar algo como "text-white" sobre fondos oscuros (ej. el Sidebar). */
168
+ textClassName?: string;
169
+ className?: string;
170
+ }
171
+ /**
172
+ * Wordmark en negrita itálica, todo mayúsculas, tracking cerrado - el
173
+ * mismo lenguaje que usan logotipos tipo "marca deportiva/energética"
174
+ * (ver referencia visual del pedido original). Texto real, no un SVG
175
+ * estático: se mantiene nítido a cualquier tamaño y hereda el sistema de
176
+ * color de marca (brand.primary, ya dinámico por marca vía CSS custom
177
+ * properties en las apps que lo consumen) en vez de tener que exportar
178
+ * un asset distinto por marca.
179
+ */
180
+ declare function Logo({ accent, text, accentClassName, textClassName, className }: LogoProps): react.JSX.Element;
181
+
160
182
  interface ProgressBarProps {
161
183
  /** 0 to 100 */
162
184
  value: number;
@@ -342,6 +364,15 @@ interface SelectableCardProps {
342
364
  icon?: ReactNode;
343
365
  title: string;
344
366
  subtitle?: string;
367
+ /**
368
+ * Optional visual header (a map, an illustration, anything) rendered in a
369
+ * fixed-height rounded-top slot above the title - switches the card from
370
+ * the default horizontal "icon + text" row into a vertical "listing card"
371
+ * layout (media on top, text below), the same shape a photo-card grid
372
+ * needs. The caller owns what goes in it - this component has no opinion
373
+ * on images vs. maps vs. anything else.
374
+ */
375
+ media?: ReactNode;
345
376
  selected?: boolean;
346
377
  onClick: () => void;
347
378
  className?: string;
@@ -352,7 +383,7 @@ interface SelectableCardProps {
352
383
  * "StationCard") - meant for any picker across the 3 apps (redisplay-web's
353
384
  * station picker today, any future list-of-options screen tomorrow).
354
385
  */
355
- declare function SelectableCard({ icon, title, subtitle, selected, onClick, className }: SelectableCardProps): react.JSX.Element;
386
+ declare function SelectableCard({ icon, title, subtitle, media, selected, onClick, className }: SelectableCardProps): react.JSX.Element;
356
387
 
357
388
  interface FileDropzoneProps {
358
389
  accept?: string;
@@ -387,7 +418,8 @@ interface SidebarUser {
387
418
  role: string;
388
419
  }
389
420
  interface SidebarProps {
390
- brandName?: string;
421
+ /** String simple o un nodo enriquecido (ej. <Logo/> con su wordmark de dos tonos) - ambos se renderizan tal cual junto al ícono. */
422
+ brandName?: ReactNode;
391
423
  stations: SidebarStation[];
392
424
  selectedStationId: string;
393
425
  onSelectStation: (stationId: string) => void;
@@ -443,4 +475,4 @@ interface ConfirmDialogProps {
443
475
  */
444
476
  declare function ConfirmDialog({ open, onClose, onConfirm, title, productLabel, description, currentPrice, newPrice, marginImpactLabel, volumeImpactLabel, confirming, }: ConfirmDialogProps): react.JSX.Element | null;
445
477
 
446
- export { ArrowDownIcon, ArrowUpIcon, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeTone, BoltIcon, Button, type ButtonProps, type ButtonVariant, CalendarIcon, Card, type CardProps, CheckCircleIcon, ChevronDownIcon, type ColorTokens, CompetitorRow, type CompetitorRowProps, type CompetitorTrend, ConfirmDialog, type ConfirmDialogProps, DecisionFactorRow, type DecisionFactorRowProps, FileDropzone, type FileDropzoneProps, FuelIcon, FuelPumpSolidIcon, LogOutIcon, MapPinIcon, MiniMapCard, type MiniMapCardProps, NavItem, type NavItemProps, PriceRangeSlider, type PriceRangeSliderProps, ProgressBar, type ProgressBarProps, RefreshIcon, type SegmentedTabOption, SegmentedTabs, type SegmentedTabsProps, SelectableCard, type SelectableCardProps, Sidebar, type SidebarNavItem, type SidebarProps, type SidebarStation, type SidebarUser, Snackbar, type SnackbarProps, type SnackbarTone, StatTile, type StatTileProps, TagIcon, TargetIcon, TopBar, type TopBarProps, TrendDownIcon, TrendUpIcon, TrendUpSolidIcon, UploadIcon, UserCircleIcon, WalletIcon, WalletSolidIcon, WeekdayPicker, type WeekdayPickerProps, XIcon, colors };
478
+ export { ArrowDownIcon, ArrowUpIcon, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeTone, BoltIcon, Button, type ButtonProps, type ButtonVariant, CalendarIcon, Card, type CardProps, CheckCircleIcon, ChevronDownIcon, type ColorTokens, CompetitorRow, type CompetitorRowProps, type CompetitorTrend, ConfirmDialog, type ConfirmDialogProps, DecisionFactorRow, type DecisionFactorRowProps, FileDropzone, type FileDropzoneProps, FuelIcon, FuelPumpSolidIcon, LogOutIcon, Logo, type LogoProps, MapPinIcon, MiniMapCard, type MiniMapCardProps, NavItem, type NavItemProps, PriceRangeSlider, type PriceRangeSliderProps, ProgressBar, type ProgressBarProps, RefreshIcon, type SegmentedTabOption, SegmentedTabs, type SegmentedTabsProps, SelectableCard, type SelectableCardProps, Sidebar, type SidebarNavItem, type SidebarProps, type SidebarStation, type SidebarUser, Snackbar, type SnackbarProps, type SnackbarTone, StatTile, type StatTileProps, TagIcon, TargetIcon, TopBar, type TopBarProps, TrendDownIcon, TrendUpIcon, TrendUpSolidIcon, UploadIcon, UserCircleIcon, WalletIcon, WalletSolidIcon, WeekdayPicker, type WeekdayPickerProps, XIcon, colors };
package/dist/index.d.ts CHANGED
@@ -157,6 +157,28 @@ interface CardProps extends HTMLAttributes<HTMLDivElement> {
157
157
  */
158
158
  declare function Card({ children, className, noPadding, ...rest }: CardProps): react.JSX.Element;
159
159
 
160
+ interface LogoProps {
161
+ /** Primer segmento del wordmark en el color de acento (ej. "RED" de "Redisplay") - opcional, se omite si la marca no tiene ese wordplay (ej. "Fluxer"). */
162
+ accent?: string;
163
+ /** Resto del wordmark, o el nombre completo si `accent` se omite. */
164
+ text: string;
165
+ /** Clase de color para `accent` - default pensado para fondos claros. */
166
+ accentClassName?: string;
167
+ /** Clase de color para `text` - default pensado para fondos claros; pasar algo como "text-white" sobre fondos oscuros (ej. el Sidebar). */
168
+ textClassName?: string;
169
+ className?: string;
170
+ }
171
+ /**
172
+ * Wordmark en negrita itálica, todo mayúsculas, tracking cerrado - el
173
+ * mismo lenguaje que usan logotipos tipo "marca deportiva/energética"
174
+ * (ver referencia visual del pedido original). Texto real, no un SVG
175
+ * estático: se mantiene nítido a cualquier tamaño y hereda el sistema de
176
+ * color de marca (brand.primary, ya dinámico por marca vía CSS custom
177
+ * properties en las apps que lo consumen) en vez de tener que exportar
178
+ * un asset distinto por marca.
179
+ */
180
+ declare function Logo({ accent, text, accentClassName, textClassName, className }: LogoProps): react.JSX.Element;
181
+
160
182
  interface ProgressBarProps {
161
183
  /** 0 to 100 */
162
184
  value: number;
@@ -342,6 +364,15 @@ interface SelectableCardProps {
342
364
  icon?: ReactNode;
343
365
  title: string;
344
366
  subtitle?: string;
367
+ /**
368
+ * Optional visual header (a map, an illustration, anything) rendered in a
369
+ * fixed-height rounded-top slot above the title - switches the card from
370
+ * the default horizontal "icon + text" row into a vertical "listing card"
371
+ * layout (media on top, text below), the same shape a photo-card grid
372
+ * needs. The caller owns what goes in it - this component has no opinion
373
+ * on images vs. maps vs. anything else.
374
+ */
375
+ media?: ReactNode;
345
376
  selected?: boolean;
346
377
  onClick: () => void;
347
378
  className?: string;
@@ -352,7 +383,7 @@ interface SelectableCardProps {
352
383
  * "StationCard") - meant for any picker across the 3 apps (redisplay-web's
353
384
  * station picker today, any future list-of-options screen tomorrow).
354
385
  */
355
- declare function SelectableCard({ icon, title, subtitle, selected, onClick, className }: SelectableCardProps): react.JSX.Element;
386
+ declare function SelectableCard({ icon, title, subtitle, media, selected, onClick, className }: SelectableCardProps): react.JSX.Element;
356
387
 
357
388
  interface FileDropzoneProps {
358
389
  accept?: string;
@@ -387,7 +418,8 @@ interface SidebarUser {
387
418
  role: string;
388
419
  }
389
420
  interface SidebarProps {
390
- brandName?: string;
421
+ /** String simple o un nodo enriquecido (ej. <Logo/> con su wordmark de dos tonos) - ambos se renderizan tal cual junto al ícono. */
422
+ brandName?: ReactNode;
391
423
  stations: SidebarStation[];
392
424
  selectedStationId: string;
393
425
  onSelectStation: (stationId: string) => void;
@@ -443,4 +475,4 @@ interface ConfirmDialogProps {
443
475
  */
444
476
  declare function ConfirmDialog({ open, onClose, onConfirm, title, productLabel, description, currentPrice, newPrice, marginImpactLabel, volumeImpactLabel, confirming, }: ConfirmDialogProps): react.JSX.Element | null;
445
477
 
446
- export { ArrowDownIcon, ArrowUpIcon, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeTone, BoltIcon, Button, type ButtonProps, type ButtonVariant, CalendarIcon, Card, type CardProps, CheckCircleIcon, ChevronDownIcon, type ColorTokens, CompetitorRow, type CompetitorRowProps, type CompetitorTrend, ConfirmDialog, type ConfirmDialogProps, DecisionFactorRow, type DecisionFactorRowProps, FileDropzone, type FileDropzoneProps, FuelIcon, FuelPumpSolidIcon, LogOutIcon, MapPinIcon, MiniMapCard, type MiniMapCardProps, NavItem, type NavItemProps, PriceRangeSlider, type PriceRangeSliderProps, ProgressBar, type ProgressBarProps, RefreshIcon, type SegmentedTabOption, SegmentedTabs, type SegmentedTabsProps, SelectableCard, type SelectableCardProps, Sidebar, type SidebarNavItem, type SidebarProps, type SidebarStation, type SidebarUser, Snackbar, type SnackbarProps, type SnackbarTone, StatTile, type StatTileProps, TagIcon, TargetIcon, TopBar, type TopBarProps, TrendDownIcon, TrendUpIcon, TrendUpSolidIcon, UploadIcon, UserCircleIcon, WalletIcon, WalletSolidIcon, WeekdayPicker, type WeekdayPickerProps, XIcon, colors };
478
+ export { ArrowDownIcon, ArrowUpIcon, Avatar, type AvatarProps, Badge, type BadgeProps, type BadgeTone, BoltIcon, Button, type ButtonProps, type ButtonVariant, CalendarIcon, Card, type CardProps, CheckCircleIcon, ChevronDownIcon, type ColorTokens, CompetitorRow, type CompetitorRowProps, type CompetitorTrend, ConfirmDialog, type ConfirmDialogProps, DecisionFactorRow, type DecisionFactorRowProps, FileDropzone, type FileDropzoneProps, FuelIcon, FuelPumpSolidIcon, LogOutIcon, Logo, type LogoProps, MapPinIcon, MiniMapCard, type MiniMapCardProps, NavItem, type NavItemProps, PriceRangeSlider, type PriceRangeSliderProps, ProgressBar, type ProgressBarProps, RefreshIcon, type SegmentedTabOption, SegmentedTabs, type SegmentedTabsProps, SelectableCard, type SelectableCardProps, Sidebar, type SidebarNavItem, type SidebarProps, type SidebarStation, type SidebarUser, Snackbar, type SnackbarProps, type SnackbarTone, StatTile, type StatTileProps, TagIcon, TargetIcon, TopBar, type TopBarProps, TrendDownIcon, TrendUpIcon, TrendUpSolidIcon, UploadIcon, UserCircleIcon, WalletIcon, WalletSolidIcon, WeekdayPicker, type WeekdayPickerProps, XIcon, colors };