@mivabyte/ui 26.9.21 → 26.10.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 (147) hide show
  1. package/README.md +130 -39
  2. package/dist/components/ui/alert-dialog.cjs +4 -4
  3. package/dist/components/ui/alert-dialog.cjs.map +1 -1
  4. package/dist/components/ui/alert-dialog.js +4 -4
  5. package/dist/components/ui/alert-dialog.js.map +1 -1
  6. package/dist/components/ui/alert.cjs +2 -2
  7. package/dist/components/ui/alert.cjs.map +1 -1
  8. package/dist/components/ui/alert.js +2 -2
  9. package/dist/components/ui/alert.js.map +1 -1
  10. package/dist/components/ui/button-group.cjs.map +1 -1
  11. package/dist/components/ui/button-group.d.ts.map +1 -1
  12. package/dist/components/ui/button-group.js.map +1 -1
  13. package/dist/components/ui/button.cjs +4 -4
  14. package/dist/components/ui/button.cjs.map +1 -1
  15. package/dist/components/ui/button.js +4 -4
  16. package/dist/components/ui/button.js.map +1 -1
  17. package/dist/components/ui/calendar.cjs +36 -25
  18. package/dist/components/ui/calendar.cjs.map +1 -1
  19. package/dist/components/ui/calendar.d.cts +5 -3
  20. package/dist/components/ui/calendar.d.ts +5 -3
  21. package/dist/components/ui/calendar.d.ts.map +1 -1
  22. package/dist/components/ui/calendar.js +36 -25
  23. package/dist/components/ui/calendar.js.map +1 -1
  24. package/dist/components/ui/carousel.cjs +4 -4
  25. package/dist/components/ui/carousel.cjs.map +1 -1
  26. package/dist/components/ui/carousel.js +4 -4
  27. package/dist/components/ui/carousel.js.map +1 -1
  28. package/dist/components/ui/checkbox.cjs +1 -1
  29. package/dist/components/ui/checkbox.cjs.map +1 -1
  30. package/dist/components/ui/checkbox.js +1 -1
  31. package/dist/components/ui/checkbox.js.map +1 -1
  32. package/dist/components/ui/combobox.cjs +4 -4
  33. package/dist/components/ui/combobox.cjs.map +1 -1
  34. package/dist/components/ui/combobox.js +4 -4
  35. package/dist/components/ui/combobox.js.map +1 -1
  36. package/dist/components/ui/command.cjs +25 -27
  37. package/dist/components/ui/command.cjs.map +1 -1
  38. package/dist/components/ui/command.js +24 -26
  39. package/dist/components/ui/command.js.map +1 -1
  40. package/dist/components/ui/date-picker.cjs +36 -24
  41. package/dist/components/ui/date-picker.cjs.map +1 -1
  42. package/dist/components/ui/date-picker.js +36 -24
  43. package/dist/components/ui/date-picker.js.map +1 -1
  44. package/dist/components/ui/dialog.cjs +18 -20
  45. package/dist/components/ui/dialog.cjs.map +1 -1
  46. package/dist/components/ui/dialog.d.ts.map +1 -1
  47. package/dist/components/ui/dialog.js +17 -19
  48. package/dist/components/ui/dialog.js.map +1 -1
  49. package/dist/components/ui/empty.cjs +1 -1
  50. package/dist/components/ui/empty.cjs.map +1 -1
  51. package/dist/components/ui/empty.js +1 -1
  52. package/dist/components/ui/empty.js.map +1 -1
  53. package/dist/components/ui/field.cjs +2 -2
  54. package/dist/components/ui/field.cjs.map +1 -1
  55. package/dist/components/ui/field.js +2 -2
  56. package/dist/components/ui/field.js.map +1 -1
  57. package/dist/components/ui/form.cjs +158 -0
  58. package/dist/components/ui/form.cjs.map +1 -0
  59. package/dist/components/ui/form.d.cts +24 -0
  60. package/dist/components/ui/form.d.ts +25 -0
  61. package/dist/components/ui/form.d.ts.map +1 -0
  62. package/dist/components/ui/form.js +128 -0
  63. package/dist/components/ui/form.js.map +1 -0
  64. package/dist/components/ui/input-group.cjs.map +1 -1
  65. package/dist/components/ui/input-group.d.ts.map +1 -1
  66. package/dist/components/ui/input-group.js.map +1 -1
  67. package/dist/components/ui/message.cjs +5 -2
  68. package/dist/components/ui/message.cjs.map +1 -1
  69. package/dist/components/ui/message.d.cts +1 -1
  70. package/dist/components/ui/message.d.ts +1 -1
  71. package/dist/components/ui/message.d.ts.map +1 -1
  72. package/dist/components/ui/message.js +6 -3
  73. package/dist/components/ui/message.js.map +1 -1
  74. package/dist/components/ui/pagination.cjs +4 -4
  75. package/dist/components/ui/pagination.cjs.map +1 -1
  76. package/dist/components/ui/pagination.js +4 -4
  77. package/dist/components/ui/pagination.js.map +1 -1
  78. package/dist/components/ui/progress.cjs +3 -2
  79. package/dist/components/ui/progress.cjs.map +1 -1
  80. package/dist/components/ui/progress.d.ts.map +1 -1
  81. package/dist/components/ui/progress.js +3 -2
  82. package/dist/components/ui/progress.js.map +1 -1
  83. package/dist/components/ui/radio-group.cjs +2 -2
  84. package/dist/components/ui/radio-group.cjs.map +1 -1
  85. package/dist/components/ui/radio-group.js +2 -2
  86. package/dist/components/ui/radio-group.js.map +1 -1
  87. package/dist/components/ui/sheet.cjs +18 -20
  88. package/dist/components/ui/sheet.cjs.map +1 -1
  89. package/dist/components/ui/sheet.d.ts.map +1 -1
  90. package/dist/components/ui/sheet.js +17 -19
  91. package/dist/components/ui/sheet.js.map +1 -1
  92. package/dist/components/ui/sidebar.cjs +61 -63
  93. package/dist/components/ui/sidebar.cjs.map +1 -1
  94. package/dist/components/ui/sidebar.js +60 -62
  95. package/dist/components/ui/sidebar.js.map +1 -1
  96. package/dist/components/ui/slider.cjs +2 -2
  97. package/dist/components/ui/slider.cjs.map +1 -1
  98. package/dist/components/ui/slider.js +2 -2
  99. package/dist/components/ui/slider.js.map +1 -1
  100. package/dist/components/ui/sonner.cjs +53 -0
  101. package/dist/components/ui/sonner.cjs.map +1 -0
  102. package/dist/components/ui/sonner.d.cts +4 -0
  103. package/dist/components/ui/sonner.d.ts +5 -0
  104. package/dist/components/ui/sonner.d.ts.map +1 -0
  105. package/dist/components/ui/sonner.js +51 -0
  106. package/dist/components/ui/sonner.js.map +1 -0
  107. package/dist/components/ui/switch.cjs +2 -2
  108. package/dist/components/ui/switch.cjs.map +1 -1
  109. package/dist/components/ui/switch.js +2 -2
  110. package/dist/components/ui/switch.js.map +1 -1
  111. package/dist/components/ui/toast.cjs +301 -9
  112. package/dist/components/ui/toast.cjs.map +1 -1
  113. package/dist/components/ui/toast.d.cts +16 -2
  114. package/dist/components/ui/toast.d.ts +16 -2
  115. package/dist/components/ui/toast.d.ts.map +1 -1
  116. package/dist/components/ui/toast.js +272 -1
  117. package/dist/components/ui/toast.js.map +1 -1
  118. package/dist/index.cjs +3 -2
  119. package/dist/index.cjs.map +1 -1
  120. package/dist/index.d.cts +3 -5
  121. package/dist/index.d.ts +3 -5
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +2 -2
  124. package/dist/index.js.map +1 -1
  125. package/dist/lib/render-child.cjs +37 -0
  126. package/dist/lib/render-child.cjs.map +1 -0
  127. package/dist/lib/render-child.d.cts +22 -0
  128. package/dist/lib/render-child.d.ts +23 -0
  129. package/dist/lib/render-child.d.ts.map +1 -0
  130. package/dist/lib/render-child.js +15 -0
  131. package/dist/lib/render-child.js.map +1 -0
  132. package/dist/styles.css +1 -1
  133. package/package.json +49 -47
  134. package/dist/components/ui/container.cjs +0 -69
  135. package/dist/components/ui/container.cjs.map +0 -1
  136. package/dist/components/ui/container.d.cts +0 -11
  137. package/dist/components/ui/container.d.ts +0 -12
  138. package/dist/components/ui/container.d.ts.map +0 -1
  139. package/dist/components/ui/container.js +0 -46
  140. package/dist/components/ui/container.js.map +0 -1
  141. package/dist/components/ui/kbd-group.cjs +0 -74
  142. package/dist/components/ui/kbd-group.cjs.map +0 -1
  143. package/dist/components/ui/kbd-group.d.cts +0 -9
  144. package/dist/components/ui/kbd-group.d.ts +0 -10
  145. package/dist/components/ui/kbd-group.d.ts.map +0 -1
  146. package/dist/components/ui/kbd-group.js +0 -51
  147. package/dist/components/ui/kbd-group.js.map +0 -1
