@lerianstudio/sindarian-ui 1.0.0-beta.3 → 1.0.0-beta.30
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.
- package/dist/components/breadcrumb/index.js +2 -2
- package/dist/components/card/account-card/index.d.ts +32 -0
- package/dist/components/card/account-card/index.d.ts.map +1 -0
- package/dist/components/card/account-card/index.js +69 -0
- package/dist/components/card/basic-card/index.d.ts +6 -0
- package/dist/components/card/basic-card/index.d.ts.map +1 -0
- package/dist/components/card/basic-card/index.js +20 -0
- package/dist/components/card/dashboard-card/index.d.ts +5 -0
- package/dist/components/card/dashboard-card/index.d.ts.map +1 -0
- package/dist/components/card/dashboard-card/index.js +20 -0
- package/dist/components/card/entity-card/index.d.ts +21 -0
- package/dist/components/card/entity-card/index.d.ts.map +1 -0
- package/dist/components/card/entity-card/index.js +60 -0
- package/dist/components/card/index.d.ts +5 -0
- package/dist/components/card/index.d.ts.map +1 -0
- package/dist/components/card/index.js +20 -0
- package/dist/components/dialog/confirmation-dialog/index.d.ts +15 -0
- package/dist/components/dialog/confirmation-dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/confirmation-dialog/index.js +28 -0
- package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts +31 -0
- package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.d.ts.map +1 -0
- package/dist/components/dialog/confirmation-dialog/use-confirm-dialog.js +55 -0
- package/dist/components/dialog/index.d.ts +4 -0
- package/dist/components/dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/index.js +19 -0
- package/dist/components/dialog/large-dialog/index.d.ts +11 -0
- package/dist/components/dialog/large-dialog/index.d.ts.map +1 -0
- package/dist/components/dialog/large-dialog/index.js +21 -0
- package/dist/components/form/date-picker-field/index.d.ts +19 -0
- package/dist/components/form/date-picker-field/index.d.ts.map +1 -0
- package/dist/components/form/date-picker-field/index.js +22 -0
- package/dist/components/form/date-range-field/index.d.ts +20 -0
- package/dist/components/form/date-range-field/index.d.ts.map +1 -0
- package/dist/components/form/date-range-field/index.js +22 -0
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.d.ts.map +1 -1
- package/dist/components/form/index.js +2 -0
- package/dist/components/form/input-field/index.d.ts +4 -1
- package/dist/components/form/input-field/index.d.ts.map +1 -1
- package/dist/components/form/input-field/index.js +3 -3
- package/dist/components/form/pagination-limit-field/index.d.ts +2 -1
- package/dist/components/form/pagination-limit-field/index.d.ts.map +1 -1
- package/dist/components/form/pagination-limit-field/index.js +2 -2
- package/dist/components/form/password-field/index.d.ts +5 -4
- package/dist/components/form/password-field/index.d.ts.map +1 -1
- package/dist/components/form/password-field/index.js +8 -7
- package/dist/components/form/select-field/index.d.ts +1 -0
- package/dist/components/form/select-field/index.d.ts.map +1 -1
- package/dist/components/form/select-field/index.js +1 -1
- package/dist/components/form/switch-field/index.d.ts +2 -1
- package/dist/components/form/switch-field/index.d.ts.map +1 -1
- package/dist/components/form/switch-field/index.js +2 -2
- package/dist/components/page/index.d.ts.map +1 -1
- package/dist/components/page/index.js +3 -3
- package/dist/components/page-header/index.d.ts.map +1 -1
- package/dist/components/page-header/index.js +6 -4
- package/dist/components/pagination/index.js +1 -1
- package/dist/components/table/id-table-cell.d.ts +3 -2
- package/dist/components/table/id-table-cell.d.ts.map +1 -1
- package/dist/components/table/id-table-cell.js +2 -2
- package/dist/components/table/locked-table-actions.js +1 -1
- package/dist/components/ui/alert/index.d.ts +5 -1
- package/dist/components/ui/alert/index.d.ts.map +1 -1
- package/dist/components/ui/alert/index.js +22 -8
- package/dist/components/ui/alert/styles.css +68 -0
- package/dist/components/ui/badge/index.d.ts +1 -1
- package/dist/components/ui/breadcrumb/index.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb/index.js +5 -5
- package/dist/components/ui/breadcrumb/styles.css +27 -0
- package/dist/components/ui/button/index.d.ts +8 -3
- package/dist/components/ui/button/index.d.ts.map +1 -1
- package/dist/components/ui/button/index.js +21 -29
- package/dist/components/ui/button/styles.css +64 -0
- package/dist/components/ui/calendar/index.d.ts +9 -0
- package/dist/components/ui/calendar/index.d.ts.map +1 -0
- package/dist/components/ui/calendar/index.js +115 -0
- package/dist/components/ui/card/index.js +1 -1
- package/dist/components/ui/command/index.d.ts +1 -1
- package/dist/components/ui/command/index.d.ts.map +1 -1
- package/dist/components/ui/command/index.js +52 -2
- package/dist/components/ui/dialog/index.d.ts.map +1 -1
- package/dist/components/ui/dialog/index.js +6 -6
- package/dist/components/ui/dialog/styles.css +34 -0
- package/dist/components/ui/field/index.d.ts +25 -0
- package/dist/components/ui/field/index.d.ts.map +1 -0
- package/dist/components/ui/field/index.js +79 -0
- package/dist/components/ui/form.d.ts.map +1 -1
- package/dist/components/ui/form.js +1 -0
- package/dist/components/ui/icon-button/index.d.ts +13 -0
- package/dist/components/ui/icon-button/index.d.ts.map +1 -0
- package/dist/components/ui/icon-button/index.js +35 -0
- package/dist/components/ui/icon-button/styles.css +33 -0
- package/dist/components/ui/input/adornment.d.ts +9 -0
- package/dist/components/ui/input/adornment.d.ts.map +1 -0
- package/dist/components/ui/input/adornment.js +21 -0
- package/dist/components/ui/input/index.d.ts +16 -2
- package/dist/components/ui/input/index.d.ts.map +1 -1
- package/dist/components/ui/input/index.js +90 -2
- package/dist/components/ui/input/styles.css +68 -0
- package/dist/components/ui/multiple-select/index.d.ts +6 -6
- package/dist/components/ui/paper-collapsible/index.d.ts +9 -0
- package/dist/components/ui/paper-collapsible/index.d.ts.map +1 -0
- package/dist/components/ui/paper-collapsible/index.js +24 -0
- package/dist/components/ui/progress/index.d.ts +1 -1
- package/dist/components/ui/progress/index.d.ts.map +1 -1
- package/dist/components/ui/select/index.d.ts +1 -2
- package/dist/components/ui/select/index.d.ts.map +1 -1
- package/dist/components/ui/select/index.js +9 -18
- package/dist/components/ui/select/styles.css +57 -0
- package/dist/components/ui/sidebar/index.d.ts +10 -0
- package/dist/components/ui/sidebar/index.d.ts.map +1 -0
- package/dist/components/ui/sidebar/index.js +25 -0
- package/dist/components/ui/sidebar/sidebar-back-button.d.ts +3 -0
- package/dist/components/ui/sidebar/sidebar-back-button.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-back-button.js +8 -0
- package/dist/components/ui/sidebar/sidebar-components.d.ts +23 -0
- package/dist/components/ui/sidebar/sidebar-components.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-components.js +23 -0
- package/dist/components/ui/sidebar/sidebar-expand-button.d.ts +6 -0
- package/dist/components/ui/sidebar/sidebar-expand-button.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-expand-button.js +19 -0
- package/dist/components/ui/sidebar/sidebar-item-button.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-item-button.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-item-button.js +23 -0
- package/dist/components/ui/sidebar/sidebar-item-collapsible.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-item-collapsible.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-item-collapsible.js +52 -0
- package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-item-icon-button.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-item-icon-button.js +20 -0
- package/dist/components/ui/sidebar/sidebar-item.d.ts +13 -0
- package/dist/components/ui/sidebar/sidebar-item.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-item.js +19 -0
- package/dist/components/ui/sidebar/sidebar-provider.d.ts +12 -0
- package/dist/components/ui/sidebar/sidebar-provider.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-provider.js +59 -0
- package/dist/components/ui/sidebar/sidebar-provider.test.d.ts +2 -0
- package/dist/components/ui/sidebar/sidebar-provider.test.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-provider.test.js +167 -0
- package/dist/components/ui/sidebar/sidebar-root.d.ts +3 -0
- package/dist/components/ui/sidebar/sidebar-root.d.ts.map +1 -0
- package/dist/components/ui/sidebar/sidebar-root.js +24 -0
- package/dist/components/ui/stepper/index.d.ts.map +1 -1
- package/dist/components/ui/stepper/index.js +4 -4
- package/dist/components/ui/stepper/styles.css +41 -0
- package/dist/components/ui/tabs/index.d.ts.map +1 -1
- package/dist/components/ui/tabs/index.js +4 -4
- package/dist/components/ui/tabs/styles.css +31 -0
- package/dist/components/ui/toast/toaster.js +1 -1
- package/dist/globals.css +218 -0
- package/dist/hooks/use-time.d.ts +6 -0
- package/dist/hooks/use-time.d.ts.map +1 -0
- package/dist/hooks/use-time.js +20 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/lib/storage/get-storage-object.d.ts +2 -0
- package/dist/lib/storage/get-storage-object.d.ts.map +1 -0
- package/dist/lib/storage/get-storage-object.js +19 -0
- package/dist/lib/storage/get-storage.d.ts +2 -0
- package/dist/lib/storage/get-storage.d.ts.map +1 -0
- package/dist/lib/storage/get-storage.js +17 -0
- package/dist/lib/storage/index.d.ts +3 -0
- package/dist/lib/storage/index.d.ts.map +1 -0
- package/dist/lib/storage/index.js +18 -0
- package/dist/public/arm.gif +0 -0
- package/dist/public/clap.gif +0 -0
- package/dist/public/confetti-ball.gif +0 -0
- package/dist/public/countries.json +21200 -21200
- package/dist/public/dizzy.gif +0 -0
- package/dist/public/electricity.gif +0 -0
- package/dist/public/gear.gif +0 -0
- package/dist/public/gem.gif +0 -0
- package/dist/public/pencil.gif +0 -0
- package/dist/public/robot.gif +0 -0
- package/dist/public/rocket.gif +0 -0
- package/dist/public/software.gif +0 -0
- package/dist/public/solar-system.gif +0 -0
- package/dist/public/unicorn.gif +0 -0
- package/package.json +32 -29
- package/dist/components/ui/input-with-icon/index.d.ts +0 -12
- package/dist/components/ui/input-with-icon/index.d.ts.map +0 -1
- 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 @@
|
|
|
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,
|
|
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)('
|
|
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
|
|
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)('
|
|
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)('
|
|
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,
|
|
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)('
|
|
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)('
|
|
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
|
|
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)('
|
|
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("
|
|
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 }) {
|
package/dist/globals.css
ADDED
|
@@ -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 @@
|
|
|
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,7 @@ 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';
|
|
8
9
|
export * from './components/ui/card';
|
|
9
10
|
export * from './components/ui/checkbox';
|
|
10
11
|
export * from './components/ui/collapsible';
|
|
@@ -12,16 +13,17 @@ export * from './components/ui/command';
|
|
|
12
13
|
export * from './components/ui/dialog';
|
|
13
14
|
export * from './components/ui/dropdown-menu';
|
|
14
15
|
export * from './components/ui/input';
|
|
15
|
-
export * from './components/ui/input-with-icon';
|
|
16
16
|
export * from './components/ui/label';
|
|
17
17
|
export * from './components/ui/loading-button';
|
|
18
18
|
export * from './components/ui/multiple-select';
|
|
19
19
|
export * from './components/ui/paper';
|
|
20
|
+
export * from './components/ui/paper-collapsible';
|
|
20
21
|
export * from './components/ui/popover';
|
|
21
22
|
export * from './components/ui/progress';
|
|
22
23
|
export * from './components/ui/select';
|
|
23
24
|
export * from './components/ui/separator';
|
|
24
25
|
export * from './components/ui/sheet';
|
|
26
|
+
export * from './components/ui/sidebar';
|
|
25
27
|
export * from './components/ui/skeleton';
|
|
26
28
|
export * from './components/ui/stepper';
|
|
27
29
|
export * from './hooks/use-stepper';
|
|
@@ -30,11 +32,14 @@ export * from './components/ui/table';
|
|
|
30
32
|
export * from './components/ui/tabs';
|
|
31
33
|
export * from './components/ui/textarea';
|
|
32
34
|
export * from './components/ui/toast';
|
|
35
|
+
export * from './components/ui/toast/toaster';
|
|
33
36
|
export * from './hooks/use-toast';
|
|
34
37
|
export * from './components/ui/tooltip';
|
|
35
38
|
export * from './components/ui/form';
|
|
36
39
|
export { Breadcrumb as ApplicationBreadcrumb } from './components/breadcrumb';
|
|
37
40
|
export * from './components/breadcrumb/get-breadcrumb-paths';
|
|
41
|
+
export * from './components/card';
|
|
42
|
+
export * from './components/dialog';
|
|
38
43
|
export * from './components/entity-box';
|
|
39
44
|
export * from './components/entity-data-table';
|
|
40
45
|
export * from './components/form';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
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,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"}
|