dara-ui 0.3.0 → 0.4.0

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.
@@ -0,0 +1,67 @@
1
+ import { default as React } from 'react';
2
+ export type FooterVariant = "default" | "sticky" | "minimal";
3
+ export interface FooterColumn {
4
+ /**
5
+ * Column heading
6
+ */
7
+ title?: string;
8
+ /**
9
+ * Links in this column
10
+ */
11
+ links?: {
12
+ label: string;
13
+ href: string;
14
+ external?: boolean;
15
+ icon?: React.ReactNode;
16
+ }[];
17
+ /**
18
+ * Free-form content for this column (overrides links)
19
+ */
20
+ content?: React.ReactNode;
21
+ }
22
+ export interface FooterProps {
23
+ /**
24
+ * Layout variant
25
+ * - default: static footer at page bottom, brand + columns + bottom bar
26
+ * - sticky: always pinned to bottom of viewport (content pushes it up)
27
+ * - minimal: single-row thin strip
28
+ * @default "default"
29
+ */
30
+ variant?: FooterVariant;
31
+ /**
32
+ * Brand element (logo, name)
33
+ */
34
+ brand?: React.ReactNode;
35
+ /**
36
+ * Short tagline under the brand
37
+ */
38
+ tagline?: string;
39
+ /**
40
+ * Columns of links / content
41
+ */
42
+ columns?: FooterColumn[];
43
+ /**
44
+ * Social icons / media strip (rendered above the bottom bar)
45
+ */
46
+ social?: React.ReactNode;
47
+ /**
48
+ * Bottom bar content (copyright, legal links)
49
+ */
50
+ bottomBar?: React.ReactNode;
51
+ /**
52
+ * Additional className
53
+ */
54
+ className?: string;
55
+ }
56
+ /**
57
+ * Dara UI Footer
58
+ *
59
+ * Features:
60
+ * - Three variants: default, sticky, minimal
61
+ * - Glass-morphism styling consistent with Navbar
62
+ * - Responsive columns (2 cols on mobile, 4 on desktop)
63
+ * - RTL aware
64
+ * - Slots: brand, tagline, columns, social, bottomBar
65
+ */
66
+ export declare const Footer: React.FC<FooterProps>;
67
+ export default Footer;
@@ -0,0 +1,3 @@
1
+ export { Footer } from './Footer';
2
+ export type { FooterProps, FooterColumn, FooterVariant } from './Footer';
3
+ export { Footer as default } from './Footer';
@@ -22,6 +22,22 @@ export interface NavbarProps {
22
22
  themeChangerMobile?: React.ReactNode;
23
23
  rightContent?: React.ReactNode;
24
24
  className?: string;
25
+ /**
26
+ * Enable IntersectionObserver-based scroll-spy.
27
+ * Each link's `href` (e.g. "#about") is observed; the section closest to
28
+ * the top of the viewport becomes active.
29
+ * @default false
30
+ */
31
+ scrollSpy?: boolean;
32
+ /**
33
+ * Offset from viewport top (px) where a section is considered "active"
34
+ * @default 140
35
+ */
36
+ scrollSpyOffset?: number;
37
+ /**
38
+ * Called with the currently-active section id whenever it changes
39
+ */
40
+ onActiveChange?: (id: string) => void;
25
41
  }
26
42
  export declare const Navbar: React.FC<NavbarProps>;
27
43
  export default Navbar;