@design.estate/dees-catalog 3.67.1 → 3.68.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.
@@ -150522,11 +150522,17 @@ var _DeesFormSubmit = class _DeesFormSubmit extends (_a25 = DeesElement, _disabl
150522
150522
  .text=${this.text}
150523
150523
  ?disabled=${this.disabled}
150524
150524
  @clicked=${this.submit}
150525
- >
150526
- <slot></slot>
150527
- </dees-button>
150525
+ ></dees-button>
150528
150526
  `;
150529
150527
  }
150528
+ async firstUpdated() {
150529
+ if (!this.text) {
150530
+ const slotText = this.textContent?.trim();
150531
+ if (slotText) {
150532
+ this.text = slotText;
150533
+ }
150534
+ }
150535
+ }
150530
150536
  async submit() {
150531
150537
  if (this.disabled) {
150532
150538
  return;
@@ -199294,12 +199300,35 @@ var demoFunc57 = /* @__PURE__ */ __name(() => b2`
199294
199300
  {
199295
199301
  name: "Analytics",
199296
199302
  iconName: "lucide:lineChart",
199297
- element: DemoViewAnalytics
199303
+ element: DemoViewAnalytics,
199304
+ subViews: [
199305
+ {
199306
+ name: "Overview",
199307
+ iconName: "lucide:activity",
199308
+ element: DemoViewAnalytics
199309
+ },
199310
+ {
199311
+ name: "Reports",
199312
+ iconName: "lucide:fileText",
199313
+ element: DemoViewDashboard
199314
+ }
199315
+ ]
199298
199316
  },
199299
199317
  {
199300
199318
  name: "Settings",
199301
199319
  iconName: "lucide:settings",
199302
- element: DemoViewSettings
199320
+ subViews: [
199321
+ {
199322
+ name: "Profile",
199323
+ iconName: "lucide:user",
199324
+ element: DemoViewSettings
199325
+ },
199326
+ {
199327
+ name: "Billing",
199328
+ iconName: "lucide:creditCard",
199329
+ element: DemoViewSettings
199330
+ }
199331
+ ]
199303
199332
  }
199304
199333
  ]}
