@glyphui/ui 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +65 -12
  2. package/dist/chart.d.ts +202 -0
  3. package/dist/chart.js +466 -0
  4. package/dist/color-mode-script-Bf7LYkOj.js +13 -0
  5. package/dist/color-mode-script-KdwItKN2.d.ts +16 -0
  6. package/dist/data-table.js +3 -2
  7. package/dist/{field-CCecIzdq.js → field-CVbywksE.js} +21 -5
  8. package/dist/{field-context-B6WOcK5m.js → field-context-7I-cWvvS.js} +3 -57
  9. package/dist/form.d.ts +11 -4
  10. package/dist/form.js +34 -8
  11. package/dist/glyph-context-DxGJrdvr.d.ts +50 -0
  12. package/dist/{index-BWK4czIG.d.ts → index-Bi7rZ6ba.d.ts} +11 -0
  13. package/dist/index.d.ts +2334 -283
  14. package/dist/index.js +2952 -326
  15. package/dist/react-router.d.ts +18 -0
  16. package/dist/react-router.js +44 -0
  17. package/dist/{states-Rp8wZ_jH.js → states-IvhjBgna.js} +2 -1
  18. package/dist/tv-DLbT66dC.js +70 -0
  19. package/dist/vite.d.ts +27 -0
  20. package/dist/vite.js +29 -0
  21. package/fonts.css +10 -0
  22. package/package.json +47 -5
  23. package/src/components/accordion/accordion.styles.ts +4 -4
  24. package/src/components/badge/badge.styles.ts +11 -16
  25. package/src/components/banner/banner.styles.ts +4 -4
  26. package/src/components/button/button.styles.ts +3 -1
  27. package/src/components/calendar/calendar.styles.ts +51 -0
  28. package/src/components/calendar/calendar.tsx +84 -0
  29. package/src/components/calendar/index.ts +3 -0
  30. package/src/components/carousel/carousel.styles.ts +43 -0
  31. package/src/components/carousel/carousel.tsx +278 -0
  32. package/src/components/carousel/index.ts +13 -0
  33. package/src/components/collapsible/collapsible.tsx +66 -0
  34. package/src/components/collapsible/index.ts +6 -0
  35. package/src/components/context-menu/context-menu.styles.ts +19 -0
  36. package/src/components/context-menu/context-menu.tsx +226 -0
  37. package/src/components/context-menu/index.ts +19 -0
  38. package/src/components/copy-button/copy-button.tsx +117 -0
  39. package/src/components/copy-button/index.ts +1 -0
  40. package/src/components/date-picker/date-picker.styles.ts +42 -0
  41. package/src/components/date-picker/date-picker.tsx +322 -0
  42. package/src/components/date-picker/index.ts +8 -0
  43. package/src/components/dropdown-menu/dropdown-menu.styles.ts +2 -2
  44. package/src/components/eyebrow/eyebrow.styles.ts +1 -1
  45. package/src/components/field/field-context.ts +2 -0
  46. package/src/components/field/field.styles.ts +4 -2
  47. package/src/components/field/field.tsx +25 -4
  48. package/src/components/file-upload/file-upload.styles.ts +43 -0
  49. package/src/components/file-upload/file-upload.tsx +343 -0
  50. package/src/components/file-upload/index.ts +10 -0
  51. package/src/components/hover-card/hover-card.tsx +41 -0
  52. package/src/components/hover-card/index.ts +1 -0
  53. package/src/components/input-otp/index.ts +10 -0
  54. package/src/components/input-otp/input-otp.styles.ts +38 -0
  55. package/src/components/input-otp/input-otp.tsx +116 -0
  56. package/src/components/link/link.styles.ts +1 -1
  57. package/src/components/modal/index.ts +2 -0
  58. package/src/components/modal/modal.styles.ts +20 -0
  59. package/src/components/modal/modal.tsx +111 -0
  60. package/src/components/navigation-menu/index.ts +14 -0
  61. package/src/components/navigation-menu/navigation-menu.styles.ts +48 -0
  62. package/src/components/navigation-menu/navigation-menu.tsx +208 -0
  63. package/src/components/number-input/index.ts +2 -0
  64. package/src/components/number-input/number-input.styles.ts +41 -0
  65. package/src/components/number-input/number-input.tsx +211 -0
  66. package/src/components/password-input/index.ts +7 -0
  67. package/src/components/password-input/password-input.styles.ts +30 -0
  68. package/src/components/password-input/password-input.tsx +127 -0
  69. package/src/components/prose/prose.tsx +1 -1
  70. package/src/components/resizable/index.ts +9 -0
  71. package/src/components/resizable/resizable.styles.ts +28 -0
  72. package/src/components/resizable/resizable.tsx +69 -0
  73. package/src/components/scroll-area/scroll-area.tsx +23 -1
  74. package/src/components/segmented-control/segmented-control.tsx +17 -2
  75. package/src/components/sheet/sheet.styles.ts +7 -7
  76. package/src/components/slider/slider.tsx +9 -2
  77. package/src/components/stepper/index.ts +2 -0
  78. package/src/components/stepper/stepper.styles.ts +74 -0
  79. package/src/components/stepper/stepper.tsx +138 -0
  80. package/src/components/tag-input/index.ts +2 -0
  81. package/src/components/tag-input/tag-input.styles.ts +39 -0
  82. package/src/components/tag-input/tag-input.tsx +198 -0
  83. package/src/components/text/text.styles.ts +4 -4
  84. package/src/components/timeline/index.ts +8 -0
  85. package/src/components/timeline/timeline.styles.ts +56 -0
  86. package/src/components/timeline/timeline.tsx +91 -0
  87. package/src/components/toggle/index.ts +9 -0
  88. package/src/components/toggle/toggle.styles.ts +39 -0
  89. package/src/components/toggle/toggle.tsx +61 -0
  90. package/src/components/tree-view/index.ts +2 -0
  91. package/src/components/tree-view/tree-view.styles.ts +42 -0
  92. package/src/components/tree-view/tree-view.tsx +274 -0
  93. package/src/components/visually-hidden/index.ts +1 -0
  94. package/src/components/visually-hidden/visually-hidden.tsx +10 -0
  95. package/src/index.ts +20 -0
  96. package/src/integrations/react-router.tsx +39 -0
  97. package/src/integrations/vite.test-d.ts +6 -0
  98. package/src/integrations/vite.test.ts +28 -0
  99. package/src/integrations/vite.ts +33 -0
  100. package/src/internal/dev.ts +12 -0
  101. package/src/patterns/app-shell/app-shell.styles.ts +1 -1
  102. package/src/patterns/app-shell/navbar.tsx +34 -16
  103. package/src/patterns/app-shell/sidebar.tsx +7 -2
  104. package/src/patterns/chart/chart-parts.tsx +179 -0
  105. package/src/patterns/chart/chart.styles.ts +35 -0
  106. package/src/patterns/chart/chart.tsx +386 -0
  107. package/src/patterns/chart/index.ts +13 -0
  108. package/src/patterns/form/form.tsx +48 -6
  109. package/src/patterns/form/index.ts +1 -0
  110. package/src/provider/color-mode-script.ts +28 -0
  111. package/src/provider/color-mode.tsx +14 -20
  112. package/src/provider/glyph-context.ts +38 -0
  113. package/src/provider/glyph-provider.tsx +16 -4
  114. package/src/provider/index.ts +4 -0
  115. package/src/provider/theme-scope.tsx +7 -3
  116. package/styles.css +88 -0
