matrix-design-system 1.0.0 → 1.1.1

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 (131) hide show
  1. package/README.md +26 -10
  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/molecules/accordion/accordion/accordion.d.mts +2 -3
  50. package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.d.mts +4 -5
  51. package/dist/molecules/breadcrumbs/breadcrumb/breadcrumb.mjs +5 -5
  52. package/dist/molecules/buttons/pagination-navigation/pagination-navigation.d.mts +3 -4
  53. package/dist/molecules/buttons/pills-buttons/pills-buttons.d.mts +3 -4
  54. package/dist/molecules/buttons/pills-buttons/pills-buttons.mjs +2 -2
  55. package/dist/molecules/buttons/segmented-control/segmented-control.d.mts +3 -4
  56. package/dist/molecules/buttons/segmented-control/segmented-control.mjs +2 -2
  57. package/dist/molecules/buttons/social-contact/social-contact.d.mts +3 -4
  58. package/dist/molecules/buttons/tag/tag.d.mts +3 -4
  59. package/dist/molecules/buttons/terminal-button/terminal-button.d.mts +3 -4
  60. package/dist/molecules/buttons/terminal-button/terminal-button.mjs +2 -2
  61. package/dist/molecules/chart/chart-panel/chart-panel.d.mts +3 -4
  62. package/dist/molecules/chart/chart-tooltip/chart-tooltip.d.mts +3 -4
  63. package/dist/molecules/chart/donut-chart/donut-chart.d.mts +3 -4
  64. package/dist/molecules/chart/donut-chart/donut-chart.mjs +1 -1
  65. package/dist/molecules/containers/content-container/content-container.d.mts +2 -3
  66. package/dist/molecules/containers/content-container/content-container.mjs +1 -1
  67. package/dist/molecules/controls/control-slider/control-slider.d.mts +2 -3
  68. package/dist/molecules/controls/control-slider/control-slider.mjs +2 -2
  69. package/dist/molecules/effects/matrix-background/matrix-background.d.mts +2 -3
  70. package/dist/molecules/effects/matrix-background/matrix-background.mjs +3 -3
  71. package/dist/molecules/effects/matrix-header-background/matrix-header-background.d.mts +2 -3
  72. package/dist/molecules/effects/matrix-header-background/matrix-header-background.mjs +2 -2
  73. package/dist/molecules/effects/matrix-terminal/matrix-terminal.d.mts +2 -3
  74. package/dist/molecules/effects/matrix-terminal/matrix-terminal.mjs +1 -1
  75. package/dist/molecules/form/filter-input/filter-input.d.mts +3 -4
  76. package/dist/molecules/form/form-error-summary/form-error-summary.d.mts +3 -4
  77. package/dist/molecules/form/form-field/form-field.d.mts +3 -4
  78. package/dist/molecules/form/form-success-message/form-success-message.d.mts +3 -4
  79. package/dist/molecules/form/form-success-message/form-success-message.mjs +2 -2
  80. package/dist/molecules/form/form-textarea/form-textarea.d.mts +3 -4
  81. package/dist/molecules/lightbox-image/lightbox-image.d.mts +2 -3
  82. package/dist/molecules/links/pills-links/pills-links.d.mts +4 -5
  83. package/dist/molecules/menu/close/close.d.mts +2 -3
  84. package/dist/molecules/menu/close/close.mjs +1 -1
  85. package/dist/molecules/menu/dropdown-menu/dropdown-menu.d.mts +3 -4
  86. package/dist/molecules/menu/dropdown-menu/dropdown-menu.mjs +3 -3
  87. package/dist/molecules/menu/hamburger-menu/hamburger-menu.d.mts +2 -3
  88. package/dist/molecules/menu/menu-item/menu-item.d.mts +3 -4
  89. package/dist/molecules/stat-card/stat-card.d.mts +3 -4
  90. package/dist/molecules/stat-card/stat-card.mjs +3 -3
  91. package/dist/molecules/terminal-list-item/terminal-list-item.d.mts +3 -4
  92. package/dist/molecules/terminal-progress-bar/terminal-progress-bar.d.mts +2 -3
  93. package/dist/molecules/typography/page-title/page-title.d.mts +2 -3
  94. package/dist/molecules/typography/paragraph-title-with-icon/paragraph-title-with-icon.d.mts +2 -3
  95. package/dist/molecules/typography/section-heading/section-heading.d.mts +3 -4
  96. package/dist/molecules/typography/section-heading/section-heading.mjs +1 -1
  97. package/dist/molecules/video/self-hosted-video/self-hosted-video.d.mts +2 -3
  98. package/dist/molecules/video/self-hosted-video/self-hosted-video.mjs +1 -2
  99. package/dist/molecules/video/youtube/youtube.d.mts +2 -3
  100. package/dist/organism/command-palette/command-palette/command-palette.d.mts +3 -4
  101. package/dist/organism/command-palette/command-palette-group/command-palette-group.d.mts +3 -4
  102. package/dist/organism/command-palette/command-palette-item/command-palette-item.d.mts +3 -4
  103. package/dist/organism/command-palette/toggle-motion-item/toggle-motion-item.d.mts +3 -4
  104. package/dist/organism/cookie-consent-banner/cookie-consent-banner.d.mts +2 -3
  105. package/dist/organism/cookie-consent-banner/cookie-consent-banner.mjs +4 -4
  106. package/dist/organism/footer/footer.d.mts +4 -4
  107. package/dist/organism/footer/footer.mjs +3 -3
  108. package/dist/organism/footer/use-footer-store.d.mts +3 -4
  109. package/dist/organism/header/brand-header/brand-header.d.mts +3 -4
  110. package/dist/organism/header/brand-header/brand-header.mjs +1 -1
  111. package/dist/organism/image-carousel/fullscreen-modal/fullscreen-modal.mjs +1 -1
  112. package/dist/organism/image-carousel/image-carousel.d.mts +3 -4
  113. package/dist/organism/image-carousel/image-carousel.mjs +2 -2
  114. package/dist/organism/image-carousel/navigation-buttons/navigation-buttons.mjs +2 -2
  115. package/dist/organism/lightbox/lightbox.d.mts +2 -3
  116. package/dist/organism/loading-bar/loading-bar.d.mts +2 -3
  117. package/dist/organism/menu/menu.d.mts +4 -5
  118. package/dist/organism/menu/menu.mjs +10 -10
  119. package/dist/organism/menu/use-menu-store.d.mts +2 -3
  120. package/dist/organism/profile-hero/profile-hero.d.mts +3 -4
  121. package/dist/organism/profile-photo/profile-photo.d.mts +3 -4
  122. package/dist/organism/profile-photo/profile-photo.mjs +1 -1
  123. package/dist/organism/reading-content-progress-bar/reading-content-progress-bar.d.mts +2 -3
  124. package/dist/organism/social-contacts/social-contacts.d.mts +4 -5
  125. package/dist/state/command-palette/command-palette-context.d.mts +3 -4
  126. package/dist/state/command-palette/command-palette-events.d.mts +5 -6
  127. package/dist/state/command-palette/command-palette-trigger.d.mts +2 -3
  128. package/dist/state/lightbox/lightbox-events.d.mts +4 -5
  129. package/dist/state/matrix-rain/matrix-settings.d.mts +9 -10
  130. package/dist/state/motion/motion.d.mts +4 -5
  131. package/package.json +23 -22
