@contentful/experience-design-system-cli 2.37.1-dev-build-0b7e3e1f.0 → 2.37.1-dev-build-414ce827.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -9164,8 +9164,8 @@ function extractAccessorProperties(classDecl, applyRuntimeFieldDenylist = false)
9164
9164
  accessors.set(name, entry);
9165
9165
  }
9166
9166
  for (const [name, { getter, setter }] of accessors) {
9167
- const hasPropertyDecorator = getter?.getDecorators().some((decorator) => decorator.getName() === "property") || setter?.getDecorators().some((decorator) => decorator.getName() === "property");
9168
- if (!hasPropertyDecorator && !(getter && setter))
9167
+ const hasPropertyDecorator2 = getter?.getDecorators().some((decorator) => decorator.getName() === "property") || setter?.getDecorators().some((decorator) => decorator.getName() === "property");
9168
+ if (!hasPropertyDecorator2 && !(getter && setter))
9169
9169
  continue;
9170
9170
  const type = getter?.getReturnTypeNode()?.getText() ?? setter?.getParameters()[0]?.getTypeNode()?.getText() ?? "any";
9171
9171
  const accessorNode = getter ?? setter;
@@ -12979,9 +12979,9 @@ function generateUlid(now = Date.now()) {
12979
12979
  tsBytes[i] = n & 255;
12980
12980
  n = Math.floor(n / 256);
12981
12981
  }
12982
- const ts3 = encodeBase32(tsBytes, 10);
12982
+ const ts6 = encodeBase32(tsBytes, 10);
12983
12983
  const rand = encodeBase32(randomBytes2(10), 16);
12984
- return (ts3 + rand).toUpperCase();
12984
+ return (ts6 + rand).toUpperCase();
12985
12985
  }
12986
12986
  var CROCKFORD;
