@hjmds/react 1.1.1 → 1.3.4

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 (203) hide show
  1. package/dist/actions.d.ts.map +1 -1
  2. package/dist/actions.js +12 -6
  3. package/dist/actions.js.map +1 -1
  4. package/dist/advanced-display.d.ts +21 -0
  5. package/dist/advanced-display.d.ts.map +1 -1
  6. package/dist/advanced-display.js +11 -0
  7. package/dist/advanced-display.js.map +1 -1
  8. package/dist/advanced-navigation.d.ts +2 -23
  9. package/dist/advanced-navigation.d.ts.map +1 -1
  10. package/dist/advanced-navigation.js +3 -24
  11. package/dist/advanced-navigation.js.map +1 -1
  12. package/dist/agreement.d.ts +20 -0
  13. package/dist/agreement.d.ts.map +1 -0
  14. package/dist/agreement.js +29 -0
  15. package/dist/agreement.js.map +1 -0
  16. package/dist/anchor.d.ts +24 -0
  17. package/dist/anchor.d.ts.map +1 -0
  18. package/dist/anchor.js +110 -0
  19. package/dist/anchor.js.map +1 -0
  20. package/dist/asset.d.ts +40 -0
  21. package/dist/asset.d.ts.map +1 -0
  22. package/dist/asset.js +26 -0
  23. package/dist/asset.js.map +1 -0
  24. package/dist/auth-screen.d.ts +29 -0
  25. package/dist/auth-screen.d.ts.map +1 -0
  26. package/dist/auth-screen.js +26 -0
  27. package/dist/auth-screen.js.map +1 -0
  28. package/dist/bottom-cta.d.ts +32 -0
  29. package/dist/bottom-cta.d.ts.map +1 -0
  30. package/dist/bottom-cta.js +30 -0
  31. package/dist/bottom-cta.js.map +1 -0
  32. package/dist/bottom-info.d.ts +16 -0
  33. package/dist/bottom-info.d.ts.map +1 -0
  34. package/dist/bottom-info.js +12 -0
  35. package/dist/bottom-info.js.map +1 -0
  36. package/dist/breadcrumb.d.ts +9 -0
  37. package/dist/breadcrumb.d.ts.map +1 -0
  38. package/dist/breadcrumb.js +12 -0
  39. package/dist/breadcrumb.js.map +1 -0
  40. package/dist/calendar.d.ts +30 -0
  41. package/dist/calendar.d.ts.map +1 -0
  42. package/dist/calendar.js +69 -0
  43. package/dist/calendar.js.map +1 -0
  44. package/dist/carousel.d.ts +20 -0
  45. package/dist/carousel.d.ts.map +1 -0
  46. package/dist/carousel.js +70 -0
  47. package/dist/carousel.js.map +1 -0
  48. package/dist/clipboard.d.ts +33 -0
  49. package/dist/clipboard.d.ts.map +1 -0
  50. package/dist/clipboard.js +40 -0
  51. package/dist/clipboard.js.map +1 -0
  52. package/dist/collapsible.d.ts +11 -0
  53. package/dist/collapsible.d.ts.map +1 -0
  54. package/dist/collapsible.js +18 -0
  55. package/dist/collapsible.js.map +1 -0
  56. package/dist/command-palette.d.ts +25 -0
  57. package/dist/command-palette.d.ts.map +1 -0
  58. package/dist/command-palette.js +82 -0
  59. package/dist/command-palette.js.map +1 -0
  60. package/dist/context-menu.d.ts +12 -0
  61. package/dist/context-menu.d.ts.map +1 -0
  62. package/dist/context-menu.js +111 -0
  63. package/dist/context-menu.js.map +1 -0
  64. package/dist/data-table.d.ts +30 -0
  65. package/dist/data-table.d.ts.map +1 -0
  66. package/dist/data-table.js +57 -0
  67. package/dist/data-table.js.map +1 -0
  68. package/dist/date-picker.d.ts +3 -1
  69. package/dist/date-picker.d.ts.map +1 -1
  70. package/dist/date-picker.js +16 -31
  71. package/dist/date-picker.js.map +1 -1
  72. package/dist/date-range.d.ts +24 -0
  73. package/dist/date-range.d.ts.map +1 -0
  74. package/dist/date-range.js +29 -0
  75. package/dist/date-range.js.map +1 -0
  76. package/dist/display.d.ts +16 -0
  77. package/dist/display.d.ts.map +1 -1
  78. package/dist/display.js +13 -1
  79. package/dist/display.js.map +1 -1
  80. package/dist/evidence.d.ts +496 -1
  81. package/dist/evidence.d.ts.map +1 -1
  82. package/dist/evidence.js +48 -2
  83. package/dist/evidence.js.map +1 -1
  84. package/dist/feedback.d.ts +18 -2
  85. package/dist/feedback.d.ts.map +1 -1
  86. package/dist/feedback.js +10 -2
  87. package/dist/feedback.js.map +1 -1
  88. package/dist/floating-action-button.d.ts +32 -0
  89. package/dist/floating-action-button.d.ts.map +1 -0
  90. package/dist/floating-action-button.js +58 -0
  91. package/dist/floating-action-button.js.map +1 -0
  92. package/dist/forms.d.ts +3 -3
  93. package/dist/forms.d.ts.map +1 -1
  94. package/dist/forms.js +18 -7
  95. package/dist/forms.js.map +1 -1
  96. package/dist/heading.d.ts +12 -0
  97. package/dist/heading.d.ts.map +1 -0
  98. package/dist/heading.js +25 -0
  99. package/dist/heading.js.map +1 -0
  100. package/dist/index.d.ts +36 -2
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +36 -2
  103. package/dist/index.js.map +1 -1
  104. package/dist/layout.d.ts +1 -1
  105. package/dist/mentions.d.ts +28 -0
  106. package/dist/mentions.d.ts.map +1 -0
  107. package/dist/mentions.js +84 -0
  108. package/dist/mentions.js.map +1 -0
  109. package/dist/menubar.d.ts +11 -0
  110. package/dist/menubar.d.ts.map +1 -0
  111. package/dist/menubar.js +137 -0
  112. package/dist/menubar.js.map +1 -0
  113. package/dist/modal.d.ts +67 -0
  114. package/dist/modal.d.ts.map +1 -0
  115. package/dist/modal.js +307 -0
  116. package/dist/modal.js.map +1 -0
  117. package/dist/overlay-stack.d.ts +28 -0
  118. package/dist/overlay-stack.d.ts.map +1 -0
  119. package/dist/overlay-stack.js +47 -0
  120. package/dist/overlay-stack.js.map +1 -0
  121. package/dist/overlays.d.ts +26 -43
  122. package/dist/overlays.d.ts.map +1 -1
  123. package/dist/overlays.js +62 -302
  124. package/dist/overlays.js.map +1 -1
  125. package/dist/pagination.d.ts +17 -0
  126. package/dist/pagination.d.ts.map +1 -0
  127. package/dist/pagination.js +21 -0
  128. package/dist/pagination.js.map +1 -0
  129. package/dist/popover.d.ts +25 -0
  130. package/dist/popover.d.ts.map +1 -0
  131. package/dist/popover.js +226 -0
  132. package/dist/popover.js.map +1 -0
  133. package/dist/portal.d.ts +5 -1
  134. package/dist/portal.d.ts.map +1 -1
  135. package/dist/portal.js +24 -1
  136. package/dist/portal.js.map +1 -1
  137. package/dist/provider-button.d.ts +21 -0
  138. package/dist/provider-button.d.ts.map +1 -0
  139. package/dist/provider-button.js +26 -0
  140. package/dist/provider-button.js.map +1 -0
  141. package/dist/provider.d.ts +13 -1
  142. package/dist/provider.d.ts.map +1 -1
  143. package/dist/provider.js +12 -2
  144. package/dist/provider.js.map +1 -1
  145. package/dist/selection.d.ts +5 -1
  146. package/dist/selection.d.ts.map +1 -1
  147. package/dist/selection.js +2 -2
  148. package/dist/selection.js.map +1 -1
  149. package/dist/side-panel.d.ts +34 -0
  150. package/dist/side-panel.d.ts.map +1 -0
  151. package/dist/side-panel.js +95 -0
  152. package/dist/side-panel.js.map +1 -0
  153. package/dist/sidebar.d.ts +22 -0
  154. package/dist/sidebar.d.ts.map +1 -0
  155. package/dist/sidebar.js +29 -0
  156. package/dist/sidebar.js.map +1 -0
  157. package/dist/skip-nav.d.ts +12 -0
  158. package/dist/skip-nav.d.ts.map +1 -0
  159. package/dist/skip-nav.js +29 -0
  160. package/dist/skip-nav.js.map +1 -0
  161. package/dist/splitter.d.ts +45 -0
  162. package/dist/splitter.d.ts.map +1 -0
  163. package/dist/splitter.js +116 -0
  164. package/dist/splitter.js.map +1 -0
  165. package/dist/styles.css +1105 -26
  166. package/dist/supplemental-display.d.ts +12 -0
  167. package/dist/supplemental-display.d.ts.map +1 -1
  168. package/dist/supplemental-display.js +6 -2
  169. package/dist/supplemental-display.js.map +1 -1
  170. package/dist/tags-input.d.ts +60 -0
  171. package/dist/tags-input.d.ts.map +1 -0
  172. package/dist/tags-input.js +90 -0
  173. package/dist/tags-input.js.map +1 -0
  174. package/dist/text-formats.d.ts +16 -0
  175. package/dist/text-formats.d.ts.map +1 -0
  176. package/dist/text-formats.js +24 -0
  177. package/dist/text-formats.js.map +1 -0
  178. package/dist/toast.d.ts +1 -1
  179. package/dist/toggle-group.d.ts +13 -0
  180. package/dist/toggle-group.d.ts.map +1 -0
  181. package/dist/toggle-group.js +21 -0
  182. package/dist/toggle-group.js.map +1 -0
  183. package/dist/top-bar.d.ts +27 -0
  184. package/dist/top-bar.d.ts.map +1 -0
  185. package/dist/top-bar.js +30 -0
  186. package/dist/top-bar.js.map +1 -0
  187. package/dist/top.d.ts +15 -0
  188. package/dist/top.d.ts.map +1 -0
  189. package/dist/top.js +18 -0
  190. package/dist/top.js.map +1 -0
  191. package/dist/tour.d.ts +21 -0
  192. package/dist/tour.d.ts.map +1 -0
  193. package/dist/tour.js +122 -0
  194. package/dist/tour.js.map +1 -0
  195. package/dist/transfer-list.d.ts +24 -0
  196. package/dist/transfer-list.d.ts.map +1 -0
  197. package/dist/transfer-list.js +109 -0
  198. package/dist/transfer-list.js.map +1 -0
  199. package/dist/tree.d.ts +29 -0
  200. package/dist/tree.d.ts.map +1 -0
  201. package/dist/tree.js +120 -0
  202. package/dist/tree.js.map +1 -0
  203. package/package.json +178 -3
