@impulse-ui-native/theme 1.0.10 → 2.0.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.
Files changed (42) hide show
  1. package/dist/index.d.mts +446 -101
  2. package/dist/index.js +1052 -0
  3. package/dist/index.js.map +1 -0
  4. package/package.json +21 -16
  5. package/dist/index.cjs.js +0 -429
  6. package/dist/index.cjs.js.map +0 -1
  7. package/dist/index.d.ts +0 -209
  8. package/dist/index.esm.js +0 -406
  9. package/dist/index.esm.js.map +0 -1
  10. package/src/constants/index.ts +0 -2
  11. package/src/constants/style.constants.ts +0 -80
  12. package/src/constants/typography.constants.ts +0 -25
  13. package/src/hooks/index.ts +0 -8
  14. package/src/hooks/use-border.hook.ts +0 -10
  15. package/src/hooks/use-colors.hook.ts +0 -10
  16. package/src/hooks/use-components-theme.hook.ts +0 -13
  17. package/src/hooks/use-radii.hook.ts +0 -10
  18. package/src/hooks/use-space.hook.ts +0 -10
  19. package/src/hooks/use-style-props.hook.ts +0 -9
  20. package/src/hooks/use-theme.hook.ts +0 -10
  21. package/src/hooks/use-themed-styles.ts +0 -25
  22. package/src/index.ts +0 -6
  23. package/src/providers/index.ts +0 -1
  24. package/src/providers/theme.provider.tsx +0 -113
  25. package/src/theme/dark.theme.ts +0 -40
  26. package/src/theme/index.ts +0 -4
  27. package/src/theme/light.theme.ts +0 -40
  28. package/src/theme/tokens.theme.ts +0 -64
  29. package/src/types/border.types.ts +0 -8
  30. package/src/types/color.types.ts +0 -7
  31. package/src/types/components.types.ts +0 -1
  32. package/src/types/dimension.types.ts +0 -11
  33. package/src/types/flex.types.ts +0 -27
  34. package/src/types/index.ts +0 -11
  35. package/src/types/shadow.types.ts +0 -9
  36. package/src/types/spacing.types.ts +0 -19
  37. package/src/types/style.types.ts +0 -19
  38. package/src/types/theme-provider.types.ts +0 -65
  39. package/src/types/tokens.types.ts +0 -88
  40. package/src/types/typography.types.ts +0 -66
  41. package/src/utils/index.ts +0 -1
  42. package/src/utils/style.utils.ts +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/constants/style.constants.ts","../src/hooks/use-border.hook.ts","../src/providers/theme.provider.tsx","../src/theme/create-button-tokens.ts","../src/theme/create-control-tokens.ts","../src/theme/create-data-state-tokens.ts","../src/theme/create-datetime-picker.ts","../src/theme/create-flyout-tokens.ts","../src/theme/create-icon-button-tokens.ts","../src/theme/create-select-tokens.ts","../src/theme/create-skeleton-tokens.ts","../src/theme/create-tag-tokens.ts","../src/theme/create-time-picker-tokens.ts","../src/theme/tokens.theme.ts","../src/theme/dark.theme.ts","../src/theme/light.theme.ts","../src/hooks/use-colors.hook.ts","../src/hooks/use-components-tokens.hook.ts","../src/hooks/use-radii.hook.ts","../src/hooks/use-space.hook.ts","../src/hooks/use-style-props.hook.ts","../src/utils/style.utils.ts","../src/hooks/use-theme.hook.ts","../src/hooks/use-themed-styles.ts"],"sourcesContent":["import { ShadowIntensity, ShadowLevel, StyleProps } from \"../types\";\r\n\r\nconst StylePropsRecord: Record<keyof StyleProps, number> = {\r\n margin: 0,\r\n marginTop: 0,\r\n marginBottom: 0,\r\n marginLeft: 0,\r\n marginRight: 0,\r\n marginHorizontal: 0,\r\n marginVertical: 0,\r\n padding: 0,\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n paddingLeft: 0,\r\n paddingRight: 0,\r\n paddingHorizontal: 0,\r\n paddingVertical: 0,\r\n color: 0,\r\n backgroundColor: 0,\r\n opacity: 0,\r\n shadow: 0,\r\n shadowPosition: 0,\r\n shadowColor: 0,\r\n shadowOpacity: 0,\r\n shadowRadius: 0,\r\n shadowOffset: 0,\r\n elevation: 0,\r\n borderRadius: 0,\r\n borderTopLeftRadius: 0,\r\n borderTopRightRadius: 0,\r\n borderBottomLeftRadius: 0,\r\n borderBottomRightRadius: 0,\r\n borderWidth: 0,\r\n borderTopWidth: 0,\r\n borderRightWidth: 0,\r\n borderBottomWidth: 0,\r\n borderLeftWidth: 0,\r\n borderColor: 0,\r\n borderTopColor: 0,\r\n borderRightColor: 0,\r\n borderBottomColor: 0,\r\n borderLeftColor: 0,\r\n borderStyle: 0,\r\n fontSize: 0,\r\n fontFamily: 0,\r\n fontWeight: 0,\r\n fontStyle: 0,\r\n fontVariant: 0,\r\n letterSpacing: 0,\r\n lineHeight: 0,\r\n textAlign: 0,\r\n textDecorationLine: 0,\r\n textDecorationStyle: 0,\r\n textDecorationColor: 0,\r\n textTransform: 0,\r\n includeFontPadding: 0,\r\n textAlignVertical: 0,\r\n writingDirection: 0,\r\n flex: 0,\r\n flexGrow: 0,\r\n flexShrink: 0,\r\n flexBasis: 0,\r\n flexDirection: 0,\r\n flexWrap: 0,\r\n justifyContent: 0,\r\n alignItems: 0,\r\n alignSelf: 0,\r\n alignContent: 0,\r\n gap: 0,\r\n rowGap: 0,\r\n columnGap: 0,\r\n position: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n zIndex: 0,\r\n width: 0,\r\n height: 0,\r\n minWidth: 0,\r\n maxWidth: 0,\r\n minHeight: 0,\r\n maxHeight: 0,\r\n aspectRatio: 0,\r\n overflow: 0,\r\n} as const;\r\n\r\nexport const StylePropsSet = new Set<keyof StyleProps>(\r\n Object.keys(StylePropsRecord) as (keyof StyleProps)[],\r\n);\r\n\r\nexport const shadowScale: Record<ShadowLevel, ShadowIntensity> = {\r\n none: { radius: 0, opacity: 0, elevation: 0 },\r\n xs: { radius: 2, opacity: 0.08, elevation: 1 },\r\n sm: { radius: 4, opacity: 0.1, elevation: 2 },\r\n md: { radius: 8, opacity: 0.15, elevation: 4 },\r\n lg: { radius: 16, opacity: 0.18, elevation: 8 },\r\n xl: { radius: 24, opacity: 0.22, elevation: 12 },\r\n};\r\n","import { useMemo } from \"react\";\r\n\r\nimport { useThemeContext } from \"../providers\";\r\nimport { BorderSize } from \"../types\";\r\n\r\nexport function useBorder(): BorderSize {\r\n const context = useThemeContext();\r\n\r\n return useMemo(() => context.borderSize, [context.borderSize]);\r\n}\r\n","import {\r\n createContext,\r\n memo,\r\n PropsWithChildren,\r\n useContext,\r\n useMemo,\r\n} from \"react\";\r\n\r\nimport { DeepPartial, merge } from \"@impulse-ui-native/core\";\r\n\r\nimport { createComponentsTokens, DarkTheme, LightTheme } from \"../theme\";\r\nimport {\r\n AppTheme,\r\n ColorScheme,\r\n ComponentsTokens,\r\n PrimitiveThemeTokens,\r\n} from \"../types\";\r\n\r\nconst ThemeContext = createContext<AppTheme | undefined>(undefined);\r\n\r\ninterface ThemeProviderProps {\r\n scheme?: ColorScheme;\r\n theme?: DeepPartial<{\r\n light: PrimitiveThemeTokens;\r\n dark: PrimitiveThemeTokens;\r\n }>;\r\n components?:\r\n | ((theme: PrimitiveThemeTokens) => DeepPartial<ComponentsTokens>)\r\n | DeepPartial<ComponentsTokens>;\r\n}\r\n\r\nexport const ThemeProvider = memo(function ThemeProvider(\r\n props: PropsWithChildren<ThemeProviderProps>,\r\n) {\r\n const scheme = props?.scheme ?? \"light\";\r\n\r\n const context = useMemo<AppTheme>(() => {\r\n const baseTheme = scheme === \"light\" ? LightTheme : DarkTheme;\r\n const customBaseTheme = props.theme?.[scheme];\r\n const theme = merge(baseTheme, customBaseTheme);\r\n\r\n return {\r\n ...theme,\r\n components: createComponentsTokens(theme),\r\n };\r\n }, [scheme, props.theme?.light, props.theme?.dark, props.components]);\r\n\r\n return (\r\n <ThemeContext.Provider value={context}>\r\n {props.children}\r\n </ThemeContext.Provider>\r\n );\r\n});\r\n\r\nexport function useThemeContext() {\r\n const context = useContext(ThemeContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useThemeContext must be used within a ThemeProvider\");\r\n }\r\n\r\n return context;\r\n}\r\n","import { ButtonTokens, PrimitiveThemeTokens } from \"../types\";\r\n\r\nexport function createButtonTokens(tokens: PrimitiveThemeTokens): ButtonTokens {\r\n const primary = tokens.colors.primary.value;\r\n const primaryContrast = tokens.colors.primary.contrast;\r\n\r\n const secondary = tokens.colors.secondary.value;\r\n const secondaryContrast = tokens.colors.secondary.contrast;\r\n\r\n const neutral = tokens.colors.neutral;\r\n const disabledColor = tokens.colors.text.disabled;\r\n\r\n return {\r\n borderWidth: tokens.borderSize.sm,\r\n borderRadius: tokens.radii.md,\r\n\r\n sizes: {\r\n small: {\r\n height: 32,\r\n paddingVertical: 6,\r\n paddingHorizontal: 12,\r\n fontSize: tokens.fontSize.xsm,\r\n },\r\n medium: {\r\n height: 40,\r\n paddingVertical: 8,\r\n paddingHorizontal: 16,\r\n fontSize: tokens.fontSize.sm,\r\n },\r\n large: {\r\n height: 48,\r\n paddingVertical: 10,\r\n paddingHorizontal: 20,\r\n fontSize: tokens.fontSize.sm,\r\n },\r\n },\r\n\r\n variants: {\r\n filled: {\r\n backgroundColor: primary,\r\n borderColor: primary,\r\n color: primaryContrast,\r\n\r\n disabledBackgroundColor: neutral[\"5\"],\r\n disabledBorderColor: neutral[\"5\"],\r\n disabledColor,\r\n },\r\n\r\n outlined: {\r\n backgroundColor: \"transparent\",\r\n borderColor: primary,\r\n color: primary,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: neutral[\"5\"],\r\n disabledColor,\r\n },\r\n\r\n soft: {\r\n backgroundColor: secondary,\r\n borderColor: secondary,\r\n color: secondaryContrast,\r\n\r\n disabledBackgroundColor: neutral[\"3\"],\r\n disabledBorderColor: neutral[\"3\"],\r\n disabledColor,\r\n },\r\n\r\n ghost: {\r\n backgroundColor: \"transparent\",\r\n borderColor: \"transparent\",\r\n color: primary,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: \"transparent\",\r\n disabledColor,\r\n },\r\n\r\n plain: {\r\n backgroundColor: \"transparent\",\r\n borderColor: \"transparent\",\r\n color: primary,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: \"transparent\",\r\n disabledColor,\r\n },\r\n },\r\n };\r\n}\r\n","import {\r\n ControlAddonTokens,\r\n ControlContainerTokens,\r\n ControlErrorTokens,\r\n ControlInputTokens,\r\n ControlLabelTokens,\r\n PrimitiveThemeTokens,\r\n} from \"../types\";\r\n\r\nexport function createControlAddonTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlAddonTokens {\r\n return {\r\n marginHorizontal: tokens.space.xxs,\r\n hitSlop: tokens.space.sm,\r\n\r\n iconColor: tokens.colors.text.secondary,\r\n errorIconColor: tokens.colors.feedback.error.value,\r\n disabledIconColor: tokens.colors.text.disabled,\r\n };\r\n}\r\n\r\nexport function createControlContainerTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlContainerTokens {\r\n const ErrorColor = tokens.colors.feedback.error.value;\r\n const TransparentColor = \"transparent\";\r\n\r\n return {\r\n borderWidth: tokens.borderSize.sm,\r\n borderRadius: tokens.radii.sm,\r\n disabledOpacity: 0.7,\r\n\r\n sizes: {\r\n small: {\r\n height: 32,\r\n paddingHorizontal: tokens.space.xs,\r\n },\r\n medium: {\r\n height: 40,\r\n paddingHorizontal: tokens.space.xs,\r\n },\r\n large: {\r\n height: 48,\r\n paddingHorizontal: tokens.space.xs,\r\n },\r\n },\r\n\r\n variants: {\r\n filled: {\r\n backgroundColor: tokens.colors.surface.secondary.value,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: tokens.colors.neutral[\"2\"],\r\n disabledBorderColor: TransparentColor,\r\n },\r\n\r\n outlined: {\r\n backgroundColor: TransparentColor,\r\n borderColor: tokens.colors.neutral[\"5\"],\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: TransparentColor,\r\n disabledBorderColor: tokens.colors.neutral[\"5\"],\r\n },\r\n\r\n soft: {\r\n backgroundColor: tokens.colors.accent.value,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: tokens.colors.neutral[\"2\"],\r\n disabledBorderColor: TransparentColor,\r\n },\r\n\r\n ghost: {\r\n backgroundColor: TransparentColor,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: TransparentColor,\r\n disabledBorderColor: TransparentColor,\r\n },\r\n\r\n plain: {\r\n backgroundColor: TransparentColor,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: TransparentColor,\r\n disabledBorderColor: TransparentColor,\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport function createControlErrorTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlErrorTokens {\r\n return {\r\n marginTop: tokens.space.xxs,\r\n color: tokens.colors.feedback.error.value,\r\n fontSize: tokens.fontSize.xs,\r\n };\r\n}\r\n\r\nexport function createControlInputTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlInputTokens {\r\n return {\r\n flex: 1,\r\n fontFamily: tokens.fontFamily.normal[400],\r\n paddingHorizontal: tokens.space.xxs,\r\n\r\n sizes: {\r\n small: {\r\n fontSize: tokens.fontSize.xs,\r\n },\r\n medium: {\r\n fontSize: tokens.fontSize.xsm,\r\n },\r\n large: {\r\n fontSize: tokens.fontSize.sm,\r\n },\r\n },\r\n\r\n variants: {\r\n filled: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n outlined: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n soft: {\r\n color: tokens.colors.accent.contrast,\r\n placeholderColor: tokens.colors.accent.contrast,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.accent.contrast,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n ghost: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n plain: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport function createControlLabelTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlLabelTokens {\r\n return {\r\n marginBottom: tokens.space.xxs,\r\n fontSize: tokens.fontSize.xsm,\r\n\r\n color: tokens.colors.text.secondary,\r\n disabledColor: tokens.colors.text.disabled,\r\n errorColor: tokens.colors.feedback.error.value,\r\n };\r\n}\r\n","import { DataStateTokens, PrimitiveThemeTokens } from \"../types\";\r\n\r\nexport function createDataStateTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): DataStateTokens {\r\n return {\r\n details: {\r\n gap: 10,\r\n iconSize: 150,\r\n iconColor: tokens.colors.primary.value,\r\n },\r\n\r\n actionsFooter: {\r\n gap: 10,\r\n },\r\n\r\n content: {\r\n zIndex: 1,\r\n },\r\n\r\n loading: {\r\n transitionDuration: 250,\r\n loaderZIndex: 1,\r\n },\r\n };\r\n}\r\n","import { DatetimePickerTokens, PrimitiveThemeTokens } from \"../types\";\r\n\r\nexport function createDatetimePickerTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): DatetimePickerTokens {\r\n return {\r\n calendar: {\r\n dayNamesMarginBottom: tokens.space.msm,\r\n weeksGap: tokens.space.xxs,\r\n },\r\n day: {\r\n size: 40,\r\n borderRadius: tokens.radii.sm,\r\n\r\n color: tokens.colors.text.primary,\r\n outsideMonthColor: tokens.colors.neutral[\"5\"],\r\n\r\n selectedBackgroundColor: tokens.colors.primary.value,\r\n selectedColor: tokens.colors.primary.contrast,\r\n\r\n rangeBackgroundColor: tokens.colors.secondary.value,\r\n rangeColor: tokens.colors.secondary.contrast,\r\n },\r\n datePickerFlyout: {\r\n gap: tokens.space.msm,\r\n },\r\n datetimePickerFlyout: {\r\n gap: tokens.space.msm,\r\n },\r\n datetimeRangePickerFlyout: {\r\n gap: tokens.space.msm,\r\n timeInputsGap: tokens.space.xs,\r\n },\r\n flyoutActions: {\r\n gap: tokens.space.msm,\r\n buttonsGap: tokens.space.xs,\r\n clearColor: tokens.colors.primary.value,\r\n },\r\n quickDateOptions: {\r\n gap: tokens.space.xs,\r\n },\r\n visibleDateSelect: {\r\n gap: tokens.space.xs,\r\n },\r\n };\r\n}\r\n","import { FlyoutTokens, PrimitiveThemeTokens } from \"../types\";\r\n\r\nexport function createFlyoutTokens(tokens: PrimitiveThemeTokens): FlyoutTokens {\r\n return {\r\n zIndexBase: 100,\r\n\r\n maxHeightRatio: 0.7,\r\n\r\n overlayColor: tokens.colors.black,\r\n overlayVisibleOpacity: 0.4,\r\n\r\n backgroundColor: tokens.colors.surface.secondary.value,\r\n contentPaddingHorizontal: tokens.space.md,\r\n\r\n borderRadius: tokens.radii.xl,\r\n\r\n hiddenOpacity: 0,\r\n\r\n title: {\r\n paddingVertical: tokens.space.msm,\r\n paddingHorizontal: tokens.space.md,\r\n },\r\n\r\n handle: {\r\n containerHeight: 32,\r\n width: \"25%\",\r\n height: 6,\r\n borderRadius: tokens.radii.round,\r\n backgroundColor: tokens.colors.surface.primary.value,\r\n },\r\n };\r\n}\r\n","import { IconButtonTokens, PrimitiveThemeTokens } from \"../types\";\r\n\r\nexport function createIconButtonTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): IconButtonTokens {\r\n const primary = tokens.colors.primary.value;\r\n const primaryContrast = tokens.colors.primary.contrast;\r\n\r\n const secondary = tokens.colors.secondary.value;\r\n const secondaryContrast = tokens.colors.secondary.contrast;\r\n\r\n const neutral = tokens.colors.neutral;\r\n const disabledColor = tokens.colors.text.disabled;\r\n\r\n return {\r\n borderWidth: tokens.borderSize.sm,\r\n borderRadius: tokens.radii.md,\r\n\r\n sizes: {\r\n small: {\r\n size: 32,\r\n padding: 6,\r\n },\r\n medium: {\r\n size: 40,\r\n padding: 8,\r\n },\r\n large: {\r\n size: 48,\r\n padding: 10,\r\n },\r\n },\r\n\r\n variants: {\r\n filled: {\r\n backgroundColor: primary,\r\n borderColor: primary,\r\n color: primaryContrast,\r\n\r\n disabledBackgroundColor: neutral[\"5\"],\r\n disabledBorderColor: neutral[\"5\"],\r\n disabledColor,\r\n },\r\n\r\n outlined: {\r\n backgroundColor: \"transparent\",\r\n borderColor: primary,\r\n color: primary,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: neutral[\"5\"],\r\n disabledColor,\r\n },\r\n\r\n soft: {\r\n backgroundColor: secondary,\r\n borderColor: secondary,\r\n color: secondaryContrast,\r\n\r\n disabledBackgroundColor: neutral[\"3\"],\r\n disabledBorderColor: neutral[\"3\"],\r\n disabledColor,\r\n },\r\n\r\n ghost: {\r\n backgroundColor: \"transparent\",\r\n borderColor: \"transparent\",\r\n color: primary,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: \"transparent\",\r\n disabledColor,\r\n },\r\n\r\n plain: {\r\n backgroundColor: \"transparent\",\r\n borderColor: \"transparent\",\r\n color: primary,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: \"transparent\",\r\n disabledColor,\r\n },\r\n },\r\n };\r\n}\r\n","import { PrimitiveThemeTokens, SelectTokens } from \"../types\";\r\n\r\nexport function createSelectTokens(tokens: PrimitiveThemeTokens): SelectTokens {\r\n return {\r\n option: {\r\n padding: tokens.space.sm,\r\n selectedIconColor: tokens.colors.primary.value,\r\n selectedIconVisibleOpacity: 1,\r\n selectedIconHiddenOpacity: 0,\r\n },\r\n };\r\n}\r\n","import { PrimitiveThemeTokens, SkeletonTokens } from \"../types\";\r\n\r\nexport function createSkeletonTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): SkeletonTokens {\r\n const boneColor = tokens.colors.neutral[\"5\"];\r\n\r\n return {\r\n bone: {\r\n backgroundColor: boneColor,\r\n borderColor: boneColor,\r\n initialOpacity: 1,\r\n animatedOpacity: 0.4,\r\n animationDuration: 1000,\r\n },\r\n\r\n text: {\r\n alignSelf: \"flex-start\",\r\n textTransform: \"uppercase\",\r\n opacity: 0,\r\n },\r\n };\r\n}\r\n","import { PrimitiveThemeTokens, TagTokens } from \"../types\";\r\n\r\nexport function createTagTokens(tokens: PrimitiveThemeTokens): TagTokens {\r\n const neutral = tokens.colors.neutral;\r\n const disabledColor = tokens.colors.text.disabled;\r\n\r\n const createVariants = (value: string, contrast: string) => ({\r\n filled: {\r\n backgroundColor: value,\r\n borderColor: value,\r\n color: contrast,\r\n\r\n disabledBackgroundColor: neutral[\"4\"],\r\n disabledBorderColor: neutral[\"6\"],\r\n disabledColor,\r\n },\r\n\r\n outlined: {\r\n backgroundColor: \"transparent\",\r\n borderColor: value,\r\n color: value,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: neutral[\"6\"],\r\n disabledColor,\r\n },\r\n\r\n soft: {\r\n backgroundColor: contrast,\r\n borderColor: contrast,\r\n color: value,\r\n\r\n disabledBackgroundColor: neutral[\"3\"],\r\n disabledBorderColor: neutral[\"3\"],\r\n disabledColor,\r\n },\r\n\r\n ghost: {\r\n backgroundColor: \"transparent\",\r\n borderColor: \"transparent\",\r\n color: value,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: \"transparent\",\r\n disabledColor,\r\n },\r\n\r\n plain: {\r\n backgroundColor: \"transparent\",\r\n borderColor: \"transparent\",\r\n color: value,\r\n\r\n disabledBackgroundColor: \"transparent\",\r\n disabledBorderColor: \"transparent\",\r\n disabledColor,\r\n },\r\n });\r\n\r\n return {\r\n borderWidth: tokens.borderSize.sm,\r\n borderRadius: tokens.radii.round,\r\n gap: tokens.space.xxs,\r\n iconMarginLeft: tokens.borderSize.md,\r\n\r\n sizes: {\r\n small: {\r\n height: 24,\r\n paddingHorizontal: tokens.space.xs,\r\n minWidth: tokens.space.xl,\r\n fontSize: tokens.fontSize.xs,\r\n },\r\n\r\n medium: {\r\n height: 28,\r\n paddingHorizontal: tokens.space.xs,\r\n minWidth: tokens.space.xxl,\r\n fontSize: tokens.fontSize.xsm,\r\n },\r\n\r\n large: {\r\n height: 32,\r\n paddingHorizontal: tokens.space.mxs,\r\n minWidth: tokens.space.xxl,\r\n fontSize: tokens.fontSize.xsm,\r\n },\r\n },\r\n\r\n colors: {\r\n primary: createVariants(\r\n tokens.colors.primary.value,\r\n tokens.colors.primary.contrast,\r\n ),\r\n\r\n secondary: createVariants(\r\n tokens.colors.secondary.value,\r\n tokens.colors.secondary.contrast,\r\n ),\r\n\r\n error: createVariants(\r\n tokens.colors.feedback.error.value,\r\n tokens.colors.feedback.error.contrast,\r\n ),\r\n\r\n warning: createVariants(\r\n tokens.colors.feedback.warning.value,\r\n tokens.colors.feedback.warning.contrast,\r\n ),\r\n\r\n success: createVariants(\r\n tokens.colors.feedback.success.value,\r\n tokens.colors.feedback.success.contrast,\r\n ),\r\n\r\n info: createVariants(\r\n tokens.colors.feedback.info.value,\r\n tokens.colors.feedback.info.contrast,\r\n ),\r\n },\r\n };\r\n}\r\n","import { PrimitiveThemeTokens, TimePickerTokens } from \"../types\";\r\n\r\nexport function createTimePickerTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): TimePickerTokens {\r\n const ItemHeight = 50;\r\n const VisibleItems = 5;\r\n const ContainerHeight = ItemHeight * VisibleItems;\r\n const VerticalPadding = ContainerHeight / 2 - ItemHeight / 2;\r\n const ColumnWidth = 70;\r\n\r\n return {\r\n column: {\r\n width: ColumnWidth,\r\n height: ContainerHeight,\r\n gap: tokens.space.xxs,\r\n\r\n listWidth: 30,\r\n itemHeight: ItemHeight,\r\n visibleItems: VisibleItems,\r\n verticalPadding: VerticalPadding,\r\n initialScrollIndexViewOffset: -VerticalPadding,\r\n\r\n fontSize: tokens.fontSize.xl,\r\n selectedColor: tokens.colors.primary.value,\r\n color: tokens.colors.text.primary,\r\n selectedFontWeight: tokens.fontWeight.semiBold,\r\n fontWeight: tokens.fontWeight.regular,\r\n },\r\n\r\n flyout: {\r\n gap: tokens.space.msm,\r\n },\r\n\r\n columns: {\r\n height: ContainerHeight,\r\n gap: tokens.space.xs,\r\n indicatorHeight: ItemHeight,\r\n indicatorWidth: ColumnWidth * 3 + 70,\r\n indicatorTop: VerticalPadding,\r\n indicatorBorderRadius: tokens.radii.round,\r\n indicatorBackgroundColor: tokens.colors.surface.primary.value,\r\n },\r\n };\r\n}\r\n","import {\r\n BorderSize,\r\n ComponentsTokens,\r\n FontFamily,\r\n FontSize,\r\n FontWeight,\r\n FontWeightItalic,\r\n FontWeightNormal,\r\n FontWeightValue,\r\n LineHeight,\r\n NeutralColor,\r\n PrimitiveThemeTokens,\r\n Radii,\r\n Space,\r\n ThemeColors,\r\n} from \"../types\";\r\nimport { createButtonTokens } from \"./create-button-tokens\";\r\nimport {\r\n createControlAddonTokens,\r\n createControlContainerTokens,\r\n createControlErrorTokens,\r\n createControlInputTokens,\r\n createControlLabelTokens,\r\n} from \"./create-control-tokens\";\r\nimport { createDataStateTokens } from \"./create-data-state-tokens\";\r\nimport { createDatetimePickerTokens } from \"./create-datetime-picker\";\r\nimport { createFlyoutTokens } from \"./create-flyout-tokens\";\r\nimport { createIconButtonTokens } from \"./create-icon-button-tokens\";\r\nimport { createSelectTokens } from \"./create-select-tokens\";\r\nimport { createSkeletonTokens } from \"./create-skeleton-tokens\";\r\nimport { createTagTokens } from \"./create-tag-tokens\";\r\nimport { createTimePickerTokens } from \"./create-time-picker-tokens\";\r\n\r\nexport const SpaceTokens: Space = {\r\n none: 0,\r\n xxs: 4,\r\n xs: 8,\r\n mxs: 12,\r\n sm: 16,\r\n msm: 24,\r\n md: 32,\r\n lg: 48,\r\n xl: 64,\r\n xxl: 96,\r\n};\r\n\r\nexport const BorderSizeTokens: BorderSize = {\r\n sm: 1,\r\n md: 2,\r\n lg: 3,\r\n xl: 5,\r\n xxl: 10,\r\n};\r\n\r\nexport const RadiiTokens: Radii = {\r\n sm: 4,\r\n md: 8,\r\n lg: 16,\r\n xl: 32,\r\n xxl: 64,\r\n xxxl: 128,\r\n round: 100000,\r\n};\r\n\r\nexport const FontSizeTokens: FontSize = {\r\n xxs: 8,\r\n xs: 12,\r\n xsm: 14,\r\n sm: 16,\r\n md: 18,\r\n lg: 20,\r\n xl: 24,\r\n xxl: 28,\r\n xxxl: 32,\r\n huge: 36,\r\n massive: 40,\r\n giant: 48,\r\n colossal: 56,\r\n};\r\n\r\nexport const LineHeightTokens: LineHeight = {\r\n xxs: 12,\r\n xs: 16,\r\n xsm: 20,\r\n sm: 24,\r\n md: 26,\r\n lg: 28,\r\n xl: 32,\r\n xxl: 36,\r\n xxxl: 40,\r\n huge: 44,\r\n massive: 48,\r\n giant: 56,\r\n colossal: 64,\r\n};\r\n\r\nexport const FontWeightTokens: FontWeight = {\r\n thin: 100,\r\n extraLight: 200,\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n semiBold: 600,\r\n bold: 700,\r\n extraBold: 800,\r\n black: 900,\r\n};\r\n\r\nexport const FontFamilyWeightsNormalTokens: Record<\r\n FontWeightValue,\r\n FontWeightNormal\r\n> = {\r\n 100: \"Montserrat_100Thin\",\r\n 200: \"Montserrat_200ExtraLight\",\r\n 300: \"Montserrat_300Light\",\r\n 400: \"Montserrat_400Regular\",\r\n 500: \"Montserrat_500Medium\",\r\n 600: \"Montserrat_600SemiBold\",\r\n 700: \"Montserrat_700Bold\",\r\n 800: \"Montserrat_800ExtraBold\",\r\n 900: \"Montserrat_900Black\",\r\n};\r\n\r\nexport const FontFamilyWeightsItalicTokens: Record<\r\n FontWeightValue,\r\n FontWeightItalic\r\n> = {\r\n 100: \"Montserrat_100Thin_Italic\",\r\n 200: \"Montserrat_200ExtraLight_Italic\",\r\n 300: \"Montserrat_300Light_Italic\",\r\n 400: \"Montserrat_400Regular_Italic\",\r\n 500: \"Montserrat_500Medium_Italic\",\r\n 600: \"Montserrat_600SemiBold_Italic\",\r\n 700: \"Montserrat_700Bold_Italic\",\r\n 800: \"Montserrat_800ExtraBold_Italic\",\r\n 900: \"Montserrat_900Black_Italic\",\r\n};\r\n\r\nexport const FontFamilyTokens: FontFamily = {\r\n normal: FontFamilyWeightsNormalTokens,\r\n italic: FontFamilyWeightsItalicTokens,\r\n};\r\n\r\nexport const NeutralColorTokens: NeutralColor = {\r\n \"0\": \"#ffffff\",\r\n \"1\": \"#f8f9fa\",\r\n \"2\": \"#f1f3f5\",\r\n \"3\": \"#e9ecef\",\r\n \"4\": \"#dee2e6\",\r\n \"5\": \"#ced4da\",\r\n \"6\": \"#adb5bd\",\r\n \"7\": \"#868e96\",\r\n \"8\": \"#495057\",\r\n \"9\": \"#343a40\",\r\n \"10\": \"#212529\",\r\n \"11\": \"#16191d\",\r\n \"12\": \"#0d0f12\",\r\n \"13\": \"#000000\",\r\n};\r\n\r\nexport const LightColors: ThemeColors = {\r\n primary: {\r\n value: \"#f55d6b\",\r\n contrast: NeutralColorTokens[\"0\"],\r\n },\r\n\r\n accent: {\r\n value: \"#FA9EA7\",\r\n contrast: NeutralColorTokens[\"0\"],\r\n },\r\n\r\n secondary: {\r\n value: \"#FEE7E9\",\r\n contrast: \"#f55d6b\",\r\n },\r\n\r\n neutral: NeutralColorTokens,\r\n\r\n surface: {\r\n primary: {\r\n value: NeutralColorTokens[\"2\"],\r\n contrast: NeutralColorTokens[\"11\"],\r\n },\r\n secondary: {\r\n value: NeutralColorTokens[\"0\"],\r\n contrast: NeutralColorTokens[\"11\"],\r\n },\r\n elevated: {\r\n value: NeutralColorTokens[\"0\"],\r\n contrast: NeutralColorTokens[\"11\"],\r\n },\r\n inverse: {\r\n value: NeutralColorTokens[\"13\"],\r\n contrast: NeutralColorTokens[\"0\"],\r\n },\r\n },\r\n\r\n text: {\r\n primary: NeutralColorTokens[\"11\"],\r\n secondary: NeutralColorTokens[\"10\"],\r\n tertiary: NeutralColorTokens[\"9\"],\r\n inverse: NeutralColorTokens[\"0\"],\r\n disabled: NeutralColorTokens[\"7\"],\r\n },\r\n\r\n border: {\r\n subtle: {\r\n value: NeutralColorTokens[\"3\"],\r\n contrast: NeutralColorTokens[\"9\"],\r\n },\r\n default: {\r\n value: NeutralColorTokens[\"4\"],\r\n contrast: NeutralColorTokens[\"10\"],\r\n },\r\n strong: {\r\n value: NeutralColorTokens[\"6\"],\r\n contrast: NeutralColorTokens[\"11\"],\r\n },\r\n focus: {\r\n value: \"#f55d6b\",\r\n contrast: NeutralColorTokens[\"0\"],\r\n },\r\n },\r\n\r\n feedback: {\r\n error: {\r\n value: \"#c92a2a\",\r\n contrast: \"#fff5f5\",\r\n },\r\n warning: {\r\n value: \"#e67700\",\r\n contrast: \"#fff4e6\",\r\n },\r\n success: {\r\n value: \"#7a9908\",\r\n contrast: \"#f4fce3\",\r\n },\r\n info: {\r\n value: \"#1864ab\",\r\n contrast: \"#e7f5ff\",\r\n },\r\n },\r\n\r\n overlay: \"rgba(0, 0, 0, 0.45)\",\r\n\r\n white: NeutralColorTokens[\"0\"],\r\n black: NeutralColorTokens[\"13\"],\r\n};\r\n\r\nexport function createComponentsTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ComponentsTokens {\r\n return {\r\n button: createButtonTokens(tokens),\r\n iconButton: createIconButtonTokens(tokens),\r\n tag: createTagTokens(tokens),\r\n controlAddon: createControlAddonTokens(tokens),\r\n controlContainer: createControlContainerTokens(tokens),\r\n controlError: createControlErrorTokens(tokens),\r\n controlInput: createControlInputTokens(tokens),\r\n controlLabel: createControlLabelTokens(tokens),\r\n select: createSelectTokens(tokens),\r\n datetimePicker: createDatetimePickerTokens(tokens),\r\n timePicker: createTimePickerTokens(tokens),\r\n flyout: createFlyoutTokens(tokens),\r\n skeleton: createSkeletonTokens(tokens),\r\n dataState: createDataStateTokens(tokens),\r\n };\r\n}\r\n","import { PrimitiveThemeTokens } from \"../types\";\r\nimport {\r\n BorderSizeTokens,\r\n FontFamilyTokens,\r\n FontSizeTokens,\r\n FontWeightTokens,\r\n LightColors,\r\n LineHeightTokens,\r\n RadiiTokens,\r\n SpaceTokens,\r\n} from \"./tokens.theme\";\r\n\r\nexport const DarkTheme: PrimitiveThemeTokens = {\r\n colors: LightColors,\r\n space: SpaceTokens,\r\n radii: RadiiTokens,\r\n fontFamily: FontFamilyTokens,\r\n borderSize: BorderSizeTokens,\r\n fontSize: FontSizeTokens,\r\n fontWeight: FontWeightTokens,\r\n lineHeight: LineHeightTokens,\r\n};\r\n","import { PrimitiveThemeTokens } from \"../types\";\r\nimport {\r\n BorderSizeTokens,\r\n FontFamilyTokens,\r\n FontSizeTokens,\r\n FontWeightTokens,\r\n LightColors,\r\n LineHeightTokens,\r\n RadiiTokens,\r\n SpaceTokens,\r\n} from \"./tokens.theme\";\r\n\r\nexport const LightTheme: PrimitiveThemeTokens = {\r\n colors: LightColors,\r\n space: SpaceTokens,\r\n radii: RadiiTokens,\r\n fontFamily: FontFamilyTokens,\r\n borderSize: BorderSizeTokens,\r\n fontSize: FontSizeTokens,\r\n fontWeight: FontWeightTokens,\r\n lineHeight: LineHeightTokens,\r\n};\r\n","import { useMemo } from \"react\";\r\n\r\nimport { useThemeContext } from \"../providers\";\r\nimport { ThemeColors } from \"../types\";\r\n\r\nexport function useColors(): ThemeColors {\r\n const context = useThemeContext();\r\n\r\n return useMemo(() => context.colors, [context.colors]);\r\n}\r\n","import { useMemo } from \"react\";\r\n\r\nimport { useThemeContext } from \"../providers\";\r\n\r\nexport function useComponentsTokens() {\r\n const context = useThemeContext();\r\n\r\n return useMemo(() => context.components, [context.components]);\r\n}\r\n","import { useMemo } from \"react\";\r\n\r\nimport { useThemeContext } from \"../providers\";\r\nimport { Radii } from \"../types\";\r\n\r\nexport function useRadii(): Radii {\r\n const context = useThemeContext();\r\n\r\n return useMemo(() => context.radii, [context.radii]);\r\n}\r\n","import { useMemo } from \"react\";\r\n\r\nimport { useThemeContext } from \"../providers\";\r\nimport { Space } from \"../types\";\r\n\r\nexport function useSpace(): Space {\r\n const context = useThemeContext();\r\n\r\n return useMemo(() => context.space, [context.space]);\r\n}\r\n","import { useMemo } from \"react\";\r\n\r\nimport { createStyleKey, extractStyleProps } from \"../utils\";\r\n\r\nexport function useStyleProps<Props extends object>(props: Props) {\r\n const key = useMemo(() => createStyleKey(props), [props]);\r\n\r\n return useMemo(() => extractStyleProps(props), [key]);\r\n}\r\n","import { Platform, ViewStyle } from \"react-native\";\r\n\r\nimport { shadowScale, StylePropsSet } from \"../constants\";\r\nimport {\r\n ShadowLevel,\r\n ShadowPosition,\r\n StylePropKey,\r\n StyleProps,\r\n ThemeColors,\r\n} from \"../types\";\r\n\r\nconst isStylePropKey = (k: string): k is StylePropKey =>\r\n StylePropsSet.has(k as StylePropKey);\r\n\r\nexport const extractStyleProps = <Props extends object>(\r\n props: Props,\r\n): StyleProps => {\r\n const style: StyleProps = {};\r\n\r\n for (const k in props) {\r\n if (isStylePropKey(k) && props[k] !== undefined) {\r\n style[k] = props[k] as any;\r\n }\r\n }\r\n\r\n return style;\r\n};\r\n\r\nexport const createStyleKey = <Props extends object>(props: Props) => {\r\n let key = \"\";\r\n\r\n for (const k in props) {\r\n if (isStylePropKey(k)) {\r\n key += String(props[k as keyof Props]);\r\n }\r\n }\r\n\r\n return key;\r\n};\r\n\r\nexport const getShadowStyle = (\r\n level: ShadowLevel = \"none\",\r\n position: ShadowPosition = \"bottom\",\r\n colors: ThemeColors,\r\n): ViewStyle => {\r\n const token = shadowScale[level];\r\n\r\n if (level === \"none\") return {};\r\n\r\n if (Platform.OS === \"android\") {\r\n return {\r\n elevation: token.elevation,\r\n };\r\n }\r\n\r\n let offsetY = 0;\r\n\r\n if (position === \"bottom\") offsetY = token.radius / 2;\r\n if (position === \"top\") offsetY = -token.radius / 2;\r\n if (position === \"around\") offsetY = 0;\r\n\r\n return {\r\n shadowColor: colors.black,\r\n shadowOpacity: token.opacity,\r\n shadowRadius: token.radius,\r\n shadowOffset: {\r\n width: 0,\r\n height: offsetY,\r\n },\r\n };\r\n};\r\n","import { useThemeContext } from \"../providers\";\r\nimport { AppTheme } from \"../types\";\r\n\r\nexport function useTheme(): AppTheme {\r\n return useThemeContext();\r\n}\r\n","import { useMemo } from \"react\";\r\nimport { StyleSheet } from \"react-native\";\r\n\r\nimport { AppTheme } from \"../types\";\r\nimport { useTheme } from \"./use-theme.hook\";\r\n\r\ntype ThemedStyles<T extends StyleSheet.NamedStyles<T>> = T;\r\n\r\ntype StyledFunctionNoProps<T extends StyleSheet.NamedStyles<T>> = (\r\n theme: AppTheme,\r\n) => ThemedStyles<T>;\r\n\r\ntype StyledFunctionWithProps<\r\n Props extends object,\r\n T extends StyleSheet.NamedStyles<T>,\r\n> = (theme: AppTheme, props: Props) => ThemedStyles<T>;\r\n\r\nexport function useThemedStyles<T extends StyleSheet.NamedStyles<T>>(\r\n styledFunction: StyledFunctionNoProps<T>,\r\n): ThemedStyles<T>;\r\n\r\nexport function useThemedStyles<\r\n Props extends object,\r\n T extends StyleSheet.NamedStyles<T>,\r\n>(\r\n styledFunction: StyledFunctionWithProps<Props, T>,\r\n props: Props,\r\n dependencies: readonly unknown[],\r\n): ThemedStyles<T>;\r\n\r\nexport function useThemedStyles<\r\n Props extends object,\r\n T extends StyleSheet.NamedStyles<T>,\r\n>(\r\n styledFunction: StyledFunctionWithProps<Props, T>,\r\n props: Props,\r\n dependencies: readonly unknown[],\r\n): ThemedStyles<T>;\r\n\r\nexport function useThemedStyles<\r\n Props extends object,\r\n T extends StyleSheet.NamedStyles<T>,\r\n>(\r\n styledFunction: StyledFunctionNoProps<T> | StyledFunctionWithProps<Props, T>,\r\n props?: Props,\r\n dependencies?: readonly unknown[],\r\n): ThemedStyles<T> {\r\n const theme = useTheme();\r\n\r\n const memoDependencies = dependencies ?? (props === undefined ? [] : [props]);\r\n\r\n return useMemo(() => {\r\n if (props === undefined) {\r\n return (styledFunction as StyledFunctionNoProps<T>)(theme);\r\n }\r\n\r\n return (styledFunction as StyledFunctionWithProps<Props, T>)(theme, props);\r\n }, [theme, styledFunction, ...memoDependencies]);\r\n}\r\n"],"mappings":"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","names":["useMemo","ThemeProvider","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo","useMemo"]}
