@homlista-devs/ui 1.6.2 → 1.6.3

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.css CHANGED
@@ -14,6 +14,7 @@
14
14
  --color-blue-500: oklch(62.3% 0.214 259.815);
15
15
  --color-purple-500: oklch(62.7% 0.265 303.9);
16
16
  --color-gray-50: oklch(98.5% 0.002 247.839);
17
+ --color-gray-100: oklch(96.7% 0.003 264.542);
17
18
  --color-gray-200: oklch(92.8% 0.006 264.531);
18
19
  --color-gray-300: oklch(87.2% 0.01 258.338);
19
20
  --color-gray-900: oklch(21% 0.034 264.665);
@@ -1808,6 +1809,13 @@
1808
1809
  }
1809
1810
  }
1810
1811
  }
1812
+ .hover\:bg-gray-100 {
1813
+ &:hover {
1814
+ @media (hover: hover) {
1815
+ background-color: var(--color-gray-100);
1816
+ }
1817
+ }
1818
+ }
1811
1819
  .hover\:bg-primary\/90 {
1812
1820
  &:hover {
1813
1821
  @media (hover: hover) {
@@ -1863,6 +1871,16 @@
1863
1871
  }
1864
1872
  }
1865
1873
  }
1874
+ .hover\:text-white\/80 {
1875
+ &:hover {
1876
+ @media (hover: hover) {
1877
+ color: color-mix(in srgb, #fff 80%, transparent);
1878
+ @supports (color: color-mix(in lab, red, red)) {
1879
+ color: color-mix(in oklab, var(--color-white) 80%, transparent);
1880
+ }
1881
+ }
1882
+ }
1883
+ }
1866
1884
  .hover\:text-zinc-600 {
1867
1885
  &:hover {
1868
1886
  @media (hover: hover) {
@@ -2,8 +2,8 @@
2
2
  * Header Widget
3
3
  * @module widgets/header
4
4
  *
5
- * Minimal pill-navigation header component for web applications.
6
- * Features centered pill-shaped navigation with dividers.
5
+ * Multi-variant header component for web applications.
6
+ * Supports minimal (pill navigation), modern (transparent navigation), and luxury (minimalist) variants.
7
7
  *
8
8
  * IMPORTANT: Always use Tailwind CSS standard classes instead of hardcoded values.
9
9
  *
@@ -11,16 +11,35 @@
11
11
  * ```tsx
12
12
  * import { Header } from '@homlista-devs/ui';
13
13
  *
14
+ * // Minimal variant (default)
14
15
  * <Header
16
+ * variant="minimal"
15
17
  * logo="BRAND NAME"
16
18
  * navigationItems={[
17
- * { label: "Home", href: "/" },
18
- * { label: "About", href: "/about" },
19
+ * { id: "home", label: "Home", href: "/" },
20
+ * { id: "about", label: "About", href: "/about" },
19
21
  * ]}
20
22
  * loginButtonText="Sign In"
21
23
  * />
24
+ *
25
+ * // Modern variant
26
+ * <Header
27
+ * variant="modern"
28
+ * logo="BRAND NAME"
29
+ * />
30
+ *
31
+ * // Luxury variant
32
+ * <Header
33
+ * variant="luxury"
34
+ * logo="YLSE SALGADO"
35
+ * navigationItems={[
36
+ * { id: "acerca", label: "ACERCA DE", href: "#acerca" },
37
+ * { id: "propiedades", label: "PROPIEDADES", href: "#propiedades" },
38
+ * ]}
39
+ * />
22
40
  * ```
23
41
  */
24
- export type { HeaderProps } from "./ui/header";
42
+ export type { HeaderModel, HeaderProps, HeaderVariant, NavigationItem, } from "./model";
43
+ export { createHeaderModel } from "./model";
25
44
  export { Header } from "./ui/header";
26
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/widgets/header/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/widgets/header/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,YAAY,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Header Widget - Model Creation
3
+ * @module widgets/header/model
4
+ */
5
+ import type { HeaderModel, HeaderProps } from "./types";
6
+ /**
7
+ * Creates a normalized header model with defaults applied
8
+ *
9
+ * @param props - Header configuration props
10
+ * @returns Normalized header model
11
+ */
12
+ export declare function createHeaderModel(props: Pick<HeaderProps, "variant" | "logo" | "navigationItems" | "loginButtonText" | "showMobileMenu">): HeaderModel;
13
+ //# sourceMappingURL=create-header-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-header-model.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/header/model/create-header-model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAChC,KAAK,EAAE,IAAI,CACV,WAAW,EACT,SAAS,GACT,MAAM,GACN,iBAAiB,GACjB,iBAAiB,GACjB,gBAAgB,CAClB,GACC,WAAW,CAQb"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Header Widget - Model Layer
3
+ * @module widgets/header/model
4
+ */
5
+ export { createHeaderModel } from "./create-header-model";
6
+ export type { HeaderModel, HeaderProps, HeaderVariant, NavigationItem, } from "./types";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/header/model/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,YAAY,EACX,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,GACd,MAAM,SAAS,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Header Widget - Type Definitions
3
+ * @module widgets/header/model/types
4
+ */
5
+ import type { ReactNode } from "react";
6
+ /**
7
+ * Navigation item configuration
8
+ */
9
+ export interface NavigationItem {
10
+ /** Unique identifier */
11
+ id: string;
12
+ /** Display label */
13
+ label: string;
14
+ /** Link URL */
15
+ href: string;
16
+ }
17
+ /**
18
+ * Template variant affecting layout and styling
19
+ */
20
+ export type HeaderVariant = "minimal" | "modern" | "luxury";
21
+ /**
22
+ * Header component props
23
+ */
24
+ export interface HeaderProps {
25
+ /** Template variant */
26
+ variant?: HeaderVariant;
27
+ /** Logo text or element */
28
+ logo?: ReactNode;
29
+ /** Navigation items array */
30
+ navigationItems?: NavigationItem[];
31
+ /** Optional login button text */
32
+ loginButtonText?: string;
33
+ /** Show mobile menu */
34
+ showMobileMenu?: boolean;
35
+ /** Custom className for header container */
36
+ className?: string;
37
+ /** Custom className for logo */
38
+ logoClassName?: string;
39
+ /** Custom className for navigation container */
40
+ navigationClassName?: string;
41
+ /** Custom className for navigation items */
42
+ navigationItemClassName?: string;
43
+ /** Custom className for login button */
44
+ loginButtonClassName?: string;
45
+ /** Custom className for mobile menu button */
46
+ mobileMenuButtonClassName?: string;
47
+ /** Element ID */
48
+ id?: string;
49
+ /** ARIA label */
50
+ "aria-label"?: string;
51
+ }
52
+ /**
53
+ * Normalized header model with defaults applied
54
+ */
55
+ export interface HeaderModel {
56
+ variant: HeaderVariant;
57
+ logo?: ReactNode;
58
+ navigationItems: NavigationItem[];
59
+ loginButtonText: string;
60
+ showMobileMenu: boolean;
61
+ }
62
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/header/model/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe;IACf,IAAI,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,uBAAuB;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;CACxB"}
@@ -1,52 +1,46 @@
1
1
  /**
2
- * Header - Pill Navigation
2
+ * Header - Multi-variant Navigation
3
3
  * @module widgets/header/ui
4
4
  *
5
- * Pixel-perfect implementation matching Figma template design
6
- * Features: Centered pill-shaped navigation with dividers
5
+ * Pixel-perfect implementation matching Figma template designs
6
+ * Variants: minimal (pill navigation), modern (transparent navigation), luxury (minimalist navigation)
7
7
  *
8
8
  * IMPORTANT: Always use Tailwind CSS standard classes instead of hardcoded values:
9
9
  * ❌ DON'T: px-[24px], text-[14px], bg-[#f4f4f5]
10
10
  * ✅ DO: px-6, text-sm, bg-zinc-100
11
11
  * This ensures consistency, theme customization, and maintainability.
12
12
  */
13
- export interface HeaderProps {
14
- /** Logo text or element */
15
- logo?: React.ReactNode;
16
- /** Navigation items array */
17
- navigationItems?: Array<{
18
- id: string;
19
- label: string;
20
- href: string;
21
- }>;
22
- /** Optional login button text */
23
- loginButtonText?: string;
24
- /** Show mobile menu */
25
- showMobileMenu?: boolean;
26
- /** Custom className for header container */
27
- className?: string;
28
- /** Custom className for logo */
29
- logoClassName?: string;
30
- /** Custom className for navigation container */
31
- navigationClassName?: string;
32
- /** Custom className for navigation items */
33
- navigationItemClassName?: string;
34
- /** Custom className for login button */
35
- loginButtonClassName?: string;
36
- /** Custom className for mobile menu button */
37
- mobileMenuButtonClassName?: string;
38
- /** Element ID */
39
- id?: string;
40
- /** ARIA label */
41
- "aria-label"?: string;
42
- }
13
+ import type { HeaderProps } from "../model";
43
14
  /**
44
- * Header - Pill-shaped navigation matching Figma template
15
+ * Header - Multi-variant navigation
45
16
  *
46
- * Pixel-perfect implementation with:
47
- * - Centered pill navigation with vertical dividers
48
- * - Responsive typography and spacing
49
- * - Semantic colors from Tailwind design system
17
+ * Pixel-perfect implementation supporting multiple design variants:
18
+ * - Minimal: Centered pill navigation with vertical dividers
19
+ * - Modern: Transparent navigation with dark logo and CTA
20
+ * - Luxury: Minimalist navigation with elegant spacing
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * // Minimal variant (default)
25
+ * <Header
26
+ * variant="minimal"
27
+ * logo="BRAND NAME"
28
+ * navigationItems={[
29
+ * { id: "home", label: "Home", href: "/" },
30
+ * { id: "about", label: "About", href: "/about" },
31
+ * ]}
32
+ * />
33
+ *
34
+ * // Luxury variant
35
+ * <Header
36
+ * variant="luxury"
37
+ * logo="YLSE SALGADO"
38
+ * navigationItems={[
39
+ * { id: "acerca", label: "ACERCA DE", href: "#acerca" },
40
+ * { id: "propiedades", label: "PROPIEDADES", href: "#propiedades" },
41
+ * ]}
42
+ * />
43
+ * ```
50
44
  */
51
45
  export declare const Header: import("react").ForwardRefExoticComponent<HeaderProps & import("react").RefAttributes<HTMLElement>>;
52
46
  //# sourceMappingURL=header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/header/ui/header.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,WAAW;IAC3B,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,iCAAiC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wCAAwC;IACxC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,qGAwLlB,CAAC"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../../src/widgets/header/ui/header.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,MAAM,qGA6OlB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homlista-devs/ui",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "main": "./dist/design-system.cjs.js",
5
5
  "module": "./dist/design-system.es.js",
6
6
  "types": "./dist/types/index.d.ts",