wand-decks-kit 0.8.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/PROMPT.md +461 -0
- package/README.md +137 -0
- package/START-HERE.md +98 -0
- package/assets/README.md +40 -0
- package/assets/_icon-contact-sheet.png +0 -0
- package/assets/bg-cover-dark.png +0 -0
- package/assets/bg-overlay-dark.png +0 -0
- package/assets/bg-statement-dark.png +0 -0
- package/assets/glyphs/README.md +29 -0
- package/assets/glyphs/activity.svg +15 -0
- package/assets/glyphs/atom.svg +17 -0
- package/assets/glyphs/badge-check.svg +16 -0
- package/assets/glyphs/bell.svg +16 -0
- package/assets/glyphs/blocks.svg +16 -0
- package/assets/glyphs/book-open.svg +16 -0
- package/assets/glyphs/bot.svg +20 -0
- package/assets/glyphs/boxes.svg +26 -0
- package/assets/glyphs/brain.svg +23 -0
- package/assets/glyphs/briefcase.svg +16 -0
- package/assets/glyphs/building-2.svg +21 -0
- package/assets/glyphs/calendar.svg +18 -0
- package/assets/glyphs/chart-column.svg +18 -0
- package/assets/glyphs/chart-line.svg +16 -0
- package/assets/glyphs/chart-pie.svg +16 -0
- package/assets/glyphs/circle-check.svg +16 -0
- package/assets/glyphs/clipboard-check.svg +17 -0
- package/assets/glyphs/clock.svg +16 -0
- package/assets/glyphs/cloud.svg +15 -0
- package/assets/glyphs/coins.svg +18 -0
- package/assets/glyphs/compass.svg +16 -0
- package/assets/glyphs/cpu.svg +24 -0
- package/assets/glyphs/database.svg +17 -0
- package/assets/glyphs/eye.svg +16 -0
- package/assets/glyphs/file-check.svg +17 -0
- package/assets/glyphs/filter.svg +15 -0
- package/assets/glyphs/fingerprint.svg +23 -0
- package/assets/glyphs/flag.svg +16 -0
- package/assets/glyphs/gauge.svg +16 -0
- package/assets/glyphs/gavel.svg +19 -0
- package/assets/glyphs/git-branch.svg +18 -0
- package/assets/glyphs/globe.svg +17 -0
- package/assets/glyphs/graduation-cap.svg +17 -0
- package/assets/glyphs/handshake.svg +19 -0
- package/assets/glyphs/hexagon.svg +15 -0
- package/assets/glyphs/index.json +175 -0
- package/assets/glyphs/infinity.svg +15 -0
- package/assets/glyphs/key.svg +17 -0
- package/assets/glyphs/landmark.svg +20 -0
- package/assets/glyphs/layers.svg +17 -0
- package/assets/glyphs/lightbulb.svg +17 -0
- package/assets/glyphs/link.svg +16 -0
- package/assets/glyphs/list-checks.svg +19 -0
- package/assets/glyphs/lock.svg +16 -0
- package/assets/glyphs/map.svg +17 -0
- package/assets/glyphs/megaphone.svg +16 -0
- package/assets/glyphs/message-square.svg +15 -0
- package/assets/glyphs/milestone.svg +17 -0
- package/assets/glyphs/network.svg +19 -0
- package/assets/glyphs/orbit.svg +19 -0
- package/assets/glyphs/package.svg +18 -0
- package/assets/glyphs/plug.svg +18 -0
- package/assets/glyphs/puzzle.svg +15 -0
- package/assets/glyphs/radar.svg +22 -0
- package/assets/glyphs/receipt.svg +17 -0
- package/assets/glyphs/refresh-cw.svg +18 -0
- package/assets/glyphs/rocket.svg +18 -0
- package/assets/glyphs/route.svg +17 -0
- package/assets/glyphs/scale.svg +19 -0
- package/assets/glyphs/search.svg +16 -0
- package/assets/glyphs/server.svg +18 -0
- package/assets/glyphs/settings.svg +16 -0
- package/assets/glyphs/share-2.svg +19 -0
- package/assets/glyphs/shield-check.svg +16 -0
- package/assets/glyphs/shuffle.svg +19 -0
- package/assets/glyphs/sparkles.svg +19 -0
- package/assets/glyphs/square-stack.svg +17 -0
- package/assets/glyphs/target.svg +17 -0
- package/assets/glyphs/trending-up.svg +16 -0
- package/assets/glyphs/triangle-alert.svg +17 -0
- package/assets/glyphs/trophy.svg +20 -0
- package/assets/glyphs/users.svg +18 -0
- package/assets/glyphs/wallet.svg +16 -0
- package/assets/glyphs/wand-sparkles.svg +22 -0
- package/assets/glyphs/workflow.svg +17 -0
- package/assets/glyphs/zap.svg +15 -0
- package/assets/icons/icon-11.png +0 -0
- package/assets/icons/icon-12.png +0 -0
- package/assets/icons/icon-13.png +0 -0
- package/assets/icons/icon-14.png +0 -0
- package/assets/icons/icon-15.png +0 -0
- package/assets/icons/icon-16.png +0 -0
- package/assets/icons/icon-17.png +0 -0
- package/assets/icons/icon-18.png +0 -0
- package/assets/icons/icon-20.png +0 -0
- package/assets/icons/icon-23.png +0 -0
- package/assets/icons/icon-24.png +0 -0
- package/assets/icons/icon-25.png +0 -0
- package/assets/icons/icon-27.png +0 -0
- package/assets/icons/icon-28.png +0 -0
- package/assets/icons/icon-30.png +0 -0
- package/assets/icons/icon-31.png +0 -0
- package/assets/icons/icon-32.png +0 -0
- package/assets/icons/icon-33.png +0 -0
- package/assets/icons/icon-34.png +0 -0
- package/assets/icons/icon-35.png +0 -0
- package/assets/icons/icon-36.png +0 -0
- package/assets/icons/icon-37.png +0 -0
- package/assets/icons/icon-39.png +0 -0
- package/assets/icons/icon-40.png +0 -0
- package/assets/icons/icon-41.png +0 -0
- package/assets/icons/icon-43.png +0 -0
- package/assets/icons/icon-44.png +0 -0
- package/assets/icons/icon-45.png +0 -0
- package/assets/icons/icon-46.png +0 -0
- package/assets/icons/icon-48.png +0 -0
- package/assets/icons/icon-49.png +0 -0
- package/assets/icons/icon-50.png +0 -0
- package/assets/icons/icon-51.png +0 -0
- package/assets/icons/icon-52.png +0 -0
- package/assets/icons/icon-53.png +0 -0
- package/assets/icons/icon-9.png +0 -0
- package/assets/mark-dark.png +0 -0
- package/assets/mark-white.png +0 -0
- package/assets/orb-cover.png +0 -0
- package/assets/wordmark-dark.png +0 -0
- package/assets/wordmark-white.png +0 -0
- package/build.js +192 -0
- package/build_example.js +91 -0
- package/build_infinite.js +283 -0
- package/docs/LAYOUTS.md +86 -0
- package/docs/PIPELINE.md +116 -0
- package/docs/SPEC.md +89 -0
- package/embed_fonts.py +193 -0
- package/examples/template.json +164 -0
- package/fonts/Geist-Bold.ttf +0 -0
- package/fonts/Geist-BoldItalic.ttf +0 -0
- package/fonts/Geist-ExtraBold.ttf +0 -0
- package/fonts/Geist-ExtraBoldItalic.ttf +0 -0
- package/fonts/Geist-Italic.ttf +0 -0
- package/fonts/Geist-Light.ttf +0 -0
- package/fonts/Geist-LightItalic.ttf +0 -0
- package/fonts/Geist-Medium.ttf +0 -0
- package/fonts/Geist-MediumItalic.ttf +0 -0
- package/fonts/Geist-Regular.ttf +0 -0
- package/fonts/Geist-SemiBold.ttf +0 -0
- package/fonts/Geist-SemiBoldItalic.ttf +0 -0
- package/lib/README.md +23 -0
- package/lib/brand.js +51 -0
- package/lib/glyphs.js +87 -0
- package/lib/layouts_client.js +212 -0
- package/lib/layouts_consult.js +301 -0
- package/lib/layouts_dense.js +361 -0
- package/lib/measure.js +109 -0
- package/lib/pdf.js +517 -0
- package/lib/plan.js +305 -0
- package/lib/render_pdf.js +203 -0
- package/lib/schema.js +399 -0
- package/lib/shared.js +15 -0
- package/lib/trace.js +88 -0
- package/lib/ttf.py +167 -0
- package/lib/wandxml.py +37 -0
- package/package.json +17 -0
- package/preview/preview.css +112 -0
- package/preview/preview.html +24 -0
- package/preview/preview.js +169 -0
- package/qa_coverage.py +120 -0
- package/requirements.txt +9 -0
- package/tools/extract.py +199 -0
- package/wand.js +397 -0
- package/wand_kit.js +1016 -0
package/START-HERE.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Read this first
|
|
2
|
+
|
|
3
|
+
You have this folder and, probably, a source `.pptx`. This is the Wand deck
|
|
4
|
+
engine: it rebuilds a deck onto the Wand design system, or authors one from a
|
|
5
|
+
brief.
|
|
6
|
+
|
|
7
|
+
`PROMPT.md` is the design system and the source of truth on every design
|
|
8
|
+
question. This file is only the operating instructions.
|
|
9
|
+
|
|
10
|
+
## If you were handed this zip and a deck
|
|
11
|
+
|
|
12
|
+
Upload both to a fresh chat and paste this:
|
|
13
|
+
|
|
14
|
+
> Unzip this and read START-HERE.md, then rebuild the attached deck.
|
|
15
|
+
|
|
16
|
+
Nothing to install. Nothing to configure. That one line is the whole interface.
|
|
17
|
+
|
|
18
|
+
## Setup
|
|
19
|
+
|
|
20
|
+
There isn't any. Dependencies ship inside the zip and the Python side runs on
|
|
21
|
+
the standard library, so there is no `npm install` and no `pip install` — which
|
|
22
|
+
matters, because this often runs in a container with no network.
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node wand.js doctor # confirms it before you start
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
`doctor` is not decoration. It tells you whether Python is present (needed to
|
|
29
|
+
read the source deck and to embed fonts), whether the dependencies and the brand
|
|
30
|
+
payload resolved, and whether LibreOffice exists.
|
|
31
|
+
|
|
32
|
+
## Rebuilding a deck
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
node wand.js rebuild source.pptx # phases 0-3
|
|
36
|
+
# ... you write work/deck.json ...
|
|
37
|
+
node wand.js ship work/deck.json # phases 4-6, every gate
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`rebuild` normalises the source onto the 10" grid, dumps every verbatim string,
|
|
41
|
+
and writes `work/PLAN.md` — a worksheet with, per slide, the source's shape, a
|
|
42
|
+
shortlist of layouts with the reason for each, the verbatim text, and a stub
|
|
43
|
+
carrying that layout's required fields.
|
|
44
|
+
|
|
45
|
+
Then **you** do the part no script does: choose a layout per slide, and
|
|
46
|
+
transcribe the text into `work/deck.json`. `node wand.js layouts <name>` prints
|
|
47
|
+
any layout's fields. `node wand.js validate work/deck.json` checks them before
|
|
48
|
+
you build.
|
|
49
|
+
|
|
50
|
+
`ship` validates the spec, measures every text box in real Geist, builds,
|
|
51
|
+
embeds the fonts, runs coverage against the verbatim dump, inspects the file,
|
|
52
|
+
and writes the browser preview. It prints a gate table at the end.
|
|
53
|
+
|
|
54
|
+
## Authoring without a source
|
|
55
|
+
|
|
56
|
+
Skip `rebuild`. Write the spec against `node wand.js layouts`, then `ship` it.
|
|
57
|
+
Coverage will be skipped — there is no source to cover — and it will say so.
|
|
58
|
+
|
|
59
|
+
## Four rules that decide whether the output is usable
|
|
60
|
+
|
|
61
|
+
1. **Faithful means verbatim.** No consolidating slides, no paraphrasing to
|
|
62
|
+
tighten, no restructuring. Reflowing text to fit is fine; rewording is not.
|
|
63
|
+
Paraphrase passes the schema check and passes the eye. Only coverage catches
|
|
64
|
+
it, and only if you ran it.
|
|
65
|
+
2. **A spec has no coordinates, no colours and no font sizes.** If a slide needs
|
|
66
|
+
geometry the layouts don't have, add a layout. Don't leak positioning into
|
|
67
|
+
content.
|
|
68
|
+
3. **Vary the layouts.** Three `sixUpIcon` slides in a row is a failure even if
|
|
69
|
+
each one is correct. Across 15 slides aim for at least 8 distinct layouts,
|
|
70
|
+
alternating dark and light. `validate` warns when you don't.
|
|
71
|
+
4. **Look at every slide.** Open `preview/preview.html` after `ship`. It renders
|
|
72
|
+
the same recorded geometry the `.pptx` gets, in real Geist, so it cannot
|
|
73
|
+
drift from the deck. It is the only gate that catches a slide that is
|
|
74
|
+
correct and still ugly.
|
|
75
|
+
|
|
76
|
+
## What the gates are blind to
|
|
77
|
+
|
|
78
|
+
They fail on different things, which is why `ship` runs all of them.
|
|
79
|
+
|
|
80
|
+
| Gate | Catches | Blind to |
|
|
81
|
+
|---|---|---|
|
|
82
|
+
| `validate` | missing fields, wrong types, item counts past what a layout draws | anything about the words |
|
|
83
|
+
| fit | text overflowing its box **in real Geist** | content |
|
|
84
|
+
| bounds | a shape past the content band | text that fits but is wrong |
|
|
85
|
+
| coverage | a dropped or paraphrased source string | a string that is present but hidden under a band |
|
|
86
|
+
| file | broken parts, dangling relationships, unembedded or subsetted fonts | everything visual |
|
|
87
|
+
| preview | geometry, overlap, contrast, orphaned art | nothing else does this |
|
|
88
|
+
|
|
89
|
+
If LibreOffice is installed you can also render a PDF, but don't trust it on
|
|
90
|
+
fit or weight: it substitutes DejaVu, which is wider than Geist, so it
|
|
91
|
+
over-reports overflow and loses every weight distinction. The fit check
|
|
92
|
+
measures the real face.
|
|
93
|
+
|
|
94
|
+
## Deliver
|
|
95
|
+
|
|
96
|
+
The `.pptx` first, then a review note: every split or merge, every fallback
|
|
97
|
+
mapping, anything tight after fitting, and **everything dropped from the
|
|
98
|
+
verbatim dump**. A rebuild that drops a string without saying so is not done.
|
package/assets/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Wand brand asset pack
|
|
2
|
+
|
|
3
|
+
Extracted from `Infinite_Labor__by_Rotem__July_2026.pptx` (`ppt/media/`) on 2026-09-01.
|
|
4
|
+
All assets are RGBA with correct transparency.
|
|
5
|
+
|
|
6
|
+
Shared by every power prompt — resolve this directory through `brand.js`, never
|
|
7
|
+
copy it into a kit. `tools/package.mjs` copies it into a distributable zip.
|
|
8
|
+
Tokens and type: [../BRAND.md](../BRAND.md).
|
|
9
|
+
|
|
10
|
+
## Chrome
|
|
11
|
+
|
|
12
|
+
| File | Size | Placement |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| `bg-cover-dark.png` | 2048×1152 | Cover (`L1`) full bleed `0,0 → 10.00 × 5.625` |
|
|
15
|
+
| `bg-statement-dark.png` | 2048×1062 | Statement / divider (`L2`, `L3`) full bleed |
|
|
16
|
+
| `bg-overlay-dark.png` | 2048×1152 | **Translucent.** Layer over `<p:bg>` solid `0F0C26` on every dark content slide, as the first shape. This is the dark-theme gradient art. |
|
|
17
|
+
| `orb-cover.png` | 1787×1787 | Cover only, `x5.72 y0.38 w4.61 h4.61` |
|
|
18
|
+
| `wordmark-white.png` | 222×60 | Full `wand` wordmark — closing slide, centred |
|
|
19
|
+
| `mark-white.png` | 74×60 | `w✦` top-right on **dark** slides, `x9.52 y0.24 w0.23 h0.19` |
|
|
20
|
+
| `mark-dark.png` | 289×269 | `w✦` top-right on **light** slides, same box |
|
|
21
|
+
|
|
22
|
+
### The mark is a cropped wordmark
|
|
23
|
+
In the reference decks the `w✦` mark is *not* a separate file — it is `wordmark-white.png`
|
|
24
|
+
placed with `<a:srcRect r="66826"/>`, cropping to the left 33.174%. `mark-white.png` here is
|
|
25
|
+
that crop, pre-applied, so no `srcRect` is needed. **If you instead reuse the full wordmark,
|
|
26
|
+
you must carry the `srcRect`** — without it the wordmark squashes into the mark's box.
|
|
27
|
+
|
|
28
|
+
## Icons
|
|
29
|
+
|
|
30
|
+
36 glyphs in `icons/`, all 256×256 RGBA, white or `accent`-tinted. Place at `0.17"–0.21"`,
|
|
31
|
+
optically centred inside a tile (`accent` fill on dark, `surface` on light). See
|
|
32
|
+
`_icon-contact-sheet.png` to pick one. Filenames keep the source numbering
|
|
33
|
+
(`icon-14.png` was `image14.png`) so they can be traced back.
|
|
34
|
+
|
|
35
|
+
Two glyphs appear in both polarities (a white and an accent variant of the same shape) —
|
|
36
|
+
check the sheet rather than assuming a single version.
|
|
37
|
+
|
|
38
|
+
## Not included
|
|
39
|
+
|
|
40
|
+
`bg-light` — light slides have **no art**. Background is `<p:bg>` solid `F8F6FB`.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Glyphs — Lucide
|
|
2
|
+
|
|
3
|
+
75 icons from [Lucide](https://lucide.dev) v0.469.0, **ISC licensed** (permissive:
|
|
4
|
+
use, modify and redistribute, keep the notice). They replace the numbered PNGs
|
|
5
|
+
that were reverse-extracted from a reference deck.
|
|
6
|
+
|
|
7
|
+
Two problems they fix, both of which were standing known gaps:
|
|
8
|
+
|
|
9
|
+
**Polarity.** The old glyphs were baked white or baked accent, so a white one on
|
|
10
|
+
a light-theme `surface` tile was invisible. These are single-colour stroke SVGs
|
|
11
|
+
with `stroke="currentColor"`, and the kit substitutes the theme's ink colour at
|
|
12
|
+
build time. There is no variant to pick and nothing to get wrong.
|
|
13
|
+
|
|
14
|
+
**Meaning.** They have names. A spec says `icon: "shield-check"`, not
|
|
15
|
+
`icon: "icon-17.png"`. `index.json` groups them by what a deck actually needs —
|
|
16
|
+
governance, workforce, platform, process, outcome, signal.
|
|
17
|
+
|
|
18
|
+
## How they reach the deck
|
|
19
|
+
|
|
20
|
+
As vector. pptxgenjs writes the OOXML `asvg:svgBlip` extension with a raster
|
|
21
|
+
fallback, so PowerPoint 2016+ renders the SVG and anything older gets the PNG.
|
|
22
|
+
Nothing is rasterised at build time, so the kit still needs no native
|
|
23
|
+
dependency.
|
|
24
|
+
|
|
25
|
+
## The old set
|
|
26
|
+
|
|
27
|
+
`../icons/*.png` is still there and still works — every existing spec references
|
|
28
|
+
those filenames. New specs should use glyph names. The two sets can coexist
|
|
29
|
+
indefinitely; `iconTile` resolves a name first and falls back to a filename.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-activity"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2" />
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-atom"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<circle cx="12" cy="12" r="1" />
|
|
15
|
+
<path d="M20.2 20.2c2.04-2.03.02-7.36-4.5-11.9-4.54-4.52-9.87-6.54-11.9-4.5-2.04 2.03-.02 7.36 4.5 11.9 4.54 4.52 9.87 6.54 11.9 4.5Z" />
|
|
16
|
+
<path d="M15.7 15.7c4.52-4.54 6.54-9.87 4.5-11.9-2.03-2.04-7.36-.02-11.9 4.5-4.52 4.54-6.54 9.87-4.5 11.9 2.03 2.04 7.36.02 11.9-4.5Z" />
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-badge-check"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" />
|
|
15
|
+
<path d="m9 12 2 2 4-4" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-bell"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M10.268 21a2 2 0 0 0 3.464 0" />
|
|
15
|
+
<path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-blocks"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<rect width="7" height="7" x="14" y="3" rx="1" />
|
|
15
|
+
<path d="M10 21V8a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1H3" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-book-open"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M12 7v14" />
|
|
15
|
+
<path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-bot"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M12 8V4H8" />
|
|
15
|
+
<rect width="16" height="12" x="4" y="8" rx="2" />
|
|
16
|
+
<path d="M2 14h2" />
|
|
17
|
+
<path d="M20 14h2" />
|
|
18
|
+
<path d="M15 13v2" />
|
|
19
|
+
<path d="M9 13v2" />
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-boxes"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z" />
|
|
15
|
+
<path d="m7 16.5-4.74-2.85" />
|
|
16
|
+
<path d="m7 16.5 5-3" />
|
|
17
|
+
<path d="M7 16.5v5.17" />
|
|
18
|
+
<path d="M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z" />
|
|
19
|
+
<path d="m17 16.5-5-3" />
|
|
20
|
+
<path d="m17 16.5 4.74-2.85" />
|
|
21
|
+
<path d="M17 16.5v5.17" />
|
|
22
|
+
<path d="M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z" />
|
|
23
|
+
<path d="M12 8 7.26 5.15" />
|
|
24
|
+
<path d="m12 8 4.74-2.85" />
|
|
25
|
+
<path d="M12 13.5V8" />
|
|
26
|
+
</svg>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-brain"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z" />
|
|
15
|
+
<path d="M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z" />
|
|
16
|
+
<path d="M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4" />
|
|
17
|
+
<path d="M17.599 6.5a3 3 0 0 0 .399-1.375" />
|
|
18
|
+
<path d="M6.003 5.125A3 3 0 0 0 6.401 6.5" />
|
|
19
|
+
<path d="M3.477 10.896a4 4 0 0 1 .585-.396" />
|
|
20
|
+
<path d="M19.938 10.5a4 4 0 0 1 .585.396" />
|
|
21
|
+
<path d="M6 18a4 4 0 0 1-1.967-.516" />
|
|
22
|
+
<path d="M19.967 17.484A4 4 0 0 1 18 18" />
|
|
23
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-briefcase"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" />
|
|
15
|
+
<rect width="20" height="14" x="2" y="6" rx="2" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-building-2"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z" />
|
|
15
|
+
<path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2" />
|
|
16
|
+
<path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2" />
|
|
17
|
+
<path d="M10 6h4" />
|
|
18
|
+
<path d="M10 10h4" />
|
|
19
|
+
<path d="M10 14h4" />
|
|
20
|
+
<path d="M10 18h4" />
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-calendar"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M8 2v4" />
|
|
15
|
+
<path d="M16 2v4" />
|
|
16
|
+
<rect width="18" height="18" x="3" y="4" rx="2" />
|
|
17
|
+
<path d="M3 10h18" />
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-chart-column"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M3 3v16a2 2 0 0 0 2 2h16" />
|
|
15
|
+
<path d="M18 17V9" />
|
|
16
|
+
<path d="M13 17V5" />
|
|
17
|
+
<path d="M8 17v-3" />
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-chart-line"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M3 3v16a2 2 0 0 0 2 2h16" />
|
|
15
|
+
<path d="m19 9-5 5-4-4-3 3" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-chart-pie"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z" />
|
|
15
|
+
<path d="M21.21 15.89A10 10 0 1 1 8 2.83" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-circle-check"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<circle cx="12" cy="12" r="10" />
|
|
15
|
+
<path d="m9 12 2 2 4-4" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-clipboard-check"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<rect width="8" height="4" x="8" y="2" rx="1" ry="1" />
|
|
15
|
+
<path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2" />
|
|
16
|
+
<path d="m9 14 2 2 4-4" />
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-clock"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<circle cx="12" cy="12" r="10" />
|
|
15
|
+
<polyline points="12 6 12 12 16 14" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-cloud"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z" />
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-coins"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<circle cx="8" cy="8" r="6" />
|
|
15
|
+
<path d="M18.09 10.37A6 6 0 1 1 10.34 18" />
|
|
16
|
+
<path d="M7 6h1v4" />
|
|
17
|
+
<path d="m16.71 13.88.7.71-2.82 2.82" />
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-compass"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z" />
|
|
15
|
+
<circle cx="12" cy="12" r="10" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-cpu"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<rect width="16" height="16" x="4" y="4" rx="2" />
|
|
15
|
+
<rect width="6" height="6" x="9" y="9" rx="1" />
|
|
16
|
+
<path d="M15 2v2" />
|
|
17
|
+
<path d="M15 20v2" />
|
|
18
|
+
<path d="M2 15h2" />
|
|
19
|
+
<path d="M2 9h2" />
|
|
20
|
+
<path d="M20 15h2" />
|
|
21
|
+
<path d="M20 9h2" />
|
|
22
|
+
<path d="M9 2v2" />
|
|
23
|
+
<path d="M9 20v2" />
|
|
24
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-database"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<ellipse cx="12" cy="5" rx="9" ry="3" />
|
|
15
|
+
<path d="M3 5V19A9 3 0 0 0 21 19V5" />
|
|
16
|
+
<path d="M3 12A9 3 0 0 0 21 12" />
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-eye"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" />
|
|
15
|
+
<circle cx="12" cy="12" r="3" />
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<!-- @license lucide-static v0.469.0 - ISC -->
|
|
2
|
+
<svg
|
|
3
|
+
class="lucide lucide-file-check"
|
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
5
|
+
width="24"
|
|
6
|
+
height="24"
|
|
7
|
+
viewBox="0 0 24 24"
|
|
8
|
+
fill="none"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
stroke-width="2"
|
|
11
|
+
stroke-linecap="round"
|
|
12
|
+
stroke-linejoin="round"
|
|
13
|
+
>
|
|
14
|
+
<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" />
|
|
15
|
+
<path d="M14 2v4a2 2 0 0 0 2 2h4" />
|
|
16
|
+
<path d="m9 15 2 2 4-4" />
|
|
17
|
+
</svg>
|