12987
12987
  var init_generate_ulid = __esm({
@@ -16475,7 +16475,1506 @@ var init_component = __esm({
16475
16475
  }
16476
16476
  });
16477
16477
 
16478
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/non-authorable-filter.js
16478
+ // packages/experience-design-system-extraction/dist/src/extract/types/display.js
16479
+ var init_display = __esm({
16480
+ "packages/experience-design-system-extraction/dist/src/extract/types/display.js"() {
16481
+ "use strict";
16482
+ }
16483
+ });
16484
+
16485
+ // packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-analysis.js
16486
+ var init_component_path_analysis = __esm({
16487
+ "packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-analysis.js"() {
16488
+ "use strict";
16489
+ }
16490
+ });
16491
+
16492
+ // packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-scoring.js
16493
+ var init_component_path_scoring = __esm({
16494
+ "packages/experience-design-system-extraction/dist/src/extract/services/deduplication/helpers/component-path-scoring.js"() {
16495
+ "use strict";
16496
+ init_component_path_analysis();
16497
+ }
16498
+ });
16499
+
16500
+ // packages/experience-design-system-extraction/dist/src/extract/services/deduplication/deduplicate-components.js
16501
+ var init_deduplicate_components = __esm({
16502
+ "packages/experience-design-system-extraction/dist/src/extract/services/deduplication/deduplicate-components.js"() {
16503
+ "use strict";
16504
+ init_component_path_scoring();
16505
+ }
16506
+ });
16507
+
16508
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/file-workers.js
16509
+ var init_file_workers = __esm({
16510
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/file-workers.js"() {
16511
+ "use strict";
16512
+ }
16513
+ });
16514
+
16515
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.js
16516
+ var init_result_normalizer = __esm({
16517
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/result-normalizer.js"() {
16518
+ "use strict";
16519
+ }
16520
+ });
16521
+
16522
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-type-symbol.js
16523
+ var init_resolve_type_symbol = __esm({
16524
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-type-symbol.js"() {
16525
+ "use strict";
16526
+ }
16527
+ });
16528
+
16529
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/get-node-source-lines.js
16530
+ var init_get_node_source_lines = __esm({
16531
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/get-node-source-lines.js"() {
16532
+ "use strict";
16533
+ }
16534
+ });
16535
+
16536
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.js
16537
+ import { Node as Node10, Project as Project7 } from "ts-morph";
16538
+ var init_collect_astro_props_bindings = __esm({
16539
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/helpers/collect-astro-props-bindings.js"() {
16540
+ "use strict";
16541
+ }
16542
+ });
16543
+
16544
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/frontmatter.js
16545
+ var init_frontmatter = __esm({
16546
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/frontmatter.js"() {
16547
+ "use strict";
16548
+ init_resolve_type_symbol();
16549
+ init_get_node_source_lines();
16550
+ init_collect_astro_props_bindings();
16551
+ }
16552
+ });
16553
+
16554
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/slots.js
16555
+ var init_slots = __esm({
16556
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/slots.js"() {
16557
+ "use strict";
16558
+ }
16559
+ });
16560
+
16561
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/extractor.js
16562
+ var init_extractor = __esm({
16563
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/astro/extractor.js"() {
16564
+ "use strict";
16565
+ init_file_workers();
16566
+ init_result_normalizer();
16567
+ init_frontmatter();
16568
+ init_slots();
16569
+ }
16570
+ });
16571
+
16572
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.js
16573
+ import ts3 from "typescript";
16574
+ var init_resolve_tsx_tsconfig_path = __esm({
16575
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-tsconfig-path.js"() {
16576
+ "use strict";
16577
+ }
16578
+ });
16579
+
16580
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.js
16581
+ var init_find_tsx_workspace_package = __esm({
16582
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/find-tsx-workspace-package.js"() {
16583
+ "use strict";
16584
+ }
16585
+ });
16586
+
16587
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.js
16588
+ import { Node as Node11 } from "ts-morph";
16589
+ var init_resolve_tsx_workspace_imports = __esm({
16590
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-tsx-workspace-imports.js"() {
16591
+ "use strict";
16592
+ init_resolve_tsx_tsconfig_path();
16593
+ init_find_tsx_workspace_package();
16594
+ }
16595
+ });
16596
+
16597
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.js
16598
+ import { Node as Node12, SyntaxKind as SyntaxKind7 } from "ts-morph";
16599
+ var init_tsx_node_utils = __esm({
16600
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-node-utils.js"() {
16601
+ "use strict";
16602
+ init_resolve_tsx_workspace_imports();
16603
+ }
16604
+ });
16605
+
16606
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.js
16607
+ import { Node as Node13 } from "ts-morph";
16608
+ var init_tsx_renderable_exports = __esm({
16609
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-renderable-exports.js"() {
16610
+ "use strict";
16611
+ }
16612
+ });
16613
+
16614
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.js
16615
+ import { Project as Project8 } from "ts-morph";
16616
+ var init_tsx_shared = __esm({
16617
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/tsx-shared.js"() {
16618
+ "use strict";
16619
+ init_tsx_node_utils();
16620
+ init_tsx_renderable_exports();
16621
+ }
16622
+ });
16623
+
16624
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-allowed-component-names.js
16625
+ var init_collect_allowed_component_names = __esm({
16626
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-allowed-component-names.js"() {
16627
+ "use strict";
16628
+ }
16629
+ });
16630
+
16631
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.js
16632
+ var init_build_component_lookup_maps = __esm({
16633
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/build-component-lookup-maps.js"() {
16634
+ "use strict";
16635
+ }
16636
+ });
16637
+
16638
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.js
16639
+ var init_extract_react_allowed_components = __esm({
16640
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-allowed-components.js"() {
16641
+ "use strict";
16642
+ init_collect_allowed_component_names();
16643
+ init_build_component_lookup_maps();
16644
+ }
16645
+ });
16646
+
16647
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.js
16648
+ import { Node as Node14 } from "ts-morph";
16649
+ var init_get_jsx_ast_data = __esm({
16650
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/get-jsx-ast-data.js"() {
16651
+ "use strict";
16652
+ }
16653
+ });
16654
+
16655
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.js
16656
+ import { SyntaxKind as SyntaxKind8 } from "ts-morph";
16657
+ var init_collect_structural_jsx_evidence = __esm({
16658
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/collect-structural-jsx-evidence.js"() {
16659
+ "use strict";
16660
+ init_tsx_shared();
16661
+ init_get_jsx_ast_data();
16662
+ }
16663
+ });
16664
+
16665
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-jsx-component-references.js
16666
+ import { Node as Node15, SyntaxKind as SyntaxKind9 } from "ts-morph";
16667
+ var init_collect_jsx_component_references = __esm({
16668
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/collect-jsx-component-references.js"() {
16669
+ "use strict";
16670
+ init_collect_allowed_component_names();
16671
+ init_get_jsx_ast_data();
16672
+ init_collect_structural_jsx_evidence();
16673
+ }
16674
+ });
16675
+
16676
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.js
16677
+ var init_synthesize_react_structural_slots = __esm({
16678
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/synthesize-react-structural-slots.js"() {
16679
+ "use strict";
16680
+ init_collect_jsx_component_references();
16681
+ init_build_component_lookup_maps();
16682
+ }
16683
+ });
16684
+
16685
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.js
16686
+ var init_resolve_react_prop_forwarding = __esm({
16687
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-prop-forwarding.js"() {
16688
+ "use strict";
16689
+ }
16690
+ });
16691
+
16692
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/detect-react-node-types.js
16693
+ var init_detect_react_node_types = __esm({
16694
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/ast/detect-react-node-types.js"() {
16695
+ "use strict";
16696
+ }
16697
+ });
16698
+
16699
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/detect-slot-from-prop.js
16700
+ var init_detect_slot_from_prop = __esm({
16701
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/detect-slot-from-prop.js"() {
16702
+ "use strict";
16703
+ init_detect_react_node_types();
16704
+ init_detect_react_node_types();
16705
+ }
16706
+ });
16707
+
16708
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.js
16709
+ import { Node as Node16 } from "ts-morph";
16710
+ var init_resolve_component_function = __esm({
16711
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-component-function.js"() {
16712
+ "use strict";
16713
+ init_tsx_shared();
16714
+ }
16715
+ });
16716
+
16717
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.js
16718
+ import { Node as Node17, SyntaxKind as SyntaxKind10 } from "ts-morph";
16719
+ var init_collect_prop_dataflow = __esm({
16720
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-prop-dataflow.js"() {
16721
+ "use strict";
16722
+ init_tsx_shared();
16723
+ init_resolve_component_function();
16724
+ }
16725
+ });
16726
+
16727
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.js
16728
+ var init_extract_react_slots = __esm({
16729
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-slots.js"() {
16730
+ "use strict";
16731
+ }
16732
+ });
16733
+
16734
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.js
16735
+ import { Node as Node18 } from "ts-morph";
16736
+ function createTextControlSurface2(onChangeType, specificProps) {
16737
+ return [
16738
+ { name: "autoComplete", type: "string", required: false },
16739
+ ...specificProps,
16740
+ { name: "disabled", type: "boolean", required: false },
16741
+ { name: "name", type: "string", required: false },
16742
+ { name: "onChange", type: onChangeType, required: false },
16743
+ { name: "placeholder", type: "string", required: false },
16744
+ { name: "readOnly", type: "boolean", required: false },
16745
+ { name: "required", type: "boolean", required: false },
16746
+ {
16747
+ name: "value",
16748
+ type: "string | number | readonly string[]",
16749
+ required: false
16750
+ }
16751
+ ];
16752
+ }
16753
+ var DOM_ATTRIBUTE_PROP_SURFACES2;
16754
+ var init_dom_attribute_surfaces = __esm({
16755
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/dom-attribute-surfaces.js"() {
16756
+ "use strict";
16757
+ DOM_ATTRIBUTE_PROP_SURFACES2 = {
16758
+ HTMLProps: [],
16759
+ HTMLAttributes: [
16760
+ { name: "className", type: "string", required: false },
16761
+ { name: "hidden", type: "boolean", required: false },
16762
+ { name: "id", type: "string", required: false },
16763
+ {
16764
+ name: "onClick",
16765
+ type: "MouseEventHandler<HTMLElement>",
16766
+ required: false
16767
+ },
16768
+ { name: "style", type: "CSSProperties", required: false },
16769
+ { name: "tabIndex", type: "number", required: false },
16770
+ { name: "title", type: "string", required: false }
16771
+ ],
16772
+ ImgHTMLAttributes: [
16773
+ { name: "alt", type: "string", required: false },
16774
+ { name: "crossOrigin", type: "string", required: false },
16775
+ { name: "height", type: "number | string", required: false },
16776
+ {
16777
+ name: "loading",
16778
+ type: "string",
16779
+ required: false,
16780
+ allowedValues: ["eager", "lazy"]
16781
+ },
16782
+ { name: "sizes", type: "string", required: false },
16783
+ { name: "src", type: "string", required: false },
16784
+ { name: "srcSet", type: "string", required: false },
16785
+ { name: "width", type: "number | string", required: false }
16786
+ ],
16787
+ LiHTMLAttributes: [],
16788
+ AnchorHTMLAttributes: [
16789
+ { name: "download", type: "boolean | string", required: false },
16790
+ { name: "href", type: "string", required: false },
16791
+ { name: "hrefLang", type: "string", required: false },
16792
+ { name: "referrerPolicy", type: "string", required: false },
16793
+ { name: "rel", type: "string", required: false },
16794
+ {
16795
+ name: "target",
16796
+ type: "string",
16797
+ required: false,
16798
+ allowedValues: ["_blank", "_parent", "_self", "_top"]
16799
+ }
16800
+ ],
16801
+ ButtonHTMLAttributes: [
16802
+ { name: "autoFocus", type: "boolean", required: false },
16803
+ { name: "disabled", type: "boolean", required: false },
16804
+ { name: "form", type: "string", required: false },
16805
+ { name: "formAction", type: "string", required: false },
16806
+ { name: "formMethod", type: "string", required: false },
16807
+ { name: "formNoValidate", type: "boolean", required: false },
16808
+ { name: "formTarget", type: "string", required: false },
16809
+ { name: "name", type: "string", required: false },
16810
+ {
16811
+ name: "type",
16812
+ type: "string",
16813
+ required: false,
16814
+ allowedValues: ["button", "reset", "submit"]
16815
+ },
16816
+ {
16817
+ name: "value",
16818
+ type: "string | number | readonly string[]",
16819
+ required: false
16820
+ }
16821
+ ],
16822
+ InputHTMLAttributes: createTextControlSurface2("ChangeEventHandler<HTMLInputElement>", [
16823
+ { name: "checked", type: "boolean", required: false },
16824
+ { name: "max", type: "number | string", required: false },
16825
+ { name: "maxLength", type: "number", required: false },
16826
+ { name: "min", type: "number | string", required: false },
16827
+ { name: "minLength", type: "number", required: false },
16828
+ { name: "type", type: "string", required: false }
16829
+ ]),
16830
+ FieldsetHTMLAttributes: [
16831
+ { name: "disabled", type: "boolean", required: false },
16832
+ { name: "form", type: "string", required: false },
16833
+ { name: "name", type: "string", required: false }
16834
+ ],
16835
+ LabelHTMLAttributes: [
16836
+ { name: "form", type: "string", required: false },
16837
+ { name: "htmlFor", type: "string", required: false }
16838
+ ],
16839
+ SelectHTMLAttributes: [
16840
+ { name: "autoComplete", type: "string", required: false },
16841
+ { name: "disabled", type: "boolean", required: false },
16842
+ { name: "form", type: "string", required: false },
16843
+ { name: "multiple", type: "boolean", required: false },
16844
+ { name: "name", type: "string", required: false },
16845
+ {
16846
+ name: "onChange",
16847
+ type: "ChangeEventHandler<HTMLSelectElement>",
16848
+ required: false
16849
+ },
16850
+ { name: "required", type: "boolean", required: false },
16851
+ { name: "size", type: "number", required: false },
16852
+ {
16853
+ name: "value",
16854
+ type: "string | number | readonly string[]",
16855
+ required: false
16856
+ }
16857
+ ],
16858
+ SVGAttributes: [
16859
+ {
16860
+ name: "focusable",
16861
+ type: 'boolean | "auto"',
16862
+ required: false,
16863
+ allowedValues: ["auto"]
16864
+ },
16865
+ { name: "height", type: "number | string", required: false },
16866
+ { name: "viewBox", type: "string", required: false },
16867
+ { name: "width", type: "number | string", required: false }
16868
+ ],
16869
+ SVGProps: [],
16870
+ TextareaHTMLAttributes: createTextControlSurface2("ChangeEventHandler<HTMLTextAreaElement>", [
16871
+ { name: "cols", type: "number", required: false },
16872
+ { name: "rows", type: "number", required: false },
16873
+ { name: "wrap", type: "string", required: false }
16874
+ ]),
16875
+ TdHTMLAttributes: [
16876
+ {
16877
+ name: "align",
16878
+ type: "string",
16879
+ required: false,
16880
+ allowedValues: ["center", "char", "justify", "left", "right"]
16881
+ },
16882
+ { name: "colSpan", type: "number", required: false },
16883
+ { name: "headers", type: "string", required: false },
16884
+ { name: "rowSpan", type: "number", required: false },
16885
+ { name: "scope", type: "string", required: false }
16886
+ ]
16887
+ };
16888
+ }
16889
+ });
16890
+
16891
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.js
16892
+ import { Node as Node19 } from "ts-morph";
16893
+ var init_collect_dom_wrapper_contexts = __esm({
16894
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-dom-wrapper-contexts.js"() {
16895
+ "use strict";
16896
+ init_tsx_shared();
16897
+ init_tsx_node_utils();
16898
+ init_dom_attribute_surfaces();
16899
+ }
16900
+ });
16901
+
16902
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.js
16903
+ import { Node as Node20 } from "ts-morph";
16904
+ var init_detect_dom_is_pure_wrapper = __esm({
16905
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-is-pure-wrapper.js"() {
16906
+ "use strict";
16907
+ init_tsx_shared();
16908
+ init_tsx_node_utils();
16909
+ init_dom_attribute_surfaces();
16910
+ }
16911
+ });
16912
+
16913
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.js
16914
+ import { Node as Node21 } from "ts-morph";
16915
+ var init_detect_omit_wrapped_custom_props = __esm({
16916
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-omit-wrapped-custom-props.js"() {
16917
+ "use strict";
16918
+ init_tsx_shared();
16919
+ init_tsx_node_utils();
16920
+ init_detect_dom_is_pure_wrapper();
16921
+ }
16922
+ });
16923
+
16924
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.js
16925
+ import { Node as Node22 } from "ts-morph";
16926
+ var init_detect_pick_type_patterns = __esm({
16927
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-pick-type-patterns.js"() {
16928
+ "use strict";
16929
+ init_tsx_shared();
16930
+ init_tsx_node_utils();
16931
+ init_detect_dom_type_patterns();
16932
+ }
16933
+ });
16934
+
16935
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.js
16936
+ var init_detect_dom_type_patterns = __esm({
16937
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-dom-type-patterns.js"() {
16938
+ "use strict";
16939
+ init_dom_attribute_surfaces();
16940
+ init_collect_dom_wrapper_contexts();
16941
+ init_detect_dom_is_pure_wrapper();
16942
+ init_detect_omit_wrapped_custom_props();
16943
+ init_detect_pick_type_patterns();
16944
+ init_collect_dom_wrapper_contexts();
16945
+ }
16946
+ });
16947
+
16948
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.js
16949
+ import { Node as Node23 } from "ts-morph";
16950
+ var init_detect_react_polymorphic = __esm({
16951
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/detect-react-polymorphic.js"() {
16952
+ "use strict";
16953
+ init_tsx_shared();
16954
+ init_tsx_node_utils();
16955
+ }
16956
+ });
16957
+
16958
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.js
16959
+ import { Node as Node24 } from "ts-morph";
16960
+ var init_extract_react_props_from_type = __esm({
16961
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-props-from-type.js"() {
16962
+ "use strict";
16963
+ init_tsx_shared();
16964
+ init_get_node_source_lines();
16965
+ init_detect_dom_type_patterns();
16966
+ init_detect_react_polymorphic();
16967
+ init_dom_attribute_surfaces();
16968
+ }
16969
+ });
16970
+
16971
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.js
16972
+ import { Node as Node25 } from "ts-morph";
16973
+ var init_resolve_react_props_type = __esm({
16974
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/resolve-react-props-type.js"() {
16975
+ "use strict";
16976
+ init_tsx_shared();
16977
+ init_detect_dom_type_patterns();
16978
+ }
16979
+ });
16980
+
16981
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.js
16982
+ import { Node as Node26 } from "ts-morph";
16983
+ var init_filter_impl_alias_props = __esm({
16984
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/filter-impl-alias-props.js"() {
16985
+ "use strict";
16986
+ }
16987
+ });
16988
+
16989
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.js
16990
+ import { Node as Node27, SyntaxKind as SyntaxKind11 } from "ts-morph";
16991
+ var init_extract_binding_fallback_props = __esm({
16992
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-binding-fallback-props.js"() {
16993
+ "use strict";
16994
+ init_get_node_source_lines();
16995
+ }
16996
+ });
16997
+
16998
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.js
16999
+ import { Node as Node28 } from "ts-morph";
17000
+ var init_extract_react_binding_defaults = __esm({
17001
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-binding-defaults.js"() {
17002
+ "use strict";
17003
+ init_filter_impl_alias_props();
17004
+ init_extract_binding_fallback_props();
17005
+ }
17006
+ });
17007
+
17008
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.js
17009
+ import { Node as Node29, SyntaxKind as SyntaxKind12 } from "ts-morph";
17010
+ var init_infer_primitive_dom_props = __esm({
17011
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/infer-primitive-dom-props.js"() {
17012
+ "use strict";
17013
+ init_tsx_shared();
17014
+ init_dom_attribute_surfaces();
17015
+ }
17016
+ });
17017
+
17018
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.js
17019
+ import { Node as Node30, SyntaxKind as SyntaxKind13 } from "ts-morph";
17020
+ var init_collect_react_impl_hints = __esm({
17021
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/collect-react-impl-hints.js"() {
17022
+ "use strict";
17023
+ init_infer_primitive_dom_props();
17024
+ }
17025
+ });
17026
+
17027
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.js
17028
+ import { Node as Node31 } from "ts-morph";
17029
+ var init_extract_react_prop_types = __esm({
17030
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-prop-types.js"() {
17031
+ "use strict";
17032
+ }
17033
+ });
17034
+
17035
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.js
17036
+ import { Node as Node32 } from "ts-morph";
17037
+ var init_extract_react_component_from_export = __esm({
17038
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-react-component-from-export.js"() {
17039
+ "use strict";
17040
+ init_detect_slot_from_prop();
17041
+ init_collect_prop_dataflow();
17042
+ init_resolve_component_function();
17043
+ init_extract_react_slots();
17044
+ init_extract_react_props_from_type();
17045
+ init_detect_dom_type_patterns();
17046
+ init_resolve_react_props_type();
17047
+ init_extract_react_binding_defaults();
17048
+ init_collect_react_impl_hints();
17049
+ init_extract_react_prop_types();
17050
+ }
17051
+ });
17052
+
17053
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.js
17054
+ import { SyntaxKind as SyntaxKind14 } from "ts-morph";
17055
+ var init_extract_from_react_source_file = __esm({
17056
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/helpers/extract-from-react-source-file.js"() {
17057
+ "use strict";
17058
+ init_tsx_shared();
17059
+ init_extract_react_component_from_export();
17060
+ }
17061
+ });
17062
+
17063
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/extractor.js
17064
+ var init_extractor2 = __esm({
17065
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/react/extractor.js"() {
17066
+ "use strict";
17067
+ init_tsx_shared();
17068
+ init_extract_react_allowed_components();
17069
+ init_synthesize_react_structural_slots();
17070
+ init_resolve_react_prop_forwarding();
17071
+ init_extract_from_react_source_file();
17072
+ }
17073
+ });
17074
+
17075
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.js
17076
+ var init_project_source_files = __esm({
17077
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/file-processing/project-source-files.js"() {
17078
+ "use strict";
17079
+ }
17080
+ });
17081
+
17082
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.js
17083
+ import { Node as Node33 } from "ts-morph";
17084
+ var init_detect_stencil_class = __esm({
17085
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/detect-stencil-class.js"() {
17086
+ "use strict";
17087
+ }
17088
+ });
17089
+
17090
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.js
17091
+ import { Node as Node34, SyntaxKind as SyntaxKind15 } from "ts-morph";
17092
+ var init_stencil_prop_helpers = __esm({
17093
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/stencil-prop-helpers.js"() {
17094
+ "use strict";
17095
+ init_tsx_shared();
17096
+ }
17097
+ });
17098
+
17099
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.js
17100
+ import { Node as Node35 } from "ts-morph";
17101
+ var init_extract_stencil_props = __esm({
17102
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-props.js"() {
17103
+ "use strict";
17104
+ init_detect_stencil_class();
17105
+ init_stencil_prop_helpers();
17106
+ init_stencil_prop_helpers();
17107
+ }
17108
+ });
17109
+
17110
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.js
17111
+ var init_collect_jsdoc_slot_comments = __esm({
17112
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/collect-jsdoc-slot-comments.js"() {
17113
+ "use strict";
17114
+ }
17115
+ });
17116
+
17117
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.js
17118
+ import { Node as Node36 } from "ts-morph";
17119
+ var init_extract_stencil_slots = __esm({
17120
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/helpers/extract-stencil-slots.js"() {
17121
+ "use strict";
17122
+ init_collect_jsdoc_slot_comments();
17123
+ }
17124
+ });
17125
+
17126
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/extractor.js
17127
+ import { Project as Project9, Node as Node37 } from "ts-morph";
17128
+ var init_extractor3 = __esm({
17129
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/stencil/extractor.js"() {
17130
+ "use strict";
17131
+ init_tsx_shared();
17132
+ init_result_normalizer();
17133
+ init_project_source_files();
17134
+ init_detect_stencil_class();
17135
+ init_extract_stencil_props();
17136
+ init_extract_stencil_slots();
17137
+ }
17138
+ });
17139
+
17140
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.js
17141
+ var init_get_svelte_component_name = __esm({
17142
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/get-svelte-component-name.js"() {
17143
+ "use strict";
17144
+ }
17145
+ });
17146
+
17147
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/collect-scoring-inputs.js
17148
+ function isWidePrimitiveUnion2(type) {
17149
+ const parts = type.split("|").map((p) => p.trim());
17150
+ if (parts.length < 3)
17151
+ return false;
17152
+ const basePrimitives = /* @__PURE__ */ new Set(["string", "number", "boolean"]);
17153
+ const nullability = /* @__PURE__ */ new Set(["null", "undefined"]);
17154
+ const baseCount = parts.filter((p) => basePrimitives.has(p)).length;
17155
+ const nullabilityCount = parts.filter((p) => nullability.has(p)).length;
17156
+ return baseCount >= 3 || baseCount >= 2 && nullabilityCount > 0 && baseCount + nullabilityCount >= 3;
17157
+ }
17158
+ function countExtractionIssues(component, options = {}) {
17159
+ let count = 0;
17160
+ const reasons = [];
17161
+ if (component.props.length === 0 && component.slots.length === 0) {
17162
+ count++;
17163
+ reasons.push("no-props-or-slots");
17164
+ }
17165
+ if (component.props.length > 50) {
17166
+ count++;
17167
+ reasons.push(`high-prop-count:${component.props.length}`);
17168
+ }
17169
+ for (const prop of component.props) {
17170
+ if (OPAQUE_TYPES2.has(prop.type.trim())) {
17171
+ count++;
17172
+ reasons.push(`opaque-type:${prop.name}`);
17173
+ break;
17174
+ }
17175
+ if (isWidePrimitiveUnion2(prop.type)) {
17176
+ count++;
17177
+ reasons.push(`wide-union:${prop.name}`);
17178
+ break;
17179
+ }
17180
+ if (!prop.description && !OBVIOUS_PROP_NAMES2.has(prop.name)) {
17181
+ count++;
17182
+ reasons.push("props-missing-description");
17183
+ break;
17184
+ }
17185
+ }
17186
+ count += options.additionalIssueCount ?? 0;
17187
+ if (options.additionalReasons && options.additionalReasons.length > 0) {
17188
+ reasons.push(...options.additionalReasons);
17189
+ }
17190
+ return { count, reasons: [...new Set(reasons)] };
17191
+ }
17192
+ function mapIssueCountToConfidence(count) {
17193
+ if (count === 0)
17194
+ return 5;
17195
+ if (count === 1)
17196
+ return 4;
17197
+ if (count === 2)
17198
+ return 3;
17199
+ if (count === 3)
17200
+ return 2;
17201
+ return 1;
17202
+ }
17203
+ var OPAQUE_TYPES2, OBVIOUS_PROP_NAMES2;
17204
+ var init_collect_scoring_inputs = __esm({
17205
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/collect-scoring-inputs.js"() {
17206
+ "use strict";
17207
+ OPAQUE_TYPES2 = /* @__PURE__ */ new Set(["any", "unknown", "object", "Record<string, unknown>", "Record<string, any>"]);
17208
+ OBVIOUS_PROP_NAMES2 = /* @__PURE__ */ new Set([
17209
+ "className",
17210
+ "style",
17211
+ "id",
17212
+ "children",
17213
+ "disabled",
17214
+ "hidden",
17215
+ "onClick",
17216
+ "onChange",
17217
+ "onSubmit",
17218
+ "onBlur",
17219
+ "onFocus",
17220
+ "href",
17221
+ "src",
17222
+ "alt",
17223
+ "type",
17224
+ "value",
17225
+ "checked",
17226
+ "placeholder",
17227
+ "label",
17228
+ "title",
17229
+ "name",
17230
+ "required",
17231
+ "readOnly",
17232
+ "autoFocus",
17233
+ "tabIndex",
17234
+ "role",
17235
+ "aria-label",
17236
+ "aria-describedby"
17237
+ ]);
17238
+ }
17239
+ });
17240
+
17241
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.js
17242
+ function computeExtractionScore2(component, options = {}) {
17243
+ const { count, reasons } = countExtractionIssues(component, options);
17244
+ return {
17245
+ confidence: mapIssueCountToConfidence(count),
17246
+ reasons
17247
+ };
17248
+ }
17249
+ function deriveNeedsReview2(confidence) {
17250
+ return confidence <= 2;
17251
+ }
17252
+ var init_compute_extraction_score = __esm({
17253
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/scoring/compute-extraction-score.js"() {
17254
+ "use strict";
17255
+ init_collect_scoring_inputs();
17256
+ }
17257
+ });
17258
+
17259
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.js
17260
+ var init_extract_svelte_template_slots = __esm({
17261
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-template-slots.js"() {
17262
+ "use strict";
17263
+ }
17264
+ });
17265
+
17266
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js
17267
+ var init_collect_svelte_type_references = __esm({
17268
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/collect-svelte-type-references.js"() {
17269
+ "use strict";
17270
+ }
17271
+ });
17272
+
17273
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.js
17274
+ var init_find_svelte_script_declarations = __esm({
17275
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/find-svelte-script-declarations.js"() {
17276
+ "use strict";
17277
+ init_collect_svelte_type_references();
17278
+ }
17279
+ });
17280
+
17281
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.js
17282
+ var init_render_svelte_type_strings = __esm({
17283
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type-strings.js"() {
17284
+ "use strict";
17285
+ }
17286
+ });
17287
+
17288
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.js
17289
+ var init_render_svelte_type = __esm({
17290
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/render-svelte-type.js"() {
17291
+ "use strict";
17292
+ init_render_svelte_type_strings();
17293
+ }
17294
+ });
17295
+
17296
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js
17297
+ var init_extract_svelte_ast_type_members = __esm({
17298
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-ast-type-members.js"() {
17299
+ "use strict";
17300
+ init_render_svelte_type();
17301
+ }
17302
+ });
17303
+
17304
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js
17305
+ import { Node as Node38 } from "ts-morph";
17306
+ var init_extract_svelte_declaration_data = __esm({
17307
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-declaration-data.js"() {
17308
+ "use strict";
17309
+ }
17310
+ });
17311
+
17312
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.js
17313
+ import { Project as Project10, ScriptTarget as ScriptTarget2, ModuleKind as ModuleKind2, ts as ts4 } from "ts-morph";
17314
+ var init_resolve_svelte_type_checker = __esm({
17315
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-checker.js"() {
17316
+ "use strict";
17317
+ init_render_svelte_type();
17318
+ init_extract_svelte_declaration_data();
17319
+ }
17320
+ });
17321
+
17322
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-import-file-path.js
17323
+ var init_resolve_import_file_path = __esm({
17324
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/shared/helpers/resolve-import-file-path.js"() {
17325
+ "use strict";
17326
+ }
17327
+ });
17328
+
17329
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js
17330
+ import { Node as Node39 } from "ts-morph";
17331
+ var init_extract_svelte_external_type_members = __esm({
17332
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-external-type-members.js"() {
17333
+ "use strict";
17334
+ init_render_svelte_type();
17335
+ }
17336
+ });
17337
+
17338
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.js
17339
+ import { Node as Node40, Project as Project11, ScriptTarget as ScriptTarget3, ModuleKind as ModuleKind3 } from "ts-morph";
17340
+ var init_resolve_svelte_external_type_readers = __esm({
17341
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-external-type-readers.js"() {
17342
+ "use strict";
17343
+ init_resolve_import_file_path();
17344
+ init_extract_svelte_external_type_members();
17345
+ }
17346
+ });
17347
+
17348
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.js
17349
+ var init_resolve_svelte_type_members = __esm({
17350
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-type-members.js"() {
17351
+ "use strict";
17352
+ init_find_svelte_script_declarations();
17353
+ init_extract_svelte_ast_type_members();
17354
+ init_resolve_svelte_type_checker();
17355
+ init_resolve_svelte_external_type_readers();
17356
+ init_extract_svelte_ast_type_members();
17357
+ init_resolve_svelte_type_checker();
17358
+ }
17359
+ });
17360
+
17361
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js
17362
+ var init_extract_svelte_from_destructure = __esm({
17363
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-from-destructure.js"() {
17364
+ "use strict";
17365
+ init_render_svelte_type();
17366
+ }
17367
+ });
17368
+
17369
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.js
17370
+ var init_extract_svelte_type_member_props = __esm({
17371
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-type-member-props.js"() {
17372
+ "use strict";
17373
+ }
17374
+ });
17375
+
17376
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js
17377
+ var init_classify_svelte_props_annotation = __esm({
17378
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/classify-svelte-props-annotation.js"() {
17379
+ "use strict";
17380
+ init_find_svelte_script_declarations();
17381
+ }
17382
+ });
17383
+
17384
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.js
17385
+ var init_extract_svelte_props = __esm({
17386
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-svelte-props.js"() {
17387
+ "use strict";
17388
+ init_resolve_svelte_type_members();
17389
+ init_extract_svelte_from_destructure();
17390
+ init_extract_svelte_type_member_props();
17391
+ init_classify_svelte_props_annotation();
17392
+ init_classify_svelte_props_annotation();
17393
+ }
17394
+ });
17395
+
17396
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.js
17397
+ var init_resolve_dts_location = __esm({
17398
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-dts-location.js"() {
17399
+ "use strict";
17400
+ }
17401
+ });
17402
+
17403
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.js
17404
+ import { Project as Project12, ScriptTarget as ScriptTarget4, ModuleKind as ModuleKind4, ts as ts5 } from "ts-morph";
17405
+ var init_resolve_svelte_unresolved_retry = __esm({
17406
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-unresolved-retry.js"() {
17407
+ "use strict";
17408
+ init_compute_extraction_score();
17409
+ init_extract_svelte_template_slots();
17410
+ init_find_svelte_script_declarations();
17411
+ init_resolve_svelte_type_members();
17412
+ init_extract_svelte_props();
17413
+ init_resolve_dts_location();
17414
+ }
17415
+ });
17416
+
17417
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.js
17418
+ var init_resolve_svelte_allowed_components = __esm({
17419
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/resolve-svelte-allowed-components.js"() {
17420
+ "use strict";
17421
+ init_collect_allowed_component_names();
17422
+ init_build_component_lookup_maps();
17423
+ }
17424
+ });
17425
+
17426
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.js
17427
+ import { parse as parseSvelte2 } from "svelte/compiler";
17428
+ var init_extract_from_svelte_file = __esm({
17429
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/helpers/extract-from-svelte-file.js"() {
17430
+ "use strict";
17431
+ init_compute_extraction_score();
17432
+ init_get_svelte_component_name();
17433
+ init_extract_svelte_template_slots();
17434
+ init_find_svelte_script_declarations();
17435
+ init_extract_svelte_props();
17436
+ }
17437
+ });
17438
+
17439
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/extractor.js
17440
+ var init_extractor4 = __esm({
17441
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/svelte/extractor.js"() {
17442
+ "use strict";
17443
+ init_file_workers();
17444
+ init_get_svelte_component_name();
17445
+ init_resolve_svelte_unresolved_retry();
17446
+ init_resolve_svelte_allowed_components();
17447
+ init_extract_from_svelte_file();
17448
+ }
17449
+ });
17450
+
17451
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.js
17452
+ import { Node as Node41, SyntaxKind as SyntaxKind16 } from "ts-morph";
17453
+ var init_resolve_ast_object = __esm({
17454
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/resolve-ast-object.js"() {
17455
+ "use strict";
17456
+ init_tsx_shared();
17457
+ }
17458
+ });
17459
+
17460
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.js
17461
+ import { Node as Node42 } from "ts-morph";
17462
+ var init_extract_vue_tsx_props = __esm({
17463
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-props.js"() {
17464
+ "use strict";
17465
+ init_tsx_shared();
17466
+ init_resolve_ast_object();
17467
+ }
17468
+ });
17469
+
17470
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.js
17471
+ import { Node as Node43, SyntaxKind as SyntaxKind17 } from "ts-morph";
17472
+ var init_extract_vue_tsx_slots = __esm({
17473
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/helpers/extract-vue-tsx-slots.js"() {
17474
+ "use strict";
17475
+ init_tsx_shared();
17476
+ }
17477
+ });
17478
+
17479
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/extractor.js
17480
+ import { Node as Node44 } from "ts-morph";
17481
+ var init_extractor5 = __esm({
17482
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue-tsx/extractor.js"() {
17483
+ "use strict";
17484
+ init_tsx_shared();
17485
+ init_extract_vue_tsx_props();
17486
+ init_extract_vue_tsx_slots();
17487
+ }
17488
+ });
17489
+
17490
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.js
17491
+ var init_resolve_vue_component_name = __esm({
17492
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-vue-component-name.js"() {
17493
+ "use strict";
17494
+ }
17495
+ });
17496
+
17497
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.js
17498
+ var init_extract_vue_slots = __esm({
17499
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-slots.js"() {
17500
+ "use strict";
17501
+ }
17502
+ });
17503
+
17504
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.js
17505
+ import { Node as Node45 } from "ts-morph";
17506
+ var init_extract_vue_object_props = __esm({
17507
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-object-props.js"() {
17508
+ "use strict";
17509
+ }
17510
+ });
17511
+
17512
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.js
17513
+ import { Project as Project13, Node as Node46 } from "ts-morph";
17514
+ var init_extract_vue_setup_object_props = __esm({
17515
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-object-props.js"() {
17516
+ "use strict";
17517
+ init_resolve_import_file_path();
17518
+ init_extract_vue_object_props();
17519
+ }
17520
+ });
17521
+
17522
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.js
17523
+ import { Project as Project14, Node as Node47 } from "ts-morph";
17524
+ var init_extract_vue_setup_props = __esm({
17525
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-setup-props.js"() {
17526
+ "use strict";
17527
+ init_resolve_type_symbol();
17528
+ init_extract_vue_setup_object_props();
17529
+ }
17530
+ });
17531
+
17532
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.js
17533
+ var init_workspace_package_dirs = __esm({
17534
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/workspace-package-dirs.js"() {
17535
+ "use strict";
17536
+ }
17537
+ });
17538
+
17539
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.js
17540
+ var init_resolve_workspace_module = __esm({
17541
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/resolve-workspace-module.js"() {
17542
+ "use strict";
17543
+ init_workspace_package_dirs();
17544
+ }
17545
+ });
17546
+
17547
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.js
17548
+ import { parse as parseSFC2 } from "@vue/compiler-sfc";
17549
+ import { Node as Node48, Project as Project15 } from "ts-morph";
17550
+ var init_extract_vue_options_props = __esm({
17551
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/helpers/extract-vue-options-props.js"() {
17552
+ "use strict";
17553
+ init_resolve_workspace_module();
17554
+ init_extract_vue_object_props();
17555
+ init_extract_vue_object_props();
17556
+ }
17557
+ });
17558
+
17559
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/extractor.js
17560
+ import { parse as parseSFC3 } from "@vue/compiler-sfc";
17561
+ var init_extractor6 = __esm({
17562
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/vue/extractor.js"() {
17563
+ "use strict";
17564
+ init_file_workers();
17565
+ init_result_normalizer();
17566
+ init_resolve_vue_component_name();
17567
+ init_extract_vue_slots();
17568
+ init_extract_vue_setup_props();
17569
+ init_extract_vue_options_props();
17570
+ }
17571
+ });
17572
+
17573
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.js
17574
+ import { Node as Node49 } from "ts-morph";
17575
+ var init_extract_wc_observed_attrs = __esm({
17576
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-observed-attrs.js"() {
17577
+ "use strict";
17578
+ }
17579
+ });
17580
+
17581
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.js
17582
+ var init_detect_wc_non_public_members = __esm({
17583
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/detect-wc-non-public-members.js"() {
17584
+ "use strict";
17585
+ }
17586
+ });
17587
+
17588
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.js
17589
+ var init_extract_wc_accessor_props = __esm({
17590
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-accessor-props.js"() {
17591
+ "use strict";
17592
+ init_detect_wc_non_public_members();
17593
+ }
17594
+ });
17595
+
17596
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.js
17597
+ var init_extract_wc_jsdoc_attr_props = __esm({
17598
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-jsdoc-attr-props.js"() {
17599
+ "use strict";
17600
+ }
17601
+ });
17602
+
17603
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.js
17604
+ import { Node as Node50 } from "ts-morph";
17605
+ var init_extract_wc_class_properties = __esm({
17606
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-class-properties.js"() {
17607
+ "use strict";
17608
+ init_detect_wc_non_public_members();
17609
+ }
17610
+ });
17611
+
17612
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.js
17613
+ var init_merge_wc_prop_lists = __esm({
17614
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/merge-wc-prop-lists.js"() {
17615
+ "use strict";
17616
+ init_extract_wc_observed_attrs();
17617
+ init_extract_wc_accessor_props();
17618
+ init_extract_wc_jsdoc_attr_props();
17619
+ init_extract_wc_class_properties();
17620
+ }
17621
+ });
17622
+
17623
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.js
17624
+ import { Node as Node51 } from "ts-morph";
17625
+ var init_resolve_wc_decorator_tag = __esm({
17626
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-decorator-tag.js"() {
17627
+ "use strict";
17628
+ }
17629
+ });
17630
+
17631
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.js
17632
+ import { Node as Node52 } from "ts-morph";
17633
+ var init_resolve_wc_import_source = __esm({
17634
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import-source.js"() {
17635
+ "use strict";
17636
+ }
17637
+ });
17638
+
17639
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.js
17640
+ import { Node as Node53, SyntaxKind as SyntaxKind18 } from "ts-morph";
17641
+ var init_resolve_wc_import = __esm({
17642
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-import.js"() {
17643
+ "use strict";
17644
+ init_resolve_wc_import_source();
17645
+ }
17646
+ });
17647
+
17648
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.js
17649
+ import { Node as Node54, SyntaxKind as SyntaxKind19 } from "ts-morph";
17650
+ var init_resolve_wc_sibling_definition = __esm({
17651
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-sibling-definition.js"() {
17652
+ "use strict";
17653
+ init_resolve_wc_import();
17654
+ }
17655
+ });
17656
+
17657
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.js
17658
+ var init_resolve_wc_tag_name = __esm({
17659
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-tag-name.js"() {
17660
+ "use strict";
17661
+ init_tsx_shared();
17662
+ init_resolve_wc_decorator_tag();
17663
+ init_resolve_wc_sibling_definition();
17664
+ }
17665
+ });
17666
+
17667
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.js
17668
+ import { Node as Node55 } from "ts-morph";
17669
+ var init_collect_wc_html_templates = __esm({
17670
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/collect-wc-html-templates.js"() {
17671
+ "use strict";
17672
+ init_resolve_wc_import();
17673
+ }
17674
+ });
17675
+
17676
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.js
17677
+ import { Node as Node56 } from "ts-morph";
17678
+ var init_extract_wc_template_content = __esm({
17679
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-template-content.js"() {
17680
+ "use strict";
17681
+ init_resolve_wc_import();
17682
+ init_extract_wc_slots();
17683
+ init_collect_wc_html_templates();
17684
+ }
17685
+ });
17686
+
17687
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.js
17688
+ var init_extract_wc_slots = __esm({
17689
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-slots.js"() {
17690
+ "use strict";
17691
+ init_collect_jsdoc_slot_comments();
17692
+ init_extract_wc_template_content();
17693
+ }
17694
+ });
17695
+
17696
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.js
17697
+ import { Node as Node57, SyntaxKind as SyntaxKind20 } from "ts-morph";
17698
+ var init_resolve_wc_base_class = __esm({
17699
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/resolve-wc-base-class.js"() {
17700
+ "use strict";
17701
+ init_resolve_wc_import();
17702
+ }
17703
+ });
17704
+
17705
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.js
17706
+ var init_extract_wc_inheritance = __esm({
17707
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/helpers/extract-wc-inheritance.js"() {
17708
+ "use strict";
17709
+ init_merge_wc_prop_lists();
17710
+ init_extract_wc_slots();
17711
+ init_resolve_wc_base_class();
17712
+ }
17713
+ });
17714
+
17715
+ // packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/extractor.js
17716
+ import { Project as Project16 } from "ts-morph";
17717
+ var init_extractor7 = __esm({
17718
+ "packages/experience-design-system-extraction/dist/src/extract/framework-adapters/web-components/extractor.js"() {
17719
+ "use strict";
17720
+ init_result_normalizer();
17721
+ init_project_source_files();
17722
+ init_merge_wc_prop_lists();
17723
+ init_resolve_wc_tag_name();
17724
+ init_extract_wc_slots();
17725
+ init_extract_wc_inheritance();
17726
+ }
17727
+ });
17728
+
17729
+ // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/register-extractors.js
17730
+ var init_register_extractors = __esm({
17731
+ "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/register-extractors.js"() {
17732
+ "use strict";
17733
+ init_extractor();
17734
+ init_extractor2();
17735
+ init_extractor3();
17736
+ init_extractor4();
17737
+ init_extractor5();
17738
+ init_extractor6();
17739
+ init_extractor7();
17740
+ }
17741
+ });
17742
+
17743
+ // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/run-extractor-batches.js
17744
+ var init_run_extractor_batches = __esm({
17745
+ "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/run-extractor-batches.js"() {
17746
+ "use strict";
17747
+ }
17748
+ });
17749
+
17750
+ // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.js
17751
+ var init_collect_sveltekit_route_exclusions = __esm({
17752
+ "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/collect-sveltekit-route-exclusions.js"() {
17753
+ "use strict";
17754
+ }
17755
+ });
17756
+
17757
+ // packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/filter-hook-components.js
17758
+ var init_filter_hook_components = __esm({
17759
+ "packages/experience-design-system-extraction/dist/src/extract/services/extraction/helpers/filter-hook-components.js"() {
17760
+ "use strict";
17761
+ }
17762
+ });
17763
+
17764
+ // packages/experience-design-system-extraction/dist/src/extract/services/extraction/extract-components.js
17765
+ var init_extract_components = __esm({
17766
+ "packages/experience-design-system-extraction/dist/src/extract/services/extraction/extract-components.js"() {
17767
+ "use strict";
17768
+ init_deduplicate_components();
17769
+ init_register_extractors();
17770
+ init_run_extractor_batches();
17771
+ init_collect_sveltekit_route_exclusions();
17772
+ init_filter_hook_components();
17773
+ }
17774
+ });
17775
+
17776
+ // packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/check-prop-types.js
17777
+ function isStringLiteralUnion(type) {
17778
+ return type.includes("|") && type.includes("'");
17779
+ }
17780
+ function isSimpleType(type) {
17781
+ const t = type.trim();
17782
+ if (t === "string" || t === "boolean" || t === "number")
17783
+ return true;
17784
+ return isStringLiteralUnion(t);
17785
+ }
17786
+ function isBooleanType(type) {
17787
+ return type.trim() === "boolean";
17788
+ }
17789
+ function isStringType(type) {
17790
+ return type.trim() === "string";
17791
+ }
17792
+ function isNumberType(type) {
17793
+ return type.trim() === "number";
17794
+ }
17795
+ function isComplexType(type) {
17796
+ return !isSimpleType(type);
17797
+ }
17798
+ var init_check_prop_types = __esm({
17799
+ "packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/check-prop-types.js"() {
17800
+ "use strict";
17801
+ }
17802
+ });
17803
+
17804
+ // packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/detect-dom-props.js
17805
+ function isDomPassThroughProp(name) {
17806
+ if (DOM_PASS_THROUGH_PROPS.has(name))
17807
+ return true;
17808
+ if (/^aria[-A-Z]/.test(name))
17809
+ return true;
17810
+ return name.startsWith("data-");
17811
+ }
17812
+ var DOM_PASS_THROUGH_PROPS;
17813
+ var init_detect_dom_props = __esm({
17814
+ "packages/experience-design-system-extraction/dist/src/extract/services/classification/helpers/detect-dom-props.js"() {
17815
+ "use strict";
17816
+ DOM_PASS_THROUGH_PROPS = /* @__PURE__ */ new Set([
17817
+ // Bare HTML / framework styling pass-through
17818
+ "className",
17819
+ "class",
17820
+ "classes",
17821
+ "classNames",
17822
+ "rootClassName",
17823
+ "prefixCls",
17824
+ "style",
17825
+ "styles",
17826
+ // Bare HTML attributes
17827
+ "id",
17828
+ "role",
17829
+ "tabIndex",
17830
+ "tabindex",
17831
+ "htmlFor",
17832
+ "for",
17833
+ "slot",
17834
+ "is",
17835
+ "lang",
17836
+ "dir",
17837
+ "hidden",
17838
+ "draggable",
17839
+ "spellCheck",
17840
+ "spellcheck",
17841
+ "contentEditable",
17842
+ "contenteditable",
17843
+ "inputMode",
17844
+ "inputmode",
17845
+ "autoComplete",
17846
+ "autocomplete",
17847
+ "autoFocus",
17848
+ "autofocus",
17849
+ "translate",
17850
+ "part",
17851
+ "exportparts",
17852
+ "aria",
17853
+ // Framework theming / pass-through escape hatches — dev-facing, never marketer-configurable
17854
+ "dt",
17855
+ "pt",
17856
+ "ptOptions",
17857
+ "unstyled",
17858
+ "sx",
17859
+ // Polymorphic component props — change rendered HTML/component, not marketer-visible behavior
17860
+ "as",
17861
+ "element",
17862
+ "component",
17863
+ // QA / vendor test attributes
17864
+ "dataQa",
17865
+ "data-qa",
17866
+ // Vue v-model internals — framework wiring, never marketer-configurable
17867
+ "modelValue",
17868
+ "modelModifiers"
17869
+ ]);
17870
+ }
17871
+ });
17872
+
17873
+ // packages/experience-design-system-extraction/dist/src/extract/services/classification/classify-component-props.js
17874
+ function preClassifyProp(prop) {
17875
+ const { name, type } = prop;
17876
+ if (/^on[A-Z]/.test(name) || type.includes("=> void") || type.includes("EventHandler")) {
17877
+ return { category: "exclude" };
17878
+ }
17879
+ if (name === "ref" || name === "innerRef" || type.includes("Ref<") || type.includes("RefObject<")) {
17880
+ return { category: "exclude" };
17881
+ }
17882
+ if (name === "testId" || name === "data-testid" || name === "dataTestId") {
17883
+ return { category: "exclude" };
17884
+ }
17885
+ if (name === "key") {
17886
+ return { category: "exclude" };
17887
+ }
17888
+ if (type.includes("Dispatch<") || type.includes("SetStateAction")) {
17889
+ return { category: "exclude" };
17890
+ }
17891
+ if (isDomPassThroughProp(name)) {
17892
+ return { category: "exclude" };
17893
+ }
17894
+ if (name === "name" && prop.domAttribute) {
17895
+ return { category: "exclude" };
17896
+ }
17897
+ if (isStringLiteralUnion(type)) {
17898
+ return { category: "design", cdfTypeHint: "enum" };
17899
+ }
17900
+ if (!isComplexType(type)) {
17901
+ const designNameStart = /^(variant|size|spacing|gap|color|bg|theme|align|layout|orientation|position)/i;
17902
+ const designNameEnd = /(Color|Size|Variant|Style)$/;
17903
+ if (designNameStart.test(name) || designNameEnd.test(name)) {
17904
+ return { category: "design", cdfTypeHint: "string" };
17905
+ }
17906
+ }
17907
+ if (isBooleanType(type)) {
17908
+ const stateNames = ["disabled", "loading", "expanded", "isOpen", "selected", "checked", "active", "preview"];
17909
+ if (stateNames.includes(name)) {
17910
+ return { category: "state", cdfTypeHint: "boolean" };
17911
+ }
17912
+ }
17913
+ if (isBooleanType(type)) {
17914
+ const visualToggle = /^(hide|show|enable|disable|vertical|horizontal|reverse|bold|italic|imageOn|with)/i;
17915
+ if (visualToggle.test(name)) {
17916
+ return { category: "design", cdfTypeHint: "boolean" };
17917
+ }
17918
+ }
17919
+ if (name === "componentId" || name === "sectionKey" || name === "locale" || name === "variantIndex") {
17920
+ return { category: "state", cdfTypeHint: "string" };
17921
+ }
17922
+ if (isStringType(type)) {
17923
+ const urlNameStart = /^(href|url|link|src)/i;
17924
+ const urlNameEnd = /(Url|Href|Link|Src)$/;
17925
+ if (urlNameStart.test(name) || urlNameEnd.test(name)) {
17926
+ return { category: "content", cdfTypeHint: "string" };
17927
+ }
17928
+ }
17929
+ if (isStringType(type)) {
17930
+ const textNameStart = /^(label|title|text|description|caption|heading|subheading|body|alt|name|placeholder|summary)/i;
17931
+ const textNameEnd = /(Text|Label|Title|Name)$/;
17932
+ if (textNameStart.test(name) || textNameEnd.test(name)) {
17933
+ return { category: "content", cdfTypeHint: "string" };
17934
+ }
17935
+ }
17936
+ if (isStringType(type)) {
17937
+ return { category: "content", cdfTypeHint: "string" };
17938
+ }
17939
+ if (isBooleanType(type)) {
17940
+ return { category: "design", cdfTypeHint: "boolean" };
17941
+ }
17942
+ if (isNumberType(type)) {
17943
+ return { category: "design", cdfTypeHint: "string" };
17944
+ }
17945
+ return void 0;
17946
+ }
17947
+ function preClassifyComponent(component) {
17948
+ const props = component.props.flatMap((prop) => {
17949
+ const result = preClassifyProp(prop);
17950
+ if (result?.category === "exclude") {
17951
+ return [];
17952
+ }
17953
+ const { domAttribute: _domAttribute, ...authorableProp } = prop;
17954
+ if (prop.category) {
17955
+ return [authorableProp];
17956
+ }
17957
+ if (!result) {
17958
+ return [authorableProp];
17959
+ }
17960
+ return [
17961
+ {
17962
+ ...authorableProp,
17963
+ category: result.category
17964
+ }
17965
+ ];
17966
+ });
17967
+ return { ...component, props };
17968
+ }
17969
+ var init_classify_component_props = __esm({
17970
+ "packages/experience-design-system-extraction/dist/src/extract/services/classification/classify-component-props.js"() {
17971
+ "use strict";
17972
+ init_check_prop_types();
17973
+ init_detect_dom_props();
17974
+ }
17975
+ });
17976
+
17977
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.js
16479
17978
  function isHandlerOrRefProp(prop) {
16480
17979
  if (HANDLER_TYPE_PATTERN.test(prop.type))
16481
17980
  return true;
@@ -16526,34 +18025,15 @@ function hasNoAuthoringSurface(component) {
16526
18025
  return { skip: false };
16527
18026
  }
16528
18027
  var HANDLER_TYPE_PATTERN, REF_TYPE_PATTERN;
16529
- var init_non_authorable_filter = __esm({
16530
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/non-authorable-filter.js"() {
18028
+ var init_evaluate_authorability = __esm({
18029
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/authorability/evaluate-authorability.js"() {
16531
18030
  "use strict";
16532
18031
  HANDLER_TYPE_PATTERN = /=>|EventHandler|Dispatch<|SetStateAction/;
16533
18032
  REF_TYPE_PATTERN = /Ref<|RefObject<|MutableRefObject/;
16534
18033
  }
16535
18034
  });
16536
18035
 
16537
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/review-reasons.js
16538
- var HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON, POSSIBLE_DATA_FETCH_WRAPPER_REASON, ZERO_SURFACE_RENDERED_UI_REASON;
16539
- var init_review_reasons = __esm({
16540
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/review-reasons.js"() {
16541
- "use strict";
16542
- HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON = "data-fetch-wrapper";
16543
- POSSIBLE_DATA_FETCH_WRAPPER_REASON = "possible-data-fetch-wrapper";
16544
- ZERO_SURFACE_RENDERED_UI_REASON = "zero-surface:rendered-ui";
16545
- }
16546
- });
16547
-
16548
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/index.js
16549
- var init_constants7 = __esm({
16550
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/constants/index.js"() {
16551
- "use strict";
16552
- init_review_reasons();
16553
- }
16554
- });
16555
-
16556
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/framework-adapters/shared/parse-imported-names.js
18036
+ // packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/parse-source-imports.js
16557
18037
  function parseImportedNames(importClause) {
16558
18038
  const trimmed = importClause.trim();
16559
18039
  if (!trimmed)
@@ -16577,14 +18057,13 @@ function parseImportedNames(importClause) {
16577
18057
  }
16578
18058
  return names;
16579
18059
  }
