forlogic-core 2.2.5 → 2.2.7

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 (69) hide show
  1. package/.note/memory/features/import/attachment-idempotency-registry.md +8 -8
  2. package/.note/memory/features/import/attachment-strategy.md +30 -30
  3. package/.note/memory/patterns/admin-i18n-policy.md +20 -20
  4. package/.note/memory/patterns/alias-url-resolution.md +69 -69
  5. package/.note/memory/patterns/doc-sync-rule.md +35 -35
  6. package/.note/memory/patterns/documentation-standard.md +17 -17
  7. package/.note/memory/patterns/dynamic-supabase-config.md +4 -4
  8. package/.note/memory/patterns/environment-detection-logic.md +35 -35
  9. package/.note/memory/patterns/i18n-architecture.md +3 -3
  10. package/README.md +120 -120
  11. package/dist/README.md +1079 -0
  12. package/dist/bin/bootstrap.js +40 -0
  13. package/dist/bin/pull-docs.js +186 -0
  14. package/dist/components/ui/color-picker.d.ts +2 -0
  15. package/dist/components/ui/combo-tree.d.ts +3 -1
  16. package/dist/components/ui/combobox.d.ts +2 -1
  17. package/dist/components/ui/select.d.ts +9 -2
  18. package/dist/docs/KNOWLEDGE.md +109 -0
  19. package/dist/index.css +1 -1
  20. package/dist/index.css.map +1 -1
  21. package/dist/index.esm.js +1 -1
  22. package/dist/index.js +1 -1
  23. package/docs/PUBLISH.md +168 -168
  24. package/docs/STORAGE_BUCKETS.md +456 -456
  25. package/docs/SUPABASE_SECRETS.md +122 -122
  26. package/docs/WORKSPACE_KNOWLEDGE.md +154 -154
  27. package/docs/design-system/buttons-actions.md +130 -130
  28. package/docs/design-system/charts-dashboards.md +301 -340
  29. package/docs/design-system/crud.md +114 -174
  30. package/docs/design-system/data-display.md +106 -106
  31. package/docs/design-system/dialogs.md +212 -212
  32. package/docs/design-system/domain.md +329 -319
  33. package/docs/design-system/examples.md +275 -275
  34. package/docs/design-system/foundation.md +1 -1
  35. package/docs/design-system/inputs.md +137 -132
  36. package/docs/design-system/layout.md +154 -202
  37. package/docs/design-system/navigation.md +331 -272
  38. package/docs/design-system/notifications-feedback.md +34 -34
  39. package/docs/design-system/patterns/README.md +53 -53
  40. package/docs/design-system/patterns/action-button.md +22 -22
  41. package/docs/design-system/patterns/alertdialog-deletion.md +46 -46
  42. package/docs/design-system/patterns/baseform-custom-fields.md +59 -59
  43. package/docs/design-system/patterns/baseform-usage.md +42 -42
  44. package/docs/design-system/patterns/body-content-scroll.md +56 -56
  45. package/docs/design-system/patterns/combo-tree.md +23 -23
  46. package/docs/design-system/patterns/components-registry.md +17 -17
  47. package/docs/design-system/patterns/core-providers.md +41 -41
  48. package/docs/design-system/patterns/crud-bulk-actions.md +12 -12
  49. package/docs/design-system/patterns/crud-config-props.md +16 -16
  50. package/docs/design-system/patterns/crud-defaults.md +17 -17
  51. package/docs/design-system/patterns/crud-toolbar.md +28 -28
  52. package/docs/design-system/patterns/delete-confirmation.md +40 -40
  53. package/docs/design-system/patterns/dialog-body-scroll.md +26 -26
  54. package/docs/design-system/patterns/dialog-structure.md +32 -32
  55. package/docs/design-system/patterns/dialog-variants.md +41 -41
  56. package/docs/design-system/patterns/feature-flags.md +81 -81
  57. package/docs/design-system/patterns/header-metadata.md +57 -57
  58. package/docs/design-system/patterns/i18n-setup.md +117 -117
  59. package/docs/design-system/patterns/pagination.md +27 -27
  60. package/docs/design-system/patterns/single-scroll.md +39 -39
  61. package/docs/design-system/patterns/vite-tailwind-setup.md +49 -49
  62. package/docs/design-system/platform.md +18 -18
  63. package/docs/design-system/selectors.md +287 -258
  64. package/docs/design-system/tables-grids.md +38 -95
  65. package/package.json +152 -152
  66. package/dist/assets/docs-BEwTKYu3.css +0 -1
  67. package/dist/assets/docs-Bgpz6ETN.js +0 -10752
  68. package/dist/assets/index-SqMwTzMJ.js +0 -97
  69. package/dist/index.html +0 -34
