@uxuissk/design-system 0.8.8 → 0.8.10

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.
@@ -125,7 +125,8 @@ export declare interface AdvancedDataTableProps<T = Record<string, any>> {
125
125
  export declare type AdvancedTableSize = "sm" | "md" | "lg";
126
126
 
127
127
  /**
128
- * Akita brand config — placeholder, theme TBD.
128
+ * Akita brand config — Cobalt Blue primary (#1769E2).
129
+ * logo / logoFull: inject from product repo (Brand=akita SVG files).
129
130
  */
130
131
  export declare const akitaBrandConfig: ProductBrandConfig;
131
132
 
@@ -242,18 +243,34 @@ export declare interface AppShellProps {
242
243
  notificationCount?: number;
243
244
  /** Notification click handler */
244
245
  onNotificationClick?: () => void;
246
+ /** App/product switcher click handler — shows grid icon in TopNavbar */
247
+ onAppSwitcherClick?: () => void;
245
248
  /** User click handler (profile menu, logout) */
246
249
  onUserClick?: () => void;
247
250
  /** Search click handler */
248
251
  onSearchClick?: () => void;
249
- /** Show search in TopNavbar */
252
+ /**
253
+ * Search display mode for TopNavbar.
254
+ * - "bar" — full search bar
255
+ * - "icon" — icon button only
256
+ * - "none" — hidden (default)
257
+ * @deprecated showSearch — use searchMode="bar" instead
258
+ */
259
+ searchMode?: "bar" | "icon" | "none";
260
+ /**
261
+ * @deprecated Use searchMode="bar" instead
262
+ */
250
263
  showSearch?: boolean;
264
+ /** Page title / system name shown in TopNavbar after logo. Default: hidden */
265
+ title?: string;
251
266
  /** App version string */
252
267
  version?: string;
253
268
  /** App version date */
254
269
  versionDate?: string;
255
270
  /** Whether content area has padding (default: true) */
256
271
  contentPadding?: boolean;
272
+ /** Utility items rendered at sidebar footer (e.g. Help, Settings) */
273
+ utilityItems?: SidebarItem[];
257
274
  /** Children — feature page content */
258
275
  children: default_2.ReactNode;
259
276
  /** Additional class name on root element */
@@ -1448,6 +1465,12 @@ export declare interface NumberInputProps {
1448
1465
 
1449
1466
  export declare type NumberInputSize = "sm" | "md" | "lg";
1450
1467
 
1468
+ /**
1469
+ * Oc2plus brand config — Sky-500 primary (same as Sellsuki default).
1470
+ * logo / logoFull: inject from product repo (Brand=oc2plus SVG files).
1471
+ */
1472
+ export declare const oc2plusBrandConfig: ProductBrandConfig;
1473
+
1451
1474
  export declare function OTPInput({ length, value, onChange, onComplete, disabled, error, size, label, masked, className, }: OTPInputProps): JSX.Element;
1452
1475
 
1453
1476
  export declare interface OTPInputProps {
@@ -1541,8 +1564,8 @@ export declare type PaginationSize = "sm" | "md" | "lg";
1541
1564
  export declare type PaginationVariant = "default" | "outlined" | "filled" | "minimal";
1542
1565
 
1543
1566
  /**
1544
- * Patona brand config — Orange-500 primary.
1545
- * Logo and workspaceSwitcher should be provided by the Patona product repo.
1567
+ * Patona brand config — Aerospace Orange primary (#EC5E2A).
1568
+ * logo / logoFull: inject from product repo (Brand=patona SVG files).
1546
1569
  */
1547
1570
  export declare const patonaBrandConfig: ProductBrandConfig;
1548
1571
 
@@ -1582,8 +1605,20 @@ export declare interface ProductBrandConfig {
1582
1605
  brand: {
1583
1606
  /** Brand/product name shown in sidebar header and nav title */
1584
1607
  name: string;
1585
- /** Logo component or image URL */
1608
+ /**
1609
+ * Icon-only logo (40×40px SVG/ReactNode or image URL string).
1610
+ * Used in collapsed sidebar state.
1611
+ * Falls back to name initial when not provided.
1612
+ */
1586
1613
  logo?: default_2.ReactNode;
1614
+ /**
1615
+ * Icon+Name logo (variable width × 40px height SVG/ReactNode).
1616
+ * Used in expanded sidebar and TopNavbar.
1617
+ * When provided, the brand name text is NOT rendered separately
1618
+ * (it is baked into the SVG).
1619
+ * Falls back to `logo` + name text when not provided.
1620
+ */
1621
+ logoFull?: default_2.ReactNode;
1587
1622
  /** CSS theme class or data-product value — used for token overrides */
1588
1623
  theme?: string;
1589
1624
  /** Optional workspace/shop switcher rendered after brand logo in TopNavbar */
@@ -1849,10 +1884,26 @@ export declare type SearchVariant = "default" | "outlined" | "filled";
1849
1884
 
1850
1885
  /**
1851
1886
  * Sellsuki brand config — Sky-500 primary, DB HeaventRounded font.
1852
- * Use this as the default for Sellsuki Admin product.
1887
+ *
1888
+ * To add logos, provide SVG components:
1889
+ * ```tsx
1890
+ * import SellsukiIcon from "@/assets/logos/sellsuki-icon.svg?react";
1891
+ * import SellsukiFull from "@/assets/logos/sellsuki-full.svg?react";
1892
+ *
1893
+ * const config = {
1894
+ * ...sellsukiBrandConfig,
1895
+ * brand: { ...sellsukiBrandConfig.brand, logo: <SellsukiIcon />, logoFull: <SellsukiFull /> },
1896
+ * };
1897
+ * ```
1853
1898
  */
1854
1899
  export declare const sellsukiBrandConfig: ProductBrandConfig;
1855
1900
 
1901
+ /**
1902
+ * SellsukiPay brand config — Sky-500 primary (same as Sellsuki default).
1903
+ * logo / logoFull: inject from product repo (Brand=sellsukipay SVG files).
1904
+ */
1905
+ export declare const sellsukiPayBrandConfig: ProductBrandConfig;
1906
+
1856
1907
  /**
1857
1908
  * Shell layout preferences that can be overridden per product.
1858
1909
  */
@@ -1898,11 +1949,14 @@ export declare interface ShellUser {
1898
1949
  }
1899
1950
 
1900
1951
  /**
1901
- * Shipmunk brand config — placeholder, theme TBD.
1952
+ * Shipmunk brand config — Sky-500 primary + Cyan secondary.
1953
+ * NOTE: Shipmunk only has an icon+name SVG (no icon-only variant).
1954
+ * Set `logoFull` to the icon+name SVG; collapsed sidebar will clip to icon area.
1955
+ * logo / logoFull: inject from product repo (Brand=shipmunk SVG files).
1902
1956
  */
1903
1957
  export declare const shipmunkBrandConfig: ProductBrandConfig;
1904
1958
 
1905
- export declare function Sidebar({ brand, accountSwitcher, groups, activeItem, onNavigate, collapsed, onCollapsedChange, showCollapseToggle, version, versionDate, width, className, }: SidebarProps): JSX.Element;
1959
+ export declare function Sidebar({ brand, accountSwitcher, groups, activeItem, onNavigate, collapsed, onCollapsedChange, showCollapseToggle, utilityItems, version, versionDate, width, className, }: SidebarProps): JSX.Element;
1906
1960
 
1907
1961
  export declare namespace Sidebar {
1908
1962
  var displayName: string;
@@ -1941,10 +1995,12 @@ export declare interface SidebarAccountSwitcherProps {
1941
1995
  }
1942
1996
 
1943
1997
  export declare interface SidebarBrand {
1944
- /** Brand name */
1998
+ /** Brand name (fallback text when no logo) */
1945
1999
  name: string;
1946
- /** Brand logo URL */
2000
+ /** Icon-only logo (40×40) — used in collapsed state */
1947
2001
  logo?: string;
2002
+ /** Icon+Name logo (variable width × 40px) — used in expanded state */
2003
+ logoFull?: default_2.ReactNode;
1948
2004
  }
1949
2005
 
1950
2006
  export declare interface SidebarGroup {
@@ -1978,15 +2034,20 @@ export declare interface SidebarProps {
1978
2034
  collapsed?: boolean;
1979
2035
  /** Toggle collapse callback */
1980
2036
  onCollapsedChange?: (collapsed: boolean) => void;
1981
- /** Show the footer collapse toggle button (default: true). Set false when collapse is controlled from TopNavbar */
2037
+ /** Show the footer collapse toggle button (default: false). Set true to show inline toggle */
1982
2038
  showCollapseToggle?: boolean;
1983
2039
  /** Account/Company/Branch switcher shown in header area */
1984
2040
  accountSwitcher?: SidebarAccountSwitcherProps;
2041
+ /**
2042
+ * Utility items (e.g. Help, Setting) — rendered at bottom of sidebar
2043
+ * above collapse toggle, separated by a divider from main nav groups.
2044
+ */
2045
+ utilityItems?: SidebarItem[];
1985
2046
  /** App version string e.g. "v1.4.0" */
1986
2047
  version?: string;
1987
2048
  /** Version date string e.g. "March 10, 2026" */
1988
2049
  versionDate?: string;
1989
- /** Sidebar width (default: 256px) */
2050
+ /** Sidebar width override (200–320px range; default: var(--shell-sidebar-width, 200px)) */
1990
2051
  width?: string;
1991
2052
  /** Additional class name */
1992
2053
  className?: string;
@@ -2342,17 +2403,19 @@ export declare interface TooltipProps {
2342
2403
  className?: string;
2343
2404
  }
2344
2405
 
2345
- export declare function TopNavbar({ brand, breadcrumbs, title, actions, user, height, showSearch, searchPlaceholder, onSearchClick, notificationCount, onNotificationClick, onMobileMenuClick, onSidebarToggle, onUserClick, onBreadcrumbClick, workspaceSwitcher, className, }: TopNavbarProps): JSX.Element;
2406
+ export declare function TopNavbar({ brand, breadcrumbs, title, actions, user, height, searchMode: searchModeProp, searchPlaceholder, onSearchClick, notificationCount, onNotificationClick, onMobileMenuClick, onSidebarToggle, onAppSwitcherClick, onUserClick, onBreadcrumbClick, workspaceSwitcher, showSearch, className, }: TopNavbarProps): JSX.Element;
2346
2407
 
2347
2408
  export declare namespace TopNavbar {
2348
2409
  var displayName: string;
2349
2410
  }
2350
2411
 
2351
2412
  export declare interface TopNavbarBrand {
2352
- /** Brand name */
2413
+ /** Brand name (fallback text when no logo) */
2353
2414
  name: string;
2354
- /** Logo URL or ReactNode */
2415
+ /** Icon-only logo (40×40) used as fallback when logoFull not provided */
2355
2416
  logo?: string | default_2.ReactNode;
2417
+ /** Icon+Name logo (variable width × 40px) — shown in navbar when provided */
2418
+ logoFull?: default_2.ReactNode;
2356
2419
  }
2357
2420
 
2358
2421
  export declare interface TopNavbarProps {
@@ -2360,7 +2423,7 @@ export declare interface TopNavbarProps {
2360
2423
  brand?: TopNavbarBrand;
2361
2424
  /** Breadcrumb items */
2362
2425
  breadcrumbs?: BreadcrumbItem_2[];
2363
- /** Page title displayed after brand (used for current page context) */
2426
+ /** Page title / system name shown after brand. Default: hidden */
2364
2427
  title?: string;
2365
2428
  /** Right-side action area */
2366
2429
  actions?: default_2.ReactNode;
@@ -2368,8 +2431,13 @@ export declare interface TopNavbarProps {
2368
2431
  user?: TopNavbarUser;
2369
2432
  /** Navbar height */
2370
2433
  height?: string;
2371
- /** Show search bar */
2372
- showSearch?: boolean;
2434
+ /**
2435
+ * Search display mode.
2436
+ * - "bar" — full search bar (default when showSearch=true for backward compat)
2437
+ * - "icon" — icon button only
2438
+ * - "none" — hidden (default)
2439
+ */
2440
+ searchMode?: "bar" | "icon" | "none";
2373
2441
  /** Search placeholder text */
2374
2442
  searchPlaceholder?: string;
2375
2443
  /** Search click handler */
@@ -2382,12 +2450,18 @@ export declare interface TopNavbarProps {
2382
2450
  onMobileMenuClick?: () => void;
2383
2451
  /** Sidebar toggle handler — shows burger icon (always visible) to collapse/expand sidebar */
2384
2452
  onSidebarToggle?: () => void;
2453
+ /** App/product switcher handler — shows 3×3 grid icon on right side */
2454
+ onAppSwitcherClick?: () => void;
2385
2455
  /** User click handler */
2386
2456
  onUserClick?: () => void;
2387
2457
  /** Breadcrumb click handler */
2388
2458
  onBreadcrumbClick?: (item: BreadcrumbItem_2, index: number) => void;
2389
2459
  /** Workspace/shop switcher rendered after brand logo — for multi-workspace products */
2390
2460
  workspaceSwitcher?: default_2.ReactNode;
2461
+ /**
2462
+ * @deprecated Use searchMode="bar" instead
2463
+ */
2464
+ showSearch?: boolean;
2391
2465
  /** Additional class name */
2392
2466
  className?: string;
2393
2467
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uxuissk/design-system",
3
- "version": "0.8.8",
3
+ "version": "0.8.10",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "workspaces": [