16580
- var init_parse_imported_names = __esm({
16581
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/framework-adapters/shared/parse-imported-names.js"() {
18060
+ var init_parse_source_imports = __esm({
18061
+ "packages/experience-design-system-extraction/dist/src/extract/helpers/evidence/parse-source-imports.js"() {
16582
18062
  "use strict";
16583
18063
  }
16584
18064
  });
16585
18065
 
16586
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/evidence/source-inspection.js
16587
- import { readFile as readFile15 } from "node:fs/promises";
18066
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.js
16588
18067
  function escapeRegExp(value) {
16589
18068
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
16590
18069
  }
@@ -16619,11 +18098,11 @@ function hasSiblingForwardRender(sourceText, siblingImports) {
16619
18098
  function hasVisibleUiRender(sourceText) {
16620
18099
  return /return\s*(?:\(|<)/.test(sourceText) && VISIBLE_UI_TAG_PATTERN.test(sourceText);
16621
18100
  }
16622
- function infraPropNames(component) {
18101
+ function collectInfraPropNames(component) {
16623
18102
  const props = component.props.map((prop) => prop.name);
16624
18103
  return props.length > 0 && props.every((prop) => INFRA_PROP_NAMES.has(prop)) ? props : [];
16625
18104
  }
16626
- function scoreToConfidence(score) {
18105
+ function mapScoreToWrapperConfidence(score) {
16627
18106
  if (score <= 0)
16628
18107
  return 0;
16629
18108
  if (score <= 2)
@@ -16634,9 +18113,26 @@ function scoreToConfidence(score) {
16634
18113
  return 4;
16635
18114
  return 5;
16636
18115
  }
16637
- function dedupeReasons(reasons) {
16638
- return [...new Set(reasons)];
18116
+ function dedupeStrings(values) {
18117
+ return [...new Set(values)];
16639
18118
  }
18119
+ var INFRA_PROP_NAMES, VISIBLE_UI_TAG_PATTERN, GENERATED_IMPORT_PATTERN, GENERATED_QUERY_HOOK_PATTERN, GQL_FILENAME_PATTERN, LOADING_NULL_GUARD_PATTERN, IMPORT_PATTERN;
18120
+ var init_detect_data_wrapper_patterns = __esm({
18121
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/detect-data-wrapper-patterns.js"() {
18122
+ "use strict";
18123
+ init_parse_source_imports();
18124
+ INFRA_PROP_NAMES = /* @__PURE__ */ new Set(["id", "locale", "preview", "slug", "topic", "previousComponent", "__typename"]);
18125
+ VISIBLE_UI_TAG_PATTERN = /<(?:[A-Z][A-Za-z0-9_.]*|div|span|section|main|article|header|footer|nav|aside|img|video|p|h[1-6]|ul|ol|li|button|input|textarea|select|form|label|table|tbody|thead|tr|td|th)\b/;
18126
+ GENERATED_IMPORT_PATTERN = /from\s+['"][^'"]*__generated[^'"]*['"]/;
18127
+ GENERATED_QUERY_HOOK_PATTERN = /\buse[A-Z][A-Za-z0-9]*(?:Lazy|Suspense)?Query\s*\(/;
18128
+ GQL_FILENAME_PATTERN = /(?:-gql|-ggl)\.[cm]?[jt]sx?$/i;
18129
+ LOADING_NULL_GUARD_PATTERN = /if\s*\([^)]*(?:isLoading|loading|!data|!\w+Collection|!\w+Item|!\w+)\s*[^)]*\)\s*return\s+null\b/;
18130
+ IMPORT_PATTERN = /import\s+(?:type\s+)?(.+?)\s+from\s+['"]([^'"]+)['"]/g;
18131
+ }
18132
+ });
18133
+
18134
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/inspect-component-source.js
18135
+ import { readFile as readFile15 } from "node:fs/promises";
16640
18136
  async function inspectComponentSource(component) {
16641
18137
  let sourceText = "";
16642
18138
  try {
@@ -16651,7 +18147,7 @@ async function inspectComponentSource(component) {
16651
18147
  const reviewReasons = [];
16652
18148
  let wrapperScore = 0;
16653
18149
  const hasGeneratedQueryHook = GENERATED_IMPORT_PATTERN.test(sourceText) && GENERATED_QUERY_HOOK_PATTERN.test(sourceText);
16654
- const infraProps = infraPropNames(component);
18150
+ const infraProps = collectInfraPropNames(component);
16655
18151
  const siblingImports = collectSiblingRendererImports(sourceText);
16656
18152
  if (GQL_FILENAME_PATTERN.test(component.source)) {
16657
18153
  reviewReasons.push("data-wrapper:gql-filename");
@@ -16681,7 +18177,7 @@ async function inspectComponentSource(component) {
16681
18177
  reviewReasons.push("data-wrapper:loading-null-guard");
16682
18178
  wrapperScore += 1;
16683
18179
  }
16684
- const wrapperConfidence = scoreToConfidence(wrapperScore);
18180
+ const wrapperConfidence = mapScoreToWrapperConfidence(wrapperScore);
16685
18181
  if (wrapperConfidence >= 4) {
16686
18182
  reviewReasons.unshift(HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON);
16687
18183
  } else if (wrapperConfidence === 3) {
@@ -16693,7 +18189,7 @@ async function inspectComponentSource(component) {
16693
18189
  }
16694
18190
  return {
16695
18191
  wrapperConfidence,
16696
- reviewReasons: dedupeReasons(reviewReasons),
18192
+ reviewReasons: dedupeStrings(reviewReasons),
16697
18193
  keepDespiteZeroSurface
16698
18194
  };
16699
18195
  }
@@ -16724,25 +18220,92 @@ function describeReviewReason(reason) {
16724
18220
  }
16725
18221
  }
16726
18222
  function describeReviewReasons(reasons) {
16727
- return dedupeReasons(reasons.map(describeReviewReason));
18223
+ return dedupeStrings(reasons.map(describeReviewReason));
16728
18224
  }
16729
- var INFRA_PROP_NAMES, VISIBLE_UI_TAG_PATTERN, GENERATED_IMPORT_PATTERN, GENERATED_QUERY_HOOK_PATTERN, GQL_FILENAME_PATTERN, LOADING_NULL_GUARD_PATTERN, IMPORT_PATTERN;
16730
- var init_source_inspection = __esm({
16731
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/evidence/source-inspection.js"() {
18225
+ var HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON, POSSIBLE_DATA_FETCH_WRAPPER_REASON, ZERO_SURFACE_RENDERED_UI_REASON;
18226
+ var init_inspect_component_source = __esm({
18227
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/inspect-component-source.js"() {
18228
+ "use strict";
18229
+ init_detect_data_wrapper_patterns();
18230
+ HIGH_CONFIDENCE_DATA_FETCH_WRAPPER_REASON = "data-fetch-wrapper";
18231
+ POSSIBLE_DATA_FETCH_WRAPPER_REASON = "possible-data-fetch-wrapper";
18232
+ ZERO_SURFACE_RENDERED_UI_REASON = "zero-surface:rendered-ui";
18233
+ }
18234
+ });
18235
+
18236
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/validate-extracted-components.js
18237
+ function validateExtractedComponents2(components) {
18238
+ const nameCounts = /* @__PURE__ */ new Map();
18239
+ for (const component of components) {
18240
+ const key = component.name.trim();
18241
+ nameCounts.set(key, (nameCounts.get(key) ?? 0) + 1);
18242
+ }
18243
+ return components.map((component) => {
18244
+ const issues = [];
18245
+ if (!component.name.trim()) {
18246
+ issues.push({
18247
+ severity: "error",
18248
+ code: "EMPTY_COMPONENT_NAME",
18249
+ message: "Component name must not be empty"
18250
+ });
18251
+ }
18252
+ for (let i = 0; i < component.props.length; i++) {
18253
+ if (!component.props[i].name.trim()) {
18254
+ issues.push({
18255
+ severity: "error",
18256
+ code: "EMPTY_PROP_NAME",
18257
+ message: `Prop at index ${i} has an empty name`,
18258
+ field: `props[${i}].name`
18259
+ });
18260
+ }
18261
+ }
18262
+ for (let i = 0; i < component.slots.length; i++) {
18263
+ if (!component.slots[i].name.trim()) {
18264
+ issues.push({
18265
+ severity: "warning",
18266
+ code: "EMPTY_SLOT_NAME",
18267
+ message: `Slot at index ${i} has an empty name`,
18268
+ field: `slots[${i}].name`
18269
+ });
18270
+ }
18271
+ }
18272
+ const propNames = new Set(component.props.map((p) => p.name.trim()).filter(Boolean));
18273
+ for (let i = 0; i < component.slots.length; i++) {
18274
+ const slotName = component.slots[i].name.trim();
18275
+ if (slotName && propNames.has(slotName)) {
18276
+ issues.push({
18277
+ severity: "error",
18278
+ code: "PROP_SLOT_NAME_COLLISION",
18279
+ message: `"${slotName}" is used as both a prop name and a slot name`,
18280
+ field: `slots[${i}].name`
18281
+ });
18282
+ }
18283
+ }
18284
+ const nameKey = component.name.trim();
18285
+ if (nameKey && (nameCounts.get(nameKey) ?? 0) > 1) {
18286
+ issues.push({
18287
+ severity: "error",
18288
+ code: "DUPLICATE_COMPONENT_NAME",
18289
+ message: `Component name "${component.name}" appears more than once in the extracted set`
18290
+ });
18291
+ }
18292
+ if (component.props.length === 0 && component.slots.length === 0) {
18293
+ issues.push({
18294
+ severity: "warning",
18295
+ code: "EMPTY_COMPONENT",
18296
+ message: "Component has no props or slots and will be filtered out during generation"
18297
+ });
18298
+ }
18299
+ return { ...component, validationIssues: issues };
18300
+ });
18301
+ }
18302
+ var init_validate_extracted_components = __esm({
18303
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/helpers/inspection/validate-extracted-components.js"() {
16732
18304
  "use strict";
16733
- init_constants7();
16734
- init_parse_imported_names();
16735
- INFRA_PROP_NAMES = /* @__PURE__ */ new Set(["id", "locale", "preview", "slug", "topic", "previousComponent", "__typename"]);
16736
- VISIBLE_UI_TAG_PATTERN = /<(?:[A-Z][A-Za-z0-9_.]*|div|span|section|main|article|header|footer|nav|aside|img|video|p|h[1-6]|ul|ol|li|button|input|textarea|select|form|label|table|tbody|thead|tr|td|th)\b/;
16737
- GENERATED_IMPORT_PATTERN = /from\s+['"][^'"]*__generated[^'"]*['"]/;
16738
- GENERATED_QUERY_HOOK_PATTERN = /\buse[A-Z][A-Za-z0-9]*(?:Lazy|Suspense)?Query\s*\(/;
16739
- GQL_FILENAME_PATTERN = /(?:-gql|-ggl)\.[cm]?[jt]sx?$/i;
16740
- LOADING_NULL_GUARD_PATTERN = /if\s*\([^)]*(?:isLoading|loading|!data|!\w+Collection|!\w+Item|!\w+)\s*[^)]*\)\s*return\s+null\b/;
16741
- IMPORT_PATTERN = /import\s+(?:type\s+)?(.+?)\s+from\s+['"]([^'"]+)['"]/g;
16742
18305
  }
16743
18306
  });
16744
18307
 
16745
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/evaluate-extraction-quality.js
18308
+ // packages/experience-design-system-extraction/dist/src/extract/services/quality/evaluate-extraction-quality.js
16746
18309
  function wrapperConfidenceToIssueCount(confidence) {
16747
18310
  if (confidence >= 4)
16748
18311
  return 2;
@@ -16769,219 +18332,87 @@ async function evaluateExtractionQuality(components, initialWarnings = []) {
16769
18332
  }
16770
18333
  if (inspection.reviewReasons.length > 0) {
16771
18334
  const reviewNotes = describeReviewReasons(inspection.reviewReasons).filter((note) => note !== "high-confidence data-fetch wrapper").join("; ");
16772
- if (reviewNotes)
16773
- warnings.push(`${component.name}: ${reviewNotes}`);
16774
- }
16775
- const extractorReasons = component.reviewReasons ?? [];
16776
- const nonAuthorableReason = retainedForReview ? [`non-authorable:${verdict.reason}`] : [];
16777
- const { confidence, reasons } = computeExtractionScore(component, {
16778
- additionalIssueCount: wrapperConfidenceToIssueCount(inspection.wrapperConfidence) + extractorReasons.length + nonAuthorableReason.length,
16779
- additionalReasons: [...extractorReasons, ...inspection.reviewReasons, ...nonAuthorableReason]
16780
- });
16781
- scoredComponents.push({
16782
- ...component,
16783
- extractionConfidence: confidence,
16784
- reviewReasons: reasons,
16785
- needsReview: deriveNeedsReview(confidence) || inspection.wrapperConfidence >= 4 || inspection.keepDespiteZeroSurface || retainedForReview || extractorReasons.includes("props-type-unresolved") || (component.needsReview ?? false)
16786
- });
16787
- }
16788
- return {
16789
- components: validateExtractedComponents(scoredComponents),
16790
- warnings
16791
- };
16792
- }
16793
- var init_evaluate_extraction_quality = __esm({
16794
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/quality/evaluate-extraction-quality.js"() {
16795
- "use strict";
16796
- init_non_authorable_filter();
16797
- init_scoring();
16798
- init_source_inspection();
16799
- init_validate3();
16800
- }
16801
- });
16802
-
16803
- // packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/pre-classify.js
16804
- function isStringLiteralUnion(type) {
16805
- return type.includes("|") && type.includes("'");
16806
- }
16807
- function isSimpleType(type) {
16808
- const t = type.trim();
16809
- if (t === "string" || t === "boolean" || t === "number")
16810
- return true;
16811
- return isStringLiteralUnion(t);
16812
- }
16813
- function isBooleanType(type) {
16814
- return type.trim() === "boolean";
16815
- }
16816
- function isStringType(type) {
16817
- return type.trim() === "string";
16818
- }
16819
- function isNumberType(type) {
16820
- return type.trim() === "number";
16821
- }
16822
- function isComplexType(type) {
16823
- return !isSimpleType(type);
16824
- }
16825
- function isDomPassThroughProp(name) {
16826
- if (DOM_PASS_THROUGH_PROPS.has(name))
16827
- return true;
16828
- if (/^aria[-A-Z]/.test(name))
16829
- return true;
16830
- return name.startsWith("data-");
16831
- }
16832
- function preClassifyProp(prop) {
16833
- const { name, type } = prop;
16834
- if (/^on[A-Z]/.test(name) || type.includes("=> void") || type.includes("EventHandler")) {
16835
- return { category: "exclude" };
16836
- }
16837
- if (name === "ref" || name === "innerRef" || type.includes("Ref<") || type.includes("RefObject<")) {
16838
- return { category: "exclude" };
16839
- }
16840
- if (name === "testId" || name === "data-testid" || name === "dataTestId") {
16841
- return { category: "exclude" };
16842
- }
16843
- if (name === "key") {
16844
- return { category: "exclude" };
16845
- }
16846
- if (type.includes("Dispatch<") || type.includes("SetStateAction")) {
16847
- return { category: "exclude" };
16848
- }
16849
- if (isDomPassThroughProp(name)) {
16850
- return { category: "exclude" };
16851
- }
16852
- if (name === "name" && prop.domAttribute) {
16853
- return { category: "exclude" };
16854
- }
16855
- if (isStringLiteralUnion(type)) {
16856
- return { category: "design", cdfTypeHint: "enum" };
16857
- }
16858
- if (!isComplexType(type)) {
16859
- const designNameStart = /^(variant|size|spacing|gap|color|bg|theme|align|layout|orientation|position)/i;
16860
- const designNameEnd = /(Color|Size|Variant|Style)$/;
16861
- if (designNameStart.test(name) || designNameEnd.test(name)) {
16862
- return { category: "design", cdfTypeHint: "string" };
16863
- }
16864
- }
16865
- if (isBooleanType(type)) {
16866
- const stateNames = ["disabled", "loading", "expanded", "isOpen", "selected", "checked", "active", "preview"];
16867
- if (stateNames.includes(name)) {
16868
- return { category: "state", cdfTypeHint: "boolean" };
16869
- }
16870
- }
16871
- if (isBooleanType(type)) {
16872
- const visualToggle = /^(hide|show|enable|disable|vertical|horizontal|reverse|bold|italic|imageOn|with)/i;
16873
- if (visualToggle.test(name)) {
16874
- return { category: "design", cdfTypeHint: "boolean" };
16875
- }
16876
- }
16877
- if (name === "componentId" || name === "sectionKey" || name === "locale" || name === "variantIndex") {
16878
- return { category: "state", cdfTypeHint: "string" };
16879
- }
16880
- if (isStringType(type)) {
16881
- const urlNameStart = /^(href|url|link|src)/i;
16882
- const urlNameEnd = /(Url|Href|Link|Src)$/;
16883
- if (urlNameStart.test(name) || urlNameEnd.test(name)) {
16884
- return { category: "content", cdfTypeHint: "string" };
16885
- }
16886
- }
16887
- if (isStringType(type)) {
16888
- const textNameStart = /^(label|title|text|description|caption|heading|subheading|body|alt|name|placeholder|summary)/i;
16889
- const textNameEnd = /(Text|Label|Title|Name)$/;
16890
- if (textNameStart.test(name) || textNameEnd.test(name)) {
16891
- return { category: "content", cdfTypeHint: "string" };
18335
+ if (reviewNotes)
18336
+ warnings.push(`${component.name}: ${reviewNotes}`);
16892
18337
  }
18338
+ const extractorReasons = component.reviewReasons ?? [];
18339
+ const nonAuthorableReason = retainedForReview ? [`non-authorable:${verdict.reason}`] : [];
18340
+ const { confidence, reasons } = computeExtractionScore2(component, {
18341
+ additionalIssueCount: wrapperConfidenceToIssueCount(inspection.wrapperConfidence) + extractorReasons.length + nonAuthorableReason.length,
18342
+ additionalReasons: [...extractorReasons, ...inspection.reviewReasons, ...nonAuthorableReason]
18343
+ });
18344
+ scoredComponents.push({
18345
+ ...component,
18346
+ extractionConfidence: confidence,
18347
+ reviewReasons: reasons,
18348
+ needsReview: deriveNeedsReview2(confidence) || inspection.wrapperConfidence >= 4 || inspection.keepDespiteZeroSurface || retainedForReview || extractorReasons.includes("props-type-unresolved") || (component.needsReview ?? false)
18349
+ });
16893
18350
  }
16894
- if (isStringType(type)) {
16895
- return { category: "content", cdfTypeHint: "string" };
18351
+ return {
18352
+ components: validateExtractedComponents2(scoredComponents),
18353
+ warnings
18354
+ };
18355
+ }
18356
+ var init_evaluate_extraction_quality = __esm({
18357
+ "packages/experience-design-system-extraction/dist/src/extract/services/quality/evaluate-extraction-quality.js"() {
18358
+ "use strict";
18359
+ init_evaluate_authorability();
18360
+ init_compute_extraction_score();
18361
+ init_inspect_component_source();
18362
+ init_validate_extracted_components();
16896
18363
  }
16897
- if (isBooleanType(type)) {
16898
- return { category: "design", cdfTypeHint: "boolean" };
18364
+ });
18365
+
18366
+ // packages/experience-design-system-extraction/dist/src/extract/orchestrator/execute-extraction-orchestrator.js
18367
+ var init_execute_extraction_orchestrator = __esm({
18368
+ "packages/experience-design-system-extraction/dist/src/extract/orchestrator/execute-extraction-orchestrator.js"() {
18369
+ "use strict";
18370
+ init_extract_components();
18371
+ init_classify_component_props();
18372
+ init_evaluate_extraction_quality();
16899
18373
  }
16900
- if (isNumberType(type)) {
16901
- return { category: "design", cdfTypeHint: "string" };
18374
+ });
18375
+
18376
+ // packages/experience-design-system-extraction/dist/src/extract/controller/helpers/validate-endpoint-request.js
18377
+ var init_validate_endpoint_request = __esm({
18378
+ "packages/experience-design-system-extraction/dist/src/extract/controller/helpers/validate-endpoint-request.js"() {
18379
+ "use strict";
16902
18380
  }
16903
- return void 0;
16904
- }
16905
- function preClassifyComponent(component) {
16906
- const props = component.props.flatMap((prop) => {
16907
- const result = preClassifyProp(prop);
16908
- if (result?.category === "exclude") {
16909
- return [];
16910
- }
16911
- const { domAttribute: _domAttribute, ...authorableProp } = prop;
16912
- if (prop.category) {
16913
- return [authorableProp];
16914
- }
16915
- if (!result) {
16916
- return [authorableProp];
16917
- }
16918
- return [
16919
- {
16920
- ...authorableProp,
16921
- category: result.category
16922
- }
16923
- ];
16924
- });
16925
- return { ...component, props };
16926
- }
16927
- var DOM_PASS_THROUGH_PROPS;
16928
- var init_pre_classify = __esm({
16929
- "packages/experience-design-system-backend-pipeline/dist/src/steps/extraction/src/helpers/pre-classify.js"() {
18381
+ });
18382
+
18383
+ // packages/experience-design-system-extraction/dist/src/extract/controller/extract-controller.js
18384
+ var init_extract_controller = __esm({
18385
+ "packages/experience-design-system-extraction/dist/src/extract/controller/extract-controller.js"() {
16930
18386
  "use strict";
16931
- DOM_PASS_THROUGH_PROPS = /* @__PURE__ */ new Set([
16932
- // Bare HTML / framework styling pass-through
16933
- "className",
16934
- "class",
16935
- "classes",
16936
- "classNames",
16937
- "rootClassName",
16938
- "prefixCls",
16939
- "style",
16940
- "styles",
16941
- // Bare HTML attributes
16942
- "id",
16943
- "role",
16944
- "tabIndex",
16945
- "tabindex",
16946
- "htmlFor",
16947
- "for",
16948
- "slot",
16949
- "is",
16950
- "lang",
16951
- "dir",
16952
- "hidden",
16953
- "draggable",
16954
- "spellCheck",
16955
- "spellcheck",
16956
- "contentEditable",
16957
- "contenteditable",
16958
- "inputMode",
16959
- "inputmode",
16960
- "autoComplete",
16961
- "autocomplete",
16962
- "autoFocus",
16963
- "autofocus",
16964
- "translate",
16965
- "part",
16966
- "exportparts",
16967
- "aria",
16968
- // Framework theming / pass-through escape hatches — dev-facing, never marketer-configurable
16969
- "dt",
16970
- "pt",
16971
- "ptOptions",
16972
- "unstyled",
16973
- "sx",
16974
- // Polymorphic component props — change rendered HTML/component, not marketer-visible behavior
16975
- "as",
16976
- "element",
16977
- "component",
16978
- // QA / vendor test attributes
16979
- "dataQa",
16980
- "data-qa",
16981
- // Vue v-model internals — framework wiring, never marketer-configurable
16982
- "modelValue",
16983
- "modelModifiers"
16984
- ]);
18387
+ init_execute_extraction_orchestrator();
18388
+ init_validate_endpoint_request();
18389
+ }
18390
+ });
18391
+
18392
+ // packages/experience-design-system-extraction/dist/src/index.js
18393
+ var init_src3 = __esm({
18394
+ "packages/experience-design-system-extraction/dist/src/index.js"() {
18395
+ "use strict";
18396
+ init_display();
18397
+ init_extract_components();
18398
+ init_extract_controller();
18399
+ init_extractor2();
18400
+ init_extractor6();
18401
+ init_extractor5();
18402
+ init_extractor3();
18403
+ init_extractor();
18404
+ init_extractor7();
18405
+ init_extractor4();
18406
+ init_collect_allowed_component_names();
18407
+ init_evaluate_extraction_quality();
18408
+ init_evaluate_authorability();
18409
+ init_evaluate_authorability();
18410
+ init_compute_extraction_score();
18411
+ init_inspect_component_source();
18412
+ init_validate_extracted_components();
18413
+ init_parse_source_imports();
18414
+ init_detect_slot_from_prop();
18415
+ init_classify_component_props();
16985
18416
  }
16986
18417
  });
16987
18418
 
@@ -17010,7 +18441,7 @@ function emitPreClassificationExclusions(extraction, onExclusion) {
17010
18441
  var init_emit_pre_classification_exclusions = __esm({
17011
18442
  "packages/experience-design-system-backend-pipeline/dist/src/orchestrators/run-extract-and-compose-session/helpers/emit-pre-classification-exclusions.js"() {
17012
18443
  "use strict";
17013
- init_pre_classify();
18444
+ init_src3();
17014
18445
  }
17015
18446
  });
17016
18447
 
@@ -17353,8 +18784,7 @@ async function runExtractAndComposeSession(request) {
17353
18784
  var init_run_extract_and_compose_session = __esm({
17354
18785
  "packages/experience-design-system-backend-pipeline/dist/src/orchestrators/run-extract-and-compose-session/run-extract-and-compose-session.js"() {
17355
18786
  "use strict";
17356
- init_evaluate_extraction_quality();
17357
- init_pre_classify();
18787
+ init_src3();
17358
18788
  init_resolve_composition_sources();
17359
18789
  init_db();
17360
18790
  init_emit_pre_classification_exclusions();
@@ -17945,7 +19375,7 @@ var init_run_generate_components_session = __esm({
17945
19375
  });
17946
19376
 
17947
19377
  // packages/experience-design-system-backend-pipeline/dist/src/index.js
17948
- var init_src3 = __esm({
19378
+ var init_src4 = __esm({
17949
19379
  "packages/experience-design-system-backend-pipeline/dist/src/index.js"() {
17950
19380
  "use strict";
17951
19381
  init_export_cdf_document();
@@ -18183,7 +19613,7 @@ var AGENT_LABELS, asString;
18183
19613
  var init_agent_store = __esm({
18184
19614
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-store.ts"() {
18185
19615
  "use strict";
18186
- init_src3();
19616
+ init_src4();
18187
19617
  init_v1_store();
18188
19618
  AGENT_LABELS = {
18189
19619
  claude: "Claude Code",
@@ -18216,7 +19646,7 @@ var shellValues;
18216
19646
  var init_apply_binary_overrides = __esm({
18217
19647
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/apply-binary-overrides.ts"() {
18218
19648
  "use strict";
18219
- init_src3();
19649
+ init_src4();
18220
19650
  shellValues = /* @__PURE__ */ new Map();
18221
19651
  }
18222
19652
  });
@@ -18874,7 +20304,7 @@ function foldSvelteAndMdIntoOther(counts) {
18874
20304
  var init_scan_files = __esm({
18875
20305
  "packages/experience-design-system-cli/src/tui/import/steps/03-path-validation/helpers/scan-files.ts"() {
18876
20306
  "use strict";
18877
- init_src3();
20307
+ init_src4();
18878
20308
  }
18879
20309
  });
18880
20310
 
@@ -18996,7 +20426,7 @@ var FIELDS;
18996
20426
  var init_logic4 = __esm({
18997
20427
  "packages/experience-design-system-cli/src/tui/import/steps/04-credentials/logic.ts"() {
18998
20428
  "use strict";
18999
- init_src3();
20429
+ init_src4();
19000
20430
  FIELDS = ["spaceId", "environmentId", "cmaToken", "host"];
19001
20431
  }
19002
20432
  });
@@ -19033,7 +20463,7 @@ function cliUserAgent() {
19033
20463
  var init_user_agent = __esm({
19034
20464
  "packages/experience-design-system-cli/src/tui/user-agent.ts"() {
19035
20465
  "use strict";
19036
- init_src3();
20466
+ init_src4();
19037
20467
  init_version();
19038
20468
  }
19039
20469
  });
@@ -19068,7 +20498,7 @@ function toUserError(error, host) {
19068
20498
  var init_validate4 = __esm({
19069
20499
  "packages/experience-design-system-cli/src/tui/import/steps/04-credentials/validate.ts"() {
19070
20500
  "use strict";
19071
- init_src3();
20501
+ init_src4();
19072
20502
  init_user_agent();
19073
20503
  }
19074
20504
  });
@@ -19171,7 +20601,7 @@ var init_screen4 = __esm({
19171
20601
  "use strict";
19172
20602
  init_theme();
19173
20603
  init_controls4();
19174
- init_src3();
20604
+ init_src4();
19175
20605
  init_logic4();
19176
20606
  init_validate4();
19177
20607
  LABELS = {
@@ -19637,7 +21067,7 @@ function resolveAgentChoice(flag, stored) {
19637
21067
  var init_logic9 = __esm({
19638
21068
  "packages/experience-design-system-cli/src/tui/import/steps/06-extraction/logic.ts"() {
19639
21069
  "use strict";
19640
- init_src3();
21070
+ init_src4();
19641
21071
  }
19642
21072
  });
19643
21073
 
@@ -19793,7 +21223,7 @@ var SELECT_SKILL_PATH, DEFAULT_TIMEOUT_MS5;
19793
21223
  var init_selection2 = __esm({
19794
21224
  "packages/experience-design-system-cli/src/tui/import/steps/06-extraction/selection.ts"() {
19795
21225
  "use strict";
19796
- init_src3();
21226
+ init_src4();
19797
21227
  init_find_skill_path();
19798
21228
  SELECT_SKILL_PATH = findSkillPath("select-components.md");
19799
21229
  DEFAULT_TIMEOUT_MS5 = Number(process.env.EDS_AGENT_TIMEOUT_MS ?? 5 * 60 * 1e3);
@@ -19938,7 +21368,7 @@ var TOKENS_SKILL_PATH, realDeps, fail, errorMessage2;
19938
21368
  var init_run = __esm({
19939
21369
  "packages/experience-design-system-cli/src/tui/import/steps/06-extraction/run.ts"() {
19940
21370
  "use strict";
19941
- init_src3();
21371
+ init_src4();
19942
21372
  init_find_skill_path();
19943
21373
  init_logic9();
19944
21374
  init_selection2();
@@ -23035,7 +24465,7 @@ async function checkGenerationCache(input) {
23035
24465
  var init_cache_check = __esm({
23036
24466
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/cache-check.ts"() {
23037
24467
  "use strict";
23038
- init_src3();
24468
+ init_src4();
23039
24469
  }
23040
24470
  });
23041
24471
 
@@ -23062,7 +24492,7 @@ function loadScopeGate(sessionId) {
23062
24492
  var init_load = __esm({
23063
24493
  "packages/experience-design-system-cli/src/tui/import/steps/07-scope-gate/load.ts"() {
23064
24494
  "use strict";
23065
- init_src3();
24495
+ init_src4();
23066
24496
  }
23067
24497
  });
23068
24498
 
@@ -23192,7 +24622,7 @@ async function prepareMapTokens(input, generatedSessionId) {
23192
24622
  var init_map_tokens = __esm({
23193
24623
  "packages/experience-design-system-cli/src/tui/import/steps/08-generation/map-tokens.ts"() {
23194
24624
  "use strict";
23195
- init_src3();
24625
+ init_src4();
23196
24626
  init_logic10();
23197
24627
  }
23198
24628
  });
@@ -23210,7 +24640,7 @@ async function saveDecisions(input) {
23210
24640
  var init_save_decisions = __esm({
23211
24641
  "packages/experience-design-system-cli/src/tui/import/steps/08-generation/save-decisions.ts"() {
23212
24642
  "use strict";
23213
- init_src3();
24643
+ init_src4();
23214
24644
  }
23215
24645
  });
23216
24646
 
@@ -23328,7 +24758,7 @@ var COMPONENTS_SKILL_PATH, MAP_TOKENS_SKILL_PATH, realDeps3, fail2, errorMessage
23328
24758
  var init_run2 = __esm({
23329
24759
  "packages/experience-design-system-cli/src/tui/import/steps/08-generation/run.ts"() {
23330
24760
  "use strict";
23331
- init_src3();
24761
+ init_src4();
23332
24762
  init_find_skill_path();
23333
24763
  init_logic9();
23334
24764
  init_map_tokens();
@@ -23406,7 +24836,7 @@ function buildFlowStart(input) {
23406
24836
  var init_build_flow_start = __esm({
23407
24837
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/build-flow-start.ts"() {
23408
24838
  "use strict";
23409
- init_src3();
24839
+ init_src4();
23410
24840
  }
23411
24841
  });
23412
24842
 
@@ -23780,7 +25210,7 @@ var init_dtcg2 = __esm({
23780
25210
  });
23781
25211
 
23782
25212
  // packages/experience-design-system-types/dist/src/index.js
23783
- var init_src4 = __esm({
25213
+ var init_src5 = __esm({
23784
25214
  "packages/experience-design-system-types/dist/src/index.js"() {
23785
25215
  "use strict";
23786
25216
  init_cdf2();
@@ -25928,7 +27358,7 @@ var init_FieldEditor = __esm({
25928
27358
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/components/FieldEditor.tsx"() {
25929
27359
  "use strict";
25930
27360
  init_theme();
25931
- init_src4();
27361
+ init_src5();
25932
27362
  init_useImmediateInput();
25933
27363
  init_scroll_offset();
25934
27364
  init_cycle_detection();
@@ -26843,7 +28273,7 @@ function finalizeReviewSession(extractSessionId, components) {
26843
28273
  var init_session3 = __esm({
26844
28274
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/session.ts"() {
26845
28275
  "use strict";
26846
- init_src3();
28276
+ init_src4();
26847
28277
  }
26848
28278
  });
26849
28279
 
@@ -26956,10 +28386,10 @@ var TimeoutError, DEFAULT_TIMEOUT_MS6;
26956
28386
  var init_run_live_preview = __esm({
26957
28387
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/run-live-preview.ts"() {
26958
28388
  "use strict";
28389
+ init_src5();
28390
+ init_src4();
28391
+ init_src4();
26959
28392
  init_src4();
26960
- init_src3();
26961
- init_src3();
26962
- init_src3();
26963
28393
  init_user_agent();
26964
28394
  TimeoutError = class extends Error {
26965
28395
  constructor(message = "live-preview timed out") {
@@ -27285,7 +28715,7 @@ function useReviewFinalize({
27285
28715
  var init_use_review_session = __esm({
27286
28716
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/use-review-session.ts"() {
27287
28717
  "use strict";
27288
- init_src3();
28718
+ init_src4();
27289
28719
  init_history();
27290
28720
  init_session3();
27291
28721
  init_use_finalize_preview();
@@ -27463,7 +28893,7 @@ function useReviewEditor({
27463
28893
  var init_use_review_editor = __esm({
27464
28894
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/use-review-editor.ts"() {
27465
28895
  "use strict";
27466
- init_src3();
28896
+ init_src4();
27467
28897
  init_token_suggestions();
27468
28898
  }
27469
28899
  });
@@ -27913,7 +29343,7 @@ var DEFAULT_DEBOUNCE_MS;
27913
29343
  var init_use_live_preview = __esm({
27914
29344
  "packages/experience-design-system-cli/src/tui/import/steps/09-review/use-live-preview.ts"() {
27915
29345
  "use strict";
27916
- init_src3();
29346
+ init_src4();
27917
29347
  init_run_live_preview();
27918
29348
  DEFAULT_DEBOUNCE_MS = 500;
27919
29349
  }
@@ -29296,7 +30726,7 @@ var init_generate_review_step = __esm({
29296
30726
  init_issue_inheritance();
29297
30727
  init_removed_components_text();
29298
30728
  init_useImmediateInput();
29299
- init_src3();
30729
+ init_src4();
29300
30730
  init_cycle_detection();
29301
30731
  init_cycle_panel_scroll();
29302
30732
  init_fuzzy_search();
@@ -30253,7 +31683,7 @@ var init_WizardPreviewStep = __esm({
30253
31683
  init_theme();
30254
31684
  init_useImmediateInput();
30255
31685
  init_use_terminal_size();
30256
- init_src3();
31686
+ init_src4();
30257
31687
  init_preview_diff();
30258
31688
  init_StepHeader();
30259
31689
  init_SpaceEnvironment();
@@ -30419,7 +31849,7 @@ function FlowScreen({
30419
31849
  var init_screen10 = __esm({
30420
31850
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/screen.tsx"() {
30421
31851
  "use strict";
30422
- init_src4();
31852
+ init_src5();
30423
31853
  init_shared2();
30424
31854
  init_screen9();
30425
31855
  init_generate_review_step();
@@ -30608,8 +32038,8 @@ var realPreviewDeps;
30608
32038
  var init_preview2 = __esm({
30609
32039
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/preview.ts"() {
30610
32040
  "use strict";
30611
- init_src3();
30612
32041
  init_src4();
32042
+ init_src5();
30613
32043
  init_user_agent();
30614
32044
  init_wizard_state_transitions();
30615
32045
  realPreviewDeps = () => ({
@@ -30782,8 +32212,8 @@ var realPushDeps, zeroResult, componentsOf;
30782
32212
  var init_push = __esm({
30783
32213
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/push.ts"() {
30784
32214
  "use strict";
30785
- init_src3();
30786
32215
  init_src4();
32216
+ init_src5();
30787
32217
  init_user_agent();
30788
32218
  init_wizard_state_transitions();
30789
32219
  realPushDeps = (log) => ({
@@ -30904,8 +32334,8 @@ var SAVE_CONFIRMATION_DELAY_MS, realSaveDeps;
30904
32334
  var init_save = __esm({
30905
32335
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/save.ts"() {
30906
32336
  "use strict";
30907
- init_src3();
30908
32337
  init_src4();
32338
+ init_src5();
30909
32339
  init_run_print_files_helpers();
30910
32340
  SAVE_CONFIRMATION_DELAY_MS = 1e3;
30911
32341
  realSaveDeps = () => ({
@@ -31208,7 +32638,7 @@ var WIZARD_LOG;
31208
32638
  var init_controller = __esm({
31209
32639
  "packages/experience-design-system-cli/src/tui/import/steps/10-flow/flow/controller.ts"() {
31210
32640
  "use strict";
31211
- init_src3();
32641
+ init_src4();
31212
32642
  init_slot_graph();
31213
32643
  init_cycle_detection();
31214
32644
  init_wizard_state_transitions();
@@ -31654,6 +33084,45 @@ var init_PageContainer3 = __esm({
31654
33084
  }
31655
33085
  });
31656
33086
 
33087
+ // packages/experience-design-system-cli/src/tui/settings/shared/debug-trail.ts
33088
+ import { existsSync as existsSync11 } from "node:fs";
33089
+ function diffSnapshots(before, after) {
33090
+ const names = [.../* @__PURE__ */ new Set([...Object.keys(before), ...Object.keys(after)])];
33091
+ const changed_fields = names.filter((name) => before[name] !== after[name]);
33092
+ return { changed: changed_fields.length > 0, changed_fields };
33093
+ }
33094
+ function createTrail(limit = DEFAULT_TRAIL_LIMIT) {
33095
+ const actions = [];
33096
+ return {
33097
+ record(action) {
33098
+ actions.push(action);
33099
+ if (actions.length > limit) actions.shift();
33100
+ },
33101
+ entries: () => [...actions]
33102
+ };
33103
+ }
33104
+ function scrubError(error, secrets) {
33105
+ let message = error instanceof Error ? error.message : String(error);
33106
+ for (const secret of secrets) {
33107
+ if (secret.length < MIN_SECRET_LENGTH) continue;
33108
+ for (const form of /* @__PURE__ */ new Set([secret, encodeURIComponent(secret)])) message = message.split(form).join("[redacted]");
33109
+ }
33110
+ return message;
33111
+ }
33112
+ function describeSettingsFile() {
33113
+ const path5 = configFilePath2();
33114
+ return { path: path5, eds_home_set: Boolean(process.env["EDS_HOME"]), exists: existsSync11(path5) };
33115
+ }
33116
+ var DEFAULT_TRAIL_LIMIT, MIN_SECRET_LENGTH;
33117
+ var init_debug_trail = __esm({
33118
+ "packages/experience-design-system-cli/src/tui/settings/shared/debug-trail.ts"() {
33119
+ "use strict";
33120
+ init_config();
33121
+ DEFAULT_TRAIL_LIMIT = 30;
33122
+ MIN_SECRET_LENGTH = 6;
33123
+ }
33124
+ });
33125
+
31657
33126
  // packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-status.ts
31658
33127
  import { execFile as execFile2 } from "node:child_process";
31659
33128
  import { access as access6, constants } from "node:fs/promises";
@@ -31830,7 +33299,7 @@ var VERSION_TIMEOUT_MS, PROMPT_TIMEOUT_MS, TEST_PROMPT, INSTALL_HINTS, LOGIN_HIN
31830
33299
  var init_agent_status = __esm({
31831
33300
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-status.ts"() {
31832
33301
  "use strict";
31833
- init_src3();
33302
+ init_src4();
31834
33303
  VERSION_TIMEOUT_MS = 5e3;
31835
33304
  PROMPT_TIMEOUT_MS = 6e4;
31836
33305
  TEST_PROMPT = "Reply with the single word: ok";
@@ -31864,6 +33333,44 @@ var init_agent_status = __esm({
31864
33333
  }
31865
33334
  });
31866
33335
 
33336
+ // packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-debug.ts
33337
+ function agentSnapshot(config) {
33338
+ const snapshot = { default_agent: config.defaultAgent };
33339
+ for (const name of AGENT_NAMES) {
33340
+ snapshot[`${name}.model`] = config.agents[name].model;
33341
+ snapshot[`${name}.binary`] = config.agents[name].binary;
33342
+ }
33343
+ return snapshot;
33344
+ }
33345
+ function environmentFrom(checks, savedBinary, envValue) {
33346
+ const path5 = checks.find((check) => check.step === "path");
33347
+ const version = checks.find((check) => check.step === "version");
33348
+ const overridden = envValue !== void 0 && envValue !== "" && envValue !== savedBinary.trim();
33349
+ return {
33350
+ found: path5?.ok === true,
33351
+ resolved_path: path5?.ok ? path5.detail : "",
33352
+ version: version?.ok ? version.detail : "",
33353
+ env_override: overridden ? envValue : ""
33354
+ };
33355
+ }
33356
+ async function describeAgents(config) {
33357
+ const entries = await Promise.all(
33358
+ AGENT_NAMES.map(async (name) => {
33359
+ const saved = config.agents[name].binary;
33360
+ const checks = await inspectAgent(name, saved);
33361
+ return [name, environmentFrom(checks, saved, process.env[`EDS_AGENT_BINARY_${name.toUpperCase()}`])];
33362
+ })
33363
+ );
33364
+ return Object.fromEntries(entries);
33365
+ }
33366
+ var init_agent_debug = __esm({
33367
+ "packages/experience-design-system-cli/src/tui/settings/configuration/agents/agent-debug.ts"() {
33368
+ "use strict";
33369
+ init_src4();
33370
+ init_agent_status();
33371
+ }
33372
+ });
33373
+
31867
33374
  // packages/experience-design-system-cli/src/tui/settings/shared/FieldForm.tsx
31868
33375
  import { useState as useState29 } from "react";
31869
33376
  import { Box as Box44, Text as Text46, useInput as useInput11 } from "ink";
@@ -32055,7 +33562,8 @@ function AgentDetail({
32055
33562
  name,
32056
33563
  config,
32057
33564
  setConfig,
32058
- onBack
33565
+ onBack,
33566
+ record: record3
32059
33567
  }) {
32060
33568
  const settings = config.agents[name];
32061
33569
  const [saving, setSaving] = useState30(false);
@@ -32078,10 +33586,12 @@ function AgentDetail({
32078
33586
  setNotice(null);
32079
33587
  writeAgentConfig(config).then(() => {
32080
33588
  applyBinaryOverrides(config);
33589
+ record3(`saved ${name}`);
32081
33590
  setNotice({ kind: "success", text: `Saved: ${AGENT_LABELS[name]} settings are written to config.json` });
32082
- }).catch(
32083
- (err) => setNotice({ kind: "error", text: `Not saved: ${err instanceof Error ? err.message : String(err)}` })
32084
- ).finally(() => setSaving(false));
33591
+ }).catch((err) => {
33592
+ record3(`saving ${name} failed`, err);
33593
+ setNotice({ kind: "error", text: `Not saved: ${err instanceof Error ? err.message : String(err)}` });
33594
+ }).finally(() => setSaving(false));
32085
33595
  };
32086
33596
  const runTest = () => {
32087
33597
  setTesting(true);
@@ -32089,12 +33599,15 @@ function AgentDetail({
32089
33599
  testAgent(name, settings.binary, settings.model).then((result) => {
32090
33600
  setChecks(result);
32091
33601
  const outcome = testOutcome(result);
33602
+ if (!outcome || !outcome.ok)
33603
+ record3(`test of ${name} failed: ${outcome?.text ?? "the agent could not be started"}`);
32092
33604
  setNotice(
32093
33605
  outcome ? { kind: outcome.ok ? "success" : "error", text: outcome.text } : { kind: "error", text: "Test not run: the agent could not be started (see Status)" }
32094
33606
  );
32095
- }).catch(
32096
- (err) => setNotice({ kind: "error", text: `Test could not run: ${err instanceof Error ? err.message : String(err)}` })
32097
- ).finally(() => setTesting(false));
33607
+ }).catch((err) => {
33608
+ record3(`test of ${name} could not run`, err);
33609
+ setNotice({ kind: "error", text: `Test could not run: ${err instanceof Error ? err.message : String(err)}` });
33610
+ }).finally(() => setTesting(false));
32098
33611
  };
32099
33612
  const action = {
32100
33613
  label: "Run test",
@@ -32115,6 +33628,7 @@ function AgentDetail({
32115
33628
  onChange: (key, value) => {
32116
33629
  setConfig({ ...config, agents: { ...config.agents, [name]: { ...settings, [key]: value } } });
32117
33630
  setNotice(null);
33631
+ record3(`edited ${name}.${key}`);
32118
33632
  },
32119
33633
  onSave: save,
32120
33634
  onQuit: onBack,
@@ -32132,7 +33646,7 @@ var fields, INSPECT_DELAY_MS;
32132
33646
  var init_AgentDetail = __esm({
32133
33647
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentDetail.tsx"() {
32134
33648
  "use strict";
32135
- init_src3();
33649
+ init_src4();
32136
33650
  init_theme();
32137
33651
  init_FieldForm();
32138
33652
  init_agent_store();
@@ -32148,7 +33662,7 @@ var init_AgentDetail = __esm({
32148
33662
  });
32149
33663
 
32150
33664
  // packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx
32151
- import { useEffect as useEffect23, useState as useState31 } from "react";
33665
+ import { useEffect as useEffect23, useRef as useRef13, useState as useState31 } from "react";
32152
33666
  import { Box as Box46, Text as Text49, useInput as useInput12 } from "ink";
32153
33667
  import { Fragment as Fragment18, jsx as jsx58, jsxs as jsxs47 } from "react/jsx-runtime";
32154
33668
  function AgentsScreen({ onDone }) {
@@ -32159,6 +33673,12 @@ function AgentsScreen({ onDone }) {
32159
33673
  const [saving, setSaving] = useState31(false);
32160
33674
  const [loadError, setLoadError] = useState31(null);
32161
33675
  const [checks, setChecks] = useState31({});
33676
+ const visit = useRef13({
33677
+ trail: createTrail(),
33678
+ before: void 0,
33679
+ environment: void 0,
33680
+ error: ""
33681
+ }).current;
32162
33682
  const inspectAll = (loaded) => {
32163
33683
  for (const name of AGENT_NAMES) {
32164
33684
  void inspectAgent(name, loaded.agents[name].binary).then(
@@ -32170,14 +33690,38 @@ function AgentsScreen({ onDone }) {
32170
33690
  readAgentConfig().then((loaded) => {
32171
33691
  setConfig(loaded);
32172
33692
  inspectAll(loaded);
33693
+ visit.before = agentSnapshot(loaded);
32173
33694
  startDebugRun({
32174
33695
  flow: "settings/agents",
32175
33696
  step: "01-agents",
32176
33697
  menuOption: "Configuration > Agents",
32177
- inputs: { default_agent: loaded.defaultAgent }
33698
+ inputs: { ...visit.before, default_chosen: loaded.defaultChosen ?? false }
32178
33699
  });
32179
- }).catch((err) => setLoadError(err instanceof Error ? err.message : String(err)));
33700
+ void describeAgents(loaded).then((found) => {
33701
+ visit.environment = found;
33702
+ });
33703
+ }).catch((err) => {
33704
+ visit.error = scrubError(err, []);
33705
+ startDebugRun({ flow: "settings/agents", step: "01-agents", menuOption: "Configuration > Agents", inputs: {} });
33706
+ setLoadError(visit.error);
33707
+ });
32180
33708
  }, []);
33709
+ const endVisit = (current) => {
33710
+ const after = current ? agentSnapshot(current) : void 0;
33711
+ const change = visit.before && after ? diffSnapshots(visit.before, after) : { changed: false, changed_fields: [] };
33712
+ void finishDebugRun({
33713
+ outputs: {
33714
+ ...after ?? {},
33715
+ ...change,
33716
+ actions: visit.trail.entries(),
33717
+ // Missing only when the user left before the probes finished.
33718
+ ...visit.environment ? { agents: visit.environment } : {},
33719
+ ...visit.error ? { error: visit.error } : {}
33720
+ },
33721
+ status: visit.error ? "error" : "success",
33722
+ exitMethod: change.changed ? "saved" : "discarded"
33723
+ });
33724
+ };
32181
33725
  const makeDefault = (name) => {
32182
33726
  if (!config || saving) return;
32183
33727
  if (name === config.defaultAgent) {
@@ -32189,15 +33733,16 @@ function AgentsScreen({ onDone }) {
32189
33733
  writeAgentConfig({ ...config, defaultAgent: name, defaultChosen: true }).then(() => {
32190
33734
  setConfig((current) => current ? { ...current, defaultAgent: name, defaultChosen: true } : current);
32191
33735
  setNotice({ kind: "success", text: `Default agent is now ${AGENT_LABELS[name]}` });
32192
- }).catch(
32193
- (err) => setNotice({
32194
- kind: "error",
32195
- text: `Default agent not changed: ${err instanceof Error ? err.message : String(err)}`
32196
- })
32197
- ).finally(() => setSaving(false));
33736
+ visit.trail.record(`made ${name} the default`);
33737
+ }).catch((err) => {
33738
+ visit.error = scrubError(err, []);
33739
+ visit.trail.record(`making ${name} the default failed`);
33740
+ setNotice({ kind: "error", text: `Default agent not changed: ${visit.error}` });
33741
+ }).finally(() => setSaving(false));
32198
33742
  };
32199
33743
  useInput12((input, key) => {
32200
33744
  if (loadError && (key.escape || input === "q")) {
33745
+ endVisit(null);
32201
33746
  onDone();
32202
33747
  return;
32203
33748
  }
@@ -32222,7 +33767,7 @@ function AgentsScreen({ onDone }) {
32222
33767
  return;
32223
33768
  }
32224
33769
  if (key.escape || input === "q") {
32225
- void finishDebugRun({ outputs: { default_agent: config.defaultAgent }, status: "success", exitMethod: "saved" });
33770
+ endVisit(config);
32226
33771
  onDone();
32227
33772
  }
32228
33773
  });
@@ -32247,6 +33792,10 @@ function AgentsScreen({ onDone }) {
32247
33792
  name: open,
32248
33793
  config,
32249
33794
  setConfig,
33795
+ record: (action, error) => {
33796
+ visit.trail.record(action);
33797
+ if (error !== void 0) visit.error = scrubError(error, []);
33798
+ },
32250
33799
  onBack: () => {
32251
33800
  setOpen(null);
32252
33801
  void readAgentConfig().then((saved) => {
@@ -32315,10 +33864,12 @@ var NAME_WIDTH, PANEL_LABEL_WIDTH;
32315
33864
  var init_AgentsScreen = __esm({
32316
33865
  "packages/experience-design-system-cli/src/tui/settings/configuration/agents/AgentsScreen.tsx"() {
32317
33866
  "use strict";
32318
- init_src3();
33867
+ init_src4();
32319
33868
  init_theme();
32320
33869
  init_control_hints();
32321
33870
  init_debug_store();
33871
+ init_debug_trail();
33872
+ init_agent_debug();
32322
33873
  init_agent_store();
32323
33874
  init_agent_status();
32324
33875
  init_AgentDetail();
@@ -32360,9 +33911,9 @@ var init_project_store = __esm({
32360
33911
  });
32361
33912
 
32362
33913
  // packages/experience-design-system-cli/src/tui/settings/configuration/project/ProjectScreen.tsx
32363
- import { useEffect as useEffect24, useState as useState32 } from "react";
32364
- import { Box as Box47, Text as Text50 } from "ink";
32365
- import { jsx as jsx59, jsxs as jsxs48 } from "react/jsx-runtime";
33914
+ import { useEffect as useEffect24, useRef as useRef14, useState as useState32 } from "react";
33915
+ import { Box as Box47, Text as Text50, useInput as useInput13 } from "ink";
33916
+ import { Fragment as Fragment19, jsx as jsx59, jsxs as jsxs48 } from "react/jsx-runtime";
32366
33917
  function debugFields(config) {
32367
33918
  return {
32368
33919
  space_id: config?.spaceId ?? "",
@@ -32378,40 +33929,88 @@ function ProjectScreen({ onDone }) {
32378
33929
  const [config, setConfig] = useState32(null);
32379
33930
  const [saving, setSaving] = useState32(false);
32380
33931
  const [notice, setNotice] = useState32(null);
32381
- const [lastSaved, setLastSaved] = useState32(null);
33932
+ const [loadError, setLoadError] = useState32(null);
33933
+ const visit = useRef14({
33934
+ trail: createTrail(),
33935
+ before: void 0,
33936
+ persisted: void 0,
33937
+ error: ""
33938
+ }).current;
33939
+ const scrub = (err) => scrubError(err, [config?.cmaToken ?? ""]);
32382
33940
  useEffect24(() => {
32383
- void readCredentials().then((cfg) => {
33941
+ readCredentials().then((cfg) => {
32384
33942
  setConfig(cfg);
33943
+ visit.before = snapshotOf(cfg);
33944
+ visit.persisted = visit.before;
32385
33945
  startDebugRun({
32386
33946
  flow: "settings/contentful-configuration",
32387
33947
  step: "01-configuration",
32388
33948
  menuOption: "Configuration > Project",
32389
- inputs: debugFields(cfg)
33949
+ inputs: { ...debugFields(cfg), settings_file: describeSettingsFile() }
32390
33950
  });
33951
+ }).catch((err) => {
33952
+ visit.error = scrubError(err, []);
33953
+ startDebugRun({
33954
+ flow: "settings/contentful-configuration",
33955
+ step: "01-configuration",
33956
+ menuOption: "Configuration > Project",
33957
+ inputs: { settings_file: describeSettingsFile() }
33958
+ });
33959
+ setLoadError(visit.error);
32391
33960
  });
32392
33961
  }, []);
33962
+ const endVisit = (current) => {
33963
+ const onScreen = current ? snapshotOf(current) : void 0;
33964
+ const change = visit.before && visit.persisted ? diffSnapshots(visit.before, visit.persisted) : { changed: false, changed_fields: [] };
33965
+ const unsaved = visit.persisted && onScreen ? diffSnapshots(visit.persisted, onScreen) : { changed: false, changed_fields: [] };
33966
+ void finishDebugRun({
33967
+ outputs: {
33968
+ ...debugFields(current),
33969
+ ...change,
33970
+ unsaved_edits: unsaved.changed_fields,
33971
+ actions: visit.trail.entries(),
33972
+ ...visit.error ? { error: visit.error } : {}
33973
+ },
33974
+ status: visit.error ? "error" : "success",
33975
+ exitMethod: change.changed ? "saved" : "discarded"
33976
+ });
33977
+ };
33978
+ useInput13((input, key) => {
33979
+ if (!config && loadError && (key.escape || input === "q")) {
33980
+ endVisit(null);
33981
+ onDone();
33982
+ }
33983
+ });
32393
33984
  if (!config) {
32394
33985
  return /* @__PURE__ */ jsxs48(Box47, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
32395
33986
  /* @__PURE__ */ jsx59(Text50, { bold: true, children: "Project" }),
32396
33987
  /* @__PURE__ */ jsx59(Text50, { children: " " }),
32397
- /* @__PURE__ */ jsx59(Text50, { color: PALETTE.accent, children: "Loading..." })
33988
+ loadError ? /* @__PURE__ */ jsxs48(Fragment19, { children: [
33989
+ /* @__PURE__ */ jsxs48(Text50, { color: PALETTE.error, children: [
33990
+ "\u2717 Could not read the settings: ",
33991
+ loadError
33992
+ ] }),
33993
+ /* @__PURE__ */ jsx59(Text50, { children: " " }),
33994
+ /* @__PURE__ */ jsx59(ControlHints, { hints: [{ keys: "Esc/q", label: "back" }] })
33995
+ ] }) : /* @__PURE__ */ jsx59(Text50, { color: PALETTE.accent, children: "Loading..." })
32398
33996
  ] });
32399
33997
  }
32400
33998
  const save = () => {
32401
33999
  setSaving(true);
32402
34000
  setNotice(null);
32403
34001
  writeCredentials(config).then(() => {
32404
- setLastSaved(config);
34002
+ visit.persisted = snapshotOf(config);
34003
+ visit.trail.record("saved");
32405
34004
  if (config.contentfulBaseDir) void startDebugSessionIn(config.contentfulBaseDir, { replace: true });
32406
34005
  setNotice({ kind: "success", text: "Project settings saved" });
32407
34006
  }).catch((err) => {
34007
+ visit.error = scrub(err);
34008
+ visit.trail.record("save failed");
32408
34009
  setNotice({ kind: "error", text: err instanceof Error ? err.message : "Failed to save" });
32409
34010
  }).finally(() => setSaving(false));
32410
34011
  };
32411
34012
  const quit = () => {
32412
- void finishDebugRun(
32413
- lastSaved ? { outputs: debugFields(lastSaved), status: "success", exitMethod: "saved" } : { outputs: {}, status: "success", exitMethod: "discarded" }
32414
- );
34013
+ endVisit(config);
32415
34014
  onDone();
32416
34015
  };
32417
34016
  return /* @__PURE__ */ jsx59(
@@ -32424,6 +34023,7 @@ function ProjectScreen({ onDone }) {
32424
34023
  onChange: (key, value) => {
32425
34024
  setConfig({ ...config, [key]: value });
32426
34025
  setNotice(null);
34026
+ visit.trail.record(`edited ${key}`);
32427
34027
  },
32428
34028
  onSave: save,
32429
34029
  onQuit: quit,
@@ -32432,12 +34032,14 @@ function ProjectScreen({ onDone }) {
32432
34032
  }
32433
34033
  );
32434
34034
  }
32435
- var FIELDS2, valuesOf;
34035
+ var FIELDS2, snapshotOf, valuesOf;
32436
34036
  var init_ProjectScreen = __esm({
32437
34037
  "packages/experience-design-system-cli/src/tui/settings/configuration/project/ProjectScreen.tsx"() {
32438
34038
  "use strict";
32439
34039
  init_theme();
34040
+ init_control_hints();
32440
34041
  init_debug_store();
34042
+ init_debug_trail();
32441
34043
  init_FieldForm();
32442
34044
  init_project_store();
32443
34045
  FIELDS2 = [
@@ -32449,19 +34051,20 @@ var init_ProjectScreen = __esm({
32449
34051
  { key: "defaultTokenFile", label: "Default token file" },
32450
34052
  { key: "contentfulBaseDir", label: "Root Project Directory", hint: "(where .contentful goes)" }
32451
34053
  ];
34054
+ snapshotOf = (config) => Object.fromEntries(FIELDS2.map(({ key }) => [key, config[key] || ""]));
32452
34055
  valuesOf = (config) => Object.fromEntries(FIELDS2.map(({ key }) => [key, config[key] || ""]));
32453
34056
  }
32454
34057
  });
32455
34058
 
32456
34059
  // packages/experience-design-system-cli/src/tui/settings/configuration/ConfigurationScreen.tsx
32457
34060
  import { useState as useState33 } from "react";
32458
- import { Box as Box48, Text as Text51, useInput as useInput13 } from "ink";
34061
+ import { Box as Box48, Text as Text51, useInput as useInput14 } from "ink";
32459
34062
  import { jsx as jsx60, jsxs as jsxs49 } from "react/jsx-runtime";
32460
34063
  function ConfigurationScreen({ onDone }) {
32461
34064
  const [focus, setFocus] = useState33(0);
32462
34065
  const [open, setOpen] = useState33(null);
32463
34066
  const close = () => setOpen(null);
32464
- useInput13((input, key) => {
34067
+ useInput14((input, key) => {
32465
34068
  if (open) return;
32466
34069
  if (key.upArrow) {
32467
34070
  setFocus((i) => (i - 1 + SECTIONS.length) % SECTIONS.length);
@@ -32521,8 +34124,8 @@ var init_ConfigurationScreen = __esm({
32521
34124
 
32522
34125
  // packages/experience-design-system-cli/src/tui/settings/opt-in-analytics/screen.tsx
32523
34126
  import { useEffect as useEffect25, useState as useState34 } from "react";
32524
- import { Box as Box49, Text as Text52, useInput as useInput14 } from "ink";
32525
- import { Fragment as Fragment19, jsx as jsx61, jsxs as jsxs50 } from "react/jsx-runtime";
34127
+ import { Box as Box49, Text as Text52, useInput as useInput15 } from "ink";
34128
+ import { Fragment as Fragment20, jsx as jsx61, jsxs as jsxs50 } from "react/jsx-runtime";
32526
34129
  function OptInAnalyticsScreen({ onDone }) {
32527
34130
  const [loading, setLoading] = useState34(true);
32528
34131
  const [enabled, setEnabled] = useState34(true);
@@ -32538,7 +34141,7 @@ function OptInAnalyticsScreen({ onDone }) {
32538
34141
  });
32539
34142
  });
32540
34143
  }, []);
32541
- useInput14((input, key) => {
34144
+ useInput15((input, key) => {
32542
34145
  if (loading) return;
32543
34146
  if (key.return || input === " ") {
32544
34147
  setEnabled((current) => {
@@ -32556,7 +34159,7 @@ function OptInAnalyticsScreen({ onDone }) {
32556
34159
  return /* @__PURE__ */ jsxs50(Box49, { flexDirection: "column", paddingX: 2, paddingY: 1, children: [
32557
34160
  /* @__PURE__ */ jsx61(Text52, { bold: true, children: "Settings \u203A Opt-in Analytics" }),
32558
34161
  /* @__PURE__ */ jsx61(Text52, { children: " " }),
32559
- loading ? /* @__PURE__ */ jsx61(Text52, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs50(Fragment19, { children: [
34162
+ loading ? /* @__PURE__ */ jsx61(Text52, { color: PALETTE.muted, children: "Loading\u2026" }) : /* @__PURE__ */ jsxs50(Fragment20, { children: [
32560
34163
  /* @__PURE__ */ jsxs50(Text52, { children: [
32561
34164
  "Share anonymous usage data:",
32562
34165
  " ",
@@ -32590,7 +34193,7 @@ var init_screen11 = __esm({
32590
34193
 
32591
34194
  // packages/experience-design-system-cli/src/tui/settings/debug-mode/screen.tsx
32592
34195
  import { useEffect as useEffect26, useState as useState35 } from "react";
32593
- import { Box as Box50, Text as Text53, useInput as useInput15 } from "ink";
34196
+ import { Box as Box50, Text as Text53, useInput as useInput16 } from "ink";
32594
34197
  import { jsx as jsx62, jsxs as jsxs51 } from "react/jsx-runtime";
32595
34198
  function DebugModeScreen({ onDone }) {
32596
34199
  const [loading, setLoading] = useState35(true);
@@ -32607,7 +34210,7 @@ function DebugModeScreen({ onDone }) {
32607
34210
  });
32608
34211
  });
32609
34212
  }, []);
32610
- useInput15((input, key) => {
34213
+ useInput16((input, key) => {
32611
34214
  if (loading) return;
32612
34215
  if (key.return || input === " ") {
32613
34216
  setEnabled((current) => {
@@ -32659,7 +34262,7 @@ __export(app_exports, {
32659
34262
  });
32660
34263
  import { join as join27 } from "node:path";
32661
34264
  import { useEffect as useEffect27, useState as useState36 } from "react";
32662
- import { Fragment as Fragment20, jsx as jsx63 } from "react/jsx-runtime";
34265
+ import { Fragment as Fragment21, jsx as jsx63 } from "react/jsx-runtime";
32663
34266
  function App({ importOptions, inkClear }) {
32664
34267
  const [screen, setScreen] = useState36("start");
32665
34268
  const [importExitCode, setImportExitCode] = useState36();
@@ -32828,7 +34431,7 @@ function App({ importOptions, inkClear }) {
32828
34431
  }
32829
34432
  );
32830
34433
  }
32831
- if (importDefaults === void 0) return /* @__PURE__ */ jsx63(Fragment20, {});
34434
+ if (importDefaults === void 0) return /* @__PURE__ */ jsx63(Fragment21, {});
32832
34435
  if (projectPath === void 0) {
32833
34436
  return /* @__PURE__ */ jsx63(WelcomeScreen, { onContinue: setProjectPath, onQuit: leaveImport, initialPath: importDefaults.componentDir });
32834
34437
  }
@@ -32867,7 +34470,7 @@ function App({ importOptions, inkClear }) {
32867
34470
  }
32868
34471
  );
32869
34472
  }
32870
- return /* @__PURE__ */ jsx63(Fragment20, {});
34473
+ return /* @__PURE__ */ jsx63(Fragment21, {});
32871
34474
  }
32872
34475
  if (scopeRun && scopeFlow) {
32873
34476
  if (scopeFlow.status === "failed") {
@@ -32904,7 +34507,7 @@ function App({ importOptions, inkClear }) {
32904
34507
  }
32905
34508
  );
32906
34509
  }
32907
- return /* @__PURE__ */ jsx63(Fragment20, {});
34510
+ return /* @__PURE__ */ jsx63(Fragment21, {});
32908
34511
  }
32909
34512
  if (pendingLaunch?.cached) {
32910
34513
  return /* @__PURE__ */ jsx63(
@@ -32977,7 +34580,7 @@ var init_app = __esm({
32977
34580
  });
32978
34581
 
32979
34582
  // packages/experience-design-system-cli/program.ts
32980
- init_src3();
34583
+ init_src4();
32981
34584
  import { readFileSync as readFileSync9 } from "node:fs";
32982
34585
  import { join as join28 } from "node:path";
32983
34586
  import { Command } from "commander";
@@ -33084,7 +34687,7 @@ function createProgram() {
33084
34687
  // packages/experience-design-system-cli/src/config/migrate.ts
33085
34688
  init_config();
33086
34689
  init_package_root();
33087
- import { existsSync as existsSync11 } from "node:fs";
34690
+ import { existsSync as existsSync12 } from "node:fs";
33088
34691
  import { mkdir as mkdir10, readFile as readFile19, rename as rename3, rmdir, unlink } from "node:fs/promises";
33089
34692
  import { dirname as dirname16, join as join29 } from "node:path";
33090
34693
  var PACKAGE_NAME3 = "@contentful/experience-design-system-cli";
@@ -33110,8 +34713,8 @@ async function migrateOldConfig() {
33110
34713
  if (debugMode) migrated["debugMode"] = debugMode;
33111
34714
  Object.assign(migrated, await readJson(oldCredentials));
33112
34715
  if (Object.keys(migrated).length > 0) await updateSettings2({ ...migrated, ...await readSettings2() });
33113
- if (existsSync11(oldRuns)) {
33114
- if (!existsSync11(runsFilePath2())) {
34716
+ if (existsSync12(oldRuns)) {
34717
+ if (!existsSync12(runsFilePath2())) {
33115
34718
  await mkdir10(dirname16(runsFilePath2()), { recursive: true });
33116
34719
  await rename3(oldRuns, runsFilePath2());
33117
34720
  } else {