199305
199334
  @logout=${() => {
@@ -199344,10 +199373,12 @@ var _DeesSimpleAppDash = class _DeesSimpleAppDash extends (_a97 = DeesElement, _
199344
199373
  <div class="viewTabs-container">
199345
199374
  <div class="section-label">Navigation</div>
199346
199375
  <div class="viewTabs">
199347
- ${this.viewTabs.map(
199348
- (view) => b2`
199376
+ ${this.viewTabs.map((view) => {
199377
+ const hasSubs = !!view.subViews?.length;
199378
+ const groupActive = hasSubs && this.isGroupActive(view);
199379
+ return b2`
199349
199380
  <div
199350
- class="viewTab ${this.selectedView === view ? "selected" : ""}"
199381
+ class="viewTab ${this.selectedView === view ? "selected" : ""} ${hasSubs ? "hasSubs" : ""} ${groupActive ? "groupActive" : ""}"
199351
199382
  @click=${() => this.loadView(view)}
199352
199383
  >
199353
199384
  ${view.iconName ? b2`
@@ -199356,9 +199387,34 @@ var _DeesSimpleAppDash = class _DeesSimpleAppDash extends (_a97 = DeesElement, _
199356
199387
  <dees-icon .icon="${"lucide:file"}"></dees-icon>
199357
199388
  `}
199358
199389
  <span>${view.name}</span>
199390
+ ${hasSubs ? b2`
199391
+ <dees-icon class="chevron" .icon="${"lucide:chevronDown"}"></dees-icon>
199392
+ ` : ""}
199359
199393
  </div>
199360
- `
199361
- )}
199394
+ ${hasSubs && groupActive ? b2`
199395
+ <div class="subViews">
199396
+ ${view.subViews.map(
199397
+ (sub2) => b2`
199398
+ <div
199399
+ class="viewTab sub ${this.selectedView === sub2 ? "selected" : ""}"
199400
+ @click=${(e11) => {
199401
+ e11.stopPropagation();
199402
+ this.loadView(sub2);
199403
+ }}
199404
+ >
199405
+ ${sub2.iconName ? b2`
199406
+ <dees-icon .icon="${sub2.iconName.includes(":") ? sub2.iconName : `lucide:${sub2.iconName}`}"></dees-icon>
199407
+ ` : b2`
199408
+ <dees-icon .icon="${"lucide:dot"}"></dees-icon>
199409
+ `}
199410
+ <span>${sub2.name}</span>
199411
+ </div>
199412
+ `
199413
+ )}
199414
+ </div>
199415
+ ` : ""}
199416
+ `;
199417
+ })}
199362
199418
  </div>
199363
199419
  </div>
199364
199420
  <div class="appActions">
@@ -199526,7 +199582,19 @@ var _DeesSimpleAppDash = class _DeesSimpleAppDash extends (_a97 = DeesElement, _
199526
199582
  this.currentTerminal = null;
199527
199583
  }
199528
199584
  }
199585
+ isGroupActive(view) {
199586
+ if (this.selectedView === view) return true;
199587
+ return view.subViews?.some((sv) => sv === this.selectedView) ?? false;
199588
+ }
199529
199589
  async loadView(viewArg) {
199590
+ if (!viewArg.element && viewArg.subViews?.length) {
199591
+ const firstNavigable = viewArg.subViews.find((sv) => sv.element);
199592
+ if (firstNavigable) {
199593
+ return this.loadView(firstNavigable);
199594
+ }
199595
+ return;
199596
+ }
199597
+ if (!viewArg.element) return;
199530
199598
  const appcontent = this.shadowRoot.querySelector(".appcontent");
199531
199599
  const view = new viewArg.element();
199532
199600
  if (this.currentView) {
@@ -199738,6 +199806,55 @@ __publicField(_DeesSimpleAppDash, "styles", [
199738
199806
  white-space: nowrap;
199739
199807
  }
199740
199808
 
199809
+ .viewTab .chevron {
199810
+ flex: 0 0 auto;
199811
+ font-size: 14px;
199812
+ opacity: 0.5;
199813
+ transform: rotate(-90deg);
199814
+ transition: transform 0.2s ease, opacity 0.15s ease;
199815
+ }
199816
+
199817
+ .viewTab.hasSubs:hover .chevron {
199818
+ opacity: 0.75;
199819
+ }
199820
+
199821
+ .viewTab.hasSubs.groupActive .chevron {
199822
+ transform: rotate(0deg);
199823
+ opacity: 0.9;
199824
+ }
199825
+
199826
+ .subViews {
199827
+ display: flex;
199828
+ flex-direction: column;
199829
+ gap: 2px;
199830
+ margin: 2px 0 4px 12px;
199831
+ padding-left: 12px;
199832
+ position: relative;
199833
+ }
199834
+
199835
+ .subViews::before {
199836
+ content: '';
199837
+ position: absolute;
199838
+ left: 0;
199839
+ top: 4px;
199840
+ bottom: 4px;
199841
+ width: 1px;
199842
+ background: var(--dees-color-border-default);
199843
+ }
199844
+
199845
+ .viewTab.sub {
199846
+ padding: 8px 12px;
199847
+ font-size: 12px;
199848
+ }
199849
+
199850
+ .viewTab.sub dees-icon {
199851
+ font-size: 14px;
199852
+ }
199853
+
199854
+ .viewTab.sub.selected::before {
199855
+ left: -12px;
199856
+ }
199857
+
199741
199858
  .appActions {
199742
199859
  padding: 12px 8px;
199743
199860
  border-top: 1px solid var(--dees-color-border-default);