@neptune.fintech/icons 2.0.0 → 2.1.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.
@@ -0,0 +1,28 @@
1
+ # NOTICE — Brand marks (third-party trademarks)
2
+
3
+ The payment-network and fintech **brand marks** shipped in this package
4
+ (`src/brand-marks.ts` → `BRAND_MARKS`, `brandMarkSvg`, `<npt-brand-mark>`) —
5
+ including but not limited to **Visa, Mastercard, American Express, Discover,
6
+ UnionPay, Western Union, MoneyGram, Apple Pay, Google Pay, PayPal, SWIFT,
7
+ mada, NUMO, Moamalat, LyPay, OnePay, Sadad, and Tadawul** — are
8
+ **third-party trademarks of their respective owners**.
9
+
10
+ They are provided here ONLY as **simplified, schematic identification marks /
11
+ placeholders** so that a user interface can label a payment method. They are:
12
+
13
+ - **NOT** original Neptune Odyssey artwork;
14
+ - **NOT** pixel-exact reproductions of any official logo;
15
+ - **NOT** licensed under the Neptune Odyssey Community License v1.0 (which covers
16
+ only the original monochrome icon set in `src/icons.ts`);
17
+ - kept **separate** from the `ICONS` / `IconName` set on purpose.
18
+
19
+ The Libyan / local marks (**NUMO, Moamalat, LyPay, OnePay, Sadad, Tadawul**) and
20
+ the generic **mada**-style mark are **neutral placeholders** (a simple badge plus
21
+ initials) — this package does not ship those brands' real assets.
22
+
23
+ ## In production
24
+
25
+ Replace each brand mark with that brand's **official asset** and use it strictly
26
+ in accordance with the relevant brand / trademark owner's brand and usage
27
+ guidelines. Use of a brand mark does not imply any endorsement, sponsorship, or
28
+ affiliation. Neptune.Fintech claims no rights in these third-party trademarks.
package/README.md CHANGED
@@ -55,6 +55,48 @@ registerIcons(); // browser-only, idempotent
55
55
  Reactive attributes: `name`, `size` (px, default 24), `stroke` (default 1.8).
56
56
  Override colour with the `--npt-icon-color` custom property or plain `color`.
57
57
 
58
+ ## Brand marks (third-party trademarks)
59
+
60
+ > **Trademark notice.** The payment-network & fintech brand marks
61
+ > (Visa, Mastercard, Amex, Discover, UnionPay, Western Union, MoneyGram,
62
+ > Apple Pay, Google Pay, PayPal, SWIFT, mada, NUMO, Moamalat, LyPay, OnePay,
63
+ > Sadad, Tadawul, …) are **third-party trademarks of their respective owners**,
64
+ > provided here as **simplified identification marks / placeholders only**. They
65
+ > are **NOT** original Neptune Odyssey artwork and are **NOT** licensed under the
66
+ > Neptune Odyssey Community License. In production use each brand's **official
67
+ > assets per that brand's brand guidelines**. The Libyan/local marks are neutral
68
+ > placeholders to be replaced with official assets. See
69
+ > [`NOTICE-brand-marks.md`](./NOTICE-brand-marks.md).
70
+
71
+ Brand marks are **multicolour** and live in a separate module — they return a
72
+ **complete** `<svg>` (with their own `viewBox`), not inner markup, and are NOT in
73
+ `ICONS` / `IconName`.
74
+
75
+ ```ts
76
+ import { brandMarkSvg, BRAND_MARK_NAMES, register } from "@neptune.fintech/icons";
77
+
78
+ // full <svg> string, sized to a height (width preserves aspect ratio)
79
+ document.querySelector("#pm")!.innerHTML = brandMarkSvg("visa", { height: 24 });
80
+
81
+ // custom element — register() wires up BOTH <npt-icon> and <npt-brand-mark>
82
+ register();
83
+ ```
84
+
85
+ ```html
86
+ <npt-brand-mark name="mastercard" height="24"></npt-brand-mark>
87
+ <npt-brand-mark name="apple-pay" height="20"></npt-brand-mark>
88
+ ```
89
+
90
+ | Export | Description |
91
+ | ------------------ | ---------------------------------------------------------------- |
92
+ | `brandMarkSvg` | `(name, { height? }) => string` — full `<svg>`. Throws on bad name. |
93
+ | `isBrandMarkName` | `(name) => boolean` type guard for `BrandMarkName`. |
94
+ | `BRAND_MARKS` | `Record<BrandMarkName, string>` — complete `<svg>` per mark. |
95
+ | `BRAND_MARK_NAMES` | `BrandMarkName[]` — the roster, in catalogue order. |
96
+ | `BrandMarkName` | Union type of every brand-mark name. |
97
+ | `NptBrandMark` | The `<npt-brand-mark>` custom-element class. |
98
+ | `registerBrandMarks` / `register` | Register `<npt-brand-mark>` (and `register()` both elements). |
99
+
58
100
  ## Theming
59
101
 
60
102
  There is nothing to configure. Because each glyph uses `currentColor`, it
@@ -73,7 +115,7 @@ for free.
73
115
  | `IconName` | Union type of every icon name. |
74
116
  | `NptIcon` | The `<npt-icon>` custom-element class. |
75
117
  | `registerIcons` | Registers `<npt-icon>` (browser-only, idempotent). |
76
- | `ICONS_VERSION` | `"2.0.0"`. |
118
+ | `ICONS_VERSION` | `"2.1.0"`. |
77
119
 
78
120
  ## Icon list
79
121
 
@@ -86,7 +128,9 @@ for free.
86
128
  `trending-up`, `trending-down`, `savings`, `calendar`, `clock`, `location`,
87
129
  `phone`, `mail`, `support`, `chevron-right`, `chevron-down`, `arrow-right`,
88
130
  `arrow-left`, `menu`, `more-horizontal`, `more-vertical`, `copy`, `share`,
89
- `logout`, `language`, `moon`, `sun`.
131
+ `logout`, `language`, `moon`, `sun`, `atm`, `pos-terminal`, `coins`,
132
+ `cash-stack`, `invoice`, `pie-budget`, `exchange-rate`, `crypto`, `loan`,
133
+ `insurance`, `split-bill`, `tap-to-pay`.
90
134
 
91
135
  ## License
92
136
 
