@signal9/era-ui 3.6.0 → 3.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/dist/era-ui.css +1 -1
- package/dist/generated-docs/llms-full.txt +29 -0
- package/dist/generated-docs/llms.txt +1 -1
- package/dist/generated-docs/logo.md +24 -0
- package/dist/generated-docs/manifest.json +11 -0
- package/dist/styles/index.css +13 -1
- package/dist/styles/themes.css +83 -55
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.js +1 -0
- package/dist/ui/logo/index.d.ts +3 -0
- package/dist/ui/logo/index.js +2 -0
- package/dist/ui/logo/logo.svelte +744 -0
- package/dist/ui/logo/logo.svelte.d.ts +181 -0
- package/package.json +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Logo
|
|
2
|
+
|
|
3
|
+
The signalnine dish mark, reactive to a state preset.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```ts
|
|
8
|
+
import { Logo } from "$lib/ui/logo";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Default | Notes |
|
|
14
|
+
|------|------|---------|-------|
|
|
15
|
+
| `depth?` | `number` | `52` | — |
|
|
16
|
+
| `tilt?` | `number` | `55` | — |
|
|
17
|
+
| `aim?` | `number` | `0` | — |
|
|
18
|
+
| `light?` | `number` | `REST_LIGHT` | — |
|
|
19
|
+
| `inset?` | `number` | `100` | — |
|
|
20
|
+
| `palette?` | `LogoPalette` | `'amber'` | — |
|
|
21
|
+
| `state?` | `LogoState` | `'manual'` | 'manual' renders a static pose; any other state animates its preset. |
|
|
22
|
+
| `size?` | `number` | `272` | — |
|
|
23
|
+
| `pressable?` | `boolean` | `false` | Deepen the bowl while held, then spring back on release. |
|
|
24
|
+
| `class?` | `string` | — | — |
|
|
@@ -646,6 +646,17 @@
|
|
|
646
646
|
],
|
|
647
647
|
"file": "label.md"
|
|
648
648
|
},
|
|
649
|
+
{
|
|
650
|
+
"slug": "logo",
|
|
651
|
+
"title": "Logo",
|
|
652
|
+
"summary": "The signalnine dish mark, reactive to a state preset.",
|
|
653
|
+
"tokenEstimate": 176,
|
|
654
|
+
"sections": [
|
|
655
|
+
"Import",
|
|
656
|
+
"Props"
|
|
657
|
+
],
|
|
658
|
+
"file": "logo.md"
|
|
659
|
+
},
|
|
649
660
|
{
|
|
650
661
|
"slug": "menu",
|
|
651
662
|
"title": "Menu",
|
package/dist/styles/index.css
CHANGED
|
@@ -44,7 +44,19 @@
|
|
|
44
44
|
* the UA sheet regardless of specificity, so this still wins by default.
|
|
45
45
|
*
|
|
46
46
|
* Engines without the property keep their own dots — masking never degrades to
|
|
47
|
-
* plaintext, only to a different glyph.
|
|
47
|
+
* plaintext, only to a different glyph.
|
|
48
|
+
*
|
|
49
|
+
* KNOWN LIMIT, verified in Chromium 1228: a real input[type=password] ignores
|
|
50
|
+
* this entirely and always draws disc. Author CSS does not win — square, circle
|
|
51
|
+
* and none all render dots — and CSS.supports() reports true for every one of
|
|
52
|
+
* them, so it fails silently. The property DOES apply to input[type=text], and
|
|
53
|
+
* the var() substitutes correctly, so this rule is live wiring rather than dead
|
|
54
|
+
* code: point it at a text input and the axis drives the glyph.
|
|
55
|
+
*
|
|
56
|
+
* Forcing squares on a password field therefore means rendering it as
|
|
57
|
+
* type="text" and masking it ourselves, which costs password-manager detection
|
|
58
|
+
* and the screen-reader "password" announcement. Deliberately not done — the
|
|
59
|
+
* semantics are worth more than the corner. */
|
|
48
60
|
:where(input[type='password']) {
|
|
49
61
|
-webkit-text-security: var(--era-mask-glyph, disc);
|
|
50
62
|
}
|
package/dist/styles/themes.css
CHANGED
|
@@ -13,8 +13,10 @@
|
|
|
13
13
|
* dark/light the same way the default neutral scale does.
|
|
14
14
|
* - Add data-theme="sand" for a cooler sandstone palette with
|
|
15
15
|
* mint contrast.
|
|
16
|
-
* - Add data-theme="signalnine" for a
|
|
17
|
-
*
|
|
16
|
+
* - Add data-theme="signalnine" for a palette that refuses a clean
|
|
17
|
+
* gradient: dark lurches hue twice (imageboard at night), light is
|
|
18
|
+
* sampled off the live www.yahoo.co.jp. Both keep lightness
|
|
19
|
+
* monotonic — only hue and chroma misbehave.
|
|
18
20
|
*/
|
|
19
21
|
|
|
20
22
|
/* -------------------------------------------------- */
|
|
@@ -425,83 +427,109 @@
|
|
|
425
427
|
}
|
|
426
428
|
|
|
427
429
|
/* -------------------------------------------------- */
|
|
428
|
-
/* Signalnine — light
|
|
430
|
+
/* Signalnine — light (yahoo.co.jp, measured) */
|
|
429
431
|
/* */
|
|
430
|
-
/*
|
|
431
|
-
/*
|
|
432
|
-
/*
|
|
433
|
-
/*
|
|
434
|
-
/*
|
|
435
|
-
/*
|
|
436
|
-
/*
|
|
437
|
-
/*
|
|
432
|
+
/* Not eyeballed: the ramp was sampled off the live */
|
|
433
|
+
/* www.yahoo.co.jp in a headless browser, walking every */
|
|
434
|
+
/* element and weighting each computed colour by its */
|
|
435
|
+
/* rendered area (backgrounds), glyph area (text), and */
|
|
436
|
+
/* edge length (borders). The winners by weight became */
|
|
437
|
+
/* the anchors below; only 6, 8 and 9 are interpolated, */
|
|
438
|
+
/* and every other step reproduces a real site colour */
|
|
439
|
+
/* exactly: */
|
|
440
|
+
/* */
|
|
441
|
+
/* 1 #FFFFFF the page */
|
|
442
|
+
/* 2 #F1F5FF palest panel (--color-surface) */
|
|
443
|
+
/* 3 #E6ECFE the signature panel blue */
|
|
444
|
+
/* 4 #CEDAF3 light rule */
|
|
445
|
+
/* 5 #A2B3D8 rgb(162,179,216) (--color-border) */
|
|
446
|
+
/* 7 #698AC1 soft link blue */
|
|
447
|
+
/* 10 #666666 secondary text (--color-muted) */
|
|
448
|
+
/* 12 #000000 body text */
|
|
449
|
+
/* */
|
|
450
|
+
/* Chroma is the story: it peaks in the pale blues and */
|
|
451
|
+
/* decays to exactly zero by step 10, because that is */
|
|
452
|
+
/* what the site does — blue-tinted chrome resolving to */
|
|
453
|
+
/* neutral grey and black type. So the scale still is */
|
|
454
|
+
/* not a clean gradient, but now for a measured reason */
|
|
455
|
+
/* rather than an invented one. */
|
|
456
|
+
/* */
|
|
457
|
+
/* Accents are measured too: primary is the CTA blue */
|
|
458
|
+
/* rgb(64,112,255), destructive the Yahoo red */
|
|
459
|
+
/* rgb(235,0,19). Success and warning have no clear */
|
|
460
|
+
/* counterpart on the page and are harmonised, not */
|
|
461
|
+
/* sampled. */
|
|
462
|
+
/* */
|
|
463
|
+
/* Border contrast is 2.11:1 against the page — below */
|
|
464
|
+
/* the 2.49–4.05 the other light themes sit at, but */
|
|
465
|
+
/* that IS Yahoo's rule colour, specified exactly. */
|
|
438
466
|
/* -------------------------------------------------- */
|
|
439
467
|
@media (prefers-color-scheme: light) {
|
|
440
468
|
:root[data-theme='signalnine']:not(.dark) {
|
|
441
469
|
color-scheme: light;
|
|
442
470
|
|
|
443
|
-
--color-1: oklch(0
|
|
444
|
-
--color-2: oklch(0.
|
|
445
|
-
--color-3: oklch(0.
|
|
446
|
-
--color-4: oklch(0.
|
|
447
|
-
--color-5: oklch(0.
|
|
448
|
-
--color-6: oklch(0.
|
|
449
|
-
--color-7: oklch(0.
|
|
450
|
-
--color-8: oklch(0.
|
|
451
|
-
--color-9: oklch(0.
|
|
452
|
-
--color-10: oklch(0.
|
|
453
|
-
--color-11: oklch(0.
|
|
454
|
-
--color-12: oklch(0
|
|
471
|
+
--color-1: oklch(1 0 0); /* #ffffff */
|
|
472
|
+
--color-2: oklch(0.97 0.014 268.5); /* #f1f5ff */
|
|
473
|
+
--color-3: oklch(0.944 0.025 271.1); /* #e6ecfe */
|
|
474
|
+
--color-4: oklch(0.887 0.037 265.1); /* #cedaf3 */
|
|
475
|
+
--color-5: oklch(0.766 0.0565 265.7); /* #a2b3d8 — rgb(162,179,216) */
|
|
476
|
+
--color-6: oklch(0.7 0.074 263);
|
|
477
|
+
--color-7: oklch(0.631 0.0915 260.3); /* #698ac1 */
|
|
478
|
+
--color-8: oklch(0.585 0.062 261);
|
|
479
|
+
--color-9: oklch(0.548 0.031 261);
|
|
480
|
+
--color-10: oklch(0.51 0 0); /* #666666 */
|
|
481
|
+
--color-11: oklch(0.16 0.008 266);
|
|
482
|
+
--color-12: oklch(0 0 0); /* #000000 */
|
|
455
483
|
|
|
456
484
|
--color-border: var(--color-5);
|
|
457
485
|
--color-surface: var(--color-2);
|
|
458
|
-
--color-hover: oklch(0.
|
|
486
|
+
--color-hover: oklch(0.955 0.02 270);
|
|
459
487
|
--color-fg: var(--color-11);
|
|
460
488
|
--color-bright: var(--color-12);
|
|
461
489
|
--color-muted: var(--color-10);
|
|
462
490
|
|
|
463
|
-
--color-primary: oklch(0.
|
|
464
|
-
--color-primary-fg: oklch(0
|
|
465
|
-
--color-primary-hover: color-mix(in oklch, var(--color-primary)
|
|
466
|
-
--color-destructive: oklch(0.
|
|
467
|
-
--color-destructive-fg: oklch(0
|
|
468
|
-
--color-success: oklch(0.
|
|
469
|
-
--color-success-fg: oklch(0
|
|
470
|
-
--color-warning: oklch(0.
|
|
471
|
-
--color-warning-fg: oklch(0.
|
|
491
|
+
--color-primary: oklch(0.596 0.22 265.8); /* #4070ff */
|
|
492
|
+
--color-primary-fg: oklch(1 0 0);
|
|
493
|
+
--color-primary-hover: color-mix(in oklch, var(--color-primary) 85%, black);
|
|
494
|
+
--color-destructive: oklch(0.59 0.242 27.7); /* #eb0013 */
|
|
495
|
+
--color-destructive-fg: oklch(1 0 0);
|
|
496
|
+
--color-success: oklch(0.58 0.15 152);
|
|
497
|
+
--color-success-fg: oklch(1 0 0);
|
|
498
|
+
--color-warning: oklch(0.76 0.145 80);
|
|
499
|
+
--color-warning-fg: oklch(0.16 0.008 266);
|
|
472
500
|
}
|
|
473
501
|
}
|
|
474
502
|
|
|
475
503
|
[data-theme='signalnine'].light {
|
|
476
504
|
color-scheme: light;
|
|
477
505
|
|
|
478
|
-
--color-1: oklch(0
|
|
479
|
-
--color-2: oklch(0.
|
|
480
|
-
--color-3: oklch(0.
|
|
481
|
-
--color-4: oklch(0.
|
|
482
|
-
--color-5: oklch(0.
|
|
483
|
-
--color-6: oklch(0.
|
|
484
|
-
--color-7: oklch(0.
|
|
485
|
-
--color-8: oklch(0.
|
|
486
|
-
--color-9: oklch(0.
|
|
487
|
-
--color-10: oklch(0.
|
|
488
|
-
--color-11: oklch(0.
|
|
489
|
-
--color-12: oklch(0
|
|
506
|
+
--color-1: oklch(1 0 0); /* #ffffff */
|
|
507
|
+
--color-2: oklch(0.97 0.014 268.5); /* #f1f5ff */
|
|
508
|
+
--color-3: oklch(0.944 0.025 271.1); /* #e6ecfe */
|
|
509
|
+
--color-4: oklch(0.887 0.037 265.1); /* #cedaf3 */
|
|
510
|
+
--color-5: oklch(0.766 0.0565 265.7); /* #a2b3d8 — rgb(162,179,216) */
|
|
511
|
+
--color-6: oklch(0.7 0.074 263);
|
|
512
|
+
--color-7: oklch(0.631 0.0915 260.3); /* #698ac1 */
|
|
513
|
+
--color-8: oklch(0.585 0.062 261);
|
|
514
|
+
--color-9: oklch(0.548 0.031 261);
|
|
515
|
+
--color-10: oklch(0.51 0 0); /* #666666 */
|
|
516
|
+
--color-11: oklch(0.16 0.008 266);
|
|
517
|
+
--color-12: oklch(0 0 0); /* #000000 */
|
|
490
518
|
|
|
491
519
|
--color-border: var(--color-5);
|
|
492
520
|
--color-surface: var(--color-2);
|
|
493
|
-
--color-hover: oklch(0.
|
|
521
|
+
--color-hover: oklch(0.955 0.02 270);
|
|
494
522
|
--color-fg: var(--color-11);
|
|
495
523
|
--color-bright: var(--color-12);
|
|
496
524
|
--color-muted: var(--color-10);
|
|
497
525
|
|
|
498
|
-
--color-primary: oklch(0.
|
|
499
|
-
--color-primary-fg: oklch(0
|
|
500
|
-
--color-primary-hover: color-mix(in oklch, var(--color-primary)
|
|
501
|
-
--color-destructive: oklch(0.
|
|
502
|
-
--color-destructive-fg: oklch(0
|
|
503
|
-
--color-success: oklch(0.
|
|
504
|
-
--color-success-fg: oklch(0
|
|
505
|
-
--color-warning: oklch(0.
|
|
506
|
-
--color-warning-fg: oklch(0.
|
|
526
|
+
--color-primary: oklch(0.596 0.22 265.8); /* #4070ff */
|
|
527
|
+
--color-primary-fg: oklch(1 0 0);
|
|
528
|
+
--color-primary-hover: color-mix(in oklch, var(--color-primary) 85%, black);
|
|
529
|
+
--color-destructive: oklch(0.59 0.242 27.7); /* #eb0013 */
|
|
530
|
+
--color-destructive-fg: oklch(1 0 0);
|
|
531
|
+
--color-success: oklch(0.58 0.15 152);
|
|
532
|
+
--color-success-fg: oklch(1 0 0);
|
|
533
|
+
--color-warning: oklch(0.76 0.145 80);
|
|
534
|
+
--color-warning-fg: oklch(0.16 0.008 266);
|
|
507
535
|
}
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -48,6 +48,8 @@ export { Input, Textarea } from './input/index.js';
|
|
|
48
48
|
export { KV } from './kv/index.js';
|
|
49
49
|
export { Label } from './label/index.js';
|
|
50
50
|
export * as LinkPreview from './link-preview/index.js';
|
|
51
|
+
export { Logo } from './logo/index.js';
|
|
52
|
+
export type { LogoPalette, LogoState, LogoParams } from './logo/index.js';
|
|
51
53
|
export { Mode } from './mode/index.js';
|
|
52
54
|
export { Pane, Root as PaneRoot, Handle as PaneHandle, Content as PaneContent, Close as PaneClose, Tabs as PaneTabs, TabList as PaneTabList, Tab as PaneTab, TabPanel as PaneTabPanel } from './pane/index.js';
|
|
53
55
|
export * as Pagination from './pagination/index.js';
|
package/dist/ui/index.js
CHANGED
|
@@ -48,6 +48,7 @@ export { Input, Textarea } from './input/index.js';
|
|
|
48
48
|
export { KV } from './kv/index.js';
|
|
49
49
|
export { Label } from './label/index.js';
|
|
50
50
|
export * as LinkPreview from './link-preview/index.js';
|
|
51
|
+
export { Logo } from './logo/index.js';
|
|
51
52
|
export { Mode } from './mode/index.js';
|
|
52
53
|
export { Pane, Root as PaneRoot, Handle as PaneHandle, Content as PaneContent, Close as PaneClose, Tabs as PaneTabs, TabList as PaneTabList, Tab as PaneTab, TabPanel as PaneTabPanel } from './pane/index.js';
|
|
53
54
|
export * as Pagination from './pagination/index.js';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { default as Logo } from './logo.svelte';
|
|
2
|
+
export { LOGO_STATES, PAL, PALETTES, SPR, REST_LIGHT, FIXED_STEP, wrap, clamp, norm360, oklchToHex, renderLogoMarkup, logoSvgDocument, createSim, integrate, stateFrame } from './logo.svelte';
|
|
3
|
+
export type { LogoPalette, LogoState, LogoParams, LogoSim, HueOverride, Ring, Dof, Fx } from './logo.svelte';
|