@@ -5,68 +5,11 @@
5
5
 
6
6
  Categoria: **Data Grid** | 3 componentes
7
7
 
8
- ### Table
8
+ ### CrudTable
9
9
 
10
- Uma tabela semântica para exibir dados tabulares. Inclui TableResizeHandle para redimensionamento de colunas e TruncatedCell para texto truncado com tooltip automático.
10
+ Componente de tabela CRUD completo com ordenação, seleção, resize de colunas, ações em massa e paginação integrada com useCrud.
11
11
 
12
- **Uso:**
13
- ```tsx
14
- import {
15
- Table,
16
- TableBody,
17
- TableCaption,
18
- TableCell,
19
- TableHead,
20
- TableHeader,
21
- TableRow,
22
- TableResizeHandle,
23
- TruncatedCell,
24
- } from "forlogic-core"
25
-
26
- <Table>
27
- <TableCaption>Lista de usuários</TableCaption>
28
- <TableHeader>
29
- <TableRow>
30
- <TableHead>Nome</TableHead>
31
- <TableHead>Email</TableHead>
32
- <TableHead>Status</TableHead>
33
- </TableRow>
34
- </TableHeader>
35
- <TableBody>
36
- <TableRow>
37
- <TableCell>João Silva</TableCell>
38
- <TableCell>joao@example.com</TableCell>
39
- <TableCell>Ativo</TableCell>
40
- </TableRow>
41
- </TableBody>
42
- </Table>
43
- ```
44
-
45
- **Props:**
46
- | Prop | Tipo | Padrão | Descrição |
47
- |------|------|--------|-----------|
48
- | `className` | `string` | - | Classes CSS adicionais para a tabela. |
49
- | `TableResizeHandle.onMouseDown` | `(e: MouseEvent) => void` | - | Handler para iniciar o redimensionamento. |
50
- | `TableResizeHandle.isDragging` | `boolean` | false | Se o handle está sendo arrastado (altera visual). |
51
- | `TruncatedCell.children` | `ReactNode` | - | Conteúdo a ser truncado. |
52
- | `TruncatedCell.className` | `string` | - | Classes CSS adicionais. |
53
-
54
- **Acessibilidade:**
55
- - Usa elementos HTML semânticos de tabela
56
- - Suporta navegação por teclado
57
- - TableCaption fornece contexto para leitores de tela
58
- - TableHeader define cabeçalhos de coluna apropriados
59
- - TruncatedCell mostra tooltip acessível com conteúdo completo
60
- - TableResizeHandle suporta interação via teclado
61
- - Funciona com leitores de tela
62
-
63
- **Notas:**
64
- - TableResizeHandle deve ser posicionado dentro de um TableHead com position: relative.
65
- - TruncatedCell detecta automaticamente se o texto está truncado e exibe tooltip apenas quando necessário.
66
- - Use larguras fixas (w-[Xpx]) nos TableHead para melhor controle do layout.
67
- - TruncatedCell usa CSS text-overflow: ellipsis internamente.
68
-
69
- > Fonte: `src/design-system/docs/components/TableDoc.tsx`
12
+ > Fonte: `src\design-system\docs\components\crud\CrudTableDoc.tsx`
70
13
 
71
14
  ---
72
15
 
@@ -76,18 +19,18 @@ Componente utilitário que trunca texto longo e exibe tooltip automático quando
76
19
 
77
20
  **Uso:**
78
21
  ```tsx
79
- import { TruncatedCell } from 'forlogic-core';
80
- // 💡 Alias disponível: import { EllipsisText } from 'forlogic-core';
81
-
82
- <td className="max-w-[200px]">
83
- <TruncatedCell>
84
- Texto que pode ser muito longo...
85
- </TruncatedCell>
86
- </td>
87
-
88
- // Com className customizada
89
- <TruncatedCell className="text-muted-foreground">
90
- {item.description}
22
+ import { TruncatedCell } from 'forlogic-core';
23
+ // 💡 Alias disponível: import { EllipsisText } from 'forlogic-core';
24
+
25
+ <td className="max-w-[200px]">
26
+ <TruncatedCell>
27
+ Texto que pode ser muito longo...
28
+ </TruncatedCell>
29
+ </td>
30
+
31
+ // Com className customizada
32
+ <TruncatedCell className="text-muted-foreground">
33
+ {item.description}
91
34
  </TruncatedCell>
92
35
  ```
