@hjmds/react 0.9.10 → 0.9.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evidence.d.ts +1 -1
- package/dist/evidence.js +1 -1
- package/dist/evidence.js.map +1 -1
- package/dist/styles.css +25 -0
- package/package.json +8 -8
package/dist/evidence.d.ts
CHANGED
|
@@ -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: "0.9.
|
|
36
|
+
readonly packageVersion: "0.9.11";
|
|
37
37
|
readonly surface: "web";
|
|
38
38
|
readonly components: readonly [Readonly<{
|
|
39
39
|
/** Canonical component id from the design-contracts catalog. */
|
package/dist/evidence.js
CHANGED
|
@@ -45,7 +45,7 @@ function stableFieldClaim(exportNames, subpath) {
|
|
|
45
45
|
export const reactRendererEvidence = {
|
|
46
46
|
schemaVersion: reactRendererEvidenceSchemaVersion,
|
|
47
47
|
packageName: "@hjmds/react",
|
|
48
|
-
packageVersion: "0.9.
|
|
48
|
+
packageVersion: "0.9.11",
|
|
49
49
|
surface: "web",
|
|
50
50
|
components: [
|
|
51
51
|
defaultClaim("design-system-provider", ["HjmProvider", "useHjmTheme"], "./provider"),
|
package/dist/evidence.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ShowcaseScenarioId } from \"@hjmds/design-contracts/showcase\";\n\nexport const reactRendererEvidenceSchemaVersion = 2 as const;\n\nexport type ReactRendererEvidenceScenario = Exclude<ShowcaseScenarioId, \"contract\">;\n\nexport type ReactRendererEvidenceComponent = Readonly<{\n /** Canonical component id from the design-contracts catalog. */\n componentId: string;\n /** Public symbols that implement this contract on the declared subpath. */\n exportNames: readonly string[];\n /** Granular @hjmds/react export used by consumers. */\n subpath: `./${string}`;\n /** Scenarios supported by automated first-party renderer evidence. */\n scenarios: readonly ReactRendererEvidenceScenario[];\n /** Repository-local executable proof for every claimed scenario. */\n proofs: readonly Readonly<{\n scenarios: readonly ReactRendererEvidenceScenario[];\n file: `test/${string}.test.tsx`;\n caseId: string;\n }>[];\n}>;\n\nexport type ReactRendererEvidenceManifest = Readonly<{\n schemaVersion: typeof reactRendererEvidenceSchemaVersion;\n packageName: \"@hjmds/react\";\n packageVersion: string;\n surface: \"web\";\n components: readonly ReactRendererEvidenceComponent[];\n}>;\n\nfunction defaultClaim(\n componentId: string,\n exportNames: readonly string[],\n subpath: `./${string}`,\n): ReactRendererEvidenceComponent {\n const scenarios = [\n \"default\",\n \"dark\",\n \"long-copy\",\n \"large-text\",\n \"rtl\",\n \"reduced-motion\",\n \"accessibility\",\n ] as const;\n return {\n componentId,\n exportNames,\n subpath,\n scenarios,\n proofs: [{\n scenarios,\n file: \"test/default-render.ssr.test.tsx\",\n caseId: componentId,\n }],\n };\n}\n\nfunction stableFieldClaim(\n exportNames: readonly string[],\n subpath: `./${string}`,\n): ReactRendererEvidenceComponent {\n const base = defaultClaim(\"field\", exportNames, subpath);\n return {\n ...base,\n scenarios: [...base.scenarios, \"keyboard\"],\n proofs: [\n ...base.proofs,\n {\n scenarios: [\"keyboard\"],\n file: \"test/stable-core.browser.test.tsx\",\n caseId: \"field\",\n },\n ],\n };\n}\n\n/**\n * First-party Web renderer claims. Scenario axes remain fail-closed: this\n * manifest claims a table-driven environment/accessibility smoke matrix.\n * Keyboard and cross-platform parity remain fail-closed until dedicated\n * interaction or paired-renderer proofs are mapped one-to-one.\n */\nexport const reactRendererEvidence = {\n schemaVersion: reactRendererEvidenceSchemaVersion,\n packageName: \"@hjmds/react\",\n packageVersion: \"0.9.10\",\n surface: \"web\",\n components: [\n defaultClaim(\"design-system-provider\", [\"HjmProvider\", \"useHjmTheme\"], \"./provider\"),\n defaultClaim(\"text\", [\"Text\"], \"./layout\"),\n defaultClaim(\"surface\", [\"Surface\"], \"./layout\"),\n defaultClaim(\"icon\", [\"Icon\"], \"./display\"),\n defaultClaim(\"stack\", [\"Stack\"], \"./layout\"),\n defaultClaim(\"container\", [\"Container\"], \"./layout\"),\n defaultClaim(\"aspect-ratio\", [\"AspectRatio\"], \"./layout\"),\n defaultClaim(\"grid\", [\"Grid\"], \"./layout\"),\n defaultClaim(\"layout\", [\"Layout\"], \"./layout\"),\n defaultClaim(\"button\", [\"Button\"], \"./actions\"),\n defaultClaim(\"icon-button\", [\"IconButton\"], \"./actions\"),\n defaultClaim(\"link\", [\"Link\"], \"./actions\"),\n stableFieldClaim([\"Field\", \"TextField\"], \"./forms\"),\n defaultClaim(\"search-field\", [\"SearchField\"], \"./forms\"),\n defaultClaim(\"text-area\", [\"TextArea\"], \"./forms\"),\n defaultClaim(\"password-field\", [\"PasswordField\"], \"./password-field\"),\n defaultClaim(\"otp-field\", [\"OtpField\"], \"./otp-field\"),\n defaultClaim(\"number-field\", [\"NumberField\"], \"./number-field\"),\n defaultClaim(\"slider\", [\"Slider\"], \"./slider\"),\n defaultClaim(\"form\", [\"Form\"], \"./forms\"),\n defaultClaim(\"date-picker\", [\"DatePicker\"], \"./date-picker\"),\n defaultClaim(\"file-picker\", [\"FilePicker\"], \"./file-picker\"),\n defaultClaim(\"checkbox\", [\"Checkbox\"], \"./selection\"),\n defaultClaim(\"radio\", [\"Radio\"], \"./selection\"),\n defaultClaim(\"checkbox-group\", [\"CheckboxGroup\"], \"./selection\"),\n defaultClaim(\"radio-group\", [\"RadioGroup\"], \"./selection\"),\n defaultClaim(\"switch\", [\"Switch\"], \"./selection\"),\n defaultClaim(\"segmented-control\", [\"SegmentedControl\"], \"./selection\"),\n defaultClaim(\"chip\", [\"Chip\"], \"./selection\"),\n defaultClaim(\"tabs\", [\"Tabs\"], \"./navigation\"),\n defaultClaim(\"bottom-navigation\", [\"BottomNavigation\"], \"./navigation\"),\n defaultClaim(\"load-more\", [\"LoadMore\"], \"./navigation\"),\n defaultClaim(\"steps\", [\"Steps\"], \"./steps\"),\n defaultClaim(\"badge\", [\"Badge\"], \"./display\"),\n defaultClaim(\"avatar\", [\"Avatar\"], \"./display\"),\n defaultClaim(\"counter-badge\", [\"CounterBadge\"], \"./display\"),\n defaultClaim(\"card\", [\"Card\"], \"./display\"),\n defaultClaim(\"list\", [\"List\"], \"./display\"),\n defaultClaim(\"list-row\", [\"ListRow\"], \"./display\"),\n defaultClaim(\"tag\", [\"Tag\"], \"./display\"),\n defaultClaim(\"accordion\", [\"Accordion\"], \"./display\"),\n defaultClaim(\"divider\", [\"Divider\"], \"./display\"),\n defaultClaim(\"statistic\", [\"Statistic\", \"StatisticGroup\"], \"./display\"),\n defaultClaim(\"section\", [\"Section\"], \"./layout\"),\n defaultClaim(\"upload-item\", [\"UploadItem\"], \"./upload-item\"),\n defaultClaim(\"timeline\", [\"Timeline\"], \"./display\"),\n defaultClaim(\"description-list\", [\"DescriptionList\"], \"./display\"),\n defaultClaim(\"image\", [\"Image\"], \"./display\"),\n defaultClaim(\"empty-state\", [\"EmptyState\"], \"./feedback\"),\n defaultClaim(\"notice\", [\"Notice\"], \"./feedback\"),\n defaultClaim(\"progress\", [\"Progress\"], \"./feedback\"),\n defaultClaim(\"spinner\", [\"Spinner\"], \"./feedback\"),\n defaultClaim(\"skeleton\", [\"Skeleton\"], \"./feedback\"),\n defaultClaim(\"result\", [\"Result\"], \"./feedback\"),\n defaultClaim(\"toast\", [\"Toast\", \"ToastProvider\", \"useToast\"], \"./toast\"),\n defaultClaim(\"select\", [\"Select\"], \"./forms\"),\n defaultClaim(\"combobox\", [\"Combobox\"], \"./forms\"),\n defaultClaim(\"dialog\", [\"Dialog\"], \"./overlays\"),\n defaultClaim(\"alert-dialog\", [\"AlertDialog\"], \"./overlays\"),\n defaultClaim(\"sheet\", [\"Sheet\"], \"./overlays\"),\n defaultClaim(\"tooltip\", [\"Tooltip\"], \"./overlays\"),\n defaultClaim(\"visually-hidden\", [\"VisuallyHidden\"], \"./layout\"),\n defaultClaim(\"menu\", [\"Menu\"], \"./overlays\"),\n ],\n} as const satisfies ReactRendererEvidenceManifest;\n"]}
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ShowcaseScenarioId } from \"@hjmds/design-contracts/showcase\";\n\nexport const reactRendererEvidenceSchemaVersion = 2 as const;\n\nexport type ReactRendererEvidenceScenario = Exclude<ShowcaseScenarioId, \"contract\">;\n\nexport type ReactRendererEvidenceComponent = Readonly<{\n /** Canonical component id from the design-contracts catalog. */\n componentId: string;\n /** Public symbols that implement this contract on the declared subpath. */\n exportNames: readonly string[];\n /** Granular @hjmds/react export used by consumers. */\n subpath: `./${string}`;\n /** Scenarios supported by automated first-party renderer evidence. */\n scenarios: readonly ReactRendererEvidenceScenario[];\n /** Repository-local executable proof for every claimed scenario. */\n proofs: readonly Readonly<{\n scenarios: readonly ReactRendererEvidenceScenario[];\n file: `test/${string}.test.tsx`;\n caseId: string;\n }>[];\n}>;\n\nexport type ReactRendererEvidenceManifest = Readonly<{\n schemaVersion: typeof reactRendererEvidenceSchemaVersion;\n packageName: \"@hjmds/react\";\n packageVersion: string;\n surface: \"web\";\n components: readonly ReactRendererEvidenceComponent[];\n}>;\n\nfunction defaultClaim(\n componentId: string,\n exportNames: readonly string[],\n subpath: `./${string}`,\n): ReactRendererEvidenceComponent {\n const scenarios = [\n \"default\",\n \"dark\",\n \"long-copy\",\n \"large-text\",\n \"rtl\",\n \"reduced-motion\",\n \"accessibility\",\n ] as const;\n return {\n componentId,\n exportNames,\n subpath,\n scenarios,\n proofs: [{\n scenarios,\n file: \"test/default-render.ssr.test.tsx\",\n caseId: componentId,\n }],\n };\n}\n\nfunction stableFieldClaim(\n exportNames: readonly string[],\n subpath: `./${string}`,\n): ReactRendererEvidenceComponent {\n const base = defaultClaim(\"field\", exportNames, subpath);\n return {\n ...base,\n scenarios: [...base.scenarios, \"keyboard\"],\n proofs: [\n ...base.proofs,\n {\n scenarios: [\"keyboard\"],\n file: \"test/stable-core.browser.test.tsx\",\n caseId: \"field\",\n },\n ],\n };\n}\n\n/**\n * First-party Web renderer claims. Scenario axes remain fail-closed: this\n * manifest claims a table-driven environment/accessibility smoke matrix.\n * Keyboard and cross-platform parity remain fail-closed until dedicated\n * interaction or paired-renderer proofs are mapped one-to-one.\n */\nexport const reactRendererEvidence = {\n schemaVersion: reactRendererEvidenceSchemaVersion,\n packageName: \"@hjmds/react\",\n packageVersion: \"0.9.11\",\n surface: \"web\",\n components: [\n defaultClaim(\"design-system-provider\", [\"HjmProvider\", \"useHjmTheme\"], \"./provider\"),\n defaultClaim(\"text\", [\"Text\"], \"./layout\"),\n defaultClaim(\"surface\", [\"Surface\"], \"./layout\"),\n defaultClaim(\"icon\", [\"Icon\"], \"./display\"),\n defaultClaim(\"stack\", [\"Stack\"], \"./layout\"),\n defaultClaim(\"container\", [\"Container\"], \"./layout\"),\n defaultClaim(\"aspect-ratio\", [\"AspectRatio\"], \"./layout\"),\n defaultClaim(\"grid\", [\"Grid\"], \"./layout\"),\n defaultClaim(\"layout\", [\"Layout\"], \"./layout\"),\n defaultClaim(\"button\", [\"Button\"], \"./actions\"),\n defaultClaim(\"icon-button\", [\"IconButton\"], \"./actions\"),\n defaultClaim(\"link\", [\"Link\"], \"./actions\"),\n stableFieldClaim([\"Field\", \"TextField\"], \"./forms\"),\n defaultClaim(\"search-field\", [\"SearchField\"], \"./forms\"),\n defaultClaim(\"text-area\", [\"TextArea\"], \"./forms\"),\n defaultClaim(\"password-field\", [\"PasswordField\"], \"./password-field\"),\n defaultClaim(\"otp-field\", [\"OtpField\"], \"./otp-field\"),\n defaultClaim(\"number-field\", [\"NumberField\"], \"./number-field\"),\n defaultClaim(\"slider\", [\"Slider\"], \"./slider\"),\n defaultClaim(\"form\", [\"Form\"], \"./forms\"),\n defaultClaim(\"date-picker\", [\"DatePicker\"], \"./date-picker\"),\n defaultClaim(\"file-picker\", [\"FilePicker\"], \"./file-picker\"),\n defaultClaim(\"checkbox\", [\"Checkbox\"], \"./selection\"),\n defaultClaim(\"radio\", [\"Radio\"], \"./selection\"),\n defaultClaim(\"checkbox-group\", [\"CheckboxGroup\"], \"./selection\"),\n defaultClaim(\"radio-group\", [\"RadioGroup\"], \"./selection\"),\n defaultClaim(\"switch\", [\"Switch\"], \"./selection\"),\n defaultClaim(\"segmented-control\", [\"SegmentedControl\"], \"./selection\"),\n defaultClaim(\"chip\", [\"Chip\"], \"./selection\"),\n defaultClaim(\"tabs\", [\"Tabs\"], \"./navigation\"),\n defaultClaim(\"bottom-navigation\", [\"BottomNavigation\"], \"./navigation\"),\n defaultClaim(\"load-more\", [\"LoadMore\"], \"./navigation\"),\n defaultClaim(\"steps\", [\"Steps\"], \"./steps\"),\n defaultClaim(\"badge\", [\"Badge\"], \"./display\"),\n defaultClaim(\"avatar\", [\"Avatar\"], \"./display\"),\n defaultClaim(\"counter-badge\", [\"CounterBadge\"], \"./display\"),\n defaultClaim(\"card\", [\"Card\"], \"./display\"),\n defaultClaim(\"list\", [\"List\"], \"./display\"),\n defaultClaim(\"list-row\", [\"ListRow\"], \"./display\"),\n defaultClaim(\"tag\", [\"Tag\"], \"./display\"),\n defaultClaim(\"accordion\", [\"Accordion\"], \"./display\"),\n defaultClaim(\"divider\", [\"Divider\"], \"./display\"),\n defaultClaim(\"statistic\", [\"Statistic\", \"StatisticGroup\"], \"./display\"),\n defaultClaim(\"section\", [\"Section\"], \"./layout\"),\n defaultClaim(\"upload-item\", [\"UploadItem\"], \"./upload-item\"),\n defaultClaim(\"timeline\", [\"Timeline\"], \"./display\"),\n defaultClaim(\"description-list\", [\"DescriptionList\"], \"./display\"),\n defaultClaim(\"image\", [\"Image\"], \"./display\"),\n defaultClaim(\"empty-state\", [\"EmptyState\"], \"./feedback\"),\n defaultClaim(\"notice\", [\"Notice\"], \"./feedback\"),\n defaultClaim(\"progress\", [\"Progress\"], \"./feedback\"),\n defaultClaim(\"spinner\", [\"Spinner\"], \"./feedback\"),\n defaultClaim(\"skeleton\", [\"Skeleton\"], \"./feedback\"),\n defaultClaim(\"result\", [\"Result\"], \"./feedback\"),\n defaultClaim(\"toast\", [\"Toast\", \"ToastProvider\", \"useToast\"], \"./toast\"),\n defaultClaim(\"select\", [\"Select\"], \"./forms\"),\n defaultClaim(\"combobox\", [\"Combobox\"], \"./forms\"),\n defaultClaim(\"dialog\", [\"Dialog\"], \"./overlays\"),\n defaultClaim(\"alert-dialog\", [\"AlertDialog\"], \"./overlays\"),\n defaultClaim(\"sheet\", [\"Sheet\"], \"./overlays\"),\n defaultClaim(\"tooltip\", [\"Tooltip\"], \"./overlays\"),\n defaultClaim(\"visually-hidden\", [\"VisuallyHidden\"], \"./layout\"),\n defaultClaim(\"menu\", [\"Menu\"], \"./overlays\"),\n ],\n} as const satisfies ReactRendererEvidenceManifest;\n"]}
|
package/dist/styles.css
CHANGED
|
@@ -748,6 +748,31 @@
|
|
|
748
748
|
.hjm-segmented__item[data-state="checked"] { color: var(--hjm-color-text); background: var(--hjm-color-surface-accent); font-weight: var(--hjm-font-weight-semibold); }
|
|
749
749
|
.hjm-segmented__item[data-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
750
750
|
|
|
751
|
+
/* segmentedControlRecipe.adaptive.largeTextLayout = "stacked": equal-width
|
|
752
|
+
segments stop being comparable once large text wraps a syllable per line, and
|
|
753
|
+
on a narrow viewport the row overflows into a horizontal scroller instead.
|
|
754
|
+
React Native reads the recipe and stacks; this renderer had no translation of
|
|
755
|
+
it, so one contract rendered two layouts.
|
|
756
|
+
|
|
757
|
+
The trigger is a media query rather than the recipe's `stackAtFontScale`
|
|
758
|
+
because no web product declares `textScale` to the provider — the scale a
|
|
759
|
+
browser user actually changes is the default font size, and `em` in a media
|
|
760
|
+
query is exactly that size. 11em is 176px at 100% (no real viewport, so the
|
|
761
|
+
row is untouched) and 352px at 200%. Measured on the sea view: the row is
|
|
762
|
+
195px at 100%, 263px at 150% and 333px at 200%, so 320px/200% overflowed
|
|
763
|
+
(10em) while 360px/200% did not (11.25em) — the threshold sits between them.
|
|
764
|
+
Stacking releases two row-only declarations: `flex: 1 1 0` would collapse an
|
|
765
|
+
auto-height column to its padding, and `max-content` would stop a long label
|
|
766
|
+
from wrapping inside its own full-width row.
|
|
767
|
+
|
|
768
|
+
`renderers.ssr.test.tsx` fails if the recipe stops declaring "stacked" while
|
|
769
|
+
these rules remain, so the two do not drift apart silently. */
|
|
770
|
+
@media (max-width: 11em) {
|
|
771
|
+
.hjm-segmented__items { flex-direction: column; overflow-x: visible; }
|
|
772
|
+
.hjm-segmented__item { flex: 0 0 auto; min-inline-size: 0; }
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
|
|
751
776
|
.hjm-tabs { min-inline-size: 0; }
|
|
752
777
|
.hjm-tabs__list { display: flex; gap: var(--hjm-space-xs); min-inline-size: 0; overflow-x: auto; border-block-end: 1px solid var(--hjm-color-border); }
|
|
753
778
|
.hjm-tabs[data-overflow="clip"] .hjm-tabs__list { overflow: hidden; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hjmds/react",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.11",
|
|
4
4
|
"description": "Accessible React 19 renderers for HJM design contracts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -131,16 +131,16 @@
|
|
|
131
131
|
"react-dom": ">=19.0.0"
|
|
132
132
|
},
|
|
133
133
|
"devDependencies": {
|
|
134
|
-
"@types/node": "^24.
|
|
135
|
-
"@types/react": "^19.2.
|
|
136
|
-
"@types/react-dom": "^19.2.
|
|
137
|
-
"@vitest/browser-playwright": "^4.1.
|
|
138
|
-
"playwright": "^1.
|
|
134
|
+
"@types/node": "^24.13.3",
|
|
135
|
+
"@types/react": "^19.2.18",
|
|
136
|
+
"@types/react-dom": "^19.2.7",
|
|
137
|
+
"@vitest/browser-playwright": "^4.1.11",
|
|
138
|
+
"playwright": "^1.63.0",
|
|
139
139
|
"react": "19.2.3",
|
|
140
140
|
"react-dom": "19.2.3",
|
|
141
141
|
"typescript": "^5.9.3",
|
|
142
|
-
"vitest": "^4.1.
|
|
143
|
-
"@hjmds/design-contracts": "0.9.
|
|
142
|
+
"vitest": "^4.1.11",
|
|
143
|
+
"@hjmds/design-contracts": "0.9.11"
|
|
144
144
|
},
|
|
145
145
|
"scripts": {
|
|
146
146
|
"build": "tsc -p tsconfig.build.json && cp src/styles.css dist/styles.css",
|