@design.estate/dees-catalog 3.43.4 → 3.44.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.
@@ -130084,17 +130084,25 @@ var DemoCloseableTabs = class extends (_a38 = DeesElement, _tabs_dec2 = [r5()],
130084
130084
  removeTab(tabKey) {
130085
130085
  this.tabs = this.tabs.filter((t9) => t9.key !== tabKey);
130086
130086
  }
130087
+ clearAll() {
130088
+ const tabsEl = this.shadowRoot.querySelector("dees-appui-tabs");
130089
+ tabsEl?.clear();
130090
+ this.tabs = [];
130091
+ this.tabCounter = 0;
130092
+ }
130087
130093
  render() {
130094
+ const rightActions = [
130095
+ { id: "add", iconName: "lucide:plus", action: () => this.addTab(), tooltip: "New Tab" },
130096
+ { id: "clear", iconName: "lucide:trash2", action: () => this.clearAll(), tooltip: "Clear All Tabs" }
130097
+ ];
130088
130098
  return b2`
130089
130099
  <dees-appui-tabs
130090
130100
  .tabs=${this.tabs}
130101
+ .actionsRight=${rightActions}
130091
130102
  @tab-close=${(e11) => this.removeTab(e11.detail.tab.key)}
130092
130103
  ></dees-appui-tabs>
130093
- <div class="controls">
130094
- <button @click=${() => this.addTab()}>+ Add New Tab</button>
130095
- </div>
130096
130104
  <div class="info">
130097
- Click the X button on tabs to close them. The "Main" tab is not closeable.
130105
+ Click the X button on tabs to close them. Use the + button to add tabs and the trash button to clear all.
130098
130106
  <br>Current tabs: ${this.tabs.length}
130099
130107
  </div>
130100
130108
  `;
@@ -130111,24 +130119,6 @@ __publicField(DemoCloseableTabs, "styles", [
130111
130119
  :host {
130112
130120
  display: block;
130113
130121
  }
130114
- .controls {
130115
- display: flex;
130116
- gap: 8px;
130117
- margin-top: 16px;
130118
- }
130119
- button {
130120
- background: ${cssManager.bdTheme("rgba(59, 130, 246, 0.1)", "rgba(59, 130, 246, 0.1)")};
130121
- border: 1px solid ${cssManager.bdTheme("rgba(59, 130, 246, 0.3)", "rgba(59, 130, 246, 0.3)")};
130122
- color: ${cssManager.bdTheme("#3b82f6", "#60a5fa")};
130123
- padding: 8px 16px;
130124
- border-radius: 6px;
130125
- cursor: pointer;
130126
- font-size: 13px;
130127
- transition: all 0.15s ease;
130128
- }
130129
- button:hover {
130130
- background: ${cssManager.bdTheme("rgba(59, 130, 246, 0.2)", "rgba(59, 130, 246, 0.2)")};
130131
- }
130132
130122
  .info {
130133
130123
  margin-top: 16px;
130134
130124
  padding: 12px 16px;
@@ -130287,6 +130277,15 @@ var demoFunc30 = () => {
130287
130277
  { key: "Completed", action: () => console.log("Completed clicked") },
130288
130278
  { key: "Archived", action: () => console.log("Archived clicked") }
130289
130279
  ];
130280
+ const actionsLeft = [
130281
+ { id: "back", iconName: "lucide:arrowLeft", action: () => console.log("Back"), tooltip: "Go Back" }
130282
+ ];
130283
+ const actionsRight = [
130284
+ { id: "add", iconName: "lucide:plus", action: () => console.log("Add tab"), tooltip: "New Tab" },
130285
+ { id: "search", iconName: "lucide:search", action: () => console.log("Search"), tooltip: "Search Tabs" },
130286
+ { id: "disabled", iconName: "lucide:lock", action: () => {
130287
+ }, tooltip: "Disabled Action", disabled: true }
130288
+ ];
130290
130289
  const demoContent = (text9) => b2`
130291
130290
  <div style="padding: 24px; color: ${cssManager.bdTheme("#71717a", "#a1a1aa")};">
130292
130291
  ${text9}
@@ -130333,7 +130332,17 @@ var demoFunc30 = () => {
130333
130332
  </div>
130334
130333
 
130335
130334
  <div class="section">
130336
- <div class="section-title">Closeable Tabs (Browser-style)</div>
130335
+ <div class="section-title">Tabs with Action Buttons</div>
130336
+ <dees-appui-tabs
130337
+ .tabs=${horizontalTabs}
130338
+ .actionsLeft=${actionsLeft}
130339
+ .actionsRight=${actionsRight}
130340
+ ></dees-appui-tabs>
130341
+ ${demoContent("Action buttons can be placed on either side of the tab bar. They remain fixed while tabs scroll. The lock icon shows a disabled action.")}
130342
+ </div>
130343
+
130344
+ <div class="section">
130345
+ <div class="section-title">Closeable Tabs with Actions</div>
130337
130346
  <demo-closeable-tabs></demo-closeable-tabs>
130338
130347
  </div>
130339
130348
 
@@ -130363,11 +130372,11 @@ var demoFunc30 = () => {
130363
130372
  init_dist_ts28();
130364
130373
  init_dist_ts27();
130365
130374
  init_theme();
130366
- var _canScrollRight_dec, _canScrollLeft_dec, _autoHideThreshold_dec, _autoHide_dec2, _tabStyle_dec, _showTabIndicator_dec, _selectedTab_dec2, _tabs_dec4, _a39, _DeesAppuiTabs_decorators, _init41, _tabs4, _selectedTab2, _showTabIndicator, _tabStyle, _autoHide2, _autoHideThreshold, _canScrollLeft, _canScrollRight;
130375
+ var _canScrollRight_dec, _canScrollLeft_dec, _actionsRight_dec, _actionsLeft_dec, _autoHideThreshold_dec, _autoHide_dec2, _tabStyle_dec, _showTabIndicator_dec, _selectedTab_dec2, _tabs_dec4, _a39, _DeesAppuiTabs_decorators, _init41, _tabs4, _selectedTab2, _showTabIndicator, _tabStyle, _autoHide2, _autoHideThreshold, _actionsLeft, _actionsRight, _canScrollLeft, _canScrollRight;
130367
130376
  _DeesAppuiTabs_decorators = [t4("dees-appui-tabs")];
130368
130377
  var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130369
130378
  type: Array
130370
- })], _selectedTab_dec2 = [n5({ type: Object })], _showTabIndicator_dec = [n5({ type: Boolean })], _tabStyle_dec = [n5({ type: String })], _autoHide_dec2 = [n5({ type: Boolean })], _autoHideThreshold_dec = [n5({ type: Number })], _canScrollLeft_dec = [r5()], _canScrollRight_dec = [r5()], _a39) {
130379
+ })], _selectedTab_dec2 = [n5({ type: Object })], _showTabIndicator_dec = [n5({ type: Boolean })], _tabStyle_dec = [n5({ type: String })], _autoHide_dec2 = [n5({ type: Boolean })], _autoHideThreshold_dec = [n5({ type: Number })], _actionsLeft_dec = [n5({ type: Array })], _actionsRight_dec = [n5({ type: Array })], _canScrollLeft_dec = [r5()], _canScrollRight_dec = [r5()], _a39) {
130371
130380
  constructor() {
130372
130381
  super(...arguments);
130373
130382
  __privateAdd(this, _tabs4, __runInitializers(_init41, 8, this, [])), __runInitializers(_init41, 11, this);
@@ -130376,8 +130385,10 @@ var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130376
130385
  __privateAdd(this, _tabStyle, __runInitializers(_init41, 20, this, "horizontal")), __runInitializers(_init41, 23, this);
130377
130386
  __privateAdd(this, _autoHide2, __runInitializers(_init41, 24, this, false)), __runInitializers(_init41, 27, this);
130378
130387
  __privateAdd(this, _autoHideThreshold, __runInitializers(_init41, 28, this, 0)), __runInitializers(_init41, 31, this);
130379
- __privateAdd(this, _canScrollLeft, __runInitializers(_init41, 32, this, false)), __runInitializers(_init41, 35, this);
130380
- __privateAdd(this, _canScrollRight, __runInitializers(_init41, 36, this, false)), __runInitializers(_init41, 39, this);
130388
+ __privateAdd(this, _actionsLeft, __runInitializers(_init41, 32, this, [])), __runInitializers(_init41, 35, this);
130389
+ __privateAdd(this, _actionsRight, __runInitializers(_init41, 36, this, [])), __runInitializers(_init41, 39, this);
130390
+ __privateAdd(this, _canScrollLeft, __runInitializers(_init41, 40, this, false)), __runInitializers(_init41, 43, this);
130391
+ __privateAdd(this, _canScrollRight, __runInitializers(_init41, 44, this, false)), __runInitializers(_init41, 47, this);
130381
130392
  __publicField(this, "resizeObserver", null);
130382
130393
  __publicField(this, "handleScroll", () => {
130383
130394
  this.updateScrollState();
@@ -130397,13 +130408,19 @@ var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130397
130408
  const wrapperClass = isHorizontal ? "tabs-wrapper horizontal-wrapper" : "vertical-wrapper";
130398
130409
  const containerClass = `tabsContainer ${this.tabStyle}`;
130399
130410
  if (isHorizontal) {
130411
+ const hasLeftActions = this.actionsLeft && this.actionsLeft.length > 0;
130412
+ const hasRightActions = this.actionsRight && this.actionsRight.length > 0;
130400
130413
  return b2`
130401
130414
  <div class="${wrapperClass}">
130402
- <div class="scroll-fade scroll-fade-left ${this.canScrollLeft ? "visible" : ""}"></div>
130403
- <div class="${containerClass}" @scroll=${this.handleScroll}>
130404
- ${this.tabs.map((tab2) => this.renderTab(tab2, isHorizontal))}
130415
+ ${hasLeftActions ? this.renderActions(this.actionsLeft, "left") : ""}
130416
+ <div class="scroll-area">
130417
+ <div class="scroll-fade scroll-fade-left ${this.canScrollLeft ? "visible" : ""}"></div>
130418
+ <div class="${containerClass}" @scroll=${this.handleScroll}>
130419
+ ${this.tabs.map((tab2) => this.renderTab(tab2, isHorizontal))}
130420
+ </div>
130421
+ <div class="scroll-fade scroll-fade-right ${this.canScrollRight ? "visible" : ""}"></div>
130405
130422
  </div>
130406
- <div class="scroll-fade scroll-fade-right ${this.canScrollRight ? "visible" : ""}"></div>
130423
+ ${hasRightActions ? this.renderActions(this.actionsRight, "right") : ""}
130407
130424
  ${this.showTabIndicator ? b2`<div class="tabIndicator"></div>` : ""}
130408
130425
  </div>
130409
130426
  `;
@@ -130417,6 +130434,21 @@ var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130417
130434
  </div>
130418
130435
  `;
130419
130436
  }
130437
+ renderActions(actions, position3) {
130438
+ return b2`
130439
+ <div class="tab-actions ${position3}">
130440
+ ${actions.map((action) => b2`
130441
+ <div
130442
+ class="tab-action-button ${action.disabled ? "disabled" : ""}"
130443
+ title="${action.tooltip || action.id}"
130444
+ @click=${() => !action.disabled && action.action()}
130445
+ >
130446
+ <dees-icon .icon=${action.iconName}></dees-icon>
130447
+ </div>
130448
+ `)}
130449
+ </div>
130450
+ `;
130451
+ }
130420
130452
  renderTab(tab2, isHorizontal) {
130421
130453
  const isSelected = tab2 === this.selectedTab;
130422
130454
  const classes = `tab ${isSelected ? "selectedTab" : ""}`;
@@ -130460,6 +130492,13 @@ var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130460
130492
  composed: true
130461
130493
  }));
130462
130494
  }
130495
+ /**
130496
+ * Clear all tabs and reset selection.
130497
+ */
130498
+ clear() {
130499
+ this.tabs = [];
130500
+ this.selectedTab = null;
130501
+ }
130463
130502
  closeTab(e11, tab2) {
130464
130503
  e11.stopPropagation();
130465
130504
  if (tab2.onClose) {
@@ -130472,9 +130511,6 @@ var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130472
130511
  }));
