@dailyautomations/ui 1.0.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 (129) hide show
  1. package/BRAND.md +543 -0
  2. package/README.md +136 -0
  3. package/dist/components/alert.d.ts +12 -0
  4. package/dist/components/alert.d.ts.map +1 -0
  5. package/dist/components/alert.js +27 -0
  6. package/dist/components/alert.js.map +1 -0
  7. package/dist/components/badge.d.ts +11 -0
  8. package/dist/components/badge.d.ts.map +1 -0
  9. package/dist/components/badge.js +25 -0
  10. package/dist/components/badge.js.map +1 -0
  11. package/dist/components/button.d.ts +13 -0
  12. package/dist/components/button.d.ts.map +1 -0
  13. package/dist/components/button.js +32 -0
  14. package/dist/components/button.js.map +1 -0
  15. package/dist/components/card.d.ts +9 -0
  16. package/dist/components/card.d.ts.map +1 -0
  17. package/dist/components/card.js +22 -0
  18. package/dist/components/card.js.map +1 -0
  19. package/dist/components/common/badge.d.ts +11 -0
  20. package/dist/components/common/badge.d.ts.map +1 -0
  21. package/dist/components/common/badge.js +25 -0
  22. package/dist/components/common/badge.js.map +1 -0
  23. package/dist/components/common/button.d.ts +13 -0
  24. package/dist/components/common/button.d.ts.map +1 -0
  25. package/dist/components/common/button.js +32 -0
  26. package/dist/components/common/button.js.map +1 -0
  27. package/dist/components/common/card.d.ts +9 -0
  28. package/dist/components/common/card.d.ts.map +1 -0
  29. package/dist/components/common/card.js +22 -0
  30. package/dist/components/common/card.js.map +1 -0
  31. package/dist/components/common/checkbox.d.ts +7 -0
  32. package/dist/components/common/checkbox.d.ts.map +1 -0
  33. package/dist/components/common/checkbox.js +9 -0
  34. package/dist/components/common/checkbox.js.map +1 -0
  35. package/dist/components/common/input.d.ts +6 -0
  36. package/dist/components/common/input.d.ts.map +1 -0
  37. package/dist/components/common/input.js +7 -0
  38. package/dist/components/common/input.js.map +1 -0
  39. package/dist/components/common/label.d.ts +9 -0
  40. package/dist/components/common/label.d.ts.map +1 -0
  41. package/dist/components/common/label.js +11 -0
  42. package/dist/components/common/label.js.map +1 -0
  43. package/dist/components/common/textarea.d.ts +6 -0
  44. package/dist/components/common/textarea.d.ts.map +1 -0
  45. package/dist/components/common/textarea.js +7 -0
  46. package/dist/components/common/textarea.js.map +1 -0
  47. package/dist/components/dialog.d.ts +16 -0
  48. package/dist/components/dialog.d.ts.map +1 -0
  49. package/dist/components/dialog.js +36 -0
  50. package/dist/components/dialog.js.map +1 -0
  51. package/dist/components/input.d.ts +6 -0
  52. package/dist/components/input.d.ts.map +1 -0
  53. package/dist/components/input.js +7 -0
  54. package/dist/components/input.js.map +1 -0
  55. package/dist/components/skeleton.d.ts +6 -0
  56. package/dist/components/skeleton.d.ts.map +1 -0
  57. package/dist/components/skeleton.js +7 -0
  58. package/dist/components/skeleton.js.map +1 -0
  59. package/dist/components/ui/alert.d.ts +12 -0
  60. package/dist/components/ui/alert.d.ts.map +1 -0
  61. package/dist/components/ui/alert.js +27 -0
  62. package/dist/components/ui/alert.js.map +1 -0
  63. package/dist/components/ui/animated.d.ts +47 -0
  64. package/dist/components/ui/animated.d.ts.map +1 -0
  65. package/dist/components/ui/animated.js +96 -0
  66. package/dist/components/ui/animated.js.map +1 -0
  67. package/dist/components/ui/dialog.d.ts +16 -0
  68. package/dist/components/ui/dialog.d.ts.map +1 -0
  69. package/dist/components/ui/dialog.js +36 -0
  70. package/dist/components/ui/dialog.js.map +1 -0
  71. package/dist/components/ui/select.d.ts +14 -0
  72. package/dist/components/ui/select.d.ts.map +1 -0
  73. package/dist/components/ui/select.js +38 -0
  74. package/dist/components/ui/select.js.map +1 -0
  75. package/dist/components/ui/skeleton.d.ts +6 -0
  76. package/dist/components/ui/skeleton.d.ts.map +1 -0
  77. package/dist/components/ui/skeleton.js +7 -0
  78. package/dist/components/ui/skeleton.js.map +1 -0
  79. package/dist/components/ui/tabs.d.ts +8 -0
  80. package/dist/components/ui/tabs.d.ts.map +1 -0
  81. package/dist/components/ui/tabs.js +18 -0
  82. package/dist/components/ui/tabs.js.map +1 -0
  83. package/dist/components/ui/toast.d.ts +19 -0
  84. package/dist/components/ui/toast.d.ts.map +1 -0
  85. package/dist/components/ui/toast.js +37 -0
  86. package/dist/components/ui/toast.js.map +1 -0
  87. package/dist/components/ui/toaster.d.ts +2 -0
  88. package/dist/components/ui/toaster.d.ts.map +1 -0
  89. package/dist/components/ui/toaster.js +11 -0
  90. package/dist/components/ui/toaster.js.map +1 -0
  91. package/dist/hooks/index.d.ts +2 -0
  92. package/dist/hooks/index.d.ts.map +1 -0
  93. package/dist/hooks/index.js +2 -0
  94. package/dist/hooks/index.js.map +1 -0
  95. package/dist/hooks/use-toast.d.ts +46 -0
  96. package/dist/hooks/use-toast.d.ts.map +1 -0
  97. package/dist/hooks/use-toast.js +125 -0
  98. package/dist/hooks/use-toast.js.map +1 -0
  99. package/dist/index.d.ts +31 -0
  100. package/dist/index.d.ts.map +1 -0
  101. package/dist/index.js +21 -0
  102. package/dist/index.js.map +1 -0
  103. package/dist/lib/animations.d.ts +33 -0
  104. package/dist/lib/animations.d.ts.map +1 -0
  105. package/dist/lib/animations.example.d.ts +19 -0
  106. package/dist/lib/animations.example.d.ts.map +1 -0
  107. package/dist/lib/animations.example.js +80 -0
  108. package/dist/lib/animations.example.js.map +1 -0
  109. package/dist/lib/animations.js +232 -0
  110. package/dist/lib/animations.js.map +1 -0
  111. package/dist/lib/use-animation.d.ts +39 -0
  112. package/dist/lib/use-animation.d.ts.map +1 -0
  113. package/dist/lib/use-animation.js +148 -0
  114. package/dist/lib/use-animation.js.map +1 -0
  115. package/dist/lib/utils.d.ts +3 -0
  116. package/dist/lib/utils.d.ts.map +1 -0
  117. package/dist/lib/utils.js +6 -0
  118. package/dist/lib/utils.js.map +1 -0
  119. package/dist/tokens/tailwind.preset.d.ts +4 -0
  120. package/dist/tokens/tailwind.preset.d.ts.map +1 -0
  121. package/dist/tokens/tailwind.preset.js +193 -0
  122. package/dist/tokens/tailwind.preset.js.map +1 -0
  123. package/dist/utils/cn.d.ts +3 -0
  124. package/dist/utils/cn.d.ts.map +1 -0
  125. package/dist/utils/cn.js +6 -0
  126. package/dist/utils/cn.js.map +1 -0
  127. package/package.json +112 -0
  128. package/src/styles/globals.css +19 -0
  129. package/src/styles/variables.css +117 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-animation.d.ts","sourceRoot":"","sources":["../../src/lib/use-animation.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,QAAQ,EAA8C,MAAM,eAAe,CAAA;AACzF,OAAO,EAcL,KAAK,SAAS,EACd,KAAK,OAAO,EAEb,MAAM,iBAAiB,CAAA;AAOxB,wBAAgB,gBAAgB,IAAI,OAAO,CAG1C;AAYD,wBAAgB,YAAY,CAC1B,IAAI,EACA,MAAM,GACN,OAAO,GACP,WAAW,GACX,YAAY,GACZ,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,GACN,OAAO,GACP,UAAU,GACV,QAAQ,GACR,UAAU,GACV,SAAS,GACT,OAAO,GACP,kBAAkB,GAClB,cAAc;;;;EAqFnB;AAkBD,wBAAgB,mBAAmB;;;;;;;;;;;;;;;;EAkBlC;AAoBD,wBAAgB,mBAAmB,CAAC,cAAc,UAAQ;;;;;;EAczD;AAaD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CASlE;AAmBD,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,wBAAwB;;;EAwBpE;AAaD,wBAAgB,aAAa,CAC3B,QAAQ,GAAE,MAAM,OAAO,SAAoB,EAC3C,MAAM,GAAE,MAAM,OAAO,OAAiB,mCAIvC"}