package/README.md CHANGED
@@ -27,10 +27,10 @@
27
27
 
28
28
  ## Highlights
29
29
 
30
- - **📦 Zero Copy-Paste Required**: Shipped as a fully compiled, tree-shakeable npm package (`@mivabyte/ui`) with dual ESM and CommonJS exports and bundled TypeScript declarations.
30
+ - **📦 Zero Copy-Paste Required**: Shipped as a fully compiled npm package (`@mivabyte/ui`) with dual ESM and CommonJS exports and bundled TypeScript declarations.
31
31
  - **🎨 Midnight, Cyan & Azure Visual System**: A cohesive, distinctive color language engineered with semantic HSL channels. Features rich deep navy dark surfaces, energetic cyan highlights, and crisp azure daylight actions.
32
- - **⚡ 66 Production-Ready Component Primitives**: Built on battle-tested Radix UI and `@shadcn/react` foundations, from buttons and responsive dialogs to TanStack data tables and Recharts visualizations.
33
- - **🎯 Precise Subpath Imports**: Fine-grained subpath exports (`@mivabyte/ui/button`, `@mivabyte/ui/card`, `@mivabyte/ui/dialog`) guarantee minimal bundle footprints and prevent barrel file bloat.
32
+ - **⚡ 66 Production-Ready Component Primitives**: Built on battle-tested Radix UI and Base UI primitives, from buttons and responsive dialogs to headless data tables and Recharts visualizations.
33
+ - **🎯 Precise Subpath Imports**: Fine-grained subpath exports (`@mivabyte/ui/button`, `@mivabyte/ui/card`, `@mivabyte/ui/dialog`) bypass the root barrel, so the dependency graph stays explicit per component.
34
34
  - **♿ WCAG 2.1 AA Compliance Built-In**: Fully tested with Axe Core across all components. Keyboard traps, accessible dialog lifecycles, ARIA roles, and high-contrast focus outlines work out of the box.
35
35
  - **📏 Adaptive Density Scaling**: Seamlessly switch between spacious touch-friendly `comfortable` mode and information-dense `compact` desktop mode via `data-density`.
36
36
  - **🔤 Self-Hosted Typography**: The Onest variable font is self-hosted and compiled directly into `@mivabyte/ui/styles.css` with zero external Google Fonts network dependencies.
@@ -56,7 +56,12 @@ yarn add @mivabyte/ui
56
56
  bun add @mivabyte/ui
57
57
  ```
58
58
 
59
- > **Peer Dependency Requirement**: `@mivabyte/ui` requires `react >= 19.0.0` and `react-dom >= 19.0.0`.
59
+ Requires **Node.js >= 22** and `react >= 19.0.0` / `react-dom >= 19.0.0`.
60
+
61
+ `zod`, `@hookform/resolvers`, and `@tanstack/react-table` are optional peers, not
62
+ bundled dependencies: this package never imports them, so install them yourself
63
+ only if you wire a schema resolver or compose `DataTable` with a TanStack table
64
+ instance.
60
65
 
61
66
  ---
62
67
 
@@ -85,7 +90,7 @@ import {
85
90
  } from "@mivabyte/ui/card"
86
91
  import { Field, FieldDescription, FieldLabel } from "@mivabyte/ui/field"
87
92
  import { Input } from "@mivabyte/ui/input"
88
- import { Toaster } from "@mivabyte/ui/toast"
93
+ import { Toaster, toast } from "@mivabyte/ui/toast"
89
94
 
90
95
  export function ProjectSetup() {
91
96
  const [name, setName] = React.useState("")
@@ -114,7 +119,11 @@ export function ProjectSetup() {
114
119
  </FieldDescription>
115
120
  </Field>
116
121
 
117
- <Button className="w-full" size="default">
122
+ <Button
123
+ className="w-full"
124
+ size="default"
125
+ onClick={() => toast.add({ title: "Workspace deployed" })}
126
+ >
118
127
  Deploy workspace
119
128
  </Button>
120
129
  </CardContent>
@@ -133,7 +142,7 @@ export function ProjectSetup() {
133
142
 
134
143
  ### Subpath Imports (Recommended)
135
144
 
136
- Subpath imports bypass root barrel files, ensuring optimal tree-shaking, fast bundler startup, and minimal production bundle sizes:
145
+ Subpath imports bypass the root barrel file, so only the modules you reference enter the build:
137
146
 
138
147
  ```tsx
139
148
  import { Button } from "@mivabyte/ui/button"
