@revealui/presentation 0.3.0 → 0.3.3

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 (73) hide show
  1. package/README.md +14 -0
  2. package/dist/Text-mMOCv1lF.js +204 -0
  3. package/dist/Text-mMOCv1lF.js.map +1 -0
  4. package/dist/client.d.ts +3 -2
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js +92 -266
  7. package/dist/client.js.map +1 -1
  8. package/dist/components/BuiltWithRevealUI.d.ts +6 -3
  9. package/dist/components/BuiltWithRevealUI.d.ts.map +1 -1
  10. package/dist/components/Button.d.ts +6 -3
  11. package/dist/components/Button.d.ts.map +1 -1
  12. package/dist/components/Card.d.ts.map +1 -1
  13. package/dist/components/Input.d.ts.map +1 -1
  14. package/dist/components/accordion.d.ts.map +1 -1
  15. package/dist/components/alert.d.ts.map +1 -1
  16. package/dist/components/avatar.d.ts.map +1 -1
  17. package/dist/components/badge.d.ts.map +1 -1
  18. package/dist/components/breadcrumb.d.ts.map +1 -1
  19. package/dist/components/button-headless.d.ts.map +1 -1
  20. package/dist/components/callout.d.ts.map +1 -1
  21. package/dist/components/checkbox-headless.d.ts.map +1 -1
  22. package/dist/components/combobox.d.ts.map +1 -1
  23. package/dist/components/dialog.d.ts.map +1 -1
  24. package/dist/components/drawer.d.ts.map +1 -1
  25. package/dist/components/dropdown.d.ts.map +1 -1
  26. package/dist/components/empty-state.d.ts.map +1 -1
  27. package/dist/components/fieldset.d.ts.map +1 -1
  28. package/dist/components/form-field.d.ts +23 -0
  29. package/dist/components/form-field.d.ts.map +1 -0
  30. package/dist/components/icon.d.ts +53 -0
  31. package/dist/components/icon.d.ts.map +1 -0
  32. package/dist/components/index.d.ts +1 -0
  33. package/dist/components/index.d.ts.map +1 -1
  34. package/dist/components/input-headless.d.ts.map +1 -1
  35. package/dist/components/kbd.d.ts.map +1 -1
  36. package/dist/components/listbox.d.ts.map +1 -1
  37. package/dist/components/navbar.d.ts.map +1 -1
  38. package/dist/components/radio.d.ts.map +1 -1
  39. package/dist/components/select-headless.d.ts.map +1 -1
  40. package/dist/components/sidebar.d.ts.map +1 -1
  41. package/dist/components/skeleton.d.ts.map +1 -1
  42. package/dist/components/stat.d.ts.map +1 -1
  43. package/dist/components/switch.d.ts.map +1 -1
  44. package/dist/components/table.d.ts.map +1 -1
  45. package/dist/components/tabs.d.ts.map +1 -1
  46. package/dist/components/textarea-headless.d.ts.map +1 -1
  47. package/dist/components/timeline.d.ts.map +1 -1
  48. package/dist/components/toast.d.ts.map +1 -1
  49. package/dist/components/tooltip.d.ts.map +1 -1
  50. package/dist/hooks/index.d.ts +1 -0
  51. package/dist/hooks/index.d.ts.map +1 -1
  52. package/dist/hooks/use-theme.d.ts +26 -0
  53. package/dist/hooks/use-theme.d.ts.map +1 -0
  54. package/dist/index.js +65 -224
  55. package/dist/index.js.map +1 -1
  56. package/dist/server.d.ts +5 -0
  57. package/dist/server.d.ts.map +1 -1
  58. package/dist/server.js +402 -32
  59. package/dist/server.js.map +1 -1
  60. package/dist/skeleton-CHPpiyJj.js +472 -0
  61. package/dist/skeleton-CHPpiyJj.js.map +1 -0
  62. package/dist/tokens.css +265 -0
  63. package/dist/use-theme-QxeZadnD.js +4024 -0
  64. package/dist/use-theme-QxeZadnD.js.map +1 -0
  65. package/dist/utils/cn.d.ts +21 -4
  66. package/dist/utils/cn.d.ts.map +1 -1
  67. package/package.json +13 -15
  68. package/dist/Box-DC3F8eRf.js +0 -430
  69. package/dist/Box-DC3F8eRf.js.map +0 -1
  70. package/dist/Text-jQVi12Hi.js +0 -218
  71. package/dist/Text-jQVi12Hi.js.map +0 -1
  72. package/dist/tooltip-DQYjYWbe.js +0 -5085
  73. package/dist/tooltip-DQYjYWbe.js.map +0 -1
