startx 1.0.2 → 1.0.3

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/.dockerignore +4 -0
  2. package/apps/cli/src/commands/index.ts +1 -1
  3. package/apps/cli/src/commands/{common → test}/test.ts +4 -2
  4. package/apps/cli/tsconfig.json +0 -1
  5. package/apps/core-server/Dockerfile +5 -4
  6. package/apps/core-server/package.json +1 -1
  7. package/apps/core-server/tsconfig.json +1 -1
  8. package/apps/queue-worker/package.json +1 -1
  9. package/apps/queue-worker/tsconfig.json +1 -1
  10. package/apps/startx-cli/dist/index.mjs +68 -53
  11. package/apps/startx-cli/src/commands/package.ts +453 -0
  12. package/apps/startx-cli/src/configs/scripts.ts +18 -2
  13. package/apps/startx-cli/src/index.ts +2 -4
  14. package/apps/startx-cli/src/types.ts +2 -4
  15. package/apps/startx-cli/src/utils/inquirer.ts +8 -1
  16. package/apps/web-client/.dockerignore +4 -0
  17. package/apps/web-client/app/app.css +1 -0
  18. package/apps/web-client/app/components.json +23 -0
  19. package/apps/web-client/app/config/auth/auth-state.ts +59 -0
  20. package/apps/web-client/app/config/axios-client.ts +87 -0
  21. package/apps/web-client/app/config/env.ts +5 -0
  22. package/apps/web-client/app/entry.client.tsx +7 -0
  23. package/apps/web-client/app/eslint.config.ts +4 -0
  24. package/apps/web-client/app/root.tsx +77 -0
  25. package/apps/web-client/app/routes/home.tsx +12 -0
  26. package/apps/web-client/app/routes.ts +3 -0
  27. package/apps/web-client/eslint.config.ts +4 -0
  28. package/apps/web-client/package.json +55 -0
  29. package/apps/web-client/react-router.config.ts +7 -0
  30. package/apps/web-client/tsconfig.json +22 -0
  31. package/apps/web-client/vite-env.d.ts +8 -0
  32. package/apps/web-client/vite.config.ts +30 -0
  33. package/biome.json +5 -0
  34. package/configs/eslint-config/eslint.config.ts +1 -0
  35. package/configs/eslint-config/src/configs/base.ts +0 -1
  36. package/configs/eslint-config/src/configs/frontend.ts +1 -1
  37. package/configs/eslint-config/tsconfig.json +1 -1
  38. package/configs/typescript-config/tsconfig.frontend.json +1 -1
  39. package/configs/vitest-config/tsconfig.json +1 -1
  40. package/package.json +1 -1
  41. package/packages/@db/drizzle/tsconfig.json +1 -1
  42. package/packages/@db/sqlite/tsconfig.json +1 -1
  43. package/packages/@repo/env/package.json +1 -2
  44. package/packages/@repo/env/src/utils.ts +17 -11
  45. package/packages/@repo/lib/package.json +3 -1
  46. package/packages/@repo/lib/src/session-module/i-session.ts +108 -0
  47. package/packages/@repo/lib/src/session-module/index.ts +8 -111
  48. package/packages/@repo/lib/src/session-module/redis-session.ts +44 -0
  49. package/packages/@repo/lib/tsconfig.json +0 -1
  50. package/packages/@repo/logger/package.json +0 -1
  51. package/packages/@repo/logger/tsconfig.json +1 -1
  52. package/packages/@repo/mail/tsconfig.json +1 -1
  53. package/packages/@repo/redis/tsconfig.json +1 -1
  54. package/packages/aix/package.json +2 -0
  55. package/packages/aix/src/providers/ai-interface.ts +4 -4
  56. package/packages/aix/src/providers/bedrock/bedrock.ts +261 -0
  57. package/packages/aix/src/providers/default-models.ts +65 -0
  58. package/packages/aix/src/providers/openai/openai.ts +2 -2
  59. package/packages/aix/src/providers/providers.ts +11 -0
  60. package/packages/aix/src/providers/types.ts +1 -1
  61. package/packages/{constants → common}/package.json +4 -2
  62. package/packages/{constants/src/index.ts → common/src/constants.ts} +0 -5
  63. package/packages/common/src/types/users.ts +10 -0
  64. package/packages/{constants → common}/tsconfig.json +0 -3
  65. package/packages/ui/components.json +15 -8
  66. package/packages/ui/package.json +23 -36
  67. package/packages/ui/src/api/axios/i-client.ts +40 -0
  68. package/packages/ui/src/api/index.ts +6 -0
  69. package/packages/ui/src/api/query-provider.tsx +34 -0
  70. package/packages/ui/src/api/use-api/api-builder.ts +139 -0
  71. package/packages/ui/src/api/use-api/api-helpers.ts +165 -0
  72. package/packages/ui/src/api/use-api/api-types.ts +138 -0
  73. package/packages/ui/src/api/use-api/query-factory.ts +66 -0
  74. package/packages/ui/src/api/use-api/react-query/types.ts +64 -0
  75. package/packages/ui/src/api/use-api/react-query/use-api-client.ts +56 -0
  76. package/packages/ui/src/api/use-api/react-query/use-api.ts +297 -0
  77. package/packages/ui/src/components/custom/form-wrapper.tsx +113 -160
  78. package/packages/ui/src/components/custom/grid-component.tsx +4 -4
  79. package/packages/ui/src/components/custom/hover-tool.tsx +1 -1
  80. package/packages/ui/src/components/custom/image-picker.tsx +18 -20
  81. package/packages/ui/src/components/custom/no-content.tsx +6 -16
  82. package/packages/ui/src/components/custom/page-section.tsx +14 -17
  83. package/packages/ui/src/components/custom/simple-popover.tsx +5 -9
  84. package/packages/ui/src/components/custom/theme-provider.tsx +117 -42
  85. package/packages/ui/src/components/custom/typography.tsx +20 -22
  86. package/packages/ui/src/components/extensions/timeline.tsx +100 -0
  87. package/packages/ui/src/components/ui/alert-dialog.tsx +46 -108
  88. package/packages/ui/src/components/ui/avatar.tsx +79 -42
  89. package/packages/ui/src/components/ui/badge.tsx +29 -34
  90. package/packages/ui/src/components/ui/breadcrumb.tsx +65 -81
  91. package/packages/ui/src/components/ui/button.tsx +80 -80
  92. package/packages/ui/src/components/ui/card.tsx +48 -69
  93. package/packages/ui/src/components/ui/carousel.tsx +184 -211
  94. package/packages/ui/src/components/ui/checkbox.tsx +21 -24
  95. package/packages/ui/src/components/ui/command.tsx +121 -102
  96. package/packages/ui/src/components/ui/dialog.tsx +45 -32
  97. package/packages/ui/src/components/ui/dropdown-menu.tsx +45 -33
  98. package/packages/ui/src/components/ui/field.tsx +218 -0
  99. package/packages/ui/src/components/ui/form.tsx +63 -76
  100. package/packages/ui/src/components/ui/input-group.tsx +137 -0
  101. package/packages/ui/src/components/ui/input-otp.tsx +60 -50
  102. package/packages/ui/src/components/ui/input.tsx +16 -15
  103. package/packages/ui/src/components/ui/label.tsx +14 -17
  104. package/packages/ui/src/components/ui/multiple-select.tsx +22 -33
  105. package/packages/ui/src/components/ui/popover.tsx +20 -8
  106. package/packages/ui/src/components/ui/select.tsx +33 -34
  107. package/packages/ui/src/components/ui/separator.tsx +8 -8
  108. package/packages/ui/src/components/ui/sheet.tsx +32 -59
  109. package/packages/ui/src/components/ui/sidebar.tsx +654 -0
  110. package/packages/ui/src/components/ui/skeleton.tsx +2 -8
  111. package/packages/ui/src/components/ui/sonner.tsx +39 -0
  112. package/packages/ui/src/components/ui/spinner.tsx +6 -13
  113. package/packages/ui/src/components/ui/switch.tsx +15 -10
  114. package/packages/ui/src/components/ui/table.tsx +48 -89
  115. package/packages/ui/src/components/ui/tabs.tsx +37 -15
  116. package/packages/ui/src/components/ui/textarea.tsx +13 -13
  117. package/packages/ui/src/components/ui/tooltip.tsx +37 -23
  118. package/packages/ui/src/{components/hooks → hooks}/event/use-click.tsx +6 -10
  119. package/packages/ui/src/hooks/time/use-timer.tsx +51 -0
  120. package/packages/ui/src/hooks/use-media-query.tsx +19 -0
  121. package/packages/ui/src/hooks/use-mobile.tsx +17 -0
  122. package/packages/ui/src/{components/hooks → hooks}/use-update-effect.tsx +2 -2
  123. package/packages/ui/src/lib/utils.ts +113 -0
  124. package/packages/ui/src/styles/globals.css +311 -0
  125. package/packages/ui/src/styles/tailwind.css +89 -0
  126. package/packages/ui/tsconfig.json +7 -9
  127. package/pnpm-workspace.yaml +74 -64
  128. package/packages/ui/postcss.config.mjs +0 -9
  129. package/packages/ui/src/components/extensions/carousel.tsx +0 -392
  130. package/packages/ui/src/components/hooks/time/useTimer.tsx +0 -51
  131. package/packages/ui/src/components/hooks/use-media-query.tsx +0 -19
  132. package/packages/ui/src/components/lib/utils.ts +0 -242
  133. package/packages/ui/src/components/ui/timeline.tsx +0 -118
  134. package/packages/ui/src/components/util/n-formattor.ts +0 -22
  135. package/packages/ui/src/components/util/storage.ts +0 -37
  136. package/packages/ui/src/globals.css +0 -87
  137. package/packages/ui/tailwind.config.ts +0 -94
  138. /package/packages/{constants → common}/eslint.config.ts +0 -0
  139. /package/packages/{constants → common}/src/api.ts +0 -0
  140. /package/packages/{constants → common}/src/time.ts +0 -0
  141. /package/packages/{constants → common}/vitest.config.ts +0 -0
  142. /package/packages/ui/src/{components/hooks/time/useDebounce.tsx → hooks/time/use-debounce.tsx} +0 -0
  143. /package/packages/ui/src/{components/hooks/time/useInterval.tsx → hooks/time/use-interval.tsx} +0 -0
  144. /package/packages/ui/src/{components/hooks/time/useTimeout.tsx → hooks/time/use-timeout.tsx} +0 -0
  145. /package/packages/ui/src/{components/hooks → hooks}/use-persistent-storage.tsx +0 -0
  146. /package/packages/ui/src/{components/hooks → hooks}/use-window-dimension.tsx +0 -0
  147. /package/packages/ui/src/{components/sonner.tsx → sonner.ts} +0 -0
