@ddmetrics/untitled-ui-make-kit 0.1.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 (55) hide show
  1. package/ATTRIBUTIONS.md +3 -0
  2. package/README.md +60 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.js +2054 -0
  5. package/dist/kit.d.ts +10 -0
  6. package/dist/untitled-kit/components/base.d.ts +7 -0
  7. package/dist/untitled-kit/components/foundations.d.ts +5 -0
  8. package/dist/untitled-kit/components/index.d.ts +3 -0
  9. package/dist/untitled-kit/components/marketing.d.ts +3 -0
  10. package/dist/untitled-kit/components/source/base/avatar/avatar.d.ts +64 -0
  11. package/dist/untitled-kit/components/source/base/avatar/base-components/avatar-add-button.d.ts +8 -0
  12. package/dist/untitled-kit/components/source/base/avatar/base-components/avatar-company-icon.d.ts +7 -0
  13. package/dist/untitled-kit/components/source/base/avatar/base-components/avatar-count.d.ts +6 -0
  14. package/dist/untitled-kit/components/source/base/avatar/base-components/avatar-online-indicator.d.ts +7 -0
  15. package/dist/untitled-kit/components/source/base/avatar/base-components/index.d.ts +4 -0
  16. package/dist/untitled-kit/components/source/base/avatar/base-components/verified-tick.d.ts +6 -0
  17. package/dist/untitled-kit/components/source/base/badges/badge-groups.d.ts +22 -0
  18. package/dist/untitled-kit/components/source/base/badges/badge-types.d.ts +21 -0
  19. package/dist/untitled-kit/components/source/base/badges/badges.d.ts +128 -0
  20. package/dist/untitled-kit/components/source/base/buttons/button.d.ts +102 -0
  21. package/dist/untitled-kit/components/source/base/form/form.d.ts +6 -0
  22. package/dist/untitled-kit/components/source/base/input/hint-text.d.ts +14 -0
  23. package/dist/untitled-kit/components/source/base/input/input.d.ts +58 -0
  24. package/dist/untitled-kit/components/source/base/input/label.d.ts +15 -0
  25. package/dist/untitled-kit/components/source/base/tooltip/tooltip.d.ts +29 -0
  26. package/dist/untitled-kit/components/source/foundations/dot-icon.d.ts +4 -0
  27. package/dist/untitled-kit/components/source/foundations/featured-icon/featured-icon.d.ts +14 -0
  28. package/dist/untitled-kit/components/source/foundations/logo/untitledui-logo-minimal.d.ts +2 -0
  29. package/dist/untitled-kit/components/source/foundations/logo/untitledui-logo.d.ts +2 -0
  30. package/dist/untitled-kit/components/source/foundations/rating-stars.d.ts +29 -0
  31. package/dist/untitled-kit/components/source/marketing/features/base-components/feature-text.d.ts +37 -0
  32. package/dist/untitled-kit/components/source/marketing/header-section/base-components/flow-pattern.d.ts +2 -0
  33. package/dist/untitled-kit/components/source/marketing/pricing-sections/base-components/pricing-tier-card.d.ts +87 -0
  34. package/dist/untitled-kit/hooks/use-breakpoint.d.ts +9 -0
  35. package/dist/untitled-kit/hooks/use-resize-observer.d.ts +24 -0
  36. package/dist/untitled-kit/index.d.ts +3 -0
  37. package/dist/untitled-kit/templates/CTANewsletterTemplate.d.ts +8 -0
  38. package/dist/untitled-kit/templates/ContentSplitImageTemplate.d.ts +2 -0
  39. package/dist/untitled-kit/templates/FAQAccordionTemplate.d.ts +10 -0
  40. package/dist/untitled-kit/templates/FeatureGridTemplate.d.ts +8 -0
  41. package/dist/untitled-kit/templates/FooterTemplate.d.ts +7 -0
  42. package/dist/untitled-kit/templates/HeaderTemplate.d.ts +8 -0
  43. package/dist/untitled-kit/templates/HeroSplitImageTemplate.d.ts +10 -0
  44. package/dist/untitled-kit/templates/PricingSectionTemplate.d.ts +8 -0
  45. package/dist/untitled-kit/templates/TestimonialSectionTemplate.d.ts +5 -0
  46. package/dist/untitled-kit/templates/index.d.ts +17 -0
  47. package/dist/untitled-kit/types/marketing.d.ts +53 -0
  48. package/dist/untitled-kit/utils/cx.d.ts +11 -0
  49. package/dist/untitled-kit/utils/is-react-component.d.ts +19 -0
  50. package/dist/untitled-ui-make-kit.css +1 -0
  51. package/guidelines/Guidelines.md +96 -0
  52. package/guidelines/component-inventory.md +40 -0
  53. package/guidelines/section-mapping.md +131 -0
  54. package/guidelines/styles.md +87 -0
  55. package/package.json +59 -0