@@ -159,6 +168,19 @@ For rapid prototyping or small script bundles, all components and utilities are
159
168
  import { Badge, Button, Card, Dialog, Input, Tabs, Tooltip } from "@mivabyte/ui"
160
169
  ```
161
170
 
171
+ Both `sonner` and `toast` ship a component named `Toaster`, so the root barrel
172
+ keeps the canonical `Toaster` name for the Base UI toast host and re-exports the
173
+ sonner wrapper as `SonnerToaster`:
174
+
175
+ ```tsx
176
+ import { SonnerToaster, Toaster } from "@mivabyte/ui"
177
+ ```
178
+
179
+ `<SonnerToaster />` is the theme-aware wrapper around sonner: it reads the active
180
+ theme through `next-themes` (falling back to `system` when no theme provider is
181
+ present) and maps the token variables onto sonner's own options. Import it from
182
+ `@mivabyte/ui/sonner` when you want an unambiguous reference.
183
+
162
184
  > **Authoritative Export Catalog**: For the complete machine-verified subpath and module inventory, consult [`docs/generated/exports.md`](docs/generated/exports.md).
163
185
 
164
186
  ---
@@ -167,19 +189,19 @@ import { Badge, Button, Card, Dialog, Input, Tabs, Tooltip } from "@mivabyte/ui"
167
189
 
168
190
  `@mivabyte/ui` contains **66 component modules**, grouped into logical architectural families:
169
191
 
170
- | Category | Primitives & Modules |
171
- | :------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
172
- | **Actions & Triggers** | [`Button`](docs/components.md#button), [`ButtonGroup`](docs/components.md#button-group), [`Toggle`](docs/components.md#toggle), [`ToggleGroup`](docs/components.md#toggle-group) |
173
- | **Forms & User Input** | [`Input`](docs/components.md#input), [`InputGroup`](docs/components.md#input-group), [`InputOTP`](docs/components.md#input-otp), [`Textarea`](docs/components.md#textarea), [`Checkbox`](docs/components.md#checkbox), [`RadioGroup`](docs/components.md#radio-group), [`Select`](docs/components.md#select), [`NativeSelect`](docs/components.md#native-select), [`Switch`](docs/components.md#switch), [`Slider`](docs/components.md#slider), [`DatePicker`](docs/components.md#date-picker), [`Calendar`](docs/components.md#calendar), [`Field`](docs/components.md#field), [`Combobox`](docs/components.md#combobox), [`Questionnaire`](docs/components.md#questionnaire) |
174
- | **Overlays & Dialogs** | [`Dialog`](docs/components.md#dialog), [`AlertDialog`](docs/components.md#alert-dialog), [`Sheet`](docs/components.md#sheet), [`Drawer`](docs/components.md#drawer), [`Popover`](docs/components.md#popover), [`Tooltip`](docs/components.md#tooltip), [`HoverCard`](docs/components.md#hover-card), [`ContextMenu`](docs/components.md#context-menu), [`DropdownMenu`](docs/components.md#dropdown-menu), [`Command`](docs/components.md#command) |
175
- | **Navigation** | [`NavigationMenu`](docs/components.md#navigation-menu), [`Breadcrumb`](docs/components.md#breadcrumb), [`Pagination`](docs/components.md#pagination), [`Tabs`](docs/components.md#tabs), [`Menubar`](docs/components.md#menubar), [`Sidebar`](docs/components.md#sidebar), [`Direction`](docs/components.md#direction) |
176
- | **Layout & Structure** | [`Container`](docs/components.md#container), [`Card`](docs/components.md#card), [`Separator`](docs/components.md#separator), [`Resizable`](docs/components.md#resizable), [`ScrollArea`](docs/components.md#scroll-area), [`AspectRatio`](docs/components.md#aspect-ratio), [`Collapsible`](docs/components.md#collapsible), [`Accordion`](docs/components.md#accordion) |
177
- | **Data Display & Content** | [`DataTable`](docs/components.md#data-table), [`Table`](docs/components.md#table), [`Badge`](docs/components.md#badge), [`Avatar`](docs/components.md#avatar), [`Skeleton`](docs/components.md#skeleton), [`Empty`](docs/components.md#empty), [`Item`](docs/components.md#item), [`Bubble`](docs/components.md#bubble), [`Attachment`](docs/components.md#attachment), [`Marker`](docs/components.md#marker), [`Message`](docs/components.md#message), [`MessageScroller`](docs/components.md#message-scroller), [`Carousel`](docs/components.md#carousel), [`Kbd`](docs/components.md#kbd), [`KbdGroup`](docs/components.md#kbd-group) |
178
- | **Typography** | [`Heading`](docs/components.md#typography), [`Text`](docs/components.md#typography), [`Eyebrow`](docs/components.md#typography), [`Label`](docs/components.md#label) |
179
- | **Feedback & Status** | [`Alert`](docs/components.md#alert), [`Progress`](docs/components.md#progress), [`Spinner`](docs/components.md#spinner), [`Toast`](docs/components.md#toast) (`Toaster`, `toast`) |
180
- | **Data Visualization** | [`Chart`](docs/components.md#chart) (`ChartContainer`, `ChartTooltip`, `ChartTooltipContent`, `ChartLegend`, `ChartLegendContent`) |
192
+ | Category | Primitives & Modules |
193
+ | :------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
194
+ | **Actions & Triggers** | [`Button`](docs/components.md#button), [`ButtonGroup`](docs/components.md#button-group), [`Toggle`](docs/components.md#toggle), [`ToggleGroup`](docs/components.md#toggle-group) |
195
+ | **Forms & User Input** | [`Field`](docs/components.md#field), [`Form`](docs/components.md#form), [`Input`](docs/components.md#input), [`InputGroup`](docs/components.md#input-group), [`InputOTP`](docs/components.md#input-otp), [`Textarea`](docs/components.md#textarea), [`Checkbox`](docs/components.md#checkbox), [`RadioGroup`](docs/components.md#radio-group), [`Select`](docs/components.md#select), [`NativeSelect`](docs/components.md#native-select), [`Switch`](docs/components.md#switch), [`Slider`](docs/components.md#slider), [`DatePicker`](docs/components.md#date-picker), [`Calendar`](docs/components.md#calendar), [`Combobox`](docs/components.md#combobox), [`Questionnaire`](docs/components.md#questionnaire) |
196
+ | **Overlays & Dialogs** | [`Dialog`](docs/components.md#dialog), [`AlertDialog`](docs/components.md#alert-dialog), [`Sheet`](docs/components.md#sheet), [`Drawer`](docs/components.md#drawer), [`Popover`](docs/components.md#popover), [`Tooltip`](docs/components.md#tooltip), [`HoverCard`](docs/components.md#hover-card), [`ContextMenu`](docs/components.md#context-menu), [`DropdownMenu`](docs/components.md#dropdown-menu), [`Command`](docs/components.md#command) |
197
+ | **Navigation** | [`NavigationMenu`](docs/components.md#navigation-menu), [`Breadcrumb`](docs/components.md#breadcrumb), [`Pagination`](docs/components.md#pagination), [`Tabs`](docs/components.md#tabs), [`Menubar`](docs/components.md#menubar), [`Sidebar`](docs/components.md#sidebar), [`Direction`](docs/components.md#direction) |
198
+ | **Layout & Structure** | [`Card`](docs/components.md#card), [`Separator`](docs/components.md#separator), [`Resizable`](docs/components.md#resizable), [`ScrollArea`](docs/components.md#scroll-area), [`AspectRatio`](docs/components.md#aspect-ratio), [`Collapsible`](docs/components.md#collapsible), [`Accordion`](docs/components.md#accordion) |
199
+ | **Data Display & Content** | [`DataTable`](docs/components.md#data-table), [`Table`](docs/components.md#table), [`Badge`](docs/components.md#badge), [`Avatar`](docs/components.md#avatar), [`Skeleton`](docs/components.md#skeleton), [`Empty`](docs/components.md#empty), [`Item`](docs/components.md#item), [`Bubble`](docs/components.md#bubble), [`Attachment`](docs/components.md#attachment), [`Marker`](docs/components.md#marker), [`Message`](docs/components.md#message), [`MessageScroller`](docs/components.md#message-scroller), [`Carousel`](docs/components.md#carousel), [`Kbd`](docs/components.md#kbd) |
200
+ | **Typography** | [`Heading`](docs/components.md#typography), [`Text`](docs/components.md#typography), [`Eyebrow`](docs/components.md#typography), [`Label`](docs/components.md#label) |
201
+ | **Feedback & Status** | [`Alert`](docs/components.md#alert), [`Progress`](docs/components.md#progress), [`Spinner`](docs/components.md#spinner), [`Toast`](docs/components.md#toast) (`Toaster`, `toast`), [`Sonner`](docs/components.md#sonner) (`Toaster`) |
202
+ | **Data Visualization** | [`Chart`](docs/components.md#chart) (`ChartContainer`, `ChartTooltip`, `ChartTooltipContent`, `ChartLegend`, `ChartLegendContent`) |
181
203
 
182
- For comprehensive API signatures, props interfaces, and code examples for every component, refer to [`docs/components.md`](docs/components.md).
204
+ Every link above opens that component's entry in [`docs/components.md`](docs/components.md), the per-slug inventory of import subpaths, runtime exports, and exported types. Props, variants, and runtime behavior are documented in Storybook rather than duplicated here; [`docs/generated/exports.md`](docs/generated/exports.md) is the machine-verified subpath and artifact map.
183
205
 
184
206
  ---
185
207
 
@@ -187,10 +209,34 @@ For comprehensive API signatures, props interfaces, and code examples for every
187
209
 
188
210
  The Mivabyte design system balances technical precision with warm human typography and deliberate visual depth. Read [DESIGN.md](DESIGN.md) for the complete design contract.
189
211
 
190
- ### The Midnight, Cyan & Azure Palette
212
+ ### Cyan-led Multicolor Palette
191
213
 
192
- - **Light Mode (`:root` / `.light`)**: A clean, cool canvas (`--background: 202 68% 97%`) anchored by an Azure action tone (`--primary: 198 92% 31%`), providing high clarity without harsh starkness.
193
- - **Dark Mode (`.dark`)**: A rich Midnight navy canvas (`--background: 218 63% 6%`) illuminated by vibrant Cyan accents (`--primary: 188 86% 53%` and `--accent: 194 57% 17%`).
214
+ Exact `#06B6D4` is the primary fill in both modes, paired with Midnight labels (`#0B1220`). Links and essential control strokes use a separate `--link` role: dark Cyan (`#0E7490`) on light surfaces and exact brand Cyan on dark surfaces. Use `text-link` for links and readable cyan text; `bg-primary text-primary-foreground` for filled actions.
215
+
216
+ Cyan stays the main color. Apricot identifies secondary actions; Cyan tints identify selections; Amber marks attention, Emerald success, Coral errors, and Azure information. Each family has readable light/dark shades rather than making every component cyan.
217
+
218
+ The [research rationale and measured contrasts](docs/palette-research.md) explain the evidence behind these roles. Secondary buttons use warm Apricot surfaces (`#FFEDD5` / `#4A2816`) with readable text and borders. Cyan tints (`#CFFAFE` / `#083344`) identify selection. Highlighted cards keep a neutral content surface with a Cyan border. Use `text-secondary-strong` for warm supporting emphasis and `text-accent-strong` for Cyan emphasis.
219
+
220
+ | Family | Brand color | UI role |
221
+ | ------- | ----------- | -------------------------------------------------- |
222
+ | Cyan | `#06B6D4` | Primary actions, links, focus, selected navigation |
223
+ | Apricot | `#FDBA74` | Secondary actions and supporting context |
224
+ | Amber | `#F59E0B` | Warnings and attention |
225
+ | Emerald | `#10B981` | Success and positive trends |
226
+ | Coral | `#F43F5E` | Errors and destructive actions |
227
+ | Azure | `#3B82F6` | Information and processing |
228
+
229
+ | Role | Light mode | Dark mode |
230
+ | -------------------- | ---------- | --------- |
231
+ | Brand / primary fill | `#06B6D4` | `#06B6D4` |
232
+ | Background | `#F8FAFC` | `#0B1220` |
233
+ | Cards | `#FFFFFF` | `#111C2E` |
234
+ | Main text | `#0F172A` | `#F8FAFC` |
235
+ | Secondary text | `#475569` | `#94A3B8` |
236
+ | Borders | `#CBD5E1` | `#2A3A50` |
237
+ | Links | `#0E7490` | `#06B6D4` |
238
+
239
+ `--brand-cyan-500`, `--mivabyte-main`, `--mivabyte-cyan`, and `--mivabyte-cyan-dark` resolve to exact `#06B6D4`. The existing HSL-channel convention preserves these hex colors at full precision. Primary controls have an identifiable border, and checked switches use Midnight thumbs. Focus rings, slider/progress fills, and radio indicators use readable cyan strokes.
194
240
 