@@ -0,0 +1,25 @@
1
+ /** Every payment / fintech brand mark shipped (identification placeholders). */
2
+ export type BrandMarkName = "visa" | "mastercard" | "amex" | "discover" | "unionpay" | "western-union" | "moneygram" | "numo" | "moamalat" | "lypay" | "onepay" | "sadad" | "tadawul" | "apple-pay" | "google-pay" | "paypal" | "swift" | "mada" | "generic-card" | "contactless-pay" | "cash" | "bank-building";
3
+ /**
4
+ * name → complete multicolour <svg> string.
5
+ *
6
+ * Card-ratio canvas (viewBox 0 0 48 32) for wide marks; 32×32 for square
7
+ * badges. A neutral card body (#F4F5F7 fill, #E1E3E8 hairline) frames most
8
+ * marks so they sit well on any surface.
9
+ */
10
+ export declare const BRAND_MARKS: Record<BrandMarkName, string>;
11
+ /** All brand-mark names, in catalogue order. */
12
+ export declare const BRAND_MARK_NAMES: BrandMarkName[];
13
+ /** True when `name` is a known brand mark. Acts as a type guard. */
14
+ export declare function isBrandMarkName(name: string): name is BrandMarkName;
15
+ export interface BrandMarkOptions {
16
+ /** Rendered height in px; width scales to preserve the mark's aspect ratio. */
17
+ height?: number;
18
+ }
19
+ /**
20
+ * Return the complete multicolour <svg> for `name`, sized to a given height.
21
+ * Aspect ratio is preserved from the mark's intrinsic viewBox.
22
+ * @throws RangeError when `name` is not a known BrandMarkName.
23
+ */
24
+ export declare function brandMarkSvg(name: BrandMarkName, opts?: BrandMarkOptions): string;
25
+ //# sourceMappingURL=brand-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-marks.d.ts","sourceRoot":"","sources":["../src/brand-marks.ts"],"names":[],"mappings":"AAwBA,gFAAgF;AAChF,MAAM,MAAM,aAAa,GAErB,MAAM,GACN,YAAY,GACZ,MAAM,GACN,UAAU,GACV,UAAU,GAEV,eAAe,GACf,WAAW,GAEX,MAAM,GACN,UAAU,GACV,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GAET,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,MAAM,GACN,cAAc,GACd,iBAAiB,GACjB,MAAM,GACN,eAAe,CAAC;AAEpB;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAkJrD,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,EAAE,aAAa,EAuB3C,CAAC;AAEF,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,aAAa,CAEnE;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,GAAE,gBAAqB,GAAG,MAAM,CAkBrF"}
@@ -0,0 +1,205 @@
1
+ // Neptune Odyssey — payment-network & fintech BRAND MARKS · © 2026 Neptune.Fintech (neptune.ly)
2
+ //
3
+ // ⚠️ TRADEMARK NOTICE — READ BEFORE USE
4
+ // ----------------------------------------------------------------------------
5
+ // The marks in this module (Visa, Mastercard, American Express, Discover,
6
+ // UnionPay, Western Union, MoneyGram, Apple Pay, Google Pay, PayPal, SWIFT,
7
+ // NUMO, Moamalat, LyPay, OnePay, Sadad, Tadawul, etc.) are THIRD-PARTY
8
+ // TRADEMARKS owned by their respective owners. They are provided here ONLY as
9
+ // SIMPLIFIED, SCHEMATIC IDENTIFICATION MARKS / PLACEHOLDERS so a UI can label a
10
+ // payment method — they are deliberately NOT pixel-exact reproductions of any
11
+ // official logo.
12
+ //
13
+ // These marks are NOT original Neptune Odyssey artwork and are NOT licensed
14
+ // under the Neptune Odyssey Community License. They are kept SEPARATE from the
15
+ // monochrome ICONS set on purpose. In production, replace each with the brand's
16
+ // OFFICIAL asset and follow that brand's brand/usage guidelines.
17
+ //
18
+ // The Libyan / local marks (NUMO, Moamalat, LyPay, OnePay, Sadad, Tadawul) are
19
+ // NEUTRAL PLACEHOLDERS (a simple badge + initials) — we do not ship their real
20
+ // assets. Replace them with official artwork before shipping.
21
+ //
22
+ // Unlike the stroke ICONS, brand marks are multicolour: each value is a
23
+ // COMPLETE <svg> string (with its own viewBox), not just inner markup.
24
+ /**
25
+ * name → complete multicolour <svg> string.
26
+ *
27
+ * Card-ratio canvas (viewBox 0 0 48 32) for wide marks; 32×32 for square
28
+ * badges. A neutral card body (#F4F5F7 fill, #E1E3E8 hairline) frames most
29
+ * marks so they sit well on any surface.
30
+ */
31
+ export const BRAND_MARKS = {
32
+ // ── Card networks ───────────────────────────────────────────────────
33
+ visa: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Visa" data-npt-brand-mark="visa">' +
34
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
35
+ '<text x="24" y="21.5" font-family="Arial, Helvetica, sans-serif" font-size="13" font-style="italic" font-weight="700" fill="#1A1F71" text-anchor="middle" letter-spacing="0.5">VISA</text>' +
36
+ '</svg>',
37
+ mastercard: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Mastercard" data-npt-brand-mark="mastercard">' +
38
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
39
+ '<circle cx="20" cy="16" r="8" fill="#EB001B"/><circle cx="28" cy="16" r="8" fill="#F79E1B"/>' +
40
+ '<path d="M24 9.7a8 8 0 0 0 0 12.6 8 8 0 0 0 0-12.6Z" fill="#FF5F00"/>' +
41
+ '</svg>',
42
+ amex: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="American Express" data-npt-brand-mark="amex">' +
43
+ '<rect width="48" height="32" rx="4" fill="#2E77BC"/>' +
44
+ '<rect x="6" y="9" width="36" height="14" rx="2" fill="#FFFFFF" fill-opacity="0.12"/>' +
45
+ '<text x="24" y="20.5" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="700" fill="#FFFFFF" text-anchor="middle" letter-spacing="1">AMEX</text>' +
46
+ '</svg>',
47
+ discover: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Discover" data-npt-brand-mark="discover">' +
48
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
49
+ '<text x="21" y="20.5" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="700" fill="#231F20" text-anchor="middle" letter-spacing="0.3">DISC</text>' +
50
+ '<circle cx="36" cy="17" r="6" fill="#F58220"/>' +
51
+ '</svg>',
52
+ unionpay: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="UnionPay" data-npt-brand-mark="unionpay">' +
53
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
54
+ '<rect x="10" y="7" width="9" height="18" rx="2" fill="#E21836"/>' +
55
+ '<rect x="19" y="7" width="9" height="18" rx="2" fill="#00447C"/>' +
56
+ '<rect x="28" y="7" width="9" height="18" rx="2" fill="#007B84"/>' +
57
+ '<text x="24" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="6" font-weight="700" fill="#FFFFFF" text-anchor="middle">UPAY</text>' +
58
+ '</svg>',
59
+ // ── Money transfer ──────────────────────────────────────────────────
60
+ "western-union": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Western Union" data-npt-brand-mark="western-union">' +
61
+ '<rect width="48" height="32" rx="4" fill="#FFDD00"/>' +
62
+ '<text x="24" y="14.5" font-family="Arial, Helvetica, sans-serif" font-size="7" font-weight="700" fill="#000000" text-anchor="middle" letter-spacing="0.5">WESTERN</text>' +
63
+ '<text x="24" y="23.5" font-family="Arial, Helvetica, sans-serif" font-size="7" font-weight="700" fill="#000000" text-anchor="middle" letter-spacing="0.5">UNION</text>' +
64
+ '</svg>',
65
+ moneygram: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="MoneyGram" data-npt-brand-mark="moneygram">' +
66
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
67
+ '<circle cx="13" cy="16" r="5" fill="#E51937"/>' +
68
+ '<text x="29" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="7" font-weight="700" fill="#E51937" text-anchor="middle">MGRAM</text>' +
69
+ '</svg>',
70
+ // ── Libyan / local — PLACEHOLDERS (replace with official assets) ─────
71
+ numo: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="NUMO (placeholder mark)" data-npt-brand-mark="numo" data-placeholder="true">' +
72
+ '<rect width="48" height="32" rx="4" fill="#0E2A47"/>' +
73
+ '<rect x="6" y="8" width="36" height="16" rx="3" fill="none" stroke="#5AA9E6" stroke-width="1.4"/>' +
74
+ '<text x="24" y="21" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="700" fill="#FFFFFF" text-anchor="middle" letter-spacing="1.5">NUMO</text>' +
75
+ '</svg>',
76
+ moamalat: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Moamalat (placeholder mark)" data-npt-brand-mark="moamalat" data-placeholder="true">' +
77
+ '<rect width="48" height="32" rx="4" fill="#1C7A4D"/>' +
78
+ '<circle cx="13" cy="16" r="6" fill="none" stroke="#FFFFFF" stroke-width="1.4"/>' +
79
+ '<text x="13" y="19" font-family="Arial, Helvetica, sans-serif" font-size="8" font-weight="700" fill="#FFFFFF" text-anchor="middle">M</text>' +
80
+ '<text x="30" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="7" font-weight="700" fill="#FFFFFF" text-anchor="middle">MOAM</text>' +
81
+ '</svg>',
82
+ lypay: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="LyPay (placeholder mark)" data-npt-brand-mark="lypay" data-placeholder="true">' +
83
+ '<rect width="48" height="32" rx="4" fill="#0B6E4F"/>' +
84
+ '<rect x="7" y="9" width="34" height="14" rx="7" fill="#FFFFFF" fill-opacity="0.1"/>' +
85
+ '<text x="24" y="21" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="700" fill="#FFFFFF" text-anchor="middle" letter-spacing="0.5">LyPay</text>' +
86
+ '</svg>',
87
+ onepay: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="OnePay (placeholder mark)" data-npt-brand-mark="onepay" data-placeholder="true">' +
88
+ '<rect width="48" height="32" rx="4" fill="#243B6B"/>' +
89
+ '<circle cx="13" cy="16" r="6.5" fill="none" stroke="#F5A623" stroke-width="1.6"/>' +
90
+ '<text x="13" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="700" fill="#F5A623" text-anchor="middle">1</text>' +
91
+ '<text x="30" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="7" font-weight="700" fill="#FFFFFF" text-anchor="middle">PAY</text>' +
92
+ '</svg>',
93
+ sadad: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Sadad (placeholder mark)" data-npt-brand-mark="sadad" data-placeholder="true">' +
94
+ '<rect width="48" height="32" rx="4" fill="#5B2E91"/>' +
95
+ '<rect x="7" y="9" width="34" height="14" rx="3" fill="#FFFFFF" fill-opacity="0.1"/>' +
96
+ '<text x="24" y="21" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="700" fill="#FFFFFF" text-anchor="middle" letter-spacing="1">SADAD</text>' +
97
+ '</svg>',
98
+ tadawul: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Tadawul (placeholder mark)" data-npt-brand-mark="tadawul" data-placeholder="true">' +
99
+ '<rect width="48" height="32" rx="4" fill="#1A4D4D"/>' +
100
+ '<path d="M9 20l5-5 4 3 6-7" fill="none" stroke="#3FC1C9" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>' +
101
+ '<text x="32" y="20" font-family="Arial, Helvetica, sans-serif" font-size="6" font-weight="700" fill="#FFFFFF" text-anchor="middle">TDWL</text>' +
102
+ '</svg>',
103
+ // ── Wallets / generic ───────────────────────────────────────────────
104
+ "apple-pay": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Apple Pay" data-npt-brand-mark="apple-pay">' +
105
+ '<rect width="48" height="32" rx="4" fill="#FFFFFF"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
106
+ '<path d="M14.4 12.1c.5-.6.8-1.4.7-2.2-.7 0-1.5.5-2 1.1-.4.5-.8 1.3-.7 2.1.8.1 1.5-.4 2-1Zm.7 1.1c-1.1-.1-2 .6-2.5.6-.5 0-1.3-.6-2.1-.6-1.1 0-2.1.6-2.7 1.6-1.1 2-.3 4.9.8 6.5.5.8 1.2 1.7 2 1.6.8 0 1.1-.5 2.1-.5s1.3.5 2.1.5c.9 0 1.4-.8 2-1.5.6-.9.8-1.7.9-1.8 0 0-1.7-.7-1.7-2.6 0-1.6 1.3-2.4 1.4-2.4-.8-1.1-2-1.4-2.3-1.5Z" fill="#000000"/>' +
107
+ '<text x="33" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="600" fill="#000000" text-anchor="middle">Pay</text>' +
108
+ '</svg>',
109
+ "google-pay": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Google Pay" data-npt-brand-mark="google-pay">' +
110
+ '<rect width="48" height="32" rx="4" fill="#FFFFFF"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
111
+ '<path d="M16 16.2v2.1h3a2.6 2.6 0 0 1-1.1 1.7 3.2 3.2 0 1 1-1-4.6l1.5-1.5a5.3 5.3 0 1 0 1.6 4.5h-5Z" fill="#4285F4"/>' +
112
+ '<path d="M19 16.2h-3v2.1h3a3 3 0 0 0 .1-.8 4 4 0 0 0-.1-1.3Z" fill="#34A853"/>' +
113
+ '<text x="33" y="19.5" font-family="Arial, Helvetica, sans-serif" font-size="9" font-weight="600" fill="#5F6368" text-anchor="middle">Pay</text>' +
114
+ '</svg>',
115
+ paypal: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="PayPal" data-npt-brand-mark="paypal">' +
116
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
117
+ '<path d="M15 9h5.2c2.4 0 4 1.4 3.6 3.9-.4 2.6-2.4 3.9-4.9 3.9h-1.7l-.7 4.3h-2.9L15 9Z" fill="#003087"/>' +
118
+ '<path d="M18 11h4.3c2.4 0 4 1.4 3.6 3.9-.4 2.6-2.4 3.9-4.9 3.9h-1.7l-.7 4.3h-2.9L18 11Z" fill="#009CDE"/>' +
119
+ '<text x="34" y="20" font-family="Arial, Helvetica, sans-serif" font-size="7" font-weight="700" fill="#003087" text-anchor="middle">Pal</text>' +
120
+ '</svg>',
121
+ swift: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="SWIFT" data-npt-brand-mark="swift">' +
122
+ '<rect width="48" height="32" rx="4" fill="#0033A0"/>' +
123
+ '<text x="24" y="20.5" font-family="Arial, Helvetica, sans-serif" font-size="10" font-weight="700" fill="#FFFFFF" text-anchor="middle" letter-spacing="1.5">SWIFT</text>' +
124
+ '</svg>',
125
+ mada: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="mada-style domestic scheme (generic)" data-npt-brand-mark="mada" data-placeholder="true">' +
126
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
127
+ '<rect x="9" y="13" width="14" height="6" rx="3" fill="#84BD00"/>' +
128
+ '<rect x="25" y="13" width="14" height="6" rx="3" fill="#1F3661"/>' +
129
+ '</svg>',
130
+ "generic-card": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Card" data-npt-brand-mark="generic-card">' +
131
+ '<rect width="48" height="32" rx="4" fill="#3C4858"/>' +
132
+ '<rect x="6" y="11" width="8" height="6" rx="1.2" fill="#E8C56B"/>' +
133
+ '<path d="M6 22h20" stroke="#FFFFFF" stroke-width="1.4" stroke-linecap="round" stroke-opacity="0.7"/>' +
134
+ '<path d="M30 22h12" stroke="#FFFFFF" stroke-width="1.4" stroke-linecap="round" stroke-opacity="0.4"/>' +
135
+ '</svg>',
136
+ "contactless-pay": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Contactless payment" data-npt-brand-mark="contactless-pay">' +
137
+ '<rect width="48" height="32" rx="4" fill="#F4F5F7"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
138
+ '<g fill="none" stroke="#1F6FEB" stroke-width="1.8" stroke-linecap="round">' +
139
+ '<path d="M18 12a8 8 0 0 1 0 8"/><path d="M22 9.5a12 12 0 0 1 0 13"/><path d="M26 7.5a16 16 0 0 1 0 17"/></g>' +
140
+ '</svg>',
141
+ cash: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Cash" data-npt-brand-mark="cash">' +
142
+ '<rect width="48" height="32" rx="4" fill="#E8F5E9"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#C8E6C9"/>' +
143
+ '<rect x="9" y="9" width="30" height="14" rx="2" fill="#2E7D32"/>' +
144
+ '<circle cx="24" cy="16" r="4" fill="none" stroke="#A5D6A7" stroke-width="1.4"/>' +
145
+ '<text x="24" y="18.5" font-family="Arial, Helvetica, sans-serif" font-size="6" font-weight="700" fill="#A5D6A7" text-anchor="middle">$</text>' +
146
+ '</svg>',
147
+ "bank-building": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 32" role="img" aria-label="Bank" data-npt-brand-mark="bank-building">' +
148
+ '<rect width="48" height="32" rx="4" fill="#EEF1F6"/><rect x="0.5" y="0.5" width="47" height="31" rx="3.5" fill="none" stroke="#E1E3E8"/>' +
149
+ '<g fill="none" stroke="#2A3A5A" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">' +
150
+ '<path d="M14 14l10-5 10 5"/><path d="M16 14v7"/><path d="M21 14v7"/><path d="M27 14v7"/><path d="M32 14v7"/><path d="M13 23h22"/></g>' +
151
+ '</svg>',
152
+ };
153
+ /** All brand-mark names, in catalogue order. */
154
+ export const BRAND_MARK_NAMES = [
155
+ "visa",
156
+ "mastercard",
157
+ "amex",
158
+ "discover",
159
+ "unionpay",
160
+ "western-union",
161
+ "moneygram",
162
+ "numo",
163
+ "moamalat",
164
+ "lypay",
165
+ "onepay",
166
+ "sadad",
167
+ "tadawul",
168
+ "apple-pay",
169
+ "google-pay",
170
+ "paypal",
171
+ "swift",
172
+ "mada",
173
+ "generic-card",
174
+ "contactless-pay",
175
+ "cash",
176
+ "bank-building",
177
+ ];
178
+ /** True when `name` is a known brand mark. Acts as a type guard. */
179
+ export function isBrandMarkName(name) {
180
+ return Object.prototype.hasOwnProperty.call(BRAND_MARKS, name);
181
+ }
182
+ /**
183
+ * Return the complete multicolour <svg> for `name`, sized to a given height.
184
+ * Aspect ratio is preserved from the mark's intrinsic viewBox.
185
+ * @throws RangeError when `name` is not a known BrandMarkName.
186
+ */
187
+ export function brandMarkSvg(name, opts = {}) {
188
+ if (!isBrandMarkName(name)) {
189
+ throw new RangeError(`Unknown Neptune brand mark: "${String(name)}"`);
190
+ }
191
+ const svg = BRAND_MARKS[name];
192
+ if (opts.height === undefined)
193
+ return svg;
194
+ const vb = svg.match(/viewBox="0 0 (\d+(?:\.\d+)?) (\d+(?:\.\d+)?)"/);
195
+ const vbW = vb ? Number(vb[1]) : 48;
196
+ const vbH = vb ? Number(vb[2]) : 32;
197
+ const height = opts.height;
198
+ const width = Math.round((height * vbW) / vbH * 100) / 100;
199
+ // Inject width/height after the opening "<svg" — replace any existing ones.
200
+ let head = svg.slice(0, svg.indexOf(">"));
201
+ head = head.replace(/\s(?:width|height)="[^"]*"/g, "");
202
+ head += ` width="${width}" height="${height}"`;
203
+ return head + svg.slice(svg.indexOf(">"));
204
+ }
205
+ //# sourceMappingURL=brand-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brand-marks.js","sourceRoot":"","sources":["../src/brand-marks.ts"],"names":[],"mappings":"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"}
package/dist/element.d.ts CHANGED
@@ -20,4 +20,30 @@ export declare class NptIcon extends HTMLElement {
20
20
  }
