@hjmds/design-contracts 1.6.0 → 1.8.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 (228) hide show
  1. package/THIRD_PARTY_NOTICES.md +58 -0
  2. package/dist/agreement.d.ts +3 -3
  3. package/dist/agreement.js +1 -1
  4. package/dist/agreement.js.map +1 -1
  5. package/dist/asset.d.ts +1 -1
  6. package/dist/asset.js +1 -1
  7. package/dist/asset.js.map +1 -1
  8. package/dist/base-recipes.d.ts +12 -12
  9. package/dist/base-recipes.d.ts.map +1 -1
  10. package/dist/base-recipes.js +15 -14
  11. package/dist/base-recipes.js.map +1 -1
  12. package/dist/behaviors.d.ts +1 -1
  13. package/dist/catalog.d.ts +417 -561
  14. package/dist/catalog.d.ts.map +1 -1
  15. package/dist/catalog.js +138 -90
  16. package/dist/catalog.js.map +1 -1
  17. package/dist/command-palette.d.ts +3 -3
  18. package/dist/component-contracts.d.ts +4 -4
  19. package/dist/component-contracts.d.ts.map +1 -1
  20. package/dist/component-contracts.js +5 -4
  21. package/dist/component-contracts.js.map +1 -1
  22. package/dist/component-definitions.d.ts +1 -4
  23. package/dist/component-definitions.d.ts.map +1 -1
  24. package/dist/component-definitions.js +1 -4
  25. package/dist/component-definitions.js.map +1 -1
  26. package/dist/component-recipes.d.ts +76 -83
  27. package/dist/component-recipes.d.ts.map +1 -1
  28. package/dist/component-recipes.js +29 -49
  29. package/dist/component-recipes.js.map +1 -1
  30. package/dist/component-references.d.ts +0 -15
  31. package/dist/component-references.d.ts.map +1 -1
  32. package/dist/component-references.js +0 -3
  33. package/dist/component-references.js.map +1 -1
  34. package/dist/data-table.d.ts +3 -3
  35. package/dist/data-table.js +1 -1
  36. package/dist/data-table.js.map +1 -1
  37. package/dist/date-picker.d.ts +2 -2
  38. package/dist/icon-button-recipe.d.ts +2 -2
  39. package/dist/icon-button-recipe.js +1 -1
  40. package/dist/icon-button-recipe.js.map +1 -1
  41. package/dist/image.d.ts +2 -2
  42. package/dist/image.js +2 -2
  43. package/dist/image.js.map +1 -1
  44. package/dist/index.d.ts +1 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/internal/thinking-orb/braid.d.ts +3 -0
  49. package/dist/internal/thinking-orb/braid.d.ts.map +1 -0
  50. package/dist/internal/thinking-orb/braid.js +47 -0
  51. package/dist/internal/thinking-orb/braid.js.map +1 -0
  52. package/dist/internal/thinking-orb/core.d.ts +60 -0
  53. package/dist/internal/thinking-orb/core.d.ts.map +1 -0
  54. package/dist/internal/thinking-orb/core.js +86 -0
  55. package/dist/internal/thinking-orb/core.js.map +1 -0
  56. package/dist/internal/thinking-orb/lattice.d.ts +5 -0
  57. package/dist/internal/thinking-orb/lattice.d.ts.map +1 -0
  58. package/dist/internal/thinking-orb/lattice.js +187 -0
  59. package/dist/internal/thinking-orb/lattice.js.map +1 -0
  60. package/dist/internal/thinking-orb/morph.d.ts +3 -0
  61. package/dist/internal/thinking-orb/morph.d.ts.map +1 -0
  62. package/dist/internal/thinking-orb/morph.js +127 -0
  63. package/dist/internal/thinking-orb/morph.js.map +1 -0
  64. package/dist/internal/thinking-orb/orbits.d.ts +3 -0
  65. package/dist/internal/thinking-orb/orbits.d.ts.map +1 -0
  66. package/dist/internal/thinking-orb/orbits.js +68 -0
  67. package/dist/internal/thinking-orb/orbits.js.map +1 -0
  68. package/dist/internal/thinking-orb/presets.d.ts +21 -0
  69. package/dist/internal/thinking-orb/presets.d.ts.map +1 -0
  70. package/dist/internal/thinking-orb/presets.js +77 -0
  71. package/dist/internal/thinking-orb/presets.js.map +1 -0
  72. package/dist/internal/thinking-orb/profiles.d.ts +8 -0
  73. package/dist/internal/thinking-orb/profiles.d.ts.map +1 -0
  74. package/dist/internal/thinking-orb/profiles.js +158 -0
  75. package/dist/internal/thinking-orb/profiles.js.map +1 -0
  76. package/dist/internal/thinking-orb/registry.d.ts +9 -0
  77. package/dist/internal/thinking-orb/registry.d.ts.map +1 -0
  78. package/dist/internal/thinking-orb/registry.js +27 -0
  79. package/dist/internal/thinking-orb/registry.js.map +1 -0
  80. package/dist/internal/thinking-orb/ribbon.d.ts +3 -0
  81. package/dist/internal/thinking-orb/ribbon.d.ts.map +1 -0
  82. package/dist/internal/thinking-orb/ribbon.js +87 -0
  83. package/dist/internal/thinking-orb/ribbon.js.map +1 -0
  84. package/dist/internal/thinking-orb/types.d.ts +15 -0
  85. package/dist/internal/thinking-orb/types.d.ts.map +1 -0
  86. package/dist/internal/thinking-orb/types.js +4 -0
  87. package/dist/internal/thinking-orb/types.js.map +1 -0
  88. package/dist/internal/thinking-orb/web.d.ts +3 -0
  89. package/dist/internal/thinking-orb/web.d.ts.map +1 -0
  90. package/dist/internal/thinking-orb/web.js +92 -0
  91. package/dist/internal/thinking-orb/web.js.map +1 -0
  92. package/dist/masonry.d.ts +17 -0
  93. package/dist/masonry.d.ts.map +1 -0
  94. package/dist/masonry.js +18 -0
  95. package/dist/masonry.js.map +1 -0
  96. package/dist/menubar.d.ts +3 -3
  97. package/dist/menubar.js +1 -1
  98. package/dist/menubar.js.map +1 -1
  99. package/dist/number-field.d.ts +2 -2
  100. package/dist/otp-field.d.ts +1 -1
  101. package/dist/password-field.d.ts +2 -2
  102. package/dist/popover.d.ts +7 -8
  103. package/dist/popover.d.ts.map +1 -1
  104. package/dist/popover.js +2 -0
  105. package/dist/popover.js.map +1 -1
  106. package/dist/qr-code-recipe.d.ts +7 -0
  107. package/dist/qr-code-recipe.d.ts.map +1 -0
  108. package/dist/qr-code-recipe.js +2 -0
  109. package/dist/qr-code-recipe.js.map +1 -0
  110. package/dist/qr-code.d.ts +16 -0
  111. package/dist/qr-code.d.ts.map +1 -0
  112. package/dist/qr-code.js +37 -0
  113. package/dist/qr-code.js.map +1 -0
  114. package/dist/semantic-colors.d.ts +1 -1
  115. package/dist/semantic-colors.js +1 -1
  116. package/dist/semantic-colors.js.map +1 -1
  117. package/dist/showcase.d.ts +5 -1
  118. package/dist/showcase.d.ts.map +1 -1
  119. package/dist/showcase.js +51 -13
  120. package/dist/showcase.js.map +1 -1
  121. package/dist/sidebar.d.ts +3 -3
  122. package/dist/sidebar.js +1 -1
  123. package/dist/sidebar.js.map +1 -1
  124. package/dist/tag.d.ts +4 -4
  125. package/dist/tag.js +3 -3
  126. package/dist/tag.js.map +1 -1
  127. package/dist/tags-input.d.ts +3 -3
  128. package/dist/tags-input.js +1 -1
  129. package/dist/tags-input.js.map +1 -1
  130. package/dist/text-formats.d.ts +2 -2
  131. package/dist/text-formats.js +2 -2
  132. package/dist/text-formats.js.map +1 -1
  133. package/dist/thinking-orb-recipe.d.ts +15 -0
  134. package/dist/thinking-orb-recipe.d.ts.map +1 -0
  135. package/dist/thinking-orb-recipe.js +9 -0
  136. package/dist/thinking-orb-recipe.js.map +1 -0
  137. package/dist/thinking-orb.d.ts +25 -0
  138. package/dist/thinking-orb.d.ts.map +1 -0
  139. package/dist/thinking-orb.js +40 -0
  140. package/dist/thinking-orb.js.map +1 -0
  141. package/dist/toast-liquid.d.ts +116 -0
  142. package/dist/toast-liquid.d.ts.map +1 -0
  143. package/dist/toast-liquid.js +100 -0
  144. package/dist/toast-liquid.js.map +1 -0
  145. package/dist/toast.d.ts +7 -1
  146. package/dist/toast.d.ts.map +1 -1
  147. package/dist/toast.js +5 -0
  148. package/dist/toast.js.map +1 -1
  149. package/dist/toggle-group.d.ts +2 -2
  150. package/dist/toggle-group.js +3 -3
  151. package/dist/toggle-group.js.map +1 -1
  152. package/dist/transfer-list.d.ts +3 -3
  153. package/dist/transfer-list.js +1 -1
  154. package/dist/transfer-list.js.map +1 -1
  155. package/dist/tree.d.ts +2 -2
  156. package/dist/version.d.ts +1 -1
  157. package/dist/version.js +1 -1
  158. package/dist/version.js.map +1 -1
  159. package/dist/virtual-list.d.ts +13 -0
  160. package/dist/virtual-list.d.ts.map +1 -0
  161. package/dist/virtual-list.js +13 -0
  162. package/dist/virtual-list.js.map +1 -0
  163. package/docs/anchor.md +5 -4
  164. package/docs/ant-design-coverage.md +2 -2
  165. package/docs/architecture.md +6 -2
  166. package/docs/authoring-brief.md +3 -2
  167. package/docs/bottom-navigation.md +7 -6
  168. package/docs/breadcrumb.md +5 -2
  169. package/docs/calendar.md +6 -3
  170. package/docs/carousel.md +2 -2
  171. package/docs/cascader.md +6 -0
  172. package/docs/catalog-cleanup.md +7 -0
  173. package/docs/catalog-decision-status.md +3 -3
  174. package/docs/catalog-freeze.json +9 -7
  175. package/docs/collapsible.md +12 -0
  176. package/docs/command-palette.md +5 -3
  177. package/docs/consumer-policy.md +29 -12
  178. package/docs/context-menu.md +12 -2
  179. package/docs/data-table.md +11 -6
  180. package/docs/date-picker.md +6 -4
  181. package/docs/date-range.md +4 -2
  182. package/docs/description-list.md +8 -9
  183. package/docs/dialog.md +39 -0
  184. package/docs/expansion-roadmap.md +11 -7
  185. package/docs/file-picker.md +5 -3
  186. package/docs/form.md +16 -4
  187. package/docs/generated/component-maturity.md +88 -91
  188. package/docs/generated/renderer-evidence.json +1848 -1023
  189. package/docs/generated/renderer-evidence.md +153 -145
  190. package/docs/generated/showcase-manifest.json +431 -497
  191. package/docs/layout.md +8 -9
  192. package/docs/library-gap-analysis.md +1 -1
  193. package/docs/masonry.md +11 -0
  194. package/docs/mentions.md +14 -7
  195. package/docs/optional-adapters.md +106 -0
  196. package/docs/otp-field.md +2 -1
  197. package/docs/pagination.md +4 -1
  198. package/docs/password-field.md +2 -1
  199. package/docs/popover.md +9 -6
  200. package/docs/promotion-candidates.md +2 -1
  201. package/docs/qr-code.md +11 -65
  202. package/docs/react-native-completion.md +1 -1
  203. package/docs/result.md +8 -5
  204. package/docs/screen-chrome.md +2 -1
  205. package/docs/sheet.md +16 -3
  206. package/docs/showcase.md +10 -2
  207. package/docs/side-panel.md +12 -6
  208. package/docs/sidebar.md +3 -0
  209. package/docs/splitter.md +6 -6
  210. package/docs/stable-core.md +72 -0
  211. package/docs/stable-promotion.md +47 -43
  212. package/docs/tags-input.md +5 -2
  213. package/docs/theme-palette.md +27 -0
  214. package/docs/thinking-orb.md +124 -0
  215. package/docs/timeline.md +2 -3
  216. package/docs/toast.md +6 -0
  217. package/docs/tooltip.md +2 -1
  218. package/docs/tour.md +14 -8
  219. package/docs/transfer-list.md +24 -21
  220. package/docs/tree-select.md +2 -1
  221. package/docs/tree.md +12 -7
  222. package/docs/upload-item.md +7 -3
  223. package/docs/virtual-list.md +10 -67
  224. package/package.json +30 -3
  225. package/docs/app-provider.md +0 -50
  226. package/docs/border-beam.md +0 -66
  227. package/docs/chart.md +0 -33
  228. package/docs/utility.md +0 -53
