@inspirare/design-system 0.0.10 → 0.0.12

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.
@@ -0,0 +1,16 @@
1
+ import { Loader2Icon } from "lucide-react"
2
+
3
+ import { cn } from "@/lib/utils"
4
+
5
+ function Spinner({ className, ...props }: React.ComponentProps<"svg">) {
6
+ return (
7
+ <Loader2Icon
8
+ role="status"
9
+ aria-label="Loading"
10
+ className={cn("size-4 animate-spin", className)}
11
+ {...props}
12
+ />
13
+ )
14
+ }
15
+
16
+ export { Spinner }
@@ -0,0 +1,19 @@
1
+ import * as React from "react"
2
+
3
+ const MOBILE_BREAKPOINT = 768
4
+
5
+ export function useIsMobile() {
6
+ const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)
7
+
8
+ React.useEffect(() => {
9
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)
10
+ const onChange = () => {
11
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
12
+ }
13
+ mql.addEventListener("change", onChange)
14
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
15
+ return () => mql.removeEventListener("change", onChange)
16
+ }, [])
17
+
18
+ return !!isMobile
19
+ }
package/src/index.css CHANGED
@@ -125,180 +125,6 @@
125
125
  --shadow-2xl: 0px 4px 8px 0px hsl(0 0% 0% / 0.3);
126
126
  }
127
127
 