21
21
  /** Register <npt-icon> in a browser, idempotently. SSR-safe (no-op on server). */
22
22
  export declare function registerIcons(): void;
23
+ /**
24
+ * <npt-brand-mark name="visa" height="24"></npt-brand-mark>
25
+ *
26
+ * Renders a complete MULTICOLOUR third-party brand mark (identification
27
+ * placeholder). Unlike <npt-icon> these are NOT themeable by currentColor.
28
+ *
29
+ * Reactive attributes:
30
+ * - `name` — a BrandMarkName; unknown names render nothing.
31
+ * - `height` — px, default 24. Width scales to preserve aspect ratio.
32
+ */
33
+ export declare class NptBrandMark extends HTMLElement {
34
+ static observedAttributes: string[];
35
+ private root;
36
+ constructor();
37
+ connectedCallback(): void;
38
+ attributeChangedCallback(): void;
39
+ get name(): string;
40
+ set name(v: string);
41
+ get height(): number;
42
+ set height(v: number);
43
+ private update;
44
+ }
45
+ /** Register <npt-brand-mark> in a browser, idempotently. SSR-safe. */
46
+ export declare function registerBrandMarks(): void;
47
+ /** Register both <npt-icon> and <npt-brand-mark>. Browser-only, idempotent. */
48
+ export declare function register(): void;
23
49
  //# sourceMappingURL=element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAiCA;;;;;;;GAOG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC,MAAM,CAAC,kBAAkB,WAA8B;IAEvD,OAAO,CAAC,IAAI,CAAa;;IAOzB,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,IAAI,IAAI;IAIhC,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IAED,OAAO,CAAC,MAAM;CAYf;AAED,kFAAkF;AAClF,wBAAgB,aAAa,IAAI,IAAI,CAGpC"}