package/dist/display.js CHANGED
@@ -5,6 +5,7 @@ import { cardRecipe, } from "@hjmds/design-contracts/components/card";
5
5
  import { surfaceGeometry, } from "@hjmds/design-contracts/recipes/base";
6
6
  import { createElement, forwardRef, } from "react";
7
7
  import { classNames } from "./internal.js";
8
+ import { useHjmDensityDefault } from "./provider.js";
8
9
  import { Surface, Text } from "./layout.js";
9
10
  export const Badge = forwardRef(function Badge({ tone = badgeRecipe.defaults.tone, size = badgeRecipe.defaults.size, variant = badgeRecipe.defaults.variant, leading, className, children, layoutStyle, style, ...props }, ref) {
10
11
  return (_jsxs("span", { ...props, style: { ...style, ...layoutStyle }, ref: ref, className: classNames("hjm-badge", className), "data-tone": tone, "data-size": size, "data-variant": variant, children: [leading === undefined ? null : (_jsx("span", { "aria-hidden": "true", className: "hjm-badge__icon", children: leading })), _jsx("span", { className: "hjm-badge__label", children: children })] }));
@@ -22,7 +23,18 @@ export const Card = forwardRef(function Card({ title, description, leading, medi
22
23
  ? null
23
24
  : createElement(`h${headingLevel}`, { className: "hjm-card__title", "data-slot": "title" }, title), description === undefined ? null : (_jsx(Text, { as: "p", tone: "muted", className: "hjm-card__description", "data-slot": "description", children: description }))] })] })) : null, children === undefined ? null : (_jsx("div", { className: "hjm-card__content", "data-slot": "content", children: children }))] }), actions ? _jsx("div", { className: "hjm-card__actions", "data-slot": "actions", children: actions }) : null] }));
24
25
  });
