@nucel/ui 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 (147) hide show
  1. package/README.md +235 -0
  2. package/package.json +88 -0
  3. package/src/lib/components/ui/Backdrop.svelte +19 -0
  4. package/src/lib/components/ui/CountBadge.svelte +40 -0
  5. package/src/lib/components/ui/EmptyState.svelte +68 -0
  6. package/src/lib/components/ui/KbdShortcut.svelte +20 -0
  7. package/src/lib/components/ui/MarkdownRenderer.svelte +85 -0
  8. package/src/lib/components/ui/ProgressRing.svelte +61 -0
  9. package/src/lib/components/ui/ProviderIcon.svelte +57 -0
  10. package/src/lib/components/ui/ReviewBadge.svelte +54 -0
  11. package/src/lib/components/ui/Sparkline.svelte +61 -0
  12. package/src/lib/components/ui/StatusBadge.svelte +32 -0
  13. package/src/lib/components/ui/StatusDot.svelte +65 -0
  14. package/src/lib/components/ui/TabBar.svelte +127 -0
  15. package/src/lib/components/ui/VerticalSeparator.svelte +9 -0
  16. package/src/lib/components/ui/accordion/accordion-content.svelte +22 -0
  17. package/src/lib/components/ui/accordion/accordion-item.svelte +17 -0
  18. package/src/lib/components/ui/accordion/accordion-trigger.svelte +32 -0
  19. package/src/lib/components/ui/accordion/accordion.svelte +16 -0
  20. package/src/lib/components/ui/accordion/index.ts +16 -0
  21. package/src/lib/components/ui/avatar/avatar-fallback.svelte +17 -0
  22. package/src/lib/components/ui/avatar/avatar-image.svelte +17 -0
  23. package/src/lib/components/ui/avatar/avatar.svelte +19 -0
  24. package/src/lib/components/ui/avatar/index.ts +13 -0
  25. package/src/lib/components/ui/badge/badge.svelte +49 -0
  26. package/src/lib/components/ui/badge/index.ts +2 -0
  27. package/src/lib/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +23 -0
  28. package/src/lib/components/ui/breadcrumb/breadcrumb-item.svelte +20 -0
  29. package/src/lib/components/ui/breadcrumb/breadcrumb-link.svelte +31 -0
  30. package/src/lib/components/ui/breadcrumb/breadcrumb-list.svelte +23 -0
  31. package/src/lib/components/ui/breadcrumb/breadcrumb-page.svelte +23 -0
  32. package/src/lib/components/ui/breadcrumb/breadcrumb-separator.svelte +27 -0
  33. package/src/lib/components/ui/breadcrumb/breadcrumb.svelte +21 -0
  34. package/src/lib/components/ui/breadcrumb/index.ts +25 -0
  35. package/src/lib/components/ui/button/button.svelte +82 -0
  36. package/src/lib/components/ui/button/index.ts +17 -0
  37. package/src/lib/components/ui/card/card-action.svelte +20 -0
  38. package/src/lib/components/ui/card/card-content.svelte +15 -0
  39. package/src/lib/components/ui/card/card-description.svelte +20 -0
  40. package/src/lib/components/ui/card/card-footer.svelte +20 -0
  41. package/src/lib/components/ui/card/card-header.svelte +23 -0
  42. package/src/lib/components/ui/card/card-title.svelte +20 -0
  43. package/src/lib/components/ui/card/card.svelte +23 -0
  44. package/src/lib/components/ui/card/index.ts +25 -0
  45. package/src/lib/components/ui/collapsible/collapsible-content.svelte +7 -0
  46. package/src/lib/components/ui/collapsible/collapsible-trigger.svelte +7 -0
  47. package/src/lib/components/ui/collapsible/collapsible.svelte +11 -0
  48. package/src/lib/components/ui/collapsible/index.ts +13 -0
  49. package/src/lib/components/ui/dialog/dialog-close.svelte +7 -0
  50. package/src/lib/components/ui/dialog/dialog-content.svelte +45 -0
  51. package/src/lib/components/ui/dialog/dialog-description.svelte +17 -0
  52. package/src/lib/components/ui/dialog/dialog-footer.svelte +20 -0
  53. package/src/lib/components/ui/dialog/dialog-header.svelte +20 -0
  54. package/src/lib/components/ui/dialog/dialog-overlay.svelte +20 -0
  55. package/src/lib/components/ui/dialog/dialog-portal.svelte +7 -0
  56. package/src/lib/components/ui/dialog/dialog-title.svelte +17 -0
  57. package/src/lib/components/ui/dialog/dialog-trigger.svelte +7 -0
  58. package/src/lib/components/ui/dialog/dialog.svelte +7 -0
  59. package/src/lib/components/ui/dialog/index.ts +34 -0
  60. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +16 -0
  61. package/src/lib/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +41 -0
  62. package/src/lib/components/ui/dropdown-menu/dropdown-menu-content.svelte +29 -0
  63. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +22 -0
  64. package/src/lib/components/ui/dropdown-menu/dropdown-menu-group.svelte +7 -0
  65. package/src/lib/components/ui/dropdown-menu/dropdown-menu-item.svelte +27 -0
  66. package/src/lib/components/ui/dropdown-menu/dropdown-menu-label.svelte +24 -0
  67. package/src/lib/components/ui/dropdown-menu/dropdown-menu-portal.svelte +7 -0
  68. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +16 -0
  69. package/src/lib/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +31 -0
  70. package/src/lib/components/ui/dropdown-menu/dropdown-menu-separator.svelte +17 -0
  71. package/src/lib/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +20 -0
  72. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +20 -0
  73. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +29 -0
  74. package/src/lib/components/ui/dropdown-menu/dropdown-menu-sub.svelte +7 -0
  75. package/src/lib/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +7 -0
  76. package/src/lib/components/ui/dropdown-menu/dropdown-menu.svelte +7 -0
  77. package/src/lib/components/ui/dropdown-menu/index.ts +54 -0
  78. package/src/lib/components/ui/input/index.ts +7 -0
  79. package/src/lib/components/ui/input/input.svelte +52 -0
  80. package/src/lib/components/ui/label/index.ts +7 -0
  81. package/src/lib/components/ui/label/label.svelte +20 -0
  82. package/src/lib/components/ui/navigation-menu/index.ts +28 -0
  83. package/src/lib/components/ui/navigation-menu/navigation-menu-content.svelte +21 -0
  84. package/src/lib/components/ui/navigation-menu/navigation-menu-indicator.svelte +22 -0
  85. package/src/lib/components/ui/navigation-menu/navigation-menu-item.svelte +17 -0
  86. package/src/lib/components/ui/navigation-menu/navigation-menu-link.svelte +20 -0
  87. package/src/lib/components/ui/navigation-menu/navigation-menu-list.svelte +17 -0
  88. package/src/lib/components/ui/navigation-menu/navigation-menu-trigger.svelte +34 -0
  89. package/src/lib/components/ui/navigation-menu/navigation-menu-viewport.svelte +22 -0
  90. package/src/lib/components/ui/navigation-menu/navigation-menu.svelte +32 -0
  91. package/src/lib/components/ui/progress/index.ts +1 -0
  92. package/src/lib/components/ui/progress/progress.svelte +33 -0
  93. package/src/lib/components/ui/scroll-area/index.ts +10 -0
  94. package/src/lib/components/ui/scroll-area/scroll-area-scrollbar.svelte +31 -0
  95. package/src/lib/components/ui/scroll-area/scroll-area.svelte +43 -0
  96. package/src/lib/components/ui/select/index.ts +37 -0
  97. package/src/lib/components/ui/select/select-content.svelte +45 -0
  98. package/src/lib/components/ui/select/select-group-heading.svelte +21 -0
  99. package/src/lib/components/ui/select/select-group.svelte +7 -0
  100. package/src/lib/components/ui/select/select-item.svelte +38 -0
  101. package/src/lib/components/ui/select/select-label.svelte +20 -0
  102. package/src/lib/components/ui/select/select-portal.svelte +7 -0
  103. package/src/lib/components/ui/select/select-scroll-down-button.svelte +20 -0
  104. package/src/lib/components/ui/select/select-scroll-up-button.svelte +20 -0
  105. package/src/lib/components/ui/select/select-separator.svelte +18 -0
  106. package/src/lib/components/ui/select/select-trigger.svelte +29 -0
  107. package/src/lib/components/ui/select/select.svelte +11 -0
  108. package/src/lib/components/ui/separator/index.ts +7 -0
  109. package/src/lib/components/ui/separator/separator.svelte +21 -0
  110. package/src/lib/components/ui/sheet/index.ts +34 -0
  111. package/src/lib/components/ui/sheet/sheet-close.svelte +7 -0
  112. package/src/lib/components/ui/sheet/sheet-content.svelte +62 -0
  113. package/src/lib/components/ui/sheet/sheet-description.svelte +17 -0
  114. package/src/lib/components/ui/sheet/sheet-footer.svelte +20 -0
  115. package/src/lib/components/ui/sheet/sheet-header.svelte +20 -0
  116. package/src/lib/components/ui/sheet/sheet-overlay.svelte +20 -0
  117. package/src/lib/components/ui/sheet/sheet-portal.svelte +7 -0
  118. package/src/lib/components/ui/sheet/sheet-title.svelte +17 -0
  119. package/src/lib/components/ui/sheet/sheet-trigger.svelte +7 -0
  120. package/src/lib/components/ui/sheet/sheet.svelte +7 -0
  121. package/src/lib/components/ui/skeleton/index.ts +1 -0
  122. package/src/lib/components/ui/skeleton/skeleton.svelte +17 -0
  123. package/src/lib/components/ui/sonner/index.ts +1 -0
  124. package/src/lib/components/ui/sonner/sonner.svelte +10 -0
  125. package/src/lib/components/ui/tabs/index.ts +16 -0
  126. package/src/lib/components/ui/tabs/tabs-content.svelte +17 -0
  127. package/src/lib/components/ui/tabs/tabs-list.svelte +16 -0
  128. package/src/lib/components/ui/tabs/tabs-trigger.svelte +20 -0
  129. package/src/lib/components/ui/tabs/tabs.svelte +19 -0
  130. package/src/lib/components/ui/textarea/index.ts +7 -0
  131. package/src/lib/components/ui/textarea/textarea.svelte +23 -0
  132. package/src/lib/components/ui/toggle/index.ts +13 -0
  133. package/src/lib/components/ui/toggle/toggle.svelte +52 -0
  134. package/src/lib/components/ui/toggle-group/index.ts +10 -0
  135. package/src/lib/components/ui/toggle-group/toggle-group-item.svelte +35 -0
  136. package/src/lib/components/ui/toggle-group/toggle-group.svelte +65 -0
  137. package/src/lib/components/ui/tooltip/index.ts +19 -0
  138. package/src/lib/components/ui/tooltip/tooltip-content.svelte +52 -0
  139. package/src/lib/components/ui/tooltip/tooltip-portal.svelte +7 -0
  140. package/src/lib/components/ui/tooltip/tooltip-provider.svelte +7 -0
  141. package/src/lib/components/ui/tooltip/tooltip-trigger.svelte +7 -0
  142. package/src/lib/components/ui/tooltip/tooltip.svelte +7 -0
  143. package/src/lib/index.ts +244 -0
  144. package/src/lib/utils/cn.test.ts +993 -0
  145. package/src/lib/utils/cn.ts +6 -0
  146. package/src/lib/utils.ts +12 -0
  147. package/src/styles.css +127 -0
