@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/design-system.cjs.js +9 -9
- package/dist/design-system.cjs.js.map +1 -1
- package/dist/design-system.es.js +1068 -1013
- package/dist/design-system.es.js.map +1 -1
- package/dist/index.css +18 -0
- package/dist/types/widgets/header/index.d.ts +24 -5
- package/dist/types/widgets/header/index.d.ts.map +1 -1
- package/dist/types/widgets/header/model/create-header-model.d.ts +13 -0
- package/dist/types/widgets/header/model/create-header-model.d.ts.map +1 -0
- package/dist/types/widgets/header/model/index.d.ts +7 -0
- package/dist/types/widgets/header/model/index.d.ts.map +1 -0
- package/dist/types/widgets/header/model/types.d.ts +62 -0
- package/dist/types/widgets/header/model/types.d.ts.map +1 -0
- package/dist/types/widgets/header/ui/header.d.ts +32 -38
- package/dist/types/widgets/header/ui/header.d.ts.map +1 -1
- package/package.json +1 -1
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
|
-
*
|
|
6
|
-
*
|
|
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 "./
|
|
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
|
|
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 @@
|
|
|
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 -
|
|
2
|
+
* Header - Multi-variant Navigation
|
|
3
3
|
* @module widgets/header/ui
|
|
4
4
|
*
|
|
5
|
-
* Pixel-perfect implementation matching Figma template
|
|
6
|
-
*
|
|
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
|
-
|
|
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 -
|
|
15
|
+
* Header - Multi-variant navigation
|
|
45
16
|
*
|
|
46
|
-
* Pixel-perfect implementation
|
|
47
|
-
* - Centered pill navigation with vertical dividers
|
|
48
|
-
* -
|
|
49
|
-
* -
|
|
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;
|
|
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"}
|