1
+ {"version":3,"file":"element.d.ts","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"AAmCA;;;;;;;GAOG;AACH,qBAAa,OAAQ,SAAQ,WAAW;IACtC,MAAM,CAAC,kBAAkB,WAA8B;IAEvD,OAAO,CAAC,IAAI,CAAa;;IAOzB,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,IAAI,IAAI;IAIhC,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IAED,OAAO,CAAC,MAAM;CAYf;AAED,kFAAkF;AAClF,wBAAgB,aAAa,IAAI,IAAI,CAGpC;AAkBD;;;;;;;;;GASG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,kBAAkB,WAAsB;IAE/C,OAAO,CAAC,IAAI,CAAa;;IAOzB,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,IAAI,IAAI;IAIhC,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,EAEjB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,IAAI,MAAM,CAAC,CAAC,EAAE,MAAM,EAEnB;IAED,OAAO,CAAC,MAAM;CAUf;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED,+EAA+E;AAC/E,wBAAgB,QAAQ,IAAI,IAAI,CAG/B"}
package/dist/element.js CHANGED
@@ -11,7 +11,9 @@
11
11
  // theme resolves (e.g. --md-sys-color-on-surface). SSR-safe: nothing touches
12
12
  // the DOM at import time; registerIcons() is a no-op outside the browser.
13
13
  import { iconSvg, isIconName } from "./svg.js";
14
+ import { brandMarkSvg, isBrandMarkName } from "./brand-marks.js";
14
15
  const TAG = "npt-icon";
16
+ const BRAND_TAG = "npt-brand-mark";
15
17
  let sheet = null;
16
18
  function styleSheet() {
17
19
  if (typeof CSSStyleSheet === "undefined")
@@ -77,4 +79,74 @@ export function registerIcons() {
77
79
  if (!customElements.get(TAG))
78
80
  customElements.define(TAG, NptIcon);
79
81
  }
82
+ let brandSheet = null;
83
+ function brandStyleSheet() {
84
+ if (typeof CSSStyleSheet === "undefined")
85
+ return null;
86
+ if (!brandSheet) {
87
+ brandSheet = new CSSStyleSheet();
88
+ brandSheet.replaceSync(`:host{display:inline-flex;align-items:center;justify-content:center;line-height:0;` +
89
+ `vertical-align:middle}` +
90
+ `:host([hidden]){display:none}` +
91
+ `svg{display:block;height:var(--_h)}`);
92
+ }
93
+ return brandSheet;
94
+ }
95
+ /**
96
+ * <npt-brand-mark name="visa" height="24"></npt-brand-mark>
97
+ *
98
+ * Renders a complete MULTICOLOUR third-party brand mark (identification
99
+ * placeholder). Unlike <npt-icon> these are NOT themeable by currentColor.
100
+ *
101
+ * Reactive attributes:
102
+ * - `name` — a BrandMarkName; unknown names render nothing.
103
+ * - `height` — px, default 24. Width scales to preserve aspect ratio.
104
+ */
105
+ export class NptBrandMark extends HTMLElement {
106
+ constructor() {
107
+ super();
108
+ this.root = this.attachShadow({ mode: "open" });
109
+ }
110
+ connectedCallback() {
111
+ this.update();
112
+ }
113
+ attributeChangedCallback() {
114
+ if (this.isConnected)
115
+ this.update();
116
+ }
117
+ get name() {
118
+ return this.getAttribute("name") ?? "";
119
+ }
120
+ set name(v) {
121
+ this.setAttribute("name", v);
122
+ }
123
+ get height() {
124
+ return Number(this.getAttribute("height")) || 24;
125
+ }
126
+ set height(v) {
127
+ this.setAttribute("height", String(v));
128
+ }
129
+ update() {
130
+ const s = brandStyleSheet();
131
+ if (s)
132
+ this.root.adoptedStyleSheets = [s];
133
+ const height = this.height;
134
+ this.root.host.style.setProperty("--_h", `${height}px`);
135
+ const name = this.name;
136
+ this.root.innerHTML = isBrandMarkName(name) ? brandMarkSvg(name, { height }) : "";
137
+ }
138
+ }
139
+ NptBrandMark.observedAttributes = ["name", "height"];
140
+ /** Register <npt-brand-mark> in a browser, idempotently. SSR-safe. */
141
+ export function registerBrandMarks() {
142
+ if (typeof customElements === "undefined")
143
+ return;
144
+ if (!customElements.get(BRAND_TAG))
145
+ customElements.define(BRAND_TAG, NptBrandMark);
146
+ }
147
+ /** Register both <npt-icon> and <npt-brand-mark>. Browser-only, idempotent. */
148
+ export function register() {
149
+ registerIcons();
150
+ registerBrandMarks();
151
+ }
80
152
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,gFAAgF;AAChF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAkJ1C,CAAC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,gFAAgF;AAChF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CA4K1C,CAAC"}
package/dist/icons.js CHANGED
@@ -83,5 +83,18 @@ export const ICONS = {
83
83
  language: '<circle cx="12" cy="12" r="8.5"/><path d="M3.5 12h17"/><path d="M12 3.5c2.4 2.3 3.7 5.3 3.7 8.5S14.4 18.2 12 20.5c-2.4-2.3-3.7-5.3-3.7-8.5S9.6 5.8 12 3.5Z"/>',
84
84
  moon: '<path d="M20 13.5A8 8 0 0 1 10.5 4 8 8 0 1 0 20 13.5Z"/>',
85
85
  sun: '<circle cx="12" cy="12" r="4"/><path d="M12 3v2.2"/><path d="M12 18.8V21"/><path d="M3 12h2.2"/><path d="M18.8 12H21"/><path d="m5.4 5.4 1.6 1.6"/><path d="m17 17 1.6 1.6"/><path d="m18.6 5.4-1.6 1.6"/><path d="m7 17-1.6 1.6"/>',
86
+ // ── Fintech & payments ──────────────────────────────────────────────
87
+ atm: '<rect x="4" y="4.5" width="16" height="15" rx="2"/><path d="M4 9h16"/><path d="M7.5 13h3"/><path d="M7.5 16h6"/><path d="M16 13.5v3"/>',
88
+ "pos-terminal": '<rect x="6" y="3.5" width="12" height="17" rx="2"/><path d="M6 8h12"/><path d="M9 5.5h6"/><path d="M9 12h2"/><path d="M13 12h2"/><path d="M9 15.5h2"/><path d="M13 15.5h2"/>',
89
+ coins: '<ellipse cx="9" cy="7" rx="5" ry="2.5"/><path d="M4 7v4c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5V7"/><ellipse cx="15" cy="15" rx="5" ry="2.5"/><path d="M10 15v4c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5v-4"/>',
90
+ "cash-stack": '<rect x="3" y="7" width="18" height="11" rx="2"/><circle cx="12" cy="12.5" r="2.4"/><path d="M3 11h2"/><path d="M19 11h2"/><path d="M5 5h14"/>',
91
+ invoice: '<path d="M6 3.5h9l3 3V20a.8.8 0 0 1-1.2.7L15 19.5l-1.5 1.2a1 1 0 0 1-1.2 0L10.8 19.5 9.3 20.7a1 1 0 0 1-1.2 0L6.6 19.5 5.2 20.7A.8.8 0 0 1 4 20V5.5A2 2 0 0 1 6 3.5Z"/><path d="M12 8.5v6"/><path d="M13.8 10h-2.6a1.4 1.4 0 0 0 0 2.8h1.6a1.4 1.4 0 0 1 0 2.8H10"/>',
92
+ "pie-budget": '<circle cx="12" cy="12" r="8.5"/><path d="M12 12V3.5"/><path d="M12 12l6 6"/>',
93
+ "exchange-rate": '<path d="M4 8h10l-3-3"/><path d="M4 8V6"/><path d="M20 16H10l3 3"/><path d="M20 16v2"/><path d="M6.2 13h1.6"/><path d="M7 12.2v1.6"/><path d="M16.2 11h1.6"/>',
94
+ crypto: '<circle cx="12" cy="12" r="8.5"/><path d="M9.5 8h4a2.2 2.2 0 0 1 0 4.4h-4"/><path d="M9.5 12.4h4.3a2.2 2.2 0 0 1 0 4.4H9.5"/><path d="M9.5 8v8.8"/><path d="M11 6.5v1.5"/><path d="M11 16.8v1.5"/><path d="M13 6.5v1.5"/><path d="M13 16.8v1.5"/>',
95
+ loan: '<circle cx="12" cy="12" r="8.5"/><path d="M12 6.5v11"/><path d="M14.5 8.5h-3.2a2 2 0 0 0 0 4h2.4a2 2 0 0 1 0 4H10"/><path d="m17 5 3 3-3 3"/><path d="M20 8h-6"/>',
96
+ insurance: '<path d="M12 3.5 19 6v5.5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6Z"/><path d="M12 8.5v7"/><path d="M8.5 12h7"/>',
97
+ "split-bill": '<circle cx="8" cy="8" r="3"/><circle cx="16" cy="8" r="3"/><path d="M3.5 19a4.5 4.5 0 0 1 9 0"/><path d="M11.5 19a4.5 4.5 0 0 1 9 0"/>',
98
+ "tap-to-pay": '<rect x="3" y="6" width="13" height="12" rx="2.5"/><path d="M3 10h13"/><path d="M6.5 14.5h3"/><path d="M19 8.5a6 6 0 0 1 0 7"/><path d="M21.5 6.5a9 9 0 0 1 0 11"/>',
86
99
  };
87
100
  //# sourceMappingURL=icons.js.map
package/dist/icons.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,+EAA+E;AAC/E,gFAAgF;AAChF,yEAAyE;AACzE,EAAE;AACF,2EAA2E;AAI3E,gFAAgF;AAChF,MAAM,CAAC,MAAM,KAAK,GAA6B;IAC7C,uEAAuE;IACvE,IAAI,EACF,0GAA0G;IAC5G,QAAQ,EACN,4FAA4F;IAC9F,IAAI,EACF,iGAAiG;IACnG,UAAU,EACR,8JAA8J;IAChK,MAAM,EACJ,iLAAiL;IACnL,QAAQ,EACN,kDAAkD;IACpD,IAAI,EACF,+DAA+D;IACjE,OAAO,EACL,6EAA6E;IAC/E,OAAO,EACL,6EAA6E;IAC/E,eAAe,EACb,gGAAgG;IAClG,SAAS,EACP,yOAAyO;IAC3O,WAAW,EACT,sGAAsG;IAExG,uEAAuE;IACvE,IAAI,EACF,oNAAoN;IACtN,OAAO,EACL,4MAA4M;IAC9M,SAAS,EACP,qHAAqH;IACvH,GAAG,EACD,+OAA+O;IACjP,QAAQ,EACN,8EAA8E;IAChF,MAAM,EACJ,6EAA6E;IAE/E,uEAAuE;IACvE,MAAM,EACJ,6DAA6D;IAC/D,MAAM,EACJ,6DAA6D;IAC/D,QAAQ,EACN,6OAA6O;IAE/O,uEAAuE;IACvE,IAAI,EACF,0EAA0E;IAC5E,KAAK,EACH,kJAAkJ;IACpJ,iBAAiB,EACf,0FAA0F;IAC5F,IAAI,EACF,+JAA+J;IACjK,MAAM,EACJ,+JAA+J;IACjK,GAAG,EACD,iHAAiH;IACnH,WAAW,EACT,2OAA2O;IAC7O,SAAS,EACP,iSAAiS;IAEnS,uEAAuE;IACvE,IAAI,EACF,wFAAwF;IAC1F,GAAG,EACD,2GAA2G;IAC7G,SAAS,EACP,kPAAkP;IACpP,IAAI,EACF,yHAAyH;IAC3H,eAAe,EACb,sEAAsE;IACxE,OAAO,EACL,qHAAqH;IACvH,KAAK,EACH,uHAAuH;IACzH,KAAK,EACH,8CAA8C;IAChD,IAAI,EACF,0CAA0C;IAC5C,KAAK,EACH,sBAAsB;IAExB,uEAAuE;IACvE,YAAY,EACV,wEAAwE;IAC1E,WAAW,EACT,8EAA8E;IAChF,aAAa,EACX,oDAAoD;IACtD,eAAe,EACb,qDAAqD;IACvD,OAAO,EACL,sHAAsH;IAExH,uEAAuE;IACvE,QAAQ,EACN,0HAA0H;IAC5H,KAAK,EACH,6DAA6D;IAC/D,QAAQ,EACN,8GAA8G;IAChH,KAAK,EACH,oHAAoH;IACtH,IAAI,EACF,wFAAwF;IAE1F,uEAAuE;IACvE,OAAO,EACL,mKAAmK;IAErK,uEAAuE;IACvE,eAAe,EACb,qCAAqC;IACvC,cAAc,EACZ,oCAAoC;IACtC,aAAa,EACX,+CAA+C;IACjD,YAAY,EACV,+CAA+C;IAEjD,uEAAuE;IACvE,IAAI,EACF,6DAA6D;IAC/D,iBAAiB,EACf,8MAA8M;IAChN,eAAe,EACb,8MAA8M;IAChN,IAAI,EACF,wHAAwH;IAC1H,KAAK,EACH,6JAA6J;IAC/J,MAAM,EACJ,0HAA0H;IAC5H,QAAQ,EACN,+JAA+J;IACjK,IAAI,EACF,0DAA0D;IAC5D,GAAG,EACD,qOAAqO;CACxO,CAAC"}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,9 @@ export type { IconName } from "./types.js";
4
4
  export { iconSvg, isIconName } from "./svg.js";
5
5
  export type { IconSvgOptions } from "./svg.js";
6
6
  export { NptIcon, registerIcons } from "./element.js";
7
+ export { BRAND_MARKS, BRAND_MARK_NAMES, brandMarkSvg, isBrandMarkName } from "./brand-marks.js";
8
+ export type { BrandMarkName, BrandMarkOptions } from "./brand-marks.js";
9
+ export { NptBrandMark, registerBrandMarks, register } from "./element.js";
7
10
  /** Semantic version of the icon family (kept in lockstep with package.json). */
8
- export declare const ICONS_VERSION = "2.0.0";
11
+ export declare const ICONS_VERSION = "2.1.0";
9
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtD,gFAAgF;AAChF,eAAO,MAAM,aAAa,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKtD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChG,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1E,gFAAgF;AAChF,eAAO,MAAM,aAAa,UAAU,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,11 @@ export { ICONS } from "./icons.js";
12
12
  export { ICON_NAMES } from "./types.js";
13
13
  export { iconSvg, isIconName } from "./svg.js";
14
14
  export { NptIcon, registerIcons } from "./element.js";
15
+ // ── Brand marks (third-party trademarks — identification placeholders) ──
16
+ // NOT original Neptune artwork and NOT under the Neptune Odyssey Community
17
+ // License. See brand-marks.ts and NOTICE-brand-marks.md.
18
+ export { BRAND_MARKS, BRAND_MARK_NAMES, brandMarkSvg, isBrandMarkName } from "./brand-marks.js";
19
+ export { NptBrandMark, registerBrandMarks, register } from "./element.js";
15
20
  /** Semantic version of the icon family (kept in lockstep with package.json). */
16
- export const ICONS_VERSION = "2.0.0";
21
+ export const ICONS_VERSION = "2.1.0";
17
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4EAA4E;AAC5E,2EAA2E;AAC3E,EAAE;AACF,uBAAuB;AACvB,+EAA+E;AAC/E,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,+DAA+D;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtD,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,4EAA4E;AAC5E,2EAA2E;AAC3E,EAAE;AACF,uBAAuB;AACvB,+EAA+E;AAC/E,iFAAiF;AACjF,EAAE;AACF,6EAA6E;AAC7E,+DAA+D;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEtD,2EAA2E;AAC3E,2EAA2E;AAC3E,yDAAyD;AACzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEhG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE1E,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /** Every icon shipped by the Neptune Odyssey icon family. */
2
- export type IconName = "home" | "accounts" | "card" | "card-add" | "wallet" | "transfer" | "send" | "receive" | "request" | "swap-exchange" | "qr-code" | "contactless" | "bill" | "receipt" | "statement" | "pdf" | "download" | "upload" | "search" | "filter" | "settings" | "user" | "users" | "security-shield" | "lock" | "unlock" | "key" | "fingerprint" | "face-id" | "bell" | "eye" | "eye-off" | "info" | "success-check" | "warning" | "error" | "close" | "plus" | "minus" | "chart-line" | "chart-pie" | "trending-up" | "trending-down" | "savings" | "calendar" | "clock" | "location" | "phone" | "mail" | "support" | "chevron-right" | "chevron-down" | "arrow-right" | "arrow-left" | "menu" | "more-horizontal" | "more-vertical" | "copy" | "share" | "logout" | "language" | "moon" | "sun";
2
+ export type IconName = "home" | "accounts" | "card" | "card-add" | "wallet" | "transfer" | "send" | "receive" | "request" | "swap-exchange" | "qr-code" | "contactless" | "bill" | "receipt" | "statement" | "pdf" | "download" | "upload" | "search" | "filter" | "settings" | "user" | "users" | "security-shield" | "lock" | "unlock" | "key" | "fingerprint" | "face-id" | "bell" | "eye" | "eye-off" | "info" | "success-check" | "warning" | "error" | "close" | "plus" | "minus" | "chart-line" | "chart-pie" | "trending-up" | "trending-down" | "savings" | "calendar" | "clock" | "location" | "phone" | "mail" | "support" | "chevron-right" | "chevron-down" | "arrow-right" | "arrow-left" | "menu" | "more-horizontal" | "more-vertical" | "copy" | "share" | "logout" | "language" | "moon" | "sun" | "atm" | "pos-terminal" | "coins" | "cash-stack" | "invoice" | "pie-budget" | "exchange-rate" | "crypto" | "loan" | "insurance" | "split-bill" | "tap-to-pay";
3
3
  /** All icon names, in catalogue order. */
4
4
  export declare const ICON_NAMES: IconName[];
5
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,6DAA6D;AAC7D,MAAM,MAAM,QAAQ,GAEhB,MAAM,GACN,UAAU,GACV,MAAM,GACN,UAAU,GACV,QAAQ,GACR,UAAU,GACV,MAAM,GACN,SAAS,GACT,SAAS,GACT,eAAe,GACf,SAAS,GACT,aAAa,GAEb,MAAM,GACN,SAAS,GACT,WAAW,GACX,KAAK,GACL,UAAU,GACV,QAAQ,GAER,QAAQ,GACR,QAAQ,GACR,UAAU,GAEV,MAAM,GACN,OAAO,GACP,iBAAiB,GACjB,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,SAAS,GAET,MAAM,GACN,KAAK,GACL,SAAS,GACT,MAAM,GACN,eAAe,GACf,SAAS,GACT,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GAEP,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,SAAS,GAET,UAAU,GACV,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GAEN,SAAS,GAET,eAAe,GACf,cAAc,GACd,aAAa,GACb,YAAY,GAEZ,MAAM,GACN,iBAAiB,GACjB,eAAe,GACf,MAAM,GACN,OAAO,GACP,QAAQ,GACR,UAAU,GACV,MAAM,GACN,KAAK,CAAC;AAEV,0CAA0C;AAC1C,eAAO,MAAM,UAAU,EAAE,QAAQ,EAgEhC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,6DAA6D;AAC7D,MAAM,MAAM,QAAQ,GAEhB,MAAM,GACN,UAAU,GACV,MAAM,GACN,UAAU,GACV,QAAQ,GACR,UAAU,GACV,MAAM,GACN,SAAS,GACT,SAAS,GACT,eAAe,GACf,SAAS,GACT,aAAa,GAEb,MAAM,GACN,SAAS,GACT,WAAW,GACX,KAAK,GACL,UAAU,GACV,QAAQ,GAER,QAAQ,GACR,QAAQ,GACR,UAAU,GAEV,MAAM,GACN,OAAO,GACP,iBAAiB,GACjB,MAAM,GACN,QAAQ,GACR,KAAK,GACL,aAAa,GACb,SAAS,GAET,MAAM,GACN,KAAK,GACL,SAAS,GACT,MAAM,GACN,eAAe,GACf,SAAS,GACT,OAAO,GACP,OAAO,GACP,MAAM,GACN,OAAO,GAEP,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,SAAS,GAET,UAAU,GACV,OAAO,GACP,UAAU,GACV,OAAO,GACP,MAAM,GAEN,SAAS,GAET,eAAe,GACf,cAAc,GACd,aAAa,GACb,YAAY,GAEZ,MAAM,GACN,iBAAiB,GACjB,eAAe,GACf,MAAM,GACN,OAAO,GACP,QAAQ,GACR,UAAU,GACV,MAAM,GACN,KAAK,GAEL,KAAK,GACL,cAAc,GACd,OAAO,GACP,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,MAAM,GACN,WAAW,GACX,YAAY,GACZ,YAAY,CAAC;AAEjB,0CAA0C;AAC1C,eAAO,MAAM,UAAU,EAAE,QAAQ,EA4EhC,CAAC"}
package/dist/types.js CHANGED
@@ -69,5 +69,17 @@ export const ICON_NAMES = [
69
69
  "language",
70
70
  "moon",
71
71
  "sun",
72
+ "atm",
73
+ "pos-terminal",
74
+ "coins",
75
+ "cash-stack",
76
+ "invoice",
77
+ "pie-budget",
78
+ "exchange-rate",
79
+ "crypto",
80
+ "loan",
81
+ "insurance",
82
+ "split-bill",
83
+ "tap-to-pay",
72
84
  ];
73
85
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AA8E5E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,MAAM;IACN,UAAU;IACV,MAAM;IACN,UAAU;IACV,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,SAAS;IACT,eAAe;IACf,SAAS;IACT,aAAa;IACb,MAAM;IACN,SAAS;IACT,WAAW;IACX,KAAK;IACL,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,MAAM;IACN,QAAQ;IACR,KAAK;IACL,aAAa;IACb,SAAS;IACT,MAAM;IACN,KAAK;IACL,SAAS;IACT,MAAM;IACN,eAAe;IACf,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,YAAY;IACZ,WAAW;IACX,aAAa;IACb,eAAe;IACf,SAAS;IACT,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;IACP,MAAM;IACN,SAAS;IACT,eAAe;IACf,cAAc;IACd,aAAa;IACb,YAAY;IACZ,MAAM;IACN,iBAAiB;IACjB,eAAe;IACf,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;CACN,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AA2F5E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAe;IACpC,MAAM;IACN,UAAU;IACV,MAAM;IACN,UAAU;IACV,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,SAAS;IACT,eAAe;IACf,SAAS;IACT,aAAa;IACb,MAAM;IACN,SAAS;IACT,WAAW;IACX,KAAK;IACL,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,OAAO;IACP,iBAAiB;IACjB,MAAM;IACN,QAAQ;IACR,KAAK;IACL,aAAa;IACb,SAAS;IACT,MAAM;IACN,KAAK;IACL,SAAS;IACT,MAAM;IACN,eAAe;IACf,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,YAAY;IACZ,WAAW;IACX,aAAa;IACb,eAAe;IACf,SAAS;IACT,UAAU;IACV,OAAO;IACP,UAAU;IACV,OAAO;IACP,MAAM;IACN,SAAS;IACT,eAAe;IACf,cAAc;IACd,aAAa;IACb,YAAY;IACZ,MAAM;IACN,iBAAiB;IACjB,eAAe;IACf,MAAM;IACN,OAAO;IACP,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;IACL,KAAK;IACL,cAAc;IACd,OAAO;IACP,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,eAAe;IACf,QAAQ;IACR,MAAM;IACN,WAAW;IACX,YAAY;IACZ,YAAY;CACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neptune.fintech/icons",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Neptune Odyssey icon library — an original, hand-authored 24px stroke icon family for banking & fintech, themeable via currentColor, usable from plain web or as the <npt-icon> custom element.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "author": "Neptune.Fintech (https://neptune.ly)",
@@ -25,7 +25,8 @@
25
25
  "files": [
26
26
  "dist",
27
27
  "LICENSE",
28
- "README.md"
28
+ "README.md",
29
+ "NOTICE-brand-marks.md"
29
30
  ],
30
31
  "publishConfig": {
31
32
  "access": "public"