matrix-design-system 1.1.0 → 2.0.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 (136) hide show
  1. package/README.md +40 -1
  2. package/dist/atoms/animation/motion-div/motion-div.d.mts +2 -3
  3. package/dist/atoms/buttons/button/button.d.mts +2 -3
  4. package/dist/atoms/buttons/button/button.mjs +1 -1
  5. package/dist/atoms/buttons/switch/switch.d.mts +2 -3
  6. package/dist/atoms/buttons/switch/switch.mjs +2 -2
  7. package/dist/atoms/call-to-actions/call-to-action-external-with-tracking/call-to-action-external-with-tracking.d.mts +2 -3
  8. package/dist/atoms/call-to-actions/call-to-action-internal-with-tracking/call-to-action-internal-with-tracking.d.mts +3 -4
  9. package/dist/atoms/chip/chip.d.mts +3 -4
  10. package/dist/atoms/chip/chip.mjs +1 -1
  11. package/dist/atoms/effects/glassmorphism-background/glassmorphism-background.d.mts +2 -3
  12. package/dist/atoms/effects/image-glow/image-glow.d.mts +3 -4
  13. package/dist/atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.d.mts +2 -3
  14. package/dist/atoms/effects/matrix-rain/matrix-rain/matrix-rain.d.mts +2 -3
  15. package/dist/atoms/effects/overlay/overlay.d.mts +3 -4
  16. package/dist/atoms/effects/overlay/overlay.mjs +1 -1
  17. package/dist/atoms/effects/pills/pills.d.mts +4 -5
  18. package/dist/atoms/effects/plain-image/plain-image.d.mts +6 -7
  19. package/dist/atoms/icons/chat-icon/chat-icon.d.mts +2 -3
  20. package/dist/atoms/icons/chat-icon/chat-icon.mjs +1 -1
  21. package/dist/atoms/icons/copy-icon/copy-icon.d.mts +4 -5
  22. package/dist/atoms/icons/rounded-icon/rounded-icon.d.mts +2 -3
  23. package/dist/atoms/links/anchor-link/anchor-link.d.mts +5 -6
  24. package/dist/atoms/links/external-link/external-link.d.mts +2 -3
  25. package/dist/atoms/links/internal-link/internal-link.d.mts +3 -4
  26. package/dist/atoms/loader/loader/loader.d.mts +2 -3
  27. package/dist/atoms/loader/loader/loader.mjs +1 -1
  28. package/dist/atoms/typography/input-field/input-field.d.mts +2 -3
  29. package/dist/atoms/typography/label/label.d.mts +3 -4
  30. package/dist/atoms/typography/markdown/markdown.d.mts +3 -4
  31. package/dist/atoms/typography/terminal-blocks/terminal-blocks.d.mts +8 -9
  32. package/dist/atoms/typography/terminal-blocks/terminal-blocks.mjs +3 -3
  33. package/dist/atoms/typography/textarea/textarea.d.mts +2 -3
  34. package/dist/hooks/use-clipboard-available.d.mts +2 -3
  35. package/dist/hooks/use-device-capabilities.d.mts +2 -3
  36. package/dist/hooks/use-glassmorphism.d.mts +2 -3
  37. package/dist/hooks/use-in-view-list.d.mts +2 -3
  38. package/dist/hooks/use-in-view.d.mts +2 -3
  39. package/dist/hooks/use-is-ios.d.mts +2 -3
  40. package/dist/hooks/use-lock-body-scroll.d.mts +2 -3
  41. package/dist/hooks/use-matrix-settings-store.d.mts +2 -3
  42. package/dist/hooks/use-motion-store.d.mts +2 -3
  43. package/dist/hooks/use-os-modifier-key.d.mts +3 -4
  44. package/dist/hooks/use-reading-progress.d.mts +2 -3
  45. package/dist/hooks/use-reduced-motions.d.mts +2 -3
  46. package/dist/hooks/use-scroll-direction.d.mts +3 -4
  47. package/dist/hooks/use-typewriter.d.mts +3 -4
  48. package/dist/hooks/use-webgpu-supported.d.mts +2 -3
  49. package/dist/index.d.mts +5 -6
  50. package/dist/molecules/accordion/accordion/accordion.d.mts +2 -3
  51. package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.d.mts +4 -5
  52. package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.mjs +5 -5
  53. package/dist/molecules/buttons/pagination-navigation/pagination-navigation.d.mts +3 -4
  54. package/dist/molecules/buttons/pills-buttons/pills-buttons.d.mts +3 -4
  55. package/dist/molecules/buttons/pills-buttons/pills-buttons.mjs +2 -2
  56. package/dist/molecules/buttons/segmented-control/segmented-control.d.mts +3 -4
  57. package/dist/molecules/buttons/segmented-control/segmented-control.mjs +2 -2
  58. package/dist/molecules/buttons/social-contact/social-contact.d.mts +3 -4
  59. package/dist/molecules/buttons/tag/tag.d.mts +3 -4
  60. package/dist/molecules/buttons/terminal-button/terminal-button.d.mts +3 -4
  61. package/dist/molecules/buttons/terminal-button/terminal-button.mjs +2 -2
  62. package/dist/molecules/chart/chart-panel/chart-panel.d.mts +3 -4
  63. package/dist/molecules/chart/chart-tooltip/chart-tooltip.d.mts +3 -4
  64. package/dist/molecules/chart/donut-chart/donut-chart.d.mts +3 -4
  65. package/dist/molecules/chart/donut-chart/donut-chart.mjs +1 -1
  66. package/dist/molecules/containers/content-container/content-container.d.mts +2 -3
  67. package/dist/molecules/containers/content-container/content-container.mjs +1 -1
  68. package/dist/molecules/controls/control-slider/control-slider.d.mts +2 -3
  69. package/dist/molecules/controls/control-slider/control-slider.mjs +2 -2
  70. package/dist/molecules/effects/matrix-background/matrix-background.d.mts +2 -3
  71. package/dist/molecules/effects/matrix-background/matrix-background.mjs +3 -3
  72. package/dist/molecules/effects/matrix-header-background/matrix-header-background.d.mts +2 -3
  73. package/dist/molecules/effects/matrix-header-background/matrix-header-background.mjs +2 -2
  74. package/dist/molecules/effects/matrix-terminal/matrix-terminal.d.mts +2 -3
  75. package/dist/molecules/effects/matrix-terminal/matrix-terminal.mjs +1 -1
  76. package/dist/molecules/form/filter-input/filter-input.d.mts +3 -4
  77. package/dist/molecules/form/form-error-summary/form-error-summary.d.mts +3 -4
  78. package/dist/molecules/form/form-field/form-field.d.mts +3 -4
  79. package/dist/molecules/form/form-success-message/form-success-message.d.mts +3 -4
  80. package/dist/molecules/form/form-success-message/form-success-message.mjs +2 -2
  81. package/dist/molecules/form/form-textarea/form-textarea.d.mts +3 -4
  82. package/dist/molecules/lightbox-image/lightbox-image.d.mts +2 -3
  83. package/dist/molecules/links/pills-links/pills-links.d.mts +4 -5
  84. package/dist/molecules/menu/close/close.d.mts +2 -3
  85. package/dist/molecules/menu/close/close.mjs +1 -1
  86. package/dist/molecules/menu/dropdown-menu/dropdown-menu.d.mts +3 -4
  87. package/dist/molecules/menu/dropdown-menu/dropdown-menu.mjs +3 -3
  88. package/dist/molecules/menu/hamburger-menu/hamburger-menu.d.mts +2 -3
  89. package/dist/molecules/menu/menu-item/menu-item.d.mts +3 -4
  90. package/dist/molecules/stat-card/stat-card.d.mts +3 -4
  91. package/dist/molecules/stat-card/stat-card.mjs +3 -3
  92. package/dist/molecules/terminal-list-item/terminal-list-item.d.mts +3 -4
  93. package/dist/molecules/terminal-progress-bar/terminal-progress-bar.d.mts +2 -3
  94. package/dist/molecules/typography/page-title/page-title.d.mts +2 -3
  95. package/dist/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.d.mts +2 -3
  96. package/dist/molecules/typography/section-heading/section-heading.d.mts +3 -4
  97. package/dist/molecules/typography/section-heading/section-heading.mjs +1 -1
  98. package/dist/molecules/video/self-hosted-video/self-hosted-video.d.mts +2 -3
  99. package/dist/molecules/video/self-hosted-video/self-hosted-video.mjs +1 -2
  100. package/dist/molecules/video/youtube/youtube.d.mts +2 -3
  101. package/dist/organism/command-palette/command-palette/command-palette.d.mts +3 -4
  102. package/dist/organism/command-palette/command-palette-group/command-palette-group.d.mts +3 -4
  103. package/dist/organism/command-palette/command-palette-item/command-palette-item.d.mts +3 -4
  104. package/dist/organism/command-palette/toggle-motion-item/toggle-motion-item.d.mts +3 -4
  105. package/dist/organism/cookie-consent-banner/cookie-consent-banner.d.mts +2 -3
  106. package/dist/organism/cookie-consent-banner/cookie-consent-banner.mjs +4 -4
  107. package/dist/organism/footer/footer.d.mts +12 -13
  108. package/dist/organism/footer/footer.mjs +77 -153
  109. package/dist/organism/footer/index.d.mts +3 -3
  110. package/dist/organism/footer/use-footer-store.d.mts +2 -11
  111. package/dist/organism/footer/use-footer-store.mjs +13 -31
  112. package/dist/organism/header/brand-header/brand-header.d.mts +3 -4
  113. package/dist/organism/header/brand-header/brand-header.mjs +1 -1
  114. package/dist/organism/image-carousel/fullscreen-modal/fullscreen-modal.mjs +1 -1
  115. package/dist/organism/image-carousel/image-carousel.d.mts +3 -4
  116. package/dist/organism/image-carousel/image-carousel.mjs +2 -2
  117. package/dist/organism/image-carousel/navigation-buttons/navigation-buttons.mjs +2 -2
  118. package/dist/organism/lightbox/lightbox.d.mts +2 -3
  119. package/dist/organism/loading-bar/loading-bar.d.mts +2 -3
  120. package/dist/organism/menu/index.d.mts +2 -3
  121. package/dist/organism/menu/menu.d.mts +23 -23
  122. package/dist/organism/menu/menu.mjs +135 -273
  123. package/dist/organism/menu/use-menu-store.mjs +67 -232
  124. package/dist/organism/profile-hero/profile-hero.d.mts +3 -4
  125. package/dist/organism/profile-photo/profile-photo.d.mts +3 -4
  126. package/dist/organism/profile-photo/profile-photo.mjs +1 -1
  127. package/dist/organism/reading-content-progress-bar/reading-content-progress-bar.d.mts +2 -3
  128. package/dist/organism/social-contacts/social-contacts.d.mts +4 -5
  129. package/dist/state/command-palette/command-palette-context.d.mts +3 -4
  130. package/dist/state/command-palette/command-palette-events.d.mts +5 -6
  131. package/dist/state/command-palette/command-palette-trigger.d.mts +2 -3
  132. package/dist/state/lightbox/lightbox-events.d.mts +4 -5
  133. package/dist/state/matrix-rain/matrix-settings.d.mts +9 -10
  134. package/dist/state/motion/motion.d.mts +4 -5
  135. package/package.json +26 -26
  136. package/dist/organism/menu/use-menu-store.d.mts +0 -22
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { BiX } from "react-icons/bi";
3
3
  //#region src/molecules/menu/close/close.tsx
