@design.estate/dees-catalog 3.70.1 → 3.71.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.
- package/dist_bundle/bundle.js +404 -151
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.d.ts +37 -0
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.js +92 -91
- package/dist_ts_web/elements/00group-layout/dees-stepper/dees-stepper.js +348 -65
- package/dist_watch/bundle.js +402 -149
- package/dist_watch/bundle.js.map +3 -3
- package/package.json +1 -1
- package/readme.plan.md +352 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.ts +133 -130
- package/ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts +345 -65
package/dist_watch/bundle.js
CHANGED
|
@@ -192358,175 +192358,223 @@ var DeesPagination = _DeesPagination;
|
|
|
192358
192358
|
|
|
192359
192359
|
// ts_web/elements/00group-layout/dees-stepper/dees-stepper.demo.ts
|
|
192360
192360
|
init_dist_ts30();
|
|
192361
|
-
var
|
|
192362
|
-
<dees-stepper
|
|
192363
|
-
.steps=${[
|
|
192361
|
+
var demoSteps = [
|
|
192364
192362
|
{
|
|
192365
192363
|
title: "Account Setup",
|
|
192366
192364
|
content: b2`
|
|
192367
|
-
|
|
192368
|
-
|
|
192369
|
-
|
|
192370
|
-
|
|
192371
|
-
|
|
192372
|
-
|
|
192373
|
-
|
|
192374
|
-
|
|
192375
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192376
|
-
}, "validationFunc")
|
|
192365
|
+
<dees-form>
|
|
192366
|
+
<dees-input-text key="email" label="Work Email" required></dees-input-text>
|
|
192367
|
+
<dees-input-text key="password" label="Create Password" type="password" required></dees-input-text>
|
|
192368
|
+
</dees-form>
|
|
192369
|
+
`,
|
|
192370
|
+
menuOptions: [
|
|
192371
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192372
|
+
]
|
|
192377
192373
|
},
|
|
192378
192374
|
{
|
|
192379
192375
|
title: "Profile Details",
|
|
192380
192376
|
content: b2`
|
|
192381
|
-
|
|
192382
|
-
|
|
192383
|
-
|
|
192384
|
-
|
|
192385
|
-
|
|
192386
|
-
|
|
192387
|
-
|
|
192388
|
-
|
|
192389
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192390
|
-
}, "validationFunc")
|
|
192377
|
+
<dees-form>
|
|
192378
|
+
<dees-input-text key="firstName" label="First Name" required></dees-input-text>
|
|
192379
|
+
<dees-input-text key="lastName" label="Last Name" required></dees-input-text>
|
|
192380
|
+
</dees-form>
|
|
192381
|
+
`,
|
|
192382
|
+
menuOptions: [
|
|
192383
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192384
|
+
]
|
|
192391
192385
|
},
|
|
192392
192386
|
{
|
|
192393
192387
|
title: "Contact Information",
|
|
192394
192388
|
content: b2`
|
|
192395
|
-
|
|
192396
|
-
|
|
192397
|
-
|
|
192398
|
-
|
|
192399
|
-
|
|
192400
|
-
|
|
192401
|
-
|
|
192402
|
-
|
|
192403
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192404
|
-
}, "validationFunc")
|
|
192389
|
+
<dees-form>
|
|
192390
|
+
<dees-input-phone key="phone" label="Mobile Number" required></dees-input-phone>
|
|
192391
|
+
<dees-input-text key="company" label="Company"></dees-input-text>
|
|
192392
|
+
</dees-form>
|
|
192393
|
+
`,
|
|
192394
|
+
menuOptions: [
|
|
192395
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192396
|
+
]
|
|
192405
192397
|
},
|
|
192406
192398
|
{
|
|
192407
192399
|
title: "Team Size",
|
|
192408
192400
|
content: b2`
|
|
192409
|
-
|
|
192410
|
-
|
|
192411
|
-
|
|
192412
|
-
|
|
192413
|
-
|
|
192401
|
+
<dees-form>
|
|
192402
|
+
<dees-input-dropdown
|
|
192403
|
+
key="teamSize"
|
|
192404
|
+
label="How big is your team?"
|
|
192405
|
+
.options=${[
|
|
192414
192406
|
{ label: "1-5", value: "1-5" },
|
|
192415
192407
|
{ label: "6-20", value: "6-20" },
|
|
192416
192408
|
{ label: "21-50", value: "21-50" },
|
|
192417
192409
|
{ label: "51+", value: "51+" }
|
|
192418
192410
|
]}
|
|
192419
|
-
|
|
192420
|
-
|
|
192421
|
-
|
|
192422
|
-
|
|
192423
|
-
|
|
192424
|
-
|
|
192425
|
-
|
|
192426
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192427
|
-
}, "validationFunc")
|
|
192411
|
+
required
|
|
192412
|
+
></dees-input-dropdown>
|
|
192413
|
+
</dees-form>
|
|
192414
|
+
`,
|
|
192415
|
+
menuOptions: [
|
|
192416
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192417
|
+
]
|
|
192428
192418
|
},
|
|
192429
192419
|
{
|
|
192430
192420
|
title: "Goals",
|
|
192431
192421
|
content: b2`
|
|
192432
|
-
|
|
192433
|
-
|
|
192434
|
-
|
|
192435
|
-
|
|
192436
|
-
|
|
192422
|
+
<dees-form>
|
|
192423
|
+
<dees-input-multitoggle
|
|
192424
|
+
key="goal"
|
|
192425
|
+
label="Main objective"
|
|
192426
|
+
.options=${[
|
|
192437
192427
|
{ label: "Onboarding", value: "onboarding" },
|
|
192438
192428
|
{ label: "Analytics", value: "analytics" },
|
|
192439
192429
|
{ label: "Automation", value: "automation" }
|
|
192440
192430
|
]}
|
|
192441
|
-
|
|
192442
|
-
|
|
192443
|
-
|
|
192444
|
-
|
|
192445
|
-
|
|
192446
|
-
|
|
192447
|
-
|
|
192448
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192449
|
-
}, "validationFunc")
|
|
192431
|
+
required
|
|
192432
|
+
></dees-input-multitoggle>
|
|
192433
|
+
</dees-form>
|
|
192434
|
+
`,
|
|
192435
|
+
menuOptions: [
|
|
192436
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192437
|
+
]
|
|
192450
192438
|
},
|
|
192451
192439
|
{
|
|
192452
192440
|
title: "Brand Preferences",
|
|
192453
192441
|
content: b2`
|
|
192454
|
-
|
|
192455
|
-
|
|
192456
|
-
|
|
192457
|
-
|
|
192458
|
-
|
|
192459
|
-
|
|
192460
|
-
|
|
192461
|
-
|
|
192462
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192463
|
-
}, "validationFunc")
|
|
192442
|
+
<dees-form>
|
|
192443
|
+
<dees-input-text key="brandColor" label="Primary brand color"></dees-input-text>
|
|
192444
|
+
<dees-input-text key="tone" label="Preferred tone (e.g. friendly, formal)"></dees-input-text>
|
|
192445
|
+
</dees-form>
|
|
192446
|
+
`,
|
|
192447
|
+
menuOptions: [
|
|
192448
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192449
|
+
]
|
|
192464
192450
|
},
|
|
192465
192451
|
{
|
|
192466
192452
|
title: "Integrations",
|
|
192467
192453
|
content: b2`
|
|
192468
|
-
|
|
192469
|
-
|
|
192470
|
-
|
|
192471
|
-
|
|
192472
|
-
|
|
192473
|
-
|
|
192474
|
-
|
|
192475
|
-
|
|
192476
|
-
|
|
192477
|
-
|
|
192478
|
-
|
|
192479
|
-
deesForm.addEventListener("formData", () => stepperArg.goNext(), { once: true });
|
|
192480
|
-
}, "validationFunc")
|
|
192454
|
+
<dees-form>
|
|
192455
|
+
<dees-input-list
|
|
192456
|
+
key="integrations"
|
|
192457
|
+
label="Integrations in use"
|
|
192458
|
+
placeholder="Add integration"
|
|
192459
|
+
></dees-input-list>
|
|
192460
|
+
</dees-form>
|
|
192461
|
+
`,
|
|
192462
|
+
menuOptions: [
|
|
192463
|
+
{ name: "Continue", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192464
|
+
]
|
|
192481
192465
|
},
|
|
192482
192466
|
{
|
|
192483
192467
|
title: "Review & Launch",
|
|
192484
192468
|
content: b2`
|
|
192485
|
-
|
|
192486
|
-
|
|
192487
|
-
|
|
192488
|
-
|
|
192469
|
+
<dees-panel>
|
|
192470
|
+
<p>Almost there! Review your selections and launch whenever you're ready.</p>
|
|
192471
|
+
</dees-panel>
|
|
192472
|
+
`,
|
|
192473
|
+
menuOptions: [
|
|
192474
|
+
{ name: "Launch", action: /* @__PURE__ */ __name(async (stepper) => stepper.goNext(), "action") }
|
|
192475
|
+
]
|
|
192489
192476
|
}
|
|
192490
|
-
]
|
|
192491
|
-
|
|
192477
|
+
];
|
|
192478
|
+
var cloneSteps = /* @__PURE__ */ __name(() => demoSteps.map((step) => ({ ...step })), "cloneSteps");
|
|
192479
|
+
var stepperDemo = /* @__PURE__ */ __name(() => b2`
|
|
192480
|
+
<div style="position: absolute; inset: 0;">
|
|
192481
|
+
<div
|
|
192482
|
+
style="position: absolute; top: 16px; left: 50%; transform: translateX(-50%); z-index: 10;"
|
|
192483
|
+
>
|
|
192484
|
+
<dees-button
|
|
192485
|
+
@click=${async () => {
|
|
192486
|
+
await DeesStepper.createAndShow({ steps: cloneSteps() });
|
|
192487
|
+
}}
|
|
192488
|
+
>Open stepper as overlay</dees-button>
|
|
192489
|
+
</div>
|
|
192490
|
+
<dees-stepper .steps=${cloneSteps()}></dees-stepper>
|
|
192491
|
+
</div>
|
|
192492
192492
|
`, "stepperDemo");
|
|
192493
192493
|
|
|
192494
192494
|
// ts_web/elements/00group-layout/dees-stepper/dees-stepper.ts
|
|
192495
192495
|
init_dist_ts30();
|
|
192496
192496
|
init_dist_ts29();
|
|
192497
192497
|
init_theme();
|
|
192498
|
-
var _selectedStep_dec, _steps_dec, _a81, _DeesStepper_decorators, _init82, _steps, _selectedStep;
|
|
192498
|
+
var _activeFormValid_dec, _activeForm_dec, _stepperZIndex_dec, _overlay_dec, _selectedStep_dec, _steps_dec, _a81, _DeesStepper_decorators, _init82, _steps, _selectedStep, _overlay, _stepperZIndex, _activeForm, _activeFormValid;
|
|
192499
192499
|
_DeesStepper_decorators = [customElement("dees-stepper")];
|
|
192500
192500
|
var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec = [n5({
|
|
192501
192501
|
type: Array
|
|
192502
192502
|
})], _selectedStep_dec = [n5({
|
|
192503
192503
|
type: Object
|
|
192504
|
-
})],
|
|
192504
|
+
})], _overlay_dec = [n5({
|
|
192505
|
+
type: Boolean,
|
|
192506
|
+
reflect: true
|
|
192507
|
+
})], _stepperZIndex_dec = [n5({ type: Number, attribute: false })], _activeForm_dec = [n5({ type: Object, attribute: false })], _activeFormValid_dec = [n5({ type: Boolean, attribute: false })], _a81) {
|
|
192505
192508
|
constructor() {
|
|
192506
192509
|
super();
|
|
192507
192510
|
__privateAdd(this, _steps, __runInitializers(_init82, 8, this, [])), __runInitializers(_init82, 11, this);
|
|
192508
192511
|
__privateAdd(this, _selectedStep, __runInitializers(_init82, 12, this)), __runInitializers(_init82, 15, this);
|
|
192512
|
+
__privateAdd(this, _overlay, __runInitializers(_init82, 16, this, false)), __runInitializers(_init82, 19, this);
|
|
192513
|
+
__privateAdd(this, _stepperZIndex, __runInitializers(_init82, 20, this, 1e3)), __runInitializers(_init82, 23, this);
|
|
192514
|
+
__privateAdd(this, _activeForm, __runInitializers(_init82, 24, this, null)), __runInitializers(_init82, 27, this);
|
|
192515
|
+
__privateAdd(this, _activeFormValid, __runInitializers(_init82, 28, this, true)), __runInitializers(_init82, 31, this);
|
|
192516
|
+
__publicField(this, "activeFormSubscription");
|
|
192517
|
+
__publicField(this, "windowLayer");
|
|
192509
192518
|
__publicField(this, "getIndexOfStep", /* @__PURE__ */ __name((stepArg) => {
|
|
192510
192519
|
return this.steps.findIndex((stepArg2) => stepArg === stepArg2);
|
|
192511
192520
|
}, "getIndexOfStep"));
|
|
192512
192521
|
__publicField(this, "scroller");
|
|
192513
192522
|
}
|
|
192523
|
+
static async createAndShow(optionsArg) {
|
|
192524
|
+
const body3 = document.body;
|
|
192525
|
+
const stepper = new _DeesStepper();
|
|
192526
|
+
stepper.steps = optionsArg.steps;
|
|
192527
|
+
stepper.overlay = true;
|
|
192528
|
+
stepper.windowLayer = await DeesWindowLayer.createAndShow({ blur: true });
|
|
192529
|
+
stepper.windowLayer.addEventListener("click", async () => {
|
|
192530
|
+
await stepper.destroy();
|
|
192531
|
+
});
|
|
192532
|
+
body3.append(stepper.windowLayer);
|
|
192533
|
+
body3.append(stepper);
|
|
192534
|
+
stepper.stepperZIndex = zIndexRegistry.getNextZIndex();
|
|
192535
|
+
zIndexRegistry.register(stepper, stepper.stepperZIndex);
|
|
192536
|
+
return stepper;
|
|
192537
|
+
}
|
|
192514
192538
|
render() {
|
|
192515
192539
|
return b2`
|
|
192516
|
-
<div
|
|
192517
|
-
${this.
|
|
192518
|
-
|
|
192519
|
-
|
|
192520
|
-
|
|
192521
|
-
|
|
192540
|
+
<div
|
|
192541
|
+
class="stepperContainer ${this.overlay ? "overlay" : ""}"
|
|
192542
|
+
style=${this.overlay ? `z-index: ${this.stepperZIndex};` : ""}
|
|
192543
|
+
>
|
|
192544
|
+
${this.steps.map((stepArg, stepIndex) => {
|
|
192545
|
+
const isSelected = stepArg === this.selectedStep;
|
|
192546
|
+
const isHidden = this.getIndexOfStep(stepArg) > this.getIndexOfStep(this.selectedStep);
|
|
192547
|
+
const isFirst = stepIndex === 0;
|
|
192548
|
+
return b2`<dees-tile
|
|
192549
|
+
class="step ${isSelected ? "selected" : ""} ${isHidden ? "hiddenStep" : ""} ${isFirst ? "entrance" : ""}"
|
|
192550
|
+
>
|
|
192551
|
+
<div slot="header" class="step-header">
|
|
192552
|
+
${!isFirst ? b2`<div class="goBack" @click=${this.goBack}>
|
|
192553
|
+
<span style="font-family: Inter"><-</span> go to previous step
|
|
192554
|
+
</div>` : b2`<div class="goBack-spacer"></div>`}
|
|
192522
192555
|
<div class="stepCounter">
|
|
192523
|
-
Step ${
|
|
192524
|
-
${this.steps.length}
|
|
192556
|
+
Step ${stepIndex + 1} of ${this.steps.length}
|
|
192525
192557
|
</div>
|
|
192558
|
+
</div>
|
|
192559
|
+
<div class="step-body">
|
|
192526
192560
|
<div class="title">${stepArg.title}</div>
|
|
192527
192561
|
<div class="content">${stepArg.content}</div>
|
|
192528
|
-
</div>
|
|
192529
|
-
|
|
192562
|
+
</div>
|
|
192563
|
+
${stepArg.menuOptions && stepArg.menuOptions.length > 0 ? b2`<div slot="footer" class="bottomButtons">
|
|
192564
|
+
${isSelected && this.activeForm !== null && !this.activeFormValid ? b2`<div class="stepHint">Complete form to continue</div>` : ""}
|
|
192565
|
+
${stepArg.menuOptions.map((actionArg, actionIndex) => {
|
|
192566
|
+
const isPrimary = actionIndex === stepArg.menuOptions.length - 1;
|
|
192567
|
+
const isDisabled = isPrimary && this.activeForm !== null && !this.activeFormValid;
|
|
192568
|
+
return b2`
|
|
192569
|
+
<div
|
|
192570
|
+
class="bottomButton ${isPrimary ? "primary" : ""} ${isDisabled ? "disabled" : ""}"
|
|
192571
|
+
@click=${() => this.handleMenuOptionClick(actionArg, isPrimary)}
|
|
192572
|
+
>${actionArg.name}</div>
|
|
192573
|
+
`;
|
|
192574
|
+
})}
|
|
192575
|
+
</div>` : ""}
|
|
192576
|
+
</dees-tile>`;
|
|
192577
|
+
})}
|
|
192530
192578
|
</div>
|
|
192531
192579
|
`;
|
|
192532
192580
|
}
|
|
@@ -192548,6 +192596,7 @@ var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec =
|
|
|
192548
192596
|
if (!selectedStepElement) {
|
|
192549
192597
|
return;
|
|
192550
192598
|
}
|
|
192599
|
+
this.scanActiveForm(selectedStepElement);
|
|
192551
192600
|
if (!stepperContainer.style.paddingTop) {
|
|
192552
192601
|
stepperContainer.style.paddingTop = `${stepperContainer.offsetHeight / 2 - selectedStepElement.offsetHeight / 2}px`;
|
|
192553
192602
|
}
|
|
@@ -192605,14 +192654,99 @@ var _DeesStepper = class _DeesStepper extends (_a81 = DeesElement, _steps_dec =
|
|
|
192605
192654
|
nextStep.validationFuncCalled = false;
|
|
192606
192655
|
this.selectedStep = nextStep;
|
|
192607
192656
|
}
|
|
192657
|
+
/**
|
|
192658
|
+
* Scans the currently selected step for a <dees-form> in its content. When
|
|
192659
|
+
* found, subscribes to the form's RxJS changeSubject so the primary
|
|
192660
|
+
* menuOption button can auto-enable/disable as required fields are filled.
|
|
192661
|
+
*
|
|
192662
|
+
* If the form reference is the same as the previous activation (e.g. on a
|
|
192663
|
+
* same-step re-render), we just recompute validity without re-subscribing.
|
|
192664
|
+
*/
|
|
192665
|
+
scanActiveForm(selectedStepElement) {
|
|
192666
|
+
const form = selectedStepElement.querySelector("dees-form");
|
|
192667
|
+
if (form === this.activeForm) {
|
|
192668
|
+
this.recomputeFormValid();
|
|
192669
|
+
return;
|
|
192670
|
+
}
|
|
192671
|
+
this.activeFormSubscription?.unsubscribe();
|
|
192672
|
+
this.activeFormSubscription = void 0;
|
|
192673
|
+
this.activeForm = form;
|
|
192674
|
+
if (!form) {
|
|
192675
|
+
this.activeFormValid = true;
|
|
192676
|
+
return;
|
|
192677
|
+
}
|
|
192678
|
+
this.recomputeFormValid();
|
|
192679
|
+
this.activeFormSubscription = form.changeSubject.subscribe(() => {
|
|
192680
|
+
this.recomputeFormValid();
|
|
192681
|
+
});
|
|
192682
|
+
}
|
|
192683
|
+
/**
|
|
192684
|
+
* Recomputes activeFormValid by checking every required field in the active
|
|
192685
|
+
* form for a non-empty value. Mirrors dees-form.updateRequiredStatus's logic
|
|
192686
|
+
* but stores the result on the stepper instead of mutating a submit button.
|
|
192687
|
+
*/
|
|
192688
|
+
recomputeFormValid() {
|
|
192689
|
+
const form = this.activeForm;
|
|
192690
|
+
if (!form) {
|
|
192691
|
+
this.activeFormValid = true;
|
|
192692
|
+
return;
|
|
192693
|
+
}
|
|
192694
|
+
const fields = form.getFormElements();
|
|
192695
|
+
this.activeFormValid = fields.every(
|
|
192696
|
+
(field) => !field.required || field.value !== null && field.value !== void 0 && field.value !== ""
|
|
192697
|
+
);
|
|
192698
|
+
}
|
|
192699
|
+
/**
|
|
192700
|
+
* Click handler for menuOption buttons in the footer. For the primary (last)
|
|
192701
|
+
* button, if an active form is present, gates on required-field validity and
|
|
192702
|
+
* triggers the form's gatherAndDispatch() before running the action. The
|
|
192703
|
+
* action is awaited so any async work (e.g. goNext → scroll animation)
|
|
192704
|
+
* completes before the click handler returns.
|
|
192705
|
+
*/
|
|
192706
|
+
async handleMenuOptionClick(optionArg, isPrimary) {
|
|
192707
|
+
const form = this.activeForm;
|
|
192708
|
+
if (isPrimary && form) {
|
|
192709
|
+
if (!this.activeFormValid) return;
|
|
192710
|
+
await new Promise((resolve2) => {
|
|
192711
|
+
form.addEventListener("formData", () => resolve2(), { once: true });
|
|
192712
|
+
form.gatherAndDispatch();
|
|
192713
|
+
});
|
|
192714
|
+
}
|
|
192715
|
+
await optionArg.action(this);
|
|
192716
|
+
}
|
|
192717
|
+
async destroy() {
|
|
192718
|
+
const domtools19 = await this.domtoolsPromise;
|
|
192719
|
+
const container = this.shadowRoot.querySelector(".stepperContainer");
|
|
192720
|
+
container?.classList.add("predestroy");
|
|
192721
|
+
await domtools19.convenience.smartdelay.delayFor(200);
|
|
192722
|
+
if (this.parentElement) {
|
|
192723
|
+
this.parentElement.removeChild(this);
|
|
192724
|
+
}
|
|
192725
|
+
if (this.windowLayer) {
|
|
192726
|
+
await this.windowLayer.destroy();
|
|
192727
|
+
}
|
|
192728
|
+
this.activeFormSubscription?.unsubscribe();
|
|
192729
|
+
this.activeFormSubscription = void 0;
|
|
192730
|
+
this.activeForm = null;
|
|
192731
|
+
zIndexRegistry.unregister(this);
|
|
192732
|
+
}
|
|
192608
192733
|
};
|
|
192609
192734
|
_init82 = __decoratorStart(_a81);
|
|
192610
192735
|
_steps = new WeakMap();
|
|
192611
192736
|
_selectedStep = new WeakMap();
|
|
192737
|
+
_overlay = new WeakMap();
|
|
192738
|
+
_stepperZIndex = new WeakMap();
|
|
192739
|
+
_activeForm = new WeakMap();
|
|
192740
|
+
_activeFormValid = new WeakMap();
|
|
192612
192741
|
__decorateElement(_init82, 4, "steps", _steps_dec, _DeesStepper, _steps);
|
|
192613
192742
|
__decorateElement(_init82, 4, "selectedStep", _selectedStep_dec, _DeesStepper, _selectedStep);
|
|
192743
|
+
__decorateElement(_init82, 4, "overlay", _overlay_dec, _DeesStepper, _overlay);
|
|
192744
|
+
__decorateElement(_init82, 4, "stepperZIndex", _stepperZIndex_dec, _DeesStepper, _stepperZIndex);
|
|
192745
|
+
__decorateElement(_init82, 4, "activeForm", _activeForm_dec, _DeesStepper, _activeForm);
|
|
192746
|
+
__decorateElement(_init82, 4, "activeFormValid", _activeFormValid_dec, _DeesStepper, _activeFormValid);
|
|
192614
192747
|
_DeesStepper = __decorateElement(_init82, 0, "DeesStepper", _DeesStepper_decorators, _DeesStepper);
|
|
192615
192748
|
__name(_DeesStepper, "DeesStepper");
|
|
192749
|
+
// STATIC
|
|
192616
192750
|
__publicField(_DeesStepper, "demo", stepperDemo);
|
|
192617
192751
|
__publicField(_DeesStepper, "demoGroups", ["Layout", "Form"]);
|
|
192618
192752
|
__publicField(_DeesStepper, "styles", [
|
|
@@ -192624,7 +192758,24 @@ __publicField(_DeesStepper, "styles", [
|
|
|
192624
192758
|
position: absolute;
|
|
192625
192759
|
width: 100%;
|
|
192626
192760
|
height: 100%;
|
|
192761
|
+
font-family: ${cssGeistFontFamily};
|
|
192762
|
+
color: var(--dees-color-text-primary);
|
|
192627
192763
|
}
|
|
192764
|
+
|
|
192765
|
+
/*
|
|
192766
|
+
* In overlay mode the host is "transparent" to layout — the inner
|
|
192767
|
+
* .stepperContainer.overlay is what pins to the viewport and carries the
|
|
192768
|
+
* z-index. Keeping :host unpositioned avoids nesting the stacking context
|
|
192769
|
+
* under an auto-z-index parent (which was trapping .stepperContainer
|
|
192770
|
+
* below DeesWindowLayer's sibling layers). This mirrors how dees-modal
|
|
192771
|
+
* keeps its own :host unpositioned and lets .modalContainer drive layout.
|
|
192772
|
+
*/
|
|
192773
|
+
:host([overlay]) {
|
|
192774
|
+
position: static;
|
|
192775
|
+
width: 0;
|
|
192776
|
+
height: 0;
|
|
192777
|
+
}
|
|
192778
|
+
|
|
192628
192779
|
.stepperContainer {
|
|
192629
192780
|
position: absolute;
|
|
192630
192781
|
width: 100%;
|
|
@@ -192632,101 +192783,120 @@ __publicField(_DeesStepper, "styles", [
|
|
|
192632
192783
|
overflow: hidden;
|
|
192633
192784
|
}
|
|
192634
192785
|
|
|
192635
|
-
.
|
|
192786
|
+
.stepperContainer.overlay {
|
|
192787
|
+
position: fixed;
|
|
192788
|
+
top: 0;
|
|
192789
|
+
left: 0;
|
|
192790
|
+
width: 100vw;
|
|
192791
|
+
height: 100vh;
|
|
192792
|
+
}
|
|
192793
|
+
|
|
192794
|
+
.stepperContainer.predestroy {
|
|
192795
|
+
opacity: 0;
|
|
192796
|
+
transition: opacity 0.2s ease-in;
|
|
192797
|
+
}
|
|
192798
|
+
|
|
192799
|
+
dees-tile.step {
|
|
192636
192800
|
position: relative;
|
|
192637
192801
|
pointer-events: none;
|
|
192638
|
-
overflow: hidden;
|
|
192639
|
-
transition: transform 0.7s cubic-bezier(0.87, 0, 0.13, 1), box-shadow 0.7s cubic-bezier(0.87, 0, 0.13, 1), filter 0.7s cubic-bezier(0.87, 0, 0.13, 1), border 0.7s cubic-bezier(0.87, 0, 0.13, 1);
|
|
192640
192802
|
max-width: 500px;
|
|
192641
192803
|
min-height: 300px;
|
|
192642
|
-
border-radius: 12px;
|
|
192643
|
-
background: ${cssManager.bdTheme("#ffffff", "#0f0f11")};
|
|
192644
|
-
border: 1px solid ${cssManager.bdTheme("#e2e8f0", "#272729")};
|
|
192645
|
-
color: ${cssManager.bdTheme("#0f172a", "#f5f5f5")};
|
|
192646
192804
|
margin: auto;
|
|
192647
192805
|
margin-bottom: 20px;
|
|
192648
192806
|
filter: opacity(0.55) saturate(0.85);
|
|
192649
|
-
|
|
192807
|
+
transition: transform 0.7s cubic-bezier(0.87, 0, 0.13, 1), filter 0.7s cubic-bezier(0.87, 0, 0.13, 1);
|
|
192650
192808
|
user-select: none;
|
|
192651
192809
|
}
|
|
192652
192810
|
|
|
192653
|
-
.step.selected {
|
|
192811
|
+
dees-tile.step.selected {
|
|
192654
192812
|
pointer-events: all;
|
|
192655
192813
|
filter: opacity(1) saturate(1);
|
|
192656
192814
|
user-select: auto;
|
|
192657
192815
|
}
|
|
192658
192816
|
|
|
192659
|
-
.step.hiddenStep {
|
|
192817
|
+
dees-tile.step.hiddenStep {
|
|
192660
192818
|
filter: opacity(0);
|
|
192661
192819
|
}
|
|
192662
192820
|
|
|
192663
|
-
.step.entrance {
|
|
192664
|
-
transition: transform 0.35s ease,
|
|
192821
|
+
dees-tile.step.entrance {
|
|
192822
|
+
transition: transform 0.35s ease, filter 0.35s ease;
|
|
192665
192823
|
}
|
|
192666
192824
|
|
|
192667
|
-
.step.entrance.hiddenStep {
|
|
192825
|
+
dees-tile.step.entrance.hiddenStep {
|
|
192668
192826
|
transform: translateY(16px);
|
|
192669
192827
|
}
|
|
192670
192828
|
|
|
192671
|
-
.step:last-child {
|
|
192829
|
+
dees-tile.step:last-child {
|
|
192672
192830
|
margin-bottom: 100vh;
|
|
192673
192831
|
}
|
|
192674
192832
|
|
|
192675
|
-
.
|
|
192676
|
-
|
|
192677
|
-
|
|
192678
|
-
|
|
192679
|
-
|
|
192680
|
-
padding: 6px 14px;
|
|
192681
|
-
font-size: 12px;
|
|
192682
|
-
border-radius: 999px;
|
|
192683
|
-
background: ${cssManager.bdTheme("rgba(226, 232, 240, 0.5)", "rgba(63, 63, 70, 0.45)")};
|
|
192684
|
-
border: 1px solid ${cssManager.bdTheme("rgba(226, 232, 240, 0.7)", "rgba(63, 63, 70, 0.6)")};
|
|
192833
|
+
.stepperContainer.overlay dees-tile.step::part(outer) {
|
|
192834
|
+
box-shadow:
|
|
192835
|
+
0 0 0 1px ${cssManager.bdTheme("hsl(0 0% 0% / 0.03)", "hsl(0 0% 100% / 0.03)")},
|
|
192836
|
+
0 8px 40px ${cssManager.bdTheme("hsl(0 0% 0% / 0.12)", "hsl(0 0% 0% / 0.5)")},
|
|
192837
|
+
0 2px 8px ${cssManager.bdTheme("hsl(0 0% 0% / 0.06)", "hsl(0 0% 0% / 0.25)")};
|
|
192685
192838
|
}
|
|
192686
192839
|
|
|
192687
|
-
.step
|
|
192688
|
-
|
|
192689
|
-
|
|
192690
|
-
|
|
192840
|
+
.step-header {
|
|
192841
|
+
height: 36px;
|
|
192842
|
+
display: flex;
|
|
192843
|
+
align-items: center;
|
|
192844
|
+
justify-content: space-between;
|
|
192845
|
+
padding: 0 8px 0 12px;
|
|
192846
|
+
gap: 12px;
|
|
192847
|
+
}
|
|
192848
|
+
|
|
192849
|
+
.goBack-spacer {
|
|
192850
|
+
width: 1px;
|
|
192851
|
+
}
|
|
192852
|
+
|
|
192853
|
+
.step-header .goBack {
|
|
192691
192854
|
display: inline-flex;
|
|
192692
192855
|
align-items: center;
|
|
192693
192856
|
gap: 6px;
|
|
192694
|
-
|
|
192857
|
+
height: 24px;
|
|
192858
|
+
padding: 0 8px;
|
|
192695
192859
|
font-size: 12px;
|
|
192696
192860
|
font-weight: 500;
|
|
192697
|
-
|
|
192698
|
-
border:
|
|
192699
|
-
background:
|
|
192700
|
-
color:
|
|
192861
|
+
line-height: 1;
|
|
192862
|
+
border: none;
|
|
192863
|
+
background: transparent;
|
|
192864
|
+
color: var(--dees-color-text-muted);
|
|
192865
|
+
border-radius: 4px;
|
|
192701
192866
|
cursor: pointer;
|
|
192702
|
-
transition:
|
|
192867
|
+
transition: background 0.15s ease, color 0.15s ease, transform 0.2s ease;
|
|
192703
192868
|
}
|
|
192704
192869
|
|
|
192705
|
-
.step .goBack:hover {
|
|
192706
|
-
|
|
192707
|
-
|
|
192708
|
-
background: ${cssManager.bdTheme("rgba(226, 232, 240, 0.95)", "rgba(63, 63, 70, 0.7)")};
|
|
192870
|
+
.step-header .goBack:hover {
|
|
192871
|
+
background: var(--dees-color-hover);
|
|
192872
|
+
color: var(--dees-color-text-secondary);
|
|
192709
192873
|
transform: translateX(-2px);
|
|
192710
192874
|
}
|
|
192711
192875
|
|
|
192712
|
-
.step .goBack:active {
|
|
192713
|
-
|
|
192714
|
-
border-color: ${cssManager.bdTheme(dark.blueActive, dark.blueActive)};
|
|
192715
|
-
background: ${cssManager.bdTheme("rgba(226, 232, 240, 0.85)", "rgba(63, 63, 70, 0.6)")};
|
|
192876
|
+
.step-header .goBack:active {
|
|
192877
|
+
background: ${cssManager.bdTheme("hsl(0 0% 90%)", "hsl(0 0% 15%)")};
|
|
192716
192878
|
}
|
|
192717
192879
|
|
|
192718
|
-
.step .goBack span {
|
|
192880
|
+
.step-header .goBack span {
|
|
192719
192881
|
transition: transform 0.2s ease;
|
|
192720
192882
|
display: inline-block;
|
|
192721
192883
|
}
|
|
192722
192884
|
|
|
192723
|
-
.step .goBack:hover span {
|
|
192885
|
+
.step-header .goBack:hover span {
|
|
192724
192886
|
transform: translateX(-2px);
|
|
192725
192887
|
}
|
|
192726
192888
|
|
|
192727
|
-
.step .
|
|
192889
|
+
.step-header .stepCounter {
|
|
192890
|
+
color: var(--dees-color-text-muted);
|
|
192891
|
+
font-size: 12px;
|
|
192892
|
+
font-weight: 500;
|
|
192893
|
+
letter-spacing: -0.01em;
|
|
192894
|
+
padding: 0 8px;
|
|
192895
|
+
}
|
|
192896
|
+
|
|
192897
|
+
.step-body .title {
|
|
192728
192898
|
text-align: center;
|
|
192729
|
-
padding-top:
|
|
192899
|
+
padding-top: 32px;
|
|
192730
192900
|
font-family: 'Geist Sans', sans-serif;
|
|
192731
192901
|
font-size: 24px;
|
|
192732
192902
|
font-weight: 600;
|
|
@@ -192734,9 +192904,92 @@ __publicField(_DeesStepper, "styles", [
|
|
|
192734
192904
|
color: inherit;
|
|
192735
192905
|
}
|
|
192736
192906
|
|
|
192737
|
-
.step .content {
|
|
192907
|
+
.step-body .content {
|
|
192738
192908
|
padding: 32px;
|
|
192739
192909
|
}
|
|
192910
|
+
|
|
192911
|
+
/* --- Footer: modal-style bottom buttons --- */
|
|
192912
|
+
.bottomButtons {
|
|
192913
|
+
display: flex;
|
|
192914
|
+
flex-direction: row;
|
|
192915
|
+
justify-content: flex-end;
|
|
192916
|
+
align-items: center;
|
|
192917
|
+
gap: 0;
|
|
192918
|
+
height: 36px;
|
|
192919
|
+
width: 100%;
|
|
192920
|
+
box-sizing: border-box;
|
|
192921
|
+
}
|
|
192922
|
+
|
|
192923
|
+
.bottomButtons .bottomButton {
|
|
192924
|
+
padding: 0 16px;
|
|
192925
|
+
height: 100%;
|
|
192926
|
+
text-align: center;
|
|
192927
|
+
font-size: 12px;
|
|
192928
|
+
font-weight: 500;
|
|
192929
|
+
cursor: pointer;
|
|
192930
|
+
user-select: none;
|
|
192931
|
+
transition: all 0.15s ease;
|
|
192932
|
+
background: transparent;
|
|
192933
|
+
border: none;
|
|
192934
|
+
border-left: 1px solid var(--dees-color-border-subtle);
|
|
192935
|
+
color: var(--dees-color-text-muted);
|
|
192936
|
+
white-space: nowrap;
|
|
192937
|
+
display: flex;
|
|
192938
|
+
align-items: center;
|
|
192939
|
+
}
|
|
192940
|
+
|
|
192941
|
+
.bottomButtons .bottomButton:first-child {
|
|
192942
|
+
border-left: none;
|
|
192943
|
+
}
|
|
192944
|
+
|
|
192945
|
+
.bottomButtons .bottomButton:hover {
|
|
192946
|
+
background: var(--dees-color-hover);
|
|
192947
|
+
color: var(--dees-color-text-primary);
|
|
192948
|
+
}
|
|
192949
|
+
|
|
192950
|
+
.bottomButtons .bottomButton:active {
|
|
192951
|
+
background: ${cssManager.bdTheme("hsl(0 0% 92%)", "hsl(0 0% 13%)")};
|
|
192952
|
+
}
|
|
192953
|
+
|
|
192954
|
+
.bottomButtons .bottomButton.primary {
|
|
192955
|
+
color: ${cssManager.bdTheme("hsl(217.2 91.2% 59.8%)", "hsl(213.1 93.9% 67.8%)")};
|
|
192956
|
+
font-weight: 600;
|
|
192957
|
+
}
|
|
192958
|
+
|
|
192959
|
+
.bottomButtons .bottomButton.primary:hover {
|
|
192960
|
+
background: ${cssManager.bdTheme("hsl(217.2 91.2% 59.8% / 0.08)", "hsl(213.1 93.9% 67.8% / 0.08)")};
|
|
192961
|
+
color: ${cssManager.bdTheme("hsl(217.2 91.2% 50%)", "hsl(213.1 93.9% 75%)")};
|
|
192962
|
+
}
|
|
192963
|
+
|
|
192964
|
+
.bottomButtons .bottomButton.primary:active {
|
|
192965
|
+
background: ${cssManager.bdTheme("hsl(217.2 91.2% 59.8% / 0.12)", "hsl(213.1 93.9% 67.8% / 0.12)")};
|
|
192966
|
+
}
|
|
192967
|
+
|
|
192968
|
+
.bottomButtons .bottomButton.disabled {
|
|
192969
|
+
pointer-events: none;
|
|
192970
|
+
opacity: 0.4;
|
|
192971
|
+
cursor: not-allowed;
|
|
192972
|
+
}
|
|
192973
|
+
|
|
192974
|
+
.bottomButtons .bottomButton.disabled:hover {
|
|
192975
|
+
background: transparent;
|
|
192976
|
+
color: var(--dees-color-text-muted);
|
|
192977
|
+
}
|
|
192978
|
+
|
|
192979
|
+
/* Hint shown on the left of the footer when the active step's form has
|
|
192980
|
+
unfilled required fields. Uses margin-right: auto to push right-aligned
|
|
192981
|
+
buttons to the right while keeping the hint flush-left. */
|
|
192982
|
+
.bottomButtons .stepHint {
|
|
192983
|
+
margin-right: auto;
|
|
192984
|
+
padding: 0 16px;
|
|
192985
|
+
font-size: 11px;
|
|
192986
|
+
line-height: 1;
|
|
192987
|
+
letter-spacing: -0.01em;
|
|
192988
|
+
color: var(--dees-color-text-muted);
|
|
192989
|
+
display: flex;
|
|
192990
|
+
align-items: center;
|
|
192991
|
+
user-select: none;
|
|
192992
|
+
}
|
|
192740
192993
|
`
|
|
192741
192994
|
]);
|
|
192742
192995
|
__runInitializers(_init82, 1, _DeesStepper);
|