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