@kingsimba/nc-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +233 -0
- package/dist/GeneratedIcons-B1vmWd9Q.cjs +2 -0
- package/dist/GeneratedIcons-B1vmWd9Q.cjs.map +1 -0
- package/dist/GeneratedIcons-BE4eggsw.js +490 -0
- package/dist/GeneratedIcons-BE4eggsw.js.map +1 -0
- package/dist/icons.cjs +2 -0
- package/dist/icons.cjs.map +1 -0
- package/dist/icons.d.ts +129 -0
- package/dist/icons.js +26 -0
- package/dist/icons.js.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.js +5841 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +988 -0
- package/dist/styles.css +867 -0
- package/package.json +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Feng Zhaolin
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# nc-ui
|
|
2
|
+
|
|
3
|
+
A high-performance, lightweight React UI component library and extensible application framework.
|
|
4
|
+
|
|
5
|
+
- 🚀 **Small Footprint**: Only ~75KB bundle size.
|
|
6
|
+
- 🏗️ **Application Framework**: Features a flexible, extensible framework for building windowed apps.
|
|
7
|
+
- 📱 **Cross-Platform**: Optimized for both desktop and mobile experiences.
|
|
8
|
+
|
|
9
|
+
Published on npm as [@kingsimba/nc-ui](https://www.npmjs.com/package/@kingsimba/nc-ui)
|
|
10
|
+
|
|
11
|
+
**[View Demo](https://kingsimba.github.io/nc-ui/)**
|
|
12
|
+
|
|
13
|
+
<div style="display: flex; gap: 1rem;">
|
|
14
|
+
<img src="image-2.png" alt="alt text" height="400px" />
|
|
15
|
+
<img src="./image.png" alt="Demo" height="300px" />
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install @kingsimba/nc-ui
|
|
22
|
+
# or
|
|
23
|
+
yarn add @kingsimba/nc-ui
|
|
24
|
+
# or
|
|
25
|
+
pnpm add @kingsimba/nc-ui
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { Button, ActivityIndicator } from '@kingsimba/nc-ui'
|
|
32
|
+
import '@kingsimba/nc-ui/styles.css'
|
|
33
|
+
|
|
34
|
+
function App() {
|
|
35
|
+
return (
|
|
36
|
+
<div>
|
|
37
|
+
<Button variant="primary">Click me</Button>
|
|
38
|
+
<Button variant="danger" size="small">Delete</Button>
|
|
39
|
+
<Button loading>Saving...</Button>
|
|
40
|
+
<ActivityIndicator size="large" />
|
|
41
|
+
</div>
|
|
42
|
+
)
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Using Icons
|
|
47
|
+
|
|
48
|
+
Icons are imported from a separate entry point to keep the main bundle size small:
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
import { CloseIcon, EditIcon, TrashIcon } from '@kingsimba/nc-ui/icons'
|
|
52
|
+
|
|
53
|
+
function MyComponent() {
|
|
54
|
+
return (
|
|
55
|
+
<div>
|
|
56
|
+
<CloseIcon size={24} />
|
|
57
|
+
<EditIcon size={20} color="#3b82f6" />
|
|
58
|
+
<TrashIcon size={18} />
|
|
59
|
+
</div>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
> **See the [live demo](https://kingsimba.github.io/nc-ui/) for interactive examples and complete API documentation for all components.**
|
|
65
|
+
|
|
66
|
+
## Components
|
|
67
|
+
|
|
68
|
+
nc-ui provides 19+ ready-to-use components. Click any component to see it in the interactive demo:
|
|
69
|
+
|
|
70
|
+
| Component | Description |
|
|
71
|
+
|-----------|-------------|
|
|
72
|
+
| [ActivityIndicator](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=activity) | Loading spinner with size variants and overlay mode |
|
|
73
|
+
| [Alert](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=alert) | Dismissible notification banners with status variants |
|
|
74
|
+
| [AppDialog](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=app-dialog) | Render any registered app inside a dialog overlay |
|
|
75
|
+
| [Battery](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=battery) | Visual battery level indicator |
|
|
76
|
+
| [Button](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=buttons) | Primary action button with variants, sizes, and loading states |
|
|
77
|
+
| [ButtonGroup](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=button-group) | Group related buttons with automatic styling |
|
|
78
|
+
| [Checkbox](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=checkbox) | Toggle selection with indeterminate state support |
|
|
79
|
+
| [ComboBox](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=combobox) | Searchable dropdown with autocomplete |
|
|
80
|
+
| [ContextMenu](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=context-menu) | Right-click menu with customizable items |
|
|
81
|
+
| [Dialog](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=dialog) | Modal dialogs with header, footer, and action buttons |
|
|
82
|
+
| [Input](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=input) | Text input with validation states and prefix/suffix support |
|
|
83
|
+
| [ListGroup](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=list-group) | Styled list items with selection and actions |
|
|
84
|
+
| [MultiSelect](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=multi-select) | Multi-selection dropdown with tag display |
|
|
85
|
+
| [NavStack](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=nav-stack) | Stack-based navigation for mobile-style settings UIs |
|
|
86
|
+
| [NumberInput](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=number-input) | Numeric input with increment/decrement controls |
|
|
87
|
+
| [Slider](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=slider) | Range slider with value display |
|
|
88
|
+
| [Tabs](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=tabs) | Tabbed navigation component |
|
|
89
|
+
| [Toggle](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=toggle) | Switch/toggle with on/off states |
|
|
90
|
+
| [YamlTextArea](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=yaml-textarea) | YAML editor with syntax highlighting and validation |
|
|
91
|
+
| [Icons](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=icons) | 50+ SVG icons (separate import path) |
|
|
92
|
+
| [CommonButtons](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=buttons-icon) | Pre-configured buttons (Close, Edit, Refresh, Trash) |
|
|
93
|
+
| [Hyperlink](https://kingsimba.github.io/nc-ui/?app=ui-components&tab=hyperlink) | Styled anchor/link component |
|
|
94
|
+
|
|
95
|
+
## App Framework
|
|
96
|
+
|
|
97
|
+
nc-ui includes a complete framework for building panel-based applications that run in a right-side panel. Apps can have their own state management, isolated i18n translations, and integrate seamlessly with the container.
|
|
98
|
+
|
|
99
|
+
### Key Features
|
|
100
|
+
|
|
101
|
+
- **Panel Management**: Apps run in a responsive panel (inline on desktop, overlay on mobile)
|
|
102
|
+
- **Lifecycle Control**: Launch, background, and close apps programmatically
|
|
103
|
+
- **Isolated i18n**: Each app can have its own translations using `createAppI18nFactory`
|
|
104
|
+
- **Title Bar API**: Control navigation, title, toolbar via `useApp()` hook
|
|
105
|
+
- **Code Splitting**: Lazy-load apps for optimal performance
|
|
106
|
+
|
|
107
|
+
### Quick Example
|
|
108
|
+
|
|
109
|
+
```tsx
|
|
110
|
+
import React from 'react'
|
|
111
|
+
import { appRegistry, runningAppsStore, useApp } from '@kingsimba/nc-ui'
|
|
112
|
+
import { MyAppIcon } from './MyAppIcon'
|
|
113
|
+
|
|
114
|
+
// 1. Create your app component
|
|
115
|
+
function MyApp() {
|
|
116
|
+
const { setTitle, close } = useApp()
|
|
117
|
+
|
|
118
|
+
return (
|
|
119
|
+
<div>
|
|
120
|
+
<h1>My App</h1>
|
|
121
|
+
<button onClick={close}>Close</button>
|
|
122
|
+
</div>
|
|
123
|
+
)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// 2. Register the app (with lazy loading)
|
|
127
|
+
const LazyMyApp = React.lazy(() =>
|
|
128
|
+
import('./MyApp').then(m => ({ default: m.MyApp }))
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
appRegistry.register({
|
|
132
|
+
id: 'my-app',
|
|
133
|
+
titleKey: 'apps.myApp.name',
|
|
134
|
+
icon: MyAppIcon,
|
|
135
|
+
component: LazyMyApp,
|
|
136
|
+
width: 400,
|
|
137
|
+
})
|
|
138
|
+
|
|
139
|
+
// 3. Launch the app
|
|
140
|
+
await runningAppsStore.launchApp('my-app')
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### App-Specific i18n
|
|
144
|
+
|
|
145
|
+
Each app can have isolated translations that won't conflict with other apps:
|
|
146
|
+
|
|
147
|
+
```tsx
|
|
148
|
+
import { createAppI18nFactory } from '@kingsimba/nc-ui'
|
|
149
|
+
import { I18nextProvider } from 'react-i18next'
|
|
150
|
+
|
|
151
|
+
const myAppI18n = createAppI18nFactory({
|
|
152
|
+
en: { title: 'My App', save: 'Save' },
|
|
153
|
+
zh: { title: '我的应用', save: '保存' },
|
|
154
|
+
})
|
|
155
|
+
|
|
156
|
+
export function MyApp() {
|
|
157
|
+
return (
|
|
158
|
+
<I18nextProvider i18n={myAppI18n}>
|
|
159
|
+
<MyAppContent />
|
|
160
|
+
</I18nextProvider>
|
|
161
|
+
)
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**[Read the complete App Framework guide →](docs/APP_FRAMEWORK.md)**
|
|
166
|
+
|
|
167
|
+
## Theming
|
|
168
|
+
|
|
169
|
+
The library uses CSS variables with `nc-` prefix. Override them in your app:
|
|
170
|
+
|
|
171
|
+
```css
|
|
172
|
+
:root {
|
|
173
|
+
--nc-primary: #your-brand-color;
|
|
174
|
+
--nc-danger: #your-danger-color;
|
|
175
|
+
/* ... see theme.css for all variables */
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/* Light theme - add .light class to :root */
|
|
179
|
+
:root.light {
|
|
180
|
+
--nc-primary: #your-light-primary;
|
|
181
|
+
}
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Documentation
|
|
185
|
+
|
|
186
|
+
- **[Live Demo](https://kingsimba.github.io/nc-ui/)** - Interactive component playground with all props and variants
|
|
187
|
+
- **[App Framework Guide](docs/APP_FRAMEWORK.md)** - Complete guide to building panel-based applications
|
|
188
|
+
- **[Migration Guide](MIGRATION_GUIDE.md)** - Upgrading from previous versions
|
|
189
|
+
|
|
190
|
+
## Development
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Install dependencies
|
|
194
|
+
npm install
|
|
195
|
+
|
|
196
|
+
# Start development server
|
|
197
|
+
npm run dev
|
|
198
|
+
|
|
199
|
+
# Build the library
|
|
200
|
+
npm run build
|
|
201
|
+
|
|
202
|
+
# Run linting
|
|
203
|
+
npm run lint
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Adding Components
|
|
207
|
+
|
|
208
|
+
1. Create your component in `src/components/`
|
|
209
|
+
2. Add styles to `src/styles/theme.css` with `nc-` prefix
|
|
210
|
+
3. Export it from `src/index.ts`
|
|
211
|
+
|
|
212
|
+
## Project Structure
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
src/
|
|
216
|
+
├── components/ # UI components
|
|
217
|
+
│ ├── Button.tsx
|
|
218
|
+
│ └── ActivityIndicator.tsx
|
|
219
|
+
├── styles/
|
|
220
|
+
│ └── theme.css # All component styles with nc- prefix
|
|
221
|
+
├── lib/
|
|
222
|
+
│ └── utils.ts # Utility functions (cn helper)
|
|
223
|
+
└── index.ts # Main entry - exports all components
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## CSS Naming Convention
|
|
227
|
+
|
|
228
|
+
All CSS classes and variables use `nc-` prefix to avoid conflicts:
|
|
229
|
+
|
|
230
|
+
- Variables: `--nc-primary`, `--nc-button-bg`, etc.
|
|
231
|
+
- Classes: `.nc-button`, `.nc-activity-indicator`, etc.
|
|
232
|
+
- Modifiers: `.nc-primary`, `.nc-small`, `.nc-loading`, etc.
|
|
233
|
+
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const n=require("react/jsx-runtime");function s({size:o=24,color:r="currentColor",strokeWidth:e=2,className:t,style:i}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:r,strokeWidth:e,strokeLinecap:"round",strokeLinejoin:"round",className:t,style:i,children:[n.jsx("line",{x1:"20",y1:"4",x2:"4",y2:"20"}),n.jsx("line",{x1:"4",y1:"4",x2:"20",y2:"20"})]})}function c({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("rect",{x:"3",y:"4",width:"18",height:"14",rx:"2"}),n.jsx("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),n.jsx("line",{x1:"12",y1:"18",x2:"12",y2:"21"}),n.jsx("line",{x1:"7",y1:"11",x2:"17",y2:"11"})]})}function h({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),n.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}function d({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"-2 -2 28 28",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M1.5 9a15.5 15.5 0 0 1 21 0"}),n.jsx("path",{d:"M5 12.5a10 10 0 0 1 14 0"}),n.jsx("path",{d:"M8.5 16a5 5 0 0 1 7 0"}),n.jsx("circle",{cx:"12",cy:"20",r:"1.5",fill:"currentColor"})]})}function x({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("rect",{x:"5",y:"11",width:"14",height:"10",rx:"2"}),n.jsx("path",{d:"M8 11V7a4 4 0 0 1 8 0v4"})]})}function l({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("rect",{x:"5",y:"11",width:"14",height:"10",rx:"2"}),n.jsx("path",{d:"M8 11V7a4 4 0 0 1 7.83-1"})]})}function u({size:o=24,className:r,style:e}){return n.jsx("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:n.jsx("polyline",{points:"9 18 15 12 9 6"})})}function j({size:o=24,className:r,style:e}){return n.jsx("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:n.jsx("polyline",{points:"6 9 12 15 18 9"})})}function a({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"-2 -2 28 28",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M21 2v6h-6"}),n.jsx("path",{d:"M3 12a9 9 0 0 1 15-6.7L21 8"}),n.jsx("path",{d:"M3 22v-6h6"}),n.jsx("path",{d:"M21 12a9 9 0 0 1-15 6.7L3 16"})]})}function k({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8"}),n.jsx("path",{d:"M3 3v5h5"})]})}function v({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),n.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}function p({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("polyline",{points:"3 6 5 6 21 6"}),n.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),n.jsx("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),n.jsx("line",{x1:"14",y1:"11",x2:"14",y2:"17"})]})}function w({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M4 4h5l2 2h9a1 1 0 0 1 1 1v2H3V5a1 1 0 0 1 1-1z"}),n.jsx("path",{d:"M2 9h20l-2 11H4L2 9z"}),n.jsx("path",{d:"M8 14h8",strokeDasharray:"2 2",opacity:"0.5"})]})}function f({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("circle",{cx:"12",cy:"12",r:"10"}),n.jsx("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),n.jsx("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"})]})}function g({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83"}),n.jsx("path",{d:"M22 12A10 10 0 0 0 12 2v10z"})]})}function y({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M12 2v10"}),n.jsx("path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04"})]})}function L({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),n.jsx("circle",{cx:"12",cy:"13",r:"4"})]})}function I({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),n.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}function C({size:o=24,className:r,style:e}){return n.jsx("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:n.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})})}function M({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("circle",{cx:"9.5",cy:"4",r:"2",opacity:"0.5"}),n.jsx("circle",{cx:"9.5",cy:"4",r:"3.5",opacity:"0.3"}),n.jsx("path",{d:"M8 13V5.5a1.5 1.5 0 0 1 3 0V12"}),n.jsx("path",{d:"M11 11.5v-2a1.5 1.5 0 0 1 3 0v2.5"}),n.jsx("path",{d:"M14 10.5a1.5 1.5 0 0 1 3 0v1.5"}),n.jsx("path",{d:"M17 11.5a1.5 1.5 0 0 1 3 0v4.5a6 6 0 0 1-6 6h-2h.2a6 6 0 0 1-5-2.7l-.2-.3c-.3-.5-1.4-2.4-3.2-6.3l-.5-.8a.6.6 0 0 1 .5-.8h2.5"})]})}function B({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"currentColor",className:r,style:e,children:[n.jsx("circle",{cx:"12",cy:"5",r:"2"}),n.jsx("circle",{cx:"12",cy:"12",r:"2"}),n.jsx("circle",{cx:"12",cy:"19",r:"2"})]})}function W({size:o=24,className:r,style:e}){return n.jsxs("svg",{width:o,height:o,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:r,style:e,children:[n.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),n.jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]})}exports.CameraIcon=L;exports.ChevronDownIcon=j;exports.ChevronRightIcon=u;exports.CloseIcon=s;exports.DoubleClickIcon=M;exports.EditIcon=v;exports.EmptyFolderIcon=w;exports.EyeHiddenIcon=W;exports.HideAppsIcon=c;exports.InfoIcon=f;exports.LockIcon=x;exports.MinusIcon=C;exports.MoreIcon=B;exports.PieChartIcon=g;exports.PlusIcon=I;exports.PowerIcon=y;exports.RefreshIcon=a;exports.RevertIcon=k;exports.TrashIcon=p;exports.UnlockIcon=l;exports.ViewIcon=h;exports.WifiIcon=d;
|
|
2
|
+
//# sourceMappingURL=GeneratedIcons-B1vmWd9Q.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeneratedIcons-B1vmWd9Q.cjs","sources":["../src/components/icons/GeneratedIcons.tsx"],"sourcesContent":["/**\n * Auto-generated and custom icons for the application.\n */\n\nimport React from 'react';\n\ninterface IconProps {\n size?: number;\n className?: string;\n style?: React.CSSProperties;\n color?: string;\n strokeWidth?: number;\n}\n\n/**\n * Close icon - X symbol for closing dialogs, modals, or dismissing content.\n */\nexport function CloseIcon({ size = 24, color = 'currentColor', strokeWidth = 2, className, style }: IconProps & { color?: string; strokeWidth?: number }) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <line x1=\"20\" y1=\"4\" x2=\"4\" y2=\"20\" />\n <line x1=\"4\" y1=\"4\" x2=\"20\" y2=\"20\" />\n </svg>\n );\n}\n\n/**\n * HideApps icon - \"Show Desktop\" style icon to collapse the right toolbar panel.\n * Similar to Windows \"Show Desktop\" button.\n */\nexport function HideAppsIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n {/* Desktop/window frame */}\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"14\" rx=\"2\" />\n {/* Desktop stand */}\n <line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\" />\n <line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"21\" />\n {/* Minimize indicator lines */}\n <line x1=\"7\" y1=\"11\" x2=\"17\" y2=\"11\" />\n </svg>\n );\n}\n\n/**\n * View icon - \"eye\" icon for viewing content.\n */\nexport function ViewIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n {/* Eye outline */}\n <path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\" />\n {/* Pupil */}\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n\n/**\n * WiFi icon for the WiFi Setup app.\n * Shows signal arcs indicating wireless connectivity.\n */\nexport function WifiIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"-2 -2 28 28\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n {/* Outer arc */}\n <path d=\"M1.5 9a15.5 15.5 0 0 1 21 0\" />\n {/* Middle arc */}\n <path d=\"M5 12.5a10 10 0 0 1 14 0\" />\n {/* Inner arc */}\n <path d=\"M8.5 16a5 5 0 0 1 7 0\" />\n {/* Center dot */}\n <circle cx=\"12\" cy=\"20\" r=\"1.5\" fill=\"currentColor\" />\n </svg>\n );\n}\n\n/**\n * Lock icon for secured WiFi networks.\n */\nexport function LockIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\" />\n <path d=\"M8 11V7a4 4 0 0 1 8 0v4\" />\n </svg>\n );\n}\n\n/**\n * Unlock icon for open WiFi networks (no security).\n */\nexport function UnlockIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\" />\n <path d=\"M8 11V7a4 4 0 0 1 7.83-1\" />\n </svg>\n );\n}\n\n/**\n * Chevron right icon for navigation items.\n */\nexport function ChevronRightIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n );\n}\n\n/**\n * Chevron down icon for expandable sections.\n */\nexport function ChevronDownIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n );\n}\n\n/**\n * Refresh icon for scanning networks.\n */\nexport function RefreshIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"-2 -2 28 28\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <path d=\"M21 2v6h-6\" />\n <path d=\"M3 12a9 9 0 0 1 15-6.7L21 8\" />\n <path d=\"M3 22v-6h6\" />\n <path d=\"M21 12a9 9 0 0 1-15 6.7L3 16\" />\n </svg>\n );\n}\n\n/**\n * Revert icon - undo/revert action icon with counter-clockwise arrow.\n */\nexport function RevertIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </svg>\n );\n}\n\n/**\n * Edit icon - Pencil for editing mode.\n */\nexport function EditIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\" />\n </svg>\n );\n}\n\n/**\n * Trash icon for deleting items.\n */\nexport function TrashIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <polyline points=\"3 6 5 6 21 6\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n <line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\" />\n <line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\" />\n </svg>\n );\n}\n\n\n\n/**\n * Empty folder icon - an open empty folder for empty state display.\n */\nexport function EmptyFolderIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n {/* Open folder back */}\n <path d=\"M4 4h5l2 2h9a1 1 0 0 1 1 1v2H3V5a1 1 0 0 1 1-1z\" />\n {/* Open folder front (angled to show empty interior) */}\n <path d=\"M2 9h20l-2 11H4L2 9z\" />\n {/* Empty indicator - dashed line inside */}\n <path d=\"M8 14h8\" strokeDasharray=\"2 2\" opacity=\"0.5\" />\n </svg>\n );\n}\n\n/**\n * Info icon - circle with \"i\" for information.\n */\nexport function InfoIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\" />\n <line x1=\"12\" y1=\"8\" x2=\"12.01\" y2=\"8\" />\n </svg>\n );\n}\n\n/**\n * PieChart icon for statistics/analytics.\n */\nexport function PieChartIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <path d=\"M21.21 15.89A10 10 0 1 1 8 2.83\" />\n <path d=\"M22 12A10 10 0 0 0 12 2v10z\" />\n </svg>\n );\n}\n\n/**\n * Power icon for system power management.\n */\nexport function PowerIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <path d=\"M12 2v10\" />\n <path d=\"M18.4 6.6a9 9 0 1 1-12.77.04\" />\n </svg>\n );\n}\n\n/**\n * Camera icon for video/image capture functionality.\n */\nexport function CameraIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\" />\n <circle cx=\"12\" cy=\"13\" r=\"4\" />\n </svg>\n );\n}\n\n/**\n * Plus icon for zoom in functionality.\n */\nexport function PlusIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" />\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n );\n}\n\n/**\n * Minus icon for zoom out functionality.\n */\nexport function MinusIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n );\n}\n\n/**\n * DoubleClick icon - Mouse cursor with double-click indicators and movement arrow.\n * Used to enable/disable double-click to move robot feature.\n */\nexport function DoubleClickIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n {/* Ripples */}\n <circle cx=\"9.5\" cy=\"4\" r=\"2\" opacity=\"0.5\" />\n <circle cx=\"9.5\" cy=\"4\" r=\"3.5\" opacity=\"0.3\" />\n\n {/* Hand */}\n <path d=\"M8 13V5.5a1.5 1.5 0 0 1 3 0V12\" />\n <path d=\"M11 11.5v-2a1.5 1.5 0 0 1 3 0v2.5\" />\n <path d=\"M14 10.5a1.5 1.5 0 0 1 3 0v1.5\" />\n <path d=\"M17 11.5a1.5 1.5 0 0 1 3 0v4.5a6 6 0 0 1-6 6h-2h.2a6 6 0 0 1-5-2.7l-.2-.3c-.3-.5-1.4-2.4-3.2-6.3l-.5-.8a.6.6 0 0 1 .5-.8h2.5\" />\n </svg>\n );\n}\n\n/**\n * More icon - Vertical three dots for menu/options.\n * Used to show additional actions or menu.\n */\nexport function MoreIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={className}\n style={style}\n >\n <circle cx=\"12\" cy=\"5\" r=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <circle cx=\"12\" cy=\"19\" r=\"2\" />\n </svg>\n );\n}\n\n/**\n * Eye Hidden icon - \"eye with slash\" icon for hiding passwords.\n */\nexport function EyeHiddenIcon({ size = 24, className, style }: IconProps) {\n return (\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n style={style}\n >\n {/* Eye outline */}\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\" />\n {/* Slash line */}\n <line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\" />\n </svg>\n );\n}"],"names":["CloseIcon","size","color","strokeWidth","className","style","jsxs","jsx","HideAppsIcon","ViewIcon","WifiIcon","LockIcon","UnlockIcon","ChevronRightIcon","ChevronDownIcon","RefreshIcon","RevertIcon","EditIcon","TrashIcon","EmptyFolderIcon","InfoIcon","PieChartIcon","PowerIcon","CameraIcon","PlusIcon","MinusIcon","DoubleClickIcon","MoreIcon","EyeHiddenIcon"],"mappings":"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"}
|