mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-23 19:49:50 +02:00
feat: isolate radix utils
This commit is contained in:
1 parent
887d3079df
commit
9640920863
6 files changed
+28
-32
No files matched your search
@@ -4,9 +4,11 @@ import { Code, Heading } from '@radix-ui/themes';
|
|||||||
import { useSearchParams } from 'next/navigation';
|
import { useSearchParams } from 'next/navigation';
|
||||||
import { useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
import { PageWrapper } from '../../../../../components/PageWrapper';
|
import { PageWrapper } from '../../../../../components/PageWrapper';
|
||||||
import { configurations } from '../../../../../constants/embeds';
|
import {
|
||||||
|
configurations,
|
||||||
|
extractEmbedConfigDefaults,
|
||||||
|
} from '../../../../../constants/embeds';
|
||||||
import * as EmbedState from '../../../../../stores/embedState';
|
import * as EmbedState from '../../../../../stores/embedState';
|
||||||
import { extractEmbedConfigDefaults } from '../../utilities';
|
|
||||||
|
|
||||||
export interface EmbedPreviewControllerProps {
|
export interface EmbedPreviewControllerProps {
|
||||||
configKey: string;
|
configKey: string;
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
import { useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
import { configurations } from '../../../../constants/embeds';
|
import {
|
||||||
|
configurations,
|
||||||
|
extractEmbedConfigDefaults,
|
||||||
|
} from '../../../../constants/embeds';
|
||||||
import * as EmbedState from '../../../../stores/embedState';
|
import * as EmbedState from '../../../../stores/embedState';
|
||||||
import { extractEmbedConfigDefaults } from '../utilities';
|
|
||||||
|
|
||||||
export function generateStaticParams() {
|
export function generateStaticParams() {
|
||||||
return Object.keys(configurations).map((embed) => ({ embed }));
|
return Object.keys(configurations).map((embed) => ({ embed }));
|
||||||
|
|||||||
@@ -1,26 +0,0 @@
|
|||||||
import {
|
|
||||||
EmbedConfig,
|
|
||||||
ExtractEmbedConfigTypes,
|
|
||||||
RadixColorCompound,
|
|
||||||
RadixRadius,
|
|
||||||
} from '../../../stores/embedState';
|
|
||||||
|
|
||||||
export function extractEmbedConfigDefaults<Config extends EmbedConfig>(
|
|
||||||
config: Config,
|
|
||||||
) {
|
|
||||||
return Object.fromEntries(
|
|
||||||
Object.entries(config).map(([key, value]) => [key, value.default]),
|
|
||||||
) as ExtractEmbedConfigTypes<Config>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function toWidthVar(state: number) {
|
|
||||||
return `${state}px`;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function toRadiusVar(state: RadixRadius) {
|
|
||||||
return `var(--radius-${state})`;
|
|
||||||
}
|
|
||||||
|
|
||||||
export function toColorVar(state: RadixColorCompound) {
|
|
||||||
return `var(--${state.base}-${state.variant})`;
|
|
||||||
}
|
|
||||||
@@ -8,8 +8,8 @@ import { amberDark, blueDark } from '@radix-ui/colors';
|
|||||||
import { Flex, Text } from '@radix-ui/themes';
|
import { Flex, Text } from '@radix-ui/themes';
|
||||||
import { times } from 'lodash';
|
import { times } from 'lodash';
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import { toRadiusVar } from '../app/tools/embed/utilities';
|
|
||||||
import { breakdownConfig } from '../constants/embeds';
|
import { breakdownConfig } from '../constants/embeds';
|
||||||
|
import { toRadiusVar } from '../core/radix/utils';
|
||||||
import { useEmbedStateCurry } from '../stores/embedState/utilities';
|
import { useEmbedStateCurry } from '../stores/embedState/utilities';
|
||||||
import { ClassHeavy } from './ClassIcon/components/ClassHeavy';
|
import { ClassHeavy } from './ClassIcon/components/ClassHeavy';
|
||||||
import { ClassLight } from './ClassIcon/components/ClassLight';
|
import { ClassLight } from './ClassIcon/components/ClassLight';
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import {
|
|||||||
BreakdownPreview,
|
BreakdownPreview,
|
||||||
compositeStatsKeysOptions,
|
compositeStatsKeysOptions,
|
||||||
} from '../app/tools/embed/configurations/breakdown';
|
} from '../app/tools/embed/configurations/breakdown';
|
||||||
import { EmbedConfig } from '../stores/embedState';
|
import { EmbedConfig, ExtractEmbedConfigTypes } from '../stores/embedState';
|
||||||
import { EmbedItemType } from '../stores/embedState/constants';
|
import { EmbedItemType } from '../stores/embedState/constants';
|
||||||
|
|
||||||
export const breakdownConfig = {
|
export const breakdownConfig = {
|
||||||
@@ -89,3 +89,10 @@ export const configurations = {
|
|||||||
export const previews = {
|
export const previews = {
|
||||||
breakdown: BreakdownPreview,
|
breakdown: BreakdownPreview,
|
||||||
} satisfies Record<string, () => ReactNode>;
|
} satisfies Record<string, () => ReactNode>;
|
||||||
|
export function extractEmbedConfigDefaults<Config extends EmbedConfig>(
|
||||||
|
config: Config,
|
||||||
|
) {
|
||||||
|
return Object.fromEntries(
|
||||||
|
Object.entries(config).map(([key, value]) => [key, value.default]),
|
||||||
|
) as ExtractEmbedConfigTypes<Config>;
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
import { RadixColorCompound, RadixRadius } from '../../stores/embedState';
|
||||||
|
|
||||||
|
export function toWidthVar(state: number) {
|
||||||
|
return `${state}px`;
|
||||||
|
}
|
||||||
|
export function toRadiusVar(state: RadixRadius) {
|
||||||
|
return `var(--radius-${state})`;
|
||||||
|
}
|
||||||
|
export function toColorVar(state: RadixColorCompound) {
|
||||||
|
return `var(--${state.base}-${state.variant})`;
|
||||||
|
}
|
||||||
Reference in new issue
Block a user