130473
130512
  }
130474
130513
  firstUpdated() {
130475
- if (this.tabs && this.tabs.length > 0) {
130476
- this.selectTab(this.tabs[0]);
130477
- }
130478
130514
  this.setupResizeObserver();
130479
130515
  requestAnimationFrame(() => {
130480
130516
  this.updateScrollState();
@@ -130524,8 +130560,21 @@ var DeesAppuiTabs = class extends (_a39 = DeesElement, _tabs_dec4 = [n5({
130524
130560
  }
130525
130561
  async updated(changedProperties) {
130526
130562
  super.updated(changedProperties);
130527
- if (changedProperties.has("tabs") && this.tabs && this.tabs.length > 0 && !this.selectedTab) {
130528
- this.selectTab(this.tabs[0]);
130563
+ if (changedProperties.has("tabs")) {
130564
+ if (!this.tabs || this.tabs.length === 0) {
130565
+ if (this.selectedTab !== null) {
130566
+ this.selectedTab = null;
130567
+ this.dispatchEvent(new CustomEvent("tab-select", {
130568
+ detail: { tab: null },
130569
+ bubbles: true,
130570
+ composed: true
130571
+ }));
130572
+ }
130573
+ } else if (this.selectedTab && !this.tabs.includes(this.selectedTab)) {
130574
+ this.selectTab(this.tabs[0]);
130575
+ } else if (!this.selectedTab) {
130576
+ this.selectTab(this.tabs[0]);
130577
+ }
130529
130578
  }
130530
130579
  if (changedProperties.has("selectedTab") || changedProperties.has("tabs")) {
130531
130580
  await this.updateComplete;
@@ -130598,6 +130647,8 @@ _showTabIndicator = new WeakMap();
130598
130647
  _tabStyle = new WeakMap();
130599
130648
  _autoHide2 = new WeakMap();
130600
130649
  _autoHideThreshold = new WeakMap();
130650
+ _actionsLeft = new WeakMap();
130651
+ _actionsRight = new WeakMap();
130601
130652
  _canScrollLeft = new WeakMap();
130602
130653
  _canScrollRight = new WeakMap();
130603
130654
  __decorateElement(_init41, 4, "tabs", _tabs_dec4, DeesAppuiTabs, _tabs4);
@@ -130606,6 +130657,8 @@ __decorateElement(_init41, 4, "showTabIndicator", _showTabIndicator_dec, DeesApp
130606
130657
  __decorateElement(_init41, 4, "tabStyle", _tabStyle_dec, DeesAppuiTabs, _tabStyle);
130607
130658
  __decorateElement(_init41, 4, "autoHide", _autoHide_dec2, DeesAppuiTabs, _autoHide2);
130608
130659
  __decorateElement(_init41, 4, "autoHideThreshold", _autoHideThreshold_dec, DeesAppuiTabs, _autoHideThreshold);
130660
+ __decorateElement(_init41, 4, "actionsLeft", _actionsLeft_dec, DeesAppuiTabs, _actionsLeft);
130661
+ __decorateElement(_init41, 4, "actionsRight", _actionsRight_dec, DeesAppuiTabs, _actionsRight);
130609
130662
  __decorateElement(_init41, 4, "canScrollLeft", _canScrollLeft_dec, DeesAppuiTabs, _canScrollLeft);
130610
130663
  __decorateElement(_init41, 4, "canScrollRight", _canScrollRight_dec, DeesAppuiTabs, _canScrollRight);
130611
130664
  DeesAppuiTabs = __decorateElement(_init41, 0, "DeesAppuiTabs", _DeesAppuiTabs_decorators, DeesAppuiTabs);
@@ -130634,6 +130687,8 @@ __publicField(DeesAppuiTabs, "styles", [
130634
130687
  border-bottom: 1px solid ${cssManager.bdTheme("#e5e7eb", "#27272a")};
130635
130688
  box-sizing: border-box;
130636
130689
  overflow: hidden;
130690
+ display: flex;
130691
+ align-items: stretch;
130637
130692
  }
130638
130693
 
130639
130694
  /* Scroll fade indicators */
@@ -130666,6 +130721,72 @@ __publicField(DeesAppuiTabs, "styles", [
130666
130721
  opacity: 1;
130667
130722
  }
130668
130723
 
130724
+ .scroll-area {
130725
+ position: relative;
130726
+ flex: 1;
130727
+ min-width: 0;
130728
+ overflow: hidden;
130729
+ display: flex;
130730
+ }
130731
+
130732
+ /* Tab action buttons */
130733
+ .tab-actions {
130734
+ display: flex;
130735
+ align-items: center;
130736
+ gap: 2px;
130737
+ flex-shrink: 0;
130738
+ padding: 0 4px;
130739
+ }
130740
+
130741
+ .tab-actions.left {
130742
+ padding-left: 12px;
130743
+ padding-right: 8px;
130744
+ border-right: 1px solid ${cssManager.bdTheme("#e5e7eb", "#27272a")};
130745
+ }
130746
+
130747
+ .tab-actions.right {
130748
+ padding-right: 12px;
130749
+ padding-left: 8px;
130750
+ border-left: 1px solid ${cssManager.bdTheme("#e5e7eb", "#27272a")};
130751
+ }
130752
+
130753
+ .tab-action-button {
130754
+ display: flex;
130755
+ align-items: center;
130756
+ justify-content: center;
130757
+ width: 32px;
130758
+ height: 32px;
130759
+ border-radius: 6px;
130760
+ cursor: pointer;
130761
+ transition: background 0.15s ease, color 0.15s ease;
130762
+ background: transparent;
130763
+ color: ${cssManager.bdTheme("#71717a", "#71717a")};
130764
+ flex-shrink: 0;
130765
+ }
130766
+
130767
+ .tab-action-button:hover {
130768
+ background: ${cssManager.bdTheme("rgba(0, 0, 0, 0.06)", "rgba(255, 255, 255, 0.06)")};
130769
+ color: ${cssManager.bdTheme("#09090b", "#fafafa")};
130770
+ }
130771
+
130772
+ .tab-action-button:active {
130773
+ background: ${cssManager.bdTheme("rgba(0, 0, 0, 0.1)", "rgba(255, 255, 255, 0.1)")};
130774
+ }
130775
+
130776
+ .tab-action-button.disabled {
130777
+ opacity: 0.4;
130778
+ cursor: not-allowed;
130779
+ }
130780
+
130781
+ .tab-action-button.disabled:hover {
130782
+ background: transparent;
130783
+ color: ${cssManager.bdTheme("#71717a", "#71717a")};
130784
+ }
130785
+
130786
+ .tab-action-button dees-icon {
130787
+ font-size: 16px;
130788
+ }
130789
+
130669
130790
  .tabsContainer {
130670
130791
  position: relative;
130671
130792
  user-select: none;
@@ -130682,12 +130803,14 @@ __publicField(DeesAppuiTabs, "styles", [
130682
130803
  scrollbar-width: thin;
130683
130804
  scrollbar-color: transparent transparent;
130684
130805
  height: 100%;
130806
+ width: 100%;
130685
130807
  padding: 0 16px;
130686
130808
  gap: 4px;
130687
130809
  }
130688
130810
 
130689
130811
  /* Show scrollbar on hover */
130690
- .tabs-wrapper:hover .tabsContainer.horizontal {
130812
+ .tabs-wrapper:hover .tabsContainer.horizontal,
130813
+ .scroll-area:hover .tabsContainer.horizontal {
130691
130814
  scrollbar-color: ${cssManager.bdTheme("rgba(0,0,0,0.2)", "rgba(255,255,255,0.2)")} transparent;
130692
130815
  }
130693
130816
 
@@ -130705,11 +130828,13 @@ __publicField(DeesAppuiTabs, "styles", [
130705
130828
  transition: background 0.2s ease;
130706
130829
  }
130707
130830
 
130708
- .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb {
130831
+ .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb,
130832
+ .scroll-area:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb {
130709
130833
  background: ${cssManager.bdTheme("rgba(0,0,0,0.2)", "rgba(255,255,255,0.2)")};
130710
130834
  }
130711
130835
 
130712
- .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb:hover {
130836
+ .tabs-wrapper:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb:hover,
130837
+ .scroll-area:hover .tabsContainer.horizontal::-webkit-scrollbar-thumb:hover {
130713
130838
  background: ${cssManager.bdTheme("rgba(0,0,0,0.35)", "rgba(255,255,255,0.35)")};
130714
130839
  }
130715
130840
 
@@ -130881,11 +131006,11 @@ __runInitializers(_init41, 1, DeesAppuiTabs);
130881
131006
  init_dist_ts28();
130882
131007
  init_dist_ts27();
130883
131008
  init_theme();
130884
- var _tabsAutoHideThreshold_dec, _tabsAutoHide_dec, _showTabs_dec, _selectedTab_dec3, _tabs_dec5, _a40, _DeesAppuiMaincontent_decorators, _init42, _tabs5, _selectedTab3, _showTabs, _tabsAutoHide, _tabsAutoHideThreshold;
131009
+ var _tabActionsRight_dec, _tabActionsLeft_dec, _tabsAutoHideThreshold_dec, _tabsAutoHide_dec, _showTabs_dec, _selectedTab_dec3, _tabs_dec5, _a40, _DeesAppuiMaincontent_decorators, _init42, _tabs5, _selectedTab3, _showTabs, _tabsAutoHide, _tabsAutoHideThreshold, _tabActionsLeft, _tabActionsRight;
130885
131010
  _DeesAppuiMaincontent_decorators = [t4("dees-appui-maincontent")];
130886
131011
  var DeesAppuiMaincontent = class extends (_a40 = DeesElement, _tabs_dec5 = [n5({
130887
131012
  type: Array
130888
- })], _selectedTab_dec3 = [n5({ type: Object })], _showTabs_dec = [n5({ type: Boolean })], _tabsAutoHide_dec = [n5({ type: Boolean })], _tabsAutoHideThreshold_dec = [n5({ type: Number })], _a40) {
131013
+ })], _selectedTab_dec3 = [n5({ type: Object })], _showTabs_dec = [n5({ type: Boolean })], _tabsAutoHide_dec = [n5({ type: Boolean })], _tabsAutoHideThreshold_dec = [n5({ type: Number })], _tabActionsLeft_dec = [n5({ type: Array })], _tabActionsRight_dec = [n5({ type: Array })], _a40) {
130889
131014
  constructor() {
130890
131015
  super(...arguments);
130891
131016
  __privateAdd(this, _tabs5, __runInitializers(_init42, 8, this, [
@@ -130895,6 +131020,8 @@ var DeesAppuiMaincontent = class extends (_a40 = DeesElement, _tabs_dec5 = [n5({
130895
131020
  __privateAdd(this, _showTabs, __runInitializers(_init42, 16, this, true)), __runInitializers(_init42, 19, this);
130896
131021
  __privateAdd(this, _tabsAutoHide, __runInitializers(_init42, 20, this, false)), __runInitializers(_init42, 23, this);
130897
131022
  __privateAdd(this, _tabsAutoHideThreshold, __runInitializers(_init42, 24, this, 0)), __runInitializers(_init42, 27, this);
131023
+ __privateAdd(this, _tabActionsLeft, __runInitializers(_init42, 28, this, [])), __runInitializers(_init42, 31, this);
131024
+ __privateAdd(this, _tabActionsRight, __runInitializers(_init42, 32, this, [])), __runInitializers(_init42, 35, this);
130898
131025
  }
130899
131026
  render() {
130900
131027
  return b2`
@@ -130907,6 +131034,8 @@ var DeesAppuiMaincontent = class extends (_a40 = DeesElement, _tabs_dec5 = [n5({
130907
131034
  .tabStyle=${"horizontal"}
130908
131035
  .autoHide=${this.tabsAutoHide}
130909
131036
  .autoHideThreshold=${this.tabsAutoHideThreshold}
131037
+ .actionsLeft=${this.tabActionsLeft}
131038
+ .actionsRight=${this.tabActionsRight}
130910
131039
  @tab-select=${(e11) => this.handleTabSelect(e11)}
130911
131040
  @tab-close=${(e11) => this.handleTabClose(e11)}
130912
131041
  ></dees-appui-tabs>
@@ -130960,11 +131089,15 @@ _selectedTab3 = new WeakMap();
130960
131089
  _showTabs = new WeakMap();
130961
131090
  _tabsAutoHide = new WeakMap();
130962
131091
  _tabsAutoHideThreshold = new WeakMap();
131092
+ _tabActionsLeft = new WeakMap();
131093
+ _tabActionsRight = new WeakMap();
130963
131094
  __decorateElement(_init42, 4, "tabs", _tabs_dec5, DeesAppuiMaincontent, _tabs5);
130964
131095
  __decorateElement(_init42, 4, "selectedTab", _selectedTab_dec3, DeesAppuiMaincontent, _selectedTab3);
130965
131096
  __decorateElement(_init42, 4, "showTabs", _showTabs_dec, DeesAppuiMaincontent, _showTabs);
130966
131097
  __decorateElement(_init42, 4, "tabsAutoHide", _tabsAutoHide_dec, DeesAppuiMaincontent, _tabsAutoHide);
130967
131098
  __decorateElement(_init42, 4, "tabsAutoHideThreshold", _tabsAutoHideThreshold_dec, DeesAppuiMaincontent, _tabsAutoHideThreshold);
131099
+ __decorateElement(_init42, 4, "tabActionsLeft", _tabActionsLeft_dec, DeesAppuiMaincontent, _tabActionsLeft);
131100
+ __decorateElement(_init42, 4, "tabActionsRight", _tabActionsRight_dec, DeesAppuiMaincontent, _tabActionsRight);
130968
131101
  DeesAppuiMaincontent = __decorateElement(_init42, 0, "DeesAppuiMaincontent", _DeesAppuiMaincontent_decorators, DeesAppuiMaincontent);
130969
131102
  __publicField(DeesAppuiMaincontent, "demo", () => b2`
130970
131103
  <dees-appui-maincontent
@@ -131028,9 +131161,9 @@ __runInitializers(_init42, 1, DeesAppuiMaincontent);
131028
131161
  init_dist_ts28();
131029
131162
  init_dist_ts27();
131030
131163
  init_theme();
131031
- var _currentView_dec, _bottombarVisible_dec, _bottombarElement_dec, _activitylogElement_dec, _maincontent_dec, _secondarymenu_dec, _mainmenu_dec, _appbar_dec, _maincontentSelectedTab_dec, _maincontentTabs_dec, _activityLogCount_dec2, _activityLogVisible_dec, _contentTabsAutoHideThreshold_dec, _contentTabsAutoHide_dec, _maincontentTabsVisible_dec, _secondarymenuVisible_dec, _mainmenuVisible_dec, _secondarymenuCollapsed_dec, _mainmenuCollapsed_dec, _secondarymenuSelectedItem_dec, _secondarymenuGroups_dec, _secondarymenuHeading_dec, _mainmenuSelectedTab_dec, _mainmenuTabs_dec, _mainmenuBottomTabs_dec, _mainmenuGroups_dec, _mainmenuLogoText_dec, _mainmenuLogoIcon_dec, _appbarShowSearch_dec, _appbarProfileMenuItems_dec, _appbarUser_dec, _appbarShowWindowControls_dec, _appbarBreadcrumbSeparator_dec, _appbarBreadcrumbs_dec, _appbarMenuItems_dec, _a41, _DeesAppui_decorators, _init43, _appbarMenuItems, _appbarBreadcrumbs, _appbarBreadcrumbSeparator, _appbarShowWindowControls, _appbarUser, _appbarProfileMenuItems, _appbarShowSearch, _mainmenuLogoIcon, _mainmenuLogoText, _mainmenuGroups, _mainmenuBottomTabs, _mainmenuTabs, _mainmenuSelectedTab, _secondarymenuHeading, _secondarymenuGroups, _secondarymenuSelectedItem, _mainmenuCollapsed, _secondarymenuCollapsed, _mainmenuVisible, _secondarymenuVisible, _maincontentTabsVisible, _contentTabsAutoHide, _contentTabsAutoHideThreshold, _activityLogVisible, _activityLogCount2, _maincontentTabs, _maincontentSelectedTab, _appbar, _mainmenu, _secondarymenu, _maincontent, _activitylogElement, _bottombarElement, _bottombarVisible, _currentView;
131164
+ var _currentView_dec, _bottombarVisible_dec, _bottombarElement_dec, _activitylogElement_dec, _maincontent_dec, _secondarymenu_dec, _mainmenu_dec, _appbar_dec, _contentTabActionsRight_dec, _contentTabActionsLeft_dec, _maincontentSelectedTab_dec, _maincontentTabs_dec, _activityLogCount_dec2, _activityLogVisible_dec, _contentTabsAutoHideThreshold_dec, _contentTabsAutoHide_dec, _maincontentTabsVisible_dec, _secondarymenuVisible_dec, _mainmenuVisible_dec, _secondarymenuCollapsed_dec, _mainmenuCollapsed_dec, _secondarymenuSelectedItem_dec, _secondarymenuGroups_dec, _secondarymenuHeading_dec, _mainmenuSelectedTab_dec, _mainmenuTabs_dec, _mainmenuBottomTabs_dec, _mainmenuGroups_dec, _mainmenuLogoText_dec, _mainmenuLogoIcon_dec, _appbarShowSearch_dec, _appbarProfileMenuItems_dec, _appbarUser_dec, _appbarShowWindowControls_dec, _appbarBreadcrumbSeparator_dec, _appbarBreadcrumbs_dec, _appbarMenuItems_dec, _a41, _DeesAppui_decorators, _init43, _appbarMenuItems, _appbarBreadcrumbs, _appbarBreadcrumbSeparator, _appbarShowWindowControls, _appbarUser, _appbarProfileMenuItems, _appbarShowSearch, _mainmenuLogoIcon, _mainmenuLogoText, _mainmenuGroups, _mainmenuBottomTabs, _mainmenuTabs, _mainmenuSelectedTab, _secondarymenuHeading, _secondarymenuGroups, _secondarymenuSelectedItem, _mainmenuCollapsed, _secondarymenuCollapsed, _mainmenuVisible, _secondarymenuVisible, _maincontentTabsVisible, _contentTabsAutoHide, _contentTabsAutoHideThreshold, _activityLogVisible, _activityLogCount2, _maincontentTabs, _maincontentSelectedTab, _contentTabActionsLeft, _contentTabActionsRight, _appbar, _mainmenu, _secondarymenu, _maincontent, _activitylogElement, _bottombarElement, _bottombarVisible, _currentView;
131032
131165
  _DeesAppui_decorators = [t4("dees-appui")];
131033
- var DeesAppui = class extends (_a41 = DeesElement, _appbarMenuItems_dec = [n5({ type: Array })], _appbarBreadcrumbs_dec = [n5({ type: String })], _appbarBreadcrumbSeparator_dec = [n5({ type: String })], _appbarShowWindowControls_dec = [n5({ type: Boolean })], _appbarUser_dec = [n5({ type: Object })], _appbarProfileMenuItems_dec = [n5({ type: Array })], _appbarShowSearch_dec = [n5({ type: Boolean })], _mainmenuLogoIcon_dec = [n5({ type: String })], _mainmenuLogoText_dec = [n5({ type: String })], _mainmenuGroups_dec = [n5({ type: Array })], _mainmenuBottomTabs_dec = [n5({ type: Array })], _mainmenuTabs_dec = [n5({ type: Array })], _mainmenuSelectedTab_dec = [n5({ type: Object })], _secondarymenuHeading_dec = [n5({ type: String })], _secondarymenuGroups_dec = [n5({ type: Array })], _secondarymenuSelectedItem_dec = [n5({ type: Object })], _mainmenuCollapsed_dec = [n5({ type: Boolean })], _secondarymenuCollapsed_dec = [n5({ type: Boolean })], _mainmenuVisible_dec = [n5({ type: Boolean })], _secondarymenuVisible_dec = [n5({ type: Boolean })], _maincontentTabsVisible_dec = [n5({ type: Boolean })], _contentTabsAutoHide_dec = [n5({ type: Boolean })], _contentTabsAutoHideThreshold_dec = [n5({ type: Number })], _activityLogVisible_dec = [r5()], _activityLogCount_dec2 = [r5()], _maincontentTabs_dec = [n5({ type: Array })], _maincontentSelectedTab_dec = [n5({ type: Object })], _appbar_dec = [r5()], _mainmenu_dec = [r5()], _secondarymenu_dec = [r5()], _maincontent_dec = [r5()], _activitylogElement_dec = [r5()], _bottombarElement_dec = [r5()], _bottombarVisible_dec = [r5()], _currentView_dec = [r5()], _a41) {
131166
+ var DeesAppui = class extends (_a41 = DeesElement, _appbarMenuItems_dec = [n5({ type: Array })], _appbarBreadcrumbs_dec = [n5({ type: String })], _appbarBreadcrumbSeparator_dec = [n5({ type: String })], _appbarShowWindowControls_dec = [n5({ type: Boolean })], _appbarUser_dec = [n5({ type: Object })], _appbarProfileMenuItems_dec = [n5({ type: Array })], _appbarShowSearch_dec = [n5({ type: Boolean })], _mainmenuLogoIcon_dec = [n5({ type: String })], _mainmenuLogoText_dec = [n5({ type: String })], _mainmenuGroups_dec = [n5({ type: Array })], _mainmenuBottomTabs_dec = [n5({ type: Array })], _mainmenuTabs_dec = [n5({ type: Array })], _mainmenuSelectedTab_dec = [n5({ type: Object })], _secondarymenuHeading_dec = [n5({ type: String })], _secondarymenuGroups_dec = [n5({ type: Array })], _secondarymenuSelectedItem_dec = [n5({ type: Object })], _mainmenuCollapsed_dec = [n5({ type: Boolean })], _secondarymenuCollapsed_dec = [n5({ type: Boolean })], _mainmenuVisible_dec = [n5({ type: Boolean })], _secondarymenuVisible_dec = [n5({ type: Boolean })], _maincontentTabsVisible_dec = [n5({ type: Boolean })], _contentTabsAutoHide_dec = [n5({ type: Boolean })], _contentTabsAutoHideThreshold_dec = [n5({ type: Number })], _activityLogVisible_dec = [r5()], _activityLogCount_dec2 = [r5()], _maincontentTabs_dec = [n5({ type: Array })], _maincontentSelectedTab_dec = [n5({ type: Object })], _contentTabActionsLeft_dec = [n5({ type: Array })], _contentTabActionsRight_dec = [n5({ type: Array })], _appbar_dec = [r5()], _mainmenu_dec = [r5()], _secondarymenu_dec = [r5()], _maincontent_dec = [r5()], _activitylogElement_dec = [r5()], _bottombarElement_dec = [r5()], _bottombarVisible_dec = [r5()], _currentView_dec = [r5()], _a41) {
131034
131167
  constructor() {
131035
131168
  super(...arguments);
131036
131169
  // ==========================================
@@ -131067,14 +131200,16 @@ var DeesAppui = class extends (_a41 = DeesElement, _appbarMenuItems_dec = [n5({
131067
131200
  __privateAdd(this, _activityLogCount2, __runInitializers(_init43, 104, this, 0)), __runInitializers(_init43, 107, this);
131068
131201
  __privateAdd(this, _maincontentTabs, __runInitializers(_init43, 108, this, [])), __runInitializers(_init43, 111, this);
131069
131202
  __privateAdd(this, _maincontentSelectedTab, __runInitializers(_init43, 112, this)), __runInitializers(_init43, 115, this);
131070
- __privateAdd(this, _appbar, __runInitializers(_init43, 116, this)), __runInitializers(_init43, 119, this);
131071
- __privateAdd(this, _mainmenu, __runInitializers(_init43, 120, this)), __runInitializers(_init43, 123, this);
131072
- __privateAdd(this, _secondarymenu, __runInitializers(_init43, 124, this)), __runInitializers(_init43, 127, this);
131073
- __privateAdd(this, _maincontent, __runInitializers(_init43, 128, this)), __runInitializers(_init43, 131, this);
131074
- __privateAdd(this, _activitylogElement, __runInitializers(_init43, 132, this)), __runInitializers(_init43, 135, this);
131075
- __privateAdd(this, _bottombarElement, __runInitializers(_init43, 136, this)), __runInitializers(_init43, 139, this);
131076
- __privateAdd(this, _bottombarVisible, __runInitializers(_init43, 140, this, true)), __runInitializers(_init43, 143, this);
131077
- __privateAdd(this, _currentView, __runInitializers(_init43, 144, this)), __runInitializers(_init43, 147, this);
131203
+ __privateAdd(this, _contentTabActionsLeft, __runInitializers(_init43, 116, this, [])), __runInitializers(_init43, 119, this);
131204
+ __privateAdd(this, _contentTabActionsRight, __runInitializers(_init43, 120, this, [])), __runInitializers(_init43, 123, this);
131205
+ __privateAdd(this, _appbar, __runInitializers(_init43, 124, this)), __runInitializers(_init43, 127, this);
131206
+ __privateAdd(this, _mainmenu, __runInitializers(_init43, 128, this)), __runInitializers(_init43, 131, this);
131207
+ __privateAdd(this, _secondarymenu, __runInitializers(_init43, 132, this)), __runInitializers(_init43, 135, this);
131208
+ __privateAdd(this, _maincontent, __runInitializers(_init43, 136, this)), __runInitializers(_init43, 139, this);
131209
+ __privateAdd(this, _activitylogElement, __runInitializers(_init43, 140, this)), __runInitializers(_init43, 143, this);
131210
+ __privateAdd(this, _bottombarElement, __runInitializers(_init43, 144, this)), __runInitializers(_init43, 147, this);
131211
+ __privateAdd(this, _bottombarVisible, __runInitializers(_init43, 148, this, true)), __runInitializers(_init43, 151, this);
131212
+ __privateAdd(this, _currentView, __runInitializers(_init43, 152, this)), __runInitializers(_init43, 155, this);
131078
131213
  // Internal services
131079
131214
  __publicField(this, "viewRegistry", new ViewRegistry());
131080
131215
  __publicField(this, "routerCleanup", null);
@@ -131131,6 +131266,8 @@ var DeesAppui = class extends (_a41 = DeesElement, _appbarMenuItems_dec = [n5({
131131
131266
  .showTabs=${this.maincontentTabsVisible}
131132
131267
  .tabsAutoHide=${this.contentTabsAutoHide}
131133
131268
  .tabsAutoHideThreshold=${this.contentTabsAutoHideThreshold}
131269
+ .tabActionsLeft=${this.contentTabActionsLeft}
131270
+ .tabActionsRight=${this.contentTabActionsRight}
131134
131271
  @tab-select=${(e11) => this.handleContentTabSelect(e11)}
131135
131272
  @tab-close=${(e11) => this.handleContentTabClose(e11)}
131136
131273
  >
@@ -131472,6 +131609,18 @@ var DeesAppui = class extends (_a41 = DeesElement, _appbarMenuItems_dec = [n5({
131472
131609
  getSelectedContentTab() {
131473
131610
  return this.maincontentSelectedTab;
131474
131611
  }
131612
+ /**
131613
+ * Set content tab action buttons on the left side
131614
+ */
131615
+ setContentTabActionsLeft(actions) {
131616
+ this.contentTabActionsLeft = [...actions];
131617
+ }
131618
+ /**
131619
+ * Set content tab action buttons on the right side
131620
+ */
131621
+ setContentTabActionsRight(actions) {
131622
+ this.contentTabActionsRight = [...actions];
131623
+ }
131475
131624
  // ==========================================
131476
131625
  // PROGRAMMATIC API: ACTIVITY LOG
131477
131626
  // ==========================================
@@ -131919,6 +132068,8 @@ _activityLogVisible = new WeakMap();
131919
132068
  _activityLogCount2 = new WeakMap();
131920
132069
  _maincontentTabs = new WeakMap();
131921
132070
  _maincontentSelectedTab = new WeakMap();
132071
+ _contentTabActionsLeft = new WeakMap();
132072
+ _contentTabActionsRight = new WeakMap();
131922
132073
  _appbar = new WeakMap();
131923
132074
  _mainmenu = new WeakMap();
131924
132075
  _secondarymenu = new WeakMap();
@@ -131954,6 +132105,8 @@ __decorateElement(_init43, 4, "activityLogVisible", _activityLogVisible_dec, Dee
131954
132105
  __decorateElement(_init43, 4, "activityLogCount", _activityLogCount_dec2, DeesAppui, _activityLogCount2);
131955
132106
  __decorateElement(_init43, 4, "maincontentTabs", _maincontentTabs_dec, DeesAppui, _maincontentTabs);
131956
132107
  __decorateElement(_init43, 4, "maincontentSelectedTab", _maincontentSelectedTab_dec, DeesAppui, _maincontentSelectedTab);
132108
+ __decorateElement(_init43, 4, "contentTabActionsLeft", _contentTabActionsLeft_dec, DeesAppui, _contentTabActionsLeft);
132109
+ __decorateElement(_init43, 4, "contentTabActionsRight", _contentTabActionsRight_dec, DeesAppui, _contentTabActionsRight);
131957
132110
  __decorateElement(_init43, 4, "appbar", _appbar_dec, DeesAppui, _appbar);
131958
132111
  __decorateElement(_init43, 4, "mainmenu", _mainmenu_dec, DeesAppui, _mainmenu);
131959
132112
  __decorateElement(_init43, 4, "secondarymenu", _secondarymenu_dec, DeesAppui, _secondarymenu);
@@ -165576,7 +165729,7 @@ init_group_runtime();
165576
165729
  // ts_web/00_commitinfo_data.ts
165577
165730
  var commitinfo = {
165578
165731
  name: "@design.estate/dees-catalog",
165579
- version: "3.43.4",
165732
+ version: "3.44.0",
165580
165733
  description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
165581
165734
  };
165582
165735
  export {
@@ -167530,4 +167683,4 @@ ibantools/jsnext/ibantools.js:
167530
167683
  * @preferred
167531
167684
  *)
167532
167685
  */
167533
- //# sourceMappingURL=bundle-1773077881686.js.map
167686
+ //# sourceMappingURL=bundle-1773146372777.js.map
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '3.43.4',
6
+ version: '3.44.0',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
@@ -53,6 +53,8 @@ export declare class DeesAppui extends DeesElement {
53
53
  accessor activityLogCount: number;
54
54
  accessor maincontentTabs: interfaces.IMenuItem[];
55
55
  accessor maincontentSelectedTab: interfaces.IMenuItem | undefined;
56
+ accessor contentTabActionsLeft: interfaces.ITabAction[];
57
+ accessor contentTabActionsRight: interfaces.ITabAction[];
56
58
  accessor appbar: DeesAppuiBar | undefined;
57
59
  accessor mainmenu: DeesAppuiMainmenu | undefined;
58
60
  accessor secondarymenu: DeesAppuiSecondarymenu | undefined;
@@ -197,6 +199,14 @@ export declare class DeesAppui extends DeesElement {
197
199
  * Get the currently selected content tab
198
200
  */
199
201
  getSelectedContentTab(): interfaces.IMenuItem | undefined;
202
+ /**
203
+ * Set content tab action buttons on the left side
204
+ */
205
+ setContentTabActionsLeft(actions: interfaces.ITabAction[]): void;
206
+ /**
207
+ * Set content tab action buttons on the right side
208
+ */
209
+ setContentTabActionsRight(actions: interfaces.ITabAction[]): void;
200
210
  /**
201
211
  * Get the activity log API
202
212
  */