128
- @theme inline {
129
- --color-background: var(--background);
130
- --color-foreground: var(--foreground);
131
- --color-card: var(--card);
132
- --color-card-foreground: var(--card-foreground);
133
- --color-popover: var(--popover);
134
- --color-popover-foreground: var(--popover-foreground);
135
- --color-primary: var(--primary);
136
- --color-primary-foreground: var(--primary-foreground);
137
- --color-secondary: var(--secondary);
138
- --color-secondary-foreground: var(--secondary-foreground);
139
- --color-muted: var(--muted);
140
- --color-muted-foreground: var(--muted-foreground);
141
- --color-accent: var(--accent);
142
- --color-accent-foreground: var(--accent-foreground);
143
- --color-destructive: var(--destructive);
144
- --color-destructive-foreground: var(--destructive-foreground);
145
- --color-border: var(--border);
146
- --color-input: var(--input);
147
- --color-ring: var(--ring);
148
- --color-chart-1: var(--chart-1);
149
- --color-chart-2: var(--chart-2);
150
- --color-chart-3: var(--chart-3);
151
- --color-chart-4: var(--chart-4);
152
- --color-chart-5: var(--chart-5);
153
- --radius-sm: calc(var(--radius) - 4px);
154
- --radius-md: calc(var(--radius) - 2px);
155
- --radius-lg: var(--radius);
156
- --radius-xl: calc(var(--radius) + 4px);
157
- --color-sidebar: var(--sidebar);
158
- --color-sidebar-foreground: var(--sidebar-foreground);
159
- --color-sidebar-primary: var(--sidebar-primary);
160
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
161
- --color-sidebar-accent: var(--sidebar-accent);
162
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
163
- --color-sidebar-border: var(--sidebar-border);
164
- --color-sidebar-ring: var(--sidebar-ring);
165
- --font-sans: var(--font-sans);
166
- --font-serif: var(--font-serif);
167
- --font-mono: var(--font-mono);
168
-
169
- /* Inspirare Brand Colors */
170
- --color-Inspirare-purple-50: oklch(0.95 0.05 270);
171
- --color-Inspirare-purple-100: oklch(0.9 0.1 270);
172
- --color-Inspirare-purple-200: oklch(0.85 0.15 270);
173
- --color-Inspirare-purple-300: oklch(0.8 0.18 270);
174
- --color-Inspirare-purple-400: oklch(0.7 0.2 270);
175
- --color-Inspirare-purple-500: oklch(0.6 0.2 270);
176
- --color-Inspirare-purple-600: oklch(0.55 0.22 270);
177
- --color-Inspirare-purple-700: oklch(0.5 0.24 270);
178
- --color-Inspirare-purple-800: oklch(0.4 0.26 270);
179
- --color-Inspirare-purple-900: oklch(0.3 0.28 270);
180
-
181
- --color-Inspirare-blue-50: oklch(0.95 0.05 200);
182
- --color-Inspirare-blue-100: oklch(0.9 0.08 200);
183
- --color-Inspirare-blue-200: oklch(0.85 0.12 200);
184
- --color-Inspirare-blue-300: oklch(0.8 0.15 200);
185
- --color-Inspirare-blue-400: oklch(0.75 0.15 200);
186
- --color-Inspirare-blue-500: oklch(0.7 0.18 200);
187
- --color-Inspirare-blue-600: oklch(0.65 0.2 200);
188
- --color-Inspirare-blue-700: oklch(0.6 0.22 200);
189
- --color-Inspirare-blue-800: oklch(0.5 0.24 200);
190
- --color-Inspirare-blue-900: oklch(0.4 0.26 200);
191
-
192
- /* Animations & Keyframes */
193
- --animate-accordion-down: accordion-down 0.2s ease-out;
194
- --animate-accordion-up: accordion-up 0.2s ease-out;
195
- --animate-fade-in: fade-in 0.3s ease-out;
196
- --animate-fade-in-up: fade-in-up 0.6s ease-out;
197
- --animate-slide-in-from-top: slide-in-from-top 0.3s ease-out;
198
- --animate-slide-in-from-bottom: slide-in-from-bottom 0.3s ease-out;
199
- --animate-float: float 3s ease-in-out infinite;
200
- --animate-gradient: gradient 3s ease infinite;
201
- --animate-glow: glow 2s ease-in-out infinite alternate;
202
-
203
- @keyframes accordion-down {
204
- from {
205
- height: 0;
206
- }
207
-
208
- to {
209
- height: var(--radix-accordion-content-height);
210
- }
211
- }
212
-
213
- @keyframes accordion-up {
214
- from {
215
- height: var(--radix-accordion-content-height);
216
- }
217
-
218
- to {
219
- height: 0;
220
- }
221
- }
222
-
223
- @keyframes fade-in {
224
- 0% {
225
- opacity: 0;
226
- }
227
-
228
- 100% {
229
- opacity: 1;
230
- }
231
- }
232
-
233
- @keyframes fade-in-up {
234
- 0% {
235
- opacity: 0;
236
- transform: translateY(20px);
237
- }
238
-
239
- 100% {
240
- opacity: 1;
241
- transform: translateY(0);
242
- }
243
- }
244
-
245
- @keyframes slide-in-from-top {
246
- 0% {
247
- transform: translateY(-100%);
248
- }
249
-
250
- 100% {
251
- transform: translateY(0);
252
- }
253
- }
254
-
255
- @keyframes slide-in-from-bottom {
256
- 0% {
257
- transform: translateY(100%);
258
- }
259
-
260
- 100% {
261
- transform: translateY(0);
262
- }
263
- }
264
-
265
- @keyframes float {
266
-
267
- 0%,
268
- 100% {
269
- transform: translateY(0px);
270
- }
271
-
272
- 50% {
273
- transform: translateY(-20px);
274
- }
275
- }
276
-
277
- @keyframes gradient {
278
-
279
- 0%,
280
- 100% {
281
- background-position: 0% 50%;
282
- }
283
-
284
- 50% {
285
- background-position: 100% 50%;
286
- }
287
- }
288
-
289
- @keyframes glow {
290
-
291
- 0%,
292
- 100% {
293
- box-shadow: 0 0 20px rgba(139, 92, 246, 0.3);
294
- }
295
-
296
- 50% {
297
- box-shadow: 0 0 40px rgba(139, 92, 246, 0.6);
298
- }
299
- }
300
- }
301
-
302
128
  @layer utilities {
303
129
  .glass {
304
130
  @apply bg-white/70 backdrop-blur-xl border-white/20;
@@ -812,6 +638,77 @@ body {
812
638
  --font-sans: var(--font-sans);
813
639
  --font-serif: var(--font-serif);
814
640
  --font-mono: var(--font-mono);
641
+
642
+ /* Inspirare Brand Colors */
643
+ --color-Inspirare-purple-50: oklch(0.95 0.05 270);
644
+ --color-Inspirare-purple-100: oklch(0.9 0.1 270);
645
+ --color-Inspirare-purple-200: oklch(0.85 0.15 270);
646
+ --color-Inspirare-purple-300: oklch(0.8 0.18 270);
647
+ --color-Inspirare-purple-400: oklch(0.7 0.2 270);
648
+ --color-Inspirare-purple-500: oklch(0.6 0.2 270);
649
+ --color-Inspirare-purple-600: oklch(0.55 0.22 270);
650
+ --color-Inspirare-purple-700: oklch(0.5 0.24 270);
651
+ --color-Inspirare-purple-800: oklch(0.4 0.26 270);
652
+ --color-Inspirare-purple-900: oklch(0.3 0.28 270);
653
+
654
+ --color-Inspirare-blue-50: oklch(0.95 0.05 200);
655
+ --color-Inspirare-blue-100: oklch(0.9 0.08 200);
656
+ --color-Inspirare-blue-200: oklch(0.85 0.12 200);
657
+ --color-Inspirare-blue-300: oklch(0.8 0.15 200);
658
+ --color-Inspirare-blue-400: oklch(0.75 0.15 200);
659
+ --color-Inspirare-blue-500: oklch(0.7 0.18 200);
660
+ --color-Inspirare-blue-600: oklch(0.65 0.2 200);
661
+ --color-Inspirare-blue-700: oklch(0.6 0.22 200);
662
+ --color-Inspirare-blue-800: oklch(0.5 0.24 200);
663
+ --color-Inspirare-blue-900: oklch(0.4 0.26 200);
664
+
665
+ /* Animations & Keyframes */
666
+ --animate-accordion-down: accordion-down 0.2s ease-out;
667
+ --animate-accordion-up: accordion-up 0.2s ease-out;
668
+ --animate-fade-in: fade-in 0.3s ease-out;
669
+ --animate-fade-in-up: fade-in-up 0.6s ease-out;
670
+ --animate-slide-in-from-top: slide-in-from-top 0.3s ease-out;
671
+ --animate-slide-in-from-bottom: slide-in-from-bottom 0.3s ease-out;
672
+ --animate-float: float 3s ease-in-out infinite;
673
+ --animate-gradient: gradient 3s ease infinite;
674
+ --animate-glow: glow 2s ease-in-out infinite alternate;
675
+
676
+ @keyframes accordion-down {
677
+ from { height: 0; }
678
+ to { height: var(--radix-accordion-content-height); }
679
+ }
680
+ @keyframes accordion-up {
681
+ from { height: var(--radix-accordion-content-height); }
682
+ to { height: 0; }
683
+ }
684
+ @keyframes fade-in {
685
+ 0% { opacity: 0; }
686
+ 100% { opacity: 1; }
687
+ }
688
+ @keyframes fade-in-up {
689
+ 0% { opacity: 0; transform: translateY(20px); }
690
+ 100% { opacity: 1; transform: translateY(0); }
691
+ }
692
+ @keyframes slide-in-from-top {
693
+ 0% { transform: translateY(-100%); }
694
+ 100% { transform: translateY(0); }
695
+ }
696
+ @keyframes slide-in-from-bottom {
697
+ 0% { transform: translateY(100%); }
698
+ 100% { transform: translateY(0); }
699
+ }
700
+ @keyframes float {
701
+ 0%, 100% { transform: translateY(0px); }
702
+ 50% { transform: translateY(-20px); }
703
+ }
704
+ @keyframes gradient {
705
+ 0%, 100% { background-position: 0% 50%; }
706
+ 50% { background-position: 100% 50%; }
707
+ }
708
+ @keyframes glow {
709
+ 0%, 100% { box-shadow: 0 0 20px rgba(139, 92, 246, 0.3); }
710
+ 50% { box-shadow: 0 0 40px rgba(139, 92, 246, 0.6); }
711
+ }
815
712
  }
816
713
 
817
714
  /* Added glassmorphism utilities and custom styles */
package/src/index.ts CHANGED
@@ -1,41 +1,62 @@
1
1
  import './index.css';
2
2
 
3
3
  export * from './components/ui/accordion';
4
+ export * from './components/ui/alert';
4
5
  export * from './components/ui/alert-dialog';
6
+ export * from './components/ui/aspect-ratio';
5
7
  export * from './components/ui/avatar';
6
8
  export * from './components/ui/badge';
9
+ export * from './components/ui/breadcrumb';
7
10
  export * from './components/ui/button';
11
+ export * from './components/ui/button-group';
8
12
  export * from './components/ui/calendar';
9
13
  export * from './components/ui/card';
14
+ export * from './components/ui/carousel';
15
+ export * from './components/ui/chart';
10
16
  export * from './components/ui/checkbox';
11
17
  export * from './components/ui/collapsible';
12
18
  export * from './components/ui/color-picker';
19
+ export * from './components/ui/combobox';
13
20
  export * from './components/ui/command';
21
+ export * from './components/ui/context-menu';
14
22
  export * from './components/ui/dialog';
15
23
  export * from './components/ui/drawer';
16
24
  export * from './components/ui/dropdown-menu';
25
+ export * from './components/ui/empty';
26
+ export * from './components/ui/field';
17
27
  export * from './components/ui/form';
18
28
  export * from './components/ui/hover-card';
19
29
  export * from './components/ui/input';
30
+ export * from './components/ui/input-group';
31
+ export * from './components/ui/input-otp';
32
+ export * from './components/ui/item';
33
+ export * from './components/ui/kbd';
20
34
  export * from './components/ui/label';
35
+ export * from './components/ui/menubar';
36
+ export * from './components/ui/navigation-menu';
37
+ export * from './components/ui/pagination';
21
38
  export * from './components/ui/popover';
22
39
  export * from './components/ui/progress';
23
40
  export * from './components/ui/radio-group';
41
+ export * from './components/ui/resizable';
24
42
  export * from './components/ui/scroll-area';
25
43
  export * from './components/ui/select';
26
44
  export * from './components/ui/separator';
27
45
  export * from './components/ui/sheet';
46
+ export * from './components/ui/sidebar';
28
47
  export * from './components/ui/skeleton';
29
48
  export * from './components/ui/slider';
30
49
  export * from './components/ui/sonner';
50
+ export * from './components/ui/spinner';
31
51
  export * from './components/ui/switch';
32
52
  export * from './components/ui/table';
33
53
  export * from './components/ui/tabs';
34
54
  export * from './components/ui/textarea';
35
55
  export * from './components/ui/theme-toggle';
36
- export * from './components/ui/toggle-group';
37
56
  export * from './components/ui/toggle';
57
+ export * from './components/ui/toggle-group';
38
58
  export * from './components/ui/tooltip';
39
59
  export * from './components/ui/accessibility-improvements';
40
60
 
41
61
  export * from './lib/utils';
62
+ export * from './hooks/use-mobile';