@@ -1,118 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { cn } from '../lib/utils';
4
-
5
- const Timeline = React.forwardRef<HTMLOListElement, React.HTMLAttributes<HTMLOListElement>>(
6
- ({ className, ...props }, ref) => (
7
- <ol ref={ref} className={cn('flex flex-col', className)} {...props} />
8
- ),
9
- );
10
- Timeline.displayName = 'Timeline';
11
-
12
- const TimelineItem = React.forwardRef<HTMLLIElement, React.LiHTMLAttributes<HTMLLIElement> & {className: string}>(
13
- ({ className, ...props }, ref) => (
14
- <li
15
- ref={ref}
16
- className={cn('relative flex flex-col p-6 pl-3 pt-0 [&>*]:mb-2', className)}
17
- {...props}
18
- />
19
- ),
20
- );
21
- TimelineItem.displayName = 'TimelineItem';
22
-
23
- const TimelineTime = React.forwardRef<
24
- HTMLParagraphElement,
25
- React.HTMLAttributes<HTMLParagraphElement>
26
- >(({ className, ...props }, ref) => (
27
- <p
28
- ref={ref}
29
- className={cn(
30
- 'absolute translate-x-36 md:-translate-x-24 text-sm font-semibold leading-none text-secondary-foreground',
31
- className,
32
- )}
33
- {...props}
34
- />
35
- ));
36
- TimelineTime.displayName = 'TimelineTime';
37
-
38
- const TimelineConnector = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
39
- ({ className, ...props }, ref) => (
40
- <div
41
- ref={ref}
42
- className={cn(
43
- 'absolute top-[5px] left-[30px] -translate-x-1/2 translate-y-2 h-full w-px bg-primary',
44
- className,
45
- )}
46
- {...props}
47
- />
48
- ),
49
- );
50
- TimelineConnector.displayName = 'TimelineConnector';
51
-
52
- const TimelineHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
53
- ({ className, ...props }, ref) => (
54
- <div ref={ref} className={cn('flex items-center gap-4', className)} {...props} />
55
- ),
56
- );
57
- TimelineHeader.displayName = 'TimelineHeader';
58
-
59
- const TimelineTitle = React.forwardRef<
60
- HTMLHeadingElement,
61
- React.HTMLAttributes<HTMLHeadingElement>
62
- >(({ className, children, ...props }, ref) => (
63
- <h3
64
- ref={ref}
65
- className={cn('font-semibold leading-none tracking-tight text-secondary-foreground', className)}
66
- {...props}
67
- >
68
- {children}
69
- </h3>
70
- ));
71
- TimelineTitle.displayName = 'CardTitle';
72
-
73
- const TimelineIcon = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
74
- ({ className, ...props }, ref) => (
75
- <div
76
- ref={ref}
77
- className={cn(
78
- 'grid place-content-center flex-col text-center items-center size-7 justify-center relative left-1 bg-primary rounded-full',
79
- className,
80
- )}
81
- {...props}
82
- >
83
- {props.children}
84
- </div>
85
- ),
86
- );
87
- TimelineIcon.displayName = 'TimelineIcon';
88
-
89
- const TimelineDescription = React.forwardRef<
90
- HTMLParagraphElement,
91
- React.HTMLAttributes<HTMLParagraphElement>
92
- >(({ className, ...props }, ref) => (
93
- <p
94
- ref={ref}
95
- className={cn('text-sm text-muted-foreground max-w-sm ml-5', className)}
96
- {...props}
97
- />
98
- ));
99
- TimelineDescription.displayName = 'TimelineDescription';
100
-
101
- const TimelineContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
102
- ({ className, ...props }, ref) => (
103
- <div ref={ref} className={cn('flex flex-col items-start p-6 pt-0', className)} {...props} />
104
- ),
105
- );
106
- TimelineContent.displayName = 'TimelineContent';
107
-
108
- export {
109
- Timeline,
110
- TimelineItem,
111
- TimelineConnector,
112
- TimelineHeader,
113
- TimelineTitle,
114
- TimelineIcon,
115
- TimelineDescription,
116
- TimelineContent,
117
- TimelineTime,
118
- };
@@ -1,22 +0,0 @@
1
- export function nFormatter(num: number, digits?: number) {
2
- if (!num) return "0";
3
- const lookup = [
4
- { value: 1, symbol: "" },
5
- { value: 1e3, symbol: "K" },
6
- { value: 1e6, symbol: "M" },
7
- { value: 1e9, symbol: "B" },
8
- { value: 1e12, symbol: "T" },
9
- { value: 1e15, symbol: "P" },
10
- { value: 1e18, symbol: "E" },
11
- ];
12
- const rx = /\.0+$|(\.[0-9]*[1-9])0+$/;
13
- const item = lookup
14
- .slice()
15
- .reverse()
16
- .find(function (item) {
17
- return num >= item.value;
18
- });
19
- return item
20
- ? (num / item.value).toFixed(digits ?? 1).replace(rx, "$1") + item.symbol
21
- : "0";
22
- }
@@ -1,37 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-return */
2
- /* eslint-disable @typescript-eslint/no-explicit-any */
3
- export interface Store<T = Record<string, any>> {
4
- _store: T;
5
- get(key: string): string | null;
6
- set(key: string, value: string): void;
7
- }
8
-
9
- export const InMemoryStorage: Store = {
10
- _store: {},
11
- get(key: string): string | null {
12
- return this._store[key];
13
- },
14
- set(key: string, value: string): void {
15
- this._store[key] = value;
16
- },
17
- };
18
-
19
- export const SessionStorageStore: Store = {
20
- _store: {},
21
- get(key: string): string | null {
22
- return sessionStorage.getItem(key);
23
- },
24
- set(key: string, value: string): void {
25
- sessionStorage.setItem(key, value);
26
- },
27
- };
28
-
29
- export const LocalStorageStore: Store = {
30
- _store: {},
31
- get(key: string): string | null {
32
- return localStorage.getItem(key);
33
- },
34
- set(key: string, value: string): void {
35
- localStorage.setItem(key, value);
36
- },
37
- };
@@ -1,87 +0,0 @@
1
- @import "tailwindcss";
2
- @config "../tailwind.config.ts";
3
- @source "../**/*.{ts,tsx}";
4
-
5
- @custom-variant dark (&:is(.dark *));
6
-
7
- @layer base {
8
- :root {
9
- --background: 0 0% 100%;
10
- --foreground: 224 71.4% 4.1%;
11
- --card: 0 0% 100%;
12
- --card-foreground: 224 71.4% 4.1%;
13
- --popover: 0 0% 100%;
14
- --popover-foreground: 224 71.4% 4.1%;
15
- --primary: 262.1 83.3% 57.8%;
16
- --primary-foreground: 210 20% 98%;
17
- --secondary: 220 14.3% 95.9%;
18
- --secondary-foreground: 220.9 39.3% 11%;
19
- --muted: 220 14.3% 95.9%;
20
- --muted-foreground: 220 8.9% 46.1%;
21
- --accent: 220 14.3% 95.9%;
22
- --accent-foreground: 220.9 39.3% 11%;
23
- --destructive: 0 84.2% 60.2%;
24
- --destructive-foreground: 210 20% 98%;
25
- --border: 220 13% 91%;
26
- --input: 220 13% 91%;
27
- --ring: 262.1 83.3% 57.8%;
28
- --radius: 0.75rem;
29
- --chart-1: 173 58% 39%;
30
- --chart-2: 12 76% 61%;
31
- --chart-3: 197 37% 24%;
32
- --chart-4: 43 74% 66%;
33
- --chart-5: 27 87% 67%;
34
- }
35
-
36
- .dark {
37
- --background: 224 71.4% 4.1%;
38
- --foreground: 210 20% 98%;
39
- --card: 224 71.4% 4.1%;
40
- --card-foreground: 210 20% 98%;
41
- --popover: 224 71.4% 4.1%;
42
- --popover-foreground: 210 20% 98%;
43
- --primary: 263.4 70% 50.4%;
44
- --primary-foreground: 210 20% 98%;
45
- --secondary: 215 27.9% 16.9%;
46
- --secondary-foreground: 210 20% 98%;
47
- --muted: 215 27.9% 16.9%;
48
- --muted-foreground: 217.9 10.6% 64.9%;
49
- --accent: 215 27.9% 16.9%;
50
- --accent-foreground: 210 20% 98%;
51
- --destructive: 0 62.8% 50.6%;
52
- --destructive-foreground: 210 20% 98%;
53
- --border: 215 27.9% 16.9%;
54
- --input: 215 27.9% 16.9%;
55
- --ring: 263.4 70% 50.4%;
56
- --chart-1: 173 58% 39%;
57
- --chart-2: 12 76% 61%;
58
- --chart-3: 197 37% 24%;
59
- --chart-4: 43 74% 66%;
60
- --chart-5: 27 87% 67%;
61
- }
62
- }
63
-
64
- html {
65
- background-color: var(--background);
66
- }
67
- @layer base {
68
- * {
69
- font-family: var(--font-openSans);
70
- }
71
- }
72
-
73
- @layer utilities {
74
- /* Chrome, Safari and Opera */
75
- .no-scrollbar::-webkit-scrollbar {
76
- display: none;
77
- }
78
-
79
- .no-scrollbar {
80
- -ms-overflow-style: none; /* IE and Edge */
81
- scrollbar-width: none; /* Firefox */
82
- }
83
- }
84
-
85
- html {
86
- scroll-behavior: smooth;
87
- }
@@ -1,94 +0,0 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */
2
- import type { Config } from "tailwindcss";
3
- import tailwindcssAnimate from "tailwindcss-animate";
4
-
5
- const config = {
6
- darkMode: ["class", "string"],
7
- content: [
8
- "./pages/**/*.{ts,tsx}",
9
- "./components/**/*.{ts,tsx}",
10
- "./src/**/*.{ts,tsx}",
11
- "../../apps/**/*.{ts,tsx}",
12
- "../../packages/ui/src/**/*.{ts,tsx}",
13
- ],
14
- prefix: "",
15
- theme: {
16
- container: {
17
- center: true,
18
- padding: "2rem",
19
- screens: {
20
- "2xl": "1400px",
21
- },
22
- },
23
- extend: {
24
- backgroundImage: {
25
- "instagram-gradient": "linear-gradient(45deg, #f09433, #e6683c, #dc2743, #cc2366, #bc1888)",
26
- },
27
- fontFamily: {
28
- poppins: ["var(--font-poppins)", "sans-serif"],
29
- alike: ["var(--font-alike)", "sans-serif"],
30
- openSans: ["var(--font-openSans)", "sans-serif"],
31
- alertaStencils: ["var(--font-alertaStencils)", "sans-serif"],
32
- pacifico: ["var(--font-pacifico)", "sans-serif"],
33
- },
34
- colors: {
35
- border: "hsl(var(--border))",
36
- input: "hsl(var(--input))",
37
- ring: "hsl(var(--ring))",
38
- background: "hsl(var(--background))",
39
- foreground: "hsl(var(--foreground))",
40
- "white-smoke": "#f8f9fa",
41
- primary: {
42
- DEFAULT: "hsl(var(--primary))",
43
- foreground: "hsl(var(--primary-foreground))",
44
- },
45
- secondary: {
46
- DEFAULT: "hsl(var(--secondary))",
47
- foreground: "hsl(var(--secondary-foreground))",
48
- },
49
- destructive: {
50
- DEFAULT: "hsl(var(--destructive))",
51
- foreground: "hsl(var(--destructive-foreground))",
52
- },
53
- muted: {
54
- DEFAULT: "hsl(var(--muted))",
55
- foreground: "hsl(var(--muted-foreground))",
56
- },
57
- accent: {
58
- DEFAULT: "hsl(var(--accent))",
59
- foreground: "hsl(var(--accent-foreground))",
60
- },
61
- popover: {
62
- DEFAULT: "hsl(var(--popover))",
63
- foreground: "hsl(var(--popover-foreground))",
64
- },
65
- card: {
66
- DEFAULT: "hsl(var(--card))",
67
- foreground: "hsl(var(--card-foreground))",
68
- },
69
- },
70
- borderRadius: {
71
- lg: "var(--radius)",
72
- md: "calc(var(--radius) - 2px)",
73
- sm: "calc(var(--radius) - 4px)",
74
- },
75
- keyframes: {
76
- "accordion-down": {
77
- from: { height: "0" },
78
- to: { height: "var(--radix-accordion-content-height)" },
79
- },
80
- "accordion-up": {
81
- from: { height: "var(--radix-accordion-content-height)" },
82
- to: { height: "0" },
83
- },
84
- },
85
- animation: {
86
- "accordion-down": "accordion-down 0.2s ease-out",
87
- "accordion-up": "accordion-up 0.2s ease-out",
88
- },
89
- },
90
- },
91
- plugins: [tailwindcssAnimate],
92
- } satisfies Config;
93
-
94
- export { config };
File without changes
File without changes
File without changes
File without changes