package/README.md CHANGED
@@ -17,11 +17,11 @@ would break.
17
17
  Everything in the root barrel works with just those installed. Three groups need heavier libraries,
18
18
  so they live behind their own entry points and you install a peer only if you import one:
19
19
 
20
- | Import from | Install | For |
21
- |---|---|---|
22
- | `matrix-design-system/chart` | `recharts` | `ChartPanel`, `ChartTooltip`, `DonutChart` |
23
- | `matrix-design-system/markdown` | `react-markdown`, `unified`, the remark/rehype plugins | `Markdown` |
24
- | `matrix-design-system/command-palette` | `cmdk` | `CommandPalette` and its items |
20
+ | Import from | Install | For |
21
+ | -------------------------------------- | ------------------------------------------------------ | ------------------------------------------ |
22
+ | `matrix-design-system/chart` | `recharts` | `ChartPanel`, `ChartTooltip`, `DonutChart` |
23
+ | `matrix-design-system/markdown` | `react-markdown`, `unified`, the remark/rehype plugins | `Markdown` |
24
+ | `matrix-design-system/command-palette` | `cmdk` | `CommandPalette` and its items |
25
25
 
26
26
  Nothing else is optional: the rain effect is part of the design system's identity — `BrandHeader`
27
27
  and the matrix backgrounds all render it — so `matrix-rain-webgpu` is a plain dependency and comes
@@ -50,12 +50,12 @@ components are near-invisible on white.
50
50
  Style your own layout with Tailwind utilities — they resolve against this theme, so use its names
51
51
  rather than stock Tailwind colours:
52
52
 
