@openwarelabs/blocks 0.7.0 → 0.8.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.
Files changed (94) hide show
  1. package/dist/features/Features01/Features01.d.cts +3 -0
  2. package/dist/features/Features01/Features01.d.ts +3 -0
  3. package/dist/features/Features01/Features01.types.d.cts +21 -0
  4. package/dist/features/Features01/Features01.types.d.ts +21 -0
  5. package/dist/features/Features02/Features02.d.cts +3 -0
  6. package/dist/features/Features02/Features02.d.ts +3 -0
  7. package/dist/features/Features02/Features02.types.d.cts +30 -0
  8. package/dist/features/Features02/Features02.types.d.ts +30 -0
  9. package/dist/features/Features03/Features03.d.cts +3 -0
  10. package/dist/features/Features03/Features03.d.ts +3 -0
  11. package/dist/features/Features03/Features03.types.d.cts +24 -0
  12. package/dist/features/Features03/Features03.types.d.ts +24 -0
  13. package/dist/features/Features04/Features04.d.cts +3 -0
  14. package/dist/features/Features04/Features04.d.ts +3 -0
  15. package/dist/features/Features04/Features04.types.d.cts +29 -0
  16. package/dist/features/Features04/Features04.types.d.ts +29 -0
  17. package/dist/features/Features05/Features05.d.cts +3 -0
  18. package/dist/features/Features05/Features05.d.ts +3 -0
  19. package/dist/features/Features05/Features05.types.d.cts +18 -0
  20. package/dist/features/Features05/Features05.types.d.ts +18 -0
  21. package/dist/footers/Footer01/Footer01.d.cts +3 -0
  22. package/dist/footers/Footer01/Footer01.d.ts +3 -0
  23. package/dist/footers/Footer01/Footer01.types.d.cts +32 -0
  24. package/dist/footers/Footer01/Footer01.types.d.ts +32 -0
  25. package/dist/footers/Footer02/Footer02.d.cts +3 -0
  26. package/dist/footers/Footer02/Footer02.d.ts +3 -0
  27. package/dist/footers/Footer02/Footer02.types.d.cts +18 -0
  28. package/dist/footers/Footer02/Footer02.types.d.ts +18 -0
  29. package/dist/footers/Footer03/Footer03.d.cts +3 -0
  30. package/dist/footers/Footer03/Footer03.d.ts +3 -0
  31. package/dist/footers/Footer03/Footer03.types.d.cts +53 -0
  32. package/dist/footers/Footer03/Footer03.types.d.ts +53 -0
  33. package/dist/footers/Footer04/Footer04.d.cts +3 -0
  34. package/dist/footers/Footer04/Footer04.d.ts +3 -0
  35. package/dist/footers/Footer04/Footer04.types.d.cts +18 -0
  36. package/dist/footers/Footer04/Footer04.types.d.ts +18 -0
  37. package/dist/headers/Header01/Header01.d.cts +6 -0
  38. package/dist/headers/Header01/Header01.d.ts +6 -0
  39. package/dist/headers/Header01/Header01.types.d.cts +18 -0
  40. package/dist/headers/Header01/Header01.types.d.ts +18 -0
  41. package/dist/headers/Header02/Header02.d.cts +6 -0
  42. package/dist/headers/Header02/Header02.d.ts +6 -0
  43. package/dist/headers/Header02/Header02.types.d.cts +69 -0
  44. package/dist/headers/Header02/Header02.types.d.ts +69 -0
  45. package/dist/headers/Header03/Header03.d.cts +6 -0
  46. package/dist/headers/Header03/Header03.d.ts +6 -0
  47. package/dist/headers/Header03/Header03.types.d.cts +24 -0
  48. package/dist/headers/Header03/Header03.types.d.ts +24 -0
  49. package/dist/headers/Header04/Header04.d.cts +3 -0
  50. package/dist/headers/Header04/Header04.d.ts +3 -0
  51. package/dist/headers/Header04/Header04.types.d.cts +47 -0
  52. package/dist/headers/Header04/Header04.types.d.ts +47 -0
  53. package/dist/headers/Header05/Header05.d.cts +3 -0
  54. package/dist/headers/Header05/Header05.d.ts +3 -0
  55. package/dist/headers/Header05/Header05.types.d.cts +27 -0
  56. package/dist/headers/Header05/Header05.types.d.ts +27 -0
  57. package/dist/index.cjs +1259 -7
  58. package/dist/index.cjs.map +4 -4
  59. package/dist/index.d.cts +39 -1
  60. package/dist/index.d.ts +39 -1
  61. package/dist/index.js +1272 -20
  62. package/dist/index.js.map +4 -4
  63. package/dist/pricing/Pricing01/Pricing01.d.cts +3 -0
  64. package/dist/pricing/Pricing01/Pricing01.d.ts +3 -0
  65. package/dist/pricing/Pricing01/Pricing01.types.d.cts +43 -0
  66. package/dist/pricing/Pricing01/Pricing01.types.d.ts +43 -0
  67. package/dist/pricing/Pricing02/Pricing02.d.cts +3 -0
  68. package/dist/pricing/Pricing02/Pricing02.d.ts +3 -0
  69. package/dist/pricing/Pricing02/Pricing02.types.d.cts +64 -0
  70. package/dist/pricing/Pricing02/Pricing02.types.d.ts +64 -0
  71. package/dist/pricing/Pricing03/Pricing03.d.cts +3 -0
  72. package/dist/pricing/Pricing03/Pricing03.d.ts +3 -0
  73. package/dist/pricing/Pricing03/Pricing03.types.d.cts +65 -0
  74. package/dist/pricing/Pricing03/Pricing03.types.d.ts +65 -0
  75. package/dist/pricing/Pricing04/Pricing04.d.cts +3 -0
  76. package/dist/pricing/Pricing04/Pricing04.d.ts +3 -0
  77. package/dist/pricing/Pricing04/Pricing04.types.d.cts +38 -0
  78. package/dist/pricing/Pricing04/Pricing04.types.d.ts +38 -0
  79. package/dist/pricing/Pricing05/Pricing05.d.cts +3 -0
  80. package/dist/pricing/Pricing05/Pricing05.d.ts +3 -0
  81. package/dist/pricing/Pricing05/Pricing05.types.d.cts +64 -0
  82. package/dist/pricing/Pricing05/Pricing05.types.d.ts +64 -0
  83. package/dist/shared/BlockActions.d.cts +1 -1
  84. package/dist/shared/BlockActions.d.ts +1 -1
  85. package/dist/shared/BlockBrandLink.d.cts +3 -0
  86. package/dist/shared/BlockBrandLink.d.ts +3 -0
  87. package/dist/shared/FooterColumns.d.cts +3 -0
  88. package/dist/shared/FooterColumns.d.ts +3 -0
  89. package/dist/shared/icons.d.cts +13 -3
  90. package/dist/shared/icons.d.ts +13 -3
  91. package/dist/shared/shared.types.d.cts +49 -1
  92. package/dist/shared/shared.types.d.ts +49 -1
  93. package/dist/styles.css +3428 -333
  94. package/package.json +2 -2
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.cjs";
3
+ export interface Header01Labels {
4
+ /** The phone menu button's name, and the menu's. @default "Menu" */
5
+ menu?: string;
6
+ }
7
+ export interface Header01Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
8
+ /** The logo and name on the left, linking home. */
9
+ brand: BlockBrand;
10
+ /** The site's main links, in the middle. Under 760px wide they move into a menu behind a button. */
11
+ links: HeaderLink[];
12
+ /** The one call to action on the right, as a small primary pill: "Start for free". */
13
+ primaryAction: BlockAction;
14
+ /** A text link before it, such as "Sign in". On phones it moves into the menu. */
15
+ secondaryLink?: HeaderLink;
16
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
17
+ labels?: Header01Labels;
18
+ }
@@ -0,0 +1,18 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.js";
3
+ export interface Header01Labels {
4
+ /** The phone menu button's name, and the menu's. @default "Menu" */
5
+ menu?: string;
6
+ }
7
+ export interface Header01Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
8
+ /** The logo and name on the left, linking home. */
9
+ brand: BlockBrand;
10
+ /** The site's main links, in the middle. Under 760px wide they move into a menu behind a button. */
11
+ links: HeaderLink[];
12
+ /** The one call to action on the right, as a small primary pill: "Start for free". */
13
+ primaryAction: BlockAction;
14
+ /** A text link before it, such as "Sign in". On phones it moves into the menu. */
15
+ secondaryLink?: HeaderLink;
16
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
17
+ labels?: Header01Labels;
18
+ }
@@ -0,0 +1,6 @@
1
+ import type { Header02Props } from "./Header02.types.cjs";
2
+ /**
3
+ * A bar across the top with a big menu (a grid of features and a highlight), dropdowns of links and plain links,
4
+ * then one call to action. On phones everything folds into a panel under the bar.
5
+ */
6
+ export declare function Header02({ brand, panel, menus, links, primaryAction, secondaryLink, onNavigate, defaultPanelOpen, labels, className, ...props }: Header02Props): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { Header02Props } from "./Header02.types.js";
2
+ /**
3
+ * A bar across the top with a big menu (a grid of features and a highlight), dropdowns of links and plain links,
4
+ * then one call to action. On phones everything folds into a panel under the bar.
5
+ */
6
+ export declare function Header02({ brand, panel, menus, links, primaryAction, secondaryLink, onNavigate, defaultPanelOpen, labels, className, ...props }: Header02Props): import("react").JSX.Element;
@@ -0,0 +1,69 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.cjs";
3
+ /** One of the cards in the panel: an icon, a title and a line about it. */
4
+ export interface Header02Feature {
5
+ /** The feature's name. */
6
+ title: ReactNode;
7
+ /** A line about it. */
8
+ description: ReactNode;
9
+ /** Where it goes. */
10
+ href: string;
11
+ /** A 16px icon, usually from lucide-react. */
12
+ icon?: ReactNode;
13
+ }
14
+ /** The big menu: a grid of features, and a highlighted link beside them. */
15
+ export interface Header02Panel {
16
+ /** Its button in the bar: "Product". */
17
+ label: string;
18
+ /** The cards in the grid. */
19
+ features: Header02Feature[];
20
+ /** A card beside the features, for news: a badge, a line and a link. */
21
+ highlight?: {
22
+ badge?: ReactNode;
23
+ title: ReactNode;
24
+ linkLabel: ReactNode;
25
+ href: string;
26
+ };
27
+ }
28
+ export interface Header02MenuItem {
29
+ /** The item's words. */
30
+ label: string;
31
+ /** Where it goes. */
32
+ href: string;
33
+ /** A 15px icon, usually from lucide-react. */
34
+ icon?: ReactNode;
35
+ }
36
+ /** A dropdown of links, in groups with a line between them. */
37
+ export interface Header02Menu {
38
+ /** Its button in the bar: "Resources". */
39
+ label: string;
40
+ /** The items, in groups with a line between them. */
41
+ groups: Header02MenuItem[][];
42
+ }
43
+ export interface Header02Labels {
44
+ /** The phone menu button's name. @default "Menu" */
45
+ menu?: string;
46
+ }
47
+ export interface Header02Props extends Omit<HTMLAttributes<HTMLElement>, "children"> {
48
+ /** The logo and name on the left, linking home. */
49
+ brand: BlockBrand;
50
+ /** The big menu, first in the bar. */
51
+ panel?: Header02Panel;
52
+ /** Dropdowns of links after it. */
53
+ menus?: Header02Menu[];
54
+ /** Plain links after those. */
55
+ links?: HeaderLink[];
56
+ /** The one call to action on the right, as a small primary pill. */
57
+ primaryAction: BlockAction;
58
+ /** A link before it, such as "Sign in". On phones it's the panel's last button. */
59
+ secondaryLink?: HeaderLink;
60
+ /**
61
+ * Where a dropdown item goes. Menu items are buttons, so they navigate here.
62
+ * @default (href) => window.location.assign(href)
63
+ */
64
+ onNavigate?(href: string): void;
65
+ /** Opens the big menu at first, as the docs' preview does. */
66
+ defaultPanelOpen?: boolean;
67
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
68
+ labels?: Header02Labels;
69
+ }
@@ -0,0 +1,69 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.js";
3
+ /** One of the cards in the panel: an icon, a title and a line about it. */
4
+ export interface Header02Feature {
5
+ /** The feature's name. */
6
+ title: ReactNode;
7
+ /** A line about it. */
8
+ description: ReactNode;
9
+ /** Where it goes. */
10
+ href: string;
11
+ /** A 16px icon, usually from lucide-react. */
12
+ icon?: ReactNode;
13
+ }
14
+ /** The big menu: a grid of features, and a highlighted link beside them. */
15
+ export interface Header02Panel {
16
+ /** Its button in the bar: "Product". */
17
+ label: string;
18
+ /** The cards in the grid. */
19
+ features: Header02Feature[];
20
+ /** A card beside the features, for news: a badge, a line and a link. */
21
+ highlight?: {
22
+ badge?: ReactNode;
23
+ title: ReactNode;
24
+ linkLabel: ReactNode;
25
+ href: string;
26
+ };
27
+ }
28
+ export interface Header02MenuItem {
29
+ /** The item's words. */
30
+ label: string;
31
+ /** Where it goes. */
32
+ href: string;
33
+ /** A 15px icon, usually from lucide-react. */
34
+ icon?: ReactNode;
35
+ }
36
+ /** A dropdown of links, in groups with a line between them. */
37
+ export interface Header02Menu {
38
+ /** Its button in the bar: "Resources". */
39
+ label: string;
40
+ /** The items, in groups with a line between them. */
41
+ groups: Header02MenuItem[][];
42
+ }
43
+ export interface Header02Labels {
44
+ /** The phone menu button's name. @default "Menu" */
45
+ menu?: string;
46
+ }
47
+ export interface Header02Props extends Omit<HTMLAttributes<HTMLElement>, "children"> {
48
+ /** The logo and name on the left, linking home. */
49
+ brand: BlockBrand;
50
+ /** The big menu, first in the bar. */
51
+ panel?: Header02Panel;
52
+ /** Dropdowns of links after it. */
53
+ menus?: Header02Menu[];
54
+ /** Plain links after those. */
55
+ links?: HeaderLink[];
56
+ /** The one call to action on the right, as a small primary pill. */
57
+ primaryAction: BlockAction;
58
+ /** A link before it, such as "Sign in". On phones it's the panel's last button. */
59
+ secondaryLink?: HeaderLink;
60
+ /**
61
+ * Where a dropdown item goes. Menu items are buttons, so they navigate here.
62
+ * @default (href) => window.location.assign(href)
63
+ */
64
+ onNavigate?(href: string): void;
65
+ /** Opens the big menu at first, as the docs' preview does. */
66
+ defaultPanelOpen?: boolean;
67
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
68
+ labels?: Header02Labels;
69
+ }
@@ -0,0 +1,6 @@
1
+ import type { Header03Props } from "./Header03.types.cjs";
2
+ /**
3
+ * The logo in the middle with links either side, for a brand-led site. On tablets and phones every link moves to a
4
+ * line of its own under the bar, scrolling sideways when it runs out of room.
5
+ */
6
+ export declare function Header03({ brand, start, end, primaryAction, secondaryLink, labels, className, ...props }: Header03Props): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { Header03Props } from "./Header03.types.js";
2
+ /**
3
+ * The logo in the middle with links either side, for a brand-led site. On tablets and phones every link moves to a
4
+ * line of its own under the bar, scrolling sideways when it runs out of room.
5
+ */
6
+ export declare function Header03({ brand, start, end, primaryAction, secondaryLink, labels, className, ...props }: Header03Props): import("react").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.cjs";
3
+ export interface Header03Labels {
4
+ /** The left-hand links' name for screen readers. @default "Primary" */
5
+ start?: string;
6
+ /** The right-hand links'. @default "More" */
7
+ end?: string;
8
+ /** All the links on one line, as on tablets and phones. @default "Main" */
9
+ all?: string;
10
+ }
11
+ export interface Header03Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
12
+ /** The logo and name in the middle, linking home. */
13
+ brand: BlockBrand;
14
+ /** The links on the left of the logo. */
15
+ start: HeaderLink[];
16
+ /** The links on the right, before the actions. */
17
+ end?: HeaderLink[];
18
+ /** The one call to action on the far right, as a small primary pill. */
19
+ primaryAction: BlockAction;
20
+ /** A text link before it, such as "Sign in". On narrow screens it moves left of the logo. */
21
+ secondaryLink?: HeaderLink;
22
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
23
+ labels?: Header03Labels;
24
+ }
@@ -0,0 +1,24 @@
1
+ import type { HTMLAttributes } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.js";
3
+ export interface Header03Labels {
4
+ /** The left-hand links' name for screen readers. @default "Primary" */
5
+ start?: string;
6
+ /** The right-hand links'. @default "More" */
7
+ end?: string;
8
+ /** All the links on one line, as on tablets and phones. @default "Main" */
9
+ all?: string;
10
+ }
11
+ export interface Header03Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
12
+ /** The logo and name in the middle, linking home. */
13
+ brand: BlockBrand;
14
+ /** The links on the left of the logo. */
15
+ start: HeaderLink[];
16
+ /** The links on the right, before the actions. */
17
+ end?: HeaderLink[];
18
+ /** The one call to action on the far right, as a small primary pill. */
19
+ primaryAction: BlockAction;
20
+ /** A text link before it, such as "Sign in". On narrow screens it moves left of the logo. */
21
+ secondaryLink?: HeaderLink;
22
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
23
+ labels?: Header03Labels;
24
+ }
@@ -0,0 +1,3 @@
1
+ import type { Header04Props } from "./Header04.types.cjs";
2
+ /** A header with a slim announcement above it: a line of news, a link and a close button that folds it away. */
3
+ export declare function Header04({ announcement, onDismiss, defaultDismissed, brand, links, primaryAction, secondaryLink, onNavigate, labels, className, ...props }: Header04Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Header04Props } from "./Header04.types.js";
2
+ /** A header with a slim announcement above it: a line of news, a link and a close button that folds it away. */
3
+ export declare function Header04({ announcement, onDismiss, defaultDismissed, brand, links, primaryAction, secondaryLink, onNavigate, labels, className, ...props }: Header04Props): import("react").JSX.Element;
@@ -0,0 +1,47 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.cjs";
3
+ /** The line above the header. */
4
+ export interface Header04Announcement {
5
+ /** The news, in bold: "Acme 3.0 is out." */
6
+ title: ReactNode;
7
+ /** A few words after it, hidden on phones. */
8
+ description?: ReactNode;
9
+ /** Where to read more. */
10
+ link?: {
11
+ label: ReactNode;
12
+ /** A shorter label for phones: "Read more". */
13
+ shortLabel?: ReactNode;
14
+ href: string;
15
+ };
16
+ }
17
+ export interface Header04Labels {
18
+ /** The phone menu's name. @default "Menu" */
19
+ menu?: string;
20
+ /** The close button's name. @default "Dismiss the announcement" */
21
+ dismiss?: string;
22
+ /** The announcement's name for screen readers. @default "Announcement" */
23
+ announcement?: string;
24
+ }
25
+ export interface Header04Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
26
+ /** A slim line above the header for a launch or an update, with a link and a close button. */
27
+ announcement: Header04Announcement;
28
+ /** Runs when the announcement is closed: remember it (in a cookie or localStorage) to keep it closed next time. */
29
+ onDismiss?(): void;
30
+ /** Starts with the announcement closed, for someone who already closed it. */
31
+ defaultDismissed?: boolean;
32
+ /** The logo and name on the left, linking home. */
33
+ brand: BlockBrand;
34
+ /** The links in the middle. On phones they move into a menu. */
35
+ links: HeaderLink[];
36
+ /** The one call to action on the right, as a small primary pill. */
37
+ primaryAction: BlockAction;
38
+ /** A text link before it, such as "Sign in". On phones it's the menu's last item. */
39
+ secondaryLink?: HeaderLink;
40
+ /**
41
+ * Where a phone menu item goes. Menu items are buttons, so they navigate here.
42
+ * @default (href) => window.location.assign(href)
43
+ */
44
+ onNavigate?(href: string): void;
45
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
46
+ labels?: Header04Labels;
47
+ }
@@ -0,0 +1,47 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.js";
3
+ /** The line above the header. */
4
+ export interface Header04Announcement {
5
+ /** The news, in bold: "Acme 3.0 is out." */
6
+ title: ReactNode;
7
+ /** A few words after it, hidden on phones. */
8
+ description?: ReactNode;
9
+ /** Where to read more. */
10
+ link?: {
11
+ label: ReactNode;
12
+ /** A shorter label for phones: "Read more". */
13
+ shortLabel?: ReactNode;
14
+ href: string;
15
+ };
16
+ }
17
+ export interface Header04Labels {
18
+ /** The phone menu's name. @default "Menu" */
19
+ menu?: string;
20
+ /** The close button's name. @default "Dismiss the announcement" */
21
+ dismiss?: string;
22
+ /** The announcement's name for screen readers. @default "Announcement" */
23
+ announcement?: string;
24
+ }
25
+ export interface Header04Props extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
26
+ /** A slim line above the header for a launch or an update, with a link and a close button. */
27
+ announcement: Header04Announcement;
28
+ /** Runs when the announcement is closed: remember it (in a cookie or localStorage) to keep it closed next time. */
29
+ onDismiss?(): void;
30
+ /** Starts with the announcement closed, for someone who already closed it. */
31
+ defaultDismissed?: boolean;
32
+ /** The logo and name on the left, linking home. */
33
+ brand: BlockBrand;
34
+ /** The links in the middle. On phones they move into a menu. */
35
+ links: HeaderLink[];
36
+ /** The one call to action on the right, as a small primary pill. */
37
+ primaryAction: BlockAction;
38
+ /** A text link before it, such as "Sign in". On phones it's the menu's last item. */
39
+ secondaryLink?: HeaderLink;
40
+ /**
41
+ * Where a phone menu item goes. Menu items are buttons, so they navigate here.
42
+ * @default (href) => window.location.assign(href)
43
+ */
44
+ onNavigate?(href: string): void;
45
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
46
+ labels?: Header04Labels;
47
+ }
@@ -0,0 +1,3 @@
1
+ import type { Header05Props } from "./Header05.types.cjs";
2
+ /** A header whose links fold into a drawer behind a menu button on tablets and phones, with a second list and both actions. */
3
+ export declare function Header05({ brand, links, more, primaryAction, secondaryLink, defaultOpen, labels, className, ...props }: Header05Props): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { Header05Props } from "./Header05.types.js";
2
+ /** A header whose links fold into a drawer behind a menu button on tablets and phones, with a second list and both actions. */
3
+ export declare function Header05({ brand, links, more, primaryAction, secondaryLink, defaultOpen, labels, className, ...props }: Header05Props): import("react").JSX.Element;
@@ -0,0 +1,27 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.cjs";
3
+ export interface Header05Labels {
4
+ /** The menu button's name. @default "Open menu" */
5
+ open?: string;
6
+ /** The drawer's title. @default "Menu" */
7
+ title?: string;
8
+ }
9
+ export interface Header05Props extends Omit<HTMLAttributes<HTMLElement>, "children"> {
10
+ /** The logo and name on the left, linking home. */
11
+ brand: BlockBrand;
12
+ /** The main links. Under 1024px wide they fold into a drawer behind a menu button. */
13
+ links: HeaderLink[];
14
+ /** A second, smaller list in the drawer, under a heading. */
15
+ more?: {
16
+ title: ReactNode;
17
+ links: HeaderLink[];
18
+ };
19
+ /** The one call to action, as a small primary pill in the bar and a full one at the foot of the drawer. */
20
+ primaryAction: BlockAction;
21
+ /** A text link before it, such as "Sign in", and a button beside it in the drawer. */
22
+ secondaryLink?: HeaderLink;
23
+ /** Starts with the drawer open, as the docs' phone preview does. */
24
+ defaultOpen?: boolean;
25
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
26
+ labels?: Header05Labels;
27
+ }
@@ -0,0 +1,27 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ import type { BlockAction, BlockBrand, HeaderLink } from "../../shared/shared.types.js";
3
+ export interface Header05Labels {
4
+ /** The menu button's name. @default "Open menu" */
5
+ open?: string;
6
+ /** The drawer's title. @default "Menu" */
7
+ title?: string;
8
+ }
9
+ export interface Header05Props extends Omit<HTMLAttributes<HTMLElement>, "children"> {
10
+ /** The logo and name on the left, linking home. */
11
+ brand: BlockBrand;
12
+ /** The main links. Under 1024px wide they fold into a drawer behind a menu button. */
13
+ links: HeaderLink[];
14
+ /** A second, smaller list in the drawer, under a heading. */
15
+ more?: {
16
+ title: ReactNode;
17
+ links: HeaderLink[];
18
+ };
19
+ /** The one call to action, as a small primary pill in the bar and a full one at the foot of the drawer. */
20
+ primaryAction: BlockAction;
21
+ /** A text link before it, such as "Sign in", and a button beside it in the drawer. */
22
+ secondaryLink?: HeaderLink;
23
+ /** Starts with the drawer open, as the docs' phone preview does. */
24
+ defaultOpen?: boolean;
25
+ /** Words that aren't content (names for screen readers, a menu's name), in English unless you pass your own. */
26
+ labels?: Header05Labels;
27
+ }