@almanaclabs/blaze-ui 0.1.0 → 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/README.md CHANGED
@@ -2,12 +2,16 @@
2
2
 
3
3
  Shared React components and semantic design tokens for Blaze.
4
4
 
5
+ The components use shadcn's `b0` preset: Base UI primitives, the Nova style,
6
+ neutral colors, Inter, and Lucide icons. Component source is owned by this
7
+ package so Blaze-specific changes stay reviewable.
8
+
5
9
  ## Install
6
10
 
7
- Configure the `@almanaclabs` scope for GitHub Packages and install an explicit version:
11
+ Install the public package from npm:
8
12
 
9
13
  ```sh
10
- npm install @almanaclabs/blaze-ui@0.1.0
14
+ npm install @almanaclabs/blaze-ui
11
15
  ```
12
16
 
13
17
  ## Tailwind 4 setup
@@ -25,3 +29,17 @@ Then import components from the public package entrypoint:
25
29
  ```tsx
26
30
  import { Button } from '@almanaclabs/blaze-ui'
27
31
  ```
32
+
33
+ Base UI composition uses the `render` prop:
34
+
35
+ ```tsx
36
+ <Button nativeButton={false} render={<a href="/docs" role="link" />}>
37
+ Read the docs
38
+ </Button>
39
+ ```
40
+
41
+ Set the explicit `link` role for navigation targets so Base UI does not expose
42
+ the rendered anchor as a button to assistive technology.
43
+
44
+ Buttons use `type="button"` by default. Set `type="submit"` explicitly inside
45
+ forms.
@@ -0,0 +1,10 @@
1
+ import { Button as ButtonPrimitive } from '@base-ui/react/button';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "outline" | "secondary" | "ghost" | "destructive" | "link" | null | undefined;
5
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export type ButtonProps = ButtonPrimitive.Props & VariantProps<typeof buttonVariants>;
8
+ export declare function Button({ className, variant, size, ...props }: ButtonProps): import("react").JSX.Element;
9
+ export { buttonVariants };
10
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,cAAc;;;8EAmCnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,GAC7C,YAAY,CAAC,OAAO,cAAc,CAAC,CAAA;AAErC,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,WAAW,+BAgBb;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Button, buttonVariants, type ButtonProps } from './button';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAA"}
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
- export declare function Card({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
2
+ export declare function Card({ className, size, ...props }: React.ComponentProps<'div'> & {
3
+ size?: 'default' | 'sm';
4
+ }): React.JSX.Element;
3
5
  export declare function CardHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
4
6
  export declare function CardTitle({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
5
7
  export declare function CardDescription({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/card/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,wBAAgB,IAAI,CAAC,EACnB,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,qBAY3D;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B"}
@@ -0,0 +1,2 @@
1
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, } from './card';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/card/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EACJ,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,SAAS,GACV,MAAM,QAAQ,CAAA"}
@@ -0,0 +1,2 @@
1
+ export { Input, type InputProps } from './input';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { Input as InputPrimitive } from '@base-ui/react/input';
2
+ export type InputProps = InputPrimitive.Props;
3
+ export declare function Input({ className, type, ...props }: InputProps): import("react").JSX.Element;
4
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/components/input/input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAG9D,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAA;AAK7C,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAa9D"}
@@ -0,0 +1,2 @@
1
+ export { Label, type LabelProps } from './label';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/label/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAA"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ export type LabelProps = React.ComponentProps<'label'>;
3
+ export declare function Label({ className, ...props }: LabelProps): React.JSX.Element;
4
+ //# sourceMappingURL=label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../../src/components/label/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAEtD,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBAWxD"}
package/dist/index.js CHANGED
@@ -1,31 +1,35 @@
1
- import "react";
2
- import { Slot as e } from "@radix-ui/react-slot";
1
+ import { Button as e } from "@base-ui/react/button";
3
2
  import { cva as t } from "class-variance-authority";
4
3
  import { clsx as n } from "clsx";
5
4
  import { twMerge as r } from "tailwind-merge";
6
5
  import { jsx as i } from "react/jsx-runtime";
7
- import * as a from "@radix-ui/react-label";
6
+ import "react";
7
+ import { Input as a } from "@base-ui/react/input";
8
8
  //#region src/lib/utils.ts
9
9
  function o(...e) {
10
10
  return r(n(e));
11
11
  }
12
12
  //#endregion
13
- //#region src/components/button.tsx
14
- var s = t("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=\"size-\"])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", {
13
+ //#region src/components/button/button.tsx
14
+ var s = t("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
15
15
  variants: {
16
16
  variant: {
17
- default: "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",
18
- destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
19
- outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
20
- secondary: "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",
21
- ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
17
+ default: "bg-primary text-primary-foreground hover:bg-primary/80",
18
+ outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
19
+ secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
20
+ ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
21
+ destructive: "bg-destructive/10 text-destructive hover:bg-destructive/15 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/10 dark:hover:bg-destructive/15 dark:focus-visible:ring-destructive/40",
22
22
  link: "text-primary underline-offset-4 hover:underline"
23
23
  },
24
24
  size: {
25
- default: "h-9 px-4 py-2 has-[>svg]:px-3",
26
- sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
27
- lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
- icon: "size-9"
25
+ default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
26
+ xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
27
+ sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
28
+ lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
29
+ icon: "size-8",
30
+ "icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
31
+ "icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
32
+ "icon-lg": "size-9"
29
33
  }
30
34
  },
31
35
  defaultVariants: {
@@ -33,37 +37,40 @@ var s = t("inline-flex shrink-0 items-center justify-center gap-2 whitespace-now
33
37
  size: "default"
34
38
  }
35
39
  });
36
- function c({ className: t, variant: n, size: r, asChild: a = !1, ...c }) {
37
- return /* @__PURE__ */ i(a ? e : "button", {
40
+ function c({ className: t, variant: n = "default", size: r = "default", ...a }) {
41
+ let c = s({
42
+ variant: n,
43
+ size: r
44
+ });
45
+ return /* @__PURE__ */ i(e, {
38
46
  "data-slot": "button",
39
- className: o(s({
40
- variant: n,
41
- size: r,
42
- className: t
43
- })),
44
- ...c
47
+ "data-variant": n,
48
+ "data-size": r,
49
+ className: typeof t == "function" ? (e) => o(c, t(e)) : o(c, t),
50
+ ...a
45
51
  });
46
52
  }
47
53
  //#endregion
48
- //#region src/components/card.tsx
49
- function l({ className: e, ...t }) {
54
+ //#region src/components/card/card.tsx
55
+ function l({ className: e, size: t = "default", ...n }) {
50
56
  return /* @__PURE__ */ i("div", {
51
57
  "data-slot": "card",
52
- className: o("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm", e),
53
- ...t
58
+ "data-size": t,
59
+ className: o("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", e),
60
+ ...n
54
61
  });
55
62
  }
56
63
  function u({ className: e, ...t }) {
57
64
  return /* @__PURE__ */ i("div", {
58
65
  "data-slot": "card-header",
59
- className: o("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6", e),
66
+ className: o("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)", e),
60
67
  ...t
61
68
  });
62
69
  }
63
70
  function d({ className: e, ...t }) {
64
71
  return /* @__PURE__ */ i("div", {
65
72
  "data-slot": "card-title",
66
- className: o("leading-none font-semibold", e),
73
+ className: o("font-heading text-base leading-snug font-medium group-data-[size=sm]/card:text-sm", e),
67
74
  ...t
68
75
  });
69
76
  }
@@ -84,35 +91,36 @@ function p({ className: e, ...t }) {
84
91
  function m({ className: e, ...t }) {
85
92
  return /* @__PURE__ */ i("div", {
86
93
  "data-slot": "card-content",
87
- className: o("px-6", e),
94
+ className: o("px-(--card-spacing)", e),
88
95
  ...t
89
96
  });
90
97
  }
91
98
  function h({ className: e, ...t }) {
92
99
  return /* @__PURE__ */ i("div", {
93
100
  "data-slot": "card-footer",
94
- className: o("flex items-center px-6 [.border-t]:pt-6", e),
101
+ className: o("flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)", e),
95
102
  ...t
96
103
  });
97
104
  }
98
105
  //#endregion
99
- //#region src/components/input.tsx
100
- function g({ className: e, type: t, ...n }) {
101
- return /* @__PURE__ */ i("input", {
106
+ //#region src/components/input/input.tsx
107
+ var g = "h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40";
108
+ function _({ className: e, type: t, ...n }) {
109
+ return /* @__PURE__ */ i(a, {
102
110
  type: t,
103
111
  "data-slot": "input",
104
- className: o("flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", e),
112
+ className: typeof e == "function" ? (t) => o(g, e(t)) : o(g, e),
105
113
  ...n
106
114
  });
107
115
  }
108
116
  //#endregion
109
- //#region src/components/label.tsx
110
- function _({ className: e, ...t }) {
111
- return /* @__PURE__ */ i(a.Root, {
117
+ //#region src/components/label/label.tsx
118
+ function v({ className: e, ...t }) {
119
+ return /* @__PURE__ */ i("label", {
112
120
  "data-slot": "label",
113
- className: o("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", e),
121
+ className: o("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-disabled:pointer-events-none group-data-disabled:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", e),
114
122
  ...t
115
123
  });
116
124
  }
117
125
  //#endregion
118
- export { c as Button, l as Card, p as CardAction, m as CardContent, f as CardDescription, h as CardFooter, u as CardHeader, d as CardTitle, g as Input, _ as Label, s as buttonVariants, o as cn };
126
+ export { c as Button, l as Card, p as CardAction, m as CardContent, f as CardDescription, h as CardFooter, u as CardHeader, d as CardTitle, _ as Input, v as Label, s as buttonVariants, o as cn };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@almanaclabs/blaze-ui",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Shared React components and design tokens for Blaze",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -22,8 +22,8 @@
22
22
  "./styles.css": "./src/styles/globals.css"
23
23
  },
24
24
  "publishConfig": {
25
- "access": "restricted",
26
- "registry": "https://npm.pkg.github.com"
25
+ "access": "public",
26
+ "registry": "https://registry.npmjs.org/"
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",
@@ -37,13 +37,13 @@
37
37
  "build:watch": "vite build --watch"
38
38
  },
39
39
  "peerDependencies": {
40
+ "@base-ui/react": ">=1.7.0 <2",
40
41
  "react": ">=19.2.0 <20",
41
42
  "react-dom": ">=19.2.0 <20",
42
43
  "tailwindcss": ">=4.3.0 <5"
43
44
  },
44
45
  "dependencies": {
45
- "@radix-ui/react-label": "2.1.15",
46
- "@radix-ui/react-slot": "1.3.3",
46
+ "@fontsource-variable/inter": "5.3.0",
47
47
  "class-variance-authority": "0.7.1",
48
48
  "clsx": "2.1.1",
49
49
  "lucide-react": "1.31.0",
@@ -1,4 +1,73 @@
1
- @custom-variant dark (&:where(.dark, .dark *));
1
+ @font-face {
2
+ font-family: 'Inter Variable';
3
+ font-style: normal;
4
+ font-display: swap;
5
+ font-weight: 100 900;
6
+ src: url('@fontsource-variable/inter/files/inter-latin-ext-wght-normal.woff2')
7
+ format('woff2-variations');
8
+ unicode-range:
9
+ U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304,
10
+ U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB,
11
+ U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
12
+ }
13
+
14
+ @font-face {
15
+ font-family: 'Inter Variable';
16
+ font-style: normal;
17
+ font-display: swap;
18
+ font-weight: 100 900;
19
+ src: url('@fontsource-variable/inter/files/inter-latin-wght-normal.woff2')
20
+ format('woff2-variations');
21
+ unicode-range:
22
+ U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
23
+ U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
24
+ U+2215, U+FEFF, U+FFFD;
25
+ }
26
+
27
+ @custom-variant dark (&:is(.dark *));
28
+
29
+ @theme inline {
30
+ --font-heading: var(--font-sans);
31
+ --font-sans: 'Inter Variable', sans-serif;
32
+ --color-sidebar-ring: var(--sidebar-ring);
33
+ --color-sidebar-border: var(--sidebar-border);
34
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
35
+ --color-sidebar-accent: var(--sidebar-accent);
36
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
37
+ --color-sidebar-primary: var(--sidebar-primary);
38
+ --color-sidebar-foreground: var(--sidebar-foreground);
39
+ --color-sidebar: var(--sidebar);
40
+ --color-chart-5: var(--chart-5);
41
+ --color-chart-4: var(--chart-4);
42
+ --color-chart-3: var(--chart-3);
43
+ --color-chart-2: var(--chart-2);
44
+ --color-chart-1: var(--chart-1);
45
+ --color-ring: var(--ring);
46
+ --color-input: var(--input);
47
+ --color-border: var(--border);
48
+ --color-destructive: var(--destructive);
49
+ --color-accent-foreground: var(--accent-foreground);
50
+ --color-accent: var(--accent);
51
+ --color-muted-foreground: var(--muted-foreground);
52
+ --color-muted: var(--muted);
53
+ --color-secondary-foreground: var(--secondary-foreground);
54
+ --color-secondary: var(--secondary);
55
+ --color-primary-foreground: var(--primary-foreground);
56
+ --color-primary: var(--primary);
57
+ --color-popover-foreground: var(--popover-foreground);
58
+ --color-popover: var(--popover);
59
+ --color-card-foreground: var(--card-foreground);
60
+ --color-card: var(--card);
61
+ --color-foreground: var(--foreground);
62
+ --color-background: var(--background);
63
+ --radius-sm: calc(var(--radius) * 0.6);
64
+ --radius-md: calc(var(--radius) * 0.8);
65
+ --radius-lg: var(--radius);
66
+ --radius-xl: calc(var(--radius) * 1.4);
67
+ --radius-2xl: calc(var(--radius) * 1.8);
68
+ --radius-3xl: calc(var(--radius) * 2.2);
69
+ --radius-4xl: calc(var(--radius) * 2.6);
70
+ }
2
71
 
3
72
  :root {
4
73
  --background: oklch(1 0 0);
@@ -7,19 +76,32 @@
7
76
  --card-foreground: oklch(0.145 0 0);
8
77
  --popover: oklch(1 0 0);
9
78
  --popover-foreground: oklch(0.145 0 0);
10
- --primary: oklch(0.7 0.19 48);
11
- --primary-foreground: oklch(0.15 0.03 48);
79
+ --primary: oklch(0.205 0 0);
80
+ --primary-foreground: oklch(0.985 0 0);
12
81
  --secondary: oklch(0.97 0 0);
13
82
  --secondary-foreground: oklch(0.205 0 0);
14
83
  --muted: oklch(0.97 0 0);
15
84
  --muted-foreground: oklch(0.556 0 0);
16
85
  --accent: oklch(0.97 0 0);
17
86
  --accent-foreground: oklch(0.205 0 0);
18
- --destructive: oklch(0.577 0.245 27.325);
87
+ --destructive: oklch(0.505 0.213 27.518);
19
88
  --border: oklch(0.922 0 0);
20
89
  --input: oklch(0.922 0 0);
21
- --ring: oklch(0.7 0.19 48);
90
+ --ring: oklch(0.708 0 0);
91
+ --chart-1: oklch(0.87 0 0);
92
+ --chart-2: oklch(0.556 0 0);
93
+ --chart-3: oklch(0.439 0 0);
94
+ --chart-4: oklch(0.371 0 0);
95
+ --chart-5: oklch(0.269 0 0);
22
96
  --radius: 0.625rem;
97
+ --sidebar: oklch(0.985 0 0);
98
+ --sidebar-foreground: oklch(0.145 0 0);
99
+ --sidebar-primary: oklch(0.205 0 0);
100
+ --sidebar-primary-foreground: oklch(0.985 0 0);
101
+ --sidebar-accent: oklch(0.97 0 0);
102
+ --sidebar-accent-foreground: oklch(0.205 0 0);
103
+ --sidebar-border: oklch(0.922 0 0);
104
+ --sidebar-ring: oklch(0.708 0 0);
23
105
  }
24
106
 
25
107
  .dark {
@@ -29,8 +111,8 @@
29
111
  --card-foreground: oklch(0.985 0 0);
30
112
  --popover: oklch(0.205 0 0);
31
113
  --popover-foreground: oklch(0.985 0 0);
32
- --primary: oklch(0.76 0.18 55);
33
- --primary-foreground: oklch(0.16 0.03 48);
114
+ --primary: oklch(0.922 0 0);
115
+ --primary-foreground: oklch(0.205 0 0);
34
116
  --secondary: oklch(0.269 0 0);
35
117
  --secondary-foreground: oklch(0.985 0 0);
36
118
  --muted: oklch(0.269 0 0);
@@ -40,39 +122,30 @@
40
122
  --destructive: oklch(0.704 0.191 22.216);
41
123
  --border: oklch(1 0 0 / 10%);
42
124
  --input: oklch(1 0 0 / 15%);
43
- --ring: oklch(0.76 0.18 55);
44
- }
45
-
46
- @theme inline {
47
- --color-background: var(--background);
48
- --color-foreground: var(--foreground);
49
- --color-card: var(--card);
50
- --color-card-foreground: var(--card-foreground);
51
- --color-popover: var(--popover);
52
- --color-popover-foreground: var(--popover-foreground);
53
- --color-primary: var(--primary);
54
- --color-primary-foreground: var(--primary-foreground);
55
- --color-secondary: var(--secondary);
56
- --color-secondary-foreground: var(--secondary-foreground);
57
- --color-muted: var(--muted);
58
- --color-muted-foreground: var(--muted-foreground);
59
- --color-accent: var(--accent);
60
- --color-accent-foreground: var(--accent-foreground);
61
- --color-destructive: var(--destructive);
62
- --color-border: var(--border);
63
- --color-input: var(--input);
64
- --color-ring: var(--ring);
65
- --radius-sm: calc(var(--radius) - 4px);
66
- --radius-md: calc(var(--radius) - 2px);
67
- --radius-lg: var(--radius);
68
- --radius-xl: calc(var(--radius) + 4px);
125
+ --ring: oklch(0.556 0 0);
126
+ --chart-1: oklch(0.87 0 0);
127
+ --chart-2: oklch(0.556 0 0);
128
+ --chart-3: oklch(0.439 0 0);
129
+ --chart-4: oklch(0.371 0 0);
130
+ --chart-5: oklch(0.269 0 0);
131
+ --sidebar: oklch(0.205 0 0);
132
+ --sidebar-foreground: oklch(0.985 0 0);
133
+ --sidebar-primary: oklch(0.488 0.243 264.376);
134
+ --sidebar-primary-foreground: oklch(0.985 0 0);
135
+ --sidebar-accent: oklch(0.269 0 0);
136
+ --sidebar-accent-foreground: oklch(0.985 0 0);
137
+ --sidebar-border: oklch(1 0 0 / 10%);
138
+ --sidebar-ring: oklch(0.556 0 0);
69
139
  }
70
140
 
71
- * {
72
- border-color: var(--border);
73
- }
141
+ @layer base {
142
+ * {
143
+ border-color: var(--border);
144
+ outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
145
+ }
74
146
 
75
- body {
76
- background: var(--background);
77
- color: var(--foreground);
147
+ body {
148
+ background-color: var(--background);
149
+ color: var(--foreground);
150
+ }
78
151
  }
@@ -1,12 +0,0 @@
1
- import { VariantProps } from 'class-variance-authority';
2
- import * as React from 'react';
3
- declare const buttonVariants: (props?: ({
4
- variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
- size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
- } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
- export type ButtonProps = React.ComponentProps<'button'> & VariantProps<typeof buttonVariants> & {
8
- asChild?: boolean;
9
- };
10
- export declare function Button({ className, variant, size, asChild, ...props }: ButtonProps): React.JSX.Element;
11
- export { buttonVariants };
12
- //# sourceMappingURL=button.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGjE,QAAA,MAAM,cAAc;;;8EA6BnB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GACtD,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAEH,wBAAgB,MAAM,CAAC,EACrB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAe,EACf,GAAG,KAAK,EACT,EAAE,WAAW,qBAUb;AAED,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/components/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWxE;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7B;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7B"}
@@ -1,4 +0,0 @@
1
- import * as React from 'react';
2
- export type InputProps = React.ComponentProps<'input'>;
3
- export declare function Input({ className, type, ...props }: InputProps): React.JSX.Element;
4
- //# sourceMappingURL=input.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/components/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;AAEtD,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBAc9D"}
@@ -1,5 +0,0 @@
1
- import * as React from 'react';
2
- import * as LabelPrimitive from '@radix-ui/react-label';
3
- export type LabelProps = React.ComponentProps<typeof LabelPrimitive.Root>;
4
- export declare function Label({ className, ...props }: LabelProps): React.JSX.Element;
5
- //# sourceMappingURL=label.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../../src/components/label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AAGvD,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAEzE,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,qBAWxD"}