@oxyhq/bloom 0.19.1 → 0.21.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/content-panel/index.js +64 -0
- package/lib/commonjs/content-panel/index.js.map +1 -0
- package/lib/commonjs/content-panel/index.web.js +99 -0
- package/lib/commonjs/content-panel/index.web.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/content-panel/index.js +59 -0
- package/lib/module/content-panel/index.js.map +1 -0
- package/lib/module/content-panel/index.web.js +94 -0
- package/lib/module/content-panel/index.web.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/content-panel/index.d.ts +54 -0
- package/lib/typescript/commonjs/content-panel/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/content-panel/index.web.d.ts +59 -0
- package/lib/typescript/commonjs/content-panel/index.web.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/content-panel/index.d.ts +54 -0
- package/lib/typescript/module/content-panel/index.d.ts.map +1 -0
- package/lib/typescript/module/content-panel/index.web.d.ts +59 -0
- package/lib/typescript/module/content-panel/index.web.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 +66 -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/content-panel/index.tsx +87 -0
- package/src/content-panel/index.web.tsx +134 -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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionDots.d.ts","sourceRoot":"","sources":["../../../../src/connection-dots/ConnectionDots.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAe/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AA0HnD,eAAO,MAAM,cAAc,iDAAgC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ConnectionDotsProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* CSS keyframes powering the ellipsis shimmer. Mirrors the native Reanimated
|
|
5
|
+
* triangle wave: each dot's opacity rises to 1 and falls back to a dim floor,
|
|
6
|
+
* with a per-dot `animation-delay` sweeping the bright crest left→right.
|
|
7
|
+
*
|
|
8
|
+
* A `prefers-reduced-motion: reduce` media query pins every dot to full opacity,
|
|
9
|
+
* matching the native `useReducedMotion` branch — defence-in-depth alongside the
|
|
10
|
+
* JS `matchMedia` gate below (which also stops emitting the `animation` prop).
|
|
11
|
+
*/
|
|
12
|
+
export declare const BLOOM_CONNECTION_DOTS_CSS = "\n@keyframes bloomConnectionDotsWave { 0%, 100% { opacity: 0.25; } 50% { opacity: 1; } }\n@media (prefers-reduced-motion: reduce) {\n [data-bloom-connection-dot] { animation: none !important; opacity: 1 !important; }\n}\n";
|
|
13
|
+
export declare const ConnectionDots: React.NamedExoticComponent<ConnectionDotsProps>;
|
|
14
|
+
//# sourceMappingURL=ConnectionDots.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionDots.web.d.ts","sourceRoot":"","sources":["../../../../src/connection-dots/ConnectionDots.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAKzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASnD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,mOAKrC,CAAC;AA4FF,eAAO,MAAM,cAAc,iDAAgC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ConnectionDotsProps } from './types';
|
|
3
|
+
export interface ConnectionDotsBaseProps extends Pick<ConnectionDotsProps, 'left' | 'right' | 'accessibilityLabel' | 'className' | 'style'> {
|
|
4
|
+
/** The platform-specific animated dots row (built by the native/web fork). */
|
|
5
|
+
dots: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Shared layout + accessibility chrome for {@link ConnectionDots}:
|
|
9
|
+
*
|
|
10
|
+
* leftSlot · (animated ellipsis dots) · rightSlot
|
|
11
|
+
*
|
|
12
|
+
* The dots themselves are supplied by the platform fork (`ConnectionDots.tsx`
|
|
13
|
+
* native / `ConnectionDots.web.tsx` web) because the shimmer animation impl
|
|
14
|
+
* differs (Reanimated vs CSS). This base owns the row layout, the slot wrappers,
|
|
15
|
+
* and the single accessibility label that stands in for the decorative dots.
|
|
16
|
+
*/
|
|
17
|
+
export declare function ConnectionDotsBase({ left, right, dots, accessibilityLabel, className, style, }: ConnectionDotsBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=ConnectionDotsBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionDotsBase.d.ts","sourceRoot":"","sources":["../../../../src/connection-dots/ConnectionDotsBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,uBACf,SAAQ,IAAI,CACV,mBAAmB,EACnB,MAAM,GAAG,OAAO,GAAG,oBAAoB,GAAG,WAAW,GAAG,OAAO,CAChE;IACD,8EAA8E;IAC9E,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,kBAAiC,EACjC,SAAS,EACT,KAAK,GACN,EAAE,uBAAuB,2CA6BzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/connection-dots/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/connection-dots/index.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { StyleProp, ViewStyle } from 'react-native';
|
|
3
|
+
export interface ConnectionDotsProps {
|
|
4
|
+
/**
|
|
5
|
+
* Left-hand content — typically a logo or avatar of the first party in a
|
|
6
|
+
* link/consent flow. Rendered as-is.
|
|
7
|
+
*/
|
|
8
|
+
left: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Right-hand content — typically a logo or avatar of the second party.
|
|
11
|
+
* Rendered as-is.
|
|
12
|
+
*/
|
|
13
|
+
right: ReactNode;
|
|
14
|
+
/**
|
|
15
|
+
* Number of ellipsis dots animating between the two slots.
|
|
16
|
+
* @default 6
|
|
17
|
+
*/
|
|
18
|
+
dotCount?: number;
|
|
19
|
+
/**
|
|
20
|
+
* Diameter of each dot in px.
|
|
21
|
+
* @default 6
|
|
22
|
+
*/
|
|
23
|
+
dotSize?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Accessibility label for the whole connection band. Read by screen readers in
|
|
26
|
+
* place of the (decorative) dots.
|
|
27
|
+
* @default 'Connecting'
|
|
28
|
+
*/
|
|
29
|
+
accessibilityLabel?: string;
|
|
30
|
+
/** NativeWind className passthrough on the outer row. */
|
|
31
|
+
className?: string;
|
|
32
|
+
/** Style passthrough on the outer row. */
|
|
33
|
+
style?: StyleProp<ViewStyle>;
|
|
34
|
+
/**
|
|
35
|
+
* Force-disable the shimmer regardless of the OS reduced-motion setting.
|
|
36
|
+
* (When omitted, the component reads the platform reduced-motion preference
|
|
37
|
+
* and renders the dots statically when it is on.)
|
|
38
|
+
*/
|
|
39
|
+
reducedMotion?: boolean;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/connection-dots/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,IAAI,EAAE,SAAS,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Native variant of `ContentPanel` — the framed app-content surface.
|
|
3
|
+
*
|
|
4
|
+
* `ContentPanel` is the rounded, bordered panel that holds an app's routed
|
|
5
|
+
* content. On WEB it adds two sticky overlays (a gutter "bleed-mask" box-shadow
|
|
6
|
+
* ring and a continuous rounded border frame) so feed content that bleeds into
|
|
7
|
+
* the rounded corners / lateral gutters is masked while a single seamless border
|
|
8
|
+
* is drawn around the panel — see `index.web.tsx`.
|
|
9
|
+
*
|
|
10
|
+
* On NATIVE none of that applies: there is no document scroll, no sticky
|
|
11
|
+
* positioning, and no bleed to mask, so the panel is simply a rounded, bordered
|
|
12
|
+
* surface wrapping its content. The `framed` and `showStickyFrame` props are
|
|
13
|
+
* accepted for cross-platform API parity but are intentionally no-ops here
|
|
14
|
+
* (mirroring the no-op native fork of `../scroll`).
|
|
15
|
+
*
|
|
16
|
+
* Web bundlers select `./index.web` via the `"browser"` export condition in
|
|
17
|
+
* `package.json`; native bundlers fall through to this file.
|
|
18
|
+
*
|
|
19
|
+
* Styling is NativeWind-className-first; the literal class strings below must
|
|
20
|
+
* stay literal so a consumer's Tailwind content-scan over `lib/**` (and the
|
|
21
|
+
* native `src/**`) picks them up.
|
|
22
|
+
*/
|
|
23
|
+
import React from 'react';
|
|
24
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
25
|
+
/**
|
|
26
|
+
* Width (in px) of the WEB sticky gutter-mask box-shadow ring. Exported for
|
|
27
|
+
* cross-platform API parity (it has no effect on native).
|
|
28
|
+
*/
|
|
29
|
+
export declare const GUTTER_MASK_SPREAD = 40;
|
|
30
|
+
/** Top sticky inset (px) of the framed panel chrome. */
|
|
31
|
+
export declare const PANEL_TOP_INSET = 8;
|
|
32
|
+
/** Bottom sticky inset (px) of the framed panel chrome. */
|
|
33
|
+
export declare const PANEL_BOTTOM_INSET = 8;
|
|
34
|
+
export interface ContentPanelProps {
|
|
35
|
+
children: React.ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the panel is framed (wide screens) or full-bleed (narrow screens).
|
|
38
|
+
* No-op on native — the surface is always a rounded, bordered View.
|
|
39
|
+
*/
|
|
40
|
+
framed: boolean;
|
|
41
|
+
/** Override the surface background utility (defaults to `bg-card`). */
|
|
42
|
+
surfaceClassName?: string;
|
|
43
|
+
surfaceStyle?: StyleProp<ViewStyle>;
|
|
44
|
+
/** Extra utilities for the inner content wrapper. */
|
|
45
|
+
contentClassName?: string;
|
|
46
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
47
|
+
/**
|
|
48
|
+
* Whether to render the WEB sticky border frame. No-op on native (the border
|
|
49
|
+
* is always part of the surface).
|
|
50
|
+
*/
|
|
51
|
+
showStickyFrame?: boolean;
|
|
52
|
+
}
|
|
53
|
+
export declare const ContentPanel: React.NamedExoticComponent<ContentPanelProps>;
|
|
54
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,wDAAwD;AACxD,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAgCD,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web variant of `ContentPanel` — the framed app-content surface.
|
|
3
|
+
*
|
|
4
|
+
* On the web, app content scrolls the DOCUMENT, and a multi-column shell keeps
|
|
5
|
+
* the routed content in a rounded, bordered center panel. Two problems follow
|
|
6
|
+
* from letting feed content bleed to the rounded panel edge, both solved here
|
|
7
|
+
* with sticky, full-viewport-height overlays inside the panel surface:
|
|
8
|
+
*
|
|
9
|
+
* 1. BLEED-MASK overlay (`z-30`): a `box-shadow` ring in the GUTTER color
|
|
10
|
+
* (Bloom `background` token) drawn OVER content that bleeds into the thin
|
|
11
|
+
* lateral gutter / rounded corners. `clip-path: inset(-12px)` keeps that
|
|
12
|
+
* ring off the side columns. It sits below opaque chrome (headers/banners),
|
|
13
|
+
* so it only masks the content's bleed, never the chrome. No border.
|
|
14
|
+
* (`clip-path` MUST be the arbitrary class — RN-web drops it from `style`.)
|
|
15
|
+
*
|
|
16
|
+
* 2. BORDER-FRAME overlay (`z-[120]`): a single 1px rounded `border-border`
|
|
17
|
+
* outline with a transparent interior, ABOVE all content. Being one element
|
|
18
|
+
* above everything, it draws ONE continuous rounded border around all four
|
|
19
|
+
* sides — no seams, no double lines, no per-chrome borders.
|
|
20
|
+
*
|
|
21
|
+
* Both overlays are `position: sticky; top: 8px` with a negative
|
|
22
|
+
* `margin-bottom` so they occupy zero layout height (they overlay the scrolled
|
|
23
|
+
* content rather than displacing it). They render BEFORE the content wrapper so
|
|
24
|
+
* z-index — not DOM order — decides layering.
|
|
25
|
+
*
|
|
26
|
+
* When `framed` is false (narrow screens) the panel is full-bleed: a single
|
|
27
|
+
* flat surface, no rounding, no overlays.
|
|
28
|
+
*
|
|
29
|
+
* Native bundlers use `./index.tsx` (a plain rounded surface); web bundlers
|
|
30
|
+
* select this file via the `"browser"` export condition in `package.json`.
|
|
31
|
+
*
|
|
32
|
+
* Styling is NativeWind-className-first; the literal class strings below MUST
|
|
33
|
+
* stay literal so a consumer's Tailwind content-scan over `lib/**` picks them up
|
|
34
|
+
* (no dynamic concatenation of the arbitrary `web:[…]` / `rounded-radius-28`
|
|
35
|
+
* parts).
|
|
36
|
+
*/
|
|
37
|
+
import React from 'react';
|
|
38
|
+
import { type StyleProp, type ViewStyle } from 'react-native';
|
|
39
|
+
/** Width (in px) of the sticky gutter-mask box-shadow ring. */
|
|
40
|
+
export declare const GUTTER_MASK_SPREAD = 40;
|
|
41
|
+
/** Top sticky inset (px) the framed panel chrome pins to. */
|
|
42
|
+
export declare const PANEL_TOP_INSET = 8;
|
|
43
|
+
/** Bottom sticky inset (px) of the framed panel chrome. */
|
|
44
|
+
export declare const PANEL_BOTTOM_INSET = 8;
|
|
45
|
+
export interface ContentPanelProps {
|
|
46
|
+
children: React.ReactNode;
|
|
47
|
+
/** Framed (wide screens) vs full-bleed (narrow screens). */
|
|
48
|
+
framed: boolean;
|
|
49
|
+
/** Override the surface background utility (defaults to `bg-card`). */
|
|
50
|
+
surfaceClassName?: string;
|
|
51
|
+
surfaceStyle?: StyleProp<ViewStyle>;
|
|
52
|
+
/** Extra utilities for the inner content wrapper. */
|
|
53
|
+
contentClassName?: string;
|
|
54
|
+
contentStyle?: StyleProp<ViewStyle>;
|
|
55
|
+
/** Render the sticky border frame (defaults to true when framed). */
|
|
56
|
+
showStickyFrame?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export declare const ContentPanel: React.NamedExoticComponent<ContentPanelProps>;
|
|
59
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/content-panel/index.web.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAe,MAAM,OAAO,CAAC;AACpC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,6DAA6D;AAC7D,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,2DAA2D;AAC3D,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4DAA4D;IAC5D,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,qEAAqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAwED,eAAO,MAAM,YAAY,+CAA8B,CAAC"}
|
|
@@ -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"}
|