@felloinnovations/brand-kit 0.4.0 → 0.5.1
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/AGENTS.md +198 -24
- package/CHANGELOG.md +221 -0
- package/README.md +38 -9
- package/design-system/01-how-claude-decides.md +26 -17
- package/design-system/02-principles.md +11 -6
- package/design-system/03-colour.md +135 -47
- package/design-system/04-type.md +45 -23
- package/design-system/05-space-and-layout.md +175 -52
- package/design-system/06-sizing-profiles.md +4 -4
- package/design-system/07-scrolling.md +66 -20
- package/design-system/08-choosing-components.md +50 -22
- package/design-system/09-charts.md +71 -28
- package/design-system/10-patterns.md +33 -10
- package/design-system/11-page-recipes.md +110 -23
- package/design-system/12-content.md +2 -1
- package/design-system/13-motion.md +330 -47
- package/design-system/14-accessibility.md +47 -24
- package/design-system/15-ai-experiences.md +11 -6
- package/design-system/16-creativity.md +1 -1
- package/design-system/17-decisions.md +367 -1
- package/design-system/18-checklist.md +79 -16
- package/design-system/19-public-pages.md +6 -4
- package/design-system/20-palettes.md +275 -0
- package/design-system/README.md +30 -17
- package/design-system/components/ActionList/README.md +96 -10
- package/design-system/components/ActionList/preview.html +52 -7
- package/design-system/components/ActionList/style.css +64 -0
- package/design-system/components/ActivityGrid/README.md +38 -2
- package/design-system/components/ActivityGrid/preview.html +1 -1
- package/design-system/components/ActivityGrid/style.css +35 -0
- package/design-system/components/AppShell/README.md +205 -75
- package/design-system/components/AppShell/preview.html +339 -58
- package/design-system/components/AppShell/style.css +154 -0
- package/design-system/components/Avatar/README.md +37 -10
- package/design-system/components/Avatar/preview.html +13 -4
- package/design-system/components/Avatar/style.css +14 -0
- package/design-system/components/Badge/README.md +41 -19
- package/design-system/components/Badge/preview.html +13 -10
- package/design-system/components/Badge/style.css +23 -0
- package/design-system/components/Banner/README.md +30 -9
- package/design-system/components/Banner/preview.html +1 -1
- package/design-system/components/Banner/style.css +19 -0
- package/design-system/components/Breadcrumb/README.md +58 -46
- package/design-system/components/Breadcrumb/preview.html +16 -16
- package/design-system/components/Breadcrumb/style.css +17 -0
- package/design-system/components/Button/README.md +113 -55
- package/design-system/components/Button/preview.html +98 -25
- package/design-system/components/Button/style.css +86 -0
- package/design-system/components/Card/README.md +158 -49
- package/design-system/components/Card/preview.html +141 -19
- package/design-system/components/Card/style.css +115 -0
- package/design-system/components/CardBoard/README.md +58 -37
- package/design-system/components/CardBoard/preview.html +26 -29
- package/design-system/components/ChatCard/README.md +115 -29
- package/design-system/components/ChatCard/preview.html +149 -32
- package/design-system/components/ChatCard/style.css +49 -0
- package/design-system/components/ChatShell/README.md +116 -0
- package/design-system/components/ChatShell/preview.html +201 -0
- package/design-system/components/ChatShell/style.css +86 -0
- package/design-system/components/ChatTurn/README.md +78 -35
- package/design-system/components/ChatTurn/preview.html +60 -28
- package/design-system/components/ChatTurn/style.css +50 -0
- package/design-system/components/CheckRow/README.md +141 -0
- package/design-system/components/CheckRow/preview.html +140 -0
- package/design-system/components/CheckRow/style.css +88 -0
- package/design-system/components/Checkbox/README.md +58 -22
- package/design-system/components/Checkbox/preview.html +112 -50
- package/design-system/components/Checkbox/style.css +45 -0
- package/design-system/components/Chip/README.md +78 -47
- package/design-system/components/Chip/preview.html +29 -4
- package/design-system/components/Chip/style.css +17 -0
- package/design-system/components/Combobox/README.md +44 -11
- package/design-system/components/Combobox/preview.html +35 -12
- package/design-system/components/Combobox/style.css +54 -0
- package/design-system/components/Composer/README.md +137 -35
- package/design-system/components/Composer/preview.html +115 -40
- package/design-system/components/Composer/style.css +81 -0
- package/design-system/components/ConfirmDialog/README.md +73 -52
- package/design-system/components/ConfirmDialog/preview.html +70 -26
- package/design-system/components/ConfirmDialog/style.css +5 -0
- package/design-system/components/Cover/preview.html +3 -3
- package/design-system/components/Cover/style.css +19 -0
- package/design-system/components/DateInput/README.md +77 -12
- package/design-system/components/DateInput/preview.html +27 -12
- package/design-system/components/DateInput/style.css +38 -0
- package/design-system/components/Dialog/README.md +112 -44
- package/design-system/components/Dialog/preview.html +141 -18
- package/design-system/components/Dialog/style.css +74 -0
- package/design-system/components/EmptyState/README.md +42 -12
- package/design-system/components/EmptyState/preview.html +11 -11
- package/design-system/components/EmptyState/style.css +9 -0
- package/design-system/components/EntryShell/README.md +73 -48
- package/design-system/components/EntryShell/preview.html +60 -27
- package/design-system/components/EntryShell/style.css +19 -0
- package/design-system/components/FeatureGrid/README.md +61 -39
- package/design-system/components/FeatureGrid/preview.html +2 -2
- package/design-system/components/FeatureGrid/style.css +20 -0
- package/design-system/components/FileUpload/README.md +33 -3
- package/design-system/components/FileUpload/preview.html +18 -4
- package/design-system/components/FileUpload/style.css +23 -0
- package/design-system/components/FilterBar/README.md +114 -0
- package/design-system/components/FilterBar/preview.html +82 -0
- package/design-system/components/FilterBar/style.css +22 -0
- package/design-system/components/Fold/README.md +84 -26
- package/design-system/components/Fold/preview.html +77 -34
- package/design-system/components/Fold/style.css +48 -0
- package/design-system/components/Footer/README.md +62 -39
- package/design-system/components/Footer/preview.html +5 -5
- package/design-system/components/Footer/style.css +30 -0
- package/design-system/components/FunnelBars/README.md +24 -3
- package/design-system/components/FunnelBars/preview.html +5 -5
- package/design-system/components/FunnelBars/style.css +13 -0
- package/design-system/components/GoalBars/README.md +54 -10
- package/design-system/components/GoalBars/preview.html +69 -28
- package/design-system/components/GoalBars/style.css +51 -0
- package/design-system/components/GoalTicks/README.md +74 -58
- package/design-system/components/GoalTicks/preview.html +41 -118
- package/design-system/components/GoalTicks/style.css +37 -0
- package/design-system/components/GoalTubes/README.md +29 -3
- package/design-system/components/GoalTubes/preview.html +6 -6
- package/design-system/components/GoalTubes/style.css +23 -0
- package/design-system/components/Heatmap/README.md +133 -0
- package/design-system/components/Heatmap/preview.html +168 -0
- package/design-system/components/Heatmap/style.css +119 -0
- package/design-system/components/Hero/README.md +58 -40
- package/design-system/components/Hero/preview.html +1 -1
- package/design-system/components/Hero/style.css +19 -0
- package/design-system/components/HoverCard/README.md +114 -0
- package/design-system/components/HoverCard/preview.html +107 -0
- package/design-system/components/HoverCard/style.css +59 -0
- package/design-system/components/IconButton/README.md +69 -38
- package/design-system/components/IconButton/preview.html +77 -43
- package/design-system/components/IconButton/style.css +45 -0
- package/design-system/components/Input/README.md +36 -11
- package/design-system/components/Input/preview.html +1 -1
- package/design-system/components/Input/style.css +23 -0
- package/design-system/components/KanbanBoard/README.md +93 -45
- package/design-system/components/KanbanBoard/preview.html +159 -43
- package/design-system/components/KanbanBoard/style.css +53 -0
- package/design-system/components/Kbd/README.md +25 -9
- package/design-system/components/Kbd/preview.html +6 -2
- package/design-system/components/Kbd/style.css +9 -0
- package/design-system/components/KitButton/README.md +81 -47
- package/design-system/components/KitButton/preview.html +35 -13
- package/design-system/components/KitButton/style.css +46 -0
- package/design-system/components/KitCard/README.md +75 -44
- package/design-system/components/KitCard/preview.html +18 -10
- package/design-system/components/KitCard/style.css +15 -0
- package/design-system/components/KitInput/README.md +54 -39
- package/design-system/components/KitInput/preview.html +7 -7
- package/design-system/components/KitInput/style.css +23 -0
- package/design-system/components/Leaderboard/README.md +76 -49
- package/design-system/components/Leaderboard/preview.html +61 -26
- package/design-system/components/Leaderboard/style.css +44 -0
- package/design-system/components/ListDetail/README.md +222 -0
- package/design-system/components/ListDetail/preview.html +213 -0
- package/design-system/components/ListDetail/style.css +148 -0
- package/design-system/components/LoadBar/README.md +79 -0
- package/design-system/components/LoadBar/preview.html +40 -0
- package/design-system/components/LoadBar/style.css +17 -0
- package/design-system/components/MarketingNav/README.md +76 -42
- package/design-system/components/MarketingNav/preview.html +37 -8
- package/design-system/components/MarketingNav/style.css +45 -0
- package/design-system/components/Matrix/README.md +129 -0
- package/design-system/components/Matrix/preview.html +99 -0
- package/design-system/components/Matrix/style.css +84 -0
- package/design-system/components/Menu/README.md +117 -41
- package/design-system/components/Menu/preview.html +85 -23
- package/design-system/components/Menu/style.css +61 -0
- package/design-system/components/Meter/README.md +39 -4
- package/design-system/components/Meter/preview.html +18 -1
- package/design-system/components/Meter/style.css +23 -0
- package/design-system/components/MetricTile/README.md +237 -0
- package/design-system/components/MetricTile/preview.html +241 -0
- package/design-system/components/MetricTile/style.css +129 -0
- package/design-system/components/Morph/README.md +106 -0
- package/design-system/components/Morph/preview.html +103 -0
- package/design-system/components/Morph/style.css +31 -0
- package/design-system/components/Motion/README.md +164 -0
- package/design-system/components/Motion/preview.html +2537 -0
- package/design-system/components/NumberInput/README.md +27 -8
- package/design-system/components/NumberInput/preview.html +21 -5
- package/design-system/components/NumberInput/style.css +34 -0
- package/design-system/components/PaceBar/README.md +75 -0
- package/design-system/components/PaceBar/preview.html +67 -0
- package/design-system/components/PaceBar/style.css +25 -0
- package/design-system/components/Page/README.md +57 -18
- package/design-system/components/Page/preview.html +15 -17
- package/design-system/components/Page/style.css +7 -0
- package/design-system/components/PageBar/README.md +90 -34
- package/design-system/components/PageBar/preview.html +60 -19
- package/design-system/components/PageBar/style.css +35 -0
- package/design-system/components/PageHero/README.md +87 -51
- package/design-system/components/PageHero/preview.html +35 -6
- package/design-system/components/PageHero/style.css +31 -0
- package/design-system/components/Pagination/README.md +70 -49
- package/design-system/components/Pagination/preview.html +24 -15
- package/design-system/components/Pagination/style.css +12 -0
- package/design-system/components/Panel/README.md +109 -51
- package/design-system/components/Panel/preview.html +118 -20
- package/design-system/components/Panel/style.css +51 -0
- package/design-system/components/PasswordInput/README.md +50 -18
- package/design-system/components/PasswordInput/preview.html +71 -21
- package/design-system/components/PasswordInput/style.css +31 -0
- package/design-system/components/Plate/README.md +75 -17
- package/design-system/components/Plate/preview.html +40 -7
- package/design-system/components/Plate/style.css +37 -0
- package/design-system/components/Popover/README.md +70 -49
- package/design-system/components/Popover/preview.html +44 -22
- package/design-system/components/Popover/style.css +41 -0
- package/design-system/components/PricingTable/README.md +69 -49
- package/design-system/components/PricingTable/preview.html +21 -21
- package/design-system/components/PricingTable/style.css +21 -0
- package/design-system/components/ProgressPetals/README.md +31 -3
- package/design-system/components/ProgressPetals/preview.html +14 -15
- package/design-system/components/ProgressPetals/style.css +27 -0
- package/design-system/components/README.md +151 -0
- package/design-system/components/Radio/README.md +40 -17
- package/design-system/components/Radio/preview.html +16 -1
- package/design-system/components/Radio/style.css +21 -0
- package/design-system/components/RankBar/README.md +29 -2
- package/design-system/components/RankBar/preview.html +14 -12
- package/design-system/components/RankBar/style.css +18 -0
- package/design-system/components/Ring/README.md +61 -11
- package/design-system/components/Ring/preview.html +55 -10
- package/design-system/components/Ring/style.css +49 -0
- package/design-system/components/ScoreHero/README.md +91 -0
- package/design-system/components/ScoreHero/preview.html +104 -0
- package/design-system/components/ScoreHero/style.css +32 -0
- package/design-system/components/Section/README.md +72 -33
- package/design-system/components/Section/preview.html +46 -16
- package/design-system/components/Section/style.css +18 -0
- package/design-system/components/Segmented/README.md +100 -55
- package/design-system/components/Segmented/preview.html +107 -26
- package/design-system/components/Segmented/style.css +94 -0
- package/design-system/components/SegmentedProgress/README.md +64 -0
- package/design-system/components/SegmentedProgress/preview.html +69 -0
- package/design-system/components/SegmentedProgress/style.css +11 -0
- package/design-system/components/Select/README.md +47 -12
- package/design-system/components/Select/preview.html +28 -2
- package/design-system/components/Select/style.css +22 -0
- package/design-system/components/ShareBar/README.md +69 -0
- package/design-system/components/ShareBar/preview.html +72 -0
- package/design-system/components/ShareBar/style.css +25 -0
- package/design-system/components/SideList/README.md +147 -0
- package/design-system/components/SideList/preview.html +139 -0
- package/design-system/components/SideList/style.css +94 -0
- package/design-system/components/Skeleton/README.md +53 -16
- package/design-system/components/Skeleton/preview.html +35 -23
- package/design-system/components/Skeleton/style.css +17 -0
- package/design-system/components/Slider/README.md +95 -0
- package/design-system/components/Slider/preview.html +49 -0
- package/design-system/components/Slider/style.css +13 -0
- package/design-system/components/Split/README.md +112 -0
- package/design-system/components/Split/preview.html +105 -0
- package/design-system/components/Split/style.css +30 -0
- package/design-system/components/Starter/README.md +21 -9
- package/design-system/components/Starter/preview.html +5 -5
- package/design-system/components/Stat/README.md +64 -43
- package/design-system/components/Stat/preview.html +3 -3
- package/design-system/components/Stat/style.css +15 -0
- package/design-system/components/StatTiles/README.md +88 -44
- package/design-system/components/StatTiles/preview.html +142 -71
- package/design-system/components/StatTiles/style.css +64 -0
- package/design-system/components/StatusLine/README.md +85 -0
- package/design-system/components/StatusLine/preview.html +49 -0
- package/design-system/components/StatusLine/style.css +14 -0
- package/design-system/components/StatusScreen/README.md +49 -35
- package/design-system/components/StatusScreen/preview.html +20 -5
- package/design-system/components/StatusScreen/style.css +9 -0
- package/design-system/components/StepLine/README.md +97 -0
- package/design-system/components/StepLine/preview.html +108 -0
- package/design-system/components/StepLine/style.css +62 -0
- package/design-system/components/Stepper/README.md +35 -13
- package/design-system/components/Stepper/style.css +13 -0
- package/design-system/components/StreakCalendar/README.md +22 -1
- package/design-system/components/StreakCalendar/preview.html +10 -10
- package/design-system/components/StreakCalendar/style.css +12 -0
- package/design-system/components/SuggestionChip/README.md +87 -0
- package/design-system/components/SuggestionChip/preview.html +42 -0
- package/design-system/components/SuggestionChip/style.css +20 -0
- package/design-system/components/Switch/README.md +44 -24
- package/design-system/components/Switch/preview.html +23 -8
- package/design-system/components/Switch/style.css +31 -0
- package/design-system/components/Table/README.md +129 -58
- package/design-system/components/Table/preview.html +106 -72
- package/design-system/components/Table/style.css +104 -0
- package/design-system/components/Tabs/README.md +71 -46
- package/design-system/components/Tabs/preview.html +56 -24
- package/design-system/components/Tabs/style.css +44 -0
- package/design-system/components/Testimonial/README.md +48 -32
- package/design-system/components/Testimonial/preview.html +14 -14
- package/design-system/components/Testimonial/style.css +12 -0
- package/design-system/components/TextArea/README.md +27 -11
- package/design-system/components/TextArea/preview.html +8 -2
- package/design-system/components/TextArea/style.css +12 -0
- package/design-system/components/ThemeSwitch/README.md +116 -0
- package/design-system/components/ThemeSwitch/preview.html +57 -0
- package/design-system/components/ThemeSwitch/style.css +6 -0
- package/design-system/components/TickRow/README.md +52 -36
- package/design-system/components/TickRow/preview.html +64 -41
- package/design-system/components/TickRow/style.css +23 -0
- package/design-system/components/TickStrip/README.md +95 -0
- package/design-system/components/TickStrip/preview.html +88 -0
- package/design-system/components/TickStrip/style.css +42 -0
- package/design-system/components/Tile/README.md +79 -18
- package/design-system/components/Tile/preview.html +91 -40
- package/design-system/components/Tile/style.css +36 -0
- package/design-system/components/Timeline/README.md +68 -48
- package/design-system/components/Timeline/preview.html +27 -15
- package/design-system/components/Timeline/style.css +25 -0
- package/design-system/components/Toast/README.md +70 -38
- package/design-system/components/Toast/preview.html +43 -8
- package/design-system/components/Toast/style.css +25 -0
- package/design-system/components/Tooltip/README.md +93 -35
- package/design-system/components/Tooltip/preview.html +69 -15
- package/design-system/components/Tooltip/style.css +78 -0
- package/design-system/components/TopBar/README.md +67 -53
- package/design-system/components/TopBar/preview.html +14 -27
- package/design-system/components/TopBar/style.css +35 -0
- package/design-system/components/TopicRail/README.md +108 -0
- package/design-system/components/TopicRail/preview.html +58 -0
- package/design-system/components/TopicRail/style.css +48 -0
- package/design-system/components/TrendBars/README.md +52 -14
- package/design-system/components/TrendBars/preview.html +65 -32
- package/design-system/components/TrendBars/style.css +25 -0
- package/design-system/components/TrendLine/README.md +164 -0
- package/design-system/components/TrendLine/preview.html +373 -0
- package/design-system/components/TrendLine/style.css +155 -0
- package/design-system/components/Well/README.md +64 -22
- package/design-system/components/Well/preview.html +14 -14
- package/design-system/components/Well/style.css +22 -0
- package/design-system/components/_house.css +324 -0
- package/design-system/components/bundle.css +4086 -744
- package/design-system/tokens.json +1310 -124
- package/dist/fello-core.css +2 -2
- package/dist/fello.css +6 -1369
- package/dist/fello.scoped.css +7 -0
- package/dist/index.d.ts +109 -10
- package/dist/index.js +781 -96
- package/dist/palettes.d.ts +464 -0
- package/dist/palettes.js +497 -0
- package/dist/scoped.d.ts +3 -0
- package/dist/scoped.js +16 -0
- package/dist/toast.d.ts +14 -0
- package/dist/toast.js +33 -29
- package/dist/tokens.d.ts +1686 -62
- package/dist/tokens.js +1668 -61
- package/package.json +20 -4
- package/scripts/check-palette.mjs +295 -0
- package/scripts/token-model.mjs +552 -0
- package/tokens/_dark.css +173 -0
- package/tokens/_palettes.css +46 -0
- package/tokens/_product.css +266 -53
- package/tokens/_source.hubl.css +39 -19
- package/tokens/design-tokens.json +319 -0
- package/tokens/palettes.ts +504 -0
- package/tokens/shadcn-compat.css +19 -19
- package/tokens/shadcn-compat.hsl.css +76 -0
- package/tokens/tokens.css +1287 -62
- package/tokens/tokens.md +587 -61
- package/tokens/tokens.root.css +1293 -62
- package/tokens/tokens.ts +1677 -64
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
|
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
5
5
|
import { ClassValue } from 'clsx';
|
|
6
|
+
export { ContractToken, PaletteName, contract, palettes } from './palettes.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Figma `Marketing - Design System 3.0` page 🔘 Button (722:4), as resolved in
|
|
@@ -13,6 +14,15 @@ import { ClassValue } from 'clsx';
|
|
|
13
14
|
* The Primary theme's 3px bottom border is not decoration. It is the lift, and
|
|
14
15
|
* :active collapses it so the button physically presses. Drop it and the CTA
|
|
15
16
|
* stops looking like Fello's.
|
|
17
|
+
*
|
|
18
|
+
* In step with `.ws-kit-button` (design-system/components/KitButton/style.css):
|
|
19
|
+
* the heights are floors, so a label too long for its column wraps to a second,
|
|
20
|
+
* balanced line instead of running out of the button; focus is the house ring
|
|
21
|
+
* (2px navy, 2px out); on touch, medium and small take a 44px hit area.
|
|
22
|
+
*
|
|
23
|
+
* Primary's words are white on the salmon gradient, as fello.ai draws them
|
|
24
|
+
* (Amit, 4 Nov 2026). That is 2.44 to 2.65:1, the kit's one logged exception
|
|
25
|
+
* to D2: the act is large, semibold and short. Literal in every theme.
|
|
16
26
|
*/
|
|
17
27
|
declare const buttonVariants: (props?: ({
|
|
18
28
|
variant?: "primary" | "secondary" | "navy" | "tertiary" | "clean" | null | undefined;
|
|
@@ -36,6 +46,11 @@ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAtt
|
|
|
36
46
|
* colours are fills: salmon on its own 12% tint is 2.39:1 and cannot carry
|
|
37
47
|
* words. The *-strong tokens are those hues darkened until they clear 4.5:1,
|
|
38
48
|
* which is why a salmon badge's label is not salmon.
|
|
49
|
+
*
|
|
50
|
+
* In step with `.ws-kit-badge` (design-system/components/Badge/style.css): the
|
|
51
|
+
* neutral ground is the track and navy words are the heading word, so both
|
|
52
|
+
* follow the theme. Its box is the CSS one too: 24px tall (`--space-lg`) with
|
|
53
|
+
* 16px lines, and the outline drawn inside, so every tone is the same size.
|
|
39
54
|
*/
|
|
40
55
|
declare const badgeVariants: (props?: ({
|
|
41
56
|
tone?: "navy" | "neutral" | "brand" | "success" | "error" | "outline" | null | undefined;
|
|
@@ -56,11 +71,19 @@ declare const Badge: react.ForwardRefExoticComponent<BadgeProps & react.RefAttri
|
|
|
56
71
|
* and the hairline border already does the separating work. `surface="tinted"`
|
|
57
72
|
* is there for the cases that genuinely need to recede.
|
|
58
73
|
*
|
|
59
|
-
* No shadow
|
|
60
|
-
* raised has no signal left. `interactive`
|
|
61
|
-
*
|
|
74
|
+
* No shadow, at rest or on hover. Elevation is a signal, and a page where every
|
|
75
|
+
* card is raised has no signal left. `interactive` tints the card on hover (the
|
|
76
|
+
* nav's hover wash over its own surface), a colour change rather than a lift
|
|
77
|
+
* (D7), which also shows on the dark ground where a shadow barely did.
|
|
62
78
|
*
|
|
63
79
|
* Parts mirror shadcn's Card, so a call site migrates by changing the import.
|
|
80
|
+
*
|
|
81
|
+
* In step with `.ws-kit-card` (design-system/components/KitCard/style.css):
|
|
82
|
+
* the surface follows the theme (`--color-surface`), tinted is the sunk step,
|
|
83
|
+
* and a long title breaks rather than running out of the card. An interactive
|
|
84
|
+
* card is the link itself, so it takes focus and reads as one target:
|
|
85
|
+
* `<a href="/x" className={cardVariants({ interactive: true })}>`. A `<Card
|
|
86
|
+
* interactive>` div with an onClick is not reachable by keyboard.
|
|
64
87
|
*/
|
|
65
88
|
declare const cardVariants: (props?: ({
|
|
66
89
|
surface?: "white" | "tinted" | "transparent" | null | undefined;
|
|
@@ -85,7 +108,15 @@ declare const CardFooter: react.ForwardRefExoticComponent<react.HTMLAttributes<H
|
|
|
85
108
|
* which keeps the markup readable and needs no JavaScript.
|
|
86
109
|
*
|
|
87
110
|
* The label is part of the control, so the tap target is the row rather than
|
|
88
|
-
* an 18px square. That matters on phones, which is most of this audience
|
|
111
|
+
* an 18px square. That matters on phones, which is most of this audience: on
|
|
112
|
+
* a coarse pointer the label's hit area covers the row, box included, 44px
|
|
113
|
+
* tall (the public floor), like Button's medium and small.
|
|
114
|
+
*
|
|
115
|
+
* In step with `.ws-check` (design-system/components/Checkbox/style.css),
|
|
116
|
+
* Seth's action box: 18px, 4px corners, a 1.5px navy edge on the page cream at
|
|
117
|
+
* rest (12:1, so the box passes the 3:1 a control asks), a navy wash under a
|
|
118
|
+
* pointer, navy when chosen with a 12px tick in the act's word. An invalid,
|
|
119
|
+
* empty box takes the needs-you edge. Focus is the house ring, 2px navy, 2px out.
|
|
89
120
|
*/
|
|
90
121
|
interface CheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> {
|
|
91
122
|
label?: React.ReactNode;
|
|
@@ -96,8 +127,14 @@ declare const Checkbox: react.ForwardRefExoticComponent<CheckboxProps & react.Re
|
|
|
96
127
|
|
|
97
128
|
/**
|
|
98
129
|
* Form Input, per docs-cache/design-system/cards-and-components.md §3:
|
|
99
|
-
* 40px tall, 6px radius, 1px Gray Stroke,
|
|
100
|
-
*
|
|
130
|
+
* 40px tall, 6px radius, 1px Gray Stroke, 12px sides, 14px words,
|
|
131
|
+
* the placeholder word, a salmon border on error.
|
|
132
|
+
*
|
|
133
|
+
* In step with `.ws-kit-input` (design-system/components/KitInput/style.css):
|
|
134
|
+
* the field ground and words follow the theme (`--ws-field`, `--ws-field-ink`);
|
|
135
|
+
* focus is the house ring (2px navy, 2px out), not the salmon halo that made a
|
|
136
|
+
* field being typed in look refused; on touch the field is 44px with 16px words,
|
|
137
|
+
* so a phone does not zoom the page when it takes focus.
|
|
101
138
|
*
|
|
102
139
|
* `error` is a string, not a boolean, because an error state with no message
|
|
103
140
|
* is not an accessible error state. Passing one wires aria-describedby and
|
|
@@ -140,6 +177,16 @@ declare const RadioGroup: react.ForwardRefExoticComponent<RadioGroupProps & reac
|
|
|
140
177
|
*
|
|
141
178
|
* Two looks. `underline` is the marketing-page default. `pill` is for dense
|
|
142
179
|
* internal tools, where a segmented control reads better than a rule.
|
|
180
|
+
*
|
|
181
|
+
* In step with `.ws-tabs` (design-system/components/Tabs/style.css): the
|
|
182
|
+
* current tab is navy words on a 2px navy rule (the old salmon rule was a
|
|
183
|
+
* 2.6:1 state mark), the others the body word. A row wider than its column
|
|
184
|
+
* (underline) scrolls sideways instead of pushing the page past a phone's
|
|
185
|
+
* edge, so the focus ring is drawn inside the tab (D8, a clipped container),
|
|
186
|
+
* and a tab never shrinks. `pill` does not scroll; keep a pill set to what
|
|
187
|
+
* fits. Its chosen tab is the navy thumb, as `Segmented` draws it, so it shows
|
|
188
|
+
* in dark as well, and its focus ring stands 2px off the thumb. On touch a tab is 44px tall, the public page's floor, like
|
|
189
|
+
* Button and Input. `pill` hugs its tabs rather than spanning the column.
|
|
143
190
|
*/
|
|
144
191
|
type Variant = 'underline' | 'pill';
|
|
145
192
|
interface TabsProps extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Root> {
|
|
@@ -150,12 +197,17 @@ declare const TabsList: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsL
|
|
|
150
197
|
declare const TabsTrigger: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsTriggerProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
|
|
151
198
|
declare const TabsContent: react.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
|
|
152
199
|
|
|
153
|
-
/** 12px / 500
|
|
200
|
+
/** 12px / 500, per the Figma input annotation block, in the body word (Gray 7 in light; it follows the theme). */
|
|
154
201
|
declare const Label: react.ForwardRefExoticComponent<react.LabelHTMLAttributes<HTMLLabelElement> & react.RefAttributes<HTMLLabelElement>>;
|
|
155
202
|
|
|
156
203
|
/**
|
|
157
|
-
* Loading placeholder
|
|
158
|
-
*
|
|
204
|
+
* Loading placeholder: a ghost the shape of what is coming, under North's
|
|
205
|
+
* shimmer in one quiet grey (0.5.1), never a spinner. The ghost is the
|
|
206
|
+
* `--ws-shimmer` gradient, so it reads as absent rather than as content in
|
|
207
|
+
* either theme. The sweep runs where fello.css is on the page (`ws-shimmer`,
|
|
208
|
+
* the house class) and stops under prefers-reduced-motion; with tokens.css
|
|
209
|
+
* alone it is the still ghost. 4px corners, as `.ws-skeleton`
|
|
210
|
+
* (design-system/components/Skeleton/style.css).
|
|
159
211
|
*/
|
|
160
212
|
declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): react.JSX.Element;
|
|
161
213
|
|
|
@@ -171,6 +223,13 @@ declare function Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivE
|
|
|
171
223
|
*
|
|
172
224
|
* A zero is a claim about the business that may be false; an X reads as
|
|
173
225
|
* "this broke"; a dash reads as "nothing here yet", which is the only true one.
|
|
226
|
+
*
|
|
227
|
+
* In step with `.ws-stat` (design-system/components/Stat/style.css): the figure
|
|
228
|
+
* is the kit's 28/32 row step, the label 12px (the public web's smallest label),
|
|
229
|
+
* `brand` takes salmon's word step (salmon itself is 2.7:1, under the 3:1 a
|
|
230
|
+
* 28px figure needs), and pending is the shimmer ghost at the figure's height,
|
|
231
|
+
* so nothing shifts when the number lands. The sweep runs where fello.css is on
|
|
232
|
+
* the page (`ws-shimmer`); with tokens.css alone it is the still ghost.
|
|
174
233
|
*/
|
|
175
234
|
interface StatProps {
|
|
176
235
|
label: string;
|
|
@@ -186,4 +245,44 @@ declare function Stat({ label, value, note, tone, pending, className }: StatProp
|
|
|
186
245
|
/** Merge class names, last Tailwind utility wins. */
|
|
187
246
|
declare const cn: (...inputs: ClassValue[]) => string;
|
|
188
247
|
|
|
189
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Seth's motion where CSS cannot start it alone (D7, design-system/components/Morph and Composer). No framework, no
|
|
250
|
+
* per-frame script: each helper hands the move to the browser and the kit's CSS.
|
|
251
|
+
*/
|
|
252
|
+
/** Which of Seth's moves a morph is (Morph/README.md): `full` a card to full screen and back (.45 s, the morph curve),
|
|
253
|
+
* `grow` a card growing open (.55 s, grow), `shrink` it closing back into place (.4 s, grow), `shift` the chat moving
|
|
254
|
+
* between its modes (.55 s, shift). */
|
|
255
|
+
type MorphKind = 'full' | 'grow' | 'shrink' | 'shift';
|
|
256
|
+
interface MorphOptions {
|
|
257
|
+
/** The move, by Seth's name for it. Default `full`. */
|
|
258
|
+
as?: MorphKind;
|
|
259
|
+
/** The element that changes place or size, still in the page after the update (the same node). morph() names it
|
|
260
|
+
* `ws-morph` for the move and copies its ground and corners to the frame. Leave it out when the page names its own
|
|
261
|
+
* element (`view-transition-name: ws-morph`). For `full` it is required: it is the element lifted to the top layer. */
|
|
262
|
+
el?: HTMLElement | null;
|
|
263
|
+
/** `full` only: the update that brings the element back, which Escape runs (as a morph). Leave it out when `update`
|
|
264
|
+
* is a toggle (it flips the full state both ways): Escape then runs `update` again. */
|
|
265
|
+
close?: () => void | Promise<void>;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Runs `update` (the change of class, mode or place) as a same-document view transition, so the element goes to its new
|
|
269
|
+
* place as itself on Seth's curve for `as`. Without view transitions, or under reduced motion, it runs `update` at once.
|
|
270
|
+
* Resolves when the move has finished. In React, flush the state inside it: `morph(() => flushSync(() => setFull(true)), { el })`.
|
|
271
|
+
*
|
|
272
|
+
* `full` also lifts `el` into the top layer while its update leaves it `position: fixed`, and brings it back down when
|
|
273
|
+
* an update leaves it unfixed (see place()): the full screen covers the window whatever the element sits inside. That
|
|
274
|
+
* happens with or without motion. Escape runs `close` (or `update` again, for a toggle); give the full state a Back
|
|
275
|
+
* button that calls morph() the same way.
|
|
276
|
+
*/
|
|
277
|
+
declare function morph(update: () => void | Promise<void>, { as, el, close }?: MorphOptions): Promise<void>;
|
|
278
|
+
/**
|
|
279
|
+
* North's placeholder roll ("Placeholder roll": every 3.4 s the next question rolls up out of a blur on the roll spring).
|
|
280
|
+
* Moves `data-on` to the next line of a `ws-composer__roll` every `every` ms; the CSS does the motion. Returns a stop
|
|
281
|
+
* (a React effect's cleanup: `useEffect(() => rollPlaceholder(ref.current!), [])`). Under reduced motion it holds the
|
|
282
|
+
* first line.
|
|
283
|
+
*/
|
|
284
|
+
declare function rollPlaceholder(roll: Element, every?: number): () => void;
|
|
285
|
+
|
|
286
|
+
declare function reorder(update: () => unknown, within?: ParentNode, rows?: string): Promise<void>;
|
|
287
|
+
|
|
288
|
+
export { Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, Input, type InputProps, Label, type MorphKind, type MorphOptions, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Skeleton, Stat, type StatProps, Tabs, TabsContent, TabsList, type TabsProps, TabsTrigger, badgeVariants, buttonVariants, cardVariants, cn, morph, reorder, rollPlaceholder };
|