@fluencypassdevs/cycle 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/README.md +13 -4
  2. package/bin/init.mjs +95 -0
  3. package/cli/CLAUDE-section.md +100 -0
  4. package/dist/chunk-2EKU7RP4.js +18 -0
  5. package/dist/chunk-2EKU7RP4.js.map +1 -0
  6. package/dist/chunk-5AZSRHJE.js +180 -0
  7. package/dist/chunk-5AZSRHJE.js.map +1 -0
  8. package/dist/chunk-EF6FQT4Y.js +78 -0
  9. package/dist/chunk-EF6FQT4Y.js.map +1 -0
  10. package/dist/chunk-F2Q3E2ZM.js +102 -0
  11. package/dist/chunk-F2Q3E2ZM.js.map +1 -0
  12. package/dist/chunk-IGMII4BK.js +58 -0
  13. package/dist/chunk-IGMII4BK.js.map +1 -0
  14. package/dist/chunk-LHSUEXOW.js +70 -0
  15. package/dist/chunk-LHSUEXOW.js.map +1 -0
  16. package/dist/{chunk-PM6ZUCMQ.js → chunk-MTKKVYNS.js} +3 -3
  17. package/dist/chunk-MTKKVYNS.js.map +1 -0
  18. package/dist/{chunk-QTL6W4I2.js → chunk-NYJMA2T7.js} +3 -3
  19. package/dist/{chunk-QTL6W4I2.js.map → chunk-NYJMA2T7.js.map} +1 -1
  20. package/dist/chunk-POQUVBVT.js +110 -0
  21. package/dist/chunk-POQUVBVT.js.map +1 -0
  22. package/dist/chunk-PY2BIZNB.js +52 -0
  23. package/dist/chunk-PY2BIZNB.js.map +1 -0
  24. package/dist/chunk-RI3ULQHH.js +91 -0
  25. package/dist/chunk-RI3ULQHH.js.map +1 -0
  26. package/dist/chunk-SZUWVHP4.js +187 -0
  27. package/dist/chunk-SZUWVHP4.js.map +1 -0
  28. package/dist/chunk-TZ7BEYQ7.js +147 -0
  29. package/dist/chunk-TZ7BEYQ7.js.map +1 -0
  30. package/dist/{chunk-VECLN5AT.js → chunk-WRJZHQNY.js} +4 -4
  31. package/dist/{chunk-VECLN5AT.js.map → chunk-WRJZHQNY.js.map} +1 -1
  32. package/dist/index.d.ts +13 -0
  33. package/dist/index.js +15 -4
  34. package/dist/styles/tokens.css +3 -2
  35. package/dist/ui/alert-dialog.d.ts +23 -0
  36. package/dist/ui/alert-dialog.js +6 -0
  37. package/dist/ui/alert-dialog.js.map +1 -0
  38. package/dist/ui/alert.d.ts +17 -0
  39. package/dist/ui/alert.js +7 -0
  40. package/dist/ui/alert.js.map +1 -0
  41. package/dist/ui/audio-player.js +1 -1
  42. package/dist/ui/badge.d.ts +2 -2
  43. package/dist/ui/button.d.ts +2 -2
  44. package/dist/ui/checkbox.d.ts +1 -1
  45. package/dist/ui/dialog.d.ts +20 -0
  46. package/dist/ui/dialog.js +6 -0
  47. package/dist/ui/dialog.js.map +1 -0
  48. package/dist/ui/empty.d.ts +15 -0
  49. package/dist/ui/empty.js +5 -0
  50. package/dist/ui/empty.js.map +1 -0
  51. package/dist/ui/file-card.d.ts +1 -1
  52. package/dist/ui/like-dislike.d.ts +1 -1
  53. package/dist/ui/popover.d.ts +13 -0
  54. package/dist/ui/popover.js +5 -0
  55. package/dist/ui/popover.js.map +1 -0
  56. package/dist/ui/progress-dot.d.ts +22 -0
  57. package/dist/ui/progress-dot.js +5 -0
  58. package/dist/ui/progress-dot.js.map +1 -0
  59. package/dist/ui/progress-stage.d.ts +1 -1
  60. package/dist/ui/progress-stage.js +1 -1
  61. package/dist/ui/progress.d.ts +1 -1
  62. package/dist/ui/progress.js +1 -1
  63. package/dist/ui/radio-group.d.ts +1 -1
  64. package/dist/ui/resizable.d.ts +10 -0
  65. package/dist/ui/resizable.js +5 -0
  66. package/dist/ui/resizable.js.map +1 -0
  67. package/dist/ui/select.d.ts +18 -0
  68. package/dist/ui/select.js +5 -0
  69. package/dist/ui/select.js.map +1 -0
  70. package/dist/ui/skeleton.d.ts +5 -0
  71. package/dist/ui/skeleton.js +5 -0
  72. package/dist/ui/skeleton.js.map +1 -0
  73. package/dist/ui/slider.d.ts +1 -1
  74. package/dist/ui/sonner.d.ts +29 -0
  75. package/dist/ui/sonner.js +7 -0
  76. package/dist/ui/sonner.js.map +1 -0
  77. package/dist/ui/switch.d.ts +1 -1
  78. package/dist/ui/toggle.d.ts +1 -1
  79. package/dist/ui/tooltip.d.ts +10 -0
  80. package/dist/ui/tooltip.js +5 -0
  81. package/dist/ui/tooltip.js.map +1 -0
  82. package/package.json +12 -1
  83. package/dist/chunk-PM6ZUCMQ.js.map +0 -1