package/README.md CHANGED
@@ -8,8 +8,10 @@ React components on Tailwind CSS v4 that take their whole look from **one typed
8
8
 
9
9
  ```sh
10
10
  npm install @glyphui/ui
11
- # optional: the form and data-table patterns
12
- npm install react-hook-form @hookform/resolvers zod @tanstack/react-table
11
+ # optional: forms and data tables (TanStack Table version 8)
12
+ npm install react-hook-form @hookform/resolvers zod @tanstack/react-table@8
13
+ # optional: charts from @glyphui/ui/chart
14
+ npm install recharts
13
15
  ```
14
16
 
15
17
  Requires React 19 and Tailwind CSS 4.1 or later.
@@ -18,22 +20,39 @@ Requires React 19 and Tailwind CSS 4.1 or later.
18
20
 
19
21
  ```css
20
22
  /* index.css */
23
+ @import "@glyphui/ui/fonts.css"; /* Geist, used by the default theme */
21
24
  @import "tailwindcss";
22
25
  @import "@glyphui/ui/styles.css";
26
+ @import "@glyphui/blocks/styles.css"; /* only with @glyphui/blocks */
23
27
  ```
24
28
 
25
29
  ```tsx
26
30
  // main.tsx
27
31
  import { GlyphProvider, presets } from '@glyphui/ui'
32
+ import { reactRouter } from '@glyphui/ui/react-router'
28
33
 
29
34
  createRoot(document.getElementById('root')!).render(
30
- <GlyphProvider theme={presets.glyph} defaultMode="system">
31
- <App />
32
- </GlyphProvider>,
35
+ <BrowserRouter>
36
+ <GlyphProvider theme={presets.glyph} defaultMode="system" router={reactRouter} toaster>
37
+ <App />
38
+ </GlyphProvider>
39
+ </BrowserRouter>,
33
40
  )
34
41
  ```
