@neptune.fintech/web-ui 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.
Files changed (41) hide show
  1. package/README.md +24 -2
  2. package/dist/components/actions.d.ts +43 -0
  3. package/dist/components/actions.d.ts.map +1 -0
  4. package/dist/components/actions.js +279 -0
  5. package/dist/components/actions.js.map +1 -0
  6. package/dist/components/button.d.ts +1 -1
  7. package/dist/components/button.d.ts.map +1 -1
  8. package/dist/components/button.js +9 -1
  9. package/dist/components/button.js.map +1 -1
  10. package/dist/components/containers.d.ts +54 -0
  11. package/dist/components/containers.d.ts.map +1 -0
  12. package/dist/components/containers.js +298 -0
  13. package/dist/components/containers.js.map +1 -0
  14. package/dist/components/feedback.d.ts +42 -0
  15. package/dist/components/feedback.d.ts.map +1 -0
  16. package/dist/components/feedback.js +241 -0
  17. package/dist/components/feedback.js.map +1 -0
  18. package/dist/components/inputs.d.ts +8 -1
  19. package/dist/components/inputs.d.ts.map +1 -1
  20. package/dist/components/inputs.js +57 -3
  21. package/dist/components/inputs.js.map +1 -1
  22. package/dist/components/layout.d.ts +68 -0
  23. package/dist/components/layout.d.ts.map +1 -0
  24. package/dist/components/layout.js +359 -0
  25. package/dist/components/layout.js.map +1 -0
  26. package/dist/components/nav-rail.d.ts +22 -0
  27. package/dist/components/nav-rail.d.ts.map +1 -0
  28. package/dist/components/nav-rail.js +120 -0
  29. package/dist/components/nav-rail.js.map +1 -0
  30. package/dist/components/selection.d.ts +51 -0
  31. package/dist/components/selection.d.ts.map +1 -0
  32. package/dist/components/selection.js +377 -0
  33. package/dist/components/selection.js.map +1 -0
  34. package/dist/index.d.ts +7 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +7 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/register.d.ts.map +1 -1
  39. package/dist/register.js +38 -0
  40. package/dist/register.js.map +1 -1
  41. package/package.json +1 -1
@@ -81,12 +81,32 @@ export class NptTextField extends NptElement {
81
81
  }
82
82
  }
83
83
  NptTextField.observedAttributes = ["label", "value", "placeholder", "error", "type"];