package/README.md CHANGED
@@ -2,23 +2,32 @@
2
2
 
3
3
  Design System da [Fluencypass](https://fluencypass.com), construido sobre shadcn/ui + Next.js 16 + Tailwind CSS 4.
4
4
 
5
- ## Instalacao via npm
5
+ ## Instalacao
6
6
 
7
7
  ```bash
8
8
  npm install @fluencypassdevs/cycle
9
9
  ```
10
10
 
11
+ No `globals.css`:
12
+
13
+ ```css
14
+ @import "tailwindcss";
15
+ @source "../../node_modules/@fluencypassdevs/cycle/dist";
16
+ @import "@fluencypassdevs/cycle/styles.css";
17
+ ```
18
+
11
19
  ```tsx
12
20
  import { Button, Badge, CycleIcon } from "@fluencypassdevs/cycle"
13
- import "@fluencypassdevs/cycle/styles.css"
14
21
  ```
15
22
 
16
- ## Instalacao via shadcn Registry
23
+ ## Configurar IA (Claude Code, Cursor, Copilot)
17
24
 
18
25
  ```bash
19
- npx shadcn@latest add button -r https://cycle-design.fluencypass.com/r
26
+ npx cycle init
20
27
  ```
21
28
 
29
+ Adiciona as regras do Cycle Design System ao seu CLAUDE.md, .cursorrules e outros spec-kits automaticamente. Preserva regras existentes.
30
+
22
31
  ## Documentacao
23
32
 
24
33
  - **Setup Guide**: https://cycle-design.fluencypass.com/docs
package/bin/init.mjs ADDED
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from "fs"
4
+ import path from "path"
5
+
6
+ const cwd = process.cwd()
7
+
8
+ // --- Cycle Design System section content ---
9
+ const CYCLE_SECTION_MARKER = "<!-- CYCLE-DESIGN-SYSTEM-START -->"
10
+ const CYCLE_SECTION_END = "<!-- CYCLE-DESIGN-SYSTEM-END -->"
11
+
12
+ const cycleContent = fs.readFileSync(
13
+ new URL("../cli/CLAUDE-section.md", import.meta.url),
14
+ "utf-8"
15
+ )
16
+
17
+ const cycleSection = `${CYCLE_SECTION_MARKER}\n${cycleContent}\n${CYCLE_SECTION_END}`
18
+
19
+ // --- Helper functions ---
20
+
21
+ function hasExistingCycleSection(content) {
22
+ return content.includes(CYCLE_SECTION_MARKER)
23
+ }
24
+
25
+ function replaceCycleSection(content) {
26
+ const startIdx = content.indexOf(CYCLE_SECTION_MARKER)
27
+ const endIdx = content.indexOf(CYCLE_SECTION_END)
28
+ if (startIdx === -1 || endIdx === -1) return content
29
+ const endOfMarker = endIdx + CYCLE_SECTION_END.length
30
+ return content.slice(0, startIdx) + cycleSection + content.slice(endOfMarker)
31
+ }
32
+
33
+ function mergeIntoFile(filePath, fileName) {
34
+ if (!fs.existsSync(filePath)) {
35
+ // File doesn't exist — create with Cycle content only
36
+ fs.writeFileSync(filePath, cycleSection + "\n")
37
+ console.log(` ✓ ${fileName} criado com regras do Cycle Design System`)
38
+ return
39
+ }
40
+
41
+ const existing = fs.readFileSync(filePath, "utf-8")
42
+
43
+ if (hasExistingCycleSection(existing)) {
44
+ // Update existing Cycle section
45
+ const updated = replaceCycleSection(existing)
46
+ fs.writeFileSync(filePath, updated)
47
+ console.log(` ✓ ${fileName} atualizado (secao Cycle substituida)`)
48
+ return
49
+ }
50
+
51
+ // Append Cycle section to existing file
52
+ const separator = existing.endsWith("\n") ? "\n" : "\n\n"
53
+ fs.writeFileSync(filePath, existing + separator + cycleSection + "\n")
54
+ console.log(` ✓ ${fileName} atualizado (secao Cycle adicionada ao final)`)
55
+ }
56
+
57
+ // --- Main ---
58
+
59
+ console.log("")
60
+ console.log(" Cycle Design System — Init")
61
+ console.log(" ─────────────────────────")
62
+ console.log("")
63
+
64
+ // 1. CLAUDE.md (Claude Code)
65
+ mergeIntoFile(path.join(cwd, "CLAUDE.md"), "CLAUDE.md")
66
+
67
+ // 2. .cursorrules (Cursor)
68
+ const cursorrules = path.join(cwd, ".cursorrules")
69
+ if (fs.existsSync(cursorrules)) {
70
+ mergeIntoFile(cursorrules, ".cursorrules")
71
+ }
72
+
73
+ // 3. .cursorprompt (Cursor newer)
74
+ const cursorprompt = path.join(cwd, ".cursorprompt")
75
+ if (fs.existsSync(cursorprompt)) {
76
+ mergeIntoFile(cursorprompt, ".cursorprompt")
77
+ }
78
+
79
+ // 4. .github/copilot-instructions.md (GitHub Copilot)
80
+ const copilotInstructions = path.join(cwd, ".github", "copilot-instructions.md")
81
+ if (fs.existsSync(copilotInstructions)) {
82
+ mergeIntoFile(copilotInstructions, ".github/copilot-instructions.md")
83
+ }
84
+
85
+ // 5. AGENTS.md (Generic AI agents)
86
+ const agentsMd = path.join(cwd, "AGENTS.md")
87
+ if (fs.existsSync(agentsMd)) {
88
+ mergeIntoFile(agentsMd, "AGENTS.md")
89
+ }
90
+
91
+ console.log("")
92
+ console.log(" Pronto! As regras do Cycle Design System foram configuradas.")
93
+ console.log(" Para atualizar apos upgrade do pacote, rode novamente:")
94
+ console.log(" npx @fluencypassdevs/cycle init")
95
+ console.log("")
@@ -0,0 +1,100 @@
1
+ # Cycle Design System
2
+
3
+ Este projeto usa o **Cycle Design System** (`@fluencypassdevs/cycle`).
4
+
5
+ > **REGRA PRINCIPAL**: Todos os componentes UI vem do pacote npm `@fluencypassdevs/cycle`.
6
+ > NUNCA copiar, clonar ou recriar componentes que ja existem na biblioteca.
7
+
8
+ ## Como importar
9
+
10
+ ```tsx
11
+ // Import principal (recomendado)
12
+ import { Button, Input, Badge } from "@fluencypassdevs/cycle"
13
+
14
+ // Import granular (tree-shaking)
15
+ import { Button } from "@fluencypassdevs/cycle/ui/button"
16
+ import { CycleIcon } from "@fluencypassdevs/cycle/icons"
17
+ import { cn } from "@fluencypassdevs/cycle/lib/utils"
18
+ ```
19
+
20
+ ## CSS (globals.css)
21
+
22
+ ```css
23
+ @import "tailwindcss";
24
+ @source "../../node_modules/@fluencypassdevs/cycle/dist";
25
+ @import "@fluencypassdevs/cycle/styles.css";
26
+ ```
27
+
28
+ > **IMPORTANTE**: O `@source` e obrigatorio. Sem ele, o Tailwind v4 nao escaneia `node_modules` e remove (purge) todas as classes usadas internamente pelos componentes do Cycle.
29
+
30
+ ## Regras para IA (IMPORTANTE)
31
+
32
+ ### Regras de Componentes
33
+
34
+ 1. **SEMPRE importar de `@fluencypassdevs/cycle`** — NUNCA criar componentes em `components/ui/` se ja existem na biblioteca
35
+ 2. **NUNCA copiar codigo-fonte** de componentes do Design System para dentro do projeto
36
+ 3. **Se um componente nao existe na biblioteca, sinalize** — nao invente um substituto
37
+ 4. **Composites do projeto** ficam em `src/components/composites/` e usam primitives da biblioteca
38
+ 5. **Nunca criar um componente custom se o Cycle ja resolve** — custom so existe se nao ha equivalente
39
+
40
+ ### Regras de Estilo
41
+
42
+ 6. **Sempre usar `cn()` de `@fluencypassdevs/cycle/lib/utils`** para merge de classes CSS
43
+ 7. **NUNCA usar cores hardcoded** (ex: `bg-blue-500`, `text-[#333]`) — usar semantic tokens: `bg-primary`, `text-muted-foreground`, `border-border`, etc.
44
+ 8. **NUNCA usar valores de spacing hardcoded fora da escala Tailwind** — usar a escala padrao: `p-4`, `gap-6`, `mt-8`, etc.
45
+ 9. **Dark mode via classe `.dark`** — tokens light/dark ja estao definidos nos tokens do Cycle
46
+ 10. **Usar variaveis de radius** — `rounded-sm`, `rounded-md`, `rounded-lg`, `rounded-xl`
47
+
48
+ ### Regras de Codigo
49
+
50
+ 11. **Usar TypeScript strict** — tipar todas as props, nunca usar `any`
51
+ 12. **Icones via CycleIcon** — `import { CycleIcon } from "@fluencypassdevs/cycle"` + `<CycleIcon icon={Home} size="sm" />`
52
+ 13. **Imports com alias `@/`** — para codigo do projeto. Componentes do DS sempre de `@fluencypassdevs/cycle`
53
+
54
+ ## Componentes Disponiveis
55
+
56
+ Todos importados de `@fluencypassdevs/cycle`:
57
+
58
+ | Componente | Descricao |
59
+ |------------|-----------|
60
+ | Button | 6 variants, 8 sizes, suporte a temas |
61
+ | Input | 2 variantes (outline, filled), 3 sizes |
62
+ | Textarea | 2 variantes (outline, filled), 3 sizes |
63
+ | Label | Rotulo acessivel para campos |
64
+ | Badge | 10 variants, 3 sizes |
65
+ | Accordion | Secoes colapsaveis |
66
+ | Tabs | 2 variants (default, line) |
67
+ | Sheet | Overlay lateral/bottom |
68
+ | ScrollArea, ScrollBar | Scroll customizado |
69
+ | Checkbox | 3 sizes, 2 variants |
70
+ | RadioGroup, RadioGroupItem | 3 sizes |
71
+ | Switch | 3 sizes |
72
+ | Slider | 3 sizes, suporte a range |
73
+ | Toggle | 2 variants, 8 sizes |
74
+ | Progress | 4 sizes, 4 variants |
75
+ | ProgressDot | Progresso compacto com dots (2-10 stages) |
76
+ | ProgressStage | Progresso segmentado (2-10 stages) |
77
+ | FileCard | Download card, 3 sizes |
78
+ | Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup | Sistema de avatar |
79
+ | ChatBubble | Bolha de mensagem |
80
+ | ChatPanel | Painel de chat completo |
81
+ | LikeDislike | Botoes like/dislike |
82
+ | LiveWaiting | Tela de espera para lives |
83
+ | AudioPlayer | Player de audio (Vidstack) |
84
+ | VideoPlayer | Player de video (Vidstack) |
85
+ | Toaster, cycleToast | Notificacoes toast |
86
+ | Alert, AlertAction, AlertClose | Alertas informativos |
87
+ | AlertDialog | Dialog de confirmacao |
88
+ | Select | Dropdown de selecao |
89
+ | Popover | Conteudo flutuante |
90
+ | Tooltip, TooltipProvider | Dica de texto |
91
+ | ResizablePanel, ResizableHandle | Paineis redimensionaveis |
92
+ | Empty | Estado vazio |
93
+ | Skeleton | Placeholder de carregamento |
94
+ | Dialog | Modal dialog |
95
+ | CycleIcon | Wrapper para icones Lucide |
96
+
97
+ ## Documentacao
98
+
99
+ - **Componentes**: https://cycle-design.fluencypass.com/docs/components
100
+ - **Tokens**: https://cycle-design.fluencypass.com/docs/tokens
@@ -0,0 +1,18 @@
1
+ import { cn } from './chunk-TYCPXAXF.js';
2
+ import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ function Skeleton(_a) {
6
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
7
+ return /* @__PURE__ */ jsx(
8
+ "div",
9
+ __spreadValues({
10
+ "data-slot": "skeleton",
11
+ className: cn("animate-pulse rounded-md bg-accent", className)
12
+ }, props)
13
+ );
14
+ }
15
+
16
+ export { Skeleton };
17
+ //# sourceMappingURL=chunk-2EKU7RP4.js.map
18
+ //# sourceMappingURL=chunk-2EKU7RP4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/skeleton.tsx"],"names":[],"mappings":";;;;AAEA,SAAS,SAAS,EAAA,EAAsD;AAAtD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAFpB,GAEkB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AAClB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,oCAAA,EAAsC,SAAS;AAAA,KAAA,EACzD,KAAA;AAAA,GACN;AAEJ","file":"chunk-2EKU7RP4.js","sourcesContent":["import { cn } from \"@/lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-md bg-accent\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"]}
@@ -0,0 +1,180 @@
1
+ import { Button } from './chunk-7UMEJDC3.js';
2
+ import { cn } from './chunk-TYCPXAXF.js';
3
+ import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
4
+ import { AlertDialog as AlertDialog$1 } from 'radix-ui';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function AlertDialog(_a) {
8
+ var props = __objRest(_a, []);
9
+ return /* @__PURE__ */ jsx(AlertDialog$1.Root, __spreadValues({ "data-slot": "alert-dialog" }, props));
10
+ }
11
+ function AlertDialogTrigger(_a) {
12
+ var props = __objRest(_a, []);
13
+ return /* @__PURE__ */ jsx(AlertDialog$1.Trigger, __spreadValues({ "data-slot": "alert-dialog-trigger" }, props));
14
+ }
15
+ function AlertDialogPortal(_a) {
16
+ var props = __objRest(_a, []);
17
+ return /* @__PURE__ */ jsx(AlertDialog$1.Portal, __spreadValues({ "data-slot": "alert-dialog-portal" }, props));
18
+ }
19
+ function AlertDialogOverlay(_a) {
20
+ var _b = _a, {
21
+ className
22
+ } = _b, props = __objRest(_b, [
23
+ "className"
24
+ ]);
25
+ return /* @__PURE__ */ jsx(
26
+ AlertDialog$1.Overlay,
27
+ __spreadValues({
28
+ "data-slot": "alert-dialog-overlay",
29
+ className: cn(
30
+ "fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
31
+ className
32
+ )
33
+ }, props)
34
+ );
35
+ }
36
+ function AlertDialogContent(_a) {
37
+ var _b = _a, {
38
+ className,
39
+ size = "default"
40
+ } = _b, props = __objRest(_b, [
41
+ "className",
42
+ "size"
43
+ ]);
44
+ return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
45
+ /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
46
+ /* @__PURE__ */ jsx(
47
+ AlertDialog$1.Content,
48
+ __spreadValues({
49
+ "data-slot": "alert-dialog-content",
50
+ "data-size": size,
51
+ className: cn(
52
+ "group/alert-dialog-content fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg",
53
+ className
54
+ )
55
+ }, props)
56
+ )
57
+ ] });
58
+ }
59
+ function AlertDialogHeader(_a) {
60
+ var _b = _a, {
61
+ className
62
+ } = _b, props = __objRest(_b, [
63
+ "className"
64
+ ]);
65
+ return /* @__PURE__ */ jsx(
66
+ "div",
67
+ __spreadValues({
68
+ "data-slot": "alert-dialog-header",
69
+ className: cn(
70
+ "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-6 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]",
71
+ className
72
+ )
73
+ }, props)
74
+ );
75
+ }
76
+ function AlertDialogFooter(_a) {
77
+ var _b = _a, {
78
+ className
79
+ } = _b, props = __objRest(_b, [
80
+ "className"
81
+ ]);
82
+ return /* @__PURE__ */ jsx(
83
+ "div",
84
+ __spreadValues({
85
+ "data-slot": "alert-dialog-footer",
86
+ className: cn(
87
+ "flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",
88
+ className
89
+ )
90
+ }, props)
91
+ );
92
+ }
93
+ function AlertDialogTitle(_a) {
94
+ var _b = _a, {
95
+ className
96
+ } = _b, props = __objRest(_b, [
97
+ "className"
98
+ ]);
99
+ return /* @__PURE__ */ jsx(
100
+ AlertDialog$1.Title,
101
+ __spreadValues({
102
+ "data-slot": "alert-dialog-title",
103
+ className: cn(
104
+ "text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",
105
+ className
106
+ )
107
+ }, props)
108
+ );
109
+ }
110
+ function AlertDialogDescription(_a) {
111
+ var _b = _a, {
112
+ className
113
+ } = _b, props = __objRest(_b, [
114
+ "className"
115
+ ]);
116
+ return /* @__PURE__ */ jsx(
117
+ AlertDialog$1.Description,
118
+ __spreadValues({
119
+ "data-slot": "alert-dialog-description",
120
+ className: cn("text-sm text-muted-foreground", className)
121
+ }, props)
122
+ );
123
+ }
124
+ function AlertDialogMedia(_a) {
125
+ var _b = _a, {
126
+ className
127
+ } = _b, props = __objRest(_b, [
128
+ "className"
129
+ ]);
130
+ return /* @__PURE__ */ jsx(
131
+ "div",
132
+ __spreadValues({
133
+ "data-slot": "alert-dialog-media",
134
+ className: cn(
135
+ "mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8",
136
+ className
137
+ )
138
+ }, props)
139
+ );
140
+ }
141
+ function AlertDialogAction(_a) {
142
+ var _b = _a, {
143
+ className,
144
+ variant = "default",
145
+ size = "default"
146
+ } = _b, props = __objRest(_b, [
147
+ "className",
148
+ "variant",
149
+ "size"
150
+ ]);
151
+ return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
152
+ AlertDialog$1.Action,
153
+ __spreadValues({
154
+ "data-slot": "alert-dialog-action",
155
+ className: cn(className)
156
+ }, props)
157
+ ) });
158
+ }
159
+ function AlertDialogCancel(_a) {
160
+ var _b = _a, {
161
+ className,
162
+ variant = "outline",
163
+ size = "default"
164
+ } = _b, props = __objRest(_b, [
165
+ "className",
166
+ "variant",
167
+ "size"
168
+ ]);
169
+ return /* @__PURE__ */ jsx(Button, { variant, size, asChild: true, children: /* @__PURE__ */ jsx(
170
+ AlertDialog$1.Cancel,
171
+ __spreadValues({
172
+ "data-slot": "alert-dialog-cancel",
173
+ className: cn(className)
174
+ }, props)
175
+ ) });
176
+ }
177
+
178
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
179
+ //# sourceMappingURL=chunk-5AZSRHJE.js.map
180
+ //# sourceMappingURL=chunk-5AZSRHJE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/alert-dialog.tsx"],"names":["AlertDialogPrimitive"],"mappings":"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","file":"chunk-5AZSRHJE.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\nfunction AlertDialog({\n ...props\n}: 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 (\n <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />\n )\n}\n\nfunction AlertDialogPortal({\n ...props\n}: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return (\n <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />\n )\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/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-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-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[size=sm]:max-w-xs data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[size=default]:sm:max-w-lg\",\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n )\n}\n\nfunction AlertDialogHeader({\n className,\n ...props\n}: 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-6 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({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 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 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-lg font-semibold 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(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction AlertDialogMedia({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-dialog-media\"\n className={cn(\n \"mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8\",\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"]}
@@ -0,0 +1,78 @@
1
+ import { cn } from './chunk-TYCPXAXF.js';
2
+ import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
3
+ import { Popover as Popover$1 } from 'radix-ui';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ function Popover(_a) {
7
+ var props = __objRest(_a, []);
8
+ return /* @__PURE__ */ jsx(Popover$1.Root, __spreadValues({ "data-slot": "popover" }, props));
9
+ }
10
+ function PopoverTrigger(_a) {
11
+ var props = __objRest(_a, []);
12
+ return /* @__PURE__ */ jsx(Popover$1.Trigger, __spreadValues({ "data-slot": "popover-trigger" }, props));
13
+ }
14
+ function PopoverContent(_a) {
15
+ var _b = _a, {
16
+ className,
17
+ align = "center",
18
+ sideOffset = 4
19
+ } = _b, props = __objRest(_b, [
20
+ "className",
21
+ "align",
22
+ "sideOffset"
23
+ ]);
24
+ return /* @__PURE__ */ jsx(Popover$1.Portal, { children: /* @__PURE__ */ jsx(
25
+ Popover$1.Content,
26
+ __spreadValues({
27
+ "data-slot": "popover-content",
28
+ align,
29
+ sideOffset,
30
+ className: cn(
31
+ "z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
32
+ className
33
+ )
34
+ }, props)
35
+ ) });
36
+ }
37
+ function PopoverAnchor(_a) {
38
+ var props = __objRest(_a, []);
39
+ return /* @__PURE__ */ jsx(Popover$1.Anchor, __spreadValues({ "data-slot": "popover-anchor" }, props));
40
+ }
41
+ function PopoverHeader(_a) {
42
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
43
+ return /* @__PURE__ */ jsx(
44
+ "div",
45
+ __spreadValues({
46
+ "data-slot": "popover-header",
47
+ className: cn("flex flex-col gap-1 text-sm", className)
48
+ }, props)
49
+ );
50
+ }
51
+ function PopoverTitle(_a) {
52
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
53
+ return /* @__PURE__ */ jsx(
54
+ "div",
55
+ __spreadValues({
56
+ "data-slot": "popover-title",
57
+ className: cn("font-medium", className)
58
+ }, props)
59
+ );
60
+ }
61
+ function PopoverDescription(_a) {
62
+ var _b = _a, {
63
+ className
64
+ } = _b, props = __objRest(_b, [
65
+ "className"
66
+ ]);
67
+ return /* @__PURE__ */ jsx(
68
+ "p",
69
+ __spreadValues({
70
+ "data-slot": "popover-description",
71
+ className: cn("text-muted-foreground", className)
72
+ }, props)
73
+ );
74
+ }
75
+
76
+ export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger };
77
+ //# sourceMappingURL=chunk-EF6FQT4Y.js.map
78
+ //# sourceMappingURL=chunk-EF6FQT4Y.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/popover.tsx"],"names":["PopoverPrimitive"],"mappings":";;;;;AAOA,SAAS,QAAQ,EAAA,EAEsC;AAFtC,EAAA,IACZ,kBADY,EAAA,EACZ,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,IAAA,EAAjB,cAAA,CAAA,EAAsB,WAAA,EAAU,aAAc,KAAA,CAAO,CAAA;AAC/D;AAEA,SAAS,eAAe,EAAA,EAEkC;AAFlC,EAAA,IACnB,kBADmB,EAAA,EACnB,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,OAAA,EAAjB,cAAA,CAAA,EAAyB,WAAA,EAAU,qBAAsB,KAAA,CAAO,CAAA;AAC1E;AAEA,SAAS,eAAe,EAAA,EAKkC;AALlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,SAAA;AAAA,IACA,KAAA,GAAQ,QAAA;AAAA,IACR,UAAA,GAAa;AAAA,GAtBf,GAmBwB,EAAA,EAInB,KAAA,GAAA,SAAA,CAJmB,EAAA,EAInB;AAAA,IAHH,WAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA,CAACA,SAAA,CAAiB,MAAA,EAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAACA,SAAA,CAAiB,OAAA;AAAA,IAAjB,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,geAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN,EACF,CAAA;AAEJ;AAEA,SAAS,cAAc,EAAA,EAEkC;AAFlC,EAAA,IAClB,kBADkB,EAAA,EAClB,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,MAAA,EAAjB,cAAA,CAAA,EAAwB,WAAA,EAAU,oBAAqB,KAAA,CAAO,CAAA;AACxE;AAEA,SAAS,cAAc,EAAA,EAAsD;AAAtD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EA/CzB,GA+CuB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACvB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS;AAAA,KAAA,EAClD,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,aAAa,EAAA,EAAqD;AAArD,EAAA,IAAA,EAAA,GAAA,EAAA,EAAE,EAAA,SAAA,EAzDxB,GAyDsB,EAAA,EAAgB,KAAA,GAAA,SAAA,CAAhB,IAAgB,CAAd,WAAA,CAAA,CAAA;AACtB,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,SAAS;AAAA,KAAA,EAClC,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,mBAAmB,EAAA,EAGE;AAHF,EAAA,IAAA,EAAA,GAAA,EAAA,EAC1B;AAAA,IAAA;AAAA,GApEF,GAmE4B,EAAA,EAEvB,KAAA,GAAA,SAAA,CAFuB,EAAA,EAEvB;AAAA,IADH;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,qBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,uBAAA,EAAyB,SAAS;AAAA,KAAA,EAC5C,KAAA;AAAA,GACN;AAEJ","file":"chunk-EF6FQT4Y.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverAnchor,\n PopoverHeader,\n PopoverTitle,\n PopoverDescription,\n}\n"]}
@@ -0,0 +1,102 @@
1
+ import { cn } from './chunk-TYCPXAXF.js';
2
+ import { __objRest, __spreadValues } from './chunk-YINJ5YZ5.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ function Empty(_a) {
7
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
8
+ return /* @__PURE__ */ jsx(
9
+ "div",
10
+ __spreadValues({
11
+ "data-slot": "empty",
12
+ className: cn(
13
+ "flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12",
14
+ className
15
+ )
16
+ }, props)
17
+ );
18
+ }
19
+ function EmptyHeader(_a) {
20
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
21
+ return /* @__PURE__ */ jsx(
22
+ "div",
23
+ __spreadValues({
24
+ "data-slot": "empty-header",
25
+ className: cn(
26
+ "flex max-w-sm flex-col items-center gap-2 text-center",
27
+ className
28
+ )
29
+ }, props)
30
+ );
31
+ }
32
+ var emptyMediaVariants = cva(
33
+ "mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",
34
+ {
35
+ variants: {
36
+ variant: {
37
+ default: "bg-transparent",
38
+ icon: "flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"
39
+ }
40
+ },
41
+ defaultVariants: {
42
+ variant: "default"
43
+ }
44
+ }
45
+ );
46
+ function EmptyMedia(_a) {
47
+ var _b = _a, {
48
+ className,
49
+ variant = "default"
50
+ } = _b, props = __objRest(_b, [
51
+ "className",
52
+ "variant"
53
+ ]);
54
+ return /* @__PURE__ */ jsx(
55
+ "div",
56
+ __spreadValues({
57
+ "data-slot": "empty-icon",
58
+ "data-variant": variant,
59
+ className: cn(emptyMediaVariants({ variant, className }))
60
+ }, props)
61
+ );
62
+ }
63
+ function EmptyTitle(_a) {
64
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
65
+ return /* @__PURE__ */ jsx(
66
+ "div",
67
+ __spreadValues({
68
+ "data-slot": "empty-title",
69
+ className: cn("text-lg font-medium tracking-tight", className)
70
+ }, props)
71
+ );
72
+ }
73
+ function EmptyDescription(_a) {
74
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
75
+ return /* @__PURE__ */ jsx(
76
+ "div",
77
+ __spreadValues({
78
+ "data-slot": "empty-description",
79
+ className: cn(
80
+ "text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",
81
+ className
82
+ )
83
+ }, props)
84
+ );
85
+ }
86
+ function EmptyContent(_a) {
87
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
88
+ return /* @__PURE__ */ jsx(
89
+ "div",
90
+ __spreadValues({
91
+ "data-slot": "empty-content",
92
+ className: cn(
93
+ "flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance",
94
+ className
95
+ )
96
+ }, props)
97
+ );
98
+ }
99
+
100
+ export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle };
101
+ //# sourceMappingURL=chunk-F2Q3E2ZM.js.map
102
+ //# sourceMappingURL=chunk-F2Q3E2ZM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/empty.tsx"],"names":[],"mappings":"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","file":"chunk-F2Q3E2ZM.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Empty({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n \"flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n \"flex max-w-sm flex-col items-center gap-2 text-center\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst emptyMediaVariants = cva(\n \"mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn(\"text-lg font-medium tracking-tight\", className)}\n {...props}\n />\n )\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n \"text-sm/relaxed text-muted-foreground [&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n \"flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n}\n"]}