93
36
 
@@ -104,14 +47,14 @@ import { TruncatedCell } from 'forlogic-core';
104
47
  **Notas:**
105
48
  - 💡 Alias: Também disponível como
106
49
  - — import { EllipsisText } from
107
- - ,
50
+ - ,
108
51
 
109
- - ,
52
+ - ,
110
53
 
111
- - ,
54
+ - ,
112
55
 
113
56
 
114
- > Fonte: `src/design-system/docs/components/TruncatedCellDoc.tsx`
57
+ > Fonte: `src\design-system\docs\components\TruncatedCellDoc.tsx`
115
58
 
116
59
  ---
117
60
 
@@ -121,20 +64,20 @@ Componentes de expansão/colapso para revelar conteúdo. Accordion para múltipl
121
64
 
122
65
  **Uso:**
123
66
  ```tsx
124
- import {
125
- Accordion,
126
- AccordionContent,
127
- AccordionItem,
128
- AccordionTrigger,
129
- } from "forlogic-core"
130
-
131
- <Accordion type="single" collapsible>
132
- <AccordionItem value="item-1">
133
- <AccordionTrigger>Is it accessible?</AccordionTrigger>
134
- <AccordionContent>
135
- Yes. It adheres to the WAI-ARIA design pattern.
136
- </AccordionContent>
137
- </AccordionItem>
67
+ import {
68
+ Accordion,
69
+ AccordionContent,
70
+ AccordionItem,
71
+ AccordionTrigger,
72
+ } from "forlogic-core"
73
+
74
+ <Accordion type="single" collapsible>
75
+ <AccordionItem value="item-1">
76
+ <AccordionTrigger>Is it accessible?</AccordionTrigger>
77
+ <AccordionContent>
78
+ Yes. It adheres to the WAI-ARIA design pattern.
79
+ </AccordionContent>
80
+ </AccordionItem>
138
81
  </Accordion>
139
82
  ```
140
83
 