195
241
  To enable dark mode, toggle the `.dark` class on the `<html>` or `<body>` element:
196
242
 
@@ -284,6 +330,52 @@ import { Input } from "@mivabyte/ui/input"
284
330
 
285
331
  Compatible with `react-hook-form`, `zod`, `Formik`, or standard HTML form submissions.
286
332
 
333
+ For `react-hook-form` specifically, the official `Form` primitives wire field
334
+ state, generated ids, and validation messages together:
335
+
336
+ ```tsx
337
+ import { useForm } from "react-hook-form"
338
+
339
+ import {
340
+ Form,
341
+ FormControl,
342
+ FormDescription,
343
+ FormField,
344
+ FormItem,
345
+ FormLabel,
346
+ FormMessage,
347
+ } from "@mivabyte/ui/form"
348
+ import { Input } from "@mivabyte/ui/input"
349
+
350
+ export function EmailForm() {
351
+ const form = useForm<{ email: string }>({
352
+ defaultValues: { email: "" },
353
+ })
354
+
355
+ return (
356
+ <Form {...form}>
357
+ <FormField
358
+ control={form.control}
359
+ name="email"
360
+ render={({ field }) => (
361
+ <FormItem>
362
+ <FormLabel>Email</FormLabel>
363
+ <FormControl>
364
+ <Input type="email" {...field} />
365
+ </FormControl>
366
+ <FormDescription>We never share your email.</FormDescription>
367
+ <FormMessage />
368
+ </FormItem>
369
+ )}
370
+ />
371
+ </Form>
372
+ )
373
+ }
374
+ ```
375
+
376
+ `react-hook-form` is a dependency of this package, but add it to your own
377
+ `package.json` so your app resolves it directly.
378
+
287
379
  ---