4
4
  const Close = ({ onClick }) => /* @__PURE__ */ jsx(BiX, {
5
- className: "size-9 text-primary-text",
5
+ className: "text-primary-text size-9",
6
6
  onClick
7
7
  });
8
8
  //#endregion
@@ -13,13 +13,12 @@ interface DropdownMenuGroup {
13
13
  label: string;
14
14
  items: DropdownMenuItem[];
15
15
  }
16
- interface DropdownMenuProps {
16
+ export interface DropdownMenuProps {
17
17
  linkComponent?: LinkComponent;
18
18
  label: string;
19
19
  items: DropdownMenuGroup[];
20
20
  className?: string;
21
21
  chevronClassName?: string;
22
22
  }
23
- declare const DropdownMenu: FC<DropdownMenuProps>;
24
- //#endregion
25
- export { DropdownMenu, DropdownMenuProps };
23
+ export declare const DropdownMenu: FC<DropdownMenuProps>;
24
+ //#endregion
@@ -64,7 +64,7 @@ const DropdownMenu = (t0) => {
64
64
  id: panelId,
65
65
  "aria-label": label,
66
66
  role: "list",
67
- className: `glow-container ${shouldReduceMotions ? "xs:bg-general-background" : "xs:bg-general-background/90"} relative mt-2 min-w-max list-none m-0 p-0 rounded-xl py-2 xs:absolute xs:right-0 xs:left-0 xs:w-60`,
67
+ className: `glow-container ${shouldReduceMotions ? "xs:bg-general-background" : "xs:bg-general-background/90"} xs:absolute xs:right-0 xs:left-0 xs:w-60 relative m-0 mt-2 min-w-max list-none rounded-xl p-0 py-2`,
68
68
  tabIndex: -1,
69
69
  children: items.map((group_0, idx) => {
70
70
  const groupId = getGroupId(idx);
@@ -77,13 +77,13 @@ const DropdownMenu = (t0) => {
77
77
  }),
78
78
  /* @__PURE__ */ jsx("span", {
79
79
  id: groupId,
80
- className: "text-secondary-text block px-4 pt-3 pb-1 text-sm font-bold uppercase tracking-wider cursor-default select-none",
80
+ className: "text-secondary-text block cursor-default px-4 pt-3 pb-1 text-sm font-bold tracking-wider uppercase select-none",
81
81
  children: group_0.label
82
82
  }),
83
83
  /* @__PURE__ */ jsx("ul", {
84
84
  "aria-labelledby": groupId,
85
85
  role: "list",
86
- className: "list-none m-0 p-0",
86
+ className: "m-0 list-none p-0",
87
87
  children: group_0.items.map((item_0, itemIdx) => /* @__PURE__ */ jsx("li", {
88
88
  className: "mb-0 pl-0 before:content-none",
89
89
  children: /* @__PURE__ */ jsx(MenuItem, {
@@ -3,6 +3,5 @@ import { FC } from "react";
3
3
  interface HamburgerMenuProps {
4
4
  onClick: () => void;
5
5
  }
6
- declare const HamburgerMenu: FC<HamburgerMenuProps>;
7
- //#endregion
8
- export { HamburgerMenu };
6
+ export declare const HamburgerMenu: FC<HamburgerMenuProps>;
7
+ //#endregion
@@ -2,7 +2,7 @@ import { LinkComponent } from "../../../atoms/links/anchor-link/anchor-link.mjs"
2
2
  import "../../../atoms/links/anchor-link/index.mjs";
3
3
  import { FC, ReactNode } from "react";
4
4
  //#region src/molecules/menu/menu-item/menu-item.d.ts
5
- type MenuItemProps = {
5
+ export type MenuItemProps = {
6
6
  to: string;
7
7
  linkComponent?: LinkComponent;
8
8
  selected: boolean;
@@ -11,6 +11,5 @@ type MenuItemProps = {
11
11
  onClick?: () => void;
12
12
  external?: boolean;
13
13
  };
14
- declare const MenuItem: FC<MenuItemProps>;
15
- //#endregion
16
- export { MenuItem, MenuItemProps };
14
+ export declare const MenuItem: FC<MenuItemProps>;
15
+ //#endregion
@@ -1,10 +1,9 @@
1
1
  import { FC, ReactNode } from "react";
2
2
  //#region src/molecules/stat-card/stat-card.d.ts
3
- interface StatCardProps {
3
+ export interface StatCardProps {
4
4
  value: number | string;
5
5
  label: string;
6
6
  icon?: ReactNode;
7
7
  }
8
- declare const StatCard: FC<StatCardProps>;
9
- //#endregion
10
- export { StatCard, StatCardProps };
8
+ export declare const StatCard: FC<StatCardProps>;
9
+ //#endregion
@@ -4,15 +4,15 @@ const StatCard = ({ value, label, icon }) => /* @__PURE__ */ jsxs("div", {
4
4
  className: "glow-container flex min-h-30 min-w-0 flex-col items-center justify-between p-5",
5
5
  children: [
6
6
  icon && /* @__PURE__ */ jsx("span", {
7
- className: "text-accent text-2xl mb-1",
7
+ className: "text-accent mb-1 text-2xl",
8
8
  children: icon
9
9
  }),
10
10
  /* @__PURE__ */ jsx("span", {
11
- className: "text-accent text-shadow-lg w-full text-center text-2xl leading-none font-medium break-words tabular-nums sm:text-3xl md:text-4xl lg:text-6xl",
11
+ className: "text-accent w-full text-center text-2xl leading-none font-medium break-words tabular-nums text-shadow-lg sm:text-3xl md:text-4xl lg:text-6xl",
12
12
  children: value
13
13
  }),
14
14
  /* @__PURE__ */ jsx("span", {
15
- className: "text-accent text-base mt-2",
15
+ className: "text-accent mt-2 text-base",
16
16
  children: label
17
17
  })
18
18
  ]
@@ -1,9 +1,8 @@
1
1
  import { FC } from "react";
2
2
  //#region src/molecules/terminal-list-item/terminal-list-item.d.ts
3
- interface TerminalListItemProps {
3
+ export interface TerminalListItemProps {
4
4
  title: string;
5
5
  description: string;
6
6
  }
7
- declare const TerminalListItem: FC<TerminalListItemProps>;
8
- //#endregion
9
- export { TerminalListItem, TerminalListItemProps };
7
+ export declare const TerminalListItem: FC<TerminalListItemProps>;
8
+ //#endregion
@@ -6,6 +6,5 @@ interface TerminalProgressBarProps {
6
6
  completeMessage: string;
7
7
  shouldReduceMotion?: boolean;
8
8
  }
9
- declare const TerminalProgressBar: FC<TerminalProgressBarProps>;
10
- //#endregion
11
- export { TerminalProgressBar };
9
+ export declare const TerminalProgressBar: FC<TerminalProgressBarProps>;
10
+ //#endregion
@@ -1,5 +1,4 @@
1
1
  import { FC, PropsWithChildren } from "react";
2
2
  //#region src/molecules/typography/page-title/page-title.d.ts
3
- declare const PageTitle: FC<PropsWithChildren>;
4
- //#endregion
5
- export { PageTitle };
3
+ export declare const PageTitle: FC<PropsWithChildren>;
4
+ //#endregion
@@ -1,8 +1,7 @@
1
1
  import React from "react";
2
2
  //#region src/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.d.ts
3
- declare const ParagraphTitleWithIcon: React.FC<{
3
+ export declare const ParagraphTitleWithIcon: React.FC<{
4
4
  icon: React.ReactNode;
5
5
  children: string;
6
6
  }>;
7
- //#endregion
8
- export { ParagraphTitleWithIcon };
7
+ //#endregion
@@ -1,9 +1,8 @@
1
1
  import { FC } from "react";
2
2
  //#region src/molecules/typography/section-heading/section-heading.d.ts
3
- interface SectionHeadingProps {
3
+ export interface SectionHeadingProps {
4
4
  title: string;
5
5
  description?: string;
6
6
  }
7
- declare const SectionHeading: FC<SectionHeadingProps>;
8
- //#endregion
9
- export { SectionHeading, SectionHeadingProps };
7
+ export declare const SectionHeading: FC<SectionHeadingProps>;
8
+ //#endregion
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  const SectionHeading = ({ title, description }) => /* @__PURE__ */ jsxs("div", {
4
4
  className: "mb-5",
5
5
  children: [/* @__PURE__ */ jsxs("h2", {
6
- className: "text-accent text-shadow-md mb-1 text-lg font-bold",
6
+ className: "text-accent mb-1 text-lg font-bold text-shadow-md",
7
7
  children: [/* @__PURE__ */ jsx("span", {
8
8
  "aria-hidden": "true",
9
9
  children: ">\xA0"
@@ -12,6 +12,5 @@ interface Props {
12
12
  ariaLabel?: string;
13
13
  className?: string;
14
14
  }
15
- declare const SelfHostedVideo: FC<Props>;
16
- //#endregion
17
- export { SelfHostedVideo };
15
+ export declare const SelfHostedVideo: FC<Props>;
16
+ //#endregion
@@ -24,8 +24,7 @@ const SelfHostedVideo = ({ src, poster, caption, captions, autoPlay, muted, onEn
24
24
  label: "English",
25
25
  src: captions
26
26
  }),
27
- "Your browser does not support the video tag.",
28
- " ",
27
+ "Your browser does not support the video tag. ",
29
28
  /* @__PURE__ */ jsx("a", {
30
29
  href: src,
31
30
  children: "Download the video"
@@ -4,6 +4,5 @@ interface Props {
4
4
  videoId: string;
5
5
  title?: string;
6
6
  }
7
- declare const Youtube: FC<Props>;
8
- //#endregion
9
- export { Youtube };
7
+ export declare const Youtube: FC<Props>;
8
+ //#endregion
@@ -1,12 +1,11 @@
1
1
  import { CommandPaletteTrigger } from "../../../state/command-palette/command-palette-trigger.mjs";
2
2
  import { FC, ReactNode } from "react";
3
3
  //#region src/organism/command-palette/command-palette/command-palette.d.ts
4
- interface CommandPaletteProps {
4
+ export interface CommandPaletteProps {
5
5
  placeholder?: string;
6
6
  onOpenChange?: (open: boolean, trigger: CommandPaletteTrigger) => void;
7
7
  onQueryChange?: (query: string) => void;
8
8
  children: ReactNode;
9
9
  }
10
- declare const CommandPalette: FC<CommandPaletteProps>;
11
- //#endregion
12
- export { CommandPalette, CommandPaletteProps };
10
+ export declare const CommandPalette: FC<CommandPaletteProps>;
11
+ //#endregion
@@ -1,9 +1,8 @@
1
1
  import { FC, ReactNode } from "react";
2
2
  //#region src/organism/command-palette/command-palette-group/command-palette-group.d.ts
3
- interface CommandPaletteGroupProps {
3
+ export interface CommandPaletteGroupProps {
4
4
  label?: string;
5
5
  children: ReactNode;
6
6
  }
7
- declare const CommandPaletteGroup: FC<CommandPaletteGroupProps>;
8
- //#endregion
9
- export { CommandPaletteGroup, CommandPaletteGroupProps };
7
+ export declare const CommandPaletteGroup: FC<CommandPaletteGroupProps>;
8
+ //#endregion
@@ -1,11 +1,10 @@
1
1
  import { FC, ReactNode } from "react";
2
2
  //#region src/organism/command-palette/command-palette-item/command-palette-item.d.ts
3
- interface CommandPaletteItemProps {
3
+ export interface CommandPaletteItemProps {
4
4
  value: string;
5
5
  onSelect?: () => void;
6
6
  closeOnSelect?: boolean;
7
7
  children: ReactNode;
8
8
  }
9
- declare const CommandPaletteItem: FC<CommandPaletteItemProps>;
10
- //#endregion
11
- export { CommandPaletteItem, CommandPaletteItemProps };
9
+ export declare const CommandPaletteItem: FC<CommandPaletteItemProps>;
10
+ //#endregion
@@ -1,8 +1,7 @@
1
1
  import { FC } from "react";
2
2
  //#region src/organism/command-palette/toggle-motion-item/toggle-motion-item.d.ts
3
- interface ToggleMotionItemProps {
3
+ export interface ToggleMotionItemProps {
4
4
  onTrack?: () => void;
5
5
  }
6
- declare const ToggleMotionItem: FC<ToggleMotionItemProps>;
7
- //#endregion
8
- export { ToggleMotionItem, ToggleMotionItemProps };
6
+ export declare const ToggleMotionItem: FC<ToggleMotionItemProps>;
7
+ //#endregion
@@ -4,6 +4,5 @@ interface CookieConsentBannerProps {
4
4
  onAccept: () => void;
5
5
  onReject: () => void;
6
6
  }
7
- declare const CookieConsentBanner: ({ decided, onAccept, onReject }: CookieConsentBannerProps) => import("react/jsx-runtime").JSX.Element;
8
- //#endregion
9
- export { CookieConsentBanner };
7
+ export declare const CookieConsentBanner: ({ decided, onAccept, onReject }: CookieConsentBannerProps) => import("react").JSX.Element;
8
+ //#endregion
@@ -20,20 +20,20 @@ const CookieConsentBanner = (t0) => {
20
20
  let t2;
21
21
  if ($[1] !== acceptConsent || $[2] !== decided || $[3] !== glassmorphismClass || $[4] !== rejectConsent) {
22
22
  t2 = !decided && /* @__PURE__ */ jsxs("div", {
23
- className: `${glassmorphismClass} fixed right-0 bottom-5 left-0 mx-auto my-0 p-4 flex max-w-[95%] flex-col items-center gap-4 lg:max-w-[60%] lg:flex-row z-50`,
23
+ className: `${glassmorphismClass} fixed right-0 bottom-5 left-0 z-50 mx-auto my-0 flex max-w-[95%] flex-col items-center gap-4 p-4 lg:max-w-[60%] lg:flex-row`,
24
24
  role: "dialog",
25
25
  "aria-live": "polite",
26
26
  "aria-label": "Cookie consent banner",
27
27
  children: [/* @__PURE__ */ jsxs("p", {
28
28
  className: "text-shadow-md",
29
29
  children: [
30
- "This website uses cookies. Take the",
31
- " ",
30
+ "This website uses cookies. Take the ",
32
31
  /* @__PURE__ */ jsx("span", {
33
32
  className: "text-confirm",
34
33
  children: "red pill"
35
34
  }),
36
- ", and you'll see how deep the rabbit hole goes. Take the ",
35
+ ", and you'll see how deep the rabbit hole goes. Take the",
36
+ " ",
37
37
  /* @__PURE__ */ jsx("span", {
38
38
  className: "text-undo",
39
39
  children: "blue pill"
@@ -1,26 +1,25 @@
1
1
  import { LinkComponent } from "../../atoms/links/anchor-link/anchor-link.mjs";
2
2
  import "../../atoms/links/anchor-link/index.mjs";
3
- import { FooterNavTrackingCallbacks, FooterSocialTrackingCallbacks } from "./use-footer-store.mjs";
3
+ import { FooterSocialTrackingCallbacks } from "./use-footer-store.mjs";
4
4
  import { SocialContactLinks } from "../social-contacts/social-contacts.mjs";
5
5
  import "../social-contacts/index.mjs";
6
6
  import { FC } from "react";
7
7
  //#region src/organism/footer/footer.d.ts
8
- interface FooterNavHrefs {
9
- blog: string;
10
- art: string;
11
- aboutMe: string;
12
- archive: string;
13
- tags: string;
14
- contact: string;
8
+ export interface FooterLink {
9
+ label: string;
10
+ to: string;
11
+ onClick?: () => void;
15
12
  }
16
- interface FooterProps {
13
+ export interface FooterProps {
17
14
  linkComponent?: LinkComponent;
18
15
  author: string;
19
- navHrefs: FooterNavHrefs;
16
+ /** The navigation links, in display order. */
17
+ links: FooterLink[];
18
+ /** Where the contact call to action of the social contacts leads. */
19
+ contactHref: string;
20
20
  socialLinks: SocialContactLinks;
21
- navTracking?: FooterNavTrackingCallbacks;
22
21
  socialTracking?: FooterSocialTrackingCallbacks;
23
22
  }
24
- declare const Footer: FC<FooterProps>;
23
+ export declare const Footer: FC<FooterProps>;
25
24
  //#endregion
26
- export { Footer, FooterNavHrefs, FooterProps, type SocialContactLinks };
25
+ export type { SocialContactLinks };
@@ -7,125 +7,49 @@ import { c } from "react/compiler-runtime";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region src/organism/footer/footer.tsx
9
9
  const Footer = (t0) => {
10
- const $ = c(52);
11
- const { author, navHrefs, socialLinks, navTracking, socialTracking, linkComponent } = t0;
12
- const { effects } = useFooterStore(navTracking, socialTracking);
13
- const { onTrackHome, onTrackBlog, onTrackArt, onTrackAboutMe, onTrackArchive, onTrackTags, onTrackGithub, onTrackLinkedin, onTrackContact, onTrackMedium, onTrackDevto, onTrackTwitter, onTrackFacebook, onTrackInstagram } = effects;
10
+ const $ = c(29);
11
+ const { author, links, contactHref, socialLinks, socialTracking, linkComponent } = t0;
12
+ const { effects } = useFooterStore(socialTracking);
13
+ const { onTrackGithub, onTrackLinkedin, onTrackContact, onTrackMedium, onTrackDevto, onTrackTwitter, onTrackFacebook, onTrackInstagram } = effects;
14
14
  let t1;
15
- if ($[0] !== linkComponent || $[1] !== onTrackHome) {
16
- t1 = /* @__PURE__ */ jsx(MenuItem, {
17
- linkComponent,
18
- to: "/",
19
- onClick: onTrackHome,
20
- selected: false,
21
- children: "Home"
22
- });
15
+ if ($[0] !== linkComponent || $[1] !== links) {
16
+ let t2;
17
+ if ($[3] !== linkComponent) {
18
+ t2 = (link) => /* @__PURE__ */ jsx(MenuItem, {
19
+ linkComponent,
20
+ to: link.to,
21
+ onClick: link.onClick,
22
+ selected: false,
23
+ children: link.label
24
+ }, link.label);
25
+ $[3] = linkComponent;
26
+ $[4] = t2;
27
+ } else t2 = $[4];
28
+ t1 = links.map(t2);
23
29
  $[0] = linkComponent;
24
- $[1] = onTrackHome;
30
+ $[1] = links;
25
31
  $[2] = t1;
26
32
  } else t1 = $[2];
27
33
  let t2;
28
- if ($[3] !== linkComponent || $[4] !== navHrefs.blog || $[5] !== onTrackBlog) {
29
- t2 = /* @__PURE__ */ jsx(MenuItem, {
30
- linkComponent,
31
- to: navHrefs.blog,
32
- onClick: onTrackBlog,
33
- selected: false,
34
- children: "Blog"
34
+ if ($[5] !== t1) {
35
+ t2 = /* @__PURE__ */ jsx("div", {
36
+ className: "grid w-full grid-cols-2 gap-3 px-5 py-7 sm:mx-auto sm:max-w-4xl sm:auto-cols-auto sm:grid-flow-col sm:grid-cols-none sm:justify-center",
37
+ children: t1
35
38
  });
36
- $[3] = linkComponent;
37
- $[4] = navHrefs.blog;
38
- $[5] = onTrackBlog;
39
+ $[5] = t1;
39
40
  $[6] = t2;
40
41
  } else t2 = $[6];
41
42
  let t3;
42
- if ($[7] !== linkComponent || $[8] !== navHrefs.art || $[9] !== onTrackArt) {
43
- t3 = /* @__PURE__ */ jsx(MenuItem, {
44
- linkComponent,
45
- to: navHrefs.art,
46
- onClick: onTrackArt,
47
- selected: false,
48
- children: "Art"
49
- });
50
- $[7] = linkComponent;
51
- $[8] = navHrefs.art;
52
- $[9] = onTrackArt;
53
- $[10] = t3;
54
- } else t3 = $[10];
43
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
44
+ t3 = /* @__PURE__ */ jsx("hr", {});
45
+ $[7] = t3;
46
+ } else t3 = $[7];
55
47
  let t4;
56
- if ($[11] !== linkComponent || $[12] !== navHrefs.aboutMe || $[13] !== onTrackAboutMe) {
57
- t4 = /* @__PURE__ */ jsx(MenuItem, {
58
- linkComponent,
59
- to: navHrefs.aboutMe,
60
- onClick: onTrackAboutMe,
61
- selected: false,
62
- children: "About Me"
63
- });
64
- $[11] = linkComponent;
65
- $[12] = navHrefs.aboutMe;
66
- $[13] = onTrackAboutMe;
67
- $[14] = t4;
68
- } else t4 = $[14];
69
- let t5;
70
- if ($[15] !== linkComponent || $[16] !== navHrefs.archive || $[17] !== onTrackArchive) {
71
- t5 = /* @__PURE__ */ jsx(MenuItem, {
72
- linkComponent,
73
- to: navHrefs.archive,
74
- onClick: onTrackArchive,
75
- selected: false,
76
- children: "Archive"
77
- });
78
- $[15] = linkComponent;
79
- $[16] = navHrefs.archive;
80
- $[17] = onTrackArchive;
81
- $[18] = t5;
82
- } else t5 = $[18];
83
- let t6;
84
- if ($[19] !== linkComponent || $[20] !== navHrefs.tags || $[21] !== onTrackTags) {
85
- t6 = /* @__PURE__ */ jsx(MenuItem, {
86
- linkComponent,
87
- to: navHrefs.tags,
88
- onClick: onTrackTags,
89
- selected: false,
90
- children: "Tags"
91
- });
92
- $[19] = linkComponent;
93
- $[20] = navHrefs.tags;
94
- $[21] = onTrackTags;
95
- $[22] = t6;
96
- } else t6 = $[22];
97
- let t7;
98
- if ($[23] !== t1 || $[24] !== t2 || $[25] !== t3 || $[26] !== t4 || $[27] !== t5 || $[28] !== t6) {
99
- t7 = /* @__PURE__ */ jsxs("div", {
100
- className: "grid grid-cols-2 gap-3 py-7 px-5 w-full sm:grid-cols-[repeat(6,auto)] sm:justify-center sm:max-w-4xl sm:mx-auto",
101
- children: [
102
- t1,
103
- t2,
104
- t3,
105
- t4,
106
- t5,
107
- t6
108
- ]
109
- });
110
- $[23] = t1;
111
- $[24] = t2;
112
- $[25] = t3;
113
- $[26] = t4;
114
- $[27] = t5;
115
- $[28] = t6;
116
- $[29] = t7;
117
- } else t7 = $[29];
118
- let t8;
119
- if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
120
- t8 = /* @__PURE__ */ jsx("hr", {});
121
- $[30] = t8;
122
- } else t8 = $[30];
123
- let t9;
124
- if ($[31] !== linkComponent || $[32] !== navHrefs.contact || $[33] !== onTrackContact || $[34] !== onTrackDevto || $[35] !== onTrackFacebook || $[36] !== onTrackGithub || $[37] !== onTrackInstagram || $[38] !== onTrackLinkedin || $[39] !== onTrackMedium || $[40] !== onTrackTwitter || $[41] !== socialLinks) {
125
- t9 = /* @__PURE__ */ jsx(SocialContacts, {
48
+ if ($[8] !== contactHref || $[9] !== linkComponent || $[10] !== onTrackContact || $[11] !== onTrackDevto || $[12] !== onTrackFacebook || $[13] !== onTrackGithub || $[14] !== onTrackInstagram || $[15] !== onTrackLinkedin || $[16] !== onTrackMedium || $[17] !== onTrackTwitter || $[18] !== socialLinks) {
49
+ t4 = /* @__PURE__ */ jsx(SocialContacts, {
126
50
  linkComponent,
127
51
  links: socialLinks,
128
- contactHref: navHrefs.contact,
52
+ contactHref,
129
53
  onTrackGithub,
130
54
  onTrackLinkedin,
131
55
  onTrackContact,
@@ -135,59 +59,59 @@ const Footer = (t0) => {
135
59
  onTrackFacebook,
136
60
  onTrackInstagram
137
61
  });
138
- $[31] = linkComponent;
139
- $[32] = navHrefs.contact;
140
- $[33] = onTrackContact;
141
- $[34] = onTrackDevto;
142
- $[35] = onTrackFacebook;
143
- $[36] = onTrackGithub;
144
- $[37] = onTrackInstagram;
145
- $[38] = onTrackLinkedin;
146
- $[39] = onTrackMedium;
147
- $[40] = onTrackTwitter;
148
- $[41] = socialLinks;
149
- $[42] = t9;
150
- } else t9 = $[42];
151
- const t10 = `> Made with 💝 by ${author} 'Chicio'`;
152
- let t11;
153
- if ($[43] === Symbol.for("react.memo_cache_sentinel")) {
154
- t11 = /* @__PURE__ */ jsx(Cursor, {});
155
- $[43] = t11;
156
- } else t11 = $[43];
157
- let t12;
158
- if ($[44] !== t10) {
159
- t12 = /* @__PURE__ */ jsxs(TerminalLine, { children: [t10, t11] });
160
- $[44] = t10;
161
- $[45] = t12;
162
- } else t12 = $[45];
163
- let t13;
164
- if ($[46] !== t12 || $[47] !== t9) {
165
- t13 = /* @__PURE__ */ jsxs("div", {
166
- className: "w-full flex flex-col items-center justify-center gap-3 py-6 px-4 bg-gradient-to-b from-general-background-light to-primary-color-dark",
167
- children: [t9, t12]
62
+ $[8] = contactHref;
63
+ $[9] = linkComponent;
64
+ $[10] = onTrackContact;
65
+ $[11] = onTrackDevto;
66
+ $[12] = onTrackFacebook;
67
+ $[13] = onTrackGithub;
68
+ $[14] = onTrackInstagram;
69
+ $[15] = onTrackLinkedin;
70
+ $[16] = onTrackMedium;
71
+ $[17] = onTrackTwitter;
72
+ $[18] = socialLinks;
73
+ $[19] = t4;
74
+ } else t4 = $[19];
75
+ const t5 = `> Made with 💝 by ${author} 'Chicio'`;
76
+ let t6;
77
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
78
+ t6 = /* @__PURE__ */ jsx(Cursor, {});
79
+ $[20] = t6;
80
+ } else t6 = $[20];
81
+ let t7;
82
+ if ($[21] !== t5) {
83
+ t7 = /* @__PURE__ */ jsxs(TerminalLine, { children: [t5, t6] });
84
+ $[21] = t5;
85
+ $[22] = t7;
86
+ } else t7 = $[22];
87
+ let t8;
88
+ if ($[23] !== t4 || $[24] !== t7) {
89
+ t8 = /* @__PURE__ */ jsxs("div", {
90
+ className: "from-general-background-light to-primary-color-dark flex w-full flex-col items-center justify-center gap-3 bg-gradient-to-b px-4 py-6",
91
+ children: [t4, t7]
168
92
  });
169
- $[46] = t12;
170
- $[47] = t9;
171
- $[48] = t13;
172
- } else t13 = $[48];
173
- let t14;
174
- if ($[49] !== t13 || $[50] !== t7) {
175
- t14 = /* @__PURE__ */ jsx("footer", {
93
+ $[23] = t4;
94
+ $[24] = t7;
95
+ $[25] = t8;
96
+ } else t8 = $[25];
97
+ let t9;
98
+ if ($[26] !== t2 || $[27] !== t8) {
99
+ t9 = /* @__PURE__ */ jsx("footer", {
176
100
  className: "bg-primary-dark border-t-accent relative w-full shrink-0 snap-start border-t-2 border-solid shadow-lg",
177
101
  children: /* @__PURE__ */ jsxs("div", {
178
- className: "flex flex-col w-full items-center",
102
+ className: "flex w-full flex-col items-center",
179
103
  children: [
180
- t7,
181
- t8,
182
- t13
104
+ t2,
105
+ t3,
106
+ t8
183
107
  ]
184
108
  })
185
109
  });
186
- $[49] = t13;
187
- $[50] = t7;
188
- $[51] = t14;
189
- } else t14 = $[51];
190
- return t14;
110
+ $[26] = t2;
111
+ $[27] = t8;
112
+ $[28] = t9;
113
+ } else t9 = $[28];
114
+ return t9;
191
115
  };
192
116
  //#endregion
193
117
  export { Footer };
@@ -1,3 +1,3 @@
1
- import { FooterNavTrackingCallbacks, FooterSocialTrackingCallbacks } from "./use-footer-store.mjs";
2
- import { Footer, FooterNavHrefs, FooterProps } from "./footer.mjs";
3
- export { Footer, type FooterNavHrefs, type FooterNavTrackingCallbacks, type FooterProps, type FooterSocialTrackingCallbacks };
1
+ import { FooterSocialTrackingCallbacks } from "./use-footer-store.mjs";
2
+ import { Footer, FooterLink, FooterProps } from "./footer.mjs";
3
+ export { Footer, type FooterLink, type FooterProps, type FooterSocialTrackingCallbacks };
@@ -1,14 +1,6 @@
1
1
  import "matrix-component-store";
2
2
  //#region src/organism/footer/use-footer-store.d.ts
3
- interface FooterNavTrackingCallbacks {
4
- onTrackHome?: () => void;
5
- onTrackBlog?: () => void;
6
- onTrackArt?: () => void;
7
- onTrackAboutMe?: () => void;
8
- onTrackArchive?: () => void;
9
- onTrackTags?: () => void;
10
- }
11
- interface FooterSocialTrackingCallbacks {
3
+ export interface FooterSocialTrackingCallbacks {
12
4
  onTrackGithub?: () => void;
13
5
  onTrackLinkedin?: () => void;
14
6
  onTrackContact?: () => void;
@@ -18,5 +10,4 @@ interface FooterSocialTrackingCallbacks {
18
10
  onTrackFacebook?: () => void;
19
11
  onTrackInstagram?: () => void;
20
12
  }
21
- //#endregion
22
- export { FooterNavTrackingCallbacks, FooterSocialTrackingCallbacks };
13
+ //#endregion