@@ -0,0 +1,6 @@
1
+ import { clsx, type ClassValue } from 'clsx';
2
+ import { twMerge } from 'tailwind-merge';
3
+
4
+ export function cn(...inputs: ClassValue[]) {
5
+ return twMerge(clsx(inputs));
6
+ }
@@ -0,0 +1,12 @@
1
+ export { cn } from './utils/cn.js';
2
+
3
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ export type WithElementRef<T = any, E extends HTMLElement = HTMLElement> = T & {
5
+ ref?: E | null;
6
+ };
7
+
8
+ export type WithoutChildren<T> = T extends { children?: unknown } ? Omit<T, 'children'> : T;
9
+
10
+ export type WithoutChild<T> = T extends { child?: unknown } ? Omit<T, 'child'> : T;
11
+
12
+ export type WithoutChildrenOrChild<T> = WithoutChildren<WithoutChild<T>>;
package/src/styles.css ADDED
@@ -0,0 +1,127 @@
1
+ @import 'tailwindcss';
2
+ @import 'tw-animate-css';
3
+
4
+ @property --angle {
5
+ syntax: '<angle>';
6
+ initial-value: 0deg;
7
+ inherits: false;
8
+ }
9
+
10
+ :root {
11
+ --radius: 0.5rem;
12
+ --background: oklch(1 0 0);
13
+ --foreground: oklch(0.141 0.005 285.823);
14
+ --card: oklch(1 0 0);
15
+ --card-foreground: oklch(0.141 0.005 285.823);
16
+ --popover: oklch(1 0 0);
17
+ --popover-foreground: oklch(0.141 0.005 285.823);
18
+ --primary: oklch(0.21 0.006 285.885);
19
+ --primary-foreground: oklch(0.985 0 0);
20
+ --secondary: oklch(0.967 0.001 286.375);
21
+ --secondary-foreground: oklch(0.21 0.006 285.885);
22
+ --muted: oklch(0.967 0.001 286.375);
23
+ --muted-foreground: oklch(0.552 0.016 285.938);
24
+ --accent: oklch(0.967 0.001 286.375);
25
+ --accent-foreground: oklch(0.21 0.006 285.885);
26
+ --destructive: oklch(0.577 0.245 27.325);
27
+ --border: oklch(0.92 0.004 286.32);
28
+ --input: oklch(0.92 0.004 286.32);
29
+ --ring: oklch(0.705 0.015 286.067);
30
+ --chart-1: oklch(0.646 0.222 41.116);
31
+ --chart-2: oklch(0.6 0.118 184.704);
32
+ --chart-3: oklch(0.398 0.07 227.392);
33
+ --chart-4: oklch(0.828 0.189 84.429);
34
+ --chart-5: oklch(0.769 0.188 70.08);
35
+ --sidebar: oklch(0.985 0 0);
36
+ --sidebar-foreground: oklch(0.141 0.005 285.823);
37
+ --sidebar-primary: oklch(0.21 0.006 285.885);
38
+ --sidebar-primary-foreground: oklch(0.985 0 0);
39
+ --sidebar-accent: oklch(0.967 0.001 286.375);
40
+ --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
41
+ --sidebar-border: oklch(0.92 0.004 286.32);
42
+ --sidebar-ring: oklch(0.705 0.015 286.067);
43
+ }
44
+
45
+ .dark {
46
+ --background: oklch(0.07 0.004 285.823);
47
+ --foreground: oklch(0.97 0 0);
48
+ --card: oklch(0.13 0.006 285.885);
49
+ --card-foreground: oklch(0.97 0 0);
50
+ --popover: oklch(0.13 0.006 285.885);
51
+ --popover-foreground: oklch(0.97 0 0);
52
+ --primary: oklch(0.92 0.004 286.32);
53
+ --primary-foreground: oklch(0.13 0.006 285.885);
54
+ --secondary: oklch(0.19 0.006 286.033);
55
+ --secondary-foreground: oklch(0.97 0 0);
56
+ --muted: oklch(0.19 0.006 286.033);
57
+ --muted-foreground: oklch(0.62 0.015 286.067);
58
+ --accent: oklch(0.22 0.006 286.033);
59
+ --accent-foreground: oklch(0.97 0 0);
60
+ --destructive: oklch(0.704 0.191 22.216);
61
+ --border: oklch(1 0 0 / 8%);
62
+ --input: oklch(1 0 0 / 12%);
63
+ --ring: oklch(0.552 0.016 285.938);
64
+ --chart-1: oklch(0.488 0.243 264.376);
65
+ --chart-2: oklch(0.696 0.17 162.48);
66
+ --chart-3: oklch(0.769 0.188 70.08);
67
+ --chart-4: oklch(0.627 0.265 303.9);
68
+ --chart-5: oklch(0.645 0.246 16.439);
69
+ --sidebar: oklch(0.13 0.006 285.885);
70
+ --sidebar-foreground: oklch(0.97 0 0);
71
+ --sidebar-primary: oklch(0.488 0.243 264.376);
72
+ --sidebar-primary-foreground: oklch(0.97 0 0);
73
+ --sidebar-accent: oklch(0.22 0.006 286.033);
74
+ --sidebar-accent-foreground: oklch(0.97 0 0);
75
+ --sidebar-border: oklch(1 0 0 / 8%);
76
+ --sidebar-ring: oklch(0.552 0.016 285.938);
77
+ }
78
+
79
+ @theme inline {
80
+ --radius-sm: calc(var(--radius) - 3px);
81
+ --radius-md: calc(var(--radius) - 1px);
82
+ --radius-lg: var(--radius);
83
+ --radius-xl: calc(var(--radius) + 6px);
84
+ --radius-2xl: calc(var(--radius) + 12px);
85
+ --color-background: var(--background);
86
+ --color-foreground: var(--foreground);
87
+ --color-card: var(--card);
88
+ --color-card-foreground: var(--card-foreground);
89
+ --color-popover: var(--popover);
90
+ --color-popover-foreground: var(--popover-foreground);
91
+ --color-primary: var(--primary);
92
+ --color-primary-foreground: var(--primary-foreground);
93
+ --color-secondary: var(--secondary);
94
+ --color-secondary-foreground: var(--secondary-foreground);
95
+ --color-muted: var(--muted);
96
+ --color-muted-foreground: var(--muted-foreground);
97
+ --color-accent: var(--accent);
98
+ --color-accent-foreground: var(--accent-foreground);
99
+ --color-destructive: var(--destructive);
100
+ --color-border: var(--border);
101
+ --color-input: var(--input);
102
+ --color-ring: var(--ring);
103
+ --color-chart-1: var(--chart-1);
104
+ --color-chart-2: var(--chart-2);
105
+ --color-chart-3: var(--chart-3);
106
+ --color-chart-4: var(--chart-4);
107
+ --color-chart-5: var(--chart-5);
108
+ --color-sidebar: var(--sidebar);
109
+ --color-sidebar-foreground: var(--sidebar-foreground);
110
+ --color-sidebar-primary: var(--sidebar-primary);
111
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
112
+ --color-sidebar-accent: var(--sidebar-accent);
113
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
114
+ --color-sidebar-border: var(--sidebar-border);
115
+ --color-sidebar-ring: var(--sidebar-ring);
116
+ --font-sans: 'Inter', sans-serif;
117
+ --font-mono: 'JetBrains Mono', monospace;
118
+ }
119
+
120
+ @layer base {
121
+ * {
122
+ @apply border-border outline-ring/50;
123
+ }
124
+ body {
125
+ @apply bg-background text-foreground antialiased;
126
+ }
127
+ }