@0610studio/zs-ui 0.18.0 → 0.19.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/build/ZsUiModule.d.ts.map +1 -1
- package/build/ZsUiModule.js +0 -2
- package/build/ZsUiModule.js.map +1 -1
- package/build/assets/SvgExclamation.d.ts.map +1 -1
- package/build/assets/SvgExclamation.js.map +1 -1
- package/build/assets/SvgTooltipTail.d.ts +7 -0
- package/build/assets/SvgTooltipTail.d.ts.map +1 -0
- package/build/assets/SvgTooltipTail.js +7 -0
- package/build/assets/SvgTooltipTail.js.map +1 -0
- package/build/context/OverlayContext.d.ts.map +1 -1
- package/build/context/OverlayContext.js +11 -14
- package/build/context/OverlayContext.js.map +1 -1
- package/build/context/ThemeContext.d.ts +9 -0
- package/build/context/ThemeContext.d.ts.map +1 -1
- package/build/context/ThemeContext.js +24 -15
- package/build/context/ThemeContext.js.map +1 -1
- package/build/index.d.ts +16 -3
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -7
- package/build/index.js.map +1 -1
- package/build/model/globalOverlay.d.ts +0 -8
- package/build/model/globalOverlay.d.ts.map +1 -1
- package/build/model/globalOverlay.js +0 -9
- package/build/model/globalOverlay.js.map +1 -1
- package/build/model/types.d.ts +2 -1
- package/build/model/types.d.ts.map +1 -1
- package/build/model/types.js.map +1 -1
- package/build/model/useFoldingState.d.ts.map +1 -1
- package/build/model/useFoldingState.js +51 -32
- package/build/model/useFoldingState.js.map +1 -1
- package/build/model/useKeyboard.d.ts.map +1 -1
- package/build/model/useKeyboard.js +8 -4
- package/build/model/useKeyboard.js.map +1 -1
- package/build/model/utils.d.ts +1 -1
- package/build/model/utils.d.ts.map +1 -1
- package/build/model/utils.js +2 -1
- package/build/model/utils.js.map +1 -1
- package/build/overlay/AlertOverlay/index.d.ts +1 -2
- package/build/overlay/AlertOverlay/index.d.ts.map +1 -1
- package/build/overlay/AlertOverlay/index.js +13 -11
- package/build/overlay/AlertOverlay/index.js.map +1 -1
- package/build/overlay/BottomSheetOverlay/index.d.ts.map +1 -1
- package/build/overlay/BottomSheetOverlay/index.js +22 -11
- package/build/overlay/BottomSheetOverlay/index.js.map +1 -1
- package/build/overlay/LoadingNotify/index.d.ts +2 -2
- package/build/overlay/LoadingNotify/index.d.ts.map +1 -1
- package/build/overlay/LoadingNotify/index.js +2 -2
- package/build/overlay/LoadingNotify/index.js.map +1 -1
- package/build/overlay/Modality/index.d.ts.map +1 -1
- package/build/overlay/Modality/index.js +6 -12
- package/build/overlay/Modality/index.js.map +1 -1
- package/build/overlay/PopOver/PopOverMenu.d.ts.map +1 -1
- package/build/overlay/PopOver/PopOverMenu.js +7 -8
- package/build/overlay/PopOver/PopOverMenu.js.map +1 -1
- package/build/overlay/SnackbarNotify/index.d.ts +3 -3
- package/build/overlay/SnackbarNotify/index.d.ts.map +1 -1
- package/build/overlay/SnackbarNotify/index.js +5 -4
- package/build/overlay/SnackbarNotify/index.js.map +1 -1
- package/build/overlay/SnackbarNotify/ui/SnackbarItem.d.ts +4 -4
- package/build/overlay/SnackbarNotify/ui/SnackbarItem.d.ts.map +1 -1
- package/build/overlay/SnackbarNotify/ui/SnackbarItem.js +9 -9
- package/build/overlay/SnackbarNotify/ui/SnackbarItem.js.map +1 -1
- package/build/overlay/ZSPortal/index.d.ts.map +1 -1
- package/build/overlay/ZSPortal/index.js +15 -4
- package/build/overlay/ZSPortal/index.js.map +1 -1
- package/build/overlay/ui/ModalBackground.js.map +1 -1
- package/build/theme/elevation.d.ts +94 -10
- package/build/theme/elevation.d.ts.map +1 -1
- package/build/theme/elevation.js +39 -35
- package/build/theme/elevation.js.map +1 -1
- package/build/theme/intentColors.d.ts +9 -0
- package/build/theme/intentColors.d.ts.map +1 -0
- package/build/theme/intentColors.js +30 -0
- package/build/theme/intentColors.js.map +1 -0
- package/build/theme/palette.d.ts +1 -5
- package/build/theme/palette.d.ts.map +1 -1
- package/build/theme/palette.js +3 -12
- package/build/theme/palette.js.map +1 -1
- package/build/theme/resolveColor.d.ts +4 -0
- package/build/theme/resolveColor.d.ts.map +1 -0
- package/build/theme/resolveColor.js +29 -0
- package/build/theme/resolveColor.js.map +1 -0
- package/build/theme/tokens.d.ts +35 -0
- package/build/theme/tokens.d.ts.map +1 -0
- package/build/theme/tokens.js +35 -0
- package/build/theme/tokens.js.map +1 -0
- package/build/theme/typography.d.ts.map +1 -1
- package/build/theme/typography.js +36 -72
- package/build/theme/typography.js.map +1 -1
- package/build/ui/ZSBlockButton/index.d.ts +4 -2
- package/build/ui/ZSBlockButton/index.d.ts.map +1 -1
- package/build/ui/ZSBlockButton/index.js +17 -80
- package/build/ui/ZSBlockButton/index.js.map +1 -1
- package/build/ui/ZSBorderBeam/index.d.ts +48 -0
- package/build/ui/ZSBorderBeam/index.d.ts.map +1 -0
- package/build/ui/ZSBorderBeam/index.js +135 -0
- package/build/ui/ZSBorderBeam/index.js.map +1 -0
- package/build/ui/ZSCheckBox/index.d.ts +18 -0
- package/build/ui/ZSCheckBox/index.d.ts.map +1 -0
- package/build/ui/ZSCheckBox/index.js +60 -0
- package/build/ui/ZSCheckBox/index.js.map +1 -0
- package/build/ui/ZSChip/index.d.ts +28 -0
- package/build/ui/ZSChip/index.d.ts.map +1 -0
- package/build/ui/ZSChip/index.js +76 -0
- package/build/ui/ZSChip/index.js.map +1 -0
- package/build/ui/ZSContainer/index.d.ts +19 -0
- package/build/ui/ZSContainer/index.d.ts.map +1 -1
- package/build/ui/ZSContainer/index.js +29 -15
- package/build/ui/ZSContainer/index.js.map +1 -1
- package/build/ui/ZSPressable/index.d.ts.map +1 -1
- package/build/ui/ZSPressable/index.js +9 -6
- package/build/ui/ZSPressable/index.js.map +1 -1
- package/build/ui/ZSRadioGroup/index.d.ts +4 -4
- package/build/ui/ZSRadioGroup/index.d.ts.map +1 -1
- package/build/ui/ZSRadioGroup/index.js +72 -52
- package/build/ui/ZSRadioGroup/index.js.map +1 -1
- package/build/ui/ZSSegmented/index.d.ts +26 -0
- package/build/ui/ZSSegmented/index.d.ts.map +1 -0
- package/build/ui/ZSSegmented/index.js +124 -0
- package/build/ui/ZSSegmented/index.js.map +1 -0
- package/build/ui/ZSSkeleton/SkiaShimmer.d.ts +18 -0
- package/build/ui/ZSSkeleton/SkiaShimmer.d.ts.map +1 -0
- package/build/ui/ZSSkeleton/SkiaShimmer.js +73 -0
- package/build/ui/ZSSkeleton/SkiaShimmer.js.map +1 -0
- package/build/ui/ZSSkeleton/index.d.ts +9 -3
- package/build/ui/ZSSkeleton/index.d.ts.map +1 -1
- package/build/ui/ZSSkeleton/index.js +13 -44
- package/build/ui/ZSSkeleton/index.js.map +1 -1
- package/build/ui/ZSSkeletonBox/index.d.ts +10 -3
- package/build/ui/ZSSkeletonBox/index.d.ts.map +1 -1
- package/build/ui/ZSSkeletonBox/index.js +9 -47
- package/build/ui/ZSSkeletonBox/index.js.map +1 -1
- package/build/ui/ZSSwitch/index.d.ts +4 -2
- package/build/ui/ZSSwitch/index.d.ts.map +1 -1
- package/build/ui/ZSSwitch/index.js +8 -6
- package/build/ui/ZSSwitch/index.js.map +1 -1
- package/build/ui/ZSText/index.d.ts +3 -2
- package/build/ui/ZSText/index.d.ts.map +1 -1
- package/build/ui/ZSText/index.js +5 -16
- package/build/ui/ZSText/index.js.map +1 -1
- package/build/ui/ZSTextField/index.d.ts.map +1 -1
- package/build/ui/ZSTextField/index.js +57 -40
- package/build/ui/ZSTextField/index.js.map +1 -1
- package/build/ui/ZSTextField/ui/ButtonClose.d.ts.map +1 -1
- package/build/ui/ZSTextField/ui/ButtonClose.js +4 -1
- package/build/ui/ZSTextField/ui/ButtonClose.js.map +1 -1
- package/build/ui/ZSTooltip/index.d.ts +38 -0
- package/build/ui/ZSTooltip/index.d.ts.map +1 -0
- package/build/ui/ZSTooltip/index.js +99 -0
- package/build/ui/ZSTooltip/index.js.map +1 -0
- package/build/ui/ZSView/index.d.ts +3 -2
- package/build/ui/ZSView/index.d.ts.map +1 -1
- package/build/ui/ZSView/index.js +7 -8
- package/build/ui/ZSView/index.js.map +1 -1
- package/build/ui/atoms/AnimatedWrapper.d.ts.map +1 -1
- package/build/ui/atoms/AnimatedWrapper.js +33 -40
- package/build/ui/atoms/AnimatedWrapper.js.map +1 -1
- package/build/ui/atoms/TextAtom.d.ts +1 -2
- package/build/ui/atoms/TextAtom.d.ts.map +1 -1
- package/build/ui/atoms/TextAtom.js.map +1 -1
- package/build/ui/atoms/ViewAtom.d.ts +1 -2
- package/build/ui/atoms/ViewAtom.d.ts.map +1 -1
- package/build/ui/atoms/ViewAtom.js.map +1 -1
- package/package.json +6 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overlay/ZSPortal/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAa,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/overlay/ZSPortal/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useContext, useState, useCallback, useMemo, ReactNode, useEffect } from 'react';\nimport { StyleSheet } from 'react-native';\nimport Animated, { FadeInDown, FadeOutDown } from 'react-native-reanimated';\nimport { Z_INDEX_VALUE } from '../../model/utils';\n\ninterface PortalContextType {\n registerPortal: (id: string, element: ReactNode) => void;\n unregisterPortal: (id: string) => void;\n}\n\nconst PortalContext = createContext<PortalContextType | null>(null);\n\ninterface PortalProviderProps {\n children: ReactNode;\n}\n\nexport const PortalProvider: React.FC<PortalProviderProps> = ({ children }) => {\n const [portals, setPortals] = useState<Map<string, ReactNode>>(new Map());\n\n const registerPortal = useCallback((id: string, element: ReactNode) => {\n setPortals(prev => {\n if (prev.get(id) === element) {\n return prev;\n }\n const newMap = new Map(prev);\n newMap.set(id, element);\n return newMap;\n });\n }, []);\n\n const unregisterPortal = useCallback((id: string) => {\n setPortals(prev => {\n if (!prev.has(id)) {\n return prev;\n }\n const newMap = new Map(prev);\n newMap.delete(id);\n return newMap;\n });\n }, []);\n\n const contextValue = useMemo(\n () => ({ registerPortal, unregisterPortal }),\n [registerPortal, unregisterPortal]\n );\n\n return (\n <PortalContext.Provider value={contextValue}>\n {children}\n {Array.from(portals.entries()).map(([id, element]) => (\n <Animated.View entering={FadeInDown} exiting={FadeOutDown} key={id} style={styles.portalLayer}>\n {element}\n </Animated.View>\n ))}\n </PortalContext.Provider>\n );\n};\n\nconst styles = StyleSheet.create({\n portalLayer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n pointerEvents: 'box-none',\n zIndex: Z_INDEX_VALUE.ABOVE_KEYBOARD,\n },\n});\n\ninterface PortalProps {\n children: ReactNode;\n isFocused?: boolean;\n}\n\nexport const ZSPortal: React.FC<PortalProps> = ({ children, isFocused = true }) => {\n const context = useContext(PortalContext);\n const [portalId] = useState(() => `portal_${Date.now()}_${Math.random()}`);\n\n useEffect(() => {\n if (!context) return;\n if (isFocused) {\n context.registerPortal(portalId, children);\n } else {\n context.unregisterPortal(portalId);\n }\n }, [isFocused, children]);\n\n useEffect(() => {\n return () => {\n if (!context) return;\n context.unregisterPortal(portalId);\n };\n }, []);\n\n return null;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalBackground.js","sourceRoot":"","sources":["../../../src/overlay/ui/ModalBackground.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUlD,SAAS,eAAe,CAAC,EAAE,YAAY,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,EAAwB;IACrI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzE,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,KAAK,QAAQ,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,KAAK,MAAM,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7Q,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC7B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,aAE7B,KAAC,SAAS,IACR,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAErB,EAEX,QAAQ,IACK,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,YAAoB,EAAE,EAAE,CAC5C,UAAU,CAAC,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,eAAe,EAAE,YAAY;QAC7B,GAAG,UAAU,CAAC,YAAY;KAC3B;IACD,UAAU,EAAE;QACV,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,GAAG,UAAU,CAAC,YAAY;KAC3B;CACF,CAAC,CAAC;AAEL,eAAe,eAAe,CAAC","sourcesContent":["import React, { useMemo } from 'react';\nimport { Pressable, StyleSheet } from 'react-native';\nimport Animated, { FadeIn, FadeOut } from 'react-native-reanimated';\nimport { Z_INDEX_VALUE } from '../../model/utils';\n\ninterface ModalBackgroundProps {\n zIndex?: number;\n modalBgColor: string;\n position?: 'center' | 'left' | 'right' | 'pop'
|
|
1
|
+
{"version":3,"file":"ModalBackground.js","sourceRoot":"","sources":["../../../src/overlay/ui/ModalBackground.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAUlD,SAAS,eAAe,CAAC,EAAE,YAAY,EAAE,QAAQ,GAAG,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC,OAAO,EAAwB;IACrI,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzE,OAAO,CACL,MAAC,QAAQ,CAAC,IAAI,IACZ,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,KAAK,QAAQ,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,KAAK,MAAM,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,QAAQ,KAAK,OAAO,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,EAC7Q,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC7B,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,aAE7B,KAAC,SAAS,IACR,KAAK,EAAE,MAAM,CAAC,UAAU,EACxB,OAAO,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAErB,EAEX,QAAQ,IACK,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,YAAoB,EAAE,EAAE,CAC5C,UAAU,CAAC,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,eAAe,EAAE,YAAY;QAC7B,GAAG,UAAU,CAAC,YAAY;KAC3B;IACD,UAAU,EAAE;QACV,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,GAAG,UAAU,CAAC,YAAY;KAC3B;CACF,CAAC,CAAC;AAEL,eAAe,eAAe,CAAC","sourcesContent":["import React, { useMemo } from 'react';\nimport { Pressable, StyleSheet } from 'react-native';\nimport Animated, { FadeIn, FadeOut } from 'react-native-reanimated';\nimport { Z_INDEX_VALUE } from '../../model/utils';\n\ninterface ModalBackgroundProps {\n zIndex?: number;\n modalBgColor: string;\n position?: 'center' | 'left' | 'right' | 'pop';\n children: React.ReactNode;\n onPress?: () => void;\n}\n\nfunction ModalBackground({ modalBgColor, position = 'center', children, onPress, zIndex = Z_INDEX_VALUE.DEFAULT }: ModalBackgroundProps) {\n const styles = useMemo(() => createStyles(modalBgColor), [modalBgColor]);\n\n return (\n <Animated.View\n style={[styles.modalBg, { zIndex }, position === 'center' && { justifyContent: 'center', alignItems: 'center' }, position === 'left' && { justifyContent: 'flex-start', alignItems: 'center' }, position === 'right' && { justifyContent: 'flex-end', alignItems: 'center' }]}\n entering={FadeIn.duration(50)}\n exiting={FadeOut.duration(50)}\n >\n <Pressable\n style={styles.fullScreen}\n onPress={onPress ?? (() => { })}\n >\n </Pressable>\n\n {children}\n </Animated.View>\n );\n}\n\nconst createStyles = (modalBgColor: string) =>\n StyleSheet.create({\n modalBg: {\n backgroundColor: modalBgColor,\n ...StyleSheet.absoluteFill,\n },\n fullScreen: {\n width: '100%',\n height: '100%',\n ...StyleSheet.absoluteFill,\n },\n });\n\nexport default ModalBackground;\n"]}
|
|
@@ -1,18 +1,102 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { BoxShadowValue } from "react-native";
|
|
2
|
+
import { ShadowLevel } from "./types";
|
|
2
3
|
import { Theme } from "./types";
|
|
3
|
-
export declare const IOS_SHADOW: readonly
|
|
4
|
+
export declare const IOS_SHADOW: readonly [{
|
|
5
|
+
readonly shadowOffset: {
|
|
6
|
+
readonly width: 0;
|
|
7
|
+
readonly height: 0;
|
|
8
|
+
};
|
|
9
|
+
readonly shadowOpacity: 0;
|
|
10
|
+
readonly shadowRadius: 0;
|
|
11
|
+
}, {
|
|
12
|
+
readonly shadowOffset: {
|
|
13
|
+
readonly width: 0;
|
|
14
|
+
readonly height: 1;
|
|
15
|
+
};
|
|
16
|
+
readonly shadowOpacity: 0.2;
|
|
17
|
+
readonly shadowRadius: 1;
|
|
18
|
+
}, {
|
|
19
|
+
readonly shadowOffset: {
|
|
20
|
+
readonly width: 0;
|
|
21
|
+
readonly height: 1;
|
|
22
|
+
};
|
|
23
|
+
readonly shadowOpacity: 0.2;
|
|
24
|
+
readonly shadowRadius: 1.41;
|
|
25
|
+
}, {
|
|
26
|
+
readonly shadowOffset: {
|
|
27
|
+
readonly width: 0;
|
|
28
|
+
readonly height: 1;
|
|
29
|
+
};
|
|
30
|
+
readonly shadowOpacity: 0.2;
|
|
31
|
+
readonly shadowRadius: 2.22;
|
|
32
|
+
}, {
|
|
33
|
+
readonly shadowOffset: {
|
|
34
|
+
readonly width: 0;
|
|
35
|
+
readonly height: 2;
|
|
36
|
+
};
|
|
37
|
+
readonly shadowOpacity: 0.2;
|
|
38
|
+
readonly shadowRadius: 2.62;
|
|
39
|
+
}, {
|
|
40
|
+
readonly shadowOffset: {
|
|
41
|
+
readonly width: 0;
|
|
42
|
+
readonly height: 2;
|
|
43
|
+
};
|
|
44
|
+
readonly shadowOpacity: 0.2;
|
|
45
|
+
readonly shadowRadius: 3.84;
|
|
46
|
+
}, {
|
|
47
|
+
readonly shadowOffset: {
|
|
48
|
+
readonly width: 0;
|
|
49
|
+
readonly height: 3;
|
|
50
|
+
};
|
|
51
|
+
readonly shadowOpacity: 0.2;
|
|
52
|
+
readonly shadowRadius: 4.65;
|
|
53
|
+
}, {
|
|
54
|
+
readonly shadowOffset: {
|
|
55
|
+
readonly width: 0;
|
|
56
|
+
readonly height: 4;
|
|
57
|
+
};
|
|
58
|
+
readonly shadowOpacity: 0.25;
|
|
59
|
+
readonly shadowRadius: 4.65;
|
|
60
|
+
}, {
|
|
61
|
+
readonly shadowOffset: {
|
|
62
|
+
readonly width: 0;
|
|
63
|
+
readonly height: 6;
|
|
64
|
+
};
|
|
65
|
+
readonly shadowOpacity: 0.25;
|
|
66
|
+
readonly shadowRadius: 4.65;
|
|
67
|
+
}, {
|
|
68
|
+
readonly shadowOffset: {
|
|
69
|
+
readonly width: 0;
|
|
70
|
+
readonly height: 8;
|
|
71
|
+
};
|
|
72
|
+
readonly shadowOpacity: 0.25;
|
|
73
|
+
readonly shadowRadius: 5.8;
|
|
74
|
+
}, {
|
|
75
|
+
readonly shadowOffset: {
|
|
76
|
+
readonly width: 0;
|
|
77
|
+
readonly height: 10;
|
|
78
|
+
};
|
|
79
|
+
readonly shadowOpacity: 0.25;
|
|
80
|
+
readonly shadowRadius: 6.5;
|
|
81
|
+
}];
|
|
4
82
|
export interface ElevationProps {
|
|
5
|
-
|
|
6
|
-
shadowOffset?: {
|
|
7
|
-
width: number;
|
|
8
|
-
height: number;
|
|
9
|
-
};
|
|
10
|
-
shadowOpacity?: number;
|
|
11
|
-
shadowRadius?: number;
|
|
12
|
-
elevation?: number;
|
|
83
|
+
boxShadow?: BoxShadowValue[];
|
|
13
84
|
}
|
|
14
85
|
export type ElevationStyles = {
|
|
15
86
|
[key in ShadowLevel]: ElevationProps;
|
|
16
87
|
};
|
|
88
|
+
export interface ColorChannels {
|
|
89
|
+
r: number;
|
|
90
|
+
g: number;
|
|
91
|
+
b: number;
|
|
92
|
+
a: number;
|
|
93
|
+
}
|
|
94
|
+
/** `rgb()`/`rgba()` 색상 문자열에서 r·g·b·a 채널을 추출한다. 파싱 실패 시 불투명 검정으로 폴백. */
|
|
95
|
+
export declare function parseColorChannels(color: string): ColorChannels;
|
|
96
|
+
/**
|
|
97
|
+
* IOS_SHADOW 의 레벨별 오프셋·블러와 elevationShadow 색상을 합쳐 cross-platform boxShadow 를 만든다.
|
|
98
|
+
* 기존 iOS 그림자와 동일하게 최종 불투명도는 색상 alpha × shadowOpacity 로 계산한다.
|
|
99
|
+
*/
|
|
100
|
+
export declare function createBoxShadow(level: ShadowLevel, shadowColor: string): BoxShadowValue[];
|
|
17
101
|
export default function elevation(palette: Theme): ElevationStyles;
|
|
18
102
|
//# sourceMappingURL=elevation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elevation.d.ts","sourceRoot":"","sources":["../../src/theme/elevation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"elevation.d.ts","sourceRoot":"","sources":["../../src/theme/elevation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,WAAW,EAAe,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYoB,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;CAC9B;AAED,MAAM,MAAM,eAAe,GAAG;KAC3B,GAAG,IAAI,WAAW,GAAG,cAAc;CACrC,CAAC;AAIF,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAY/D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,EAAE,CAkBzF;AAED,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,OAAO,EAAE,KAAK,GAAG,eAAe,CAKjE"}
|
package/build/theme/elevation.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Platform } from "react-native";
|
|
2
1
|
export const IOS_SHADOW = [
|
|
3
2
|
{ shadowOffset: { width: 0, height: 0 }, shadowOpacity: 0, shadowRadius: 0 },
|
|
4
3
|
{ shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.2, shadowRadius: 1.0 },
|
|
@@ -12,41 +11,46 @@ export const IOS_SHADOW = [
|
|
|
12
11
|
{ shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.25, shadowRadius: 5.8 },
|
|
13
12
|
{ shadowOffset: { width: 0, height: 10 }, shadowOpacity: 0.25, shadowRadius: 6.5 },
|
|
14
13
|
];
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
14
|
+
const SHADOW_LEVELS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
|
15
|
+
/** `rgb()`/`rgba()` 색상 문자열에서 r·g·b·a 채널을 추출한다. 파싱 실패 시 불투명 검정으로 폴백. */
|
|
16
|
+
export function parseColorChannels(color) {
|
|
17
|
+
const group = color.match(/rgba?\(([^)]+)\)/i)?.[1];
|
|
18
|
+
if (!group) {
|
|
19
|
+
return { r: 0, g: 0, b: 0, a: 1 };
|
|
20
|
+
}
|
|
21
|
+
const [r, g, b, a] = group.split(',').map((part) => parseFloat(part.trim()));
|
|
19
22
|
return {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
1:
|
|
24
|
-
? { ...IOS_SHADOW[1], shadowColor: palette.elevationShadow[1] }
|
|
25
|
-
: { elevation: 1, shadowColor: palette.elevationShadow[1] },
|
|
26
|
-
2: useShadowStyle
|
|
27
|
-
? { ...IOS_SHADOW[2], shadowColor: palette.elevationShadow[2] }
|
|
28
|
-
: { elevation: 2, shadowColor: palette.elevationShadow[2] },
|
|
29
|
-
3: useShadowStyle
|
|
30
|
-
? { ...IOS_SHADOW[3], shadowColor: palette.elevationShadow[3] }
|
|
31
|
-
: { elevation: 3, shadowColor: palette.elevationShadow[3] },
|
|
32
|
-
4: useShadowStyle
|
|
33
|
-
? { ...IOS_SHADOW[4], shadowColor: palette.elevationShadow[4] }
|
|
34
|
-
: { elevation: 4, shadowColor: palette.elevationShadow[4] },
|
|
35
|
-
5: useShadowStyle
|
|
36
|
-
? { ...IOS_SHADOW[5], shadowColor: palette.elevationShadow[5] }
|
|
37
|
-
: { elevation: 5, shadowColor: palette.elevationShadow[5] },
|
|
38
|
-
6: useShadowStyle
|
|
39
|
-
? { ...IOS_SHADOW[6], shadowColor: palette.elevationShadow[6] }
|
|
40
|
-
: { elevation: 6, shadowColor: palette.elevationShadow[6] },
|
|
41
|
-
7: useShadowStyle
|
|
42
|
-
? { ...IOS_SHADOW[7], shadowColor: palette.elevationShadow[7] }
|
|
43
|
-
: { elevation: 7, shadowColor: palette.elevationShadow[7] },
|
|
44
|
-
8: useShadowStyle
|
|
45
|
-
? { ...IOS_SHADOW[8], shadowColor: palette.elevationShadow[8] }
|
|
46
|
-
: { elevation: 8, shadowColor: palette.elevationShadow[8] },
|
|
47
|
-
9: useShadowStyle
|
|
48
|
-
? { ...IOS_SHADOW[9], shadowColor: palette.elevationShadow[9] }
|
|
49
|
-
: { elevation: 9, shadowColor: palette.elevationShadow[9] },
|
|
23
|
+
r: r ?? 0,
|
|
24
|
+
g: g ?? 0,
|
|
25
|
+
b: b ?? 0,
|
|
26
|
+
a: a === undefined || Number.isNaN(a) ? 1 : a,
|
|
50
27
|
};
|
|
51
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* IOS_SHADOW 의 레벨별 오프셋·블러와 elevationShadow 색상을 합쳐 cross-platform boxShadow 를 만든다.
|
|
31
|
+
* 기존 iOS 그림자와 동일하게 최종 불투명도는 색상 alpha × shadowOpacity 로 계산한다.
|
|
32
|
+
*/
|
|
33
|
+
export function createBoxShadow(level, shadowColor) {
|
|
34
|
+
const shadow = IOS_SHADOW[level];
|
|
35
|
+
const { r, g, b, a } = parseColorChannels(shadowColor);
|
|
36
|
+
const alpha = a * shadow.shadowOpacity;
|
|
37
|
+
if (alpha <= 0) {
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
return [
|
|
41
|
+
{
|
|
42
|
+
offsetX: shadow.shadowOffset.width,
|
|
43
|
+
offsetY: shadow.shadowOffset.height,
|
|
44
|
+
blurRadius: shadow.shadowRadius,
|
|
45
|
+
spreadDistance: 0,
|
|
46
|
+
color: `rgba(${r}, ${g}, ${b}, ${alpha})`,
|
|
47
|
+
},
|
|
48
|
+
];
|
|
49
|
+
}
|
|
50
|
+
export default function elevation(palette) {
|
|
51
|
+
return SHADOW_LEVELS.reduce((styles, level) => {
|
|
52
|
+
styles[level] = { boxShadow: createBoxShadow(level, palette.elevationShadow[level] ?? '') };
|
|
53
|
+
return styles;
|
|
54
|
+
}, {});
|
|
55
|
+
}
|
|
52
56
|
//# sourceMappingURL=elevation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elevation.js","sourceRoot":"","sources":["../../src/theme/elevation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"elevation.js","sourceRoot":"","sources":["../../src/theme/elevation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { BoxShadowValue } from \"react-native\";\nimport { ShadowLevel, ShadowStyle } from \"./types\";\nimport { Theme } from \"./types\";\n\nexport const IOS_SHADOW = [\n { shadowOffset: { width: 0, height: 0 }, shadowOpacity: 0, shadowRadius: 0 },\n { shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.2, shadowRadius: 1.0 },\n { shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.2, shadowRadius: 1.41 },\n { shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.2, shadowRadius: 2.22 },\n { shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 2.62 },\n { shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 3.84 },\n { shadowOffset: { width: 0, height: 3 }, shadowOpacity: 0.2, shadowRadius: 4.65 },\n { shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.25, shadowRadius: 4.65 },\n { shadowOffset: { width: 0, height: 6 }, shadowOpacity: 0.25, shadowRadius: 4.65 },\n { shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.25, shadowRadius: 5.8 },\n { shadowOffset: { width: 0, height: 10 }, shadowOpacity: 0.25, shadowRadius: 6.5 },\n] as const satisfies readonly ShadowStyle[];\n\nexport interface ElevationProps {\n boxShadow?: BoxShadowValue[];\n}\n\nexport type ElevationStyles = {\n [key in ShadowLevel]: ElevationProps;\n};\n\nconst SHADOW_LEVELS: readonly ShadowLevel[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const;\n\nexport interface ColorChannels {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\n/** `rgb()`/`rgba()` 색상 문자열에서 r·g·b·a 채널을 추출한다. 파싱 실패 시 불투명 검정으로 폴백. */\nexport function parseColorChannels(color: string): ColorChannels {\n const group = color.match(/rgba?\\(([^)]+)\\)/i)?.[1];\n if (!group) {\n return { r: 0, g: 0, b: 0, a: 1 };\n }\n const [r, g, b, a] = group.split(',').map((part) => parseFloat(part.trim()));\n return {\n r: r ?? 0,\n g: g ?? 0,\n b: b ?? 0,\n a: a === undefined || Number.isNaN(a) ? 1 : a,\n };\n}\n\n/**\n * IOS_SHADOW 의 레벨별 오프셋·블러와 elevationShadow 색상을 합쳐 cross-platform boxShadow 를 만든다.\n * 기존 iOS 그림자와 동일하게 최종 불투명도는 색상 alpha × shadowOpacity 로 계산한다.\n */\nexport function createBoxShadow(level: ShadowLevel, shadowColor: string): BoxShadowValue[] {\n const shadow = IOS_SHADOW[level];\n const { r, g, b, a } = parseColorChannels(shadowColor);\n const alpha = a * shadow.shadowOpacity;\n\n if (alpha <= 0) {\n return [];\n }\n\n return [\n {\n offsetX: shadow.shadowOffset.width,\n offsetY: shadow.shadowOffset.height,\n blurRadius: shadow.shadowRadius,\n spreadDistance: 0,\n color: `rgba(${r}, ${g}, ${b}, ${alpha})`,\n },\n ];\n}\n\nexport default function elevation(palette: Theme): ElevationStyles {\n return SHADOW_LEVELS.reduce((styles, level) => {\n styles[level] = { boxShadow: createBoxShadow(level, palette.elevationShadow[level] ?? '') };\n return styles;\n }, {} as ElevationStyles);\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { IntentOptions, TypoColorOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* variant 별 텍스트 색상 토큰 (intent 단위 예외값 포함).
|
|
4
|
+
* ZSBlockButton · ZSChip 등 intent 기반 컴포넌트가 공유한다.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SOLID_TEXT_COLOR: Record<IntentOptions, TypoColorOptions>;
|
|
7
|
+
export declare const PASTEL_TEXT_COLOR: Record<IntentOptions, TypoColorOptions>;
|
|
8
|
+
export declare const STROKE_TEXT_COLOR: Record<IntentOptions, TypoColorOptions>;
|
|
9
|
+
//# sourceMappingURL=intentColors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intentColors.d.ts","sourceRoot":"","sources":["../../src/theme/intentColors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE/D;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAQpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAOrE,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAOrE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* variant 별 텍스트 색상 토큰 (intent 단위 예외값 포함).
|
|
3
|
+
* ZSBlockButton · ZSChip 등 intent 기반 컴포넌트가 공유한다.
|
|
4
|
+
*/
|
|
5
|
+
export const SOLID_TEXT_COLOR = {
|
|
6
|
+
primary: 'white',
|
|
7
|
+
danger: 'white',
|
|
8
|
+
information: 'white',
|
|
9
|
+
success: 'white',
|
|
10
|
+
// 노랑(warning.50) 배경 위 흰 텍스트는 대비가 부족해 검정 사용
|
|
11
|
+
warning: 'black',
|
|
12
|
+
grey: 'white',
|
|
13
|
+
};
|
|
14
|
+
export const PASTEL_TEXT_COLOR = {
|
|
15
|
+
primary: 'primary.60',
|
|
16
|
+
danger: 'danger.60',
|
|
17
|
+
information: 'information.60',
|
|
18
|
+
success: 'success.60',
|
|
19
|
+
warning: 'warning.60',
|
|
20
|
+
grey: 'grey.70',
|
|
21
|
+
};
|
|
22
|
+
export const STROKE_TEXT_COLOR = {
|
|
23
|
+
primary: 'primary.50',
|
|
24
|
+
danger: 'danger.50',
|
|
25
|
+
information: 'information.50',
|
|
26
|
+
success: 'success.50',
|
|
27
|
+
warning: 'warning.60',
|
|
28
|
+
grey: 'grey.60',
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=intentColors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intentColors.js","sourceRoot":"","sources":["../../src/theme/intentColors.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA4C;IACvE,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE,OAAO;IAChB,2CAA2C;IAC3C,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,OAAO;CACd,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAA4C;IACxE,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAA4C;IACxE,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;CAChB,CAAC","sourcesContent":["import type { IntentOptions, TypoColorOptions } from './types';\n\n/**\n * variant 별 텍스트 색상 토큰 (intent 단위 예외값 포함).\n * ZSBlockButton · ZSChip 등 intent 기반 컴포넌트가 공유한다.\n */\nexport const SOLID_TEXT_COLOR: Record<IntentOptions, TypoColorOptions> = {\n primary: 'white',\n danger: 'white',\n information: 'white',\n success: 'white',\n // 노랑(warning.50) 배경 위 흰 텍스트는 대비가 부족해 검정 사용\n warning: 'black',\n grey: 'white',\n};\n\nexport const PASTEL_TEXT_COLOR: Record<IntentOptions, TypoColorOptions> = {\n primary: 'primary.60',\n danger: 'danger.60',\n information: 'information.60',\n success: 'success.60',\n warning: 'warning.60',\n grey: 'grey.70',\n};\n\nexport const STROKE_TEXT_COLOR: Record<IntentOptions, TypoColorOptions> = {\n primary: 'primary.50',\n danger: 'danger.50',\n information: 'information.50',\n success: 'success.50',\n warning: 'warning.60',\n grey: 'grey.60',\n};\n"]}
|
package/build/theme/palette.d.ts
CHANGED
|
@@ -65,11 +65,7 @@ export interface ThemeFactoryConfig {
|
|
|
65
65
|
light?: ThemeFactoryColors;
|
|
66
66
|
dark?: ThemeFactoryColors;
|
|
67
67
|
}
|
|
68
|
-
/**
|
|
69
|
-
* 테마 팩토리 함수 - SEMANTIC_LIGHT_COLORS와 SEMANTIC_DARK_COLORS를 재정의할 수 있는 기능을 제공합니다.
|
|
70
|
-
* @param config - 라이트/다크 모드별로 색상을 재정의할 수 있는 설정 객체
|
|
71
|
-
* @returns 재정의된 SEMANTIC_LIGHT_COLORS와 SEMANTIC_DARK_COLORS를 포함한 팩토리 함수
|
|
72
|
-
*/
|
|
68
|
+
/** 라이트/다크 시맨틱 색상을 재정의해 커스텀 팔레트 함수를 생성한다. */
|
|
73
69
|
export declare function themeFactory(config?: ThemeFactoryConfig): ({ mode, themeColors, }?: {
|
|
74
70
|
mode?: "light" | "dark";
|
|
75
71
|
themeColors?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDxB,CAAC;
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDxB,CAAC;AAsMF,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,4CAA4C;AAC5C,wBAAgB,YAAY,CAAC,MAAM,GAAE,kBAAuB,IAwC5B,yBAG3B;IACD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;CAC1C,KAAG,KAAK,CA+Ff;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,IAAc,EACd,WAAgB,GACjB,GAAE;IACD,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;CAC1C,GAAG,KAAK,CAqBb"}
|
package/build/theme/palette.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BLACK, PRIMITIVE_BLUE, PRIMITIVE_GREEN, PRIMITIVE_GREY, PRIMITIVE_GREY_DARK, PRIMITIVE_ORANGE, PRIMITIVE_RED, PRIMITIVE_TEAL, PRIMITIVE_YELLOW, SHADOW_COLORS, WHITE } from "./primitive";
|
|
2
2
|
export const transparency = {
|
|
3
|
-
'0%': '00',
|
|
3
|
+
'0%': '00',
|
|
4
4
|
'2%': '05',
|
|
5
5
|
'4%': '0A',
|
|
6
6
|
'6%': '0F',
|
|
@@ -50,7 +50,7 @@ export const transparency = {
|
|
|
50
50
|
'94%': 'F0',
|
|
51
51
|
'96%': 'F5',
|
|
52
52
|
'98%': 'FA',
|
|
53
|
-
'100%': 'FF'
|
|
53
|
+
'100%': 'FF'
|
|
54
54
|
};
|
|
55
55
|
const MODAL_BG_COLOR = {
|
|
56
56
|
light: PRIMITIVE_GREY[90] + transparency['52%'],
|
|
@@ -242,13 +242,8 @@ const SEMANTIC_BACKGROUND_COLORS = {
|
|
|
242
242
|
information: SEMANTIC_DARK_COLORS.information[80],
|
|
243
243
|
},
|
|
244
244
|
};
|
|
245
|
-
/**
|
|
246
|
-
* 테마 팩토리 함수 - SEMANTIC_LIGHT_COLORS와 SEMANTIC_DARK_COLORS를 재정의할 수 있는 기능을 제공합니다.
|
|
247
|
-
* @param config - 라이트/다크 모드별로 색상을 재정의할 수 있는 설정 객체
|
|
248
|
-
* @returns 재정의된 SEMANTIC_LIGHT_COLORS와 SEMANTIC_DARK_COLORS를 포함한 팩토리 함수
|
|
249
|
-
*/
|
|
245
|
+
/** 라이트/다크 시맨틱 색상을 재정의해 커스텀 팔레트 함수를 생성한다. */
|
|
250
246
|
export function themeFactory(config = {}) {
|
|
251
|
-
// 기본 색상들을 깊은 복사로 생성
|
|
252
247
|
const createCustomLightColors = () => {
|
|
253
248
|
const customColors = { ...SEMANTIC_LIGHT_COLORS };
|
|
254
249
|
if (config.light) {
|
|
@@ -281,10 +276,8 @@ export function themeFactory(config = {}) {
|
|
|
281
276
|
};
|
|
282
277
|
const customLightColors = createCustomLightColors();
|
|
283
278
|
const customDarkColors = createCustomDarkColors();
|
|
284
|
-
// 재정의된 색상으로 새로운 팔레트 함수 반환
|
|
285
279
|
return function createPalette({ mode = 'light', themeColors = {}, } = {}) {
|
|
286
280
|
const colors = mode === 'light' ? customLightColors : customDarkColors;
|
|
287
|
-
// 재정의된 색상을 기반으로 동적으로 색상 매핑 생성
|
|
288
281
|
const customTextColors = {
|
|
289
282
|
light: {
|
|
290
283
|
primary: colors.primary.main,
|
|
@@ -364,7 +357,6 @@ export function themeFactory(config = {}) {
|
|
|
364
357
|
modalBgColor: MODAL_BG_COLOR[mode],
|
|
365
358
|
mainColor: customMainColors[mode]
|
|
366
359
|
};
|
|
367
|
-
// 사용자 정의 테마 컬러가 있을 경우 병합
|
|
368
360
|
if (themeColors?.[mode]) {
|
|
369
361
|
return {
|
|
370
362
|
...theme,
|
|
@@ -385,7 +377,6 @@ export default function palette({ mode = 'light', themeColors = {}, } = {}) {
|
|
|
385
377
|
modalBgColor: MODAL_BG_COLOR[mode],
|
|
386
378
|
mainColor: MAIN_COLORS[mode]
|
|
387
379
|
};
|
|
388
|
-
// 사용자 정의 테마 컬러가 있을 경우 병합
|
|
389
380
|
if (themeColors?.[mode]) {
|
|
390
381
|
return {
|
|
391
382
|
...theme,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"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","sourcesContent":["import { BLACK, PRIMITIVE_BLUE, PRIMITIVE_GREEN, PRIMITIVE_GREY, PRIMITIVE_GREY_DARK, PRIMITIVE_ORANGE, PRIMITIVE_RED, PRIMITIVE_TEAL, PRIMITIVE_YELLOW, SHADOW_COLORS, WHITE } from \"./primitive\";\nimport { Theme, ColorPalette, ColorPaletteExtend } from \"./types\";\n\nexport const transparency = {\n '0%': '00', // 완전 투명\n '2%': '05',\n '4%': '0A',\n '6%': '0F',\n '8%': '14',\n '10%': '1A',\n '12%': '1F',\n '14%': '24',\n '16%': '29',\n '18%': '2E',\n '20%': '33',\n '22%': '38',\n '24%': '3D',\n '26%': '42',\n '28%': '47',\n '30%': '4D',\n '32%': '52',\n '34%': '57',\n '36%': '5C',\n '38%': '61',\n '40%': '66',\n '42%': '6B',\n '44%': '70',\n '46%': '75',\n '48%': '7A',\n '50%': '80',\n '52%': '85',\n '54%': '8A',\n '56%': '8F',\n '58%': '94',\n '60%': '99',\n '62%': '9E',\n '64%': 'A3',\n '66%': 'A8',\n '68%': 'AD',\n '70%': 'B3',\n '72%': 'B8',\n '74%': 'BD',\n '76%': 'C2',\n '78%': 'C7',\n '80%': 'CC',\n '82%': 'D1',\n '84%': 'D6',\n '86%': 'DB',\n '88%': 'E0',\n '90%': 'E6',\n '92%': 'EB',\n '94%': 'F0',\n '96%': 'F5',\n '98%': 'FA',\n '100%': 'FF' // 완전 불투명\n};\n\nconst MODAL_BG_COLOR = {\n light: PRIMITIVE_GREY[90] + transparency['52%'],\n dark: PRIMITIVE_GREY[90] + transparency['40%'],\n}\n\nconst SEMANTIC_LIGHT_COLORS = {\n primary: {\n ...PRIMITIVE_ORANGE,\n lighter: PRIMITIVE_ORANGE[20],\n light: PRIMITIVE_ORANGE[30],\n main: PRIMITIVE_ORANGE[50],\n dark: PRIMITIVE_ORANGE[60],\n darker: PRIMITIVE_ORANGE[70],\n },\n secondary: {\n ...PRIMITIVE_TEAL,\n lighter: PRIMITIVE_TEAL[20],\n light: PRIMITIVE_TEAL[30],\n main: PRIMITIVE_TEAL[50],\n dark: PRIMITIVE_TEAL[60],\n darker: PRIMITIVE_TEAL[70],\n },\n danger: {\n ...PRIMITIVE_RED,\n lighter: PRIMITIVE_RED[20],\n light: PRIMITIVE_RED[30],\n main: PRIMITIVE_RED[50],\n dark: PRIMITIVE_RED[60],\n darker: PRIMITIVE_RED[70],\n },\n warning: {\n ...PRIMITIVE_YELLOW,\n lighter: PRIMITIVE_YELLOW[20],\n light: PRIMITIVE_YELLOW[30],\n main: PRIMITIVE_YELLOW[50],\n dark: PRIMITIVE_YELLOW[60],\n darker: PRIMITIVE_YELLOW[70],\n },\n success: {\n ...PRIMITIVE_GREEN,\n lighter: PRIMITIVE_GREEN[20],\n light: PRIMITIVE_GREEN[30],\n main: PRIMITIVE_GREEN[50],\n dark: PRIMITIVE_GREEN[60],\n darker: PRIMITIVE_GREEN[70],\n },\n information: {\n ...PRIMITIVE_BLUE,\n lighter: PRIMITIVE_BLUE[20],\n light: PRIMITIVE_BLUE[30],\n main: PRIMITIVE_BLUE[50],\n dark: PRIMITIVE_BLUE[60],\n darker: PRIMITIVE_BLUE[70],\n },\n grey: {\n ...PRIMITIVE_GREY,\n lighter: PRIMITIVE_GREY[20],\n light: PRIMITIVE_GREY[30],\n main: PRIMITIVE_GREY[20],\n dark: PRIMITIVE_GREY[60],\n darker: PRIMITIVE_GREY[70],\n },\n};\n\nconst SEMANTIC_DARK_COLORS = {\n primary: {\n ...SEMANTIC_LIGHT_COLORS.primary,\n lighter: PRIMITIVE_ORANGE[20],\n light: PRIMITIVE_ORANGE[30],\n main: PRIMITIVE_ORANGE[50],\n dark: PRIMITIVE_ORANGE[60],\n darker: PRIMITIVE_ORANGE[70],\n },\n secondary: {\n ...SEMANTIC_LIGHT_COLORS.secondary,\n lighter: PRIMITIVE_TEAL[20],\n light: PRIMITIVE_TEAL[30],\n main: PRIMITIVE_TEAL[50],\n dark: PRIMITIVE_TEAL[60],\n darker: PRIMITIVE_TEAL[70],\n },\n danger: {\n ...SEMANTIC_LIGHT_COLORS.danger,\n lighter: PRIMITIVE_RED[20],\n light: PRIMITIVE_RED[30],\n main: PRIMITIVE_RED[50],\n dark: PRIMITIVE_RED[60],\n darker: PRIMITIVE_RED[70],\n },\n warning: {\n ...SEMANTIC_LIGHT_COLORS.warning,\n lighter: PRIMITIVE_YELLOW[20],\n light: PRIMITIVE_YELLOW[30],\n main: PRIMITIVE_YELLOW[50],\n dark: PRIMITIVE_YELLOW[60],\n darker: PRIMITIVE_YELLOW[70],\n },\n success: {\n ...SEMANTIC_LIGHT_COLORS.success,\n lighter: PRIMITIVE_GREEN[20],\n light: PRIMITIVE_GREEN[30],\n main: PRIMITIVE_GREEN[50],\n dark: PRIMITIVE_GREEN[60],\n darker: PRIMITIVE_GREEN[70],\n },\n information: {\n ...SEMANTIC_LIGHT_COLORS.information,\n lighter: PRIMITIVE_BLUE[20],\n light: PRIMITIVE_BLUE[30],\n main: PRIMITIVE_BLUE[50],\n dark: PRIMITIVE_BLUE[60],\n darker: PRIMITIVE_BLUE[70],\n },\n grey: {\n ...PRIMITIVE_GREY_DARK,\n lighter: PRIMITIVE_GREY_DARK[20],\n light: PRIMITIVE_GREY_DARK[30],\n main: PRIMITIVE_GREY_DARK[20],\n dark: PRIMITIVE_GREY_DARK[60],\n darker: PRIMITIVE_GREY_DARK[70],\n },\n};\n\nconst MAIN_COLORS = {\n light: {\n primary: SEMANTIC_LIGHT_COLORS.primary.main,\n secondary: SEMANTIC_LIGHT_COLORS.secondary.main,\n danger: SEMANTIC_LIGHT_COLORS.danger.main,\n warning: SEMANTIC_LIGHT_COLORS.warning.main,\n success: SEMANTIC_LIGHT_COLORS.success.main,\n information: SEMANTIC_LIGHT_COLORS.information.main,\n grey: SEMANTIC_LIGHT_COLORS.grey.main\n },\n dark: {\n primary: SEMANTIC_DARK_COLORS.primary.main,\n secondary: SEMANTIC_DARK_COLORS.secondary.main,\n danger: SEMANTIC_DARK_COLORS.danger.main,\n warning: SEMANTIC_DARK_COLORS.warning.main,\n success: SEMANTIC_DARK_COLORS.success.main,\n information: SEMANTIC_DARK_COLORS.information.main,\n grey: SEMANTIC_DARK_COLORS.grey.main\n }\n}\n\nconst SEMANTIC_TEXT_COLORS = {\n light: {\n primary: SEMANTIC_LIGHT_COLORS.primary.main,\n base: SEMANTIC_LIGHT_COLORS.grey[80],\n secondary: SEMANTIC_LIGHT_COLORS.grey[60],\n disabled: SEMANTIC_LIGHT_COLORS.grey[50],\n danger: SEMANTIC_LIGHT_COLORS.danger[60],\n warning: SEMANTIC_LIGHT_COLORS.warning[60],\n success: SEMANTIC_LIGHT_COLORS.success[60],\n information: SEMANTIC_LIGHT_COLORS.information[60],\n white: WHITE,\n black: BLACK,\n },\n dark: {\n primary: SEMANTIC_DARK_COLORS.primary.main,\n base: SEMANTIC_DARK_COLORS.grey[90],\n secondary: SEMANTIC_DARK_COLORS.grey[70],\n disabled: SEMANTIC_DARK_COLORS.grey[50],\n danger: SEMANTIC_DARK_COLORS.danger[30],\n warning: SEMANTIC_DARK_COLORS.warning[30],\n success: SEMANTIC_DARK_COLORS.success[30],\n information: SEMANTIC_DARK_COLORS.information[30],\n white: WHITE,\n black: BLACK,\n },\n};\n\nconst SEMANTIC_BACKGROUND_COLORS = {\n light: {\n primary: SEMANTIC_LIGHT_COLORS.primary.main,\n layer1: SEMANTIC_LIGHT_COLORS.grey[5],\n layer2: SEMANTIC_LIGHT_COLORS.grey[20],\n neutral: SEMANTIC_LIGHT_COLORS.grey[30],\n base: WHITE,\n danger: SEMANTIC_LIGHT_COLORS.danger[5],\n warning: SEMANTIC_LIGHT_COLORS.warning[5],\n success: SEMANTIC_LIGHT_COLORS.success[5],\n information: SEMANTIC_LIGHT_COLORS.information[5],\n },\n dark: {\n primary: SEMANTIC_DARK_COLORS.primary.main,\n layer1: SEMANTIC_DARK_COLORS.grey[5],\n layer2: SEMANTIC_DARK_COLORS.grey[20],\n neutral: SEMANTIC_DARK_COLORS.grey[30],\n base: BLACK,\n danger: SEMANTIC_DARK_COLORS.danger[80],\n warning: SEMANTIC_DARK_COLORS.warning[80],\n success: SEMANTIC_DARK_COLORS.success[80],\n information: SEMANTIC_DARK_COLORS.information[80],\n },\n};\n\n// ThemeFactory 타입 정의\nexport interface ThemeFactoryColors {\n primary?: Partial<ColorPaletteExtend>;\n secondary?: Partial<ColorPalette>;\n danger?: Partial<ColorPalette>;\n warning?: Partial<ColorPalette>;\n success?: Partial<ColorPalette>;\n information?: Partial<ColorPalette>;\n grey?: Partial<ColorPalette>;\n}\n\nexport interface ThemeFactoryConfig {\n light?: ThemeFactoryColors;\n dark?: ThemeFactoryColors;\n}\n\n/**\n * 테마 팩토리 함수 - SEMANTIC_LIGHT_COLORS와 SEMANTIC_DARK_COLORS를 재정의할 수 있는 기능을 제공합니다.\n * @param config - 라이트/다크 모드별로 색상을 재정의할 수 있는 설정 객체\n * @returns 재정의된 SEMANTIC_LIGHT_COLORS와 SEMANTIC_DARK_COLORS를 포함한 팩토리 함수\n */\nexport function themeFactory(config: ThemeFactoryConfig = {}) {\n // 기본 색상들을 깊은 복사로 생성\n const createCustomLightColors = (): typeof SEMANTIC_LIGHT_COLORS => {\n const customColors = { ...SEMANTIC_LIGHT_COLORS };\n \n if (config.light) {\n Object.keys(config.light).forEach((key) => {\n const colorKey = key as keyof ThemeFactoryColors;\n if (config.light?.[colorKey]) {\n customColors[colorKey] = {\n ...customColors[colorKey],\n ...config.light[colorKey],\n } as any;\n }\n });\n }\n \n return customColors;\n };\n\n const createCustomDarkColors = (): typeof SEMANTIC_DARK_COLORS => {\n const customColors = { ...SEMANTIC_DARK_COLORS };\n \n if (config.dark) {\n Object.keys(config.dark).forEach((key) => {\n const colorKey = key as keyof ThemeFactoryColors;\n if (config.dark?.[colorKey]) {\n customColors[colorKey] = {\n ...customColors[colorKey],\n ...config.dark[colorKey],\n } as any;\n }\n });\n }\n \n return customColors;\n };\n\n const customLightColors = createCustomLightColors();\n const customDarkColors = createCustomDarkColors();\n\n // 재정의된 색상으로 새로운 팔레트 함수 반환\n return function createPalette({\n mode = 'light',\n themeColors = {},\n }: {\n mode?: 'light' | 'dark';\n themeColors?: { light?: Theme; dark?: Theme };\n } = {}): Theme {\n const colors = mode === 'light' ? customLightColors : customDarkColors;\n\n // 재정의된 색상을 기반으로 동적으로 색상 매핑 생성\n const customTextColors = {\n light: {\n primary: colors.primary.main,\n base: colors.grey[80],\n secondary: colors.grey[60],\n disabled: colors.grey[50],\n danger: colors.danger[60],\n warning: colors.warning[60],\n success: colors.success[60],\n information: colors.information[60],\n white: WHITE,\n black: BLACK,\n },\n dark: {\n primary: colors.primary.main,\n base: colors.grey[90],\n secondary: colors.grey[70],\n disabled: colors.grey[50],\n danger: colors.danger[30],\n warning: colors.warning[30],\n success: colors.success[30],\n information: colors.information[30],\n white: WHITE,\n black: BLACK,\n },\n };\n\n const customBackgroundColors = {\n light: {\n primary: colors.primary.main,\n layer1: colors.grey[5],\n layer2: colors.grey[20],\n neutral: colors.grey[30],\n base: WHITE,\n danger: colors.danger[5],\n warning: colors.warning[5],\n success: colors.success[5],\n information: colors.information[5],\n },\n dark: {\n primary: colors.primary.main,\n layer1: colors.grey[5],\n layer2: colors.grey[20],\n neutral: colors.grey[30],\n base: BLACK,\n danger: colors.danger[80],\n warning: colors.warning[80],\n success: colors.success[80],\n information: colors.information[80],\n },\n };\n\n const customMainColors = {\n light: {\n primary: colors.primary.main,\n secondary: colors.secondary.main,\n danger: colors.danger.main,\n warning: colors.warning.main,\n success: colors.success.main,\n information: colors.information.main,\n grey: colors.grey.main\n },\n dark: {\n primary: colors.primary.main,\n secondary: colors.secondary.main,\n danger: colors.danger.main,\n warning: colors.warning.main,\n success: colors.success.main,\n information: colors.information.main,\n grey: colors.grey.main\n }\n };\n\n const theme: Theme = {\n mode,\n ...colors,\n text: customTextColors[mode],\n background: customBackgroundColors[mode],\n elevationShadow: SHADOW_COLORS[mode],\n modalBgColor: MODAL_BG_COLOR[mode],\n mainColor: customMainColors[mode]\n };\n\n // 사용자 정의 테마 컬러가 있을 경우 병합\n if (themeColors?.[mode]) {\n return {\n ...theme,\n ...themeColors[mode],\n };\n }\n\n return theme;\n };\n}\n\nexport default function palette({\n mode = 'light',\n themeColors = {},\n}: {\n mode?: 'light' | 'dark';\n themeColors?: { light?: Theme; dark?: Theme };\n} = {}): Theme {\n const colors = mode === 'light' ? SEMANTIC_LIGHT_COLORS : SEMANTIC_DARK_COLORS;\n\n const theme: Theme = {\n mode,\n ...colors,\n text: SEMANTIC_TEXT_COLORS[mode],\n background: SEMANTIC_BACKGROUND_COLORS[mode],\n elevationShadow: SHADOW_COLORS[mode],\n modalBgColor: MODAL_BG_COLOR[mode],\n mainColor: MAIN_COLORS[mode]\n };\n\n // 사용자 정의 테마 컬러가 있을 경우 병합\n if (themeColors?.[mode]) {\n return {\n ...theme,\n ...themeColors[mode],\n };\n }\n\n return theme;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"palette.js","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"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","sourcesContent":["import { BLACK, PRIMITIVE_BLUE, PRIMITIVE_GREEN, PRIMITIVE_GREY, PRIMITIVE_GREY_DARK, PRIMITIVE_ORANGE, PRIMITIVE_RED, PRIMITIVE_TEAL, PRIMITIVE_YELLOW, SHADOW_COLORS, WHITE } from \"./primitive\";\nimport { Theme, ColorPalette, ColorPaletteExtend } from \"./types\";\n\nexport const transparency = {\n '0%': '00',\n '2%': '05',\n '4%': '0A',\n '6%': '0F',\n '8%': '14',\n '10%': '1A',\n '12%': '1F',\n '14%': '24',\n '16%': '29',\n '18%': '2E',\n '20%': '33',\n '22%': '38',\n '24%': '3D',\n '26%': '42',\n '28%': '47',\n '30%': '4D',\n '32%': '52',\n '34%': '57',\n '36%': '5C',\n '38%': '61',\n '40%': '66',\n '42%': '6B',\n '44%': '70',\n '46%': '75',\n '48%': '7A',\n '50%': '80',\n '52%': '85',\n '54%': '8A',\n '56%': '8F',\n '58%': '94',\n '60%': '99',\n '62%': '9E',\n '64%': 'A3',\n '66%': 'A8',\n '68%': 'AD',\n '70%': 'B3',\n '72%': 'B8',\n '74%': 'BD',\n '76%': 'C2',\n '78%': 'C7',\n '80%': 'CC',\n '82%': 'D1',\n '84%': 'D6',\n '86%': 'DB',\n '88%': 'E0',\n '90%': 'E6',\n '92%': 'EB',\n '94%': 'F0',\n '96%': 'F5',\n '98%': 'FA',\n '100%': 'FF'\n};\n\nconst MODAL_BG_COLOR = {\n light: PRIMITIVE_GREY[90] + transparency['52%'],\n dark: PRIMITIVE_GREY[90] + transparency['40%'],\n}\n\nconst SEMANTIC_LIGHT_COLORS = {\n primary: {\n ...PRIMITIVE_ORANGE,\n lighter: PRIMITIVE_ORANGE[20],\n light: PRIMITIVE_ORANGE[30],\n main: PRIMITIVE_ORANGE[50],\n dark: PRIMITIVE_ORANGE[60],\n darker: PRIMITIVE_ORANGE[70],\n },\n secondary: {\n ...PRIMITIVE_TEAL,\n lighter: PRIMITIVE_TEAL[20],\n light: PRIMITIVE_TEAL[30],\n main: PRIMITIVE_TEAL[50],\n dark: PRIMITIVE_TEAL[60],\n darker: PRIMITIVE_TEAL[70],\n },\n danger: {\n ...PRIMITIVE_RED,\n lighter: PRIMITIVE_RED[20],\n light: PRIMITIVE_RED[30],\n main: PRIMITIVE_RED[50],\n dark: PRIMITIVE_RED[60],\n darker: PRIMITIVE_RED[70],\n },\n warning: {\n ...PRIMITIVE_YELLOW,\n lighter: PRIMITIVE_YELLOW[20],\n light: PRIMITIVE_YELLOW[30],\n main: PRIMITIVE_YELLOW[50],\n dark: PRIMITIVE_YELLOW[60],\n darker: PRIMITIVE_YELLOW[70],\n },\n success: {\n ...PRIMITIVE_GREEN,\n lighter: PRIMITIVE_GREEN[20],\n light: PRIMITIVE_GREEN[30],\n main: PRIMITIVE_GREEN[50],\n dark: PRIMITIVE_GREEN[60],\n darker: PRIMITIVE_GREEN[70],\n },\n information: {\n ...PRIMITIVE_BLUE,\n lighter: PRIMITIVE_BLUE[20],\n light: PRIMITIVE_BLUE[30],\n main: PRIMITIVE_BLUE[50],\n dark: PRIMITIVE_BLUE[60],\n darker: PRIMITIVE_BLUE[70],\n },\n grey: {\n ...PRIMITIVE_GREY,\n lighter: PRIMITIVE_GREY[20],\n light: PRIMITIVE_GREY[30],\n main: PRIMITIVE_GREY[20],\n dark: PRIMITIVE_GREY[60],\n darker: PRIMITIVE_GREY[70],\n },\n};\n\nconst SEMANTIC_DARK_COLORS = {\n primary: {\n ...SEMANTIC_LIGHT_COLORS.primary,\n lighter: PRIMITIVE_ORANGE[20],\n light: PRIMITIVE_ORANGE[30],\n main: PRIMITIVE_ORANGE[50],\n dark: PRIMITIVE_ORANGE[60],\n darker: PRIMITIVE_ORANGE[70],\n },\n secondary: {\n ...SEMANTIC_LIGHT_COLORS.secondary,\n lighter: PRIMITIVE_TEAL[20],\n light: PRIMITIVE_TEAL[30],\n main: PRIMITIVE_TEAL[50],\n dark: PRIMITIVE_TEAL[60],\n darker: PRIMITIVE_TEAL[70],\n },\n danger: {\n ...SEMANTIC_LIGHT_COLORS.danger,\n lighter: PRIMITIVE_RED[20],\n light: PRIMITIVE_RED[30],\n main: PRIMITIVE_RED[50],\n dark: PRIMITIVE_RED[60],\n darker: PRIMITIVE_RED[70],\n },\n warning: {\n ...SEMANTIC_LIGHT_COLORS.warning,\n lighter: PRIMITIVE_YELLOW[20],\n light: PRIMITIVE_YELLOW[30],\n main: PRIMITIVE_YELLOW[50],\n dark: PRIMITIVE_YELLOW[60],\n darker: PRIMITIVE_YELLOW[70],\n },\n success: {\n ...SEMANTIC_LIGHT_COLORS.success,\n lighter: PRIMITIVE_GREEN[20],\n light: PRIMITIVE_GREEN[30],\n main: PRIMITIVE_GREEN[50],\n dark: PRIMITIVE_GREEN[60],\n darker: PRIMITIVE_GREEN[70],\n },\n information: {\n ...SEMANTIC_LIGHT_COLORS.information,\n lighter: PRIMITIVE_BLUE[20],\n light: PRIMITIVE_BLUE[30],\n main: PRIMITIVE_BLUE[50],\n dark: PRIMITIVE_BLUE[60],\n darker: PRIMITIVE_BLUE[70],\n },\n grey: {\n ...PRIMITIVE_GREY_DARK,\n lighter: PRIMITIVE_GREY_DARK[20],\n light: PRIMITIVE_GREY_DARK[30],\n main: PRIMITIVE_GREY_DARK[20],\n dark: PRIMITIVE_GREY_DARK[60],\n darker: PRIMITIVE_GREY_DARK[70],\n },\n};\n\nconst MAIN_COLORS = {\n light: {\n primary: SEMANTIC_LIGHT_COLORS.primary.main,\n secondary: SEMANTIC_LIGHT_COLORS.secondary.main,\n danger: SEMANTIC_LIGHT_COLORS.danger.main,\n warning: SEMANTIC_LIGHT_COLORS.warning.main,\n success: SEMANTIC_LIGHT_COLORS.success.main,\n information: SEMANTIC_LIGHT_COLORS.information.main,\n grey: SEMANTIC_LIGHT_COLORS.grey.main\n },\n dark: {\n primary: SEMANTIC_DARK_COLORS.primary.main,\n secondary: SEMANTIC_DARK_COLORS.secondary.main,\n danger: SEMANTIC_DARK_COLORS.danger.main,\n warning: SEMANTIC_DARK_COLORS.warning.main,\n success: SEMANTIC_DARK_COLORS.success.main,\n information: SEMANTIC_DARK_COLORS.information.main,\n grey: SEMANTIC_DARK_COLORS.grey.main\n }\n}\n\nconst SEMANTIC_TEXT_COLORS = {\n light: {\n primary: SEMANTIC_LIGHT_COLORS.primary.main,\n base: SEMANTIC_LIGHT_COLORS.grey[80],\n secondary: SEMANTIC_LIGHT_COLORS.grey[60],\n disabled: SEMANTIC_LIGHT_COLORS.grey[50],\n danger: SEMANTIC_LIGHT_COLORS.danger[60],\n warning: SEMANTIC_LIGHT_COLORS.warning[60],\n success: SEMANTIC_LIGHT_COLORS.success[60],\n information: SEMANTIC_LIGHT_COLORS.information[60],\n white: WHITE,\n black: BLACK,\n },\n dark: {\n primary: SEMANTIC_DARK_COLORS.primary.main,\n base: SEMANTIC_DARK_COLORS.grey[90],\n secondary: SEMANTIC_DARK_COLORS.grey[70],\n disabled: SEMANTIC_DARK_COLORS.grey[50],\n danger: SEMANTIC_DARK_COLORS.danger[30],\n warning: SEMANTIC_DARK_COLORS.warning[30],\n success: SEMANTIC_DARK_COLORS.success[30],\n information: SEMANTIC_DARK_COLORS.information[30],\n white: WHITE,\n black: BLACK,\n },\n};\n\nconst SEMANTIC_BACKGROUND_COLORS = {\n light: {\n primary: SEMANTIC_LIGHT_COLORS.primary.main,\n layer1: SEMANTIC_LIGHT_COLORS.grey[5],\n layer2: SEMANTIC_LIGHT_COLORS.grey[20],\n neutral: SEMANTIC_LIGHT_COLORS.grey[30],\n base: WHITE,\n danger: SEMANTIC_LIGHT_COLORS.danger[5],\n warning: SEMANTIC_LIGHT_COLORS.warning[5],\n success: SEMANTIC_LIGHT_COLORS.success[5],\n information: SEMANTIC_LIGHT_COLORS.information[5],\n },\n dark: {\n primary: SEMANTIC_DARK_COLORS.primary.main,\n layer1: SEMANTIC_DARK_COLORS.grey[5],\n layer2: SEMANTIC_DARK_COLORS.grey[20],\n neutral: SEMANTIC_DARK_COLORS.grey[30],\n base: BLACK,\n danger: SEMANTIC_DARK_COLORS.danger[80],\n warning: SEMANTIC_DARK_COLORS.warning[80],\n success: SEMANTIC_DARK_COLORS.success[80],\n information: SEMANTIC_DARK_COLORS.information[80],\n },\n};\n\nexport interface ThemeFactoryColors {\n primary?: Partial<ColorPaletteExtend>;\n secondary?: Partial<ColorPalette>;\n danger?: Partial<ColorPalette>;\n warning?: Partial<ColorPalette>;\n success?: Partial<ColorPalette>;\n information?: Partial<ColorPalette>;\n grey?: Partial<ColorPalette>;\n}\n\nexport interface ThemeFactoryConfig {\n light?: ThemeFactoryColors;\n dark?: ThemeFactoryColors;\n}\n\n/** 라이트/다크 시맨틱 색상을 재정의해 커스텀 팔레트 함수를 생성한다. */\nexport function themeFactory(config: ThemeFactoryConfig = {}) {\n const createCustomLightColors = (): typeof SEMANTIC_LIGHT_COLORS => {\n const customColors = { ...SEMANTIC_LIGHT_COLORS };\n \n if (config.light) {\n Object.keys(config.light).forEach((key) => {\n const colorKey = key as keyof ThemeFactoryColors;\n if (config.light?.[colorKey]) {\n customColors[colorKey] = {\n ...customColors[colorKey],\n ...config.light[colorKey],\n } as any;\n }\n });\n }\n \n return customColors;\n };\n\n const createCustomDarkColors = (): typeof SEMANTIC_DARK_COLORS => {\n const customColors = { ...SEMANTIC_DARK_COLORS };\n \n if (config.dark) {\n Object.keys(config.dark).forEach((key) => {\n const colorKey = key as keyof ThemeFactoryColors;\n if (config.dark?.[colorKey]) {\n customColors[colorKey] = {\n ...customColors[colorKey],\n ...config.dark[colorKey],\n } as any;\n }\n });\n }\n \n return customColors;\n };\n\n const customLightColors = createCustomLightColors();\n const customDarkColors = createCustomDarkColors();\n\n return function createPalette({\n mode = 'light',\n themeColors = {},\n }: {\n mode?: 'light' | 'dark';\n themeColors?: { light?: Theme; dark?: Theme };\n } = {}): Theme {\n const colors = mode === 'light' ? customLightColors : customDarkColors;\n\n const customTextColors = {\n light: {\n primary: colors.primary.main,\n base: colors.grey[80],\n secondary: colors.grey[60],\n disabled: colors.grey[50],\n danger: colors.danger[60],\n warning: colors.warning[60],\n success: colors.success[60],\n information: colors.information[60],\n white: WHITE,\n black: BLACK,\n },\n dark: {\n primary: colors.primary.main,\n base: colors.grey[90],\n secondary: colors.grey[70],\n disabled: colors.grey[50],\n danger: colors.danger[30],\n warning: colors.warning[30],\n success: colors.success[30],\n information: colors.information[30],\n white: WHITE,\n black: BLACK,\n },\n };\n\n const customBackgroundColors = {\n light: {\n primary: colors.primary.main,\n layer1: colors.grey[5],\n layer2: colors.grey[20],\n neutral: colors.grey[30],\n base: WHITE,\n danger: colors.danger[5],\n warning: colors.warning[5],\n success: colors.success[5],\n information: colors.information[5],\n },\n dark: {\n primary: colors.primary.main,\n layer1: colors.grey[5],\n layer2: colors.grey[20],\n neutral: colors.grey[30],\n base: BLACK,\n danger: colors.danger[80],\n warning: colors.warning[80],\n success: colors.success[80],\n information: colors.information[80],\n },\n };\n\n const customMainColors = {\n light: {\n primary: colors.primary.main,\n secondary: colors.secondary.main,\n danger: colors.danger.main,\n warning: colors.warning.main,\n success: colors.success.main,\n information: colors.information.main,\n grey: colors.grey.main\n },\n dark: {\n primary: colors.primary.main,\n secondary: colors.secondary.main,\n danger: colors.danger.main,\n warning: colors.warning.main,\n success: colors.success.main,\n information: colors.information.main,\n grey: colors.grey.main\n }\n };\n\n const theme: Theme = {\n mode,\n ...colors,\n text: customTextColors[mode],\n background: customBackgroundColors[mode],\n elevationShadow: SHADOW_COLORS[mode],\n modalBgColor: MODAL_BG_COLOR[mode],\n mainColor: customMainColors[mode]\n };\n\n if (themeColors?.[mode]) {\n return {\n ...theme,\n ...themeColors[mode],\n };\n }\n\n return theme;\n };\n}\n\nexport default function palette({\n mode = 'light',\n themeColors = {},\n}: {\n mode?: 'light' | 'dark';\n themeColors?: { light?: Theme; dark?: Theme };\n} = {}): Theme {\n const colors = mode === 'light' ? SEMANTIC_LIGHT_COLORS : SEMANTIC_DARK_COLORS;\n\n const theme: Theme = {\n mode,\n ...colors,\n text: SEMANTIC_TEXT_COLORS[mode],\n background: SEMANTIC_BACKGROUND_COLORS[mode],\n elevationShadow: SHADOW_COLORS[mode],\n modalBgColor: MODAL_BG_COLOR[mode],\n mainColor: MAIN_COLORS[mode]\n };\n\n if (themeColors?.[mode]) {\n return {\n ...theme,\n ...themeColors[mode],\n };\n }\n\n return theme;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveColor.d.ts","sourceRoot":"","sources":["../../src/theme/resolveColor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAkC,MAAM,SAAS,CAAC;AAS9E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQlF;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWlF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
function isColorMap(value) {
|
|
2
|
+
return typeof value === 'object' && value !== null;
|
|
3
|
+
}
|
|
4
|
+
export function resolveTextColor(palette, color) {
|
|
5
|
+
const [c01, c02] = color.split('.');
|
|
6
|
+
if (!c02)
|
|
7
|
+
return palette.text[c01];
|
|
8
|
+
if (c01 === 'text')
|
|
9
|
+
return palette.text[c02];
|
|
10
|
+
if (c01 === 'background')
|
|
11
|
+
return palette.background[c02];
|
|
12
|
+
const semanticPalette = palette[c01];
|
|
13
|
+
return isColorMap(semanticPalette) ? semanticPalette[c02] : undefined;
|
|
14
|
+
}
|
|
15
|
+
export function resolveViewColor(palette, color) {
|
|
16
|
+
const [c01, c02] = color.split('.');
|
|
17
|
+
if (c02) {
|
|
18
|
+
if (c01 === 'background')
|
|
19
|
+
return palette.background[c02];
|
|
20
|
+
if (c01 === 'text')
|
|
21
|
+
return palette.text[c02];
|
|
22
|
+
const semanticPalette = palette[c01];
|
|
23
|
+
return isColorMap(semanticPalette) ? semanticPalette[c02] : undefined;
|
|
24
|
+
}
|
|
25
|
+
if (c01)
|
|
26
|
+
return palette.background[c01] ?? palette[c01]?.main;
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=resolveColor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveColor.js","sourceRoot":"","sources":["../../src/theme/resolveColor.ts"],"names":[],"mappings":"AAKA,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAc,EAAE,KAAa;IAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAiC,CAAC;IACpE,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAA0B,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAA0B,CAAC,CAAC;IACpE,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC,GAA4B,CAAC,CAAC;IAElF,MAAM,eAAe,GAAG,OAAO,CAAC,GAAyB,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAc,EAAE,KAAa;IAC5D,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAiC,CAAC;IACpE,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,GAAG,KAAK,YAAY;YAAE,OAAO,OAAO,CAAC,UAAU,CAAC,GAA4B,CAAC,CAAC;QAClF,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAA0B,CAAC,CAAC;QAEpE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAyB,CAAC,CAAC;QAC3D,OAAO,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,CAAC;IACD,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC,UAAU,CAAC,GAA4B,CAAC,IAAI,OAAO,CAAC,GAAyB,CAAC,EAAE,IAAI,CAAC;IAC7G,OAAO,SAAS,CAAC;AACnB,CAAC","sourcesContent":["import { ColorPalette, Theme, ThemeBackground, ThemeTextType } from './types';\n\ntype SemanticPaletteKey = 'primary' | 'secondary' | 'danger' | 'warning' | 'success' | 'information' | 'grey';\ntype PaletteShade = keyof ColorPalette;\n\nfunction isColorMap(value: unknown): value is Record<string, string> {\n return typeof value === 'object' && value !== null;\n}\n\nexport function resolveTextColor(palette: Theme, color: string): string | undefined {\n const [c01, c02] = color.split('.') as [string, string | undefined];\n if (!c02) return palette.text[c01 as keyof ThemeTextType];\n if (c01 === 'text') return palette.text[c02 as keyof ThemeTextType];\n if (c01 === 'background') return palette.background[c02 as keyof ThemeBackground];\n\n const semanticPalette = palette[c01 as SemanticPaletteKey];\n return isColorMap(semanticPalette) ? semanticPalette[c02 as PaletteShade] : undefined;\n}\n\nexport function resolveViewColor(palette: Theme, color: string): string | undefined {\n const [c01, c02] = color.split('.') as [string, string | undefined];\n if (c02) {\n if (c01 === 'background') return palette.background[c02 as keyof ThemeBackground];\n if (c01 === 'text') return palette.text[c02 as keyof ThemeTextType];\n\n const semanticPalette = palette[c01 as SemanticPaletteKey];\n return isColorMap(semanticPalette) ? semanticPalette[c02 as PaletteShade] : undefined;\n }\n if (c01) return palette.background[c01 as keyof ThemeBackground] ?? palette[c01 as SemanticPaletteKey]?.main;\n return undefined;\n}\n"]}
|