@mila_studios/mycelia-design-system 0.1.1

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 (149) hide show
  1. package/README.md +187 -0
  2. package/mycelia-ui.css +5545 -0
  3. package/package.json +127 -0
  4. package/packages/ui/dist/components/accordion.d.mts +9 -0
  5. package/packages/ui/dist/components/accordion.js +74 -0
  6. package/packages/ui/dist/components/accordion.js.map +1 -0
  7. package/packages/ui/dist/components/alert-dialog.d.mts +22 -0
  8. package/packages/ui/dist/components/alert-dialog.js +117 -0
  9. package/packages/ui/dist/components/alert-dialog.js.map +1 -0
  10. package/packages/ui/dist/components/alert.d.mts +28 -0
  11. package/packages/ui/dist/components/alert.js +140 -0
  12. package/packages/ui/dist/components/alert.js.map +1 -0
  13. package/packages/ui/dist/components/aspect-ratio.d.mts +7 -0
  14. package/packages/ui/dist/components/aspect-ratio.js +28 -0
  15. package/packages/ui/dist/components/aspect-ratio.js.map +1 -0
  16. package/packages/ui/dist/components/avatar-stack.d.mts +16 -0
  17. package/packages/ui/dist/components/avatar-stack.js +57 -0
  18. package/packages/ui/dist/components/avatar-stack.js.map +1 -0
  19. package/packages/ui/dist/components/avatar.d.mts +16 -0
  20. package/packages/ui/dist/components/avatar.js +108 -0
  21. package/packages/ui/dist/components/avatar.js.map +1 -0
  22. package/packages/ui/dist/components/badge.d.mts +16 -0
  23. package/packages/ui/dist/components/badge.js +61 -0
  24. package/packages/ui/dist/components/badge.js.map +1 -0
  25. package/packages/ui/dist/components/breadcrumb.d.mts +22 -0
  26. package/packages/ui/dist/components/breadcrumb.js +118 -0
  27. package/packages/ui/dist/components/breadcrumb.js.map +1 -0
  28. package/packages/ui/dist/components/button.d.mts +36 -0
  29. package/packages/ui/dist/components/button.js +204 -0
  30. package/packages/ui/dist/components/button.js.map +1 -0
  31. package/packages/ui/dist/components/calendar.d.mts +11 -0
  32. package/packages/ui/dist/components/calendar.js +27 -0
  33. package/packages/ui/dist/components/calendar.js.map +1 -0
  34. package/packages/ui/dist/components/card.d.mts +10 -0
  35. package/packages/ui/dist/components/card.js +84 -0
  36. package/packages/ui/dist/components/card.js.map +1 -0
  37. package/packages/ui/dist/components/carousel.d.mts +35 -0
  38. package/packages/ui/dist/components/carousel.js +362 -0
  39. package/packages/ui/dist/components/carousel.js.map +1 -0
  40. package/packages/ui/dist/components/chart.d.mts +88 -0
  41. package/packages/ui/dist/components/chart.js +249 -0
  42. package/packages/ui/dist/components/chart.js.map +1 -0
  43. package/packages/ui/dist/components/checkbox.d.mts +44 -0
  44. package/packages/ui/dist/components/checkbox.js +161 -0
  45. package/packages/ui/dist/components/checkbox.js.map +1 -0
  46. package/packages/ui/dist/components/combobox.d.mts +45 -0
  47. package/packages/ui/dist/components/combobox.js +148 -0
  48. package/packages/ui/dist/components/combobox.js.map +1 -0
  49. package/packages/ui/dist/components/command-menu.d.mts +88 -0
  50. package/packages/ui/dist/components/command-menu.js +414 -0
  51. package/packages/ui/dist/components/command-menu.js.map +1 -0
  52. package/packages/ui/dist/components/command.d.mts +84 -0
  53. package/packages/ui/dist/components/command.js +125 -0
  54. package/packages/ui/dist/components/command.js.map +1 -0
  55. package/packages/ui/dist/components/data-table.d.mts +23 -0
  56. package/packages/ui/dist/components/data-table.js +377 -0
  57. package/packages/ui/dist/components/data-table.js.map +1 -0
  58. package/packages/ui/dist/components/date-picker.d.mts +28 -0
  59. package/packages/ui/dist/components/date-picker.js +217 -0
  60. package/packages/ui/dist/components/date-picker.js.map +1 -0
  61. package/packages/ui/dist/components/dialog.d.mts +19 -0
  62. package/packages/ui/dist/components/dialog.js +146 -0
  63. package/packages/ui/dist/components/dialog.js.map +1 -0
  64. package/packages/ui/dist/components/drawer.d.mts +20 -0
  65. package/packages/ui/dist/components/drawer.js +159 -0
  66. package/packages/ui/dist/components/drawer.js.map +1 -0
  67. package/packages/ui/dist/components/hover-card.d.mts +9 -0
  68. package/packages/ui/dist/components/hover-card.js +35 -0
  69. package/packages/ui/dist/components/hover-card.js.map +1 -0
  70. package/packages/ui/dist/components/icon-button.d.mts +22 -0
  71. package/packages/ui/dist/components/icon-button.js +169 -0
  72. package/packages/ui/dist/components/icon-button.js.map +1 -0
  73. package/packages/ui/dist/components/input-file.d.mts +12 -0
  74. package/packages/ui/dist/components/input-file.js +209 -0
  75. package/packages/ui/dist/components/input-file.js.map +1 -0
  76. package/packages/ui/dist/components/input-otp.d.mts +85 -0
  77. package/packages/ui/dist/components/input-otp.js +254 -0
  78. package/packages/ui/dist/components/input-otp.js.map +1 -0
  79. package/packages/ui/dist/components/input.d.mts +17 -0
  80. package/packages/ui/dist/components/input.js +116 -0
  81. package/packages/ui/dist/components/input.js.map +1 -0
  82. package/packages/ui/dist/components/label.d.mts +14 -0
  83. package/packages/ui/dist/components/label.js +40 -0
  84. package/packages/ui/dist/components/label.js.map +1 -0
  85. package/packages/ui/dist/components/navigation-menu.d.mts +20 -0
  86. package/packages/ui/dist/components/navigation-menu.js +136 -0
  87. package/packages/ui/dist/components/navigation-menu.js.map +1 -0
  88. package/packages/ui/dist/components/pagination.d.mts +27 -0
  89. package/packages/ui/dist/components/pagination.js +159 -0
  90. package/packages/ui/dist/components/pagination.js.map +1 -0
  91. package/packages/ui/dist/components/popover.d.mts +9 -0
  92. package/packages/ui/dist/components/popover.js +34 -0
  93. package/packages/ui/dist/components/popover.js.map +1 -0
  94. package/packages/ui/dist/components/progress.d.mts +13 -0
  95. package/packages/ui/dist/components/progress.js +44 -0
  96. package/packages/ui/dist/components/progress.js.map +1 -0
  97. package/packages/ui/dist/components/radio-group.d.mts +42 -0
  98. package/packages/ui/dist/components/radio-group.js +125 -0
  99. package/packages/ui/dist/components/radio-group.js.map +1 -0
  100. package/packages/ui/dist/components/resizable.d.mts +9 -0
  101. package/packages/ui/dist/components/resizable.js +70 -0
  102. package/packages/ui/dist/components/resizable.js.map +1 -0
  103. package/packages/ui/dist/components/scroll-area.d.mts +15 -0
  104. package/packages/ui/dist/components/scroll-area.js +70 -0
  105. package/packages/ui/dist/components/scroll-area.js.map +1 -0
  106. package/packages/ui/dist/components/separator.d.mts +27 -0
  107. package/packages/ui/dist/components/separator.js +81 -0
  108. package/packages/ui/dist/components/separator.js.map +1 -0
  109. package/packages/ui/dist/components/sheet.d.mts +26 -0
  110. package/packages/ui/dist/components/sheet.js +158 -0
  111. package/packages/ui/dist/components/sheet.js.map +1 -0
  112. package/packages/ui/dist/components/sidebar.d.mts +63 -0
  113. package/packages/ui/dist/components/sidebar.js +271 -0
  114. package/packages/ui/dist/components/sidebar.js.map +1 -0
  115. package/packages/ui/dist/components/skeleton.d.mts +13 -0
  116. package/packages/ui/dist/components/skeleton.js +34 -0
  117. package/packages/ui/dist/components/skeleton.js.map +1 -0
  118. package/packages/ui/dist/components/slider.d.mts +7 -0
  119. package/packages/ui/dist/components/slider.js +70 -0
  120. package/packages/ui/dist/components/slider.js.map +1 -0
  121. package/packages/ui/dist/components/sonner.d.mts +8 -0
  122. package/packages/ui/dist/components/sonner.js +112 -0
  123. package/packages/ui/dist/components/sonner.js.map +1 -0
  124. package/packages/ui/dist/components/spinner.d.mts +6 -0
  125. package/packages/ui/dist/components/spinner.js +44 -0
  126. package/packages/ui/dist/components/spinner.js.map +1 -0
  127. package/packages/ui/dist/components/switch.d.mts +43 -0
  128. package/packages/ui/dist/components/switch.js +136 -0
  129. package/packages/ui/dist/components/switch.js.map +1 -0
  130. package/packages/ui/dist/components/table.d.mts +16 -0
  131. package/packages/ui/dist/components/table.js +115 -0
  132. package/packages/ui/dist/components/table.js.map +1 -0
  133. package/packages/ui/dist/components/tabs.d.mts +17 -0
  134. package/packages/ui/dist/components/tabs.js +104 -0
  135. package/packages/ui/dist/components/tabs.js.map +1 -0
  136. package/packages/ui/dist/components/textarea.d.mts +12 -0
  137. package/packages/ui/dist/components/textarea.js +76 -0
  138. package/packages/ui/dist/components/textarea.js.map +1 -0
  139. package/packages/ui/dist/components/tooltip.d.mts +17 -0
  140. package/packages/ui/dist/components/tooltip.js +46 -0
  141. package/packages/ui/dist/components/tooltip.js.map +1 -0
  142. package/packages/ui/dist/lib/utils.d.mts +5 -0
  143. package/packages/ui/dist/lib/utils.js +11 -0
  144. package/packages/ui/dist/lib/utils.js.map +1 -0
  145. package/packages/ui/dist/mycelia-ui.css +5545 -0
  146. package/packages/ui/postcss.config.mjs +6 -0
  147. package/packages/ui/src/styles/bundle-entry.css +2 -0
  148. package/packages/ui/src/styles/globals.css +651 -0
  149. package/scripts/prepare-build.mjs +32 -0
