banhaten 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +45 -0
- package/CONTRIBUTING.md +44 -0
- package/README.md +145 -328
- package/SECURITY.md +15 -0
- package/banhaten.config.example.json +1 -3
- package/docs/design-system/README.md +20 -0
- package/docs/design-system/adoption-quality-remediation.md +87 -0
- package/docs/design-system/agent-usage.md +13 -0
- package/docs/design-system/appearance-presets.md +189 -0
- package/docs/design-system/appearances/default.md +94 -0
- package/docs/design-system/appearances/rounded.md +95 -0
- package/docs/design-system/appearances/sharp.md +95 -0
- package/docs/design-system/component-docs-pattern.md +81 -0
- package/docs/design-system/component-showcase-consistency-report.md +217 -0
- package/docs/design-system/component-token-consistency-audit.md +173 -0
- package/docs/design-system/components/README.md +75 -0
- package/docs/design-system/components/accordion.md +67 -0
- package/docs/design-system/components/activity-feed.md +106 -0
- package/docs/design-system/components/alert-dialog.md +87 -0
- package/docs/design-system/components/alert.md +111 -0
- package/docs/design-system/components/aspect-ratio.md +59 -0
- package/docs/design-system/components/attribute.md +103 -0
- package/docs/design-system/components/autocomplete.md +93 -0
- package/docs/design-system/components/avatar.md +70 -0
- package/docs/design-system/components/badge.md +72 -0
- package/docs/design-system/components/banner.md +99 -0
- package/docs/design-system/components/breadcrumbs.md +188 -0
- package/docs/design-system/components/button-group.md +117 -0
- package/docs/design-system/components/button.md +95 -0
- package/docs/design-system/components/card.md +95 -0
- package/docs/design-system/components/carousel.md +61 -0
- package/docs/design-system/components/catalog-components.md +59 -0
- package/docs/design-system/components/chart.md +58 -0
- package/docs/design-system/components/checkbox.md +68 -0
- package/docs/design-system/components/collapsible.md +63 -0
- package/docs/design-system/components/command.md +75 -0
- package/docs/design-system/components/context-menu.md +59 -0
- package/docs/design-system/components/date-picker.md +97 -0
- package/docs/design-system/components/divider.md +117 -0
- package/docs/design-system/components/empty-state.md +72 -0
- package/docs/design-system/components/field.md +86 -0
- package/docs/design-system/components/file-upload.md +199 -0
- package/docs/design-system/components/hover-card.md +61 -0
- package/docs/design-system/components/icons.md +48 -0
- package/docs/design-system/components/input-group.md +73 -0
- package/docs/design-system/components/input-otp.md +73 -0
- package/docs/design-system/components/input.md +84 -0
- package/docs/design-system/components/item.md +72 -0
- package/docs/design-system/components/kbd.md +62 -0
- package/docs/design-system/components/label.md +64 -0
- package/docs/design-system/components/menu.md +76 -0
- package/docs/design-system/components/menubar.md +60 -0
- package/docs/design-system/components/modal.md +119 -0
- package/docs/design-system/components/native-select.md +70 -0
- package/docs/design-system/components/navigation-menu.md +63 -0
- package/docs/design-system/components/onboarding-step-list-item.md +94 -0
- package/docs/design-system/components/page-header.md +98 -0
- package/docs/design-system/components/pagination.md +71 -0
- package/docs/design-system/components/popover.md +77 -0
- package/docs/design-system/components/progress-slider.md +66 -0
- package/docs/design-system/components/progress.md +92 -0
- package/docs/design-system/components/radio-card.md +65 -0
- package/docs/design-system/components/radio-group.md +72 -0
- package/docs/design-system/components/resizable.md +57 -0
- package/docs/design-system/components/scroll-area.md +60 -0
- package/docs/design-system/components/segmented-control.md +71 -0
- package/docs/design-system/components/select.md +87 -0
- package/docs/design-system/components/sheet.md +82 -0
- package/docs/design-system/components/sidebar.md +83 -0
- package/docs/design-system/components/skeleton.md +91 -0
- package/docs/design-system/components/slideout.md +77 -0
- package/docs/design-system/components/slider.md +81 -0
- package/docs/design-system/components/social-button.md +65 -0
- package/docs/design-system/components/spinner.md +77 -0
- package/docs/design-system/components/steps.md +77 -0
- package/docs/design-system/components/table.md +411 -0
- package/docs/design-system/components/tabs.md +69 -0
- package/docs/design-system/components/tag.md +95 -0
- package/docs/design-system/components/textarea.md +64 -0
- package/docs/design-system/components/timeline.md +95 -0
- package/docs/design-system/components/toast.md +73 -0
- package/docs/design-system/components/toggle.md +96 -0
- package/docs/design-system/components/toolbar.md +105 -0
- package/docs/design-system/components/tooltip.md +107 -0
- package/docs/design-system/components/typography.md +18 -0
- package/docs/design-system/density-and-elevation.md +44 -0
- package/docs/design-system/design-system-test-missing-items.md +368 -0
- package/docs/design-system/direction-and-localization.md +23 -0
- package/docs/design-system/form-recipes.md +73 -0
- package/docs/design-system/gap-promotion-policy.md +21 -0
- package/docs/design-system/gap-promotion-report.md +166 -0
- package/docs/design-system/icons.md +69 -0
- package/docs/design-system/installation.md +68 -0
- package/docs/design-system/launch-comparison-shadcn.md +98 -0
- package/docs/design-system/registry-and-cli.md +64 -0
- package/docs/design-system/release-policy.md +30 -0
- package/docs/design-system/roadmap.md +14 -0
- package/docs/design-system/support-matrix.md +23 -0
- package/docs/design-system/tabs.md +53 -0
- package/docs/design-system/token-governance.md +60 -0
- package/package.json +97 -65
- package/registry/component-contract.json +40 -0
- package/registry/components/alert-dialog.tsx +297 -0
- package/registry/components/alert.tsx +86 -65
- package/registry/components/aspect-ratio.tsx +30 -0
- package/registry/components/autocomplete.tsx +23 -9
- package/registry/components/avatar.tsx +7 -7
- package/registry/components/badge.tsx +1 -1
- package/registry/components/button-group.tsx +321 -4
- package/registry/components/button.tsx +38 -17
- package/registry/components/card.tsx +68 -59
- package/registry/components/carousel.tsx +282 -0
- package/registry/components/chart.tsx +203 -0
- package/registry/components/checkbox.tsx +3 -3
- package/registry/components/collapsible.tsx +69 -0
- package/registry/components/command.tsx +174 -0
- package/registry/components/context-menu.tsx +236 -0
- package/registry/components/date-picker.tsx +246 -105
- package/registry/components/expanded/ActivityFeed.tsx +6 -15
- package/registry/components/expanded/Banner.tsx +3 -3
- package/registry/components/expanded/Breadcrumbs.tsx +5 -5
- package/registry/components/expanded/CatalogComponentsShowcase.tsx +13 -13
- package/registry/components/expanded/CatalogDivider.tsx +1 -1
- package/registry/components/expanded/EmptyState.tsx +1 -1
- package/registry/components/expanded/FileUpload.tsx +9 -2
- package/registry/components/expanded/OnboardingStepListItem.tsx +2 -4
- package/registry/components/expanded/PageHeader.tsx +14 -14
- package/registry/components/expanded/Slideout.tsx +15 -415
- package/registry/components/expanded/Steps.tsx +4 -4
- package/registry/components/expanded/Table.tsx +116 -69
- package/registry/components/expanded/Timeline.tsx +3 -3
- package/registry/components/expanded/activityFeed.css +1 -1
- package/registry/components/expanded/breadcrumbs.css +139 -139
- package/registry/components/expanded/catalogComponentsShowcase.css +83 -83
- package/registry/components/expanded/divider.css +1 -1
- package/registry/components/expanded/emptyState.css +1 -1
- package/registry/components/expanded/fileUpload.css +6 -6
- package/registry/components/expanded/slideout.css +9 -685
- package/registry/components/expanded/steps.css +274 -274
- package/registry/components/expanded/table.css +2 -2
- package/registry/components/expanded/timeline.css +264 -264
- package/registry/components/field.tsx +230 -0
- package/registry/components/hover-card.tsx +48 -0
- package/registry/components/input-content.ts +1 -0
- package/registry/components/input-group.tsx +130 -0
- package/registry/components/input-otp.tsx +13 -3
- package/registry/components/input.tsx +70 -45
- package/registry/components/item.tsx +189 -0
- package/registry/components/kbd.tsx +151 -0
- package/registry/components/label.tsx +78 -0
- package/registry/components/menu.tsx +34 -246
- package/registry/components/menubar.tsx +226 -0
- package/registry/components/modal.tsx +216 -143
- package/registry/components/native-select.tsx +205 -0
- package/registry/components/navigation-menu.tsx +171 -0
- package/registry/components/pagination.tsx +80 -58
- package/registry/components/popover.tsx +162 -664
- package/registry/components/radio-card.tsx +116 -87
- package/registry/components/radio-group.tsx +1 -1
- package/registry/components/resizable.tsx +74 -0
- package/registry/components/scroll-area.tsx +67 -0
- package/registry/components/segmented-control.tsx +87 -0
- package/registry/components/select-content.tsx +2 -2
- package/registry/components/select.tsx +54 -20
- package/registry/components/sheet.tsx +305 -0
- package/registry/components/sidebar.tsx +352 -0
- package/registry/components/skeleton.css +0 -3
- package/registry/components/social-button.tsx +116 -30
- package/registry/components/spinner.tsx +18 -55
- package/registry/components/{expanded/tabs.css → tabs.css} +127 -106
- package/registry/components/tabs.tsx +246 -0
- package/registry/components/tag.tsx +2 -2
- package/registry/components/textarea.tsx +4 -4
- package/registry/components/toast.tsx +136 -0
- package/registry/components/toggle.tsx +2 -2
- package/registry/components/toolbar.tsx +89 -17
- package/registry/components/tooltip.tsx +1 -1
- package/registry/examples/alert-demo.tsx +25 -5
- package/registry/examples/alert-dialog-demo.tsx +42 -0
- package/registry/examples/aspect-ratio-demo.tsx +11 -0
- package/registry/examples/attribute-demo.tsx +1 -1
- package/registry/examples/autocomplete-demo.tsx +3 -3
- package/registry/examples/avatar-demo.tsx +7 -7
- package/registry/examples/badge-demo.tsx +1 -1
- package/registry/examples/button-demo.tsx +6 -6
- package/registry/examples/button-group-demo.tsx +23 -2
- package/registry/examples/card-demo.tsx +46 -8
- package/registry/examples/carousel-demo.tsx +43 -0
- package/registry/examples/chart-demo.tsx +33 -0
- package/registry/examples/checkbox-demo.tsx +5 -5
- package/registry/examples/collapsible-demo.tsx +16 -0
- package/registry/examples/collection-filter-bar-demo.tsx +135 -0
- package/registry/examples/command-demo.tsx +42 -0
- package/registry/examples/{expanded/command-bar-demo.tsx → command-palette-demo.tsx} +5 -15
- package/registry/examples/context-menu-demo.tsx +29 -0
- package/registry/examples/control-density-contract-demo.tsx +61 -0
- package/registry/examples/date-picker-demo.tsx +12 -12
- package/registry/examples/divider-demo.tsx +3 -3
- package/registry/examples/expanded/banner-demo.tsx +1 -1
- package/registry/examples/expanded/breadcrumbs-demo.tsx +1 -1
- package/registry/examples/expanded/empty-state-demo.tsx +1 -1
- package/registry/examples/expanded/file-upload-demo.tsx +1 -1
- package/registry/examples/expanded/onboarding-step-demo.tsx +1 -1
- package/registry/examples/expanded/slideout-demo.tsx +2 -2
- package/registry/examples/expanded/steps-demo.tsx +1 -1
- package/registry/examples/expanded/tabs-demo.tsx +2 -2
- package/registry/examples/expanded/timeline-demo.tsx +1 -1
- package/registry/examples/field-demo.tsx +51 -0
- package/registry/examples/hover-card-demo.tsx +23 -0
- package/registry/examples/input-demo.tsx +6 -6
- package/registry/examples/input-group-demo.tsx +16 -0
- package/registry/examples/input-otp-demo.tsx +4 -4
- package/registry/examples/item-demo.tsx +46 -0
- package/registry/examples/kbd-demo.tsx +11 -0
- package/registry/examples/label-demo.tsx +20 -0
- package/registry/examples/menu-demo.tsx +1 -1
- package/registry/examples/menubar-demo.tsx +34 -0
- package/registry/examples/modal-demo.tsx +67 -9
- package/registry/examples/native-select-demo.tsx +16 -0
- package/registry/examples/navigation-menu-demo.tsx +29 -0
- package/registry/examples/pagination-demo.tsx +6 -3
- package/registry/examples/popover-demo.tsx +19 -19
- package/registry/examples/progress-demo.tsx +1 -1
- package/registry/examples/progress-slider-demo.tsx +1 -1
- package/registry/examples/radio-card-demo.tsx +4 -4
- package/registry/examples/radio-group-demo.tsx +2 -2
- package/registry/examples/resizable-demo.tsx +22 -0
- package/registry/examples/results-toolbar-demo.tsx +44 -0
- package/registry/examples/scroll-area-demo.tsx +15 -0
- package/registry/examples/segmented-control-demo.tsx +39 -0
- package/registry/examples/select-demo.tsx +1 -1
- package/registry/examples/sheet-demo.tsx +47 -0
- package/registry/examples/sidebar-demo.tsx +55 -0
- package/registry/examples/slider-demo.tsx +3 -3
- package/registry/examples/social-button-demo.tsx +18 -8
- package/registry/examples/spinner-demo.tsx +13 -13
- package/registry/examples/tabs-demo.tsx +13 -0
- package/registry/examples/tag-demo.tsx +1 -1
- package/registry/examples/textarea-demo.tsx +4 -4
- package/registry/examples/toast-demo.tsx +35 -0
- package/registry/examples/toggle-demo.tsx +6 -6
- package/registry/examples/tooltip-demo.tsx +4 -4
- package/registry/guidance/USAGE.md +27 -0
- package/registry/hooks/use-direction.ts +193 -13
- package/registry/index.json +6010 -432
- package/registry/styles/globals.css +3112 -4690
- package/registry.json +1582 -0
- package/schema/config.schema.json +51 -0
- package/schema/registry.schema.json +190 -0
- package/schema/tokens.schema.json +163 -0
- package/src/cli/command-line.js +194 -0
- package/src/cli/config-editors.js +9 -0
- package/src/cli/doctor.js +399 -0
- package/src/cli/file-transaction.js +295 -0
- package/src/cli/global-css.js +153 -0
- package/src/cli/index.js +639 -1391
- package/src/cli/install-plan.js +592 -0
- package/src/cli/install-receipt.js +171 -0
- package/src/cli/jsonc.js +203 -0
- package/src/cli/package-install-state.js +254 -0
- package/src/cli/package-manager.js +238 -0
- package/src/cli/package-plan.js +185 -0
- package/src/cli/package-version.js +97 -0
- package/src/cli/registry-query.js +207 -0
- package/src/cli/reporting.js +55 -0
- package/src/cli/schema-validation.js +19 -0
- package/src/cli/source-scanner.js +686 -0
- package/src/cli/vite-config.js +478 -0
- package/tokens/banhaten.tokens.json +4313 -310
- package/registry/assets/avatars/avatar-02.jpg +0 -0
- package/registry/assets/avatars/avatar-03.jpg +0 -0
- package/registry/assets/avatars/avatar-04.jpg +0 -0
- package/registry/assets/avatars/avatar-05.jpg +0 -0
- package/registry/assets/avatars/avatar-06.jpg +0 -0
- package/registry/assets/avatars/avatar-07.jpg +0 -0
- package/registry/assets/avatars/avatar-08.jpg +0 -0
- package/registry/assets/avatars/avatar-09.jpg +0 -0
- package/registry/assets/avatars/avatar-10.jpg +0 -0
- package/registry/assets/avatars/avatar-11.jpg +0 -0
- package/registry/assets/avatars/avatar-12.jpg +0 -0
- package/registry/assets/avatars/avatar-13.jpg +0 -0
- package/registry/assets/avatars/avatar-14.jpg +0 -0
- package/registry/assets/avatars/avatar-15.jpg +0 -0
- package/registry/assets/avatars/avatar-16.jpg +0 -0
- package/registry/assets/avatars/avatar-17.jpg +0 -0
- package/registry/assets/avatars/avatar-18.jpg +0 -0
- package/registry/assets/avatars/avatar-19.jpg +0 -0
- package/registry/assets/avatars/avatar-20.jpg +0 -0
- package/registry/assets/avatars/avatar-21.jpg +0 -0
- package/registry/assets/avatars/avatar-22.jpg +0 -0
- package/registry/assets/avatars/avatar-23.jpg +0 -0
- package/registry/assets/avatars/avatar-24.jpg +0 -0
- package/registry/assets/avatars/avatar-25.jpg +0 -0
- package/registry/assets/avatars/avatar-26.jpg +0 -0
- package/registry/assets/avatars/avatar-27.jpg +0 -0
- package/registry/assets/avatars/avatar-28.jpg +0 -0
- package/registry/assets/avatars/avatar-29.jpg +0 -0
- package/registry/assets/avatars/avatar-30.jpg +0 -0
- package/registry/assets/avatars/avatar-31.jpg +0 -0
- package/registry/assets/avatars/avatar-32.jpg +0 -0
- package/registry/assets/avatars/avatar-33.jpg +0 -0
- package/registry/assets/avatars/avatar-34.jpg +0 -0
- package/registry/assets/avatars/avatar-35.jpg +0 -0
- package/registry/assets/image-assets.json +0 -744
- package/registry/assets/images/art-02.jpg +0 -0
- package/registry/assets/images/art-03.jpg +0 -0
- package/registry/assets/images/art-04.jpg +0 -0
- package/registry/assets/images/art-05.jpg +0 -0
- package/registry/assets/images/art-06.jpg +0 -0
- package/registry/assets/images/art-07.jpg +0 -0
- package/registry/assets/images/art-08.jpg +0 -0
- package/registry/assets/images/art-09.jpg +0 -0
- package/registry/assets/images/art-10.jpg +0 -0
- package/registry/assets/images/art-11.jpg +0 -0
- package/registry/assets/images/art-12.jpg +0 -0
- package/registry/assets/images/art-13.jpg +0 -0
- package/registry/assets/images/art-14.jpg +0 -0
- package/registry/assets/images/art-15.jpg +0 -0
- package/registry/assets/images/art-16.jpg +0 -0
- package/registry/assets/images/art-17.jpg +0 -0
- package/registry/assets/images/art-18.jpg +0 -0
- package/registry/assets/images/art-19.jpg +0 -0
- package/registry/assets/images/art-20.jpg +0 -0
- package/registry/assets/images/art-21.jpg +0 -0
- package/registry/assets/images/art-22.jpg +0 -0
- package/registry/assets/images/art-23.jpg +0 -0
- package/registry/assets/images/art-24.jpg +0 -0
- package/registry/assets/images/art-25.jpg +0 -0
- package/registry/assets/images/art-26.jpg +0 -0
- package/registry/assets/images/art-27.jpg +0 -0
- package/registry/assets/images/nature-01.jpg +0 -0
- package/registry/assets/images/nature-02.jpg +0 -0
- package/registry/assets/images/nature-03.jpg +0 -0
- package/registry/assets/images/nature-04.jpg +0 -0
- package/registry/assets/images/nature-05.jpg +0 -0
- package/registry/assets/images/nature-06.jpg +0 -0
- package/registry/assets/images/nature-07.jpg +0 -0
- package/registry/assets/images/nature-08.jpg +0 -0
- package/registry/assets/images/nature-09.jpg +0 -0
- package/registry/assets/images/nature-10.jpg +0 -0
- package/registry/assets/images/nature-11.jpg +0 -0
- package/registry/assets/images/nature-12.jpg +0 -0
- package/registry/assets/images/nature-13.jpg +0 -0
- package/registry/assets/images/nature-14.jpg +0 -0
- package/registry/assets/images/nature-15.jpg +0 -0
- package/registry/assets/images/nature-16.jpg +0 -0
- package/registry/assets/images/nature-17.jpg +0 -0
- package/registry/assets/images/nature-18.jpg +0 -0
- package/registry/assets/images/nature-19.jpg +0 -0
- package/registry/assets/images/nature-20.jpg +0 -0
- package/registry/components/expanded/BannerBoard.tsx +0 -225
- package/registry/components/expanded/CatalogTag.tsx +0 -85
- package/registry/components/expanded/CommandBar.tsx +0 -386
- package/registry/components/expanded/IconExplorer.tsx +0 -612
- package/registry/components/expanded/Tabs.tsx +0 -86
- package/registry/components/expanded/TimelineShowcase.tsx +0 -158
- package/registry/components/expanded/commandBar.css +0 -470
- package/registry/components/expanded/iconExplorer.css +0 -764
- package/registry/components/expanded/iconPacks.ts +0 -866
- package/registry/components/expanded/tag.css +0 -148
- package/registry/examples/expanded/icons-demo.tsx +0 -5
- package/tokens/Color mode.zip +0 -0
- package/tokens/Numbers.zip +0 -0
- package/tokens/Radius.zip +0 -0
- package/tokens/Theme.zip +0 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
# Design System Test Missing Items
|
|
2
|
+
|
|
3
|
+
Last updated: 2026-06-13
|
|
4
|
+
|
|
5
|
+
This inventory is generated from the current background design-system tests. It mirrors the playground Missing mode and includes both red true-missing marks and purple approximation marks.
|
|
6
|
+
|
|
7
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[].gaps`).
|
|
8
|
+
|
|
9
|
+
Total background tests: 24
|
|
10
|
+
Total marked items: 132
|
|
11
|
+
True missing items: 64
|
|
12
|
+
Approximation marks: 68
|
|
13
|
+
|
|
14
|
+
## How To Read This
|
|
15
|
+
|
|
16
|
+
- **Date logged** is the date this documentation snapshot was generated.
|
|
17
|
+
- **Mark** is `Red` for a true missing reusable item and `Purple` for a close local composition, token, icon, or image approximation.
|
|
18
|
+
- **Reference source** is the uploaded/supplied reference image used for that background test.
|
|
19
|
+
- **Item source** is the gap list in `playground/src/app/backgrounds/registry.ts`.
|
|
20
|
+
- **Alternative / closest look** records the nearest Banhaten primitive, component, token, or placeholder available today.
|
|
21
|
+
|
|
22
|
+
## Accounting Workspace Setup Background
|
|
23
|
+
|
|
24
|
+
Reference source: `playground/public/references/accounting-workspace-setup-background.jpg`
|
|
25
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[accounting-workspace-setup].gaps`)
|
|
26
|
+
Date logged: 2026-06-07
|
|
27
|
+
|
|
28
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
29
|
+
| --- | --- | --- | --- | --- |
|
|
30
|
+
| 2026-06-07 | Red | layout/composition pattern | onboarding workspace shell | Closest look: a local app shell using raised surfaces, border/radius/shadow tokens, and background gradients until an onboarding shell pattern exists. |
|
|
31
|
+
| 2026-06-07 | Purple | component | step progress indicator | Closest look: Steps or ButtonGroup-style primitives with tokenized pill bars. |
|
|
32
|
+
| 2026-06-07 | Purple | layout/composition pattern | setup form step card | Closest look: actual Banhaten Input, Select, Textarea, RadioCard, and Button primitives inside a local raised form layout. |
|
|
33
|
+
| 2026-06-07 | Purple | layout/composition pattern | inferred cropped continuation | Closest look: infer the cropped lower setup fields with Banhaten Select, RadioCard, and Button primitives. |
|
|
34
|
+
|
|
35
|
+
## Debt Payoff Background
|
|
36
|
+
|
|
37
|
+
Reference source: `playground/public/references/debt-payoff-background.svg`
|
|
38
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[debt-payoff].gaps`)
|
|
39
|
+
Date logged: 2026-06-12
|
|
40
|
+
|
|
41
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
42
|
+
| --- | --- | --- | --- | --- |
|
|
43
|
+
| 2026-06-12 | Red | layout/composition pattern | finance workspace shell | Closest look: local planning workspace shell using Banhaten surfaces, border, radius, shadow, sidebar, toolbar, Table, Button, Input, Badge, and Progress primitives. |
|
|
44
|
+
| 2026-06-12 | Red | component | planning sidebar navigation | Closest look: grouped Menu-style rows with Input search, Badge counts, icon slots, selected state, and Button actions until an app-sidebar component exists. |
|
|
45
|
+
| 2026-06-12 | Purple | component | debt table and pagination | Closest look: Banhaten Table, Input, Badge, typography, spacing, border, and compact Pagination-like controls composed locally. |
|
|
46
|
+
| 2026-06-12 | Purple | component | strategy comparison controls | Closest look: RadioCard or ButtonGroup-style choice rows, Toggle, Button, Badge, and tokenized summary cards composed locally. |
|
|
47
|
+
| 2026-06-12 | Purple | icon asset | finance brand and navigation glyphs | Closest look: Lucide or CSS placeholders inside tokenized icon wrappers until exact finance/product assets are supplied. |
|
|
48
|
+
|
|
49
|
+
## AI Growth Marketing Background
|
|
50
|
+
|
|
51
|
+
Reference source: `playground/public/references/ai-growth-marketing-background.jpg`
|
|
52
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[ai-growth-marketing].gaps`)
|
|
53
|
+
Date logged: 2026-06-07
|
|
54
|
+
|
|
55
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
56
|
+
| --- | --- | --- | --- | --- |
|
|
57
|
+
| 2026-06-07 | Purple | image asset | scenic meadow backdrop | Closest look: a tokenized CSS scenic approximation until a final raster background asset exists. |
|
|
58
|
+
| 2026-06-07 | Red | layout/composition pattern | floating report dashboard scene | Closest look: a local absolute-positioned app shell using Banhaten dark surfaces, borders, spacing, radius, and shadow tokens. |
|
|
59
|
+
| 2026-06-07 | Red | component | report sidebar navigation | Closest look: Menu, Badge, Avatar, Button, typography, and icon wrappers composed into a sidebar until an app-sidebar component exists. |
|
|
60
|
+
| 2026-06-07 | Red | component | AI report dashboard cards | Closest look: tokenized surfaces plus local chart/table compositions until dashboard cards and chart components are first-class. |
|
|
61
|
+
| 2026-06-07 | Purple | icon asset | AI provider and company marks | Closest look: Lucide or CSS placeholders inside tokenized icon wrappers until the exact brand/provider assets are added. |
|
|
62
|
+
| 2026-06-07 | Purple | token | near-black overlay and chart glow | Closest look: existing dark theme surfaces, subtle borders, brand/sky accents, and component shadow tokens. |
|
|
63
|
+
|
|
64
|
+
## Benefits Enrollment Background
|
|
65
|
+
|
|
66
|
+
Reference source: `playground/public/references/benefits-enrollment-background.jpg`
|
|
67
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[benefits-enrollment].gaps`)
|
|
68
|
+
Date logged: 2026-06-07
|
|
69
|
+
|
|
70
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
71
|
+
| --- | --- | --- | --- | --- |
|
|
72
|
+
| 2026-06-07 | Red | layout/composition pattern | angled benefits screen shell | Closest look: local rotated stage using Banhaten background, border, radius, and shadow tokens. |
|
|
73
|
+
| 2026-06-07 | Red | component | enrollment progress header | Closest look: Steps-style composition with tokenized markers, connector lines, and label typography. |
|
|
74
|
+
| 2026-06-07 | Red | component | personal details review card | Closest look: raised surface, header row, Button action, and nested definition-list panel composed with Banhaten tokens. |
|
|
75
|
+
| 2026-06-12 | Purple | component | definition-list review rows | Closest look: Banhaten Attribute rows inside a tokenized review card surface. |
|
|
76
|
+
|
|
77
|
+
## CRM Intelligence Background
|
|
78
|
+
|
|
79
|
+
Reference source: `playground/public/references/crm-intelligence-background.jpg`
|
|
80
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[crm-intelligence].gaps`)
|
|
81
|
+
Date logged: 2026-06-07
|
|
82
|
+
|
|
83
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
84
|
+
| --- | --- | --- | --- | --- |
|
|
85
|
+
| 2026-06-07 | Red | layout/composition pattern | background shell | Closest look: layout primitives with background, border, radius, and shadow tokens; no reusable background shell yet. |
|
|
86
|
+
| 2026-06-07 | Red | layout/composition pattern | deal card | Closest look: card-like surface composed from Avatar, Badge, Button, typography, and spacing tokens. |
|
|
87
|
+
| 2026-06-07 | Red | component | icon tile | Closest look: icon-only Button or a small Badge/Icon wrapper using radius, border, and background tokens. |
|
|
88
|
+
| 2026-06-07 | Purple | icon asset | brand logo mark | Closest look: Lucide/CSS placeholder in a tokenized icon tile until the brand asset exists. |
|
|
89
|
+
| 2026-06-07 | Red | component | media upload | Closest look: FileUpload expanded component, or Input/Button composition with dashed border tokens. |
|
|
90
|
+
| 2026-06-07 | Red | component | segmented control | Closest look: Tabs segment variant or ButtonGroup with selected state. |
|
|
91
|
+
| 2026-06-12 | Purple | component | switch | Closest look: Banhaten Toggle or ToggleField with local sizing around the reference layout. |
|
|
92
|
+
| 2026-06-07 | Purple | image asset | meeting thumbnails | Closest look: Avatar/Image placeholders plus Badge or Tag for service/status marks. |
|
|
93
|
+
| 2026-06-07 | Red | layout/composition pattern | checklist panel | Closest look: Checkbox or CheckboxCard rows inside a tokenized surface. |
|
|
94
|
+
|
|
95
|
+
## Model Overview Background
|
|
96
|
+
|
|
97
|
+
Reference source: `playground/public/references/model-overview-background.jpg`
|
|
98
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[model-overview].gaps`)
|
|
99
|
+
Date logged: 2026-06-07
|
|
100
|
+
|
|
101
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
102
|
+
| --- | --- | --- | --- | --- |
|
|
103
|
+
| 2026-06-07 | Red | layout/composition pattern | modal-over-background scene | Closest look: centered raised surface with local overlay/backdrop CSS, radius, and shadow tokens. |
|
|
104
|
+
| 2026-06-07 | Red | component | model overview detail panel | Closest look: PageHeader, Badge, Button, Table/list rows, and tokenized surface. |
|
|
105
|
+
| 2026-06-07 | Purple | icon asset | Mistral logo | Closest look: token-colored icon tile or CSS mark until the exact provider asset is added. |
|
|
106
|
+
| 2026-06-07 | Purple | image asset | blurred hero and provider list | Closest look: background image slot or Avatar/icon placeholders inside a muted surface. |
|
|
107
|
+
| 2026-06-07 | Purple | token | backdrop blur and modal elevation | Closest look: shadow-component-default plus local backdrop blur; needs a named elevation token. |
|
|
108
|
+
|
|
109
|
+
## MCP Settings Background
|
|
110
|
+
|
|
111
|
+
Reference source: `playground/public/references/mcp-settings-background.svg`
|
|
112
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[mcp-settings].gaps`)
|
|
113
|
+
Date logged: 2026-06-07
|
|
114
|
+
|
|
115
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
116
|
+
| --- | --- | --- | --- | --- |
|
|
117
|
+
| 2026-06-07 | Red | layout/composition pattern | settings-page shell | Closest look: app shell composed from Menu, Input, Button, Avatar, and surface tokens. |
|
|
118
|
+
| 2026-06-07 | Red | component | connect-tool picker | Closest look: RadioCard or CheckboxCard variant with icon, label, and selected state. |
|
|
119
|
+
| 2026-06-07 | Red | component | numbered setup steps | Closest look: Steps component plus code/card surface composition. |
|
|
120
|
+
| 2026-06-07 | Purple | icon asset | tool and navigation icons | Closest look: Lucide icons inside tokenized icon wrappers. |
|
|
121
|
+
| 2026-06-07 | Purple | image asset | account avatar badge | Closest look: Avatar with nested Badge or icon overlay. |
|
|
122
|
+
| 2026-06-07 | Purple | token | reference shell border softness | Closest look: border-subtle, large radius, and component shadow. |
|
|
123
|
+
|
|
124
|
+
## Inference Providers Background
|
|
125
|
+
|
|
126
|
+
Reference source: `playground/public/references/inference-providers-background.jpg`
|
|
127
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[inference-providers].gaps`)
|
|
128
|
+
Date logged: 2026-06-07
|
|
129
|
+
|
|
130
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
131
|
+
| --- | --- | --- | --- | --- |
|
|
132
|
+
| 2026-06-07 | Red | layout/composition pattern | inference settings workspace shell | Closest look: app-shell composition using raised surfaces, subtle borders, large radius, side rail, tabs, and typography tokens. |
|
|
133
|
+
| 2026-06-07 | Red | component | expandable provider configuration table | Closest look: local table grid with Badge, Input, status-dot, and typography primitives until expanded rows are supported by Table. |
|
|
134
|
+
| 2026-06-12 | Purple | component | switch control | Closest look: Banhaten Toggle or ToggleField inside the provider table rows. |
|
|
135
|
+
| 2026-06-07 | Purple | layout/composition pattern | top navigation and side rail | Closest look: composed breadcrumb, tabs, avatar, icon buttons, and side rail using current Banhaten primitives. |
|
|
136
|
+
| 2026-06-07 | Purple | icon asset | provider brand marks | Closest look: Lucide or CSS placeholders inside tokenized icon slots until exact provider marks are supplied. |
|
|
137
|
+
| 2026-06-07 | Purple | component | status dots and settings fields | Closest look: Badge, Input, small dot indicators, and text rows composed with existing spacing and color tokens. |
|
|
138
|
+
|
|
139
|
+
## Profile Menu Background
|
|
140
|
+
|
|
141
|
+
Reference source: `playground/public/references/profile-menu-background.jpg`
|
|
142
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[profile-menu].gaps`)
|
|
143
|
+
Date logged: 2026-06-07
|
|
144
|
+
|
|
145
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
146
|
+
| --- | --- | --- | --- | --- |
|
|
147
|
+
| 2026-06-07 | Red | layout/composition pattern | oversized profile menu scene | Closest look: Menu inside a raised surface, with duplicated shells kept local to the background. |
|
|
148
|
+
| 2026-06-07 | Purple | token | large radius and reflection elevation | Closest look: largest radius tokens plus shadow-component-default; needs a larger elevation token. |
|
|
149
|
+
| 2026-06-07 | Red | component | account header row | Closest look: Avatar, typography, and Badge inside a MenuLabel/header surface. |
|
|
150
|
+
| 2026-06-07 | Red | component | jumbo menu item with accessories | Closest look: MenuItem with Avatar, Badge, and action slots; needs an oversized variant. |
|
|
151
|
+
| 2026-06-07 | Purple | icon asset | reference icon family | Closest look: Lucide icons in MenuItemIcon slots. |
|
|
152
|
+
| 2026-06-07 | Purple | image asset | avatar and hand cursor | Closest look: Avatar fallback plus Pointer icon placeholder. |
|
|
153
|
+
|
|
154
|
+
## Investor Profile Background
|
|
155
|
+
|
|
156
|
+
Reference source: `playground/public/references/investor-profile-background.jpg`
|
|
157
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[investor-profile].gaps`)
|
|
158
|
+
Date logged: 2026-06-07
|
|
159
|
+
|
|
160
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
161
|
+
| --- | --- | --- | --- | --- |
|
|
162
|
+
| 2026-06-07 | Red | layout/composition pattern | investor profile scene | Closest look: raised card-like surface using Avatar, Button, Badge, and typography tokens. |
|
|
163
|
+
| 2026-06-07 | Purple | token | large card radius and soft elevation | Closest look: largest radius tokens and shadow-component-default. |
|
|
164
|
+
| 2026-06-07 | Red | component | profile summary card | Closest look: definition list inside a raised/subtle surface with Badge or icon wrappers. |
|
|
165
|
+
| 2026-06-07 | Purple | image asset | avatar artwork | Closest look: Avatar fallback with token colors. |
|
|
166
|
+
| 2026-06-07 | Purple | icon asset | verification and brand marks | Closest look: Badge/Icon wrappers or Lucide placeholders. |
|
|
167
|
+
|
|
168
|
+
## Compose Email Background
|
|
169
|
+
|
|
170
|
+
Reference source: `playground/public/references/compose-email-background.jpg`
|
|
171
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[email-compose].gaps`)
|
|
172
|
+
Date logged: 2026-06-07
|
|
173
|
+
|
|
174
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
175
|
+
| --- | --- | --- | --- | --- |
|
|
176
|
+
| 2026-06-07 | Red | layout/composition pattern | compose modal shell | Closest look: raised modal surface with Input, Textarea, and Button primitives. |
|
|
177
|
+
| 2026-06-07 | Red | component | person chip | Closest look: Tag or Badge composed with Avatar and status icon. |
|
|
178
|
+
| 2026-06-07 | Purple | image asset | contact avatars | Closest look: Avatar fallback until final images are provided. |
|
|
179
|
+
| 2026-06-07 | Purple | icon asset | verified badge and model mark | Closest look: Badge/Icon wrapper with Lucide or CSS mark. |
|
|
180
|
+
| 2026-06-07 | Red | component | inline template variable | Closest look: Tag or Badge styled as an inline chip. |
|
|
181
|
+
| 2026-06-07 | Purple | token | large composer radius/elevation | Closest look: radius-3xl/6xl and shadow-component-default. |
|
|
182
|
+
| 2026-06-07 | Red | component | split send button | Closest look: ButtonGroup or adjacent Button plus icon Button. |
|
|
183
|
+
|
|
184
|
+
## Investment Savings Background
|
|
185
|
+
|
|
186
|
+
Reference source: `playground/public/references/investment-savings-background.png`
|
|
187
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[investment-savings].gaps`)
|
|
188
|
+
Date logged: 2026-06-07
|
|
189
|
+
|
|
190
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
191
|
+
| --- | --- | --- | --- | --- |
|
|
192
|
+
| 2026-06-07 | Purple | layout/composition pattern | purple investment calculator card | Closest look: a local surface composition using Badge, typography, divider, spacing, radius, and active brand tokens. |
|
|
193
|
+
| 2026-06-09 | Purple | component | purple amount range selector | Resolved with reusable Banhaten Slider pill variant using the brand tone, grip thumb, and tick marks. |
|
|
194
|
+
|
|
195
|
+
## Transaction Details Background
|
|
196
|
+
|
|
197
|
+
Reference source: `playground/public/references/transaction-details-background.jpg`
|
|
198
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[transaction-details].gaps`)
|
|
199
|
+
Date logged: 2026-06-07
|
|
200
|
+
|
|
201
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
202
|
+
| --- | --- | --- | --- | --- |
|
|
203
|
+
| 2026-06-07 | Red | component | transaction detail sheet | Closest look: a raised surface composed from Button, Badge, Avatar, typography, spacing, radius, and shadow tokens until a reusable transaction-detail component exists. |
|
|
204
|
+
| 2026-06-07 | Purple | layout/composition pattern | purple composed detail pieces | Closest look: existing primitives and local tokenized wrappers. Purple marks identify pieces that are acceptable compositions, not red missing components. |
|
|
205
|
+
|
|
206
|
+
## Refund Simulation Background
|
|
207
|
+
|
|
208
|
+
Reference source: `playground/public/references/refund-simulation-background.jpg`
|
|
209
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[refund-simulation].gaps`)
|
|
210
|
+
Date logged: 2026-06-07
|
|
211
|
+
|
|
212
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
213
|
+
| --- | --- | --- | --- | --- |
|
|
214
|
+
| 2026-06-07 | Purple | token | warm canvas and large elevation | Closest look: grouped background, large radius, and shadow-component-default. |
|
|
215
|
+
| 2026-06-07 | Red | layout/composition pattern | simulation conversation shell | Closest look: raised surface with Avatar rows, typography, and spacing tokens. |
|
|
216
|
+
| 2026-06-07 | Red | component | refund progress timeline | Closest look: Timeline or Steps with success icons and connector rail. |
|
|
217
|
+
| 2026-06-07 | Red | component | customer and agent message rows | Closest look: Avatar and text stack rows inside a conversation surface. |
|
|
218
|
+
| 2026-06-07 | Purple | icon asset | customer identity glyph | Closest look: Avatar fallback with User icon. |
|
|
219
|
+
| 2026-06-07 | Purple | image asset | agent blue mosaic avatar | Closest look: Avatar fallback with tokenized CSS pattern. |
|
|
220
|
+
|
|
221
|
+
## Stripe Demo Account Background
|
|
222
|
+
|
|
223
|
+
Reference source: `playground/public/references/stripe-demo-account-background.png`
|
|
224
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[stripe-demo-account].gaps`)
|
|
225
|
+
Date logged: 2026-06-13
|
|
226
|
+
|
|
227
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
228
|
+
| --- | --- | --- | --- | --- |
|
|
229
|
+
| 2026-06-13 | Red | layout/composition pattern | payments dashboard shell | Closest look: local dashboard shell using Banhaten raised surfaces, border, radius, shadow, sidebar, Button, Input, and table-like spacing. |
|
|
230
|
+
| 2026-06-13 | Red | component | payments sidebar navigation | Closest look: Menu-style rows with Input search, icon slots, selected state, and footer utility rows until an app-sidebar primitive exists. |
|
|
231
|
+
| 2026-06-13 | Purple | component | summary KPI cards | Closest look: Card-like raised surfaces with Banhaten typography, border, radius, and compact spacing. |
|
|
232
|
+
| 2026-06-13 | Purple | component | metric table cards | Closest look: local card composition with Button icon actions, avatar initials, and compact table rows using Banhaten tokens. |
|
|
233
|
+
| 2026-06-13 | Purple | component | sales tabs and table | Closest look: Tabs-like underline navigation plus table/list rows with Banhaten spacing, dividers, and typography. |
|
|
234
|
+
| 2026-06-13 | Purple | image asset | Stripe mark and account avatar | Closest look: CSS mark and Avatar-style placeholder using token colors until the exact Stripe and account image assets are supplied. |
|
|
235
|
+
|
|
236
|
+
## Recent Orders Background
|
|
237
|
+
|
|
238
|
+
Reference source: `playground/public/references/recent-orders-background.png`
|
|
239
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[recent-orders].gaps`)
|
|
240
|
+
Date logged: 2026-06-13
|
|
241
|
+
|
|
242
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
243
|
+
| --- | --- | --- | --- | --- |
|
|
244
|
+
| 2026-06-13 | Red | layout/composition pattern | orders dashboard workspace shell | Closest look: local orders workspace shell using Banhaten raised/subtle surfaces, border, radius, top navigation, search Input, Button, Badge, and layout spacing tokens. |
|
|
245
|
+
| 2026-06-13 | Purple | component | orders intro and stat cards | Closest look: Card-like tokenized surfaces with Button, typography, progress-bar CSS, border, radius, and brand tokens. |
|
|
246
|
+
| 2026-06-13 | Purple | component | orders table controls and rows | Closest look: ButtonGroup, Button, Badge, typography, dividers, and table-like grid rows composed locally until a richer orders table pattern exists. |
|
|
247
|
+
| 2026-06-13 | Red | component | order detail panel | Closest look: raised detail surface with Button actions, definition rows, dividers, payment row, and local two-column address layout. |
|
|
248
|
+
| 2026-06-13 | Purple | image asset | brand mark and customer avatar | Closest look: Lucide/CSS brand mark and Avatar fallback until exact product and customer image assets are supplied. |
|
|
249
|
+
|
|
250
|
+
## Shipment List Background
|
|
251
|
+
|
|
252
|
+
Reference source: `playground/public/references/shipment-list-background.png`
|
|
253
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[shipment-list].gaps`)
|
|
254
|
+
Date logged: 2026-06-13
|
|
255
|
+
|
|
256
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
257
|
+
| --- | --- | --- | --- | --- |
|
|
258
|
+
| 2026-06-13 | Red | layout/composition pattern | shipment management workspace shell | Closest look: local operational app shell using Banhaten raised surfaces, border, radius, shadow, sidebar, Button, and table-like spacing. |
|
|
259
|
+
| 2026-06-13 | Red | component | shipment sidebar navigation | Closest look: Menu-style grouped rows, count Badge, typography, and icon slots until app-sidebar navigation becomes a reusable component. |
|
|
260
|
+
| 2026-06-13 | Purple | icon asset | carrier brand mark | Closest look: token-colored CSS icon placeholder inside a Badge-like chip until the exact carrier mark is supplied. |
|
|
261
|
+
|
|
262
|
+
## Delivery Tracking Background
|
|
263
|
+
|
|
264
|
+
Reference source: `playground/public/references/delivery-tracking-background.png`
|
|
265
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[delivery-tracking].gaps`)
|
|
266
|
+
Date logged: 2026-06-13
|
|
267
|
+
|
|
268
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
269
|
+
| --- | --- | --- | --- | --- |
|
|
270
|
+
| 2026-06-13 | Red | layout/composition pattern | delivery tracking dashboard shell | Closest look: local consumer delivery page shell using Banhaten raised surfaces, borders, radius, spacing, shadow, Button, Badge, Avatar, and icon primitives. |
|
|
271
|
+
| 2026-06-13 | Purple | image asset | map tile and delivery pin visual | Closest look: tokenized CSS map layers plus a Lucide MapPin inside a rounded image/card slot. |
|
|
272
|
+
| 2026-06-13 | Purple | component | shipment detail card stack | Closest look: Card-like surfaces with Banhaten typography, Badge, Button, icon rows, dividers, and local item/totals/address compositions. |
|
|
273
|
+
| 2026-06-13 | Purple | component | notification toggle stack | Closest look: Toggle-like switches and preference rows composed with Banhaten radius, accent colors, spacing, and typography tokens. |
|
|
274
|
+
| 2026-06-13 | Red | component | consumer delivery timeline | Closest look: Timeline/Steps-style local composition with large icon nodes, status Badge, connector rail, and active-state halo. |
|
|
275
|
+
| 2026-06-13 | Red | component | delivery rating control | Closest look: Lucide stars with Banhaten accent colors until a reusable rating input/display component is added. |
|
|
276
|
+
| 2026-06-13 | Purple | image asset | courier avatar asset | Closest look: Avatar fallback treatment until a final courier portrait is available. |
|
|
277
|
+
|
|
278
|
+
## School Assignments Background
|
|
279
|
+
|
|
280
|
+
Reference source: `playground/public/references/school-assignments-background.jpg`
|
|
281
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[school-assignments].gaps`)
|
|
282
|
+
Date logged: 2026-06-07
|
|
283
|
+
|
|
284
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
285
|
+
| --- | --- | --- | --- | --- |
|
|
286
|
+
| 2026-06-07 | Red | layout/composition pattern | school app workspace shell | Closest look: dark app shell using Menu, Input, Button, Avatar, and Table. |
|
|
287
|
+
| 2026-06-07 | Purple | token | warm dark backdrop and oversized shadow | Closest look: dark theme background tokens plus component shadow. |
|
|
288
|
+
| 2026-06-07 | Red | component | class switcher and student roster | Closest look: Select/Menu, Input, and Avatar list composition. |
|
|
289
|
+
| 2026-06-07 | Red | component | assignments table | Closest look: Table component with Badge and Button/Icon cells. |
|
|
290
|
+
| 2026-06-07 | Purple | icon asset | school, subject, and assignment glyphs | Closest look: Lucide icons in Badge, Menu, or icon wrappers. |
|
|
291
|
+
| 2026-06-07 | Purple | image asset | teacher avatar | Closest look: Avatar fallback until the portrait asset exists. |
|
|
292
|
+
|
|
293
|
+
## Audit Log Background
|
|
294
|
+
|
|
295
|
+
Reference source: `playground/public/references/audit-log-background.jpg`
|
|
296
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[audit-log].gaps`)
|
|
297
|
+
Date logged: 2026-06-07
|
|
298
|
+
|
|
299
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
300
|
+
| --- | --- | --- | --- | --- |
|
|
301
|
+
| 2026-06-07 | Red | layout/composition pattern | audit browser workspace shell | Closest look: app shell composed from tokenized chrome, sidebar, table area, backdrop, and modal surfaces. |
|
|
302
|
+
| 2026-06-07 | Red | component | audit sidebar navigation | Closest look: Menu-style rows grouped with section labels, icon slots, and selected state. |
|
|
303
|
+
| 2026-06-07 | Red | component | audit activity table | Closest look: Table/list rows composed with Checkbox, Badge, Avatar, Input, Button, and Pagination-like controls. |
|
|
304
|
+
| 2026-06-07 | Red | component | log details modal | Closest look: raised surface using Button, Badge, Avatar, typography, dividers, and local definition-table rows. |
|
|
305
|
+
| 2026-06-07 | Purple | icon asset | audit chrome and sidebar glyphs | Closest look: Lucide icons and CSS browser marks in tokenized icon wrappers. |
|
|
306
|
+
| 2026-06-07 | Purple | image asset | audit author avatars | Closest look: Avatar fallback until production portrait assets are supplied. |
|
|
307
|
+
| 2026-06-07 | Purple | token | audit blur and elevation | Closest look: background, border, radius, opacity, and component-shadow tokens plus local backdrop blur. |
|
|
308
|
+
|
|
309
|
+
## Order Shipment Timeline Background
|
|
310
|
+
|
|
311
|
+
Reference source: `playground/public/references/order-shipment-timeline-background.jpg`
|
|
312
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[order-shipment-timeline].gaps`)
|
|
313
|
+
Date logged: 2026-06-07
|
|
314
|
+
|
|
315
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
316
|
+
| --- | --- | --- | --- | --- |
|
|
317
|
+
| 2026-06-07 | Red | layout/composition pattern | cropped order workspace shell | Closest look: app shell composed from Table, Badge, Button, Textarea, and Timeline. |
|
|
318
|
+
| 2026-06-07 | Red | component | collapsible order panels | Closest look: Accordion with Table and Badge content. |
|
|
319
|
+
| 2026-06-07 | Red | component | shipment selector cards | Closest look: RadioCard or ButtonGroup selected cards. |
|
|
320
|
+
| 2026-06-07 | Red | component | note composer | Closest look: Textarea plus icon Button composition. |
|
|
321
|
+
| 2026-06-07 | Red | layout/composition pattern | vertical shipment timeline | Closest look: Timeline component with custom order-fulfillment rows. |
|
|
322
|
+
| 2026-06-07 | Purple | icon asset | carrier mark | Closest look: icon/logo placeholder in Badge or icon wrapper. |
|
|
323
|
+
| 2026-06-07 | Purple | image asset | document preview | Closest look: FileUpload or attachment tile placeholder. |
|
|
324
|
+
| 2026-06-07 | Purple | token | soft viewport fade | Closest look: local gradient overlay using background tokens. |
|
|
325
|
+
|
|
326
|
+
## Data Source Browser Background
|
|
327
|
+
|
|
328
|
+
Reference source: `playground/public/references/data-source-browser-background.jpg`
|
|
329
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[data-source-browser].gaps`)
|
|
330
|
+
Date logged: 2026-06-07
|
|
331
|
+
|
|
332
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
333
|
+
| --- | --- | --- | --- | --- |
|
|
334
|
+
| 2026-06-07 | Red | layout/composition pattern | desktop browser and app-shell scene | Closest look: app shell with toolbar/sidebar surfaces and background tokens. |
|
|
335
|
+
| 2026-06-07 | Red | component | sidebar navigation with pinned list | Closest look: Menu, Input, and Badge rows; needs sidebar navigation. |
|
|
336
|
+
| 2026-06-07 | Red | component | tab strip and recent menu | Closest look: Tabs plus Menu composition. |
|
|
337
|
+
| 2026-06-07 | Purple | icon asset | Programa and vendor glyphs | Closest look: Lucide/CSS icons in tokenized wrappers. |
|
|
338
|
+
| 2026-06-07 | Purple | image asset | Snowflake logo | Closest look: icon tile placeholder until the vendor logo asset exists. |
|
|
339
|
+
| 2026-06-07 | Purple | token | browser chrome radius and elevation | Closest look: large radius plus shadow-component-default. |
|
|
340
|
+
| 2026-06-07 | Red | component | dataset list panel | Closest look: Checkbox rows inside a Table/list surface. |
|
|
341
|
+
|
|
342
|
+
## MarcoHR People Background
|
|
343
|
+
|
|
344
|
+
Reference source: `playground/public/references/marcohr-people-background.png`
|
|
345
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[marcohr-people].gaps`)
|
|
346
|
+
Date logged: 2026-06-13
|
|
347
|
+
|
|
348
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
349
|
+
| --- | --- | --- | --- | --- |
|
|
350
|
+
| 2026-06-13 | Red | layout/composition pattern | HR workspace shell | Closest look: assemble the scene from Banhaten surfaces, spacing, radius, shadow, and existing primitives. |
|
|
351
|
+
| 2026-06-13 | Red | component | HR sidebar navigation | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
352
|
+
| 2026-06-13 | Purple | component | people status tabs and controls | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
353
|
+
| 2026-06-13 | Purple | component | employee policy table | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
354
|
+
| 2026-06-13 | Purple | image asset | MarcoHR logo mark | Closest look: use Avatar, image slots, or tokenized placeholders until the final raster/vector asset exists. |
|
|
355
|
+
|
|
356
|
+
## People Add Member Background
|
|
357
|
+
|
|
358
|
+
Reference source: `playground/public/references/people-add-member-background.png`
|
|
359
|
+
Item source: `playground/src/app/backgrounds/registry.ts` (`backgroundTests[people-add-member].gaps`)
|
|
360
|
+
Date logged: 2026-06-13
|
|
361
|
+
|
|
362
|
+
| Date logged | Mark | Type | Item | Alternative / closest look |
|
|
363
|
+
| --- | --- | --- | --- | --- |
|
|
364
|
+
| 2026-06-13 | Red | layout/composition pattern | HR workspace shell | Closest look: assemble the scene from Banhaten surfaces, spacing, radius, shadow, and existing primitives. |
|
|
365
|
+
| 2026-06-13 | Red | component | HR sidebar navigation | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
366
|
+
| 2026-06-13 | Purple | component | people table with status rows | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
367
|
+
| 2026-06-13 | Purple | component | add-member side panel | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
368
|
+
| 2026-06-13 | Purple | component | worker-type radio stack | Closest look: compose from Banhaten primitives and tokens until this becomes a first-class component. |
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Direction and Localization
|
|
2
|
+
|
|
3
|
+
Banhaten is Arabic and English-first, but text direction and language are separate contracts. Components resolve direction from an explicit `dir`, `DirectionProvider`, the nearest valid `[dir]` ancestor, or the document root—in that order. Direction changes layout, icon mirroring, and keyboard geometry; it never selects translated UI or accessibility copy.
|
|
4
|
+
|
|
5
|
+
Use a request-known direction provider for server rendering so the server markup, hydration snapshot, and first paint agree:
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { DirectionProvider } from "@/hooks/use-direction"
|
|
9
|
+
import {
|
|
10
|
+
arabicPaginationMessages,
|
|
11
|
+
Pagination,
|
|
12
|
+
} from "@/components/ui/pagination"
|
|
13
|
+
|
|
14
|
+
<DirectionProvider dir="rtl">
|
|
15
|
+
<Pagination messages={arabicPaginationMessages} />
|
|
16
|
+
</DirectionProvider>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`DirectionProvider dir="rtl"` works equally well with English, Arabic, Hebrew, Persian, or Urdu. Choose a component's `messages` catalog from the product locale, or pass its direct label props. The exported Arabic catalogs are conveniences, not RTL defaults.
|
|
20
|
+
|
|
21
|
+
Without an explicit prop or provider, server output uses a stable LTR snapshot. After hydration, one shared subscription per document synchronizes consumers with the nearest nested boundary or document root. This avoids hydration mismatches and per-component document observers. For an RTL first paint, provide the request-known direction during SSR.
|
|
22
|
+
|
|
23
|
+
Use logical CSS properties (`start`, `end`, `margin-inline`, `padding-inline`) and `dir="auto"` for user-authored copy. Test mixed-language content, punctuation, numbers, icon mirroring, arrow-key behavior, focus order, portal content, and screen-reader names in every supported direction and locale combination.
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Form Recipes
|
|
2
|
+
|
|
3
|
+
## Labeled field with validation
|
|
4
|
+
|
|
5
|
+
Compose `Field`, `FieldLabel`, `FieldControl`, `FieldDescription`, and `FieldError`. Associate the input with its label, keep help text stable, and announce errors only when validation has run.
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
<Field invalid={Boolean(error)}>
|
|
9
|
+
<FieldLabel htmlFor="email">Email</FieldLabel>
|
|
10
|
+
<FieldControl>
|
|
11
|
+
<Input id="email" state={error ? "error" : "default"} />
|
|
12
|
+
</FieldControl>
|
|
13
|
+
<FieldDescription>Use your work email.</FieldDescription>
|
|
14
|
+
{error ? <FieldError>{error}</FieldError> : null}
|
|
15
|
+
</Field>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Selection and dates
|
|
19
|
+
|
|
20
|
+
Use `Select` for a bounded option set, `Autocomplete` for searchable options, and `DatePicker`/`DateRangePicker` for calendar input. Controlled values are preferred when validation, persistence, or URL state owns the result.
|
|
21
|
+
|
|
22
|
+
Do not emulate a date field with `Input`, a typed `@`, or a generic trailing icon. The Date Picker owns the calendar affordance, keyboard behavior, formatted value, and the same semantic density contract as the surrounding controls.
|
|
23
|
+
|
|
24
|
+
## Golden recipe: collection filter bar
|
|
25
|
+
|
|
26
|
+
Use the complete [`CollectionFilterBarDemo`](../../registry/examples/collection-filter-bar-demo.tsx) recipe for collection and search screens. It establishes the approved composition:
|
|
27
|
+
|
|
28
|
+
- `ToolbarSearch` is full width and uses `shortcutKeys={["Mod", "F"]}` so Command and Control resolve by platform.
|
|
29
|
+
- `DatePicker` owns the From and To fields.
|
|
30
|
+
- `Select` owns Type and Order; `ToolbarSelect` is only a trigger-shaped primitive and is not a complete menu.
|
|
31
|
+
- Every control declares `density="default"`; responsive width classes do not replace component height, padding, radius, or typography.
|
|
32
|
+
- The Reset action uses the same density and resets all composed controls.
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
<form aria-label="Collection filters" data-recipe="collection-filter-bar">
|
|
36
|
+
<ToolbarSearch
|
|
37
|
+
aria-label="Search bookmarks"
|
|
38
|
+
density="default"
|
|
39
|
+
shortcutKeys={["Mod", "F"]}
|
|
40
|
+
width="full"
|
|
41
|
+
/>
|
|
42
|
+
<div className="flex flex-wrap items-end gap-3">
|
|
43
|
+
<DatePicker density="default" triggerProps={{ "aria-label": "From" }} />
|
|
44
|
+
<DatePicker density="default" triggerProps={{ "aria-label": "To" }} />
|
|
45
|
+
<Select density="default" value="Everything">{/* items */}</Select>
|
|
46
|
+
<Select density="default" value="Recently bookmarked">{/* items */}</Select>
|
|
47
|
+
<ToolbarButton density="default" type="reset" variant="link">Reset</ToolbarButton>
|
|
48
|
+
</div>
|
|
49
|
+
</form>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Golden recipe: results toolbar
|
|
53
|
+
|
|
54
|
+
Use the complete [`ResultsToolbarDemo`](../../registry/examples/results-toolbar-demo.tsx) recipe for result counts, layout selection, and batch actions. `SegmentedControl` is the approved content-width primitive for small mutually exclusive values such as cards per row.
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
<Toolbar aria-label="Bookmark results" layout="split" wrap>
|
|
58
|
+
<ToolbarText density="default"><strong>5,371</strong> bookmarks</ToolbarText>
|
|
59
|
+
<ToolbarSection align="end" wrap>
|
|
60
|
+
<SegmentedControl aria-label="Cards per row" defaultValue="4" density="default">
|
|
61
|
+
<SegmentedControlLabel>Cards / row</SegmentedControlLabel>
|
|
62
|
+
{[3, 4, 5, 6].map((count) => (
|
|
63
|
+
<SegmentedControlItem key={count} value={String(count)}>{count}</SegmentedControlItem>
|
|
64
|
+
))}
|
|
65
|
+
</SegmentedControl>
|
|
66
|
+
<ToolbarButton density="default" variant="outline">Select</ToolbarButton>
|
|
67
|
+
</ToolbarSection>
|
|
68
|
+
</Toolbar>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## RTL forms
|
|
72
|
+
|
|
73
|
+
Set direction at the form or application boundary. Labels and helper text use logical alignment; OTP, calendar, pagination, and selection keyboard movement resolve the inherited direction. Localize labels, placeholders, validation messages, date formatting, and number formatting in the product layer.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Gap promotion policy
|
|
2
|
+
|
|
3
|
+
Every visual-QA background records missing components, assets, composition patterns, and tokens as structured gap metadata. The promotion report groups recurring needs across backgrounds and flags any normalized need seen in three or more distinct scenarios.
|
|
4
|
+
|
|
5
|
+
Run:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm --prefix playground run report:gap-promotions
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
The generated [Gap Promotion Report](./gap-promotion-report.md) is checked during background tests. Common needs are classified automatically; add `promotionKey` to a gap when two differently worded gaps represent the same reusable need or when a heuristic would group unrelated needs.
|
|
12
|
+
|
|
13
|
+
A candidate does not automatically become a component. Promotion requires:
|
|
14
|
+
|
|
15
|
+
1. Evidence from at least three backgrounds.
|
|
16
|
+
2. A smallest-stable API and explicit fit/avoid guidance.
|
|
17
|
+
3. Semantic density, state, accessibility, and RTL contracts where applicable.
|
|
18
|
+
4. Migration of at least one real background away from its local fallback.
|
|
19
|
+
5. Behavior and visual tests before resolved gap metadata is removed.
|
|
20
|
+
|
|
21
|
+
The first application of this policy produced `SegmentedControl`, migrated the CRM Intelligence background to the shared primitive, and removed its former local segmented-control gap.
|