@oxyhq/bloom 0.35.8 → 0.37.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/frosted-icon-button/FrostedIconButton.js +148 -0
- package/lib/commonjs/frosted-icon-button/FrostedIconButton.js.map +1 -0
- package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js +166 -0
- package/lib/commonjs/frosted-icon-button/FrostedIconButton.web.js.map +1 -0
- package/lib/commonjs/frosted-icon-button/index.js +13 -0
- package/lib/commonjs/frosted-icon-button/index.js.map +1 -0
- package/lib/commonjs/frosted-icon-button/index.web.js +13 -0
- package/lib/commonjs/frosted-icon-button/index.web.js.map +1 -0
- package/lib/commonjs/frosted-icon-button/shared.js +112 -0
- package/lib/commonjs/frosted-icon-button/shared.js.map +1 -0
- package/lib/commonjs/frosted-icon-button/types.js +6 -0
- package/lib/commonjs/frosted-icon-button/types.js.map +1 -0
- package/lib/commonjs/index.js +10 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +46 -37
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/theme/build-theme.js +31 -43
- package/lib/commonjs/theme/build-theme.js.map +1 -1
- package/lib/commonjs/theme/color-engine/cam16.js +161 -0
- package/lib/commonjs/theme/color-engine/cam16.js.map +1 -0
- package/lib/commonjs/theme/color-engine/color-role.js +183 -0
- package/lib/commonjs/theme/color-engine/color-role.js.map +1 -0
- package/lib/commonjs/theme/color-engine/color-roles.js +416 -0
- package/lib/commonjs/theme/color-engine/color-roles.js.map +1 -0
- package/lib/commonjs/theme/color-engine/color-utils.js +157 -0
- package/lib/commonjs/theme/color-engine/color-utils.js.map +1 -0
- package/lib/commonjs/theme/color-engine/contrast-curve.js +32 -0
- package/lib/commonjs/theme/color-engine/contrast-curve.js.map +1 -0
- package/lib/commonjs/theme/color-engine/contrast.js +70 -0
- package/lib/commonjs/theme/color-engine/contrast.js.map +1 -0
- package/lib/commonjs/theme/color-engine/dislike-analyzer.js +26 -0
- package/lib/commonjs/theme/color-engine/dislike-analyzer.js.map +1 -0
- package/lib/commonjs/theme/color-engine/dynamic-scheme.js +70 -0
- package/lib/commonjs/theme/color-engine/dynamic-scheme.js.map +1 -0
- package/lib/commonjs/theme/color-engine/hct-solver.js +236 -0
- package/lib/commonjs/theme/color-engine/hct-solver.js.map +1 -0
- package/lib/commonjs/theme/color-engine/hct.js +67 -0
- package/lib/commonjs/theme/color-engine/hct.js.map +1 -0
- package/lib/commonjs/theme/color-engine/index.js +173 -0
- package/lib/commonjs/theme/color-engine/index.js.map +1 -0
- package/lib/commonjs/theme/color-engine/lab-point-provider.js +32 -0
- package/lib/commonjs/theme/color-engine/lab-point-provider.js.map +1 -0
- package/lib/commonjs/theme/color-engine/math-utils.js +77 -0
- package/lib/commonjs/theme/color-engine/math-utils.js.map +1 -0
- package/lib/commonjs/theme/color-engine/quantizer-map.js +24 -0
- package/lib/commonjs/theme/color-engine/quantizer-map.js.map +1 -0
- package/lib/commonjs/theme/color-engine/quantizer-wu.js +266 -0
- package/lib/commonjs/theme/color-engine/quantizer-wu.js.map +1 -0
- package/lib/commonjs/theme/color-engine/scheme-variants.js +102 -0
- package/lib/commonjs/theme/color-engine/scheme-variants.js.map +1 -0
- package/lib/commonjs/theme/color-engine/score.js +80 -0
- package/lib/commonjs/theme/color-engine/score.js.map +1 -0
- package/lib/commonjs/theme/color-engine/seed-from-image.js +73 -0
- package/lib/commonjs/theme/color-engine/seed-from-image.js.map +1 -0
- package/lib/commonjs/theme/color-engine/tonal-palette.js +95 -0
- package/lib/commonjs/theme/color-engine/tonal-palette.js.map +1 -0
- package/lib/commonjs/theme/color-engine/tone-delta-pair.js +26 -0
- package/lib/commonjs/theme/color-engine/tone-delta-pair.js.map +1 -0
- package/lib/commonjs/theme/color-engine/variant.js +26 -0
- package/lib/commonjs/theme/color-engine/variant.js.map +1 -0
- package/lib/commonjs/theme/color-engine/viewing-conditions.js +61 -0
- package/lib/commonjs/theme/color-engine/viewing-conditions.js.map +1 -0
- package/lib/commonjs/theme/color-presets.js +44 -572
- package/lib/commonjs/theme/color-presets.js.map +1 -1
- package/lib/commonjs/theme/preset-vars.js +64 -47
- package/lib/commonjs/theme/preset-vars.js.map +1 -1
- package/lib/module/frosted-icon-button/FrostedIconButton.js +143 -0
- package/lib/module/frosted-icon-button/FrostedIconButton.js.map +1 -0
- package/lib/module/frosted-icon-button/FrostedIconButton.web.js +161 -0
- package/lib/module/frosted-icon-button/FrostedIconButton.web.js.map +1 -0
- package/lib/module/frosted-icon-button/index.js +4 -0
- package/lib/module/frosted-icon-button/index.js.map +1 -0
- package/lib/module/frosted-icon-button/index.web.js +11 -0
- package/lib/module/frosted-icon-button/index.web.js.map +1 -0
- package/lib/module/frosted-icon-button/shared.js +107 -0
- package/lib/module/frosted-icon-button/shared.js.map +1 -0
- package/lib/module/frosted-icon-button/types.js +4 -0
- package/lib/module/frosted-icon-button/types.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +1 -0
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/theme/build-theme.js +32 -44
- package/lib/module/theme/build-theme.js.map +1 -1
- package/lib/module/theme/color-engine/cam16.js +155 -0
- package/lib/module/theme/color-engine/cam16.js.map +1 -0
- package/lib/module/theme/color-engine/color-role.js +177 -0
- package/lib/module/theme/color-engine/color-role.js.map +1 -0
- package/lib/module/theme/color-engine/color-roles.js +411 -0
- package/lib/module/theme/color-engine/color-roles.js.map +1 -0
- package/lib/module/theme/color-engine/color-utils.js +135 -0
- package/lib/module/theme/color-engine/color-utils.js.map +1 -0
- package/lib/module/theme/color-engine/contrast-curve.js +26 -0
- package/lib/module/theme/color-engine/contrast-curve.js.map +1 -0
- package/lib/module/theme/color-engine/contrast.js +61 -0
- package/lib/module/theme/color-engine/contrast.js.map +1 -0
- package/lib/module/theme/color-engine/dislike-analyzer.js +20 -0
- package/lib/module/theme/color-engine/dislike-analyzer.js.map +1 -0
- package/lib/module/theme/color-engine/dynamic-scheme.js +65 -0
- package/lib/module/theme/color-engine/dynamic-scheme.js.map +1 -0
- package/lib/module/theme/color-engine/hct-solver.js +231 -0
- package/lib/module/theme/color-engine/hct-solver.js.map +1 -0
- package/lib/module/theme/color-engine/hct.js +61 -0
- package/lib/module/theme/color-engine/hct.js.map +1 -0
- package/lib/module/theme/color-engine/index.js +57 -0
- package/lib/module/theme/color-engine/index.js.map +1 -0
- package/lib/module/theme/color-engine/lab-point-provider.js +25 -0
- package/lib/module/theme/color-engine/lab-point-provider.js.map +1 -0
- package/lib/module/theme/color-engine/math-utils.js +65 -0
- package/lib/module/theme/color-engine/math-utils.js.map +1 -0
- package/lib/module/theme/color-engine/quantizer-map.js +20 -0
- package/lib/module/theme/color-engine/quantizer-map.js.map +1 -0
- package/lib/module/theme/color-engine/quantizer-wu.js +261 -0
- package/lib/module/theme/color-engine/quantizer-wu.js.map +1 -0
- package/lib/module/theme/color-engine/scheme-variants.js +93 -0
- package/lib/module/theme/color-engine/scheme-variants.js.map +1 -0
- package/lib/module/theme/color-engine/score.js +75 -0
- package/lib/module/theme/color-engine/score.js.map +1 -0
- package/lib/module/theme/color-engine/seed-from-image.js +67 -0
- package/lib/module/theme/color-engine/seed-from-image.js.map +1 -0
- package/lib/module/theme/color-engine/tonal-palette.js +89 -0
- package/lib/module/theme/color-engine/tonal-palette.js.map +1 -0
- package/lib/module/theme/color-engine/tone-delta-pair.js +21 -0
- package/lib/module/theme/color-engine/tone-delta-pair.js.map +1 -0
- package/lib/module/theme/color-engine/variant.js +22 -0
- package/lib/module/theme/color-engine/variant.js.map +1 -0
- package/lib/module/theme/color-engine/viewing-conditions.js +55 -0
- package/lib/module/theme/color-engine/viewing-conditions.js.map +1 -0
- package/lib/module/theme/color-presets.js +44 -572
- package/lib/module/theme/color-presets.js.map +1 -1
- package/lib/module/theme/preset-vars.js +64 -46
- package/lib/module/theme/preset-vars.js.map +1 -1
- package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.d.ts +5 -0
- package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts +5 -0
- package/lib/typescript/commonjs/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/frosted-icon-button/index.d.ts +3 -0
- package/lib/typescript/commonjs/frosted-icon-button/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts +3 -0
- package/lib/typescript/commonjs/frosted-icon-button/index.web.d.ts.map +1 -0
- package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts +60 -0
- package/lib/typescript/commonjs/frosted-icon-button/shared.d.ts.map +1 -0
- package/lib/typescript/commonjs/frosted-icon-button/types.d.ts +69 -0
- package/lib/typescript/commonjs/frosted-icon-button/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +2 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.web.d.ts +2 -0
- package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/color-engine/cam16.d.ts +26 -0
- package/lib/typescript/commonjs/theme/color-engine/cam16.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/color-role.d.ts +36 -0
- package/lib/typescript/commonjs/theme/color-engine/color-role.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/color-roles.d.ts +58 -0
- package/lib/typescript/commonjs/theme/color-engine/color-roles.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/color-utils.d.ts +32 -0
- package/lib/typescript/commonjs/theme/color-engine/color-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast-curve.d.ts +9 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast-curve.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast.d.ts +12 -0
- package/lib/typescript/commonjs/theme/color-engine/contrast.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/dislike-analyzer.d.ts +11 -0
- package/lib/typescript/commonjs/theme/color-engine/dislike-analyzer.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/dynamic-scheme.d.ts +47 -0
- package/lib/typescript/commonjs/theme/color-engine/dynamic-scheme.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/hct-solver.d.ts +6 -0
- package/lib/typescript/commonjs/theme/color-engine/hct-solver.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/hct.d.ts +20 -0
- package/lib/typescript/commonjs/theme/color-engine/hct.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts +44 -0
- package/lib/typescript/commonjs/theme/color-engine/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/lab-point-provider.d.ts +6 -0
- package/lib/typescript/commonjs/theme/color-engine/lab-point-provider.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/math-utils.d.ts +46 -0
- package/lib/typescript/commonjs/theme/color-engine/math-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-map.d.ts +3 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-map.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-wu.d.ts +3 -0
- package/lib/typescript/commonjs/theme/color-engine/quantizer-wu.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts +23 -0
- package/lib/typescript/commonjs/theme/color-engine/scheme-variants.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/score.d.ts +8 -0
- package/lib/typescript/commonjs/theme/color-engine/score.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts +13 -0
- package/lib/typescript/commonjs/theme/color-engine/seed-from-image.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/tonal-palette.d.ts +24 -0
- package/lib/typescript/commonjs/theme/color-engine/tonal-palette.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/tone-delta-pair.d.ts +19 -0
- package/lib/typescript/commonjs/theme/color-engine/tone-delta-pair.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/variant.d.ts +19 -0
- package/lib/typescript/commonjs/theme/color-engine/variant.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-engine/viewing-conditions.d.ts +18 -0
- package/lib/typescript/commonjs/theme/color-engine/viewing-conditions.d.ts.map +1 -0
- package/lib/typescript/commonjs/theme/color-presets.d.ts +25 -20
- package/lib/typescript/commonjs/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme/preset-vars.d.ts +16 -12
- package/lib/typescript/commonjs/theme/preset-vars.d.ts.map +1 -1
- package/lib/typescript/module/frosted-icon-button/FrostedIconButton.d.ts +5 -0
- package/lib/typescript/module/frosted-icon-button/FrostedIconButton.d.ts.map +1 -0
- package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts +5 -0
- package/lib/typescript/module/frosted-icon-button/FrostedIconButton.web.d.ts.map +1 -0
- package/lib/typescript/module/frosted-icon-button/index.d.ts +3 -0
- package/lib/typescript/module/frosted-icon-button/index.d.ts.map +1 -0
- package/lib/typescript/module/frosted-icon-button/index.web.d.ts +3 -0
- package/lib/typescript/module/frosted-icon-button/index.web.d.ts.map +1 -0
- package/lib/typescript/module/frosted-icon-button/shared.d.ts +60 -0
- package/lib/typescript/module/frosted-icon-button/shared.d.ts.map +1 -0
- package/lib/typescript/module/frosted-icon-button/types.d.ts +69 -0
- package/lib/typescript/module/frosted-icon-button/types.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +2 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/index.web.d.ts +2 -0
- package/lib/typescript/module/index.web.d.ts.map +1 -1
- package/lib/typescript/module/theme/build-theme.d.ts.map +1 -1
- package/lib/typescript/module/theme/color-engine/cam16.d.ts +26 -0
- package/lib/typescript/module/theme/color-engine/cam16.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/color-role.d.ts +36 -0
- package/lib/typescript/module/theme/color-engine/color-role.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/color-roles.d.ts +58 -0
- package/lib/typescript/module/theme/color-engine/color-roles.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/color-utils.d.ts +32 -0
- package/lib/typescript/module/theme/color-engine/color-utils.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/contrast-curve.d.ts +9 -0
- package/lib/typescript/module/theme/color-engine/contrast-curve.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/contrast.d.ts +12 -0
- package/lib/typescript/module/theme/color-engine/contrast.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/dislike-analyzer.d.ts +11 -0
- package/lib/typescript/module/theme/color-engine/dislike-analyzer.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/dynamic-scheme.d.ts +47 -0
- package/lib/typescript/module/theme/color-engine/dynamic-scheme.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/hct-solver.d.ts +6 -0
- package/lib/typescript/module/theme/color-engine/hct-solver.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/hct.d.ts +20 -0
- package/lib/typescript/module/theme/color-engine/hct.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/index.d.ts +44 -0
- package/lib/typescript/module/theme/color-engine/index.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/lab-point-provider.d.ts +6 -0
- package/lib/typescript/module/theme/color-engine/lab-point-provider.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/math-utils.d.ts +46 -0
- package/lib/typescript/module/theme/color-engine/math-utils.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/quantizer-map.d.ts +3 -0
- package/lib/typescript/module/theme/color-engine/quantizer-map.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/quantizer-wu.d.ts +3 -0
- package/lib/typescript/module/theme/color-engine/quantizer-wu.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts +23 -0
- package/lib/typescript/module/theme/color-engine/scheme-variants.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/score.d.ts +8 -0
- package/lib/typescript/module/theme/color-engine/score.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts +13 -0
- package/lib/typescript/module/theme/color-engine/seed-from-image.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/tonal-palette.d.ts +24 -0
- package/lib/typescript/module/theme/color-engine/tonal-palette.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/tone-delta-pair.d.ts +19 -0
- package/lib/typescript/module/theme/color-engine/tone-delta-pair.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/variant.d.ts +19 -0
- package/lib/typescript/module/theme/color-engine/variant.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-engine/viewing-conditions.d.ts +18 -0
- package/lib/typescript/module/theme/color-engine/viewing-conditions.d.ts.map +1 -0
- package/lib/typescript/module/theme/color-presets.d.ts +25 -20
- package/lib/typescript/module/theme/color-presets.d.ts.map +1 -1
- package/lib/typescript/module/theme/preset-vars.d.ts +16 -12
- package/lib/typescript/module/theme/preset-vars.d.ts.map +1 -1
- package/package.json +17 -1
- package/src/__tests__/BloomThemeProvider.test.tsx +9 -4
- package/src/__tests__/FrostedIconButton.test.tsx +137 -0
- package/src/__tests__/FrostedIconButton.web.test.tsx +246 -0
- package/src/__tests__/native-root-vars.test.ts +8 -4
- package/src/__tests__/preset-vars.test.ts +66 -37
- package/src/__tests__/theme.test.ts +20 -12
- package/src/frosted-icon-button/FrostedIconButton.stories.tsx +65 -0
- package/src/frosted-icon-button/FrostedIconButton.tsx +156 -0
- package/src/frosted-icon-button/FrostedIconButton.web.tsx +207 -0
- package/src/frosted-icon-button/index.ts +2 -0
- package/src/frosted-icon-button/index.web.ts +9 -0
- package/src/frosted-icon-button/shared.ts +118 -0
- package/src/frosted-icon-button/types.ts +81 -0
- package/src/index.ts +2 -0
- package/src/index.web.ts +2 -0
- package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +509 -509
- package/src/theme/__tests__/__snapshots__/visual-gallery.test.tsx.snap +613 -613
- package/src/theme/__tests__/color-engine-golden.test.ts +81 -0
- package/src/theme/__tests__/fixtures/color-engine-golden.json +1 -0
- package/src/theme/__tests__/golden-tokens.test.ts +6 -7
- package/src/theme/__tests__/runtime-contract.test.ts +8 -8
- package/src/theme/__tests__/theme-colors-parity.test.ts +44 -88
- package/src/theme/build-theme.ts +32 -44
- package/src/theme/color-engine/cam16.ts +179 -0
- package/src/theme/color-engine/color-role.ts +217 -0
- package/src/theme/color-engine/color-roles.ts +435 -0
- package/src/theme/color-engine/color-utils.ts +157 -0
- package/src/theme/color-engine/contrast-curve.ts +25 -0
- package/src/theme/color-engine/contrast.ts +59 -0
- package/src/theme/color-engine/dislike-analyzer.ts +19 -0
- package/src/theme/color-engine/dynamic-scheme.ts +90 -0
- package/src/theme/color-engine/hct-solver.ts +263 -0
- package/src/theme/color-engine/hct.ts +69 -0
- package/src/theme/color-engine/index.ts +73 -0
- package/src/theme/color-engine/lab-point-provider.ts +26 -0
- package/src/theme/color-engine/math-utils.ts +69 -0
- package/src/theme/color-engine/quantizer-map.ts +17 -0
- package/src/theme/color-engine/quantizer-wu.ts +320 -0
- package/src/theme/color-engine/scheme-variants.ts +113 -0
- package/src/theme/color-engine/score.ts +82 -0
- package/src/theme/color-engine/seed-from-image.ts +64 -0
- package/src/theme/color-engine/tonal-palette.ts +94 -0
- package/src/theme/color-engine/tone-delta-pair.ts +21 -0
- package/src/theme/color-engine/variant.ts +18 -0
- package/src/theme/color-engine/viewing-conditions.ts +77 -0
- package/src/theme/color-presets.ts +54 -631
- package/src/theme/preset-vars.ts +65 -49
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { cloneElement, isValidElement } from 'react';
|
|
4
|
+
import { withAlpha } from "../theme/color-utils.js";
|
|
5
|
+
|
|
6
|
+
/** Resolved pixel geometry for a given size prop. */
|
|
7
|
+
|
|
8
|
+
const SIZE_CONFIG = {
|
|
9
|
+
// 32px (`h-8`) — dense.
|
|
10
|
+
sm: {
|
|
11
|
+
diameter: 32,
|
|
12
|
+
iconBox: 18,
|
|
13
|
+
blur: 10
|
|
14
|
+
},
|
|
15
|
+
// 36px (`h-9`) — the default comfortable header/overlay action.
|
|
16
|
+
md: {
|
|
17
|
+
diameter: 36,
|
|
18
|
+
iconBox: 20,
|
|
19
|
+
blur: 12
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Resolve a `size` prop (preset name or raw pixel diameter) to concrete pixel
|
|
25
|
+
* geometry. A numeric size sets the diameter directly, derives the icon box as
|
|
26
|
+
* `round(size * 0.56)` (min 16px) and scales the blur radius with the diameter.
|
|
27
|
+
* Mirrored byte-for-byte between the native and web forks via this one module.
|
|
28
|
+
*/
|
|
29
|
+
export function resolveFrostedSize(size) {
|
|
30
|
+
if (typeof size === 'number') {
|
|
31
|
+
return {
|
|
32
|
+
diameter: size,
|
|
33
|
+
iconBox: Math.max(16, Math.round(size * 0.56)),
|
|
34
|
+
blur: Math.max(8, Math.round(size * 0.34))
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return SIZE_CONFIG[size];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Per-mode alpha weights for the translucent surface + hairline ring.
|
|
42
|
+
*
|
|
43
|
+
* These are calibrated so the chip READS on a SOLID background independently of
|
|
44
|
+
* any content behind it: on a dark theme the surface is a LOW-OPACITY LIGHT tint
|
|
45
|
+
* of the foreground token (lighter than the near-black page — NOT a dark `card`
|
|
46
|
+
* fill that sinks into the background), and on a light theme it is a subtle dark
|
|
47
|
+
* tint. E.g. on a `rgb(11 11 15)` page a `rgba(237,237,237,0.14)` surface
|
|
48
|
+
* composites to ≈`rgb(43 43 47)` — a clearly visible frosted circle.
|
|
49
|
+
*/
|
|
50
|
+
const SURFACE_ALPHA = {
|
|
51
|
+
light: 0.06,
|
|
52
|
+
dark: 0.14
|
|
53
|
+
};
|
|
54
|
+
const SURFACE_ALPHA_HOVER = {
|
|
55
|
+
light: 0.1,
|
|
56
|
+
dark: 0.22
|
|
57
|
+
};
|
|
58
|
+
const RING_ALPHA = {
|
|
59
|
+
light: 0.12,
|
|
60
|
+
dark: 0.22
|
|
61
|
+
};
|
|
62
|
+
const RING_ALPHA_HOVER = {
|
|
63
|
+
light: 0.18,
|
|
64
|
+
dark: 0.3
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/** Theme-aware colors for every frosted-button surface state. */
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Build the frosted palette from the resolved theme colors. Everything is
|
|
71
|
+
* derived from Bloom tokens (`text`/foreground, `primary`, `shadow`) so it is
|
|
72
|
+
* fully theme-aware and Oxy-agnostic — no hardcoded colors.
|
|
73
|
+
*/
|
|
74
|
+
export function resolveFrostedPalette(colors, isDark) {
|
|
75
|
+
const k = isDark ? 'dark' : 'light';
|
|
76
|
+
return {
|
|
77
|
+
surface: withAlpha(colors.text, SURFACE_ALPHA[k]),
|
|
78
|
+
surfaceHover: withAlpha(colors.text, SURFACE_ALPHA_HOVER[k]),
|
|
79
|
+
ring: withAlpha(colors.text, RING_ALPHA[k]),
|
|
80
|
+
ringHover: withAlpha(colors.text, RING_ALPHA_HOVER[k]),
|
|
81
|
+
icon: colors.text,
|
|
82
|
+
activeSurface: colors.primary,
|
|
83
|
+
activeIcon: colors.primaryForeground,
|
|
84
|
+
focusRing: colors.primary,
|
|
85
|
+
shadow: colors.shadow
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** A React element that accepts a `fill` prop (Bloom icons, raw SVG). */
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Inject `color` as the icon's `fill` — but only as a FALLBACK: if the caller
|
|
93
|
+
* already set an explicit `fill` on the icon element, it wins and the node is
|
|
94
|
+
* returned untouched. Bloom icons resolve their paint as `fill ?? style.color`,
|
|
95
|
+
* so a bare `<Icons.X />` gets the theme-aware color for free while an
|
|
96
|
+
* explicitly-colored icon is never overridden. Non-element children (plain
|
|
97
|
+
* text/strings) pass through unchanged.
|
|
98
|
+
*/
|
|
99
|
+
export function applyIconColor(node, color) {
|
|
100
|
+
if (! /*#__PURE__*/isValidElement(node)) return node;
|
|
101
|
+
const el = node;
|
|
102
|
+
if (el.props.fill != null) return node;
|
|
103
|
+
return /*#__PURE__*/cloneElement(el, {
|
|
104
|
+
fill: color
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cloneElement","isValidElement","withAlpha","SIZE_CONFIG","sm","diameter","iconBox","blur","md","resolveFrostedSize","size","Math","max","round","SURFACE_ALPHA","light","dark","SURFACE_ALPHA_HOVER","RING_ALPHA","RING_ALPHA_HOVER","resolveFrostedPalette","colors","isDark","k","surface","text","surfaceHover","ring","ringHover","icon","activeSurface","primary","activeIcon","primaryForeground","focusRing","shadow","applyIconColor","node","color","el","props","fill"],"sourceRoot":"../../../src","sources":["frosted-icon-button/shared.ts"],"mappings":";;AAAA,SAASA,YAAY,EAAEC,cAAc,QAA2C,OAAO;AAEvF,SAASC,SAAS,QAAQ,yBAAsB;;AAIhD;;AAUA,MAAMC,WAA2D,GAAG;EAClE;EACAC,EAAE,EAAE;IAAEC,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,IAAI,EAAE;EAAG,CAAC;EAC3C;EACAC,EAAE,EAAE;IAAEH,QAAQ,EAAE,EAAE;IAAEC,OAAO,EAAE,EAAE;IAAEC,IAAI,EAAE;EAAG;AAC5C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,kBAAkBA,CAACC,IAAoC,EAAmB;EACxF,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;IAC5B,OAAO;MACLL,QAAQ,EAAEK,IAAI;MACdJ,OAAO,EAAEK,IAAI,CAACC,GAAG,CAAC,EAAE,EAAED,IAAI,CAACE,KAAK,CAACH,IAAI,GAAG,IAAI,CAAC,CAAC;MAC9CH,IAAI,EAAEI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACH,IAAI,GAAG,IAAI,CAAC;IAC3C,CAAC;EACH;EACA,OAAOP,WAAW,CAACO,IAAI,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,aAAa,GAAG;EAAEC,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;AAC1D,MAAMC,mBAAmB,GAAG;EAAEF,KAAK,EAAE,GAAG;EAAEC,IAAI,EAAE;AAAK,CAAU;AAC/D,MAAME,UAAU,GAAG;EAAEH,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAK,CAAU;AACvD,MAAMG,gBAAgB,GAAG;EAAEJ,KAAK,EAAE,IAAI;EAAEC,IAAI,EAAE;AAAI,CAAU;;AAE5D;;AA0BA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,qBAAqBA,CAACC,MAAmB,EAAEC,MAAe,EAAkB;EAC1F,MAAMC,CAAC,GAAGD,MAAM,GAAG,MAAM,GAAG,OAAO;EACnC,OAAO;IACLE,OAAO,EAAEtB,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAEX,aAAa,CAACS,CAAC,CAAC,CAAC;IACjDG,YAAY,EAAExB,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAER,mBAAmB,CAACM,CAAC,CAAC,CAAC;IAC5DI,IAAI,EAAEzB,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAEP,UAAU,CAACK,CAAC,CAAC,CAAC;IAC3CK,SAAS,EAAE1B,SAAS,CAACmB,MAAM,CAACI,IAAI,EAAEN,gBAAgB,CAACI,CAAC,CAAC,CAAC;IACtDM,IAAI,EAAER,MAAM,CAACI,IAAI;IACjBK,aAAa,EAAET,MAAM,CAACU,OAAO;IAC7BC,UAAU,EAAEX,MAAM,CAACY,iBAAiB;IACpCC,SAAS,EAAEb,MAAM,CAACU,OAAO;IACzBI,MAAM,EAAEd,MAAM,CAACc;EACjB,CAAC;AACH;;AAEA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,IAAe,EAAEC,KAAa,EAAa;EACxE,IAAI,eAACrC,cAAc,CAACoC,IAAI,CAAC,EAAE,OAAOA,IAAI;EACtC,MAAME,EAAE,GAAGF,IAAuB;EAClC,IAAIE,EAAE,CAACC,KAAK,CAACC,IAAI,IAAI,IAAI,EAAE,OAAOJ,IAAI;EACtC,oBAAOrC,YAAY,CAACuC,EAAE,EAAE;IAAEE,IAAI,EAAEH;EAAM,CAAC,CAAC;AAC1C","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["frosted-icon-button/types.ts"],"mappings":"","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -29,6 +29,7 @@ export * from './portal';
|
|
|
29
29
|
export { Dialog, DIALOG_SHEET_BACKDROP_TESTID, BloomDialogProvider, alert, useDialogContext, useDialogControl } from './dialog';
|
|
30
30
|
export * from './button';
|
|
31
31
|
export { Fab } from './fab';
|
|
32
|
+
export { FrostedIconButton } from './frosted-icon-button';
|
|
32
33
|
export * from "./grouped-buttons/index.js";
|
|
33
34
|
export * from "./divider/index.js";
|
|
34
35
|
export * from "./radio-indicator/index.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","useImagePreload","preloadImage","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","CompositionBar","DotGridMeter","StatBar","ActivityHeatmap","bucketByDay","ProfileCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASA,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,QAAQ,mBAAU;AAE1D,OAAO,KAAKC,MAAM,MAAM,oBAAiB;AACzC,SAASC,GAAG,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,MAAM,QAAQ,sBAAmB;;AAE/E;AACA;AACA;AACA,SACEC,mBAAmB,EACnBC,aAAa,EACbC,eAAe,EACfC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,OAAO,EACPC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,gBAAgB,EAChBC,UAAU,EACVC,gBAAgB,QACX,0BAAiB;AAYxB;AACA,SAASC,mBAAmB,QAAQ,gCAA6B;AACjE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SAASC,UAAU,EAAEC,oBAAoB,QAAQ,uBAAoB;AAErE,SAASC,UAAU,QAAQ,uBAAoB;AAE/C,SAASC,eAAe,EAAEC,YAAY,QAAQ,4BAAyB;;AAEvE;AACA,OAAO,KAAKC,KAAK,MAAM,kBAAS;AAChC,SAAkCC,KAAK,IAAIC,SAAS,EAAEC,iBAAiB,QAAQ,mBAAgB;;AAE/F;AACA,cAAc,UAAU;AACxB,SACEC,MAAM,EACNC,4BAA4B,EAC5BC,mBAAmB,EACnBC,KAAK,EACLC,gBAAgB,EAChBC,gBAAgB,QACX,UAAU;AAajB,cAAc,UAAU;AACxB,SAASC,GAAG,QAAQ,OAAO;AAE3B,cAAc,4BAAmB;AACjC,cAAc,oBAAW;AACzB,cAAc,4BAAmB;AACjC,cAAc,wBAAe;AAC7B,SAASC,aAAa,QAAQ,2BAAkB;AAMhD,cAAc,mBAAU;AACxB,SAASC,WAAW,QAAQ,yBAAgB;AAE5C,SAASC,aAAa,QAAQ,4BAAmB;AAEjD,cAAc,WAAW;AACzB,cAAc,yBAAgB;AAC9B,cAAc,mBAAU;AACxB,SAASC,KAAK,QAAoB,SAAS;;AAE3C;AACA,OAAO,KAAKC,UAAU,MAAM,uBAAc;;AAE1C;AACA,OAAO,KAAKC,QAAQ,MAAM,qBAAY;AACtC,OAAO,KAAKC,IAAI,MAAM,iBAAQ;AAC9B,SAASC,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,gBAAgB,QAAQ,+BAAsB;AAEvD,SAASC,UAAU,QAAQ,wBAAe;AAC1C,SAASC,cAAc,QAAQ,mBAAmB;AAElD,SAASC,UAAU,EAAEC,WAAW,QAAQ,yBAAgB;AAGxD;AACA,SAASC,cAAc,QAAQ,4BAAmB;AAElD,SAASC,kBAAkB,QAAQ,iCAAwB;AAE3D,SAASC,WAAW,QAAQ,yBAAgB;AAG5C;AACA,SAASC,cAAc,EAAEC,eAAe,EAAEC,YAAY,EAAEC,gBAAgB,QAAQ,mBAAU;AAE1F,SAASC,aAAa,QAAQ,2BAAkB;AAGhD;AACA,cAAc,uBAAc;AAC5B,cAAc,8BAAqB;AACnC,SAASC,WAAW,QAAQ,yBAAgB;AAC5C,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,KAAK,QAAQ,kBAAS;AAE/B,SAASC,UAAU,QAAQ,wBAAe;AAE1C,SAASC,MAAM,QAAQ,mBAAU;AAEjC,SAASC,QAAQ,QAAQ,YAAY;AAGrC;AACA,SAASC,WAAW,QAAQ,gBAAgB;AAG5C;AACA,cAAc,iBAAQ;AACtB,cAAc,kBAAS;AACvB,cAAc,iBAAQ;AACtB,cAAc,iBAAQ;AACtB,cAAc,qBAAY;AAC1B,cAAc,sBAAa;AAC3B,SAASC,eAAe,QAAQ,yBAAgB;AAGhD;AACA,SAASC,cAAc,QAAQ,4BAAmB;AAElD,SAASC,YAAY,QAAQ,2BAAkB;AAE/C,SAASC,OAAO,QAAQ,qBAAY;AAOpC,SAASC,eAAe,EAAEC,WAAW,QAAQ,6BAAoB;AAEjE,SAASC,WAAW,QAAQ,yBAAgB;AAU5C;AACA,cAAc,0BAAiB;AAC/B,SAASC,IAAI,QAAQ,iBAAQ;AAE7B,SAASC,GAAG,QAAQ,gBAAO;AAG3B;AACA,cAAc,uBAAc;AAC5B,cAAc,QAAQ;AACtB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,WAAW;AACzB,SAASC,WAAW,EAAEC,eAAe,EAAEC,OAAO,QAAQ,gBAAgB;AAMtE,SAASC,OAAO,QAAQ,WAAW;AAGnC;AACA,OAAO,KAAKC,IAAI,MAAM,iBAAQ;;AAE9B;AACA,OAAO,KAAKC,KAAK,MAAM,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","useImagePreload","preloadImage","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","FrostedIconButton","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","CompositionBar","DotGridMeter","StatBar","ActivityHeatmap","bucketByDay","ProfileCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.web.js
CHANGED
|
@@ -34,6 +34,7 @@ export * from "./portal/index.web.js";
|
|
|
34
34
|
export { Dialog, DIALOG_SHEET_BACKDROP_TESTID, BloomDialogProvider, alert, useDialogContext, useDialogControl } from "./dialog/index.web.js";
|
|
35
35
|
export * from "./button/index.web.js";
|
|
36
36
|
export { Fab } from "./fab/index.web.js";
|
|
37
|
+
export { FrostedIconButton } from "./frosted-icon-button/index.web.js";
|
|
37
38
|
export * from "./grouped-buttons/index.js";
|
|
38
39
|
export * from "./divider/index.js";
|
|
39
40
|
export * from "./radio-indicator/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","useImagePreload","preloadImage","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","CompositionBar","DotGridMeter","StatBar","ActivityHeatmap","bucketByDay","ProfileCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["atoms","flatten","Z_INDEX","zIndex","tokens","web","native","ios","android","platform","select","bloomTailwindPreset","bloomThemeCss","bloomThemeBlock","FILL_ROLES","TEXT_ROLES","BORDER_ROLES","SPACING","RADIUS","BORDER_WIDTH","TYPOGRAPHY","FONT_FAMILY_VARS","SHADOW_BOX","bloomShadowStyle","useInteractionState","useDelayedLoading","useThrottledValue","useHaptics","BloomHapticsProvider","useGutters","useImagePreload","preloadImage","Icons","sizes","iconSizes","useCommonSVGProps","Dialog","DIALOG_SHEET_BACKDROP_TESTID","BloomDialogProvider","alert","useDialogContext","useDialogControl","Fab","FrostedIconButton","ErrorBoundary","AvatarGroup","UserHoverCard","toast","Typography","Skeleton","Grid","Fill","MediaInsetBorder","IconCircle","ConnectionDots","BenefitRow","BenefitList","PressableScale","PressableWithHover","SubtleHover","ScaleAndFadeIn","ScaleAndFadeOut","ShrinkAndPop","ScreenTransition","AnimatedCheck","SearchInput","Label","Field","InputGroup","Slider","Combobox","BottomSheet","LinkPreviewCard","CompositionBar","DotGridMeter","StatBar","ActivityHeatmap","bucketByDay","ProfileCard","Item","Kbd","AlertDialog","AlertDialogHost","confirm","Command","Code","Fonts"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import { APP_COLOR_PRESETS } from "./color-presets.js";
|
|
5
|
+
import { generateRoleColors } from "./color-engine/index.js";
|
|
5
6
|
import { getAdaptiveColors } from "./adaptive-colors.js";
|
|
6
|
-
import { getResolvedTokens
|
|
7
|
+
import { getResolvedTokens } from "./token-registry.js";
|
|
7
8
|
import { THEME_GRADIENTS } from "./gradients.js";
|
|
8
9
|
/**
|
|
9
10
|
* Status colors used across the design system. Independent of the accent
|
|
@@ -17,29 +18,16 @@ export const STATUS_COLORS = {
|
|
|
17
18
|
};
|
|
18
19
|
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const hue = parseInt(first, 10);
|
|
27
|
-
return Number.isFinite(hue) ? hue : 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Build the JS `theme.colors` object from the SAME canonical rgb token source
|
|
32
|
-
* the web/native CSS-var writes use (`getResolvedTokens`). JS styles and the
|
|
33
|
-
* `var(--x)` document tokens therefore share one rgb pipeline — no second,
|
|
34
|
-
* drift-prone HSL conversion lives here.
|
|
21
|
+
* Build the JS `theme.colors` object from the SAME engine-derived colours the
|
|
22
|
+
* web/native CSS-var writes use. Token-backed fields read from the resolved rgb
|
|
23
|
+
* token map (`getResolvedTokens`, which sources from the engine via
|
|
24
|
+
* `getPresetVars`); the brand-tint family (primarySubtle/negative/…) reads the
|
|
25
|
+
* engine's container/error roles directly. JS styles and the `var(--x)` document
|
|
26
|
+
* tokens therefore share one engine-backed pipeline — no second HSL conversion.
|
|
35
27
|
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* the historical `hsl(h, s%, l%)` math — but are emitted as `rgb(...)` by
|
|
40
|
-
* routing the triple through the registry's `hslToSrgb`, so the single-format
|
|
41
|
-
* pipeline is preserved. (`hsl(h,s%,l%)` and the `rgb(...)` of the same color
|
|
42
|
-
* are byte-identical under the RN/RNW/browser parser.)
|
|
28
|
+
* The two intentional fixes land here too: `card` is now the lightest surface
|
|
29
|
+
* (`--card` → engine `surfaceContainerLowest`) and `secondary` is a real
|
|
30
|
+
* contrast colour (engine `secondary` role), not a mirror of `primary`.
|
|
43
31
|
*/
|
|
44
32
|
function buildColorsFromPreset(preset, resolved) {
|
|
45
33
|
const t = getResolvedTokens(preset, resolved);
|
|
@@ -48,22 +36,21 @@ function buildColorsFromPreset(preset, resolved) {
|
|
|
48
36
|
// Read a resolved `rgb(...)` token by its bare name (no leading `--`).
|
|
49
37
|
const g = k => t[`--${k}`] ?? 'rgb(0 0 0)';
|
|
50
38
|
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const dHue = extractHue(presetTokens['--destructive'] ?? '0 0% 0%');
|
|
39
|
+
// The full engine role set — for fields that map to roles Bloom's canonical
|
|
40
|
+
// token set does not surface (containers, error family).
|
|
41
|
+
const config = APP_COLOR_PRESETS[preset];
|
|
42
|
+
const r = generateRoleColors({
|
|
43
|
+
seed: config.hex,
|
|
44
|
+
variant: config.variant,
|
|
45
|
+
isDark
|
|
46
|
+
});
|
|
60
47
|
return {
|
|
61
48
|
background: g('background'),
|
|
62
49
|
backgroundSecondary: g('surface'),
|
|
63
|
-
backgroundTertiary: g('
|
|
50
|
+
backgroundTertiary: g('popover'),
|
|
64
51
|
text: g('foreground'),
|
|
65
52
|
textSecondary: g('muted-foreground'),
|
|
66
|
-
textTertiary:
|
|
53
|
+
textTertiary: r.outline,
|
|
67
54
|
border: g('border'),
|
|
68
55
|
borderLight: g('input'),
|
|
69
56
|
primary: g('primary'),
|
|
@@ -72,20 +59,21 @@ function buildColorsFromPreset(preset, resolved) {
|
|
|
72
59
|
// `primaryDark` is the page background — retained for downstream consumers.
|
|
73
60
|
primaryLight: g('surface'),
|
|
74
61
|
primaryDark: g('background'),
|
|
75
|
-
// `secondary`
|
|
76
|
-
secondary: g('
|
|
62
|
+
// The FIX: `secondary` is now a real contrast colour (engine `secondary`).
|
|
63
|
+
secondary: g('secondary'),
|
|
77
64
|
tint: g('primary'),
|
|
78
65
|
icon: g('muted-foreground'),
|
|
79
66
|
iconActive: g('primary'),
|
|
80
67
|
...STATUS_COLORS,
|
|
81
|
-
primarySubtle:
|
|
82
|
-
primarySubtleForeground:
|
|
83
|
-
negative:
|
|
84
|
-
negativeForeground:
|
|
85
|
-
negativeSubtle:
|
|
86
|
-
negativeSubtleForeground:
|
|
87
|
-
contrast50:
|
|
88
|
-
|
|
68
|
+
primarySubtle: r.primaryContainer,
|
|
69
|
+
primarySubtleForeground: r.onPrimaryContainer,
|
|
70
|
+
negative: r.error,
|
|
71
|
+
negativeForeground: r.onError,
|
|
72
|
+
negativeSubtle: r.errorContainer,
|
|
73
|
+
negativeSubtleForeground: r.onErrorContainer,
|
|
74
|
+
contrast50: g('muted'),
|
|
75
|
+
// The FIX: `card` is the lightest surface (engine `surfaceContainerLowest`).
|
|
76
|
+
card: g('card'),
|
|
89
77
|
shadow: isDark ? 'rgba(0, 0, 0, 0.3)' : 'rgba(0, 0, 0, 0.1)',
|
|
90
78
|
overlay: 'rgba(0, 0, 0, 0.5)'
|
|
91
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","APP_COLOR_PRESETS","
|
|
1
|
+
{"version":3,"names":["Platform","APP_COLOR_PRESETS","generateRoleColors","getAdaptiveColors","getResolvedTokens","THEME_GRADIENTS","STATUS_COLORS","success","error","warning","info","buildColorsFromPreset","preset","resolved","t","isDark","g","k","config","r","seed","hex","variant","background","backgroundSecondary","backgroundTertiary","text","textSecondary","textTertiary","outline","border","borderLight","primary","primaryForeground","primaryLight","primaryDark","secondary","tint","icon","iconActive","primarySubtle","primaryContainer","primarySubtleForeground","onPrimaryContainer","negative","negativeForeground","onError","negativeSubtle","errorContainer","negativeSubtleForeground","onErrorContainer","contrast50","card","shadow","overlay","buildTheme","isAdaptive","adaptive","OS","undefined","colors","mode","gradients","isLight"],"sourceRoot":"../../../src","sources":["theme/build-theme.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Bloom colour engine — CAM16 colour appearance model.
|
|
5
|
+
*
|
|
6
|
+
* Faithful port of Material Color Utilities' `Cam16` (Apache-2.0) into Bloom's
|
|
7
|
+
* own code. A colour is defined by its ARGB AND the viewing conditions; CAM16
|
|
8
|
+
* also exposes CAM16-UCS coordinates (jstar/astar/bstar) for perceptual
|
|
9
|
+
* distance. Underpins the HCT colour space.
|
|
10
|
+
*/
|
|
11
|
+
import { argbFromXyz, linearized } from "./color-utils.js";
|
|
12
|
+
import { signum } from "./math-utils.js";
|
|
13
|
+
import { ViewingConditions } from "./viewing-conditions.js";
|
|
14
|
+
export class Cam16 {
|
|
15
|
+
constructor(hue, chroma, j, q, m, s, jstar, astar, bstar) {
|
|
16
|
+
this.hue = hue;
|
|
17
|
+
this.chroma = chroma;
|
|
18
|
+
this.j = j;
|
|
19
|
+
this.q = q;
|
|
20
|
+
this.m = m;
|
|
21
|
+
this.s = s;
|
|
22
|
+
this.jstar = jstar;
|
|
23
|
+
this.astar = astar;
|
|
24
|
+
this.bstar = bstar;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/** CAM16-UCS perceptual distance to another colour. */
|
|
28
|
+
distance(other) {
|
|
29
|
+
const dJ = this.jstar - other.jstar;
|
|
30
|
+
const dA = this.astar - other.astar;
|
|
31
|
+
const dB = this.bstar - other.bstar;
|
|
32
|
+
const dEPrime = Math.sqrt(dJ * dJ + dA * dA + dB * dB);
|
|
33
|
+
return 1.41 * Math.pow(dEPrime, 0.63);
|
|
34
|
+
}
|
|
35
|
+
static fromInt(argb) {
|
|
36
|
+
return Cam16.fromIntInViewingConditions(argb, ViewingConditions.DEFAULT);
|
|
37
|
+
}
|
|
38
|
+
static fromIntInViewingConditions(argb, vc) {
|
|
39
|
+
const red = (argb & 0x00ff0000) >> 16;
|
|
40
|
+
const green = (argb & 0x0000ff00) >> 8;
|
|
41
|
+
const blue = argb & 0x000000ff;
|
|
42
|
+
const redL = linearized(red);
|
|
43
|
+
const greenL = linearized(green);
|
|
44
|
+
const blueL = linearized(blue);
|
|
45
|
+
const x = 0.41233895 * redL + 0.35762064 * greenL + 0.18051042 * blueL;
|
|
46
|
+
const y = 0.2126 * redL + 0.7152 * greenL + 0.0722 * blueL;
|
|
47
|
+
const z = 0.01932141 * redL + 0.11916382 * greenL + 0.95034478 * blueL;
|
|
48
|
+
return Cam16.fromXyzInViewingConditions(x, y, z, vc);
|
|
49
|
+
}
|
|
50
|
+
static fromXyzInViewingConditions(x, y, z, vc) {
|
|
51
|
+
const rC = 0.401288 * x + 0.650173 * y - 0.051461 * z;
|
|
52
|
+
const gC = -0.250268 * x + 1.204414 * y + 0.045854 * z;
|
|
53
|
+
const bC = -0.002079 * x + 0.048952 * y + 0.953127 * z;
|
|
54
|
+
const rD = vc.rgbD[0] * rC;
|
|
55
|
+
const gD = vc.rgbD[1] * gC;
|
|
56
|
+
const bD = vc.rgbD[2] * bC;
|
|
57
|
+
const rAF = Math.pow(vc.fl * Math.abs(rD) / 100.0, 0.42);
|
|
58
|
+
const gAF = Math.pow(vc.fl * Math.abs(gD) / 100.0, 0.42);
|
|
59
|
+
const bAF = Math.pow(vc.fl * Math.abs(bD) / 100.0, 0.42);
|
|
60
|
+
const rA = signum(rD) * 400.0 * rAF / (rAF + 27.13);
|
|
61
|
+
const gA = signum(gD) * 400.0 * gAF / (gAF + 27.13);
|
|
62
|
+
const bA = signum(bD) * 400.0 * bAF / (bAF + 27.13);
|
|
63
|
+
const a = (11.0 * rA + -12.0 * gA + bA) / 11.0;
|
|
64
|
+
const b = (rA + gA - 2.0 * bA) / 9.0;
|
|
65
|
+
const u = (20.0 * rA + 20.0 * gA + 21.0 * bA) / 20.0;
|
|
66
|
+
const p2 = (40.0 * rA + 20.0 * gA + bA) / 20.0;
|
|
67
|
+
const atan2 = Math.atan2(b, a);
|
|
68
|
+
const atanDegrees = atan2 * 180.0 / Math.PI;
|
|
69
|
+
const hue = atanDegrees < 0 ? atanDegrees + 360.0 : atanDegrees >= 360 ? atanDegrees - 360 : atanDegrees;
|
|
70
|
+
const hueRadians = hue * Math.PI / 180.0;
|
|
71
|
+
const ac = p2 * vc.nbb;
|
|
72
|
+
const J = 100.0 * Math.pow(ac / vc.aw, vc.c * vc.z);
|
|
73
|
+
const Q = 4.0 / vc.c * Math.sqrt(J / 100.0) * (vc.aw + 4.0) * vc.fLRoot;
|
|
74
|
+
const huePrime = hue < 20.14 ? hue + 360 : hue;
|
|
75
|
+
const eHue = 1.0 / 4.0 * (Math.cos(huePrime * Math.PI / 180.0 + 2.0) + 3.8);
|
|
76
|
+
const p1 = 50000.0 / 13.0 * eHue * vc.nc * vc.ncb;
|
|
77
|
+
const t = p1 * Math.sqrt(a * a + b * b) / (u + 0.305);
|
|
78
|
+
const alpha = Math.pow(t, 0.9) * Math.pow(1.64 - Math.pow(0.29, vc.n), 0.73);
|
|
79
|
+
const C = alpha * Math.sqrt(J / 100.0);
|
|
80
|
+
const M = C * vc.fLRoot;
|
|
81
|
+
const s = 50.0 * Math.sqrt(alpha * vc.c / (vc.aw + 4.0));
|
|
82
|
+
const jstar = (1.0 + 100.0 * 0.007) * J / (1.0 + 0.007 * J);
|
|
83
|
+
const mstar = Math.log(1.0 + 0.0228 * M) / 0.0228;
|
|
84
|
+
const astar = mstar * Math.cos(hueRadians);
|
|
85
|
+
const bstar = mstar * Math.sin(hueRadians);
|
|
86
|
+
return new Cam16(hue, C, J, Q, M, s, jstar, astar, bstar);
|
|
87
|
+
}
|
|
88
|
+
static fromJch(j, c, h) {
|
|
89
|
+
return Cam16.fromJchInViewingConditions(j, c, h, ViewingConditions.DEFAULT);
|
|
90
|
+
}
|
|
91
|
+
static fromJchInViewingConditions(j, c, h, vc) {
|
|
92
|
+
const q = 4.0 / vc.c * Math.sqrt(j / 100.0) * (vc.aw + 4.0) * vc.fLRoot;
|
|
93
|
+
const m = c * vc.fLRoot;
|
|
94
|
+
const alpha = c / Math.sqrt(j / 100.0);
|
|
95
|
+
const s = 50.0 * Math.sqrt(alpha * vc.c / (vc.aw + 4.0));
|
|
96
|
+
const hueRadians = h * Math.PI / 180.0;
|
|
97
|
+
const jstar = (1.0 + 100.0 * 0.007) * j / (1.0 + 0.007 * j);
|
|
98
|
+
const mstar = 1.0 / 0.0228 * Math.log(1.0 + 0.0228 * m);
|
|
99
|
+
const astar = mstar * Math.cos(hueRadians);
|
|
100
|
+
const bstar = mstar * Math.sin(hueRadians);
|
|
101
|
+
return new Cam16(h, c, j, q, m, s, jstar, astar, bstar);
|
|
102
|
+
}
|
|
103
|
+
static fromUcs(jstar, astar, bstar) {
|
|
104
|
+
return Cam16.fromUcsInViewingConditions(jstar, astar, bstar, ViewingConditions.DEFAULT);
|
|
105
|
+
}
|
|
106
|
+
static fromUcsInViewingConditions(jstar, astar, bstar, vc) {
|
|
107
|
+
const a = astar;
|
|
108
|
+
const b = bstar;
|
|
109
|
+
const m = Math.sqrt(a * a + b * b);
|
|
110
|
+
const M = (Math.exp(m * 0.0228) - 1.0) / 0.0228;
|
|
111
|
+
const c = M / vc.fLRoot;
|
|
112
|
+
let h = Math.atan2(b, a) * (180.0 / Math.PI);
|
|
113
|
+
if (h < 0.0) h += 360.0;
|
|
114
|
+
const j = jstar / (1 - (jstar - 100) * 0.007);
|
|
115
|
+
return Cam16.fromJchInViewingConditions(j, c, h, vc);
|
|
116
|
+
}
|
|
117
|
+
toInt() {
|
|
118
|
+
return this.viewed(ViewingConditions.DEFAULT);
|
|
119
|
+
}
|
|
120
|
+
viewed(vc) {
|
|
121
|
+
const xyz = this.xyzInViewingConditions(vc);
|
|
122
|
+
return argbFromXyz(xyz[0], xyz[1], xyz[2]);
|
|
123
|
+
}
|
|
124
|
+
xyzInViewingConditions(vc) {
|
|
125
|
+
const alpha = this.chroma === 0.0 || this.j === 0.0 ? 0.0 : this.chroma / Math.sqrt(this.j / 100.0);
|
|
126
|
+
const t = Math.pow(alpha / Math.pow(1.64 - Math.pow(0.29, vc.n), 0.73), 1.0 / 0.9);
|
|
127
|
+
const hRad = this.hue * Math.PI / 180.0;
|
|
128
|
+
const eHue = 0.25 * (Math.cos(hRad + 2.0) + 3.8);
|
|
129
|
+
const ac = vc.aw * Math.pow(this.j / 100.0, 1.0 / vc.c / vc.z);
|
|
130
|
+
const p1 = eHue * (50000.0 / 13.0) * vc.nc * vc.ncb;
|
|
131
|
+
const p2 = ac / vc.nbb;
|
|
132
|
+
const hSin = Math.sin(hRad);
|
|
133
|
+
const hCos = Math.cos(hRad);
|
|
134
|
+
const gamma = 23.0 * (p2 + 0.305) * t / (23.0 * p1 + 11.0 * t * hCos + 108.0 * t * hSin);
|
|
135
|
+
const a = gamma * hCos;
|
|
136
|
+
const b = gamma * hSin;
|
|
137
|
+
const rA = (460.0 * p2 + 451.0 * a + 288.0 * b) / 1403.0;
|
|
138
|
+
const gA = (460.0 * p2 - 891.0 * a - 261.0 * b) / 1403.0;
|
|
139
|
+
const bA = (460.0 * p2 - 220.0 * a - 6300.0 * b) / 1403.0;
|
|
140
|
+
const rCBase = Math.max(0, 27.13 * Math.abs(rA) / (400.0 - Math.abs(rA)));
|
|
141
|
+
const rC = signum(rA) * (100.0 / vc.fl) * Math.pow(rCBase, 1.0 / 0.42);
|
|
142
|
+
const gCBase = Math.max(0, 27.13 * Math.abs(gA) / (400.0 - Math.abs(gA)));
|
|
143
|
+
const gC = signum(gA) * (100.0 / vc.fl) * Math.pow(gCBase, 1.0 / 0.42);
|
|
144
|
+
const bCBase = Math.max(0, 27.13 * Math.abs(bA) / (400.0 - Math.abs(bA)));
|
|
145
|
+
const bC = signum(bA) * (100.0 / vc.fl) * Math.pow(bCBase, 1.0 / 0.42);
|
|
146
|
+
const rF = rC / vc.rgbD[0];
|
|
147
|
+
const gF = gC / vc.rgbD[1];
|
|
148
|
+
const bF = bC / vc.rgbD[2];
|
|
149
|
+
const x = 1.86206786 * rF - 1.01125463 * gF + 0.14918677 * bF;
|
|
150
|
+
const y = 0.38752654 * rF + 0.62144744 * gF - 0.00897398 * bF;
|
|
151
|
+
const z = -0.0158415 * rF - 0.03412294 * gF + 1.04996444 * bF;
|
|
152
|
+
return [x, y, z];
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=cam16.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["argbFromXyz","linearized","signum","ViewingConditions","Cam16","constructor","hue","chroma","j","q","m","s","jstar","astar","bstar","distance","other","dJ","dA","dB","dEPrime","Math","sqrt","pow","fromInt","argb","fromIntInViewingConditions","DEFAULT","vc","red","green","blue","redL","greenL","blueL","x","y","z","fromXyzInViewingConditions","rC","gC","bC","rD","rgbD","gD","bD","rAF","fl","abs","gAF","bAF","rA","gA","bA","a","b","u","p2","atan2","atanDegrees","PI","hueRadians","ac","nbb","J","aw","c","Q","fLRoot","huePrime","eHue","cos","p1","nc","ncb","t","alpha","n","C","M","mstar","log","sin","fromJch","h","fromJchInViewingConditions","fromUcs","fromUcsInViewingConditions","exp","toInt","viewed","xyz","xyzInViewingConditions","hRad","hSin","hCos","gamma","rCBase","max","gCBase","bCBase","rF","gF","bF"],"sourceRoot":"../../../../src","sources":["theme/color-engine/cam16.ts"],"mappings":"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","ignoreList":[]}
|