288
380
 
289
381
  ## Accessibility & Motion
@@ -310,7 +402,7 @@ CI strictly verifies that every registered component in `config/components.mjs`
310
402
 
311
403
  ## Development & Testing
312
404
 
313
- Mivabyte UI maintains an exhaustive verification suite with zero tolerance for broken types, missing exports, bundle regressions, or accessibility failures.
405
+ Mivabyte UI maintains an exhaustive verification suite with zero tolerance for broken types, missing exports, or accessibility failures.
314
406
 
315
407
  ### Local Verification
316
408
 
@@ -331,12 +423,11 @@ The canonical `npm run verify` command runs:
331
423
  5. **`storybook:check`**: Verifies 100% story coverage across all components.
332
424
  6. **`typecheck`**: TypeScript check with strict compiler configurations.
333
425
  7. **`build`**: Builds ESM and CJS bundles (`tsup`), compiles CSS (`tailwindcss`), and emits declaration files.
334
- 8. **`bundle:check`**: Enforces strict bundle budgets on all distribution targets.
335
- 9. **`test:contracts`**: Verifies package export contracts and upstream baseline guarantees.
336
- 10. **`pack:check`**: Builds a dry-run tarball and validates packed package contents.
337
- 11. **`package:lint`**: Runs `publint` (package export health) and `attw` (Are The Types Wrong).
338
- 12. **`api:check`**: Validates public surface against Microsoft API Extractor contract report.
339
- 13. **`test:coverage`**: Executes Vitest unit tests with v8 code coverage reporting.
426
+ 8. **`test:contracts`**: Verifies package export contracts and upstream baseline guarantees.
427
+ 9. **`pack:check`**: Builds a dry-run tarball and validates packed package contents.
428
+ 10. **`package:lint`**: Runs `publint` (package export health) and `attw` (Are The Types Wrong).
429
+ 11. **`api:check`**: Validates public surface against Microsoft API Extractor contract report.
430
+ 12. **`test:coverage`**: Executes Vitest unit tests with v8 code coverage reporting.
340
431
 
341
432
  ### End-to-End & Design Testing
342
433
 
@@ -353,7 +444,7 @@ npm run test:design
353
444
  ## Releases & Governance
354
445
 
