@kodaris/krubble-app-components 1.0.66 → 1.0.68

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/scaffold.js CHANGED
@@ -57,6 +57,7 @@ import { KRNavItemEdit } from './scaffold/nav-item-edit.js';
57
57
  * @property {KRNavItem[]} nav - Navigation items as JSON array
58
58
  * @property {KRUser} user - User profile data
59
59
  * @property {boolean} navEnabled - Whether to show the nav drawer (menu toggle remains visible when false)
60
+ * @property {'employee'|'customer'} user-type - User type. Customers skip all `/api/system` calls since that endpoint is employee-only. Defaults to 'employee'.
60
61
  *
61
62
  *
62
63
  * TODO
@@ -70,18 +71,6 @@ let KRScaffold = class KRScaffold extends LitElement {
70
71
  * Default icon for nav items without an icon (shown at top level)
71
72
  */
72
73
  this.defaultNavItemIcon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="12" r="10"/></svg>';
73
- this.navItemsExpanded = new Set();
74
- this.navQuery = '';
75
- this.activeNavItemId = null;
76
- this.isNavScrolled = false;
77
- this.isNavOpened = localStorage.getItem('kr-scaffold-nav-opened') !== 'false';
78
- this.isEditing = false;
79
- this.isUserMenuOpen = false;
80
- this.pref = { nav: {} };
81
- this.draggedNavItemId = null;
82
- this.navItemDropTargetId = null;
83
- this.navItemDropPosition = 'above';
84
- this.pendingRequests = 0;
85
74
  this.originalFetch = null;
86
75
  this.originalXhrOpen = null;
87
76
  this.navItemDragPreview = null;
@@ -109,18 +98,38 @@ let KRScaffold = class KRScaffold extends LitElement {
109
98
  * Menu toggle button remains visible and emits menu-click events.
110
99
  */
111
100
  this.navEnabled = true;
101
+ /**
102
+ * User type. Set to 'customer' to skip all /api/system calls — customers don't have access to that endpoint.
103
+ */
104
+ this.userType = 'employee';
112
105
  /**
113
106
  * Breadcrumbs to display in the subbar
114
107
  */
115
108
  this.breadcrumbs = [];
109
+ this.navItemsExpanded = new Set();
110
+ this.navQuery = '';
111
+ this.activeNavItemId = null;
112
+ this.isNavScrolled = false;
113
+ this.isNavOpened = localStorage.getItem('kr-scaffold-nav-opened') !== 'false';
114
+ this.isEditing = false;
115
+ this.isUserMenuOpen = false;
116
+ this.pref = { nav: {} };
117
+ this.draggedNavItemId = null;
118
+ this.navItemDropTargetId = null;
119
+ this.navItemDropPosition = 'above';
120
+ this.pendingRequests = 0;
116
121
  this.boundHandleMouseMove = this.handleMouseMove.bind(this);
117
122
  this.boundHandleMouseUp = this.handleMouseUp.bind(this);
118
123
  }
119
124
  connectedCallback() {
120
125
  super.connectedCallback();
121
- this.loadPref();
122
126
  this.installFetchInterceptor();
123
127
  }
128
+ // Attributes are not reflected into properties until after the first update,
129
+ // so loadPref() must run here (not connectedCallback) for user-type to be set.
130
+ firstUpdated() {
131
+ this.loadPref();
132
+ }
124
133
  updated(changedProperties) {
125
134
  super.updated(changedProperties);
126
135
  if (changedProperties.has('nav') && this.nav.length > 0) {
@@ -142,8 +151,9 @@ let KRScaffold = class KRScaffold extends LitElement {
142
151
  * Updates `pendingRequests` state when requests start/complete.
143
152
  */
144
153
  installFetchInterceptor() {
145
- if (this.originalFetch)
154
+ if (this.originalFetch) {
146
155
  return;
156
+ }
147
157
  const scaffold = this;
148
158
  // Intercept fetch
149
159
  this.originalFetch = window.fetch.bind(window);
@@ -194,17 +204,23 @@ let KRScaffold = class KRScaffold extends LitElement {
194
204
  * - resolveUrl(item) = "/operations/settings" (used for href and URL comparison)
195
205
  */
196
206
  resolveUrl(item) {
197
- if (!item.url)
207
+ if (!item.url) {
198
208
  return '#';
209
+ }
199
210
  // External URLs - return as-is
200
211
  if (item.external) {
201
212
  return item.url;
202
213
  }
203
214
  // Remove leading slash from url if present, then combine with base
204
- const path = item.url.startsWith('/') ? item.url.slice(1) : item.url;
215
+ let path = item.url;
216
+ if (item.url.startsWith('/')) {
217
+ path = item.url.slice(1);
218
+ }
205
219
  const baseHref = document.querySelector('base')?.getAttribute('href') || '/';
206
- const base = baseHref.endsWith('/') ? baseHref : (baseHref + '/');
207
- return base + path;
220
+ if (baseHref.endsWith('/')) {
221
+ return baseHref + path;
222
+ }
223
+ return baseHref + '/' + path;
208
224
  }
209
225
  // =========================================================================
210
226
  // Navigation Data
@@ -233,11 +249,15 @@ let KRScaffold = class KRScaffold extends LitElement {
233
249
  if (item.type === 'group' && item.children) {
234
250
  item.children.forEach((child, childIndex) => {
235
251
  const childOverride = this.pref.nav[child.id];
252
+ let parentId = item.id;
253
+ if (childOverride?.parentId !== undefined) {
254
+ parentId = childOverride.parentId;
255
+ }
236
256
  result.push({
237
257
  ...child,
238
258
  ...childOverride,
239
259
  order: childOverride?.order ?? child.order ?? childIndex,
240
- parentId: childOverride?.parentId !== undefined ? childOverride.parentId : item.id,
260
+ parentId,
241
261
  });
242
262
  });
243
263
  }
@@ -380,14 +400,18 @@ let KRScaffold = class KRScaffold extends LitElement {
380
400
  toggleNavItem(itemId) {
381
401
  const navItem = this.shadowRoot?.querySelector(`.nav-item[data-id="${itemId}"]`);
382
402
  const groupEl = navItem?.nextElementSibling;
383
- if (!groupEl)
403
+ if (!groupEl) {
384
404
  return;
405
+ }
385
406
  if (this.navItemsExpanded.has(itemId)) {
386
407
  this.navItemsExpanded.delete(itemId);
387
408
  groupEl.animate([
388
409
  { height: `${groupEl.scrollHeight}px` },
389
410
  { height: '0px' }
390
- ], { duration: 300, easing: 'ease-in-out' }).onfinish = () => {
411
+ ], {
412
+ duration: 300,
413
+ easing: 'ease-in-out'
414
+ }).onfinish = () => {
391
415
  groupEl.classList.remove('nav-group--expanded');
392
416
  };
393
417
  }
@@ -397,7 +421,10 @@ let KRScaffold = class KRScaffold extends LitElement {
397
421
  groupEl.animate([
398
422
  { height: '0px' },
399
423
  { height: `${groupEl.scrollHeight}px` }
400
- ], { duration: 300, easing: 'ease-in-out' });
424
+ ], {
425
+ duration: 300,
426
+ easing: 'ease-in-out'
427
+ });
401
428
  }
402
429
  this.requestUpdate();
403
430
  }
@@ -492,12 +519,18 @@ let KRScaffold = class KRScaffold extends LitElement {
492
519
  this.pref.nav = {};
493
520
  }
494
521
  savePref() {
495
- const url = this.pref.uuid
496
- ? `/api/system/preference/json/scaffold/${this.pref.uuid}?global=true`
497
- : `/api/system/preference/json/scaffold?global=true`;
522
+ if (this.userType === 'customer') {
523
+ return;
524
+ }
525
+ let url = '/api/system/preference/json/scaffold?global=true';
526
+ let method = 'POST';
527
+ if (this.pref.uuid) {
528
+ url = `/api/system/preference/json/scaffold/${this.pref.uuid}?global=true`;
529
+ method = 'PUT';
530
+ }
498
531
  KRHttp.fetch({
499
532
  url,
500
- method: this.pref.uuid ? 'PUT' : 'POST',
533
+ method,
501
534
  body: JSON.stringify({ nav: this.pref.nav }),
502
535
  })
503
536
  .then((response) => response.json())
@@ -510,6 +543,9 @@ let KRScaffold = class KRScaffold extends LitElement {
510
543
  });
511
544
  }
512
545
  loadPref() {
546
+ if (this.userType === 'customer') {
547
+ return;
548
+ }
513
549
  KRHttp.fetch({
514
550
  url: '/api/system/preference/json/scaffold?global=true',
515
551
  method: 'GET',
@@ -526,21 +562,36 @@ let KRScaffold = class KRScaffold extends LitElement {
526
562
  });
527
563
  }
528
564
  handleNavItemContextMenu(e, item) {
529
- if (!this.isEditing)
565
+ if (!this.isEditing) {
530
566
  return;
567
+ }
531
568
  e.preventDefault();
532
569
  KRContextMenu.open({
533
570
  x: e.clientX,
534
571
  y: e.clientY,
535
572
  items: [
536
- { id: 'edit', label: 'Edit Item' },
537
- { id: 'divider-1', label: '', divider: true },
538
- { id: 'add-above', label: 'Add Item Above' },
539
- { id: 'add-below', label: 'Add Item Below' },
573
+ {
574
+ id: 'edit',
575
+ label: 'Edit Item'
576
+ },
577
+ {
578
+ id: 'divider-1',
579
+ label: '',
580
+ divider: true
581
+ },
582
+ {
583
+ id: 'add-above',
584
+ label: 'Add Item Above'
585
+ },
586
+ {
587
+ id: 'add-below',
588
+ label: 'Add Item Below'
589
+ },
540
590
  ],
541
591
  }).then((result) => {
542
- if (!result)
592
+ if (!result) {
543
593
  return;
594
+ }
544
595
  switch (result.id) {
545
596
  case 'edit':
546
597
  this.openNavItemEdit(item);
@@ -566,8 +617,9 @@ let KRScaffold = class KRScaffold extends LitElement {
566
617
  openNavItemEdit(item) {
567
618
  KRDialog.open(KRNavItemEdit, { data: item }).afterClosed().then((res) => {
568
619
  const result = res;
569
- if (!result)
620
+ if (!result) {
570
621
  return;
622
+ }
571
623
  if (!this.pref.nav[item.id]) {
572
624
  this.pref.nav[item.id] = {};
573
625
  }
@@ -594,7 +646,13 @@ let KRScaffold = class KRScaffold extends LitElement {
594
646
  .filter(i => i.parentId === targetItem.parentId)
595
647
  .sort((a, b) => a.order - b.order);
596
648
  const targetIndex = siblings.findIndex(i => i.id === targetItem.id);
597
- const newOrder = position === 'above' ? targetIndex : targetIndex + 1;
649
+ let newOrder;
650
+ if (position === 'above') {
651
+ newOrder = targetIndex;
652
+ }
653
+ else {
654
+ newOrder = targetIndex + 1;
655
+ }
598
656
  // Shift existing items to make room for the new item
599
657
  siblings.forEach((sibling, index) => {
600
658
  if (index >= newOrder) {
@@ -631,8 +689,9 @@ let KRScaffold = class KRScaffold extends LitElement {
631
689
  * @param item - The nav item being pressed
632
690
  */
633
691
  handleNavItemMouseDown(e, item) {
634
- if (!this.isEditing)
692
+ if (!this.isEditing) {
635
693
  return;
694
+ }
636
695
  e.preventDefault();
637
696
  this.draggedNavItemId = item.id;
638
697
  this.navItemDragStartY = e.clientY;
@@ -650,8 +709,9 @@ let KRScaffold = class KRScaffold extends LitElement {
650
709
  * @param e - The mouse event
651
710
  */
652
711
  handleMouseMove(e) {
653
- if (!this.draggedNavItemId)
712
+ if (!this.draggedNavItemId) {
654
713
  return;
714
+ }
655
715
  // Start dragging after moving a few pixels (to distinguish from clicks)
656
716
  if (!this.isNavItemDragging && Math.abs(e.clientY - this.navItemDragStartY) > 5) {
657
717
  this.isNavItemDragging = true;
@@ -667,8 +727,9 @@ let KRScaffold = class KRScaffold extends LitElement {
667
727
  this.shadowRoot?.appendChild(this.navItemDragPreview);
668
728
  }
669
729
  }
670
- if (!this.isNavItemDragging)
730
+ if (!this.isNavItemDragging) {
671
731
  return;
732
+ }
672
733
  // Update preview position
673
734
  if (this.navItemDragPreview) {
674
735
  this.navItemDragPreview.style.left = `${e.clientX + 10}px`;
@@ -719,14 +780,16 @@ let KRScaffold = class KRScaffold extends LitElement {
719
780
  updateNavItemDropTarget(e) {
720
781
  // Get all nav items in shadow DOM
721
782
  const navItems = this.shadowRoot?.querySelectorAll('.nav-item[data-id]');
722
- if (!navItems)
783
+ if (!navItems) {
723
784
  return;
785
+ }
724
786
  let foundTarget = false;
725
787
  navItems.forEach((el) => {
726
788
  const rect = el.getBoundingClientRect();
727
789
  const itemId = el.getAttribute('data-id');
728
- if (!itemId || itemId === this.draggedNavItemId)
790
+ if (!itemId || itemId === this.draggedNavItemId) {
729
791
  return;
792
+ }
730
793
  // Skip if mouse is outside this element
731
794
  if (e.clientX < rect.left || e.clientX > rect.right ||
732
795
  e.clientY < rect.top || e.clientY > rect.bottom) {
@@ -763,11 +826,22 @@ let KRScaffold = class KRScaffold extends LitElement {
763
826
  }
764
827
  else {
765
828
  // Regular items only support above/below, not center
766
- position = y < rect.height / 2 ? 'above' : 'below';
829
+ if (y < rect.height / 2) {
830
+ position = 'above';
831
+ }
832
+ else {
833
+ position = 'below';
834
+ }
767
835
  this.clearNavItemDragExpandTimeout();
768
836
  }
769
837
  // Determine what the new parent would be
770
- const newParentId = position === 'center' ? item.id : item.parentId;
838
+ let newParentId;
839
+ if (position === 'center') {
840
+ newParentId = item.id;
841
+ }
842
+ else {
843
+ newParentId = item.parentId;
844
+ }
771
845
  const draggedItem = this.getComputedNav().find(i => i.id === this.draggedNavItemId);
772
846
  // Don't show drop indicator if invalid drop:
773
847
  // 1. Can't drop an item into itself (newParentId === draggedNavItemId)
@@ -827,13 +901,15 @@ let KRScaffold = class KRScaffold extends LitElement {
827
901
  * with new order values for the dragged item and shifts siblings as needed.
828
902
  */
829
903
  executeNavItemDrop() {
830
- if (!this.draggedNavItemId || !this.navItemDropTargetId)
904
+ if (!this.draggedNavItemId || !this.navItemDropTargetId) {
831
905
  return;
906
+ }
832
907
  const allItems = this.getComputedNav();
833
908
  const draggedItem = allItems.find(i => i.id === this.draggedNavItemId);
834
909
  const targetItem = allItems.find(i => i.id === this.navItemDropTargetId);
835
- if (!draggedItem || !targetItem)
910
+ if (!draggedItem || !targetItem) {
836
911
  return;
912
+ }
837
913
  // Determine the new parentId for the dragged item
838
914
  let newParentId;
839
915
  if (this.navItemDropPosition === 'center' && targetItem.type === 'group') {
@@ -845,8 +921,9 @@ let KRScaffold = class KRScaffold extends LitElement {
845
921
  else {
846
922
  newParentId = targetItem.parentId;
847
923
  }
848
- if (newParentId === this.draggedNavItemId)
924
+ if (newParentId === this.draggedNavItemId) {
849
925
  return;
926
+ }
850
927
  // Get siblings in the destination parent
851
928
  const siblings = allItems
852
929
  .filter(i => i.parentId === newParentId && i.id !== this.draggedNavItemId)
@@ -917,8 +994,9 @@ let KRScaffold = class KRScaffold extends LitElement {
917
994
  // Rendering
918
995
  // =========================================================================
919
996
  renderNormalFooter() {
920
- if (!this.user)
997
+ if (!this.user) {
921
998
  return nothing;
999
+ }
922
1000
  const initials = this.user.name
923
1001
  .split(' ')
924
1002
  .map((part) => part[0])
@@ -1015,7 +1093,11 @@ let KRScaffold = class KRScaffold extends LitElement {
1015
1093
  stroke="currentColor"
1016
1094
  stroke-width="2"
1017
1095
  >
1018
- <path d="M6 9l6 6 6-6" stroke-linecap="round" stroke-linejoin="round" />
1096
+ <path
1097
+ d="M6 9l6 6 6-6"
1098
+ stroke-linecap="round"
1099
+ stroke-linejoin="round"
1100
+ />
1019
1101
  </svg>
1020
1102
  </button>
1021
1103
  <div class=${classMap({
@@ -1067,7 +1149,11 @@ let KRScaffold = class KRScaffold extends LitElement {
1067
1149
  </div>
1068
1150
 
1069
1151
  ${this.subbar ? html `
1070
- <kr-subbar menu .breadcrumbs=${this.breadcrumbs} @menu-click=${this.handleMenuClick}>
1152
+ <kr-subbar
1153
+ menu
1154
+ .breadcrumbs=${this.breadcrumbs}
1155
+ @menu-click=${this.handleMenuClick}
1156
+ >
1071
1157
  <slot name="subbar"></slot>
1072
1158
  </kr-subbar>
1073
1159
  ` : nothing}
@@ -1083,7 +1169,11 @@ let KRScaffold = class KRScaffold extends LitElement {
1083
1169
  ${this.label
1084
1170
  ? html `<span class="nav-title">${this.label}</span>`
1085
1171
  : this.logo
1086
- ? html `<img class="nav-logo" src=${this.logo} alt="Logo" />`
1172
+ ? html `<img
1173
+ class="nav-logo"
1174
+ src=${this.logo}
1175
+ alt="Logo"
1176
+ />`
1087
1177
  : nothing}
1088
1178
  </div>
1089
1179
  <div class="nav-content" @scroll=${this.handleNavScroll}>
@@ -1091,7 +1181,11 @@ let KRScaffold = class KRScaffold extends LitElement {
1091
1181
  <div class="nav-search">
1092
1182
  <div class="nav-search__wrapper">
1093
1183
  <span class="nav-search__icon">
1094
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
1184
+ <svg
1185
+ xmlns="http://www.w3.org/2000/svg"
1186
+ viewBox="0 0 24 24"
1187
+ fill="currentColor"
1188
+ >
1095
1189
  <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
1096
1190
  </svg>
1097
1191
  </span>
@@ -1104,7 +1198,11 @@ let KRScaffold = class KRScaffold extends LitElement {
1104
1198
  />
1105
1199
  ${this.navQuery ? html `
1106
1200
  <button class="nav-search__clear" @click=${this.handleNavQueryClear}>
1107
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
1201
+ <svg
1202
+ xmlns="http://www.w3.org/2000/svg"
1203
+ viewBox="0 0 24 24"
1204
+ fill="currentColor"
1205
+ >
1108
1206
  <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
1109
1207
  </svg>
1110
1208
  </button>
@@ -1296,7 +1394,7 @@ KRScaffold.styles = css `
1296
1394
  .nav-content {
1297
1395
  flex: 1;
1298
1396
  overflow-y: auto;
1299
- padding: 0 9px 0.75rem 8px;
1397
+ padding: 0 9px 12px 8px;
1300
1398
  }
1301
1399
 
1302
1400
  .nav-footer {
@@ -1416,7 +1514,7 @@ KRScaffold.styles = css `
1416
1514
 
1417
1515
  .breadcrumbs {
1418
1516
  height: 32px;
1419
- padding: 0 1rem;
1517
+ padding: 0 16px;
1420
1518
  display: flex;
1421
1519
  align-items: center;
1422
1520
  gap: 6px;
@@ -1510,7 +1608,7 @@ KRScaffold.styles = css `
1510
1608
  white-space: nowrap;
1511
1609
  overflow: hidden;
1512
1610
  text-overflow: ellipsis;
1513
- letter-spacing: 0.01em;
1611
+ letter-spacing: 0.14px;
1514
1612
  }
1515
1613
 
1516
1614
  .nav-item__chevron {
@@ -1565,7 +1663,7 @@ KRScaffold.styles = css `
1565
1663
  font-size: 11px;
1566
1664
  font-weight: 600;
1567
1665
  text-transform: uppercase;
1568
- letter-spacing: 0.05em;
1666
+ letter-spacing: 0.55px;
1569
1667
  color: var(--kr-scaffold-nav-text);
1570
1668
  opacity: 0.6;
1571
1669
  }
@@ -1688,7 +1786,7 @@ KRScaffold.styles = css `
1688
1786
 
1689
1787
  .breadcrumbs {
1690
1788
  height: 32px;
1691
- padding: 0 1rem;
1789
+ padding: 0 16px;
1692
1790
  display: flex;
1693
1791
  align-items: center;
1694
1792
  gap: 6px;
@@ -1856,6 +1954,61 @@ KRScaffold.styles = css `
1856
1954
  }
1857
1955
  }
1858
1956
  `;
1957
+ __decorate([
1958
+ property({ type: String })
1959
+ ], KRScaffold.prototype, "logo", void 0);
1960
+ __decorate([
1961
+ property({ type: String })
1962
+ ], KRScaffold.prototype, "label", void 0);
1963
+ __decorate([
1964
+ property({
1965
+ type: String,
1966
+ attribute: 'home-url'
1967
+ })
1968
+ ], KRScaffold.prototype, "homeUrl", void 0);
1969
+ __decorate([
1970
+ property({
1971
+ type: String,
1972
+ reflect: true
1973
+ })
1974
+ ], KRScaffold.prototype, "scheme", void 0);
1975
+ __decorate([
1976
+ property({ type: Array })
1977
+ ], KRScaffold.prototype, "nav", void 0);
1978
+ __decorate([
1979
+ property({
1980
+ type: Boolean,
1981
+ attribute: 'nav-icons-displayed',
1982
+ reflect: true
1983
+ })
1984
+ ], KRScaffold.prototype, "navIconsDisplayed", void 0);
1985
+ __decorate([
1986
+ property({
1987
+ type: Boolean,
1988
+ attribute: 'nav-expanded'
1989
+ })
1990
+ ], KRScaffold.prototype, "navExpanded", void 0);
1991
+ __decorate([
1992
+ property({ type: Object })
1993
+ ], KRScaffold.prototype, "user", void 0);
1994
+ __decorate([
1995
+ property({ type: Boolean })
1996
+ ], KRScaffold.prototype, "subbar", void 0);
1997
+ __decorate([
1998
+ property({
1999
+ type: Boolean,
2000
+ attribute: 'nav-enabled'
2001
+ })
2002
+ ], KRScaffold.prototype, "navEnabled", void 0);
2003
+ __decorate([
2004
+ property({
2005
+ type: String,
2006
+ attribute: 'user-type'
2007
+ })
2008
+ ], KRScaffold.prototype, "userType", void 0);
2009
+ __decorate([
2010
+ property({ type: Array })
2011
+ ], KRScaffold.prototype, "breadcrumbs", void 0);
1859
2012
  __decorate([
1860
2013
  state()
1861
2014
  ], KRScaffold.prototype, "navItemsExpanded", void 0);
@@ -1892,39 +2045,6 @@ __decorate([
1892
2045
  __decorate([
1893
2046
  state()
1894
2047
  ], KRScaffold.prototype, "pendingRequests", void 0);
1895
- __decorate([
1896
- property({ type: String })
1897
- ], KRScaffold.prototype, "logo", void 0);
1898
- __decorate([
1899
- property({ type: String })
1900
- ], KRScaffold.prototype, "label", void 0);
1901
- __decorate([
1902
- property({ type: String, attribute: 'home-url' })
1903
- ], KRScaffold.prototype, "homeUrl", void 0);
1904
- __decorate([
1905
- property({ type: String, reflect: true })
1906
- ], KRScaffold.prototype, "scheme", void 0);
1907
- __decorate([
1908
- property({ type: Array })
1909
- ], KRScaffold.prototype, "nav", void 0);
1910
- __decorate([
1911
- property({ type: Boolean, attribute: 'nav-icons-displayed', reflect: true })
1912
- ], KRScaffold.prototype, "navIconsDisplayed", void 0);
1913
- __decorate([
1914
- property({ type: Boolean, attribute: 'nav-expanded' })
1915
- ], KRScaffold.prototype, "navExpanded", void 0);
1916
- __decorate([
1917
- property({ type: Object })
1918
- ], KRScaffold.prototype, "user", void 0);
1919
- __decorate([
1920
- property({ type: Boolean })
1921
- ], KRScaffold.prototype, "subbar", void 0);
1922
- __decorate([
1923
- property({ type: Boolean, attribute: 'nav-enabled' })
1924
- ], KRScaffold.prototype, "navEnabled", void 0);
1925
- __decorate([
1926
- property({ type: Array })
1927
- ], KRScaffold.prototype, "breadcrumbs", void 0);
1928
2048
  KRScaffold = __decorate([
1929
2049
  customElement('kr-scaffold')
1930
2050
  ], KRScaffold);