@@ -0,0 +1,148 @@
1
+ import { useEffect, useState } from "react";
2
+ import { useReducedMotion as useFramerReducedMotion } from "framer-motion";
3
+ import { fadeVariants, scaleVariants, createSlideVariants, hoverVariants, pageVariants, staggerContainer, staggerChild, toastVariants, backdropVariants, drawerVariants, collapseVariants, spinnerVariants, pulseVariants, getTransition, } from "./animations.js";
4
+ export function useReducedMotion() {
5
+ const prefersReducedMotion = useFramerReducedMotion();
6
+ return prefersReducedMotion ?? false;
7
+ }
8
+ export function useAnimation(type) {
9
+ const shouldReduceMotion = useReducedMotion();
10
+ const variantsMap = {
11
+ fade: fadeVariants,
12
+ scale: scaleVariants,
13
+ slideLeft: createSlideVariants("left"),
14
+ slideRight: createSlideVariants("right"),
15
+ slideUp: createSlideVariants("up"),
16
+ slideDown: createSlideVariants("down"),
17
+ hover: hoverVariants,
18
+ page: pageVariants,
19
+ toast: toastVariants,
20
+ backdrop: backdropVariants,
21
+ drawer: drawerVariants,
22
+ collapse: collapseVariants,
23
+ spinner: spinnerVariants,
24
+ pulse: pulseVariants,
25
+ staggerContainer,
26
+ staggerChild,
27
+ };
28
+ const variants = shouldReduceMotion ? {} : variantsMap[type];
29
+ const getAnimationProps = () => {
30
+ if (shouldReduceMotion) {
31
+ return {};
32
+ }
33
+ switch (type) {
34
+ case "hover":
35
+ return {
36
+ initial: "initial",
37
+ whileHover: "hover",
38
+ whileTap: "tap",
39
+ };
40
+ case "page":
41
+ return {
42
+ initial: "initial",
43
+ animate: "animate",
44
+ exit: "exit",
45
+ };
46
+ case "staggerContainer":
47
+ return {
48
+ initial: "hidden",
49
+ animate: "visible",
50
+ };
51
+ case "staggerChild":
52
+ return {
53
+ variants,
54
+ };
55
+ case "drawer":
56
+ return {
57
+ initial: "closed",
58
+ animate: "open",
59
+ exit: "closed",
60
+ };
61
+ case "collapse":
62
+ return {
63
+ initial: "collapsed",
64
+ animate: "expanded",
65
+ exit: "collapsed",
66
+ };
67
+ case "spinner":
68
+ case "pulse":
69
+ return {
70
+ animate: "animate",
71
+ };
72
+ default:
73
+ return {
74
+ initial: "hidden",
75
+ animate: "visible",
76
+ exit: "exit",
77
+ };
78
+ }
79
+ };
80
+ return {
81
+ variants,
82
+ props: getAnimationProps(),
83
+ shouldReduceMotion,
84
+ };
85
+ }
86
+ export function useStaggerAnimation() {
87
+ const shouldReduceMotion = useReducedMotion();
88
+ return {
89
+ containerProps: shouldReduceMotion
90
+ ? {}
91
+ : {
92
+ variants: staggerContainer,
93
+ initial: "hidden",
94
+ animate: "visible",
95
+ },
96
+ childProps: shouldReduceMotion
97
+ ? {}
98
+ : {
99
+ variants: staggerChild,
100
+ },
101
+ shouldReduceMotion,
102
+ };
103
+ }
104
+ export function useAnimatedPresence(initialVisible = false) {
105
+ const [isVisible, setIsVisible] = useState(initialVisible);
106
+ const show = () => setIsVisible(true);
107
+ const hide = () => setIsVisible(false);
108
+ const toggle = () => setIsVisible((prev) => !prev);
109
+ return {
110
+ isVisible,
111
+ show,
112
+ hide,
113
+ toggle,
114
+ setIsVisible,
115
+ };
116
+ }
117
+ export function useDelayedAnimation(delayMs = 100) {
118
+ const [shouldAnimate, setShouldAnimate] = useState(false);
119
+ useEffect(() => {
120
+ const timer = setTimeout(() => setShouldAnimate(true), delayMs);
121
+ return () => clearTimeout(timer);
122
+ }, [delayMs]);
123
+ return shouldAnimate;
124
+ }
125
+ export function useScrollAnimation(options) {
126
+ const [isInView, setIsInView] = useState(false);
127
+ const [ref, setRef] = useState(null);
128
+ useEffect(() => {
129
+ if (!ref)
130
+ return;
131
+ const observer = new IntersectionObserver(([entry]) => {
132
+ if (entry?.isIntersecting) {
133
+ setIsInView(true);
134
+ }
135
+ }, {
136
+ threshold: 0.1,
137
+ ...options,
138
+ });
139
+ observer.observe(ref);
140
+ return () => observer.disconnect();
141
+ }, [ref, options]);
142
+ return { ref: setRef, isInView };
143
+ }
144
+ export function useTransition(duration = "normal", easing = "inOut") {
145
+ const shouldReduceMotion = useReducedMotion();
146
+ return shouldReduceMotion ? { duration: 0.01 } : getTransition(duration, easing);
147
+ }
148
+ //# sourceMappingURL=use-animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-animation.js","sourceRoot":"","sources":["../../src/lib/use-animation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,6 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
6
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Config } from "tailwindcss";
2
+ declare const dailyPreset: Partial<Config>;
3
+ export default dailyPreset;
4
+ //# sourceMappingURL=tailwind.preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind.preset.d.ts","sourceRoot":"","sources":["../../src/tokens/tailwind.preset.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEzC,QAAA,MAAM,WAAW,EAAE,OAAO,CAAC,MAAM,CAiMhC,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -0,0 +1,193 @@
1
+ const dailyPreset = {
2
+ theme: {
3
+ extend: {
4
+ colors: {
5
+ primary: {
6
+ DEFAULT: "rgb(var(--primary) / <alpha-value>)",
7
+ foreground: "rgb(var(--primary-foreground) / <alpha-value>)",
8
+ hover: "rgb(var(--primary-hover) / <alpha-value>)",
9
+ active: "rgb(var(--primary-active) / <alpha-value>)",
10
+ },
11
+ secondary: {
12
+ DEFAULT: "rgb(var(--secondary) / <alpha-value>)",
13
+ foreground: "rgb(var(--secondary-foreground) / <alpha-value>)",
14
+ },
15
+ background: "rgb(var(--background) / <alpha-value>)",
16
+ foreground: "rgb(var(--foreground) / <alpha-value>)",
17
+ card: {
18
+ DEFAULT: "rgb(var(--card) / <alpha-value>)",
19
+ foreground: "rgb(var(--card-foreground) / <alpha-value>)",
20
+ },
21
+ popover: {
22
+ DEFAULT: "rgb(var(--popover) / <alpha-value>)",
23
+ foreground: "rgb(var(--popover-foreground) / <alpha-value>)",
24
+ },
25
+ muted: {
26
+ DEFAULT: "rgb(var(--muted) / <alpha-value>)",
27
+ foreground: "rgb(var(--muted-foreground) / <alpha-value>)",
28
+ },
29
+ accent: {
30
+ DEFAULT: "rgb(var(--accent) / <alpha-value>)",
31
+ foreground: "rgb(var(--accent-foreground) / <alpha-value>)",
32
+ },
33
+ destructive: {
34
+ DEFAULT: "rgb(var(--destructive) / <alpha-value>)",
35
+ foreground: "rgb(var(--destructive-foreground) / <alpha-value>)",
36
+ },
37
+ success: {
38
+ DEFAULT: "rgb(var(--success) / <alpha-value>)",
39
+ foreground: "rgb(var(--success-foreground) / <alpha-value>)",
40
+ },
41
+ error: {
42
+ DEFAULT: "rgb(var(--error) / <alpha-value>)",
43
+ foreground: "rgb(var(--error-foreground) / <alpha-value>)",
44
+ },
45
+ warning: {
46
+ DEFAULT: "rgb(var(--warning) / <alpha-value>)",
47
+ foreground: "rgb(var(--warning-foreground) / <alpha-value>)",
48
+ },
49
+ info: {
50
+ DEFAULT: "rgb(var(--info) / <alpha-value>)",
51
+ foreground: "rgb(var(--info-foreground) / <alpha-value>)",
52
+ },
53
+ border: "rgb(var(--border) / <alpha-value>)",
54
+ input: "rgb(var(--input) / <alpha-value>)",
55
+ ring: "rgb(var(--ring) / <alpha-value>)",
56
+ chart: {
57
+ 1: "rgb(var(--chart-1) / <alpha-value>)",
58
+ 2: "rgb(var(--chart-2) / <alpha-value>)",
59
+ 3: "rgb(var(--chart-3) / <alpha-value>)",
60
+ 4: "rgb(var(--chart-4) / <alpha-value>)",
61
+ 5: "rgb(var(--chart-5) / <alpha-value>)",
62
+ },
63
+ },
64
+ spacing: {
65
+ 0: "0",
66
+ px: "1px",
67
+ 0.5: "0.125rem",
68
+ 1: "0.25rem",
69
+ 1.5: "0.375rem",
70
+ 2: "0.5rem",
71
+ 2.5: "0.625rem",
72
+ 3: "0.75rem",
73
+ 3.5: "0.875rem",
74
+ 4: "1rem",
75
+ 5: "1.25rem",
76
+ 6: "1.5rem",
77
+ 7: "1.75rem",
78
+ 8: "2rem",
79
+ 9: "2.25rem",
80
+ 10: "2.5rem",
81
+ 11: "2.75rem",
82
+ 12: "3rem",
83
+ 14: "3.5rem",
84
+ 16: "4rem",
85
+ 18: "4.5rem",
86
+ 20: "5rem",
87
+ 24: "6rem",
88
+ 28: "7rem",
89
+ 32: "8rem",
90
+ 36: "9rem",
91
+ 40: "10rem",
92
+ 44: "11rem",
93
+ 48: "12rem",
94
+ 52: "13rem",
95
+ 56: "14rem",
96
+ 60: "15rem",
97
+ 64: "16rem",
98
+ 72: "18rem",
99
+ 80: "20rem",
100
+ 96: "24rem",
101
+ },
102
+ borderRadius: {
103
+ sm: "calc(var(--radius) - 4px)",
104
+ md: "calc(var(--radius) - 2px)",
105
+ lg: "var(--radius)",
106
+ xl: "calc(var(--radius) + 4px)",
107
+ "2xl": "calc(var(--radius) + 8px)",
108
+ "3xl": "calc(var(--radius) + 12px)",
109
+ "4xl": "calc(var(--radius) + 16px)",
110
+ },
111
+ keyframes: {
112
+ "dialog-in": {
113
+ from: {
114
+ opacity: "0",
115
+ transform: "translate(-50%, -48%) scale(0.96)",
116
+ },
117
+ to: {
118
+ opacity: "1",
119
+ transform: "translate(-50%, -50%) scale(1)",
120
+ },
121
+ },
122
+ "dialog-out": {
123
+ from: {
124
+ opacity: "1",
125
+ transform: "translate(-50%, -50%) scale(1)",
126
+ },
127
+ to: {
128
+ opacity: "0",
129
+ transform: "translate(-50%, -48%) scale(0.96)",
130
+ },
131
+ },
132
+ "fade-in": {
133
+ from: { opacity: "0" },
134
+ to: { opacity: "1" },
135
+ },
136
+ "fade-out": {
137
+ from: { opacity: "1" },
138
+ to: { opacity: "0" },
139
+ },
140
+ "slide-in-from-top": {
141
+ from: { transform: "translateY(-100%)" },
142
+ to: { transform: "translateY(0)" },
143
+ },
144
+ "slide-in-from-bottom": {
145
+ from: { transform: "translateY(100%)" },
146
+ to: { transform: "translateY(0)" },
147
+ },
148
+ "slide-in-from-left": {
149
+ from: { transform: "translateX(-100%)" },
150
+ to: { transform: "translateX(0)" },
151
+ },
152
+ "slide-in-from-right": {
153
+ from: { transform: "translateX(100%)" },
154
+ to: { transform: "translateX(0)" },
155
+ },
156
+ },
157
+ animation: {
158
+ "dialog-in": "dialog-in 0.2s ease-out",
159
+ "dialog-out": "dialog-out 0.2s ease-in",
160
+ "fade-in": "fade-in 0.2s ease-out",
161
+ "fade-out": "fade-out 0.2s ease-in",
162
+ "slide-in-from-top": "slide-in-from-top 0.3s ease-out",
163
+ "slide-in-from-bottom": "slide-in-from-bottom 0.3s ease-out",
164
+ "slide-in-from-left": "slide-in-from-left 0.3s ease-out",
165
+ "slide-in-from-right": "slide-in-from-right 0.3s ease-out",
166
+ },
167
+ fontFamily: {
168
+ sans: [
169
+ "var(--font-sans)",
170
+ "system-ui",
171
+ "-apple-system",
172
+ "BlinkMacSystemFont",
173
+ '"Segoe UI"',
174
+ "Roboto",
175
+ '"Helvetica Neue"',
176
+ "Arial",
177
+ "sans-serif",
178
+ ],
179
+ mono: [
180
+ "var(--font-mono)",
181
+ '"SF Mono"',
182
+ "Monaco",
183
+ '"Cascadia Code"',
184
+ '"Roboto Mono"',
185
+ "Consolas",
186
+ "monospace",
187
+ ],
188
+ },
189
+ },
190
+ },
191
+ };
192
+ export default dailyPreset;
193
+ //# sourceMappingURL=tailwind.preset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tailwind.preset.js","sourceRoot":"","sources":["../../src/tokens/tailwind.preset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,6 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
6
+ //# sourceMappingURL=cn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.js","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,MAAM,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAExC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,112 @@
1
+ {
2
+ "name": "@dailyautomations/ui",
3
+ "version": "1.0.0",
4
+ "description": "Daily X UI component library - Purple/orange dark theme system for all Daily products",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "default": "./dist/index.js"
12
+ },
13
+ "./utils": {
14
+ "types": "./dist/utils/cn.d.ts",
15
+ "default": "./dist/utils/cn.js"
16
+ },
17
+ "./animations": {
18
+ "types": "./dist/lib/animations.d.ts",
19
+ "default": "./dist/lib/animations.js"
20
+ },
21
+ "./hooks": {
22
+ "types": "./dist/hooks/index.d.ts",
23
+ "default": "./dist/hooks/index.js"
24
+ },
25
+ "./styles/variables.css": "./src/styles/variables.css",
26
+ "./styles/globals.css": "./src/styles/globals.css",
27
+ "./tailwind-preset": {
28
+ "types": "./dist/tokens/tailwind.preset.d.ts",
29
+ "default": "./dist/tokens/tailwind.preset.js"
30
+ }
31
+ },
32
+ "files": [
33
+ "dist",
34
+ "src/styles/*.css",
35
+ "BRAND.md",
36
+ "README.md"
37
+ ],
38
+ "scripts": {
39
+ "build": "tsc",
40
+ "watch": "tsc --watch",
41
+ "preview": "vite --config vite.config.ts",
42
+ "test": "vitest",
43
+ "test:coverage": "vitest --coverage",
44
+ "lint": "eslint src --ext .ts,.tsx",
45
+ "typecheck": "tsc --noEmit",
46
+ "prepublishOnly": "npm run build"
47
+ },
48
+ "keywords": [
49
+ "ui",
50
+ "components",
51
+ "react",
52
+ "tailwind",
53
+ "shadcn",
54
+ "daily",
55
+ "dailyautomations",
56
+ "design-system"
57
+ ],
58
+ "author": "Daily X Engineering Team",
59
+ "license": "MIT",
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "https://github.com/dailyautomations/daily-platform.git",
63
+ "directory": "packages/ui"
64
+ },
65
+ "homepage": "https://github.com/dailyautomations/daily-platform/tree/main/packages/ui#readme",
66
+ "bugs": {
67
+ "url": "https://github.com/dailyautomations/daily-platform/issues"
68
+ },
69
+ "dependencies": {
70
+ "class-variance-authority": "^0.7.1",
71
+ "clsx": "^2.1.1",
72
+ "framer-motion": "^12.29.2",
73
+ "tailwind-merge": "^3.0.1"
74
+ },
75
+ "peerDependencies": {
76
+ "@radix-ui/react-checkbox": "^1.3.0",
77
+ "@radix-ui/react-dialog": "^1.1.0",
78
+ "@radix-ui/react-label": "^2.1.0",
79
+ "@radix-ui/react-select": "^2.2.0",
80
+ "@radix-ui/react-slot": "^1.1.0",
81
+ "@radix-ui/react-tabs": "^1.1.0",
82
+ "@radix-ui/react-toast": "^1.2.0",
83
+ "react": "^18.0.0 || ^19.0.0",
84
+ "react-dom": "^18.0.0 || ^19.0.0",
85
+ "tailwindcss": "^4.0.0"
86
+ },
87
+ "devDependencies": {
88
+ "@radix-ui/react-checkbox": "^1.3.3",
89
+ "@radix-ui/react-dialog": "^1.1.15",
90
+ "@radix-ui/react-label": "^2.1.8",
91
+ "@radix-ui/react-select": "^2.2.6",
92
+ "@radix-ui/react-slot": "^1.2.4",
93
+ "@radix-ui/react-tabs": "^1.1.13",
94
+ "@radix-ui/react-toast": "^1.2.15",
95
+ "@tailwindcss/postcss": "^4.1.18",
96
+ "@types/node": "^20.11.0",
97
+ "@types/react": "^18.0.0 || ^19.0.0",
98
+ "@types/react-dom": "^18.0.0",
99
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
100
+ "@typescript-eslint/parser": "^6.19.0",
101
+ "@vitejs/plugin-react": "^4.3.4",
102
+ "autoprefixer": "^10.4.20",
103
+ "eslint": "^8.56.0",
104
+ "postcss": "^8.4.49",
105
+ "react": "^18.3.1",
106
+ "react-dom": "^18.3.1",
107
+ "tailwindcss": "^4.0.0",
108
+ "typescript": "^5.3.3",
109
+ "vite": "^6.0.7",
110
+ "vitest": "^1.2.0"
111
+ }
112
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Daily X UI - Global Styles
3
+ * Base styles and Tailwind directives
4
+ */
5
+
6
+ @tailwind base;
7
+ @tailwind components;
8
+ @tailwind utilities;
9
+
10
+ @layer base {
11
+ * {
12
+ @apply border-border;
13
+ }
14
+
15
+ body {
16
+ @apply bg-background text-foreground;
17
+ font-feature-settings: "rlig" 1, "calt" 1;
18
+ }
19
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Daily X Brand Theme
3
+ * CSS custom properties - Dark-first design
4
+ * Primary: #8B5CF6 (Purple) | Accent: #F97316 (Orange)
5
+ */
6
+
7
+ :root {
8
+ /* Radius */
9
+ --radius: 0.625rem;
10
+
11
+ /* Primary - Purple */
12
+ --primary: 139 92 246; /* #8B5CF6 */
13
+ --primary-foreground: 255 255 255;
14
+ --primary-hover: 167 139 250; /* #A78BFA */
15
+ --primary-active: 124 58 237; /* #7C3AED */
16
+
17
+ /* Accent - Orange (for CTAs) */
18
+ --accent: 249 115 22; /* #F97316 */
19
+ --accent-foreground: 255 255 255;
20
+ --accent-hover: 251 146 60; /* #FB923C */
21
+ --accent-active: 234 88 12; /* #EA580C */
22
+
23
+ /* Semantic Colors */
24
+ --success: 74 222 128; /* green-400 */
25
+ --success-foreground: 5 46 22; /* green-950 */
26
+
27
+ --error: 248 113 113; /* red-400 */
28
+ --error-foreground: 127 29 29; /* red-900 */
29
+
30
+ --warning: 251 191 36; /* amber-400 */
31
+ --warning-foreground: 120 53 15; /* amber-900 */
32
+
33
+ --info: 167 139 250; /* purple-400 */
34
+ --info-foreground: 30 27 75; /* purple-950 */
35
+
36
+ /* Neutrals - Dark Mode (Default) */
37
+ --background: 15 15 20; /* #0F0F14 */
38
+ --foreground: 255 255 255;
39
+
40
+ --card: 26 26 36; /* #1a1a24 */
41
+ --card-foreground: 255 255 255;
42
+
43
+ --popover: 37 37 50; /* #252532 */
44
+ --popover-foreground: 255 255 255;
45
+
46
+ --secondary: 139 92 246; /* purple */
47
+ --secondary-foreground: 255 255 255;
48
+
49
+ --muted: 39 39 42; /* #27272A */
50
+ --muted-foreground: 161 161 170; /* #A1A1AA */
51
+
52
+ --destructive: 220 38 38; /* red-600 */
53
+ --destructive-foreground: 255 255 255;
54
+
55
+ --border: 39 39 42; /* #27272A */
56
+ --input: 39 39 42; /* #27272A */
57
+ --ring: 139 92 246; /* purple */
58
+
59
+ /* Charts - Purple to Orange gradient */
60
+ --chart-1: 167 139 250; /* purple-400 */
61
+ --chart-2: 139 92 246; /* purple-500 */
62
+ --chart-3: 124 58 237; /* purple-600 */
63
+ --chart-4: 249 115 22; /* orange-500 */
64
+ --chart-5: 234 88 12; /* orange-600 */
65
+ }
66
+
67
+ /* Light mode override (optional - dark is default) */
68
+ .light {
69
+ --primary: 124 58 237; /* #7C3AED darker purple for light bg */
70
+ --primary-foreground: 255 255 255;
71
+ --primary-hover: 139 92 246; /* #8B5CF6 */
72
+ --primary-active: 109 40 217; /* #6D28D9 */
73
+
74
+ --accent: 234 88 12; /* #EA580C darker orange for light bg */
75
+ --accent-foreground: 255 255 255;
76
+ --accent-hover: 249 115 22; /* #F97316 */
77
+ --accent-active: 194 65 12; /* #C2410C */
78
+
79
+ --success: 34 197 94; /* green-500 */
80
+ --success-foreground: 255 255 255;
81
+
82
+ --error: 239 68 68; /* red-500 */
83
+ --error-foreground: 255 255 255;
84
+
85
+ --warning: 245 158 11; /* amber-500 */
86
+ --warning-foreground: 255 255 255;
87
+
88
+ --info: 139 92 246; /* purple-500 */
89
+ --info-foreground: 255 255 255;
90
+
91
+ --background: 255 255 255;
92
+ --foreground: 15 15 20;
93
+
94
+ --card: 250 250 250;
95
+ --card-foreground: 15 15 20;
96
+
97
+ --popover: 255 255 255;
98
+ --popover-foreground: 15 15 20;
99
+
100
+ --secondary: 245 243 255; /* purple-50 */
101
+ --secondary-foreground: 124 58 237;
102
+
103
+ --muted: 244 244 245; /* zinc-100 */
104
+ --muted-foreground: 113 113 122; /* zinc-500 */
105
+
106
+ --destructive: 220 38 38; /* red-600 */
107
+ --destructive-foreground: 255 255 255;
108
+
109
+ --border: 228 228 231; /* zinc-200 */
110
+ --input: 228 228 231;
111
+ --ring: 139 92 246;
112
+ }
113
+
114
+ /*
115
+ * Helper: Apply colors using CSS variables
116
+ * Usage: bg-primary, text-primary-foreground, border-border, etc.
117
+ */