@nextop-os/ui-system 0.0.15 → 0.0.16
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 +78 -0
- package/agent/install-skill.mjs +181 -0
- package/agent/nextop-ui-system/SKILL.md +114 -0
- package/dist/{chunk-G6KJIFD2.js → chunk-5COFORA5.js} +2 -2
- package/dist/{chunk-OBW6ALOJ.js → chunk-TT7B6HKG.js} +75 -3
- package/dist/chunk-TT7B6HKG.js.map +1 -0
- package/dist/chunk-XHA7R2WC.js +292 -0
- package/dist/chunk-XHA7R2WC.js.map +1 -0
- package/dist/components/index.js +2 -2
- package/dist/dev-vite.d.ts +9 -0
- package/dist/dev-vite.js +578 -0
- package/dist/dev-vite.js.map +1 -0
- package/dist/icons/index.d.ts +13 -1
- package/dist/icons/index.js +14 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -3
- package/dist/metadata/components.json +1451 -0
- package/dist/metadata/components.schema.json +106 -0
- package/dist/metadata/index.d.ts +25 -0
- package/dist/metadata/index.js +1459 -0
- package/dist/metadata/index.js.map +1 -0
- package/package.json +23 -3
- package/dist/chunk-IK2XRJQG.js +0 -56
- package/dist/chunk-IK2XRJQG.js.map +0 -1
- package/dist/chunk-OBW6ALOJ.js.map +0 -1
- /package/dist/{chunk-G6KJIFD2.js.map → chunk-5COFORA5.js.map} +0 -0
package/README.md
CHANGED
|
@@ -12,3 +12,81 @@ import "@nextop-os/ui-system/styles.css";
|
|
|
12
12
|
|
|
13
13
|
Application code should prefer the root package export and the documented stable
|
|
14
14
|
subpaths over deep imports from internal files.
|
|
15
|
+
|
|
16
|
+
## External Development
|
|
17
|
+
|
|
18
|
+
External consumers should install the package normally:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pnpm add @nextop-os/ui-system
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
For local source sync from a Nextop checkout, start the UI system dev server:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pnpm --filter @nextop-os/ui-system dev:server
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Then add the Vite plugin in the external app:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { nextopUISystemDev } from "@nextop-os/ui-system/dev-vite";
|
|
34
|
+
|
|
35
|
+
export default defineConfig({
|
|
36
|
+
plugins: [nextopUISystemDev()]
|
|
37
|
+
});
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
When the dev server is reachable, the plugin mirrors the allowed UI-system
|
|
41
|
+
source files into `.nextop-ui-system-dev/` and aliases the stable package
|
|
42
|
+
entrypoints to that cache. When the dev server is unavailable, resolution falls
|
|
43
|
+
back to the installed package in `node_modules`.
|
|
44
|
+
|
|
45
|
+
Add the generated cache to the external app's `.gitignore`:
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
.nextop-ui-system-dev/
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
If the external app uses Tailwind CSS, include both the installed package output
|
|
52
|
+
and the generated dev cache in the app's Tailwind source scan:
|
|
53
|
+
|
|
54
|
+
```css
|
|
55
|
+
@source "../node_modules/@nextop-os/ui-system/dist";
|
|
56
|
+
@source "../.nextop-ui-system-dev";
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Agent Usage
|
|
60
|
+
|
|
61
|
+
Coding agents should read component metadata before creating or promoting UI:
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
import { uiSystemMetadata } from "@nextop-os/ui-system/metadata";
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
When promoting business UI into this package, use the bundled
|
|
68
|
+
`agent/nextop-ui-system/SKILL.md` skill when it is available. The durable rules
|
|
69
|
+
are:
|
|
70
|
+
|
|
71
|
+
1. prefer existing metadata entries before creating a component
|
|
72
|
+
2. classify the component as `base` or `business`
|
|
73
|
+
3. keep business components host-agnostic and side-effect-free
|
|
74
|
+
4. compose business components from base primitives
|
|
75
|
+
5. add metadata, stable exports, and storyboard examples for public UI
|
|
76
|
+
6. run metadata and boundary validation before shipping
|
|
77
|
+
|
|
78
|
+
External repositories can install the bundled skill into their local Codex
|
|
79
|
+
skill directory with one command:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pnpm exec nextop-ui-system-install-skill
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
This copies the package skill into:
|
|
86
|
+
|
|
87
|
+
```text
|
|
88
|
+
.codex/skills/nextop-ui-system/SKILL.md
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
The installer does not overwrite a locally modified skill unless `--force` is
|
|
92
|
+
provided.
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { constants } from "node:fs";
|
|
4
|
+
import {
|
|
5
|
+
access,
|
|
6
|
+
cp,
|
|
7
|
+
mkdir,
|
|
8
|
+
readdir,
|
|
9
|
+
readFile,
|
|
10
|
+
rm,
|
|
11
|
+
stat
|
|
12
|
+
} from "node:fs/promises";
|
|
13
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
14
|
+
import { fileURLToPath } from "node:url";
|
|
15
|
+
|
|
16
|
+
const packageRoot = dirname(dirname(fileURLToPath(import.meta.url)));
|
|
17
|
+
const sourceDirectory = join(packageRoot, "agent", "nextop-ui-system");
|
|
18
|
+
const skillName = "nextop-ui-system";
|
|
19
|
+
|
|
20
|
+
const options = parseArgs(process.argv.slice(2));
|
|
21
|
+
|
|
22
|
+
if (options.help) {
|
|
23
|
+
printHelp();
|
|
24
|
+
process.exit(0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const targetRoot = resolve(options.cwd, ".codex", "skills");
|
|
28
|
+
const targetDirectory = join(targetRoot, skillName);
|
|
29
|
+
|
|
30
|
+
await assertReadableDirectory(sourceDirectory);
|
|
31
|
+
await mkdir(targetRoot, { recursive: true });
|
|
32
|
+
|
|
33
|
+
if (await pathExists(targetDirectory)) {
|
|
34
|
+
const targetStats = await stat(targetDirectory);
|
|
35
|
+
|
|
36
|
+
if (!targetStats.isDirectory()) {
|
|
37
|
+
throw new Error(`Target exists and is not a directory: ${targetDirectory}`);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (!options.force) {
|
|
41
|
+
if (await directoriesMatch(sourceDirectory, targetDirectory)) {
|
|
42
|
+
console.log(
|
|
43
|
+
`nextop-ui-system skill already configured at ${targetDirectory}`
|
|
44
|
+
);
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
throw new Error(
|
|
49
|
+
`Target skill already exists with local changes: ${targetDirectory}\n` +
|
|
50
|
+
"Run with --force to replace it."
|
|
51
|
+
);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
await rm(targetDirectory, { recursive: true, force: true });
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
await cp(sourceDirectory, targetDirectory, {
|
|
58
|
+
errorOnExist: false,
|
|
59
|
+
force: true,
|
|
60
|
+
recursive: true
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
console.log(`Installed nextop-ui-system skill to ${targetDirectory}`);
|
|
64
|
+
console.log(
|
|
65
|
+
"Agents can now load it from .codex/skills/nextop-ui-system/SKILL.md"
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
function parseArgs(args) {
|
|
69
|
+
const parsed = {
|
|
70
|
+
cwd: process.cwd(),
|
|
71
|
+
force: false,
|
|
72
|
+
help: false
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
76
|
+
const arg = args[index];
|
|
77
|
+
|
|
78
|
+
if (arg === "--force") {
|
|
79
|
+
parsed.force = true;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (arg === "--help" || arg === "-h") {
|
|
84
|
+
parsed.help = true;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (arg === "--cwd") {
|
|
89
|
+
const cwd = args[index + 1];
|
|
90
|
+
if (!cwd) {
|
|
91
|
+
throw new Error("--cwd requires a directory path");
|
|
92
|
+
}
|
|
93
|
+
parsed.cwd = resolve(cwd);
|
|
94
|
+
index += 1;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return parsed;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function printHelp() {
|
|
105
|
+
console.log(`Usage: nextop-ui-system-install-skill [options]
|
|
106
|
+
|
|
107
|
+
Copies the bundled Nextop UI System skill into the current repository.
|
|
108
|
+
|
|
109
|
+
Options:
|
|
110
|
+
--cwd <path> Repository root to configure. Defaults to the current directory.
|
|
111
|
+
--force Replace an existing .codex/skills/nextop-ui-system directory.
|
|
112
|
+
-h, --help Show this help message.`);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async function assertReadableDirectory(path) {
|
|
116
|
+
await access(path, constants.R_OK);
|
|
117
|
+
const pathStats = await stat(path);
|
|
118
|
+
|
|
119
|
+
if (!pathStats.isDirectory()) {
|
|
120
|
+
throw new Error(`Expected directory: ${path}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async function pathExists(path) {
|
|
125
|
+
try {
|
|
126
|
+
await access(path, constants.F_OK);
|
|
127
|
+
return true;
|
|
128
|
+
} catch {
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
async function directoriesMatch(leftDirectory, rightDirectory) {
|
|
134
|
+
const leftEntries = await listFiles(leftDirectory, leftDirectory);
|
|
135
|
+
const rightEntries = await listFiles(rightDirectory, rightDirectory);
|
|
136
|
+
|
|
137
|
+
if (leftEntries.length !== rightEntries.length) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
for (let index = 0; index < leftEntries.length; index += 1) {
|
|
142
|
+
if (leftEntries[index] !== rightEntries[index]) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const leftFile = join(leftDirectory, leftEntries[index]);
|
|
147
|
+
const rightFile = join(rightDirectory, rightEntries[index]);
|
|
148
|
+
|
|
149
|
+
const [leftContent, rightContent] = await Promise.all([
|
|
150
|
+
readFile(leftFile),
|
|
151
|
+
readFile(rightFile)
|
|
152
|
+
]);
|
|
153
|
+
|
|
154
|
+
if (!leftContent.equals(rightContent)) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
async function listFiles(rootDirectory, directory) {
|
|
163
|
+
const entries = await readdir(directory, { withFileTypes: true });
|
|
164
|
+
const files = await Promise.all(
|
|
165
|
+
entries.map(async (entry) => {
|
|
166
|
+
const absolutePath = join(directory, entry.name);
|
|
167
|
+
|
|
168
|
+
if (entry.isDirectory()) {
|
|
169
|
+
return listFiles(rootDirectory, absolutePath);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
if (!entry.isFile()) {
|
|
173
|
+
return [];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return relative(rootDirectory, absolutePath);
|
|
177
|
+
})
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
return files.flat().sort((left, right) => left.localeCompare(right));
|
|
181
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nextop-ui-system
|
|
3
|
+
description: Use when working with @nextop-os/ui-system components, replacing local UI with shared components, querying component ids or metadata, promoting business UI into shared base or business components, or maintaining UI-system storyboard inventory.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Nextop UI System
|
|
7
|
+
|
|
8
|
+
Use this skill as the single entrypoint for `@nextop-os/ui-system` use,
|
|
9
|
+
promotion, metadata, and storyboard work.
|
|
10
|
+
|
|
11
|
+
## Source Of Truth
|
|
12
|
+
|
|
13
|
+
Read these before editing:
|
|
14
|
+
|
|
15
|
+
1. nearest `AGENTS.md` for the target code
|
|
16
|
+
2. `packages/ui/AGENTS.md`
|
|
17
|
+
3. `docs/conventions/ui-system.md`
|
|
18
|
+
4. component metadata from the first available source:
|
|
19
|
+
- `GET http://127.0.0.1:4100/components`
|
|
20
|
+
- `packages/ui/system/src/metadata/components.json`
|
|
21
|
+
- `@nextop-os/ui-system/metadata` from the installed package
|
|
22
|
+
|
|
23
|
+
Use stable public imports only:
|
|
24
|
+
|
|
25
|
+
- `@nextop-os/ui-system`
|
|
26
|
+
- `@nextop-os/ui-system/components`
|
|
27
|
+
- `@nextop-os/ui-system/icons`
|
|
28
|
+
- `@nextop-os/ui-system/metadata`
|
|
29
|
+
- `@nextop-os/ui-system/styles.css`
|
|
30
|
+
- `@nextop-os/ui-system/utils`
|
|
31
|
+
|
|
32
|
+
Never deep import `@nextop-os/ui-system/src/*` or per-file component paths.
|
|
33
|
+
|
|
34
|
+
## Route The Task
|
|
35
|
+
|
|
36
|
+
### Use Existing Component
|
|
37
|
+
|
|
38
|
+
Use when replacing local UI or answering what components exist.
|
|
39
|
+
|
|
40
|
+
1. Check metadata first by `id`, `name`, `export`, `layer`, and `useCases`.
|
|
41
|
+
2. Prefer existing components before creating or extracting new ones.
|
|
42
|
+
3. Read the source and props type for the selected export.
|
|
43
|
+
4. Keep host state, data loading, routing, daemon calls, i18n keys, and business
|
|
44
|
+
transforms in the caller.
|
|
45
|
+
5. Replace only the visual surface with stable UI-system imports.
|
|
46
|
+
|
|
47
|
+
### Extract Base Component
|
|
48
|
+
|
|
49
|
+
Use when the target is a low-level visual primitive.
|
|
50
|
+
|
|
51
|
+
Proceed only if the public API has no domain noun and props describe
|
|
52
|
+
presentation, interaction, accessibility, variants, refs, slots, class names, or
|
|
53
|
+
children.
|
|
54
|
+
|
|
55
|
+
1. If the primitive exists in shadcn, acquire it through shadcn CLI targeted at
|
|
56
|
+
`packages/ui/system`.
|
|
57
|
+
2. Adapt only package aliases, icons, tokens, exports, and boundary issues.
|
|
58
|
+
3. Add stable exports, metadata with `layer: "base"`, and storyboard coverage.
|
|
59
|
+
4. Replace duplicated local UI with the shared component.
|
|
60
|
+
|
|
61
|
+
### Extract Business Component
|
|
62
|
+
|
|
63
|
+
Use when business-side UI should become a reusable display component.
|
|
64
|
+
|
|
65
|
+
Proceed only if the component can render from props with no host side effects.
|
|
66
|
+
Business components may expose domain display props such as workspace, file,
|
|
67
|
+
task, agent, run, status, permission, labels, and callbacks.
|
|
68
|
+
|
|
69
|
+
Before editing, state:
|
|
70
|
+
|
|
71
|
+
- component `id` and `layer`
|
|
72
|
+
- source usage being replaced
|
|
73
|
+
- intended reuse surfaces
|
|
74
|
+
- public props and callbacks
|
|
75
|
+
- host-owned state and side effects that remain outside the component
|
|
76
|
+
- export path, metadata entry, storyboard states, and validation commands
|
|
77
|
+
|
|
78
|
+
Keep these outside the component:
|
|
79
|
+
|
|
80
|
+
- daemon, Electron, filesystem, router, or host adapter calls
|
|
81
|
+
- data fetching, cache mutation, persistence, polling, and global store
|
|
82
|
+
ownership
|
|
83
|
+
- workflow orchestration such as onboarding, workspace registration, or
|
|
84
|
+
navigation
|
|
85
|
+
|
|
86
|
+
Implement the business component by composing `base` primitives. Add metadata
|
|
87
|
+
with `layer: "business"` and storyboard examples for normal, empty, disabled,
|
|
88
|
+
loading, and error-like states when those states exist in the public contract.
|
|
89
|
+
|
|
90
|
+
### Maintain Inventory
|
|
91
|
+
|
|
92
|
+
Use when changing component ids, metadata, exports, or storyboard.
|
|
93
|
+
|
|
94
|
+
1. Keep each public entry's `id` stable, readable, globally unique, and
|
|
95
|
+
kebab-case.
|
|
96
|
+
2. Keep `layer` as `base` or `business`.
|
|
97
|
+
3. Ensure `source` points under `packages/ui/system/src`.
|
|
98
|
+
4. Ensure `from` is a stable public entrypoint.
|
|
99
|
+
5. Keep storyboard grouped by `Foundation`, `Base Components`, and
|
|
100
|
+
`Business Components`; visible component stories should support copying the
|
|
101
|
+
component id.
|
|
102
|
+
|
|
103
|
+
## Validation
|
|
104
|
+
|
|
105
|
+
Run the smallest relevant checks, then report exact commands and results:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
node tools/scripts/check-ui-metadata.mjs
|
|
109
|
+
pnpm check:ui-boundaries
|
|
110
|
+
pnpm --filter @nextop-os/ui-storyboard typecheck
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If runtime component code changed, also run the relevant package typecheck or
|
|
114
|
+
build for the consumer that was migrated.
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
ChevronRightIcon,
|
|
5
5
|
ChevronUpIcon,
|
|
6
6
|
CloseIcon
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TT7B6HKG.js";
|
|
8
8
|
import {
|
|
9
9
|
cn
|
|
10
10
|
} from "./chunk-DGPY4WP3.js";
|
|
@@ -1156,4 +1156,4 @@ export {
|
|
|
1156
1156
|
ToastClose,
|
|
1157
1157
|
ToastViewport
|
|
1158
1158
|
};
|
|
1159
|
-
//# sourceMappingURL=chunk-
|
|
1159
|
+
//# sourceMappingURL=chunk-5COFORA5.js.map
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// src/icons/system-icons.tsx
|
|
2
2
|
import {
|
|
3
3
|
AlertCircleIcon,
|
|
4
|
+
AppWindowIcon as LucideAppWindowIcon,
|
|
4
5
|
ArrowLeftIcon as LucideArrowLeftIcon,
|
|
5
6
|
ArrowRightIcon as LucideArrowRightIcon,
|
|
6
7
|
ArrowUpRightIcon,
|
|
@@ -19,6 +20,7 @@ import {
|
|
|
19
20
|
FolderIcon as LucideFolderIcon,
|
|
20
21
|
HomeIcon,
|
|
21
22
|
ImageIcon as LucideImageIcon,
|
|
23
|
+
LayoutGridIcon as LucideLayoutGridIcon,
|
|
22
24
|
XIcon,
|
|
23
25
|
Maximize2Icon,
|
|
24
26
|
Minimize2Icon,
|
|
@@ -33,6 +35,7 @@ import {
|
|
|
33
35
|
PanelRight,
|
|
34
36
|
PanelTop,
|
|
35
37
|
PanelsTopLeft,
|
|
38
|
+
PencilIcon as LucidePencilIcon,
|
|
36
39
|
RefreshCwIcon,
|
|
37
40
|
SearchIcon as LucideSearchIcon,
|
|
38
41
|
SettingsIcon as LucideSettingsIcon,
|
|
@@ -41,7 +44,7 @@ import {
|
|
|
41
44
|
UploadIcon as LucideUploadIcon,
|
|
42
45
|
VideoIcon
|
|
43
46
|
} from "lucide-react";
|
|
44
|
-
import { jsx } from "react/jsx-runtime";
|
|
47
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
45
48
|
function createLucideIcon(Icon) {
|
|
46
49
|
return function WrappedIcon({ size = 18, title, ...props }) {
|
|
47
50
|
return /* @__PURE__ */ jsx(Icon, { "aria-hidden": title ? void 0 : true, size, ...props, children: title ? /* @__PURE__ */ jsx("title", { children: title }) : null });
|
|
@@ -66,6 +69,7 @@ var QuickLayoutLeftIcon = createLucideIcon(PanelLeft);
|
|
|
66
69
|
var QuickLayoutRightIcon = createLucideIcon(PanelRight);
|
|
67
70
|
var QuickLayoutTopIcon = createLucideIcon(PanelTop);
|
|
68
71
|
var QuickLayoutBottomIcon = createLucideIcon(PanelBottom);
|
|
72
|
+
var AppWindowIcon = createLucideIcon(LucideAppWindowIcon);
|
|
69
73
|
var ArrowLeftIcon = createLucideIcon(LucideArrowLeftIcon);
|
|
70
74
|
var ArrowRightIcon = createLucideIcon(LucideArrowRightIcon);
|
|
71
75
|
var CheckIcon = createLucideIcon(LucideCheckIcon);
|
|
@@ -82,11 +86,74 @@ var FileSearchIcon = createLucideIcon(LucideFileSearchIcon);
|
|
|
82
86
|
var FileSpreadsheetIcon = createLucideIcon(LucideFileSpreadsheetIcon);
|
|
83
87
|
var FileTextIcon = createLucideIcon(LucideFileTextIcon);
|
|
84
88
|
var ImageFileIcon = createLucideIcon(LucideImageIcon);
|
|
89
|
+
var EditIcon = createLucideIcon(LucidePencilIcon);
|
|
90
|
+
var LayoutGridIcon = createLucideIcon(LucideLayoutGridIcon);
|
|
85
91
|
var RefreshIcon = createLucideIcon(RefreshCwIcon);
|
|
86
92
|
var SearchIcon = createLucideIcon(LucideSearchIcon);
|
|
87
93
|
var DeleteIcon = createLucideIcon(LucideTrashIcon);
|
|
88
94
|
var UploadIcon = createLucideIcon(LucideUploadIcon);
|
|
89
95
|
var VideoFileIcon = createLucideIcon(VideoIcon);
|
|
96
|
+
function GoogleBrandIcon({ size = 22, title, ...props }) {
|
|
97
|
+
return /* @__PURE__ */ jsxs(
|
|
98
|
+
"svg",
|
|
99
|
+
{
|
|
100
|
+
"aria-hidden": title ? void 0 : true,
|
|
101
|
+
fill: "none",
|
|
102
|
+
height: size,
|
|
103
|
+
viewBox: "0 0 24 24",
|
|
104
|
+
width: size,
|
|
105
|
+
...props,
|
|
106
|
+
children: [
|
|
107
|
+
title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
|
|
108
|
+
/* @__PURE__ */ jsx(
|
|
109
|
+
"path",
|
|
110
|
+
{
|
|
111
|
+
d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.27-4.74 3.27-8.1Z",
|
|
112
|
+
fill: "#4285F4"
|
|
113
|
+
}
|
|
114
|
+
),
|
|
115
|
+
/* @__PURE__ */ jsx(
|
|
116
|
+
"path",
|
|
117
|
+
{
|
|
118
|
+
d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84A11 11 0 0 0 12 23Z",
|
|
119
|
+
fill: "#34A853"
|
|
120
|
+
}
|
|
121
|
+
),
|
|
122
|
+
/* @__PURE__ */ jsx(
|
|
123
|
+
"path",
|
|
124
|
+
{
|
|
125
|
+
d: "M5.84 14.1A6.6 6.6 0 0 1 5.5 12c0-.73.12-1.43.34-2.1V7.08H2.18A11 11 0 0 0 1 12c0 1.78.43 3.45 1.18 4.93l3.66-2.83Z",
|
|
126
|
+
fill: "#FBBC05"
|
|
127
|
+
}
|
|
128
|
+
),
|
|
129
|
+
/* @__PURE__ */ jsx(
|
|
130
|
+
"path",
|
|
131
|
+
{
|
|
132
|
+
d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15A10.6 10.6 0 0 0 12 1a11 11 0 0 0-9.82 6.08l3.66 2.83A6.58 6.58 0 0 1 12 5.38Z",
|
|
133
|
+
fill: "#EA4335"
|
|
134
|
+
}
|
|
135
|
+
)
|
|
136
|
+
]
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
function GitHubBrandIcon({ size = 22, title, ...props }) {
|
|
141
|
+
return /* @__PURE__ */ jsxs(
|
|
142
|
+
"svg",
|
|
143
|
+
{
|
|
144
|
+
"aria-hidden": title ? void 0 : true,
|
|
145
|
+
fill: "currentColor",
|
|
146
|
+
height: size,
|
|
147
|
+
viewBox: "0 0 24 24",
|
|
148
|
+
width: size,
|
|
149
|
+
...props,
|
|
150
|
+
children: [
|
|
151
|
+
title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
|
|
152
|
+
/* @__PURE__ */ jsx("path", { d: "M12 0C5.37 0 0 5.37 0 12c0 5.3 3.44 9.8 8.21 11.39.6.11.79-.26.79-.58v-2.23c-3.34.73-4.03-1.42-4.03-1.42-.55-1.39-1.33-1.76-1.33-1.76-1.09-.74.08-.73.08-.73 1.2.08 1.84 1.24 1.84 1.24 1.07 1.83 2.81 1.3 3.49 1 .11-.78.42-1.3.76-1.6-2.66-.31-5.47-1.34-5.47-5.94 0-1.31.47-2.38 1.24-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.23A11.5 11.5 0 0 1 12 5.8c1.02.01 2.05.14 3.01.4 2.29-1.55 3.3-1.23 3.3-1.23.65 1.65.24 2.87.12 3.18.77.84 1.23 1.91 1.23 3.22 0 4.61-2.81 5.62-5.48 5.92.43.37.82 1.1.82 2.22v3.3c0 .32.19.69.8.58A12.01 12.01 0 0 0 24 12c0-6.63-5.37-12-12-12Z" })
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
90
157
|
|
|
91
158
|
export {
|
|
92
159
|
LaunchIcon,
|
|
@@ -108,6 +175,7 @@ export {
|
|
|
108
175
|
QuickLayoutRightIcon,
|
|
109
176
|
QuickLayoutTopIcon,
|
|
110
177
|
QuickLayoutBottomIcon,
|
|
178
|
+
AppWindowIcon,
|
|
111
179
|
ArrowLeftIcon,
|
|
112
180
|
ArrowRightIcon,
|
|
113
181
|
CheckIcon,
|
|
@@ -124,10 +192,14 @@ export {
|
|
|
124
192
|
FileSpreadsheetIcon,
|
|
125
193
|
FileTextIcon,
|
|
126
194
|
ImageFileIcon,
|
|
195
|
+
EditIcon,
|
|
196
|
+
LayoutGridIcon,
|
|
127
197
|
RefreshIcon,
|
|
128
198
|
SearchIcon,
|
|
129
199
|
DeleteIcon,
|
|
130
200
|
UploadIcon,
|
|
131
|
-
VideoFileIcon
|
|
201
|
+
VideoFileIcon,
|
|
202
|
+
GoogleBrandIcon,
|
|
203
|
+
GitHubBrandIcon
|
|
132
204
|
};
|
|
133
|
-
//# sourceMappingURL=chunk-
|
|
205
|
+
//# sourceMappingURL=chunk-TT7B6HKG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/icons/system-icons.tsx"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\nimport {\n AlertCircleIcon,\n AppWindowIcon as LucideAppWindowIcon,\n ArrowLeftIcon as LucideArrowLeftIcon,\n ArrowRightIcon as LucideArrowRightIcon,\n ArrowUpRightIcon,\n CheckIcon as LucideCheckIcon,\n ChevronDownIcon as LucideChevronDownIcon,\n ChevronRightIcon as LucideChevronRightIcon,\n ChevronUpIcon as LucideChevronUpIcon,\n CopyIcon as LucideCopyIcon,\n EyeIcon as LucideEyeIcon,\n FileCode2Icon,\n FileIcon as LucideFileIcon,\n FilePlus2Icon,\n FileSearchIcon as LucideFileSearchIcon,\n FileSpreadsheetIcon as LucideFileSpreadsheetIcon,\n FileTextIcon as LucideFileTextIcon,\n FolderIcon as LucideFolderIcon,\n HomeIcon,\n ImageIcon as LucideImageIcon,\n LayoutGridIcon as LucideLayoutGridIcon,\n XIcon,\n Maximize2Icon,\n Minimize2Icon,\n MinusIcon,\n FolderOpenIcon,\n FolderPlusIcon,\n HardDriveIcon,\n LoaderCircleIcon,\n MonitorCogIcon,\n PanelBottom,\n PanelLeft,\n PanelRight,\n PanelTop,\n PanelsTopLeft,\n PencilIcon as LucidePencilIcon,\n RefreshCwIcon,\n SearchIcon as LucideSearchIcon,\n SettingsIcon as LucideSettingsIcon,\n SparklesIcon,\n Trash2Icon as LucideTrashIcon,\n UploadIcon as LucideUploadIcon,\n VideoIcon\n} from \"lucide-react\";\nimport type { IconProps } from \"./types\";\n\nfunction createLucideIcon(Icon: LucideIcon) {\n return function WrappedIcon({ size = 18, title, ...props }: IconProps) {\n return (\n <Icon aria-hidden={title ? undefined : true} size={size} {...props}>\n {title ? <title>{title}</title> : null}\n </Icon>\n );\n };\n}\n\nexport const LaunchIcon = createLucideIcon(ArrowUpRightIcon);\nexport const FolderIcon = createLucideIcon(FolderOpenIcon);\nexport const DashboardIcon = createLucideIcon(HomeIcon);\nexport const NewWorkspaceIcon = createLucideIcon(FolderPlusIcon);\nexport const HealthIcon = createLucideIcon(HardDriveIcon);\nexport const AlertIcon = createLucideIcon(AlertCircleIcon);\nexport const LoadingIcon = createLucideIcon(LoaderCircleIcon);\nexport const PlatformIcon = createLucideIcon(MonitorCogIcon);\nexport const SparkIcon = createLucideIcon(SparklesIcon);\nexport const SettingsIcon = createLucideIcon(LucideSettingsIcon);\nexport const CloseIcon = createLucideIcon(XIcon);\nexport const MinimizeIcon = createLucideIcon(MinusIcon);\nexport const MaximizeIcon = createLucideIcon(Maximize2Icon);\nexport const RestoreIcon = createLucideIcon(Minimize2Icon);\nexport const LayoutMenuIcon = createLucideIcon(PanelsTopLeft);\nexport const QuickLayoutLeftIcon = createLucideIcon(PanelLeft);\nexport const QuickLayoutRightIcon = createLucideIcon(PanelRight);\nexport const QuickLayoutTopIcon = createLucideIcon(PanelTop);\nexport const QuickLayoutBottomIcon = createLucideIcon(PanelBottom);\nexport const AppWindowIcon = createLucideIcon(LucideAppWindowIcon);\nexport const ArrowLeftIcon = createLucideIcon(LucideArrowLeftIcon);\nexport const ArrowRightIcon = createLucideIcon(LucideArrowRightIcon);\nexport const CheckIcon = createLucideIcon(LucideCheckIcon);\nexport const ChevronDownIcon = createLucideIcon(LucideChevronDownIcon);\nexport const ChevronRightIcon = createLucideIcon(LucideChevronRightIcon);\nexport const ChevronUpIcon = createLucideIcon(LucideChevronUpIcon);\nexport const CopyIcon = createLucideIcon(LucideCopyIcon);\nexport const DirectoryIcon = createLucideIcon(LucideFolderIcon);\nexport const EyeIcon = createLucideIcon(LucideEyeIcon);\nexport const FileIcon = createLucideIcon(LucideFileIcon);\nexport const FileCodeIcon = createLucideIcon(FileCode2Icon);\nexport const FileCreateIcon = createLucideIcon(FilePlus2Icon);\nexport const FileSearchIcon = createLucideIcon(LucideFileSearchIcon);\nexport const FileSpreadsheetIcon = createLucideIcon(LucideFileSpreadsheetIcon);\nexport const FileTextIcon = createLucideIcon(LucideFileTextIcon);\nexport const ImageFileIcon = createLucideIcon(LucideImageIcon);\nexport const EditIcon = createLucideIcon(LucidePencilIcon);\nexport const LayoutGridIcon = createLucideIcon(LucideLayoutGridIcon);\nexport const RefreshIcon = createLucideIcon(RefreshCwIcon);\nexport const SearchIcon = createLucideIcon(LucideSearchIcon);\nexport const DeleteIcon = createLucideIcon(LucideTrashIcon);\nexport const UploadIcon = createLucideIcon(LucideUploadIcon);\nexport const VideoFileIcon = createLucideIcon(VideoIcon);\n\nexport function GoogleBrandIcon({ size = 22, title, ...props }: IconProps) {\n return (\n <svg\n aria-hidden={title ? undefined : true}\n fill=\"none\"\n height={size}\n viewBox=\"0 0 24 24\"\n width={size}\n {...props}\n >\n {title ? <title>{title}</title> : null}\n <path\n d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 0 1-2.2 3.32v2.77h3.57c2.08-1.92 3.27-4.74 3.27-8.1Z\"\n fill=\"#4285F4\"\n />\n <path\n d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84A11 11 0 0 0 12 23Z\"\n fill=\"#34A853\"\n />\n <path\n d=\"M5.84 14.1A6.6 6.6 0 0 1 5.5 12c0-.73.12-1.43.34-2.1V7.08H2.18A11 11 0 0 0 1 12c0 1.78.43 3.45 1.18 4.93l3.66-2.83Z\"\n fill=\"#FBBC05\"\n />\n <path\n d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15A10.6 10.6 0 0 0 12 1a11 11 0 0 0-9.82 6.08l3.66 2.83A6.58 6.58 0 0 1 12 5.38Z\"\n fill=\"#EA4335\"\n />\n </svg>\n );\n}\n\nexport function GitHubBrandIcon({ size = 22, title, ...props }: IconProps) {\n return (\n <svg\n aria-hidden={title ? undefined : true}\n fill=\"currentColor\"\n height={size}\n viewBox=\"0 0 24 24\"\n width={size}\n {...props}\n >\n {title ? <title>{title}</title> : null}\n <path d=\"M12 0C5.37 0 0 5.37 0 12c0 5.3 3.44 9.8 8.21 11.39.6.11.79-.26.79-.58v-2.23c-3.34.73-4.03-1.42-4.03-1.42-.55-1.39-1.33-1.76-1.33-1.76-1.09-.74.08-.73.08-.73 1.2.08 1.84 1.24 1.84 1.24 1.07 1.83 2.81 1.3 3.49 1 .11-.78.42-1.3.76-1.6-2.66-.31-5.47-1.34-5.47-5.94 0-1.31.47-2.38 1.24-3.22-.12-.3-.54-1.52.12-3.18 0 0 1.01-.32 3.3 1.23A11.5 11.5 0 0 1 12 5.8c1.02.01 2.05.14 3.01.4 2.29-1.55 3.3-1.23 3.3-1.23.65 1.65.24 2.87.12 3.18.77.84 1.23 1.91 1.23 3.22 0 4.61-2.81 5.62-5.48 5.92.43.37.82 1.1.82 2.22v3.3c0 .32.19.69.8.58A12.01 12.01 0 0 0 24 12c0-6.63-5.37-12-12-12Z\" />\n </svg>\n );\n}\n"],"mappings":"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","names":[]}
|