@signal9/era-ui 3.5.1 → 3.7.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/density.css +9 -0
- package/dist/styles/index.css +27 -0
- 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/density.css
CHANGED
|
@@ -273,6 +273,11 @@
|
|
|
273
273
|
* root while dense subtrees just inherit whatever corners are in force. */
|
|
274
274
|
:root {
|
|
275
275
|
--era-roundness-scale: 1;
|
|
276
|
+
/* The password mask glyph is a corner decision too — see the corners block
|
|
277
|
+
* below. Declared here on :root alone for the same reason as the scale: a
|
|
278
|
+
* data-mode subtree must not re-assert it and defeat an inherited
|
|
279
|
+
* data-corners="square". */
|
|
280
|
+
--era-mask-glyph: disc;
|
|
276
281
|
}
|
|
277
282
|
:root,
|
|
278
283
|
[data-mode='dense'] {
|
|
@@ -313,6 +318,10 @@
|
|
|
313
318
|
/* -------------------------------------------------- */
|
|
314
319
|
[data-corners='square'] {
|
|
315
320
|
--era-roundness-scale: 0;
|
|
321
|
+
/* Squares the password mask too, so the one glyph the UA picks for you
|
|
322
|
+
* follows the same corner language as every rendered box. Unlike the radius
|
|
323
|
+
* this can't tween — it's a keyword, so it flips at the end of the toggle. */
|
|
324
|
+
--era-mask-glyph: square;
|
|
316
325
|
}
|
|
317
326
|
|
|
318
327
|
/* Animate the roundness scale itself — not border-radius. sp changes snap
|
package/dist/styles/index.css
CHANGED
|
@@ -34,6 +34,33 @@
|
|
|
34
34
|
stroke-width: var(--era-icon-stroke-width);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/* The mask glyph is the one piece of type the UA picks for you, so era picks it
|
|
38
|
+
* instead — off the CORNERS axis, like every other corner in the system:
|
|
39
|
+
* rounded → disc, data-corners="square" → square. The token lives in
|
|
40
|
+
* density.css next to --era-roundness-scale.
|
|
41
|
+
*
|
|
42
|
+
* `:where()` holds specificity at 0, so a consumer opts out with a bare
|
|
43
|
+
* `input[type='password'] { -webkit-text-security: disc }`. Author origin beats
|
|
44
|
+
* the UA sheet regardless of specificity, so this still wins by default.
|
|
45
|
+
*
|
|
46
|
+
* Engines without the property keep their own dots — masking never degrades to
|
|
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. */
|
|
60
|
+
:where(input[type='password']) {
|
|
61
|
+
-webkit-text-security: var(--era-mask-glyph, disc);
|
|
62
|
+
}
|
|
63
|
+
|
|
37
64
|
/* Shared interactive-state recipe: quiet focus, disabled affordance.
|
|
38
65
|
* Equivalent to `focus:outline-none disabled:cursor-not-allowed disabled:opacity-50`.
|
|
39
66
|
*
|
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';
|