package/package.json CHANGED
@@ -1,43 +1,48 @@
1
1
  {
2
2
  "name": "@impulse-ui-native/theme",
3
- "version": "1.0.10",
3
+ "version": "2.0.0",
4
4
  "source": "src/index.ts",
5
- "main": "dist/index.cjs.js",
6
- "module": "dist/index.esm.js",
7
- "types": "dist/index.d.ts",
5
+ "module": "dist/index.js",
6
+ "types": "dist/index.d.mts",
8
7
  "react-native": "src/index.ts",
9
8
  "exports": {
10
9
  ".": {
11
- "types": "./dist/index.d.ts",
10
+ "types": "./dist/index.d.mts",
12
11
  "react-native": "./src/index.ts",
13
- "import": "./dist/index.esm.js",
14
- "require": "./dist/index.cjs.js"
12
+ "import": "./dist/index.js"
15
13
  }
16
14
  },
17
15
  "files": [
18
16
  "dist",
19
- "src",
20
17
  "README.md",
21
18
  "LICENSE"
22
19
  ],
23
20
  "dependencies": {
24
- "@expo-google-fonts/montserrat": "^0.4.1",
25
- "@impulse-ui-native/core": "1.0.10"
21
+ "@impulse-ui-native/core": "2.0.0"
22
+ },
23
+ "devDependencies": {
24
+ "@types/react": "~19.2.14",
25
+ "eslint": "^9.38.0",
26
+ "prettier": "^3.6.2",
27
+ "react": "19.2.0",
28
+ "react-native": "0.83.6",
29
+ "typescript": "~5.9.2",
30
+ "@impulse-ui-native/prettier-config": "1.0.0",
31
+ "@impulse-ui-native/eslint-config": "1.0.0",
32
+ "@impulse-ui-native/tsconfig": "1.0.0"
26
33
  },
27
34
  "peerDependencies": {
28
35
  "react": ">=18",
29
- "react-native": ">=0.74",
30
- "expo": ">=51 || >=52",
31
- "expo-modules-core": ">=1.0.0",
32
- "react-native-gesture-handler": ">=2",
33
- "react-native-reanimated": ">=3"
36
+ "react-native": ">=0.73"
34
37
  },
35
38
  "publishConfig": {
36
39
  "access": "public"
37
40
  },
41
+ "prettier": "@impulse-ui-native/prettier-config",
38
42
  "scripts": {
39
43
  "build": "tsup --config tsup.config.ts",
40
44
  "typecheck": "tsc -p tsconfig.json --noEmit",
41
- "lint": "pnpm exec eslint . --fix"
45
+ "lint": "pnpm exec eslint . --fix",
46
+ "format": "prettier --write \"./**/*.{ts,tsx,js,jsx,json,md}\" --ignore-path ../../.prettierignore"
42
47
  }
43
48
  }
