From a1b66a9147782b25bf65fa9ccc2ff911f80060fb Mon Sep 17 00:00:00 2001 From: adlee-was-taken Date: Sun, 3 May 2026 20:52:21 -0400 Subject: [PATCH] feat(ext/glyphs): add GLYPH_VAULT_TAB and per-type icon constants --- extension/src/shared/__tests__/glyphs.test.ts | 27 +++++++++++++++++++ extension/src/shared/glyphs.ts | 10 +++++++ 2 files changed, 37 insertions(+) diff --git a/extension/src/shared/__tests__/glyphs.test.ts b/extension/src/shared/__tests__/glyphs.test.ts index 957c28c..312251c 100644 --- a/extension/src/shared/__tests__/glyphs.test.ts +++ b/extension/src/shared/__tests__/glyphs.test.ts @@ -41,3 +41,30 @@ describe('glyph constants', () => { expect(GLYPH_NEXT).toBe('▸'); }); }); + +describe('Stream A glyphs (vault tab + type icons)', () => { + it('exports GLYPH_VAULT_TAB as U+29C9', () => { + expect(glyphs.GLYPH_VAULT_TAB).toBe('⧉'); + }); + + it('exports per-type glyph constants', () => { + expect(glyphs.GLYPH_TYPE_LOGIN).toBe('◉'); + expect(glyphs.GLYPH_TYPE_SECURE_NOTE).toBe('◫'); + expect(glyphs.GLYPH_TYPE_TOTP).toBe('⊡'); + expect(glyphs.GLYPH_TYPE_CARD).toBe('▭'); + expect(glyphs.GLYPH_TYPE_IDENTITY).toBe('⌬'); + expect(glyphs.GLYPH_TYPE_KEY).toBe('⊹'); + expect(glyphs.GLYPH_TYPE_DOCUMENT).toBe('≡'); + }); + + it('per-type glyphs are single codepoints (no emoji)', () => { + const typeGlyphs = [ + glyphs.GLYPH_TYPE_LOGIN, glyphs.GLYPH_TYPE_SECURE_NOTE, glyphs.GLYPH_TYPE_TOTP, + glyphs.GLYPH_TYPE_CARD, glyphs.GLYPH_TYPE_IDENTITY, glyphs.GLYPH_TYPE_KEY, + glyphs.GLYPH_TYPE_DOCUMENT, + ]; + for (const g of typeGlyphs) { + expect([...g].length).toBe(1); + } + }); +}); diff --git a/extension/src/shared/glyphs.ts b/extension/src/shared/glyphs.ts index a69e3fb..1f9b29f 100644 --- a/extension/src/shared/glyphs.ts +++ b/extension/src/shared/glyphs.ts @@ -18,6 +18,16 @@ export const GLYPH_SETTINGS = '⚙'; // sidebar settings nav export const GLYPH_LOCK = '⏻'; // sidebar lock nav export const GLYPH_NEXT = '▸'; // forward / next button (matches ▾/▸ disclosure family) +export const GLYPH_VAULT_TAB = '⧉'; // U+29C9 pop-out to fullscreen vault tab + +export const GLYPH_TYPE_LOGIN = '◉'; // login +export const GLYPH_TYPE_SECURE_NOTE = '◫'; // secure note +export const GLYPH_TYPE_TOTP = '⊡'; // totp / 2FA +export const GLYPH_TYPE_CARD = '▭'; // card +export const GLYPH_TYPE_IDENTITY = '⌬'; // identity +export const GLYPH_TYPE_KEY = '⊹'; // SSH / API key +export const GLYPH_TYPE_DOCUMENT = '≡'; // document + /// Inline HTML snippet for the required-field pill. Use after a label's text: /// `` ///