25
- export const ListRow = forwardRef(function ListRow({ title, description, leading, trailing, density = listRowRecipe.defaults.density, leadingShape = "square", selected = listRowRecipe.defaults.selected, disabled = false, href, onClick, className, layoutStyle, style, ...props }, ref) {
26
+ export const ListRow = forwardRef(function ListRow({ title, description, leading, trailing, density: densityProp, leadingShape = "square", selected = listRowRecipe.defaults.selected, disabled = false, loading = false, loadingLabel, href, onClick, className, layoutStyle, style, ...props }, ref) {
27
+ // The hook runs unconditionally — `??` would short-circuit it and break the
28
+ // rules of hooks on the very first row that passes `density`.
29
+ const densityDefault = useHjmDensityDefault({
30
+ comfortable: listRowRecipe.defaults.density,
31
+ compact: "compact",
32
+ });
33
+ const density = densityProp ?? densityDefault;
34
+ if (loading) {
35
+ // A loading row is never interactive: there is nothing to activate yet.
36
+ return (_jsxs("div", { ...props, ref: ref, role: "status", "aria-busy": "true", "aria-label": loadingLabel, className: classNames("hjm-list-row", "hjm-list-row--loading", className), "data-density": density, "data-lines": description ? "two" : "one", "data-state": "loading", style: { ...style, ...layoutStyle }, children: [leading ? _jsx("span", { className: "hjm-list-row__leading", "data-shape": leadingShape, "data-placeholder": "" }) : null, _jsxs("span", { className: "hjm-list-row__content", children: [_jsx("span", { className: "hjm-list-row__title", "data-placeholder": "" }), description ? _jsx("span", { className: "hjm-list-row__description", "data-placeholder": "" }) : null] }), trailing ? _jsx("span", { className: "hjm-list-row__trailing", "data-placeholder": "" }) : null] }));
37
+ }
26
38
  const element = href ? "a" : onClick ? "button" : "div";
27
39
  const interactiveProps = href
28
40
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n badgeRecipe,\n listRowRecipe,\n type BadgeSize,\n type BadgeTone,\n type BadgeVariant as ContractBadgeVariant,\n type ListRowDensity,\n type ListRowLeadingShape,\n} from \"@hjmds/design-contracts/recipes\";\nimport {\n resolveTagDescriptor,\n type TagTone,\n} from \"@hjmds/design-contracts/components/tag\";\nimport {\n cardRecipe,\n type CardHeadingLevel,\n} from \"@hjmds/design-contracts/components/card\";\nimport {\n surfaceGeometry,\n type SurfacePadding,\n type SurfaceRadius,\n type SurfaceTone,\n} from \"@hjmds/design-contracts/recipes/base\";\nimport {\n createElement,\n forwardRef,\n type HTMLAttributes,\n type MouseEventHandler,\n type ReactNode,\n} from \"react\";\nimport { classNames } from \"./internal.js\";\nimport { Surface, Text } from \"./layout.js\";\nimport type { HjmCompositionStyleProp } from \"./composition-style.js\";\n\nexport type { CardHeadingLevel } from \"@hjmds/design-contracts/components/card\";\nexport type { TagTone } from \"@hjmds/design-contracts/components/tag\";\nexport type BadgeVariant = ContractBadgeVariant;\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n Readonly<{\n tone?: BadgeTone;\n size?: BadgeSize;\n variant?: BadgeVariant;\n leading?: ReactNode;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\n {\n tone = badgeRecipe.defaults.tone,\n size = badgeRecipe.defaults.size,\n variant = badgeRecipe.defaults.variant,\n leading,\n className,\n children,\n layoutStyle,\n style,\n ...props\n },\n ref,\n) {\n return (\n <span\n {...props}\n style={{ ...style, ...layoutStyle }}\n ref={ref}\n className={classNames(\"hjm-badge\", className)}\n data-tone={tone}\n data-size={size}\n data-variant={variant}\n >\n {leading === undefined ? null : (\n <span aria-hidden=\"true\" className=\"hjm-badge__icon\">\n {leading}\n </span>\n )}\n <span className=\"hjm-badge__label\">{children}</span>\n </span>\n );\n});\n\nexport type TagProps = Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> &\n Readonly<{\n children: string;\n tone?: TagTone;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(function Tag(\n { children, tone, className, layoutStyle, style, ...props },\n ref,\n) {\n const descriptor = resolveTagDescriptor({\n label: children,\n ...(tone === undefined ? {} : { tone }),\n });\n return (\n <span\n {...props}\n style={{ ...style, ...layoutStyle }}\n ref={ref}\n className={classNames(\"hjm-tag\", className)}\n data-tone={descriptor.tone}\n >\n <span className=\"hjm-tag__label\">{descriptor.label}</span>\n </span>\n );\n});\n\nexport type CardProps = Omit<HTMLAttributes<HTMLElement>, \"title\"> &\n Readonly<{\n title?: ReactNode;\n description?: ReactNode;\n leading?: ReactNode;\n media?: ReactNode;\n actions?: ReactNode;\n headingLevel?: CardHeadingLevel;\n selected?: boolean;\n tone?: SurfaceTone;\n bordered?: boolean;\n padding?: SurfacePadding;\n radius?: SurfaceRadius;\n }>;\n\nexport const Card = forwardRef<HTMLElement, CardProps>(function Card(\n {\n title,\n description,\n leading,\n media,\n actions,\n headingLevel = cardRecipe.defaults.headingLevel,\n selected = cardRecipe.defaults.selected,\n tone = cardRecipe.defaults.tone,\n bordered = cardRecipe.defaults.bordered,\n padding = cardRecipe.defaults.padding,\n radius,\n className,\n children,\n ...props\n },\n ref,\n) {\n const hasHeader =\n leading !== undefined || title !== undefined || description !== undefined;\n\n return (\n <Surface\n {...props}\n ref={ref}\n as=\"article\"\n tone={selected ? cardRecipe.selectedTone : tone}\n bordered={bordered}\n {...(radius === undefined ? {} : { radius })}\n className={classNames(\"hjm-card\", className)}\n data-state={selected ? \"selected\" : \"idle\"}\n >\n {media ? <div className=\"hjm-card__media\" data-slot=\"media\">{media}</div> : null}\n <div\n className=\"hjm-card__body\"\n data-slot=\"body\"\n style={{ padding: surfaceGeometry.paddings[padding] }}\n >\n {hasHeader ? (\n <div className=\"hjm-card__header\" data-slot=\"header\">\n {leading === undefined ? null : (\n <span className=\"hjm-card__leading\" data-slot=\"leading\">\n {leading}\n </span>\n )}\n <div className=\"hjm-card__copy\">\n {title === undefined\n ? null\n : createElement(\n `h${headingLevel}`,\n { className: \"hjm-card__title\", \"data-slot\": \"title\" },\n title,\n )}\n {description === undefined ? null : (\n <Text\n as=\"p\"\n tone=\"muted\"\n className=\"hjm-card__description\"\n data-slot=\"description\"\n >\n {description}\n </Text>\n )}\n </div>\n </div>\n ) : null}\n {children === undefined ? null : (\n <div className=\"hjm-card__content\" data-slot=\"content\">{children}</div>\n )}\n </div>\n {actions ? <div className=\"hjm-card__actions\" data-slot=\"actions\">{actions}</div> : null}\n </Surface>\n );\n});\n\nexport type ListRowProps = Omit<HTMLAttributes<HTMLElement>, \"title\" | \"onClick\"> &\n Readonly<{\n title: ReactNode;\n description?: ReactNode;\n leading?: ReactNode;\n trailing?: ReactNode;\n density?: ListRowDensity;\n /** Frame the ListRow paints around `leading`; the recipe owns its size. */\n leadingShape?: ListRowLeadingShape;\n selected?: boolean;\n disabled?: boolean;\n href?: string;\n onClick?: MouseEventHandler<HTMLElement>;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const ListRow = forwardRef<HTMLElement, ListRowProps>(function ListRow(\n {\n title,\n description,\n leading,\n trailing,\n density = listRowRecipe.defaults.density,\n leadingShape = \"square\",\n selected = listRowRecipe.defaults.selected,\n disabled = false,\n href,\n onClick,\n className,\n layoutStyle,\n style,\n ...props\n },\n ref,\n) {\n const element = href ? \"a\" : onClick ? \"button\" : \"div\";\n const interactiveProps = href\n ? {\n href: disabled ? undefined : href,\n \"aria-current\": selected ? (\"page\" as const) : undefined,\n \"aria-disabled\": disabled || undefined,\n tabIndex: disabled ? -1 : undefined,\n }\n : onClick\n ? {\n type: \"button\" as const,\n onClick: disabled ? undefined : onClick,\n disabled,\n \"aria-pressed\": selected,\n }\n : {};\n\n return createElement(\n element,\n {\n ...props,\n ...interactiveProps,\n ref,\n className: classNames(\"hjm-list-row\", className),\n \"data-density\": density,\n // One- and two-line rows have different minimum heights in the recipe;\n // the web renderer used a single hardcoded value until now.\n \"data-lines\": description ? \"two\" : \"one\",\n \"data-state\": disabled ? \"disabled\" : selected ? \"selected\" : \"idle\",\n // Placement wins over the legacy `style`, matching Surface's ordering.\n style: { ...style, ...layoutStyle },\n },\n leading\n ? <span className=\"hjm-list-row__leading\" data-shape={leadingShape}>{leading}</span>\n : null,\n <span className=\"hjm-list-row__content\">\n <span className=\"hjm-list-row__title\">{title}</span>\n {description ? (\n <span className=\"hjm-list-row__description\">{description}</span>\n ) : null}\n </span>,\n trailing ? <span className=\"hjm-list-row__trailing\">{trailing}</span> : null,\n );\n});\n"]}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../src/display.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n badgeRecipe,\n listRowRecipe,\n type BadgeSize,\n type BadgeTone,\n type BadgeVariant as ContractBadgeVariant,\n type ListRowDensity,\n type ListRowLeadingShape,\n} from \"@hjmds/design-contracts/recipes\";\nimport {\n resolveTagDescriptor,\n type TagTone,\n} from \"@hjmds/design-contracts/components/tag\";\nimport {\n cardRecipe,\n type CardHeadingLevel,\n} from \"@hjmds/design-contracts/components/card\";\nimport {\n surfaceGeometry,\n type SurfacePadding,\n type SurfaceRadius,\n type SurfaceTone,\n} from \"@hjmds/design-contracts/recipes/base\";\nimport {\n createElement,\n forwardRef,\n type HTMLAttributes,\n type MouseEventHandler,\n type ReactNode,\n} from \"react\";\nimport { classNames } from \"./internal.js\";\nimport { useHjmDensityDefault } from \"./provider.js\";\nimport { Surface, Text } from \"./layout.js\";\nimport type { HjmCompositionStyleProp } from \"./composition-style.js\";\n\nexport type { CardHeadingLevel } from \"@hjmds/design-contracts/components/card\";\nexport type { TagTone } from \"@hjmds/design-contracts/components/tag\";\nexport type BadgeVariant = ContractBadgeVariant;\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n Readonly<{\n tone?: BadgeTone;\n size?: BadgeSize;\n variant?: BadgeVariant;\n leading?: ReactNode;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(function Badge(\n {\n tone = badgeRecipe.defaults.tone,\n size = badgeRecipe.defaults.size,\n variant = badgeRecipe.defaults.variant,\n leading,\n className,\n children,\n layoutStyle,\n style,\n ...props\n },\n ref,\n) {\n return (\n <span\n {...props}\n style={{ ...style, ...layoutStyle }}\n ref={ref}\n className={classNames(\"hjm-badge\", className)}\n data-tone={tone}\n data-size={size}\n data-variant={variant}\n >\n {leading === undefined ? null : (\n <span aria-hidden=\"true\" className=\"hjm-badge__icon\">\n {leading}\n </span>\n )}\n <span className=\"hjm-badge__label\">{children}</span>\n </span>\n );\n});\n\nexport type TagProps = Omit<HTMLAttributes<HTMLSpanElement>, \"children\"> &\n Readonly<{\n children: string;\n tone?: TagTone;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(function Tag(\n { children, tone, className, layoutStyle, style, ...props },\n ref,\n) {\n const descriptor = resolveTagDescriptor({\n label: children,\n ...(tone === undefined ? {} : { tone }),\n });\n return (\n <span\n {...props}\n style={{ ...style, ...layoutStyle }}\n ref={ref}\n className={classNames(\"hjm-tag\", className)}\n data-tone={descriptor.tone}\n >\n <span className=\"hjm-tag__label\">{descriptor.label}</span>\n </span>\n );\n});\n\nexport type CardProps = Omit<HTMLAttributes<HTMLElement>, \"title\"> &\n Readonly<{\n title?: ReactNode;\n description?: ReactNode;\n leading?: ReactNode;\n media?: ReactNode;\n actions?: ReactNode;\n headingLevel?: CardHeadingLevel;\n selected?: boolean;\n tone?: SurfaceTone;\n bordered?: boolean;\n padding?: SurfacePadding;\n radius?: SurfaceRadius;\n }>;\n\nexport const Card = forwardRef<HTMLElement, CardProps>(function Card(\n {\n title,\n description,\n leading,\n media,\n actions,\n headingLevel = cardRecipe.defaults.headingLevel,\n selected = cardRecipe.defaults.selected,\n tone = cardRecipe.defaults.tone,\n bordered = cardRecipe.defaults.bordered,\n padding = cardRecipe.defaults.padding,\n radius,\n className,\n children,\n ...props\n },\n ref,\n) {\n const hasHeader =\n leading !== undefined || title !== undefined || description !== undefined;\n\n return (\n <Surface\n {...props}\n ref={ref}\n as=\"article\"\n tone={selected ? cardRecipe.selectedTone : tone}\n bordered={bordered}\n {...(radius === undefined ? {} : { radius })}\n className={classNames(\"hjm-card\", className)}\n data-state={selected ? \"selected\" : \"idle\"}\n >\n {media ? <div className=\"hjm-card__media\" data-slot=\"media\">{media}</div> : null}\n <div\n className=\"hjm-card__body\"\n data-slot=\"body\"\n style={{ padding: surfaceGeometry.paddings[padding] }}\n >\n {hasHeader ? (\n <div className=\"hjm-card__header\" data-slot=\"header\">\n {leading === undefined ? null : (\n <span className=\"hjm-card__leading\" data-slot=\"leading\">\n {leading}\n </span>\n )}\n <div className=\"hjm-card__copy\">\n {title === undefined\n ? null\n : createElement(\n `h${headingLevel}`,\n { className: \"hjm-card__title\", \"data-slot\": \"title\" },\n title,\n )}\n {description === undefined ? null : (\n <Text\n as=\"p\"\n tone=\"muted\"\n className=\"hjm-card__description\"\n data-slot=\"description\"\n >\n {description}\n </Text>\n )}\n </div>\n </div>\n ) : null}\n {children === undefined ? null : (\n <div className=\"hjm-card__content\" data-slot=\"content\">{children}</div>\n )}\n </div>\n {actions ? <div className=\"hjm-card__actions\" data-slot=\"actions\">{actions}</div> : null}\n </Surface>\n );\n});\n\nexport type ListRowProps = Omit<HTMLAttributes<HTMLElement>, \"title\" | \"onClick\"> &\n Readonly<{\n title: ReactNode;\n description?: ReactNode;\n leading?: ReactNode;\n trailing?: ReactNode;\n density?: ListRowDensity;\n /** Frame the ListRow paints around `leading`; the recipe owns its size. */\n leadingShape?: ListRowLeadingShape;\n selected?: boolean;\n disabled?: boolean;\n /**\n * Placeholder row while the real one loads. It keeps the row's own height\n * and slot geometry, so a list does not jump when the content arrives —\n * which is exactly what a product-owned skeleton next to the list cannot do.\n */\n loading?: boolean;\n /** Localized status text announced while `loading`. */\n loadingLabel?: string;\n href?: string;\n onClick?: MouseEventHandler<HTMLElement>;\n /** Canonical layout-only placement. Controlled visual keys are excluded. */\n layoutStyle?: HjmCompositionStyleProp;\n}>;\n\nexport const ListRow = forwardRef<HTMLElement, ListRowProps>(function ListRow(\n {\n title,\n description,\n leading,\n trailing,\n density: densityProp,\n leadingShape = \"square\",\n selected = listRowRecipe.defaults.selected,\n disabled = false,\n loading = false,\n loadingLabel,\n href,\n onClick,\n className,\n layoutStyle,\n style,\n ...props\n },\n ref,\n) {\n // The hook runs unconditionally — `??` would short-circuit it and break the\n // rules of hooks on the very first row that passes `density`.\n const densityDefault = useHjmDensityDefault({\n comfortable: listRowRecipe.defaults.density,\n compact: \"compact\",\n });\n const density = densityProp ?? densityDefault;\n if (loading) {\n // A loading row is never interactive: there is nothing to activate yet.\n return (\n <div\n {...props}\n ref={ref as React.Ref<HTMLDivElement>}\n role=\"status\"\n aria-busy=\"true\"\n aria-label={loadingLabel}\n className={classNames(\"hjm-list-row\", \"hjm-list-row--loading\", className)}\n data-density={density}\n data-lines={description ? \"two\" : \"one\"}\n data-state=\"loading\"\n style={{ ...style, ...layoutStyle }}\n >\n {leading ? <span className=\"hjm-list-row__leading\" data-shape={leadingShape} data-placeholder=\"\" /> : null}\n <span className=\"hjm-list-row__content\">\n <span className=\"hjm-list-row__title\" data-placeholder=\"\" />\n {description ? <span className=\"hjm-list-row__description\" data-placeholder=\"\" /> : null}\n </span>\n {trailing ? <span className=\"hjm-list-row__trailing\" data-placeholder=\"\" /> : null}\n </div>\n );\n }\n const element = href ? \"a\" : onClick ? \"button\" : \"div\";\n const interactiveProps = href\n ? {\n href: disabled ? undefined : href,\n \"aria-current\": selected ? (\"page\" as const) : undefined,\n \"aria-disabled\": disabled || undefined,\n tabIndex: disabled ? -1 : undefined,\n }\n : onClick\n ? {\n type: \"button\" as const,\n onClick: disabled ? undefined : onClick,\n disabled,\n \"aria-pressed\": selected,\n }\n : {};\n\n return createElement(\n element,\n {\n ...props,\n ...interactiveProps,\n ref,\n className: classNames(\"hjm-list-row\", className),\n \"data-density\": density,\n // One- and two-line rows have different minimum heights in the recipe;\n // the web renderer used a single hardcoded value until now.\n \"data-lines\": description ? \"two\" : \"one\",\n \"data-state\": disabled ? \"disabled\" : selected ? \"selected\" : \"idle\",\n // Placement wins over the legacy `style`, matching Surface's ordering.\n style: { ...style, ...layoutStyle },\n },\n leading\n ? <span className=\"hjm-list-row__leading\" data-shape={leadingShape}>{leading}</span>\n : null,\n <span className=\"hjm-list-row__content\">\n <span className=\"hjm-list-row__title\">{title}</span>\n {description ? (\n <span className=\"hjm-list-row__description\">{description}</span>\n ) : null}\n </span>,\n trailing ? <span className=\"hjm-list-row__trailing\">{trailing}</span> : null,\n );\n});\n"]}
@@ -33,7 +33,7 @@ export type ReactRendererEvidenceManifest = Readonly<{
33
33
  export declare const reactRendererEvidence: {
34
34
  readonly schemaVersion: 2;
35
35
  readonly packageName: "@hjmds/react";
36
- readonly packageVersion: "1.1.1";
36
+ readonly packageVersion: "1.3.4";
37
37
  readonly surface: "web";
38
38
  readonly components: readonly [Readonly<{
39
39
  /** Canonical component id from the design-contracts catalog. */
@@ -980,6 +980,501 @@ export declare const reactRendererEvidence: {
980
980
  file: `test/${string}.test.tsx`;
981
981
  caseId: string;
982
982
  }>[];
983
+ }>, Readonly<{
984
+ /** Canonical component id from the design-contracts catalog. */
985
+ componentId: string;
986
+ /** Public symbols that implement this contract on the declared subpath. */
987
+ exportNames: readonly string[];
988
+ /** Granular @hjmds/react export used by consumers. */
989
+ subpath: `./${string}`;
990
+ /** Scenarios supported by automated first-party renderer evidence. */
991
+ scenarios: readonly ReactRendererEvidenceScenario[];
992
+ /** Repository-local executable proof for every claimed scenario. */
993
+ proofs: readonly Readonly<{
994
+ scenarios: readonly ReactRendererEvidenceScenario[];
995
+ file: `test/${string}.test.tsx`;
996
+ caseId: string;
997
+ }>[];
998
+ }>, Readonly<{
999
+ /** Canonical component id from the design-contracts catalog. */
1000
+ componentId: string;
1001
+ /** Public symbols that implement this contract on the declared subpath. */
1002
+ exportNames: readonly string[];
1003
+ /** Granular @hjmds/react export used by consumers. */
1004
+ subpath: `./${string}`;
1005
+ /** Scenarios supported by automated first-party renderer evidence. */
1006
+ scenarios: readonly ReactRendererEvidenceScenario[];
1007
+ /** Repository-local executable proof for every claimed scenario. */
1008
+ proofs: readonly Readonly<{
1009
+ scenarios: readonly ReactRendererEvidenceScenario[];
1010
+ file: `test/${string}.test.tsx`;
1011
+ caseId: string;
1012
+ }>[];
1013
+ }>, Readonly<{
1014
+ /** Canonical component id from the design-contracts catalog. */
1015
+ componentId: string;
1016
+ /** Public symbols that implement this contract on the declared subpath. */
1017
+ exportNames: readonly string[];
1018
+ /** Granular @hjmds/react export used by consumers. */
1019
+ subpath: `./${string}`;
1020
+ /** Scenarios supported by automated first-party renderer evidence. */
1021
+ scenarios: readonly ReactRendererEvidenceScenario[];
1022
+ /** Repository-local executable proof for every claimed scenario. */
1023
+ proofs: readonly Readonly<{
1024
+ scenarios: readonly ReactRendererEvidenceScenario[];
1025
+ file: `test/${string}.test.tsx`;
1026
+ caseId: string;
1027
+ }>[];
1028
+ }>, Readonly<{
1029
+ /** Canonical component id from the design-contracts catalog. */
1030
+ componentId: string;
1031
+ /** Public symbols that implement this contract on the declared subpath. */
1032
+ exportNames: readonly string[];
1033
+ /** Granular @hjmds/react export used by consumers. */
1034
+ subpath: `./${string}`;
1035
+ /** Scenarios supported by automated first-party renderer evidence. */
1036
+ scenarios: readonly ReactRendererEvidenceScenario[];
1037
+ /** Repository-local executable proof for every claimed scenario. */
1038
+ proofs: readonly Readonly<{
1039
+ scenarios: readonly ReactRendererEvidenceScenario[];
1040
+ file: `test/${string}.test.tsx`;
1041
+ caseId: string;
1042
+ }>[];
1043
+ }>, Readonly<{
1044
+ /** Canonical component id from the design-contracts catalog. */
1045
+ componentId: string;
1046
+ /** Public symbols that implement this contract on the declared subpath. */
1047
+ exportNames: readonly string[];
1048
+ /** Granular @hjmds/react export used by consumers. */
1049
+ subpath: `./${string}`;
1050
+ /** Scenarios supported by automated first-party renderer evidence. */
1051
+ scenarios: readonly ReactRendererEvidenceScenario[];
1052
+ /** Repository-local executable proof for every claimed scenario. */
1053
+ proofs: readonly Readonly<{
1054
+ scenarios: readonly ReactRendererEvidenceScenario[];
1055
+ file: `test/${string}.test.tsx`;
1056
+ caseId: string;
1057
+ }>[];
1058
+ }>, Readonly<{
1059
+ /** Canonical component id from the design-contracts catalog. */
1060
+ componentId: string;
1061
+ /** Public symbols that implement this contract on the declared subpath. */
1062
+ exportNames: readonly string[];
1063
+ /** Granular @hjmds/react export used by consumers. */
1064
+ subpath: `./${string}`;
1065
+ /** Scenarios supported by automated first-party renderer evidence. */
1066
+ scenarios: readonly ReactRendererEvidenceScenario[];
1067
+ /** Repository-local executable proof for every claimed scenario. */
1068
+ proofs: readonly Readonly<{
1069
+ scenarios: readonly ReactRendererEvidenceScenario[];
1070
+ file: `test/${string}.test.tsx`;
1071
+ caseId: string;
1072
+ }>[];
1073
+ }>, Readonly<{
1074
+ /** Canonical component id from the design-contracts catalog. */
1075
+ componentId: string;
1076
+ /** Public symbols that implement this contract on the declared subpath. */
1077
+ exportNames: readonly string[];
1078
+ /** Granular @hjmds/react export used by consumers. */
1079
+ subpath: `./${string}`;
1080
+ /** Scenarios supported by automated first-party renderer evidence. */
1081
+ scenarios: readonly ReactRendererEvidenceScenario[];
1082
+ /** Repository-local executable proof for every claimed scenario. */
1083
+ proofs: readonly Readonly<{
1084
+ scenarios: readonly ReactRendererEvidenceScenario[];
1085
+ file: `test/${string}.test.tsx`;
1086
+ caseId: string;
1087
+ }>[];
1088
+ }>, Readonly<{
1089
+ /** Canonical component id from the design-contracts catalog. */
1090
+ componentId: string;
1091
+ /** Public symbols that implement this contract on the declared subpath. */
1092
+ exportNames: readonly string[];
1093
+ /** Granular @hjmds/react export used by consumers. */
1094
+ subpath: `./${string}`;
1095
+ /** Scenarios supported by automated first-party renderer evidence. */
1096
+ scenarios: readonly ReactRendererEvidenceScenario[];
1097
+ /** Repository-local executable proof for every claimed scenario. */
1098
+ proofs: readonly Readonly<{
1099
+ scenarios: readonly ReactRendererEvidenceScenario[];
1100
+ file: `test/${string}.test.tsx`;
1101
+ caseId: string;
1102
+ }>[];
1103
+ }>, Readonly<{
1104
+ /** Canonical component id from the design-contracts catalog. */
1105
+ componentId: string;
1106
+ /** Public symbols that implement this contract on the declared subpath. */
1107
+ exportNames: readonly string[];
1108
+ /** Granular @hjmds/react export used by consumers. */
1109
+ subpath: `./${string}`;
1110
+ /** Scenarios supported by automated first-party renderer evidence. */
1111
+ scenarios: readonly ReactRendererEvidenceScenario[];
1112
+ /** Repository-local executable proof for every claimed scenario. */
1113
+ proofs: readonly Readonly<{
1114
+ scenarios: readonly ReactRendererEvidenceScenario[];
1115
+ file: `test/${string}.test.tsx`;
1116
+ caseId: string;
1117
+ }>[];
1118
+ }>, Readonly<{
1119
+ /** Canonical component id from the design-contracts catalog. */
1120
+ componentId: string;
1121
+ /** Public symbols that implement this contract on the declared subpath. */
1122
+ exportNames: readonly string[];
1123
+ /** Granular @hjmds/react export used by consumers. */
1124
+ subpath: `./${string}`;
1125
+ /** Scenarios supported by automated first-party renderer evidence. */
1126
+ scenarios: readonly ReactRendererEvidenceScenario[];
1127
+ /** Repository-local executable proof for every claimed scenario. */
1128
+ proofs: readonly Readonly<{
1129
+ scenarios: readonly ReactRendererEvidenceScenario[];
1130
+ file: `test/${string}.test.tsx`;
1131
+ caseId: string;
1132
+ }>[];
1133
+ }>, Readonly<{
1134
+ /** Canonical component id from the design-contracts catalog. */
1135
+ componentId: string;
1136
+ /** Public symbols that implement this contract on the declared subpath. */
1137
+ exportNames: readonly string[];
1138
+ /** Granular @hjmds/react export used by consumers. */
1139
+ subpath: `./${string}`;
1140
+ /** Scenarios supported by automated first-party renderer evidence. */
1141
+ scenarios: readonly ReactRendererEvidenceScenario[];
1142
+ /** Repository-local executable proof for every claimed scenario. */
1143
+ proofs: readonly Readonly<{
1144
+ scenarios: readonly ReactRendererEvidenceScenario[];
1145
+ file: `test/${string}.test.tsx`;
1146
+ caseId: string;
1147
+ }>[];
1148
+ }>, Readonly<{
1149
+ /** Canonical component id from the design-contracts catalog. */
1150
+ componentId: string;
1151
+ /** Public symbols that implement this contract on the declared subpath. */
1152
+ exportNames: readonly string[];
1153
+ /** Granular @hjmds/react export used by consumers. */
1154
+ subpath: `./${string}`;
1155
+ /** Scenarios supported by automated first-party renderer evidence. */
1156
+ scenarios: readonly ReactRendererEvidenceScenario[];
1157
+ /** Repository-local executable proof for every claimed scenario. */
1158
+ proofs: readonly Readonly<{
1159
+ scenarios: readonly ReactRendererEvidenceScenario[];
1160
+ file: `test/${string}.test.tsx`;
1161
+ caseId: string;
1162
+ }>[];
1163
+ }>, Readonly<{
1164
+ /** Canonical component id from the design-contracts catalog. */
1165
+ componentId: string;
1166
+ /** Public symbols that implement this contract on the declared subpath. */
1167
+ exportNames: readonly string[];
1168
+ /** Granular @hjmds/react export used by consumers. */
1169
+ subpath: `./${string}`;
1170
+ /** Scenarios supported by automated first-party renderer evidence. */
1171
+ scenarios: readonly ReactRendererEvidenceScenario[];
1172
+ /** Repository-local executable proof for every claimed scenario. */
1173
+ proofs: readonly Readonly<{
1174
+ scenarios: readonly ReactRendererEvidenceScenario[];
1175
+ file: `test/${string}.test.tsx`;
1176
+ caseId: string;
1177
+ }>[];
1178
+ }>, Readonly<{
1179
+ /** Canonical component id from the design-contracts catalog. */
1180
+ componentId: string;
1181
+ /** Public symbols that implement this contract on the declared subpath. */
1182
+ exportNames: readonly string[];
1183
+ /** Granular @hjmds/react export used by consumers. */
1184
+ subpath: `./${string}`;
1185
+ /** Scenarios supported by automated first-party renderer evidence. */
1186
+ scenarios: readonly ReactRendererEvidenceScenario[];
1187
+ /** Repository-local executable proof for every claimed scenario. */
1188
+ proofs: readonly Readonly<{
1189
+ scenarios: readonly ReactRendererEvidenceScenario[];
1190
+ file: `test/${string}.test.tsx`;
1191
+ caseId: string;
1192
+ }>[];
1193
+ }>, Readonly<{
1194
+ /** Canonical component id from the design-contracts catalog. */
1195
+ componentId: string;
1196
+ /** Public symbols that implement this contract on the declared subpath. */
1197
+ exportNames: readonly string[];
1198
+ /** Granular @hjmds/react export used by consumers. */
1199
+ subpath: `./${string}`;
1200
+ /** Scenarios supported by automated first-party renderer evidence. */
1201
+ scenarios: readonly ReactRendererEvidenceScenario[];
1202
+ /** Repository-local executable proof for every claimed scenario. */
1203
+ proofs: readonly Readonly<{
1204
+ scenarios: readonly ReactRendererEvidenceScenario[];
1205
+ file: `test/${string}.test.tsx`;
1206
+ caseId: string;
1207
+ }>[];
1208
+ }>, Readonly<{
1209
+ /** Canonical component id from the design-contracts catalog. */
1210
+ componentId: string;
1211
+ /** Public symbols that implement this contract on the declared subpath. */
1212
+ exportNames: readonly string[];
1213
+ /** Granular @hjmds/react export used by consumers. */
1214
+ subpath: `./${string}`;
1215
+ /** Scenarios supported by automated first-party renderer evidence. */
1216
+ scenarios: readonly ReactRendererEvidenceScenario[];
1217
+ /** Repository-local executable proof for every claimed scenario. */
1218
+ proofs: readonly Readonly<{
1219
+ scenarios: readonly ReactRendererEvidenceScenario[];
1220
+ file: `test/${string}.test.tsx`;
1221
+ caseId: string;
1222
+ }>[];
1223
+ }>, Readonly<{
1224
+ /** Canonical component id from the design-contracts catalog. */
1225
+ componentId: string;
1226
+ /** Public symbols that implement this contract on the declared subpath. */
1227
+ exportNames: readonly string[];
1228
+ /** Granular @hjmds/react export used by consumers. */
1229
+ subpath: `./${string}`;
1230
+ /** Scenarios supported by automated first-party renderer evidence. */
1231
+ scenarios: readonly ReactRendererEvidenceScenario[];
1232
+ /** Repository-local executable proof for every claimed scenario. */
1233
+ proofs: readonly Readonly<{
1234
+ scenarios: readonly ReactRendererEvidenceScenario[];
1235
+ file: `test/${string}.test.tsx`;
1236
+ caseId: string;
1237
+ }>[];
1238
+ }>, Readonly<{
1239
+ /** Canonical component id from the design-contracts catalog. */
1240
+ componentId: string;
1241
+ /** Public symbols that implement this contract on the declared subpath. */
1242
+ exportNames: readonly string[];
1243
+ /** Granular @hjmds/react export used by consumers. */
1244
+ subpath: `./${string}`;
1245
+ /** Scenarios supported by automated first-party renderer evidence. */
1246
+ scenarios: readonly ReactRendererEvidenceScenario[];
1247
+ /** Repository-local executable proof for every claimed scenario. */
1248
+ proofs: readonly Readonly<{
1249
+ scenarios: readonly ReactRendererEvidenceScenario[];
1250
+ file: `test/${string}.test.tsx`;
1251
+ caseId: string;
1252
+ }>[];
1253
+ }>, Readonly<{
1254
+ /** Canonical component id from the design-contracts catalog. */
1255
+ componentId: string;
1256
+ /** Public symbols that implement this contract on the declared subpath. */
1257
+ exportNames: readonly string[];
1258
+ /** Granular @hjmds/react export used by consumers. */
1259
+ subpath: `./${string}`;
1260
+ /** Scenarios supported by automated first-party renderer evidence. */
1261
+ scenarios: readonly ReactRendererEvidenceScenario[];
1262
+ /** Repository-local executable proof for every claimed scenario. */
1263
+ proofs: readonly Readonly<{
1264
+ scenarios: readonly ReactRendererEvidenceScenario[];
1265
+ file: `test/${string}.test.tsx`;
1266
+ caseId: string;
1267
+ }>[];
1268
+ }>, Readonly<{
1269
+ /** Canonical component id from the design-contracts catalog. */
1270
+ componentId: string;
1271
+ /** Public symbols that implement this contract on the declared subpath. */
1272
+ exportNames: readonly string[];
1273
+ /** Granular @hjmds/react export used by consumers. */
1274
+ subpath: `./${string}`;
1275
+ /** Scenarios supported by automated first-party renderer evidence. */
1276
+ scenarios: readonly ReactRendererEvidenceScenario[];
1277
+ /** Repository-local executable proof for every claimed scenario. */
1278
+ proofs: readonly Readonly<{
1279
+ scenarios: readonly ReactRendererEvidenceScenario[];
1280
+ file: `test/${string}.test.tsx`;
1281
+ caseId: string;
1282
+ }>[];
1283
+ }>, Readonly<{
1284
+ /** Canonical component id from the design-contracts catalog. */
1285
+ componentId: string;
1286
+ /** Public symbols that implement this contract on the declared subpath. */
1287
+ exportNames: readonly string[];
1288
+ /** Granular @hjmds/react export used by consumers. */
1289
+ subpath: `./${string}`;
1290
+ /** Scenarios supported by automated first-party renderer evidence. */
1291
+ scenarios: readonly ReactRendererEvidenceScenario[];
1292
+ /** Repository-local executable proof for every claimed scenario. */
1293
+ proofs: readonly Readonly<{
1294
+ scenarios: readonly ReactRendererEvidenceScenario[];
1295
+ file: `test/${string}.test.tsx`;
1296
+ caseId: string;
1297
+ }>[];
1298
+ }>, Readonly<{
1299
+ /** Canonical component id from the design-contracts catalog. */
1300
+ componentId: string;
1301
+ /** Public symbols that implement this contract on the declared subpath. */
1302
+ exportNames: readonly string[];
1303
+ /** Granular @hjmds/react export used by consumers. */
1304
+ subpath: `./${string}`;
1305
+ /** Scenarios supported by automated first-party renderer evidence. */
1306
+ scenarios: readonly ReactRendererEvidenceScenario[];
1307
+ /** Repository-local executable proof for every claimed scenario. */
1308
+ proofs: readonly Readonly<{
1309
+ scenarios: readonly ReactRendererEvidenceScenario[];
1310
+ file: `test/${string}.test.tsx`;
1311
+ caseId: string;
1312
+ }>[];
1313
+ }>, Readonly<{
1314
+ /** Canonical component id from the design-contracts catalog. */
1315
+ componentId: string;
1316
+ /** Public symbols that implement this contract on the declared subpath. */
1317
+ exportNames: readonly string[];
1318
+ /** Granular @hjmds/react export used by consumers. */
1319
+ subpath: `./${string}`;
1320
+ /** Scenarios supported by automated first-party renderer evidence. */
1321
+ scenarios: readonly ReactRendererEvidenceScenario[];
1322
+ /** Repository-local executable proof for every claimed scenario. */
1323
+ proofs: readonly Readonly<{
1324
+ scenarios: readonly ReactRendererEvidenceScenario[];
1325
+ file: `test/${string}.test.tsx`;
1326
+ caseId: string;
1327
+ }>[];
1328
+ }>, Readonly<{
1329
+ /** Canonical component id from the design-contracts catalog. */
1330
+ componentId: string;
1331
+ /** Public symbols that implement this contract on the declared subpath. */
1332
+ exportNames: readonly string[];
1333
+ /** Granular @hjmds/react export used by consumers. */
1334
+ subpath: `./${string}`;
1335
+ /** Scenarios supported by automated first-party renderer evidence. */
1336
+ scenarios: readonly ReactRendererEvidenceScenario[];
1337
+ /** Repository-local executable proof for every claimed scenario. */
1338
+ proofs: readonly Readonly<{
1339
+ scenarios: readonly ReactRendererEvidenceScenario[];
1340
+ file: `test/${string}.test.tsx`;
1341
+ caseId: string;
1342
+ }>[];
1343
+ }>, Readonly<{
1344
+ /** Canonical component id from the design-contracts catalog. */
1345
+ componentId: string;
1346
+ /** Public symbols that implement this contract on the declared subpath. */
1347
+ exportNames: readonly string[];
1348
+ /** Granular @hjmds/react export used by consumers. */
1349
+ subpath: `./${string}`;
1350
+ /** Scenarios supported by automated first-party renderer evidence. */
1351
+ scenarios: readonly ReactRendererEvidenceScenario[];
1352
+ /** Repository-local executable proof for every claimed scenario. */
1353
+ proofs: readonly Readonly<{
1354
+ scenarios: readonly ReactRendererEvidenceScenario[];
1355
+ file: `test/${string}.test.tsx`;
1356
+ caseId: string;
1357
+ }>[];
1358
+ }>, Readonly<{
1359
+ /** Canonical component id from the design-contracts catalog. */
1360
+ componentId: string;
1361
+ /** Public symbols that implement this contract on the declared subpath. */
1362
+ exportNames: readonly string[];
1363
+ /** Granular @hjmds/react export used by consumers. */
1364
+ subpath: `./${string}`;
1365
+ /** Scenarios supported by automated first-party renderer evidence. */
1366
+ scenarios: readonly ReactRendererEvidenceScenario[];
1367
+ /** Repository-local executable proof for every claimed scenario. */
1368
+ proofs: readonly Readonly<{
1369
+ scenarios: readonly ReactRendererEvidenceScenario[];
1370
+ file: `test/${string}.test.tsx`;
1371
+ caseId: string;
1372
+ }>[];
1373
+ }>, Readonly<{
1374
+ /** Canonical component id from the design-contracts catalog. */
1375
+ componentId: string;
1376
+ /** Public symbols that implement this contract on the declared subpath. */
1377
+ exportNames: readonly string[];
1378
+ /** Granular @hjmds/react export used by consumers. */
1379
+ subpath: `./${string}`;
1380
+ /** Scenarios supported by automated first-party renderer evidence. */
1381
+ scenarios: readonly ReactRendererEvidenceScenario[];
1382
+ /** Repository-local executable proof for every claimed scenario. */
1383
+ proofs: readonly Readonly<{
1384
+ scenarios: readonly ReactRendererEvidenceScenario[];
1385
+ file: `test/${string}.test.tsx`;
1386
+ caseId: string;
1387
+ }>[];
1388
+ }>, Readonly<{
1389
+ /** Canonical component id from the design-contracts catalog. */
1390
+ componentId: string;
1391
+ /** Public symbols that implement this contract on the declared subpath. */
1392
+ exportNames: readonly string[];
1393
+ /** Granular @hjmds/react export used by consumers. */
1394
+ subpath: `./${string}`;
1395
+ /** Scenarios supported by automated first-party renderer evidence. */
1396
+ scenarios: readonly ReactRendererEvidenceScenario[];
1397
+ /** Repository-local executable proof for every claimed scenario. */
1398
+ proofs: readonly Readonly<{
1399
+ scenarios: readonly ReactRendererEvidenceScenario[];
1400
+ file: `test/${string}.test.tsx`;
1401
+ caseId: string;
1402
+ }>[];
1403
+ }>, Readonly<{
1404
+ /** Canonical component id from the design-contracts catalog. */
1405
+ componentId: string;
1406
+ /** Public symbols that implement this contract on the declared subpath. */
1407
+ exportNames: readonly string[];
1408
+ /** Granular @hjmds/react export used by consumers. */
1409
+ subpath: `./${string}`;
1410
+ /** Scenarios supported by automated first-party renderer evidence. */
1411
+ scenarios: readonly ReactRendererEvidenceScenario[];
1412
+ /** Repository-local executable proof for every claimed scenario. */
1413
+ proofs: readonly Readonly<{
1414
+ scenarios: readonly ReactRendererEvidenceScenario[];
1415
+ file: `test/${string}.test.tsx`;
1416
+ caseId: string;
1417
+ }>[];
1418
+ }>, Readonly<{
1419
+ /** Canonical component id from the design-contracts catalog. */
1420
+ componentId: string;
1421
+ /** Public symbols that implement this contract on the declared subpath. */
1422
+ exportNames: readonly string[];
1423
+ /** Granular @hjmds/react export used by consumers. */
1424
+ subpath: `./${string}`;
1425
+ /** Scenarios supported by automated first-party renderer evidence. */
1426
+ scenarios: readonly ReactRendererEvidenceScenario[];
1427
+ /** Repository-local executable proof for every claimed scenario. */
1428
+ proofs: readonly Readonly<{
1429
+ scenarios: readonly ReactRendererEvidenceScenario[];
1430
+ file: `test/${string}.test.tsx`;
1431
+ caseId: string;
1432
+ }>[];
1433
+ }>, Readonly<{
1434
+ /** Canonical component id from the design-contracts catalog. */
1435
+ componentId: string;
1436
+ /** Public symbols that implement this contract on the declared subpath. */
1437
+ exportNames: readonly string[];
1438
+ /** Granular @hjmds/react export used by consumers. */
1439
+ subpath: `./${string}`;
1440
+ /** Scenarios supported by automated first-party renderer evidence. */
1441
+ scenarios: readonly ReactRendererEvidenceScenario[];
1442
+ /** Repository-local executable proof for every claimed scenario. */
1443
+ proofs: readonly Readonly<{
1444
+ scenarios: readonly ReactRendererEvidenceScenario[];
1445
+ file: `test/${string}.test.tsx`;
1446
+ caseId: string;
1447
+ }>[];
1448
+ }>, Readonly<{
1449
+ /** Canonical component id from the design-contracts catalog. */
1450
+ componentId: string;
1451
+ /** Public symbols that implement this contract on the declared subpath. */
1452
+ exportNames: readonly string[];
1453
+ /** Granular @hjmds/react export used by consumers. */
1454
+ subpath: `./${string}`;
1455
+ /** Scenarios supported by automated first-party renderer evidence. */
1456
+ scenarios: readonly ReactRendererEvidenceScenario[];
1457
+ /** Repository-local executable proof for every claimed scenario. */
1458
+ proofs: readonly Readonly<{
1459
+ scenarios: readonly ReactRendererEvidenceScenario[];
1460
+ file: `test/${string}.test.tsx`;
1461
+ caseId: string;
1462
+ }>[];
1463
+ }>, Readonly<{
1464
+ /** Canonical component id from the design-contracts catalog. */
1465
+ componentId: string;
1466
+ /** Public symbols that implement this contract on the declared subpath. */
1467
+ exportNames: readonly string[];
1468
+ /** Granular @hjmds/react export used by consumers. */
1469
+ subpath: `./${string}`;
1470
+ /** Scenarios supported by automated first-party renderer evidence. */
1471
+ scenarios: readonly ReactRendererEvidenceScenario[];
1472
+ /** Repository-local executable proof for every claimed scenario. */
1473
+ proofs: readonly Readonly<{
1474
+ scenarios: readonly ReactRendererEvidenceScenario[];
1475
+ file: `test/${string}.test.tsx`;
1476
+ caseId: string;
1477
+ }>[];
983
1478
  }>];
984
1479
  };
985
1480
  //# sourceMappingURL=evidence.d.ts.map