@oxyhq/bloom 0.79.1 → 0.81.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/scroll/index.web.js +52 -18
- package/lib/commonjs/scroll/index.web.js.map +1 -1
- package/lib/commonjs/scroll/scrollable.web.js +9 -3
- package/lib/commonjs/scroll/scrollable.web.js.map +1 -1
- package/lib/commonjs/tabs/Tabs.js +409 -71
- package/lib/commonjs/tabs/Tabs.js.map +1 -1
- package/lib/commonjs/tabs/expo-router/RouterTabs.js +215 -0
- package/lib/commonjs/tabs/expo-router/RouterTabs.js.map +1 -0
- package/lib/commonjs/tabs/expo-router/index.js +13 -0
- package/lib/commonjs/tabs/expo-router/index.js.map +1 -0
- package/lib/commonjs/theme/color-engine/index.js +6 -0
- package/lib/commonjs/theme/color-engine/index.js.map +1 -1
- package/lib/commonjs/theme/color-engine/scheme-variants.js +29 -1
- package/lib/commonjs/theme/color-engine/scheme-variants.js.map +1 -1
- package/lib/commonjs/theme/color-policy.js +54 -10
- package/lib/commonjs/theme/color-policy.js.map +1 -1
- package/lib/commonjs/theme/color-presets.js +14 -2
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js +5 -1
- package/lib/commonjs/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/module/scroll/index.web.js +52 -18
- package/lib/module/scroll/index.web.js.map +1 -1
- package/lib/module/scroll/scrollable.web.js +9 -3
- package/lib/module/scroll/scrollable.web.js.map +1 -1
- package/lib/module/tabs/Tabs.js +417 -73
- package/lib/module/tabs/Tabs.js.map +1 -1
- package/lib/module/tabs/expo-router/RouterTabs.js +210 -0
- package/lib/module/tabs/expo-router/RouterTabs.js.map +1 -0
- package/lib/module/tabs/expo-router/index.js +10 -0
- package/lib/module/tabs/expo-router/index.js.map +1 -0
- package/lib/module/theme/color-engine/index.js +1 -1
- package/lib/module/theme/color-engine/index.js.map +1 -1
- package/lib/module/theme/color-engine/scheme-variants.js +28 -1
- package/lib/module/theme/color-engine/scheme-variants.js.map +1 -1
- package/lib/module/theme/color-policy.js +53 -10
- package/lib/module/theme/color-policy.js.map +1 -1
- package/lib/module/theme/color-presets.js +14 -2
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/color-scope/seed-scope.js +6 -2
- package/lib/module/theme/color-scope/seed-scope.js.map +1 -1
- package/lib/typescript/commonjs/scroll/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/scroll/scrollable.web.d.ts +18 -5
- package/lib/typescript/commonjs/scroll/scrollable.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/tabs/Tabs.d.ts +41 -1
- package/lib/typescript/commonjs/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/commonjs/tabs/expo-router/RouterTabs.d.ts +80 -0
- package/lib/typescript/commonjs/tabs/expo-router/RouterTabs.d.ts.map +1 -0
- package/lib/typescript/commonjs/tabs/expo-router/index.d.ts +9 -0
- package/lib/typescript/commonjs/tabs/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/tabs/types.d.ts +48 -4
- package/lib/typescript/commonjs/tabs/types.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts +1 -1
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts +13 -1
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-policy.d.ts +6 -0
- package/lib/typescript/commonjs/theme/color-policy.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts +1 -1
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/lib/typescript/module/scroll/index.web.d.ts.map +1 -1
- package/lib/typescript/module/scroll/scrollable.web.d.ts +18 -5
- package/lib/typescript/module/scroll/scrollable.web.d.ts.map +1 -1
- package/lib/typescript/module/tabs/Tabs.d.ts +41 -1
- package/lib/typescript/module/tabs/Tabs.d.ts.map +1 -1
- package/lib/typescript/module/tabs/expo-router/RouterTabs.d.ts +80 -0
- package/lib/typescript/module/tabs/expo-router/RouterTabs.d.ts.map +1 -0
- package/lib/typescript/module/tabs/expo-router/index.d.ts +9 -0
- package/lib/typescript/module/tabs/expo-router/index.d.ts.map +1 -0
- package/lib/typescript/module/tabs/types.d.ts +48 -4
- package/lib/typescript/module/tabs/types.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/index.d.ts +1 -1
- package/lib/typescript/module/theme/color-engine/index.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts +13 -1
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-policy.d.ts +6 -0
- package/lib/typescript/module/theme/color-policy.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts +1 -1
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-scope/seed-scope.d.ts.map +1 -1
- package/package.json +15 -1
- package/src/__tests__/Tabs.test.tsx +470 -7
- package/src/__tests__/optional-peer-imports.test.ts +5 -0
- package/src/__tests__/scroll-web.test.tsx +255 -2
- package/src/__tests__/theme.test.ts +2 -1
- package/src/scroll/index.web.tsx +55 -19
- package/src/scroll/scrollable.web.ts +30 -8
- package/src/tabs/Tabs.tsx +518 -83
- package/src/tabs/expo-router/RouterTabs.tsx +268 -0
- package/src/tabs/expo-router/index.ts +8 -0
- package/src/tabs/types.ts +48 -4
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +120 -0
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +70 -0
- package/src/theme/__tests__/policy-legibility.test.ts +12 -4
- package/src/theme/color-engine/index.ts +1 -1
- package/src/theme/color-engine/scheme-variants.ts +38 -1
- package/src/theme/color-policy.ts +68 -14
- package/src/theme/color-presets.ts +11 -2
- package/src/theme/color-scope/seed-scope.ts +6 -2
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* expo-router bindings for the in-screen tab strip.
|
|
5
|
+
*
|
|
6
|
+
* This subpath (`@oxyhq/bloom/tabs/expo-router`) is the ONLY place in the tabs
|
|
7
|
+
* feature allowed to import `expo-router`, which is why it is a separate entry:
|
|
8
|
+
* the core `@oxyhq/bloom/tabs` stays usable in an app with a different router,
|
|
9
|
+
* or none, and the optional peer is never pulled into a bundle that does not
|
|
10
|
+
* ask for it. Same split as `tab-bar` / `tab-bar/expo-router` and
|
|
11
|
+
* `scroll` / `scroll/expo-router`.
|
|
12
|
+
*
|
|
13
|
+
* Everything routing-shaped lives here on purpose: which tab the route means,
|
|
14
|
+
* what a committed swipe navigates to, and which links to warm. The strip
|
|
15
|
+
* itself stays presentational and knows only about measured geometry.
|
|
16
|
+
*/
|
|
17
|
+
import { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
18
|
+
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
19
|
+
import { runOnJS } from 'react-native-reanimated';
|
|
20
|
+
import { router, usePathname } from 'expo-router';
|
|
21
|
+
import { Tabs, TabsTrigger } from "../Tabs.js";
|
|
22
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
23
|
+
/**
|
|
24
|
+
* Resolve which item the current route belongs to.
|
|
25
|
+
*
|
|
26
|
+
* LONGEST matching prefix, on a segment boundary — not an exact match. All
|
|
27
|
+
* three properties matter:
|
|
28
|
+
*
|
|
29
|
+
* - A prefix is needed because a tab may own a subtree (`/feeds/1/topics` and
|
|
30
|
+
* anything under it), and an exact match would drop the underline the moment
|
|
31
|
+
* the user goes one level deeper.
|
|
32
|
+
* - LONGEST is needed because the default tab's href is a prefix of every
|
|
33
|
+
* sibling's (`/@ana` vs `/@ana/replies`), so a first-match rule would light
|
|
34
|
+
* up the default tab on every tab.
|
|
35
|
+
* - The segment boundary is what stops `/feeds/12` from matching `/feeds/1`.
|
|
36
|
+
*
|
|
37
|
+
* Returns `undefined` when nothing matches, which is a real state — a strip
|
|
38
|
+
* rendered by a LAYOUT keeps rendering while a child route outside the tab set
|
|
39
|
+
* is showing — and leaves the underline hidden rather than parked on a lie.
|
|
40
|
+
*/
|
|
41
|
+
function matchActiveValue(items, pathname) {
|
|
42
|
+
let best;
|
|
43
|
+
for (const item of items) {
|
|
44
|
+
// `Href` is a string or an object; only a string form can be compared to a
|
|
45
|
+
// pathname, and an object form describes params we cannot resolve here.
|
|
46
|
+
if (typeof item.href !== 'string') continue;
|
|
47
|
+
// Compare paths only: a query string describes what the tab shows, not
|
|
48
|
+
// which tab it is, and a trailing slash is the same route either way.
|
|
49
|
+
const [path = ''] = item.href.split('?');
|
|
50
|
+
const href = path.replace(/\/$/, '');
|
|
51
|
+
const isMatch = pathname === href || pathname.startsWith(`${href}/`);
|
|
52
|
+
if (!isMatch) continue;
|
|
53
|
+
if (!best || href.length > best.length) {
|
|
54
|
+
best = {
|
|
55
|
+
value: item.value,
|
|
56
|
+
length: href.length
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return best?.value;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* A tab strip whose selection IS the route.
|
|
65
|
+
*
|
|
66
|
+
* Render it in the LAYOUT that owns the tabs, above the `<Slot/>` that renders
|
|
67
|
+
* them — not inside the tab screens themselves. That placement is the whole
|
|
68
|
+
* point, and it is load-bearing twice over: a strip inside the screens is
|
|
69
|
+
* unmounted and rebuilt by every navigation, so its underline has nothing to
|
|
70
|
+
* animate from and the chrome blanks while the incoming route's chunk loads;
|
|
71
|
+
* and a GESTURE inside the screens would be destroyed by the very navigation it
|
|
72
|
+
* commits, mid-release.
|
|
73
|
+
*
|
|
74
|
+
* ```tsx
|
|
75
|
+
* // app/(app)/[username]/_layout.tsx
|
|
76
|
+
* <RouterTabs
|
|
77
|
+
* items={[
|
|
78
|
+
* { value: 'posts', label: 'Posts', href: `/${username}` },
|
|
79
|
+
* { value: 'replies', label: 'Replies', href: `/${username}/replies` },
|
|
80
|
+
* ]}
|
|
81
|
+
* />
|
|
82
|
+
* <Slot />
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
export function RouterTabs({
|
|
86
|
+
items,
|
|
87
|
+
onReselect,
|
|
88
|
+
swipeEnabled = true,
|
|
89
|
+
...tabsProps
|
|
90
|
+
}) {
|
|
91
|
+
const pathname = usePathname();
|
|
92
|
+
const activeValue = useMemo(() => matchActiveValue(items, pathname), [items, pathname]);
|
|
93
|
+
const dragRef = useRef(null);
|
|
94
|
+
// What releasing right now would commit. A ref rather than state: it is
|
|
95
|
+
// written on every frame of the drag and read once, and re-rendering the
|
|
96
|
+
// strip mid-gesture would fight the animation the gesture is driving.
|
|
97
|
+
const pendingRef = useRef(null);
|
|
98
|
+
const navigateTo = useCallback(value => {
|
|
99
|
+
const target = items.find(item => item.value === value);
|
|
100
|
+
if (!target) return;
|
|
101
|
+
// PUSH, not replace: a history entry per tab is what makes Back return to
|
|
102
|
+
// the tab the reader came from instead of leaving the screen entirely.
|
|
103
|
+
router.push(target.href);
|
|
104
|
+
}, [items]);
|
|
105
|
+
const handlePress = useCallback(item => {
|
|
106
|
+
if (item.value === activeValue) {
|
|
107
|
+
onReselect?.(item.value);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
navigateTo(item.value);
|
|
111
|
+
}, [activeValue, onReselect, navigateTo]);
|
|
112
|
+
const onDrag = useCallback(translationX => {
|
|
113
|
+
pendingRef.current = dragRef.current?.drag(translationX) ?? null;
|
|
114
|
+
}, []);
|
|
115
|
+
|
|
116
|
+
// `onEnd` does not fire for every terminated gesture, and `onFinalize` fires
|
|
117
|
+
// for all of them — including after `onEnd`. Guarding on the ref being
|
|
118
|
+
// non-null is what makes the second call a no-op instead of a double commit.
|
|
119
|
+
const releasedRef = useRef(true);
|
|
120
|
+
const onRelease = useCallback(() => {
|
|
121
|
+
if (releasedRef.current) return;
|
|
122
|
+
releasedRef.current = true;
|
|
123
|
+
const committed = pendingRef.current;
|
|
124
|
+
pendingRef.current = null;
|
|
125
|
+
// The underline commits first and instantly: it lives in the layout, it
|
|
126
|
+
// survives the swap, and it is the honest signal the gesture was accepted.
|
|
127
|
+
// The content area arrives when its chunk does.
|
|
128
|
+
dragRef.current?.release(committed);
|
|
129
|
+
if (committed !== null) navigateTo(committed);
|
|
130
|
+
}, [navigateTo]);
|
|
131
|
+
const onBegin = useCallback(() => {
|
|
132
|
+
releasedRef.current = false;
|
|
133
|
+
}, []);
|
|
134
|
+
const panGesture = useMemo(() => Gesture.Pan()
|
|
135
|
+
// Horizontal intent only. This is a hint to the gesture system and is
|
|
136
|
+
// NOT what protects vertical scrolling on web — see `touchAction` below.
|
|
137
|
+
.activeOffsetX([-12, 12]).failOffsetY([-12, 12]).onBegin(() => {
|
|
138
|
+
runOnJS(onBegin)();
|
|
139
|
+
}).onUpdate(event => {
|
|
140
|
+
runOnJS(onDrag)(event.translationX);
|
|
141
|
+
}).onFinalize(() => {
|
|
142
|
+
runOnJS(onRelease)();
|
|
143
|
+
}), [onBegin, onDrag, onRelease]);
|
|
144
|
+
|
|
145
|
+
// Warm every OTHER tab's async chunk. That fetch is the ~300ms the content
|
|
146
|
+
// area would otherwise spend empty after a commit, and a swipe offers no
|
|
147
|
+
// hover to warm on, so it is done up front rather than on interaction.
|
|
148
|
+
//
|
|
149
|
+
// `router.prefetch` — the public imperative API (declared in expo-router's
|
|
150
|
+
// `global-state/router.d.ts`) — rather than wrapping each trigger in
|
|
151
|
+
// `<Link prefetch asChild>`. Both reasons are about the WRAPPER, not about
|
|
152
|
+
// prefetching: `asChild` is Radix's `Slot`, which COMPOSES event handlers, so
|
|
153
|
+
// the trigger's own `onPress` and the link's navigation would both run — and
|
|
154
|
+
// the link's push knows nothing about `onReselect`, so re-tapping the active
|
|
155
|
+
// tab would push a duplicate entry and make Back appear to do nothing. It
|
|
156
|
+
// also injects an `href` a `Pressable` ignores. The prefetching itself is
|
|
157
|
+
// identical: `<Link prefetch>` renders `<Prefetch href/>` beside its element
|
|
158
|
+
// and does nothing else.
|
|
159
|
+
//
|
|
160
|
+
// Known trade: a real `<Link>` would render a web anchor, which is what gives
|
|
161
|
+
// middle-click and open-in-new-tab. A tab strip arguably wants that; getting
|
|
162
|
+
// both needs the trigger to render an anchor itself, which is a change to the
|
|
163
|
+
// core rather than to this file.
|
|
164
|
+
useEffect(() => {
|
|
165
|
+
for (const item of items) {
|
|
166
|
+
if (item.value === activeValue || item.disabled) continue;
|
|
167
|
+
router.prefetch(item.href);
|
|
168
|
+
}
|
|
169
|
+
}, [items, activeValue]);
|
|
170
|
+
const strip =
|
|
171
|
+
/*#__PURE__*/
|
|
172
|
+
// `hasSelection` is what stops the underline asserting a tab while a
|
|
173
|
+
// NON-TAB sibling route is showing — the layout that renders this strip
|
|
174
|
+
// renders those too (a profile's `/followers` beside its tab routes).
|
|
175
|
+
_jsx(Tabs, {
|
|
176
|
+
...tabsProps,
|
|
177
|
+
ref: dragRef,
|
|
178
|
+
hasSelection: activeValue !== undefined,
|
|
179
|
+
children: items.map(item => /*#__PURE__*/_jsx(TabsTrigger, {
|
|
180
|
+
value: item.value,
|
|
181
|
+
label: item.label,
|
|
182
|
+
icon: item.icon,
|
|
183
|
+
count: item.count,
|
|
184
|
+
disabled: item.disabled
|
|
185
|
+
// Focus, never a press, is what drives the underline — so a deep
|
|
186
|
+
// link, a browser Back and a back gesture animate exactly like a tap.
|
|
187
|
+
,
|
|
188
|
+
isFocused: item.value === activeValue,
|
|
189
|
+
onPress: () => handlePress(item)
|
|
190
|
+
}, item.value))
|
|
191
|
+
});
|
|
192
|
+
if (!swipeEnabled) return strip;
|
|
193
|
+
return (
|
|
194
|
+
/*#__PURE__*/
|
|
195
|
+
// `touchAction="pan-y"` is MANDATORY and is the landmine of this file.
|
|
196
|
+
// RNGH sets the detector's view to `touch-action: none` on web
|
|
197
|
+
// (`GestureHandlerWebDelegate.js`), which disables browser-native VERTICAL
|
|
198
|
+
// scrolling on that element. `failOffsetY` above does not protect against
|
|
199
|
+
// it: that is a JS decision taken after `touch-action` has already told the
|
|
200
|
+
// browser not to scroll. Removing this prop is silent on native and breaks
|
|
201
|
+
// scrolling on mobile web.
|
|
202
|
+
_jsx(GestureDetector, {
|
|
203
|
+
gesture: panGesture,
|
|
204
|
+
touchAction: "pan-y",
|
|
205
|
+
children: strip
|
|
206
|
+
})
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
RouterTabs.displayName = 'RouterTabs';
|
|
210
|
+
//# sourceMappingURL=RouterTabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useMemo","useRef","Gesture","GestureDetector","runOnJS","router","usePathname","Tabs","TabsTrigger","jsx","_jsx","matchActiveValue","items","pathname","best","item","href","path","split","replace","isMatch","startsWith","length","value","RouterTabs","onReselect","swipeEnabled","tabsProps","activeValue","dragRef","pendingRef","navigateTo","target","find","push","handlePress","onDrag","translationX","current","drag","releasedRef","onRelease","committed","release","onBegin","panGesture","Pan","activeOffsetX","failOffsetY","onUpdate","event","onFinalize","disabled","prefetch","strip","ref","hasSelection","undefined","children","map","label","icon","count","isFocused","onPress","gesture","touchAction","displayName"],"sourceRoot":"../../../../src","sources":["tabs/expo-router/RouterTabs.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Entry for `@oxyhq/bloom/tabs/expo-router`. The component lives in a sibling
|
|
5
|
+
* module because this file is the published entry path and must stay stable;
|
|
6
|
+
* the split also keeps the router binding in one place, which is what the
|
|
7
|
+
* optional-peer allowlist asserts about.
|
|
8
|
+
*/
|
|
9
|
+
export { RouterTabs } from "./RouterTabs.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["RouterTabs"],"sourceRoot":"../../../../src","sources":["tabs/expo-router/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,UAAU,QAAQ,iBAAc","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
export { Hct } from "./hct.js";
|
|
13
13
|
export { TonalPalette } from "./tonal-palette.js";
|
|
14
14
|
export { DynamicScheme } from "./dynamic-scheme.js";
|
|
15
|
-
export { buildScheme, schemeVibrant, schemeExpressive, schemeTonalSpot, schemeNeutral } from "./scheme-variants.js";
|
|
15
|
+
export { buildScheme, schemeVibrant, schemeExpressive, schemeTonalSpot, schemeNeutral, schemeMonochrome } from "./scheme-variants.js";
|
|
16
16
|
export { Roles } from "./color-roles.js";
|
|
17
17
|
export { ColorRole } from "./color-role.js";
|
|
18
18
|
export { quantizeWu } from "./quantizer-wu.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Hct","TonalPalette","DynamicScheme","buildScheme","schemeVibrant","schemeExpressive","schemeTonalSpot","schemeNeutral","Roles","ColorRole","quantizeWu","score","quantizeImage","seedsFromImagePixels","seedHexFromImagePixels","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","argbFromHex","hex","h","replace","v","length","parseInt","hexFromArgb","argb","r","toString","padStart","g","b","generateRoleColors","opts","scheme","variant","fromInt","seed","isDark","contrastLevel","secondarySource","secondarySeed","undefined","tertiarySource","tertiarySeed","out","name","Object","keys","getArgb"],"sourceRoot":"../../../../src","sources":["theme/color-engine/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,GAAG,QAAQ,UAAO;AAC3B,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,aAAa,QAAQ,qBAAkB;AAChD,SAASC,WAAW,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,aAAa,QAAQ,sBAAmB;
|
|
1
|
+
{"version":3,"names":["Hct","TonalPalette","DynamicScheme","buildScheme","schemeVibrant","schemeExpressive","schemeTonalSpot","schemeNeutral","schemeMonochrome","Roles","ColorRole","quantizeWu","score","quantizeImage","seedsFromImagePixels","seedHexFromImagePixels","argbFromRgb","redFromArgb","greenFromArgb","blueFromArgb","argbFromHex","hex","h","replace","v","length","parseInt","hexFromArgb","argb","r","toString","padStart","g","b","generateRoleColors","opts","scheme","variant","fromInt","seed","isDark","contrastLevel","secondarySource","secondarySeed","undefined","tertiarySource","tertiarySeed","out","name","Object","keys","getArgb"],"sourceRoot":"../../../../src","sources":["theme/color-engine/index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -119,12 +119,39 @@ export function schemeNeutral(source, isDark, contrastLevel, accents = {}) {
|
|
|
119
119
|
neutralVariantPalette: TonalPalette.fromHueAndChroma(source.hue, 2.0)
|
|
120
120
|
});
|
|
121
121
|
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* No colour at all: every palette is greyscale, so the seed's hue is irrelevant
|
|
125
|
+
* and only its tone survives. This is the variant the `isMonochrome` role
|
|
126
|
+
* branches in `color-roles` were written for — they push `primary` to the far end
|
|
127
|
+
* of the scale (tone 0 on a light page, 100 on a dark one) rather than the
|
|
128
|
+
* mid-tone the chromatic curves would pick, which is what keeps a black-and-white
|
|
129
|
+
* theme from reading as a grey one.
|
|
130
|
+
*
|
|
131
|
+
* A pinned accent is ignored on purpose: honouring it would put one coloured
|
|
132
|
+
* family back into a scheme whose entire point is that nothing is coloured.
|
|
133
|
+
*/
|
|
134
|
+
export function schemeMonochrome(source, isDark, contrastLevel) {
|
|
135
|
+
const grey = () => TonalPalette.fromHueAndChroma(source.hue, 0);
|
|
136
|
+
return new DynamicScheme({
|
|
137
|
+
sourceColorArgb: source.toInt(),
|
|
138
|
+
variant: Variant.MONOCHROME,
|
|
139
|
+
contrastLevel,
|
|
140
|
+
isDark,
|
|
141
|
+
primaryPalette: grey(),
|
|
142
|
+
secondaryPalette: grey(),
|
|
143
|
+
tertiaryPalette: grey(),
|
|
144
|
+
neutralPalette: grey(),
|
|
145
|
+
neutralVariantPalette: grey()
|
|
146
|
+
});
|
|
147
|
+
}
|
|
122
148
|
const BUILDERS = {
|
|
123
149
|
vivid: schemeVivid,
|
|
124
150
|
vibrant: schemeVibrant,
|
|
125
151
|
expressive: schemeExpressive,
|
|
126
152
|
tonalSpot: schemeTonalSpot,
|
|
127
|
-
neutral: schemeNeutral
|
|
153
|
+
neutral: schemeNeutral,
|
|
154
|
+
monochrome: schemeMonochrome
|
|
128
155
|
};
|
|
129
156
|
|
|
130
157
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DynamicScheme","sanitizeDegreesDouble","TonalPalette","Variant","accentPalette","source","derived","undefined","fromInt","toInt","VIBRANT_HUES","VIBRANT_SECONDARY_ROTATIONS","VIBRANT_TERTIARY_ROTATIONS","EXPRESSIVE_HUES","EXPRESSIVE_SECONDARY_ROTATIONS","EXPRESSIVE_TERTIARY_ROTATIONS","schemeVibrant","isDark","contrastLevel","accents","sourceColorArgb","variant","VIBRANT","primaryPalette","fromHueAndChroma","hue","secondaryPalette","secondarySource","getRotatedHue","tertiaryPalette","tertiarySource","neutralPalette","neutralVariantPalette","schemeVivid","schemeExpressive","EXPRESSIVE","schemeTonalSpot","TONAL_SPOT","schemeNeutral","NEUTRAL","BUILDERS","vivid","vibrant","expressive","tonalSpot","neutral","buildScheme"],"sourceRoot":"../../../../src","sources":["theme/color-engine/scheme-variants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,qBAAkB;AAEhD,SAASC,qBAAqB,QAAQ,iBAAc;AACpD,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,OAAO,QAAQ,cAAW;;
|
|
1
|
+
{"version":3,"names":["DynamicScheme","sanitizeDegreesDouble","TonalPalette","Variant","accentPalette","source","derived","undefined","fromInt","toInt","VIBRANT_HUES","VIBRANT_SECONDARY_ROTATIONS","VIBRANT_TERTIARY_ROTATIONS","EXPRESSIVE_HUES","EXPRESSIVE_SECONDARY_ROTATIONS","EXPRESSIVE_TERTIARY_ROTATIONS","schemeVibrant","isDark","contrastLevel","accents","sourceColorArgb","variant","VIBRANT","primaryPalette","fromHueAndChroma","hue","secondaryPalette","secondarySource","getRotatedHue","tertiaryPalette","tertiarySource","neutralPalette","neutralVariantPalette","schemeVivid","schemeExpressive","EXPRESSIVE","schemeTonalSpot","TONAL_SPOT","schemeNeutral","NEUTRAL","schemeMonochrome","grey","MONOCHROME","BUILDERS","vivid","vibrant","expressive","tonalSpot","neutral","monochrome","buildScheme"],"sourceRoot":"../../../../src","sources":["theme/color-engine/scheme-variants.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -125,6 +125,35 @@ const SUBTLE_ALPHA = {
|
|
|
125
125
|
dark: 0.24
|
|
126
126
|
};
|
|
127
127
|
|
|
128
|
+
/**
|
|
129
|
+
* A seed at or below this chroma has no colour to derive from, so the whole
|
|
130
|
+
* palette goes greyscale — the black-and-white theme. Keyed on the seed rather
|
|
131
|
+
* than on a flag, so picking any grey in a colour wheel lands there too instead
|
|
132
|
+
* of on a nearly-grey approximation of it.
|
|
133
|
+
*/
|
|
134
|
+
const MONOCHROME_MAX_CHROMA = 6;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Whether a seed carries no colour to derive a theme from — the one authority for
|
|
138
|
+
* that question, so the policy and the scheme choice can never disagree about a
|
|
139
|
+
* given seed and produce a grey palette wearing chromatic surfaces.
|
|
140
|
+
*/
|
|
141
|
+
export function isColourlessSeed(seedHex) {
|
|
142
|
+
return Hct.fromInt(argbFromHex(seedHex)).chroma <= MONOCHROME_MAX_CHROMA;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** Where a monochrome brand fill sits: near-black on a white page, near-white on a black one. */
|
|
146
|
+
const MONOCHROME_FILL_TONE = {
|
|
147
|
+
light: 12,
|
|
148
|
+
dark: 94
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
/** The quiet member of a monochrome trio — the only one that is actually grey. */
|
|
152
|
+
const MONOCHROME_SECONDARY_TONE = {
|
|
153
|
+
light: 36,
|
|
154
|
+
dark: 72
|
|
155
|
+
};
|
|
156
|
+
|
|
128
157
|
/** Split-complementary: the two accents sit either side of the seed's complement. */
|
|
129
158
|
const SPLIT_ROTATIONS = [150, 210];
|
|
130
159
|
|
|
@@ -204,7 +233,8 @@ function vividHueNear(hue) {
|
|
|
204
233
|
* ceasing to be itself: yellow turns to brown and lime to moss. Those keep their
|
|
205
234
|
* own tone and take a black label instead, which is what a bright yellow button
|
|
206
235
|
* wants anyway. The 25-tone budget is what separates the two cases, and it is
|
|
207
|
-
* why 11 of the 13 presets carry white and exactly the two light ones
|
|
236
|
+
* why 11 of the 13 chromatic presets carry white and exactly the two light ones
|
|
237
|
+
* do not. (`mono` sits outside this rule — see MONOCHROME_FILL_TONE.)
|
|
208
238
|
*/
|
|
209
239
|
function whiteLabelTone(palette, seedTone, isDark) {
|
|
210
240
|
// LIGHT: every fill comes down, no exemption. On a near-white page a bright
|
|
@@ -296,17 +326,22 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
296
326
|
// tone <= 49, so that is the ceiling — in dark as much as in light. Letting the
|
|
297
327
|
// dark fill sit at the seed's own tone instead makes it brighter, but every one
|
|
298
328
|
// of those labels turns black, which costs more than the brightness buys.
|
|
329
|
+
const monochrome = seed.chroma <= MONOCHROME_MAX_CHROMA;
|
|
299
330
|
// DARK keys off the seed itself so the fill IS the brand hex; LIGHT uses the
|
|
300
331
|
// max-chroma palette, which is what stops a deepened fill from going pastel.
|
|
301
|
-
|
|
302
|
-
|
|
332
|
+
// A monochrome seed has no chroma to preserve either way, and its fill goes to
|
|
333
|
+
// the far end of the scale rather than the white-label ceiling: a mid-grey
|
|
334
|
+
// button reads as disabled, where near-black on white reads as the primary
|
|
335
|
+
// action.
|
|
336
|
+
const brandPalette = monochrome ? TonalPalette.fromHueAndChroma(0, 0) : isDark ? TonalPalette.fromInt(argbFromHex(seedHex)) : TonalPalette.fromHueAndChroma(seed.hue, 200);
|
|
337
|
+
const primary = fillPair(brandPalette, monochrome ? isDark ? MONOCHROME_FILL_TONE.dark : MONOCHROME_FILL_TONE.light : whiteLabelTone(brandPalette, seed.tone, isDark));
|
|
303
338
|
const tokens = {
|
|
304
339
|
'--primary': primary.fill,
|
|
305
340
|
'--primary-foreground': primary.foreground,
|
|
306
341
|
// The accent legible as TEXT on the page surface — the job M3's `primary`
|
|
307
342
|
// does correctly, and which the fill must stop trying to do at the same time.
|
|
308
343
|
'--primary-text': roles.primary,
|
|
309
|
-
'--primary-subtle': rgba(TonalPalette.fromHueAndChroma(seed.hue, 200).tone(SUBTLE_SOURCE_TONE), isDark ? SUBTLE_ALPHA.dark : SUBTLE_ALPHA.light),
|
|
344
|
+
'--primary-subtle': rgba(TonalPalette.fromHueAndChroma(seed.hue, monochrome ? 0 : 200).tone(SUBTLE_SOURCE_TONE), isDark ? SUBTLE_ALPHA.dark : SUBTLE_ALPHA.light),
|
|
310
345
|
'--ring': roles.primary,
|
|
311
346
|
// `--card` is the one surface MAPPING the policy changes.
|
|
312
347
|
// `surfaceContainerLowest` is M3's RECESSED step: in dark it sits at tone 4
|
|
@@ -316,7 +351,7 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
316
351
|
'--card': isDark ? roles.surfaceContainer : roles.surfaceContainerLowest,
|
|
317
352
|
// A touch darker than M3's page background: near-white reads as unfinished
|
|
318
353
|
// next to the card, and the extra step gives the surface ramp somewhere to sit.
|
|
319
|
-
'--background': rgb(TonalPalette.fromHueAndChroma(seed.hue, 10).tone(isDark ? 4 : 96)),
|
|
354
|
+
'--background': rgb(TonalPalette.fromHueAndChroma(seed.hue, monochrome ? 0 : 10).tone(isDark ? 4 : 96)),
|
|
320
355
|
// `--accent` stays what every consumer actually uses it for: a hover surface.
|
|
321
356
|
'--accent': roles.surfaceContainerHigh,
|
|
322
357
|
'--accent-foreground': roles.onSurfaceVariant
|
|
@@ -327,9 +362,11 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
327
362
|
const hue = pin !== undefined ? Hct.fromInt(argbFromHex(pin)).hue : hues[role];
|
|
328
363
|
// One hue, three palettes. Every member shares it, so the family still reads
|
|
329
364
|
// as one colour; only how loudly each speaks differs.
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
const
|
|
365
|
+
// A monochrome theme has no accents to rotate to; the trio becomes a ladder
|
|
366
|
+
// of greys, which still separates a standout button from a quiet one.
|
|
367
|
+
const fillPalette = TonalPalette.fromHueAndChroma(hue, monochrome ? 0 : ACCENT_CHROMA);
|
|
368
|
+
const textPalette = TonalPalette.fromHueAndChroma(hue, monochrome ? 0 : TEXT_CHROMA);
|
|
369
|
+
const vividPalette = TonalPalette.fromHueAndChroma(hue, monochrome ? 0 : 200);
|
|
333
370
|
// DARK sits at the hue's peak tone, floored by the same rule the brand fill
|
|
334
371
|
// uses: some hues peak dark (violet at 35), and rendering them there gives a
|
|
335
372
|
// slab rather than a highlight. LIGHT goes deep like every other fill, but
|
|
@@ -345,7 +382,12 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
345
382
|
// black. The accent chroma cap already keeps these hues out of neon territory,
|
|
346
383
|
// and the hue itself is the caller's brand rather than ours to move. The
|
|
347
384
|
// analyzer still runs where it was designed to, inside `color-roles`.
|
|
348
|
-
|
|
385
|
+
// Monochrome keeps `tertiary` AT the brand fill rather than a step off it:
|
|
386
|
+
// tertiary is what a compose button and a FAB paint with, and those are the
|
|
387
|
+
// primary action — a step of grey between them and `primary` reads as two
|
|
388
|
+
// buttons disagreeing, not as hierarchy. `secondary` carries the whole
|
|
389
|
+
// demotion instead.
|
|
390
|
+
const tone = monochrome ? role === 'tertiary' ? isDark ? MONOCHROME_FILL_TONE.dark : MONOCHROME_FILL_TONE.light : isDark ? MONOCHROME_SECONDARY_TONE.dark : MONOCHROME_SECONDARY_TONE.light : accentTone(hue, isDark);
|
|
349
391
|
const pair = fillPair(fillPalette, tone);
|
|
350
392
|
tokens[`--${role}`] = pair.fill;
|
|
351
393
|
tokens[`--${role}-foreground`] = pair.foreground;
|
|
@@ -357,7 +399,8 @@ export function buildPolicyTokens(seedHex, isDark, roles, pinned = {}) {
|
|
|
357
399
|
// The old ramp drew all five from the primary/secondary/tertiary trio, which
|
|
358
400
|
// spans ~35 degrees, so adjacent series were indistinguishable.
|
|
359
401
|
for (let i = 0; i < 5; i += 1) {
|
|
360
|
-
|
|
402
|
+
// Greyscale charts spread by TONE instead of hue — the only axis left.
|
|
403
|
+
tokens[`--chart-${i + 1}`] = monochrome ? rgb(TonalPalette.fromHueAndChroma(0, 0).tone(isDark ? 40 + i * 13 : 78 - i * 13)) : rgb(TonalPalette.fromHueAndChroma((seed.hue + i * 72) % 360, 60).tone(isDark ? 72 : 48));
|
|
361
404
|
}
|
|
362
405
|
|
|
363
406
|
// The status family, themed per mode. The four frozen hexes it replaces all
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["argbFromHex","Hct","TonalPalette","blueFromArgb","greenFromArgb","redFromArgb","STATUS_SEEDS","success","error","warning","info","AA","rgb","argb","rgba","alpha","contrastOf","onWhite","channel","v","c","Math","pow","luminance","foregroundFor","noLegibleForeground","LIGHT_FILL_TONE","DARK_FILL_TONE","TONE_BUDGET","DARK_SEED_FLOOR","DARK_ACCENT_FLOOR","ACCENT_CHROMA","TEXT_TONE","light","dark","TEXT_CHROMA","SUBTLE_SOURCE_TONE","SUBTLE_ALPHA","SPLIT_ROTATIONS","VIVID_SNAP_WINDOW","VIVID_SNAP_MIN_GAIN","MIN_ACCENT_SEPARATION","DESTRUCTIVE_PROXIMITY","hueDistance","a","b","d","abs","min","peakTone","hue","palette","fromHueAndChroma","bestTone","bestChroma","tone","chroma","fromInt","peakChroma","vividHueNear","baseChroma","bestHue","delta","candidate","whiteLabelTone","seedTone","isDark","max","accentTone","peak","fillPair","startTone","fill","foreground","accentHues","seedHue","firstRotation","secondRotation","geometricA","geometricB","geometricStandout","quiet","snapped","standout","errorHue","secondary","tertiary","buildPolicyTokens","seedHex","roles","pinned","seed","brandPalette","primary","tokens","surfaceContainer","surfaceContainerLowest","surfaceContainerHigh","onSurfaceVariant","hues","role","pin","undefined","fillPalette","textPalette","vividPalette","pair","i","hex","Object","entries","status"],"sourceRoot":"../../../src","sources":["theme/color-policy.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,WAAW,QAAyB,yBAAgB;AAC7D,SAASC,GAAG,QAAQ,uBAAoB;AACxC,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,YAAY,EAAEC,aAAa,EAAEC,WAAW,QAAQ,+BAA4B;;AAErF;AACA,OAAO,MAAMC,YAAY,GAAG;EAC1BC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,SAAS;EAChBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAU;;AAEV;;AAMA;;AAGA,MAAMC,EAAE,GAAG,GAAG;AAEd,MAAMC,GAAG,GAAIC,IAAY,IACvB,OAAOR,WAAW,CAACQ,IAAI,CAAC,IAAIT,aAAa,CAACS,IAAI,CAAC,IAAIV,YAAY,CAACU,IAAI,CAAC,GAAG;;AAE1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,IAAI,GAAGA,CAACD,IAAY,EAAEE,KAAa,KACvC,QAAQV,WAAW,CAACQ,IAAI,CAAC,KAAKT,aAAa,CAACS,IAAI,CAAC,KAAKV,YAAY,CAACU,IAAI,CAAC,KAAKE,KAAK,GAAG;;AAEvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAACH,IAAY,EAAEI,OAAgB,EAAU;EAC1D,MAAMC,OAAO,GAAIC,CAAS,IAAa;IACrC,MAAMC,CAAC,GAAGD,CAAC,GAAG,GAAG;IACjB,OAAOC,CAAC,IAAI,OAAO,GAAGA,CAAC,GAAG,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAACF,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,GAAG,CAAC;EACtE,CAAC;EACD,MAAMG,SAAS,GACb,MAAM,GAAGL,OAAO,CAACb,WAAW,CAACQ,IAAI,CAAC,CAAC,GACnC,MAAM,GAAGK,OAAO,CAACd,aAAa,CAACS,IAAI,CAAC,CAAC,GACrC,MAAM,GAAGK,OAAO,CAACf,YAAY,CAACU,IAAI,CAAC,CAAC;EACtC,OAAOI,OAAO,GAAG,IAAI,IAAIM,SAAS,GAAG,IAAI,CAAC,GAAG,CAACA,SAAS,GAAG,IAAI,IAAI,IAAI;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAIX,IAAY,IACjCG,UAAU,CAACH,IAAI,EAAE,IAAI,CAAC,IAAIF,EAAE,GAAG,kBAAkB,GAAG,YAAY;AAElE,MAAMc,mBAAmB,GAAIZ,IAAY,IACvCG,UAAU,CAACH,IAAI,EAAE,IAAI,CAAC,GAAGF,EAAE,IAAIK,UAAU,CAACH,IAAI,EAAE,KAAK,CAAC,GAAGF,EAAE;;AAE7D;AACA,MAAMe,eAAe,GAAG,EAAE;;AAE1B;AACA,MAAMC,cAAc,GAAG,EAAE;;AAEzB;AACA,MAAMC,WAAW,GAAG,EAAE;;AAEtB;AACA,MAAMC,eAAe,GAAG,EAAE;;AAE1B;AACA;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMC,aAAa,GAAG,EAAE;;AAExB;AACA,MAAMC,SAAS,GAAG;EAAEC,KAAK,EAAE,EAAE;EAAEC,IAAI,EAAE;AAAG,CAAU;AAClD,MAAMC,WAAW,GAAG,EAAE;;AAEtB;AACA,MAAMC,kBAAkB,GAAG,EAAE;AAC7B,MAAMC,YAAY,GAAG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;;AAEzD;AACA,MAAMI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU;;AAE3C;AACA,MAAMC,iBAAiB,GAAG,EAAE;AAC5B,MAAMC,mBAAmB,GAAG,EAAE;;AAE9B;AACA,MAAMC,qBAAqB,GAAG,EAAE;;AAEhC;AACA,MAAMC,qBAAqB,GAAG,EAAE;AAEhC,SAASC,WAAWA,CAACC,CAAS,EAAEC,CAAS,EAAU;EACjD,MAAMC,CAAC,GAAGzB,IAAI,CAAC0B,GAAG,CAACH,CAAC,GAAGC,CAAC,CAAC,GAAG,GAAG;EAC/B,OAAOxB,IAAI,CAAC2B,GAAG,CAACF,CAAC,EAAE,GAAG,GAAGA,CAAC,CAAC;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,QAAQA,CAACC,GAAW,EAAU;EACrC,MAAMC,OAAO,GAAGjD,YAAY,CAACkD,gBAAgB,CAACF,GAAG,EAAE,GAAG,CAAC;EACvD,IAAIG,QAAQ,GAAG,EAAE;EACjB,IAAIC,UAAU,GAAG,CAAC,CAAC;EACnB,KAAK,IAAIC,IAAI,GAAG,EAAE,EAAEA,IAAI,IAAI,EAAE,EAAEA,IAAI,IAAI,CAAC,EAAE;IACzC,MAAMC,MAAM,GAAGvD,GAAG,CAACwD,OAAO,CAACN,OAAO,CAACI,IAAI,CAACA,IAAI,CAAC,CAAC,CAACC,MAAM;IACrD,IAAIA,MAAM,GAAGF,UAAU,EAAE;MACvBA,UAAU,GAAGE,MAAM;MACnBH,QAAQ,GAAGE,IAAI;IACjB;EACF;EACA,OAAOF,QAAQ;AACjB;;AAEA;AACA,SAASK,UAAUA,CAACR,GAAW,EAAU;EACvC,OAAOjD,GAAG,CAACwD,OAAO,CAACvD,YAAY,CAACkD,gBAAgB,CAACF,GAAG,EAAE,GAAG,CAAC,CAACK,IAAI,CAACN,QAAQ,CAACC,GAAG,CAAC,CAAC,CAAC,CAACM,MAAM;AACxF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,YAAYA,CAACT,GAAW,EAAU;EACzC,MAAMU,UAAU,GAAGF,UAAU,CAACR,GAAG,CAAC;EAClC,IAAIW,OAAO,GAAGX,GAAG;EACjB,IAAII,UAAU,GAAGM,UAAU;EAC3B,KAAK,IAAIE,KAAK,GAAG,CAACvB,iBAAiB,EAAEuB,KAAK,IAAIvB,iBAAiB,EAAEuB,KAAK,IAAI,CAAC,EAAE;IAC3E,MAAMC,SAAS,GAAG,CAAE,CAACb,GAAG,GAAGY,KAAK,IAAI,GAAG,GAAI,GAAG,IAAI,GAAG;IACrD,MAAMN,MAAM,GAAGE,UAAU,CAACK,SAAS,CAAC;IACpC,IAAIP,MAAM,GAAGF,UAAU,EAAE;MACvBA,UAAU,GAAGE,MAAM;MACnBK,OAAO,GAAGE,SAAS;IACrB;EACF;EACA,OAAOT,UAAU,GAAGM,UAAU,IAAIpB,mBAAmB,GAAGqB,OAAO,GAAGX,GAAG;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASc,cAAcA,CAACb,OAAqB,EAAEc,QAAgB,EAAEC,MAAe,EAAU;EACxF;EACA;EACA;EACA;EACA;EACA,IAAI,CAACA,MAAM,EAAE,OAAOxC,eAAe;EACnC;EACA;EACA;EACA,MAAMqC,SAAS,GAAG1C,IAAI,CAAC8C,GAAG,CAACxC,cAAc,EAAEsC,QAAQ,GAAGrC,WAAW,CAAC;EAClE,OAAOZ,UAAU,CAACmC,OAAO,CAACI,IAAI,CAACQ,SAAS,CAAC,EAAE,IAAI,CAAC,IAAIpD,EAAE,GAClDoD,SAAS,GACT1C,IAAI,CAAC8C,GAAG,CAACF,QAAQ,EAAEpC,eAAe,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASuC,UAAUA,CAAClB,GAAW,EAAEgB,MAAe,EAAU;EACxD,IAAI,CAACA,MAAM,EAAE,OAAOxC,eAAe;EACnC,MAAM2C,IAAI,GAAGhD,IAAI,CAAC8C,GAAG,CAAClB,QAAQ,CAACC,GAAG,CAAC,EAAEpB,iBAAiB,CAAC;EACvD,MAAMqB,OAAO,GAAGjD,YAAY,CAACkD,gBAAgB,CAACF,GAAG,EAAEnB,aAAa,CAAC;EACjE,MAAMgC,SAAS,GAAG1C,IAAI,CAAC8C,GAAG,CAACxC,cAAc,EAAE0C,IAAI,GAAGzC,WAAW,CAAC;EAC9D,OAAOZ,UAAU,CAACmC,OAAO,CAACI,IAAI,CAACQ,SAAS,CAAC,EAAE,IAAI,CAAC,IAAIpD,EAAE,GAAGoD,SAAS,GAAGM,IAAI;AAC3E;;AAEA;AACA,SAASC,QAAQA,CAACnB,OAAqB,EAAEoB,SAAiB,EAAwC;EAChG,IAAIhB,IAAI,GAAGgB,SAAS;EACpB,OAAO9C,mBAAmB,CAAC0B,OAAO,CAACI,IAAI,CAACA,IAAI,CAAC,CAAC,IAAIA,IAAI,GAAG,CAAC,IAAIA,IAAI,GAAG,EAAE,EAAE;IACvEA,IAAI,IAAIA,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC;EAC5B;EACA,OAAO;IAAEiB,IAAI,EAAE5D,GAAG,CAACuC,OAAO,CAACI,IAAI,CAACA,IAAI,CAAC,CAAC;IAAEkB,UAAU,EAAEjD,aAAa,CAAC2B,OAAO,CAACI,IAAI,CAACA,IAAI,CAAC;EAAE,CAAC;AACzF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASmB,UAAUA,CAACC,OAAe,EAA2C;EAC5E,MAAM,CAACC,aAAa,EAAEC,cAAc,CAAC,GAAGvC,eAAe;EACvD,MAAMwC,UAAU,GAAG,CAACH,OAAO,GAAGC,aAAa,IAAI,GAAG;EAClD,MAAMG,UAAU,GAAG,CAACJ,OAAO,GAAGE,cAAc,IAAI,GAAG;EAEnD,MAAMG,iBAAiB,GACrBtB,UAAU,CAACoB,UAAU,CAAC,IAAIpB,UAAU,CAACqB,UAAU,CAAC,GAAGD,UAAU,GAAGC,UAAU;EAC5E,MAAME,KAAK,GAAGD,iBAAiB,KAAKF,UAAU,GAAGC,UAAU,GAAGD,UAAU;EACxE,MAAMI,OAAO,GAAGvB,YAAY,CAACqB,iBAAiB,CAAC;EAC/C,MAAMG,QAAQ,GACZxC,WAAW,CAACuC,OAAO,EAAED,KAAK,CAAC,IAAIxC,qBAAqB,GAAGyC,OAAO,GAAGF,iBAAiB;;EAEpF;EACA;EACA;EACA,MAAMI,QAAQ,GAAGnF,GAAG,CAACwD,OAAO,CAACzD,WAAW,CAACM,YAAY,CAACE,KAAK,CAAC,CAAC,CAAC0C,GAAG;EACjE,OAAOP,WAAW,CAACwC,QAAQ,EAAEC,QAAQ,CAAC,GAAG1C,qBAAqB,GAC1D;IAAE2C,SAAS,EAAEF,QAAQ;IAAEG,QAAQ,EAAEL;EAAM,CAAC,GACxC;IAAEI,SAAS,EAAEJ,KAAK;IAAEK,QAAQ,EAAEH;EAAS,CAAC;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,iBAAiBA,CAC/BC,OAAe,EACftB,MAAe,EACfuB,KAAiB,EACjBC,MAAqB,GAAG,CAAC,CAAC,EACZ;EACd,MAAMC,IAAI,GAAG1F,GAAG,CAACwD,OAAO,CAACzD,WAAW,CAACwF,OAAO,CAAC,CAAC;;EAE9C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMI,YAAY,GAAG1B,MAAM,GACvBhE,YAAY,CAACuD,OAAO,CAACzD,WAAW,CAACwF,OAAO,CAAC,CAAC,GAC1CtF,YAAY,CAACkD,gBAAgB,CAACuC,IAAI,CAACzC,GAAG,EAAE,GAAG,CAAC;EAChD,MAAM2C,OAAO,GAAGvB,QAAQ,CAACsB,YAAY,EAAE5B,cAAc,CAAC4B,YAAY,EAAED,IAAI,CAACpC,IAAI,EAAEW,MAAM,CAAC,CAAC;EAEvF,MAAM4B,MAAoB,GAAG;IAC3B,WAAW,EAAED,OAAO,CAACrB,IAAI;IACzB,sBAAsB,EAAEqB,OAAO,CAACpB,UAAU;IAC1C;IACA;IACA,gBAAgB,EAAEgB,KAAK,CAACI,OAAO;IAC/B,kBAAkB,EAAE/E,IAAI,CACtBZ,YAAY,CAACkD,gBAAgB,CAACuC,IAAI,CAACzC,GAAG,EAAE,GAAG,CAAC,CAACK,IAAI,CAACnB,kBAAkB,CAAC,EACrE8B,MAAM,GAAG7B,YAAY,CAACH,IAAI,GAAGG,YAAY,CAACJ,KAC5C,CAAC;IACD,QAAQ,EAAEwD,KAAK,CAACI,OAAO;IACvB;IACA;IACA;IACA;IACA;IACA,QAAQ,EAAE3B,MAAM,GAAGuB,KAAK,CAACM,gBAAgB,GAAGN,KAAK,CAACO,sBAAsB;IACxE;IACA;IACA,cAAc,EAAEpF,GAAG,CAACV,YAAY,CAACkD,gBAAgB,CAACuC,IAAI,CAACzC,GAAG,EAAE,EAAE,CAAC,CAACK,IAAI,CAACW,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACtF;IACA,UAAU,EAAEuB,KAAK,CAACQ,oBAAoB;IACtC,qBAAqB,EAAER,KAAK,CAACS;EAC/B,CAAC;EAED,MAAMC,IAAI,GAAGzB,UAAU,CAACiB,IAAI,CAACzC,GAAG,CAAC;EACjC,KAAK,MAAMkD,IAAI,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAW;IACrD,MAAMC,GAAG,GAAGX,MAAM,CAACU,IAAI,CAAC;IACxB,MAAMlD,GAAG,GAAGmD,GAAG,KAAKC,SAAS,GAAGrG,GAAG,CAACwD,OAAO,CAACzD,WAAW,CAACqG,GAAG,CAAC,CAAC,CAACnD,GAAG,GAAGiD,IAAI,CAACC,IAAI,CAAC;IAC9E;IACA;IACA,MAAMG,WAAW,GAAGrG,YAAY,CAACkD,gBAAgB,CAACF,GAAG,EAAEnB,aAAa,CAAC;IACrE,MAAMyE,WAAW,GAAGtG,YAAY,CAACkD,gBAAgB,CAACF,GAAG,EAAEf,WAAW,CAAC;IACnE,MAAMsE,YAAY,GAAGvG,YAAY,CAACkD,gBAAgB,CAACF,GAAG,EAAE,GAAG,CAAC;IAC5D;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMK,IAAI,GAAGa,UAAU,CAAClB,GAAG,EAAEgB,MAAM,CAAC;IACpC,MAAMwC,IAAI,GAAGpC,QAAQ,CAACiC,WAAW,EAAEhD,IAAI,CAAC;IACxCuC,MAAM,CAAC,KAAKM,IAAI,EAAE,CAAC,GAAGM,IAAI,CAAClC,IAAI;IAC/BsB,MAAM,CAAC,KAAKM,IAAI,aAAa,CAAC,GAAGM,IAAI,CAACjC,UAAU;IAChDqB,MAAM,CAAC,KAAKM,IAAI,OAAO,CAAC,GAAGxF,GAAG,CAAC4F,WAAW,CAACjD,IAAI,CAACW,MAAM,GAAGlC,SAAS,CAACE,IAAI,GAAGF,SAAS,CAACC,KAAK,CAAC,CAAC;IAC3F6D,MAAM,CAAC,KAAKM,IAAI,SAAS,CAAC,GAAGtF,IAAI,CAC/B2F,YAAY,CAAClD,IAAI,CAACnB,kBAAkB,CAAC,EACrC8B,MAAM,GAAG7B,YAAY,CAACH,IAAI,GAAGG,YAAY,CAACJ,KAC5C,CAAC;EACH;;EAEA;EACA;EACA;EACA,KAAK,IAAI0E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,CAAC,EAAE;IAC7Bb,MAAM,CAAC,WAAWa,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG/F,GAAG,CAC9BV,YAAY,CAACkD,gBAAgB,CAAC,CAACuC,IAAI,CAACzC,GAAG,GAAGyD,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAACpD,IAAI,CAACW,MAAM,GAAG,EAAE,GAAG,EAAE,CACpF,CAAC;EACH;;EAEA;EACA;EACA;EACA;EACA,KAAK,MAAM,CAACkC,IAAI,EAAEQ,GAAG,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACxG,YAAY,CAAC,EAAE;IACtD,MAAMyG,MAAM,GAAG9G,GAAG,CAACwD,OAAO,CAACzD,WAAW,CAAC4G,GAAG,CAAC,CAAC;IAC5C,MAAMzD,OAAO,GAAGjD,YAAY,CAACkD,gBAAgB,CAAC2D,MAAM,CAAC7D,GAAG,EAAE6D,MAAM,CAACvD,MAAM,CAAC;IACxE,MAAMkD,IAAI,GAAGpC,QAAQ,CAACnB,OAAO,EAAEe,MAAM,GAAGvC,cAAc,GAAGD,eAAe,CAAC;IACzEoE,MAAM,CAAC,KAAKM,IAAI,EAAE,CAAC,GAAGM,IAAI,CAAClC,IAAI;IAC/BsB,MAAM,CAAC,KAAKM,IAAI,aAAa,CAAC,GAAGM,IAAI,CAACjC,UAAU;IAChDqB,MAAM,CAAC,KAAKM,IAAI,OAAO,CAAC,GAAGxF,GAAG,CAC5BV,YAAY,CAACkD,gBAAgB,CAAC2D,MAAM,CAAC7D,GAAG,EAAEf,WAAW,CAAC,CAACoB,IAAI,CACzDW,MAAM,GAAGlC,SAAS,CAACE,IAAI,GAAGF,SAAS,CAACC,KACtC,CACF,CAAC;IACD;IACA;IACA;IACA;IACA6D,MAAM,CAAC,KAAKM,IAAI,SAAS,CAAC,GAAGtF,IAAI,CAC/BqC,OAAO,CAACI,IAAI,CAACwD,MAAM,CAACxD,IAAI,CAAC,EACzBW,MAAM,GAAG7B,YAAY,CAACH,IAAI,GAAGG,YAAY,CAACJ,KAC5C,CAAC;EACH;EAEA,OAAO6D,MAAM;AACf","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["argbFromHex","Hct","TonalPalette","blueFromArgb","greenFromArgb","redFromArgb","STATUS_SEEDS","success","error","warning","info","AA","rgb","argb","rgba","alpha","contrastOf","onWhite","channel","v","c","Math","pow","luminance","foregroundFor","noLegibleForeground","LIGHT_FILL_TONE","DARK_FILL_TONE","TONE_BUDGET","DARK_SEED_FLOOR","DARK_ACCENT_FLOOR","ACCENT_CHROMA","TEXT_TONE","light","dark","TEXT_CHROMA","SUBTLE_SOURCE_TONE","SUBTLE_ALPHA","MONOCHROME_MAX_CHROMA","isColourlessSeed","seedHex","fromInt","chroma","MONOCHROME_FILL_TONE","MONOCHROME_SECONDARY_TONE","SPLIT_ROTATIONS","VIVID_SNAP_WINDOW","VIVID_SNAP_MIN_GAIN","MIN_ACCENT_SEPARATION","DESTRUCTIVE_PROXIMITY","hueDistance","a","b","d","abs","min","peakTone","hue","palette","fromHueAndChroma","bestTone","bestChroma","tone","peakChroma","vividHueNear","baseChroma","bestHue","delta","candidate","whiteLabelTone","seedTone","isDark","max","accentTone","peak","fillPair","startTone","fill","foreground","accentHues","seedHue","firstRotation","secondRotation","geometricA","geometricB","geometricStandout","quiet","snapped","standout","errorHue","secondary","tertiary","buildPolicyTokens","roles","pinned","seed","monochrome","brandPalette","primary","tokens","surfaceContainer","surfaceContainerLowest","surfaceContainerHigh","onSurfaceVariant","hues","role","pin","undefined","fillPalette","textPalette","vividPalette","pair","i","hex","Object","entries","status"],"sourceRoot":"../../../src","sources":["theme/color-policy.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* resolved `--token -> value` record that `getPresetVars` produces).
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
export const APP_COLOR_NAMES = ['teal', 'blue', 'green', 'amber', 'yellow', 'red', 'purple', 'pink', 'sky', 'orange', 'mint', 'oxy', 'faircoin'];
|
|
22
|
+
export const APP_COLOR_NAMES = ['teal', 'blue', 'green', 'amber', 'yellow', 'red', 'purple', 'pink', 'sky', 'orange', 'mint', 'oxy', 'faircoin', 'mono'];
|
|
23
23
|
|
|
24
24
|
/** Premium-exclusive presets, hidden from the standard color picker. */
|
|
25
25
|
export const PREMIUM_COLOR_NAMES = ['oxy', 'faircoin'];
|
|
@@ -36,7 +36,8 @@ export const HEX_TO_APP_COLOR = {
|
|
|
36
36
|
'#f97316': 'orange',
|
|
37
37
|
'#14b8a6': 'mint',
|
|
38
38
|
'#c46ede': 'oxy',
|
|
39
|
-
'#9ffb50': 'faircoin'
|
|
39
|
+
'#9ffb50': 'faircoin',
|
|
40
|
+
'#000000': 'mono'
|
|
40
41
|
};
|
|
41
42
|
export function hexToAppColorName(hex) {
|
|
42
43
|
return HEX_TO_APP_COLOR[hex.toLowerCase()] ?? 'teal';
|
|
@@ -113,6 +114,17 @@ export const APP_COLOR_PRESETS = {
|
|
|
113
114
|
name: 'faircoin',
|
|
114
115
|
hex: '#9ffb50',
|
|
115
116
|
variant: 'vivid'
|
|
117
|
+
},
|
|
118
|
+
/**
|
|
119
|
+
* No colour at all — the black-and-white theme. Its seed carries zero chroma,
|
|
120
|
+
* which is the whole mechanism: the policy derives a greyscale palette from any
|
|
121
|
+
* seed with none, so a user who picks a grey in the colour wheel lands here too
|
|
122
|
+
* rather than on a nearly-grey approximation.
|
|
123
|
+
*/
|
|
124
|
+
mono: {
|
|
125
|
+
name: 'mono',
|
|
126
|
+
hex: '#000000',
|
|
127
|
+
variant: 'monochrome'
|
|
116
128
|
}
|
|
117
129
|
};
|
|
118
130
|
//# sourceMappingURL=color-presets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","HEX_TO_APP_COLOR","hexToAppColorName","hex","toLowerCase","APP_COLOR_PRESETS","teal","name","variant","blue","green","amber","yellow","red","purple","pink","sky","orange","mint","oxy","faircoin"],"sourceRoot":"../../../src","sources":["theme/color-presets.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["APP_COLOR_NAMES","PREMIUM_COLOR_NAMES","HEX_TO_APP_COLOR","hexToAppColorName","hex","toLowerCase","APP_COLOR_PRESETS","teal","name","variant","blue","green","amber","yellow","red","purple","pink","sky","orange","mint","oxy","faircoin","mono"],"sourceRoot":"../../../src","sources":["theme/color-presets.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { generateRoleColors } from "../color-engine/index.js";
|
|
4
|
-
import { buildPolicyTokens } from "../color-policy.js";
|
|
4
|
+
import { buildPolicyTokens, isColourlessSeed } from "../color-policy.js";
|
|
5
5
|
import { CANONICAL_TOKENS } from "../token-registry.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -80,7 +80,11 @@ export function roleColorsToPresetTokens(r) {
|
|
|
80
80
|
export function buildSeedScopeVars(options) {
|
|
81
81
|
const roles = generateRoleColors({
|
|
82
82
|
seed: options.seed,
|
|
83
|
-
|
|
83
|
+
// A seed with no chroma has no colour for a chromatic variant to work with,
|
|
84
|
+
// so it takes the greyscale scheme unless the caller asked for something else.
|
|
85
|
+
// This is what makes a grey picked in a colour wheel produce the SAME
|
|
86
|
+
// black-and-white theme as the `mono` preset instead of a tinted near-grey.
|
|
87
|
+
variant: options.variant ?? (isColourlessSeed(options.seed) ? 'monochrome' : 'vivid'),
|
|
84
88
|
isDark: options.mode === 'dark',
|
|
85
89
|
contrastLevel: options.contrastLevel ?? 0,
|
|
86
90
|
secondarySeed: options.secondarySeed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["generateRoleColors","buildPolicyTokens","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondaryContainer","onSecondaryContainer","tertiaryContainer","onTertiaryContainer","surfaceContainerHigh","onSurfaceVariant","error","outlineVariant","surfaceContainerLowest","secondary","tertiary","primaryContainer","buildSeedScopeVars","options","roles","seed","variant","isDark","mode","contrastLevel","secondarySeed","tertiarySeed","tokens","vars","key","value","Object","entries","slice","token","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAA6C,0BAAiB;AACzF,SAASC,iBAAiB,QAAQ,oBAAiB;
|
|
1
|
+
{"version":3,"names":["generateRoleColors","buildPolicyTokens","isColourlessSeed","CANONICAL_TOKENS","roleColorsToPresetTokens","r","background","onBackground","surfaceContainerLow","onSurface","surfaceContainer","primary","onPrimary","secondaryContainer","onSecondaryContainer","tertiaryContainer","onTertiaryContainer","surfaceContainerHigh","onSurfaceVariant","error","outlineVariant","surfaceContainerLowest","secondary","tertiary","primaryContainer","buildSeedScopeVars","options","roles","seed","variant","isDark","mode","contrastLevel","secondarySeed","tertiarySeed","tokens","vars","key","value","Object","entries","slice","token","undefined"],"sourceRoot":"../../../../src","sources":["theme/color-scope/seed-scope.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/scroll/index.web.tsx"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AA0DjB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,2BAA2B,GACpC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../../src/scroll/index.web.tsx"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,wBAAwB,EACxB,8BAA8B,EAC9B,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,SAAS,CAAC;AA0DjB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,2BAA2B,GACpC,wBAAwB,CAgM1B"}
|