@lerianstudio/sindarian-ui 1.0.0-beta.3 → 1.0.0-beta.31

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 (183) hide show
  1. package/dist/components/breadcrumb/index.js +2 -2
  2. package/dist/components/card/account-card/index.d.ts +32 -0
  3. package/dist/components/card/account-card/index.d.ts.map +1 -0
  4. package/dist/components/card/account-card/index.js +69 -0
  5. package/dist/components/card/basic-card/index.d.ts +6 -0
  6. package/dist/components/card/basic-card/index.d.ts.map +1 -0
  7. package/dist/components/card/basic-card/index.js +20 -0
  8. package/dist/components/card/dashboard-card/index.d.ts +5 -0
  9. package/dist/components/card/dashboard-card/index.d.ts.map +1 -0
  10. package/dist/components/card/dashboard-card/index.js +20 -0
  11. package/dist/components/card/entity-card/index.d.ts +21 -0
  12. package/dist/components/card/entity-card/index.d.ts.map +1 -0
  13. package/dist/components/card/entity-card/index.js +60 -0
  14. package/dist/components/card/index.d.ts +5 -0
  15. package/dist/components/card/index.d.ts.map +1 -0
  16. package/dist/components/card/index.js +20 -0
  17. package/dist/components/dialog/confirmation-dialog/index.d.ts +15 -0
  18. package/dist/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
  19. package/dist/components/dialog/confirmation-dialog/index.js +28 -0
  20. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
  21. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
  22. package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.js +55 -0
  23. package/dist/components/dialog/index.d.ts +4 -0
  24. package/dist/components/dialog/index.d.ts.map +1 -0
  25. package/dist/components/dialog/index.js +19 -0
  26. package/dist/components/dialog/large-dialog/index.d.ts +11 -0
  27. package/dist/components/dialog/large-dialog/index.d.ts.map +1 -0
  28. package/dist/components/dialog/large-dialog/index.js +21 -0
  29. package/dist/components/form/date-picker-field/index.d.ts +19 -0
  30. package/dist/components/form/date-picker-field/index.d.ts.map +1 -0
  31. package/dist/components/form/date-picker-field/index.js +22 -0
  32. package/dist/components/form/date-range-field/index.d.ts +20 -0
  33. package/dist/components/form/date-range-field/index.d.ts.map +1 -0
  34. package/dist/components/form/date-range-field/index.js +22 -0
  35. package/dist/components/form/index.d.ts +2 -0
  36. package/dist/components/form/index.d.ts.map +1 -1
  37. package/dist/components/form/index.js +2 -0
  38. package/dist/components/form/input-field/index.d.ts +4 -1
  39. package/dist/components/form/input-field/index.d.ts.map +1 -1
  40. package/dist/components/form/input-field/index.js +3 -3
  41. package/dist/components/form/pagination-limit-field/index.d.ts +2 -1
  42. package/dist/components/form/pagination-limit-field/index.d.ts.map +1 -1
  43. package/dist/components/form/pagination-limit-field/index.js +2 -2
  44. package/dist/components/form/password-field/index.d.ts +5 -4
  45. package/dist/components/form/password-field/index.d.ts.map +1 -1
  46. package/dist/components/form/password-field/index.js +8 -7
  47. package/dist/components/form/select-field/index.d.ts +3 -1
  48. package/dist/components/form/select-field/index.d.ts.map +1 -1
  49. package/dist/components/form/select-field/index.js +8 -2
  50. package/dist/components/form/switch-field/index.d.ts +2 -1
  51. package/dist/components/form/switch-field/index.d.ts.map +1 -1
  52. package/dist/components/form/switch-field/index.js +2 -2
  53. package/dist/components/page/index.d.ts.map +1 -1
  54. package/dist/components/page/index.js +3 -3
  55. package/dist/components/page-header/index.d.ts.map +1 -1
  56. package/dist/components/page-header/index.js +6 -4
  57. package/dist/components/pagination/index.js +1 -1
  58. package/dist/components/table/id-table-cell.d.ts +3 -2
  59. package/dist/components/table/id-table-cell.d.ts.map +1 -1
  60. package/dist/components/table/id-table-cell.js +2 -2
  61. package/dist/components/table/locked-table-actions.js +1 -1
  62. package/dist/components/ui/alert/index.d.ts +5 -1
  63. package/dist/components/ui/alert/index.d.ts.map +1 -1
  64. package/dist/components/ui/alert/index.js +22 -8
  65. package/dist/components/ui/alert/styles.css +68 -0
  66. package/dist/components/ui/badge/index.d.ts +1 -1
  67. package/dist/components/ui/breadcrumb/index.d.ts.map +1 -1
  68. package/dist/components/ui/breadcrumb/index.js +5 -5
  69. package/dist/components/ui/breadcrumb/styles.css +27 -0
  70. package/dist/components/ui/button/index.d.ts +8 -3
  71. package/dist/components/ui/button/index.d.ts.map +1 -1
  72. package/dist/components/ui/button/index.js +21 -29
  73. package/dist/components/ui/button/styles.css +64 -0
  74. package/dist/components/ui/calendar/index.d.ts +9 -0
  75. package/dist/components/ui/calendar/index.d.ts.map +1 -0
  76. package/dist/components/ui/calendar/index.js +115 -0
  77. package/dist/components/ui/card/index.js +1 -1
  78. package/dist/components/ui/command/index.d.ts +1 -1
  79. package/dist/components/ui/command/index.d.ts.map +1 -1
  80. package/dist/components/ui/command/index.js +52 -2
  81. package/dist/components/ui/dialog/index.d.ts.map +1 -1
  82. package/dist/components/ui/dialog/index.js +6 -6
  83. package/dist/components/ui/dialog/styles.css +34 -0
  84. package/dist/components/ui/field/index.d.ts +25 -0
  85. package/dist/components/ui/field/index.d.ts.map +1 -0
  86. package/dist/components/ui/field/index.js +79 -0
  87. package/dist/components/ui/form.d.ts.map +1 -1
  88. package/dist/components/ui/form.js +1 -0
  89. package/dist/components/ui/icon-button/index.d.ts +13 -0
  90. package/dist/components/ui/icon-button/index.d.ts.map +1 -0
  91. package/dist/components/ui/icon-button/index.js +35 -0
  92. package/dist/components/ui/icon-button/styles.css +33 -0
  93. package/dist/components/ui/input/adornment.d.ts +9 -0
  94. package/dist/components/ui/input/adornment.d.ts.map +1 -0
  95. package/dist/components/ui/input/adornment.js +21 -0
  96. package/dist/components/ui/input/index.d.ts +16 -2
  97. package/dist/components/ui/input/index.d.ts.map +1 -1
  98. package/dist/components/ui/input/index.js +90 -2
  99. package/dist/components/ui/input/styles.css +68 -0
  100. package/dist/components/ui/multiple-select/index.d.ts +6 -6
  101. package/dist/components/ui/paper-collapsible/index.d.ts +9 -0
  102. package/dist/components/ui/paper-collapsible/index.d.ts.map +1 -0
  103. package/dist/components/ui/paper-collapsible/index.js +24 -0
  104. package/dist/components/ui/progress/index.d.ts +1 -1
  105. package/dist/components/ui/progress/index.d.ts.map +1 -1
  106. package/dist/components/ui/select/index.d.ts +1 -2
  107. package/dist/components/ui/select/index.d.ts.map +1 -1
  108. package/dist/components/ui/select/index.js +9 -18
  109. package/dist/components/ui/select/styles.css +57 -0
  110. package/dist/components/ui/sidebar/index.d.ts +10 -0
  111. package/dist/components/ui/sidebar/index.d.ts.map +1 -0
  112. package/dist/components/ui/sidebar/index.js +25 -0
  113. package/dist/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
  114. package/dist/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
  115. package/dist/components/ui/sidebar/sidebar-back-button.js +8 -0
  116. package/dist/components/ui/sidebar/sidebar-components.d.ts +23 -0
  117. package/dist/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
  118. package/dist/components/ui/sidebar/sidebar-components.js +23 -0
  119. package/dist/components/ui/sidebar/sidebar-expand-button.d.ts +6 -0
  120. package/dist/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
  121. package/dist/components/ui/sidebar/sidebar-expand-button.js +19 -0
  122. package/dist/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
  123. package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
  124. package/dist/components/ui/sidebar/sidebar-item-button.js +23 -0
  125. package/dist/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
  126. package/dist/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
  127. package/dist/components/ui/sidebar/sidebar-item-collapsible.js +52 -0
  128. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
  129. package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
  130. package/dist/components/ui/sidebar/sidebar-item-icon-button.js +20 -0
  131. package/dist/components/ui/sidebar/sidebar-item.d.ts +13 -0
  132. package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
  133. package/dist/components/ui/sidebar/sidebar-item.js +19 -0
  134. package/dist/components/ui/sidebar/sidebar-provider.d.ts +12 -0
  135. package/dist/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
  136. package/dist/components/ui/sidebar/sidebar-provider.js +59 -0
  137. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +2 -0
  138. package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +1 -0
  139. package/dist/components/ui/sidebar/sidebar-provider.test.js +167 -0
  140. package/dist/components/ui/sidebar/sidebar-root.d.ts +3 -0
  141. package/dist/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
  142. package/dist/components/ui/sidebar/sidebar-root.js +24 -0
  143. package/dist/components/ui/stepper/index.d.ts.map +1 -1
  144. package/dist/components/ui/stepper/index.js +4 -4
  145. package/dist/components/ui/stepper/styles.css +41 -0
  146. package/dist/components/ui/tabs/index.d.ts.map +1 -1
  147. package/dist/components/ui/tabs/index.js +4 -4
  148. package/dist/components/ui/tabs/styles.css +31 -0
  149. package/dist/components/ui/toast/toaster.js +1 -1
  150. package/dist/globals.css +218 -0
  151. package/dist/hooks/use-time.d.ts +6 -0
  152. package/dist/hooks/use-time.d.ts.map +1 -0
  153. package/dist/hooks/use-time.js +20 -0
  154. package/dist/index.d.ts +7 -1
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +8 -1
  157. package/dist/lib/storage/get-storage-object.d.ts +2 -0
  158. package/dist/lib/storage/get-storage-object.d.ts.map +1 -0
  159. package/dist/lib/storage/get-storage-object.js +19 -0
  160. package/dist/lib/storage/get-storage.d.ts +2 -0
  161. package/dist/lib/storage/get-storage.d.ts.map +1 -0
  162. package/dist/lib/storage/get-storage.js +17 -0
  163. package/dist/lib/storage/index.d.ts +3 -0
  164. package/dist/lib/storage/index.d.ts.map +1 -0
  165. package/dist/lib/storage/index.js +18 -0
  166. package/dist/public/arm.gif +0 -0
  167. package/dist/public/clap.gif +0 -0
  168. package/dist/public/confetti-ball.gif +0 -0
  169. package/dist/public/countries.json +21200 -21200
  170. package/dist/public/dizzy.gif +0 -0
  171. package/dist/public/electricity.gif +0 -0
  172. package/dist/public/gear.gif +0 -0
  173. package/dist/public/gem.gif +0 -0
  174. package/dist/public/pencil.gif +0 -0
  175. package/dist/public/robot.gif +0 -0
  176. package/dist/public/rocket.gif +0 -0
  177. package/dist/public/software.gif +0 -0
  178. package/dist/public/solar-system.gif +0 -0
  179. package/dist/public/unicorn.gif +0 -0
  180. package/package.json +32 -29
  181. package/dist/components/ui/input-with-icon/index.d.ts +0 -12
  182. package/dist/components/ui/input-with-icon/index.d.ts.map +0 -1
  183. package/dist/components/ui/input-with-icon/index.js +0 -57
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("@testing-library/react");
5
+ const sidebar_provider_1 = require("./sidebar-provider");
6
+ const wrapper = ({ children }) => ((0, jsx_runtime_1.jsx)(sidebar_provider_1.SidebarProvider, { children: children }));
7
+ describe('SidebarProvider', () => {
8
+ beforeEach(() => {
9
+ localStorage.clear();
10
+ jest.clearAllMocks();
11
+ });
12
+ describe('initial state', () => {
13
+ it('should initialize with collapsed as false (SSR-safe default)', () => {
14
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
15
+ expect(result.current.isCollapsed).toBe(false);
16
+ });
17
+ it('should initialize with empty items (SSR-safe default)', () => {
18
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
19
+ expect(result.current.items).toEqual({});
20
+ });
21
+ });
22
+ describe('hydration from localStorage', () => {
23
+ it('should load collapsed state from localStorage after hydration', async () => {
24
+ localStorage.setItem('sidebar-collapsed', 'true');
25
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
26
+ await (0, react_1.waitFor)(() => {
27
+ expect(result.current.isCollapsed).toBe(true);
28
+ });
29
+ });
30
+ it('should load items from localStorage after hydration', async () => {
31
+ const storedItems = { 'item-1': true, 'item-2': false };
32
+ localStorage.setItem('sidebar-items', JSON.stringify(storedItems));
33
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
34
+ await (0, react_1.waitFor)(() => {
35
+ expect(result.current.items).toEqual(storedItems);
36
+ });
37
+ });
38
+ it('should handle invalid JSON in localStorage gracefully', async () => {
39
+ localStorage.setItem('sidebar-items', 'invalid-json');
40
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
41
+ await (0, react_1.waitFor)(() => {
42
+ expect(result.current.items).toEqual({});
43
+ });
44
+ });
45
+ });
46
+ describe('toggleSidebar', () => {
47
+ it('should toggle collapsed state from false to true', async () => {
48
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
49
+ expect(result.current.isCollapsed).toBe(false);
50
+ (0, react_1.act)(() => {
51
+ result.current.toggleSidebar();
52
+ });
53
+ expect(result.current.isCollapsed).toBe(true);
54
+ });
55
+ it('should toggle collapsed state from true to false', async () => {
56
+ localStorage.setItem('sidebar-collapsed', 'true');
57
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
58
+ await (0, react_1.waitFor)(() => {
59
+ expect(result.current.isCollapsed).toBe(true);
60
+ });
61
+ (0, react_1.act)(() => {
62
+ result.current.toggleSidebar();
63
+ });
64
+ expect(result.current.isCollapsed).toBe(false);
65
+ });
66
+ });
67
+ describe('getItemCollapsed', () => {
68
+ it('should return false for non-existent item', () => {
69
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
70
+ expect(result.current.getItemCollapsed('non-existent')).toBe(false);
71
+ });
72
+ it('should return the correct value for existing item', async () => {
73
+ localStorage.setItem('sidebar-items', JSON.stringify({ 'my-item': true }));
74
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
75
+ await (0, react_1.waitFor)(() => {
76
+ expect(result.current.getItemCollapsed('my-item')).toBe(true);
77
+ });
78
+ });
79
+ });
80
+ describe('setItemCollapsed', () => {
81
+ it('should set item collapsed state', () => {
82
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
83
+ (0, react_1.act)(() => {
84
+ result.current.setItemCollapsed('new-item', true);
85
+ });
86
+ expect(result.current.items['new-item']).toBe(true);
87
+ expect(result.current.getItemCollapsed('new-item')).toBe(true);
88
+ });
89
+ it('should update existing item collapsed state', async () => {
90
+ localStorage.setItem('sidebar-items', JSON.stringify({ 'existing-item': true }));
91
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
92
+ await (0, react_1.waitFor)(() => {
93
+ expect(result.current.getItemCollapsed('existing-item')).toBe(true);
94
+ });
95
+ (0, react_1.act)(() => {
96
+ result.current.setItemCollapsed('existing-item', false);
97
+ });
98
+ expect(result.current.getItemCollapsed('existing-item')).toBe(false);
99
+ });
100
+ it('should preserve other items when setting a new item', async () => {
101
+ localStorage.setItem('sidebar-items', JSON.stringify({ 'item-1': true, 'item-2': false }));
102
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
103
+ await (0, react_1.waitFor)(() => {
104
+ expect(result.current.items).toEqual({ 'item-1': true, 'item-2': false });
105
+ });
106
+ (0, react_1.act)(() => {
107
+ result.current.setItemCollapsed('item-3', true);
108
+ });
109
+ expect(result.current.items).toEqual({
110
+ 'item-1': true,
111
+ 'item-2': false,
112
+ 'item-3': true
113
+ });
114
+ });
115
+ });
116
+ describe('localStorage persistence', () => {
117
+ it('should persist collapsed state to localStorage after change', async () => {
118
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
119
+ // Wait for hydration
120
+ await (0, react_1.waitFor)(() => {
121
+ expect(localStorage.getItem('sidebar-collapsed')).toBeDefined();
122
+ });
123
+ (0, react_1.act)(() => {
124
+ result.current.toggleSidebar();
125
+ });
126
+ await (0, react_1.waitFor)(() => {
127
+ expect(localStorage.getItem('sidebar-collapsed')).toBe('true');
128
+ });
129
+ });
130
+ it('should persist items to localStorage after change', async () => {
131
+ const { result } = (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
132
+ // Wait for hydration
133
+ await (0, react_1.waitFor)(() => {
134
+ expect(localStorage.getItem('sidebar-items')).toBeDefined();
135
+ });
136
+ (0, react_1.act)(() => {
137
+ result.current.setItemCollapsed('persisted-item', true);
138
+ });
139
+ await (0, react_1.waitFor)(() => {
140
+ const stored = JSON.parse(localStorage.getItem('sidebar-items') || '{}');
141
+ expect(stored['persisted-item']).toBe(true);
142
+ });
143
+ });
144
+ it('should not overwrite localStorage before hydration completes', async () => {
145
+ const initialItems = { 'pre-existing': true };
146
+ localStorage.setItem('sidebar-items', JSON.stringify(initialItems));
147
+ (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)(), { wrapper });
148
+ // The initial localStorage value should be preserved and loaded
149
+ await (0, react_1.waitFor)(() => {
150
+ const stored = JSON.parse(localStorage.getItem('sidebar-items') || '{}');
151
+ expect(stored['pre-existing']).toBe(true);
152
+ });
153
+ });
154
+ });
155
+ describe('useSidebar hook', () => {
156
+ it('should throw error when used outside SidebarProvider', () => {
157
+ // Suppress console.error for this test
158
+ const consoleSpy = jest
159
+ .spyOn(console, 'error')
160
+ .mockImplementation(() => { });
161
+ expect(() => {
162
+ (0, react_1.renderHook)(() => (0, sidebar_provider_1.useSidebar)());
163
+ }).toThrow('useSidebar must be used within a SidebarProvider');
164
+ consoleSpy.mockRestore();
165
+ });
166
+ });
167
+ });
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ export declare const SidebarRoot: ({ className, ...props }: React.ComponentProps<"nav">) => import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=sidebar-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar-root.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/sidebar/sidebar-root.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAoBzB,eAAO,MAAM,WAAW,GAAI,yBAGzB,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,4CAW7B,CAAA"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SidebarRoot = void 0;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const class_variance_authority_1 = require("class-variance-authority");
7
+ const sidebar_provider_1 = require("./sidebar-provider");
8
+ const utils_1 = require("../../../lib/utils");
9
+ const sidebarVariants = (0, class_variance_authority_1.cva)('group/sidebar shadow-sidebar dark:bg-cod-gray-950 relative flex flex-col transition-[width] duration-300 ease-in-out', {
10
+ variants: {
11
+ collapsed: {
12
+ true: 'w-[72px]',
13
+ false: 'w-[244px]'
14
+ }
15
+ },
16
+ defaultVariants: {
17
+ collapsed: false
18
+ }
19
+ });
20
+ const SidebarRoot = ({ className, ...props }) => {
21
+ const { isCollapsed } = (0, sidebar_provider_1.useSidebar)();
22
+ return ((0, jsx_runtime_1.jsx)("nav", { "data-slot": "sidebar-root", className: (0, utils_1.cn)(sidebarVariants({ collapsed: isCollapsed }), className), "data-collapsed": isCollapsed, ...props }));
23
+ };
24
+ exports.SidebarRoot = SidebarRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/stepper/index.tsx"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQ3E;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,MAAc,EACd,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAalB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAa7B;AAED,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,WAAW,EACX,GAAG,KAAK,EACT,EAAE,oBAAoB,2CA2BtB;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,GAAG;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,sBAAsB,mBAAmB,mDAEvE,CAAA;AAED,eAAO,MAAM,mBAAmB,+CAK/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/stepper/index.tsx"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAI3E;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,MAAc,EACd,QAAgB,EAChB,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAUlB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQ7B;AAED,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/D,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,KAAK,EACL,WAAW,EACX,GAAG,KAAK,EACT,EAAE,oBAAoB,2CActB;AAED,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,iBAAiB,GAAG;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,sBAAsB,mBAAmB,mDAEvE,CAAA;AAED,eAAO,MAAM,mBAAmB,+CAK/B,CAAA"}
@@ -10,16 +10,16 @@ const utils_1 = require("../../../lib/utils");
10
10
  const lucide_react_1 = require("lucide-react");