35
42
 
36
- To avoid a light flash for dark-mode visitors, run `getColorModeScript()` in `<head>`, or render `<ColorModeScript />` with an SSR framework.
43
+ - `router` (optional) makes Glyph's links client-side and marks the current Sidebar, Navbar and NavigationMenu item automatically. For other routers, pass `{ Link, useIsActive }`; the [getting-started guide](https://khalmohak.github.io/glyph/getting-started) has TanStack Router and Next.js versions.
44
+ - `toaster` mounts the toast container, so `toast.success('Saved')` works anywhere. `useConfirm()` needs no setup.
45
+
46
+ To avoid a light flash for dark-mode visitors, add the Vite plugin:
47
+
48
+ ```ts
49
+ // vite.config.ts
50
+ import { glyphColorMode } from '@glyphui/ui/vite'
51
+
52
+ export default defineConfig({ plugins: [react(), tailwindcss(), glyphColorMode()] })
53
+ ```
54
+
55
+ With an SSR framework, render `<ColorModeScript />` in the document head instead.
37
56
 
38
57
  ## Your theme, in one file
39
58
 
@@ -57,7 +76,7 @@ export default defineTheme({
57
76
  ```
58
77
 
59
78
  A theme controls:
60
- - colors, separately for light and dark
79
+ - colors, separately for light and dark, including a five-color chart palette
61
80
  - a nine-step type scale (size, line height, tracking, weight)
62
81
  - radius, shadows, border width, motion and control height
63
82
  - defaults and extra classes for each component
@@ -68,9 +87,20 @@ The same tokens work in your own markup: `bg-primary`, `text-muted-foreground`,
68
87
 
69
88
  ## Components
70
89
 
71
- `Button` · `IconButton` · `Badge` · `Card` · `Heading` · `Text` · `Eyebrow` · `Kbd` · `Avatar` · `Separator` · `Skeleton` · `Spinner` · `Label` · `Field` · `Input` · `Textarea` · `Checkbox` · `Switch` · `Select` · `SegmentedControl` · `Tabs` · `Tooltip` · `Table` · `Container` · `Section` · `Stack` · `ThemeScope`
72
-
73
- Accessible behavior comes from [Radix UI](https://www.radix-ui.com/). Every component accepts `className`, and most accept `asChild`.
90
+ | Category | Components (95) |
91
+ |---|---|
92
+ | Actions | Button · CopyButton · Toggle |
93
+ | Forms | Calendar · Checkbox · Combobox · DatePicker · Field · FileUpload · Input · InputOTP · Label · NumberInput · PasswordInput · RadioGroup · SegmentedControl · Select · Slider · Switch · TagInput · Textarea |
94
+ | Overlays | Alert Dialog · ContextMenu · Dialog · Dropdown Menu · HoverCard · Modal · Popover · Sheet · Tooltip |
95
+ | Navigation | Breadcrumb · CommandMenu · Link · NavigationMenu · Pagination · Stepper · Tabs |
96
+ | Feedback | Alert · Banner · Progress · Skeleton · Spinner · Toast |
97
+ | Data display | Accordion · Avatar · Badge · Carousel · Chart · Collapsible · DescriptionList · Kbd · StatCard · Table · Timeline · TreeView |
98
+ | Typography | Blockquote · Code · Eyebrow · Heading · Prose · Text |
99
+ | Layout | AspectRatio · Card · Container · Grid · Resizable · ScrollArea · Section · Separator · Stack · VisuallyHidden |
100
+ | Patterns | AppShell · Async · DataTable · Form · Navbar · PageHeader · Router integration · Sidebar · Theming · Utilities · Vite plugin |
101
+ | Blocks (`@glyphui/blocks`) | AuthCard · Cta · Faq · FeatureGrid · FeatureSplit · Hero · LogoCloud · Newsletter · Pricing · SectionHeader · SiteFooter · Stats · Testimonials |
102
+
103
+ Every component has a page with live examples and props in the [docs](https://khalmohak.github.io/glyph/components). Accessible behavior comes from [Radix UI](https://www.radix-ui.com/). Every component accepts `className`, and most accept `asChild`.
74
104
 
75
105
  ## Patterns
76
106
 
@@ -80,13 +110,13 @@ Accessible behavior comes from [Radix UI](https://www.radix-ui.com/). Every comp
80
110
  import { AppShell, Sidebar, SidebarContent, SidebarItem, PageHeader } from '@glyphui/ui'
81
111
 
82
112
  <AppShell sidebar={<Sidebar><SidebarContent>
83
- <SidebarItem href="/inbox" icon={<Inbox />} badge={3} active>Inbox</SidebarItem>
113
+ <SidebarItem href="/inbox" icon={<Inbox />} badge={3}>Inbox</SidebarItem>
84
114
  </SidebarContent></Sidebar>}>
85
115
  <PageHeader title="Inbox" actions={<Button>New</Button>} />
86
116
  </AppShell>
87
117
  ```
88
118
 
89
- The sidebar collapses to an icon strip on desktop and opens as a focus-trapped drawer on mobile. `Navbar` builds a responsive site header from `links` data. To use your router's link component, pass it to `GlyphProvider`: `linkComponent={RouterLink}`.
119
+ The sidebar collapses to an icon strip on desktop and opens as a focus-trapped drawer on mobile. `Navbar` builds a responsive site header from `links` data. With `router` on `GlyphProvider`, the item for the current URL is marked active; pass `active` to override.
90
120
 
91
121
  ### Forms: `@glyphui/ui/form`
92
122
 
@@ -108,6 +138,20 @@ const form = useForm({ schema, defaultValues: { email: '' } }) // zod, valibot,
108
138
 
109
139
  Field names are checked against the schema. Server errors you return appear on their fields. If `onSubmit` throws, the error appears above the form in `<FormError />`.
110
140
 
141
+ ### Modals and confirmations
142
+
143
+ ```tsx
144
+ <Modal title="New invoice" trigger={<Button>New invoice</Button>}
145
+ footer={<FormSubmit form={form}>Create</FormSubmit>}> {/* outside <Form>, so pass form */}
146
+ <Form form={form} onSubmit={save}>…</Form>
147
+ </Modal>
148
+
149
+ const confirm = useConfirm()
150
+ if (await confirm({ title: 'Delete invoice?', tone: 'danger' })) remove()
151
+ ```
152
+
153
+ For a plain form, pass `onSubmit` to `Modal` and a `type="submit"` button in the footer.
154
+
111
155
  ### Data tables: `@glyphui/ui/data-table`
112
156
 
113
157
  ```tsx
@@ -125,6 +169,15 @@ const columns = [
125
169
 
126
170
  Includes sorting, search, row selection and pages, plus loading, empty, no-results and error states.
127
171
 
172
+ ### Charts: `@glyphui/ui/chart`
173
+
174
+ ```tsx
175
+ <AreaChart title="Revenue" data={revenue} index="month"
176
+ series={[{ key: 'recurring', label: 'Recurring' }, { key: 'oneOff', label: 'One-off' }]} />
177
+ ```
178
+
179
+ Series use the theme's `chart-1` to `chart-5` colors. Every chart includes a visually hidden data table for screen readers. Needs `recharts`.
180
+
128
181
  ### Async states
129
182
 
130
183
  ```tsx
@@ -0,0 +1,202 @@
1
+ import { t as VariantProps } from "./tv-DuMh7UH2.js";
2
+ import { t as StylesEntry } from "./registry-BGSJoiLq.js";
3
+ import { ReactNode } from "react";
4
+ //#region src/patterns/chart/chart-parts.d.ts
5
+ /** Theme colors a series can use by name. Any CSS color also works. */
6
+ type ChartColor = 'chart-1' | 'chart-2' | 'chart-3' | 'chart-4' | 'chart-5' | 'primary' | 'info' | 'success' | 'warning' | 'danger' | 'foreground' | 'muted-foreground';
7
+ //#endregion
8
+ //#region src/patterns/chart/chart.d.ts
9
+ type Key<T> = Extract<keyof T, string>;
10
+ interface ChartSeries<T> {
11
+ /** Field of each data row holding this series' value. */
12
+ key: Key<T>;
13
+ /** Name shown in the legend, tooltip and accessible table. Defaults to `key`. */
14
+ label?: string;
15
+ /** A theme color name (`primary`, `info`, ...) or any CSS color. Defaults follow the theme palette. */
16
+ color?: ChartColor | (string & {});
17
+ }
18
+ interface CartesianChartProps<T extends object> {
19
+ data: readonly T[];
20
+ /** Field used for the x axis, e.g. `"month"`. */
21
+ index: Key<T>;
22
+ series: readonly ChartSeries<T>[];
23
+ /** Accessible name; also shown as the caption unless `hideTitle` is set. */
24
+ title: string;
25
+ description?: ReactNode;
26
+ hideTitle?: boolean;
27
+ /** Formats values on the y axis, in tooltips and in the accessible table. */
28
+ valueFormatter?: (value: number) => string;
29
+ /** Plot height in pixels. Default 240. */
30
+ height?: number;
31
+ showGrid?: boolean;
32
+ /** Defaults to true when there is more than one series. */
33
+ showLegend?: boolean;
34
+ showYAxis?: boolean;
35
+ className?: string;
36
+ }
37
+ /** Trends over time, one line per series. */
38
+ export declare function LineChart<T extends object>(props: CartesianChartProps<T> & {
39
+ curve?: 'monotone' | 'linear';
40
+ }): import("react").JSX.Element;
41
+ /** Trends with filled areas. `stacked` shows how series add up to a total. */
42
+ export declare function AreaChart<T extends object>(props: CartesianChartProps<T> & {
43
+ stacked?: boolean;
44
+ }): import("react").JSX.Element;
45
+ /** Compare values across categories. `stacked` puts series on top of each other. */
46
+ export declare function BarChart<T extends object>(props: CartesianChartProps<T> & {
47
+ stacked?: boolean; /** Corner radius of bar tops. Default 3. */
48
+ barRadius?: number;
49
+ }): import("react").JSX.Element;
50
+ interface DonutChartProps<T extends object> {
51
+ data: readonly T[];
52
+ /** Field naming each slice. */
53
+ category: Key<T>;
54
+ /** Field holding each slice's value. */
55
+ value: Key<T>;
56
+ title: string;
57
+ description?: ReactNode;
58
+ hideTitle?: boolean;
59
+ /** One color per slice, in order. Defaults follow the theme palette. */
60
+ colors?: readonly (ChartColor | (string & {}))[];
61
+ /** Content in the hole, e.g. the total. */
62
+ centerLabel?: ReactNode;
63
+ valueFormatter?: (value: number) => string;
64
+ /** Diameter in pixels. Default 200. */
65
+ size?: number;
66
+ showLegend?: boolean;
67
+ className?: string;
68
+ }
69
+ /** Parts of a whole. Best with five or fewer slices. */
70
+ export declare function DonutChart<T extends object>(props: DonutChartProps<T>): import("react").JSX.Element;
71
+ interface SparklineProps {
72
+ values: readonly number[];
73
+ /** Accessible description, e.g. "Revenue over the last 12 months, rising". */
74
+ title: string;
75
+ color?: ChartColor | (string & {});
76
+ /** Height in pixels. Default 36. */
77
+ height?: number;
78
+ /** Fill the area under the line. */
79
+ area?: boolean;
80
+ className?: string;
81
+ }
82
+ /** A tiny trend line without axes, for stat cards and table cells. */
83
+ export declare function Sparkline({ values, title, color, height, area, className }: SparklineProps): import("react").JSX.Element;
84
+ //#endregion
85
+ //#region src/patterns/chart/chart.styles.d.ts
86
+ export declare const chartStyles: import("tailwind-variants").TVReturnType<{
87
+ [key: string]: {
88
+ [key: string]: import("tailwind-variants").ClassValue | {
89
+ root?: import("tailwind-variants").ClassValue;
90
+ caption?: import("tailwind-variants").ClassValue;
91
+ title?: import("tailwind-variants").ClassValue;
92
+ description?: import("tailwind-variants").ClassValue;
93
+ plot?: import("tailwind-variants").ClassValue;
94
+ legend?: import("tailwind-variants").ClassValue;
95
+ legendItem?: import("tailwind-variants").ClassValue;
96
+ swatch?: import("tailwind-variants").ClassValue;
97
+ tooltipLabel?: import("tailwind-variants").ClassValue;
98
+ tooltipRow?: import("tailwind-variants").ClassValue;
99
+ tooltipName?: import("tailwind-variants").ClassValue;
100
+ tooltipValue?: import("tailwind-variants").ClassValue;
101
+ center?: import("tailwind-variants").ClassValue;
102
+ srOnly?: import("tailwind-variants").ClassValue;
103
+ tooltip?: import("tailwind-variants").ClassValue;
104
+ };
105
+ };
106
+ } | {
107
+ [x: string]: {
108
+ [x: string]: import("tailwind-variants").ClassValue | {
109
+ root?: import("tailwind-variants").ClassValue;
110
+ caption?: import("tailwind-variants").ClassValue;
111
+ title?: import("tailwind-variants").ClassValue;
112
+ description?: import("tailwind-variants").ClassValue;
113
+ plot?: import("tailwind-variants").ClassValue;
114
+ legend?: import("tailwind-variants").ClassValue;
115
+ legendItem?: import("tailwind-variants").ClassValue;
116
+ swatch?: import("tailwind-variants").ClassValue;
117
+ tooltipLabel?: import("tailwind-variants").ClassValue;
118
+ tooltipRow?: import("tailwind-variants").ClassValue;
119
+ tooltipName?: import("tailwind-variants").ClassValue;
120
+ tooltipValue?: import("tailwind-variants").ClassValue;
121
+ center?: import("tailwind-variants").ClassValue;
122
+ srOnly?: import("tailwind-variants").ClassValue;
123
+ tooltip?: import("tailwind-variants").ClassValue;
124
+ };
125
+ };
126
+ } | {}, {
127
+ root: string;
128
+ caption: string;
129
+ title: string;
130
+ description: string;
131
+ plot: string;
132
+ legend: string;
133
+ legendItem: string;
134
+ swatch: string;
135
+ tooltip: string[];
136
+ tooltipLabel: string;
137
+ tooltipRow: string;
138
+ tooltipName: string;
139
+ tooltipValue: string;
140
+ center: string;
141
+ srOnly: string;
142
+ }, undefined, {
143
+ [key: string]: {
144
+ [key: string]: import("tailwind-variants").ClassValue | {
145
+ root?: import("tailwind-variants").ClassValue;
146
+ caption?: import("tailwind-variants").ClassValue;
147
+ title?: import("tailwind-variants").ClassValue;
148
+ description?: import("tailwind-variants").ClassValue;
149
+ plot?: import("tailwind-variants").ClassValue;
150
+ legend?: import("tailwind-variants").ClassValue;
151
+ legendItem?: import("tailwind-variants").ClassValue;
152
+ swatch?: import("tailwind-variants").ClassValue;
153
+ tooltipLabel?: import("tailwind-variants").ClassValue;
154
+ tooltipRow?: import("tailwind-variants").ClassValue;
155
+ tooltipName?: import("tailwind-variants").ClassValue;
156
+ tooltipValue?: import("tailwind-variants").ClassValue;
157
+ center?: import("tailwind-variants").ClassValue;
158
+ srOnly?: import("tailwind-variants").ClassValue;
159
+ tooltip?: import("tailwind-variants").ClassValue;
160
+ };
161
+ };
162
+ } | {}, {
163
+ root: string;
164
+ caption: string;
165
+ title: string;
166
+ description: string;
167
+ plot: string;
168
+ legend: string;
169
+ legendItem: string;
170
+ swatch: string;
171
+ tooltip: string[];
172
+ tooltipLabel: string;
173
+ tooltipRow: string;
174
+ tooltipName: string;
175
+ tooltipValue: string;
176
+ center: string;
177
+ srOnly: string;
178
+ }, import("tailwind-variants").TVReturnTypeLike<unknown, {
179
+ root: string;
180
+ caption: string;
181
+ title: string;
182
+ description: string;
183
+ plot: string;
184
+ legend: string;
185
+ legendItem: string;
186
+ swatch: string;
187
+ tooltip: string[];
188
+ tooltipLabel: string;
189
+ tooltipRow: string;
190
+ tooltipName: string;
191
+ tooltipValue: string;
192
+ center: string;
193
+ srOnly: string;
194
+ }>>;
195
+ type ChartVariants = VariantProps<typeof chartStyles>;
196
+ declare module '@glyphui/tokens' {
197
+ interface GlyphComponentRegistry {
198
+ Chart: StylesEntry<typeof chartStyles>;
199
+ }
200
+ }
201
+ //#endregion
202
+ export type { CartesianChartProps, ChartColor, ChartSeries, ChartVariants, DonutChartProps, SparklineProps };