53
- | Family | Names |
54
- |---|---|
55
- | Brand | `primary` (#00FF41), `primary-dark`, `secondary`, `accent` (#39FF14) |
53
+ | Family | Names |
54
+ | -------- | ---------------------------------------------------------------------------- |
55
+ | Brand | `primary` (#00FF41), `primary-dark`, `secondary`, `accent` (#39FF14) |
56
56
  | Surfaces | `general-background` (#001100), `general-background-light`, `black`, `white` |
57
- | Text | `primary-text` (#E8FFE8), `secondary-text`, `text-above-primary` |
58
- | Fonts | `font-sans` → Open Sans · `font-mono` → Courier Prime |
57
+ | Text | `primary-text` (#E8FFE8), `secondary-text`, `text-above-primary` |
58
+ | Fonts | `font-sans` → Open Sans · `font-mono` → Courier Prime |
59
59
 
60
60
  **The breakpoint scale is overridden**: `xs` 576 · `sm` 768 · `md` 992 · `lg` 1200 · `xl` 1600 ·
61
61
  `2xl` 2000 (px). So `md:` starts at 992px, not 768px — the most common way a layout built with this
@@ -93,3 +93,19 @@ custom properties, and the two global preferences (motion, glassmorphism variant
93
93
  ## License
94
94
 
95
95
  MIT © Fabrizio Duroni
96
+
97
+ ## Claude Design sync
98
+
99
+ `.design-sync/` and `.ds-sync/` in this folder are the [claude.ai/design](https://claude.ai/design)
100
+ converter. It reads the Storybook stories beside each component — there are no hand-authored
101
+ previews, so a story is the only place a component's example lives.
102
+
103
+ **Run `/design-sync` from a session rooted at this package, not at the repository root.** Every path
104
+ the converter uses is resolved from its working directory and it does no upward search, so a
105
+ root-level run fails with `[CONFIG] … ENOENT`. Rooting the session here also keeps the skill
106
+ consistent with itself, since it stages `.ds-sync/` relative to the session root.
107
+
108
+ The two folders must stay siblings: the fork in `.design-sync/overrides/` imports `../.ds-sync/lib/`,
109
+ and `.design-sync/node_modules` symlinks to `../.ds-sync/node_modules`.
110
+
111
+ `.design-sync/NOTES.md` has the full invocation and the re-sync watch-list.
@@ -2,6 +2,5 @@ import { HTMLMotionProps } from "framer-motion";
2
2
  import { FC } from "react";
3
3
  //#region src/atoms/animation/motion-div/motion-div.d.ts
4
4
  type MotionDivProps = HTMLMotionProps<"div">;
5
- declare const MotionDiv: FC<MotionDivProps>;
6
- //#endregion
7
- export { MotionDiv };
5
+ export declare const MotionDiv: FC<MotionDivProps>;
6
+ //#endregion
@@ -3,6 +3,5 @@ import React, { FC, PropsWithChildren } from "react";
3
3
  type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & PropsWithChildren & {
4
4
  className?: string;
5
5
  };
6
- declare const Button: FC<ButtonProps>;
7
- //#endregion
8
- export { Button };
6
+ export declare const Button: FC<ButtonProps>;
7
+ //#endregion
@@ -3,7 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  //#region src/atoms/buttons/button/button.tsx
4
4
  const Button = ({ className, children, ...props }) => {
5
5
  return /* @__PURE__ */ jsx("button", {
6
- className: `glow-container bg-transparent p-3 text-primary-text cursor-pointer text-left flex items-center gap-3${className ? ` ${className}` : ""}`,
6
+ className: `glow-container text-primary-text flex cursor-pointer items-center bg-transparent p-3 text-left gap-3${className ? ` ${className}` : ""}`,
7
7
  ...props,
8
8
  children
9
9
  });
@@ -5,6 +5,5 @@ interface SwitchProps {
5
5
  onChange: (v: boolean) => void;
6
6
  label?: string;
7
7
  }
8
- declare const Switch: FC<SwitchProps>;
9
- //#endregion
10
- export { Switch };
8
+ export declare const Switch: FC<SwitchProps>;
9
+ //#endregion
@@ -8,8 +8,8 @@ const Switch = (t0) => {
8
8
  const { checked, onChange, label } = t0;
9
9
  const { effects } = useSwitchStore(checked, onChange);
10
10
  const { onToggle } = effects;
11
- const t1 = `relative inline-flex h-5 w-9 shrink-0 items-center rounded-full border transition-colors duration-150 cursor-pointer ${checked ? "border-accent bg-accent/20 shadow-[0_0_8px_var(--color-accent-alpha-50)]" : "border-accent/30 bg-transparent"}`;
12
- const t2 = `pointer-events-none inline-block h-3.5 w-3.5 rounded-full transition-transform duration-150 ${checked ? "translate-x-[18px] bg-accent shadow-[0_0_6px_var(--color-accent)]" : "translate-x-[3px] bg-accent/40"}`;
11
+ const t1 = `relative inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border transition-colors duration-150 ${checked ? "border-accent bg-accent/20 shadow-[0_0_8px_var(--color-accent-alpha-50)]" : "border-accent/30 bg-transparent"}`;
12
+ const t2 = `pointer-events-none inline-block h-3.5 w-3.5 rounded-full transition-transform duration-150 ${checked ? "bg-accent translate-x-[18px] shadow-[0_0_6px_var(--color-accent)]" : "bg-accent/40 translate-x-[3px]"}`;
13
13
  let t3;
14
14
  if ($[0] !== t2) {
15
15
  t3 = /* @__PURE__ */ jsx("span", { className: t2 });
@@ -8,6 +8,5 @@ type CallToActionExternalWithTrackingProps = {
8
8
  children?: ReactNode;
9
9
  onClick?: () => void;
10
10
  };
11
- declare const CallToActionExternalWithTracking: FC<CallToActionExternalWithTrackingProps>;
12
- //#endregion
13
- export { CallToActionExternalWithTracking };
11
+ export declare const CallToActionExternalWithTracking: FC<CallToActionExternalWithTrackingProps>;
12
+ //#endregion
@@ -2,13 +2,12 @@ import { LinkComponent } from "../../links/anchor-link/anchor-link.mjs";
2
2
  import "../../links/anchor-link/index.mjs";
3
3
  import { FC, ReactNode } from "react";
4
4
  //#region src/atoms/call-to-actions/call-to-action-internal-with-tracking/call-to-action-internal-with-tracking.d.ts
5
- type CallToActionInternalWithTrackingProps = {
5
+ export type CallToActionInternalWithTrackingProps = {
6
6
  to: string;
7
7
  linkComponent?: LinkComponent;
8
8
  className?: string;
9
9
  children?: ReactNode;
10
10
  onClick?: () => void;
11
11
  };
12
- declare const CallToActionInternalWithTracking: FC<CallToActionInternalWithTrackingProps>;
13
- //#endregion
14
- export { CallToActionInternalWithTracking, CallToActionInternalWithTrackingProps };
12
+ export declare const CallToActionInternalWithTracking: FC<CallToActionInternalWithTrackingProps>;
13
+ //#endregion
@@ -1,10 +1,9 @@
1
1
  import { FC, ReactNode } from "react";
2
2
  //#region src/atoms/chip/chip.d.ts
3
- interface ChipProps {
3
+ export interface ChipProps {
4
4
  children: ReactNode;
5
5
  big?: boolean;
6
6
  className?: string;
7
7
  }
8
- declare const Chip: FC<ChipProps>;
9
- //#endregion
10
- export { Chip, ChipProps };
8
+ export declare const Chip: FC<ChipProps>;
9
+ //#endregion
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  //#region src/atoms/chip/chip.tsx
3
3
  const Chip = ({ children, big = false, className }) => {
4
4
  return /* @__PURE__ */ jsx("span", {
5
- className: `glow-container text-shadow-sm p-2 block text-primary-text ${big ? "text-2xl" : "text-sm"} leading-none${className ? ` ${className}` : ""}`,
5
+ className: `glow-container text-primary-text block p-2 text-shadow-sm ${big ? "text-2xl" : "text-sm"} leading-none${className ? ` ${className}` : ""}`,
6
6
  children
7
7
  });
8
8
  };
@@ -3,6 +3,5 @@ import { FC, PropsWithChildren } from "react";
3
3
  interface GlassmorphismBackgroundProps {
4
4
  className?: string;
5
5
  }
6
- declare const GlassmorphismBackground: FC<PropsWithChildren<GlassmorphismBackgroundProps>>;
7
- //#endregion
8
- export { GlassmorphismBackground };
6
+ export declare const GlassmorphismBackground: FC<PropsWithChildren<GlassmorphismBackgroundProps>>;
7
+ //#endregion
@@ -2,11 +2,10 @@ import { ImageComponent, ImageComponentProps } from "../plain-image/plain-image.
2
2
  import "../plain-image/index.mjs";
3
3
  import { FC } from "react";
4
4
  //#region src/atoms/effects/image-glow/image-glow.d.ts
5
- interface ImageGlowProps extends ImageComponentProps {
5
+ export interface ImageGlowProps extends ImageComponentProps {
6
6
  className?: string;
7
7
  noPlaceholder?: boolean;
8
8
  imageComponent?: ImageComponent;
9
9
  }
10
- declare const ImageGlow: FC<ImageGlowProps>;
11
- //#endregion
12
- export { ImageGlow, ImageGlowProps };
10
+ export declare const ImageGlow: FC<ImageGlowProps>;
11
+ //#endregion
@@ -1,6 +1,5 @@
1
1
  import { ImagePlaceholder } from "../plain-image/plain-image.mjs";
2
2
  import "../plain-image/index.mjs";
3
3
  //#region src/atoms/effects/image-shimmer-placeholder/image-shimmer-placeholder.d.ts
4
- declare const imageShimmerPlaceholder: ImagePlaceholder;
5
- //#endregion
6
- export { imageShimmerPlaceholder };
4
+ export declare const imageShimmerPlaceholder: ImagePlaceholder;
5
+ //#endregion
@@ -1,5 +1,4 @@
1
1
  import React from "react";
2
2
  //#region src/atoms/effects/matrix-rain/matrix-rain/matrix-rain.d.ts
3
- declare const MatrixRain: React.NamedExoticComponent<{}>;
4
- //#endregion
5
- export { MatrixRain };
3
+ export declare const MatrixRain: React.NamedExoticComponent<{}>;
4
+ //#endregion
@@ -1,11 +1,10 @@
1
1
  import { FC, ReactNode } from "react";
2
2
  //#region src/atoms/effects/overlay/overlay.d.ts
3
- interface OverlayProps {
3
+ export interface OverlayProps {
4
4
  delay: number;
5
5
  onClick?: () => void;
6
6
  children?: ReactNode;
7
7
  className?: string;
8
8
  }
9
- declare const Overlay: FC<OverlayProps>;
10
- //#endregion
11
- export { Overlay, OverlayProps };
9
+ export declare const Overlay: FC<OverlayProps>;
10
+ //#endregion
@@ -10,7 +10,7 @@ const Overlay = (t0) => {
10
10
  const delay = t1 === void 0 ? 0 : t1;
11
11
  const className = t2 === void 0 ? "" : t2;
12
12
  useOverlayStore();
13
- const t3 = `fixed top-0 left-0 w-full h-full bg-black-alpha-75 backdrop-blur-sm z-40 ${className}`;
13
+ const t3 = `bg-black-alpha-75 fixed top-0 left-0 z-40 h-full w-full backdrop-blur-sm ${className}`;
14
14
  let t4;
15
15
  let t5;
16
16
  let t6;
@@ -1,10 +1,9 @@
1
1
  import { FC, PropsWithChildren } from "react";
2
2
  //#region src/atoms/effects/pills/pills.d.ts
3
- declare const RedPillNoReflection: FC<PropsWithChildren<{
3
+ export declare const RedPillNoReflection: FC<PropsWithChildren<{
4
4
  pillBodyClassName?: string;
5
5
  pillLabelClassName?: string;
6
6
  }>>;
7
- declare const RedPill: FC<PropsWithChildren>;
8
- declare const BluePill: FC<PropsWithChildren>;
9
- //#endregion
10
- export { BluePill, RedPill, RedPillNoReflection };
7
+ export declare const RedPill: FC<PropsWithChildren>;
8
+ export declare const BluePill: FC<PropsWithChildren>;
9
+ //#endregion
@@ -1,18 +1,18 @@
1
1
  import { CSSProperties, FC, ImgHTMLAttributes, ReactEventHandler } from "react";
2
2
  //#region src/atoms/effects/plain-image/plain-image.d.ts
3
- type ImagePlaceholder = "blur" | "empty" | `data:image/${string}`;
3
+ export type ImagePlaceholder = "blur" | "empty" | `data:image/${string}`;
4
4
  /**
5
5
  * A plain URL, or the object shape every bundler's static image import produces (Next, Vite and
6
6
  * webpack all emit at least `src`). Accepting both keeps the design system usable with or without a
7
7
  * build step that understands image imports.
8
8
  */
9
- type ImageSource = string | {
9
+ export type ImageSource = string | {
10
10
  src: string;
11
11
  width: number;
12
12
  height: number;
13
13
  blurDataURL?: string;
14
14
  };
15
- interface ImageComponentProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "src" | "alt" | "placeholder" | "width" | "height" | "loading"> {
15
+ export interface ImageComponentProps extends Omit<ImgHTMLAttributes<HTMLImageElement>, "src" | "alt" | "placeholder" | "width" | "height" | "loading"> {
16
16
  src: ImageSource;
17
17
  alt: string;
18
18
  width?: number | `${number}`;
@@ -33,13 +33,12 @@ interface ImageComponentProps extends Omit<ImgHTMLAttributes<HTMLImageElement>,
33
33
  * What the design system needs from an image renderer. Consumers inject an optimising implementation
34
34
  * (`next/image`, and so on); without one, components fall back to {@link PlainImage}.
35
35
  */
36
- type ImageComponent = FC<ImageComponentProps>;
36
+ export type ImageComponent = FC<ImageComponentProps>;
37
37
  /**
38
38
  * The framework-free default: a real `<img>`. It reproduces the `next/image` behaviours design-system
39
39
  * layouts depend on — `fill` positioning, a placeholder painted behind the image until it loads, and
40
40
  * lazy loading unless the caller marks the image as priority. Optimisation-only props are
41
41
  * destructured away instead of spread onto the DOM, where React would warn about them.
42
42
  */
43
- declare const PlainImage: ImageComponent;
44
- //#endregion
45
- export { ImageComponent, ImageComponentProps, ImagePlaceholder, ImageSource, PlainImage };
43
+ export declare const PlainImage: ImageComponent;
44
+ //#endregion
@@ -1,4 +1,3 @@
1
1
  //#region src/atoms/icons/chat-icon/chat-icon.d.ts
2
- declare const ChatIcon: () => import("react/jsx-runtime").JSX.Element;
3
- //#endregion
4
- export { ChatIcon };
2
+ export declare const ChatIcon: () => import("react").JSX.Element;
3
+ //#endregion
@@ -3,7 +3,7 @@ import { jsx } from "react/jsx-runtime";
3
3
  import { BiChat } from "react-icons/bi";
4
4
  //#region src/atoms/icons/chat-icon/chat-icon.tsx
5
5
  const ChatIcon = () => /* @__PURE__ */ jsx(RoundedIcon, {
6
- className: "animate-pulse flex items-center justify-center text-text-above-primary",
6
+ className: "text-text-above-primary flex animate-pulse items-center justify-center",
7
7
  children: /* @__PURE__ */ jsx(BiChat, {
8
8
  className: "size-5 md:size-7",
9
9
  "aria-hidden": "true"
@@ -1,6 +1,5 @@
1
1
  //#region src/atoms/icons/copy-icon/copy-icon.d.ts
2
- declare const CopyIcon: () => import("react/jsx-runtime").JSX.Element;
3
- declare const CopiedIcon: () => import("react/jsx-runtime").JSX.Element;
4
- declare const CopyErrorIcon: () => import("react/jsx-runtime").JSX.Element;
5
- //#endregion
6
- export { CopiedIcon, CopyErrorIcon, CopyIcon };
2
+ export declare const CopyIcon: () => import("react").JSX.Element;
3
+ export declare const CopiedIcon: () => import("react").JSX.Element;
4
+ export declare const CopyErrorIcon: () => import("react").JSX.Element;
5
+ //#endregion
@@ -3,6 +3,5 @@ import { FC, PropsWithChildren } from "react";
3
3
  interface RoundedIconProps extends PropsWithChildren {
4
4
  className?: string;
5
5
  }
6
- declare const RoundedIcon: FC<RoundedIconProps>;
7
- //#endregion
8
- export { RoundedIcon };
6
+ export declare const RoundedIcon: FC<RoundedIconProps>;
7
+ //#endregion
@@ -10,8 +10,8 @@ import { AnchorHTMLAttributes, FC, ReactNode } from "react";
10
10
  * the odds any one link gets clicked.
11
11
  * - `"never"`: no prefetching at all.
12
12
  */
13
- type PrefetchStrategy = "viewport" | "hover" | "never";
14
- interface LinkComponentProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href"> {
13
+ export type PrefetchStrategy = "viewport" | "hover" | "never";
14
+ export interface LinkComponentProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "href"> {
15
15
  href: string;
16
16
  children?: ReactNode;
17
17
  prefetch?: PrefetchStrategy;
@@ -20,12 +20,11 @@ interface LinkComponentProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement
20
20
  * What the design system needs from a link renderer. Consumers inject a router-aware implementation
21
21
  * (`next/link`, a framework `<Link>`, and so on); without one, links fall back to {@link AnchorLink}.
22
22
  */
23
- type LinkComponent = FC<LinkComponentProps>;
23
+ export type LinkComponent = FC<LinkComponentProps>;
24
24
  /**
25
25
  * The framework-free default: a real `<a>`, which navigates correctly everywhere but without
26
26
  * client-side routing. `prefetch` is destructured away rather than spread, since it is not a DOM
27
27
  * attribute and React would warn about it.
28
28
  */
29
- declare const AnchorLink: LinkComponent;
30
- //#endregion
31
- export { AnchorLink, LinkComponent, LinkComponentProps, PrefetchStrategy };
29
+ export declare const AnchorLink: LinkComponent;
30
+ //#endregion
@@ -8,6 +8,5 @@ type ExternalLinkProps = {
8
8
  className?: string;
9
9
  onClick?: () => void;
10
10
  };
11
- declare const ExternalLink: FC<ExternalLinkProps>;
12
- //#endregion
13
- export { ExternalLink };
11
+ export declare const ExternalLink: FC<ExternalLinkProps>;
12
+ //#endregion
@@ -2,7 +2,7 @@ import { LinkComponent, PrefetchStrategy } from "../anchor-link/anchor-link.mjs"
2
2
  import "../anchor-link/index.mjs";
3
3
  import { FC, ReactNode } from "react";
4
4
  //#region src/atoms/links/internal-link/internal-link.d.ts
5
- interface InternalLinkProps {
5
+ export interface InternalLinkProps {
6
6
  to: string;
7
7
  className?: string;
8
8
  children?: ReactNode;
@@ -10,6 +10,5 @@ interface InternalLinkProps {
10
10
  onClick?: () => void;
11
11
  linkComponent?: LinkComponent;
12
12
  }
13
- declare const InternalLink: FC<InternalLinkProps>;
14
- //#endregion
15
- export { InternalLink, InternalLinkProps };
13
+ export declare const InternalLink: FC<InternalLinkProps>;
14
+ //#endregion
@@ -5,6 +5,5 @@ interface LoaderProps {
5
5
  className?: string;
6
6
  label?: string;
7
7
  }
8
- declare const Loader: FC<LoaderProps>;
9
- //#endregion
10
- export { Loader };
8
+ export declare const Loader: FC<LoaderProps>;
9
+ //#endregion
@@ -38,7 +38,7 @@ const Loader = (t0) => {
38
38
  delay: i * .15,
39
39
  ease: "easeInOut"
40
40
  },
41
- className: `${sizeClasses[size]} rounded-full bg-accent`
41
+ className: `${sizeClasses[size]} bg-accent rounded-full`
42
42
  }, i));
43
43
  $[0] = size;
44
44
  $[1] = t4;
@@ -4,6 +4,5 @@ interface InputFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {
4
4
  className?: string;
5
5
  ref?: RefObject<HTMLInputElement | null>;
6
6
  }
7
- declare const InputField: FC<InputFieldProps>;
8
- //#endregion
9
- export { InputField };
7
+ export declare const InputField: FC<InputFieldProps>;
8
+ //#endregion
@@ -1,9 +1,8 @@
1
1
  import { FC, InputHTMLAttributes, ReactElement } from "react";
2
2
  //#region src/atoms/typography/label/label.d.ts
3
- interface LabelProps extends Omit<InputHTMLAttributes<HTMLLabelElement>, "className"> {
3
+ export interface LabelProps extends Omit<InputHTMLAttributes<HTMLLabelElement>, "className"> {
4
4
  value: string;
5
5
  icon?: ReactElement;
6
6
  }
7
- declare const Label: FC<LabelProps>;
8
- //#endregion
9
- export { Label, LabelProps };
7
+ export declare const Label: FC<LabelProps>;
8
+ //#endregion
@@ -1,7 +1,6 @@
1
1
  //#region src/atoms/typography/markdown/markdown.d.ts
2
- declare const Markdown: import("react").MemoExoticComponent<({ content, id }: {
2
+ export declare const Markdown: import("react").MemoExoticComponent<({ content, id }: {
3
3
  content: string;
4
4
  id: string;
5
- }) => import("react/jsx-runtime").JSX.Element[]>;
6
- //#endregion
7
- export { Markdown };
5
+ }) => import("react").JSX.Element[]>;
6
+ //#endregion
@@ -1,13 +1,12 @@
1
1
  import { FC, PropsWithChildren } from "react";
2
2
  //#region src/atoms/typography/terminal-blocks/terminal-blocks.d.ts
3
- type TerminalLineSize = "sm" | "md" | "lg";
4
- declare const TerminalLine: FC<PropsWithChildren<{
3
+ export type TerminalLineSize = "sm" | "md" | "lg";
4
+ export declare const TerminalLine: FC<PropsWithChildren<{
5
5
  size?: TerminalLineSize;
6
6
  }>>;
7
- declare const TerminalQuoteLine: FC<PropsWithChildren>;
8
- declare const Cursor: FC<PropsWithChildren>;
9
- declare const ErrorText: FC<PropsWithChildren>;
10
- declare const SuccessText: FC<PropsWithChildren>;
11
- declare const QuoteText: FC<PropsWithChildren>;
12
- //#endregion
13
- export { Cursor, ErrorText, QuoteText, SuccessText, TerminalLine, TerminalLineSize, TerminalQuoteLine };
7
+ export declare const TerminalQuoteLine: FC<PropsWithChildren>;
8
+ export declare const Cursor: FC<PropsWithChildren>;
9
+ export declare const ErrorText: FC<PropsWithChildren>;
10
+ export declare const SuccessText: FC<PropsWithChildren>;
11
+ export declare const QuoteText: FC<PropsWithChildren>;
12
+ //#endregion
@@ -12,13 +12,13 @@ const TERMINAL_LINE_SIZE_CLASS = {
12
12
  };
13
13
  const TerminalLine = ({ children, size = "sm" }) => {
14
14
  return /* @__PURE__ */ jsx("div", {
15
- className: `text-shadow-md mb-2 font-mono font-bold leading-tight text-accent break-words ${TERMINAL_LINE_SIZE_CLASS[size]}`,
15
+ className: `text-accent mb-2 font-mono leading-tight font-bold break-words text-shadow-md ${TERMINAL_LINE_SIZE_CLASS[size]}`,
16
16
  children
17
17
  });
18
18
  };
19
19
  const TerminalQuoteLine = ({ children }) => {
20
20
  return /* @__PURE__ */ jsx("div", {
21
- className: "my-2 leading-tight break-words text-xs sm:text-sm text-center",
21
+ className: "my-2 text-center text-xs leading-tight break-words sm:text-sm",
22
22
  children
23
23
  });
24
24
  };
@@ -35,7 +35,7 @@ const SuccessText = ({ children }) => /* @__PURE__ */ jsx("span", {
35
35
  children
36
36
  });
37
37
  const QuoteText = ({ children }) => /* @__PURE__ */ jsx("span", {
38
- className: "w-full text-center font-bold text-accent italic m-6 font-mono",
38
+ className: "text-accent m-6 w-full text-center font-mono font-bold italic",
39
39
  children
40
40
  });
41
41
  //#endregion
@@ -4,6 +4,5 @@ interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement
4
4
  className?: string;
5
5
  ref?: RefObject<HTMLTextAreaElement | null>;
6
6
  }
7
- declare const Textarea: FC<TextareaProps>;
8
- //#endregion
9
- export { Textarea };
7
+ export declare const Textarea: FC<TextareaProps>;
8
+ //#endregion
@@ -1,4 +1,3 @@
1
1
  //#region src/hooks/use-clipboard-available.d.ts
2
- declare const useClipboardAvailable: () => boolean;
3
- //#endregion
4
- export { useClipboardAvailable };
2
+ export declare const useClipboardAvailable: () => boolean;
3
+ //#endregion
@@ -5,6 +5,5 @@ interface DeviceCapabilities {
5
5
  saveData: boolean;
6
6
  isLowEnd: boolean;
7
7
  }
8
- declare function useDeviceCapabilities(): DeviceCapabilities;
9
- //#endregion
10
- export { useDeviceCapabilities };
8
+ export declare function useDeviceCapabilities(): DeviceCapabilities;
9
+ //#endregion
@@ -3,8 +3,7 @@ interface UseGlassmorphismOptions {
3
3
  noScale?: boolean;
4
4
  increaseContrast?: boolean;
5
5
  }
6
- declare const useGlassmorphism: ({ noScale, increaseContrast }?: UseGlassmorphismOptions) => {
6
+ export declare const useGlassmorphism: ({ noScale, increaseContrast }?: UseGlassmorphismOptions) => {
7
7
  glassmorphismClass: string;
8
8
  };
9
- //#endregion
10
- export { useGlassmorphism };
9
+ //#endregion
@@ -2,6 +2,5 @@
2
2
  interface UseInViewListOptions {
3
3
  rootMargin: string;
4
4
  }
5
- declare const useInViewList: <T extends HTMLElement = HTMLDivElement>({ rootMargin }: UseInViewListOptions) => [(el: T | null) => void, boolean];
6
- //#endregion
7
- export { useInViewList };
5
+ export declare const useInViewList: <T extends HTMLElement = HTMLDivElement>({ rootMargin }: UseInViewListOptions) => [(el: T | null) => void, boolean];
6
+ //#endregion
@@ -4,6 +4,5 @@ interface UseInViewOptions {
4
4
  rootMargin?: string;
5
5
  triggerOnce?: boolean;
6
6
  }
7
- declare const useInView: <T extends HTMLElement = HTMLDivElement>(options?: UseInViewOptions) => [element: React.RefObject<T | null>, boolean];
8
- //#endregion
9
- export { useInView };
7
+ export declare const useInView: <T extends HTMLElement = HTMLDivElement>(options?: UseInViewOptions) => [element: React.RefObject<T | null>, boolean];
8
+ //#endregion
@@ -1,4 +1,3 @@
1
1
  //#region src/hooks/use-is-ios.d.ts
2
- declare const useIsIOS: () => boolean;
3
- //#endregion
4
- export { useIsIOS };
2
+ export declare const useIsIOS: () => boolean;
3
+ //#endregion
@@ -1,4 +1,3 @@
1
1
  //#region src/hooks/use-lock-body-scroll.d.ts
2
- declare const useLockBodyScroll: () => void;
3
- //#endregion
4
- export { useLockBodyScroll };
2
+ export declare const useLockBodyScroll: () => void;
3
+ //#endregion
@@ -1,5 +1,4 @@
1
1
  import { MatrixRainSettings } from "../state/matrix-rain/matrix-settings.mjs";
2
2
  //#region src/hooks/use-matrix-settings-store.d.ts
3
- declare const useMatrixSettingsStore: () => MatrixRainSettings;
4
- //#endregion
5
- export { useMatrixSettingsStore };
3
+ export declare const useMatrixSettingsStore: () => MatrixRainSettings;
4
+ //#endregion
@@ -8,6 +8,5 @@
8
8
  * - New tabs: Automatically read from localStorage on mount
9
9
  * - SSR: Defaults to enabled to prevent hydration mismatches
10
10
  */
11
- declare const useMotionStore: () => boolean;
12
- //#endregion
13
- export { useMotionStore };
11
+ export declare const useMotionStore: () => boolean;
12
+ //#endregion
@@ -1,5 +1,4 @@
1
1
  //#region src/hooks/use-os-modifier-key.d.ts
2
- type OsModifierKey = "meta" | "ctrl";
3
- declare const useOsModifierKey: () => OsModifierKey | null;
4
- //#endregion
5
- export { OsModifierKey, useOsModifierKey };
2
+ export type OsModifierKey = "meta" | "ctrl";
3
+ export declare const useOsModifierKey: () => OsModifierKey | null;
4
+ //#endregion
@@ -1,8 +1,7 @@
1
1
  //#region src/hooks/use-reading-progress.d.ts
2
- declare function useReadingProgress(targetId: string): {
2
+ export declare function useReadingProgress(targetId: string): {
3
3
  percentage: number;
4
4
  started: boolean;
5
5
  status: "uploading" | "complete";
6
6
  };
7
- //#endregion
8
- export { useReadingProgress };
7
+ //#endregion
@@ -1,4 +1,3 @@
1
1
  //#region src/hooks/use-reduced-motions.d.ts
2
- declare function useReducedMotions(): boolean;
3
- //#endregion
4
- export { useReducedMotions };
2
+ export declare function useReducedMotions(): boolean;
3
+ //#endregion