@oxyhq/bloom 0.19.1 → 0.20.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/lib/commonjs/benefit-list/index.js +119 -0
- package/lib/commonjs/benefit-list/index.js.map +1 -0
- package/lib/commonjs/benefit-list/types.js +6 -0
- package/lib/commonjs/benefit-list/types.js.map +1 -0
- package/lib/commonjs/connection-dots/ConnectionDots.js +112 -0
- package/lib/commonjs/connection-dots/ConnectionDots.js.map +1 -0
- package/lib/commonjs/connection-dots/ConnectionDots.web.js +116 -0
- package/lib/commonjs/connection-dots/ConnectionDots.web.js.map +1 -0
- package/lib/commonjs/connection-dots/ConnectionDotsBase.js +55 -0
- package/lib/commonjs/connection-dots/ConnectionDotsBase.js.map +1 -0
- package/lib/commonjs/connection-dots/index.js +13 -0
- package/lib/commonjs/connection-dots/index.js.map +1 -0
- package/lib/commonjs/connection-dots/index.web.js +13 -0
- package/lib/commonjs/connection-dots/index.web.js.map +1 -0
- package/lib/commonjs/connection-dots/types.js +6 -0
- package/lib/commonjs/connection-dots/types.js.map +1 -0
- package/lib/commonjs/design-tokens/color-roles.js +112 -0
- package/lib/commonjs/design-tokens/color-roles.js.map +1 -0
- package/lib/commonjs/design-tokens/index.js +89 -0
- package/lib/commonjs/design-tokens/index.js.map +1 -0
- package/lib/commonjs/design-tokens/scales.js +168 -0
- package/lib/commonjs/design-tokens/scales.js.map +1 -0
- package/lib/commonjs/design-tokens/shadows.js +48 -0
- package/lib/commonjs/design-tokens/shadows.js.map +1 -0
- package/lib/commonjs/design-tokens/shadows.native.js +53 -0
- package/lib/commonjs/design-tokens/shadows.native.js.map +1 -0
- package/lib/commonjs/design-tokens/tailwind-preset.js +139 -0
- package/lib/commonjs/design-tokens/tailwind-preset.js.map +1 -0
- package/lib/commonjs/design-tokens/theme-css.js +98 -0
- package/lib/commonjs/design-tokens/theme-css.js.map +1 -0
- package/lib/commonjs/index.js +208 -93
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +223 -108
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/text-field/index.js +156 -0
- package/lib/commonjs/text-field/index.js.map +1 -1
- package/lib/module/benefit-list/index.js +114 -0
- package/lib/module/benefit-list/index.js.map +1 -0
- package/lib/module/benefit-list/types.js +4 -0
- package/lib/module/benefit-list/types.js.map +1 -0
- package/lib/module/connection-dots/ConnectionDots.js +107 -0
- package/lib/module/connection-dots/ConnectionDots.js.map +1 -0
- package/lib/module/connection-dots/ConnectionDots.web.js +111 -0
- package/lib/module/connection-dots/ConnectionDots.web.js.map +1 -0
- package/lib/module/connection-dots/ConnectionDotsBase.js +50 -0
- package/lib/module/connection-dots/ConnectionDotsBase.js.map +1 -0
- package/lib/module/connection-dots/index.js +4 -0
- package/lib/module/connection-dots/index.js.map +1 -0
- package/lib/module/connection-dots/index.web.js +4 -0
- package/lib/module/connection-dots/index.web.js.map +1 -0
- package/lib/module/connection-dots/types.js +4 -0
- package/lib/module/connection-dots/types.js.map +1 -0
- package/lib/module/design-tokens/color-roles.js +108 -0
- package/lib/module/design-tokens/color-roles.js.map +1 -0
- package/lib/module/design-tokens/index.js +27 -0
- package/lib/module/design-tokens/index.js.map +1 -0
- package/lib/module/design-tokens/scales.js +164 -0
- package/lib/module/design-tokens/scales.js.map +1 -0
- package/lib/module/design-tokens/shadows.js +43 -0
- package/lib/module/design-tokens/shadows.js.map +1 -0
- package/lib/module/design-tokens/shadows.native.js +48 -0
- package/lib/module/design-tokens/shadows.native.js.map +1 -0
- package/lib/module/design-tokens/tailwind-preset.js +136 -0
- package/lib/module/design-tokens/tailwind-preset.js.map +1 -0
- package/lib/module/design-tokens/theme-css.js +94 -0
- package/lib/module/design-tokens/theme-css.js.map +1 -0
- package/lib/module/index.js +6 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +6 -1
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/text-field/index.js +158 -2
- package/lib/module/text-field/index.js.map +1 -1
- package/lib/typescript/commonjs/benefit-list/index.d.ts +6 -0
- package/lib/typescript/commonjs/benefit-list/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/benefit-list/types.d.ts +35 -0
- package/lib/typescript/commonjs/benefit-list/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/connection-dots/ConnectionDots.d.ts +4 -0
- package/lib/typescript/commonjs/connection-dots/ConnectionDots.d.ts.map +1 -0
- package/lib/typescript/commonjs/connection-dots/ConnectionDots.web.d.ts +14 -0
- package/lib/typescript/commonjs/connection-dots/ConnectionDots.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/connection-dots/ConnectionDotsBase.d.ts +18 -0
- package/lib/typescript/commonjs/connection-dots/ConnectionDotsBase.d.ts.map +1 -0
- package/lib/typescript/commonjs/connection-dots/index.d.ts +3 -0
- package/lib/typescript/commonjs/connection-dots/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/connection-dots/index.web.d.ts +3 -0
- package/lib/typescript/commonjs/connection-dots/index.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/connection-dots/types.d.ts +41 -0
- package/lib/typescript/commonjs/connection-dots/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/color-roles.d.ts +102 -0
- package/lib/typescript/commonjs/design-tokens/color-roles.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/index.d.ts +28 -0
- package/lib/typescript/commonjs/design-tokens/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/scales.d.ts +152 -0
- package/lib/typescript/commonjs/design-tokens/scales.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/shadows.d.ts +34 -0
- package/lib/typescript/commonjs/design-tokens/shadows.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/shadows.native.d.ts +19 -0
- package/lib/typescript/commonjs/design-tokens/shadows.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/tailwind-preset.d.ts +59 -0
- package/lib/typescript/commonjs/design-tokens/tailwind-preset.d.ts.map +1 -0
- package/lib/typescript/commonjs/design-tokens/theme-css.d.ts +39 -0
- package/lib/typescript/commonjs/design-tokens/theme-css.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +6 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +6 -0
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/text-field/index.d.ts +14 -1
- package/lib/typescript/commonjs/text-field/index.d.ts.map +1 -1
- package/lib/typescript/module/benefit-list/index.d.ts +6 -0
- package/lib/typescript/module/benefit-list/index.d.ts.map +1 -0
- package/lib/typescript/module/benefit-list/types.d.ts +35 -0
- package/lib/typescript/module/benefit-list/types.d.ts.map +1 -0
- package/lib/typescript/module/connection-dots/ConnectionDots.d.ts +4 -0
- package/lib/typescript/module/connection-dots/ConnectionDots.d.ts.map +1 -0
- package/lib/typescript/module/connection-dots/ConnectionDots.web.d.ts +14 -0
- package/lib/typescript/module/connection-dots/ConnectionDots.web.d.ts.map +1 -0
- package/lib/typescript/module/connection-dots/ConnectionDotsBase.d.ts +18 -0
- package/lib/typescript/module/connection-dots/ConnectionDotsBase.d.ts.map +1 -0
- package/lib/typescript/module/connection-dots/index.d.ts +3 -0
- package/lib/typescript/module/connection-dots/index.d.ts.map +1 -0
- package/lib/typescript/module/connection-dots/index.web.d.ts +3 -0
- package/lib/typescript/module/connection-dots/index.web.d.ts.map +1 -0
- package/lib/typescript/module/connection-dots/types.d.ts +41 -0
- package/lib/typescript/module/connection-dots/types.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/color-roles.d.ts +102 -0
- package/lib/typescript/module/design-tokens/color-roles.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/index.d.ts +28 -0
- package/lib/typescript/module/design-tokens/index.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/scales.d.ts +152 -0
- package/lib/typescript/module/design-tokens/scales.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/shadows.d.ts +34 -0
- package/lib/typescript/module/design-tokens/shadows.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/shadows.native.d.ts +19 -0
- package/lib/typescript/module/design-tokens/shadows.native.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/tailwind-preset.d.ts +59 -0
- package/lib/typescript/module/design-tokens/tailwind-preset.d.ts.map +1 -0
- package/lib/typescript/module/design-tokens/theme-css.d.ts +39 -0
- package/lib/typescript/module/design-tokens/theme-css.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +6 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +6 -0
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/text-field/index.d.ts +14 -1
- package/lib/typescript/module/text-field/index.d.ts.map +1 -1
- package/package.json +50 -1
- package/src/__tests__/BenefitList.test.tsx +108 -0
- package/src/__tests__/ConnectionDots.test.tsx +86 -0
- package/src/__tests__/TextFieldFloatingLabel.test.tsx +93 -0
- package/src/__tests__/design-tokens.test.ts +169 -0
- package/src/benefit-list/BenefitList.stories.tsx +50 -0
- package/src/benefit-list/index.tsx +133 -0
- package/src/benefit-list/types.ts +36 -0
- package/src/connection-dots/ConnectionDots.stories.tsx +54 -0
- package/src/connection-dots/ConnectionDots.tsx +139 -0
- package/src/connection-dots/ConnectionDots.web.tsx +122 -0
- package/src/connection-dots/ConnectionDotsBase.tsx +62 -0
- package/src/connection-dots/index.ts +2 -0
- package/src/connection-dots/index.web.ts +2 -0
- package/src/connection-dots/types.ts +41 -0
- package/src/design-tokens/color-roles.ts +110 -0
- package/src/design-tokens/index.ts +45 -0
- package/src/design-tokens/scales.ts +134 -0
- package/src/design-tokens/shadows.native.ts +44 -0
- package/src/design-tokens/shadows.ts +42 -0
- package/src/design-tokens/tailwind-preset.ts +139 -0
- package/src/design-tokens/theme-css.ts +99 -0
- package/src/index.ts +33 -0
- package/src/index.web.ts +33 -0
- package/src/text-field/TextField.stories.tsx +46 -0
- package/src/text-field/index.tsx +212 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic color-role vocabulary for the Oxy Unified Design Language.
|
|
3
|
+
*
|
|
4
|
+
* Every role is an ALIAS onto one of Bloom's existing canonical theme tokens
|
|
5
|
+
* (`--background`, `--surface`, `--primary`, …) — the SINGLE source of resolved
|
|
6
|
+
* color values produced by `getResolvedTokens` and written to the document root
|
|
7
|
+
* (web) / `rootVariables` (native) by `BloomThemeProvider`. No color VALUE is
|
|
8
|
+
* invented here: a role's value is the `var(--canonical)` reference, so it stays
|
|
9
|
+
* driven by the active light/dark mode and color preset automatically.
|
|
10
|
+
*
|
|
11
|
+
* The maps are consumed by the Bloom Tailwind preset (`tailwind-preset.ts`),
|
|
12
|
+
* which slots them into `theme.extend.{backgroundColor,textColor,borderColor}`.
|
|
13
|
+
* Because the values are `var(--x)` strings, the SAME class names resolve on
|
|
14
|
+
* Tailwind (web) and NativeWind (native): web reads the CSS custom property from
|
|
15
|
+
* `document.documentElement`; native reads it from react-native-css's
|
|
16
|
+
* `rootVariables` family — both populated by Bloom from one pipeline.
|
|
17
|
+
*
|
|
18
|
+
* Web CSS-var contract (see Bloom AGENTS.md): base `--x` tokens already resolve
|
|
19
|
+
* to a FULL `rgb(...)` color at runtime, so the role values reference them with
|
|
20
|
+
* `var(--x)` directly — NEVER `hsl(var(--x))`.
|
|
21
|
+
*
|
|
22
|
+
* ADDITIVE: these are NEW utility names (`bg-fill`, `text-text-tertiary`,
|
|
23
|
+
* `border-border-image`, …). They do not touch the existing app-defined color
|
|
24
|
+
* utilities (`bg-background`, `text-muted-foreground`, …), which keep working.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Surface / fill roles → background-color utilities (`bg-<role>`).
|
|
28
|
+
*
|
|
29
|
+
* | role | utility | canonical token | rationale |
|
|
30
|
+
* | ----------------- | ------------------ | ----------------- | ------------------------------------------- |
|
|
31
|
+
* | bg | bg-bg | --background | the page background |
|
|
32
|
+
* | fill | bg-fill | --card | default raised surface (cards/sheets) |
|
|
33
|
+
* | fill-secondary | bg-fill-secondary | --muted | muted/secondary fill |
|
|
34
|
+
* | fill-hover | bg-fill-hover | --accent | hover state of a secondary fill |
|
|
35
|
+
* | fill-brand | bg-fill-brand | --primary | brand-colored fill |
|
|
36
|
+
* | fill-brand-hover | bg-fill-brand-hover| --ring | hover of brand fill (ring == primary hue) |
|
|
37
|
+
* | fill-inverse | bg-fill-inverse | --foreground | inverse (high-contrast) fill |
|
|
38
|
+
* | fill-inverse-hover| bg-fill-inverse-hov| --muted-foreground| hover of inverse fill |
|
|
39
|
+
* | fill-placeholder | bg-fill-placeholder| --muted | disabled/placeholder surface |
|
|
40
|
+
*/
|
|
41
|
+
export declare const FILL_ROLES: {
|
|
42
|
+
readonly bg: `var(--${string})`;
|
|
43
|
+
readonly fill: `var(--${string})`;
|
|
44
|
+
readonly 'fill-secondary': `var(--${string})`;
|
|
45
|
+
readonly 'fill-hover': `var(--${string})`;
|
|
46
|
+
readonly 'fill-brand': `var(--${string})`;
|
|
47
|
+
readonly 'fill-brand-hover': `var(--${string})`;
|
|
48
|
+
readonly 'fill-inverse': `var(--${string})`;
|
|
49
|
+
readonly 'fill-inverse-hover': `var(--${string})`;
|
|
50
|
+
readonly 'fill-placeholder': `var(--${string})`;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Text roles → text-color utilities (`text-<role>`).
|
|
54
|
+
*
|
|
55
|
+
* Tailwind prefixes text-color utilities with `text-`, so a role literally
|
|
56
|
+
* named `text` becomes the utility `text-text`, `text-secondary` → the utility
|
|
57
|
+
* `text-text-secondary`, etc. (matches the namespaced spec).
|
|
58
|
+
*
|
|
59
|
+
* | role | utility | canonical token | rationale |
|
|
60
|
+
* | ---------------- | --------------------- | --------------------- | ---------------------------------- |
|
|
61
|
+
* | text | text-text | --foreground | primary text |
|
|
62
|
+
* | text-secondary | text-text-secondary | --muted-foreground | secondary text |
|
|
63
|
+
* | text-tertiary | text-text-tertiary | --muted-foreground | tertiary/least-emphasis text |
|
|
64
|
+
* | text-inverse | text-text-inverse | --primary-foreground | text on a brand fill |
|
|
65
|
+
* | text-fixed-light | text-text-fixed-light | --primary-foreground | always-light text (on brand) |
|
|
66
|
+
* | text-placeholder | text-text-placeholder | --muted-foreground | placeholder/input hint |
|
|
67
|
+
*/
|
|
68
|
+
export declare const TEXT_ROLES: {
|
|
69
|
+
readonly text: `var(--${string})`;
|
|
70
|
+
readonly 'text-secondary': `var(--${string})`;
|
|
71
|
+
readonly 'text-tertiary': `var(--${string})`;
|
|
72
|
+
readonly 'text-inverse': `var(--${string})`;
|
|
73
|
+
readonly 'text-fixed-light': `var(--${string})`;
|
|
74
|
+
readonly 'text-placeholder': `var(--${string})`;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Border roles → border-color utilities (`border-<role>`).
|
|
78
|
+
*
|
|
79
|
+
* | role | utility | canonical token | rationale |
|
|
80
|
+
* | ------------------ | ----------------------- | --------------- | ------------------------------------------ |
|
|
81
|
+
* | border | border-border | --border | default border |
|
|
82
|
+
* | border-image | border-border-image | --border | hairline border color (0.5px width helper) |
|
|
83
|
+
* | border-secondary | border-border-secondary | --input | secondary/softer border |
|
|
84
|
+
* | border-input | border-border-input | --input | input field border |
|
|
85
|
+
* | border-input-active| border-border-input-active | --ring | focused input border (== primary) |
|
|
86
|
+
*
|
|
87
|
+
* NOTE: the hairline 0.5px WIDTH for `border-image` is shipped as a separate
|
|
88
|
+
* `borderWidth` scale entry (`border-hairline`) in the preset; the color role
|
|
89
|
+
* above only provides the matching color. Consumers compose them:
|
|
90
|
+
* `border-hairline border-border-image`.
|
|
91
|
+
*/
|
|
92
|
+
export declare const BORDER_ROLES: {
|
|
93
|
+
readonly border: `var(--${string})`;
|
|
94
|
+
readonly 'border-image': `var(--${string})`;
|
|
95
|
+
readonly 'border-secondary': `var(--${string})`;
|
|
96
|
+
readonly 'border-input': `var(--${string})`;
|
|
97
|
+
readonly 'border-input-active': `var(--${string})`;
|
|
98
|
+
};
|
|
99
|
+
export type FillRole = keyof typeof FILL_ROLES;
|
|
100
|
+
export type TextRole = keyof typeof TEXT_ROLES;
|
|
101
|
+
export type BorderRole = keyof typeof BORDER_ROLES;
|
|
102
|
+
//# sourceMappingURL=color-roles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color-roles.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/color-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAC/C,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,YAAY,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@oxyhq/bloom/design-tokens` — the centralized, semantic design-token
|
|
3
|
+
* vocabulary for the Oxy Unified Design Language.
|
|
4
|
+
*
|
|
5
|
+
* Exposes:
|
|
6
|
+
* - `bloomTailwindPreset` — the Tailwind/NativeWind preset (web + native) that
|
|
7
|
+
* adds the semantic utility classes (`bg-fill`, `text-text-tertiary`,
|
|
8
|
+
* `p-space-8`, `rounded-radius-20`, `text-body`, `font-body`, `shadow-s`).
|
|
9
|
+
* - `bloomThemeCss` / `bloomThemeBlock` — the Tailwind v4 `@theme` equivalent
|
|
10
|
+
* for CSS-configured web apps.
|
|
11
|
+
* - The raw token maps (`FILL_ROLES`, `TEXT_ROLES`, `BORDER_ROLES`, `SPACING`,
|
|
12
|
+
* `RADIUS`, `TYPOGRAPHY`, `SHADOW_BOX`) for direct programmatic use.
|
|
13
|
+
* - `bloomShadowStyle` — platform-correct shadow style object (web box-shadow /
|
|
14
|
+
* native elevation) so a consumer writes one call for both platforms.
|
|
15
|
+
*
|
|
16
|
+
* Additive and non-breaking: every export here is NEW. It does not change any
|
|
17
|
+
* existing Bloom token, theme value, or utility class.
|
|
18
|
+
*/
|
|
19
|
+
export { bloomTailwindPreset } from './tailwind-preset';
|
|
20
|
+
export type { TailwindPreset, TailwindPresetThemeExtend, } from './tailwind-preset';
|
|
21
|
+
export { bloomThemeCss, bloomThemeBlock } from './theme-css';
|
|
22
|
+
export { FILL_ROLES, TEXT_ROLES, BORDER_ROLES, } from './color-roles';
|
|
23
|
+
export type { FillRole, TextRole, BorderRole } from './color-roles';
|
|
24
|
+
export { SPACING, RADIUS, BORDER_WIDTH, TYPOGRAPHY, FONT_FAMILY_VARS, } from './scales';
|
|
25
|
+
export type { TypeRole, TypeRoleName } from './scales';
|
|
26
|
+
export { SHADOW_BOX, bloomShadowStyle } from './shadows';
|
|
27
|
+
export type { ShadowRole } from './shadows';
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EACV,cAAc,EACd,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,EACL,OAAO,EACP,MAAM,EACN,YAAY,EACZ,UAAU,EACV,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACzD,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Numeric design-token scales for the Oxy Unified Design Language.
|
|
3
|
+
*
|
|
4
|
+
* These are platform-agnostic plain numbers / CSS strings consumed by the Bloom
|
|
5
|
+
* Tailwind preset (`tailwind-preset.ts`). The SAME keys produce the SAME utility
|
|
6
|
+
* class names on Tailwind (web) and NativeWind (native):
|
|
7
|
+
* - spacing → `p-space-8`, `gap-space-20`, `px-screen-margin`, `m-space-16`
|
|
8
|
+
* - radius → `rounded-radius-20`
|
|
9
|
+
* - type → `font-body` (family/weight) + `text-body` (size/lineHeight)
|
|
10
|
+
* - shadow → `shadow-s`, `shadow-m`
|
|
11
|
+
*
|
|
12
|
+
* ADDITIVE: every key is namespaced (`space-*`, `radius-*`, the typography role
|
|
13
|
+
* names, `shadow-s/m`) and does not collide with Tailwind's built-in numeric
|
|
14
|
+
* scale (`p-4`, `rounded-lg`, `text-sm`) — those keep working unchanged.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Spacing scale (px). Consumed via every Tailwind spacing utility:
|
|
18
|
+
* `p-space-8`, `px-space-16`, `gap-space-20`, `m-space-24`, `py-space-12`, …
|
|
19
|
+
*
|
|
20
|
+
* `screen-margin` is the standard page gutter (left/right inset). Default 20px —
|
|
21
|
+
* matches Bloom's existing `space.xl` and the `Dialog` default `contentPadding`.
|
|
22
|
+
*/
|
|
23
|
+
export declare const SPACING: {
|
|
24
|
+
readonly 'space-2': 2;
|
|
25
|
+
readonly 'space-4': 4;
|
|
26
|
+
readonly 'space-8': 8;
|
|
27
|
+
readonly 'space-12': 12;
|
|
28
|
+
readonly 'space-16': 16;
|
|
29
|
+
readonly 'space-20': 20;
|
|
30
|
+
readonly 'space-24': 24;
|
|
31
|
+
readonly 'space-32': 32;
|
|
32
|
+
readonly 'screen-margin': 20;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Corner-radius scale (px). Consumed via `rounded-radius-*`:
|
|
36
|
+
* `rounded-radius-8`, `rounded-radius-12`, `rounded-radius-20`,
|
|
37
|
+
* `rounded-radius-28`, `rounded-radius-max` (pill / circle).
|
|
38
|
+
*/
|
|
39
|
+
export declare const RADIUS: {
|
|
40
|
+
readonly 'radius-8': 8;
|
|
41
|
+
readonly 'radius-12': 12;
|
|
42
|
+
readonly 'radius-20': 20;
|
|
43
|
+
readonly 'radius-28': 28;
|
|
44
|
+
readonly 'radius-max': 9999;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Border-width helpers. `border-hairline` is the 0.5px hairline that pairs with
|
|
48
|
+
* the `border-border-image` color role. (Tailwind's default `border` = 1px
|
|
49
|
+
* stays untouched.)
|
|
50
|
+
*/
|
|
51
|
+
export declare const BORDER_WIDTH: {
|
|
52
|
+
readonly hairline: 0.5;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* One typography role. `size`/`lineHeight` are px; `weight` is a CSS font-weight
|
|
56
|
+
* string; `family` selects the Bloom font CSS var (`sans` = body/UI,
|
|
57
|
+
* `display` = headings/serif).
|
|
58
|
+
*
|
|
59
|
+
* The Tailwind preset splits each role into TWO utilities so a consumer can
|
|
60
|
+
* apply the size/leading and the family/weight independently or together:
|
|
61
|
+
* - `text-<role>` → `fontSize` + `lineHeight` (via theme.fontSize)
|
|
62
|
+
* - `font-<role>` → `fontFamily` + `fontWeight` (via theme.fontFamily, which
|
|
63
|
+
* maps a key to a [family, { fontWeight }] tuple)
|
|
64
|
+
*/
|
|
65
|
+
export interface TypeRole {
|
|
66
|
+
/** Font size in px. */
|
|
67
|
+
size: number;
|
|
68
|
+
/** Line height in px. */
|
|
69
|
+
lineHeight: number;
|
|
70
|
+
/** CSS font-weight (string for Tailwind/RN parity). */
|
|
71
|
+
weight: '400' | '500' | '600' | '700';
|
|
72
|
+
/** Which Bloom font family CSS var to use. */
|
|
73
|
+
family: 'sans' | 'display';
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The coherent Oxy type scale. Sizes climb 11 → 28; line-heights use a ~1.3–1.5
|
|
77
|
+
* leading for body roles and tighter leading for large titles.
|
|
78
|
+
*
|
|
79
|
+
* | role | size/line | weight | family | usage |
|
|
80
|
+
* | --------------- | --------- | ------ | ------- | ------------------------------ |
|
|
81
|
+
* | caption | 11 / 14 | 400 | sans | timestamps, meta, fine print |
|
|
82
|
+
* | bodySmall | 13 / 18 | 400 | sans | secondary body, captions |
|
|
83
|
+
* | bodyTitleSmall | 13 / 18 | 600 | sans | small emphasized labels |
|
|
84
|
+
* | body | 15 / 22 | 400 | sans | default body text |
|
|
85
|
+
* | subtitle | 17 / 24 | 500 | sans | list subtitles, lead-ins |
|
|
86
|
+
* | sectionTitle | 20 / 26 | 600 | sans | section headers |
|
|
87
|
+
* | headerBold | 28 / 34 | 700 | display | screen / page titles |
|
|
88
|
+
* | buttonLarge | 17 / 22 | 600 | sans | primary button label |
|
|
89
|
+
*/
|
|
90
|
+
export declare const TYPOGRAPHY: {
|
|
91
|
+
readonly caption: {
|
|
92
|
+
readonly size: 11;
|
|
93
|
+
readonly lineHeight: 14;
|
|
94
|
+
readonly weight: "400";
|
|
95
|
+
readonly family: "sans";
|
|
96
|
+
};
|
|
97
|
+
readonly bodySmall: {
|
|
98
|
+
readonly size: 13;
|
|
99
|
+
readonly lineHeight: 18;
|
|
100
|
+
readonly weight: "400";
|
|
101
|
+
readonly family: "sans";
|
|
102
|
+
};
|
|
103
|
+
readonly bodyTitleSmall: {
|
|
104
|
+
readonly size: 13;
|
|
105
|
+
readonly lineHeight: 18;
|
|
106
|
+
readonly weight: "600";
|
|
107
|
+
readonly family: "sans";
|
|
108
|
+
};
|
|
109
|
+
readonly body: {
|
|
110
|
+
readonly size: 15;
|
|
111
|
+
readonly lineHeight: 22;
|
|
112
|
+
readonly weight: "400";
|
|
113
|
+
readonly family: "sans";
|
|
114
|
+
};
|
|
115
|
+
readonly subtitle: {
|
|
116
|
+
readonly size: 17;
|
|
117
|
+
readonly lineHeight: 24;
|
|
118
|
+
readonly weight: "500";
|
|
119
|
+
readonly family: "sans";
|
|
120
|
+
};
|
|
121
|
+
readonly sectionTitle: {
|
|
122
|
+
readonly size: 20;
|
|
123
|
+
readonly lineHeight: 26;
|
|
124
|
+
readonly weight: "600";
|
|
125
|
+
readonly family: "sans";
|
|
126
|
+
};
|
|
127
|
+
readonly headerBold: {
|
|
128
|
+
readonly size: 28;
|
|
129
|
+
readonly lineHeight: 34;
|
|
130
|
+
readonly weight: "700";
|
|
131
|
+
readonly family: "display";
|
|
132
|
+
};
|
|
133
|
+
readonly buttonLarge: {
|
|
134
|
+
readonly size: 17;
|
|
135
|
+
readonly lineHeight: 22;
|
|
136
|
+
readonly weight: "600";
|
|
137
|
+
readonly family: "sans";
|
|
138
|
+
};
|
|
139
|
+
};
|
|
140
|
+
export type TypeRoleName = keyof typeof TYPOGRAPHY;
|
|
141
|
+
/**
|
|
142
|
+
* Bloom font-family CSS-var stacks, keyed by the `family` field above. Web reads
|
|
143
|
+
* `var(--bloom-font-*)` (set by `applyFontFaces`); the preset falls back to the
|
|
144
|
+
* literal stack so utilities still resolve before the vars are injected and on
|
|
145
|
+
* native (where NativeWind passes the family string straight through).
|
|
146
|
+
*/
|
|
147
|
+
export declare const FONT_FAMILY_VARS: {
|
|
148
|
+
readonly sans: "var(--bloom-font-sans)";
|
|
149
|
+
readonly display: "var(--bloom-font-display)";
|
|
150
|
+
readonly mono: "var(--bloom-font-mono)";
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=scales.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scales.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/scales.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;;;;;;;;;;CAUV,CAAC;AAMX;;;;GAIG;AACH,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC;AAMX;;;;GAIG;AACH,eAAO,MAAM,YAAY;;CAEf,CAAC;AAMX;;;;;;;;;;GAUG;AACH,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IACtC,8CAA8C;IAC9C,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASsB,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,UAAU,CAAC;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type ViewStyle } from 'react-native';
|
|
2
|
+
/**
|
|
3
|
+
* Elevation / shadow tokens for the Oxy Unified Design Language.
|
|
4
|
+
*
|
|
5
|
+
* Two roles: `shadow-s` (subtle raise — cards, chips) and `shadow-m` (overlays —
|
|
6
|
+
* menus, popovers, dialogs). Consumers write ONE class (`shadow-s` / `shadow-m`)
|
|
7
|
+
* and Bloom owns the platform split:
|
|
8
|
+
* - Web: the Bloom Tailwind preset registers `boxShadow.s` / `boxShadow.m`
|
|
9
|
+
* (the `SHADOW_BOX` strings below) → `shadow-s` / `shadow-m` utilities.
|
|
10
|
+
* - Native: NativeWind cannot translate a multi-layer web `box-shadow` to RN
|
|
11
|
+
* elevation reliably, so apps that need the shadow on a React Native surface
|
|
12
|
+
* apply the matching style object from `bloomShadowStyle('s' | 'm')` (this
|
|
13
|
+
* module is platform-forked: `.native.ts` returns RN `shadow*`/`elevation`).
|
|
14
|
+
*
|
|
15
|
+
* This default file is the WEB / consumer-tsc variant. Metro selects the sibling
|
|
16
|
+
* `shadows.native.ts` on iOS/Android. Web bundlers and a consumer's `tsc` see
|
|
17
|
+
* this file (the `box-shadow` CSS string path), matching Bloom's existing
|
|
18
|
+
* `.native`/`.web` split convention.
|
|
19
|
+
*/
|
|
20
|
+
export type ShadowRole = 's' | 'm';
|
|
21
|
+
/**
|
|
22
|
+
* Web `box-shadow` strings. Subtle, brand-neutral elevation that reads on both
|
|
23
|
+
* light and dark surfaces. Registered by the Tailwind preset as `boxShadow.s/m`.
|
|
24
|
+
*/
|
|
25
|
+
export declare const SHADOW_BOX: Record<ShadowRole, string>;
|
|
26
|
+
/**
|
|
27
|
+
* Return the platform-appropriate shadow style for a role.
|
|
28
|
+
*
|
|
29
|
+
* On WEB this returns a `{ boxShadow }` style object (so it can also be applied
|
|
30
|
+
* inline without Tailwind). The `.native.ts` fork returns RN
|
|
31
|
+
* `shadowColor/shadowOffset/shadowOpacity/shadowRadius/elevation`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function bloomShadowStyle(role: ShadowRole): ViewStyle;
|
|
34
|
+
//# sourceMappingURL=shadows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadows.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/shadows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAGjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAE5D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ViewStyle } from 'react-native';
|
|
2
|
+
/**
|
|
3
|
+
* NATIVE variant of the shadow tokens (see `shadows.ts` for the rationale and
|
|
4
|
+
* the web `box-shadow` path). Metro selects this file on iOS/Android.
|
|
5
|
+
*
|
|
6
|
+
* The `SHADOW_BOX` map is kept identical to the web file so any code that reads
|
|
7
|
+
* the raw string (e.g. to feed a NativeWind `boxShadow` utility on a host that
|
|
8
|
+
* supports it) stays in lockstep; the canonical native styling path is
|
|
9
|
+
* `bloomShadowStyle`, which returns RN elevation + shadow props tuned to match
|
|
10
|
+
* the web `shadow-s` / `shadow-m` visual weight.
|
|
11
|
+
*/
|
|
12
|
+
export type ShadowRole = 's' | 'm';
|
|
13
|
+
export declare const SHADOW_BOX: Record<ShadowRole, string>;
|
|
14
|
+
/**
|
|
15
|
+
* RN shadow/elevation style matching the web `shadow-<role>` weight. Apply to a
|
|
16
|
+
* React Native `View`/surface: `style={bloomShadowStyle('m')}`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function bloomShadowStyle(role: ShadowRole): ViewStyle;
|
|
19
|
+
//# sourceMappingURL=shadows.native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shadows.native.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/shadows.native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;;;;;;GASG;AAEH,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAGjD,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAE5D"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Bloom Tailwind / NativeWind preset — the SINGLE opt-in that gives every
|
|
3
|
+
* Oxy app the same semantic design-token utility classes.
|
|
4
|
+
*
|
|
5
|
+
* Consumers add it to their Tailwind config:
|
|
6
|
+
*
|
|
7
|
+
* // tailwind.config.js (web Tailwind v3/v4 AND native NativeWind)
|
|
8
|
+
* const { bloomTailwindPreset } = require('@oxyhq/bloom/tailwind-preset');
|
|
9
|
+
* module.exports = {
|
|
10
|
+
* presets: [bloomTailwindPreset],
|
|
11
|
+
* content: [ ...existing globs ],
|
|
12
|
+
* theme: { extend: { ...existing app overrides } },
|
|
13
|
+
* };
|
|
14
|
+
*
|
|
15
|
+
* The preset only EXTENDS `theme` (everything lives under `theme.extend`), so it
|
|
16
|
+
* is purely additive: existing Tailwind built-ins (`p-4`, `rounded-lg`,
|
|
17
|
+
* `text-sm`) and the app's own `var(--x)`-backed color utilities keep working.
|
|
18
|
+
*
|
|
19
|
+
* Cross-platform: NativeWind reads the same `tailwind.config.js`, so the SAME
|
|
20
|
+
* class names (`bg-fill`, `text-text-tertiary`, `p-space-8`, `rounded-radius-20`,
|
|
21
|
+
* `text-body`, `font-body`, `shadow-s`) resolve on web (Tailwind → CSS) and
|
|
22
|
+
* native (NativeWind → react-native-css). Color roles are `var(--x)` references
|
|
23
|
+
* that Bloom's `BloomThemeProvider` populates at runtime on both platforms.
|
|
24
|
+
*
|
|
25
|
+
* Type: returned as a `TailwindPreset` (a structural subset of Tailwind's
|
|
26
|
+
* `Config`) so Bloom does not need to depend on `tailwindcss` types.
|
|
27
|
+
*/
|
|
28
|
+
/** A Tailwind `fontSize` value: `[size, { lineHeight }]`. */
|
|
29
|
+
type FontSizeValue = [string, {
|
|
30
|
+
lineHeight: string;
|
|
31
|
+
}];
|
|
32
|
+
/** A Tailwind `fontFamily` value: `[family, { fontWeight }]`. */
|
|
33
|
+
type FontFamilyValue = [string, {
|
|
34
|
+
fontWeight: string;
|
|
35
|
+
}];
|
|
36
|
+
export interface TailwindPresetThemeExtend {
|
|
37
|
+
colors: Record<string, string>;
|
|
38
|
+
backgroundColor: Record<string, string>;
|
|
39
|
+
textColor: Record<string, string>;
|
|
40
|
+
borderColor: Record<string, string>;
|
|
41
|
+
spacing: Record<string, string>;
|
|
42
|
+
borderRadius: Record<string, string>;
|
|
43
|
+
borderWidth: Record<string, string>;
|
|
44
|
+
fontSize: Record<string, FontSizeValue>;
|
|
45
|
+
fontFamily: Record<string, FontFamilyValue>;
|
|
46
|
+
boxShadow: Record<string, string>;
|
|
47
|
+
}
|
|
48
|
+
export interface TailwindPreset {
|
|
49
|
+
theme: {
|
|
50
|
+
extend: TailwindPresetThemeExtend;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The Bloom Tailwind/NativeWind preset. Frozen so accidental mutation by a
|
|
55
|
+
* consumer's config merge cannot corrupt the shared vocabulary.
|
|
56
|
+
*/
|
|
57
|
+
export declare const bloomTailwindPreset: TailwindPreset;
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=tailwind-preset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tailwind-preset.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/tailwind-preset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAaH,6DAA6D;AAC7D,KAAK,aAAa,GAAG,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AACtD,iEAAiE;AACjE,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,MAAM,EAAE,yBAAyB,CAAA;KAAE,CAAC;CAC9C;AAuDD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAoBhC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tailwind v4 `@theme` block generator for the Oxy Unified Design Language.
|
|
3
|
+
*
|
|
4
|
+
* Tailwind v4 web apps (auth, console, website) configure their design tokens in
|
|
5
|
+
* CSS via `@theme { --color-X: var(--X); … }` rather than a JS preset. This
|
|
6
|
+
* module produces the exact `@theme` body that mirrors `bloomTailwindPreset`, so
|
|
7
|
+
* a v4 app gets the SAME semantic utilities (`bg-fill`, `text-text-tertiary`,
|
|
8
|
+
* `p-space-8`, `rounded-radius-20`, `text-body`, `font-body`, `shadow-s`) as the
|
|
9
|
+
* NativeWind/Tailwind-v3 apps that consume the JS preset.
|
|
10
|
+
*
|
|
11
|
+
* Each color role is emitted as a `--color-<role>: var(--canonical)` alias.
|
|
12
|
+
* Per Bloom's web CSS-var contract, the canonical `--x` token already resolves
|
|
13
|
+
* to a full `rgb(...)` color at runtime, so the alias is a direct `var(--x)`
|
|
14
|
+
* reference — NEVER `hsl(var(--x))`.
|
|
15
|
+
*
|
|
16
|
+
* Usage (web Tailwind v4, in the app's global stylesheet):
|
|
17
|
+
*
|
|
18
|
+
* import { bloomThemeCss } from '@oxyhq/bloom/design-tokens';
|
|
19
|
+
* // build-time: write `@theme { ${bloomThemeCss()} }` into global.css, OR
|
|
20
|
+
* // paste the generated block once (see docs/design-tokens.md).
|
|
21
|
+
*
|
|
22
|
+
* A consumer that prefers a static stylesheet can copy the output of
|
|
23
|
+
* `bloomThemeCss()` directly into their `@theme { … }` — the values are stable.
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Produce the BODY of a Tailwind v4 `@theme` block (no surrounding braces) that
|
|
27
|
+
* registers the full Bloom semantic vocabulary.
|
|
28
|
+
*
|
|
29
|
+
* - Colors → `--color-<role>: var(--canonical);`
|
|
30
|
+
* - Spacing → `--spacing-<key>: <px>;`
|
|
31
|
+
* - Radius → `--radius-<key>: <px>;`
|
|
32
|
+
* - Type → `--text-<role>: <size>; --text-<role>--line-height: <lh>;`
|
|
33
|
+
* `--font-<role>: var(--bloom-font-*);` (+ weight via utility doc)
|
|
34
|
+
* - Shadow → `--shadow-<s|m>: <box-shadow>;`
|
|
35
|
+
*/
|
|
36
|
+
export declare function bloomThemeCss(): string;
|
|
37
|
+
/** The full `@theme { … }` block, ready to inject into a v4 stylesheet. */
|
|
38
|
+
export declare function bloomThemeBlock(): string;
|
|
39
|
+
//# sourceMappingURL=theme-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-css.d.ts","sourceRoot":"","sources":["../../../../src/design-tokens/theme-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAaH;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,IAAI,MAAM,CA8CtC;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -3,6 +3,8 @@ export { atoms, flatten, Z_INDEX, zIndex } from './styles';
|
|
|
3
3
|
export type { ViewStyleProp, TextStyleProp } from './styles';
|
|
4
4
|
export * as tokens from './styles/tokens';
|
|
5
5
|
export { web, native, ios, android, platform, select } from './styles/platform';
|
|
6
|
+
export { bloomTailwindPreset, bloomThemeCss, bloomThemeBlock, FILL_ROLES, TEXT_ROLES, BORDER_ROLES, SPACING, RADIUS, BORDER_WIDTH, TYPOGRAPHY, FONT_FAMILY_VARS, SHADOW_BOX, bloomShadowStyle, } from './design-tokens';
|
|
7
|
+
export type { TailwindPreset, TailwindPresetThemeExtend, FillRole, TextRole, BorderRole, TypeRole, TypeRoleName, ShadowRole, } from './design-tokens';
|
|
6
8
|
export { useInteractionState } from './hooks/useInteractionState';
|
|
7
9
|
export { useDelayedLoading } from './hooks/useDelayedLoading';
|
|
8
10
|
export { useThrottledValue } from './hooks/useThrottledValue';
|
|
@@ -34,6 +36,10 @@ export * as Skeleton from './skeleton';
|
|
|
34
36
|
export * as Grid from './grid';
|
|
35
37
|
export { Fill } from './fill';
|
|
36
38
|
export { IconCircle } from './icon-circle';
|
|
39
|
+
export { ConnectionDots } from './connection-dots';
|
|
40
|
+
export type { ConnectionDotsProps } from './connection-dots';
|
|
41
|
+
export { BenefitRow, BenefitList } from './benefit-list';
|
|
42
|
+
export type { BenefitRowProps, BenefitListProps } from './benefit-list';
|
|
37
43
|
export * from './text-field';
|
|
38
44
|
export * from './segmented-control';
|
|
39
45
|
export { SearchInput } from './search-input';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ export { atoms, flatten, Z_INDEX, zIndex } from './styles';
|
|
|
3
3
|
export type { ViewStyleProp, TextStyleProp } from './styles';
|
|
4
4
|
export * as tokens from './styles/tokens';
|
|
5
5
|
export { web, native, ios, android, platform, select } from './styles/platform';
|
|
6
|
+
export { bloomTailwindPreset, bloomThemeCss, bloomThemeBlock, FILL_ROLES, TEXT_ROLES, BORDER_ROLES, SPACING, RADIUS, BORDER_WIDTH, TYPOGRAPHY, FONT_FAMILY_VARS, SHADOW_BOX, bloomShadowStyle, } from './design-tokens';
|
|
7
|
+
export type { TailwindPreset, TailwindPresetThemeExtend, FillRole, TextRole, BorderRole, TypeRole, TypeRoleName, ShadowRole, } from './design-tokens';
|
|
6
8
|
export { useInteractionState } from './hooks/useInteractionState';
|
|
7
9
|
export { useDelayedLoading } from './hooks/useDelayedLoading';
|
|
8
10
|
export { useThrottledValue } from './hooks/useThrottledValue';
|
|
@@ -34,6 +36,10 @@ export * as Skeleton from './skeleton';
|
|
|
34
36
|
export * as Grid from './grid';
|
|
35
37
|
export { Fill } from './fill';
|
|
36
38
|
export { IconCircle } from './icon-circle';
|
|
39
|
+
export { ConnectionDots } from './connection-dots/index.web';
|
|
40
|
+
export type { ConnectionDotsProps } from './connection-dots/index.web';
|
|
41
|
+
export { BenefitRow, BenefitList } from './benefit-list';
|
|
42
|
+
export type { BenefitRowProps, BenefitListProps } from './benefit-list';
|
|
37
43
|
export * from './text-field';
|
|
38
44
|
export * from './segmented-control';
|
|
39
45
|
export { SearchInput } from './search-input';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AAMA,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAC3D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,21 @@ export type TextFieldInputProps = Omit<TextInputProps, 'value' | 'onChangeText'
|
|
|
18
18
|
isInvalid?: boolean;
|
|
19
19
|
inputRef?: React.RefObject<TextInput | null> | React.ForwardedRef<TextInput>;
|
|
20
20
|
placeholder?: string | null | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Render the field with a Material-style floating label. When `true`, the
|
|
23
|
+
* {@link label} sits inside the field as the placeholder while the input is
|
|
24
|
+
* empty AND unfocused; on focus OR when a value is present it animates up to a
|
|
25
|
+
* small caption pinned to the top of the field and the typed value shows
|
|
26
|
+
* below it. Opt-in — the default (`false`) keeps the existing chrome where the
|
|
27
|
+
* label lives above the field (`TextFieldLabel`) and the placeholder is plain.
|
|
28
|
+
*
|
|
29
|
+
* Cross-platform: the animation is driven by focus + value-presence state (no
|
|
30
|
+
* CSS `:placeholder-shown` / `peer-focus`), so web and native behave
|
|
31
|
+
* identically. Respects reduced-motion (snaps instead of animating).
|
|
32
|
+
*/
|
|
33
|
+
floatingLabel?: boolean;
|
|
21
34
|
};
|
|
22
|
-
export declare function TextFieldInput({ label, placeholder, value, onChangeText, onFocus, onBlur, isInvalid, inputRef, style, ...rest }: TextFieldInputProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export declare function TextFieldInput({ label, placeholder, value, onChangeText, onFocus, onBlur, isInvalid, inputRef, style, floatingLabel, ...rest }: TextFieldInputProps): import("react/jsx-runtime").JSX.Element;
|
|
23
36
|
export declare function TextFieldLabel({ nativeID, children, }: React.PropsWithChildren<{
|
|
24
37
|
nativeID?: string;
|
|
25
38
|
}>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/text-field/index.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/text-field/index.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EAIvB,SAAS,EACT,KAAK,cAAc,EAGnB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AAMtB,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,aAAa,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAkB,KAAK,KAAK,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAwB7E,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAClD;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,aAAa,CACxC,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAiB,EAAE,KAAK,EAAE,EAAE,cAAc,2CA0C/E;AAED,wBAAgB,oBAAoB;;;;;EA0BnC;AAED,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,cAAc,EACd,OAAO,GAAG,cAAc,GAAG,aAAa,CACzC,GAAG;IACF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAC7E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,KAAK,EACL,YAAY,EACZ,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,KAAK,EACL,aAAqB,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,2CA4HrB;AA4KD,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,GACT,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,2CAchD;AAED,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;CAAE,2CA8BxF;AAED,wBAAgB,eAAe,CAAC,EAC9B,QAAQ,EACR,KAAK,EACL,iBAAiB,EACjB,KAAK,GACN,EAAE,KAAK,CAAC,iBAAiB,CACxB,aAAa,GAAG;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;CAC7D,CACF,2CAqBA;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,2CAkDA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { BenefitRowProps, BenefitListProps } from './types';
|
|
3
|
+
export declare const BenefitRow: React.NamedExoticComponent<BenefitRowProps>;
|
|
4
|
+
export declare const BenefitList: React.NamedExoticComponent<BenefitListProps>;
|
|
5
|
+
export type { BenefitRowProps, BenefitListProps } from './types';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/benefit-list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAapC,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAuEjE,eAAO,MAAM,UAAU,6CAA4B,CAAC;AA6CpD,eAAO,MAAM,WAAW,8CAA6B,CAAC;AAGtD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { StyleProp, TextStyle, ViewStyle } from 'react-native';
|
|
3
|
+
export interface BenefitRowProps {
|
|
4
|
+
/**
|
|
5
|
+
* Leading icon — rendered inside a rounded `fill-secondary` square. Pass a
|
|
6
|
+
* Bloom icon element (e.g. `<Icons.Lock size="sm" />`) or any node.
|
|
7
|
+
*/
|
|
8
|
+
icon: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Caption text. Provide either `label` or `children` (string or nodes).
|
|
11
|
+
* Rendered as `text-secondary` at the `caption` type role.
|
|
12
|
+
*/
|
|
13
|
+
label?: string;
|
|
14
|
+
/** Caption content as children (alternative to `label`). */
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
/** Accessibility label for the row (defaults to the text content). */
|
|
17
|
+
accessibilityLabel?: string;
|
|
18
|
+
/** NativeWind className passthrough on the row container. */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** Style passthrough on the row container. */
|
|
21
|
+
style?: StyleProp<ViewStyle>;
|
|
22
|
+
/** Style passthrough on the caption text. */
|
|
23
|
+
textStyle?: StyleProp<TextStyle>;
|
|
24
|
+
}
|
|
25
|
+
export interface BenefitListProps {
|
|
26
|
+
/** `BenefitRow`s (or any nodes) stacked with consistent spacing. */
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
/** Accessibility label for the card. */
|
|
29
|
+
accessibilityLabel?: string;
|
|
30
|
+
/** NativeWind className passthrough on the card container. */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Style passthrough on the card container. */
|
|
33
|
+
style?: StyleProp<ViewStyle>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/benefit-list/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,6CAA6C;IAC7C,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,QAAQ,EAAE,SAAS,CAAC;IACpB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B"}
|