84
- /** <npt-chip [selected]>Label</npt-chip> */
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
- return html `<button class="chip" part="chip" role="option" aria-selected="${selected}"><slot></slot></button>`;
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":"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"}
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;;;;GAIG;AACH,MAAM,OAAO,OAAQ,SAAQ,UAAU;IAAvC;;QAgBU,YAAO,GAAG,CAAC,CAAQ,EAAQ,EAAE;YACnC,IAAK,CAAC,CAAC,MAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClD,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnE,CAAC;QACH,CAAC,CAAC;IAmEJ,CAAC;IArFC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IASS,MAAM;QACd,OAAO,GAAG,CAAA;QACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgDP,CAAC;IACJ,CAAC;IAES,MAAM;QACd,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,MAAM,OAAO,GAAG,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,kBAAkB,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO,IAAI,CAAA,0CAA0C,IAAI,KAAK,OAAO,IAAI,QAAQ;;;;cAIvE,CAAC;IACb,CAAC;;AAtFM,0BAAkB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,UAAU,CAAC,AAAtC,CAAuC;AAyFlE,oEAAoE;AACpE,MAAM,OAAO,QAAS,SAAQ,UAAU;IAGtC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAES,MAAM;QACd,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BT,CAAC;IACJ,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,uDAAuD,CAAC;IACrE,CAAC;;AA3CM,2BAAkB,GAAG,CAAC,MAAM,CAAC,CAAC"}
@@ -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"}
@@ -0,0 +1,359 @@
1
+ // © 2026 Neptune.Fintech (neptune.ly) · Neptune Odyssey Community License v1.0
2
+ // Neptune Odyssey — containers & layout
3
+ // <npt-list>, <npt-list-item>, <npt-divider>, <npt-tabs>, <npt-tab>,
4
+ // <npt-accordion>, <npt-accordion-item>, <npt-avatar>.
5
+ // Custom-property driven only; logical layout → mirrors in RTL.
6
+ import { NptElement, css, html, A11Y } from "./base.js";
7
+ const esc = (v) => (v ?? "").replace(/[&<>"]/g, (c) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;" })[c]);
8
+ /** <npt-list> with <npt-list-item> children. */
9
+ export class NptList extends NptElement {
10
+ styles() {
11
+ return css `
12
+ :host {
13
+ display: block;
14
+ }
15
+ .list {
16
+ display: block;
17
+ background: var(--md-sys-color-surface);
18
+ color: var(--md-sys-color-on-surface);
19
+ }
20
+ `;
21
+ }
22
+ render() {
23
+ return html `<div class="list" part="list" role="list"><slot></slot></div>`;
24
+ }
25
+ }
26
+ /**
27
+ * <npt-list-item [interactive] headline="Title" supporting="Sub">
28
+ * <span slot="leading">●</span><span slot="trailing">→</span>
29
+ * </npt-list-item>
30
+ */
31
+ export class NptListItem extends NptElement {
32
+ attributeChangedCallback() {
33
+ if (this.isConnected)
34
+ this.update();
35
+ }
36
+ styles() {
37
+ return css `
38
+ ${A11Y}
39
+ :host {
40
+ display: block;
41
+ }
42
+ .item {
43
+ inline-size: 100%;
44
+ display: flex;
45
+ align-items: center;
46
+ gap: var(--npt-space-4, 16px);
47
+ min-height: 56px;
48
+ padding-inline: var(--npt-space-4, 16px);
49
+ padding-block: var(--npt-space-2, 8px);
50
+ border: none;
51
+ background: transparent;
52
+ color: inherit;
53
+ text-align: start;
54
+ font-family: var(--npt-font-text);
55
+ box-sizing: border-box;
56
+ }
57
+ :host([interactive]) .item {
58
+ cursor: pointer;
59
+ transition: background-color var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
60
+ }
61
+ :host([interactive]) .item:hover {
62
+ background: var(--md-sys-color-surface-container-high);
63
+ }
64
+ .body {
65
+ flex: 1 1 auto;
66
+ min-inline-size: 0;
67
+ }
68
+ .headline {
69
+ font-size: var(--npt-text-body-lg, 16px);
70
+ color: var(--md-sys-color-on-surface);
71
+ margin: 0;
72
+ }
73
+ .supporting {
74
+ font-size: var(--npt-text-body, 14px);
75
+ color: var(--md-sys-color-on-surface-variant);
76
+ margin: 2px 0 0;
77
+ }
78
+ `;
79
+ }
80
+ render() {
81
+ const headline = esc(this.getAttribute("headline"));
82
+ const supporting = esc(this.getAttribute("supporting"));
83
+ const interactive = this.hasAttribute("interactive");
84
+ const tag = interactive ? "button" : "div";
85
+ const attrs = interactive ? html `role="listitem" type="button"` : html `role="listitem"`;
86
+ return html `<${tag} class="item" part="item" ${attrs}>
87
+ <slot name="leading"></slot>
88
+ <div class="body">
89
+ ${headline ? html `<p class="headline">${headline}</p>` : ""}
90
+ ${supporting ? html `<p class="supporting">${supporting}</p>` : ""}
91
+ <slot></slot>
92
+ </div>
93
+ <slot name="trailing"></slot>
94
+ </${tag}>`;
95
+ }
96
+ }
97
+ NptListItem.observedAttributes = ["interactive", "headline", "supporting"];
98
+ /** <npt-divider [inset]></npt-divider> */
99
+ export class NptDivider extends NptElement {
100
+ attributeChangedCallback() {
101
+ if (this.isConnected)
102
+ this.update();
103
+ }
104
+ styles() {
105
+ return css `
106
+ :host {
107
+ display: block;
108
+ }
109
+ .rule {
110
+ border: none;
111
+ block-size: 1px;
112
+ background: var(--md-sys-color-outline-variant);
113
+ margin-block: 0;
114
+ }
115
+ :host([inset]) .rule {
116
+ margin-inline-start: var(--npt-space-4, 16px);
117
+ margin-inline-end: var(--npt-space-4, 16px);
118
+ }
119
+ `;
120
+ }
121
+ render() {
122
+ return html `<hr class="rule" part="divider" role="separator" />`;
123
+ }
124
+ }
125
+ NptDivider.observedAttributes = ["inset"];
126
+ /**
127
+ * <npt-tabs> with <npt-tab> children.
128
+ * Click selects a tab (sets [active]); a sliding indicator follows.
129
+ */
130
+ export class NptTabs extends NptElement {
131
+ constructor() {
132
+ super(...arguments);
133
+ this.onClick = (e) => {
134
+ const tab = e.target?.closest("npt-tab");
135
+ if (!tab)
136
+ return;
137
+ for (const t of this.querySelectorAll("npt-tab"))
138
+ t.toggleAttribute("active", t === tab);
139
+ this.dispatchEvent(new CustomEvent("change", { bubbles: true }));
140
+ };
141
+ }
142
+ connectedCallback() {
143
+ super.connectedCallback();
144
+ this.addEventListener("click", this.onClick);
145
+ }
146
+ disconnectedCallback() {
147
+ this.removeEventListener("click", this.onClick);
148
+ }
149
+ styles() {
150
+ return css `
151
+ ${A11Y}
152
+ :host {
153
+ display: block;
154
+ }
155
+ .row {
156
+ display: flex;
157
+ gap: var(--npt-space-2, 8px);
158
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
159
+ }
160
+ `;
161
+ }
162
+ render() {
163
+ return html `<div class="row" part="tabs" role="tablist"><slot></slot></div>`;
164
+ }
165
+ }
166
+ /** <npt-tab [active]>Overview</npt-tab> */
167
+ export class NptTab extends NptElement {
168
+ attributeChangedCallback() {
169
+ if (this.isConnected)
170
+ this.update();
171
+ }
172
+ styles() {
173
+ return css `
174
+ ${A11Y}
175
+ :host {
176
+ display: inline-flex;
177
+ }
178
+ .tab {
179
+ position: relative;
180
+ min-height: 48px;
181
+ display: inline-flex;
182
+ align-items: center;
183
+ gap: var(--npt-space-2, 8px);
184
+ padding-inline: var(--npt-space-4, 16px);
185
+ border: none;
186
+ background: transparent;
187
+ color: var(--md-sys-color-on-surface-variant);
188
+ cursor: pointer;
189
+ font-family: var(--npt-font-text);
190
+ font-size: var(--npt-text-label, 14px);
191
+ font-weight: 600;
192
+ }
193
+ .tab::after {
194
+ content: "";
195
+ position: absolute;
196
+ inset-block-end: 0;
197
+ inset-inline: var(--npt-space-2, 8px);
198
+ block-size: 3px;
199
+ border-start-start-radius: var(--npt-corner-full, 999px);
200
+ border-start-end-radius: var(--npt-corner-full, 999px);
201
+ background: transparent;
202
+ transition: background-color var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
203
+ }
204
+ :host([active]) .tab {
205
+ color: var(--md-sys-color-primary);
206
+ }
207
+ :host([active]) .tab::after {
208
+ background: var(--md-sys-color-primary);
209
+ }
210
+ `;
211
+ }
212
+ render() {
213
+ const active = this.hasAttribute("active");
214
+ return html `<button class="tab" part="tab" role="tab" aria-selected="${active}">
215
+ <slot></slot>
216
+ </button>`;
217
+ }
218
+ }
219
+ NptTab.observedAttributes = ["active"];
220
+ /** <npt-accordion> with <npt-accordion-item> children. */
221
+ export class NptAccordion extends NptElement {
222
+ styles() {
223
+ return css `
224
+ :host {
225
+ display: block;
226
+ }
227
+ `;
228
+ }
229
+ render() {
230
+ return html `<div part="accordion"><slot></slot></div>`;
231
+ }
232
+ }
233
+ /**
234
+ * <npt-accordion-item [open] summary="Section">…detail…</npt-accordion-item>
235
+ * Native <details>/<summary> semantics under the hood.
236
+ */
237
+ export class NptAccordionItem extends NptElement {
238
+ constructor() {
239
+ super(...arguments);
240
+ this.onToggle = (e) => {
241
+ const open = e.target.open;
242
+ this.toggleAttribute("open", open);
243
+ };
244
+ }
245
+ attributeChangedCallback() {
246
+ if (this.isConnected)
247
+ this.update();
248
+ }
249
+ connectedCallback() {
250
+ super.connectedCallback();
251
+ this.root.addEventListener("toggle", this.onToggle, true);
252
+ }
253
+ disconnectedCallback() {
254
+ this.root.removeEventListener("toggle", this.onToggle, true);
255
+ }
256
+ styles() {
257
+ return css `
258
+ ${A11Y}
259
+ :host {
260
+ display: block;
261
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
262
+ }
263
+ details {
264
+ color: var(--md-sys-color-on-surface);
265
+ }
266
+ summary {
267
+ list-style: none;
268
+ min-height: 56px;
269
+ display: flex;
270
+ align-items: center;
271
+ gap: var(--npt-space-3, 12px);
272
+ padding-inline: var(--npt-space-4, 16px);
273
+ cursor: pointer;
274
+ font-family: var(--npt-font-text);
275
+ font-size: var(--npt-text-body-lg, 16px);
276
+ font-weight: 600;
277
+ }
278
+ summary::-webkit-details-marker {
279
+ display: none;
280
+ }
281
+ .chevron {
282
+ margin-inline-start: auto;
283
+ transition: transform var(--npt-dur-fast, 200ms) var(--npt-ease-standard, ease);
284
+ }
285
+ details[open] .chevron {
286
+ transform: rotate(180deg);
287
+ }
288
+ .detail {
289
+ padding-inline: var(--npt-space-4, 16px);
290
+ padding-block-end: var(--npt-space-4, 16px);
291
+ font-family: var(--npt-font-text);
292
+ font-size: var(--npt-text-body, 14px);
293
+ color: var(--md-sys-color-on-surface-variant);
294
+ }
295
+ `;
296
+ }
297
+ render() {
298
+ const summary = esc(this.getAttribute("summary"));
299
+ const open = this.hasAttribute("open") ? "open" : "";
300
+ return html `<details part="item" ${open}>
301
+ <summary part="summary">${summary}<span class="chevron" aria-hidden="true">⌄</span></summary>
302
+ <div class="detail" part="detail"><slot></slot></div>
303
+ </details>`;
304
+ }
305
+ }
306
+ NptAccordionItem.observedAttributes = ["open", "summary"];
307
+ /** <npt-avatar src="" initials="MK" size="sm|md|lg" label="Mona"></npt-avatar> */
308
+ export class NptAvatar extends NptElement {
309
+ attributeChangedCallback() {
310
+ if (this.isConnected)
311
+ this.update();
312
+ }
313
+ styles() {
314
+ return css `
315
+ :host {
316
+ display: inline-block;
317
+ }
318
+ .avatar {
319
+ inline-size: 40px;
320
+ block-size: 40px;
321
+ border-radius: var(--npt-corner-full, 999px);
322
+ overflow: hidden;
323
+ display: grid;
324
+ place-items: center;
325
+ background: var(--md-sys-color-primary-container);
326
+ color: var(--md-sys-color-on-primary-container);
327
+ font-family: var(--npt-font-display);
328
+ font-weight: 600;
329
+ font-size: var(--npt-text-label, 14px);
330
+ }
331
+ :host([size="sm"]) .avatar {
332
+ inline-size: 28px;
333
+ block-size: 28px;
334
+ font-size: var(--npt-text-caption, 12px);
335
+ }
336
+ :host([size="lg"]) .avatar {
337
+ inline-size: 64px;
338
+ block-size: 64px;
339
+ font-size: var(--npt-text-title, 18px);
340
+ }
341
+ img {
342
+ inline-size: 100%;
343
+ block-size: 100%;
344
+ object-fit: cover;
345
+ }
346
+ `;
347
+ }
348
+ render() {
349
+ const src = esc(this.getAttribute("src"));
350
+ const initials = esc(this.getAttribute("initials"));
351
+ const label = esc(this.getAttribute("label")) || initials;
352
+ const inner = src
353
+ ? html `<img src="${src}" alt="${label}" />`
354
+ : html `<span aria-hidden="true">${initials}</span>`;
355
+ return html `<span class="avatar" part="avatar" role="img" aria-label="${label}">${inner}</span>`;
356
+ }
357
+ }
358
+ NptAvatar.observedAttributes = ["src", "initials", "size", "label"];
359
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/components/layout.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,wCAAwC;AACxC,qEAAqE;AACrE,uDAAuD;AACvD,gEAAgE;AAChE,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,gDAAgD;AAChD,MAAM,OAAO,OAAQ,SAAQ,UAAU;IAC3B,MAAM;QACd,OAAO,GAAG,CAAA;;;;;;;;;KAST,CAAC;IACJ,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,+DAA+D,CAAC;IAC7E,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,UAAU;IAGzC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAES,MAAM;QACd,OAAO,GAAG,CAAA;QACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwCP,CAAC;IACJ,CAAC;IAES,MAAM;QACd,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAA,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAA,iBAAiB,CAAC;QACxF,OAAO,IAAI,CAAA,IAAI,GAAG,6BAA6B,KAAK;;;UAG9C,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,uBAAuB,QAAQ,MAAM,CAAC,CAAC,CAAC,EAAE;UACzD,UAAU,CAAC,CAAC,CAAC,IAAI,CAAA,yBAAyB,UAAU,MAAM,CAAC,CAAC,CAAC,EAAE;;;;QAIjE,GAAG,GAAG,CAAC;IACb,CAAC;;AAlEM,8BAAkB,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAqExE,0CAA0C;AAC1C,MAAM,OAAO,UAAW,SAAQ,UAAU;IAGxC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAES,MAAM;QACd,OAAO,GAAG,CAAA;;;;;;;;;;;;;;KAcT,CAAC;IACJ,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,qDAAqD,CAAC;IACnE,CAAC;;AA1BM,6BAAkB,GAAG,CAAC,OAAO,CAAC,CAAC;AA6BxC;;;GAGG;AACH,MAAM,OAAO,OAAQ,SAAQ,UAAU;IAAvC;;QAUU,YAAO,GAAG,CAAC,CAAQ,EAAQ,EAAE;YACnC,MAAM,GAAG,GAAI,CAAC,CAAC,MAAsB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG;gBAAE,OAAO;YACjB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;gBAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;YACzF,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;IAmBJ,CAAC;IAjCU,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IASS,MAAM;QACd,OAAO,GAAG,CAAA;QACN,IAAI;;;;;;;;;KASP,CAAC;IACJ,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,iEAAiE,CAAC;IAC/E,CAAC;CACF;AAED,2CAA2C;AAC3C,MAAM,OAAO,MAAO,SAAQ,UAAU;IAGpC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAES,MAAM;QACd,OAAO,GAAG,CAAA;QACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAoCP,CAAC;IACJ,CAAC;IAES,MAAM;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAA,4DAA4D,MAAM;;cAEnE,CAAC;IACb,CAAC;;AApDM,yBAAkB,GAAG,CAAC,QAAQ,CAAC,CAAC;AAuDzC,0DAA0D;AAC1D,MAAM,OAAO,YAAa,SAAQ,UAAU;IAChC,MAAM;QACd,OAAO,GAAG,CAAA;;;;KAIT,CAAC;IACJ,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA,2CAA2C,CAAC;IACzD,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,gBAAiB,SAAQ,UAAU;IAAhD;;QAgBU,aAAQ,GAAG,CAAC,CAAQ,EAAQ,EAAE;YACpC,MAAM,IAAI,GAAI,CAAC,CAAC,MAA6B,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC;IAoDJ,CAAC;IApEC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAOS,MAAM;QACd,OAAO,GAAG,CAAA;QACN,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqCP,CAAC;IACJ,CAAC;IAES,MAAM;QACd,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAA,wBAAwB,IAAI;gCACX,OAAO;;eAExB,CAAC;IACd,CAAC;;AArEM,mCAAkB,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,AAAtB,CAAuB;AAwElD,kFAAkF;AAClF,MAAM,OAAO,SAAU,SAAQ,UAAU;IAGvC,wBAAwB;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC;IAES,MAAM;QACd,OAAO,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCT,CAAC;IACJ,CAAC;IAES,MAAM;QACd,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,QAAQ,CAAC;QAC1D,MAAM,KAAK,GAAG,GAAG;YACf,CAAC,CAAC,IAAI,CAAA,aAAa,GAAG,UAAU,KAAK,MAAM;YAC3C,CAAC,CAAC,IAAI,CAAA,4BAA4B,QAAQ,SAAS,CAAC;QACtD,OAAO,IAAI,CAAA,6DAA6D,KAAK,KAAK,KAAK,SAAS,CAAC;IACnG,CAAC;;AAlDM,4BAAkB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { NptElement } from "./base.js";
2
+ /**
3
+ * <npt-nav-rail> with <npt-nav-item> children — the desktop/tablet side rail.
4
+ * Vertical sibling of <npt-nav-bar>; reuses the same items.
5
+ */
6
+ export declare class NptNavRail extends NptElement {
7
+ protected styles(): string;
8
+ protected render(): string;
9
+ }
10
+ /**
11
+ * <npt-top-app-bar title="Accounts" variant="small|center|medium|large">
12
+ * …leading/trailing slots…
13
+ * </npt-top-app-bar>
14
+ * M3 top app bar. `medium`/`large` stack a larger headline below the action row.
15
+ */
16
+ export declare class NptTopAppBar extends NptElement {
17
+ static observedAttributes: string[];
18
+ attributeChangedCallback(): void;
19
+ protected styles(): string;
20
+ protected render(): string;
21
+ }
22
+ //# sourceMappingURL=nav-rail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-rail.d.ts","sourceRoot":"","sources":["../../src/components/nav-rail.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAa,MAAM,WAAW,CAAC;AAKlD;;;GAGG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,SAAS,CAAC,MAAM,IAAI,MAAM;IAyB1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAM3B;AAED;;;;;GAKG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,kBAAkB,WAAwB;IAEjD,wBAAwB,IAAI,IAAI;IAIhC,SAAS,CAAC,MAAM,IAAI,MAAM;IAsD1B,SAAS,CAAC,MAAM,IAAI,MAAM;CAW3B"}