@@ -148,10 +91,10 @@ import {
148
91
  <Accordion type=
149
92
  ```
150
93
  ```tsx
151
- import {
152
- Collapsible,
153
- CollapsibleContent,
154
- CollapsibleTrigger,
94
+ import {
95
+ Collapsible,
96
+ CollapsibleContent,
97
+ CollapsibleTrigger,
155
98
  } from
156
99
  ```
157
100
 
@@ -166,6 +109,6 @@ import {
166
109
  - **Collapsible** é melhor para um único elemento expansível
167
110
  - Ambos suportam animações suaves de abertura/fechamento
168
111
 
169
- > Fonte: `src/design-system/docs/components/AccordionDoc.tsx`
112
+ > Fonte: `src\design-system\docs\components\AccordionDoc.tsx`
170
113
 
171
114
  ---
package/package.json CHANGED
@@ -1,152 +1,152 @@
1
- {
2
- "name": "forlogic-core",
3
- "version": "2.2.5",
4
- "type": "module",
5
- "main": "dist/index.js",
6
- "module": "dist/index.esm.js",
7
- "types": "dist/index.d.ts",
8
- "exports": {
9
- ".": {
10
- "types": "./dist/index.d.ts",
11
- "import": "./dist/index.esm.js",
12
- "require": "./dist/index.js"
13
- },
14
- "./index.css": "./dist/index.css",
15
- "./tokens": "./dist/tokens/index.js",
16
- "./vite": {
17
- "types": "./dist/vite/index.d.ts",
18
- "import": "./dist/vite/index.esm.js",
19
- "require": "./dist/vite/index.js"
20
- },
21
- "./tailwind": {
22
- "types": "./dist/tailwind/index.d.ts",
23
- "import": "./dist/tailwind/index.esm.js",
24
- "require": "./dist/tailwind/index.js"
25
- }
26
- },
27
- "files": [
28
- "dist",
29
- "docs",
30
- ".note/memory"
31
- ],
32
- "sideEffects": [
33
- "*.css"
34
- ],
35
- "scripts": {
36
- "dev": "vite",
37
- "build": "vite build",
38
- "build:dev": "vite build --mode development",
39
- "build:lib": "npx tsx scripts/generate-ds-docs.ts & rollup -c",
40
- "lint": "eslint .",
41
- "docs:check": "tsx scripts/check-docs.ts",
42
- "docs:check-all": "tsx scripts/check-docs.ts --all",
43
- "docs:fix": "tsx scripts/auto-doc.ts",
44
- "docs:fix-all": "tsx scripts/auto-doc.ts --all",
45
- "preview": "vite preview"
46
- },
47
- "dependencies": {
48
- "@dnd-kit/core": "^6.3.1",
49
- "@dnd-kit/sortable": "^10.0.0",
50
- "@dnd-kit/utilities": "^3.2.2",
51
- "@hookform/resolvers": "^3.10.0",
52
- "@microsoft/clarity": "^1.0.2",
53
- "@radix-ui/react-accordion": "^1.2.11",
54
- "@radix-ui/react-alert-dialog": "^1.1.14",
55
- "@radix-ui/react-avatar": "^1.1.10",
56
- "@radix-ui/react-checkbox": "^1.3.3",
57
- "@radix-ui/react-collapsible": "^1.1.11",
58
- "@radix-ui/react-context-menu": "^2.2.16",
59
- "@radix-ui/react-dialog": "^1.1.14",
60
- "@radix-ui/react-dropdown-menu": "^2.1.15",
61
- "@radix-ui/react-hover-card": "^1.1.15",
62
- "@radix-ui/react-label": "^2.1.7",
63
- "@radix-ui/react-menubar": "^1.1.16",
64
- "@radix-ui/react-navigation-menu": "^1.2.14",
65
- "@radix-ui/react-popover": "^1.1.14",
66
- "@radix-ui/react-progress": "^1.1.7",
67
- "@radix-ui/react-radio-group": "^1.3.7",
68
- "@radix-ui/react-scroll-area": "^1.2.9",
69
- "@radix-ui/react-select": "^2.2.5",
70
- "@radix-ui/react-separator": "^1.1.7",
71
- "@radix-ui/react-slider": "^1.3.5",
72
- "@radix-ui/react-slot": "^1.2.3",
73
- "@radix-ui/react-switch": "^1.2.6",
74
- "@radix-ui/react-tabs": "^1.1.12",
75
- "@radix-ui/react-toast": "^1.2.14",
76
- "@radix-ui/react-toggle": "^1.1.9",
77
- "@radix-ui/react-toggle-group": "^1.1.10",
78
- "@radix-ui/react-tooltip": "^1.2.7",
79
- "@supabase/supabase-js": "^2.100.0",
80
- "@tanstack/react-query": "^5.83.0",
81
- "@tiptap/extension-color": "^3.14.0",
82
- "@tiptap/extension-highlight": "^3.14.0",
83
- "@tiptap/extension-link": "^3.14.0",
84
- "@tiptap/extension-text-style": "^3.14.0",
85
- "@tiptap/extension-underline": "^3.14.0",
86
- "@tiptap/react": "^3.14.0",
87
- "@tiptap/starter-kit": "^3.14.0",
88
- "@types/dompurify": "^3.2.0",
89
- "class-variance-authority": "^0.7.1",
90
- "clsx": "^2.1.1",
91
- "date-fns": "^3.6.0",
92
- "date-fns-tz": "^3.2.0",
93
- "dompurify": "^3.4.2",
94
- "exceljs": "^4.4.0",
95
- "i18next-browser-languagedetector": "^8.2.0",
96
- "jszip": "^3.10.1",
97
- "lucide-react": "^0.553.0",
98
- "next-themes": "^0.3.0",
99
- "react": "^18.3.1",
100
- "react-day-picker": "^9.13.0",
101
- "react-dom": "^18.3.1",
102
- "react-hook-form": "^7.61.1",
103
- "react-resizable-panels": "^3.0.6",
104
- "react-router-dom": "^6.30.1",
105
- "recharts": "^3.6.0",
106
- "sonner": "^1.7.4",
107
- "tailwind-merge": "^3.3.1",
108
- "tailwindcss-animate": "^1.0.7",
109
- "vaul": "^1.1.2",
110
- "zod": "^3.25.76"
111
- },
112
- "peerDependencies": {
113
- "i18next": "^25.0.0",
114
- "react-i18next": "^16.0.0"
115
- },
116
- "devDependencies": {
117
- "@babel/parser": "^7.28.5",
118
- "@babel/traverse": "^7.28.5",
119
- "@babel/types": "^7.28.5",
120
- "@eslint/js": "^9.32.0",
121
- "@rollup/plugin-commonjs": "^28.0.6",
122
- "@rollup/plugin-json": "^6.1.0",
123
- "@rollup/plugin-node-resolve": "^16.0.1",
124
- "@rollup/plugin-terser": "1.0.0",
125
- "@rollup/plugin-typescript": "^12.1.4",
126
- "@rollup/plugin-url": "^8.0.2",
127
- "@svgr/rollup": "^8.1.0",
128
- "@tailwindcss/typography": "^0.5.16",
129
- "@types/file-saver": "^2.0.7",
130
- "@types/node": "^22.16.5",
131
- "@types/react": "^18.3.23",
132
- "@types/react-dom": "^18.3.7",
133
- "@vitejs/plugin-react-swc": "^3.11.0",
134
- "autoprefixer": "^10.4.21",
135
- "baseline-browser-mapping": "^2.9.12",
136
- "eslint": "^9.32.0",
137
- "eslint-plugin-react-hooks": "^5.2.0",
138
- "eslint-plugin-react-refresh": "^0.4.20",
139
- "globals": "^15.15.0",
140
- "lovable-tagger": "^1.1.9",
141
- "postcss": "^8.5.6",
142
- "rollup": "^4.50.1",
143
- "rollup-plugin-copy": "^3.5.0",
144
- "rollup-plugin-esbuild": "^6.2.1",
145
- "rollup-plugin-postcss": "^4.0.2",
146
- "tailwindcss": "^3.4.17",
147
- "tsx": "^4.20.6",
148
- "typescript": "^5.8.3",
149
- "typescript-eslint": "^8.38.0",
150
- "vite": "^7.3.0"
151
- }
152
- }
1
+ {
2
+ "name": "forlogic-core",
3
+ "version": "2.2.7",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.esm.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.esm.js",
12
+ "require": "./dist/index.js"
13
+ },
14
+ "./index.css": "./dist/index.css",
15
+ "./tokens": "./dist/tokens/index.js",
16
+ "./vite": {
17
+ "types": "./dist/vite/index.d.ts",
18
+ "import": "./dist/vite/index.esm.js",
19
+ "require": "./dist/vite/index.js"
20
+ },
21
+ "./tailwind": {
22
+ "types": "./dist/tailwind/index.d.ts",
23
+ "import": "./dist/tailwind/index.esm.js",
24
+ "require": "./dist/tailwind/index.js"
25
+ }
26
+ },
27
+ "files": [
28
+ "dist",
29
+ "docs",
30
+ ".note/memory"
31
+ ],
32
+ "sideEffects": [
33
+ "*.css"
34
+ ],
35
+ "scripts": {
36
+ "dev": "vite",
37
+ "build": "vite build",
38
+ "build:dev": "vite build --mode development",
39
+ "build:lib": "npx tsx scripts/generate-ds-docs.ts & rollup -c",
40
+ "lint": "eslint .",
41
+ "docs:check": "tsx scripts/check-docs.ts",
42
+ "docs:check-all": "tsx scripts/check-docs.ts --all",
43
+ "docs:fix": "tsx scripts/auto-doc.ts",
44
+ "docs:fix-all": "tsx scripts/auto-doc.ts --all",
45
+ "preview": "vite preview"
46
+ },
47
+ "dependencies": {
48
+ "@dnd-kit/core": "^6.3.1",
49
+ "@dnd-kit/sortable": "^10.0.0",
50
+ "@dnd-kit/utilities": "^3.2.2",
51
+ "@hookform/resolvers": "^3.10.0",
52
+ "@microsoft/clarity": "^1.0.2",
53
+ "@radix-ui/react-accordion": "^1.2.11",
54
+ "@radix-ui/react-alert-dialog": "^1.1.14",
55
+ "@radix-ui/react-avatar": "^1.1.10",
56
+ "@radix-ui/react-checkbox": "^1.3.3",
57
+ "@radix-ui/react-collapsible": "^1.1.11",
58
+ "@radix-ui/react-context-menu": "^2.2.16",
59
+ "@radix-ui/react-dialog": "^1.1.14",
60
+ "@radix-ui/react-dropdown-menu": "^2.1.15",
61
+ "@radix-ui/react-hover-card": "^1.1.15",
62
+ "@radix-ui/react-label": "^2.1.7",
63
+ "@radix-ui/react-menubar": "^1.1.16",
64
+ "@radix-ui/react-navigation-menu": "^1.2.14",
65
+ "@radix-ui/react-popover": "^1.1.14",
66
+ "@radix-ui/react-progress": "^1.1.7",
67
+ "@radix-ui/react-radio-group": "^1.3.7",
68
+ "@radix-ui/react-scroll-area": "^1.2.9",
69
+ "@radix-ui/react-select": "^2.2.5",
70
+ "@radix-ui/react-separator": "^1.1.7",
71
+ "@radix-ui/react-slider": "^1.3.5",
72
+ "@radix-ui/react-slot": "^1.2.3",
73
+ "@radix-ui/react-switch": "^1.2.6",
74
+ "@radix-ui/react-tabs": "^1.1.12",
75
+ "@radix-ui/react-toast": "^1.2.14",
76
+ "@radix-ui/react-toggle": "^1.1.9",
77
+ "@radix-ui/react-toggle-group": "^1.1.10",
78
+ "@radix-ui/react-tooltip": "^1.2.7",
79
+ "@supabase/supabase-js": "^2.100.0",
80
+ "@tanstack/react-query": "^5.83.0",
81
+ "@tiptap/extension-color": "^3.14.0",
82
+ "@tiptap/extension-highlight": "^3.14.0",
83
+ "@tiptap/extension-link": "^3.14.0",
84
+ "@tiptap/extension-text-style": "^3.14.0",
85
+ "@tiptap/extension-underline": "^3.14.0",
86
+ "@tiptap/react": "^3.14.0",
87
+ "@tiptap/starter-kit": "^3.14.0",
88
+ "@types/dompurify": "^3.2.0",
89
+ "class-variance-authority": "^0.7.1",
90
+ "clsx": "^2.1.1",
91
+ "date-fns": "^3.6.0",
92
+ "date-fns-tz": "^3.2.0",
93
+ "dompurify": "^3.4.2",
94
+ "exceljs": "^4.4.0",
95
+ "i18next-browser-languagedetector": "^8.2.0",
96
+ "jszip": "^3.10.1",
97
+ "lucide-react": "^0.553.0",
98
+ "next-themes": "^0.3.0",
99
+ "react": "^18.3.1",
100
+ "react-day-picker": "^9.13.0",
101
+ "react-dom": "^18.3.1",
102
+ "react-hook-form": "^7.61.1",
103
+ "react-resizable-panels": "^3.0.6",
104
+ "react-router-dom": "^6.30.1",
105
+ "recharts": "^3.6.0",
106
+ "sonner": "^1.7.4",
107
+ "tailwind-merge": "^3.3.1",
108
+ "tailwindcss-animate": "^1.0.7",
109
+ "vaul": "^1.1.2",
110
+ "zod": "^3.25.76"
111
+ },
112
+ "peerDependencies": {
113
+ "i18next": "^25.0.0",
114
+ "react-i18next": "^16.0.0"
115
+ },
116
+ "devDependencies": {
117
+ "@babel/parser": "^7.28.5",
118
+ "@babel/traverse": "^7.28.5",
119
+ "@babel/types": "^7.28.5",
120
+ "@eslint/js": "^9.32.0",
121
+ "@rollup/plugin-commonjs": "^28.0.6",
122
+ "@rollup/plugin-json": "^6.1.0",
123
+ "@rollup/plugin-node-resolve": "^16.0.1",
124
+ "@rollup/plugin-terser": "1.0.0",
125
+ "@rollup/plugin-typescript": "^12.1.4",
126
+ "@rollup/plugin-url": "^8.0.2",
127
+ "@svgr/rollup": "^8.1.0",
128
+ "@tailwindcss/typography": "^0.5.16",
129
+ "@types/file-saver": "^2.0.7",
130
+ "@types/node": "^22.16.5",
131
+ "@types/react": "^18.3.23",
132
+ "@types/react-dom": "^18.3.7",
133
+ "@vitejs/plugin-react-swc": "^3.11.0",
134
+ "autoprefixer": "^10.4.21",
135
+ "baseline-browser-mapping": "^2.9.12",
136
+ "eslint": "^9.32.0",
137
+ "eslint-plugin-react-hooks": "^5.2.0",
138
+ "eslint-plugin-react-refresh": "^0.4.20",
139
+ "globals": "^15.15.0",
140
+ "lovable-tagger": "^1.1.9",
141
+ "postcss": "^8.5.6",
142
+ "rollup": "^4.50.1",
143
+ "rollup-plugin-copy": "^3.5.0",
144
+ "rollup-plugin-esbuild": "^6.2.1",
145
+ "rollup-plugin-postcss": "^4.0.2",
146
+ "tailwindcss": "^3.4.17",
147
+ "tsx": "^4.20.6",
148
+ "typescript": "^5.8.3",
149
+ "typescript-eslint": "^8.38.0",
150
+ "vite": "^7.3.0"
151
+ }
152
+ }