@hjmds/design-contracts 1.46.1 → 1.48.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.
Files changed (107) hide show
  1. package/dist/behaviors.d.ts +2 -1
  2. package/dist/behaviors.d.ts.map +1 -1
  3. package/dist/bottom-navigation.d.ts +4 -0
  4. package/dist/bottom-navigation.d.ts.map +1 -1
  5. package/dist/bottom-navigation.js +12 -0
  6. package/dist/bottom-navigation.js.map +1 -1
  7. package/dist/card.d.ts +2 -2
  8. package/dist/card.d.ts.map +1 -1
  9. package/dist/card.js +3 -2
  10. package/dist/card.js.map +1 -1
  11. package/dist/carousel.d.ts +1 -0
  12. package/dist/carousel.d.ts.map +1 -1
  13. package/dist/carousel.js +1 -0
  14. package/dist/carousel.js.map +1 -1
  15. package/dist/catalog.d.ts +151 -31
  16. package/dist/catalog.d.ts.map +1 -1
  17. package/dist/catalog.js +14 -13
  18. package/dist/catalog.js.map +1 -1
  19. package/dist/color-picker.d.ts +51 -1
  20. package/dist/color-picker.d.ts.map +1 -1
  21. package/dist/color-picker.js +56 -2
  22. package/dist/color-picker.js.map +1 -1
  23. package/dist/component-recipes.d.ts +28 -10
  24. package/dist/component-recipes.d.ts.map +1 -1
  25. package/dist/component-recipes.js +28 -20
  26. package/dist/component-recipes.js.map +1 -1
  27. package/dist/conversation-row.d.ts +1 -1
  28. package/dist/conversation-row.d.ts.map +1 -1
  29. package/dist/conversation-row.js +2 -1
  30. package/dist/conversation-row.js.map +1 -1
  31. package/dist/data-table.d.ts +12 -0
  32. package/dist/data-table.d.ts.map +1 -1
  33. package/dist/data-table.js +2 -0
  34. package/dist/data-table.js.map +1 -1
  35. package/dist/date-range.d.ts +122 -3
  36. package/dist/date-range.d.ts.map +1 -1
  37. package/dist/date-range.js +139 -5
  38. package/dist/date-range.js.map +1 -1
  39. package/dist/icon.d.ts +2 -1
  40. package/dist/icon.d.ts.map +1 -1
  41. package/dist/icon.js +2 -0
  42. package/dist/icon.js.map +1 -1
  43. package/dist/recipes.d.ts +1 -0
  44. package/dist/recipes.d.ts.map +1 -1
  45. package/dist/recipes.js +1 -0
  46. package/dist/recipes.js.map +1 -1
  47. package/dist/screen-patterns.d.ts +33 -2
  48. package/dist/screen-patterns.d.ts.map +1 -1
  49. package/dist/screen-patterns.js +27 -2
  50. package/dist/screen-patterns.js.map +1 -1
  51. package/dist/share-sheet.d.ts +115 -0
  52. package/dist/share-sheet.d.ts.map +1 -0
  53. package/dist/share-sheet.js +62 -0
  54. package/dist/share-sheet.js.map +1 -0
  55. package/dist/version.d.ts +1 -1
  56. package/dist/version.js +1 -1
  57. package/dist/version.js.map +1 -1
  58. package/docs/bottom-navigation.md +16 -0
  59. package/docs/color-picker.md +24 -19
  60. package/docs/dialog.md +2 -3
  61. package/docs/generated/component-maturity.md +12 -12
  62. package/docs/generated/renderer-evidence.json +71 -19
  63. package/docs/generated/renderer-evidence.md +15 -14
  64. package/docs/generated/showcase-manifest.json +35 -21
  65. package/docs/optional-adapters.md +21 -5
  66. package/docs/stable-core.md +37 -0
  67. package/docs/usage/README.md +14 -10
  68. package/docs/usage/SELECTION.md +109 -0
  69. package/docs/usage/components/avatar.md +31 -6
  70. package/docs/usage/components/badge.md +10 -1
  71. package/docs/usage/components/bottom-navigation.md +16 -0
  72. package/docs/usage/components/button.md +11 -0
  73. package/docs/usage/components/card.md +6 -0
  74. package/docs/usage/components/chat-message.md +9 -1
  75. package/docs/usage/components/chat-room-members.md +4 -0
  76. package/docs/usage/components/chat-screen.md +10 -1
  77. package/docs/usage/components/color-picker.md +65 -28
  78. package/docs/usage/components/comment-thread-screen.md +16 -1
  79. package/docs/usage/components/conversation-list-screen.md +81 -0
  80. package/docs/usage/components/conversation-row.md +5 -1
  81. package/docs/usage/components/data-table.md +2 -0
  82. package/docs/usage/components/date-range-picker.md +15 -5
  83. package/docs/usage/components/dialog.md +3 -3
  84. package/docs/usage/components/event-attendance-card.md +4 -0
  85. package/docs/usage/components/follow-list-screen.md +109 -0
  86. package/docs/usage/components/follow-profile-card.md +4 -0
  87. package/docs/usage/components/list-row.md +6 -0
  88. package/docs/usage/components/menu.md +12 -0
  89. package/docs/usage/components/notice.md +8 -3
  90. package/docs/usage/components/notification-inbox-screen.md +10 -0
  91. package/docs/usage/components/notification-row.md +4 -0
  92. package/docs/usage/components/page-indicator.md +1 -0
  93. package/docs/usage/components/profile-summary.md +32 -3
  94. package/docs/usage/components/section.md +2 -2
  95. package/docs/usage/components/settings-screen.md +1 -1
  96. package/docs/usage/components/share-sheet.md +139 -0
  97. package/docs/usage/components/shared-transition-element.md +1 -1
  98. package/docs/usage/components/sheet.md +1 -0
  99. package/docs/usage/components/statistic.md +1 -1
  100. package/docs/usage/compositions/interaction-adapters.md +2 -2
  101. package/docs/usage/compositions/optional-adapters.md +2 -2
  102. package/docs/usage/compositions/web-additions.md +5 -5
  103. package/docs/usage/screens/common-comments.md +1 -0
  104. package/docs/usage/screens/common-conversation-list.md +22 -1
  105. package/docs/usage/screens/common-follow-list.md +87 -0
  106. package/docs/usage/screens/common-settings.md +23 -0
  107. package/package.json +7 -1