package/dist/index.cjs.js DELETED
@@ -1,429 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- BorderSizeTokens: () => BorderSizeTokens,
24
- DarkTheme: () => DarkTheme,
25
- FontSizeTokens: () => FontSizeTokens,
26
- FontWeightsItalic: () => FontWeightsItalic,
27
- FontWeightsNormal: () => FontWeightsNormal,
28
- LightTheme: () => LightTheme,
29
- NeutralColorTokens: () => NeutralColorTokens,
30
- RadiiTokens: () => RadiiTokens,
31
- SpaceTokens: () => SpaceTokens,
32
- StylePropsSet: () => StylePropsSet,
33
- ThemeProvider: () => ThemeProvider,
34
- createStyleKey: () => createStyleKey,
35
- extractStyleProps: () => extractStyleProps,
36
- useBorder: () => useBorder,
37
- useColors: () => useColors,
38
- useComponentsTheme: () => useComponentsTheme,
39
- useRadii: () => useRadii,
40
- useSpace: () => useSpace,
41
- useStyleProps: () => useStyleProps,
42
- useTheme: () => useTheme,
43
- useThemeContext: () => useThemeContext,
44
- useThemedStyles: () => useThemedStyles
45
- });
46
- module.exports = __toCommonJS(index_exports);
47
-
48
- // src/constants/style.constants.ts
49
- var StylePropsSet = /* @__PURE__ */ new Set([
50
- // Spacing
51
- "margin",
52
- "marginTop",
53
- "marginBottom",
54
- "marginLeft",
55
- "marginRight",
56
- "marginHorizontal",
57
- "marginVertical",
58
- "padding",
59
- "paddingTop",
60
- "paddingBottom",
61
- "paddingLeft",
62
- "paddingRight",
63
- "paddingHorizontal",
64
- "paddingVertical",
65
- // Appearance
66
- "color",
67
- "backgroundColor",
68
- "opacity",
69
- "borderRadius",
70
- "borderColor",
71
- "borderWidth",
72
- "borderStyle",
73
- "shadowColor",
74
- "shadowOpacity",
75
- "shadowRadius",
76
- "shadowOffset",
77
- "elevation",
78
- // Typography (TextStyle)
79
- "fontSize",
80
- "fontFamily",
81
- "fontWeight",
82
- "fontStyle",
83
- "letterSpacing",
84
- "lineHeight",
85
- "textAlign",
86
- "textDecorationLine",
87
- "textDecorationStyle",
88
- "textDecorationColor",
89
- "textTransform",
90
- "includeFontPadding",
91
- "textAlignVertical",
92
- "writingDirection",
93
- // Flex (ViewStyle)
94
- "flex",
95
- "flexGrow",
96
- "flexShrink",
97
- "flexBasis",
98
- "flexDirection",
99
- "flexWrap",
100
- "justifyContent",
101
- "alignItems",
102
- "alignSelf",
103
- "alignContent",
104
- "gap",
105
- "rowGap",
106
- "columnGap",
107
- // Positioning (commonly used with flex layouts)
108
- "position",
109
- "top",
110
- "right",
111
- "bottom",
112
- "left",
113
- // Dimensions (ViewStyle)
114
- "width",
115
- "height",
116
- "minWidth",
117
- "maxWidth",
118
- "minHeight",
119
- "maxHeight",
120
- "aspectRatio"
121
- ]);
122
-
123
- // src/constants/typography.constants.ts
124
- var FontWeightsNormal = {
125
- 100: "Montserrat_100Thin",
126
- 200: "Montserrat_200ExtraLight",
127
- 300: "Montserrat_300Light",
128
- 400: "Montserrat_400Regular",
129
- 500: "Montserrat_500Medium",
130
- 600: "Montserrat_600SemiBold",
131
- 700: "Montserrat_700Bold",
132
- 800: "Montserrat_800ExtraBold",
133
- 900: "Montserrat_900Black"
134
- };
135
- var FontWeightsItalic = {
136
- 100: "Montserrat_100Thin_Italic",
137
- 200: "Montserrat_200ExtraLight_Italic",
138
- 300: "Montserrat_300Light_Italic",
139
- 400: "Montserrat_400Regular_Italic",
140
- 500: "Montserrat_500Medium_Italic",
141
- 600: "Montserrat_600SemiBold_Italic",
142
- 700: "Montserrat_700Bold_Italic",
143
- 800: "Montserrat_800ExtraBold_Italic",
144
- 900: "Montserrat_900Black_Italic"
145
- };
146
-
147
- // src/hooks/use-border.hook.ts
148
- var import_react2 = require("react");
149
-
150
- // src/providers/theme.provider.tsx
151
- var import_montserrat = require("@expo-google-fonts/montserrat");
152
- var import_core = require("@impulse-ui-native/core");
153
- var import_react = require("react");
154
-
155
- // src/theme/tokens.theme.ts
156
- var SpaceTokens = {
157
- none: 0,
158
- auto: "auto",
159
- xxs: 4,
160
- xs: 8,
161
- mxs: 12,
162
- sm: 16,
163
- msm: 24,
164
- md: 32,
165
- lg: 48,
166
- xl: 64,
167
- xxl: 96
168
- };
169
- var BorderSizeTokens = {
170
- sm: 1,
171
- md: 2,
172
- lg: 3,
173
- xl: 5,
174
- xxl: 10
175
- };
176
- var RadiiTokens = {
177
- sm: 4,
178
- md: 8,
179
- lg: 16,
180
- xl: 32,
181
- xxl: 64,
182
- xxxl: 128,
183
- round: 1e5
184
- };
185
- var FontSizeTokens = {
186
- xxs: 8,
187
- xs: 12,
188
- xsm: 14,
189
- sm: 16,
190
- md: 18,
191
- lg: 20,
192
- xl: 24,
193
- xxl: 32,
194
- xxxl: 40,
195
- huge: 48,
196
- massive: 56
197
- };
198
- var NeutralColorTokens = {
199
- "0": "#ffffff",
200
- "1": "#f8f9fa",
201
- "2": "#f1f3f5",
202
- "3": "#e9ecef",
203
- "4": "#dee2e6",
204
- "5": "#ced4da",
205
- "6": "#adb5bd",
206
- "7": "#868e96",
207
- "8": "#495057",
208
- "9": "#343a40",
209
- "10": "#212529",
210
- "11": "#16191d",
211
- "12": "#0d0f12",
212
- "13": "#000000"
213
- };
214
-
215
- // src/theme/dark.theme.ts
216
- var DarkTheme = {
217
- colors: {
218
- primary: "#f55d6b",
219
- secondary: "#f55d6b",
220
- neutral: NeutralColorTokens,
221
- white: NeutralColorTokens["0"],
222
- black: NeutralColorTokens["13"],
223
- error: "#c92a2a",
224
- warning: "#e67700",
225
- success: "#7a9908",
226
- info: "#1864ab",
227
- text: {
228
- primary: NeutralColorTokens["11"],
229
- secondary: NeutralColorTokens["10"]
230
- },
231
- background: {
232
- primary: NeutralColorTokens["2"],
233
- secondary: NeutralColorTokens["0"]
234
- }
235
- },
236
- spacing: SpaceTokens,
237
- radii: RadiiTokens,
238
- fontWeights: {
239
- normal: FontWeightsNormal,
240
- italic: FontWeightsItalic
241
- },
242
- borderSize: BorderSizeTokens,
243
- fontSize: FontSizeTokens
244
- };
245
-
246
- // src/theme/light.theme.ts
247
- var LightTheme = {
248
- colors: {
249
- primary: "#f55d6b",
250
- secondary: "#f55d6b",
251
- neutral: NeutralColorTokens,
252
- white: NeutralColorTokens["0"],
253
- black: NeutralColorTokens["13"],
254
- error: "#c92a2a",
255
- warning: "#e67700",
256
- success: "#7a9908",
257
- info: "#1864ab",
258
- text: {
259
- primary: NeutralColorTokens["11"],
260
- secondary: NeutralColorTokens["10"]
261
- },
262
- background: {
263
- primary: NeutralColorTokens["2"],
264
- secondary: NeutralColorTokens["0"]
265
- }
266
- },
267
- spacing: SpaceTokens,
268
- radii: RadiiTokens,
269
- fontWeights: {
270
- normal: FontWeightsNormal,
271
- italic: FontWeightsItalic
272
- },
273
- borderSize: BorderSizeTokens,
274
- fontSize: FontSizeTokens
275
- };
276
-
277
- // src/providers/theme.provider.tsx
278
- var ThemeContext = (0, import_react.createContext)(void 0);
279
- var ThemeProvider = (0, import_react.memo)(function ThemeProvider2(props) {
280
- const scheme = props.scheme ?? "light";
281
- const [loaded] = (0, import_montserrat.useFonts)({
282
- Montserrat_100Thin: import_montserrat.Montserrat_100Thin,
283
- Montserrat_100Thin_Italic: import_montserrat.Montserrat_100Thin_Italic,
284
- Montserrat_200ExtraLight: import_montserrat.Montserrat_200ExtraLight,
285
- Montserrat_200ExtraLight_Italic: import_montserrat.Montserrat_200ExtraLight_Italic,
286
- Montserrat_300Light: import_montserrat.Montserrat_300Light,
287
- Montserrat_300Light_Italic: import_montserrat.Montserrat_300Light_Italic,
288
- Montserrat_400Regular: import_montserrat.Montserrat_400Regular,
289
- Montserrat_400Regular_Italic: import_montserrat.Montserrat_400Regular_Italic,
290
- Montserrat_500Medium: import_montserrat.Montserrat_500Medium,
291
- Montserrat_500Medium_Italic: import_montserrat.Montserrat_500Medium_Italic,
292
- Montserrat_600SemiBold: import_montserrat.Montserrat_600SemiBold,
293
- Montserrat_600SemiBold_Italic: import_montserrat.Montserrat_600SemiBold_Italic,
294
- Montserrat_700Bold: import_montserrat.Montserrat_700Bold,
295
- Montserrat_700Bold_Italic: import_montserrat.Montserrat_700Bold_Italic,
296
- Montserrat_800ExtraBold: import_montserrat.Montserrat_800ExtraBold,
297
- Montserrat_800ExtraBold_Italic: import_montserrat.Montserrat_800ExtraBold_Italic,
298
- Montserrat_900Black: import_montserrat.Montserrat_900Black,
299
- Montserrat_900Black_Italic: import_montserrat.Montserrat_900Black_Italic
300
- });
301
- const context = (0, import_react.useMemo)(() => {
302
- const baseTheme = scheme === "light" ? LightTheme : DarkTheme;
303
- const customBaseTheme = props.theme?.[scheme];
304
- const theme = (0, import_core.merge)(baseTheme, customBaseTheme);
305
- let componentsTheme;
306
- if (typeof props.components === "function") {
307
- componentsTheme = props.components(theme);
308
- } else {
309
- componentsTheme = props.components;
310
- }
311
- return {
312
- loaded,
313
- theme,
314
- components: componentsTheme
315
- };
316
- }, [props.theme?.light, props.theme?.dark, props.components]);
317
- return /* @__PURE__ */ React.createElement(ThemeContext.Provider, { value: context }, props.children);
318
- });
319
- function useThemeContext() {
320
- const context = (0, import_react.useContext)(ThemeContext);
321
- if (!context) {
322
- throw new Error("useThemeContext must be used within a ThemeProvider");
323
- }
324
- return context;
325
- }
326
-
327
- // src/hooks/use-border.hook.ts
328
- function useBorder() {
329
- const context = useThemeContext();
330
- return (0, import_react2.useMemo)(() => context.theme.borderSize, [context.theme.borderSize]);
331
- }
332
-
333
- // src/hooks/use-colors.hook.ts
334
- var import_react3 = require("react");
335
- function useColors() {
336
- const context = useThemeContext();
337
- return (0, import_react3.useMemo)(() => context.theme.colors, [context.theme.colors]);
338
- }
339
-
340
- // src/hooks/use-components-theme.hook.ts
341
- var import_react4 = require("react");
342
- function useComponentsTheme() {
343
- const context = useThemeContext();
344
- return (0, import_react4.useMemo)(() => context.components, [context.components]);
345
- }
346
-
347
- // src/hooks/use-radii.hook.ts
348
- var import_react5 = require("react");
349
- function useRadii() {
350
- const context = useThemeContext();
351
- return (0, import_react5.useMemo)(() => context.theme.radii, [context.theme.radii]);
352
- }
353
-
354
- // src/hooks/use-space.hook.ts
355
- var import_react6 = require("react");
356
- function useSpace() {
357
- const context = useThemeContext();
358
- return (0, import_react6.useMemo)(() => context.theme.spacing, [context.theme.spacing]);
359
- }
360
-
361
- // src/hooks/use-style-props.hook.ts
362
- var import_react7 = require("react");
363
-
364
- // src/utils/style.utils.ts
365
- var isStylePropKey = (k) => StylePropsSet.has(k);
366
- var extractStyleProps = (props) => {
367
- const style = {};
368
- for (const k in props) {
369
- if (isStylePropKey(k) && props[k] !== void 0) {
370
- style[k] = props[k];
371
- }
372
- }
373
- return style;
374
- };
375
- var createStyleKey = (props) => {
376
- let key = "";
377
- for (const k in props) {
378
- if (isStylePropKey(k)) {
379
- key += String(props[k]);
380
- }
381
- }
382
- return key;
383
- };
384
-
385
- // src/hooks/use-style-props.hook.ts
386
- function useStyleProps(props) {
387
- const key = createStyleKey(props);
388
- return (0, import_react7.useMemo)(() => extractStyleProps(props), [key]);
389
- }
390
-
391
- // src/hooks/use-theme.hook.ts
392
- var import_react8 = require("react");
393
- function useTheme() {
394
- const context = useThemeContext();
395
- return (0, import_react8.useMemo)(() => context.theme, [context.theme]);
396
- }
397
-
398
- // src/hooks/use-themed-styles.ts
399
- var import_react9 = require("react");
400
- var useThemedStyles = (styledFunction, props) => {
401
- const theme = useTheme();
402
- return (0, import_react9.useMemo)(() => styledFunction(theme, props), [theme, props]);
403
- };
404
- // Annotate the CommonJS export names for ESM import in node:
405
- 0 && (module.exports = {
406
- BorderSizeTokens,
407
- DarkTheme,
408
- FontSizeTokens,
409
- FontWeightsItalic,
410
- FontWeightsNormal,
411
- LightTheme,
412
- NeutralColorTokens,
413
- RadiiTokens,
414
- SpaceTokens,
415
- StylePropsSet,
416
- ThemeProvider,
417
- createStyleKey,
418
- extractStyleProps,
419
- useBorder,
420
- useColors,
421
- useComponentsTheme,
422
- useRadii,
423
- useSpace,
424
- useStyleProps,
425
- useTheme,
426
- useThemeContext,
427
- useThemedStyles
428
- });
429
- //# sourceMappingURL=index.cjs.js.map