@fungi.computer/sigils 0.0.0-stage → 0.0.1

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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jamstack Consulting LLC
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 CHANGED
@@ -1,3 +1,110 @@
1
- # Temporary Holding Version
1
+ # Sigils (`@fungi.computer/sigils`)
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Sigils provides decorative SVG marks for Fungi interfaces. Its gallery shows the
4
+ marks alongside reference artwork and visual studies, so consumers can check
5
+ which drawings are approved, live, or still concepts.
6
+
7
+ ## Install or set up
8
+
9
+ Install `@fungi.computer/sigils` from its package tarball. It requires React
10
+ 18.3 or React 19.2 as a peer dependency. From the repository root, build it
11
+ with:
12
+
13
+ ```sh
14
+ pnpm --filter @fungi.computer/sigils build
15
+ ```
16
+
17
+ ## Quick start
18
+
19
+ This illustrative example renders one decorative mark. Give its enclosing
20
+ control its own accessible name:
21
+
22
+ ```tsx
23
+ import { Sigil } from "@fungi.computer/sigils";
24
+
25
+ <button aria-label="List files">
26
+ <Sigil name="list" size={24} />
27
+ </button>;
28
+ ```
29
+
30
+ `Sigil` renders an aria-hidden SVG in a 64 by 64 view box. The caller controls
31
+ its size and provides the accessible text on the surrounding control.
32
+
33
+ ## Core concepts
34
+
35
+ The public component accepts a `SigilName` and an optional pixel `size`.
36
+ `isSigilName` checks whether a string is one of the package's available names;
37
+ it does not check whether using that mark is approved for a particular action or
38
+ permission.
39
+
40
+ The workbench separates the library, families, use cases, source references, and
41
+ curve review. Its Permission Use page is a visual study, not the shipped
42
+ permission screen. An SVG's presence in the package does not grant a capability
43
+ or imply that an interface uses it.
44
+
45
+ ## API reference
46
+
47
+ See the public [component and type exports](src/index.tsx). `Sigil` and
48
+ `isSigilName` are the runtime exports; `SigilName` is the type export.
49
+
50
+ ## Examples and checks
51
+
52
+ Start the local workbench from the repository root:
53
+
54
+ ```sh
55
+ pnpm --filter @fungi.computer/sigils workbench
56
+ ```
57
+
58
+ Open [http://127.0.0.1:61031/](http://127.0.0.1:61031/) to compare the grouped
59
+ marks, approved examples, concepts, and reference images. Check source-image
60
+ credits and status labels in the workbench before reusing artwork.
61
+
62
+ The package declares build, lint, and typecheck commands:
63
+
64
+ ```sh
65
+ pnpm --filter @fungi.computer/sigils build
66
+ pnpm --filter @fungi.computer/sigils lint
67
+ pnpm --filter @fungi.computer/sigils typecheck
68
+ ```
69
+
70
+ ## Limits and errors
71
+
72
+ Sigils supplies artwork only. The parent control owns its accessible name,
73
+ interaction, and permission meaning. The workbench includes candidate and
74
+ reference art that is not approved for production use. Check each mark's status
75
+ in the gallery instead of treating every available SVG as approved.
76
+
77
+ ## Contribute and license
78
+
79
+ The Reference pages pair source sheets with each mark and identify whether its
80
+ vector is live, approved, or still a concept. Keep those source images and
81
+ labels with the workbench. Sigils is a package and declares no package-level
82
+ license.
83
+
84
+ ## Theme colours
85
+
86
+ Sigils use Stipe's illustration roles through inline SVG styles, with literal
87
+ fallbacks when Stipe is absent. Themes may retint `--stipe-art-*` roles. Page
88
+ figures, emphasis rays, generation art and completion swooshes use
89
+ `--stipe-sketch-ink` on light themes and retain art cream on dark themes. Figure
90
+ eyes use `--color-base-100`, so they read as cut-outs. List and Prints paper and
91
+ cream details on coloured shapes retain `--stipe-art-cream` in both appearances.
92
+ There are no separate `--sigil-figure*` hooks.
93
+
94
+ The workbench loads Stipe through Tailwind. Its theme toggle switches latte and
95
+ mocha; the gallery follows it by default, with optional explicit canvas themes.
96
+ The Themes story compares latte, field-guide, consulting, mocha and
97
+ field-guide-night at 64, 28, 20 and 16 pixels, including the Tourtois disabled
98
+ filter. Palette defaults and theme ownership live in Stipe, not in this package.
99
+
100
+ ## Packed consumer readiness
101
+
102
+ Run `pnpm run build`, `pnpm run pack` and `pnpm run stranger` in this package.
103
+ The maintained stranger proof installs only package tarballs into a fresh npm
104
+ consumer, checks the exact shipped files, runs the public runtime fixture and
105
+ compiles every JavaScript entrypoint with strict NodeNext and no library-check
106
+ skip. This qualification does not publish npm releases or push a repository
107
+ split.
108
+
109
+ See [LICENSE](LICENSE) for the license and the package manifest for its public
110
+ repository destination.
@@ -0,0 +1,4 @@
1
+ /** Hand-traced from the approved trio. Coordinates retain the reference's curves and proportions. */
2
+ export declare function ComputerArtwork(): import("react/jsx-runtime").JSX.Element;
3
+ export declare function PrintsArtwork(): import("react/jsx-runtime").JSX.Element;
4
+ export declare function InkcapArtwork(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { art } from "./motifs.js";
3
+ /** Hand-traced from the approved trio. Coordinates retain the reference's curves and proportions. */
4
+ export function ComputerArtwork() {
5
+ return (_jsxs("g", { transform: "translate(2 8) scale(.114) translate(-125 -122)", children: [_jsx("path", { style: { fill: art.coral }, d: "M278 155 482 123C517 117 527 135 530 167L542 309Q543 329 561 341L631 404Q649 419 646 444 645 465 623 472L407 521Q374 531 345 519L156 436Q115 418 128 375L221 191Q238 163 278 155Z" }), _jsx("path", { style: { fill: art.ink }, d: "M317 183 461 161Q493 155 497 188L504 288Q508 320 478 326L318 356Q289 362 286 331L281 226Q278 194 317 183Z" }), _jsx("path", { style: { fill: art.cream }, d: "M304 386 553 340Q562 337 570 346L631 404Q649 419 646 444Q645 448 629 452L411 483Q382 492 367 474Z" }), _jsxs("g", { style: { fill: art.cream }, children: [_jsx("rect", { x: "319", y: "236", width: "26", height: "59", rx: "13" }), _jsx("rect", { x: "364", y: "229", width: "26", height: "59", rx: "13" })] }), _jsxs("g", { style: { fill: art.ink }, transform: "rotate(-11 470 411)", children: [_jsx("rect", { x: "369", y: "380", width: "61", height: "25", rx: "13" }), _jsx("rect", { x: "444", y: "380", width: "61", height: "25", rx: "13" }), _jsx("rect", { x: "518", y: "380", width: "57", height: "25", rx: "13" }), _jsx("rect", { x: "392", y: "421", width: "58", height: "25", rx: "13" }), _jsx("rect", { x: "462", y: "421", width: "65", height: "25", rx: "13" }), _jsx("rect", { x: "539", y: "421", width: "58", height: "25", rx: "13" })] })] }));
6
+ }
7
+ export function PrintsArtwork() {
8
+ return (_jsxs("g", { transform: "translate(3 10) scale(.114) translate(-760 -140)", children: [_jsx("path", { style: { fill: art.blue }, d: "M1226 153C1257 153 1273 195 1267 231Q1263 265 1237 268L1176 270V215C1176 178 1195 153 1226 153Z" }), _jsx("path", { style: { fill: art.blue }, d: "M824 376Q908 372 871 400C842 427 866 442 902 450L1113 480Q1188 479 1199 392C1207 447 1204 497 1163 511Q1134 521 1097 516C1055 510 991 507 957 507S869 511 826 512C781 513 758 483 760 441Q760 385 824 376Z" }), _jsx("path", { style: { fill: art.cream }, d: "M824 376 857 184Q864 133 911 141C1039 169 1124 151 1226 153Q1179 159 1184 241L1199 377C1202 434 1174 482 1117 480L902 450C864 445 849 429 871 400Q908 372 824 376Z" }), _jsxs("g", { style: { fill: art.coral }, children: [_jsx("path", { d: "M982 198C1008 190 1030 197 1028 220L1023 265Q1020 295 1000 279C981 261 951 223 963 210Q970 202 982 198Z" }), _jsx("path", { d: "M1063 220C1077 215 1100 237 1102 251Q1107 267 1084 282L1063 295Q1037 307 1040 278L1045 245Q1049 224 1063 220Z" }), _jsx("path", { d: "M911 252C925 240 939 254 957 269L978 291Q995 311 961 316C938 318 907 316 898 308Q884 296 911 252Z" }), _jsx("path", { d: "M1106 289Q1127 281 1134 304C1142 327 1146 352 1125 350Q1097 348 1073 335C1051 324 1072 311 1084 302Z" }), _jsx("path", { d: "M927 338C946 334 972 334 985 343Q1004 353 984 384C970 408 957 418 940 403C922 389 896 356 913 345Z" }), _jsx("path", { d: "M1010 375Q1025 363 1037 384C1049 407 1064 438 1044 442Q1025 448 1002 436C984 428 991 410 997 393Z" }), _jsx("path", { d: "M1068 357C1084 359 1110 376 1120 389Q1130 402 1107 419C1090 432 1082 418 1073 401C1062 383 1043 355 1068 357Z" }), _jsx("path", { d: "M1018 311C1037 312 1050 334 1034 343C1018 351 998 337 1005 320Q1009 311 1018 311Z" })] })] }));
9
+ }
10
+ export function InkcapArtwork() {
11
+ return (_jsxs("g", { transform: "translate(2 7) scale(.11) translate(-1380 -96)", children: [_jsx("path", { style: { fill: art.inkcap }, d: "M1384 276C1394 238 1445 200 1497 158C1547 119 1604 97 1647 97C1690 97 1720 109 1745 138C1772 170 1791 184 1833 194C1870 201 1919 220 1922 257C1923 307 1891 339 1853 336C1801 335 1767 299 1701 294C1666 291 1620 294 1642 303Q1670 307 1675 333C1681 367 1697 389 1717 413C1735 434 1738 443 1719 464C1700 485 1692 502 1686 520Q1682 541 1653 541L1626 541Q1598 541 1594 519C1590 495 1578 474 1563 458C1545 440 1544 429 1559 410C1585 377 1608 337 1572 326C1554 320 1529 333 1506 340C1461 356 1428 357 1402 340Q1371 319 1384 276Z" }), _jsx("path", { style: { fill: art.cream }, d: "M1634 362Q1641 346 1649 362C1660 390 1676 404 1705 424Q1721 435 1704 453C1685 475 1677 490 1671 513Q1670 526 1653 525L1626 525Q1611 525 1610 513C1606 492 1592 465 1575 449Q1562 437 1577 424C1604 404 1620 390 1634 362Z" }), _jsx("path", { style: { fill: art.inkcap }, d: "M1634 456A18 18 0 1 1 1648 456V492Q1648 500 1641 500T1634 492Z" }), _jsx("path", { style: { fill: art.inkcap }, d: "M1780 391Q1786 386 1793 396C1810 420 1828 444 1827 467C1826 508 1768 510 1753 480C1741 456 1762 413 1780 391Z" })] }));
12
+ }
@@ -0,0 +1,2 @@
1
+ export declare function GenerateTextArtwork(): import("react/jsx-runtime").JSX.Element;
2
+ export declare function GenerateMediaArtwork(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { art, figure } from "./motifs.js";
3
+ // Color-separated contours from the approved reference art, fitted to the
4
+ // same 64-unit optical area as the rest of the Sigil family. No raster ships.
5
+ export function GenerateTextArtwork() {
6
+ return (_jsxs("g", { children: [_jsx("path", { fillRule: "evenodd", style: { fill: figure }, d: "M25.3 17.69C14.8 19.34 10.66 20.18 9.05 20.99 5.51 22.78 4.2 27.21 6.71 28.9 7.47 29.42 8.48 29.4 10.25 28.84 12.41 28.15 12.56 27.57 11.02 25.85 10 24.71 10.53 23.62 11.79 24.27 13.9 25.36 15.02 28.98 15.63 36.66 16.18 43.48 17.33 47.43 19.69 50.49 22.76 54.48 27.69 55.73 30.31 53.19 33 50.57 31.24 46.04 28.44 48.38 26.29 50.17 26.16 47.08 28.3 45.14 29.61 43.95 30.78 43.58 38.92 41.75 39.45 41.63 39.41 41.52 38.39 40.01 36.87 37.78 36.04 35.22 34.72 28.69 33.37 22 32.04 19.3 29.5 18.07 28.69 17.68 26.59 17.49 25.3 17.69M24.11 26.51C18.61 27.67 18.16 27.82 17.98 28.55 17.64 29.91 18.54 30.44 20.51 30.05 25.4 29.08 30.11 28.03 30.49 27.83 31.65 27.23 31 25.33 29.66 25.4 29.5 25.4 27 25.91 24.11 26.51M29.2 31.42C28.64 31.54 26.23 32.07 23.85 32.58 20.01 33.41 19.48 33.57 19.15 33.96 18.67 34.5 18.66 35.05 19.12 35.63 19.61 36.26 19.86 36.23 26.05 34.88 29.05 34.23 31.53 33.7 31.57 33.7 31.82 33.7 32.34 32.88 32.34 32.5 32.34 31.25 31.37 30.92 29.2 31.42M29.79 37.19C28.81 37.41 26.45 37.94 24.53 38.37 22.62 38.8 20.84 39.23 20.58 39.33 19.61 39.71 19.35 40.62 19.98 41.41 20.48 42.05 21 41.99 27.59 40.5 33.85 39.09 34.21 38.91 33.45 37.44 33.02 36.61 32.51 36.58 29.79 37.19M45.41 41.95C44.89 42.09 41.61 42.89 38.12 43.73 30.94 45.45 29.81 45.84 31.05 46.15 33.2 46.69 34.11 50.18 32.77 52.76 32.23 53.79 32.23 54.03 32.76 54.16 33.34 54.31 45.35 51.3 46.72 50.67 50.19 49.06 51.76 45.01 49.79 42.76 48.8 41.64 47.46 41.39 45.41 41.95" }), _jsx("path", { style: { fill: art.grape }, d: "M48.21 10.15C47.92 10.41 47.5 11.27 46.96 12.74 45.52 16.61 45.24 16.99 43.01 18.15 39.18 20.15 39.05 20.99 42.28 22.73 45.37 24.39 45.68 24.79 47.12 28.95 48.3 32.32 49.28 32.2 50.65 28.52 52.23 24.25 52.26 24.22 55.2 22.56 57.53 21.24 57.79 21 57.79 20.16 57.79 19.49 57.55 19.31 55.01 18.06 52.16 16.66 52.2 16.72 50.31 11.56 49.7 9.89 49.03 9.44 48.21 10.15M32.59 13.92C31.78 14.73 32.28 15.89 33.58 16.22 35.07 16.6 36.19 17.1 37.17 17.84 38.42 18.77 39.23 18.86 39.79 18.15 39.99 17.9 40.15 17.53 40.15 17.32 40.15 15.29 33.99 12.52 32.59 13.92M42.48 34.38C40.96 35.96 40.65 36.88 41.39 37.57 42.2 38.33 43.36 37.74 44.55 35.95 45.2 34.97 45.22 34.35 44.62 33.88 43.89 33.31 43.41 33.42 42.48 34.38" }), _jsx("path", { style: { fill: art.yellow }, d: "M40.75 25.96C39.69 27.07 38.11 30.69 38.11 31.98 38.11 32.66 38.55 33.19 39.12 33.19 39.8 33.19 40.24 32.73 40.58 31.66 40.95 30.46 41.65 29.09 42.42 28.01 43.77 26.14 42.29 24.32 40.75 25.96M54.85 27.67C54.71 27.81 54.47 28.32 54.31 28.82 53.67 30.76 53.19 31.37 51.67 32.13 50.25 32.85 50.34 33.36 52.04 34.21 53.25 34.82 53.57 35.23 54.24 37.01 54.98 38.98 55.47 39.08 56.03 37.37 56.7 35.32 57.08 34.81 58.64 33.87 60.18 32.95 60.14 32.65 58.38 31.78 57.02 31.11 56.68 30.66 56.02 28.65 55.69 27.64 55.25 27.27 54.85 27.67" })] }));
7
+ }
8
+ export function GenerateMediaArtwork() {
9
+ return (_jsxs("g", { children: [_jsx("path", { fillRule: "evenodd", style: { fill: figure }, d: "M42.24 14.07C41.52 14.24 40.53 14.54 35.06 16.26 33.33 16.8 31.2 17.47 30.34 17.74 29.47 18.01 27.86 18.52 26.75 18.88 25.64 19.23 24.03 19.74 23.16 20.01 20.16 20.94 19.45 21.4 18.97 22.71 18.71 23.44 18.45 26.33 17.83 35.41 17.64 38.25 17.44 41.03 17.41 41.58 17.32 42.77 17.24 42.69 18.79 42.84L20.01 42.95 21.98 39.97C24.69 35.88 24.85 35.82 27.05 37.9 27.9 38.7 28.43 39.08 28.61 39.02 28.76 38.96 28.91 38.91 28.94 38.91 28.98 38.91 29.38 38.38 29.84 37.73 30.3 37.08 31.47 35.48 32.43 34.17 33.4 32.86 34.86 30.85 35.67 29.71 36.49 28.56 37.5 27.29 37.91 26.88 39.73 25.07 41.01 26.43 43.32 32.67 43.76 33.84 44.3 35.28 44.52 35.86 44.74 36.44 44.97 37.28 45.04 37.74 45.19 38.71 45.17 38.71 46.63 38.03 47.69 37.53 47.77 37.46 47.68 37.02 47.58 36.52 46.97 30.64 46.79 28.41 46.73 27.69 46.62 26.43 46.53 25.61 46.44 24.79 46.24 22.87 46.09 21.32 45.61 16.44 45.5 15.66 45.22 15.12 44.72 14.15 43.59 13.76 42.24 14.07M29.38 22.45C26.04 23.47 24.49 27.62 26.6 29.91 29.17 32.7 34.15 30.16 34.16 26.05 34.16 23.38 31.9 21.68 29.38 22.45M46.7 41.5C39.3 44.23 28.33 46.04 20.1 45.88L17.21 45.82 17.16 46.88C17.08 48.22 17.33 49.03 18.01 49.68 18.73 50.37 19.73 50.35 23.77 49.53 25.46 49.19 29.12 48.47 31.91 47.93 46.31 45.14 46.9 44.99 47.57 43.91 47.95 43.3 48.25 41.29 47.99 41.15 47.91 41.11 47.33 41.26 46.7 41.5" }), _jsx("path", { style: { fill: art.coral }, d: "M29.72 22.45C25.84 23.34 24.28 28.36 27.25 30.42 29.34 31.88 32.91 30.43 33.83 27.75 34.92 24.55 32.75 21.76 29.72 22.45" }), _jsx("path", { style: { fill: art.mint }, d: "M12.96 14.29C12.87 14.41 12.7 15.03 12.58 15.68 12.37 16.82 11.59 18.26 11.18 18.26 11.08 18.26 10.88 18.46 10.72 18.7 10.36 19.25 10.59 19.58 11.45 19.74 12.18 19.88 13.08 20.63 13.54 21.49 14.23 22.76 14.75 22.53 15.15 20.79 15.39 19.71 15.51 19.51 16.4 18.66 17.54 17.58 17.51 17.36 16.18 16.85 15.16 16.47 14.84 16.19 14.14 15.1 13.56 14.2 13.22 13.96 12.96 14.29M49.04 24.13C48.56 24.86 48.91 25.31 50.59 26.09 53.89 27.64 54.85 29.82 53.45 32.6 52.01 35.43 46.84 38.54 40.51 40.39 39.73 40.62 38.88 40.89 38.62 40.99 37.24 41.52 30.85 42.64 27.54 42.93 20.72 43.52 13.63 42.49 10.57 40.46 5.81 37.3 7.51 32.32 14.74 28.24 15.84 27.61 16.17 27.1 15.9 26.4 15.66 25.78 15.35 25.84 13.19 26.94 6 30.61 2.97 35.32 4.95 39.74 7.86 46.21 22.78 47.8 40.05 43.46 51.97 40.47 58.57 36.38 59.47 31.43 60.09 27.97 57.74 25.34 52.93 24.12 50.6 23.53 49.43 23.54 49.04 24.13" }), _jsx("path", { style: { fill: art.grape }, d: "M34.82 8.91C33.48 10.04 34.21 12.14 35.94 12.14 37.29 12.14 38.18 10.99 37.77 9.77 37.36 8.53 35.81 8.08 34.82 8.91M53.15 43.16C53 43.28 52.74 43.86 52.57 44.45 52.18 45.78 51.76 46.32 50.64 46.93 49.52 47.53 49.45 47.89 50.33 48.34 51.34 48.85 52.24 49.95 52.56 51.04 53.13 53.01 53.6 53 54.21 50.99 54.61 49.69 55.13 48.93 55.91 48.54 57.17 47.91 57.23 47.51 56.15 46.96 55.23 46.49 54.67 45.76 54.23 44.44 53.8 43.15 53.54 42.84 53.15 43.16M24.18 53.18C22.45 53.9 22.87 56.59 24.71 56.59 26.79 56.59 27.2 53.67 25.2 53.09 24.89 53.01 24.51 53.04 24.18 53.18" }), _jsx("path", { style: { fill: art.yellow }, d: "M51.76 11.04C51.21 12.77 50.56 13.61 49.24 14.34 48.6 14.69 48.72 15.07 49.59 15.48 50.54 15.93 51.11 16.69 51.62 18.22 52.06 19.57 52.26 19.54 52.79 18.08 53.29 16.69 53.87 15.91 54.86 15.31 55.76 14.77 55.77 14.48 54.92 14.02 53.91 13.46 53.5 12.99 52.89 11.66 52.23 10.21 52.06 10.12 51.76 11.04M11.06 48.22C10.99 48.35 10.71 48.88 10.46 49.41 9.95 50.48 9.45 50.99 8.59 51.33 7.89 51.61 7.85 52.1 8.52 52.37 9.51 52.79 10.3 53.85 10.89 55.58 11.09 56.18 11.48 55.88 11.87 54.84 12.24 53.87 13.33 52.56 13.79 52.56 14 52.56 14.5 52.06 14.5 51.85 14.5 51.77 14.19 51.54 13.81 51.34 12.98 50.92 12.36 50.14 11.93 48.99 11.6 48.09 11.31 47.83 11.06 48.22" })] }));
10
+ }
@@ -0,0 +1,2 @@
1
+ export { isSigilName, Sigil } from "./sigil.js";
2
+ export type { SigilName } from "./sigil.js";
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export { isSigilName, Sigil } from "./sigil.js";
@@ -0,0 +1,36 @@
1
+ export declare const art: {
2
+ readonly coral: "var(--stipe-art-coral, #ff6558)";
3
+ readonly blue: "var(--stipe-art-blue, #43a6f2)";
4
+ readonly mint: "var(--stipe-art-mint, #63cfaa)";
5
+ readonly grape: "var(--stipe-art-grape, #a66cc1)";
6
+ readonly yellow: "var(--stipe-art-yellow, #ffd05d)";
7
+ readonly cream: "var(--stipe-art-cream, #fff4de)";
8
+ readonly ink: "var(--stipe-art-ink, #242c28)";
9
+ readonly graphite: "var(--stipe-art-graphite, #49423f)";
10
+ readonly inkcap: "var(--stipe-art-inkcap, #80499d)";
11
+ };
12
+ export declare const figure = "light-dark(var(--stipe-sketch-ink, #242c28), var(--stipe-art-cream, #fff4de))";
13
+ /** A single flared, rounded emphasis mark. Its narrow end points at the subject. */
14
+ export declare function TaperedRay({ transform, fill, }: {
15
+ transform: string;
16
+ fill?: string;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ export declare function ActionRays(): import("react/jsx-runtime").JSX.Element;
19
+ /** 100 units wide. Outer curves follow the picked Read reference. */
20
+ export declare function OpenBook(): import("react/jsx-runtime").JSX.Element;
21
+ /** 100 units wide, centered on (0, 0). The same artwork serves every Read mark. */
22
+ export declare function WatchfulEye(): import("react/jsx-runtime").JSX.Element;
23
+ export declare function GroveBubbles(): import("react/jsx-runtime").JSX.Element;
24
+ /** 100 × 86 units. The rounded tail is part of the approved bauble silhouette. */
25
+ export declare function SpeechBubble({ fill }: {
26
+ fill: string;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ /** Paired face marks, centered on (0, 0), 30 × 22 units. */
29
+ export declare function FaceEyes({ onFigure }: {
30
+ onFigure?: boolean;
31
+ }): import("react/jsx-runtime").JSX.Element;
32
+ /** The open mouth from the approved speaking bauble, 100 units wide. */
33
+ export declare function SpeakingMouth(): import("react/jsx-runtime").JSX.Element;
34
+ /** Pencil and swash are separate parts so their join is visible and tunable. */
35
+ export declare function Pencil(): import("react/jsx-runtime").JSX.Element;
36
+ export declare function InkTrail(): import("react/jsx-runtime").JSX.Element;
package/dist/motifs.js ADDED
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // These are visual motifs, not a public scene or layout API. An icon owns the
3
+ // placement of its motifs; each motif owns the curves that give it its identity.
4
+ export const art = {
5
+ coral: "var(--stipe-art-coral, #ff6558)",
6
+ blue: "var(--stipe-art-blue, #43a6f2)",
7
+ mint: "var(--stipe-art-mint, #63cfaa)",
8
+ grape: "var(--stipe-art-grape, #a66cc1)",
9
+ yellow: "var(--stipe-art-yellow, #ffd05d)",
10
+ cream: "var(--stipe-art-cream, #fff4de)",
11
+ ink: "var(--stipe-art-ink, #242c28)",
12
+ graphite: "var(--stipe-art-graphite, #49423f)",
13
+ inkcap: "var(--stipe-art-inkcap, #80499d)",
14
+ };
15
+ // Page figures use sketch ink on light paper; dark themes retain their cream.
16
+ export const figure = "light-dark(var(--stipe-sketch-ink, #242c28), var(--stipe-art-cream, #fff4de))";
17
+ const figureFace = "var(--color-base-100, light-dark(#fff4de, #242c28))";
18
+ /** A single flared, rounded emphasis mark. Its narrow end points at the subject. */
19
+ export function TaperedRay({ transform, fill = figure, }) {
20
+ return (_jsx("path", { transform: transform, style: { fill: fill }, d: "M-1.264-9.479C-2.098-8.643-1.802-1.057-.907-.332.47.782 1.6-.446 1.618-3.075 1.623-3.888 1.691-5.398 1.77-6.429 1.979-9.202 1.596-10 .055-10-.588-10-.843-9.9-1.264-9.479Z" }));
21
+ }
22
+ export function ActionRays() {
23
+ return (_jsxs("g", { children: [_jsx(TaperedRay, { transform: "translate(25.4 19.8) rotate(-39) scale(.95 .76)" }), _jsx(TaperedRay, { transform: "translate(32.1 17.8) scale(.96 .95)" }), _jsx(TaperedRay, { transform: "translate(38.8 19.9) rotate(39) scale(.95 .77)" })] }));
24
+ }
25
+ /** 100 units wide. Outer curves follow the picked Read reference. */
26
+ export function OpenBook() {
27
+ return (_jsxs("g", { style: { fill: art.blue }, children: [_jsx("path", { d: "M10.574 .604C9.804 1.375 9.867-.885 9.961 22.81 10.054 47.202 9.722 45.378 14.193 45.94 25.813 47.399 38.465 52.211 44.662 57.532 47.653 60.097 48.082 59.411 47.967 52.242L47.734 19.335C47.734 17.523 47.13 16.616 45.964 15.076 40.604 8.018 30.127 2.767 16.804 .462 13.045-.184 11.326-.148 10.574 .604Z" }), _jsx("path", { d: "M81.571 .746C71.063 2.665 62.221 6.713 56.562 12.199 54.242 14.45 52 17.356 52.115 19.335L52.033 52.628C51.927 59.934 51.979 59.994 55.74 57.091 62.423 51.931 71.272 48.541 84.103 46.221 90.625 45.039 89.967 47.631 90.145 22.432 90.326-3.079 91.148-1 81.571 .746Z" }), _jsx("path", { d: "M1.906 12.692C.1 13.42 .151 12.804 .151 33.825 .151 54.097 .163 54.302 1.447 55.498 2.71 56.674 3.384 56.81 7.937 56.816 20.943 56.834 30.647 58.293 38.776 61.45 45.964 64.242 46.435 61.924 39.526 57.773 32.296 53.429 26.656 51.544 14.943 49.553 5.958 48.027 6.535 49.414 6.408 29.003 6.32 14.74 6.263 13.103 5.816 12.764 5.254 12.335 2.9 12.293 1.906 12.692Z" }), _jsx("path", { d: "M94.326 12.858C93.656 13.326 93.656 13.326 93.653 28.492 93.653 48.882 93.997 48.063 84.743 49.556 73.574 51.36 64.45 54.695 57.801 59.405 54.082 62.039 55.384 63.864 59.722 62.1 68.897 58.372 76.363 57.115 90.03 56.994 100.405 56.903 99.489 58.976 99.773 34.976 100.018 14.142 100.006 13.958 98.399 12.979 97.236 12.269 95.251 12.208 94.326 12.858Z" })] }));
28
+ }
29
+ /** 100 units wide, centered on (0, 0). The same artwork serves every Read mark. */
30
+ export function WatchfulEye() {
31
+ return (_jsxs("g", { children: [_jsx("path", { style: { fill: art.cream }, d: "M-8.572-25.123C-21.412-23.39-33.235-17.39-44.235-7.027-51.235-.433-51.251 .358-44.524 6.749-20.77 29.316 10.23 31.893 36.364 13.487 41.043 10.187 48.193 3.551 49.235 1.524 50.358-.642 49.471-2.102 43.738-7.497 29.257-21.128 9.968-27.631-8.572-25.123Z" }), _jsx("path", { style: { fill: art.ink }, d: "M-6.225-16.807C-17.727-13.267-21.176 4.433-12.08 13.257-1.118 23.898 16.829 16.102 17.032 .604 17.209-12.412 6.219-20.642-6.225-16.807Z" })] }));
32
+ }
33
+ export function GroveBubbles() {
34
+ return (_jsxs("g", { children: [_jsx("path", { style: { fill: art.mint }, d: "M540 342C520 340 497 355 477 374C450 399 440 421 456 444C465 458 480 462 492 464C503 466 500 477 494 486C487 500 508 496 522 478L530 468C557 468 578 464 591 451C601 442 599 429 585 427C572 425 556 432 547 418C538 403 550 390 568 385C579 382 589 380 584 368C576 352 557 341 540 342Z" }), _jsx("path", { style: { fill: art.coral }, d: "M589 396C614 380 659 381 683 392C709 404 721 428 710 451C704 464 693 472 685 479C680 487 684 498 689 503C695 514 684 513 675 507C667 502 662 497 657 491C637 496 610 495 594 486C584 480 583 469 595 464C607 460 622 454 622 441C622 428 612 423 597 420C580 417 578 407 589 396Z" })] }));
35
+ }
36
+ /** 100 × 86 units. The rounded tail is part of the approved bauble silhouette. */
37
+ export function SpeechBubble({ fill }) {
38
+ return (_jsx("path", { style: { fill: fill }, d: "M44.648 .288C26.645 1.615 13.263 8.266 5.942 19.529-4.299 35.277-.917 57.684 13.224 67.784 16.958 70.452 16.936 71.742 13.064 77.665 11.28 80.391 10.895 81.565 11.341 82.914 13.163 88.435 25.022 86.396 36.307 78.62L38.681 76.986 41.294 77.335C45.371 77.878 59.645 77.789 64.125 77.191 89.213 73.837 100.562 61.427 99.92 38.044 99.18 11.1 79.587-2.285 44.648 .288Z" }));
39
+ }
40
+ /** Paired face marks, centered on (0, 0), 30 × 22 units. */
41
+ export function FaceEyes({ onFigure = false }) {
42
+ return (_jsxs("g", { style: { fill: onFigure ? figureFace : art.ink }, children: [_jsx("rect", { x: "-15", y: "-11", width: "10", height: "22", rx: "5" }), _jsx("rect", { x: "5", y: "-11", width: "10", height: "22", rx: "5" })] }));
43
+ }
44
+ /** The open mouth from the approved speaking bauble, 100 units wide. */
45
+ export function SpeakingMouth() {
46
+ return (_jsx("path", { style: { fill: art.cream }, d: "M18.125 .621C.039 1.574-2.575 4.791 2.264 20.133 17.454 68.284 77.345 69.396 96.119 21.875 100.749 10.154 100.318 4.348 94.605 1.513 91.981 .21 37.878-.421 18.125 .621Z" }));
47
+ }
48
+ /** Pencil and swash are separate parts so their join is visible and tunable. */
49
+ export function Pencil() {
50
+ return (_jsxs("g", { children: [_jsx("path", { style: { fill: art.yellow }, d: "M31.42 5.279C29.108 5.983 28.068 6.993 25.817 10.732 24.033 13.687 24.027 13.762 25.58 14.265 30.375 15.821 36.711 20.506 39.938 24.885 42.077 27.788 41.835 27.806 45.281 24.463 48.633 21.213 49.164 20.185 48.982 17.325 48.812 14.643 48.174 13.872 42.68 9.741 36.737 5.273 34.439 4.361 31.42 5.279Z" }), _jsx("path", { style: { fill: art.yellow }, d: "M22.538 16.207C22.093 16.652 19.732 20.231 13.309 30.196 10.737 34.188 10.723 33.911 13.589 35.351 16.461 36.798 19.778 39.28 21.825 41.523L22.6 42.37Q23.34 43.186 24.05 42.538L24.711 41.933C31.278 35.937 38.928 28.484 38.928 28.083 38.928 24.656 24.521 14.219 22.538 16.207Z" }), _jsx("path", { style: { fill: art.cream }, d: "M8.89 38.053C8.203 39.566 6.598 44.473 6.598 45.056 6.598 45.137 6.887 45.125 7.236 45.036 9.655 44.404 13.526 47.475 13.526 50.027 13.526 51.132 13.361 51.164 16.187 49.49 21.421 46.387 21.966 45.665 20.575 43.659 19.002 41.387 14.975 38.238 11.909 36.881 9.799 35.949 9.854 35.926 8.89 38.053Z" }), _jsx("path", { style: { fill: art.graphite }, d: "M6.598 45.056C5.732 46.866 5.155 49.464 6.309 50.907 8.041 53.505 10.928 52.639 13.526 50.907 13.526 48.021 9.978 44.404 7.236 45.036Z" })] }));
51
+ }
52
+ export function InkTrail() {
53
+ return (_jsx("path", { style: { fill: art.coral }, d: "M40.804 40.625C38.238 41.462 37.291 41.953 31.169 45.625 15.743 54.871 8.047 56.158 5.879 49.856 5.501 48.754 5.501 48.754 4.843 50.913 1.673 61.302 12.377 61.671 30.386 51.796 39.649 46.719 41.142 46.647 40.81 51.291 40.565 54.775 41.168 56.135 43.486 57.31 49.556 60.387 62.035 54.816 59.605 50.116 58.502 47.983 56.1 47.882 52.163 49.799 47.082 52.273 45.983 51.652 47.998 47.449 50.89 41.416 47.686 38.376 40.804 40.625Z" }));
54
+ }
@@ -0,0 +1,36 @@
1
+ declare const symbols: {
2
+ bonsai: import("react/jsx-runtime").JSX.Element;
3
+ computer: import("react/jsx-runtime").JSX.Element;
4
+ prints: import("react/jsx-runtime").JSX.Element;
5
+ inkcap: import("react/jsx-runtime").JSX.Element;
6
+ vishnu: import("react/jsx-runtime").JSX.Element;
7
+ generateText: import("react/jsx-runtime").JSX.Element;
8
+ generateMedia: import("react/jsx-runtime").JSX.Element;
9
+ buyApps: import("react/jsx-runtime").JSX.Element;
10
+ browseBazaar: import("react/jsx-runtime").JSX.Element;
11
+ agent: import("react/jsx-runtime").JSX.Element;
12
+ list: import("react/jsx-runtime").JSX.Element;
13
+ chat: import("react/jsx-runtime").JSX.Element;
14
+ read: import("react/jsx-runtime").JSX.Element;
15
+ readConversations: import("react/jsx-runtime").JSX.Element;
16
+ listAgents: import("react/jsx-runtime").JSX.Element;
17
+ createAgents: import("react/jsx-runtime").JSX.Element;
18
+ sendPrompts: import("react/jsx-runtime").JSX.Element;
19
+ write: import("react/jsx-runtime").JSX.Element;
20
+ run: import("react/jsx-runtime").JSX.Element;
21
+ connected: import("react/jsx-runtime").JSX.Element;
22
+ working: import("react/jsx-runtime").JSX.Element;
23
+ complete: import("react/jsx-runtime").JSX.Element;
24
+ installApps: import("react/jsx-runtime").JSX.Element;
25
+ restricted: import("react/jsx-runtime").JSX.Element;
26
+ error: import("react/jsx-runtime").JSX.Element;
27
+ };
28
+ export type SigilName = keyof typeof symbols;
29
+ /** Check an App declaration's icon against the maintained Sigil vocabulary. */
30
+ export declare function isSigilName(name: string): name is SigilName;
31
+ /** Decorative identities; the enclosing control owns its accessible name. */
32
+ export declare function Sigil({ name, size }: {
33
+ name: SigilName;
34
+ size?: number;
35
+ }): import("react/jsx-runtime").JSX.Element;
36
+ export {};
package/dist/sigil.js ADDED
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { GenerateMediaArtwork, GenerateTextArtwork } from "./generation-art.js";
3
+ import { ComputerArtwork, PrintsArtwork, InkcapArtwork, } from "./approved-app-art.js";
4
+ import { ActionRays, FaceEyes, GroveBubbles, InkTrail, OpenBook, Pencil, SpeechBubble, SpeakingMouth, TaperedRay, WatchfulEye, art, figure, } from "./motifs.js";
5
+ // Illustration roles are independent of control-state colours.
6
+ const { coral, blue, mint, grape, yellow, cream, ink } = art;
7
+ const symbols = {
8
+ // Retained Bonsai favicon branching mark, scaled from its 32px viewBox.
9
+ bonsai: (_jsxs("g", { transform: "scale(2)", children: [_jsx("rect", { width: "32", height: "32", rx: "8", fill: "#242c28" }), _jsx("path", { d: "M9 23V9m0 4c0 4 14 2 14 9", fill: "none", stroke: "#63cfaa", strokeWidth: "3", strokeLinecap: "round" }), _jsx("circle", { cx: "9", cy: "9", r: "3", fill: "#43a6f2" }), _jsx("circle", { cx: "9", cy: "23", r: "3", fill: "#fff4de" }), _jsx("circle", { cx: "23", cy: "22", r: "3", fill: "#ff6558" })] })),
10
+ computer: _jsx(ComputerArtwork, {}),
11
+ prints: _jsx(PrintsArtwork, {}),
12
+ inkcap: _jsx(InkcapArtwork, {}),
13
+ vishnu: (_jsxs(_Fragment, { children: [_jsx("path", { style: { fill: coral }, d: "M6 37C6 21 17.5 9 32 9s26 12 26 28c0 2.2-1.8 4-4 4H10c-2.2 0-4-1.8-4-4Z" }), _jsx("circle", { style: { fill: cream }, cx: "19", cy: "25", r: "4" }), _jsx("circle", { style: { fill: cream }, cx: "33", cy: "19.5", r: "4.8" }), _jsx("circle", { style: { fill: cream }, cx: "46", cy: "28", r: "3.4" }), _jsx("rect", { style: { fill: blue }, x: "13", y: "39", width: "38", height: "18", rx: "9" }), _jsx("rect", { style: { fill: cream }, x: "18.5", y: "46.2", width: "10", height: "3.6", rx: "1.8" }), _jsx("rect", { style: { fill: cream }, x: "21.7", y: "43", width: "3.6", height: "10", rx: "1.8" }), _jsx("circle", { style: { fill: yellow }, cx: "39", cy: "50.5", r: "2.7" }), _jsx("circle", { style: { fill: cream }, cx: "45", cy: "45.5", r: "2.7" })] })),
14
+ generateText: _jsx(GenerateTextArtwork, {}),
15
+ generateMedia: _jsx(GenerateMediaArtwork, {}),
16
+ buyApps: (_jsxs("g", { transform: "rotate(-6 32 32)", children: [_jsx("circle", { fill: yellow, cx: "32", cy: "20", r: "12" }), _jsx("circle", { stroke: cream, strokeWidth: "4", cx: "32", cy: "20", r: "6" }), _jsx(TaperedRay, { fill: yellow, transform: "translate(15.5 12) rotate(-60) scale(1.1 .85)" }), _jsx(TaperedRay, { fill: yellow, transform: "translate(48.5 12) rotate(60) scale(1.1 .85)" }), _jsx("path", { fill: blue, d: "M10 35H54L50 53Q49 58 44 58H20Q15 58 14 53Z" }), _jsx("rect", { fill: coral, x: "5", y: "27", width: "54", height: "10", rx: "5" }), _jsxs("g", { fill: cream, children: [_jsx("rect", { x: "20", y: "41", width: "5", height: "11", rx: "2.5" }), _jsx("rect", { x: "29.5", y: "41", width: "5", height: "11", rx: "2.5" }), _jsx("rect", { x: "39", y: "41", width: "5", height: "11", rx: "2.5" })] })] })),
17
+ browseBazaar: (_jsxs("g", { transform: "rotate(-5 32 32)", children: [_jsx("rect", { fill: blue, x: "10", y: "14", width: "44", height: "38", rx: "6" }), _jsx("rect", { fill: blue, x: "5", y: "47", width: "54", height: "12", rx: "6" }), _jsx("rect", { fill: cream, x: "12", y: "50.5", width: "40", height: "4.5", rx: "2.25" }), _jsx("rect", { fill: coral, x: "2", y: "4", width: "60", height: "9", rx: "4.5" }), _jsx("path", { fill: coral, d: "M3 9H14.6V18A5.8 5.8 0 0 1 3 18Z" }), _jsx("path", { fill: cream, d: "M14.6 9H26.2V18A5.8 5.8 0 0 1 14.6 18Z" }), _jsx("path", { fill: coral, d: "M26.2 9H37.8V18A5.8 5.8 0 0 1 26.2 18Z" }), _jsx("path", { fill: cream, d: "M37.8 9H49.4V18A5.8 5.8 0 0 1 37.8 18Z" }), _jsx("path", { fill: coral, d: "M49.4 9H61V18A5.8 5.8 0 0 1 49.4 18Z" }), _jsx("g", { transform: "translate(32 36.5) scale(.34)", children: _jsx(WatchfulEye, {}) })] })),
18
+ agent: (_jsxs("g", { transform: "translate(32 33) scale(2.02) translate(-47.2 -41.8)", children: [_jsx("path", { fill: blue, d: "M46.666 29.533C39.623 30.116 34.627 34.849 34.603 40.96 34.585 45.387 36.412 47.971 40.602 49.445 42.036 49.95 42.076 50.049 41.491 51.666 40.968 53.111 41.167 53.761 42.201 53.988 43.463 54.265 46.679 52.293 47.929 50.475 48.134 50.178 48.268 50.13 49.332 49.977 56.938 48.882 60.956 43.889 59.582 37.237 58.622 32.59 53.42 29.07 48.034 29.424 47.904 29.432 47.289 29.482 46.666 29.533Z" }), _jsx("g", { transform: "translate(47.3 40) scale(.36 .34)", children: _jsx(FaceEyes, {}) })] })),
19
+ list: (_jsxs("g", { transform: "rotate(-7 32 32)", children: [_jsx("path", { style: { fill: blue }, d: "M12 13Q6 13 6 19V50Q6 57 13 57H47Q53 57 53 50V20Q53 13 47 13Z" }), _jsx("path", { style: { fill: cream }, d: "M19 7H39Q42 7 44 9L55 20Q57 22 57 26V44Q57 50 51 50H19Q13 50 13 44V13Q13 7 19 7Z" }), _jsx("path", { style: { fill: coral }, d: "M39 7V18Q39 24 45 24H57Q57 22 55 20L44 9Q42 7 39 7Z" }), _jsxs("g", { style: { fill: coral }, children: [_jsx("circle", { cx: "22", cy: "21", r: "3" }), _jsx("circle", { cx: "22", cy: "31", r: "3" }), _jsx("circle", { cx: "22", cy: "41", r: "3" })] }), _jsx("path", { style: { stroke: blue }, strokeWidth: "5", strokeLinecap: "round", d: "M31 21H32M31 31H46M31 41H42" })] })),
20
+ chat: (_jsxs(_Fragment, { children: [_jsx("g", { transform: "translate(3 11) scale(.22) translate(-449 -327)", children: _jsx(GroveBubbles, {}) }), _jsx(TaperedRay, { transform: "translate(38.2 18) rotate(16) scale(.95 .6)" }), _jsx(TaperedRay, { transform: "translate(44.4 20.5) rotate(47) scale(.95 .6)" })] })),
21
+ read: (_jsxs(_Fragment, { children: [_jsx("g", { transform: "translate(4 20.5) scale(.56)", children: _jsx(OpenBook, {}) }), _jsx("g", { transform: "translate(32 38.6) scale(.3164)", children: _jsx(WatchfulEye, {}) }), _jsx(ActionRays, {})] })),
22
+ readConversations: (_jsxs("g", { transform: "translate(32 32) scale(.9) translate(-32 -32)", children: [_jsx("g", { transform: "translate(4 7.88) scale(.56)", children: _jsx(SpeechBubble, { fill: blue }) }), _jsx("g", { transform: "translate(32.2 30.3) scale(.352)", children: _jsx(WatchfulEye, {}) })] })),
23
+ listAgents: (_jsxs("g", { transform: "translate(32 32) scale(1.04) translate(-32 -32)", children: [_jsx("path", { style: { fill: figure }, d: "M32.059 10.146C23.878 10.646 18.949 14.844 18.925 21.331 18.912 24.856 20.167 27.259 22.274 27.74 24.437 28.233 26.097 29.061 27.481 30.337 28.275 31.068 28.328 31.096 29.352 31.306 31.161 31.677 31.653 32.094 32.115 33.651 32.392 34.582 32.557 34.868 32.915 35.041 33.919 35.523 35.864 33.733 36.539 31.706L36.775 30.997 38.008 30.681C42.663 29.489 45.29 26.142 45.468 21.176 45.734 13.784 40.673 9.62 32.059 10.146Z" }), _jsx("g", { transform: "translate(32.4 21.2) scale(.39)", children: _jsx(FaceEyes, { onFigure: true }) }), _jsx("path", { style: { fill: coral }, d: "M14.375 27.586C8.014 28.591 4.363 32.396 4.355 38.027 4.347 43.93 8.071 47.469 15.239 48.368L16.828 48.568 17.873 49.568C19.854 51.464 22.469 52.496 23.691 51.864 24.384 51.506 24.431 51.044 23.924 49.606 23.337 47.943 23.479 47.492 24.749 46.977 32.756 43.73 32.643 31.899 24.573 28.49 22.238 27.504 17.535 27.087 14.375 27.586Z" }), _jsx("g", { transform: "translate(17.6 37.7) scale(.38 .36)", children: _jsx(FaceEyes, {}) }), _jsx("path", { style: { fill: blue }, d: "M46.666 29.533C39.623 30.116 34.627 34.849 34.603 40.96 34.585 45.387 36.412 47.971 40.602 49.445 42.036 49.95 42.076 50.049 41.491 51.666 40.968 53.111 41.167 53.761 42.201 53.988 43.463 54.265 46.679 52.293 47.929 50.475 48.134 50.178 48.268 50.13 49.332 49.977 56.938 48.882 60.956 43.889 59.582 37.237 58.622 32.59 53.42 29.07 48.034 29.424 47.904 29.432 47.289 29.482 46.666 29.533Z" }), _jsx("g", { transform: "translate(47.3 40) scale(.36 .34)", children: _jsx(FaceEyes, {}) })] })),
24
+ createAgents: (_jsxs("g", { transform: "translate(32 32) scale(1.08) translate(-32 -32)", children: [_jsx("path", { style: { fill: figure }, d: "M20.436 24.499C13.35 25.216 7.504 28.799 5.442 33.687 3.114 39.208 4.438 45.791 8.593 49.358 10.446 50.949 10.34 50.831 10.34 51.301 10.34 51.796 10.106 52.294 9.281 53.558 7.191 56.76 12.108 56.905 16.701 53.777 17.517 53.221 17.715 53.135 18.015 53.201 20.013 53.639 25.739 53.051 28.595 52.113 35.47 49.857 39.129 44.162 37.83 37.738C37 31 33 26 26.717 24.428L24.075 24.413C22.623 24.405 20.985 24.444 20.436 24.499Z" }), _jsx("g", { transform: "translate(21.9 40) scale(.46 .43)", children: _jsx(FaceEyes, { onFigure: true }) }), _jsx("path", { style: { fill: mint }, d: "M37.987 15.734C32.277 16.627 28.675 20.713 28.92 26.022 29.062 29.118 30.627 31.606 33.331 33.036 34.675 33.747 34.761 34.018 34.237 35.923 33.376 39.051 36.878 38.551 39.174 35.218 39.574 34.637 39.65 34.583 40.058 34.583 46.203 34.583 50.414 30.91 50.424 25.543 50.435 18.989 44.932 14.649 37.987 15.734Z" }), _jsx("g", { transform: "translate(38.9 24.9) scale(.31)", children: _jsx(FaceEyes, {}) }), _jsx(TaperedRay, { fill: yellow, transform: "translate(48.1 15.7) rotate(31) scale(1.25 .85)" }), _jsx(TaperedRay, { fill: yellow, transform: "translate(52.2 19.8) rotate(70) scale(1.25 .85)" })] })),
25
+ sendPrompts: (_jsxs("g", { transform: "translate(32 32) scale(1.08) translate(-32 -32)", children: [_jsx("g", { transform: "translate(4 13.2) scale(.412 .436)", children: _jsx(SpeechBubble, { fill: coral }) }), _jsx("g", { transform: "translate(17.1 28.7) scale(.19)", children: _jsx(SpeakingMouth, {}) }), _jsx(TaperedRay, { fill: mint, transform: "translate(48.1 26.4) rotate(65) scale(1.7 1.28)" }), _jsx(TaperedRay, { fill: mint, transform: "translate(48.4 33.8) rotate(110) scale(1.7 1.28)" })] })),
26
+ write: (_jsxs(_Fragment, { children: [_jsx(Pencil, {}), _jsx(InkTrail, {})] })),
27
+ run: (_jsxs(_Fragment, { children: [_jsx("rect", { style: { fill: blue }, x: "6", y: "9", width: "52", height: "43", rx: "7" }), _jsx("path", { style: { stroke: cream }, strokeWidth: "5", strokeLinecap: "round", strokeLinejoin: "round", d: "m17 22 9 8-9 8m17 0h12" })] })),
28
+ connected: (_jsxs(_Fragment, { children: [_jsx("path", { fill: "none", style: { stroke: blue }, strokeWidth: "12", strokeLinecap: "round", d: "M34 37Q43 21 26 20H18Q3 20 6 37q2 10 15 9" }), _jsx("path", { fill: "none", style: { stroke: coral }, strokeWidth: "12", strokeLinecap: "round", d: "M29 33Q20 50 38 53h8q16-1 12-17-2-11-14-10" }), _jsx("path", { style: { stroke: yellow }, strokeWidth: "4", strokeLinecap: "round", d: "m27 4 2 6m10-5-2 7m12 0-5 4" })] })),
29
+ working: (_jsxs(_Fragment, { children: [_jsx("ellipse", { style: { fill: mint }, cx: "23", cy: "14", rx: "13", ry: "8", transform: "rotate(-30 23 14)" }), _jsx("ellipse", { style: { fill: yellow }, cx: "48", cy: "36", rx: "13", ry: "8", transform: "rotate(35 48 36)" }), _jsx("ellipse", { style: { fill: grape }, cx: "22", cy: "48", rx: "13", ry: "8", transform: "rotate(45 22 48)" }), _jsx("path", { fill: "none", style: { stroke: figure }, strokeWidth: "3", strokeLinecap: "round", d: "M42 8q13 2 13 13M43 55q-5 5-12 4M5 39q-5-9 1-17" })] })),
30
+ complete: (_jsxs(_Fragment, { children: [_jsx("path", { style: { fill: mint }, d: "M32 6q5-8 10 0 9-3 10 6 9 2 5 11 8 6 0 12 3 9-6 11-1 9-10 6-6 8-12 0-9 3-11-6-9-2-6-11-8-6 0-12-3-9 6-11 1-9 10-6Z" }), _jsx("path", { fill: "none", style: { stroke: ink }, strokeWidth: "6", strokeLinecap: "round", strokeLinejoin: "round", d: "m23 29 7 7 13-15" }), _jsx("path", { style: { stroke: figure }, strokeWidth: "3", strokeLinecap: "round", d: "m4 8 5 6m48-4 5-5M2 24l6 1" })] })),
31
+ // An App tile dropping into place: another App installed into the Team.
32
+ installApps: (_jsxs("g", { transform: "rotate(-6 32 32)", children: [_jsx("rect", { style: { fill: blue }, x: "9", y: "26", width: "46", height: "32", rx: "10" }), _jsx("rect", { style: { fill: cream }, x: "17", y: "33", width: "30", height: "18", rx: "5" }), _jsx("path", { style: { fill: mint }, d: "M22 38h8v8h-8z" }), _jsx("path", { style: { fill: grape }, d: "M34 38h8v8h-8z" }), _jsx("path", { style: { stroke: coral }, strokeWidth: "6", strokeLinecap: "round", strokeLinejoin: "round", d: "M32 4v17m-8-7 8 8 8-8" })] })),
33
+ restricted: (_jsxs(_Fragment, { children: [_jsx("path", { fill: "none", style: { stroke: coral }, strokeWidth: "9", strokeLinecap: "round", d: "M16 23V19q0-17 16-17t16 17v4" }), _jsx("rect", { style: { fill: coral }, x: "8", y: "26", width: "48", height: "36", rx: "9" }), _jsx("path", { style: { fill: cream }, d: "M32 34a7 7 0 0 0-4 13v7h8v-7a7 7 0 0 0-4-13Z" })] })),
34
+ error: (_jsxs(_Fragment, { children: [_jsx("path", { style: { fill: coral }, d: "M32 6q5-8 10 0 9-3 10 6 9 2 5 11 8 6 0 12 3 9-6 11-1 9-10 6-6 8-12 0-9 3-11-6-9-2-6-11-8-6 0-12-3-9 6-11 1-9 10-6Z" }), _jsx("path", { fill: "none", style: { stroke: cream }, strokeWidth: "7", strokeLinecap: "round", d: "M32 18v15" }), _jsx("circle", { style: { fill: cream }, cx: "32", cy: "45", r: "4" })] })),
35
+ };
36
+ /** Check an App declaration's icon against the maintained Sigil vocabulary. */
37
+ export function isSigilName(name) {
38
+ return Object.hasOwn(symbols, name);
39
+ }
40
+ /** Decorative identities; the enclosing control owns its accessible name. */
41
+ export function Sigil({ name, size }) {
42
+ return (_jsx("svg", { viewBox: "0 0 64 64", width: size, height: size, fill: "none", stroke: "none", "aria-hidden": "true", focusable: "false", "data-sigil": name, children: symbols[name] }));
43
+ }
package/package.json CHANGED
@@ -1,6 +1,28 @@
1
1
  {
2
2
  "name": "@fungi.computer/sigils",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.0.1",
4
+ "author": "Levi <levi@technomancy.dev>",
5
+ "private": false,
6
+ "description": "Fungi's approved illustrated symbols and visual studies",
7
+ "type": "module",
8
+ "sideEffects": false,
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "peerDependencies": {
21
+ "react": "^18.3.1 || ^19.2.0"
22
+ },
23
+ "license": "MIT",
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/fungi-computer/sigils.git"
27
+ }
6
28
  }