@@ -0,0 +1,96 @@
1
+ # Untitled UI Make Kit Guidelines
2
+
3
+ This kit is built for Figma Make. The goal is to generate marketing pages from prompts using **complete Untitled UI templates**, not simplified HTML.
4
+
5
+ ## Critical Import Rule
6
+
7
+ Always import from `@ddmetrics/untitled-ui-make-kit`.
8
+
9
+ ```tsx
10
+ import {
11
+ HeaderTemplate,
12
+ HeroSplitImageTemplate,
13
+ FeatureGridTemplate,
14
+ ContentSplitImageTemplate,
15
+ PricingSectionTemplate,
16
+ TestimonialSectionTemplate,
17
+ FAQAccordionTemplate,
18
+ CTANewsletterTemplate,
19
+ FooterTemplate,
20
+ } from "@ddmetrics/untitled-ui-make-kit";
21
+ ```
22
+
23
+ Do not install new components with the CLI. Do not recreate Untitled UI layouts from scratch. Do not create simplified cards, buttons, heroes, footers, FAQs, or pricing sections when a template exists.
24
+
25
+ ## How Make Should Handle A Design Prompt
26
+
27
+ 1. Identify the page type. This kit is optimized for landing pages and marketing sites.
28
+ 2. Break the prompt into sections: header, hero, services/features, benefits/content, pricing, testimonials, FAQ, CTA/newsletter, footer.
29
+ 3. Map each section to a template from `@ddmetrics/untitled-ui-make-kit`.
30
+ 4. Fill template props with the user’s content.
31
+ 5. Use `@untitledui/icons` for feature and pricing icons.
32
+ 6. Keep the template structure intact. Only change props/content.
33
+ 7. If a requested section does not map exactly, choose the closest template and adapt content through props.
34
+
35
+ ## Template Layer
36
+
37
+ Templates are exact Untitled UI section structures made editable through props. Use these for page composition.
38
+
39
+ | Template | Use For |
40
+ |---|---|
41
+ | `HeaderTemplate` | Top navigation with logo, links, and CTAs |
42
+ | `HeroSplitImageTemplate` | Primary landing hero with copy, CTAs, image, decorative pattern, and file-card overlays |
43
+ | `FeatureGridTemplate` | Services, features, benefits, value props, process steps |
44
+ | `ContentSplitImageTemplate` | Longer brand/story/content blocks with image |
45
+ | `PricingSectionTemplate` | Three-column pricing or plan comparisons |
46
+ | `TestimonialSectionTemplate` | Social proof with quote carousel, avatar, stars, pagination |
47
+ | `FAQAccordionTemplate` | Expandable FAQ with optional support CTA |
48
+ | `CTANewsletterTemplate` | Final CTA, email capture, newsletter, lead form |
49
+ | `FooterTemplate` | Multi-column footer |
50
+
51
+ ## Component Layer
52
+
53
+ Components are real Untitled UI source components used by templates. Use these only for small custom compositions when no template fits.
54
+
55
+ Available examples:
56
+
57
+ | Component | Use For |
58
+ |---|---|
59
+ | `Button` | Actions and links |
60
+ | `Input`, `Form` | Forms and newsletter/email capture |
61
+ | `Avatar` | People, testimonials, support blocks |
62
+ | `Badge`, `BadgeGroup` | Labels, status, pricing callouts |
63
+ | `FeaturedIcon` | Feature icons and visual markers |
64
+ | `PricingTierCardIcon` | Pricing cards inside pricing templates |
65
+ | `FeatureTextFeaturedIconTopCentered` | Individual feature item layouts |
66
+
67
+ ## Template-First Rules
68
+
69
+ - For complete sections, use templates, not raw components.
70
+ - Raw components are building blocks inside templates.
71
+ - Keep Tailwind classes and responsive structure from the templates.
72
+ - Do not replace templates with generic `div` grids.
73
+ - Do not rename exports. Use the exact export names.
74
+ - Do not use old names like `HeroSplitImage`, `CTASimple`, `Footer`, or `FeaturesSimpleIcons`; use the template names.
75
+
76
+ ## Visual System Rules
77
+
78
+ - Use semantic Untitled UI tokens: `bg-primary`, `text-primary`, `text-tertiary`, `text-brand-secondary`, `bg-brand-solid`, `border-secondary`.
79
+ - Use `max-w-container` with `px-4 md:px-8`.
80
+ - Preserve section spacing: `py-16 md:py-24`.
81
+ - Use Figtree typography tokens like `text-display-sm`, `text-display-md`, `text-display-lg`, and `text-xl`.
82
+ - Prefer brand CTAs with `Button size="xl"` or `Button size="md"` depending on context.
83
+
84
+ ## Content Rules
85
+
86
+ - Spanish prompts should produce Spanish content.
87
+ - Keep headlines short and specific.
88
+ - Use 3 to 6 features for `FeatureGridTemplate`.
89
+ - Use 3 pricing plans for `PricingSectionTemplate`.
90
+ - Use 4 to 8 FAQ items for `FAQAccordionTemplate`.
91
+ - Use real image URLs with descriptive alt text when the prompt asks for imagery.
92
+
93
+ ## Supporting Docs
94
+
95
+ - `section-mapping.md` maps prompt sections to templates and prop shapes.
96
+ - `component-inventory.md` lists the current kit exports.
@@ -0,0 +1,40 @@
1
+ # Component Inventory
2
+
3
+ Use this inventory to avoid inventing component names. Import everything from `@ddmetrics/untitled-ui-make-kit`.
4
+
5
+ ## Templates
6
+
7
+ Templates are the preferred API for Figma Make prompts.
8
+
9
+ | Export | Purpose |
10
+ |---|---|
11
+ | `HeaderTemplate` | Navigation header |
12
+ | `HeroSplitImageTemplate` | Main split hero |
13
+ | `FeatureGridTemplate` | Features, services, benefits, process |
14
+ | `ContentSplitImageTemplate` | Long content with side image |
15
+ | `PricingSectionTemplate` | Pricing cards |
16
+ | `TestimonialSectionTemplate` | Testimonial carousel |
17
+ | `FAQAccordionTemplate` | FAQ accordion |
18
+ | `CTANewsletterTemplate` | CTA/newsletter form |
19
+ | `FooterTemplate` | Multi-column footer |
20
+
21
+ ## Real Components
22
+
23
+ These are real Untitled UI components used by templates or small custom compositions.
24
+
25
+ | Export | Purpose |
26
+ |---|---|
27
+ | `Button` | Buttons and links |
28
+ | `Input`, `InputBase`, `TextField` | Inputs |
29
+ | `Form` | Form wrapper |
30
+ | `Avatar` | Avatars |
31
+ | `Badge`, `BadgeGroup` | Badges and callouts |
32
+ | `FeaturedIcon` | Icon container |
33
+ | `UntitledLogo`, `UntitledLogoMinimal` | Logos |
34
+ | `FeatureTextFeaturedIconTopCentered` | Feature item structure |
35
+ | `PricingTierCardIcon` | Pricing card structure |
36
+ | `CheckItemText` | Check-list pricing item |
37
+
38
+ ## Rule
39
+
40
+ If a prompt asks for a full page section, use a template. Use raw components only inside a custom section when no template exists.
@@ -0,0 +1,131 @@
1
+ # Section-to-Template Mapping
2
+
3
+ All complete sections must use templates from `@ddmetrics/untitled-ui-make-kit`. Templates preserve the exact Untitled UI visual structure and expose editable props.
4
+
5
+ ## Import Pattern
6
+
7
+ ```tsx
8
+ import {
9
+ HeaderTemplate,
10
+ HeroSplitImageTemplate,
11
+ FeatureGridTemplate,
12
+ ContentSplitImageTemplate,
13
+ PricingSectionTemplate,
14
+ TestimonialSectionTemplate,
15
+ FAQAccordionTemplate,
16
+ CTANewsletterTemplate,
17
+ FooterTemplate,
18
+ } from "@ddmetrics/untitled-ui-make-kit";
19
+ import { Building, Package, Plane, Shield, Ship, Truck01 } from "@untitledui/icons";
20
+ ```
21
+
22
+ ## Mapping
23
+
24
+ | Prompt Section | Template | Notes |
25
+ |---|---|---|
26
+ | Header, navigation, navbar | `HeaderTemplate` | Use logo label, nav links, primary/secondary CTAs |
27
+ | Hero, main intro, landing intro | `HeroSplitImageTemplate` | Use for most B2B/service/marketing pages |
28
+ | Services, features, benefits, process | `FeatureGridTemplate` | Use 3 to 6 items with `@untitledui/icons` |
29
+ | About, why us, detailed value proposition | `ContentSplitImageTemplate` | Use when section needs longer copy and image |
30
+ | Pricing, plans, packages | `PricingSectionTemplate` | Use 3 plans when possible |
31
+ | Testimonials, social proof, reviews | `TestimonialSectionTemplate` | Use 1 to 3 testimonials |
32
+ | FAQ, questions | `FAQAccordionTemplate` | Use 4 to 8 items |
33
+ | Final CTA, newsletter, email capture | `CTANewsletterTemplate` | Use at page bottom for lead capture |
34
+ | Footer | `FooterTemplate` | Use 2 to 6 columns |
35
+
36
+ ## Example Landing Page
37
+
38
+ ```tsx
39
+ import {
40
+ HeaderTemplate,
41
+ HeroSplitImageTemplate,
42
+ FeatureGridTemplate,
43
+ ContentSplitImageTemplate,
44
+ FAQAccordionTemplate,
45
+ CTANewsletterTemplate,
46
+ FooterTemplate,
47
+ } from "@ddmetrics/untitled-ui-make-kit";
48
+ import { Building, Package, Plane, Shield, Ship, Truck01 } from "@untitledui/icons";
49
+
50
+ export default function App() {
51
+ return (
52
+ <>
53
+ <HeaderTemplate
54
+ logoLabel="CKM Logística"
55
+ navItems={[
56
+ { label: "Servicios", href: "#servicios" },
57
+ { label: "Beneficios", href: "#beneficios" },
58
+ { label: "FAQ", href: "#faq" },
59
+ ]}
60
+ primaryCta={{ label: "Cotizar", href: "#contacto" }}
61
+ />
62
+
63
+ <HeroSplitImageTemplate
64
+ eyebrow="Logística internacional"
65
+ headline="Soluciones logísticas confiables para mover tu negocio"
66
+ description="Coordinamos transporte marítimo, aéreo y terrestre con seguimiento claro y atención personalizada."
67
+ primaryCta={{ label: "Solicitar cotización", href: "#contacto" }}
68
+ secondaryCta={{ label: "Ver servicios", href: "#servicios" }}
69
+ image={{
70
+ src: "https://images.unsplash.com/photo-1586528116311-ad8dd3c8310d?w=1200",
71
+ alt: "Centro logístico con contenedores",
72
+ }}
73
+ />
74
+
75
+ <FeatureGridTemplate
76
+ eyebrow="Servicios"
77
+ headline="Cobertura completa para tu operación"
78
+ description="Elige los servicios que necesitas y nosotros coordinamos la cadena completa."
79
+ features={[
80
+ { title: "Carga marítima", description: "FCL, LCL y coordinación portuaria.", icon: Ship },
81
+ { title: "Carga aérea", description: "Envíos urgentes y carga de alto valor.", icon: Plane },
82
+ { title: "Transporte terrestre", description: "Recolección y entrega nacional.", icon: Truck01 },
83
+ { title: "Despacho aduanal", description: "Documentación y cumplimiento.", icon: Building },
84
+ { title: "Seguro de carga", description: "Protección para tus mercancías.", icon: Shield },
85
+ { title: "Almacenaje", description: "Soporte operativo y distribución.", icon: Package },
86
+ ]}
87
+ />
88
+
89
+ <ContentSplitImageTemplate
90
+ eyebrow="Por qué elegirnos"
91
+ title="Atención personalizada con visibilidad de punta a punta"
92
+ description="Diseñamos cada operación según origen, destino, tiempos y presupuesto."
93
+ image={{
94
+ src: "https://images.unsplash.com/photo-1553413077-190dd305871c?w=1200",
95
+ alt: "Equipo revisando operación logística",
96
+ }}
97
+ />
98
+
99
+ <FAQAccordionTemplate
100
+ headline="Preguntas frecuentes"
101
+ description="Respuestas rápidas para planear tu siguiente embarque."
102
+ items={[
103
+ { question: "¿Manejan importación y exportación?", answer: "Sí, coordinamos operaciones internacionales de origen a destino." },
104
+ { question: "¿Pueden cotizar diferentes rutas?", answer: "Sí, comparamos alternativas según costo, tiempo y nivel de servicio." },
105
+ { question: "¿Incluyen despacho aduanal?", answer: "Podemos coordinar documentación y despacho con agentes especializados." },
106
+ { question: "¿Dan seguimiento al envío?", answer: "Sí, entregamos visibilidad y actualizaciones durante el proceso." },
107
+ ]}
108
+ supportTitle="¿Necesitas una cotización?"
109
+ supportDescription="Comparte origen, destino y tipo de carga para asesorarte."
110
+ supportCta={{ label: "Contactar equipo", href: "#contacto" }}
111
+ />
112
+
113
+ <CTANewsletterTemplate
114
+ headline="Optimiza tu siguiente operación logística"
115
+ description="Déjanos tus datos y un asesor te contactará."
116
+ placeholder="Tu correo empresarial"
117
+ buttonLabel="Solicitar contacto"
118
+ />
119
+
120
+ <FooterTemplate
121
+ columns={[
122
+ { label: "Servicios", items: [{ label: "Marítimo", href: "#" }, { label: "Aéreo", href: "#" }, { label: "Terrestre", href: "#" }] },
123
+ { label: "Empresa", items: [{ label: "Nosotros", href: "#" }, { label: "Contacto", href: "#" }] },
124
+ { label: "Legal", items: [{ label: "Privacidad", href: "#" }, { label: "Términos", href: "#" }] },
125
+ ]}
126
+ copyright="© 2026 CKM Logística. Todos los derechos reservados."
127
+ />
128
+ </>
129
+ );
130
+ }
131
+ ```
@@ -0,0 +1,87 @@
1
+ # Style Guidelines
2
+
3
+ ## Layout Principles
4
+
5
+ - **Max content width:** 1280px
6
+ - **Container padding:** 16px mobile, 32px desktop
7
+ - **Paragraph max width:** 720px
8
+ - **Grid:** Tailwind CSS grid/flex. Sections full-width with centered max-width container.
9
+ - **Responsive:** Mobile-first. Horizontal on desktop, vertical on mobile.
10
+
11
+ ## Spacing Scale (base unit: 4px)
12
+
13
+ | Use case | Token | px |
14
+ |---|---|---|
15
+ | Tight inline gaps | `--spacing-xs` | 4 |
16
+ | Icon-to-text gap | `--spacing-md` | 8 |
17
+ | Element padding | `--spacing-xl` | 16 |
18
+ | Card internal padding | `--spacing-3xl` | 24 |
19
+ | Section internal spacing | `--spacing-5xl` | 40 |
20
+ | Between sections | `--spacing-9xl` | 96 |
21
+ | Hero/footer padding | `--spacing-11xl` | 160 |
22
+
23
+ ## Typography (Font: Figtree)
24
+
25
+ | Element | Size | Weight | Class |
26
+ |---|---|---|---|
27
+ | H1 hero | 48px | Bold 700 | `.display-lg-bold` |
28
+ | H2 section | 36px | Semibold 600 | `.display-md-semibold` |
29
+ | H3 card title | 24px | Semibold 600 | `.display-xs-semibold` |
30
+ | H4 subtitle | 18px | Semibold 600 | `.text-lg-semibold` |
31
+ | Body | 16px | Regular 400 | `.text-md-regular` |
32
+ | Body small | 14px | Regular 400 | `.text-sm-regular` |
33
+ | Caption | 12px | Medium 500 | `.text-xs-medium` |
34
+ | Button | 16px | Medium 500 | `.text-md-medium` |
35
+ | Overline | 14px | Semibold 600 | `.text-sm-semibold` |
36
+
37
+ ## Border Radius
38
+
39
+ | Element | Token | px |
40
+ |---|---|---|
41
+ | Cards | `--radius-xl` | 12 |
42
+ | Buttons | `--radius-md` | 8 |
43
+ | Inputs | `--radius-sm` | 6 |
44
+ | Badges/pills | `--radius-full` | 9999 |
45
+
46
+ ## Color Usage
47
+
48
+ | Context | Token |
49
+ |---|---|
50
+ | Page bg | `--background` white |
51
+ | Alt section bg | `bg-secondary` #FAFAFA |
52
+ | Brand section bg | `bg-brand-section` #4D369D |
53
+ | Primary buttons | `--primary` purple |
54
+ | Heading text | `text-primary` #181D27 |
55
+ | Body text | `--foreground` #414651 |
56
+ | Muted text | `--muted-foreground` #535862 |
57
+
58
+ ## Responsive (Tailwind)
59
+
60
+ `sm:` 640px, `md:` 768px, `lg:` 1024px, `xl:` 1280px
61
+
62
+ ## Section Pattern
63
+
64
+ Do not write raw section HTML when a template exists. Use section templates from `@ddmetrics/untitled-ui-make-kit` and preserve their internal structure.
65
+
66
+ Template sections already use the correct pattern:
67
+
68
+ - `bg-primary`
69
+ - `py-16 md:py-24`
70
+ - `mx-auto max-w-container px-4 md:px-8`
71
+ - mobile-first responsive grids
72
+ - Untitled UI text tokens like `text-display-sm`, `text-display-md`, `text-primary`, `text-tertiary`
73
+
74
+ Alternate section rhythm: primary background, secondary/content section, primary background, CTA/newsletter, footer.
75
+ <!--
76
+
77
+ Style guidelines teach Make what styles are available and how to use them correctly.
78
+
79
+ Focus on visual patterns and spacing. For example:
80
+ * Layout principles - Grid systems, breakpoints, container widths
81
+ * Spacing scale - "Use 4px base unit: 4, 8, 16, 24, 32, 48, 64"
82
+ * Typography hierarchy - Specific font sizes, weights, line heights for h1-h6, body, captions
83
+ * Border radius system - "Cards: 12px, Buttons: 8px, Inputs: 6px"
84
+ * Responsive behavior - "Stack horizontally on desktop, vertically on mobile"
85
+
86
+ For more tips, check our guide:
87
+ https://developers.figma.com/docs/code/write-design-system-guidelines
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@ddmetrics/untitled-ui-make-kit",
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "description": "Untitled UI marketing templates packaged for Figma Make kits.",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "style": "./dist/untitled-ui-make-kit.css",
11
+ "files": [
12
+ "dist",
13
+ "guidelines",
14
+ "README.md",
15
+ "ATTRIBUTIONS.md"
16
+ ],
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
+ },
22
+ "./style.css": "./dist/untitled-ui-make-kit.css"
23
+ },
24
+ "scripts": {
25
+ "build": "vite build && tsc --emitDeclarationOnly",
26
+ "typecheck": "tsc --noEmit",
27
+ "prepublishOnly": "npm run build"
28
+ },
29
+ "dependencies": {
30
+ "@react-stately/utils": "^3.12.0",
31
+ "@untitledui/file-icons": "^0.0.9",
32
+ "@untitledui/icons": "^0.0.22",
33
+ "motion": "^12.40.0",
34
+ "react-aria": "^3.48.0",
35
+ "react-aria-components": "^1.17.0",
36
+ "tailwind-merge": "^3.6.0",
37
+ "tw-animate-css": "1.3.8"
38
+ },
39
+ "devDependencies": {
40
+ "@tailwindcss/vite": "4.1.12",
41
+ "@types/react": "^19.2.15",
42
+ "@types/react-dom": "^19.2.3",
43
+ "@vitejs/plugin-react": "4.7.0",
44
+ "react": "^18.3.1",
45
+ "react-dom": "^18.3.1",
46
+ "tailwindcss": "4.1.12",
47
+ "typescript": "^6.0.3",
48
+ "vite": "^6.4.2"
49
+ },
50
+ "peerDependencies": {
51
+ "react": "^18.3.1",
52
+ "react-dom": "^18.3.1"
53
+ },
54
+ "pnpm": {
55
+ "overrides": {
56
+ "vite": "6.4.2"
57
+ }
58
+ }
59
+ }