355
446
  - **Changeset-Driven**: All releases are declared using [Changesets](https://github.com/changesets/changesets). Every user-facing feature or fix includes a changeset markdown file.
356
- - **Calendar Versioning (CalVer)**: Releases follow the format `YY.M.D-patch` (e.g. `26.9.10-1`).
447
+ - **Semantic Versioning**: The published version follows semver (`MAJOR.MINOR.PATCH`), bumped by Changesets from the highest pending intent. The release workflow rejects any version containing `-` under the `latest` dist-tag, so a `-N` prerelease suffix can only ship on `next`; the current major line is therefore plain semver. See [`docs/maintainers/releases.md`](docs/maintainers/releases.md).
357
448
  - **Cryptographic Provenance**: Published directly through GitHub Actions with OpenID Connect (OIDC) token exchange, npm provenance attestations, and zero static token storage.
358
449
  - **Registry Release Probe**: Post-publish CI job pulls the newly released package from npm and executes integration smoke tests in clean Vite and Next.js consumer fixtures.
359
450
 
@@ -363,15 +454,15 @@ See [`docs/maintainers/releases.md`](docs/maintainers/releases.md) for maintaine
363
454
 
364
455
  ## Documentation Directory
365
456
 
366
- | Document | Purpose |
367
- | :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- |
368
- | **[`DESIGN.md`](DESIGN.md)** | Canonical design contract, color philosophy, typography, and motion specifications |
369
- | **[`docs/components.md`](docs/components.md)** | Complete component catalog, API signatures, and usage patterns |
370
- | **[`docs/generated/exports.md`](docs/generated/exports.md)** | Machine-generated authoritative package export and subpath map |
371
- | **[`docs/upstream/component-parity.md`](docs/upstream/component-parity.md)** | Parity tracking against upstream shadcn/ui primitives |
372
- | **[`docs/accessibility/keyboard-interactions.md`](docs/accessibility/keyboard-interactions.md)** | Keyboard interaction and focus management specification |
373
- | **[`docs/maintainers/releases.md`](docs/maintainers/releases.md)** | Release workflow and publishing procedures |
374
- | **[`docs/migration/shadcn-compatible-release.md`](docs/migration/shadcn-compatible-release.md)** | Migration guide from legacy versions to the pure Radix/shadcn distribution |
457
+ | Document | Purpose |
458
+ | :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------- |
459
+ | **[`DESIGN.md`](DESIGN.md)** | Canonical design contract, color philosophy, typography, and motion specifications |
460
+ | **[`docs/components.md`](docs/components.md)** | Per-component catalog: import subpath, runtime exports, and exported types per slug |
461
+ | **[`docs/generated/exports.md`](docs/generated/exports.md)** | Machine-generated authoritative package export and subpath map |
462
+ | **[`docs/upstream/component-parity.md`](docs/upstream/component-parity.md)** | Parity tracking against upstream shadcn/ui primitives |
463
+ | **[`docs/accessibility/keyboard-interactions.md`](docs/accessibility/keyboard-interactions.md)** | Keyboard interaction and focus management specification |
464
+ | **[`docs/maintainers/releases.md`](docs/maintainers/releases.md)** | Release workflow and publishing procedures |
465
+ | **[`docs/migrations/shadcn-compatible-release.md`](docs/migrations/shadcn-compatible-release.md)** | Migration guide from legacy versions to the pure Radix/shadcn distribution |
375
466
 
376
467
  ---
377
468
 
@@ -37,17 +37,17 @@ var buttonVariants = classVarianceAuthority.cva(
37
37
  {
38
38
  variants: {
39
39
  variant: {
40
- default: "bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
41
- primary: "bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
40
+ default: "border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
41
+ primary: "border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
42
42
  destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
43
43
  outline: "border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground",
44
- secondary: "bg-secondary text-secondary-foreground shadow-surface hover:bg-surface-interactive",
44
+ secondary: "border border-secondary-border bg-secondary text-secondary-foreground shadow-surface hover:bg-secondary-hover",
45
45
  accent: "bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface",
46
46
  subtle: "bg-accent text-accent-foreground hover:bg-accent-muted",
47
47
  inverse: "bg-foreground text-background shadow-sm hover:bg-foreground/90",
48
48
  ghost: "hover:bg-accent hover:text-accent-foreground",
49
49
  navigation: "hover:bg-accent hover:text-accent-foreground",
50
- link: "text-primary underline-offset-4 hover:underline"
50
+ link: "text-link underline-offset-4 hover:underline"
51
51
  },
52
52
  size: {
53
53
  default: "h-[var(--control-height)] px-4 py-2",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/alert-dialog.tsx"],"names":["twMerge","clsx","cva","React","Slot","jsx","AlertDialogPrimitive","React2","jsxs"],"mappings":"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","file":"alert-dialog.cjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"ui-button ui-focus inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium select-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n primary:\n \"bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-surface hover:bg-surface-interactive\",\n accent:\n \"bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface\",\n subtle: \"bg-accent text-accent-foreground hover:bg-accent-muted\",\n inverse:\n \"bg-foreground text-background shadow-sm hover:bg-foreground/90\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n navigation: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-[var(--control-height)] px-4 py-2\",\n compact: \"h-8 px-3 text-xs\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-12 rounded-md px-6\",\n xs: \"h-7 rounded px-2 text-xs\",\n icon: \"size-[var(--control-height)]\",\n \"icon-xs\": \"h-7 w-7\",\n \"icon-lg\": \"size-12\",\n },\n wrap: {\n true: \"whitespace-normal text-wrap\",\n false: \"whitespace-nowrap\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n wrap?: boolean\n loading?: boolean\n render?: React.ReactElement\n \"data-slot\"?: string\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n wrap,\n asChild = false,\n loading = false,\n render,\n disabled,\n children,\n onClickCapture,\n tabIndex,\n type,\n ...props\n },\n ref\n ) => {\n const isDisabled = Boolean(disabled || loading)\n const slotted = asChild || Boolean(render)\n const Comp = slotted ? Slot : \"button\"\n const content = render\n ? React.cloneElement(\n render as React.ReactElement<{ children?: React.ReactNode }>,\n undefined,\n children ?? (render.props as { children?: React.ReactNode }).children\n )\n : children\n return (\n <Comp\n {...props}\n ref={ref}\n data-slot={props[\"data-slot\"] ?? \"button\"}\n className={cn(buttonVariants({ variant, size, wrap, className }))}\n type={type}\n disabled={isDisabled}\n aria-disabled={isDisabled || undefined}\n aria-busy={loading || props[\"aria-busy\"]}\n tabIndex={isDisabled && slotted ? -1 : tabIndex}\n {...(isDisabled\n ? {\n onClickCapture: (event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n },\n }\n : onClickCapture\n ? { onClickCapture }\n : {})}\n >\n {content}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-popover text-popover-foreground p-6 shadow-overlay duration-[var(--motion-duration-slow)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/alert-dialog.tsx"],"names":["twMerge","clsx","cva","React","Slot","jsx","AlertDialogPrimitive","React2","jsxs"],"mappings":"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","file":"alert-dialog.cjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"ui-button ui-focus inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium select-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n primary:\n \"border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"border border-secondary-border bg-secondary text-secondary-foreground shadow-surface hover:bg-secondary-hover\",\n accent:\n \"bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface\",\n subtle: \"bg-accent text-accent-foreground hover:bg-accent-muted\",\n inverse:\n \"bg-foreground text-background shadow-sm hover:bg-foreground/90\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n navigation: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-link underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-[var(--control-height)] px-4 py-2\",\n compact: \"h-8 px-3 text-xs\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-12 rounded-md px-6\",\n xs: \"h-7 rounded px-2 text-xs\",\n icon: \"size-[var(--control-height)]\",\n \"icon-xs\": \"h-7 w-7\",\n \"icon-lg\": \"size-12\",\n },\n wrap: {\n true: \"whitespace-normal text-wrap\",\n false: \"whitespace-nowrap\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n wrap?: boolean\n loading?: boolean\n render?: React.ReactElement\n \"data-slot\"?: string\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n wrap,\n asChild = false,\n loading = false,\n render,\n disabled,\n children,\n onClickCapture,\n tabIndex,\n type,\n ...props\n },\n ref\n ) => {\n const isDisabled = Boolean(disabled || loading)\n const slotted = asChild || Boolean(render)\n const Comp = slotted ? Slot : \"button\"\n const content = render\n ? React.cloneElement(\n render as React.ReactElement<{ children?: React.ReactNode }>,\n undefined,\n children ?? (render.props as { children?: React.ReactNode }).children\n )\n : children\n return (\n <Comp\n {...props}\n ref={ref}\n data-slot={props[\"data-slot\"] ?? \"button\"}\n className={cn(buttonVariants({ variant, size, wrap, className }))}\n type={type}\n disabled={isDisabled}\n aria-disabled={isDisabled || undefined}\n aria-busy={loading || props[\"aria-busy\"]}\n tabIndex={isDisabled && slotted ? -1 : tabIndex}\n {...(isDisabled\n ? {\n onClickCapture: (event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n },\n }\n : onClickCapture\n ? { onClickCapture }\n : {})}\n >\n {content}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-popover text-popover-foreground p-6 shadow-overlay duration-[var(--motion-duration-slow)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"]}
@@ -14,17 +14,17 @@ var buttonVariants = cva(
14
14
  {
15
15
  variants: {
16
16
  variant: {
17
- default: "bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
18
- primary: "bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
17
+ default: "border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
18
+ primary: "border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
19
19
  destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
20
20
  outline: "border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground",
21
- secondary: "bg-secondary text-secondary-foreground shadow-surface hover:bg-surface-interactive",
21
+ secondary: "border border-secondary-border bg-secondary text-secondary-foreground shadow-surface hover:bg-secondary-hover",
22
22
  accent: "bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface",
23
23
  subtle: "bg-accent text-accent-foreground hover:bg-accent-muted",
24
24
  inverse: "bg-foreground text-background shadow-sm hover:bg-foreground/90",
25
25
  ghost: "hover:bg-accent hover:text-accent-foreground",
26
26
  navigation: "hover:bg-accent hover:text-accent-foreground",
27
- link: "text-primary underline-offset-4 hover:underline"
27
+ link: "text-link underline-offset-4 hover:underline"
28
28
  },
29
29
  size: {
30
30
  default: "h-[var(--control-height)] px-4 py-2",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/alert-dialog.tsx"],"names":["React","jsx"],"mappings":"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","file":"alert-dialog.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"ui-button ui-focus inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium select-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n primary:\n \"bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-surface hover:bg-surface-interactive\",\n accent:\n \"bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface\",\n subtle: \"bg-accent text-accent-foreground hover:bg-accent-muted\",\n inverse:\n \"bg-foreground text-background shadow-sm hover:bg-foreground/90\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n navigation: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-[var(--control-height)] px-4 py-2\",\n compact: \"h-8 px-3 text-xs\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-12 rounded-md px-6\",\n xs: \"h-7 rounded px-2 text-xs\",\n icon: \"size-[var(--control-height)]\",\n \"icon-xs\": \"h-7 w-7\",\n \"icon-lg\": \"size-12\",\n },\n wrap: {\n true: \"whitespace-normal text-wrap\",\n false: \"whitespace-nowrap\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n wrap?: boolean\n loading?: boolean\n render?: React.ReactElement\n \"data-slot\"?: string\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n wrap,\n asChild = false,\n loading = false,\n render,\n disabled,\n children,\n onClickCapture,\n tabIndex,\n type,\n ...props\n },\n ref\n ) => {\n const isDisabled = Boolean(disabled || loading)\n const slotted = asChild || Boolean(render)\n const Comp = slotted ? Slot : \"button\"\n const content = render\n ? React.cloneElement(\n render as React.ReactElement<{ children?: React.ReactNode }>,\n undefined,\n children ?? (render.props as { children?: React.ReactNode }).children\n )\n : children\n return (\n <Comp\n {...props}\n ref={ref}\n data-slot={props[\"data-slot\"] ?? \"button\"}\n className={cn(buttonVariants({ variant, size, wrap, className }))}\n type={type}\n disabled={isDisabled}\n aria-disabled={isDisabled || undefined}\n aria-busy={loading || props[\"aria-busy\"]}\n tabIndex={isDisabled && slotted ? -1 : tabIndex}\n {...(isDisabled\n ? {\n onClickCapture: (event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n },\n }\n : onClickCapture\n ? { onClickCapture }\n : {})}\n >\n {content}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-popover text-popover-foreground p-6 shadow-overlay duration-[var(--motion-duration-slow)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"]}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/button.tsx","../../../src/components/ui/alert-dialog.tsx"],"names":["React","jsx"],"mappings":"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","file":"alert-dialog.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"ui-button ui-focus inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium select-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n primary:\n \"border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover\",\n destructive:\n \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n outline:\n \"border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground\",\n secondary:\n \"border border-secondary-border bg-secondary text-secondary-foreground shadow-surface hover:bg-secondary-hover\",\n accent:\n \"bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface\",\n subtle: \"bg-accent text-accent-foreground hover:bg-accent-muted\",\n inverse:\n \"bg-foreground text-background shadow-sm hover:bg-foreground/90\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n navigation: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-link underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-[var(--control-height)] px-4 py-2\",\n compact: \"h-8 px-3 text-xs\",\n sm: \"h-8 rounded-md px-3 text-xs\",\n lg: \"h-12 rounded-md px-6\",\n xs: \"h-7 rounded px-2 text-xs\",\n icon: \"size-[var(--control-height)]\",\n \"icon-xs\": \"h-7 w-7\",\n \"icon-lg\": \"size-12\",\n },\n wrap: {\n true: \"whitespace-normal text-wrap\",\n false: \"whitespace-nowrap\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface ButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean\n wrap?: boolean\n loading?: boolean\n render?: React.ReactElement\n \"data-slot\"?: string\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n wrap,\n asChild = false,\n loading = false,\n render,\n disabled,\n children,\n onClickCapture,\n tabIndex,\n type,\n ...props\n },\n ref\n ) => {\n const isDisabled = Boolean(disabled || loading)\n const slotted = asChild || Boolean(render)\n const Comp = slotted ? Slot : \"button\"\n const content = render\n ? React.cloneElement(\n render as React.ReactElement<{ children?: React.ReactNode }>,\n undefined,\n children ?? (render.props as { children?: React.ReactNode }).children\n )\n : children\n return (\n <Comp\n {...props}\n ref={ref}\n data-slot={props[\"data-slot\"] ?? \"button\"}\n className={cn(buttonVariants({ variant, size, wrap, className }))}\n type={type}\n disabled={isDisabled}\n aria-disabled={isDisabled || undefined}\n aria-busy={loading || props[\"aria-busy\"]}\n tabIndex={isDisabled && slotted ? -1 : tabIndex}\n {...(isDisabled\n ? {\n onClickCapture: (event: React.MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n },\n }\n : onClickCapture\n ? { onClickCapture }\n : {})}\n >\n {content}\n </Comp>\n )\n }\n)\nButton.displayName = \"Button\"\n\nexport { Button, buttonVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\n\nimport { cn } from \"@/lib/utils\"\nimport { buttonVariants } from \"@/components/ui/button\"\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-overlay data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n ref={ref}\n />\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-popover text-popover-foreground p-6 shadow-overlay duration-[var(--motion-duration-slow)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\nconst AlertDialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n}\n"]}
@@ -36,8 +36,8 @@ var alertVariants = classVarianceAuthority.cva(
36
36
  variants: {
37
37
  variant: {
38
38
  default: "bg-background text-foreground",
39
- destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
40
- success: "border-primary/50 text-foreground dark:border-primary [&>svg]:text-primary"
39
+ destructive: "border-destructive/50 bg-destructive-subtle text-destructive dark:border-destructive [&>svg]:text-destructive",
40
+ success: "border-success/50 bg-success-subtle text-success dark:border-success [&>svg]:text-success"
41
41
  }
42
42
  },
43
43
  defaultVariants: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/alert.tsx"],"names":["twMerge","clsx","cva","React","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACAA,IAAM,aAAA,GAAgBC,0BAAA;AAAA,EACpB,yKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+BAAA;AAAA,QACT,WAAA,EACE,yFAAA;AAAA,QACF,OAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,IAAM,KAAA,GAAcC,4BAGlB,CAAC,EAAE,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnCC,cAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,OAAA;AAAA,IACL,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmBD,4BAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BC,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBD,4BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BC,cAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"alert.cjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n success:\n \"border-primary/50 text-foreground dark:border-primary [&>svg]:text-primary\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n"]}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/alert.tsx"],"names":["twMerge","clsx","cva","React","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAOA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACAA,IAAM,aAAA,GAAgBC,0BAAA;AAAA,EACpB,yKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+BAAA;AAAA,QACT,WAAA,EACE,+GAAA;AAAA,QACF,OAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,IAAM,KAAA,GAAcC,4BAGlB,CAAC,EAAE,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnCC,cAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,OAAA;AAAA,IACL,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmBD,4BAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BC,cAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyBD,4BAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1BC,cAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"alert.cjs","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 bg-destructive-subtle text-destructive dark:border-destructive [&>svg]:text-destructive\",\n success:\n \"border-success/50 bg-success-subtle text-success dark:border-success [&>svg]:text-success\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n"]}
