@kodaris/krubble-app-components 1.0.127 → 1.0.129
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/krubble-app.bundled.js +97 -0
- package/dist/krubble-app.bundled.js.map +1 -1
- package/dist/krubble-app.bundled.min.js +40 -2
- package/dist/krubble-app.bundled.min.js.map +1 -1
- package/dist/krubble-app.umd.js +97 -0
- package/dist/krubble-app.umd.js.map +1 -1
- package/dist/krubble-app.umd.min.js +40 -2
- package/dist/krubble-app.umd.min.js.map +1 -1
- package/dist/screen-nav.d.ts +40 -0
- package/dist/screen-nav.d.ts.map +1 -1
- package/dist/screen-nav.js +97 -0
- package/dist/screen-nav.js.map +1 -1
- package/package.json +1 -1
package/dist/screen-nav.d.ts
CHANGED
|
@@ -10,6 +10,19 @@ export interface KRScreenNavItem {
|
|
|
10
10
|
/** URL to navigate to */
|
|
11
11
|
url?: string;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Screen navigation action button interface. Actions render in a footer at the
|
|
15
|
+
* bottom of the nav column. When there are more than `maxVisibleActions`, the
|
|
16
|
+
* overflow collapses into a "More" dropdown.
|
|
17
|
+
*/
|
|
18
|
+
export interface KRScreenNavAction {
|
|
19
|
+
/** Unique identifier */
|
|
20
|
+
id: string;
|
|
21
|
+
/** Display label */
|
|
22
|
+
label: string;
|
|
23
|
+
/** Button variant for inline actions (defaults to 'outline') */
|
|
24
|
+
variant?: 'flat' | 'outline';
|
|
25
|
+
}
|
|
13
26
|
/**
|
|
14
27
|
* Secondary navigation component for screens within the scaffold.
|
|
15
28
|
* Provides a simple nav drawer for sub-navigation within a page/screen.
|
|
@@ -26,17 +39,31 @@ export interface KRScreenNavItem {
|
|
|
26
39
|
* { id: 'activity', label: 'Activity', url: '/companies/123/activity' },
|
|
27
40
|
* ]}
|
|
28
41
|
* activeId="overview"
|
|
42
|
+
* .actions=${[
|
|
43
|
+
* { id: 'edit', label: 'Edit', variant: 'flat' },
|
|
44
|
+
* { id: 'archive', label: 'Archive' },
|
|
45
|
+
* { id: 'delete', label: 'Delete' },
|
|
46
|
+
* { id: 'export', label: 'Export' },
|
|
47
|
+
* ]}
|
|
29
48
|
* >
|
|
30
49
|
* <div>Screen content here</div>
|
|
31
50
|
* </kr-screen-nav>
|
|
32
51
|
* ```
|
|
33
52
|
*
|
|
53
|
+
* Actions render in a footer at the bottom of the nav column. With more than
|
|
54
|
+
* `maxVisibleActions` (default 3), the overflow collapses into a "More" dropdown.
|
|
55
|
+
* Listen for `action-click` to handle a click: `e.detail.action` is the action id.
|
|
56
|
+
*
|
|
34
57
|
* @slot - The main screen content
|
|
35
58
|
*
|
|
36
59
|
* @property {string} label - Main label (e.g., entity name like "Acme Corporation")
|
|
37
60
|
* @property {string} subLabel - Sub label (e.g., entity type like "Company")
|
|
38
61
|
* @property {KRScreenNavItem[]} items - Navigation items as JSON array
|
|
39
62
|
* @property {string} activeId - Currently active item ID
|
|
63
|
+
* @property {KRScreenNavAction[]} actions - Action buttons rendered in the nav footer
|
|
64
|
+
* @property {number} maxVisibleActions - Max inline actions before collapsing into a "More" dropdown (default 3)
|
|
65
|
+
*
|
|
66
|
+
* @fires action-click - When an action button (inline or overflow) is clicked; detail is `{ action: id }`
|
|
40
67
|
*/
|
|
41
68
|
export declare class KRScreenNav extends LitElement {
|
|
42
69
|
static styles: import("lit").CSSResult;
|
|
@@ -57,6 +84,17 @@ export declare class KRScreenNav extends LitElement {
|
|
|
57
84
|
* Can be set explicitly by the parent to override.
|
|
58
85
|
*/
|
|
59
86
|
activeId: string;
|
|
87
|
+
/**
|
|
88
|
+
* Action buttons rendered in the nav footer.
|
|
89
|
+
*/
|
|
90
|
+
actions: KRScreenNavAction[];
|
|
91
|
+
/**
|
|
92
|
+
* Max number of inline action buttons before the overflow collapses into a
|
|
93
|
+
* "More" dropdown. When actions exceed this count, the last visible slot is
|
|
94
|
+
* used for the "More" button so the total footer button count never exceeds
|
|
95
|
+
* this value.
|
|
96
|
+
*/
|
|
97
|
+
maxVisibleActions: number;
|
|
60
98
|
connectedCallback(): void;
|
|
61
99
|
disconnectedCallback(): void;
|
|
62
100
|
private handlePopstate;
|
|
@@ -77,6 +115,8 @@ export declare class KRScreenNav extends LitElement {
|
|
|
77
115
|
*/
|
|
78
116
|
private handleNavItemClick;
|
|
79
117
|
private syncActiveFromUrl;
|
|
118
|
+
private handleActionClick;
|
|
119
|
+
private handleMoreSelect;
|
|
80
120
|
render(): import("lit-html").TemplateResult<1>;
|
|
81
121
|
}
|
|
82
122
|
declare global {
|
package/dist/screen-nav.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-nav.d.ts","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-nav.d.ts","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAOrD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,0BAuGpB;IAEF;;OAEG;IAEH,KAAK,SAAM;IAEX;;OAEG;IAEH,QAAQ,SAAM;IAEd;;OAEG;IAGH,KAAK,EAAE,eAAe,EAAE,CAAM;IAE9B;;;OAGG;IAEH,QAAQ,SAAM;IAEd;;OAEG;IAEH,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAElC;;;;;OAKG;IAEH,iBAAiB,SAAK;IAEb,iBAAiB;IAOjB,oBAAoB;IAK7B,OAAO,CAAC,cAAc,CAEpB;IAEF;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,gBAAgB;IAQf,MAAM;CA8EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
|
package/dist/screen-nav.js
CHANGED
|
@@ -23,17 +23,31 @@ import { classMap } from 'lit/directives/class-map.js';
|
|
|
23
23
|
* { id: 'activity', label: 'Activity', url: '/companies/123/activity' },
|
|
24
24
|
* ]}
|
|
25
25
|
* activeId="overview"
|
|
26
|
+
* .actions=${[
|
|
27
|
+
* { id: 'edit', label: 'Edit', variant: 'flat' },
|
|
28
|
+
* { id: 'archive', label: 'Archive' },
|
|
29
|
+
* { id: 'delete', label: 'Delete' },
|
|
30
|
+
* { id: 'export', label: 'Export' },
|
|
31
|
+
* ]}
|
|
26
32
|
* >
|
|
27
33
|
* <div>Screen content here</div>
|
|
28
34
|
* </kr-screen-nav>
|
|
29
35
|
* ```
|
|
30
36
|
*
|
|
37
|
+
* Actions render in a footer at the bottom of the nav column. With more than
|
|
38
|
+
* `maxVisibleActions` (default 3), the overflow collapses into a "More" dropdown.
|
|
39
|
+
* Listen for `action-click` to handle a click: `e.detail.action` is the action id.
|
|
40
|
+
*
|
|
31
41
|
* @slot - The main screen content
|
|
32
42
|
*
|
|
33
43
|
* @property {string} label - Main label (e.g., entity name like "Acme Corporation")
|
|
34
44
|
* @property {string} subLabel - Sub label (e.g., entity type like "Company")
|
|
35
45
|
* @property {KRScreenNavItem[]} items - Navigation items as JSON array
|
|
36
46
|
* @property {string} activeId - Currently active item ID
|
|
47
|
+
* @property {KRScreenNavAction[]} actions - Action buttons rendered in the nav footer
|
|
48
|
+
* @property {number} maxVisibleActions - Max inline actions before collapsing into a "More" dropdown (default 3)
|
|
49
|
+
*
|
|
50
|
+
* @fires action-click - When an action button (inline or overflow) is clicked; detail is `{ action: id }`
|
|
37
51
|
*/
|
|
38
52
|
export class KRScreenNav extends LitElement {
|
|
39
53
|
constructor() {
|
|
@@ -55,6 +69,17 @@ export class KRScreenNav extends LitElement {
|
|
|
55
69
|
* Can be set explicitly by the parent to override.
|
|
56
70
|
*/
|
|
57
71
|
this.activeId = '';
|
|
72
|
+
/**
|
|
73
|
+
* Action buttons rendered in the nav footer.
|
|
74
|
+
*/
|
|
75
|
+
this.actions = [];
|
|
76
|
+
/**
|
|
77
|
+
* Max number of inline action buttons before the overflow collapses into a
|
|
78
|
+
* "More" dropdown. When actions exceed this count, the last visible slot is
|
|
79
|
+
* used for the "More" button so the total footer button count never exceeds
|
|
80
|
+
* this value.
|
|
81
|
+
*/
|
|
82
|
+
this.maxVisibleActions = 3;
|
|
58
83
|
this.handlePopstate = () => {
|
|
59
84
|
this.syncActiveFromUrl();
|
|
60
85
|
};
|
|
@@ -115,7 +140,35 @@ export class KRScreenNav extends LitElement {
|
|
|
115
140
|
this.activeId = match.id;
|
|
116
141
|
}
|
|
117
142
|
}
|
|
143
|
+
handleActionClick(e, action) {
|
|
144
|
+
this.dispatchEvent(new CustomEvent('action-click', {
|
|
145
|
+
detail: { action: action.id },
|
|
146
|
+
bubbles: true,
|
|
147
|
+
composed: true,
|
|
148
|
+
}));
|
|
149
|
+
}
|
|
150
|
+
// Fired by the "More" kr-button when an overflow option is chosen; detail is { id, label }.
|
|
151
|
+
handleMoreSelect(e) {
|
|
152
|
+
this.dispatchEvent(new CustomEvent('action-click', {
|
|
153
|
+
detail: { action: e.detail.id },
|
|
154
|
+
bubbles: true,
|
|
155
|
+
composed: true,
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
118
158
|
render() {
|
|
159
|
+
const hasOverflow = this.actions.length > this.maxVisibleActions;
|
|
160
|
+
// When collapsing, the last visible slot is the "More" button, so only
|
|
161
|
+
// show the first (maxVisibleActions - 1) actions inline.
|
|
162
|
+
let inlineActions = this.actions;
|
|
163
|
+
let overflowOptions = [];
|
|
164
|
+
if (hasOverflow) {
|
|
165
|
+
inlineActions = this.actions.slice(0, this.maxVisibleActions - 1);
|
|
166
|
+
// Everything past the inline slots goes into the "More" dropdown.
|
|
167
|
+
overflowOptions = this.actions.slice(this.maxVisibleActions - 1).map((action) => ({
|
|
168
|
+
id: action.id,
|
|
169
|
+
label: action.label,
|
|
170
|
+
}));
|
|
171
|
+
}
|
|
119
172
|
return html `
|
|
120
173
|
<nav class="nav">
|
|
121
174
|
${this.label ? html `
|
|
@@ -142,6 +195,31 @@ export class KRScreenNav extends LitElement {
|
|
|
142
195
|
`)}
|
|
143
196
|
</div>
|
|
144
197
|
</div>
|
|
198
|
+
${this.actions.length ? html `
|
|
199
|
+
<div class="nav-actions">
|
|
200
|
+
${inlineActions.map((action) => html `
|
|
201
|
+
<kr-button
|
|
202
|
+
class="nav-actions__button"
|
|
203
|
+
variant=${action.variant || 'outline'}
|
|
204
|
+
size="small"
|
|
205
|
+
@click=${(e) => this.handleActionClick(e, action)}
|
|
206
|
+
>
|
|
207
|
+
${action.label}
|
|
208
|
+
</kr-button>
|
|
209
|
+
`)}
|
|
210
|
+
${hasOverflow ? html `
|
|
211
|
+
<kr-button
|
|
212
|
+
class="nav-actions__button"
|
|
213
|
+
variant="outline"
|
|
214
|
+
size="small"
|
|
215
|
+
.options=${overflowOptions}
|
|
216
|
+
@option-select=${this.handleMoreSelect}
|
|
217
|
+
>
|
|
218
|
+
More
|
|
219
|
+
</kr-button>
|
|
220
|
+
` : nothing}
|
|
221
|
+
</div>
|
|
222
|
+
` : nothing}
|
|
145
223
|
</nav>
|
|
146
224
|
<main class="content">
|
|
147
225
|
<div class="content__main">
|
|
@@ -230,6 +308,19 @@ KRScreenNav.styles = css `
|
|
|
230
308
|
font-weight: 700;
|
|
231
309
|
}
|
|
232
310
|
|
|
311
|
+
.nav-actions {
|
|
312
|
+
display: flex;
|
|
313
|
+
flex-direction: column;
|
|
314
|
+
gap: 8px;
|
|
315
|
+
padding: 12px 16px;
|
|
316
|
+
border-top: 1px solid rgba(0, 0, 0, 0.08);
|
|
317
|
+
flex-shrink: 0;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.nav-actions__button {
|
|
321
|
+
width: 100%;
|
|
322
|
+
}
|
|
323
|
+
|
|
233
324
|
.content {
|
|
234
325
|
flex: 1;
|
|
235
326
|
min-width: 0;
|
|
@@ -254,6 +345,12 @@ __decorate([
|
|
|
254
345
|
__decorate([
|
|
255
346
|
property({ type: String })
|
|
256
347
|
], KRScreenNav.prototype, "activeId", void 0);
|
|
348
|
+
__decorate([
|
|
349
|
+
property({ type: Array })
|
|
350
|
+
], KRScreenNav.prototype, "actions", void 0);
|
|
351
|
+
__decorate([
|
|
352
|
+
property({ type: Number })
|
|
353
|
+
], KRScreenNav.prototype, "maxVisibleActions", void 0);
|
|
257
354
|
// Guarded registration: no-op if the tag is already defined, so a second copy of krubble on
|
|
258
355
|
// the page (e.g. the Operations shell loads krubble globally while an embedded app bundled its
|
|
259
356
|
// own copy) doesn't throw. First definition wins.
|
package/dist/screen-nav.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-nav.js","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-nav.js","sourceRoot":"","sources":["../src/screen-nav.ts"],"names":[],"mappings":"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"}
|