@neptune.fintech/web-ui 2.0.0 → 2.2.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/README.md +24 -2
- package/dist/components/actions.d.ts +43 -0
- package/dist/components/actions.d.ts.map +1 -0
- package/dist/components/actions.js +279 -0
- package/dist/components/actions.js.map +1 -0
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.d.ts.map +1 -1
- package/dist/components/button.js +9 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/cards.d.ts +64 -0
- package/dist/components/cards.d.ts.map +1 -0
- package/dist/components/cards.js +498 -0
- package/dist/components/cards.js.map +1 -0
- package/dist/components/containers.d.ts +54 -0
- package/dist/components/containers.d.ts.map +1 -0
- package/dist/components/containers.js +298 -0
- package/dist/components/containers.js.map +1 -0
- package/dist/components/corporate.d.ts +84 -0
- package/dist/components/corporate.d.ts.map +1 -0
- package/dist/components/corporate.js +782 -0
- package/dist/components/corporate.js.map +1 -0
- package/dist/components/data-viz.d.ts +69 -0
- package/dist/components/data-viz.d.ts.map +1 -0
- package/dist/components/data-viz.js +526 -0
- package/dist/components/data-viz.js.map +1 -0
- package/dist/components/feedback-status.d.ts +80 -0
- package/dist/components/feedback-status.d.ts.map +1 -0
- package/dist/components/feedback-status.js +537 -0
- package/dist/components/feedback-status.js.map +1 -0
- package/dist/components/feedback.d.ts +42 -0
- package/dist/components/feedback.d.ts.map +1 -0
- package/dist/components/feedback.js +241 -0
- package/dist/components/feedback.js.map +1 -0
- package/dist/components/inputs.d.ts +8 -1
- package/dist/components/inputs.d.ts.map +1 -1
- package/dist/components/inputs.js +57 -3
- package/dist/components/inputs.js.map +1 -1
- package/dist/components/layout.d.ts +68 -0
- package/dist/components/layout.d.ts.map +1 -0
- package/dist/components/layout.js +359 -0
- package/dist/components/layout.js.map +1 -0
- package/dist/components/money-inputs.d.ts +105 -0
- package/dist/components/money-inputs.d.ts.map +1 -0
- package/dist/components/money-inputs.js +766 -0
- package/dist/components/money-inputs.js.map +1 -0
- package/dist/components/money-movement.d.ts +79 -0
- package/dist/components/money-movement.d.ts.map +1 -0
- package/dist/components/money-movement.js +740 -0
- package/dist/components/money-movement.js.map +1 -0
- package/dist/components/nav-rail.d.ts +22 -0
- package/dist/components/nav-rail.d.ts.map +1 -0
- package/dist/components/nav-rail.js +120 -0
- package/dist/components/nav-rail.js.map +1 -0
- package/dist/components/selection.d.ts +51 -0
- package/dist/components/selection.d.ts.map +1 -0
- package/dist/components/selection.js +377 -0
- package/dist/components/selection.js.map +1 -0
- package/dist/components/shell-layout.d.ts +103 -0
- package/dist/components/shell-layout.d.ts.map +1 -0
- package/dist/components/shell-layout.js +582 -0
- package/dist/components/shell-layout.js.map +1 -0
- package/dist/components/wallet-pay.d.ts +85 -0
- package/dist/components/wallet-pay.d.ts.map +1 -0
- package/dist/components/wallet-pay.js +633 -0
- package/dist/components/wallet-pay.js.map +1 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +103 -0
- package/dist/register.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
// © 2026 Neptune.Fintech (neptune.ly) · Neptune Odyssey Community License v1.0
|
|
2
|
+
// Neptune Odyssey — communication & feedback
|
|
3
|
+
// <npt-progress>, <npt-snackbar>, <npt-tooltip>, <npt-banner>.
|
|
4
|
+
// Custom-property driven only; logical layout → mirrors in RTL.
|
|
5
|
+
import { NptElement, css, html, A11Y } from "./base.js";
|
|
6
|
+
const esc = (v) => (v ?? "").replace(/[&<>"]/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """ })[c]);
|
|
7
|
+
/**
|
|
8
|
+
* <npt-progress variant="linear|circular" value="60" [indeterminate]></npt-progress>
|
|
9
|
+
* Omit value (or set [indeterminate]) for the indeterminate state.
|
|
10
|
+
*/
|
|
11
|
+
export class NptProgress extends NptElement {
|
|
12
|
+
attributeChangedCallback() {
|
|
13
|
+
if (this.isConnected)
|
|
14
|
+
this.update();
|
|
15
|
+
}
|
|
16
|
+
styles() {
|
|
17
|
+
return css `
|
|
18
|
+
${A11Y}
|
|
19
|
+
:host {
|
|
20
|
+
display: block;
|
|
21
|
+
}
|
|
22
|
+
.track {
|
|
23
|
+
block-size: 4px;
|
|
24
|
+
inline-size: 100%;
|
|
25
|
+
border-radius: var(--npt-corner-full, 999px);
|
|
26
|
+
background: var(--md-sys-color-surface-container-highest);
|
|
27
|
+
overflow: hidden;
|
|
28
|
+
}
|
|
29
|
+
.bar {
|
|
30
|
+
block-size: 100%;
|
|
31
|
+
background: var(--md-sys-color-primary);
|
|
32
|
+
border-radius: var(--npt-corner-full, 999px);
|
|
33
|
+
transition: inline-size var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
|
|
34
|
+
}
|
|
35
|
+
:host([indeterminate]) .bar,
|
|
36
|
+
:host(:not([value])) .bar {
|
|
37
|
+
inline-size: 40%;
|
|
38
|
+
animation: slide 1.4s var(--npt-ease-standard, ease) infinite;
|
|
39
|
+
}
|
|
40
|
+
@keyframes slide {
|
|
41
|
+
0% { transform: translateX(-120%); }
|
|
42
|
+
100% { transform: translateX(320%); }
|
|
43
|
+
}
|
|
44
|
+
.ring {
|
|
45
|
+
inline-size: 48px;
|
|
46
|
+
block-size: 48px;
|
|
47
|
+
transform: rotate(-90deg);
|
|
48
|
+
}
|
|
49
|
+
.ring circle {
|
|
50
|
+
fill: none;
|
|
51
|
+
stroke-width: 4;
|
|
52
|
+
}
|
|
53
|
+
.ring .bg {
|
|
54
|
+
stroke: var(--md-sys-color-surface-container-highest);
|
|
55
|
+
}
|
|
56
|
+
.ring .fg {
|
|
57
|
+
stroke: var(--md-sys-color-primary);
|
|
58
|
+
stroke-linecap: round;
|
|
59
|
+
transition: stroke-dashoffset var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
|
|
60
|
+
}
|
|
61
|
+
:host([indeterminate]) .ring {
|
|
62
|
+
animation: spin 1.2s linear infinite;
|
|
63
|
+
}
|
|
64
|
+
@keyframes spin {
|
|
65
|
+
to { transform: rotate(270deg); }
|
|
66
|
+
}
|
|
67
|
+
`;
|
|
68
|
+
}
|
|
69
|
+
render() {
|
|
70
|
+
const variant = this.getAttribute("variant") || "linear";
|
|
71
|
+
const indeterminate = this.hasAttribute("indeterminate") || !this.hasAttribute("value");
|
|
72
|
+
const value = Math.max(0, Math.min(100, Number(this.getAttribute("value") ?? 0)));
|
|
73
|
+
const label = esc(this.getAttribute("label")) || "progress";
|
|
74
|
+
const aria = indeterminate
|
|
75
|
+
? html `role="progressbar" aria-label="${label}"`
|
|
76
|
+
: html `role="progressbar" aria-label="${label}" aria-valuenow="${value}" aria-valuemin="0" aria-valuemax="100"`;
|
|
77
|
+
if (variant === "circular") {
|
|
78
|
+
const r = 20;
|
|
79
|
+
const circ = 2 * Math.PI * r;
|
|
80
|
+
const offset = indeterminate ? circ * 0.7 : circ * (1 - value / 100);
|
|
81
|
+
return html `<svg class="ring" part="ring" viewBox="0 0 48 48" ${aria}>
|
|
82
|
+
<circle class="bg" cx="24" cy="24" r="${r}"></circle>
|
|
83
|
+
<circle class="fg" cx="24" cy="24" r="${r}"
|
|
84
|
+
stroke-dasharray="${circ}" stroke-dashoffset="${offset}"></circle>
|
|
85
|
+
</svg>`;
|
|
86
|
+
}
|
|
87
|
+
const width = indeterminate ? "40%" : `${value}%`;
|
|
88
|
+
return html `<div class="track" part="track" ${aria}>
|
|
89
|
+
<div class="bar" style="inline-size:${width}"></div>
|
|
90
|
+
</div>`;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
NptProgress.observedAttributes = ["variant", "value", "indeterminate", "label"];
|
|
94
|
+
/**
|
|
95
|
+
* <npt-snackbar message="Saved" [open]>…optional action slot…</npt-snackbar>
|
|
96
|
+
* Inverse-surface toast. Provide an action via the default slot.
|
|
97
|
+
*/
|
|
98
|
+
export class NptSnackbar extends NptElement {
|
|
99
|
+
attributeChangedCallback() {
|
|
100
|
+
if (this.isConnected)
|
|
101
|
+
this.update();
|
|
102
|
+
}
|
|
103
|
+
styles() {
|
|
104
|
+
return css `
|
|
105
|
+
${A11Y}
|
|
106
|
+
:host {
|
|
107
|
+
display: none;
|
|
108
|
+
}
|
|
109
|
+
:host([open]) {
|
|
110
|
+
display: block;
|
|
111
|
+
}
|
|
112
|
+
.bar {
|
|
113
|
+
display: flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
gap: var(--npt-space-4, 16px);
|
|
116
|
+
min-height: 48px;
|
|
117
|
+
padding-inline: var(--npt-space-4, 16px);
|
|
118
|
+
padding-block: var(--npt-space-3, 12px);
|
|
119
|
+
border-radius: var(--npt-corner-xs, 8px);
|
|
120
|
+
background: var(--md-sys-color-inverse-surface);
|
|
121
|
+
color: var(--md-sys-color-inverse-on-surface);
|
|
122
|
+
box-shadow: var(--npt-elevation-3, 0 8px 20px rgba(0, 0, 0, 0.2));
|
|
123
|
+
font-family: var(--npt-font-text);
|
|
124
|
+
font-size: var(--npt-text-body, 14px);
|
|
125
|
+
}
|
|
126
|
+
.msg {
|
|
127
|
+
flex: 1 1 auto;
|
|
128
|
+
}
|
|
129
|
+
::slotted(*) {
|
|
130
|
+
color: var(--md-sys-color-inverse-primary);
|
|
131
|
+
}
|
|
132
|
+
`;
|
|
133
|
+
}
|
|
134
|
+
render() {
|
|
135
|
+
const message = esc(this.getAttribute("message"));
|
|
136
|
+
return html `<div class="bar" part="bar" role="status" aria-live="polite">
|
|
137
|
+
<span class="msg">${message}</span>
|
|
138
|
+
<slot></slot>
|
|
139
|
+
</div>`;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
NptSnackbar.observedAttributes = ["message", "open"];
|
|
143
|
+
/**
|
|
144
|
+
* <npt-tooltip label="Copy"><npt-icon-button>⧉</npt-icon-button></npt-tooltip>
|
|
145
|
+
* Wraps a trigger; reveals the label on hover/focus.
|
|
146
|
+
*/
|
|
147
|
+
export class NptTooltip extends NptElement {
|
|
148
|
+
attributeChangedCallback() {
|
|
149
|
+
if (this.isConnected)
|
|
150
|
+
this.update();
|
|
151
|
+
}
|
|
152
|
+
styles() {
|
|
153
|
+
return css `
|
|
154
|
+
${A11Y}
|
|
155
|
+
:host {
|
|
156
|
+
display: inline-flex;
|
|
157
|
+
position: relative;
|
|
158
|
+
}
|
|
159
|
+
.tip {
|
|
160
|
+
position: absolute;
|
|
161
|
+
inset-block-end: calc(100% + var(--npt-space-2, 8px));
|
|
162
|
+
inset-inline-start: 50%;
|
|
163
|
+
transform: translateX(-50%);
|
|
164
|
+
white-space: nowrap;
|
|
165
|
+
padding-inline: var(--npt-space-3, 12px);
|
|
166
|
+
padding-block: var(--npt-space-1, 4px);
|
|
167
|
+
border-radius: var(--npt-corner-xs, 8px);
|
|
168
|
+
background: var(--md-sys-color-inverse-surface);
|
|
169
|
+
color: var(--md-sys-color-inverse-on-surface);
|
|
170
|
+
font-family: var(--npt-font-text);
|
|
171
|
+
font-size: var(--npt-text-caption, 12px);
|
|
172
|
+
opacity: 0;
|
|
173
|
+
pointer-events: none;
|
|
174
|
+
transition: opacity var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
|
|
175
|
+
z-index: var(--npt-z-toast, 80);
|
|
176
|
+
}
|
|
177
|
+
:host(:hover) .tip,
|
|
178
|
+
:host(:focus-within) .tip {
|
|
179
|
+
opacity: 1;
|
|
180
|
+
}
|
|
181
|
+
`;
|
|
182
|
+
}
|
|
183
|
+
render() {
|
|
184
|
+
const label = esc(this.getAttribute("label"));
|
|
185
|
+
return html `<slot></slot>
|
|
186
|
+
<span class="tip" part="tip" role="tooltip">${label}</span>`;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
NptTooltip.observedAttributes = ["label"];
|
|
190
|
+
/**
|
|
191
|
+
* <npt-banner text="Update available">…actions slot…</npt-banner>
|
|
192
|
+
* Surface-level inline message with an actions slot.
|
|
193
|
+
*/
|
|
194
|
+
export class NptBanner extends NptElement {
|
|
195
|
+
attributeChangedCallback() {
|
|
196
|
+
if (this.isConnected)
|
|
197
|
+
this.update();
|
|
198
|
+
}
|
|
199
|
+
styles() {
|
|
200
|
+
return css `
|
|
201
|
+
${A11Y}
|
|
202
|
+
:host {
|
|
203
|
+
display: block;
|
|
204
|
+
}
|
|
205
|
+
.banner {
|
|
206
|
+
display: flex;
|
|
207
|
+
align-items: center;
|
|
208
|
+
flex-wrap: wrap;
|
|
209
|
+
gap: var(--npt-space-4, 16px);
|
|
210
|
+
padding-inline: var(--npt-space-4, 16px);
|
|
211
|
+
padding-block: var(--npt-space-3, 12px);
|
|
212
|
+
background: var(--md-sys-color-surface-container);
|
|
213
|
+
color: var(--md-sys-color-on-surface);
|
|
214
|
+
border-bottom: 1px solid var(--md-sys-color-outline-variant);
|
|
215
|
+
font-family: var(--npt-font-text);
|
|
216
|
+
font-size: var(--npt-text-body, 14px);
|
|
217
|
+
}
|
|
218
|
+
.leading {
|
|
219
|
+
display: inline-flex;
|
|
220
|
+
}
|
|
221
|
+
.text {
|
|
222
|
+
flex: 1 1 200px;
|
|
223
|
+
}
|
|
224
|
+
.actions {
|
|
225
|
+
display: inline-flex;
|
|
226
|
+
gap: var(--npt-space-2, 8px);
|
|
227
|
+
margin-inline-start: auto;
|
|
228
|
+
}
|
|
229
|
+
`;
|
|
230
|
+
}
|
|
231
|
+
render() {
|
|
232
|
+
const text = esc(this.getAttribute("text"));
|
|
233
|
+
return html `<div class="banner" part="banner" role="status">
|
|
234
|
+
<span class="leading"><slot name="leading"></slot></span>
|
|
235
|
+
<span class="text">${text}</span>
|
|
236
|
+
<span class="actions"><slot></slot></span>
|
|
237
|
+
</div>`;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
NptBanner.observedAttributes = ["text"];
|
|
241
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/components/feedback.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,10 +10,17 @@ export declare class NptTextField extends NptElement {
|
|
|
10
10
|
protected styles(): string;
|
|
11
11
|
protected render(): string;
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* <npt-chip variant="assist|filter|input|suggestion" [selected]>Label</npt-chip>
|
|
15
|
+
* `filter` shows a leading ✓ when [selected]; `input` shows a removable ✕ that
|
|
16
|
+
* dispatches a `remove` event. Defaults to the assist/filter treatment.
|
|
17
|
+
*/
|
|
14
18
|
export declare class NptChip extends NptElement {
|
|
15
19
|
static observedAttributes: string[];
|
|
16
20
|
attributeChangedCallback(): void;
|
|
21
|
+
connectedCallback(): void;
|
|
22
|
+
disconnectedCallback(): void;
|
|
23
|
+
private onClick;
|
|
17
24
|
protected styles(): string;
|
|
18
25
|
protected render(): string;
|
|
19
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/components/inputs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAKxD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,kBAAkB,WAAsD;IAE/E,wBAAwB,IAAI,IAAI;IAIhC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,SAAS,CAAC,MAAM,IAAI,MAAM;IAgD1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAkB3B;AAED
|
|
1
|
+
{"version":3,"file":"inputs.d.ts","sourceRoot":"","sources":["../../src/components/inputs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAKxD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,kBAAkB,WAAsD;IAE/E,wBAAwB,IAAI,IAAI;IAIhC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,SAAS,CAAC,MAAM,IAAI,MAAM;IAgD1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAkB3B;AAED;;;;GAIG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,kBAAkB,WAAuC;IAEhE,wBAAwB,IAAI,IAAI;IAIvB,iBAAiB,IAAI,IAAI;IAKlC,oBAAoB,IAAI,IAAI;IAI5B,OAAO,CAAC,OAAO,CAKb;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IAqD1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAY3B;AAED,oEAAoE;AACpE,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,kBAAkB,WAAY;IAErC,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAmC1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAG3B"}
|
|
@@ -81,12 +81,32 @@ export class NptTextField extends NptElement {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
NptTextField.observedAttributes = ["label", "value", "placeholder", "error", "type"];
|
|
84
|
-
/**
|
|
84
|
+
/**
|
|
85
|
+
* <npt-chip variant="assist|filter|input|suggestion" [selected]>Label</npt-chip>
|
|
86
|
+
* `filter` shows a leading ✓ when [selected]; `input` shows a removable ✕ that
|
|
87
|
+
* dispatches a `remove` event. Defaults to the assist/filter treatment.
|
|
88
|
+
*/
|
|
85
89
|
export class NptChip extends NptElement {
|
|
90
|
+
constructor() {
|
|
91
|
+
super(...arguments);
|
|
92
|
+
this.onClick = (e) => {
|
|
93
|
+
if (e.target?.closest(".remove")) {
|
|
94
|
+
e.stopPropagation();
|
|
95
|
+
this.dispatchEvent(new CustomEvent("remove", { bubbles: true }));
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
86
99
|
attributeChangedCallback() {
|
|
87
100
|
if (this.isConnected)
|
|
88
101
|
this.update();
|
|
89
102
|
}
|
|
103
|
+
connectedCallback() {
|
|
104
|
+
super.connectedCallback();
|
|
105
|
+
this.root.addEventListener("click", this.onClick);
|
|
106
|
+
}
|
|
107
|
+
disconnectedCallback() {
|
|
108
|
+
this.root.removeEventListener("click", this.onClick);
|
|
109
|
+
}
|
|
90
110
|
styles() {
|
|
91
111
|
return css `
|
|
92
112
|
${A11Y}
|
|
@@ -99,6 +119,7 @@ export class NptChip extends NptElement {
|
|
|
99
119
|
min-height: 32px;
|
|
100
120
|
display: inline-flex;
|
|
101
121
|
align-items: center;
|
|
122
|
+
gap: var(--npt-space-2, 8px);
|
|
102
123
|
padding-inline: var(--npt-space-4, 16px);
|
|
103
124
|
border-radius: var(--npt-corner-sm, 12px);
|
|
104
125
|
border: 1px solid var(--md-sys-color-outline);
|
|
@@ -106,19 +127,52 @@ export class NptChip extends NptElement {
|
|
|
106
127
|
color: var(--md-sys-color-on-surface-variant);
|
|
107
128
|
cursor: pointer;
|
|
108
129
|
}
|
|
130
|
+
:host([disabled]) .chip {
|
|
131
|
+
cursor: not-allowed;
|
|
132
|
+
opacity: 0.38;
|
|
133
|
+
}
|
|
109
134
|
:host([selected]) .chip {
|
|
110
135
|
background: var(--md-sys-color-secondary-container);
|
|
111
136
|
color: var(--md-sys-color-on-secondary-container);
|
|
112
137
|
border-color: transparent;
|
|
113
138
|
}
|
|
139
|
+
.check {
|
|
140
|
+
display: none;
|
|
141
|
+
font-size: var(--npt-text-body, 14px);
|
|
142
|
+
}
|
|
143
|
+
:host([variant="filter"][selected]) .check {
|
|
144
|
+
display: inline;
|
|
145
|
+
}
|
|
146
|
+
.remove {
|
|
147
|
+
display: none;
|
|
148
|
+
border: none;
|
|
149
|
+
background: transparent;
|
|
150
|
+
color: inherit;
|
|
151
|
+
cursor: pointer;
|
|
152
|
+
font-size: var(--npt-text-body-lg, 16px);
|
|
153
|
+
line-height: 1;
|
|
154
|
+
padding: 0;
|
|
155
|
+
margin-inline-end: calc(-1 * var(--npt-space-1, 4px));
|
|
156
|
+
}
|
|
157
|
+
:host([variant="input"]) .remove {
|
|
158
|
+
display: inline-flex;
|
|
159
|
+
}
|
|
114
160
|
`;
|
|
115
161
|
}
|
|
116
162
|
render() {
|
|
117
163
|
const selected = this.hasAttribute("selected");
|
|
118
|
-
|
|
164
|
+
const variant = this.getAttribute("variant") || "filter";
|
|
165
|
+
const disabled = this.hasAttribute("disabled") ? "disabled" : "";
|
|
166
|
+
const role = variant === "filter" ? "option" : "button";
|
|
167
|
+
const ariaSel = variant === "filter" ? html `aria-selected="${selected}"` : "";
|
|
168
|
+
return html `<button class="chip" part="chip" role="${role}" ${ariaSel} ${disabled}>
|
|
169
|
+
<span class="check" aria-hidden="true">✓</span>
|
|
170
|
+
<slot></slot>
|
|
171
|
+
<span class="remove" role="button" aria-label="Remove" tabindex="0">✕</span>
|
|
172
|
+
</button>`;
|
|
119
173
|
}
|
|
120
174
|
}
|
|
121
|
-
NptChip.observedAttributes = ["selected"];
|
|
175
|
+
NptChip.observedAttributes = ["selected", "variant", "disabled"];
|
|
122
176
|
/** <npt-badge tone="primary|success|error|neutral">3</npt-badge> */
|
|
123
177
|
export class NptBadge extends NptElement {
|
|
124
178
|
attributeChangedCallback() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/components/inputs.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,6CAA6C;AAC7C,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,GAAG,GAAG,CAAC,CAAgB,EAAU,EAAE,CACvC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC;AAEvG;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,UAAU;IAG1C,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAES,MAAM;QACd,OAAO,GAAG,CAAA;QACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2CP,CAAC;IACJ,CAAC;IAES,MAAM;QACd,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC;QACtD,OAAO,IAAI,CAAA;QACP,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE;;gBAElC,IAAI;iBACH,KAAK;uBACC,WAAW;wBACV,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;sBAC1B,KAAK;;QAEnB,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA,iCAAiC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;KACrE,CAAC;IACJ,CAAC;;AA3EM,+BAAkB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AA8EjF
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../src/components/inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { NptElement } from "./base.js";
|
|
2
|
+
/** <npt-list> with <npt-list-item> children. */
|
|
3
|
+
export declare class NptList extends NptElement {
|
|
4
|
+
protected styles(): string;
|
|
5
|
+
protected render(): string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* <npt-list-item [interactive] headline="Title" supporting="Sub">
|
|
9
|
+
* <span slot="leading">●</span><span slot="trailing">→</span>
|
|
10
|
+
* </npt-list-item>
|
|
11
|
+
*/
|
|
12
|
+
export declare class NptListItem extends NptElement {
|
|
13
|
+
static observedAttributes: string[];
|
|
14
|
+
attributeChangedCallback(): void;
|
|
15
|
+
protected styles(): string;
|
|
16
|
+
protected render(): string;
|
|
17
|
+
}
|
|
18
|
+
/** <npt-divider [inset]></npt-divider> */
|
|
19
|
+
export declare class NptDivider extends NptElement {
|
|
20
|
+
static observedAttributes: string[];
|
|
21
|
+
attributeChangedCallback(): void;
|
|
22
|
+
protected styles(): string;
|
|
23
|
+
protected render(): string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* <npt-tabs> with <npt-tab> children.
|
|
27
|
+
* Click selects a tab (sets [active]); a sliding indicator follows.
|
|
28
|
+
*/
|
|
29
|
+
export declare class NptTabs extends NptElement {
|
|
30
|
+
connectedCallback(): void;
|
|
31
|
+
disconnectedCallback(): void;
|
|
32
|
+
private onClick;
|
|
33
|
+
protected styles(): string;
|
|
34
|
+
protected render(): string;
|
|
35
|
+
}
|
|
36
|
+
/** <npt-tab [active]>Overview</npt-tab> */
|
|
37
|
+
export declare class NptTab extends NptElement {
|
|
38
|
+
static observedAttributes: string[];
|
|
39
|
+
attributeChangedCallback(): void;
|
|
40
|
+
protected styles(): string;
|
|
41
|
+
protected render(): string;
|
|
42
|
+
}
|
|
43
|
+
/** <npt-accordion> with <npt-accordion-item> children. */
|
|
44
|
+
export declare class NptAccordion extends NptElement {
|
|
45
|
+
protected styles(): string;
|
|
46
|
+
protected render(): string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* <npt-accordion-item [open] summary="Section">…detail…</npt-accordion-item>
|
|
50
|
+
* Native <details>/<summary> semantics under the hood.
|
|
51
|
+
*/
|
|
52
|
+
export declare class NptAccordionItem extends NptElement {
|
|
53
|
+
static observedAttributes: string[];
|
|
54
|
+
attributeChangedCallback(): void;
|
|
55
|
+
connectedCallback(): void;
|
|
56
|
+
disconnectedCallback(): void;
|
|
57
|
+
private onToggle;
|
|
58
|
+
protected styles(): string;
|
|
59
|
+
protected render(): string;
|
|
60
|
+
}
|
|
61
|
+
/** <npt-avatar src="" initials="MK" size="sm|md|lg" label="Mona"></npt-avatar> */
|
|
62
|
+
export declare class NptAvatar extends NptElement {
|
|
63
|
+
static observedAttributes: string[];
|
|
64
|
+
attributeChangedCallback(): void;
|
|
65
|
+
protected styles(): string;
|
|
66
|
+
protected render(): string;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/components/layout.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAKxD,gDAAgD;AAChD,qBAAa,OAAQ,SAAQ,UAAU;IACrC,SAAS,CAAC,MAAM,IAAI,MAAM;IAa1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAG3B;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,kBAAkB,WAA6C;IAEtE,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IA6C1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAgB3B;AAED,0CAA0C;AAC1C,qBAAa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,kBAAkB,WAAa;IAEtC,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAkB1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAG3B;AAED;;;GAGG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IAC5B,iBAAiB,IAAI,IAAI;IAKlC,oBAAoB,IAAI,IAAI;IAI5B,OAAO,CAAC,OAAO,CAKb;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IAc1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAG3B;AAED,2CAA2C;AAC3C,qBAAa,MAAO,SAAQ,UAAU;IACpC,MAAM,CAAC,kBAAkB,WAAc;IAEvC,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAyC1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAM3B;AAED,0DAA0D;AAC1D,qBAAa,YAAa,SAAQ,UAAU;IAC1C,SAAS,CAAC,MAAM,IAAI,MAAM;IAQ1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAG3B;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IAC9C,MAAM,CAAC,kBAAkB,WAAuB;IAEhD,wBAAwB,IAAI,IAAI;IAIvB,iBAAiB,IAAI,IAAI;IAKlC,oBAAoB,IAAI,IAAI;IAI5B,OAAO,CAAC,QAAQ,CAGd;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IA0C1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAQ3B;AAED,kFAAkF;AAClF,qBAAa,SAAU,SAAQ,UAAU;IACvC,MAAM,CAAC,kBAAkB,WAAwC;IAEjE,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAoC1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAS3B"}
|