@@ -132,7 +132,7 @@ export const badgeRecipe = {
132
132
  neutral: {
133
133
  content: semanticColors.content.secondary,
134
134
  outlineContent: semanticColors.content.secondary,
135
- background: semanticColors.surface.sunken,
135
+ background: semanticColors.canvas,
136
136
  border: null,
137
137
  },
138
138
  strong: {
@@ -150,13 +150,13 @@ export const badgeRecipe = {
150
150
  // cannot wear it: rows of static badges started reading as a filter
151
151
  // with one option switched on. The plate goes neutral and the brand
152
152
  // stays in the copy.
153
- background: semanticColors.surface.sunken,
153
+ background: semanticColors.canvas,
154
154
  border: null,
155
155
  },
156
156
  info: {
157
157
  content: semanticColors.feedback.info.foreground,
158
158
  outlineContent: semanticColors.feedback.info.foreground,
159
- background: semanticColors.feedback.info.badgeBackground,
159
+ background: semanticColors.canvas,
160
160
  border: semanticColors.feedback.info.border,
161
161
  },
162
162
  success: {
@@ -227,12 +227,12 @@ export const searchFieldRecipe = {
227
227
  },
228
228
  },
229
229
  colors: {
230
- background: semanticColors.surface.default,
230
+ background: semanticColors.canvas,
231
231
  content: semanticColors.content.primary,
232
232
  placeholder: semanticColors.content.secondary,
233
233
  leading: semanticColors.content.decorative,
234
234
  clear: semanticColors.content.secondary,
235
- border: semanticColors.content.secondary,
235
+ border: semanticColors.border.control,
236
236
  focus: focusIndicatorContract.color,
237
237
  invalid: semanticColors.border.danger,
238
238
  },
@@ -279,7 +279,7 @@ export const chipRecipe = {
279
279
  },
280
280
  states: {
281
281
  idle: {
282
- background: semanticColors.surface.default,
282
+ background: semanticColors.canvas,
283
283
  content: semanticColors.content.secondary,
284
284
  // A resting chip wears the shared hairline, not a text-strength
285
285
  // outline. Drawing it in `content.secondary` made an unselected chip
@@ -288,7 +288,7 @@ export const chipRecipe = {
288
288
  border: semanticColors.border.default,
289
289
  },
290
290
  selected: {
291
- background: semanticColors.surface.brand,
291
+ background: semanticColors.canvas,
292
292
  content: semanticColors.content.brand,
293
293
  border: semanticColors.border.focus,
294
294
  },
@@ -377,8 +377,8 @@ export const listRowRecipe = {
377
377
  textVariant: "caption",
378
378
  },
379
379
  states: {
380
- pressedBackground: semanticColors.interaction.pressed,
381
- selectedBackground: semanticColors.surface.brand,
380
+ pressedBackground: semanticColors.canvas,
381
+ selectedBackground: semanticColors.canvas,
382
382
  disabledOpacity: opacity.disabled,
383
383
  },
384
384
  };
@@ -401,7 +401,7 @@ export const accordionRecipe = {
401
401
  },
402
402
  divider: semanticColors.border.default,
403
403
  states: {
404
- pressedBackground: semanticColors.interaction.pressed,
404
+ pressedBackground: semanticColors.canvas,
405
405
  focus: focusIndicatorContract,
406
406
  disabledOpacity: opacity.disabled,
407
407
  },
@@ -521,8 +521,8 @@ export const selectRecipe = {
521
521
  collisionPadding: spacing.xs,
522
522
  },
523
523
  density: {
524
- compact: { ...collectionItemContract, minHeight: control.minTouchTarget },
525
- comfortable: { ...collectionItemContract, minHeight: layout.rowHeight.singleLine },
524
+ compact: { ...collectionItemContract, selectedBackground: semanticColors.canvas, highlightedBackground: semanticColors.canvas, minHeight: control.minTouchTarget },
525
+ comfortable: { ...collectionItemContract, selectedBackground: semanticColors.canvas, highlightedBackground: semanticColors.canvas, minHeight: layout.rowHeight.singleLine },
526
526
  },
527
527
  sectionLabel: {
528
528
  color: semanticColors.content.secondary,
@@ -541,8 +541,8 @@ export const selectRecipe = {
541
541
  paddingVertical: spacing.sm,
542
542
  },
543
543
  states: {
544
- hoverBackground: semanticColors.interaction.hover,
545
- pressedBackground: semanticColors.interaction.pressed,
544
+ hoverBackground: semanticColors.canvas,
545
+ pressedBackground: semanticColors.canvas,
546
546
  focus: focusIndicatorContract,
547
547
  invalidBorder: semanticColors.border.danger,
548
548
  disabledOpacity: opacity.disabled,
@@ -612,13 +612,7 @@ export const segmentedControlRecipe = {
612
612
  largeTextLayout: "stacked",
613
613
  stackAtFontScale: largeTextThreshold,
614
614
  },
615
- /**
616
- * A recessed track with a raised white thumb. The fills used to be
617
- * inverted — a white track with a canvas-coloured selected segment — so the
618
- * chosen option read as the recessed, disabled-looking one. `surface.sunken`
619
- * is too close to white to carry the step, so the track takes the canvas
620
- * tone and a border keeps the control legible when it sits on that canvas.
621
- */
615
+ // Track and selected segment share the canvas; the blue ring identifies the chosen option.
622
616
  container: {
623
617
  background: semanticColors.canvas,
624
618
  border: semanticColors.border.default,
@@ -646,16 +640,7 @@ export const segmentedControlRecipe = {
646
640
  gap: spacing.xxs,
647
641
  idleContent: semanticColors.content.secondary,
648
642
  fontWeight: fontWeight.semibold,
649
- // "Selected" is the brand tint, not a plain raised plate — a raised
650
- // white segment beside a selected brand-tinted chip spoke two different
651
- // visual languages for the same state. `surface.brand` is also the one
652
- // *opaque* brand role: a product author who tried a translucent wash of
653
- // `primary` here instead (same idea, see
654
- // `selectionControlRecipe.states.selectedBackground` below) found it
655
- // changed value with whatever sat behind it — #E8EFFB on a white card,
656
- // #DCE5F3 on the canvas — so the same "selected" read as three different
657
- // colors. Using the opaque tint keeps it one color everywhere.
658
- selectedBackground: semanticColors.surface.brand,
643
+ selectedBackground: semanticColors.canvas,
659
644
  selectedContent: semanticColors.content.brand,
660
645
  /**
661
646
  * The ring stays the selection signal so the control keeps a non-text
@@ -773,7 +758,7 @@ export const selectionControlRecipe = {
773
758
  labelColor: null,
774
759
  },
775
760
  card: {
776
- background: semanticColors.surface.default,
761
+ background: semanticColors.canvas,
777
762
  border: semanticColors.border.default,
778
763
  borderWidth: stroke.default,
779
764
  radius: "md",
@@ -815,16 +800,11 @@ export const selectionControlRecipe = {
815
800
  checkedBackground: semanticColors.action.brand.background,
816
801
  checkedBorder: semanticColors.border.focus,
817
802
  indicator: semanticColors.action.brand.content,
818
- // The brand tint is one opaque role, not a translucent wash. A product
819
- // author found that a 10% wash of `primary` (the previous value here)
820
- // changed value with whatever sat behind it — #E8EFFB on a white card,
821
- // #DCE5F3 on the canvas — so the same "selected" read as three different
822
- // colors. `surface.brand` is the one opaque fill (same fix, same reason,
823
- // as `segmentedControlRecipe.item.selectedBackground` above).
824
- selectedBackground: semanticColors.surface.brand,
803
+ // Keep the entire choice plate white; border and checked indicator carry selection.
804
+ selectedBackground: semanticColors.canvas,
825
805
  selectedBorder: semanticColors.border.focus,
826
- hoverBackground: semanticColors.interaction.hover,
827
- pressedBackground: semanticColors.interaction.pressed,
806
+ hoverBackground: semanticColors.canvas,
807
+ pressedBackground: semanticColors.canvas,
828
808
  invalidBorder: semanticColors.border.danger,
829
809
  focus: focusIndicatorContract,
830
810
  disabledOpacity: opacity.disabled,
@@ -961,8 +941,8 @@ export const bottomNavigationRecipe = {
961
941
  badgeAnchor: "inline-end",
962
942
  },
963
943
  states: {
964
- hoverBackground: semanticColors.interaction.hover,
965
- pressedBackground: semanticColors.interaction.pressed,
944
+ hoverBackground: semanticColors.canvas,
945
+ pressedBackground: semanticColors.canvas,
966
946
  focus: focusIndicatorContract,
967
947
  disabledOpacity: opacity.disabled,
968
948
  selectedNonColorEvidence: {
@@ -1012,7 +992,7 @@ export const tabsRecipe = {
1012
992
  },
1013
993
  indicatorHeight: stroke.strong,
1014
994
  states: {
1015
- pressedBackground: semanticColors.interaction.pressed,
995
+ pressedBackground: semanticColors.canvas,
1016
996
  focus: focusIndicatorContract,
1017
997
  disabledOpacity: opacity.disabled,
1018
998
  },
@@ -1031,7 +1011,7 @@ export const noticeRecipe = {
1031
1011
  // `warning`/`attention`/`danger` keep the tinted surface because a
1032
1012
  // product author confirmed those readings didn't have the same
1033
1013
  // conflict with a selection state.
1034
- background: semanticColors.surface.sunken,
1014
+ background: semanticColors.canvas,
1035
1015
  },
1036
1016
  },
1037
1017
  radius: "md",
@@ -1049,7 +1029,7 @@ export const skeletonRecipe = {
1049
1029
  // 읽힌다. 전환 근거와 소비 측 migration은
1050
1030
  // .changeset/skeleton-pulse-by-default.md에 있다.
1051
1031
  defaults: { shape: "block", animated: true },
1052
- background: semanticColors.surface.sunken,
1032
+ background: semanticColors.canvas,
1053
1033
  shapes: {
1054
1034
  block: { radius: "md", defaultHeight: spacing.xxl },
1055
1035
  text: { radius: "sm", defaultHeight: spacing.md },
@@ -1144,7 +1124,7 @@ export const avatarRecipe = {
1144
1124
  defaults: { size: "medium", shape: "circle" },
1145
1125
  sizes: { small: 32, medium: 40, large: 48, xlarge: 64 },
1146
1126
  shapes: { rounded: "md", circle: "full" },
1147
- background: semanticColors.surface.sunken,
1127
+ background: semanticColors.canvas,
1148
1128
  content: semanticColors.content.secondary,
1149
1129
  border: semanticColors.border.default,
1150
1130
  };
@@ -1179,7 +1159,7 @@ export const statisticRecipe = {
1179
1159
  presentations: {
1180
1160
  plain: { background: null, border: null, borderWidth: 0, radius: "md" },
1181
1161
  surface: {
1182
- background: semanticColors.surface.default,
1162
+ background: semanticColors.canvas,
1183
1163
  border: semanticColors.border.default,
1184
1164
  borderWidth: stroke.default,
1185
1165
  radius: "md",
@@ -1556,7 +1536,7 @@ export const bottomCtaRecipe = {
1556
1536
  // (one step up from canvas) instead of by shadow alone is how this
1557
1537
  // component builds the separation; `shadow` below is reserved for the one
1558
1538
  // case that still needs it — see its comment.
1559
- background: semanticColors.surface.default,
1539
+ background: semanticColors.canvas,
1560
1540
  border: semanticColors.border.default,
1561
1541
  borderWidth: stroke.default,
1562
1542
  // The cut described above is the scroll viewport's edge, not a spacing