@sandurtech/sandui 0.0.1 → 0.0.2
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/README.md +73 -35
- package/dist/index.d.ts +127 -4
- package/dist/sandui.js +1295 -596
- package/dist/sandui.umd.js +2 -2
- package/dist/style.css +1 -1
- package/package.json +23 -4
package/README.md
CHANGED
|
@@ -1,64 +1,102 @@
|
|
|
1
1
|
# SandUI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<div align="center">
|
|
4
|
+
<img src="public/SandurTech-Logo-SVG.svg" alt="SandUI Logo" width="120" />
|
|
5
|
+
<p><strong>A high-performance, accessible React component library and Design System for SandurTech — featuring WAI-ARIA compliance, native dark mode, and TypeScript-first components.</strong></p>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
[](https://www.npmjs.com/package/@sandurtech/sandui)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
[](https://github.com/sandurtech/sandui/pulls)
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ✨ Features
|
|
16
|
+
|
|
17
|
+
- ♿ **WAI-ARIA Compliant**: Built with accessibility as a first-class citizen.
|
|
18
|
+
- 🌓 **Native Dark Mode**: Seamless theme switching with strictly derived design tokens.
|
|
19
|
+
- ⚡ **Zero Lucide Dependency**: Utilizes Google Material Symbols (Rounded) for a lean bundle.
|
|
20
|
+
- 📘 **TypeScript First**: Full IntelliSense support with comprehensive JSDoc documentation.
|
|
21
|
+
- 🎨 **Modern Aesthetics**: Premium, high-performance UI primitives tailored for SaaS and dashboards.
|
|
22
|
+
- 📱 **Fully Responsive**: Mobile-optimized layouts and documentation.
|
|
23
|
+
|
|
24
|
+
## 🚀 Quick Start
|
|
25
|
+
|
|
26
|
+
### Installation
|
|
6
27
|
|
|
7
28
|
```bash
|
|
8
29
|
npm install @sandurtech/sandui
|
|
9
30
|
```
|
|
10
31
|
|
|
11
|
-
|
|
32
|
+
### Usage
|
|
12
33
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## Usage
|
|
34
|
+
1. **Wrap your app** with the `SandThemeProvider` to enable styling and tokens.
|
|
35
|
+
2. **Import the global CSS** file in your entry point (e.g., `main.tsx`).
|
|
17
36
|
|
|
18
37
|
```tsx
|
|
19
|
-
import
|
|
38
|
+
import React from 'react';
|
|
39
|
+
import { SandThemeProvider, SandButton, SandCard } from '@sandurtech/sandui';
|
|
20
40
|
import '@sandurtech/sandui/style.css';
|
|
21
41
|
|
|
22
|
-
export function
|
|
42
|
+
export function App() {
|
|
23
43
|
return (
|
|
24
|
-
<
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
44
|
+
<SandThemeProvider defaultTheme="system">
|
|
45
|
+
<SandCard header={<h3>Getting Started</h3>}>
|
|
46
|
+
<p>Start building your next microservice with SandUI primitives.</p>
|
|
47
|
+
<SandButton variant="primary">
|
|
48
|
+
Launch Console
|
|
49
|
+
</SandButton>
|
|
50
|
+
</SandCard>
|
|
51
|
+
</SandThemeProvider>
|
|
28
52
|
);
|
|
29
53
|
}
|
|
30
54
|
```
|
|
31
55
|
|
|
32
|
-
##
|
|
56
|
+
## 🛠 Component Surface
|
|
33
57
|
|
|
34
|
-
|
|
35
|
-
npm ci
|
|
36
|
-
npm run test
|
|
37
|
-
npm run build
|
|
38
|
-
```
|
|
58
|
+
SandUI provides a growing set of modular components categorized for efficiency:
|
|
39
59
|
|
|
40
|
-
|
|
60
|
+
| Category | Primitives |
|
|
61
|
+
| :--- | :--- |
|
|
62
|
+
| **Foundation** | `SandThemeProvider`, `SandBox`, `SandStack`, `SandGrid` |
|
|
63
|
+
| **Typography** | `SandTitle`, `SandText`, `SandCode`, `SandKBD` |
|
|
64
|
+
| **Form Controls** | `SandInput`, `SandInputGroup`, `SandCheckbox`, `SandRadio`, `SandSwitch` |
|
|
65
|
+
| **Data Display** | `SandTable`, `SandTabs`, `SandAccordion`, `SandCard`, `SandBadge` |
|
|
66
|
+
| **Feedback** | `SandAlert`, `SandToast`, `SandSnackbar`, `SandLoader`, `SandProgress` |
|
|
67
|
+
| **Navigation** | `SandNavbar`, `SandDrawer`, `SandBreadcrumbs`, `SandPagination` |
|
|
68
|
+
| **Overlays** | `SandModal`, `SandTooltip`, `SandIcon` |
|
|
41
69
|
|
|
42
|
-
|
|
70
|
+
## 📖 Documentation
|
|
43
71
|
|
|
44
|
-
|
|
45
|
-
- UMD bundle: `dist/sandui.umd.js`
|
|
46
|
-
- Types: `dist/index.d.ts`
|
|
47
|
-
- Styles: `dist/style.css`
|
|
72
|
+
Explore interactive examples, API references, and design guidelines:
|
|
48
73
|
|
|
49
|
-
|
|
74
|
+
👉 [**View Live Documentation**](https://sandurtech.github.io/SandUI/)
|
|
50
75
|
|
|
51
|
-
|
|
76
|
+
## 🧪 Development
|
|
52
77
|
|
|
53
|
-
|
|
78
|
+
Contributions are welcome! To get started locally:
|
|
54
79
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
- React and React DOM are now peer dependencies instead of bundled runtime dependencies.
|
|
80
|
+
```bash
|
|
81
|
+
# Install dependencies
|
|
82
|
+
npm install
|
|
59
83
|
|
|
60
|
-
|
|
84
|
+
# Start documentation app with Hot Module Replacement (HMR)
|
|
85
|
+
npm run dev
|
|
61
86
|
|
|
62
|
-
|
|
63
|
-
npm
|
|
87
|
+
# Run unit tests with Vitest
|
|
88
|
+
npm run test
|
|
89
|
+
|
|
90
|
+
# Build production library artifacts
|
|
91
|
+
npm run build
|
|
64
92
|
```
|
|
93
|
+
|
|
94
|
+
## 📄 License
|
|
95
|
+
|
|
96
|
+
Distributed under the MIT License. See `LICENSE` for more information.
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
<div align="center">
|
|
101
|
+
Built with ❤️ by <strong>Amogha Raj Sandur</strong> & <strong>SandurTech (Sandur Technologies)</strong>
|
|
102
|
+
</div>
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { SandAccordion } from './components/Accordion/Accordion';
|
|
2
|
+
import { SandAccordionItem } from './components/Accordion/Accordion';
|
|
3
|
+
import { SandAccordionProps } from './components/Accordion/Accordion';
|
|
4
|
+
import { SandAlert } from './components/Alert/Alert';
|
|
5
|
+
import { SandAlertProps } from './components/Alert/Alert';
|
|
1
6
|
import { SandBadge } from './components/Badge/Badge';
|
|
2
7
|
import { SandBadgeProps } from './components/Badge/Badge';
|
|
8
|
+
import { SandBox } from './components/Box/Box';
|
|
9
|
+
import { SandBoxOwnProps as SandBoxProps } from './components/Box/Box';
|
|
3
10
|
import { SandBreadcrumbItem } from './components/Breadcrumbs/Breadcrumbs';
|
|
4
11
|
import { SandBreadcrumbs } from './components/Breadcrumbs/Breadcrumbs';
|
|
5
12
|
import { SandBreadcrumbsProps } from './components/Breadcrumbs/Breadcrumbs';
|
|
@@ -11,27 +18,36 @@ import { SandCheckbox } from './components/Selection/Selection';
|
|
|
11
18
|
import { SandChoiceBaseProps } from './components/Selection/Selection';
|
|
12
19
|
import { SandChoiceGroup } from './components/Selection/Selection';
|
|
13
20
|
import { SandChoiceGroupProps } from './components/Selection/Selection';
|
|
21
|
+
import { SandCode } from './components/Typography/Typography';
|
|
14
22
|
import { SandCodeBlock } from './components/CodeBlock/CodeBlock';
|
|
15
23
|
import { SandCodeBlockProps } from './components/CodeBlock/CodeBlock';
|
|
24
|
+
import { SandCodeOwnProps as SandCodeProps } from './components/Typography/Typography';
|
|
16
25
|
import { SandCodeTabs } from './components/CodeBlock/CodeBlock';
|
|
17
26
|
import { SandCodeTabsProps } from './components/CodeBlock/CodeBlock';
|
|
18
27
|
import { SandContainer } from './components/Layout/Layout';
|
|
19
28
|
import { SandContainerProps } from './components/Layout/Layout';
|
|
20
29
|
import { SandDivider } from './components/Divider/Divider';
|
|
21
30
|
import { SandDividerProps } from './components/Divider/Divider';
|
|
31
|
+
import { SandDrawer } from './components/Navbar/Navbar';
|
|
32
|
+
import { SandDrawerProps } from './components/Navbar/Navbar';
|
|
22
33
|
import { SandFeedbackProps } from './components/Feedback/Feedback';
|
|
23
34
|
import { SandFormGroup } from './components/Input/Input';
|
|
24
35
|
import { SandFormGroupProps } from './components/Input/Input';
|
|
36
|
+
import { SandGrid } from './components/Grid';
|
|
37
|
+
import { SandGridItemProps } from './components/Grid';
|
|
38
|
+
import { SandGridProps } from './components/Grid';
|
|
25
39
|
import { SandHeader } from './components/Layout/Layout';
|
|
26
40
|
import { SandHeaderProps } from './components/Layout/Layout';
|
|
41
|
+
import { SandIcon } from './components/Icon/Icon';
|
|
42
|
+
import { SandIconProps } from './components/Icon/Icon';
|
|
27
43
|
import { SandInput } from './components/Input/Input';
|
|
28
44
|
import { SandInputGroup } from './components/Input/Input';
|
|
29
45
|
import { SandInputGroupProps } from './components/Input/Input';
|
|
30
46
|
import { SandInputProps } from './components/Input/Input';
|
|
31
47
|
import { SandKBD } from './components/Kbd/Kbd';
|
|
32
48
|
import { SandKBDProps } from './components/Kbd/Kbd';
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
49
|
+
import { SandLoader } from './components/Loader/Loader';
|
|
50
|
+
import { SandLoaderProps } from './components/Loader/Loader';
|
|
35
51
|
import { SandModal } from './components/Modal/Modal';
|
|
36
52
|
import { SandModalBodyProps } from './components/Modal/Modal';
|
|
37
53
|
import { SandModalDescriptionProps } from './components/Modal/Modal';
|
|
@@ -39,23 +55,62 @@ import { SandModalFooterProps } from './components/Modal/Modal';
|
|
|
39
55
|
import { SandModalHeaderProps } from './components/Modal/Modal';
|
|
40
56
|
import { SandModalProps } from './components/Modal/Modal';
|
|
41
57
|
import { SandModalTitleProps } from './components/Modal/Modal';
|
|
58
|
+
import { SandNavbar } from './components/Navbar/Navbar';
|
|
59
|
+
import { SandNavbarItem } from './components/Navbar/Navbar';
|
|
60
|
+
import { SandNavbarProps } from './components/Navbar/Navbar';
|
|
42
61
|
import { SandPagination } from './components/Pagination/Pagination';
|
|
43
62
|
import { SandPaginationProps } from './components/Pagination/Pagination';
|
|
63
|
+
import { SandProgress } from './components/Progress/Progress';
|
|
64
|
+
import { SandProgressProps } from './components/Progress/Progress';
|
|
44
65
|
import { SandRadio } from './components/Selection/Selection';
|
|
45
66
|
import { SandResultPanel } from './components/Layout/Layout';
|
|
46
67
|
import { SandResultPanelProps } from './components/Layout/Layout';
|
|
68
|
+
import { SandSkeleton } from './components/Loader/Loader';
|
|
69
|
+
import { SandSkeletonProps } from './components/Loader/Loader';
|
|
47
70
|
import { SandSnackbar } from './components/Feedback/Feedback';
|
|
71
|
+
import { SandStack } from './components/Stack/Stack';
|
|
72
|
+
import { SandStackOwnProps as SandStackProps } from './components/Stack/Stack';
|
|
48
73
|
import { SandSwitch } from './components/Selection/Selection';
|
|
74
|
+
import { SandTabItem } from './components/Tabs/Tabs';
|
|
75
|
+
import { SandTable } from './components/Table/Table';
|
|
76
|
+
import { SandTableProps } from './components/Table/Table';
|
|
77
|
+
import { SandTabs } from './components/Tabs/Tabs';
|
|
78
|
+
import { SandTabsProps } from './components/Tabs/Tabs';
|
|
79
|
+
import { SandText } from './components/Typography/Typography';
|
|
80
|
+
import { SandTextOwnProps as SandTextProps } from './components/Typography/Typography';
|
|
81
|
+
import { SandThemeContextValue } from './components/ThemeProvider/ThemeProvider';
|
|
82
|
+
import { SandThemeProvider } from './components/ThemeProvider/ThemeProvider';
|
|
83
|
+
import { SandThemeProviderProps } from './components/ThemeProvider/ThemeProvider';
|
|
84
|
+
import { SandThemeTokens } from './components/ThemeProvider/ThemeProvider';
|
|
85
|
+
import { SandTitle } from './components/Typography/Typography';
|
|
86
|
+
import { SandTitleOwnProps as SandTitleProps } from './components/Typography/Typography';
|
|
49
87
|
import { SandToast } from './components/Feedback/Feedback';
|
|
50
88
|
import { SandToolLayout } from './components/Layout/Layout';
|
|
51
89
|
import { SandToolLayoutProps } from './components/Layout/Layout';
|
|
52
90
|
import { SandToolPanel } from './components/Layout/Layout';
|
|
53
91
|
import { SandToolPanelProps } from './components/Layout/Layout';
|
|
92
|
+
import { SandTooltip } from './components/Tooltip/Tooltip';
|
|
93
|
+
import { SandTooltipProps } from './components/Tooltip/Tooltip';
|
|
94
|
+
import { useSandTheme } from './components/ThemeProvider/ThemeProvider';
|
|
95
|
+
|
|
96
|
+
export { SandAccordion }
|
|
97
|
+
|
|
98
|
+
export { SandAccordionItem }
|
|
99
|
+
|
|
100
|
+
export { SandAccordionProps }
|
|
101
|
+
|
|
102
|
+
export { SandAlert }
|
|
103
|
+
|
|
104
|
+
export { SandAlertProps }
|
|
54
105
|
|
|
55
106
|
export { SandBadge }
|
|
56
107
|
|
|
57
108
|
export { SandBadgeProps }
|
|
58
109
|
|
|
110
|
+
export { SandBox }
|
|
111
|
+
|
|
112
|
+
export { SandBoxProps }
|
|
113
|
+
|
|
59
114
|
export { SandBreadcrumbItem }
|
|
60
115
|
|
|
61
116
|
export { SandBreadcrumbs }
|
|
@@ -78,10 +133,14 @@ export { SandChoiceGroup }
|
|
|
78
133
|
|
|
79
134
|
export { SandChoiceGroupProps }
|
|
80
135
|
|
|
136
|
+
export { SandCode }
|
|
137
|
+
|
|
81
138
|
export { SandCodeBlock }
|
|
82
139
|
|
|
83
140
|
export { SandCodeBlockProps }
|
|
84
141
|
|
|
142
|
+
export { SandCodeProps }
|
|
143
|
+
|
|
85
144
|
export { SandCodeTabs }
|
|
86
145
|
|
|
87
146
|
export { SandCodeTabsProps }
|
|
@@ -94,16 +153,30 @@ export { SandDivider }
|
|
|
94
153
|
|
|
95
154
|
export { SandDividerProps }
|
|
96
155
|
|
|
156
|
+
export { SandDrawer }
|
|
157
|
+
|
|
158
|
+
export { SandDrawerProps }
|
|
159
|
+
|
|
97
160
|
export { SandFeedbackProps }
|
|
98
161
|
|
|
99
162
|
export { SandFormGroup }
|
|
100
163
|
|
|
101
164
|
export { SandFormGroupProps }
|
|
102
165
|
|
|
166
|
+
export { SandGrid }
|
|
167
|
+
|
|
168
|
+
export { SandGridItemProps }
|
|
169
|
+
|
|
170
|
+
export { SandGridProps }
|
|
171
|
+
|
|
103
172
|
export { SandHeader }
|
|
104
173
|
|
|
105
174
|
export { SandHeaderProps }
|
|
106
175
|
|
|
176
|
+
export { SandIcon }
|
|
177
|
+
|
|
178
|
+
export { SandIconProps }
|
|
179
|
+
|
|
107
180
|
export { SandInput }
|
|
108
181
|
|
|
109
182
|
export { SandInputGroup }
|
|
@@ -116,9 +189,9 @@ export { SandKBD }
|
|
|
116
189
|
|
|
117
190
|
export { SandKBDProps }
|
|
118
191
|
|
|
119
|
-
export {
|
|
192
|
+
export { SandLoader }
|
|
120
193
|
|
|
121
|
-
export {
|
|
194
|
+
export { SandLoaderProps }
|
|
122
195
|
|
|
123
196
|
export { SandModal }
|
|
124
197
|
|
|
@@ -134,20 +207,64 @@ export { SandModalProps }
|
|
|
134
207
|
|
|
135
208
|
export { SandModalTitleProps }
|
|
136
209
|
|
|
210
|
+
export { SandNavbar }
|
|
211
|
+
|
|
212
|
+
export { SandNavbarItem }
|
|
213
|
+
|
|
214
|
+
export { SandNavbarProps }
|
|
215
|
+
|
|
137
216
|
export { SandPagination }
|
|
138
217
|
|
|
139
218
|
export { SandPaginationProps }
|
|
140
219
|
|
|
220
|
+
export { SandProgress }
|
|
221
|
+
|
|
222
|
+
export { SandProgressProps }
|
|
223
|
+
|
|
141
224
|
export { SandRadio }
|
|
142
225
|
|
|
143
226
|
export { SandResultPanel }
|
|
144
227
|
|
|
145
228
|
export { SandResultPanelProps }
|
|
146
229
|
|
|
230
|
+
export { SandSkeleton }
|
|
231
|
+
|
|
232
|
+
export { SandSkeletonProps }
|
|
233
|
+
|
|
147
234
|
export { SandSnackbar }
|
|
148
235
|
|
|
236
|
+
export { SandStack }
|
|
237
|
+
|
|
238
|
+
export { SandStackProps }
|
|
239
|
+
|
|
149
240
|
export { SandSwitch }
|
|
150
241
|
|
|
242
|
+
export { SandTabItem }
|
|
243
|
+
|
|
244
|
+
export { SandTable }
|
|
245
|
+
|
|
246
|
+
export { SandTableProps }
|
|
247
|
+
|
|
248
|
+
export { SandTabs }
|
|
249
|
+
|
|
250
|
+
export { SandTabsProps }
|
|
251
|
+
|
|
252
|
+
export { SandText }
|
|
253
|
+
|
|
254
|
+
export { SandTextProps }
|
|
255
|
+
|
|
256
|
+
export { SandThemeContextValue }
|
|
257
|
+
|
|
258
|
+
export { SandThemeProvider }
|
|
259
|
+
|
|
260
|
+
export { SandThemeProviderProps }
|
|
261
|
+
|
|
262
|
+
export { SandThemeTokens }
|
|
263
|
+
|
|
264
|
+
export { SandTitle }
|
|
265
|
+
|
|
266
|
+
export { SandTitleProps }
|
|
267
|
+
|
|
151
268
|
export { SandToast }
|
|
152
269
|
|
|
153
270
|
export { SandToolLayout }
|
|
@@ -158,4 +275,10 @@ export { SandToolPanel }
|
|
|
158
275
|
|
|
159
276
|
export { SandToolPanelProps }
|
|
160
277
|
|
|
278
|
+
export { SandTooltip }
|
|
279
|
+
|
|
280
|
+
export { SandTooltipProps }
|
|
281
|
+
|
|
282
|
+
export { useSandTheme }
|
|
283
|
+
|
|
161
284
|
export { }
|