@konopskidev/ui 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -13
- package/dist/chunks/rolldown-runtime-CmQyd0Gu.cjs +27 -0
- package/dist/components/ui/accordion.cjs +62 -0
- package/dist/components/ui/accordion.cjs.map +1 -0
- package/dist/components/ui/accordion.d.cts +7 -0
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +9 -8
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/alert-dialog.cjs +116 -0
- package/dist/components/ui/alert-dialog.cjs.map +1 -0
- package/dist/components/ui/alert-dialog.d.cts +18 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.js +13 -12
- package/dist/components/ui/alert-dialog.js.map +1 -1
- package/dist/components/ui/alert.cjs +49 -0
- package/dist/components/ui/alert.cjs.map +1 -0
- package/dist/components/ui/alert.d.cts +10 -0
- package/dist/components/ui/aspect-ratio.cjs +14 -0
- package/dist/components/ui/aspect-ratio.cjs.map +1 -0
- package/dist/components/ui/aspect-ratio.d.cts +3 -0
- package/dist/components/ui/aspect-ratio.js +4 -5
- package/dist/components/ui/aspect-ratio.js.map +1 -1
- package/dist/components/ui/attachment.cjs +113 -0
- package/dist/components/ui/attachment.cjs.map +1 -0
- package/dist/components/ui/attachment.d.cts +24 -0
- package/dist/components/ui/avatar.cjs +60 -0
- package/dist/components/ui/avatar.cjs.map +1 -0
- package/dist/components/ui/avatar.d.cts +11 -0
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/avatar.js +7 -6
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/badge.cjs +33 -0
- package/dist/components/ui/badge.cjs.map +1 -0
- package/dist/components/ui/badge.d.cts +9 -0
- package/dist/components/ui/breadcrumb.cjs +81 -0
- package/dist/components/ui/breadcrumb.cjs.map +1 -0
- package/dist/components/ui/breadcrumb.d.cts +11 -0
- package/dist/components/ui/bubble.cjs +79 -0
- package/dist/components/ui/bubble.cjs.map +1 -0
- package/dist/components/ui/bubble.d.cts +17 -0
- package/dist/components/ui/button-group.cjs +43 -0
- package/dist/components/ui/button-group.cjs.map +1 -0
- package/dist/components/ui/button-group.d.cts +11 -0
- package/dist/components/ui/button.cjs +64 -0
- package/dist/components/ui/button.cjs.map +1 -0
- package/dist/components/ui/button.d.cts +21 -0
- package/dist/components/ui/calendar.cjs +114 -0
- package/dist/components/ui/calendar.cjs.map +1 -0
- package/dist/components/ui/calendar.d.cts +10 -0
- package/dist/components/ui/calendar.js +0 -1
- package/dist/components/ui/calendar.js.map +1 -1
- package/dist/components/ui/card.cjs +80 -0
- package/dist/components/ui/card.cjs.map +1 -0
- package/dist/components/ui/card.d.cts +33 -0
- package/dist/components/ui/card.d.ts +7 -2
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/carousel.cjs +142 -0
- package/dist/components/ui/carousel.cjs.map +1 -0
- package/dist/components/ui/carousel.d.cts +28 -0
- package/dist/components/ui/carousel.d.ts +1 -1
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +1 -0
- package/dist/components/ui/carousel.js.map +1 -1
- package/dist/components/ui/chart.cjs +159 -0
- package/dist/components/ui/chart.cjs.map +1 -0
- package/dist/components/ui/chart.d.cts +44 -0
- package/dist/components/ui/chart.js +0 -1
- package/dist/components/ui/chart.js.map +1 -1
- package/dist/components/ui/checkbox.cjs +25 -0
- package/dist/components/ui/checkbox.cjs.map +1 -0
- package/dist/components/ui/checkbox.d.cts +4 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/checkbox.js +6 -5
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/code-block.cjs +134 -0
- package/dist/components/ui/code-block.cjs.map +1 -0
- package/dist/components/ui/code-block.d.cts +26 -0
- package/dist/components/ui/code-block.d.ts.map +1 -1
- package/dist/components/ui/code-block.js +1 -0
- package/dist/components/ui/code-block.js.map +1 -1
- package/dist/components/ui/collapsible.cjs +28 -0
- package/dist/components/ui/collapsible.cjs.map +1 -0
- package/dist/components/ui/collapsible.d.cts +5 -0
- package/dist/components/ui/collapsible.js +6 -7
- package/dist/components/ui/collapsible.js.map +1 -1
- package/dist/components/ui/combobox.cjs +193 -0
- package/dist/components/ui/combobox.cjs.map +1 -0
- package/dist/components/ui/combobox.d.cts +24 -0
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/combobox.js +22 -21
- package/dist/components/ui/combobox.js.map +1 -1
- package/dist/components/ui/command.cjs +99 -0
- package/dist/components/ui/command.cjs.map +1 -0
- package/dist/components/ui/command.d.cts +18 -0
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js +10 -12
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/context-menu.cjs +143 -0
- package/dist/components/ui/context-menu.cjs.map +1 -0
- package/dist/components/ui/context-menu.d.cts +31 -0
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu.js +20 -19
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/dialog.cjs +148 -0
- package/dist/components/ui/dialog.cjs.map +1 -0
- package/dist/components/ui/dialog.d.cts +55 -0
- package/dist/components/ui/dialog.d.ts +41 -3
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +65 -26
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/direction.cjs +19 -0
- package/dist/components/ui/direction.cjs.map +1 -0
- package/dist/components/ui/direction.d.cts +11 -0
- package/dist/components/ui/direction.d.ts +1 -1
- package/dist/components/ui/direction.d.ts.map +1 -1
- package/dist/components/ui/direction.js +0 -1
- package/dist/components/ui/direction.js.map +1 -1
- package/dist/components/ui/drawer.cjs +90 -0
- package/dist/components/ui/drawer.cjs.map +1 -0
- package/dist/components/ui/drawer.d.cts +13 -0
- package/dist/components/ui/drawer.js +11 -11
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.cjs +146 -0
- package/dist/components/ui/dropdown-menu.cjs.map +1 -0
- package/dist/components/ui/dropdown-menu.d.cts +29 -0
- package/dist/components/ui/dropdown-menu.js +19 -20
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/empty.cjs +66 -0
- package/dist/components/ui/empty.cjs.map +1 -0
- package/dist/components/ui/empty.d.cts +11 -0
- package/dist/components/ui/field.cjs +121 -0
- package/dist/components/ui/field.cjs.map +1 -0
- package/dist/components/ui/field.d.cts +24 -0
- package/dist/components/ui/field.js +0 -1
- package/dist/components/ui/field.js.map +1 -1
- package/dist/components/ui/hover-card.cjs +38 -0
- package/dist/components/ui/hover-card.cjs.map +1 -0
- package/dist/components/ui/hover-card.d.cts +6 -0
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/hover-card.js +8 -7
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/input-group.cjs +87 -0
- package/dist/components/ui/input-group.cjs.map +1 -0
- package/dist/components/ui/input-group.d.cts +16 -0
- package/dist/components/ui/input-otp.cjs +54 -0
- package/dist/components/ui/input-otp.cjs.map +1 -0
- package/dist/components/ui/input-otp.d.cts +11 -0
- package/dist/components/ui/input-otp.js +0 -1
- package/dist/components/ui/input-otp.js.map +1 -1
- package/dist/components/ui/input.cjs +28 -0
- package/dist/components/ui/input.cjs.map +1 -0
- package/dist/components/ui/input.d.cts +10 -0
- package/dist/components/ui/item.cjs +133 -0
- package/dist/components/ui/item.cjs.map +1 -0
- package/dist/components/ui/item.d.cts +23 -0
- package/dist/components/ui/kbd.cjs +22 -0
- package/dist/components/ui/kbd.cjs.map +1 -0
- package/dist/components/ui/kbd.d.cts +3 -0
- package/dist/components/ui/label.cjs +19 -0
- package/dist/components/ui/label.cjs.map +1 -0
- package/dist/components/ui/label.d.cts +4 -0
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/label.js +5 -4
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/marker.cjs +46 -0
- package/dist/components/ui/marker.cjs.map +1 -0
- package/dist/components/ui/marker.d.cts +11 -0
- package/dist/components/ui/menubar.cjs +154 -0
- package/dist/components/ui/menubar.cjs.map +1 -0
- package/dist/components/ui/menubar.d.cts +30 -0
- package/dist/components/ui/menubar.js +20 -21
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/message-scroller.cjs +87 -0
- package/dist/components/ui/message-scroller.cjs.map +1 -0
- package/dist/components/ui/message-scroller.d.cts +10 -0
- package/dist/components/ui/message-scroller.js +9 -9
- package/dist/components/ui/message-scroller.js.map +1 -1
- package/dist/components/ui/message.cjs +58 -0
- package/dist/components/ui/message.cjs.map +1 -0
- package/dist/components/ui/message.d.cts +10 -0
- package/dist/components/ui/native-select.cjs +44 -0
- package/dist/components/ui/native-select.cjs.map +1 -0
- package/dist/components/ui/native-select.d.cts +8 -0
- package/dist/components/ui/native-select.d.ts +1 -1
- package/dist/components/ui/native-select.d.ts.map +1 -1
- package/dist/components/ui/native-select.js.map +1 -1
- package/dist/components/ui/navigation-menu.cjs +93 -0
- package/dist/components/ui/navigation-menu.cjs.map +1 -0
- package/dist/components/ui/navigation-menu.d.cts +14 -0
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.js +12 -11
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination.cjs +90 -0
- package/dist/components/ui/pagination.cjs.map +1 -0
- package/dist/components/ui/pagination.d.cts +17 -0
- package/dist/components/ui/pagination.d.ts +1 -1
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination.js.map +1 -1
- package/dist/components/ui/popover.cjs +66 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.d.cts +10 -0
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/popover.js +8 -7
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/progress.cjs +25 -0
- package/dist/components/ui/progress.cjs.map +1 -0
- package/dist/components/ui/progress.d.cts +4 -0
- package/dist/components/ui/progress.js +5 -6
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/questionnaire.cjs +187 -0
- package/dist/components/ui/questionnaire.cjs.map +1 -0
- package/dist/components/ui/questionnaire.d.cts +19 -0
- package/dist/components/ui/questionnaire.d.ts.map +1 -1
- package/dist/components/ui/questionnaire.js +19 -21
- package/dist/components/ui/questionnaire.js.map +1 -1
- package/dist/components/ui/radio-group.cjs +32 -0
- package/dist/components/ui/radio-group.cjs.map +1 -0
- package/dist/components/ui/radio-group.d.cts +5 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/radio-group.js +7 -6
- package/dist/components/ui/radio-group.js.map +1 -1
- package/dist/components/ui/resizable.cjs +33 -0
- package/dist/components/ui/resizable.cjs.map +1 -0
- package/dist/components/ui/resizable.d.cts +7 -0
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable.js +0 -2
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/scroll-area.cjs +43 -0
- package/dist/components/ui/scroll-area.cjs.map +1 -0
- package/dist/components/ui/scroll-area.d.cts +5 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.js +9 -8
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.cjs +113 -0
- package/dist/components/ui/select.cjs.map +1 -0
- package/dist/components/ui/select.d.cts +15 -0
- package/dist/components/ui/select.js +17 -18
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/separator.cjs +21 -0
- package/dist/components/ui/separator.cjs.map +1 -0
- package/dist/components/ui/separator.d.cts +4 -0
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/separator.js +5 -4
- package/dist/components/ui/separator.js.map +1 -1
- package/dist/components/ui/sheet.cjs +101 -0
- package/dist/components/ui/sheet.cjs.map +1 -0
- package/dist/components/ui/sheet.d.cts +14 -0
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sheet.js +1 -0
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sidebar.cjs +405 -0
- package/dist/components/ui/sidebar.cjs.map +1 -0
- package/dist/components/ui/sidebar.d.cts +69 -0
- package/dist/components/ui/sidebar.js +0 -1
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/skeleton.cjs +14 -0
- package/dist/components/ui/skeleton.cjs.map +1 -0
- package/dist/components/ui/skeleton.d.cts +2 -0
- package/dist/components/ui/slider.cjs +42 -0
- package/dist/components/ui/slider.cjs.map +1 -0
- package/dist/components/ui/slider.d.cts +7 -0
- package/dist/components/ui/slider.js +7 -8
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/sonner.cjs +36 -0
- package/dist/components/ui/sonner.cjs.map +1 -0
- package/dist/components/ui/sonner.d.cts +13 -0
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/sonner.js +4 -6
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/components/ui/spinner.cjs +17 -0
- package/dist/components/ui/spinner.cjs.map +1 -0
- package/dist/components/ui/spinner.d.cts +2 -0
- package/dist/components/ui/switch.cjs +24 -0
- package/dist/components/ui/switch.cjs.map +1 -0
- package/dist/components/ui/switch.d.cts +6 -0
- package/dist/components/ui/switch.js +5 -6
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/table.cjs +77 -0
- package/dist/components/ui/table.cjs.map +1 -0
- package/dist/components/ui/table.d.cts +10 -0
- package/dist/components/ui/tabs.cjs +54 -0
- package/dist/components/ui/tabs.cjs.map +1 -0
- package/dist/components/ui/tabs.d.cts +11 -0
- package/dist/components/ui/tabs.js +7 -8
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.cjs +39 -0
- package/dist/components/ui/textarea.cjs.map +1 -0
- package/dist/components/ui/textarea.d.cts +9 -0
- package/dist/components/ui/textarea.js +0 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toggle-group.cjs +56 -0
- package/dist/components/ui/toggle-group.cjs.map +1 -0
- package/dist/components/ui/toggle-group.d.cts +10 -0
- package/dist/components/ui/toggle-group.js +5 -6
- package/dist/components/ui/toggle-group.js.map +1 -1
- package/dist/components/ui/toggle.cjs +41 -0
- package/dist/components/ui/toggle.cjs.map +1 -0
- package/dist/components/ui/toggle.d.cts +9 -0
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +5 -4
- package/dist/components/ui/toggle.js.map +1 -1
- package/dist/components/ui/tooltip.cjs +43 -0
- package/dist/components/ui/tooltip.cjs.map +1 -0
- package/dist/components/ui/tooltip.d.cts +7 -0
- package/dist/components/ui/tooltip.js +8 -9
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/trace.cjs +86 -0
- package/dist/components/ui/trace.cjs.map +1 -0
- package/dist/components/ui/trace.d.cts +18 -0
- package/dist/hooks/use-highlighted-code.d.ts.map +1 -1
- package/dist/hooks/use-highlighted-code.js +56 -0
- package/dist/hooks/use-highlighted-code.js.map +1 -0
- package/dist/hooks/use-mobile.cjs +26 -0
- package/dist/hooks/use-mobile.cjs.map +1 -0
- package/dist/hooks/use-mobile.d.cts +1 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -1
- package/dist/hooks/use-mobile.js +1 -0
- package/dist/hooks/use-mobile.js.map +1 -1
- package/dist/index.cjs +356 -0
- package/dist/index.d.cts +67 -0
- package/dist/index.d.ts +5 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -14
- package/dist/lib/get-placeholder.cjs +13 -0
- package/dist/lib/get-placeholder.cjs.map +1 -0
- package/dist/lib/get-placeholder.d.cts +5 -0
- package/dist/lib/highlighter.js +79 -0
- package/dist/lib/highlighter.js.map +1 -0
- package/dist/lib/utils.cjs +8 -0
- package/dist/lib/utils.d.cts +8 -0
- package/{src → dist}/styles/globals.css +11 -0
- package/package.json +111 -32
- /package/{src → dist}/styles/base.css +0 -0
- /package/{src → dist}/styles/prose.css +0 -0
- /package/{src → dist}/styles/theme.css +0 -0
- /package/{src → dist}/styles/tokens.css +0 -0
- /package/{src → dist}/styles/utilities.css +0 -0
- /package/{src → dist}/styles/variants.css +0 -0
package/README.md
CHANGED
|
@@ -6,6 +6,10 @@ visual language of the [konopskidev](../konopskidev) site, on Tailwind CSS v4 an
|
|
|
6
6
|
- **63 components** — the full `radix-nova` registry, plus the hand-written house primitives.
|
|
7
7
|
- **One style source** — tokens, theme, base layers and prose live in [`src/styles`](src/styles), so
|
|
8
8
|
every app imports the same stylesheet instead of re-deriving the palette.
|
|
9
|
+
- **ESM and CommonJS** — both formats ship, with declarations for each, so `import`, `require` and a
|
|
10
|
+
Jest suite all resolve the package without a transform.
|
|
11
|
+
- **Only what you install loads** — a component built on a heavy library (`recharts`, `shiki`,
|
|
12
|
+
`vaul`, …) asks for it as an optional peer, and is never re-exported from the root barrel.
|
|
9
13
|
- **Documented in Storybook 10** with real controls for every prop, and every story runs as a test
|
|
10
14
|
in a real browser (render + play function + axe accessibility checks).
|
|
11
15
|
- **Tested with Vitest** — behaviour in jsdom, markup and a11y in Chromium.
|
|
@@ -16,7 +20,36 @@ visual language of the [konopskidev](../konopskidev) site, on Tailwind CSS v4 an
|
|
|
16
20
|
pnpm add @konopskidev/ui
|
|
17
21
|
```
|
|
18
22
|
|
|
19
|
-
Peer dependencies: `react@^19`, `react-dom@^19`, `tailwindcss@^4
|
|
23
|
+
Peer dependencies: `react@^19`, `react-dom@^19`, `tailwindcss@^4`, and `lucide-react` (optional).
|
|
24
|
+
|
|
25
|
+
Some components are built on a heavy library. Those are **optional peers**: they are not installed
|
|
26
|
+
with the package, and you add the one a component needs — the manual half of what `shadcn add` does
|
|
27
|
+
for a copied component.
|
|
28
|
+
|
|
29
|
+
| Component | Install alongside |
|
|
30
|
+
| ----------------------------------------------- | --------------------------------- |
|
|
31
|
+
| `chart` | `pnpm add recharts` |
|
|
32
|
+
| `carousel` | `pnpm add embla-carousel-react` |
|
|
33
|
+
| `drawer` | `pnpm add vaul` |
|
|
34
|
+
| `calendar` | `pnpm add react-day-picker` |
|
|
35
|
+
| `resizable` | `pnpm add react-resizable-panels` |
|
|
36
|
+
| `command` | `pnpm add cmdk` |
|
|
37
|
+
| `sonner` | `pnpm add sonner` |
|
|
38
|
+
| `input-otp` | `pnpm add input-otp` |
|
|
39
|
+
| `combobox` | `pnpm add @base-ui/react` |
|
|
40
|
+
| `message-scroller`, `questionnaire` | `pnpm add @shadcn/react` |
|
|
41
|
+
| `lib/highlighter`, `hooks/use-highlighted-code` | `pnpm add shiki` (ESM only) |
|
|
42
|
+
|
|
43
|
+
Those eleven components are **not** in the root barrel, because a barrel that re-exported them would
|
|
44
|
+
make every consumer resolve `recharts` on `import { Button } from '@konopskidev/ui'`. Import them
|
|
45
|
+
from their subpath:
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
import { ChartContainer } from '@konopskidev/ui/components/chart';
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
> **Just released?** pnpm quarantines packages published in the last 24 hours. While you are the one
|
|
52
|
+
> publishing, add the package to `minimumReleaseAgeExclude` in `pnpm-workspace.yaml`.
|
|
20
53
|
|
|
21
54
|
## Wire up the styles
|
|
22
55
|
|
|
@@ -27,11 +60,13 @@ The package does **not** import `tailwindcss` itself — the app owns that, so i
|
|
|
27
60
|
/* app.css */
|
|
28
61
|
@import 'tailwindcss';
|
|
29
62
|
@import '@konopskidev/ui/styles.css';
|
|
30
|
-
|
|
31
|
-
/* Let Tailwind see the classes the components use. */
|
|
32
|
-
@source '../node_modules/@konopskidev/ui/dist';
|
|
33
63
|
```
|
|
34
64
|
|
|
65
|
+
No `@source` line is needed. Tailwind does not scan `node_modules`, so the published stylesheet
|
|
66
|
+
registers the package's own modules with `@source` — the path is relative to that file, so it cannot
|
|
67
|
+
drift from your install. Before that existed, a wrong consumer-side path failed silently: every
|
|
68
|
+
component rendered unstyled with no error in the build or the console.
|
|
69
|
+
|
|
35
70
|
Dark mode is the `.dark` class on any ancestor. The `--font-*` variables come from the app
|
|
36
71
|
(konopskidev sets them with `next/font`); every style has a sensible fallback.
|
|
37
72
|
|
|
@@ -56,15 +91,32 @@ export function PublishCard() {
|
|
|
56
91
|
}
|
|
57
92
|
```
|
|
58
93
|
|
|
59
|
-
Deep imports keep a page from pulling in the whole library
|
|
94
|
+
Deep imports keep a page from pulling in the whole library, and they are the only way in for the
|
|
95
|
+
components in the peer table above:
|
|
60
96
|
|
|
61
97
|
```tsx
|
|
62
98
|
import { Button } from '@konopskidev/ui/components/button';
|
|
63
99
|
import { cn } from '@konopskidev/ui/lib/utils';
|
|
64
100
|
```
|
|
65
101
|
|
|
66
|
-
|
|
67
|
-
Component tree.
|
|
102
|
+
Every module that calls a hook, or wraps a primitive with no client boundary of its own, carries
|
|
103
|
+
`'use client'`, so it renders inside a React Server Component tree. Two kinds of module stay
|
|
104
|
+
unmarked on purpose:
|
|
105
|
+
|
|
106
|
+
- **`Slot`-only presentational components** — `Button`, `Card`, `Badge`, `Item`, `Breadcrumb` and the
|
|
107
|
+
prose primitives. `Slot` is `asChild` plumbing with no behaviour, and Radix leaves it unmarked for
|
|
108
|
+
the same reason. Because the directive is file-level, marking `button.tsx` would also make
|
|
109
|
+
`buttonVariants` a client reference, and `buttonVariants()` from a server component would throw.
|
|
110
|
+
- **Thin wrappers over a dependency that declares the boundary itself** — `cmdk`, `sonner`,
|
|
111
|
+
`react-resizable-panels`, `@shadcn/react`. The client graph already starts inside the dependency,
|
|
112
|
+
so marking the wrapper only moves its own few lines into the client bundle.
|
|
113
|
+
|
|
114
|
+
A test enforces both directions and re-checks that every package in the second group still ships the
|
|
115
|
+
directive, so a new component cannot silently regress the rule:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
pnpm test src/client-directive.test.ts
|
|
119
|
+
```
|
|
68
120
|
|
|
69
121
|
## The style contract
|
|
70
122
|
|
|
@@ -89,6 +141,13 @@ Conventions that are behaviour, not class strings:
|
|
|
89
141
|
- **Slider names live on the thumbs**, where focus goes; pass `thumbLabels` for ranges.
|
|
90
142
|
- **`Item` rows are list items** inside `ItemGroup`; with `asChild` the consumer's element keeps its
|
|
91
143
|
own role.
|
|
144
|
+
- **`CardImage` requires content.** The aspect box exists to frame media, so `children` is required
|
|
145
|
+
rather than every call site guarding an empty frame.
|
|
146
|
+
- **`DialogContent` composes.** `variant="bare"` gives a full-viewport layer with no card chrome and
|
|
147
|
+
no entrance animation (image viewers, canvases); `overlayClassName` reaches the backdrop,
|
|
148
|
+
`showOverlay={false}` removes it, and `closeButton` takes `false` or your own element when the
|
|
149
|
+
default ghost button would be unreadable. `DialogContentPrimitive` is exported for layouts the
|
|
150
|
+
props cannot express.
|
|
92
151
|
|
|
93
152
|
## Storybook
|
|
94
153
|
|
|
@@ -106,25 +165,44 @@ get wrong.
|
|
|
106
165
|
```bash
|
|
107
166
|
pnpm test # jsdom behaviour tests
|
|
108
167
|
pnpm test:stories # every story rendered in Chromium, play functions + axe
|
|
168
|
+
pnpm test:package # packs the tarball and consumes it, both formats + Tailwind
|
|
109
169
|
pnpm test:coverage
|
|
110
170
|
```
|
|
111
171
|
|
|
112
172
|
`pnpm test:stories` needs a browser: `pnpm exec playwright install chromium`.
|
|
113
173
|
|
|
174
|
+
`pnpm test:package` is the check the metadata validators cannot make: it `npm pack`s the package,
|
|
175
|
+
installs it into a scratch consumer with only React and Tailwind, then `import`s and `require`s it,
|
|
176
|
+
asserts the barrel resolves without any optional peer, and runs a Tailwind build to prove the shipped
|
|
177
|
+
stylesheet styles the components with no consumer configuration.
|
|
178
|
+
|
|
179
|
+
**Jest.** Because the package ships CommonJS alongside ESM, `require` resolves it directly: no
|
|
180
|
+
`moduleNameMapper`, no transform for the package, no `transformIgnorePatterns` exception. One
|
|
181
|
+
`moduleNameMapper` per export family (`components/*`, `lib/*`, `hooks/*`) is enough if you need to
|
|
182
|
+
point at the files explicitly.
|
|
183
|
+
|
|
114
184
|
Coverage thresholds are a ratchet — the floor sits where the suite is today (65 % overall, 90 % for
|
|
115
185
|
hooks, 70 % for lib), so a new component without tests fails the run instead of sliding past.
|
|
116
186
|
|
|
117
187
|
## Quality gates
|
|
118
188
|
|
|
119
189
|
```bash
|
|
120
|
-
pnpm verify # lint → tsc → tests → build → publint + attw
|
|
190
|
+
pnpm verify # lint → tsc → tests → build → package smoke test → publint + attw
|
|
121
191
|
```
|
|
122
192
|
|
|
123
|
-
The build
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
and
|
|
193
|
+
The build is [`scripts/build.mjs`](scripts/build.mjs): every publishable source module is a Rollup
|
|
194
|
+
entry ([`scripts/entries.mjs`](scripts/entries.mjs)), so one file is emitted per module and nothing
|
|
195
|
+
that a wildcard export can reach is left out. Vite runs twice — ESM, then CommonJS — `tsc` writes the
|
|
196
|
+
declarations, and the post-steps copy `src/styles` into `dist/styles`, add the CommonJS `.d.cts`
|
|
197
|
+
declarations, and normalise relative specifiers so `moduleResolution: node16` consumers resolve them
|
|
198
|
+
([`scripts/fix-declarations.mjs`](scripts/fix-declarations.mjs)).
|
|
199
|
+
|
|
200
|
+
[`scripts/check-build.mjs`](scripts/check-build.mjs) then fails the build on any of the ways this
|
|
201
|
+
package has broken before: a module with declarations but no JavaScript, a `'use client'` that is
|
|
202
|
+
missing or duplicated, an `exports` target that does not exist, or a stylesheet that is not in `dist`.
|
|
203
|
+
`attw` runs with `--profile node16`, so both the `import` and `require` branches are validated;
|
|
204
|
+
`./styles.css` and the two ESM-only modules are excluded, and publint validates the stylesheet as a
|
|
205
|
+
plain asset.
|
|
128
206
|
|
|
129
207
|
## Adding a component
|
|
130
208
|
|
|
@@ -137,6 +215,17 @@ pnpm format
|
|
|
137
215
|
Then write `src/components/ui/<component>.stories.tsx` and `<component>.test.tsx`, export it from
|
|
138
216
|
`src/components/ui/<component>.tsx` and regenerate the barrel with `pnpm barrel`.
|
|
139
217
|
|
|
218
|
+
Two rules are enforced by tests rather than convention:
|
|
219
|
+
|
|
220
|
+
- **Client or server?** A module that calls a hook, or wraps a primitive that does not declare its
|
|
221
|
+
own client boundary, needs `'use client'` as its first line; `pnpm test` fails both when it is
|
|
222
|
+
missing and when it is unnecessary, and the build fails if the directive is emitted twice or not at
|
|
223
|
+
all. `Slot`-only modules stay unmarked — see the client/server section above.
|
|
224
|
+
- **Heavy peer?** If the component needs a library the core does not already have, add it to
|
|
225
|
+
`peerDependencies` + `peerDependenciesMeta` (optional) + `devDependencies` and to
|
|
226
|
+
`OPTIONAL_PEER_COMPONENTS` in [`scripts/generate-barrel.mjs`](scripts/generate-barrel.mjs), so it
|
|
227
|
+
stays out of the root barrel. Add the row to the install table above.
|
|
228
|
+
|
|
140
229
|
## Releasing
|
|
141
230
|
|
|
142
231
|
Releases run from **Actions → Release → Run workflow**. The only choice is the bump — `patch`,
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
Object.defineProperty(exports, "__toESM", {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function() {
|
|
25
|
+
return __toESM;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
|
|
4
|
+
let cn = require("cn");
|
|
5
|
+
let lucide_react = require("lucide-react");
|
|
6
|
+
let radix_ui = require("radix-ui");
|
|
7
|
+
let react = require("react");
|
|
8
|
+
react = require_rolldown_runtime.__toESM(react, 1);
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
// src/components/ui/accordion.tsx
|
|
11
|
+
function Accordion({ className, ...props }) {
|
|
12
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Accordion.Root, {
|
|
13
|
+
"data-slot": "accordion",
|
|
14
|
+
className: (0, cn.cn)("flex w-full flex-col", className),
|
|
15
|
+
...props
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function AccordionItem({ className, ...props }) {
|
|
19
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Accordion.Item, {
|
|
20
|
+
"data-slot": "accordion-item",
|
|
21
|
+
className: (0, cn.cn)("not-last:border-b", className),
|
|
22
|
+
...props
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function AccordionTrigger({ className, children, ...props }) {
|
|
26
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Accordion.Header, {
|
|
27
|
+
className: "flex",
|
|
28
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(radix_ui.Accordion.Trigger, {
|
|
29
|
+
"data-slot": "accordion-trigger",
|
|
30
|
+
className: (0, cn.cn)("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-sm border border-transparent py-2.5 text-left text-sm font-medium focus-ring transition-all outline-none hover:underline focus-visible:after:border-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", className),
|
|
31
|
+
...props,
|
|
32
|
+
children: [
|
|
33
|
+
children,
|
|
34
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDownIcon, {
|
|
35
|
+
"data-slot": "accordion-trigger-icon",
|
|
36
|
+
className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden"
|
|
37
|
+
}),
|
|
38
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronUpIcon, {
|
|
39
|
+
"data-slot": "accordion-trigger-icon",
|
|
40
|
+
className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline"
|
|
41
|
+
})
|
|
42
|
+
]
|
|
43
|
+
})
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function AccordionContent({ className, children, ...props }) {
|
|
47
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.Accordion.Content, {
|
|
48
|
+
"data-slot": "accordion-content",
|
|
49
|
+
className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",
|
|
50
|
+
...props,
|
|
51
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
52
|
+
className: (0, cn.cn)("h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className),
|
|
53
|
+
children
|
|
54
|
+
})
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
exports.Accordion = Accordion;
|
|
58
|
+
exports.AccordionContent = AccordionContent;
|
|
59
|
+
exports.AccordionItem = AccordionItem;
|
|
60
|
+
exports.AccordionTrigger = AccordionTrigger;
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=accordion.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.cjs","names":["AccordionPrimitive","ChevronDownIcon","ChevronUpIcon"],"sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { Accordion as AccordionPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction Accordion({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn('flex w-full flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('not-last:border-b', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'group/accordion-trigger relative flex flex-1 items-start justify-between rounded-sm border border-transparent py-2.5 text-left text-sm font-medium focus-ring transition-all outline-none hover:underline focus-visible:after:border-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <ChevronUpIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n 'h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;;;;;;;;AAOA,SAAS,UAAU,EAAE,WAAW,GAAG,SAA+D;CAChG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,MAApB;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,wBAAwB,SAAS;EAC/C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;CACvD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,MAApB;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,qBAAqB,SAAS;EAC5C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;CAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,UAAmB,QAApB;EAA2B,WAAU;EACnC,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACA,SAAAA,UAAmB,SAApB;GACE,aAAU;GACV,YAAA,GAAW,GAAA,GAAA,CACT,idACA,SACF;GACA,GAAI;GANN,UAAA;IAQG;IACD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,iBAAD;KACE,aAAU;KACV,WAAU;IACX,CAAA;IACD,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,eAAD;KACE,aAAU;KACV,WAAU;IACX,CAAA;GACyB;;CACH,CAAA;AAE/B;AAEA,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;CAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,SAAAA,UAAmB,SAApB;EACE,aAAU;EACV,WAAU;EACV,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GACE,YAAA,GAAW,GAAA,GAAA,CACT,qJACA,SACF;GAEC;EACE,CAAA;CACqB,CAAA;AAEhC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Accordion as AccordionPrimitive } from 'radix-ui';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function Accordion({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>): React.JSX.Element;
|
|
4
|
+
declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Item>): React.JSX.Element;
|
|
5
|
+
declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Trigger>): React.JSX.Element;
|
|
6
|
+
declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof AccordionPrimitive.Content>): React.JSX.Element;
|
|
7
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/ui/accordion.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../src/components/ui/accordion.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,qBAQ/F;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,qBAQtD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,qBAuBzD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,qBAiBzD;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { cn } from "cn";
|
|
2
3
|
import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
|
|
3
|
-
import { Accordion } from "radix-ui";
|
|
4
|
+
import { Accordion as Accordion$1 } from "radix-ui";
|
|
4
5
|
import "react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
// src/components/ui/accordion.tsx
|
|
7
|
-
function Accordion
|
|
8
|
-
return /* @__PURE__ */ jsx(Accordion.Root, {
|
|
8
|
+
function Accordion({ className, ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(Accordion$1.Root, {
|
|
9
10
|
"data-slot": "accordion",
|
|
10
11
|
className: cn("flex w-full flex-col", className),
|
|
11
12
|
...props
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
function AccordionItem({ className, ...props }) {
|
|
15
|
-
return /* @__PURE__ */ jsx(Accordion.Item, {
|
|
16
|
+
return /* @__PURE__ */ jsx(Accordion$1.Item, {
|
|
16
17
|
"data-slot": "accordion-item",
|
|
17
18
|
className: cn("not-last:border-b", className),
|
|
18
19
|
...props
|
|
19
20
|
});
|
|
20
21
|
}
|
|
21
22
|
function AccordionTrigger({ className, children, ...props }) {
|
|
22
|
-
return /* @__PURE__ */ jsx(Accordion.Header, {
|
|
23
|
+
return /* @__PURE__ */ jsx(Accordion$1.Header, {
|
|
23
24
|
className: "flex",
|
|
24
|
-
children: /* @__PURE__ */ jsxs(Accordion.Trigger, {
|
|
25
|
+
children: /* @__PURE__ */ jsxs(Accordion$1.Trigger, {
|
|
25
26
|
"data-slot": "accordion-trigger",
|
|
26
27
|
className: cn("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-sm border border-transparent py-2.5 text-left text-sm font-medium focus-ring transition-all outline-none hover:underline focus-visible:after:border-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", className),
|
|
27
28
|
...props,
|
|
@@ -40,7 +41,7 @@ function AccordionTrigger({ className, children, ...props }) {
|
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
function AccordionContent({ className, children, ...props }) {
|
|
43
|
-
return /* @__PURE__ */ jsx(Accordion.Content, {
|
|
44
|
+
return /* @__PURE__ */ jsx(Accordion$1.Content, {
|
|
44
45
|
"data-slot": "accordion-content",
|
|
45
46
|
className: "overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up",
|
|
46
47
|
...props,
|
|
@@ -50,6 +51,6 @@ function AccordionContent({ className, children, ...props }) {
|
|
|
50
51
|
})
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
|
-
export { Accordion
|
|
54
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
|
|
54
55
|
|
|
55
56
|
//# sourceMappingURL=accordion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion.js","names":["
|
|
1
|
+
{"version":3,"file":"accordion.js","names":["AccordionPrimitive"],"sources":["../../../src/components/ui/accordion.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { ChevronDownIcon, ChevronUpIcon } from 'lucide-react';\nimport { Accordion as AccordionPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nfunction Accordion({ className, ...props }: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn('flex w-full flex-col', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn('not-last:border-b', className)}\n {...props}\n />\n );\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n 'group/accordion-trigger relative flex flex-1 items-start justify-between rounded-sm border border-transparent py-2.5 text-left text-sm font-medium focus-ring transition-all outline-none hover:underline focus-visible:after:border-ring disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground',\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\"\n />\n <ChevronUpIcon\n data-slot=\"accordion-trigger-icon\"\n className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n 'h-(--radix-accordion-content-height) pt-0 pb-2.5 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4',\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Content>\n );\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n"],"mappings":";;;;;;;AAOA,SAAS,UAAU,EAAE,WAAW,GAAG,SAA+D;CAChG,OACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EACV,WAAW,GAAG,wBAAwB,SAAS;EAC/C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;CACvD,OACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EACV,WAAW,GAAG,qBAAqB,SAAS;EAC5C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;CAC1D,OACE,oBAACA,YAAmB,QAApB;EAA2B,WAAU;EACnC,UAAA,qBAACA,YAAmB,SAApB;GACE,aAAU;GACV,WAAW,GACT,idACA,SACF;GACA,GAAI;GANN,UAAA;IAQG;IACD,oBAAC,iBAAD;KACE,aAAU;KACV,WAAU;IACX,CAAA;IACD,oBAAC,eAAD;KACE,aAAU;KACV,WAAU;IACX,CAAA;GACyB;;CACH,CAAA;AAE/B;AAEA,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACuD;CAC1D,OACE,oBAACA,YAAmB,SAApB;EACE,aAAU;EACV,WAAU;EACV,GAAI;EAEJ,UAAA,oBAAC,OAAD;GACE,WAAW,GACT,qJACA,SACF;GAEC;EACE,CAAA;CACqB,CAAA;AAEhC"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const require_rolldown_runtime = require("../../chunks/rolldown-runtime-CmQyd0Gu.cjs");
|
|
4
|
+
const require_components_ui_button = require("./button.cjs");
|
|
5
|
+
let cn = require("cn");
|
|
6
|
+
let radix_ui = require("radix-ui");
|
|
7
|
+
let react = require("react");
|
|
8
|
+
react = require_rolldown_runtime.__toESM(react, 1);
|
|
9
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
// src/components/ui/alert-dialog.tsx
|
|
11
|
+
function AlertDialog({ ...props }) {
|
|
12
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Root, {
|
|
13
|
+
"data-slot": "alert-dialog",
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function AlertDialogTrigger({ ...props }) {
|
|
18
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Trigger, {
|
|
19
|
+
"data-slot": "alert-dialog-trigger",
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function AlertDialogPortal({ ...props }) {
|
|
24
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Portal, {
|
|
25
|
+
"data-slot": "alert-dialog-portal",
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function AlertDialogOverlay({ className, ...props }) {
|
|
30
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Overlay, {
|
|
31
|
+
"data-slot": "alert-dialog-overlay",
|
|
32
|
+
className: (0, cn.cn)("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function AlertDialogContent({ className, size = "default", ...props }) {
|
|
37
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(AlertDialogPortal, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(AlertDialogOverlay, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Content, {
|
|
38
|
+
"data-slot": "alert-dialog-content",
|
|
39
|
+
"data-size": size,
|
|
40
|
+
className: (0, cn.cn)("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-sm border border-border bg-popover p-4 text-popover-foreground duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
41
|
+
...props
|
|
42
|
+
})] });
|
|
43
|
+
}
|
|
44
|
+
function AlertDialogHeader({ className, ...props }) {
|
|
45
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
46
|
+
"data-slot": "alert-dialog-header",
|
|
47
|
+
className: (0, cn.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className),
|
|
48
|
+
...props
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function AlertDialogFooter({ className, ...props }) {
|
|
52
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
53
|
+
"data-slot": "alert-dialog-footer",
|
|
54
|
+
className: (0, cn.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-sm border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className),
|
|
55
|
+
...props
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function AlertDialogMedia({ className, ...props }) {
|
|
59
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
60
|
+
"data-slot": "alert-dialog-media",
|
|
61
|
+
className: (0, cn.cn)("mb-2 inline-flex size-10 items-center justify-center rounded-sm bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", className),
|
|
62
|
+
...props
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function AlertDialogTitle({ className, ...props }) {
|
|
66
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Title, {
|
|
67
|
+
"data-slot": "alert-dialog-title",
|
|
68
|
+
className: (0, cn.cn)("text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className),
|
|
69
|
+
...props
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function AlertDialogDescription({ className, ...props }) {
|
|
73
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Description, {
|
|
74
|
+
"data-slot": "alert-dialog-description",
|
|
75
|
+
className: (0, cn.cn)("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
|
|
76
|
+
...props
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
function AlertDialogAction({ className, variant = "default", size = "default", ...props }) {
|
|
80
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_button.Button, {
|
|
81
|
+
variant,
|
|
82
|
+
size,
|
|
83
|
+
asChild: true,
|
|
84
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Action, {
|
|
85
|
+
"data-slot": "alert-dialog-action",
|
|
86
|
+
className: (0, cn.cn)(className),
|
|
87
|
+
...props
|
|
88
|
+
})
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function AlertDialogCancel({ className, variant = "outline", size = "default", ...props }) {
|
|
92
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_ui_button.Button, {
|
|
93
|
+
variant,
|
|
94
|
+
size,
|
|
95
|
+
asChild: true,
|
|
96
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(radix_ui.AlertDialog.Cancel, {
|
|
97
|
+
"data-slot": "alert-dialog-cancel",
|
|
98
|
+
className: (0, cn.cn)(className),
|
|
99
|
+
...props
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
exports.AlertDialog = AlertDialog;
|
|
104
|
+
exports.AlertDialogAction = AlertDialogAction;
|
|
105
|
+
exports.AlertDialogCancel = AlertDialogCancel;
|
|
106
|
+
exports.AlertDialogContent = AlertDialogContent;
|
|
107
|
+
exports.AlertDialogDescription = AlertDialogDescription;
|
|
108
|
+
exports.AlertDialogFooter = AlertDialogFooter;
|
|
109
|
+
exports.AlertDialogHeader = AlertDialogHeader;
|
|
110
|
+
exports.AlertDialogMedia = AlertDialogMedia;
|
|
111
|
+
exports.AlertDialogOverlay = AlertDialogOverlay;
|
|
112
|
+
exports.AlertDialogPortal = AlertDialogPortal;
|
|
113
|
+
exports.AlertDialogTitle = AlertDialogTitle;
|
|
114
|
+
exports.AlertDialogTrigger = AlertDialogTrigger;
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=alert-dialog.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.cjs","names":["AlertDialogPrimitive","Button"],"sources":["../../../src/components/ui/alert-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from 'cn';\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { Button } from './button';\n\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\nfunction AlertDialogTrigger({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\nfunction AlertDialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n 'fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogContent({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {\n size?: 'default' | 'sm';\n}) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n data-size={size}\n className={cn(\n 'group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-sm border border-border bg-popover p-4 text-popover-foreground duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95',\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-header\"\n className={cn(\n 'grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n '-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-sm border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-10 items-center justify-center rounded-sm bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return (\n <AlertDialogPrimitive.Title\n data-slot=\"alert-dialog-title\"\n className={cn(\n 'text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(\n 'text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction AlertDialogAction({\n className,\n variant = 'default',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Action> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Action\n data-slot=\"alert-dialog-action\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nfunction AlertDialogCancel({\n className,\n variant = 'outline',\n size = 'default',\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> &\n Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>) {\n return (\n <Button variant={variant} size={size} asChild>\n <AlertDialogPrimitive.Cancel\n data-slot=\"alert-dialog-cancel\"\n className={cn(className)}\n {...props}\n />\n </Button>\n );\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogMedia,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n"],"mappings":";;;;;;;;;;AAQA,SAAS,YAAY,EAAE,GAAG,SAAiE;CACzF,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,MAAtB;EAA2B,aAAU;EAAe,GAAI;CAAQ,CAAA;AACzE;AAEA,SAAS,mBAAmB,EAC1B,GAAG,SACyD;CAC5D,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,SAAtB;EAA8B,aAAU;EAAuB,GAAI;CAAQ,CAAA;AACpF;AAEA,SAAS,kBAAkB,EAAE,GAAG,SAAmE;CACjG,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,QAAtB;EAA6B,aAAU;EAAsB,GAAI;CAAQ,CAAA;AAClF;AAEA,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;CAC5D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,SAAtB;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,iLACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,mBAAmB,EAC1B,WACA,OAAO,WACP,GAAG,SAGF;CACD,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,mBAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,oBAAD,CAAqB,CAAA,GACrB,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,SAAtB;EACE,aAAU;EACV,aAAW;EACX,YAAA,GAAW,GAAA,GAAA,CACT,yaACA,SACF;EACA,GAAI;CACL,CAAA,CACgB,EAAA,CAAA;AAEvB;AAEA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAsC;CAC/E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,sZACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAsC;CAC/E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,iNACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAsC;CAC9E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,8KACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;CAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,OAAtB;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,qJACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;CAChE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,SAAAA,YAAqB,aAAtB;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CACT,kIACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,UAAU,WACV,OAAO,WACP,GAAG,SAE4D;CAC/D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;EAAiB;EAAe;EAAM,SAAA;EACpC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACD,SAAAA,YAAqB,QAAtB;GACE,aAAU;GACV,YAAA,GAAW,GAAA,GAAA,CAAG,SAAS;GACvB,GAAI;EACL,CAAA;CACK,CAAA;AAEZ;AAEA,SAAS,kBAAkB,EACzB,WACA,UAAU,WACV,OAAO,WACP,GAAG,SAE4D;CAC/D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,6BAAAA,QAAD;EAAiB;EAAe;EAAM,SAAA;EACpC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACD,SAAAA,YAAqB,QAAtB;GACE,aAAU;GACV,YAAA,GAAW,GAAA,GAAA,CAAG,SAAS;GACvB,GAAI;EACL,CAAA;CACK,CAAA;AAEZ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AlertDialog as AlertDialogPrimitive } from 'radix-ui';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Button } from './button.cjs';
|
|
4
|
+
declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>): React.JSX.Element;
|
|
5
|
+
declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): React.JSX.Element;
|
|
6
|
+
declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): React.JSX.Element;
|
|
7
|
+
declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): React.JSX.Element;
|
|
8
|
+
declare function AlertDialogContent({ className, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {
|
|
9
|
+
size?: 'default' | 'sm';
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
12
|
+
declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
13
|
+
declare function AlertDialogMedia({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
|
|
14
|
+
declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): React.JSX.Element;
|
|
15
|
+
declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): React.JSX.Element;
|
|
16
|
+
declare function AlertDialogAction({ className, variant, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action> & Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>): React.JSX.Element;
|
|
17
|
+
declare function AlertDialogCancel({ className, variant, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel> & Pick<React.ComponentProps<typeof Button>, 'variant' | 'size'>): React.JSX.Element;
|
|
18
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/alert-dialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"alert-dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/alert-dialog.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,IAAI,CAAC,qBAExF;AAED,iBAAS,kBAAkB,CAAC,EAC1B,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,OAAO,CAAC,qBAE3D;AAED,iBAAS,iBAAiB,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,qBAEhG;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,OAAO,CAAC,qBAW3D;AAED,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,OAAO,CAAC,GAAG;IAC7D,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;CACzB,qBAeA;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW9E;AAED,iBAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW9E;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAW7E;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,KAAK,CAAC,qBAWzD;AAED,iBAAS,sBAAsB,CAAC,EAC9B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,WAAW,CAAC,qBAW/D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,GACzD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,qBAU9D;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,GACzD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,qBAU9D;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,GACnB,CAAC"}
|
|
@@ -1,36 +1,37 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { Button } from "./button.js";
|
|
2
3
|
import { cn } from "cn";
|
|
3
|
-
import { AlertDialog } from "radix-ui";
|
|
4
|
+
import { AlertDialog as AlertDialog$1 } from "radix-ui";
|
|
4
5
|
import "react";
|
|
5
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
7
|
// src/components/ui/alert-dialog.tsx
|
|
7
|
-
function AlertDialog
|
|
8
|
-
return /* @__PURE__ */ jsx(AlertDialog.Root, {
|
|
8
|
+
function AlertDialog({ ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Root, {
|
|
9
10
|
"data-slot": "alert-dialog",
|
|
10
11
|
...props
|
|
11
12
|
});
|
|
12
13
|
}
|
|
13
14
|
function AlertDialogTrigger({ ...props }) {
|
|
14
|
-
return /* @__PURE__ */ jsx(AlertDialog.Trigger, {
|
|
15
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, {
|
|
15
16
|
"data-slot": "alert-dialog-trigger",
|
|
16
17
|
...props
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
20
|
function AlertDialogPortal({ ...props }) {
|
|
20
|
-
return /* @__PURE__ */ jsx(AlertDialog.Portal, {
|
|
21
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Portal, {
|
|
21
22
|
"data-slot": "alert-dialog-portal",
|
|
22
23
|
...props
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
26
|
function AlertDialogOverlay({ className, ...props }) {
|
|
26
|
-
return /* @__PURE__ */ jsx(AlertDialog.Overlay, {
|
|
27
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Overlay, {
|
|
27
28
|
"data-slot": "alert-dialog-overlay",
|
|
28
29
|
className: cn("fixed inset-0 z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0", className),
|
|
29
30
|
...props
|
|
30
31
|
});
|
|
31
32
|
}
|
|
32
33
|
function AlertDialogContent({ className, size = "default", ...props }) {
|
|
33
|
-
return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogOverlay, {}), /* @__PURE__ */ jsx(AlertDialog.Content, {
|
|
34
|
+
return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [/* @__PURE__ */ jsx(AlertDialogOverlay, {}), /* @__PURE__ */ jsx(AlertDialog$1.Content, {
|
|
34
35
|
"data-slot": "alert-dialog-content",
|
|
35
36
|
"data-size": size,
|
|
36
37
|
className: cn("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-sm border border-border bg-popover p-4 text-popover-foreground duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
@@ -59,14 +60,14 @@ function AlertDialogMedia({ className, ...props }) {
|
|
|
59
60
|
});
|
|
60
61
|
}
|
|
61
62
|
function AlertDialogTitle({ className, ...props }) {
|
|
62
|
-
return /* @__PURE__ */ jsx(AlertDialog.Title, {
|
|
63
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Title, {
|
|
63
64
|
"data-slot": "alert-dialog-title",
|
|
64
65
|
className: cn("text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className),
|
|
65
66
|
...props
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
69
|
function AlertDialogDescription({ className, ...props }) {
|
|
69
|
-
return /* @__PURE__ */ jsx(AlertDialog.Description, {
|
|
70
|
+
return /* @__PURE__ */ jsx(AlertDialog$1.Description, {
|
|
70
71
|
"data-slot": "alert-dialog-description",
|
|
71
72
|
className: cn("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground", className),
|
|
72
73
|
...props
|
|
@@ -77,7 +78,7 @@ function AlertDialogAction({ className, variant = "default", size = "default", .
|
|
|
77
78
|
variant,
|
|
78
79
|
size,
|
|
79
80
|
asChild: true,
|
|
80
|
-
children: /* @__PURE__ */ jsx(AlertDialog.Action, {
|
|
81
|
+
children: /* @__PURE__ */ jsx(AlertDialog$1.Action, {
|
|
81
82
|
"data-slot": "alert-dialog-action",
|
|
82
83
|
className: cn(className),
|
|
83
84
|
...props
|
|
@@ -89,13 +90,13 @@ function AlertDialogCancel({ className, variant = "outline", size = "default", .
|
|
|
89
90
|
variant,
|
|
90
91
|
size,
|
|
91
92
|
asChild: true,
|
|
92
|
-
children: /* @__PURE__ */ jsx(AlertDialog.Cancel, {
|
|
93
|
+
children: /* @__PURE__ */ jsx(AlertDialog$1.Cancel, {
|
|
93
94
|
"data-slot": "alert-dialog-cancel",
|
|
94
95
|
className: cn(className),
|
|
95
96
|
...props
|
|
96
97
|
})
|
|
97
98
|
});
|
|
98
99
|
}
|
|
99
|
-
export { AlertDialog
|
|
100
|
+
export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
|
|
100
101
|
|
|
101
102
|
//# sourceMappingURL=alert-dialog.js.map
|