11
11
  const skeleton_1 = require("../skeleton");
12
12
  function Stepper({ className, ...props }) {
13
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "stepper", className: (0, utils_1.cn)('flex flex-col gap-4', className), ...props }));
13
+ return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "stepper", className: (0, utils_1.cn)('stepper', className), ...props }));
14
14
  }
15
15
  function StepperItem({ className, active = false, complete = false, ...props }) {
16
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "stepper-item", "data-active": active, "data-complete": complete, className: (0, utils_1.cn)('group flex flex-row gap-3 data-[complete=true]:cursor-pointer', className), ...props }));
16
+ return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "stepper-item", "data-active": active, "data-complete": complete, className: (0, utils_1.cn)('group stepper-item', className), ...props }));
17
17
  }
18
18
  function StepperItemNumber({ className, ...props }) {
19
- return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "stepper-item-number", className: (0, utils_1.cn)('border-shadcn-400 text-shadcn-400 flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-sm font-medium', 'group-data-[active=true]:border-none group-data-[active=true]:bg-zinc-700 group-data-[active=true]:text-white', 'group-data-[complete=true]:border-none group-data-[complete=true]:bg-white group-data-[complete=true]:text-zinc-700', className), ...props }));
19
+ return ((0, jsx_runtime_1.jsx)("div", { "data-slot": "stepper-item-number", className: (0, utils_1.cn)('stepper-item-number', className), ...props }));
20
20
  }