package/dist/catalog.d.ts CHANGED
@@ -511,14 +511,14 @@ export declare const componentCatalog: readonly [{
511
511
  }, {
512
512
  readonly recipe: "imageChoiceRecipe";
513
513
  readonly surfaceStatus: {
514
- readonly web: "beta";
515
- readonly native: "beta";
514
+ readonly web: "stable";
515
+ readonly native: "stable";
516
516
  };
517
517
  readonly name: "ImageChoiceGroup";
518
518
  readonly label: "이미지 선택";
519
519
  readonly category: "input";
520
520
  readonly platform: "shared";
521
- readonly status: "beta";
521
+ readonly status: "stable";
522
522
  }, {
523
523
  readonly recipe: "segmentedControlRecipe";
524
524
  readonly behavior: "segmentedControl";
@@ -648,7 +648,7 @@ export declare const componentCatalog: readonly [{
648
648
  readonly status: "stable";
649
649
  }, {
650
650
  readonly aliases: readonly ["DateRange"];
651
- readonly recipe: "calendarRecipe";
651
+ readonly recipe: "dateRangeRecipe";
652
652
  readonly behavior: "dateRange";
653
653
  readonly surfaceStatus: {
654
654
  readonly web: "stable";
@@ -663,12 +663,13 @@ export declare const componentCatalog: readonly [{
663
663
  readonly recipe: "colorPickerRecipe";
664
664
  readonly surfaceStatus: {
665
665
  readonly web: "stable";
666
- readonly native: "unsupported";
666
+ readonly native: "stable";
667
667
  };
668
668
  readonly name: "ColorPicker";
669
669
  readonly label: "색상 선택기";
670
+ readonly companions: readonly ["ColorSwatchPicker"];
670
671
  readonly category: "input";
671
- readonly platform: "web";
672
+ readonly platform: "adaptive";
672
673
  readonly status: "stable";
673
674
  }, {
674
675
  readonly roadmap: {
@@ -826,20 +827,20 @@ export declare const componentCatalog: readonly [{
826
827
  }, {
827
828
  readonly recipe: "carouselRecipe";
828
829
  readonly surfaceStatus: {
829
- readonly web: "beta";
830
- readonly native: "beta";
830
+ readonly web: "stable";
831
+ readonly native: "stable";
831
832
  };
832
833
  readonly name: "PageIndicator";
833
834
  readonly label: "페이지 위치 표시";
834
835
  readonly category: "navigation";
835
836
  readonly platform: "shared";
836
- readonly status: "beta";
837
+ readonly status: "stable";
837
838
  }, {
838
839
  readonly recipe: "paginationRecipe";
839
840
  readonly behavior: "pagination";
840
841
  readonly surfaceStatus: {
841
842
  readonly web: "stable";
842
- readonly native: "beta";
843
+ readonly native: "stable";
843
844
  };
844
845
  readonly name: "Pagination";
845
846
  readonly label: "페이지 이동";
@@ -1095,7 +1096,7 @@ export declare const componentCatalog: readonly [{
1095
1096
  readonly behavior: "dataTable";
1096
1097
  readonly surfaceStatus: {
1097
1098
  readonly web: "stable";
1098
- readonly native: "beta";
1099
+ readonly native: "stable";
1099
1100
  };
1100
1101
  readonly name: "DataTable";
1101
1102
  readonly label: "데이터 표";
@@ -1107,15 +1108,15 @@ export declare const componentCatalog: readonly [{
1107
1108
  readonly recipe: "chartRecipe";
1108
1109
  readonly behavior: "chart";
1109
1110
  readonly surfaceStatus: {
1110
- readonly web: "beta";
1111
- readonly native: "beta";
1111
+ readonly web: "stable";
1112
+ readonly native: "stable";
1112
1113
  };
1113
1114
  readonly name: "Chart";
1114
1115
  readonly label: "차트";
1115
1116
  readonly companions: readonly ["LineChart", "BarChart", "PieChart", "RadarChart", "ScatterChart", "Sparkline", "ChartLegend"];
1116
1117
  readonly category: "data-display";
1117
1118
  readonly platform: "shared";
1118
- readonly status: "beta";
1119
+ readonly status: "stable";
1119
1120
  }, {
1120
1121
  readonly recipe: "treeRecipe";
1121
1122
  readonly behavior: "tree";
@@ -1647,25 +1648,25 @@ export declare const componentCatalog: readonly [{
1647
1648
  }, {
1648
1649
  readonly recipe: "typingIndicatorRecipe";
1649
1650
  readonly surfaceStatus: {
1650
- readonly web: "beta";
1651
- readonly native: "beta";
1651
+ readonly web: "stable";
1652
+ readonly native: "stable";
1652
1653
  };
1653
1654
  readonly name: "TypingIndicator";
1654
1655
  readonly label: "입력 중 표시";
1655
1656
  readonly category: "feedback";
1656
1657
  readonly platform: "adaptive";
1657
- readonly status: "beta";
1658
+ readonly status: "stable";
1658
1659
  }, {
1659
1660
  readonly recipe: "chatDateSeparatorRecipe";
1660
1661
  readonly surfaceStatus: {
1661
- readonly web: "beta";
1662
- readonly native: "beta";
1662
+ readonly web: "stable";
1663
+ readonly native: "stable";
1663
1664
  };
1664
1665
  readonly name: "ChatDateSeparator";
1665
1666
  readonly label: "대화 날짜 구분";
1666
1667
  readonly category: "data-display";
1667
1668
  readonly platform: "adaptive";
1668
- readonly status: "beta";
1669
+ readonly status: "stable";
1669
1670
  }, {
1670
1671
  readonly recipe: "notificationRowRecipe";
1671
1672
  readonly surfaceStatus: {
@@ -1807,6 +1808,28 @@ export declare const recipeRegistry: {
1807
1808
  readonly background: "bg";
1808
1809
  readonly border: "border";
1809
1810
  readonly minTargetSize: 44;
1811
+ readonly area: {
1812
+ readonly aspectRatio: number;
1813
+ readonly thumbDiameter: 24;
1814
+ readonly thumbBorder: 3;
1815
+ readonly radius: "md";
1816
+ };
1817
+ readonly bar: {
1818
+ readonly height: 24;
1819
+ readonly thumbDiameter: 28;
1820
+ readonly thumbBorder: 3;
1821
+ };
1822
+ readonly step: 1;
1823
+ readonly largeStep: 10;
1824
+ readonly swatch: {
1825
+ readonly target: 44;
1826
+ readonly diameter: 32;
1827
+ readonly ringWidth: 2;
1828
+ readonly ringGap: 2;
1829
+ };
1830
+ readonly preview: {
1831
+ readonly size: 44;
1832
+ };
1810
1833
  };
1811
1834
  readonly thinkingOrbRecipe: {
1812
1835
  readonly defaults: {
@@ -2102,7 +2125,7 @@ export declare const recipeRegistry: {
2102
2125
  readonly slots: readonly ["root", "image", "fallback", "badge", "group"];
2103
2126
  readonly overlapRatio: 0.3;
2104
2127
  readonly defaults: {
2105
- readonly size: "medium";
2128
+ readonly size: "large";
2106
2129
  readonly shape: "circle";
2107
2130
  readonly frame: "outlined";
2108
2131
  readonly accessoryPlacement: "bottom-end";
@@ -2129,7 +2152,7 @@ export declare const recipeRegistry: {
2129
2152
  }>;
2130
2153
  readonly border: Readonly<{
2131
2154
  source: "theme";
2132
- key: "border";
2155
+ key: "borderControl";
2133
2156
  alpha?: number;
2134
2157
  }>;
2135
2158
  readonly borderWidth: 1;
@@ -2189,6 +2212,10 @@ export declare const recipeRegistry: {
2189
2212
  alpha?: number;
2190
2213
  }>;
2191
2214
  };
2215
+ readonly plain: {
2216
+ readonly usesToneBackground: false;
2217
+ readonly borderFallback: null;
2218
+ };
2192
2219
  };
2193
2220
  readonly tones: {
2194
2221
  readonly neutral: {
@@ -2406,6 +2433,11 @@ export declare const recipeRegistry: {
2406
2433
  key: "surfaceAccent";
2407
2434
  alpha?: number;
2408
2435
  }>;
2436
+ readonly neutralBackground: Readonly<{
2437
+ source: "theme";
2438
+ key: "surface";
2439
+ alpha?: number;
2440
+ }>;
2409
2441
  readonly selectedBackground: Readonly<{
2410
2442
  source: "theme";
2411
2443
  key: "primary";
@@ -3744,9 +3776,9 @@ export declare const recipeRegistry: {
3744
3776
  readonly alignItems: "center";
3745
3777
  };
3746
3778
  readonly title: {
3747
- readonly variant: "title";
3779
+ readonly variant: "bodyLarge";
3748
3780
  readonly tone: "primary";
3749
- readonly emphasis: "strong";
3781
+ readonly emphasis: "medium";
3750
3782
  };
3751
3783
  readonly description: {
3752
3784
  readonly variant: "body";
@@ -3870,6 +3902,7 @@ export declare const recipeRegistry: {
3870
3902
  readonly diameter: 8;
3871
3903
  readonly compactGap: 8;
3872
3904
  readonly hitTarget: 44;
3905
+ readonly compactHitWidth: 20;
3873
3906
  readonly color: {
3874
3907
  readonly inactive: Readonly<{
3875
3908
  source: "theme";
@@ -4917,6 +4950,74 @@ export declare const recipeRegistry: {
4917
4950
  }>;
4918
4951
  };
4919
4952
  };
4953
+ readonly dateRangeRecipe: {
4954
+ readonly slots: readonly ["root", "summary", "summaryField", "summaryLabel", "summaryValue", "presets", "band", "edge"];
4955
+ readonly band: {
4956
+ readonly background: Readonly<{
4957
+ source: "theme";
4958
+ key: "primary";
4959
+ alpha?: number;
4960
+ }>;
4961
+ };
4962
+ readonly edge: {
4963
+ readonly background: Readonly<{
4964
+ source: "theme";
4965
+ key: "primary";
4966
+ alpha?: number;
4967
+ }>;
4968
+ readonly content: Readonly<{
4969
+ source: "theme";
4970
+ key: "onPrimary";
4971
+ alpha?: number;
4972
+ }>;
4973
+ };
4974
+ readonly summary: {
4975
+ readonly gap: 8;
4976
+ readonly field: {
4977
+ readonly paddingVertical: 8;
4978
+ readonly paddingHorizontal: 12;
4979
+ readonly radius: "md";
4980
+ readonly gap: 4;
4981
+ readonly background: Readonly<{
4982
+ source: "theme";
4983
+ key: "surfaceAlt";
4984
+ alpha?: number;
4985
+ }>;
4986
+ readonly activeBorder: Readonly<{
4987
+ source: "theme";
4988
+ key: "primary";
4989
+ alpha?: number;
4990
+ }>;
4991
+ readonly activeBorderWidth: 2;
4992
+ };
4993
+ readonly label: {
4994
+ readonly textVariant: "label";
4995
+ readonly color: Readonly<{
4996
+ source: "theme";
4997
+ key: "textMuted";
4998
+ alpha?: number;
4999
+ }>;
5000
+ };
5001
+ readonly value: {
5002
+ readonly textVariant: "body";
5003
+ readonly color: Readonly<{
5004
+ source: "theme";
5005
+ key: "text";
5006
+ alpha?: number;
5007
+ }>;
5008
+ readonly placeholderColor: Readonly<{
5009
+ source: "theme";
5010
+ key: "textSub";
5011
+ alpha?: number;
5012
+ }>;
5013
+ };
5014
+ };
5015
+ readonly presets: {
5016
+ readonly gap: 8;
5017
+ readonly chipSize: "small";
5018
+ };
5019
+ readonly gap: 16;
5020
+ };
4920
5021
  readonly dividerRecipe: {
4921
5022
  readonly slots: readonly ["root", "label"];
4922
5023
  readonly defaults: {
@@ -5879,7 +5980,7 @@ export declare const recipeRegistry: {
5879
5980
  readonly appearances: {
5880
5981
  readonly panel: {
5881
5982
  readonly padding: 16;
5882
- readonly borderWidth: 1;
5983
+ readonly borderWidth: 0;
5883
5984
  };
5884
5985
  readonly status: {
5885
5986
  readonly padding: 0;
@@ -5890,7 +5991,7 @@ export declare const recipeRegistry: {
5890
5991
  readonly info: {
5891
5992
  readonly background: Readonly<{
5892
5993
  source: "theme";
5893
- key: "bg";
5994
+ key: "surfaceAlt";
5894
5995
  alpha?: number;
5895
5996
  }>;
5896
5997
  readonly foreground: Readonly<{
@@ -6003,9 +6104,18 @@ export declare const recipeRegistry: {
6003
6104
  readonly gap: 12;
6004
6105
  readonly contentGap: 4;
6005
6106
  readonly iconSize: "sm";
6006
- readonly borderWidth: 1;
6107
+ readonly accentBar: {
6108
+ readonly width: 4;
6109
+ readonly radius: "full";
6110
+ };
6111
+ readonly contentMinWidthPercent: 60;
6007
6112
  readonly title: {
6008
6113
  readonly textVariant: "body";
6114
+ readonly color: Readonly<{
6115
+ source: "theme";
6116
+ key: "text";
6117
+ alpha?: number;
6118
+ }>;
6009
6119
  readonly fontWeight: "500";
6010
6120
  };
6011
6121
  readonly description: {
@@ -6856,7 +6966,7 @@ export declare const recipeRegistry: {
6856
6966
  readonly headerGap: 12;
6857
6967
  readonly copyGap: 4;
6858
6968
  readonly title: {
6859
- readonly textVariant: "title";
6969
+ readonly textVariant: "bodyLarge";
6860
6970
  readonly color: Readonly<{
6861
6971
  source: "theme";
6862
6972
  key: "textBody";
@@ -8193,7 +8303,7 @@ export declare const recipeRegistry: {
8193
8303
  readonly padding: 16;
8194
8304
  readonly gap: 8;
8195
8305
  readonly labelVariant: "label";
8196
- readonly valueVariant: "heading";
8306
+ readonly valueVariant: "title";
8197
8307
  };
8198
8308
  };
8199
8309
  readonly presentations: {
@@ -9647,7 +9757,9 @@ export declare const recipeRegistry: {
9647
9757
  readonly lineGap: 4;
9648
9758
  readonly rowGap: 20;
9649
9759
  readonly replyIndent: number;
9650
- readonly likeColumnWidth: 44;
9760
+ readonly replyPageSize: 5;
9761
+ readonly actionButtonSize: "small";
9762
+ readonly likeColumnWidth: 36;
9651
9763
  readonly mediaMaxWidth: 160;
9652
9764
  readonly mediaRadius: 12;
9653
9765
  readonly panelGap: 8;
@@ -9674,7 +9786,11 @@ export declare const recipeRegistry: {
9674
9786
  readonly paddingInline: 16;
9675
9787
  };
9676
9788
  readonly profileSummaryRecipe: Readonly<{
9677
- avatarSize: 72;
9789
+ avatarSize: 48;
9790
+ nameEdit: Readonly<{
9791
+ readonly icon: "edit";
9792
+ readonly size: "small";
9793
+ }>;
9678
9794
  avatarGlyphSize: 44;
9679
9795
  actionsLayouts: Readonly<{
9680
9796
  inline: Readonly<{
@@ -9685,6 +9801,10 @@ export declare const recipeRegistry: {
9685
9801
  readonly axis: "block";
9686
9802
  readonly gap: "xs";
9687
9803
  }>;
9804
+ equal: Readonly<{
9805
+ readonly axis: "inline";
9806
+ readonly gap: "xs";
9807
+ }>;
9688
9808
  }>;
9689
9809
  editAction: Readonly<{
9690
9810
  readonly tone: "secondary";
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+GjB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHjB,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,cAAc,CAAC"}
package/dist/catalog.js CHANGED
@@ -102,8 +102,8 @@ export const componentCatalog = [
102
102
  // Web Space and Native host press now verify selectable Chip state changes.
103
103
  { name: "Chip", label: "선택 칩", companions: ["ShortcutRail"], category: "input", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "chipRecipe", behavior: "chip" },
104
104
  // Image tile single/multiple selection (2026-10-17 registration: independent radio/checkbox semantics).
105
- // Beta until renderer behavior matrices cover it; unit tests cover toggle and validation only.
106
- { name: "ImageChoiceGroup", label: "이미지 선택", category: "input", platform: "shared", status: "beta", ...surfaceMaturity("beta", "beta"), recipe: "imageChoiceRecipe" },
105
+ // 2026-10-26: both renderer behavior/environment proofs now support the stable contract (stable-core.md).
106
+ { name: "ImageChoiceGroup", label: "이미지 선택", category: "input", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "imageChoiceRecipe" },
107
107
  // Web arrow-key selection and Native host press now prove option changes.
108
108
  { name: "SegmentedControl", label: "버튼형 선택", category: "input", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "segmentedControlRecipe", behavior: "segmentedControl" },
109
109
  // Web Space and Native host press now verify the pressed-id set transition.
@@ -121,8 +121,8 @@ export const componentCatalog = [
121
121
  // Product adoption and device QA follow the consumer release; both renderer contracts now have complete required proofs.
122
122
  { name: "TimePicker", label: "시각 선택", category: "input", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "timePickerRecipe", behavior: "timePicker" },
123
123
  { name: "DatePicker", label: "날짜 선택", category: "input", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "datePickerRecipe", behavior: "datePicker" },
124
- { name: "DateRangePicker", label: "기간 선택", category: "input", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), aliases: ["DateRange"], recipe: "calendarRecipe", behavior: "dateRange" },
125
- { name: "ColorPicker", label: "색상 선택기", category: "input", platform: "web", status: "stable", ...surfaceMaturity("stable", "unsupported"), recipe: "colorPickerRecipe" },
124
+ { name: "DateRangePicker", label: "기간 선택", category: "input", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), aliases: ["DateRange"], recipe: "dateRangeRecipe", behavior: "dateRange" },
125
+ { name: "ColorPicker", label: "색상 선택기", companions: ["ColorSwatchPicker"], category: "input", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "colorPickerRecipe" },
126
126
  { name: "FilePicker", label: "파일 선택", category: "input", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "filePickerRecipe", behavior: "filePicker", aliases: ["Upload"], ...evidenceNeeded("Web은 native file input과 dropzone 선택을, Native는 제품 소유 picker adapter 연결을 제공하고 양쪽이 같은 accept·size·count resolver를 사용합니다. 실제 OS picker 동작은 소비 앱 QA에서 확인합니다.") },
127
127
  // Both renderers now focus the product-selected first invalid field; field ordering and validation stay product-owned (docs/form.md).
128
128
  { name: "Form", label: "입력 양식", category: "input", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "formRecipe", behavior: "form" },
@@ -143,8 +143,8 @@ export const componentCatalog = [
143
143
  { name: "Breadcrumb", label: "이동 경로", category: "navigation", platform: "web", status: "stable", ...surfaceMaturity("stable", "unsupported"), recipe: "breadcrumbRecipe", behavior: "breadcrumb" },
144
144
  // Numeric-only rendering has no visible prose slot; four-digit page layout remains in the 320px/2x/RTL proof.
145
145
  // Carousel's dot row on its own for a product-owned pager (Utilverse launcher, 2026-10-18); same recipe, no new visuals.
146
- { name: "PageIndicator", label: "페이지 위치 표시", category: "navigation", platform: "shared", status: "beta", ...surfaceMaturity("beta", "beta"), recipe: "carouselRecipe" },
147
- { name: "Pagination", label: "페이지 이동", category: "navigation", platform: "shared", status: "stable", ...surfaceMaturity("stable", "beta"), recipe: "paginationRecipe", behavior: "pagination" },
146
+ { name: "PageIndicator", label: "페이지 위치 표시", category: "navigation", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "carouselRecipe" },
147
+ { name: "Pagination", label: "페이지 이동", category: "navigation", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "paginationRecipe", behavior: "pagination" },
148
148
  { name: "LoadMore", label: "더 보기", category: "navigation", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "loadMoreRecipe", behavior: "loadMore", ...evidenceNeeded("Web keyboard fallback·viewport observer와 Native onEndReached·retry action에서 requestKey 중복 방지, busy/error/complete 상태와 긴 현지화 문구를 검증했습니다. Native FlatList/device 통합은 소비 앱 QA입니다.") },
149
149
  // This non-interactive progress summary now has long-label matrix coverage on both renderers.
150
150
  { name: "Steps", label: "단계 탐색", extensions: ["StepPlayer"], category: "navigation", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "stepsRecipe", ...evidenceNeeded("단일 cursor에서 상태를 파생하는 Web·Native renderer와 기본 실행 증거가 연결됐습니다. 실제 다단계 흐름과 보조기기 증거가 더 필요합니다.") },
@@ -169,10 +169,10 @@ export const componentCatalog = [
169
169
  { name: "Statistic", label: "수치 표시", companions: ["StatisticGroup"], extensions: ["AnimatedStatistic"], category: "data-display", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "statisticRecipe" },
170
170
  // Timeline labels are visible prose and now have long-copy matrix coverage on both renderers.
171
171
  { name: "Timeline", label: "타임라인", category: "data-display", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "timelineRecipe", ...evidenceNeeded("두 제품의 이력 화면이 같은 항목 설명과 웹·앱의 점·연결선 렌더러를 씁니다. 남은 렌더러 증거는 자동 생성 보고서에서 추적합니다.") },
172
- // 2026-10-14: Native DataTable renderer added (pinned columns, sortDescFirst, summary row); beta until device evidence.
173
- { name: "DataTable", label: "데이터 표", companions: ["Table", "LineScore", "MatrixTable", "ComparisonTable"], category: "data-display", platform: "shared", status: "stable", ...surfaceMaturity("stable", "beta"), recipe: "dataTableRecipe", behavior: "dataTable" },
172
+ // 2026-10-26: the remaining renderer contracts are supported as stable after targeted behavior/environment proof; see stable-core.md.
173
+ { name: "DataTable", label: "데이터 표", companions: ["Table", "LineScore", "MatrixTable", "ComparisonTable"], category: "data-display", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "dataTableRecipe", behavior: "dataTable" },
174
174
  // 2026-10-14 user request: chart drawing absorbed from product libraries (docs/chart.md); one family for all chart types.
175
- { name: "Chart", label: "차트", companions: ["LineChart", "BarChart", "PieChart", "RadarChart", "ScatterChart", "Sparkline", "ChartLegend"], category: "data-display", platform: "shared", status: "beta", ...surfaceMaturity("beta", "beta"), recipe: "chartRecipe", behavior: "chart" },
175
+ { name: "Chart", label: "차트", companions: ["LineChart", "BarChart", "PieChart", "RadarChart", "ScatterChart", "Sparkline", "ChartLegend"], category: "data-display", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "chartRecipe", behavior: "chart" },
176
176
  { name: "Tree", label: "트리 목록", category: "data-display", platform: "web", status: "stable", ...surfaceMaturity("stable", "unsupported"), recipe: "treeRecipe", behavior: "tree" },
177
177
  { name: "Calendar", label: "달력", category: "data-display", platform: "shared", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "calendarRecipe", behavior: "calendar" },
178
178
  { name: "Carousel", label: "캐러셀", extensions: ["CarouselMotion"], category: "data-display", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "carouselRecipe", behavior: "carousel" },
@@ -236,9 +236,9 @@ export const componentCatalog = [
236
236
  // MediaAlbumPageStatus (2026-10-18): loading/failed page of ChatMessage/CommentThreadRow `mediaAlbum`.
237
237
  { name: "ChatMessage", label: "채팅 말풍선", companions: ["MediaAlbumPageStatus"], category: "data-display", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "chatMessageRecipe" },
238
238
  // 2026-10-18 timeline pieces that products drew themselves (BurnTok DM typing row, Utilverse chat time row).
239
- // New public API, so beta until both renderer proofs pass (docs/stable-promotion.md).
240
- { name: "TypingIndicator", label: "입력 중 표시", category: "feedback", platform: "adaptive", status: "beta", ...surfaceMaturity("beta", "beta"), recipe: "typingIndicatorRecipe" },
241
- { name: "ChatDateSeparator", label: "대화 날짜 구분", category: "data-display", platform: "adaptive", status: "beta", ...surfaceMaturity("beta", "beta"), recipe: "chatDateSeparatorRecipe" },
239
+ // 2026-10-26: both renderer proofs cover these public chat primitives (docs/stable-core.md).
240
+ { name: "TypingIndicator", label: "입력 중 표시", category: "feedback", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "typingIndicatorRecipe" },
241
+ { name: "ChatDateSeparator", label: "대화 날짜 구분", category: "data-display", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "chatDateSeparatorRecipe" },
242
242
  { name: "NotificationRow", label: "알림 미리보기 행", category: "data-display", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "notificationRowRecipe" },
243
243
  { name: "NotificationItem", label: "알림 목록 항목", category: "data-display", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "listRowRecipe" },
244
244
  { name: "CommentThreadRow", label: "댓글 행", category: "data-display", platform: "adaptive", status: "stable", ...surfaceMaturity("stable", "stable"), recipe: "commentThreadRecipe" },
@@ -267,7 +267,7 @@ export function summarizeComponentRoadmap(entries = componentCatalog) {
267
267
  declined: 0,
268
268
  });
269
269
  }
270
- import { accordionRecipe, alertDialogRecipe, avatarRecipe, badgeRecipe, bottomNavigationRecipe, bottomCtaRecipe, anchorRecipe, agreementRecipe, topRecipe, authProviderButtonRecipe, authScreenRecipe, headingRecipe, toggleGroupRecipe, tagsInputRecipe, skipNavRecipe, bottomInfoRecipe, sidebarRecipe, textFormatRecipe, collapsibleRecipe, menubarRecipe, assetRecipe, breadcrumbRecipe, aspectRatioRecipe, containerRecipe, calendarRecipe, cardRecipe, buttonRecipe, carouselRecipe, chipRecipe, comboboxRecipe, descriptionListRecipe, counterBadgeRecipe, dialogRecipe, dataTableRecipe, chartRecipe, datePickerRecipe, dividerRecipe, formRecipe, emptyStateRecipe, fieldRecipe, filePickerRecipe, iconButtonRecipe, iconRecipe, imageRecipe, linkRecipe, listRecipe, listRowRecipe, loadMoreRecipe, menuRecipe, noticeRecipe, paginationRecipe, popoverRecipe, numberFieldRecipe, progressRecipe, resultRecipe, searchFieldRecipe, selectRecipe, selectionGroupRecipe, sectionRecipe, segmentedControlRecipe, selectionControlRecipe, sheetRecipe, sidePanelRecipe, commandPaletteRecipe, layoutRecipe, otpFieldRecipe, passwordFieldRecipe, splitterRecipe, tourRecipe, transferListRecipe, skeletonRecipe, sliderRecipe, spinnerRecipe, stackRecipe, statisticRecipe, stepsRecipe, surfaceRecipe, switchRecipe, tabsRecipe, tagRecipe, textRecipe, timelineRecipe, toastRecipe, tooltipRecipe, topBarRecipe, treeRecipe, uploadItemRecipe, visuallyHiddenRecipe, } from "./recipes.js";
270
+ import { accordionRecipe, alertDialogRecipe, avatarRecipe, badgeRecipe, bottomNavigationRecipe, bottomCtaRecipe, anchorRecipe, agreementRecipe, topRecipe, authProviderButtonRecipe, authScreenRecipe, headingRecipe, toggleGroupRecipe, tagsInputRecipe, skipNavRecipe, bottomInfoRecipe, sidebarRecipe, textFormatRecipe, collapsibleRecipe, menubarRecipe, assetRecipe, breadcrumbRecipe, aspectRatioRecipe, containerRecipe, calendarRecipe, cardRecipe, buttonRecipe, carouselRecipe, chipRecipe, comboboxRecipe, descriptionListRecipe, counterBadgeRecipe, dialogRecipe, dataTableRecipe, chartRecipe, datePickerRecipe, dateRangeRecipe, dividerRecipe, formRecipe, emptyStateRecipe, fieldRecipe, filePickerRecipe, iconButtonRecipe, iconRecipe, imageRecipe, linkRecipe, listRecipe, listRowRecipe, loadMoreRecipe, menuRecipe, noticeRecipe, paginationRecipe, popoverRecipe, numberFieldRecipe, progressRecipe, resultRecipe, searchFieldRecipe, selectRecipe, selectionGroupRecipe, sectionRecipe, segmentedControlRecipe, selectionControlRecipe, sheetRecipe, sidePanelRecipe, commandPaletteRecipe, layoutRecipe, otpFieldRecipe, passwordFieldRecipe, splitterRecipe, tourRecipe, transferListRecipe, skeletonRecipe, sliderRecipe, spinnerRecipe, stackRecipe, statisticRecipe, stepsRecipe, surfaceRecipe, switchRecipe, tabsRecipe, tagRecipe, textRecipe, timelineRecipe, toastRecipe, tooltipRecipe, topBarRecipe, treeRecipe, uploadItemRecipe, visuallyHiddenRecipe, } from "./recipes.js";
271
271
  import { floatingActionButtonRecipe } from "./floating-action-button.js";
272
272
  import { gridRecipe } from "./grid.js";
273
273
  import { screenPatternRecipe, searchScreenRecipe, chatMessageRecipe, commentThreadRecipe, notificationRowRecipe, profileSummaryRecipe, iconTileRecipe, composerQuickInsertRecipe, typingIndicatorRecipe, chatDateSeparatorRecipe } from "./screen-patterns.js";
@@ -318,6 +318,7 @@ export const recipeRegistry = {
318
318
  dataTableRecipe,
319
319
  chartRecipe,
320
320
  datePickerRecipe,
321
+ dateRangeRecipe,
321
322
  dividerRecipe,
322
323
  formRecipe,
323
324
  gridRecipe,