package/package.json ADDED
@@ -0,0 +1,127 @@
1
+ {
2
+ "name": "@mila_studios/mycelia-design-system",
3
+ "version": "0.1.1",
4
+ "type": "module",
5
+ "private": false,
6
+ "packageManager": "npm@10.9.2",
7
+ "sideEffects": [
8
+ "**/*.css"
9
+ ],
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/mila-studios/mila-design-components.git"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public",
16
+ "registry": "https://registry.npmjs.org/"
17
+ },
18
+ "scripts": {
19
+ "build": "cd packages/ui && tsup && postcss ./src/styles/bundle-entry.css -o ./dist/mycelia-ui.css && cp ./dist/mycelia-ui.css ../../mycelia-ui.css",
20
+ "prepare": "node scripts/prepare-build.mjs",
21
+ "prepack": "npm run build",
22
+ "dev:demo:css": "postcss ./packages/ui/src/demo/styles.css -o ./packages/ui/demo-public/styles.css --watch",
23
+ "dev:demo:js": "esbuild packages/ui/src/demo/main.tsx --bundle --outfile=packages/ui/demo-public/bundle.js --format=esm --jsx=automatic --loader:.tsx=tsx --watch --servedir=packages/ui/demo-public",
24
+ "dev:demo": "concurrently -k -n css,js \"npm run dev:demo:css\" \"npm run dev:demo:js\"",
25
+ "dev": "npm run dev:demo",
26
+ "demo:build": "postcss ./packages/ui/src/demo/styles.css -o ./packages/ui/demo-dist/styles.css && esbuild packages/ui/src/demo/main.tsx --bundle --outfile=packages/ui/demo-dist/bundle.js --format=esm --jsx=automatic --loader:.tsx=tsx --minify && cp packages/ui/demo-public/index.html packages/ui/demo-dist/index.html",
27
+ "demo:preview": "serve packages/ui/demo-dist -l 4173",
28
+ "lint": "cd packages/ui && eslint .",
29
+ "format": "prettier --write \"packages/ui/**/*.{ts,tsx}\"",
30
+ "typecheck": "cd packages/ui && tsc --noEmit"
31
+ },
32
+ "peerDependencies": {
33
+ "react": "^18.0.0 || ^19.0.0",
34
+ "react-dom": "^18.0.0 || ^19.0.0"
35
+ },
36
+ "dependencies": {
37
+ "@radix-ui/react-aspect-ratio": "^1.1.7",
38
+ "@radix-ui/react-checkbox": "^1.3.3",
39
+ "@radix-ui/react-hover-card": "^1.1.15",
40
+ "@radix-ui/react-radio-group": "^1.3.8",
41
+ "@radix-ui/react-scroll-area": "^1.2.10",
42
+ "@radix-ui/react-separator": "^1.1.7",
43
+ "@radix-ui/react-slot": "^1.2.3",
44
+ "@radix-ui/react-tooltip": "^1.2.8",
45
+ "@tanstack/react-table": "^8.21.3",
46
+ "class-variance-authority": "^0.7.1",
47
+ "clsx": "^2.1.1",
48
+ "cmdk": "^1.1.1",
49
+ "date-fns": "^4.1.0",
50
+ "embla-carousel-react": "^8.6.0",
51
+ "input-otp": "^1.4.2",
52
+ "lucide-react": "^1.7.0",
53
+ "next-themes": "^0.4.6",
54
+ "radix-ui": "^1.4.3",
55
+ "react-day-picker": "^9.14.0",
56
+ "react-resizable-panels": "^2.1.9",
57
+ "recharts": "^2.15.4",
58
+ "shadcn": "^4.1.0",
59
+ "sonner": "^2.0.7",
60
+ "tailwind-merge": "^3.5.0",
61
+ "tw-animate-css": "^1.4.0",
62
+ "zod": "^3.25.76"
63
+ },
64
+ "devDependencies": {
65
+ "@semantic-release/changelog": "^6.0.3",
66
+ "@semantic-release/git": "^10.0.1",
67
+ "@tailwindcss/postcss": "^4.1.18",
68
+ "@types/node": "^25.1.0",
69
+ "@types/react": "^19.2.10",
70
+ "@types/react-dom": "^19.2.3",
71
+ "@workspace/eslint-config": "*",
72
+ "@workspace/typescript-config": "*",
73
+ "concurrently": "^9.2.1",
74
+ "esbuild": "^0.25.8",
75
+ "eslint": "^9.39.2",
76
+ "postcss": "^8.5.6",
77
+ "postcss-cli": "^11.0.1",
78
+ "prettier": "^3.8.1",
79
+ "prettier-plugin-tailwindcss": "^0.7.2",
80
+ "react": "^19.2.4",
81
+ "react-dom": "^19.2.4",
82
+ "semantic-release": "^24.2.9",
83
+ "serve": "^14.2.5",
84
+ "tailwindcss": "^4.1.18",
85
+ "tinyglobby": "^0.2.15",
86
+ "tsup": "^8.5.0",
87
+ "turbo": "^2.8.17",
88
+ "typescript": "5.9.3"
89
+ },
90
+ "exports": {
91
+ "./package.json": "./package.json",
92
+ "./styles.css": {
93
+ "import": "./mycelia-ui.css",
94
+ "default": "./mycelia-ui.css"
95
+ },
96
+ "./mycelia-ui.css": {
97
+ "import": "./mycelia-ui.css",
98
+ "default": "./mycelia-ui.css"
99
+ },
100
+ "./globals.css": "./packages/ui/src/styles/globals.css",
101
+ "./postcss.config": "./packages/ui/postcss.config.mjs",
102
+ "./lib/*": {
103
+ "types": "./packages/ui/dist/lib/*.d.mts",
104
+ "import": "./packages/ui/dist/lib/*.js",
105
+ "default": "./packages/ui/dist/lib/*.js"
106
+ },
107
+ "./components/*": {
108
+ "types": "./packages/ui/dist/components/*.d.mts",
109
+ "import": "./packages/ui/dist/components/*.js",
110
+ "default": "./packages/ui/dist/components/*.js"
111
+ }
112
+ },
113
+ "files": [
114
+ "mycelia-ui.css",
115
+ "packages/ui/dist",
116
+ "packages/ui/src/styles",
117
+ "packages/ui/postcss.config.mjs",
118
+ "scripts/prepare-build.mjs"
119
+ ],
120
+ "engines": {
121
+ "node": ">=20"
122
+ },
123
+ "workspaces": [
124
+ "packages/eslint-config",
125
+ "packages/typescript-config"
126
+ ]
127
+ }
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { Accordion as Accordion$1 } from 'radix-ui';
3
+
4
+ declare const Accordion: React.ForwardRefExoticComponent<(Accordion$1.AccordionSingleProps | Accordion$1.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
5
+ declare const AccordionItem: React.ForwardRefExoticComponent<Omit<Accordion$1.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<Accordion$1.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<Accordion$1.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+
9
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -0,0 +1,74 @@
1
+ import * as React from 'react';
2
+ import { Accordion as Accordion$1 } from 'radix-ui';
3
+ import { ChevronDown } from 'lucide-react';
4
+ import { clsx } from 'clsx';
5
+ import { twMerge } from 'tailwind-merge';
6
+ import { jsx, jsxs } from 'react/jsx-runtime';
7
+
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ var Accordion = Accordion$1.Root;
12
+ var AccordionItem = React.forwardRef(function AccordionItem2({ className, ...props }, ref) {
13
+ return /* @__PURE__ */ jsx(
14
+ Accordion$1.Item,
15
+ {
16
+ ref,
17
+ "data-slot": "accordion-item",
18
+ className: cn(
19
+ "border-b border-solid border-[color:var(--mila-accordion-border)] last:border-b-0",
20
+ className
21
+ ),
22
+ ...props
23
+ }
24
+ );
25
+ });
26
+ AccordionItem.displayName = "AccordionItem";
27
+ var AccordionTrigger = React.forwardRef(function AccordionTrigger2({ className, children, ...props }, ref) {
28
+ return /* @__PURE__ */ jsx(Accordion$1.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
29
+ Accordion$1.Trigger,
30
+ {
31
+ ref,
32
+ "data-slot": "accordion-trigger",
33
+ className: cn(
34
+ "flex flex-1 items-center gap-2 rounded-lg border-2 border-transparent py-[13.5px] text-left font-sans text-sm font-medium leading-[1.5] tracking-[0.07px] text-[color:var(--mila-accordion-trigger-fg)] outline-none transition-[color,border-color]",
35
+ "focus-visible:border-solid focus-visible:border-[color:var(--mila-accordion-trigger-focus-border)]",
36
+ "disabled:pointer-events-none disabled:opacity-50",
37
+ "[&[data-state=open]>svg]:rotate-180",
38
+ className
39
+ ),
40
+ ...props,
41
+ children: [
42
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 flex-1", children }),
43
+ /* @__PURE__ */ jsx(
44
+ ChevronDown,
45
+ {
46
+ className: "pointer-events-none size-4 shrink-0 transition-transform duration-200",
47
+ "aria-hidden": true
48
+ }
49
+ )
50
+ ]
51
+ }
52
+ ) });
53
+ });
54
+ AccordionTrigger.displayName = "AccordionTrigger";
55
+ var AccordionContent = React.forwardRef(function AccordionContent2({ className, children, ...props }, ref) {
56
+ return /* @__PURE__ */ jsx(
57
+ Accordion$1.Content,
58
+ {
59
+ ref,
60
+ "data-slot": "accordion-content",
61
+ className: cn(
62
+ "overflow-hidden font-sans text-sm font-medium leading-[1.5] tracking-[0.07px] text-[color:var(--mila-accordion-content-fg)]",
63
+ "data-[state=closed]:animate-mila-accordion-up data-[state=open]:animate-mila-accordion-down"
64
+ ),
65
+ ...props,
66
+ children: /* @__PURE__ */ jsx("div", { className: cn("pb-4 pt-0", className), children })
67
+ }
68
+ );
69
+ });
70
+ AccordionContent.displayName = "AccordionContent";
71
+
72
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
73
+ //# sourceMappingURL=accordion.js.map
74
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/accordion.tsx"],"names":["AccordionPrimitive","AccordionItem","AccordionTrigger","AccordionContent"],"mappings":";;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACGA,IAAM,YAAYA,WAAA,CAAmB;AAErC,IAAM,aAAA,GAAsB,iBAG1B,SAASC,cAAAA,CAAc,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AACrD,EAAA,uBACE,GAAA;AAAA,IAACD,WAAA,CAAmB,IAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,mFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,aAAA,CAAc,WAAA,GAAc,eAAA;AAE5B,IAAM,gBAAA,GAAyB,KAAA,CAAA,UAAA,CAG7B,SAASE,iBAAAA,CAAiB,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AAClE,EAAA,uBACE,GAAA,CAACF,WAAA,CAAmB,MAAA,EAAnB,EAA0B,WAAU,MAAA,EACnC,QAAA,kBAAA,IAAA;AAAA,IAACA,WAAA,CAAmB,OAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,sPAAA;AAAA,QACA,oGAAA;AAAA,QACA,kDAAA;AAAA,QACA,qCAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,gBAAA,EAAkB,QAAA,EAAS,CAAA;AAAA,wBAC3C,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAU,uEAAA;AAAA,YACV,aAAA,EAAW;AAAA;AAAA;AACb;AAAA;AAAA,GACF,EACF,CAAA;AAEJ,CAAC;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAE/B,IAAM,gBAAA,GAAyB,KAAA,CAAA,UAAA,CAG7B,SAASG,iBAAAA,CAAiB,EAAE,WAAW,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AAClE,EAAA,uBACE,GAAA;AAAA,IAACH,WAAA,CAAmB,OAAA;AAAA,IAAnB;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,mBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,6HAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,GAAG,WAAA,EAAa,SAAS,GAAI,QAAA,EAAS;AAAA;AAAA,GACxD;AAEJ,CAAC;AACD,gBAAA,CAAiB,WAAA,GAAc,kBAAA","file":"accordion.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\nimport { ChevronDown } from \"lucide-react\"\n\nimport { cn } from \"../lib/utils.js\"\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(function AccordionItem({ className, ...props }, ref) {\n return (\n <AccordionPrimitive.Item\n ref={ref}\n data-slot=\"accordion-item\"\n className={cn(\n \"border-b border-solid border-[color:var(--mila-accordion-border)] last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n})\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(function AccordionTrigger({ className, children, ...props }, ref) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n data-slot=\"accordion-trigger\"\n className={cn(\n \"flex flex-1 items-center gap-2 rounded-lg border-2 border-transparent py-[13.5px] text-left font-sans text-sm font-medium leading-[1.5] tracking-[0.07px] text-[color:var(--mila-accordion-trigger-fg)] outline-none transition-[color,border-color]\",\n \"focus-visible:border-solid focus-visible:border-[color:var(--mila-accordion-trigger-focus-border)]\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"[&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n <span className=\"min-w-0 flex-1\">{children}</span>\n <ChevronDown\n className=\"pointer-events-none size-4 shrink-0 transition-transform duration-200\"\n aria-hidden\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n})\nAccordionTrigger.displayName = \"AccordionTrigger\"\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(function AccordionContent({ className, children, ...props }, ref) {\n return (\n <AccordionPrimitive.Content\n ref={ref}\n data-slot=\"accordion-content\"\n className={cn(\n \"overflow-hidden font-sans text-sm font-medium leading-[1.5] tracking-[0.07px] text-[color:var(--mila-accordion-content-fg)]\",\n \"data-[state=closed]:animate-mila-accordion-up data-[state=open]:animate-mila-accordion-down\"\n )}\n {...props}\n >\n <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n )\n})\nAccordionContent.displayName = \"AccordionContent\"\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"]}
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ import { AlertDialog as AlertDialog$1 } from 'radix-ui';
3
+
4
+ declare const AlertDialog: React.FC<AlertDialog$1.AlertDialogProps>;
5
+ declare const AlertDialogTrigger: React.ForwardRefExoticComponent<AlertDialog$1.AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ declare const AlertDialogPortal: React.FC<AlertDialog$1.AlertDialogPortalProps>;
7
+ declare const AlertDialogOverlay: React.ForwardRefExoticComponent<Omit<AlertDialog$1.AlertDialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const AlertDialogContent: React.ForwardRefExoticComponent<Omit<AlertDialog$1.AlertDialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ declare const AlertDialogHeader: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ declare const AlertDialogFooter: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
11
+ /**
12
+ * Destructive flows (Figma mobile): stack with primary action first; desktop shows Cancel left, action right.
13
+ * Pass children in order: `AlertDialogAction` (destructive), then `AlertDialogCancel`.
14
+ */
15
+ destructiveOrder?: boolean;
16
+ } & React.RefAttributes<HTMLDivElement>>;
17
+ declare const AlertDialogTitle: React.ForwardRefExoticComponent<Omit<AlertDialog$1.AlertDialogTitleProps & React.RefAttributes<HTMLHeadingElement>, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
18
+ declare const AlertDialogDescription: React.ForwardRefExoticComponent<Omit<AlertDialog$1.AlertDialogDescriptionProps & React.RefAttributes<HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
19
+ declare const AlertDialogAction: React.ForwardRefExoticComponent<AlertDialog$1.AlertDialogActionProps & React.RefAttributes<HTMLButtonElement>>;
20
+ declare const AlertDialogCancel: React.ForwardRefExoticComponent<AlertDialog$1.AlertDialogCancelProps & React.RefAttributes<HTMLButtonElement>>;
21
+
22
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
@@ -0,0 +1,117 @@
1
+ import * as React from 'react';
2
+ import { AlertDialog as AlertDialog$1 } from 'radix-ui';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ var AlertDialog = AlertDialog$1.AlertDialog;
11
+ var AlertDialogTrigger = AlertDialog$1.AlertDialogTrigger;
12
+ var AlertDialogPortal = AlertDialog$1.AlertDialogPortal;
13
+ var AlertDialogOverlay = React.forwardRef(function AlertDialogOverlay2({ className, ...props }, ref) {
14
+ return /* @__PURE__ */ jsx(
15
+ AlertDialog$1.AlertDialogOverlay,
16
+ {
17
+ ref,
18
+ "data-slot": "alert-dialog-overlay",
19
+ className: cn(
20
+ "fixed inset-0 z-50 bg-[color:var(--mila-dialog-overlay-bg)]",
21
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
22
+ className
23
+ ),
24
+ ...props
25
+ }
26
+ );
27
+ });
28
+ AlertDialogOverlay.displayName = "AlertDialogOverlay";
29
+ var AlertDialogContent = React.forwardRef(function AlertDialogContent2({ className, children, ...props }, ref) {
30
+ return /* @__PURE__ */ jsxs(AlertDialogPortal, { children: [
31
+ /* @__PURE__ */ jsx(AlertDialogOverlay, {}),
32
+ /* @__PURE__ */ jsx(
33
+ AlertDialog$1.AlertDialogContent,
34
+ {
35
+ ref,
36
+ "data-slot": "alert-dialog-content",
37
+ className: cn(
38
+ "fixed left-[50%] top-[50%] z-50 flex w-[calc(100vw-2rem)] max-w-[320px] translate-x-[-50%] translate-y-[-50%] flex-col gap-4 rounded-[16px] border border-solid border-[color:var(--mila-alert-dialog-border)] bg-[color:var(--mila-alert-dialog-bg)] p-8 shadow-[var(--mila-alert-dialog-shadow)] outline-none sm:max-w-[480px]",
39
+ "focus-visible:ring-[3px] focus-visible:ring-[color:var(--mila-alert-dialog-content-focus-ring)] focus-visible:ring-offset-0",
40
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",
41
+ className
42
+ ),
43
+ ...props,
44
+ children
45
+ }
46
+ )
47
+ ] });
48
+ });
49
+ AlertDialogContent.displayName = "AlertDialogContent";
50
+ var AlertDialogHeader = React.forwardRef(
51
+ function AlertDialogHeader2({ className, ...props }, ref) {
52
+ return /* @__PURE__ */ jsx(
53
+ "div",
54
+ {
55
+ ref,
56
+ "data-slot": "alert-dialog-header",
57
+ className: cn("flex flex-col gap-4", className),
58
+ ...props
59
+ }
60
+ );
61
+ }
62
+ );
63
+ AlertDialogHeader.displayName = "AlertDialogHeader";
64
+ var AlertDialogFooter = React.forwardRef(
65
+ function AlertDialogFooter2({ className, destructiveOrder = false, ...props }, ref) {
66
+ return /* @__PURE__ */ jsx(
67
+ "div",
68
+ {
69
+ ref,
70
+ "data-slot": "alert-dialog-footer",
71
+ className: cn(
72
+ "flex w-full gap-2",
73
+ destructiveOrder ? "flex-col sm:flex-row-reverse sm:justify-start [&>*]:w-full sm:[&>*]:w-auto" : "flex-col sm:flex-row sm:justify-end [&>*]:w-full sm:[&>*]:w-auto",
74
+ className
75
+ ),
76
+ ...props
77
+ }
78
+ );
79
+ }
80
+ );
81
+ AlertDialogFooter.displayName = "AlertDialogFooter";
82
+ var AlertDialogTitle = React.forwardRef(function AlertDialogTitle2({ className, ...props }, ref) {
83
+ return /* @__PURE__ */ jsx(
84
+ AlertDialog$1.AlertDialogTitle,
85
+ {
86
+ ref,
87
+ "data-slot": "alert-dialog-title",
88
+ className: cn(
89
+ "text-center font-sans text-[20px] font-semibold leading-[1.2] tracking-[-0.4px] text-[color:var(--mila-alert-dialog-title-fg)] sm:text-left",
90
+ className
91
+ ),
92
+ ...props
93
+ }
94
+ );
95
+ });
96
+ AlertDialogTitle.displayName = "AlertDialogTitle";
97
+ var AlertDialogDescription = React.forwardRef(function AlertDialogDescription2({ className, ...props }, ref) {
98
+ return /* @__PURE__ */ jsx(
99
+ AlertDialog$1.AlertDialogDescription,
100
+ {
101
+ ref,
102
+ "data-slot": "alert-dialog-description",
103
+ className: cn(
104
+ "text-center font-sans text-sm font-medium leading-[1.5] tracking-[0.07px] text-[color:var(--mila-alert-dialog-description-fg)] sm:text-left",
105
+ className
106
+ ),
107
+ ...props
108
+ }
109
+ );
110
+ });
111
+ AlertDialogDescription.displayName = "AlertDialogDescription";
112
+ var AlertDialogAction = AlertDialog$1.AlertDialogAction;
113
+ var AlertDialogCancel = AlertDialog$1.AlertDialogCancel;
114
+
115
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
116
+ //# sourceMappingURL=alert-dialog.js.map
117
+ //# sourceMappingURL=alert-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/alert-dialog.tsx"],"names":["AlertDialogPrimitive","AlertDialogOverlay","AlertDialogContent","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription"],"mappings":"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","file":"alert-dialog.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { AlertDialog as AlertDialogPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../lib/utils.js\"\n\nconst AlertDialog = AlertDialogPrimitive.AlertDialog\n\nconst AlertDialogTrigger = AlertDialogPrimitive.AlertDialogTrigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.AlertDialogPortal\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.AlertDialogOverlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.AlertDialogOverlay>\n>(function AlertDialogOverlay({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.AlertDialogOverlay\n ref={ref}\n data-slot=\"alert-dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-[color:var(--mila-dialog-overlay-bg)]\",\n \"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})\nAlertDialogOverlay.displayName = \"AlertDialogOverlay\"\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.AlertDialogContent>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.AlertDialogContent>\n>(function AlertDialogContent({ className, children, ...props }, ref) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.AlertDialogContent\n ref={ref}\n data-slot=\"alert-dialog-content\"\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 flex w-[calc(100vw-2rem)] max-w-[320px] translate-x-[-50%] translate-y-[-50%] flex-col gap-4 rounded-[16px] border border-solid border-[color:var(--mila-alert-dialog-border)] bg-[color:var(--mila-alert-dialog-bg)] p-8 shadow-[var(--mila-alert-dialog-shadow)] outline-none sm:max-w-[480px]\",\n \"focus-visible:ring-[3px] focus-visible:ring-[color:var(--mila-alert-dialog-content-focus-ring)] focus-visible:ring-offset-0\",\n \"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 {children}\n </AlertDialogPrimitive.AlertDialogContent>\n </AlertDialogPortal>\n )\n})\nAlertDialogContent.displayName = \"AlertDialogContent\"\n\nconst AlertDialogHeader = React.forwardRef<HTMLDivElement, React.ComponentPropsWithoutRef<\"div\">>(\n function AlertDialogHeader({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-header\"\n className={cn(\"flex flex-col gap-4\", className)}\n {...props}\n />\n )\n }\n)\nAlertDialogHeader.displayName = \"AlertDialogHeader\"\n\ntype AlertDialogFooterProps = React.ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Destructive flows (Figma mobile): stack with primary action first; desktop shows Cancel left, action right.\n * Pass children in order: `AlertDialogAction` (destructive), then `AlertDialogCancel`.\n */\n destructiveOrder?: boolean\n}\n\nconst AlertDialogFooter = React.forwardRef<HTMLDivElement, AlertDialogFooterProps>(\n function AlertDialogFooter({ className, destructiveOrder = false, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-slot=\"alert-dialog-footer\"\n className={cn(\n \"flex w-full gap-2\",\n destructiveOrder\n ? \"flex-col sm:flex-row-reverse sm:justify-start [&>*]:w-full sm:[&>*]:w-auto\"\n : \"flex-col sm:flex-row sm:justify-end [&>*]:w-full sm:[&>*]:w-auto\",\n className\n )}\n {...props}\n />\n )\n }\n)\nAlertDialogFooter.displayName = \"AlertDialogFooter\"\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.AlertDialogTitle>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.AlertDialogTitle>\n>(function AlertDialogTitle({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.AlertDialogTitle\n ref={ref}\n data-slot=\"alert-dialog-title\"\n className={cn(\n \"text-center font-sans text-[20px] font-semibold leading-[1.2] tracking-[-0.4px] text-[color:var(--mila-alert-dialog-title-fg)] sm:text-left\",\n className\n )}\n {...props}\n />\n )\n})\nAlertDialogTitle.displayName = \"AlertDialogTitle\"\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.AlertDialogDescription>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.AlertDialogDescription>\n>(function AlertDialogDescription({ className, ...props }, ref) {\n return (\n <AlertDialogPrimitive.AlertDialogDescription\n ref={ref}\n data-slot=\"alert-dialog-description\"\n className={cn(\n \"text-center font-sans text-sm font-medium leading-[1.5] tracking-[0.07px] text-[color:var(--mila-alert-dialog-description-fg)] sm:text-left\",\n className\n )}\n {...props}\n />\n )\n})\nAlertDialogDescription.displayName = \"AlertDialogDescription\"\n\nconst AlertDialogAction = AlertDialogPrimitive.AlertDialogAction\n\nconst AlertDialogCancel = AlertDialogPrimitive.AlertDialogCancel\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n}\n"]}
@@ -0,0 +1,28 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const alertVariants: (props?: ({
7
+ variant?: "neutral" | "error" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ type AlertProps = React.ComponentProps<"div"> & VariantProps<typeof alertVariants> & {
10
+ icon?: React.ReactNode;
11
+ /** Figma “Flip icon”: icon after the text block (still inside the main row). */
12
+ iconPlacement?: "start" | "end";
13
+ action?: React.ReactNode;
14
+ };
15
+ declare const Alert: React.ForwardRefExoticComponent<Omit<AlertProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
16
+ type AlertIconProps = React.ComponentProps<"div">;
17
+ declare const AlertIcon: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ type AlertTitleProps = React.ComponentProps<"p">;
19
+ declare const AlertTitle: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
20
+ type AlertDescriptionProps = React.ComponentProps<"p">;
21
+ declare const AlertDescription: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
22
+ type AlertActionProps = React.ComponentProps<"div">;
23
+ declare function AlertAction({ className, ...props }: AlertActionProps): react_jsx_runtime.JSX.Element;
24
+ declare namespace AlertAction {
25
+ var displayName: string;
26
+ }
27
+
28
+ export { Alert, AlertAction, type AlertActionProps, AlertDescription, type AlertDescriptionProps, AlertIcon, type AlertIconProps, type AlertProps, AlertTitle, type AlertTitleProps, alertVariants };
@@ -0,0 +1,140 @@
1
+ import * as React from 'react';
2
+ import { cva } from 'class-variance-authority';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ // src/components/alert.tsx
8
+ function cn(...inputs) {
9
+ return twMerge(clsx(inputs));
10
+ }
11
+ var alertVariants = cva(
12
+ "flex w-full items-center gap-4 rounded-lg border border-solid bg-background p-4 font-sans",
13
+ {
14
+ variants: {
15
+ variant: {
16
+ neutral: "border-[color:var(--mila-alert-border)]",
17
+ error: "border-[color:var(--mila-alert-border)]"
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ variant: "neutral"
22
+ }
23
+ }
24
+ );
25
+ var AlertContext = React.createContext(null);
26
+ function useAlertContext(component) {
27
+ const ctx = React.useContext(AlertContext);
28
+ if (!ctx) {
29
+ throw new Error(`${component} must be used within <Alert>`);
30
+ }
31
+ return ctx;
32
+ }
33
+ var Alert = React.forwardRef(function Alert2({
34
+ className,
35
+ variant: variantProp = "neutral",
36
+ icon,
37
+ iconPlacement = "start",
38
+ action,
39
+ children,
40
+ role = "alert",
41
+ ...props
42
+ }, ref) {
43
+ const variant = variantProp ?? "neutral";
44
+ const value = React.useMemo(() => ({ variant }), [variant]);
45
+ const iconSlot = icon ? /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ "data-slot": "alert-icon",
49
+ className: cn(
50
+ "flex shrink-0 items-center pt-[3px] [&_svg]:size-4 [&_svg]:shrink-0",
51
+ variant === "error" && "text-[color:var(--mila-alert-error-fg)]",
52
+ variant === "neutral" && "text-foreground"
53
+ ),
54
+ children: icon
55
+ }
56
+ ) : null;
57
+ return /* @__PURE__ */ jsx(AlertContext.Provider, { value, children: /* @__PURE__ */ jsxs(
58
+ "div",
59
+ {
60
+ ref,
61
+ role,
62
+ "data-slot": "alert",
63
+ className: cn(alertVariants({ variant }), className),
64
+ ...props,
65
+ children: [
66
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 items-start gap-3", children: [
67
+ iconPlacement === "start" ? iconSlot : null,
68
+ /* @__PURE__ */ jsx("div", { className: "flex min-w-0 flex-1 flex-col gap-px text-sm font-medium leading-normal tracking-[0.07px]", children }),
69
+ iconPlacement === "end" ? iconSlot : null
70
+ ] }),
71
+ action ? /* @__PURE__ */ jsx("div", { "data-slot": "alert-action", className: "shrink-0", children: action }) : null
72
+ ]
73
+ }
74
+ ) });
75
+ });
76
+ Alert.displayName = "Alert";
77
+ var AlertIcon = React.forwardRef(function AlertIcon2({ className, ...props }, ref) {
78
+ const { variant } = useAlertContext("AlertIcon");
79
+ return /* @__PURE__ */ jsx(
80
+ "div",
81
+ {
82
+ ref,
83
+ "data-slot": "alert-icon",
84
+ className: cn(
85
+ "flex shrink-0 items-center pt-[3px] [&_svg]:size-4 [&_svg]:shrink-0",
86
+ variant === "error" && "text-[color:var(--mila-alert-error-fg)]",
87
+ variant === "neutral" && "text-foreground",
88
+ className
89
+ ),
90
+ ...props
91
+ }
92
+ );
93
+ });
94
+ AlertIcon.displayName = "AlertIcon";
95
+ var AlertTitle = React.forwardRef(function AlertTitle2({ className, ...props }, ref) {
96
+ const { variant } = useAlertContext("AlertTitle");
97
+ return /* @__PURE__ */ jsx(
98
+ "p",
99
+ {
100
+ ref,
101
+ "data-slot": "alert-title",
102
+ className: cn(
103
+ "w-full shrink-0 font-medium",
104
+ variant === "neutral" && "text-[color:var(--mila-alert-neutral-title)]",
105
+ variant === "error" && "text-[color:var(--mila-alert-error-fg)]",
106
+ className
107
+ ),
108
+ ...props
109
+ }
110
+ );
111
+ });
112
+ AlertTitle.displayName = "AlertTitle";
113
+ var AlertDescription = React.forwardRef(
114
+ function AlertDescription2({ className, ...props }, ref) {
115
+ const { variant } = useAlertContext("AlertDescription");
116
+ return /* @__PURE__ */ jsx(
117
+ "p",
118
+ {
119
+ ref,
120
+ "data-slot": "alert-description",
121
+ className: cn(
122
+ "w-full shrink-0 font-medium",
123
+ variant === "neutral" && "text-[color:var(--mila-alert-neutral-description)]",
124
+ variant === "error" && "text-[color:var(--mila-alert-error-fg)]",
125
+ className
126
+ ),
127
+ ...props
128
+ }
129
+ );
130
+ }
131
+ );
132
+ AlertDescription.displayName = "AlertDescription";
133
+ function AlertAction({ className, ...props }) {
134
+ return /* @__PURE__ */ jsx("div", { "data-slot": "alert-action", className: cn("shrink-0", className), ...props });
135
+ }
136
+ AlertAction.displayName = "AlertAction";
137
+
138
+ export { Alert, AlertAction, AlertDescription, AlertIcon, AlertTitle, alertVariants };
139
+ //# sourceMappingURL=alert.js.map
140
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/alert.tsx"],"names":["Alert","AlertIcon","AlertTitle","AlertDescription"],"mappings":"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","file":"alert.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../lib/utils.js\"\n\nconst alertVariants = cva(\n \"flex w-full items-center gap-4 rounded-lg border border-solid bg-background p-4 font-sans\",\n {\n variants: {\n variant: {\n neutral: \"border-[color:var(--mila-alert-border)]\",\n error: \"border-[color:var(--mila-alert-border)]\",\n },\n },\n defaultVariants: {\n variant: \"neutral\",\n },\n }\n)\n\ntype AlertVariant = \"neutral\" | \"error\"\n\ntype AlertContextValue = {\n variant: AlertVariant\n}\n\nconst AlertContext = React.createContext<AlertContextValue | null>(null)\n\nfunction useAlertContext(component: string) {\n const ctx = React.useContext(AlertContext)\n if (!ctx) {\n throw new Error(`${component} must be used within <Alert>`)\n }\n return ctx\n}\n\nexport type AlertProps = React.ComponentProps<\"div\"> &\n VariantProps<typeof alertVariants> & {\n icon?: React.ReactNode\n /** Figma “Flip icon”: icon after the text block (still inside the main row). */\n iconPlacement?: \"start\" | \"end\"\n action?: React.ReactNode\n }\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(function Alert(\n {\n className,\n variant: variantProp = \"neutral\",\n icon,\n iconPlacement = \"start\",\n action,\n children,\n role = \"alert\",\n ...props\n },\n ref\n) {\n const variant: AlertVariant = variantProp ?? \"neutral\"\n const value = React.useMemo(() => ({ variant }), [variant])\n\n const iconSlot = icon ? (\n <div\n data-slot=\"alert-icon\"\n className={cn(\n \"flex shrink-0 items-center pt-[3px] [&_svg]:size-4 [&_svg]:shrink-0\",\n variant === \"error\" && \"text-[color:var(--mila-alert-error-fg)]\",\n variant === \"neutral\" && \"text-foreground\"\n )}\n >\n {icon}\n </div>\n ) : null\n\n return (\n <AlertContext.Provider value={value}>\n <div\n ref={ref}\n role={role}\n data-slot=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n <div className=\"flex min-w-0 flex-1 items-start gap-3\">\n {iconPlacement === \"start\" ? iconSlot : null}\n <div className=\"flex min-w-0 flex-1 flex-col gap-px text-sm font-medium leading-normal tracking-[0.07px]\">\n {children}\n </div>\n {iconPlacement === \"end\" ? iconSlot : null}\n </div>\n {action ? (\n <div data-slot=\"alert-action\" className=\"shrink-0\">\n {action}\n </div>\n ) : null}\n </div>\n </AlertContext.Provider>\n )\n})\nAlert.displayName = \"Alert\"\n\nexport type AlertIconProps = React.ComponentProps<\"div\">\n\nconst AlertIcon = React.forwardRef<HTMLDivElement, AlertIconProps>(function AlertIcon(\n { className, ...props },\n ref\n) {\n const { variant } = useAlertContext(\"AlertIcon\")\n return (\n <div\n ref={ref}\n data-slot=\"alert-icon\"\n className={cn(\n \"flex shrink-0 items-center pt-[3px] [&_svg]:size-4 [&_svg]:shrink-0\",\n variant === \"error\" && \"text-[color:var(--mila-alert-error-fg)]\",\n variant === \"neutral\" && \"text-foreground\",\n className\n )}\n {...props}\n />\n )\n})\nAlertIcon.displayName = \"AlertIcon\"\n\nexport type AlertTitleProps = React.ComponentProps<\"p\">\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, AlertTitleProps>(function AlertTitle(\n { className, ...props },\n ref\n) {\n const { variant } = useAlertContext(\"AlertTitle\")\n return (\n <p\n ref={ref}\n data-slot=\"alert-title\"\n className={cn(\n \"w-full shrink-0 font-medium\",\n variant === \"neutral\" && \"text-[color:var(--mila-alert-neutral-title)]\",\n variant === \"error\" && \"text-[color:var(--mila-alert-error-fg)]\",\n className\n )}\n {...props}\n />\n )\n})\nAlertTitle.displayName = \"AlertTitle\"\n\nexport type AlertDescriptionProps = React.ComponentProps<\"p\">\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, AlertDescriptionProps>(\n function AlertDescription({ className, ...props }, ref) {\n const { variant } = useAlertContext(\"AlertDescription\")\n return (\n <p\n ref={ref}\n data-slot=\"alert-description\"\n className={cn(\n \"w-full shrink-0 font-medium\",\n variant === \"neutral\" && \"text-[color:var(--mila-alert-neutral-description)]\",\n variant === \"error\" && \"text-[color:var(--mila-alert-error-fg)]\",\n className\n )}\n {...props}\n />\n )\n }\n)\nAlertDescription.displayName = \"AlertDescription\"\n\nexport type AlertActionProps = React.ComponentProps<\"div\">\n\nfunction AlertAction({ className, ...props }: AlertActionProps) {\n return <div data-slot=\"alert-action\" className={cn(\"shrink-0\", className)} {...props} />\n}\nAlertAction.displayName = \"AlertAction\"\n\nexport { Alert, AlertAction, AlertDescription, AlertIcon, AlertTitle, alertVariants }\n"]}
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
3
+
4
+ /** Radix places `className` on the inner absolute layer; `max-w-*` there does not shrink the outer padding-bottom box—constrain width on a parent wrapper. */
5
+ declare const AspectRatio: React.ForwardRefExoticComponent<Omit<AspectRatioPrimitive.AspectRatioProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+
7
+ export { AspectRatio };
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
3
+ import { clsx } from 'clsx';
4
+ import { twMerge } from 'tailwind-merge';
5
+ import { jsx } from 'react/jsx-runtime';
6
+
7
+ function cn(...inputs) {
8
+ return twMerge(clsx(inputs));
9
+ }
10
+ var AspectRatio = React.forwardRef(function AspectRatio2({ className, ...props }, ref) {
11
+ return /* @__PURE__ */ jsx(
12
+ AspectRatioPrimitive.Root,
13
+ {
14
+ ref,
15
+ "data-slot": "aspect-ratio",
16
+ className: cn(
17
+ "overflow-hidden [&_img]:block [&_picture]:block [&_picture>img]:block [&_video]:block",
18
+ className
19
+ ),
20
+ ...props
21
+ }
22
+ );
23
+ });
24
+ AspectRatio.displayName = AspectRatioPrimitive.Root.displayName;
25
+
26
+ export { AspectRatio };
27
+ //# sourceMappingURL=aspect-ratio.js.map
28
+ //# sourceMappingURL=aspect-ratio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/components/aspect-ratio.tsx"],"names":["AspectRatio"],"mappings":";;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B;ACGA,IAAM,WAAA,GAAoB,iBAGxB,SAASA,YAAAA,CAAY,EAAE,SAAA,EAAW,GAAG,KAAA,EAAM,EAAG,GAAA,EAAK;AACnD,EAAA,uBACE,GAAA;AAAA,IAAsB,oBAAA,CAAA,IAAA;AAAA,IAArB;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,uFAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;AACD,WAAA,CAAY,cAAmC,oBAAA,CAAA,IAAA,CAAK,WAAA","file":"aspect-ratio.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nimport { cn } from \"../lib/utils.js\"\n\n/** Radix places `className` on the inner absolute layer; `max-w-*` there does not shrink the outer padding-bottom box—constrain width on a parent wrapper. */\nconst AspectRatio = React.forwardRef<\n React.ElementRef<typeof AspectRatioPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AspectRatioPrimitive.Root>\n>(function AspectRatio({ className, ...props }, ref) {\n return (\n <AspectRatioPrimitive.Root\n ref={ref}\n data-slot=\"aspect-ratio\"\n className={cn(\n \"overflow-hidden [&_img]:block [&_picture]:block [&_picture>img]:block [&_video]:block\",\n className\n )}\n {...props}\n />\n )\n})\nAspectRatio.displayName = AspectRatioPrimitive.Root.displayName\n\nexport { AspectRatio }\n"]}
@@ -0,0 +1,16 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const avatarStackVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
7
+ declare const avatarStackItemVariants: (props?: ({
8
+ size?: "small" | "regular" | null | undefined;
9
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
10
+ type AvatarStackProps = React.ComponentProps<"div"> & VariantProps<typeof avatarStackItemVariants>;
11
+ declare function AvatarStack({ className, size: sizeProp, children, ...props }: AvatarStackProps): react_jsx_runtime.JSX.Element;
12
+ declare namespace AvatarStack {
13
+ var displayName: string;
14
+ }
15
+
16
+ export { AvatarStack, type AvatarStackProps, avatarStackItemVariants, avatarStackVariants };