package/README.md CHANGED
@@ -159,6 +159,20 @@ pnpm dev
159
159
  3. Use CVA for variant-based styling
160
160
  4. Follow WCAG 2.1 accessibility patterns
161
161
 
162
+ ## When to Use This
163
+
164
+ - You need accessible, styled UI components (buttons, forms, cards, dialogs) for a RevealUI app
165
+ - You want headless + styled variants so you can choose between full control and quick defaults
166
+ - You need React hooks for common UI patterns (focus trap, click outside, popover positioning)
167
+ - **Not** for CMS admin UI — `@revealui/core/admin` provides the admin dashboard
168
+ - **Not** for rich text editing — use `@revealui/core/richtext/client` (Lexical-based)
169
+
170
+ ## JOSHUA Alignment
171
+
172
+ - **Sovereign**: Zero external UI library dependencies — only clsx and CVA, so you own every component
173
+ - **Orthogonal**: Components, primitives, and hooks are independent subpath exports with no cross-cutting entanglement
174
+ - **Justifiable**: Every component ships headless and styled variants because different contexts need different levels of control
175
+
162
176
  ## Related
163
177
 
164
178
  - [Core Package](../core/README.md) — CMS engine (uses presentation components)
@@ -0,0 +1,204 @@
1
+ import { v as cn } from "./skeleton-CHPpiyJj.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/auth-layout.tsx
4
+ function AuthLayout({ children, header, footer }) {
5
+ return /* @__PURE__ */ jsx("main", {
6
+ className: "flex min-h-dvh flex-col p-2",
7
+ children: /* @__PURE__ */ jsxs("div", {
8
+ className: "flex grow flex-col items-center justify-center gap-6 p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10",
9
+ children: [
10
+ header,
11
+ children,
12
+ footer
13
+ ]
14
+ })
15
+ });
16
+ }
17
+ //#endregion
18
+ //#region src/components/Card.tsx
19
+ function Card({ className, ref, ...props }) {
20
+ return /* @__PURE__ */ jsx("div", {
21
+ className: cn("rounded-lg border bg-card text-card-foreground shadow-sm hover:shadow-md", className),
22
+ style: {
23
+ borderRadius: "var(--rvui-radius-lg, 16px)",
24
+ transition: "box-shadow var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1))"
25
+ },
26
+ ref,
27
+ ...props
28
+ });
29
+ }
30
+ function CardHeader({ className, ref, ...props }) {
31
+ return /* @__PURE__ */ jsx("div", {
32
+ className: cn("flex flex-col space-y-1.5 p-6", className),
33
+ ref,
34
+ ...props
35
+ });
36
+ }
37
+ function CardTitle({ className, ref, ...props }) {
38
+ return /* @__PURE__ */ jsx("h3", {
39
+ className: cn("text-2xl font-semibold leading-none tracking-tight", className),
40
+ ref,
41
+ ...props
42
+ });
43
+ }
44
+ function CardDescription({ className, ref, ...props }) {
45
+ return /* @__PURE__ */ jsx("p", {
46
+ className: cn("text-sm text-muted-foreground", className),
47
+ ref,
48
+ ...props
49
+ });
50
+ }
51
+ function CardContent({ className, ref, ...props }) {
52
+ return /* @__PURE__ */ jsx("div", {
53
+ className: cn("p-6 pt-0", className),
54
+ ref,
55
+ ...props
56
+ });
57
+ }
58
+ function CardFooter({ className, ref, ...props }) {
59
+ return /* @__PURE__ */ jsx("div", {
60
+ className: cn("flex items-center p-6 pt-0", className),
61
+ ref,
62
+ ...props
63
+ });
64
+ }
65
+ //#endregion
66
+ //#region src/components/Label.tsx
67
+ function Label({ className, ref, ...props }) {
68
+ return /* @__PURE__ */ jsx("label", {
69
+ ref,
70
+ className: cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", className),
71
+ ...props
72
+ });
73
+ }
74
+ Label.displayName = "Label";
75
+ //#endregion
76
+ //#region src/components/FormLabel.tsx
77
+ function FormLabel({ required, className, children, ref, ...props }) {
78
+ return /* @__PURE__ */ jsxs(Label, {
79
+ ref,
80
+ className: cn(className),
81
+ ...props,
82
+ children: [children, required && /* @__PURE__ */ jsx("span", {
83
+ className: "text-destructive ml-1",
84
+ children: "*"
85
+ })]
86
+ });
87
+ }
88
+ FormLabel.displayName = "FormLabel";
89
+ //#endregion
90
+ //#region src/components/form-field.tsx
91
+ function FormField({ id, label, error, description, required, className, children }) {
92
+ const descriptionId = description ? `${id}-description` : void 0;
93
+ const errorId = error ? `${id}-error` : void 0;
94
+ return /* @__PURE__ */ jsxs("div", {
95
+ className: cn("space-y-1.5", className),
96
+ children: [
97
+ /* @__PURE__ */ jsx(FormLabel, {
98
+ htmlFor: id,
99
+ required,
100
+ children: label
101
+ }),
102
+ children,
103
+ description && !error && /* @__PURE__ */ jsx("p", {
104
+ id: descriptionId,
105
+ className: "text-xs text-zinc-500 dark:text-zinc-400",
106
+ children: description
107
+ }),
108
+ error && /* @__PURE__ */ jsx("p", {
109
+ id: errorId,
110
+ role: "alert",
111
+ className: "text-xs text-red-600 dark:text-red-400",
112
+ children: error
113
+ })
114
+ ]
115
+ });
116
+ }
117
+ FormField.displayName = "FormField";
118
+ //#endregion
119
+ //#region src/components/Input.tsx
120
+ function Input({ type, className, ref, ...props }) {
121
+ return /* @__PURE__ */ jsx("input", {
122
+ className: cn("flex h-10 w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", className),
123
+ style: {
124
+ borderRadius: "var(--rvui-radius-md, 10px)",
125
+ transition: "border-color var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1)), box-shadow var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1))"
126
+ },
127
+ ref,
128
+ type,
129
+ ...props
130
+ });
131
+ }
132
+ //#endregion
133
+ //#region src/components/Textarea.tsx
134
+ function Textarea({ className, ref, ...props }) {
135
+ return /* @__PURE__ */ jsx("textarea", {
136
+ className: cn("flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", className),
137
+ ref,
138
+ ...props
139
+ });
140
+ }
141
+ //#endregion
142
+ //#region src/primitives/Flex.tsx
143
+ /**
144
+ * Flex primitive - Flexbox container component
145
+ */
146
+ function Flex({ direction = "row", align, justify, wrap, gap, className, style, ref, ...props }) {
147
+ return /* @__PURE__ */ jsx("div", {
148
+ ref,
149
+ className: cn("flex", direction && `flex-${direction}`, align && `items-${align === "start" ? "start" : align === "end" ? "end" : align}`, justify && `justify-${justify === "start" ? "start" : justify === "end" ? "end" : justify === "between" ? "between" : justify === "around" ? "around" : justify === "evenly" ? "evenly" : "center"}`, wrap === true && "flex-wrap", wrap === "wrap" && "flex-wrap", wrap === "nowrap" && "flex-nowrap", wrap === "wrap-reverse" && "flex-wrap-reverse", className),
150
+ style: {
151
+ ...style,
152
+ ...gap && { gap: typeof gap === "number" ? `${gap}px` : gap }
153
+ },
154
+ ...props
155
+ });
156
+ }
157
+ //#endregion
158
+ //#region src/primitives/Grid.tsx
159
+ /**
160
+ * Grid primitive - CSS Grid container component
161
+ */
162
+ function Grid({ cols, rows, gap, className, style, ref, ...props }) {
163
+ const gridStyle = {
164
+ ...style,
165
+ ...cols && { gridTemplateColumns: typeof cols === "number" ? `repeat(${cols}, 1fr)` : cols },
166
+ ...rows && { gridTemplateRows: typeof rows === "number" ? `repeat(${rows}, 1fr)` : rows },
167
+ ...gap && { gap: typeof gap === "number" ? `${gap}px` : gap }
168
+ };
169
+ return /* @__PURE__ */ jsx("div", {
170
+ ref,
171
+ className: cn("grid", className),
172
+ style: gridStyle,
173
+ ...props
174
+ });
175
+ }
176
+ //#endregion
177
+ //#region src/primitives/Heading.tsx
178
+ /**
179
+ * Heading primitive - Heading component
180
+ */
181
+ function Heading({ as, size = "base", className, children, ref, ...props }) {
182
+ return /* @__PURE__ */ jsx(as || "h2", {
183
+ ref,
184
+ className: cn(size === "sm" && "text-sm", size === "base" && "text-base", size === "lg" && "text-lg", size === "xl" && "text-xl", size === "2xl" && "text-2xl", size === "3xl" && "text-3xl", size === "4xl" && "text-4xl", "font-semibold", className),
185
+ ...props,
186
+ children
187
+ });
188
+ }
189
+ //#endregion
190
+ //#region src/primitives/Text.tsx
191
+ /**
192
+ * Text primitive - Typography component
193
+ */
194
+ function Text({ as: Component = "p", size = "base", weight = "normal", color = "default", className, ref, ...props }) {
195
+ return /* @__PURE__ */ jsx(Component, {
196
+ ref,
197
+ className: cn(size === "xs" && "text-xs", size === "sm" && "text-sm", size === "base" && "text-base", size === "lg" && "text-lg", size === "xl" && "text-xl", size === "2xl" && "text-2xl", weight === "normal" && "font-normal", weight === "medium" && "font-medium", weight === "semibold" && "font-semibold", weight === "bold" && "font-bold", color === "muted" && "text-muted-foreground", color === "primary" && "text-primary", color === "secondary" && "text-secondary-foreground", color === "destructive" && "text-destructive", className),
198
+ ...props
199
+ });
200
+ }
201
+ //#endregion
202
+ export { Textarea as a, FormLabel as c, CardContent as d, CardDescription as f, AuthLayout as g, CardTitle as h, Flex as i, Label as l, CardHeader as m, Heading as n, Input as o, CardFooter as p, Grid as r, FormField as s, Text as t, Card as u };
203
+
204
+ //# sourceMappingURL=Text-mMOCv1lF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text-mMOCv1lF.js","names":[],"sources":["../src/components/auth-layout.tsx","../src/components/Card.tsx","../src/components/Label.tsx","../src/components/FormLabel.tsx","../src/components/form-field.tsx","../src/components/Input.tsx","../src/components/Textarea.tsx","../src/primitives/Flex.tsx","../src/primitives/Grid.tsx","../src/primitives/Heading.tsx","../src/primitives/Text.tsx"],"sourcesContent":["import type React from 'react';\n\nexport interface AuthLayoutProps {\n children: React.ReactNode;\n /** Optional branding slot rendered above the auth form */\n header?: React.ReactNode;\n /** Optional branding slot rendered below the auth form */\n footer?: React.ReactNode;\n}\n\nexport function AuthLayout({ children, header, footer }: AuthLayoutProps) {\n return (\n <main className=\"flex min-h-dvh flex-col p-2\">\n <div className=\"flex grow flex-col items-center justify-center gap-6 p-6 lg:rounded-lg lg:bg-white lg:p-10 lg:shadow-xs lg:ring-1 lg:ring-zinc-950/5 dark:lg:bg-zinc-900 dark:lg:ring-white/10\">\n {header}\n {children}\n {footer}\n </div>\n </main>\n );\n}\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nfunction Card({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return (\n <div\n className={cn(\n 'rounded-lg border bg-card text-card-foreground shadow-sm hover:shadow-md',\n className,\n )}\n style={{\n borderRadius: 'var(--rvui-radius-lg, 16px)',\n transition:\n 'box-shadow var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1))',\n }}\n ref={ref}\n {...props}\n />\n );\n}\n\nfunction CardHeader({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return <div className={cn('flex flex-col space-y-1.5 p-6', className)} ref={ref} {...props} />;\n}\n\nfunction CardTitle({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLHeadingElement> & { ref?: React.Ref<HTMLParagraphElement> }) {\n return (\n <h3\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n ref={ref}\n {...props}\n />\n );\n}\n\nfunction CardDescription({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLParagraphElement> & { ref?: React.Ref<HTMLParagraphElement> }) {\n return <p className={cn('text-sm text-muted-foreground', className)} ref={ref} {...props} />;\n}\n\nfunction CardContent({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return <div className={cn('p-6 pt-0', className)} ref={ref} {...props} />;\n}\n\nfunction CardFooter({\n className,\n ref,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & { ref?: React.Ref<HTMLDivElement> }) {\n return <div className={cn('flex items-center p-6 pt-0', className)} ref={ref} {...props} />;\n}\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type LabelProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n ref?: React.Ref<HTMLLabelElement>;\n};\n\nfunction Label({ className, ref, ...props }: LabelProps) {\n return (\n // biome-ignore lint/a11y/noLabelWithoutControl: label associations are provided by consumers.\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n className,\n )}\n {...props}\n />\n );\n}\n\nLabel.displayName = 'Label';\n\nexport { Label };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\nimport { Label, type LabelProps } from './Label.js';\n\nexport interface FormLabelProps extends LabelProps {\n required?: boolean;\n ref?: React.Ref<HTMLLabelElement>;\n}\n\nfunction FormLabel({ required, className, children, ref, ...props }: FormLabelProps) {\n return (\n <Label ref={ref} className={cn(className)} {...props}>\n {children}\n {required && <span className=\"text-destructive ml-1\">*</span>}\n </Label>\n );\n}\n\nFormLabel.displayName = 'FormLabel';\n\nexport { FormLabel };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\nimport { FormLabel } from './FormLabel.js';\n\nexport interface FormFieldProps {\n /** Unique ID linking label to input — must match the input's `id` prop */\n id: string;\n /** Label text */\n label: string;\n /** Error message — when set, field shows error styling */\n error?: string;\n /** Helper text shown below the input */\n description?: string;\n /** Show required asterisk on label */\n required?: boolean;\n /** Additional class on wrapper */\n className?: string;\n /** The input/select/textarea element */\n children: React.ReactNode;\n}\n\nfunction FormField({\n id,\n label,\n error,\n description,\n required,\n className,\n children,\n}: FormFieldProps) {\n const descriptionId = description ? `${id}-description` : undefined;\n const errorId = error ? `${id}-error` : undefined;\n\n return (\n <div className={cn('space-y-1.5', className)}>\n <FormLabel htmlFor={id} required={required}>\n {label}\n </FormLabel>\n {children}\n {description && !error && (\n <p id={descriptionId} className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {description}\n </p>\n )}\n {error && (\n <p id={errorId} role=\"alert\" className=\"text-xs text-red-600 dark:text-red-400\">\n {error}\n </p>\n )}\n </div>\n );\n}\n\nFormField.displayName = 'FormField';\n\nexport { FormField };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type InputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n ref?: React.Ref<HTMLInputElement>;\n};\n\nfunction Input({ type, className, ref, ...props }: InputProps) {\n return (\n <input\n className={cn(\n 'flex h-10 w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n style={{\n borderRadius: 'var(--rvui-radius-md, 10px)',\n transition:\n 'border-color var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1)), box-shadow var(--rvui-duration-normal, 200ms) var(--rvui-ease, cubic-bezier(0.22, 1, 0.36, 1))',\n }}\n ref={ref}\n type={type}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\n ref?: React.Ref<HTMLTextAreaElement>;\n};\n\nfunction Textarea({ className, ref, ...props }: TextareaProps) {\n return (\n <textarea\n className={cn(\n 'flex min-h-[80px] w-full rounded border border-border bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface FlexProps extends React.HTMLAttributes<HTMLDivElement> {\n direction?: 'row' | 'column' | 'row-reverse' | 'column-reverse';\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n wrap?: boolean | 'wrap' | 'nowrap' | 'wrap-reverse';\n gap?: number | string;\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * Flex primitive - Flexbox container component\n */\nfunction Flex({\n direction = 'row',\n align,\n justify,\n wrap,\n gap,\n className,\n style,\n ref,\n ...props\n}: FlexProps) {\n const flexClasses = cn(\n 'flex',\n direction && `flex-${direction}`,\n align && `items-${align === 'start' ? 'start' : align === 'end' ? 'end' : align}`,\n justify &&\n `justify-${justify === 'start' ? 'start' : justify === 'end' ? 'end' : justify === 'between' ? 'between' : justify === 'around' ? 'around' : justify === 'evenly' ? 'evenly' : 'center'}`,\n wrap === true && 'flex-wrap',\n wrap === 'wrap' && 'flex-wrap',\n wrap === 'nowrap' && 'flex-nowrap',\n wrap === 'wrap-reverse' && 'flex-wrap-reverse',\n className,\n );\n\n const flexStyle = {\n ...style,\n ...(gap && { gap: typeof gap === 'number' ? `${gap}px` : gap }),\n };\n\n return <div ref={ref} className={flexClasses} style={flexStyle} {...props} />;\n}\n\nexport { Flex };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface GridProps extends React.HTMLAttributes<HTMLDivElement> {\n cols?: number | string;\n rows?: number | string;\n gap?: number | string;\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * Grid primitive - CSS Grid container component\n */\nfunction Grid({ cols, rows, gap, className, style, ref, ...props }: GridProps) {\n const gridStyle: React.CSSProperties = {\n ...style,\n ...(cols && {\n gridTemplateColumns: typeof cols === 'number' ? `repeat(${cols}, 1fr)` : cols,\n }),\n ...(rows && {\n gridTemplateRows: typeof rows === 'number' ? `repeat(${rows}, 1fr)` : rows,\n }),\n ...(gap && { gap: typeof gap === 'number' ? `${gap}px` : gap }),\n };\n\n return <div ref={ref} className={cn('grid', className)} style={gridStyle} {...props} />;\n}\n\nexport { Grid };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n size?: 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl';\n ref?: React.Ref<HTMLHeadingElement>;\n}\n\n/**\n * Heading primitive - Heading component\n */\nfunction Heading({ as, size = 'base', className, children, ref, ...props }: HeadingProps) {\n const Component = as || 'h2';\n\n const headingClasses = cn(\n size === 'sm' && 'text-sm',\n size === 'base' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl',\n size === '2xl' && 'text-2xl',\n size === '3xl' && 'text-3xl',\n size === '4xl' && 'text-4xl',\n 'font-semibold',\n className,\n );\n\n return (\n <Component ref={ref} className={headingClasses} {...props}>\n {children}\n </Component>\n );\n}\n\nexport { Heading };\n","import type React from 'react';\nimport { cn } from '../utils/cn.js';\n\nexport interface TextProps extends React.HTMLAttributes<HTMLParagraphElement> {\n as?: 'p' | 'span' | 'div';\n size?: 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl';\n weight?: 'normal' | 'medium' | 'semibold' | 'bold';\n color?: 'default' | 'muted' | 'primary' | 'secondary' | 'destructive';\n ref?: React.Ref<HTMLParagraphElement>;\n}\n\n/**\n * Text primitive - Typography component\n */\nfunction Text({\n as: Component = 'p',\n size = 'base',\n weight = 'normal',\n color = 'default',\n className,\n ref,\n ...props\n}: TextProps) {\n const textClasses = cn(\n size === 'xs' && 'text-xs',\n size === 'sm' && 'text-sm',\n size === 'base' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl',\n size === '2xl' && 'text-2xl',\n weight === 'normal' && 'font-normal',\n weight === 'medium' && 'font-medium',\n weight === 'semibold' && 'font-semibold',\n weight === 'bold' && 'font-bold',\n color === 'muted' && 'text-muted-foreground',\n color === 'primary' && 'text-primary',\n color === 'secondary' && 'text-secondary-foreground',\n color === 'destructive' && 'text-destructive',\n className,\n );\n\n return <Component ref={ref} className={textClasses} {...props} />;\n}\n\nexport { Text };\n"],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -22,7 +22,7 @@ export { Drawer, DrawerBody, DrawerFooter, DrawerHeader } from './components/dra
22
22
  export { Dropdown, DropdownButton, DropdownDescription, DropdownDivider, DropdownHeader, DropdownHeading, DropdownItem, DropdownLabel, DropdownMenu, DropdownSection, DropdownShortcut, } from './components/dropdown.js';
