aw-wizard-forms 4.10.0 → 4.12.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.
@@ -1317,6 +1317,9 @@ class KeyboardController {
1317
1317
  if (isTextarea && this._config.blockEnterOnTextarea) {
1318
1318
  return;
1319
1319
  }
1320
+ if (activeElement?.tagName === "BUTTON") {
1321
+ return;
1322
+ }
1320
1323
  if (this._config.onEnter) {
1321
1324
  e2.preventDefault();
1322
1325
  this._config.onEnter();
@@ -1442,14 +1445,14 @@ const wfBadgeStyles = i$3`
1442
1445
  color: var(--wf-color-text-muted);
1443
1446
  }
1444
1447
  `;
1445
- var __defProp$f = Object.defineProperty;
1446
- var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
1447
- var __decorateClass$f = (decorators, target, key, kind) => {
1448
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
1448
+ var __defProp$h = Object.defineProperty;
1449
+ var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
1450
+ var __decorateClass$h = (decorators, target, key, kind) => {
1451
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
1449
1452
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
1450
1453
  if (decorator = decorators[i2])
1451
1454
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1452
- if (kind && result) __defProp$f(target, key, result);
1455
+ if (kind && result) __defProp$h(target, key, result);
1453
1456
  return result;
1454
1457
  };
1455
1458
  let WfBadge = class extends i {
@@ -1471,23 +1474,23 @@ let WfBadge = class extends i {
1471
1474
  }
1472
1475
  };
1473
1476
  WfBadge.styles = wfBadgeStyles;
1474
- __decorateClass$f([
1477
+ __decorateClass$h([
1475
1478
  n2({ type: String })
1476
1479
  ], WfBadge.prototype, "shortcut", 2);
1477
- __decorateClass$f([
1480
+ __decorateClass$h([
1478
1481
  n2({ type: String })
1479
1482
  ], WfBadge.prototype, "variant", 2);
1480
- WfBadge = __decorateClass$f([
1483
+ WfBadge = __decorateClass$h([
1481
1484
  t("wf-badge")
1482
1485
  ], WfBadge);
1483
- var __defProp$e = Object.defineProperty;
1484
- var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
1485
- var __decorateClass$e = (decorators, target, key, kind) => {
1486
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
1486
+ var __defProp$g = Object.defineProperty;
1487
+ var __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;
1488
+ var __decorateClass$g = (decorators, target, key, kind) => {
1489
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;
1487
1490
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
1488
1491
  if (decorator = decorators[i2])
1489
1492
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
1490
- if (kind && result) __defProp$e(target, key, result);
1493
+ if (kind && result) __defProp$g(target, key, result);
1491
1494
  return result;
1492
1495
  };
1493
1496
  let WizardForm = class extends i {
@@ -1560,6 +1563,17 @@ let WizardForm = class extends i {
1560
1563
  e2.stopPropagation();
1561
1564
  this._goBack();
1562
1565
  };
1566
+ this._handleNavSkip = (e2) => {
1567
+ e2.stopPropagation();
1568
+ if (this._submitting) {
1569
+ return;
1570
+ }
1571
+ if (this._currentStep >= this._totalSteps) {
1572
+ this._submit();
1573
+ } else {
1574
+ this._navigateToStep(this._currentStep + 1, "forward");
1575
+ }
1576
+ };
1563
1577
  this._handleNavStateRequest = () => {
1564
1578
  this._broadcastNavState();
1565
1579
  };
@@ -1577,6 +1591,7 @@ let WizardForm = class extends i {
1577
1591
  this.addEventListener("wf-option-select", this._handleOptionSelect);
1578
1592
  this.addEventListener("wf:nav-next", this._handleNavNext);
1579
1593
  this.addEventListener("wf:nav-back", this._handleNavBack);
1594
+ this.addEventListener("wf:nav-skip", this._handleNavSkip);
1580
1595
  this.addEventListener("wf:nav-state-request", this._handleNavStateRequest);
1581
1596
  }
1582
1597
  disconnectedCallback() {
@@ -1585,6 +1600,7 @@ let WizardForm = class extends i {
1585
1600
  this.removeEventListener("wf-option-select", this._handleOptionSelect);
1586
1601
  this.removeEventListener("wf:nav-next", this._handleNavNext);
1587
1602
  this.removeEventListener("wf:nav-back", this._handleNavBack);
1603
+ this.removeEventListener("wf:nav-skip", this._handleNavSkip);
1588
1604
  this.removeEventListener("wf:nav-state-request", this._handleNavStateRequest);
1589
1605
  }
1590
1606
  firstUpdated() {
@@ -2072,58 +2088,58 @@ let WizardForm = class extends i {
2072
2088
  }
2073
2089
  };
2074
2090
  WizardForm.styles = wizardFormStyles;
2075
- __decorateClass$e([
2091
+ __decorateClass$g([
2076
2092
  n2({ type: String, attribute: "hubspot-portal" })
2077
2093
  ], WizardForm.prototype, "hubspotPortal", 2);
2078
- __decorateClass$e([
2094
+ __decorateClass$g([
2079
2095
  n2({ type: String, attribute: "hubspot-form" })
2080
2096
  ], WizardForm.prototype, "hubspotForm", 2);
2081
- __decorateClass$e([
2097
+ __decorateClass$g([
2082
2098
  n2({ type: String, reflect: true })
2083
2099
  ], WizardForm.prototype, "theme", 2);
2084
- __decorateClass$e([
2100
+ __decorateClass$g([
2085
2101
  n2({ type: Boolean })
2086
2102
  ], WizardForm.prototype, "mock", 2);
2087
- __decorateClass$e([
2103
+ __decorateClass$g([
2088
2104
  n2({ type: Boolean, attribute: "show-progress" })
2089
2105
  ], WizardForm.prototype, "showProgress", 2);
2090
- __decorateClass$e([
2106
+ __decorateClass$g([
2091
2107
  n2({ type: Boolean, attribute: "auto-advance" })
2092
2108
  ], WizardForm.prototype, "autoAdvance", 2);
2093
- __decorateClass$e([
2109
+ __decorateClass$g([
2094
2110
  n2({ type: Boolean, attribute: "hide-back" })
2095
2111
  ], WizardForm.prototype, "hideBack", 2);
2096
- __decorateClass$e([
2112
+ __decorateClass$g([
2097
2113
  n2({ attribute: false })
2098
2114
  ], WizardForm.prototype, "serialize", 2);
2099
- __decorateClass$e([
2115
+ __decorateClass$g([
2100
2116
  n2({ type: Boolean, attribute: "submit-on-step" })
2101
2117
  ], WizardForm.prototype, "submitOnStep", 2);
2102
- __decorateClass$e([
2118
+ __decorateClass$g([
2103
2119
  r()
2104
2120
  ], WizardForm.prototype, "_steps", 2);
2105
- __decorateClass$e([
2121
+ __decorateClass$g([
2106
2122
  r()
2107
2123
  ], WizardForm.prototype, "_currentStep", 2);
2108
- __decorateClass$e([
2124
+ __decorateClass$g([
2109
2125
  r()
2110
2126
  ], WizardForm.prototype, "_totalSteps", 2);
2111
- __decorateClass$e([
2127
+ __decorateClass$g([
2112
2128
  r()
2113
2129
  ], WizardForm.prototype, "_formData", 2);
2114
- __decorateClass$e([
2130
+ __decorateClass$g([
2115
2131
  r()
2116
2132
  ], WizardForm.prototype, "_submitting", 2);
2117
- __decorateClass$e([
2133
+ __decorateClass$g([
2118
2134
  n2({ type: Boolean, reflect: true })
2119
2135
  ], WizardForm.prototype, "submitted", 2);
2120
- __decorateClass$e([
2136
+ __decorateClass$g([
2121
2137
  r()
2122
2138
  ], WizardForm.prototype, "_error", 2);
2123
- __decorateClass$e([
2139
+ __decorateClass$g([
2124
2140
  r()
2125
2141
  ], WizardForm.prototype, "_otherInputActive", 2);
2126
- WizardForm = __decorateClass$e([
2142
+ WizardForm = __decorateClass$g([
2127
2143
  t("wizard-form")
2128
2144
  ], WizardForm);
2129
2145
  let WfSuccess = class extends i {
@@ -2140,7 +2156,7 @@ WfSuccess.styles = i$3`
2140
2156
  display: none;
2141
2157
  }
2142
2158
  `;
2143
- WfSuccess = __decorateClass$e([
2159
+ WfSuccess = __decorateClass$g([
2144
2160
  t("wf-success")
2145
2161
  ], WfSuccess);
2146
2162
  const wfStepStyles = [
@@ -2199,14 +2215,14 @@ const wfStepStyles = [
2199
2215
  }
2200
2216
  `
2201
2217
  ];
2202
- var __defProp$d = Object.defineProperty;
2203
- var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
2204
- var __decorateClass$d = (decorators, target, key, kind) => {
2205
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
2218
+ var __defProp$f = Object.defineProperty;
2219
+ var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
2220
+ var __decorateClass$f = (decorators, target, key, kind) => {
2221
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
2206
2222
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
2207
2223
  if (decorator = decorators[i2])
2208
2224
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2209
- if (kind && result) __defProp$d(target, key, result);
2225
+ if (kind && result) __defProp$f(target, key, result);
2210
2226
  return result;
2211
2227
  };
2212
2228
  let WfStep = class extends i {
@@ -2241,7 +2257,7 @@ let WfStep = class extends i {
2241
2257
  * Discover field elements within this step
2242
2258
  */
2243
2259
  _discoverFields() {
2244
- const fieldElements = ["wf-options", "wf-field", "wf-email", "wf-input", "wf-textarea", "wf-number"];
2260
+ const fieldElements = ["wf-options", "wf-field", "wf-email", "wf-input", "wf-textarea", "wf-number", "wf-select"];
2245
2261
  const fields = [];
2246
2262
  const findFields = (el) => {
2247
2263
  if (fieldElements.includes(el.tagName.toLowerCase())) {
@@ -2271,7 +2287,7 @@ let WfStep = class extends i {
2271
2287
  }
2272
2288
  _findFocusable(el) {
2273
2289
  if (el instanceof HTMLElement && typeof el.focus === "function") {
2274
- const fieldElements = ["wf-field", "wf-email", "wf-input", "wf-textarea"];
2290
+ const fieldElements = ["wf-field", "wf-email", "wf-input", "wf-textarea", "wf-select"];
2275
2291
  if (fieldElements.includes(el.tagName.toLowerCase())) {
2276
2292
  return el;
2277
2293
  }
@@ -2392,25 +2408,25 @@ let WfStep = class extends i {
2392
2408
  }
2393
2409
  };
2394
2410
  WfStep.styles = wfStepStyles;
2395
- __decorateClass$d([
2411
+ __decorateClass$f([
2396
2412
  n2({ type: Number, attribute: "data-step" })
2397
2413
  ], WfStep.prototype, "step", 2);
2398
- __decorateClass$d([
2414
+ __decorateClass$f([
2399
2415
  n2({ type: Boolean, reflect: true })
2400
2416
  ], WfStep.prototype, "active", 2);
2401
- __decorateClass$d([
2417
+ __decorateClass$f([
2402
2418
  n2({ type: String, reflect: true })
2403
2419
  ], WfStep.prototype, "direction", 2);
2404
- __decorateClass$d([
2420
+ __decorateClass$f([
2405
2421
  n2({ type: Boolean, reflect: true })
2406
2422
  ], WfStep.prototype, "leaving", 2);
2407
- __decorateClass$d([
2423
+ __decorateClass$f([
2408
2424
  n2({ type: String, attribute: "data-skip-if" })
2409
2425
  ], WfStep.prototype, "skipIf", 2);
2410
- __decorateClass$d([
2426
+ __decorateClass$f([
2411
2427
  r()
2412
2428
  ], WfStep.prototype, "_fields", 2);
2413
- WfStep = __decorateClass$d([
2429
+ WfStep = __decorateClass$f([
2414
2430
  t("wf-step")
2415
2431
  ], WfStep);
2416
2432
  const wfLayoutStyles = i$3`
@@ -2436,14 +2452,14 @@ const wfLayoutStyles = i$3`
2436
2452
  width: fit-content;
2437
2453
  }
2438
2454
  `;
2439
- var __defProp$c = Object.defineProperty;
2440
- var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
2441
- var __decorateClass$c = (decorators, target, key, kind) => {
2442
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
2455
+ var __defProp$e = Object.defineProperty;
2456
+ var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
2457
+ var __decorateClass$e = (decorators, target, key, kind) => {
2458
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
2443
2459
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
2444
2460
  if (decorator = decorators[i2])
2445
2461
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2446
- if (kind && result) __defProp$c(target, key, result);
2462
+ if (kind && result) __defProp$e(target, key, result);
2447
2463
  return result;
2448
2464
  };
2449
2465
  const SPACING_SCALE = {
@@ -2617,52 +2633,52 @@ let WfLayout = class extends i {
2617
2633
  }
2618
2634
  };
2619
2635
  WfLayout.styles = wfLayoutStyles;
2620
- __decorateClass$c([
2636
+ __decorateClass$e([
2621
2637
  n2({ type: String })
2622
2638
  ], WfLayout.prototype, "mode", 2);
2623
- __decorateClass$c([
2639
+ __decorateClass$e([
2624
2640
  n2({ type: String })
2625
2641
  ], WfLayout.prototype, "direction", 2);
2626
- __decorateClass$c([
2642
+ __decorateClass$e([
2627
2643
  n2({ type: String })
2628
2644
  ], WfLayout.prototype, "gap", 2);
2629
- __decorateClass$c([
2645
+ __decorateClass$e([
2630
2646
  n2({ type: String, attribute: "gap-x" })
2631
2647
  ], WfLayout.prototype, "gapX", 2);
2632
- __decorateClass$c([
2648
+ __decorateClass$e([
2633
2649
  n2({ type: String, attribute: "gap-y" })
2634
2650
  ], WfLayout.prototype, "gapY", 2);
2635
- __decorateClass$c([
2651
+ __decorateClass$e([
2636
2652
  n2({ type: String })
2637
2653
  ], WfLayout.prototype, "align", 2);
2638
- __decorateClass$c([
2654
+ __decorateClass$e([
2639
2655
  n2({ type: String })
2640
2656
  ], WfLayout.prototype, "justify", 2);
2641
- __decorateClass$c([
2657
+ __decorateClass$e([
2642
2658
  n2({ type: String })
2643
2659
  ], WfLayout.prototype, "padding", 2);
2644
- __decorateClass$c([
2660
+ __decorateClass$e([
2645
2661
  n2({ type: String, attribute: "padding-x" })
2646
2662
  ], WfLayout.prototype, "paddingX", 2);
2647
- __decorateClass$c([
2663
+ __decorateClass$e([
2648
2664
  n2({ type: String, attribute: "padding-y" })
2649
2665
  ], WfLayout.prototype, "paddingY", 2);
2650
- __decorateClass$c([
2666
+ __decorateClass$e([
2651
2667
  n2({ type: Boolean })
2652
2668
  ], WfLayout.prototype, "wrap", 2);
2653
- __decorateClass$c([
2669
+ __decorateClass$e([
2654
2670
  n2({ type: String })
2655
2671
  ], WfLayout.prototype, "width", 2);
2656
- __decorateClass$c([
2672
+ __decorateClass$e([
2657
2673
  n2({ type: String })
2658
2674
  ], WfLayout.prototype, "columns", 2);
2659
- __decorateClass$c([
2675
+ __decorateClass$e([
2660
2676
  n2({ type: String, attribute: "min-item-width" })
2661
2677
  ], WfLayout.prototype, "minItemWidth", 2);
2662
- __decorateClass$c([
2678
+ __decorateClass$e([
2663
2679
  e("slot")
2664
2680
  ], WfLayout.prototype, "_slot", 2);
2665
- WfLayout = __decorateClass$c([
2681
+ WfLayout = __decorateClass$e([
2666
2682
  t("wf-layout")
2667
2683
  ], WfLayout);
2668
2684
  const wfOptionsStyles = i$3`
@@ -2810,14 +2826,14 @@ const wfOtherStyles = i$3`
2810
2826
  width: auto;
2811
2827
  }
2812
2828
  `;
2813
- var __defProp$b = Object.defineProperty;
2814
- var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
2815
- var __decorateClass$b = (decorators, target, key, kind) => {
2816
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
2829
+ var __defProp$d = Object.defineProperty;
2830
+ var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
2831
+ var __decorateClass$d = (decorators, target, key, kind) => {
2832
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
2817
2833
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
2818
2834
  if (decorator = decorators[i2])
2819
2835
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2820
- if (kind && result) __defProp$b(target, key, result);
2836
+ if (kind && result) __defProp$d(target, key, result);
2821
2837
  return result;
2822
2838
  };
2823
2839
  let WfOther = class extends i {
@@ -2910,44 +2926,44 @@ let WfOther = class extends i {
2910
2926
  }
2911
2927
  };
2912
2928
  WfOther.styles = wfOtherStyles;
2913
- __decorateClass$b([
2929
+ __decorateClass$d([
2914
2930
  n2({ type: String })
2915
2931
  ], WfOther.prototype, "label", 2);
2916
- __decorateClass$b([
2932
+ __decorateClass$d([
2917
2933
  n2({ type: String, attribute: "label-hint" })
2918
2934
  ], WfOther.prototype, "labelHint", 2);
2919
- __decorateClass$b([
2935
+ __decorateClass$d([
2920
2936
  n2({ type: String })
2921
2937
  ], WfOther.prototype, "placeholder", 2);
2922
- __decorateClass$b([
2938
+ __decorateClass$d([
2923
2939
  n2({ type: String })
2924
2940
  ], WfOther.prototype, "name", 2);
2925
- __decorateClass$b([
2941
+ __decorateClass$d([
2926
2942
  n2({ type: String, attribute: "parent-value" })
2927
2943
  ], WfOther.prototype, "parentValue", 2);
2928
- __decorateClass$b([
2944
+ __decorateClass$d([
2929
2945
  n2({ type: Boolean })
2930
2946
  ], WfOther.prototype, "required", 2);
2931
- __decorateClass$b([
2947
+ __decorateClass$d([
2932
2948
  n2({ type: Boolean })
2933
2949
  ], WfOther.prototype, "disabled", 2);
2934
- __decorateClass$b([
2950
+ __decorateClass$d([
2935
2951
  n2({ type: String })
2936
2952
  ], WfOther.prototype, "shortcut", 2);
2937
- __decorateClass$b([
2953
+ __decorateClass$d([
2938
2954
  r()
2939
2955
  ], WfOther.prototype, "_value", 2);
2940
- WfOther = __decorateClass$b([
2956
+ WfOther = __decorateClass$d([
2941
2957
  t("wf-other")
2942
2958
  ], WfOther);
2943
- var __defProp$a = Object.defineProperty;
2944
- var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
2945
- var __decorateClass$a = (decorators, target, key, kind) => {
2946
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
2959
+ var __defProp$c = Object.defineProperty;
2960
+ var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
2961
+ var __decorateClass$c = (decorators, target, key, kind) => {
2962
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
2947
2963
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
2948
2964
  if (decorator = decorators[i2])
2949
2965
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
2950
- if (kind && result) __defProp$a(target, key, result);
2966
+ if (kind && result) __defProp$c(target, key, result);
2951
2967
  return result;
2952
2968
  };
2953
2969
  let WfOptions = class extends WfLayout {
@@ -3322,43 +3338,43 @@ let WfOptions = class extends WfLayout {
3322
3338
  }
3323
3339
  };
3324
3340
  WfOptions.styles = [WfLayout.styles, wfOptionsStyles];
3325
- __decorateClass$a([
3341
+ __decorateClass$c([
3326
3342
  e("slot:not([name])")
3327
3343
  ], WfOptions.prototype, "_defaultSlot", 2);
3328
- __decorateClass$a([
3344
+ __decorateClass$c([
3329
3345
  n2({ type: String })
3330
3346
  ], WfOptions.prototype, "mode", 2);
3331
- __decorateClass$a([
3347
+ __decorateClass$c([
3332
3348
  n2({ type: String })
3333
3349
  ], WfOptions.prototype, "gap", 2);
3334
- __decorateClass$a([
3350
+ __decorateClass$c([
3335
3351
  n2({ type: String })
3336
3352
  ], WfOptions.prototype, "name", 2);
3337
- __decorateClass$a([
3353
+ __decorateClass$c([
3338
3354
  n2({ type: Boolean })
3339
3355
  ], WfOptions.prototype, "multi", 2);
3340
- __decorateClass$a([
3356
+ __decorateClass$c([
3341
3357
  n2({ type: Boolean })
3342
3358
  ], WfOptions.prototype, "required", 2);
3343
- __decorateClass$a([
3359
+ __decorateClass$c([
3344
3360
  n2({ type: Number })
3345
3361
  ], WfOptions.prototype, "min", 2);
3346
- __decorateClass$a([
3362
+ __decorateClass$c([
3347
3363
  n2({ type: Number })
3348
3364
  ], WfOptions.prototype, "max", 2);
3349
- __decorateClass$a([
3365
+ __decorateClass$c([
3350
3366
  n2({ type: String, reflect: true })
3351
3367
  ], WfOptions.prototype, "columns", 2);
3352
- __decorateClass$a([
3368
+ __decorateClass$c([
3353
3369
  r()
3354
3370
  ], WfOptions.prototype, "_selected", 2);
3355
- __decorateClass$a([
3371
+ __decorateClass$c([
3356
3372
  r()
3357
3373
  ], WfOptions.prototype, "_otherValue", 2);
3358
- __decorateClass$a([
3374
+ __decorateClass$c([
3359
3375
  r()
3360
3376
  ], WfOptions.prototype, "_errorMessage", 2);
3361
- WfOptions = __decorateClass$a([
3377
+ WfOptions = __decorateClass$c([
3362
3378
  t("wf-options")
3363
3379
  ], WfOptions);
3364
3380
  const wfOptionStyles = i$3`
@@ -3453,14 +3469,14 @@ const wfOptionStyles = i$3`
3453
3469
  margin: var(--wf-spacing-1) 0 0 0;
3454
3470
  }
3455
3471
  `;
3456
- var __defProp$9 = Object.defineProperty;
3457
- var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
3458
- var __decorateClass$9 = (decorators, target, key, kind) => {
3459
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
3472
+ var __defProp$b = Object.defineProperty;
3473
+ var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
3474
+ var __decorateClass$b = (decorators, target, key, kind) => {
3475
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
3460
3476
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
3461
3477
  if (decorator = decorators[i2])
3462
3478
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
3463
- if (kind && result) __defProp$9(target, key, result);
3479
+ if (kind && result) __defProp$b(target, key, result);
3464
3480
  return result;
3465
3481
  };
3466
3482
  let WfOption = class extends i {
@@ -3540,22 +3556,22 @@ let WfOption = class extends i {
3540
3556
  }
3541
3557
  };
3542
3558
  WfOption.styles = wfOptionStyles;
3543
- __decorateClass$9([
3559
+ __decorateClass$b([
3544
3560
  n2({ type: String })
3545
3561
  ], WfOption.prototype, "value", 2);
3546
- __decorateClass$9([
3562
+ __decorateClass$b([
3547
3563
  n2({ type: Boolean, reflect: true })
3548
3564
  ], WfOption.prototype, "selected", 2);
3549
- __decorateClass$9([
3565
+ __decorateClass$b([
3550
3566
  n2({ type: Boolean, reflect: true })
3551
3567
  ], WfOption.prototype, "disabled", 2);
3552
- __decorateClass$9([
3568
+ __decorateClass$b([
3553
3569
  n2({ type: String })
3554
3570
  ], WfOption.prototype, "shortcut", 2);
3555
- __decorateClass$9([
3571
+ __decorateClass$b([
3556
3572
  r()
3557
3573
  ], WfOption.prototype, "_selecting", 2);
3558
- WfOption = __decorateClass$9([
3574
+ WfOption = __decorateClass$b([
3559
3575
  t("wf-option")
3560
3576
  ], WfOption);
3561
3577
  const formInputBaseStyles = i$3`
@@ -3727,13 +3743,13 @@ const formInputBaseStyles = i$3`
3727
3743
  -moz-appearance: textfield;
3728
3744
  }
3729
3745
  `;
3730
- var __defProp$8 = Object.defineProperty;
3731
- var __decorateClass$8 = (decorators, target, key, kind) => {
3746
+ var __defProp$a = Object.defineProperty;
3747
+ var __decorateClass$a = (decorators, target, key, kind) => {
3732
3748
  var result = void 0;
3733
3749
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
3734
3750
  if (decorator = decorators[i2])
3735
3751
  result = decorator(target, key, result) || result;
3736
- if (result) __defProp$8(target, key, result);
3752
+ if (result) __defProp$a(target, key, result);
3737
3753
  return result;
3738
3754
  };
3739
3755
  const DEFAULT_DEBOUNCE_MS = 600;
@@ -3951,22 +3967,22 @@ const _FormInputBase = class _FormInputBase extends i {
3951
3967
  };
3952
3968
  _FormInputBase.styles = formInputBaseStyles;
3953
3969
  let FormInputBase = _FormInputBase;
3954
- __decorateClass$8([
3970
+ __decorateClass$a([
3955
3971
  n2({ type: String })
3956
3972
  ], FormInputBase.prototype, "name");
3957
- __decorateClass$8([
3973
+ __decorateClass$a([
3958
3974
  n2({ type: String })
3959
3975
  ], FormInputBase.prototype, "label");
3960
- __decorateClass$8([
3976
+ __decorateClass$a([
3961
3977
  n2({ type: Boolean })
3962
3978
  ], FormInputBase.prototype, "required");
3963
- __decorateClass$8([
3979
+ __decorateClass$a([
3964
3980
  n2({ type: String })
3965
3981
  ], FormInputBase.prototype, "hint");
3966
- __decorateClass$8([
3982
+ __decorateClass$a([
3967
3983
  r()
3968
3984
  ], FormInputBase.prototype, "_errorMessage");
3969
- __decorateClass$8([
3985
+ __decorateClass$a([
3970
3986
  r()
3971
3987
  ], FormInputBase.prototype, "_value");
3972
3988
  const DEFAULT_BLOCKED_DOMAINS = [
@@ -4204,14 +4220,14 @@ class ValidationController {
4204
4220
  };
4205
4221
  }
4206
4222
  }
4207
- var __defProp$7 = Object.defineProperty;
4208
- var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
4209
- var __decorateClass$7 = (decorators, target, key, kind) => {
4210
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
4223
+ var __defProp$9 = Object.defineProperty;
4224
+ var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
4225
+ var __decorateClass$9 = (decorators, target, key, kind) => {
4226
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
4211
4227
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
4212
4228
  if (decorator = decorators[i2])
4213
4229
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4214
- if (kind && result) __defProp$7(target, key, result);
4230
+ if (kind && result) __defProp$9(target, key, result);
4215
4231
  return result;
4216
4232
  };
4217
4233
  let WfEmail = class extends FormInputBase {
@@ -4278,32 +4294,32 @@ let WfEmail = class extends FormInputBase {
4278
4294
  `;
4279
4295
  }
4280
4296
  };
4281
- __decorateClass$7([
4297
+ __decorateClass$9([
4282
4298
  n2({ type: String })
4283
4299
  ], WfEmail.prototype, "placeholder", 2);
4284
- __decorateClass$7([
4300
+ __decorateClass$9([
4285
4301
  n2({ type: Boolean, attribute: "work-email" })
4286
4302
  ], WfEmail.prototype, "workEmail", 2);
4287
- __decorateClass$7([
4303
+ __decorateClass$9([
4288
4304
  n2({ type: String, attribute: "blocked-domains" })
4289
4305
  ], WfEmail.prototype, "blockedDomains", 2);
4290
- __decorateClass$7([
4306
+ __decorateClass$9([
4291
4307
  n2({ type: String, attribute: "work-email-message" })
4292
4308
  ], WfEmail.prototype, "workEmailMessage", 2);
4293
- __decorateClass$7([
4309
+ __decorateClass$9([
4294
4310
  n2({ type: Boolean })
4295
4311
  ], WfEmail.prototype, "disabled", 2);
4296
- WfEmail = __decorateClass$7([
4312
+ WfEmail = __decorateClass$9([
4297
4313
  t("wf-email")
4298
4314
  ], WfEmail);
4299
- var __defProp$6 = Object.defineProperty;
4300
- var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
4301
- var __decorateClass$6 = (decorators, target, key, kind) => {
4302
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
4315
+ var __defProp$8 = Object.defineProperty;
4316
+ var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
4317
+ var __decorateClass$8 = (decorators, target, key, kind) => {
4318
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
4303
4319
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
4304
4320
  if (decorator = decorators[i2])
4305
4321
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4306
- if (kind && result) __defProp$6(target, key, result);
4322
+ if (kind && result) __defProp$8(target, key, result);
4307
4323
  return result;
4308
4324
  };
4309
4325
  let WfInput = class extends FormInputBase {
@@ -4366,41 +4382,41 @@ let WfInput = class extends FormInputBase {
4366
4382
  `;
4367
4383
  }
4368
4384
  };
4369
- __decorateClass$6([
4385
+ __decorateClass$8([
4370
4386
  n2({ type: String })
4371
4387
  ], WfInput.prototype, "placeholder", 2);
4372
- __decorateClass$6([
4388
+ __decorateClass$8([
4373
4389
  n2({ type: String })
4374
4390
  ], WfInput.prototype, "type", 2);
4375
- __decorateClass$6([
4391
+ __decorateClass$8([
4376
4392
  n2({ type: Number })
4377
4393
  ], WfInput.prototype, "minlength", 2);
4378
- __decorateClass$6([
4394
+ __decorateClass$8([
4379
4395
  n2({ type: Number })
4380
4396
  ], WfInput.prototype, "maxlength", 2);
4381
- __decorateClass$6([
4397
+ __decorateClass$8([
4382
4398
  n2({ type: String })
4383
4399
  ], WfInput.prototype, "pattern", 2);
4384
- __decorateClass$6([
4400
+ __decorateClass$8([
4385
4401
  n2({ type: String, attribute: "pattern-message" })
4386
4402
  ], WfInput.prototype, "patternMessage", 2);
4387
- __decorateClass$6([
4403
+ __decorateClass$8([
4388
4404
  n2({ type: Boolean })
4389
4405
  ], WfInput.prototype, "disabled", 2);
4390
- __decorateClass$6([
4406
+ __decorateClass$8([
4391
4407
  n2({ type: String })
4392
4408
  ], WfInput.prototype, "autocomplete", 2);
4393
- WfInput = __decorateClass$6([
4409
+ WfInput = __decorateClass$8([
4394
4410
  t("wf-input")
4395
4411
  ], WfInput);
4396
- var __defProp$5 = Object.defineProperty;
4397
- var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
4398
- var __decorateClass$5 = (decorators, target, key, kind) => {
4399
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
4412
+ var __defProp$7 = Object.defineProperty;
4413
+ var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
4414
+ var __decorateClass$7 = (decorators, target, key, kind) => {
4415
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
4400
4416
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
4401
4417
  if (decorator = decorators[i2])
4402
4418
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4403
- if (kind && result) __defProp$5(target, key, result);
4419
+ if (kind && result) __defProp$7(target, key, result);
4404
4420
  return result;
4405
4421
  };
4406
4422
  let WfNumber = class extends WfInput {
@@ -4478,26 +4494,26 @@ let WfNumber = class extends WfInput {
4478
4494
  this._value = String(val);
4479
4495
  }
4480
4496
  };
4481
- __decorateClass$5([
4497
+ __decorateClass$7([
4482
4498
  n2({ type: Number })
4483
4499
  ], WfNumber.prototype, "min", 2);
4484
- __decorateClass$5([
4500
+ __decorateClass$7([
4485
4501
  n2({ type: Number })
4486
4502
  ], WfNumber.prototype, "max", 2);
4487
- __decorateClass$5([
4503
+ __decorateClass$7([
4488
4504
  n2({ type: Number })
4489
4505
  ], WfNumber.prototype, "step", 2);
4490
- WfNumber = __decorateClass$5([
4506
+ WfNumber = __decorateClass$7([
4491
4507
  t("wf-number")
4492
4508
  ], WfNumber);
4493
- var __defProp$4 = Object.defineProperty;
4494
- var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
4495
- var __decorateClass$4 = (decorators, target, key, kind) => {
4496
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
4509
+ var __defProp$6 = Object.defineProperty;
4510
+ var __getOwnPropDesc$5 = Object.getOwnPropertyDescriptor;
4511
+ var __decorateClass$6 = (decorators, target, key, kind) => {
4512
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$5(target, key) : target;
4497
4513
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
4498
4514
  if (decorator = decorators[i2])
4499
4515
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4500
- if (kind && result) __defProp$4(target, key, result);
4516
+ if (kind && result) __defProp$6(target, key, result);
4501
4517
  return result;
4502
4518
  };
4503
4519
  let WfTextarea = class extends FormInputBase {
@@ -4568,25 +4584,25 @@ let WfTextarea = class extends FormInputBase {
4568
4584
  `;
4569
4585
  }
4570
4586
  };
4571
- __decorateClass$4([
4587
+ __decorateClass$6([
4572
4588
  n2({ type: String })
4573
4589
  ], WfTextarea.prototype, "placeholder", 2);
4574
- __decorateClass$4([
4590
+ __decorateClass$6([
4575
4591
  n2({ type: Number })
4576
4592
  ], WfTextarea.prototype, "rows", 2);
4577
- __decorateClass$4([
4593
+ __decorateClass$6([
4578
4594
  n2({ type: Number })
4579
4595
  ], WfTextarea.prototype, "minlength", 2);
4580
- __decorateClass$4([
4596
+ __decorateClass$6([
4581
4597
  n2({ type: Number })
4582
4598
  ], WfTextarea.prototype, "maxlength", 2);
4583
- __decorateClass$4([
4599
+ __decorateClass$6([
4584
4600
  n2({ type: Boolean })
4585
4601
  ], WfTextarea.prototype, "disabled", 2);
4586
- __decorateClass$4([
4602
+ __decorateClass$6([
4587
4603
  n2({ type: Boolean, attribute: "show-count" })
4588
4604
  ], WfTextarea.prototype, "showCount", 2);
4589
- WfTextarea = __decorateClass$4([
4605
+ WfTextarea = __decorateClass$6([
4590
4606
  t("wf-textarea")
4591
4607
  ], WfTextarea);
4592
4608
  function init(config) {
@@ -4824,14 +4840,14 @@ const wfProgressStyles = [
4824
4840
  }
4825
4841
  `
4826
4842
  ];
4827
- var __defProp$3 = Object.defineProperty;
4828
- var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
4829
- var __decorateClass$3 = (decorators, target, key, kind) => {
4830
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
4843
+ var __defProp$5 = Object.defineProperty;
4844
+ var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
4845
+ var __decorateClass$5 = (decorators, target, key, kind) => {
4846
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$4(target, key) : target;
4831
4847
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
4832
4848
  if (decorator = decorators[i2])
4833
4849
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
4834
- if (kind && result) __defProp$3(target, key, result);
4850
+ if (kind && result) __defProp$5(target, key, result);
4835
4851
  return result;
4836
4852
  };
4837
4853
  let WfProgress = class extends i {
@@ -4934,28 +4950,28 @@ let WfProgress = class extends i {
4934
4950
  }
4935
4951
  };
4936
4952
  WfProgress.styles = wfProgressStyles;
4937
- __decorateClass$3([
4953
+ __decorateClass$5([
4938
4954
  n2({ type: String })
4939
4955
  ], WfProgress.prototype, "for", 2);
4940
- __decorateClass$3([
4956
+ __decorateClass$5([
4941
4957
  r()
4942
4958
  ], WfProgress.prototype, "_currentStep", 2);
4943
- __decorateClass$3([
4959
+ __decorateClass$5([
4944
4960
  r()
4945
4961
  ], WfProgress.prototype, "_totalSteps", 2);
4946
- __decorateClass$3([
4962
+ __decorateClass$5([
4947
4963
  r()
4948
4964
  ], WfProgress.prototype, "_isComplete", 2);
4949
- WfProgress = __decorateClass$3([
4965
+ WfProgress = __decorateClass$5([
4950
4966
  t("wf-progress")
4951
4967
  ], WfProgress);
4952
- var __defProp$2 = Object.defineProperty;
4953
- var __decorateClass$2 = (decorators, target, key, kind) => {
4968
+ var __defProp$4 = Object.defineProperty;
4969
+ var __decorateClass$4 = (decorators, target, key, kind) => {
4954
4970
  var result = void 0;
4955
4971
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
4956
4972
  if (decorator = decorators[i2])
4957
4973
  result = decorator(target, key, result) || result;
4958
- if (result) __defProp$2(target, key, result);
4974
+ if (result) __defProp$4(target, key, result);
4959
4975
  return result;
4960
4976
  };
4961
4977
  class NavigationButtonBase extends i {
@@ -5008,13 +5024,13 @@ class NavigationButtonBase extends i {
5008
5024
  );
5009
5025
  }
5010
5026
  }
5011
- __decorateClass$2([
5027
+ __decorateClass$4([
5012
5028
  r()
5013
5029
  ], NavigationButtonBase.prototype, "_isFirstStep");
5014
- __decorateClass$2([
5030
+ __decorateClass$4([
5015
5031
  r()
5016
5032
  ], NavigationButtonBase.prototype, "_isLastStep");
5017
- __decorateClass$2([
5033
+ __decorateClass$4([
5018
5034
  r()
5019
5035
  ], NavigationButtonBase.prototype, "_isSubmitting");
5020
5036
  const wfNextBtnStyles = [
@@ -5033,7 +5049,7 @@ const wfNextBtnStyles = [
5033
5049
  .wf-btn-next {
5034
5050
  width: 100%;
5035
5051
  flex: 1;
5036
- background-color: var(--wf-color-primary);
5052
+ background: var(--wf-btn-background, var(--wf-color-primary));
5037
5053
  border: 1px solid var(--wf-color-primary-border);
5038
5054
  color: white;
5039
5055
  position: relative;
@@ -5075,14 +5091,14 @@ const wfNextBtnStyles = [
5075
5091
  }
5076
5092
  `
5077
5093
  ];
5078
- var __defProp$1 = Object.defineProperty;
5079
- var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
5080
- var __decorateClass$1 = (decorators, target, key, kind) => {
5081
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
5094
+ var __defProp$3 = Object.defineProperty;
5095
+ var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
5096
+ var __decorateClass$3 = (decorators, target, key, kind) => {
5097
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$3(target, key) : target;
5082
5098
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
5083
5099
  if (decorator = decorators[i2])
5084
5100
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5085
- if (kind && result) __defProp$1(target, key, result);
5101
+ if (kind && result) __defProp$3(target, key, result);
5086
5102
  return result;
5087
5103
  };
5088
5104
  let WfNextBtn = class extends NavigationButtonBase {
@@ -5144,22 +5160,22 @@ let WfNextBtn = class extends NavigationButtonBase {
5144
5160
  }
5145
5161
  };
5146
5162
  WfNextBtn.styles = wfNextBtnStyles;
5147
- __decorateClass$1([
5163
+ __decorateClass$3([
5148
5164
  n2({ type: String })
5149
5165
  ], WfNextBtn.prototype, "label", 2);
5150
- __decorateClass$1([
5166
+ __decorateClass$3([
5151
5167
  n2({ type: String })
5152
5168
  ], WfNextBtn.prototype, "action", 2);
5153
- __decorateClass$1([
5169
+ __decorateClass$3([
5154
5170
  n2({ type: Boolean, attribute: "show-shortcut" })
5155
5171
  ], WfNextBtn.prototype, "showShortcut", 2);
5156
- __decorateClass$1([
5172
+ __decorateClass$3([
5157
5173
  n2({ type: Boolean })
5158
5174
  ], WfNextBtn.prototype, "inline", 2);
5159
- __decorateClass$1([
5175
+ __decorateClass$3([
5160
5176
  n2({ type: Boolean })
5161
5177
  ], WfNextBtn.prototype, "disabled", 2);
5162
- WfNextBtn = __decorateClass$1([
5178
+ WfNextBtn = __decorateClass$3([
5163
5179
  t("wf-next-btn")
5164
5180
  ], WfNextBtn);
5165
5181
  const wfBackBtnStyles = [
@@ -5193,14 +5209,14 @@ const wfBackBtnStyles = [
5193
5209
  }
5194
5210
  `
5195
5211
  ];
5196
- var __defProp = Object.defineProperty;
5197
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5198
- var __decorateClass = (decorators, target, key, kind) => {
5199
- var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5212
+ var __defProp$2 = Object.defineProperty;
5213
+ var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
5214
+ var __decorateClass$2 = (decorators, target, key, kind) => {
5215
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
5200
5216
  for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
5201
5217
  if (decorator = decorators[i2])
5202
5218
  result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5203
- if (kind && result) __defProp(target, key, result);
5219
+ if (kind && result) __defProp$2(target, key, result);
5204
5220
  return result;
5205
5221
  };
5206
5222
  let WfBackBtn = class extends NavigationButtonBase {
@@ -5249,21 +5265,466 @@ let WfBackBtn = class extends NavigationButtonBase {
5249
5265
  }
5250
5266
  };
5251
5267
  WfBackBtn.styles = wfBackBtnStyles;
5252
- __decorateClass([
5268
+ __decorateClass$2([
5253
5269
  n2({ type: String })
5254
5270
  ], WfBackBtn.prototype, "label", 2);
5255
- __decorateClass([
5271
+ __decorateClass$2([
5256
5272
  n2({ type: Boolean, attribute: "show-shortcut" })
5257
5273
  ], WfBackBtn.prototype, "showShortcut", 2);
5258
- __decorateClass([
5274
+ __decorateClass$2([
5259
5275
  n2({ type: Boolean })
5260
5276
  ], WfBackBtn.prototype, "disabled", 2);
5261
- __decorateClass([
5277
+ __decorateClass$2([
5262
5278
  n2({ type: Boolean, attribute: "hide-on-first" })
5263
5279
  ], WfBackBtn.prototype, "hideOnFirst", 2);
5264
- WfBackBtn = __decorateClass([
5280
+ WfBackBtn = __decorateClass$2([
5265
5281
  t("wf-back-btn")
5266
5282
  ], WfBackBtn);
5283
+ const wfSelectStyles = [
5284
+ formInputBaseStyles,
5285
+ i$3`
5286
+ :host {
5287
+ position: relative;
5288
+ }
5289
+
5290
+ .wf-select-trigger {
5291
+ display: flex;
5292
+ align-items: center;
5293
+ justify-content: space-between;
5294
+ width: 100%;
5295
+ min-height: var(--wf-input-min-height);
5296
+ padding: var(--wf-spacing-4);
5297
+ font-size: var(--wf-font-size-base);
5298
+ font-weight: var(--wf-font-weight-input);
5299
+ font-family: inherit;
5300
+ background: var(--wf-glass-bg);
5301
+ backdrop-filter: blur(var(--wf-glass-blur));
5302
+ -webkit-backdrop-filter: blur(var(--wf-glass-blur));
5303
+ border: 1px solid var(--wf-glass-border);
5304
+ border-radius: var(--wf-radius-md);
5305
+ box-shadow: var(--wf-glass-shadow);
5306
+ color: var(--wf-color-text);
5307
+ transition: border-color 150ms ease, box-shadow 150ms ease, background 150ms ease;
5308
+ outline: none;
5309
+ box-sizing: border-box;
5310
+ cursor: pointer;
5311
+ text-align: left;
5312
+ }
5313
+
5314
+ .wf-select-trigger:focus {
5315
+ border-color: var(--wf-color-primary);
5316
+ box-shadow: 0 0 0 var(--wf-focus-ring-width) var(--wf-focus-ring-primary);
5317
+ }
5318
+
5319
+ .wf-select-trigger:disabled {
5320
+ opacity: 0.5;
5321
+ cursor: not-allowed;
5322
+ }
5323
+
5324
+ .wf-select-trigger.wf-select-error {
5325
+ border-color: var(--wf-color-error);
5326
+ }
5327
+
5328
+ .wf-select-trigger.wf-select-error:focus {
5329
+ box-shadow: 0 0 0 var(--wf-focus-ring-width) var(--wf-focus-ring-error);
5330
+ }
5331
+
5332
+ .wf-select-placeholder {
5333
+ color: var(--wf-color-text-muted);
5334
+ font-weight: var(--wf-font-weight-input);
5335
+ }
5336
+
5337
+ .wf-select-chevron {
5338
+ flex-shrink: 0;
5339
+ width: 16px;
5340
+ height: 16px;
5341
+ margin-left: var(--wf-spacing-2);
5342
+ color: var(--wf-color-text-muted);
5343
+ transition: transform 150ms ease;
5344
+ }
5345
+
5346
+ .wf-select-chevron.wf-open {
5347
+ transform: rotate(180deg);
5348
+ }
5349
+
5350
+ /* Dropdown panel */
5351
+ .wf-select-panel {
5352
+ position: absolute;
5353
+ top: 100%;
5354
+ left: 0;
5355
+ right: 0;
5356
+ z-index: 100;
5357
+ margin-top: var(--wf-spacing-1);
5358
+ padding: var(--wf-spacing-1) 0;
5359
+ background: var(--wf-color-text);
5360
+ border-radius: var(--wf-radius-md);
5361
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
5362
+ max-height: 240px;
5363
+ overflow-x: hidden;
5364
+ overflow-y: auto;
5365
+ opacity: 0;
5366
+ transform: translateY(-4px);
5367
+ transition: opacity 150ms ease, transform 150ms ease;
5368
+ pointer-events: none;
5369
+ }
5370
+
5371
+ .wf-select-panel.wf-open {
5372
+ opacity: 1;
5373
+ transform: translateY(0);
5374
+ pointer-events: auto;
5375
+ }
5376
+
5377
+ .wf-select-option {
5378
+ display: block;
5379
+ width: 100%;
5380
+ padding: var(--wf-spacing-3) var(--wf-spacing-4);
5381
+ font-size: var(--wf-font-size-base);
5382
+ font-family: inherit;
5383
+ color: white;
5384
+ background: transparent;
5385
+ border: none;
5386
+ cursor: pointer;
5387
+ text-align: left;
5388
+ outline: none;
5389
+ transition: background 100ms ease;
5390
+ word-wrap: break-word;
5391
+ overflow-wrap: break-word;
5392
+ box-sizing: border-box;
5393
+ }
5394
+
5395
+ .wf-select-option:hover,
5396
+ .wf-select-option.wf-active {
5397
+ background: rgba(255, 255, 255, 0.1);
5398
+ }
5399
+
5400
+ .wf-select-option.wf-selected {
5401
+ background: rgba(255, 255, 255, 0.15);
5402
+ }
5403
+
5404
+ /* Hidden slot for slotted <option> elements */
5405
+ .wf-options-slot {
5406
+ display: none;
5407
+ }
5408
+ `
5409
+ ];
5410
+ var __defProp$1 = Object.defineProperty;
5411
+ var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
5412
+ var __decorateClass$1 = (decorators, target, key, kind) => {
5413
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$1(target, key) : target;
5414
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
5415
+ if (decorator = decorators[i2])
5416
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5417
+ if (kind && result) __defProp$1(target, key, result);
5418
+ return result;
5419
+ };
5420
+ let WfSelect = class extends FormInputBase {
5421
+ constructor() {
5422
+ super(...arguments);
5423
+ this.placeholder = "";
5424
+ this.disabled = false;
5425
+ this._open = false;
5426
+ this._options = [];
5427
+ this._activeIndex = -1;
5428
+ this._selectedLabel = "";
5429
+ this._boundClickOutside = this._handleClickOutside.bind(this);
5430
+ }
5431
+ // ============================================
5432
+ // Lifecycle
5433
+ // ============================================
5434
+ connectedCallback() {
5435
+ super.connectedCallback();
5436
+ this._collectOptions();
5437
+ }
5438
+ disconnectedCallback() {
5439
+ super.disconnectedCallback();
5440
+ document.removeEventListener("click", this._boundClickOutside);
5441
+ }
5442
+ firstUpdated() {
5443
+ this._collectOptions();
5444
+ }
5445
+ // ============================================
5446
+ // Abstract Implementations
5447
+ // ============================================
5448
+ _getValidationTriggerProperties() {
5449
+ return ["required"];
5450
+ }
5451
+ _setupValidators() {
5452
+ this._validators = [];
5453
+ if (this.required) {
5454
+ this._validators.push(ValidationController.required());
5455
+ }
5456
+ }
5457
+ _getFocusableSelector() {
5458
+ return ".wf-select-trigger";
5459
+ }
5460
+ reset() {
5461
+ super.reset();
5462
+ this._selectedLabel = "";
5463
+ this._open = false;
5464
+ this._activeIndex = -1;
5465
+ }
5466
+ // ============================================
5467
+ // Option Collection
5468
+ // ============================================
5469
+ _collectOptions() {
5470
+ const optionEls = this.querySelectorAll("option");
5471
+ this._options = Array.from(optionEls).map((opt) => ({
5472
+ value: opt.value,
5473
+ label: opt.textContent?.trim() || opt.value
5474
+ }));
5475
+ }
5476
+ // ============================================
5477
+ // Open / Close
5478
+ // ============================================
5479
+ _toggle() {
5480
+ if (this.disabled) {
5481
+ return;
5482
+ }
5483
+ if (this._open) {
5484
+ this._close();
5485
+ } else {
5486
+ this._openPanel();
5487
+ }
5488
+ }
5489
+ _openPanel() {
5490
+ this._open = true;
5491
+ const selectedIdx = this._options.findIndex((o2) => o2.value === this._value);
5492
+ this._activeIndex = selectedIdx >= 0 ? selectedIdx : 0;
5493
+ document.addEventListener("click", this._boundClickOutside);
5494
+ }
5495
+ _close() {
5496
+ this._open = false;
5497
+ this._activeIndex = -1;
5498
+ document.removeEventListener("click", this._boundClickOutside);
5499
+ }
5500
+ _handleClickOutside(e2) {
5501
+ if (!this.contains(e2.target) && !this.shadowRoot?.contains(e2.target)) {
5502
+ this._close();
5503
+ }
5504
+ }
5505
+ // ============================================
5506
+ // Selection
5507
+ // ============================================
5508
+ _selectOption(option) {
5509
+ this._value = option.value;
5510
+ this._selectedLabel = option.label;
5511
+ this._close();
5512
+ if (this._validationActivated) {
5513
+ this.validate();
5514
+ }
5515
+ this.dispatchEvent(
5516
+ new CustomEvent("wf-change", {
5517
+ detail: { name: this.name, value: this._value },
5518
+ bubbles: true,
5519
+ composed: true
5520
+ })
5521
+ );
5522
+ }
5523
+ // ============================================
5524
+ // Keyboard Navigation
5525
+ // ============================================
5526
+ _handleKeyDown(e2) {
5527
+ switch (e2.key) {
5528
+ case "ArrowDown":
5529
+ e2.preventDefault();
5530
+ if (!this._open) {
5531
+ this._openPanel();
5532
+ } else {
5533
+ this._activeIndex = Math.min(this._activeIndex + 1, this._options.length - 1);
5534
+ }
5535
+ break;
5536
+ case "ArrowUp":
5537
+ e2.preventDefault();
5538
+ if (this._open) {
5539
+ this._activeIndex = Math.max(this._activeIndex - 1, 0);
5540
+ }
5541
+ break;
5542
+ case "Enter":
5543
+ case " ":
5544
+ e2.preventDefault();
5545
+ if (this._open && this._activeIndex >= 0) {
5546
+ this._selectOption(this._options[this._activeIndex]);
5547
+ } else if (!this._open) {
5548
+ this._openPanel();
5549
+ }
5550
+ break;
5551
+ case "Escape":
5552
+ if (this._open) {
5553
+ e2.preventDefault();
5554
+ e2.stopPropagation();
5555
+ this._close();
5556
+ this.shadowRoot?.querySelector(".wf-select-trigger")?.focus();
5557
+ }
5558
+ break;
5559
+ case "Tab":
5560
+ if (this._open) {
5561
+ this._close();
5562
+ }
5563
+ break;
5564
+ }
5565
+ }
5566
+ // ============================================
5567
+ // Render
5568
+ // ============================================
5569
+ render() {
5570
+ const activeDescendant = this._activeIndex >= 0 ? `wf-select-opt-${this._activeIndex}` : "";
5571
+ return b`
5572
+ <div class="wf-field-container">
5573
+ ${this._renderLabel()}
5574
+
5575
+ <button
5576
+ type="button"
5577
+ class="wf-select-trigger ${this._errorMessage ? "wf-select-error" : ""}"
5578
+ role="combobox"
5579
+ aria-expanded="${this._open}"
5580
+ aria-haspopup="listbox"
5581
+ aria-activedescendant="${activeDescendant || A}"
5582
+ aria-controls="wf-select-listbox"
5583
+ ?disabled="${this.disabled}"
5584
+ data-testid="wf-select-trigger"
5585
+ @click="${this._toggle}"
5586
+ @keydown="${this._handleKeyDown}"
5587
+ >
5588
+ ${this._selectedLabel ? b`<span>${this._selectedLabel}</span>` : b`<span class="wf-select-placeholder">${this.placeholder}</span>`}
5589
+ <svg class="wf-select-chevron ${this._open ? "wf-open" : ""}" viewBox="0 0 16 16" fill="none">
5590
+ <path d="M4 6L8 10L12 6" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
5591
+ </svg>
5592
+ </button>
5593
+
5594
+ <div
5595
+ class="wf-select-panel ${this._open ? "wf-open" : ""}"
5596
+ role="listbox"
5597
+ id="wf-select-listbox"
5598
+ data-testid="wf-select-panel"
5599
+ >
5600
+ ${this._options.map(
5601
+ (opt, i2) => b`
5602
+ <div
5603
+ class="wf-select-option ${i2 === this._activeIndex ? "wf-active" : ""} ${opt.value === this._value ? "wf-selected" : ""}"
5604
+ role="option"
5605
+ id="wf-select-opt-${i2}"
5606
+ aria-selected="${opt.value === this._value}"
5607
+ data-testid="wf-select-option"
5608
+ @click="${() => this._selectOption(opt)}"
5609
+ @mouseenter="${() => {
5610
+ this._activeIndex = i2;
5611
+ }}"
5612
+ >
5613
+ ${opt.label}
5614
+ </div>
5615
+ `
5616
+ )}
5617
+ </div>
5618
+
5619
+ <div class="wf-options-slot">
5620
+ <slot @slotchange="${this._collectOptions}"></slot>
5621
+ </div>
5622
+
5623
+ ${this._renderHint()}
5624
+ ${this._renderError()}
5625
+ </div>
5626
+ `;
5627
+ }
5628
+ };
5629
+ WfSelect.styles = wfSelectStyles;
5630
+ __decorateClass$1([
5631
+ n2({ type: String })
5632
+ ], WfSelect.prototype, "placeholder", 2);
5633
+ __decorateClass$1([
5634
+ n2({ type: Boolean })
5635
+ ], WfSelect.prototype, "disabled", 2);
5636
+ __decorateClass$1([
5637
+ r()
5638
+ ], WfSelect.prototype, "_open", 2);
5639
+ __decorateClass$1([
5640
+ r()
5641
+ ], WfSelect.prototype, "_options", 2);
5642
+ __decorateClass$1([
5643
+ r()
5644
+ ], WfSelect.prototype, "_activeIndex", 2);
5645
+ __decorateClass$1([
5646
+ r()
5647
+ ], WfSelect.prototype, "_selectedLabel", 2);
5648
+ WfSelect = __decorateClass$1([
5649
+ t("wf-select")
5650
+ ], WfSelect);
5651
+ const wfSkipBtnStyles = i$3`
5652
+ :host {
5653
+ display: block;
5654
+ text-align: center;
5655
+ }
5656
+
5657
+ :host([hidden]) {
5658
+ display: none;
5659
+ }
5660
+
5661
+ .wf-skip-link {
5662
+ display: inline-block;
5663
+ padding: var(--wf-spacing-3, 12px) var(--wf-spacing-4, 16px);
5664
+ font-size: var(--wf-font-size-sm, 0.875rem);
5665
+ font-family: inherit;
5666
+ color: var(--wf-color-text-muted, #646464);
5667
+ background: none;
5668
+ border: none;
5669
+ cursor: pointer;
5670
+ text-decoration: underline;
5671
+ text-underline-offset: 2px;
5672
+ transition: color 150ms ease;
5673
+ outline: none;
5674
+ }
5675
+
5676
+ .wf-skip-link:hover {
5677
+ color: var(--wf-color-text, #0a0a0a);
5678
+ }
5679
+
5680
+ .wf-skip-link:focus-visible {
5681
+ border-radius: var(--wf-radius-sm, 4px);
5682
+ box-shadow: 0 0 0 var(--wf-focus-ring-width, 3px) var(--wf-focus-ring-primary, rgba(128, 64, 240, 0.2));
5683
+ }
5684
+ `;
5685
+ var __defProp = Object.defineProperty;
5686
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5687
+ var __decorateClass = (decorators, target, key, kind) => {
5688
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5689
+ for (var i2 = decorators.length - 1, decorator; i2 >= 0; i2--)
5690
+ if (decorator = decorators[i2])
5691
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
5692
+ if (kind && result) __defProp(target, key, result);
5693
+ return result;
5694
+ };
5695
+ let WfSkipBtn = class extends i {
5696
+ constructor() {
5697
+ super(...arguments);
5698
+ this.label = "Skip this step";
5699
+ this._handleClick = () => {
5700
+ this.dispatchEvent(
5701
+ new CustomEvent("wf:nav-skip", {
5702
+ bubbles: true,
5703
+ composed: true
5704
+ })
5705
+ );
5706
+ };
5707
+ }
5708
+ render() {
5709
+ return b`
5710
+ <button
5711
+ type="button"
5712
+ class="wf-skip-link"
5713
+ data-testid="wf-skip-btn"
5714
+ @click="${this._handleClick}"
5715
+ >
5716
+ ${this.label}
5717
+ </button>
5718
+ `;
5719
+ }
5720
+ };
5721
+ WfSkipBtn.styles = wfSkipBtnStyles;
5722
+ __decorateClass([
5723
+ n2({ type: String })
5724
+ ], WfSkipBtn.prototype, "label", 2);
5725
+ WfSkipBtn = __decorateClass([
5726
+ t("wf-skip-btn")
5727
+ ], WfSkipBtn);
5267
5728
  export {
5268
5729
  DEFAULT_BLOCKED_DOMAINS,
5269
5730
  FormStateController,
@@ -5280,6 +5741,8 @@ export {
5280
5741
  WfOptions,
5281
5742
  WfOther,
5282
5743
  WfProgress,
5744
+ WfSelect,
5745
+ WfSkipBtn,
5283
5746
  WfStep,
5284
5747
  WfSuccess,
5285
5748
  WfTextarea,