@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,298 @@
|
|
|
1
|
+
// © 2026 Neptune.Fintech (neptune.ly) · Neptune Odyssey Community License v1.0
|
|
2
|
+
// Neptune Odyssey — overlay containers
|
|
3
|
+
// <npt-dialog>, <npt-bottom-sheet>, <npt-menu> + <npt-menu-item>.
|
|
4
|
+
// Custom-property driven only; logical layout → mirrors in RTL.
|
|
5
|
+
import { NptElement, css, html, A11Y } from "./base.js";
|
|
6
|
+
const FOCUSABLE = 'a[href],button:not([disabled]),textarea,input,select,[tabindex]:not([tabindex="-1"]),npt-button,npt-icon-button';
|
|
7
|
+
/**
|
|
8
|
+
* <npt-dialog [open] headline="Confirm">
|
|
9
|
+
* …content… <span slot="actions">…</span>
|
|
10
|
+
* </npt-dialog>
|
|
11
|
+
* Scrim + centred surface. ESC and backdrop close; focus-trap-lite.
|
|
12
|
+
*/
|
|
13
|
+
export class NptDialog extends NptElement {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.onClick = (e) => {
|
|
17
|
+
const t = e.target;
|
|
18
|
+
if (t.classList.contains("scrim") || t.closest("[data-close]"))
|
|
19
|
+
this.close();
|
|
20
|
+
};
|
|
21
|
+
this.onKey = (e) => {
|
|
22
|
+
if (e.key === "Escape") {
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
this.close();
|
|
25
|
+
}
|
|
26
|
+
else if (e.key === "Tab") {
|
|
27
|
+
const items = Array.from(this.querySelectorAll(FOCUSABLE)).filter((el) => el.offsetParent !== null || el === document.activeElement);
|
|
28
|
+
if (items.length === 0)
|
|
29
|
+
return;
|
|
30
|
+
const first = items[0];
|
|
31
|
+
const last = items[items.length - 1];
|
|
32
|
+
const active = this.getRootNode().activeElement;
|
|
33
|
+
if (e.shiftKey && active === first) {
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
last?.focus();
|
|
36
|
+
}
|
|
37
|
+
else if (!e.shiftKey && active === last) {
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
first?.focus();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
attributeChangedCallback(name) {
|
|
45
|
+
if (this.isConnected)
|
|
46
|
+
this.update();
|
|
47
|
+
if (name === "open" && this.hasAttribute("open"))
|
|
48
|
+
this.focusFirst();
|
|
49
|
+
}
|
|
50
|
+
connectedCallback() {
|
|
51
|
+
super.connectedCallback();
|
|
52
|
+
this.root.addEventListener("click", this.onClick);
|
|
53
|
+
this.addEventListener("keydown", this.onKey);
|
|
54
|
+
}
|
|
55
|
+
disconnectedCallback() {
|
|
56
|
+
this.root.removeEventListener("click", this.onClick);
|
|
57
|
+
this.removeEventListener("keydown", this.onKey);
|
|
58
|
+
}
|
|
59
|
+
/** Close the overlay and emit a `close` event. */
|
|
60
|
+
close() {
|
|
61
|
+
this.removeAttribute("open");
|
|
62
|
+
this.dispatchEvent(new CustomEvent("close", { bubbles: true }));
|
|
63
|
+
}
|
|
64
|
+
focusFirst() {
|
|
65
|
+
queueMicrotask(() => {
|
|
66
|
+
const el = this.querySelector(FOCUSABLE) ?? this.root.querySelector(".surface");
|
|
67
|
+
el?.focus?.();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
styles() {
|
|
71
|
+
return css `
|
|
72
|
+
${A11Y}
|
|
73
|
+
:host {
|
|
74
|
+
display: none;
|
|
75
|
+
}
|
|
76
|
+
:host([open]) {
|
|
77
|
+
display: block;
|
|
78
|
+
}
|
|
79
|
+
.scrim {
|
|
80
|
+
position: fixed;
|
|
81
|
+
inset: 0;
|
|
82
|
+
z-index: var(--npt-z-modal, 70);
|
|
83
|
+
background: color-mix(in oklab, var(--md-sys-color-scrim) 40%, transparent);
|
|
84
|
+
display: grid;
|
|
85
|
+
place-items: center;
|
|
86
|
+
padding: var(--npt-space-4, 16px);
|
|
87
|
+
}
|
|
88
|
+
.surface {
|
|
89
|
+
inline-size: min(560px, 100%);
|
|
90
|
+
max-block-size: 90vh;
|
|
91
|
+
overflow: auto;
|
|
92
|
+
background: var(--md-sys-color-surface-container-high);
|
|
93
|
+
color: var(--md-sys-color-on-surface);
|
|
94
|
+
border-radius: var(--npt-corner-xl, 32px);
|
|
95
|
+
padding: var(--npt-space-6, 24px);
|
|
96
|
+
box-shadow: var(--npt-elevation-5, 0 28px 60px rgba(0, 0, 0, 0.3));
|
|
97
|
+
box-sizing: border-box;
|
|
98
|
+
}
|
|
99
|
+
.headline {
|
|
100
|
+
font-family: var(--npt-font-display);
|
|
101
|
+
font-size: var(--npt-text-headline, 28px);
|
|
102
|
+
font-weight: var(--npt-display-weight, 700);
|
|
103
|
+
margin: 0 0 var(--npt-space-4, 16px);
|
|
104
|
+
}
|
|
105
|
+
.content {
|
|
106
|
+
font-family: var(--npt-font-text);
|
|
107
|
+
font-size: var(--npt-text-body-lg, 16px);
|
|
108
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
109
|
+
}
|
|
110
|
+
.actions {
|
|
111
|
+
display: flex;
|
|
112
|
+
justify-content: flex-end;
|
|
113
|
+
gap: var(--npt-space-2, 8px);
|
|
114
|
+
margin-block-start: var(--npt-space-6, 24px);
|
|
115
|
+
}
|
|
116
|
+
`;
|
|
117
|
+
}
|
|
118
|
+
render() {
|
|
119
|
+
const headline = (this.getAttribute("headline") ?? "").replace(/[<>]/g, "");
|
|
120
|
+
return html `<div class="scrim" part="scrim">
|
|
121
|
+
<div class="surface" part="surface" role="dialog" aria-modal="true" aria-label="${headline}" tabindex="-1">
|
|
122
|
+
${headline ? html `<h2 class="headline">${headline}</h2>` : ""}
|
|
123
|
+
<div class="content"><slot></slot></div>
|
|
124
|
+
<div class="actions"><slot name="actions"></slot></div>
|
|
125
|
+
</div>
|
|
126
|
+
</div>`;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
NptDialog.observedAttributes = ["open", "headline"];
|
|
130
|
+
/**
|
|
131
|
+
* <npt-bottom-sheet [open]>…content…</npt-bottom-sheet>
|
|
132
|
+
* Bottom-anchored sheet with a drag affordance + scrim. Backdrop/ESC close.
|
|
133
|
+
*/
|
|
134
|
+
export class NptBottomSheet extends NptElement {
|
|
135
|
+
constructor() {
|
|
136
|
+
super(...arguments);
|
|
137
|
+
this.onClick = (e) => {
|
|
138
|
+
const t = e.target;
|
|
139
|
+
if (t.classList.contains("scrim") || t.closest("[data-close]"))
|
|
140
|
+
this.close();
|
|
141
|
+
};
|
|
142
|
+
this.onKey = (e) => {
|
|
143
|
+
if (e.key === "Escape") {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
this.close();
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
attributeChangedCallback() {
|
|
150
|
+
if (this.isConnected)
|
|
151
|
+
this.update();
|
|
152
|
+
}
|
|
153
|
+
connectedCallback() {
|
|
154
|
+
super.connectedCallback();
|
|
155
|
+
this.root.addEventListener("click", this.onClick);
|
|
156
|
+
this.addEventListener("keydown", this.onKey);
|
|
157
|
+
}
|
|
158
|
+
disconnectedCallback() {
|
|
159
|
+
this.root.removeEventListener("click", this.onClick);
|
|
160
|
+
this.removeEventListener("keydown", this.onKey);
|
|
161
|
+
}
|
|
162
|
+
/** Close the sheet and emit a `close` event. */
|
|
163
|
+
close() {
|
|
164
|
+
this.removeAttribute("open");
|
|
165
|
+
this.dispatchEvent(new CustomEvent("close", { bubbles: true }));
|
|
166
|
+
}
|
|
167
|
+
styles() {
|
|
168
|
+
return css `
|
|
169
|
+
${A11Y}
|
|
170
|
+
:host {
|
|
171
|
+
display: none;
|
|
172
|
+
}
|
|
173
|
+
:host([open]) {
|
|
174
|
+
display: block;
|
|
175
|
+
}
|
|
176
|
+
.scrim {
|
|
177
|
+
position: fixed;
|
|
178
|
+
inset: 0;
|
|
179
|
+
z-index: var(--npt-z-modal, 70);
|
|
180
|
+
background: color-mix(in oklab, var(--md-sys-color-scrim) 40%, transparent);
|
|
181
|
+
display: flex;
|
|
182
|
+
align-items: flex-end;
|
|
183
|
+
justify-content: center;
|
|
184
|
+
}
|
|
185
|
+
.sheet {
|
|
186
|
+
inline-size: min(640px, 100%);
|
|
187
|
+
max-block-size: 90vh;
|
|
188
|
+
overflow: auto;
|
|
189
|
+
background: var(--md-sys-color-surface-container-low);
|
|
190
|
+
color: var(--md-sys-color-on-surface);
|
|
191
|
+
border-start-start-radius: var(--npt-corner-xl, 32px);
|
|
192
|
+
border-start-end-radius: var(--npt-corner-xl, 32px);
|
|
193
|
+
padding: var(--npt-space-4, 16px) var(--npt-space-6, 24px) var(--npt-space-6, 24px);
|
|
194
|
+
box-shadow: var(--npt-elevation-5, 0 28px 60px rgba(0, 0, 0, 0.3));
|
|
195
|
+
box-sizing: border-box;
|
|
196
|
+
}
|
|
197
|
+
.grip {
|
|
198
|
+
inline-size: 32px;
|
|
199
|
+
block-size: 4px;
|
|
200
|
+
border-radius: var(--npt-corner-full, 999px);
|
|
201
|
+
background: var(--md-sys-color-outline-variant);
|
|
202
|
+
margin: 0 auto var(--npt-space-4, 16px);
|
|
203
|
+
}
|
|
204
|
+
`;
|
|
205
|
+
}
|
|
206
|
+
render() {
|
|
207
|
+
return html `<div class="scrim" part="scrim">
|
|
208
|
+
<div class="sheet" part="sheet" role="dialog" aria-modal="true">
|
|
209
|
+
<div class="grip" part="grip" aria-hidden="true"></div>
|
|
210
|
+
<slot></slot>
|
|
211
|
+
</div>
|
|
212
|
+
</div>`;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
NptBottomSheet.observedAttributes = ["open"];
|
|
216
|
+
/**
|
|
217
|
+
* <npt-menu [open]> with <npt-menu-item> children.
|
|
218
|
+
* Anchored popover. Place inside a positioned ancestor for anchoring.
|
|
219
|
+
*/
|
|
220
|
+
export class NptMenu extends NptElement {
|
|
221
|
+
attributeChangedCallback() {
|
|
222
|
+
if (this.isConnected)
|
|
223
|
+
this.update();
|
|
224
|
+
}
|
|
225
|
+
styles() {
|
|
226
|
+
return css `
|
|
227
|
+
${A11Y}
|
|
228
|
+
:host {
|
|
229
|
+
display: none;
|
|
230
|
+
position: absolute;
|
|
231
|
+
inset-block-start: 100%;
|
|
232
|
+
inset-inline-start: 0;
|
|
233
|
+
z-index: var(--npt-z-overlay, 60);
|
|
234
|
+
}
|
|
235
|
+
:host([open]) {
|
|
236
|
+
display: block;
|
|
237
|
+
}
|
|
238
|
+
.menu {
|
|
239
|
+
min-inline-size: 180px;
|
|
240
|
+
padding-block: var(--npt-space-2, 8px);
|
|
241
|
+
background: var(--md-sys-color-surface-container);
|
|
242
|
+
color: var(--md-sys-color-on-surface);
|
|
243
|
+
border-radius: var(--npt-corner-sm, 12px);
|
|
244
|
+
box-shadow: var(--npt-elevation-3, 0 8px 20px rgba(0, 0, 0, 0.2));
|
|
245
|
+
}
|
|
246
|
+
`;
|
|
247
|
+
}
|
|
248
|
+
render() {
|
|
249
|
+
return html `<div class="menu" part="menu" role="menu"><slot></slot></div>`;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
NptMenu.observedAttributes = ["open"];
|
|
253
|
+
/** <npt-menu-item [disabled]>Settings</npt-menu-item> */
|
|
254
|
+
export class NptMenuItem extends NptElement {
|
|
255
|
+
attributeChangedCallback() {
|
|
256
|
+
if (this.isConnected)
|
|
257
|
+
this.update();
|
|
258
|
+
}
|
|
259
|
+
styles() {
|
|
260
|
+
return css `
|
|
261
|
+
${A11Y}
|
|
262
|
+
:host {
|
|
263
|
+
display: block;
|
|
264
|
+
}
|
|
265
|
+
.item {
|
|
266
|
+
inline-size: 100%;
|
|
267
|
+
min-height: 48px;
|
|
268
|
+
display: flex;
|
|
269
|
+
align-items: center;
|
|
270
|
+
gap: var(--npt-space-3, 12px);
|
|
271
|
+
padding-inline: var(--npt-space-4, 16px);
|
|
272
|
+
border: none;
|
|
273
|
+
background: transparent;
|
|
274
|
+
color: inherit;
|
|
275
|
+
text-align: start;
|
|
276
|
+
cursor: pointer;
|
|
277
|
+
font-family: var(--npt-font-text);
|
|
278
|
+
font-size: var(--npt-text-body-lg, 16px);
|
|
279
|
+
transition: background-color var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
|
|
280
|
+
}
|
|
281
|
+
.item:hover:not(:disabled) {
|
|
282
|
+
background: var(--md-sys-color-surface-container-highest);
|
|
283
|
+
}
|
|
284
|
+
.item:disabled {
|
|
285
|
+
cursor: not-allowed;
|
|
286
|
+
opacity: 0.38;
|
|
287
|
+
}
|
|
288
|
+
`;
|
|
289
|
+
}
|
|
290
|
+
render() {
|
|
291
|
+
const disabled = this.hasAttribute("disabled") ? "disabled" : "";
|
|
292
|
+
return html `<button class="item" part="item" role="menuitem" ${disabled}>
|
|
293
|
+
<slot name="leading"></slot><slot></slot>
|
|
294
|
+
</button>`;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
NptMenuItem.observedAttributes = ["disabled"];
|
|
298
|
+
//# sourceMappingURL=containers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containers.js","sourceRoot":"","sources":["../../src/components/containers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { NptElement } from "./base.js";
|
|
2
|
+
/**
|
|
3
|
+
* <npt-approval-item title="Vendor payment — ACME" amount="48,200.00" currency="LYD"
|
|
4
|
+
* maker="Mona Khaled" status="pending|approved|rejected"></npt-approval-item>
|
|
5
|
+
* A maker-checker queue item. Approve/Reject buttons emit `approve` / `reject`.
|
|
6
|
+
* Buttons hide once the item is no longer `pending`; the status chip reflects state.
|
|
7
|
+
*/
|
|
8
|
+
export declare class NptApprovalItem extends NptElement {
|
|
9
|
+
static observedAttributes: string[];
|
|
10
|
+
attributeChangedCallback(): void;
|
|
11
|
+
connectedCallback(): void;
|
|
12
|
+
disconnectedCallback(): void;
|
|
13
|
+
private onClick;
|
|
14
|
+
protected styles(): string;
|
|
15
|
+
protected render(): string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* <npt-batch-card filename="payroll-jun.csv" totalAmount="1,204,800.00" currency="LYD"
|
|
19
|
+
* payeeCount="312" requiredApprovals="2" validated="308" warnings="3" errors="1">
|
|
20
|
+
* <npt-button slot="action">Submit batch</npt-button>
|
|
21
|
+
* </npt-batch-card>
|
|
22
|
+
* A bulk-payment batch summary with a validated/warnings/errors counts row and an
|
|
23
|
+
* action slot for the primary CTA.
|
|
24
|
+
*/
|
|
25
|
+
export declare class NptBatchCard extends NptElement {
|
|
26
|
+
static observedAttributes: string[];
|
|
27
|
+
attributeChangedCallback(): void;
|
|
28
|
+
protected styles(): string;
|
|
29
|
+
protected render(): string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* <npt-audit-row actor="Mona Khaled" action="approved payment" target="#PAY-3192"
|
|
33
|
+
* time="2026-06-27 14:02"></npt-audit-row>
|
|
34
|
+
* A compact audit-log line with a leading status dot.
|
|
35
|
+
*/
|
|
36
|
+
export declare class NptAuditRow extends NptElement {
|
|
37
|
+
static observedAttributes: string[];
|
|
38
|
+
attributeChangedCallback(): void;
|
|
39
|
+
protected styles(): string;
|
|
40
|
+
protected render(): string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* <npt-user-row name="Mona Khaled" email="mona@bank.ly" role="Checker"
|
|
44
|
+
* initials="MK" src="" [suspended]>
|
|
45
|
+
* <npt-icon-button slot="actions">⋯</npt-icon-button>
|
|
46
|
+
* </npt-user-row>
|
|
47
|
+
* A user-admin list row: avatar/initials, name + email, role chip, status, and a
|
|
48
|
+
* trailing actions slot. `suspended` dims the row and shows a Suspended chip.
|
|
49
|
+
*/
|
|
50
|
+
export declare class NptUserRow extends NptElement {
|
|
51
|
+
static observedAttributes: string[];
|
|
52
|
+
attributeChangedCallback(): void;
|
|
53
|
+
protected styles(): string;
|
|
54
|
+
protected render(): string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* <npt-permission-toggle label="Approve payments"
|
|
58
|
+
* description="Allow this role to release outgoing transfers" [checked] [disabled]>
|
|
59
|
+
* </npt-permission-toggle>
|
|
60
|
+
* Label + description + a switch-like toggle. Emits `change` when toggled.
|
|
61
|
+
*/
|
|
62
|
+
export declare class NptPermissionToggle extends NptElement {
|
|
63
|
+
static observedAttributes: string[];
|
|
64
|
+
attributeChangedCallback(): void;
|
|
65
|
+
connectedCallback(): void;
|
|
66
|
+
disconnectedCallback(): void;
|
|
67
|
+
private toggle;
|
|
68
|
+
private onClick;
|
|
69
|
+
private onKey;
|
|
70
|
+
protected styles(): string;
|
|
71
|
+
protected render(): string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* <npt-workflow-status steps="Submitted,Checked,Approved" active="1"></npt-workflow-status>
|
|
75
|
+
* A compact multi-step status indicator. `active` is the zero-based index of the
|
|
76
|
+
* current step; earlier steps render as complete, later steps as upcoming.
|
|
77
|
+
*/
|
|
78
|
+
export declare class NptWorkflowStatus extends NptElement {
|
|
79
|
+
static observedAttributes: string[];
|
|
80
|
+
attributeChangedCallback(): void;
|
|
81
|
+
protected styles(): string;
|
|
82
|
+
protected render(): string;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=corporate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"corporate.d.ts","sourceRoot":"","sources":["../../src/components/corporate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAmB,MAAM,WAAW,CAAC;AAKxD;;;;;GAKG;AACH,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,kBAAkB,WAAsD;IAE/E,wBAAwB,IAAI,IAAI;IAIvB,iBAAiB,IAAI,IAAI;IAKlC,oBAAoB,IAAI,IAAI;IAI5B,OAAO,CAAC,OAAO,CAOb;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IA+G1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAsB3B;AAED;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,kBAAkB,WASvB;IAEF,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAyH1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAqC3B;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,kBAAkB,WAAyC;IAElE,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAgD1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAc3B;AAED;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,kBAAkB,WAA6D;IAEtF,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IA0F1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAyB3B;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,kBAAkB,WAAmD;IAE5E,wBAAwB,IAAI,IAAI;IAIvB,iBAAiB,IAAI,IAAI;IAMlC,oBAAoB,IAAI,IAAI;IAK5B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,KAAK,CAKX;IAEF,SAAS,CAAC,MAAM,IAAI,MAAM;IAwE1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAmB3B;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;IAC/C,MAAM,CAAC,kBAAkB,WAAuB;IAEhD,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IA8D1B,SAAS,CAAC,MAAM,IAAI,MAAM;CA6B3B"}
|