23
23
  export { EmptyState } from './components/empty-state.js';
24
24
  export { Description, ErrorMessage, Field, FieldGroup, Fieldset, Label as FieldsetLabel, Legend, } from './components/fieldset.js';
25
- export { Heading } from './components/heading.js';
25
+ export { Heading, Subheading } from './components/heading.js';
26
26
  export { Input, InputGroup } from './components/input-headless.js';
27
27
  export { Kbd, KbdShortcut } from './components/kbd.js';
28
28
  export { Link } from './components/link.js';
@@ -45,9 +45,10 @@ export { Stepper, type StepperStep } from './components/stepper.js';
45
45
  export { Switch, SwitchField, SwitchGroup } from './components/switch.js';
46
46
  export { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from './components/table.js';
47
47
  export { Tab, TabList, TabPanel, Tabs } from './components/tabs.js';
48
- export { Text } from './components/text.js';
48
+ export { Code, Strong, Text, TextLink } from './components/text.js';
49
49
  export { Textarea } from './components/textarea-headless.js';
50
50
  export { Timeline, TimelineItem } from './components/timeline.js';
51
51
  export { ToastProvider, useToast } from './components/toast.js';
52
52
  export { Tooltip } from './components/tooltip.js';
53
+ export { type ResolvedTheme, type Theme, useTheme } from './hooks/use-theme.js';
53
54
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}