21
21
  function StepperItemText({ className, title, description, ...props }) {
22
- return ((0, jsx_runtime_1.jsxs)("div", { "data-slot": "stepper-item-text", className: (0, utils_1.cn)('text-shadcn-400 flex flex-col text-sm font-medium', 'group-data-[active=true]:text-zinc-700', 'group-data-[complete=true]:text-zinc-700 group-data-[complete=true]:underline', className), ...props, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex h-8 items-center gap-3", children: [(0, jsx_runtime_1.jsx)("p", { children: title }), (0, jsx_runtime_1.jsx)(lucide_react_1.CircleCheck, { className: "text-green-600 group-data-[complete=false]:hidden", width: 16, height: 16 })] }), description && ((0, jsx_runtime_1.jsx)("p", { className: "text-xs text-zinc-500 group-data-[active=false]:hidden", children: description }))] }));
22
+ return ((0, jsx_runtime_1.jsxs)("div", { "data-slot": "stepper-item-text", className: (0, utils_1.cn)('stepper-item-text', className), ...props, children: [(0, jsx_runtime_1.jsxs)("div", { className: "stepper-item-title", children: [(0, jsx_runtime_1.jsx)("p", { children: title }), (0, jsx_runtime_1.jsx)(lucide_react_1.CircleCheck, { className: "stepper-item-icon", width: 16, height: 16 })] }), description && (0, jsx_runtime_1.jsx)("p", { className: "stepper-item-description", children: description })] }));
23
23
  }
24
24
  const StepperContent = ({ active, children }) => {
25
25
  return active ? (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }) : null;
@@ -0,0 +1,41 @@
1
+ @theme inline {
2
+ --color-stepper-item-text: var(--color-shadcn-400);
3
+ --color-stepper-item-active: var(--color-zinc-700);
4
+ --color-stepper-item-number: var(--color-shadcn-400);
5
+ --color-stepper-item-icon: var(--color-green-600);
6
+ --color-stepper-item-description: var(--color-zinc-500);
7
+ }
8
+
9
+ @layer components {
10
+ .stepper {
11
+ @apply flex flex-col gap-4;
12
+ }
13
+
14
+ .stepper-item {
15
+ @apply flex flex-row gap-3 data-[complete=true]:cursor-pointer;
16
+ }
17
+
18
+ .stepper-item-number {
19
+ @apply border-stepper-item-number text-stepper-item-number flex h-8 w-8 shrink-0 items-center justify-center rounded-full border text-sm font-medium;
20
+ @apply group-data-[active=true]:border-none group-data-[active=true]:bg-stepper-item-active group-data-[active=true]:text-white;
21
+ @apply group-data-[complete=true]:border-none group-data-[complete=true]:bg-white group-data-[complete=true]:text-stepper-item-active;
22
+ }
23
+
24
+ .stepper-item-text {
25
+ @apply text-stepper-item-text flex flex-col text-sm font-medium;
26
+ @apply group-data-[active=true]:text-stepper-item-active;
27
+ @apply group-data-[complete=true]:text-stepper-item-active group-data-[complete=true]:underline;
28
+ }
29
+
30
+ .stepper-item-title {
31
+ @apply flex h-8 items-center gap-3;
32
+ }
33
+
34
+ .stepper-item-icon {
35
+ @apply text-stepper-item-icon group-data-[complete=false]:hidden;
36
+ }
37
+
38
+ .stepper-item-description {
39
+ @apply text-xs text-stepper-item-description group-data-[active=false]:hidden;
40
+ }
41
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAA;AAIrD,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAWjD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAWpD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAWpD;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/tabs/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAA;AAIrD,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAWpD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAQpD;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAA"}
@@ -42,14 +42,14 @@ const jsx_runtime_1 = require("react/jsx-runtime");
42
42
  const TabsPrimitive = __importStar(require("@radix-ui/react-tabs"));
43
43
  const utils_1 = require("../../../lib/utils");
44
44
  function Tabs({ className, ...props }) {
45
- return ((0, jsx_runtime_1.jsx)(TabsPrimitive.Root, { "data-slot": "tabs", className: (0, utils_1.cn)('mt-6 w-full', className), ...props }));
45
+ return ((0, jsx_runtime_1.jsx)(TabsPrimitive.Root, { "data-slot": "tabs", className: (0, utils_1.cn)('tabs', className), ...props }));
46
46
  }
47
47
  function TabsList({ className, ...props }) {
48
- return ((0, jsx_runtime_1.jsx)(TabsPrimitive.List, { "data-slot": "tabs-list", className: (0, utils_1.cn)('flex h-10 items-center justify-start gap-4 rounded-md p-1 text-slate-500', className), ...props }));
48
+ return ((0, jsx_runtime_1.jsx)(TabsPrimitive.List, { "data-slot": "tabs-list", className: (0, utils_1.cn)('tabs-list', className), ...props }));
49
49
  }
50
50
  function TabsTrigger({ className, ...props }) {
51
- return ((0, jsx_runtime_1.jsx)(TabsPrimitive.Trigger, { "data-slot": "tabs-trigger", className: (0, utils_1.cn)('!focus-visible:outline-none !focus-visible:ring-2 !focus-visible:ring-slate-950 !focus-visible:ring-offset-2 text-shadcn-400 hover:text-shadcn-500 data-[state=active]:bg-accent data-[state=active]:text-accent-foreground inline-flex items-center justify-center rounded-md px-4 py-[10px] text-sm font-medium whitespace-nowrap ring-offset-white transition-all hover:bg-white disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-xs', className), ...props }));
51
+ return ((0, jsx_runtime_1.jsx)(TabsPrimitive.Trigger, { "data-slot": "tabs-trigger", className: (0, utils_1.cn)('!focus-visible:outline-none !focus-visible:ring-2 !focus-visible:ring-slate-950 !focus-visible:ring-offset-2 tabs-trigger tabs-trigger-disabled', className), ...props }));
52
52
  }
53
53
  function TabsContent({ className, ...props }) {
54
- return ((0, jsx_runtime_1.jsx)(TabsPrimitive.Content, { "data-slot": "tabs-content", className: (0, utils_1.cn)('mt-4 ring-offset-white focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 focus-visible:outline-hidden', className), ...props }));
54
+ return ((0, jsx_runtime_1.jsx)(TabsPrimitive.Content, { "data-slot": "tabs-content", className: (0, utils_1.cn)('tabs-content', className), ...props }));
55
55
  }
@@ -0,0 +1,31 @@
1
+ @theme inline {
2
+ --color-tabs-trigger-text: var(--color-shadcn-400);
3
+ --color-tabs-trigger-hover: var(--color-white);
4
+ --color-tabs-trigger-text-hover: var(--color-shadcn-500);
5
+ --color-tabs-trigger-active: var(--color-accent);
6
+ --color-tabs-trigger-text-active: var(--color-zinc-700);
7
+ }
8
+
9
+ @layer components {
10
+ .tabs {
11
+ @apply mt-6 w-full;
12
+ }
13
+
14
+ .tabs-list {
15
+ @apply flex h-10 items-center justify-start gap-4 rounded-md p-1;
16
+ }
17
+
18
+ .tabs-trigger {
19
+ @apply text-tabs-trigger-text hover:text-tabs-trigger-text-hover cursor-pointer inline-flex items-center justify-center rounded-lg px-4 py-2.5 text-sm font-medium whitespace-nowrap ring-offset-white transition-all hover:bg-tabs-trigger-hover;
20
+ @apply focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2;
21
+ @apply data-[state=active]:bg-tabs-trigger-active data-[state=active]:text-tabs-trigger-text-active;
22
+ }
23
+
24
+ .tabs-trigger-disabled {
25
+ @apply disabled:pointer-events-none disabled:opacity-50;
26
+ }
27
+
28
+ .tabs-content {
29
+ @apply mt-4 ring-offset-white focus-visible:ring-2 focus-visible:ring-slate-950 focus-visible:ring-offset-2 focus-visible:outline-hidden;
30
+ }
31
+ }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.Toaster = Toaster;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const use_toast_1 = require("../../../hooks/use-toast");
7
- const toast_1 = require("../../../components/ui/toast");
7
+ const toast_1 = require("../toast");
8
8
  function Toaster() {
9
9
  const { toasts } = (0, use_toast_1.useToast)();
10
10
  return ((0, jsx_runtime_1.jsxs)(toast_1.ToastProvider, { children: [toasts.map(function ({ id, title, description, action, ...props }) {
@@ -0,0 +1,218 @@
1
+ @import 'tailwindcss';
2
+ @import 'tw-animate-css';
3
+
4
+ @import './components/ui/button/styles.css';
5
+ @import './components/ui/icon-button/styles.css';
6
+ @import './components/ui/input/styles.css';
7
+ @import './components/ui/select/styles.css';
8
+ @import './components/ui/breadcrumb/styles.css';
9
+ @import './components/ui/alert/styles.css';
10
+ @import './components/ui/stepper/styles.css';
11
+ @import './components/ui/tabs/styles.css';
12
+ @import './components/ui/dialog/styles.css';
13
+
14
+ @custom-variant dark (&:is(.dark *));
15
+
16
+ @theme inline {
17
+ --font-sans: var(--font-inter), Inter, ui-sans-serif, system-ui, sans-serif;
18
+
19
+ --shadow-sidebar: 5px 0px 15px -3px rgba(0, 0, 0, 0.05);
20
+ --shadow-data-table:
21
+ 0px 1px 2px 0px rgba(0, 0, 0, 0.1), 0px 10px 20px 0px rgba(0, 0, 0, 0.05);
22
+ --shadow-sheet-bottom:
23
+ 0px -1px 2px 0px rgba(0, 0, 0, 0.1), 0px -10px 20px 0px rgba(0, 0, 0, 0.05);
24
+ --shadow-drawer:
25
+ 0px 4px 8px 0px rgba(0, 0, 0, 0.2), 0px -1px 16px 0px rgba(0, 0, 0, 0.1),
26
+ 0px 0px 32px 0px rgba(0, 0, 0, 0.05);
27
+ --shadow-entity-box:
28
+ 0px 10px 20px rgba(0, 0, 0, 0.05), 0px 1px 2px rgba(0, 0, 0, 0.1);
29
+
30
+ --color-sunglow-50: #fefbe8;
31
+ --color-sunglow-100: #fff8c2;
32
+ --color-sunglow-200: #ffed89;
33
+ --color-sunglow-300: #ffdc45;
34
+ --color-sunglow-400: #fdcb28;
35
+ --color-sunglow-500: #edac05;
36
+ --color-sunglow-600: #cc8402;
37
+ --color-sunglow-700: #a35d05;
38
+ --color-sunglow-800: #86490d;
39
+ --color-sunglow-900: #723c11;
40
+ --color-sunglow-950: #431e05;
41
+
42
+ --color-de-york-50: #f2fbf5;
43
+ --color-de-york-100: #e0f8e8;
44
+ --color-de-york-200: #c2f0d2;
45
+ --color-de-york-300: #74db9a;
46
+ --color-de-york-400: #5bcd86;
47
+ --color-de-york-500: #35b264;
48
+ --color-de-york-600: #26934f;
49
+ --color-de-york-700: #217441;
50
+ --color-de-york-800: #1f5c36;
51
+ --color-de-york-900: #1b4c2f;
52
+ --color-de-york-950: #0a2917;
53
+
54
+ --color-vivid-tangerine-50: #fef5f2;
55
+ --color-vivid-tangerine-100: #fee9e2;
56
+ --color-vivid-tangerine-200: #fed7ca;
57
+ --color-vivid-tangerine-300: #fdbaa4;
58
+ --color-vivid-tangerine-400: #faa589;
59
+ --color-vivid-tangerine-500: #f06e43;
60
+ --color-vivid-tangerine-600: #dd5325;
61
+ --color-vivid-tangerine-700: #ba421b;
62
+ --color-vivid-tangerine-800: #9a3a1a;
63
+ --color-vivid-tangerine-900: #80351c;
64
+ --color-vivid-tangerine-950: #45190a;
65
+
66
+ --color-cod-gray-50: #f6f5f5;
67
+ --color-cod-gray-100: #e9e4e4;
68
+ --color-cod-gray-200: #d5ccce;
69
+ --color-cod-gray-300: #b7a9ab;
70
+ --color-cod-gray-400: #927e81;
71
+ --color-cod-gray-500: #776366;
72
+ --color-cod-gray-600: #655557;
73
+ --color-cod-gray-700: #55494a;
74
+ --color-cod-gray-800: #4a4040;
75
+ --color-cod-gray-900: #403939;
76
+ --color-cod-gray-950: #070606;
77
+
78
+ --color-shadcn-100: #f4f4f5;
79
+ --color-shadcn-200: #e4e4e7;
80
+ --color-shadcn-300: #d4d4d8;
81
+ --color-shadcn-400: #a1a1aa;
82
+ --color-shadcn-500: #71717a;
83
+ --color-shadcn-600: #27272a;
84
+ --color-shadcn-700: #18181b;
85
+ --color-shadcn-800: #09090b;
86
+
87
+ --color-border: hsl(var(--border));
88
+ --color-input: hsl(var(--input));
89
+ --color-ring: hsl(var(--ring));
90
+ --color-background: hsl(var(--background));
91
+ --color-foreground: hsl(var(--foreground));
92
+
93
+ --color-primary: hsl(var(--primary));
94
+ --color-primary-foreground: hsl(var(--primary-foreground));
95
+
96
+ --color-secondary: hsl(var(--secondary));
97
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
98
+
99
+ --color-destructive: hsl(var(--destructive));
100
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
101
+
102
+ --color-muted: hsl(var(--muted));
103
+ --color-muted-foreground: hsl(var(--muted-foreground));
104
+
105
+ --color-accent: hsl(var(--accent));
106
+ --color-accent-foreground: hsl(var(--accent-foreground));
107
+
108
+ --color-popover: hsl(var(--popover));
109
+ --color-popover-foreground: hsl(var(--popover-foreground));
110
+
111
+ --color-card: hsl(var(--card));
112
+ --color-card-foreground: hsl(var(--card-foreground));
113
+
114
+ --radius-lg: var(--radius);
115
+ --radius-md: calc(var(--radius) - 2px);
116
+ --radius-sm: calc(var(--radius) - 4px);
117
+ }
118
+
119
+ @utility container {
120
+ margin-inline: auto;
121
+ padding-inline: 2rem;
122
+ @media (width >= --theme(--breakpoint-sm)) {
123
+ max-width: none;
124
+ }
125
+ @media (width >= 1400px) {
126
+ max-width: 1400px;
127
+ }
128
+ }
129
+
130
+ /*
131
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
132
+ so we've added these compatibility styles to make sure everything still
133
+ looks the same as it did with Tailwind CSS v3.
134
+
135
+ If we ever want to remove these styles, we need to add an explicit border
136
+ color utility to any element that depends on these defaults.
137
+ */
138
+ @layer base {
139
+ *,
140
+ ::after,
141
+ ::before,
142
+ ::backdrop,
143
+ ::file-selector-button {
144
+ border-color: var(--color-gray-200, currentcolor);
145
+ }
146
+ }
147
+
148
+ @layer base {
149
+ :root {
150
+ /* Default background color of <body /> */
151
+ --background: 0 0% 100%;
152
+ --foreground: 222.2 47.4% 11.2%;
153
+
154
+ /* Background color for <Card /> */
155
+ --card: 0 0% 100%;
156
+ --card-foreground: 222.2 47.4% 11.2%;
157
+
158
+ /*Background color for popovers such as <DropdownMenu />, <HoverCard />, <Popover />*/
159
+ --popover: 0 0% 100%;
160
+ --popover-foreground: 222.2 47.4% 11.2%;
161
+
162
+ /* Primary ans secondary colors for <Button /> */
163
+ --primary: 222.2 47.4% 11.2%;
164
+ --primary-foreground: 210 40% 98%;
165
+ --secondary: 210 40% 96.1%;
166
+ --secondary-foreground: 222.2 47.4% 11.2%;
167
+
168
+ --muted: 210 40% 96.1%;
169
+ --muted-foreground: 215.4 16.3% 46.9%;
170
+
171
+ /* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */
172
+ --accent: 56 99% 50%;
173
+ --accent-foreground: 222.2 47.4% 11.2%;
174
+
175
+ /* Used for destructive actions such as <Button variant="destructive"> */
176
+ --destructive: 0 100% 50%;
177
+ --destructive-foreground: 210 40% 98%;
178
+
179
+ /* Default border color */
180
+ --border: 214.3 31.8% 91.4%;
181
+
182
+ /* Border color for inputs such as <Input />, <Select />, <Textarea /> */
183
+ --input: 214.3 31.8% 91.4%;
184
+
185
+ /* Used for focus rings */
186
+ --ring: 215 20.2% 65.1%;
187
+
188
+ /* Used for border radius */
189
+ --radius: 0.5rem;
190
+ }
191
+
192
+ .dark {
193
+ --color-background: oklch(0.209 0.042 265.755);
194
+ --color-foreground: oklch(0.98 0.002 247.839);
195
+ --color-card: oklch(0.209 0.042 265.755);
196
+ --color-card-foreground: oklch(0.98 0.002 247.839);
197
+ --color-popover: oklch(0.209 0.042 265.755);
198
+ --color-popover-foreground: oklch(0.98 0.002 247.839);
199
+ --color-primary: oklch(0.98 0.002 247.839);
200
+ --color-primary-foreground: oklch(0.279 0.041 260.031);
201
+ --color-secondary: oklch(0.279 0.041 260.031);
202
+ --color-secondary-foreground: oklch(0.98 0.002 247.839);
203
+ --color-muted: oklch(0.279 0.041 260.031);
204
+ --color-muted-foreground: oklch(0.551 0.027 264.364);
205
+ --color-accent: oklch(0.279 0.041 260.031);
206
+ --color-accent-foreground: oklch(0.98 0.002 247.839);
207
+ --color-destructive: oklch(0.505 0.213 27.518);
208
+ --color-destructive-foreground: oklch(0.98 0.002 247.839);
209
+ --color-border: oklch(0.279 0.041 260.031);
210
+ --color-input: oklch(0.279 0.041 260.031);
211
+ --color-ring: oklch(0.551 0.027 264.364);
212
+ }
213
+ }
214
+
215
+ .ticket {
216
+ mask: radial-gradient(21px 13px at 50% 102%, #0000 98%, #000) 50%
217
+ calc(100% - 16px) / 64px 100% repeat-x;
218
+ }
@@ -0,0 +1,6 @@
1
+ export type UseTimeProps = {
2
+ interval?: number;
3
+ onUpdate?: (time: Date) => void;
4
+ };
5
+ export declare const useTime: ({ interval, onUpdate }: UseTimeProps) => Date;
6
+ //# sourceMappingURL=use-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-time.d.ts","sourceRoot":"","sources":["../../src/hooks/use-time.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;CAChC,CAAA;AAED,eAAO,MAAM,OAAO,GAAI,wBAA+B,YAAY,SAclE,CAAA"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useTime = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const useTime = ({ interval = 1000, onUpdate }) => {
9
+ const [time, setTime] = react_1.default.useState(new Date());
10
+ react_1.default.useEffect(() => {
11
+ const timer = setInterval(() => {
12
+ const newTime = new Date();
13
+ setTime(newTime);
14
+ onUpdate?.(newTime);
15
+ }, interval);
16
+ return () => clearInterval(timer);
17
+ }, [interval, onUpdate]);
18
+ return time;
19
+ };
20
+ exports.useTime = useTime;
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export * from './components/ui/avatar';
5
5
  export * from './components/ui/badge';
6
6
  export * from './components/ui/breadcrumb';
7
7
  export * from './components/ui/button';
8
+ export * from './components/ui/icon-button';
9
+ export * from './components/ui/calendar';
8
10
  export * from './components/ui/card';
9
11
  export * from './components/ui/checkbox';
10
12
  export * from './components/ui/collapsible';
@@ -12,16 +14,17 @@ export * from './components/ui/command';
12
14
  export * from './components/ui/dialog';
13
15
  export * from './components/ui/dropdown-menu';
14
16
  export * from './components/ui/input';
15
- export * from './components/ui/input-with-icon';
16
17
  export * from './components/ui/label';
17
18
  export * from './components/ui/loading-button';
18
19
  export * from './components/ui/multiple-select';
19
20
  export * from './components/ui/paper';
21
+ export * from './components/ui/paper-collapsible';
20
22
  export * from './components/ui/popover';
21
23
  export * from './components/ui/progress';
22
24
  export * from './components/ui/select';
23
25
  export * from './components/ui/separator';
24
26
  export * from './components/ui/sheet';
27
+ export * from './components/ui/sidebar';
25
28
  export * from './components/ui/skeleton';
26
29
  export * from './components/ui/stepper';
27
30
  export * from './hooks/use-stepper';
@@ -30,11 +33,14 @@ export * from './components/ui/table';
30
33
  export * from './components/ui/tabs';
31
34
  export * from './components/ui/textarea';
32
35
  export * from './components/ui/toast';
36
+ export * from './components/ui/toast/toaster';
33
37
  export * from './hooks/use-toast';
34
38
  export * from './components/ui/tooltip';
35
39
  export * from './components/ui/form';
36
40
  export { Breadcrumb as ApplicationBreadcrumb } from './components/breadcrumb';
37
41
  export * from './components/breadcrumb/get-breadcrumb-paths';
42
+ export * from './components/card';
43
+ export * from './components/dialog';
38
44
  export * from './components/entity-box';
39
45
  export * from './components/entity-data-table';
40
46
  export * from './components/form';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mCAAmC,CAAA;AACjD,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AAGpC,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC7E,cAAc,8CAA8C,CAAA;AAC5D,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAGA,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,mCAAmC,CAAA;AACjD,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,mCAAmC,CAAA;AACjD,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AAGpC,OAAO,EAAE,UAAU,IAAI,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC7E,cAAc,8CAA8C,CAAA;AAC5D,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA"}