@@ -14,8 +14,8 @@ var alertVariants = cva(
14
14
  variants: {
15
15
  variant: {
16
16
  default: "bg-background text-foreground",
17
- destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive",
18
- success: "border-primary/50 text-foreground dark:border-primary [&>svg]:text-primary"
17
+ destructive: "border-destructive/50 bg-destructive-subtle text-destructive dark:border-destructive [&>svg]:text-destructive",
18
+ success: "border-success/50 bg-success-subtle text-success dark:border-success [&>svg]:text-success"
19
19
  }
20
20
  },
21
21
  defaultVariants: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/alert.tsx"],"names":[],"mappings":";;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACAA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,yKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+BAAA;AAAA,QACT,WAAA,EACE,yFAAA;AAAA,QACF,OAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,IAAM,KAAA,GAAc,iBAGlB,CAAC,EAAE,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnC,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,OAAA;AAAA,IACL,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmB,iBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyB,iBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"alert.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n success:\n \"border-primary/50 text-foreground dark:border-primary [&>svg]:text-primary\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n"]}
1
+ {"version":3,"sources":["../../../src/lib/utils.ts","../../../src/components/ui/alert.tsx"],"names":[],"mappings":";;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACAA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,yKAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,+BAAA;AAAA,QACT,WAAA,EACE,+GAAA;AAAA,QACF,OAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ,CAAA;AAEA,IAAM,KAAA,GAAc,iBAGlB,CAAC,EAAE,WAAW,OAAA,EAAS,GAAG,KAAA,EAAM,EAAG,GAAA,qBACnC,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,IAAA,EAAK,OAAA;AAAA,IACL,WAAW,EAAA,CAAG,aAAA,CAAc,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,IAClD,GAAG;AAAA;AACN,CACD;AACD,KAAA,CAAM,WAAA,GAAc,OAAA;AAEpB,IAAM,UAAA,GAAmB,iBAGvB,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAC,IAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,SAAS,CAAA;AAAA,IACtE,GAAG;AAAA;AACN,CACD;AACD,UAAA,CAAW,WAAA,GAAc,YAAA;AAEzB,IAAM,gBAAA,GAAyB,iBAG7B,CAAC,EAAE,WAAW,GAAG,KAAA,IAAS,GAAA,qBAC1B,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA;AAAA,IACvD,GAAG;AAAA;AACN,CACD;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"alert.js","sourcesContent":["import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive:\n \"border-destructive/50 bg-destructive-subtle text-destructive dark:border-destructive [&>svg]:text-destructive\",\n success:\n \"border-success/50 bg-success-subtle text-success dark:border-success [&>svg]:text-success\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n))\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/button-group.tsx"],"names":["jsx"],"mappings":";;;;;AAOO,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AACrE,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,8DAAA,EAAiE,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MAC1F,GAAG;AAAA;AAAA,GACN;AAEJ","file":"button-group.cjs","sourcesContent":["import * as React from \"react\"\nimport { Button } from \"./button\"\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport type { ButtonGroupProps }\n\nexport function ButtonGroup({ className, ...props }: ButtonGroupProps) {\n return (\n <div\n className={`inline-flex rounded-md border border-border p-1 bg-background ${className || \"\"}`}\n {...props}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/ui/button-group.tsx"],"names":["jsx"],"mappings":";;;;;AAMO,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AACrE,EAAA,uBACEA,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,8DAAA,EAAiE,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MAC1F,GAAG;AAAA;AAAA,GACN;AAEJ","file":"button-group.cjs","sourcesContent":["import * as React from \"react\"\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport type { ButtonGroupProps }\n\nexport function ButtonGroup({ className, ...props }: ButtonGroupProps) {\n return (\n <div\n className={`inline-flex rounded-md border border-border p-1 bg-background ${className || \"\"}`}\n {...props}\n />\n )\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAE1E,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAOpE"}
1
+ {"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button-group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,UAAU,gBAAiB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;CAAG;AAE1E,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAEhC,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,qBAOpE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ui/button-group.tsx"],"names":[],"mappings":";;;AAOO,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AACrE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,8DAAA,EAAiE,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MAC1F,GAAG;AAAA;AAAA,GACN;AAEJ","file":"button-group.js","sourcesContent":["import * as React from \"react\"\nimport { Button } from \"./button\"\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport type { ButtonGroupProps }\n\nexport function ButtonGroup({ className, ...props }: ButtonGroupProps) {\n return (\n <div\n className={`inline-flex rounded-md border border-border p-1 bg-background ${className || \"\"}`}\n {...props}\n />\n )\n}\n"]}
1
+ {"version":3,"sources":["../../../src/components/ui/button-group.tsx"],"names":[],"mappings":";;;AAMO,SAAS,WAAA,CAAY,EAAE,SAAA,EAAW,GAAG,OAAM,EAAqB;AACrE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,8DAAA,EAAiE,SAAA,IAAa,EAAE,CAAA,CAAA;AAAA,MAC1F,GAAG;AAAA;AAAA,GACN;AAEJ","file":"button-group.js","sourcesContent":["import * as React from \"react\"\n\ninterface ButtonGroupProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport type { ButtonGroupProps }\n\nexport function ButtonGroup({ className, ...props }: ButtonGroupProps) {\n return (\n <div\n className={`inline-flex rounded-md border border-border p-1 bg-background ${className || \"\"}`}\n {...props}\n />\n )\n}\n"]}
@@ -36,17 +36,17 @@ var buttonVariants = classVarianceAuthority.cva(
36
36
  {
37
37
  variants: {
38
38
  variant: {
39
- default: "bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
40
- primary: "bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
39
+ default: "border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
40
+ primary: "border border-primary-border bg-primary text-primary-foreground shadow-surface hover:bg-primary-hover",
41
41
  destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",
42
42
  outline: "border border-input bg-surface shadow-surface hover:bg-accent hover:text-accent-foreground",
43
- secondary: "bg-secondary text-secondary-foreground shadow-surface hover:bg-surface-interactive",
43
+ secondary: "border border-secondary-border bg-secondary text-secondary-foreground shadow-surface hover:bg-secondary-hover",
44
44
  accent: "bg-accent-muted text-accent-foreground hover:bg-accent shadow-surface",
45
45
  subtle: "bg-accent text-accent-foreground hover:bg-accent-muted",
46
46
  inverse: "bg-foreground text-background shadow-sm hover:bg-foreground/90",
47
47
  ghost: "hover:bg-accent hover:text-accent-foreground",
48
48
  navigation: "hover:bg-accent hover:text-accent-foreground",
49
- link: "text-primary underline-offset-4 hover:underline"
49
+ link: "text-link underline-offset-4 hover:underline"
50
50
  },
51
51
  size: {
52
52
  default: "h-[var(--control-height)] px-4 py-2",