@dtsports/design-system 0.2.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.
- package/LICENSE +21 -0
- package/README.md +156 -0
- package/dist/components/accordion.d.ts +19 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +26 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert.d.ts +26 -0
- package/dist/components/alert.d.ts.map +1 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/app-shell.d.ts +21 -0
- package/dist/components/app-shell.d.ts.map +1 -0
- package/dist/components/app-shell.js +25 -0
- package/dist/components/app-shell.js.map +1 -0
- package/dist/components/aspect-ratio.d.ts +16 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/aspect-ratio.js +17 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar-group.d.ts +31 -0
- package/dist/components/avatar-group.d.ts.map +1 -0
- package/dist/components/avatar.d.ts +15 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/avatar.js +20 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.d.ts +27 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +51 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +33 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +58 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +15 -0
- package/dist/components/calendar.d.ts.map +1 -0
- package/dist/components/calendar.js +33 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/capacity-bar.d.ts +32 -0
- package/dist/components/capacity-bar.d.ts.map +1 -0
- package/dist/components/capacity-bar.js +29 -0
- package/dist/components/capacity-bar.js.map +1 -0
- package/dist/components/card.d.ts +26 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +20 -0
- package/dist/components/checkbox.d.ts +11 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +19 -0
- package/dist/components/chip.d.ts +23 -0
- package/dist/components/chip.d.ts.map +1 -0
- package/dist/components/chip.js +32 -0
- package/dist/components/chip.js.map +1 -0
- package/dist/components/collapsible.d.ts +16 -0
- package/dist/components/collapsible.js +22 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.d.ts +38 -0
- package/dist/components/combobox.d.ts.map +1 -0
- package/dist/components/combobox.js +17 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/confirm-action.d.ts +36 -0
- package/dist/components/confirm-action.d.ts.map +1 -0
- package/dist/components/confirm-action.js +21 -0
- package/dist/components/confirm-action.js.map +1 -0
- package/dist/components/container.js.map +1 -0
- package/dist/components/date-picker.d.ts.map +1 -0
- package/dist/components/date-picker.js +22 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/dialog.d.ts +28 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.js +55 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +39 -0
- package/dist/components/dropdown-menu.d.ts.map +1 -0
- package/dist/components/dropdown-menu.js +47 -0
- package/dist/components/empty-state.d.ts +15 -0
- package/dist/components/empty-state.d.ts.map +1 -0
- package/dist/components/empty-state.js +6 -0
- package/dist/components/form-field.d.ts +32 -0
- package/dist/components/form-field.d.ts.map +1 -0
- package/dist/components/form-field.js +31 -0
- package/dist/components/form-field.js.map +1 -0
- package/dist/components/input.d.ts +10 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +6 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.d.ts +11 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +13 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/live-pill.d.ts +14 -0
- package/dist/components/live-pill.js +15 -0
- package/dist/components/live-pill.js.map +1 -0
- package/dist/components/metric-tile.d.ts +23 -0
- package/dist/components/metric-tile.d.ts.map +1 -0
- package/dist/components/money-breakdown.d.ts +36 -0
- package/dist/components/money-breakdown.d.ts.map +1 -0
- package/dist/components/money-breakdown.js +12 -0
- package/dist/components/money-breakdown.js.map +1 -0
- package/dist/components/number-input.d.ts +16 -0
- package/dist/components/number-input.d.ts.map +1 -0
- package/dist/components/number-input.js +30 -0
- package/dist/components/number-input.js.map +1 -0
- package/dist/components/pagination.d.ts +27 -0
- package/dist/components/pagination.d.ts.map +1 -0
- package/dist/components/pagination.js +52 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.d.ts +24 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +28 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +13 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/progress.js +17 -0
- package/dist/components/radio-group.d.ts +10 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +17 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +22 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +27 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +40 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +10 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +14 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sidebar.d.ts.map +1 -0
- package/dist/components/sidebar.js +48 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +23 -0
- package/dist/components/skeleton.js +25 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +14 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +30 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/spec.d.ts +35 -0
- package/dist/components/spec.js +31 -0
- package/dist/components/spec.js.map +1 -0
- package/dist/components/spinner.d.ts +20 -0
- package/dist/components/spinner.d.ts.map +1 -0
- package/dist/components/spinner.js +18 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stack.d.ts +48 -0
- package/dist/components/stack.d.ts.map +1 -0
- package/dist/components/stack.js +43 -0
- package/dist/components/stack.js.map +1 -0
- package/dist/components/status-pill.js +34 -0
- package/dist/components/status-pill.js.map +1 -0
- package/dist/components/switch.d.ts +9 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/switch.js +15 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +31 -0
- package/dist/components/table.d.ts.map +1 -0
- package/dist/components/tabs.d.ts +22 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +28 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +8 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +6 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/theme-provider.d.ts +35 -0
- package/dist/components/theme-provider.d.ts.map +1 -0
- package/dist/components/theme-provider.js.map +1 -0
- package/dist/components/theme-toggle.d.ts +10 -0
- package/dist/components/theme-toggle.d.ts.map +1 -0
- package/dist/components/theme-toggle.js.map +1 -0
- package/dist/components/three-state.d.ts +39 -0
- package/dist/components/three-state.d.ts.map +1 -0
- package/dist/components/three-state.js +24 -0
- package/dist/components/three-state.js.map +1 -0
- package/dist/components/timestamp.d.ts +24 -0
- package/dist/components/timestamp.js +64 -0
- package/dist/components/timestamp.js.map +1 -0
- package/dist/components/toaster.d.ts +27 -0
- package/dist/components/toaster.d.ts.map +1 -0
- package/dist/components/toaster.js +21 -0
- package/dist/components/toaster.js.map +1 -0
- package/dist/components/tooltip.d.ts +28 -0
- package/dist/components/tooltip.d.ts.map +1 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/components/top-bar.d.ts +13 -0
- package/dist/components/top-bar.d.ts.map +1 -0
- package/dist/components/top-bar.js +16 -0
- package/dist/index.d.ts +76 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +10 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/marketing/footer.d.ts +31 -0
- package/dist/marketing/footer.d.ts.map +1 -0
- package/dist/marketing/footer.js +9 -0
- package/dist/marketing/footer.js.map +1 -0
- package/dist/marketing/hero.d.ts +29 -0
- package/dist/marketing/hero.d.ts.map +1 -0
- package/dist/marketing/hero.js +7 -0
- package/dist/marketing/hero.js.map +1 -0
- package/dist/marketing/index.d.ts +21 -0
- package/dist/marketing/index.d.ts.map +1 -0
- package/dist/marketing/index.js +21 -0
- package/dist/marketing/index.js.map +1 -0
- package/dist/marketing/logo-cloud.d.ts +15 -0
- package/dist/marketing/logo-cloud.d.ts.map +1 -0
- package/dist/marketing/logo-cloud.js +6 -0
- package/dist/marketing/logo-cloud.js.map +1 -0
- package/dist/marketing/nav.d.ts +33 -0
- package/dist/marketing/nav.d.ts.map +1 -0
- package/dist/marketing/nav.js +14 -0
- package/dist/marketing/nav.js.map +1 -0
- package/dist/marketing/prose.d.ts +12 -0
- package/dist/marketing/prose.d.ts.map +1 -0
- package/dist/marketing/prose.js +18 -0
- package/dist/marketing/prose.js.map +1 -0
- package/dist/marketing/section.d.ts +22 -0
- package/dist/marketing/section.d.ts.map +1 -0
- package/dist/marketing/section.js +7 -0
- package/dist/marketing/section.js.map +1 -0
- package/dist/showcase/components/code-block.d.ts +11 -0
- package/dist/showcase/components/code-block.d.ts.map +1 -0
- package/dist/showcase/components/code-block.js +20 -0
- package/dist/showcase/components/code-block.js.map +1 -0
- package/dist/showcase/components/example.d.ts +16 -0
- package/dist/showcase/components/example.d.ts.map +1 -0
- package/dist/showcase/components/example.js +14 -0
- package/dist/showcase/components/example.js.map +1 -0
- package/dist/showcase/components/section.d.ts +21 -0
- package/dist/showcase/components/section.d.ts.map +1 -0
- package/dist/showcase/components/section.js +10 -0
- package/dist/showcase/components/section.js.map +1 -0
- package/dist/showcase/components/swatch.d.ts +17 -0
- package/dist/showcase/components/swatch.d.ts.map +1 -0
- package/dist/showcase/components/swatch.js +6 -0
- package/dist/showcase/components/swatch.js.map +1 -0
- package/dist/showcase/index.d.ts +17 -0
- package/dist/showcase/index.d.ts.map +1 -0
- package/dist/showcase/index.js +17 -0
- package/dist/showcase/index.js.map +1 -0
- package/dist/showcase/page.d.ts +2 -0
- package/dist/showcase/page.d.ts.map +1 -0
- package/dist/showcase/page.js +1085 -0
- package/dist/showcase/page.js.map +1 -0
- package/dist/styles/generated/tokens.d.ts +131 -0
- package/dist/styles/generated/tokens.d.ts.map +1 -0
- package/dist/styles/generated/tokens.js +107 -0
- package/dist/styles/generated/tokens.js.map +1 -0
- package/dist/styles/globals.css +131 -0
- package/dist/styles/tailwind.preset.d.ts +181 -0
- package/dist/styles/tailwind.preset.d.ts.map +1 -0
- package/dist/styles/tailwind.preset.js +114 -0
- package/dist/styles/tailwind.preset.js.map +1 -0
- package/dist/tokens/index.d.ts +176 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +139 -0
- package/dist/tokens/index.js.map +1 -0
- package/dist/tokens/tokens.json +154 -0
- package/package.json +124 -0
- package/src/components/accordion.tsx +76 -0
- package/src/components/alert.tsx +113 -0
- package/src/components/app-shell.tsx +43 -0
- package/src/components/aspect-ratio.tsx +18 -0
- package/src/components/avatar-group.tsx +73 -0
- package/src/components/avatar.tsx +81 -0
- package/src/components/badge.tsx +77 -0
- package/src/components/breadcrumb.tsx +121 -0
- package/src/components/button.tsx +83 -0
- package/src/components/calendar.tsx +85 -0
- package/src/components/capacity-bar.tsx +80 -0
- package/src/components/card.tsx +104 -0
- package/src/components/checkbox.tsx +46 -0
- package/src/components/chip.tsx +74 -0
- package/src/components/collapsible.tsx +54 -0
- package/src/components/combobox.tsx +140 -0
- package/src/components/confirm-action.tsx +111 -0
- package/src/components/container.tsx +39 -0
- package/src/components/date-picker.tsx +98 -0
- package/src/components/dialog.tsx +174 -0
- package/src/components/drawer.tsx +157 -0
- package/src/components/dropdown-menu.tsx +200 -0
- package/src/components/empty-state.tsx +46 -0
- package/src/components/form-field.tsx +118 -0
- package/src/components/input.tsx +29 -0
- package/src/components/label.tsx +35 -0
- package/src/components/live-pill.tsx +35 -0
- package/src/components/metric-tile.tsx +83 -0
- package/src/components/money-breakdown.tsx +92 -0
- package/src/components/number-input.tsx +113 -0
- package/src/components/pagination.tsx +157 -0
- package/src/components/popover.tsx +46 -0
- package/src/components/progress.tsx +34 -0
- package/src/components/radio-group.tsx +46 -0
- package/src/components/scroll-area.tsx +55 -0
- package/src/components/select.tsx +169 -0
- package/src/components/separator.tsx +34 -0
- package/src/components/sidebar.tsx +168 -0
- package/src/components/skeleton.tsx +85 -0
- package/src/components/slider.tsx +58 -0
- package/src/components/spec.tsx +59 -0
- package/src/components/spinner.tsx +36 -0
- package/src/components/stack.tsx +80 -0
- package/src/components/status-pill.tsx +100 -0
- package/src/components/switch.tsx +37 -0
- package/src/components/table.tsx +129 -0
- package/src/components/tabs.tsx +72 -0
- package/src/components/textarea.tsx +27 -0
- package/src/components/theme-provider.tsx +131 -0
- package/src/components/theme-toggle.tsx +34 -0
- package/src/components/three-state.tsx +90 -0
- package/src/components/timestamp.tsx +107 -0
- package/src/components/toaster.tsx +55 -0
- package/src/components/tooltip.tsx +49 -0
- package/src/components/top-bar.tsx +29 -0
- package/src/index.ts +221 -0
- package/src/lib/utils.ts +10 -0
- package/src/marketing/footer.tsx +93 -0
- package/src/marketing/hero.tsx +92 -0
- package/src/marketing/index.ts +24 -0
- package/src/marketing/logo-cloud.tsx +35 -0
- package/src/marketing/nav.tsx +122 -0
- package/src/marketing/prose.tsx +45 -0
- package/src/marketing/section.tsx +77 -0
- package/src/showcase/components/code-block.tsx +66 -0
- package/src/showcase/components/example.tsx +47 -0
- package/src/showcase/components/section.tsx +70 -0
- package/src/showcase/components/swatch.tsx +52 -0
- package/src/showcase/index.tsx +16 -0
- package/src/showcase/page.tsx +4216 -0
- package/src/styles/generated/tokens.ts +119 -0
- package/src/styles/globals.css +131 -0
- package/src/styles/tailwind.preset.ts +134 -0
- package/src/test/a11y.test.tsx +638 -0
- package/src/test/marketing-a11y.test.tsx +138 -0
- package/src/test/setup.ts +47 -0
- package/src/tokens/index.ts +154 -0
- package/src/tokens/tokens.json +154 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
import { Toaster as SonnerToaster, toast } from "sonner";
|
|
3
|
+
/**
|
|
4
|
+
* Toaster — the design-system-themed sonner toaster. Mount ONCE inside
|
|
5
|
+
* ThemeProvider (typically in the root layout next to your app shell):
|
|
6
|
+
*
|
|
7
|
+
* <ThemeProvider>
|
|
8
|
+
* <App />
|
|
9
|
+
* <Toaster />
|
|
10
|
+
* </ThemeProvider>
|
|
11
|
+
*
|
|
12
|
+
* Fire toasts anywhere with the re-exported `toast`:
|
|
13
|
+
*
|
|
14
|
+
* toast.success("Game cancelled. 8 refunds issued as credit.");
|
|
15
|
+
*
|
|
16
|
+
* Per §3.10 every action outcome must be visible — toasts are the
|
|
17
|
+
* default surface for async success/failure. Per §3.7 cheap reversals
|
|
18
|
+
* get a 5s undo action:
|
|
19
|
+
*
|
|
20
|
+
* toast("Draft deleted", {
|
|
21
|
+
* action: { label: "Undo", onClick: restoreDraft },
|
|
22
|
+
* });
|
|
23
|
+
*/
|
|
24
|
+
export type ToasterProps = React.ComponentProps<typeof SonnerToaster>;
|
|
25
|
+
export declare function Toaster(props: ToasterProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export { toast };
|
|
27
|
+
//# sourceMappingURL=toaster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../src/components/toaster.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGzD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAuB1C;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Toaster as SonnerToaster, toast } from "sonner";
|
|
4
|
+
import { useTheme } from "./theme-provider.js";
|
|
5
|
+
export function Toaster(props) {
|
|
6
|
+
const { theme } = useTheme();
|
|
7
|
+
return (_jsx(SonnerToaster, { theme: theme, duration: 5000, toastOptions: {
|
|
8
|
+
classNames: {
|
|
9
|
+
toast: "group rounded border border-border bg-background text-foreground shadow-md text-sm",
|
|
10
|
+
description: "text-text-muted text-xs",
|
|
11
|
+
actionButton: "bg-brand-forest text-brand-forest-foreground rounded-sm text-xs font-medium",
|
|
12
|
+
cancelButton: "bg-bg-muted text-text-muted rounded-sm text-xs",
|
|
13
|
+
success: "[&_[data-icon]]:text-success",
|
|
14
|
+
warning: "[&_[data-icon]]:text-warning",
|
|
15
|
+
error: "[&_[data-icon]]:text-danger",
|
|
16
|
+
info: "[&_[data-icon]]:text-info",
|
|
17
|
+
},
|
|
18
|
+
}, ...props }));
|
|
19
|
+
}
|
|
20
|
+
export { toast };
|
|
21
|
+
//# sourceMappingURL=toaster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toaster.js","sourceRoot":"","sources":["../../src/components/toaster.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAyB5C,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,OAAO,CACL,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,IAAI,EACd,YAAY,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EACH,oFAAoF;gBACtF,WAAW,EAAE,yBAAyB;gBACtC,YAAY,EACV,6EAA6E;gBAC/E,YAAY,EAAE,gDAAgD;gBAC9D,OAAO,EAAE,8BAA8B;gBACvC,OAAO,EAAE,8BAA8B;gBACvC,KAAK,EAAE,6BAA6B;gBACpC,IAAI,EAAE,2BAA2B;aAClC;SACF,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
3
|
+
/**
|
|
4
|
+
* Tooltip — keyboard-accessible hover hints.
|
|
5
|
+
*
|
|
6
|
+
* <Tooltip>
|
|
7
|
+
* <TooltipTrigger asChild><Button size="icon">…</Button></TooltipTrigger>
|
|
8
|
+
* <TooltipContent>Cancel game</TooltipContent>
|
|
9
|
+
* </Tooltip>
|
|
10
|
+
*
|
|
11
|
+
* NOTE: A `<TooltipProvider>` must wrap the app root for tooltips to
|
|
12
|
+
* function — the design system's `<ThemeProvider>` already includes it,
|
|
13
|
+
* so consumers get this for free.
|
|
14
|
+
*
|
|
15
|
+
* Use for:
|
|
16
|
+
* - Icon-only button labels (preferred over native `title=` which is
|
|
17
|
+
* mouse-only and not keyboard accessible)
|
|
18
|
+
* - "Did you know" tips beside an input label
|
|
19
|
+
* - Truncated text expansions
|
|
20
|
+
*
|
|
21
|
+
* Don't use for critical info or anything a user needs to interact with —
|
|
22
|
+
* tooltips hide on blur and aren't reachable on touch devices.
|
|
23
|
+
*/
|
|
24
|
+
export declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
|
|
25
|
+
export declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
|
|
26
|
+
export declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
|
|
27
|
+
export declare const TooltipContent: React.ForwardRefExoticComponent<Omit<TooltipPrimitive.TooltipContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
28
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAG5D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,eAAe,iDAA4B,CAAC;AACzD,eAAO,MAAM,OAAO,yCAAwB,CAAC;AAC7C,eAAO,MAAM,cAAc,gHAA2B,CAAC;AAEvD,eAAO,MAAM,cAAc,gKAgBzB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC,QAAQ,CAAC;AACzD,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC;AAEvD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAG5C,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAClD,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,OAAO,IACvB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,gHAAgH,EAChH,2CAA2C,EAC3C,SAAS,CACV,KACG,KAAK,GACT,GACsB,CAC3B,CAAC,CAAC;AACH,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* TopBar — sticky 48px header bar. Renders the chrome (border, blur,
|
|
4
|
+
* height); content layout is the consumer's responsibility:
|
|
5
|
+
*
|
|
6
|
+
* <TopBar>
|
|
7
|
+
* <Breadcrumb>…</Breadcrumb>
|
|
8
|
+
* <div className="flex-1" />
|
|
9
|
+
* <ThemeToggle />
|
|
10
|
+
* </TopBar>
|
|
11
|
+
*/
|
|
12
|
+
export declare const TopBar: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLElement> & React.RefAttributes<HTMLElement>>;
|
|
13
|
+
//# sourceMappingURL=top-bar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"top-bar.d.ts","sourceRoot":"","sources":["../../src/components/top-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,uGAcjB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* TopBar — sticky 48px header bar. Renders the chrome (border, blur,
|
|
6
|
+
* height); content layout is the consumer's responsibility:
|
|
7
|
+
*
|
|
8
|
+
* <TopBar>
|
|
9
|
+
* <Breadcrumb>…</Breadcrumb>
|
|
10
|
+
* <div className="flex-1" />
|
|
11
|
+
* <ThemeToggle />
|
|
12
|
+
* </TopBar>
|
|
13
|
+
*/
|
|
14
|
+
export const TopBar = React.forwardRef(({ className, children, ...props }, ref) => (_jsx("header", { ref: ref, className: cn("sticky top-0 z-20 bg-background/95 backdrop-blur border-b border-border", className), ...props, children: _jsx("div", { className: "flex h-12 items-center gap-3 px-6", children: children }) })));
|
|
15
|
+
TopBar.displayName = "TopBar";
|
|
16
|
+
//# sourceMappingURL=top-bar.js.map
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dtsports/design-system — public API.
|
|
3
|
+
*
|
|
4
|
+
* Import paths:
|
|
5
|
+
* import { Button, Card, Table, … } from "@dtsports/design-system";
|
|
6
|
+
*
|
|
7
|
+
* Styles:
|
|
8
|
+
* import "@dtsports/design-system/styles/globals.css";
|
|
9
|
+
*
|
|
10
|
+
* Tailwind preset:
|
|
11
|
+
* import preset from "@dtsports/design-system/tailwind-preset";
|
|
12
|
+
*
|
|
13
|
+
* Docs page (mountable):
|
|
14
|
+
* export { default } from "@dtsports/design-system/showcase";
|
|
15
|
+
*
|
|
16
|
+
* Fonts:
|
|
17
|
+
* The system expects "Exo 2" to be available. Load it via your app's
|
|
18
|
+
* font strategy (e.g. next/font/google) in your root layout.
|
|
19
|
+
*/
|
|
20
|
+
export { Button, buttonVariants, type ButtonProps } from "./components/button.js";
|
|
21
|
+
export { Input, type InputProps } from "./components/input.js";
|
|
22
|
+
export { Label } from "./components/label.js";
|
|
23
|
+
export { Textarea, type TextareaProps } from "./components/textarea.js";
|
|
24
|
+
export { Checkbox } from "./components/checkbox.js";
|
|
25
|
+
export { RadioGroup, RadioGroupItem } from "./components/radio-group.js";
|
|
26
|
+
export { Switch } from "./components/switch.js";
|
|
27
|
+
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from "./components/select.js";
|
|
28
|
+
export { NumberInput, type NumberInputProps } from "./components/number-input.js";
|
|
29
|
+
export { FormField, type FormFieldProps } from "./components/form-field.js";
|
|
30
|
+
export { Slider } from "./components/slider.js";
|
|
31
|
+
export { Combobox, type ComboboxOption, type ComboboxProps, } from "./components/combobox.js";
|
|
32
|
+
export { Calendar, type CalendarProps } from "./components/calendar.js";
|
|
33
|
+
export { DatePicker, type DatePickerProps } from "./components/date-picker.js";
|
|
34
|
+
export { Badge, badgeVariants, type BadgeProps } from "./components/badge.js";
|
|
35
|
+
export { Chip, chipVariants, type ChipProps } from "./components/chip.js";
|
|
36
|
+
export { Card, type CardProps, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, } from "./components/card.js";
|
|
37
|
+
export { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption, } from "./components/table.js";
|
|
38
|
+
export { Avatar, type AvatarProps } from "./components/avatar.js";
|
|
39
|
+
export { AvatarGroup, type AvatarGroupProps } from "./components/avatar-group.js";
|
|
40
|
+
export { Separator } from "./components/separator.js";
|
|
41
|
+
export { Spec, SpecList, type SpecProps, type SpecListProps, } from "./components/spec.js";
|
|
42
|
+
export { Pagination, type PaginationProps } from "./components/pagination.js";
|
|
43
|
+
export { Alert, alertVariants, type AlertProps } from "./components/alert.js";
|
|
44
|
+
export { Toaster, toast, type ToasterProps } from "./components/toaster.js";
|
|
45
|
+
export { Skeleton, SkeletonList, SkeletonTable } from "./components/skeleton.js";
|
|
46
|
+
export { Spinner, type SpinnerProps } from "./components/spinner.js";
|
|
47
|
+
export { Progress } from "./components/progress.js";
|
|
48
|
+
export { Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogBody, DialogFooter, } from "./components/dialog.js";
|
|
49
|
+
export { Drawer, DrawerTrigger, DrawerClose, DrawerPortal, DrawerOverlay, drawerVariants, DrawerContent, type DrawerContentProps, DrawerHeader, DrawerTitle, DrawerDescription, DrawerBody, DrawerFooter, } from "./components/drawer.js";
|
|
50
|
+
export { Popover, PopoverTrigger, PopoverAnchor, PopoverContent, } from "./components/popover.js";
|
|
51
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuRadioGroup, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSubTrigger, DropdownMenuSubContent, } from "./components/dropdown-menu.js";
|
|
52
|
+
export { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, } from "./components/tooltip.js";
|
|
53
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "./components/accordion.js";
|
|
54
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent, } from "./components/collapsible.js";
|
|
55
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent } from "./components/tabs.js";
|
|
56
|
+
export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, type BreadcrumbLinkProps, } from "./components/breadcrumb.js";
|
|
57
|
+
export { AppShell, AppMain } from "./components/app-shell.js";
|
|
58
|
+
export { Sidebar, SidebarHeader, SidebarBody, SidebarFooter, SidebarSection, SidebarItem, type SidebarSectionProps, type SidebarItemProps, } from "./components/sidebar.js";
|
|
59
|
+
export { TopBar } from "./components/top-bar.js";
|
|
60
|
+
export { Container, type ContainerProps } from "./components/container.js";
|
|
61
|
+
export { Stack, type StackProps } from "./components/stack.js";
|
|
62
|
+
export { AspectRatio } from "./components/aspect-ratio.js";
|
|
63
|
+
export { ScrollArea, ScrollBar } from "./components/scroll-area.js";
|
|
64
|
+
export { LivePill } from "./components/live-pill.js";
|
|
65
|
+
export { StatusPill, type GameStatus } from "./components/status-pill.js";
|
|
66
|
+
export { MetricTile, type MetricTileProps } from "./components/metric-tile.js";
|
|
67
|
+
export { CapacityBar, type CapacityBarProps } from "./components/capacity-bar.js";
|
|
68
|
+
export { EmptyState, type EmptyStateProps } from "./components/empty-state.js";
|
|
69
|
+
export { Timestamp, type TimestampProps } from "./components/timestamp.js";
|
|
70
|
+
export { MoneyBreakdown, type MoneyBreakdownProps, type MoneyLine, } from "./components/money-breakdown.js";
|
|
71
|
+
export { ThreeState, type ListState, type ThreeStateProps, } from "./components/three-state.js";
|
|
72
|
+
export { ConfirmAction, type ConfirmActionProps, } from "./components/confirm-action.js";
|
|
73
|
+
export { ThemeProvider, useTheme } from "./components/theme-provider.js";
|
|
74
|
+
export { ThemeToggle } from "./components/theme-toggle.js";
|
|
75
|
+
export { cn } from "./lib/utils.js";
|
|
76
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dtsports/design-system — public API.
|
|
3
|
+
*
|
|
4
|
+
* Import paths:
|
|
5
|
+
* import { Button, Card, Table, … } from "@dtsports/design-system";
|
|
6
|
+
*
|
|
7
|
+
* Styles:
|
|
8
|
+
* import "@dtsports/design-system/styles/globals.css";
|
|
9
|
+
*
|
|
10
|
+
* Tailwind preset:
|
|
11
|
+
* import preset from "@dtsports/design-system/tailwind-preset";
|
|
12
|
+
*
|
|
13
|
+
* Docs page (mountable):
|
|
14
|
+
* export { default } from "@dtsports/design-system/showcase";
|
|
15
|
+
*
|
|
16
|
+
* Fonts:
|
|
17
|
+
* The system expects "Exo 2" to be available. Load it via your app's
|
|
18
|
+
* font strategy (e.g. next/font/google) in your root layout.
|
|
19
|
+
*/
|
|
20
|
+
// ── Primitives — forms ─────────────────────────────────────────────────
|
|
21
|
+
export { Button, buttonVariants } from "./components/button.js";
|
|
22
|
+
export { Input } from "./components/input.js";
|
|
23
|
+
export { Label } from "./components/label.js";
|
|
24
|
+
export { Textarea } from "./components/textarea.js";
|
|
25
|
+
export { Checkbox } from "./components/checkbox.js";
|
|
26
|
+
export { RadioGroup, RadioGroupItem } from "./components/radio-group.js";
|
|
27
|
+
export { Switch } from "./components/switch.js";
|
|
28
|
+
export { Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectLabel, SelectItem, SelectSeparator, SelectScrollUpButton, SelectScrollDownButton, } from "./components/select.js";
|
|
29
|
+
export { NumberInput } from "./components/number-input.js";
|
|
30
|
+
export { FormField } from "./components/form-field.js";
|
|
31
|
+
export { Slider } from "./components/slider.js";
|
|
32
|
+
export { Combobox, } from "./components/combobox.js";
|
|
33
|
+
export { Calendar } from "./components/calendar.js";
|
|
34
|
+
export { DatePicker } from "./components/date-picker.js";
|
|
35
|
+
// ── Primitives — display ───────────────────────────────────────────────
|
|
36
|
+
export { Badge, badgeVariants } from "./components/badge.js";
|
|
37
|
+
export { Chip, chipVariants } from "./components/chip.js";
|
|
38
|
+
export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter, } from "./components/card.js";
|
|
39
|
+
export { Table, TableHeader, TableBody, TableFooter, TableRow, TableHead, TableCell, TableCaption, } from "./components/table.js";
|
|
40
|
+
export { Avatar } from "./components/avatar.js";
|
|
41
|
+
export { AvatarGroup } from "./components/avatar-group.js";
|
|
42
|
+
export { Separator } from "./components/separator.js";
|
|
43
|
+
export { Spec, SpecList, } from "./components/spec.js";
|
|
44
|
+
export { Pagination } from "./components/pagination.js";
|
|
45
|
+
// ── Primitives — feedback ──────────────────────────────────────────────
|
|
46
|
+
export { Alert, alertVariants } from "./components/alert.js";
|
|
47
|
+
export { Toaster, toast } from "./components/toaster.js";
|
|
48
|
+
export { Skeleton, SkeletonList, SkeletonTable } from "./components/skeleton.js";
|
|
49
|
+
export { Spinner } from "./components/spinner.js";
|
|
50
|
+
export { Progress } from "./components/progress.js";
|
|
51
|
+
// ── Overlays ───────────────────────────────────────────────────────────
|
|
52
|
+
export { Dialog, DialogTrigger, DialogPortal, DialogClose, DialogOverlay, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogBody, DialogFooter, } from "./components/dialog.js";
|
|
53
|
+
export { Drawer, DrawerTrigger, DrawerClose, DrawerPortal, DrawerOverlay, drawerVariants, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerBody, DrawerFooter, } from "./components/drawer.js";
|
|
54
|
+
export { Popover, PopoverTrigger, PopoverAnchor, PopoverContent, } from "./components/popover.js";
|
|
55
|
+
export { DropdownMenu, DropdownMenuTrigger, DropdownMenuGroup, DropdownMenuPortal, DropdownMenuSub, DropdownMenuRadioGroup, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSubTrigger, DropdownMenuSubContent, } from "./components/dropdown-menu.js";
|
|
56
|
+
export { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent, } from "./components/tooltip.js";
|
|
57
|
+
// ── Disclosure / navigation ─────────────────────────────────────────────
|
|
58
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from "./components/accordion.js";
|
|
59
|
+
export { Collapsible, CollapsibleTrigger, CollapsibleContent, } from "./components/collapsible.js";
|
|
60
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent } from "./components/tabs.js";
|
|
61
|
+
export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, } from "./components/breadcrumb.js";
|
|
62
|
+
// ── Layout / shell ─────────────────────────────────────────────────────
|
|
63
|
+
export { AppShell, AppMain } from "./components/app-shell.js";
|
|
64
|
+
export { Sidebar, SidebarHeader, SidebarBody, SidebarFooter, SidebarSection, SidebarItem, } from "./components/sidebar.js";
|
|
65
|
+
export { TopBar } from "./components/top-bar.js";
|
|
66
|
+
export { Container } from "./components/container.js";
|
|
67
|
+
export { Stack } from "./components/stack.js";
|
|
68
|
+
export { AspectRatio } from "./components/aspect-ratio.js";
|
|
69
|
+
export { ScrollArea, ScrollBar } from "./components/scroll-area.js";
|
|
70
|
+
// ── Brand-specific primitives ──────────────────────────────────────────
|
|
71
|
+
export { LivePill } from "./components/live-pill.js";
|
|
72
|
+
export { StatusPill } from "./components/status-pill.js";
|
|
73
|
+
export { MetricTile } from "./components/metric-tile.js";
|
|
74
|
+
export { CapacityBar } from "./components/capacity-bar.js";
|
|
75
|
+
export { EmptyState } from "./components/empty-state.js";
|
|
76
|
+
// ── UX patterns (codified principles) ──────────────────────────────────
|
|
77
|
+
export { Timestamp } from "./components/timestamp.js";
|
|
78
|
+
export { MoneyBreakdown, } from "./components/money-breakdown.js";
|
|
79
|
+
export { ThreeState, } from "./components/three-state.js";
|
|
80
|
+
export { ConfirmAction, } from "./components/confirm-action.js";
|
|
81
|
+
// ── Theming ────────────────────────────────────────────────────────────
|
|
82
|
+
export { ThemeProvider, useTheme } from "./components/theme-provider.js";
|
|
83
|
+
export { ThemeToggle } from "./components/theme-toggle.js";
|
|
84
|
+
// ── Utilities ──────────────────────────────────────────────────────────
|
|
85
|
+
export { cn } from "./lib/utils.js";
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ClassValue } from "clsx";
|
|
2
|
+
/**
|
|
3
|
+
* Merge Tailwind classes with proper conflict resolution.
|
|
4
|
+
* Use this everywhere component variants need to be composable.
|
|
5
|
+
*/
|
|
6
|
+
export declare function cn(...inputs: ClassValue[]): string;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { clsx } from "clsx";
|
|
2
|
+
import { twMerge } from "tailwind-merge";
|
|
3
|
+
/**
|
|
4
|
+
* Merge Tailwind classes with proper conflict resolution.
|
|
5
|
+
* Use this everywhere component variants need to be composable.
|
|
6
|
+
*/
|
|
7
|
+
export function cn(...inputs) {
|
|
8
|
+
return twMerge(clsx(inputs));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Footer — marketing footer: link columns + a bottom bar for legal and
|
|
4
|
+
* social. Server-safe.
|
|
5
|
+
*
|
|
6
|
+
* <Footer
|
|
7
|
+
* brand={<Logo />}
|
|
8
|
+
* columns={[
|
|
9
|
+
* { title: "Product", links: [{ label: "Games", href: "/games" }] },
|
|
10
|
+
* { title: "Company", links: [{ label: "About", href: "/about" }] },
|
|
11
|
+
* ]}
|
|
12
|
+
* legal="© 2026 DT Sports"
|
|
13
|
+
* social={<SocialIcons />}
|
|
14
|
+
* />
|
|
15
|
+
*/
|
|
16
|
+
export interface FooterColumn {
|
|
17
|
+
title: string;
|
|
18
|
+
links: {
|
|
19
|
+
label: string;
|
|
20
|
+
href: string;
|
|
21
|
+
}[];
|
|
22
|
+
}
|
|
23
|
+
export interface FooterProps extends React.HTMLAttributes<HTMLElement> {
|
|
24
|
+
brand?: React.ReactNode;
|
|
25
|
+
tagline?: React.ReactNode;
|
|
26
|
+
columns?: FooterColumn[];
|
|
27
|
+
legal?: React.ReactNode;
|
|
28
|
+
social?: React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export declare function Footer({ brand, tagline, columns, legal, social, className, ...props }: FooterProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=footer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/marketing/footer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,WAAY,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACpE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAOD,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,OAAY,EACZ,KAAK,EACL,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,2CAiDb"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
const footerLinkClass = cn("text-sm text-text-muted hover:text-foreground transition-colors rounded-sm", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring");
|
|
4
|
+
export function Footer({ brand, tagline, columns = [], legal, social, className, ...props }) {
|
|
5
|
+
return (_jsx("footer", { className: cn("border-t border-border bg-bg-subtle", className), ...props, children: _jsxs("div", { className: "mx-auto max-w-6xl px-6 lg:px-8 py-16", children: [_jsxs("div", { className: "grid gap-10 md:grid-cols-[1.5fr_repeat(var(--footer-cols,3),1fr)]", style: {
|
|
6
|
+
"--footer-cols": Math.max(columns.length, 1),
|
|
7
|
+
}, children: [(brand || tagline) && (_jsxs("div", { className: "space-y-3", children: [brand, tagline && (_jsx("p", { className: "text-sm text-text-muted max-w-xs", children: tagline }))] })), columns.map((col) => (_jsxs("nav", { "aria-label": col.title, children: [_jsx("h3", { className: "mb-3 text-xs font-semibold uppercase tracking-[0.06em] text-text-subtle", children: col.title }), _jsx("ul", { className: "space-y-2", children: col.links.map((l) => (_jsx("li", { children: _jsx("a", { href: l.href, className: footerLinkClass, children: l.label }) }, l.href))) })] }, col.title)))] }), (legal || social) && (_jsxs("div", { className: "mt-12 flex flex-wrap items-center justify-between gap-4 border-t border-border pt-6", children: [_jsx("p", { className: "text-xs text-text-muted", children: legal }), social && _jsx("div", { className: "flex items-center gap-3", children: social })] }))] }) }));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"footer.js","sourceRoot":"","sources":["../../src/marketing/footer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AA6BlC,MAAM,eAAe,GAAG,EAAE,CACxB,4EAA4E,EAC5E,yEAAyE,CAC1E,CAAC;AAEF,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,OAAO,EACP,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,MAAM,EACN,SAAS,EACT,GAAG,KAAK,EACI;IACZ,OAAO,CACL,iBACE,SAAS,EAAE,EAAE,CAAC,qCAAqC,EAAE,SAAS,CAAC,KAC3D,KAAK,YAET,eAAK,SAAS,EAAC,sCAAsC,aACnD,eACE,SAAS,EAAC,mEAAmE,EAC7E,KAAK,EACH;wBACE,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;qBACtB,aAGzB,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CACrB,eAAK,SAAS,EAAC,WAAW,aACvB,KAAK,EACL,OAAO,IAAI,CACV,YAAG,SAAS,EAAC,kCAAkC,YAAE,OAAO,GAAK,CAC9D,IACG,CACP,EACA,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACpB,6BAAiC,GAAG,CAAC,KAAK,aACxC,aAAI,SAAS,EAAC,yEAAyE,YACpF,GAAG,CAAC,KAAK,GACP,EACL,aAAI,SAAS,EAAC,WAAW,YACtB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,uBACE,YAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,eAAe,YACxC,CAAC,CAAC,KAAK,GACN,IAHG,CAAC,CAAC,IAAI,CAIV,CACN,CAAC,GACC,KAZG,GAAG,CAAC,KAAK,CAab,CACP,CAAC,IACE,EACL,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CACpB,eAAK,SAAS,EAAC,qFAAqF,aAClG,YAAG,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAK,EACjD,MAAM,IAAI,cAAK,SAAS,EAAC,yBAAyB,YAAE,MAAM,GAAO,IAC9D,CACP,IACG,GACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Hero — the opening section of a marketing page. Fluid display type,
|
|
4
|
+
* generous spacing, one lime CTA (§2.4 still applies on marketing pages).
|
|
5
|
+
*
|
|
6
|
+
* <Hero
|
|
7
|
+
* eyebrow="Pickup soccer, organized"
|
|
8
|
+
* title="Book a game in 30 seconds"
|
|
9
|
+
* description="Real fields, fair teams, instant refunds."
|
|
10
|
+
* actions={
|
|
11
|
+
* <>
|
|
12
|
+
* <Button variant="accent" size="touch">Find a game</Button>
|
|
13
|
+
* <Button variant="secondary" size="touch">Host with us</Button>
|
|
14
|
+
* </>
|
|
15
|
+
* }
|
|
16
|
+
* />
|
|
17
|
+
*/
|
|
18
|
+
export interface HeroProps extends Omit<React.HTMLAttributes<HTMLElement>, "title"> {
|
|
19
|
+
eyebrow?: React.ReactNode;
|
|
20
|
+
title: React.ReactNode;
|
|
21
|
+
description?: React.ReactNode;
|
|
22
|
+
/** CTA row — keep to one accent button (§2.4). */
|
|
23
|
+
actions?: React.ReactNode;
|
|
24
|
+
/** Optional media (screenshot, illustration) below/beside the copy. */
|
|
25
|
+
media?: React.ReactNode;
|
|
26
|
+
align?: "center" | "start";
|
|
27
|
+
}
|
|
28
|
+
export declare function Hero({ eyebrow, title, description, actions, media, align, className, ...props }: HeroProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
//# sourceMappingURL=hero.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero.d.ts","sourceRoot":"","sources":["../../src/marketing/hero.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,SAAU,SAAQ,IAAI,CACrC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EACjC,OAAO,CACR;IACC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,kDAAkD;IAClD,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,uEAAuE;IACvE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC5B;AAED,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,KAAgB,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,SAAS,2CAiDX"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
export function Hero({ eyebrow, title, description, actions, media, align = "center", className, ...props }) {
|
|
4
|
+
const centered = align === "center";
|
|
5
|
+
return (_jsx("section", { className: cn("relative overflow-hidden bg-gradient-forest-fade", "px-6 lg:px-8 py-20 md:py-24 lg:py-32", className), ...props, children: _jsxs("div", { className: cn("mx-auto max-w-5xl", centered && "text-center flex flex-col items-center"), children: [eyebrow && (_jsx("p", { className: "mb-4 text-sm font-semibold uppercase tracking-[0.08em] text-brand-forest", children: eyebrow })), _jsx("h1", { className: "text-display font-bold text-foreground max-w-3xl text-balance", children: title }), description && (_jsx("p", { className: cn("mt-5 text-lg text-text-muted max-w-2xl", centered && "mx-auto"), children: description })), actions && (_jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", centered && "justify-center"), children: actions })), media && _jsx("div", { className: "mt-16 w-full", children: media })] }) }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=hero.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hero.js","sourceRoot":"","sources":["../../src/marketing/hero.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAgClC,MAAM,UAAU,IAAI,CAAC,EACnB,OAAO,EACP,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,KAAK,GAAG,QAAQ,EAChB,SAAS,EACT,GAAG,KAAK,EACE;IACV,MAAM,QAAQ,GAAG,KAAK,KAAK,QAAQ,CAAC;IACpC,OAAO,CACL,kBACE,SAAS,EAAE,EAAE,CACX,kDAAkD,EAClD,sCAAsC,EACtC,SAAS,CACV,KACG,KAAK,YAET,eACE,SAAS,EAAE,EAAE,CACX,mBAAmB,EACnB,QAAQ,IAAI,wCAAwC,CACrD,aAEA,OAAO,IAAI,CACV,YAAG,SAAS,EAAC,0EAA0E,YACpF,OAAO,GACN,CACL,EACD,aAAI,SAAS,EAAC,+DAA+D,YAC1E,KAAK,GACH,EACJ,WAAW,IAAI,CACd,YACE,SAAS,EAAE,EAAE,CACX,wCAAwC,EACxC,QAAQ,IAAI,SAAS,CACtB,YAEA,WAAW,GACV,CACL,EACA,OAAO,IAAI,CACV,cACE,SAAS,EAAE,EAAE,CACX,2BAA2B,EAC3B,QAAQ,IAAI,gBAAgB,CAC7B,YAEA,OAAO,GACJ,CACP,EACA,KAAK,IAAI,cAAK,SAAS,EAAC,cAAc,YAAE,KAAK,GAAO,IACjD,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dtsports/design-system/marketing — the marketing tier.
|
|
3
|
+
*
|
|
4
|
+
* Primitives for the marketing website: fluid display typography
|
|
5
|
+
* (text-display-sm/display/display-lg), extended spacing (py-20…40),
|
|
6
|
+
* and page-level building blocks. Everything consumes the same token
|
|
7
|
+
* source as the app tier, so the brand can't fork.
|
|
8
|
+
*
|
|
9
|
+
* All components are server-safe except MarketingNav (mobile menu state).
|
|
10
|
+
*
|
|
11
|
+
* import {
|
|
12
|
+
* MarketingNav, Hero, Section, Footer, LogoCloud, Prose,
|
|
13
|
+
* } from "@dtsports/design-system/marketing";
|
|
14
|
+
*/
|
|
15
|
+
export { Hero, type HeroProps } from "./hero.js";
|
|
16
|
+
export { Section, type SectionProps } from "./section.js";
|
|
17
|
+
export { MarketingNav, type MarketingNavLink, type MarketingNavProps, } from "./nav.js";
|
|
18
|
+
export { Footer, type FooterColumn, type FooterProps } from "./footer.js";
|
|
19
|
+
export { LogoCloud, type LogoCloudProps } from "./logo-cloud.js";
|
|
20
|
+
export { Prose, type ProseProps } from "./prose.js";
|
|
21
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/marketing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @dtsports/design-system/marketing — the marketing tier.
|
|
3
|
+
*
|
|
4
|
+
* Primitives for the marketing website: fluid display typography
|
|
5
|
+
* (text-display-sm/display/display-lg), extended spacing (py-20…40),
|
|
6
|
+
* and page-level building blocks. Everything consumes the same token
|
|
7
|
+
* source as the app tier, so the brand can't fork.
|
|
8
|
+
*
|
|
9
|
+
* All components are server-safe except MarketingNav (mobile menu state).
|
|
10
|
+
*
|
|
11
|
+
* import {
|
|
12
|
+
* MarketingNav, Hero, Section, Footer, LogoCloud, Prose,
|
|
13
|
+
* } from "@dtsports/design-system/marketing";
|
|
14
|
+
*/
|
|
15
|
+
export { Hero } from "./hero.js";
|
|
16
|
+
export { Section } from "./section.js";
|
|
17
|
+
export { MarketingNav, } from "./nav.js";
|
|
18
|
+
export { Footer } from "./footer.js";
|
|
19
|
+
export { LogoCloud } from "./logo-cloud.js";
|
|
20
|
+
export { Prose } from "./prose.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/marketing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,IAAI,EAAkB,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAqB,MAAM,WAAW,CAAC;AACvD,OAAO,EACL,YAAY,GAGb,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAuC,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAmB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* LogoCloud — "trusted by" strip. Children are the logos (imgs or SVGs);
|
|
4
|
+
* give each an accessible name (alt text or aria-label).
|
|
5
|
+
*
|
|
6
|
+
* <LogoCloud label="Trusted by leagues across NYC">
|
|
7
|
+
* <img src="/logos/x.svg" alt="X League" className="h-6" />
|
|
8
|
+
* …
|
|
9
|
+
* </LogoCloud>
|
|
10
|
+
*/
|
|
11
|
+
export interface LogoCloudProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
12
|
+
label?: React.ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export declare function LogoCloud({ label, className, children, ...props }: LogoCloudProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
//# sourceMappingURL=logo-cloud.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logo-cloud.d.ts","sourceRoot":"","sources":["../../src/marketing/logo-cloud.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC1E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB;AAED,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,2CAahB"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/utils.js";
|
|
3
|
+
export function LogoCloud({ label, className, children, ...props }) {
|
|
4
|
+
return (_jsxs("div", { className: cn("py-10 text-center", className), ...props, children: [label && (_jsx("p", { className: "mb-6 text-xs font-semibold uppercase tracking-[0.08em] text-text-subtle", children: label })), _jsx("div", { className: "flex flex-wrap items-center justify-center gap-x-10 gap-y-6 opacity-70 grayscale", children: children })] }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=logo-cloud.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logo-cloud.js","sourceRoot":"","sources":["../../src/marketing/logo-cloud.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAelC,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACO;IACf,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,KAAM,KAAK,aAC1D,KAAK,IAAI,CACR,YAAG,SAAS,EAAC,yEAAyE,YACnF,KAAK,GACJ,CACL,EACD,cAAK,SAAS,EAAC,kFAAkF,YAC9F,QAAQ,GACL,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* MarketingNav — sticky marketing header: brand left, links center,
|
|
4
|
+
* CTA right, hamburger disclosure on mobile (44px targets, aria-expanded
|
|
5
|
+
* wired). Non-modal on purpose — the page stays scrollable behind it.
|
|
6
|
+
*
|
|
7
|
+
* <MarketingNav
|
|
8
|
+
* brand={<a href="/" aria-label="DT Sports home"><Logo /></a>}
|
|
9
|
+
* links={[
|
|
10
|
+
* { label: "Games", href: "/games" },
|
|
11
|
+
* { label: "Venues", href: "/venues" },
|
|
12
|
+
* { label: "Pricing", href: "/pricing" },
|
|
13
|
+
* ]}
|
|
14
|
+
* cta={<Button variant="accent">Find a game</Button>}
|
|
15
|
+
* />
|
|
16
|
+
*
|
|
17
|
+
* Render links as your router's component via `renderLink` when needed
|
|
18
|
+
* (defaults to a plain <a>).
|
|
19
|
+
*/
|
|
20
|
+
export interface MarketingNavLink {
|
|
21
|
+
label: string;
|
|
22
|
+
href: string;
|
|
23
|
+
}
|
|
24
|
+
export interface MarketingNavProps extends React.HTMLAttributes<HTMLElement> {
|
|
25
|
+
brand: React.ReactNode;
|
|
26
|
+
links: MarketingNavLink[];
|
|
27
|
+
/** Right-hand CTA (keep to one accent action). */
|
|
28
|
+
cta?: React.ReactNode;
|
|
29
|
+
/** Custom link renderer, e.g. Next.js Link. */
|
|
30
|
+
renderLink?: (link: MarketingNavLink, className: string) => React.ReactNode;
|
|
31
|
+
}
|
|
32
|
+
export declare function MarketingNav({ brand, links, cta, renderLink, className, ...props }: MarketingNavProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=nav.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav.d.ts","sourceRoot":"","sources":["../../src/marketing/nav.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IAC1E,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,kDAAkD;IAClD,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC7E;AAaD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,GAAG,EACH,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAiEnB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Menu, X } from "lucide-react";
|
|
5
|
+
import { cn } from "../lib/utils.js";
|
|
6
|
+
const desktopLinkClass = cn("text-sm font-medium text-text-muted hover:text-foreground transition-colors rounded-sm px-1", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring");
|
|
7
|
+
const mobileLinkClass = cn("flex items-center min-h-11 px-2 text-md font-medium text-foreground rounded-sm", "hover:bg-bg-subtle transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring");
|
|
8
|
+
export function MarketingNav({ brand, links, cta, renderLink, className, ...props }) {
|
|
9
|
+
const [open, setOpen] = React.useState(false);
|
|
10
|
+
const panelId = React.useId();
|
|
11
|
+
const link = (l, cls) => renderLink ? (_jsx(React.Fragment, { children: renderLink(l, cls) }, l.href)) : (_jsx("a", { href: l.href, className: cls, children: l.label }, l.href));
|
|
12
|
+
return (_jsxs("header", { className: cn("sticky top-0 z-sticky border-b border-border bg-background/90 backdrop-blur", className), ...props, children: [_jsxs("nav", { "aria-label": "Main", className: "mx-auto flex h-14 max-w-6xl items-center justify-between gap-6 px-6 lg:px-8", children: [_jsxs("div", { className: "flex items-center gap-8", children: [brand, _jsx("div", { className: "hidden md:flex items-center gap-6", children: links.map((l) => link(l, desktopLinkClass)) })] }), _jsxs("div", { className: "flex items-center gap-3", children: [cta && _jsx("div", { className: "hidden md:block", children: cta }), _jsx("button", { type: "button", "aria-expanded": open, "aria-controls": panelId, "aria-label": open ? "Close menu" : "Open menu", onClick: () => setOpen((v) => !v), className: cn("md:hidden inline-flex h-11 w-11 items-center justify-center rounded-sm text-foreground", "hover:bg-bg-subtle transition-colors", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"), children: open ? (_jsx(X, { className: "h-5 w-5", strokeWidth: 1.75, "aria-hidden": "true" })) : (_jsx(Menu, { className: "h-5 w-5", strokeWidth: 1.75, "aria-hidden": "true" })) })] })] }), _jsxs("div", { id: panelId, hidden: !open, className: "md:hidden border-t border-border bg-background px-4 py-3", children: [_jsx("div", { className: "flex flex-col gap-1", children: links.map((l) => link(l, mobileLinkClass)) }), cta && _jsx("div", { className: "mt-3 border-t border-border pt-3", children: cta })] })] }));
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=nav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nav.js","sourceRoot":"","sources":["../../src/marketing/nav.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAkClC,MAAM,gBAAgB,GAAG,EAAE,CACzB,6FAA6F,EAC7F,yEAAyE,CAC1E,CAAC;AAEF,MAAM,eAAe,GAAG,EAAE,CACxB,gFAAgF,EAChF,sCAAsC,EACtC,yEAAyE,CAC1E,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,GAAG,EACH,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EACU;IAClB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAE9B,MAAM,IAAI,GAAG,CAAC,CAAmB,EAAE,GAAW,EAAE,EAAE,CAChD,UAAU,CAAC,CAAC,CAAC,CACX,KAAC,KAAK,CAAC,QAAQ,cAAe,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,IAA3B,CAAC,CAAC,IAAI,CAAuC,CACnE,CAAC,CAAC,CAAC,CACF,YAAgB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,YACzC,CAAC,CAAC,KAAK,IADF,CAAC,CAAC,IAAI,CAEV,CACL,CAAC;IAEJ,OAAO,CACL,kBACE,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,SAAS,CACV,KACG,KAAK,aAET,6BACa,MAAM,EACjB,SAAS,EAAC,6EAA6E,aAEvF,eAAK,SAAS,EAAC,yBAAyB,aACrC,KAAK,EACN,cAAK,SAAS,EAAC,mCAAmC,YAC/C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,GACxC,IACF,EACN,eAAK,SAAS,EAAC,yBAAyB,aACrC,GAAG,IAAI,cAAK,SAAS,EAAC,iBAAiB,YAAE,GAAG,GAAO,EACpD,iBACE,IAAI,EAAC,QAAQ,mBACE,IAAI,mBACJ,OAAO,gBACV,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACjC,SAAS,EAAE,EAAE,CACX,wFAAwF,EACxF,sCAAsC,EACtC,yEAAyE,CAC1E,YAEA,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,CAAC,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,IAAI,iBAAc,MAAM,GAAG,CAChE,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAE,IAAI,iBAAc,MAAM,GAAG,CACnE,GACM,IACL,IACF,EACN,eACE,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,CAAC,IAAI,EACb,SAAS,EAAC,0DAA0D,aAEpE,cAAK,SAAS,EAAC,qBAAqB,YACjC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,GACvC,EACL,GAAG,IAAI,cAAK,SAAS,EAAC,kCAAkC,YAAE,GAAG,GAAO,IACjE,IACC,CACV,CAAC;AACJ,CAAC"}
|