@ankhorage/surface 8.0.0 → 9.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.
- package/CHANGELOG.md +6 -0
- package/dist/{surfaceColor.d.ts → constants/surfaceColor.d.ts} +0 -4
- package/dist/constants/surfaceColor.d.ts.map +1 -0
- package/dist/constants/surfaceColor.js.map +1 -0
- package/dist/features/app-bar/adapters/inbound/AppBar.d.ts.map +1 -1
- package/dist/features/app-bar/adapters/inbound/AppBar.js +1 -1
- package/dist/features/app-bar/adapters/inbound/AppBar.js.map +1 -1
- package/dist/features/badge/adapters/inbound/Badge.d.ts.map +1 -1
- package/dist/features/badge/adapters/inbound/Badge.js +1 -1
- package/dist/features/badge/adapters/inbound/Badge.js.map +1 -1
- package/dist/features/button/adapters/inbound/Button.d.ts.map +1 -1
- package/dist/features/button/adapters/inbound/Button.js +1 -1
- package/dist/features/button/adapters/inbound/Button.js.map +1 -1
- package/dist/features/button/adapters/inbound/IconButton.d.ts.map +1 -1
- package/dist/features/button/adapters/inbound/IconButton.js +1 -1
- package/dist/features/button/adapters/inbound/IconButton.js.map +1 -1
- package/dist/features/card/adapters/inbound/Card.d.ts.map +1 -1
- package/dist/features/card/adapters/inbound/Card.js +1 -1
- package/dist/features/card/adapters/inbound/Card.js.map +1 -1
- package/dist/features/font/adapters/inbound/FontProvider.d.ts +4 -0
- package/dist/features/font/adapters/inbound/FontProvider.d.ts.map +1 -0
- package/dist/features/font/adapters/inbound/FontProvider.js +16 -0
- package/dist/features/font/adapters/inbound/FontProvider.js.map +1 -0
- package/dist/features/font/adapters/inbound/FontRuntimeContext.d.ts +4 -0
- package/dist/features/font/adapters/inbound/FontRuntimeContext.d.ts.map +1 -0
- package/dist/features/font/adapters/inbound/FontRuntimeContext.js +9 -0
- package/dist/features/font/adapters/inbound/FontRuntimeContext.js.map +1 -0
- package/dist/features/font/adapters/inbound/useFontRuntime.d.ts +4 -0
- package/dist/features/font/adapters/inbound/useFontRuntime.d.ts.map +1 -0
- package/dist/features/font/adapters/inbound/useFontRuntime.js +7 -0
- package/dist/features/font/adapters/inbound/useFontRuntime.js.map +1 -0
- package/dist/features/font/public.d.ts +3 -0
- package/dist/features/font/public.d.ts.map +1 -0
- package/dist/features/font/public.js +2 -0
- package/dist/features/font/public.js.map +1 -0
- package/dist/features/form/checkbox/adapters/inbound/Checkbox.d.ts.map +1 -1
- package/dist/features/form/checkbox/adapters/inbound/Checkbox.js +1 -1
- package/dist/features/form/checkbox/adapters/inbound/Checkbox.js.map +1 -1
- package/dist/features/form/radio/adapters/inbound/Radio.d.ts.map +1 -1
- package/dist/features/form/radio/adapters/inbound/Radio.js +1 -1
- package/dist/features/form/radio/adapters/inbound/Radio.js.map +1 -1
- package/dist/features/form/switch/adapters/inbound/Switch.d.ts.map +1 -1
- package/dist/features/form/switch/adapters/inbound/Switch.js +1 -1
- package/dist/features/form/switch/adapters/inbound/Switch.js.map +1 -1
- package/dist/features/form/text-input/adapters/inbound/TextInput.d.ts.map +1 -1
- package/dist/features/form/text-input/adapters/inbound/TextInput.js +1 -1
- package/dist/features/form/text-input/adapters/inbound/TextInput.js.map +1 -1
- package/dist/features/form/text-input/utils/resolveTextInputPresentation.d.ts +1 -1
- package/dist/features/form/text-input/utils/resolveTextInputPresentation.d.ts.map +1 -1
- package/dist/features/form/text-input/utils/resolveTextInputPresentation.js.map +1 -1
- package/dist/features/icon/adapters/inbound/Icon.d.ts.map +1 -1
- package/dist/features/icon/adapters/inbound/Icon.js +2 -2
- package/dist/features/icon/adapters/inbound/Icon.js.map +1 -1
- package/dist/features/image/adapters/inbound/Image.d.ts.map +1 -1
- package/dist/features/image/adapters/inbound/Image.js +1 -1
- package/dist/features/image/adapters/inbound/Image.js.map +1 -1
- package/dist/features/image/utils/resolveImageStyle.d.ts +1 -1
- package/dist/features/image/utils/resolveImageStyle.d.ts.map +1 -1
- package/dist/features/image/utils/resolveImageStyle.js +1 -1
- package/dist/features/image/utils/resolveImageStyle.js.map +1 -1
- package/dist/features/layout/adapters/inbound/Grid.d.ts.map +1 -1
- package/dist/features/layout/adapters/inbound/Grid.js +1 -1
- package/dist/features/layout/adapters/inbound/Grid.js.map +1 -1
- package/dist/features/layout/adapters/inbound/ScrollView.d.ts.map +1 -1
- package/dist/features/layout/adapters/inbound/ScrollView.js +1 -1
- package/dist/features/layout/adapters/inbound/ScrollView.js.map +1 -1
- package/dist/features/layout/adapters/inbound/View.d.ts.map +1 -1
- package/dist/features/layout/adapters/inbound/View.js +1 -1
- package/dist/features/layout/adapters/inbound/View.js.map +1 -1
- package/dist/features/list/adapters/inbound/ListItem.d.ts.map +1 -1
- package/dist/features/list/adapters/inbound/ListItem.js +1 -1
- package/dist/features/list/adapters/inbound/ListItem.js.map +1 -1
- package/dist/features/modal/adapters/inbound/Modal.d.ts.map +1 -1
- package/dist/features/modal/adapters/inbound/Modal.js +1 -1
- package/dist/features/modal/adapters/inbound/Modal.js.map +1 -1
- package/dist/features/popover-menu/adapters/inbound/PopoverMenu.d.ts.map +1 -1
- package/dist/features/popover-menu/adapters/inbound/PopoverMenu.js +1 -1
- package/dist/features/popover-menu/adapters/inbound/PopoverMenu.js.map +1 -1
- package/dist/features/pressable/adapters/inbound/Pressable.d.ts.map +1 -1
- package/dist/features/pressable/adapters/inbound/Pressable.js +1 -1
- package/dist/features/pressable/adapters/inbound/Pressable.js.map +1 -1
- package/dist/features/surface/adapters/inbound/Surface.d.ts.map +1 -1
- package/dist/features/surface/adapters/inbound/Surface.js +1 -1
- package/dist/features/surface/adapters/inbound/Surface.js.map +1 -1
- package/dist/features/tabs/adapters/inbound/Tab.d.ts.map +1 -1
- package/dist/features/tabs/adapters/inbound/Tab.js +1 -1
- package/dist/features/tabs/adapters/inbound/Tab.js.map +1 -1
- package/dist/features/theme/adapters/inbound/ThemeProvider.d.ts +4 -0
- package/dist/features/theme/adapters/inbound/ThemeProvider.d.ts.map +1 -0
- package/dist/features/theme/adapters/inbound/ThemeProvider.js +27 -0
- package/dist/features/theme/adapters/inbound/ThemeProvider.js.map +1 -0
- package/dist/features/theme/adapters/inbound/ThemeRuntimeContext.d.ts +4 -0
- package/dist/features/theme/adapters/inbound/ThemeRuntimeContext.d.ts.map +1 -0
- package/dist/features/theme/adapters/inbound/ThemeRuntimeContext.js +11 -0
- package/dist/features/theme/adapters/inbound/ThemeRuntimeContext.js.map +1 -0
- package/dist/features/theme/adapters/inbound/ThemeScope.d.ts +4 -0
- package/dist/features/theme/adapters/inbound/ThemeScope.d.ts.map +1 -0
- package/dist/features/theme/adapters/inbound/ThemeScope.js +17 -0
- package/dist/features/theme/adapters/inbound/ThemeScope.js.map +1 -0
- package/dist/features/theme/adapters/inbound/useTheme.d.ts +4 -0
- package/dist/features/theme/adapters/inbound/useTheme.d.ts.map +1 -0
- package/dist/features/theme/adapters/inbound/useTheme.js +7 -0
- package/dist/features/theme/adapters/inbound/useTheme.js.map +1 -0
- package/dist/features/theme/application/use-cases/createTheme.d.ts +5 -0
- package/dist/features/theme/application/use-cases/createTheme.d.ts.map +1 -0
- package/dist/features/theme/application/use-cases/createTheme.js +56 -0
- package/dist/features/theme/application/use-cases/createTheme.js.map +1 -0
- package/dist/features/theme/constants.d.ts +10 -0
- package/dist/features/theme/constants.d.ts.map +1 -0
- package/dist/{theme/defaultTokens.js → features/theme/constants.js} +9 -2
- package/dist/features/theme/constants.js.map +1 -0
- package/dist/{theme → features/theme/domain}/createSurfaceColorDiagnosticCollector.d.ts +1 -1
- package/dist/features/theme/domain/createSurfaceColorDiagnosticCollector.d.ts.map +1 -0
- package/dist/features/theme/domain/createSurfaceColorDiagnosticCollector.js.map +1 -0
- package/dist/{theme → features/theme/domain}/createSurfaceSemanticPolicy.d.ts +1 -1
- package/dist/features/theme/domain/createSurfaceSemanticPolicy.d.ts.map +1 -0
- package/dist/{theme → features/theme/domain}/createSurfaceSemanticPolicy.js +1 -1
- package/dist/features/theme/domain/createSurfaceSemanticPolicy.js.map +1 -0
- package/dist/features/theme/domain/generatePalette.d.ts +10 -0
- package/dist/features/theme/domain/generatePalette.d.ts.map +1 -0
- package/dist/{theme/colorEngine.js → features/theme/domain/generatePalette.js} +2 -10
- package/dist/features/theme/domain/generatePalette.js.map +1 -0
- package/dist/{theme → features/theme/domain}/resolveRoleSemantics.d.ts +1 -1
- package/dist/features/theme/domain/resolveRoleSemantics.d.ts.map +1 -0
- package/dist/{theme → features/theme/domain}/resolveRoleSemantics.js +1 -1
- package/dist/features/theme/domain/resolveRoleSemantics.js.map +1 -0
- package/dist/features/theme/domain/resolveSemanticColors.d.ts +4 -0
- package/dist/features/theme/domain/resolveSemanticColors.d.ts.map +1 -0
- package/dist/features/theme/domain/resolveSemanticColors.js +10 -0
- package/dist/features/theme/domain/resolveSemanticColors.js.map +1 -0
- package/dist/{theme → features/theme/domain}/resolveSurfaceSemanticModel.d.ts +1 -1
- package/dist/features/theme/domain/resolveSurfaceSemanticModel.d.ts.map +1 -0
- package/dist/features/theme/domain/resolveSurfaceSemanticModel.js.map +1 -0
- package/dist/features/theme/public.d.ts +3 -0
- package/dist/features/theme/public.d.ts.map +1 -0
- package/dist/features/theme/public.js +2 -0
- package/dist/features/theme/public.js.map +1 -0
- package/dist/features/theme/runtime.d.ts +5 -0
- package/dist/features/theme/runtime.d.ts.map +1 -0
- package/dist/features/theme/runtime.js +4 -0
- package/dist/features/theme/runtime.js.map +1 -0
- package/dist/{theme → features/theme/utils}/resolveGlobalTokens.d.ts +1 -1
- package/dist/features/theme/utils/resolveGlobalTokens.d.ts.map +1 -0
- package/dist/{theme → features/theme/utils}/resolveGlobalTokens.js +1 -1
- package/dist/features/theme/utils/resolveGlobalTokens.js.map +1 -0
- package/dist/{theme → features/theme/utils}/resolveHeadingTokenOverrides.d.ts +1 -1
- package/dist/features/theme/utils/resolveHeadingTokenOverrides.d.ts.map +1 -0
- package/dist/features/theme/utils/resolveHeadingTokenOverrides.js.map +1 -0
- package/dist/features/theme/utils/resolveNumericTokenOverrides.d.ts.map +1 -0
- package/dist/features/theme/utils/resolveNumericTokenOverrides.js.map +1 -0
- package/dist/{theme → features/theme/utils}/resolveToken.d.ts +2 -8
- package/dist/features/theme/utils/resolveToken.d.ts.map +1 -0
- package/dist/features/theme/utils/resolveToken.js +10 -0
- package/dist/features/theme/utils/resolveToken.js.map +1 -0
- package/dist/{theme → features/theme/utils}/resolveWeightTokenOverrides.d.ts +1 -1
- package/dist/features/theme/utils/resolveWeightTokenOverrides.d.ts.map +1 -0
- package/dist/{theme → features/theme/utils}/resolveWeightTokenOverrides.js +3 -5
- package/dist/features/theme/utils/resolveWeightTokenOverrides.js.map +1 -0
- package/dist/features/toast/adapters/inbound/Toast.d.ts.map +1 -1
- package/dist/features/toast/adapters/inbound/Toast.js +1 -1
- package/dist/features/toast/adapters/inbound/Toast.js.map +1 -1
- package/dist/features/tooltip/adapters/inbound/Tooltip.d.ts.map +1 -1
- package/dist/features/tooltip/adapters/inbound/Tooltip.js +1 -1
- package/dist/features/tooltip/adapters/inbound/Tooltip.js.map +1 -1
- package/dist/features/typography/adapters/inbound/Heading.d.ts +2 -2
- package/dist/features/typography/adapters/inbound/Heading.d.ts.map +1 -1
- package/dist/features/typography/adapters/inbound/Heading.js +4 -20
- package/dist/features/typography/adapters/inbound/Heading.js.map +1 -1
- package/dist/features/typography/adapters/inbound/Text.d.ts +1 -1
- package/dist/features/typography/adapters/inbound/Text.d.ts.map +1 -1
- package/dist/features/typography/adapters/inbound/Text.js +3 -20
- package/dist/features/typography/adapters/inbound/Text.js.map +1 -1
- package/dist/features/typography/utils/resolveHeadingTextStyle.d.ts +2 -2
- package/dist/features/typography/utils/resolveHeadingTextStyle.d.ts.map +1 -1
- package/dist/features/typography/utils/resolveHeadingTextStyle.js.map +1 -1
- package/dist/index.d.ts +9 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- package/dist/index.js.map +1 -1
- package/dist/internal/resolvers/resolveControlSize.d.ts +1 -1
- package/dist/internal/resolvers/resolveControlSize.js.map +1 -1
- package/dist/internal/resolvers/resolveFieldPresentation.d.ts +1 -1
- package/dist/internal/resolvers/resolveFieldPresentation.d.ts.map +1 -1
- package/dist/internal/resolvers/resolveFieldPresentation.js.map +1 -1
- package/dist/internal/resolvers/resolveIconSize.d.ts +1 -1
- package/dist/internal/resolvers/resolveIconSize.js.map +1 -1
- package/dist/internal/resolvers/resolveInteractiveColors.d.ts +2 -2
- package/dist/internal/resolvers/resolveInteractiveColors.d.ts.map +1 -1
- package/dist/internal/resolvers/resolveInteractiveColors.js.map +1 -1
- package/dist/internal/resolvers/resolveSelectionControlColors.d.ts +2 -2
- package/dist/internal/resolvers/resolveSelectionControlColors.d.ts.map +1 -1
- package/dist/internal/resolvers/resolveSelectionControlColors.js.map +1 -1
- package/dist/internal/resolvers/resolveSurfaceColor.d.ts +2 -2
- package/dist/internal/resolvers/resolveSurfaceColor.d.ts.map +1 -1
- package/dist/internal/resolvers/resolveSurfaceColor.js.map +1 -1
- package/dist/internal/resolvers/resolveTextColor.d.ts +2 -2
- package/dist/internal/resolvers/resolveTextColor.d.ts.map +1 -1
- package/dist/internal/resolvers/resolveTextColor.js.map +1 -1
- package/dist/internal/resolvers/resolveTextStyles.d.ts +1 -1
- package/dist/internal/resolvers/resolveTextStyles.js.map +1 -1
- package/dist/types/accordion.d.ts +1 -1
- package/dist/types/accordion.d.ts.map +1 -1
- package/dist/types/accordion.js.map +1 -1
- package/dist/types/badge.d.ts +1 -1
- package/dist/types/badge.d.ts.map +1 -1
- package/dist/types/badge.js.map +1 -1
- package/dist/types/button.d.ts +1 -1
- package/dist/types/button.d.ts.map +1 -1
- package/dist/types/button.js.map +1 -1
- package/dist/types/checkbox.d.ts +1 -1
- package/dist/types/checkbox.d.ts.map +1 -1
- package/dist/types/checkbox.js.map +1 -1
- package/dist/types/font.d.ts +13 -0
- package/dist/types/font.d.ts.map +1 -0
- package/dist/types/font.js +2 -0
- package/dist/types/font.js.map +1 -0
- package/dist/types/icon.d.ts +1 -1
- package/dist/types/icon.d.ts.map +1 -1
- package/dist/types/icon.js.map +1 -1
- package/dist/types/image.d.ts +1 -1
- package/dist/types/image.d.ts.map +1 -1
- package/dist/types/image.js.map +1 -1
- package/dist/types/interactionPolicy.d.ts.map +1 -0
- package/dist/types/interactionPolicy.js.map +1 -0
- package/dist/types/layout.d.ts +1 -1
- package/dist/types/layout.d.ts.map +1 -1
- package/dist/types/layout.js.map +1 -1
- package/dist/types/list.d.ts +1 -1
- package/dist/types/list.d.ts.map +1 -1
- package/dist/types/list.js.map +1 -1
- package/dist/types/modal.d.ts +1 -1
- package/dist/types/modal.d.ts.map +1 -1
- package/dist/types/modal.js.map +1 -1
- package/dist/types/popover.d.ts +1 -1
- package/dist/types/popover.d.ts.map +1 -1
- package/dist/types/popover.js.map +1 -1
- package/dist/types/popoverMenu.d.ts +1 -1
- package/dist/types/popoverMenu.d.ts.map +1 -1
- package/dist/types/popoverMenu.js.map +1 -1
- package/dist/types/pressable.d.ts +1 -1
- package/dist/types/pressable.d.ts.map +1 -1
- package/dist/types/pressable.js.map +1 -1
- package/dist/types/radio.d.ts +1 -1
- package/dist/types/radio.d.ts.map +1 -1
- package/dist/types/radio.js.map +1 -1
- package/dist/types/surfaceColor.d.ts +6 -0
- package/dist/types/surfaceColor.d.ts.map +1 -0
- package/dist/types/surfaceColor.js +2 -0
- package/dist/types/surfaceColor.js.map +1 -0
- package/dist/types/switch.d.ts +1 -1
- package/dist/types/switch.d.ts.map +1 -1
- package/dist/types/switch.js.map +1 -1
- package/dist/types/tabs.d.ts +1 -1
- package/dist/types/tabs.d.ts.map +1 -1
- package/dist/types/tabs.js.map +1 -1
- package/dist/types/text-input.d.ts +1 -1
- package/dist/types/text-input.d.ts.map +1 -1
- package/dist/types/text-input.js.map +1 -1
- package/dist/{theme/types.d.ts → types/theme.d.ts} +19 -3
- package/dist/types/theme.d.ts.map +1 -0
- package/dist/types/theme.js +2 -0
- package/dist/types/theme.js.map +1 -0
- package/dist/types/toast.d.ts +2 -2
- package/dist/types/toast.d.ts.map +1 -1
- package/dist/types/toast.js.map +1 -1
- package/dist/types/tooltip.d.ts +1 -1
- package/dist/types/tooltip.d.ts.map +1 -1
- package/dist/types/tooltip.js.map +1 -1
- package/dist/types/typography.d.ts +1 -1
- package/dist/types/typography.d.ts.map +1 -1
- package/dist/types/typography.js.map +1 -1
- package/dist/utils/resolveSpacing.d.ts +1 -1
- package/dist/utils/resolveSpacing.d.ts.map +1 -1
- package/dist/utils/resolveSpacing.js +1 -1
- package/dist/utils/resolveSpacing.js.map +1 -1
- package/dist/utils/resolveViewStyles.d.ts +1 -1
- package/dist/utils/resolveViewStyles.d.ts.map +1 -1
- package/dist/utils/resolveViewStyles.js +1 -1
- package/dist/utils/resolveViewStyles.js.map +1 -1
- package/package.json +8 -7
- package/src/constants/surfaceColor.test.ts +18 -0
- package/src/{surfaceColor.ts → constants/surfaceColor.ts} +0 -5
- package/src/features/app-bar/adapters/inbound/AppBar.tsx +1 -1
- package/src/features/badge/adapters/inbound/Badge.tsx +1 -1
- package/src/features/button/adapters/inbound/Button.tsx +2 -2
- package/src/features/button/adapters/inbound/IconButton.tsx +1 -1
- package/src/features/card/adapters/inbound/Card.tsx +1 -1
- package/src/features/font/adapters/inbound/FontProvider.tsx +27 -0
- package/src/features/font/adapters/inbound/FontRuntimeContext.tsx +12 -0
- package/src/features/font/adapters/inbound/useFontRuntime.ts +9 -0
- package/src/features/font/public.ts +2 -0
- package/src/features/form/checkbox/adapters/inbound/Checkbox.tsx +2 -2
- package/src/features/form/radio/adapters/inbound/Radio.tsx +2 -2
- package/src/features/form/switch/adapters/inbound/Switch.tsx +1 -1
- package/src/features/form/text-input/adapters/inbound/TextInput.tsx +1 -1
- package/src/features/form/text-input/utils/resolveTextInputPresentation.ts +1 -1
- package/src/features/icon/adapters/inbound/Icon.tsx +2 -2
- package/src/features/image/adapters/inbound/Image.tsx +1 -1
- package/src/features/image/utils/resolveImageProps.test.ts +1 -1
- package/src/features/image/utils/resolveImageStyle.ts +2 -2
- package/src/features/layout/adapters/inbound/Grid.tsx +1 -1
- package/src/features/layout/adapters/inbound/ScrollView.tsx +1 -1
- package/src/features/layout/adapters/inbound/View.tsx +1 -1
- package/src/features/list/adapters/inbound/ListItem.tsx +2 -2
- package/src/features/modal/adapters/inbound/Modal.tsx +1 -1
- package/src/features/popover-menu/adapters/inbound/PopoverMenu.tsx +1 -1
- package/src/features/pressable/adapters/inbound/Pressable.tsx +1 -1
- package/src/features/surface/adapters/inbound/Surface.tsx +1 -1
- package/src/features/tabs/adapters/inbound/Tab.tsx +1 -1
- package/src/features/theme/adapters/inbound/ThemeProvider.tsx +46 -0
- package/src/features/theme/adapters/inbound/ThemeRuntimeContext.tsx +14 -0
- package/src/features/theme/adapters/inbound/ThemeScope.test.tsx +52 -0
- package/src/features/theme/adapters/inbound/ThemeScope.tsx +29 -0
- package/src/features/theme/adapters/inbound/useTheme.ts +9 -0
- package/src/features/theme/application/use-cases/createTheme.ts +71 -0
- package/src/{theme → features/theme/application/use-cases}/createThemeOverrides.test.ts +8 -9
- package/src/{theme → features/theme/application/use-cases}/createThemeValidation.test.ts +4 -2
- package/src/features/theme/constants.ts +68 -0
- package/src/{theme → features/theme/domain}/createSurfaceColorDiagnosticCollector.ts +4 -1
- package/src/{theme → features/theme/domain}/createSurfaceSemanticPolicy.ts +2 -2
- package/src/features/theme/domain/generatePalette.test.ts +294 -0
- package/src/{theme/colorEngine.ts → features/theme/domain/generatePalette.ts} +3 -30
- package/src/{theme → features/theme/domain}/inverseSemantics.test.ts +1 -1
- package/src/{theme → features/theme/domain}/resolveRoleSemantics.ts +2 -2
- package/src/features/theme/domain/resolveSemanticColors.ts +23 -0
- package/src/{theme → features/theme/domain}/resolveSurfaceSemanticModel.ts +4 -4
- package/src/{theme → features/theme}/public.test.ts +1 -1
- package/src/features/theme/public.ts +18 -0
- package/src/features/theme/runtime.test.ts +13 -0
- package/src/features/theme/runtime.ts +4 -0
- package/src/{theme → features/theme/utils}/resolveGlobalTokens.ts +2 -2
- package/src/{theme → features/theme/utils}/resolveHeadingTokenOverrides.ts +1 -1
- package/src/features/theme/utils/resolveToken.ts +16 -0
- package/src/{theme → features/theme/utils}/resolveWeightTokenOverrides.ts +12 -12
- package/src/features/toast/adapters/inbound/Toast.tsx +3 -3
- package/src/features/tooltip/adapters/inbound/Tooltip.tsx +1 -1
- package/src/features/typography/adapters/inbound/Heading.tsx +3 -30
- package/src/features/typography/adapters/inbound/Text.tsx +3 -23
- package/src/features/typography/utils/resolveHeadingTextStyle.test.ts +1 -1
- package/src/features/typography/utils/resolveHeadingTextStyle.ts +2 -2
- package/src/index.test.ts +11 -9
- package/src/index.ts +30 -15
- package/src/internal/resolvers/resolveControlSize.test.ts +1 -1
- package/src/internal/resolvers/resolveControlSize.ts +1 -1
- package/src/internal/resolvers/resolveFieldPresentation.ts +1 -1
- package/src/internal/resolvers/resolveIconSize.ts +1 -1
- package/src/internal/resolvers/resolveInteractiveColors.test.ts +1 -1
- package/src/internal/resolvers/resolveInteractiveColors.ts +2 -2
- package/src/internal/resolvers/resolveSelectionControlColors.test.ts +1 -1
- package/src/internal/resolvers/resolveSelectionControlColors.ts +2 -2
- package/src/internal/resolvers/resolveSurfaceColor.test.ts +1 -1
- package/src/internal/resolvers/resolveSurfaceColor.ts +2 -2
- package/src/internal/resolvers/resolveTextColor.test.ts +1 -1
- package/src/internal/resolvers/resolveTextColor.ts +2 -2
- package/src/internal/resolvers/resolveTextStyles.test.ts +1 -1
- package/src/internal/resolvers/resolveTextStyles.ts +1 -1
- package/src/structureOwnership.test.ts +16 -0
- package/src/types/accordion.ts +1 -1
- package/src/types/badge.ts +1 -1
- package/src/types/button.ts +1 -1
- package/src/types/checkbox.ts +1 -1
- package/src/types/font.ts +14 -0
- package/src/types/icon.ts +1 -1
- package/src/types/image.ts +1 -1
- package/src/types/interactionPolicy.test.ts +30 -0
- package/src/types/layout.ts +1 -1
- package/src/types/list.ts +1 -1
- package/src/types/modal.ts +1 -1
- package/src/types/popover.ts +1 -1
- package/src/types/popoverMenu.ts +1 -1
- package/src/types/pressable.ts +1 -1
- package/src/types/radio.ts +1 -1
- package/src/types/surfaceColor.test.ts +18 -0
- package/src/types/surfaceColor.ts +11 -0
- package/src/types/switch.ts +1 -1
- package/src/types/tabs.ts +1 -1
- package/src/types/text-input.ts +1 -1
- package/src/{theme/types.ts → types/theme.ts} +22 -13
- package/src/types/toast.ts +2 -2
- package/src/types/tooltip.ts +1 -1
- package/src/types/typography.ts +1 -1
- package/src/utils/resolveSpacing.ts +2 -2
- package/src/utils/resolveViewStyles.test.ts +1 -1
- package/src/utils/resolveViewStyles.ts +2 -2
- package/src/webAcceptance.test.tsx +1 -1
- package/dist/context/FontContext.d.ts +0 -20
- package/dist/context/FontContext.d.ts.map +0 -1
- package/dist/context/FontContext.js +0 -27
- package/dist/context/FontContext.js.map +0 -1
- package/dist/context/TranslationContext.d.ts +0 -22
- package/dist/context/TranslationContext.d.ts.map +0 -1
- package/dist/context/TranslationContext.js +0 -25
- package/dist/context/TranslationContext.js.map +0 -1
- package/dist/interactionPolicy.d.ts.map +0 -1
- package/dist/interactionPolicy.js.map +0 -1
- package/dist/surfaceColor.d.ts.map +0 -1
- package/dist/surfaceColor.js.map +0 -1
- package/dist/theme/ThemeContext.d.ts +0 -27
- package/dist/theme/ThemeContext.d.ts.map +0 -1
- package/dist/theme/ThemeContext.js +0 -59
- package/dist/theme/ThemeContext.js.map +0 -1
- package/dist/theme/colorEngine.d.ts +0 -16
- package/dist/theme/colorEngine.d.ts.map +0 -1
- package/dist/theme/colorEngine.js.map +0 -1
- package/dist/theme/createSurfaceColorDiagnosticCollector.d.ts.map +0 -1
- package/dist/theme/createSurfaceColorDiagnosticCollector.js.map +0 -1
- package/dist/theme/createSurfaceSemanticPolicy.d.ts.map +0 -1
- package/dist/theme/createSurfaceSemanticPolicy.js.map +0 -1
- package/dist/theme/createTheme.d.ts +0 -5
- package/dist/theme/createTheme.d.ts.map +0 -1
- package/dist/theme/createTheme.js +0 -49
- package/dist/theme/createTheme.js.map +0 -1
- package/dist/theme/defaultTokens.d.ts +0 -3
- package/dist/theme/defaultTokens.d.ts.map +0 -1
- package/dist/theme/defaultTokens.js.map +0 -1
- package/dist/theme/index.d.ts +0 -3
- package/dist/theme/index.d.ts.map +0 -1
- package/dist/theme/index.js +0 -3
- package/dist/theme/index.js.map +0 -1
- package/dist/theme/public.d.ts +0 -5
- package/dist/theme/public.d.ts.map +0 -1
- package/dist/theme/public.js +0 -5
- package/dist/theme/public.js.map +0 -1
- package/dist/theme/resolveGlobalTokens.d.ts.map +0 -1
- package/dist/theme/resolveGlobalTokens.js.map +0 -1
- package/dist/theme/resolveHeadingTokenOverrides.d.ts.map +0 -1
- package/dist/theme/resolveHeadingTokenOverrides.js.map +0 -1
- package/dist/theme/resolveNumericTokenOverrides.d.ts.map +0 -1
- package/dist/theme/resolveNumericTokenOverrides.js.map +0 -1
- package/dist/theme/resolveRoleSemantics.d.ts.map +0 -1
- package/dist/theme/resolveRoleSemantics.js.map +0 -1
- package/dist/theme/resolveSurfaceSemanticModel.d.ts.map +0 -1
- package/dist/theme/resolveSurfaceSemanticModel.js.map +0 -1
- package/dist/theme/resolveToken.d.ts.map +0 -1
- package/dist/theme/resolveToken.js +0 -19
- package/dist/theme/resolveToken.js.map +0 -1
- package/dist/theme/resolveWeightTokenOverrides.d.ts.map +0 -1
- package/dist/theme/resolveWeightTokenOverrides.js.map +0 -1
- package/dist/theme/surfaceColorPolicy.d.ts +0 -8
- package/dist/theme/surfaceColorPolicy.d.ts.map +0 -1
- package/dist/theme/surfaceColorPolicy.js +0 -8
- package/dist/theme/surfaceColorPolicy.js.map +0 -1
- package/dist/theme/types.d.ts.map +0 -1
- package/dist/theme/types.js +0 -2
- package/dist/theme/types.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -6
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js +0 -36
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/deepMerge.d.ts +0 -6
- package/dist/utils/deepMerge.d.ts.map +0 -1
- package/dist/utils/deepMerge.js +0 -26
- package/dist/utils/deepMerge.js.map +0 -1
- package/src/context/FontContext.tsx +0 -59
- package/src/context/TranslationContext.tsx +0 -50
- package/src/interactionPolicy.test.ts +0 -86
- package/src/surfaceColor.test.ts +0 -44
- package/src/theme/ThemeContext.tsx +0 -94
- package/src/theme/colorEngine.test.ts +0 -302
- package/src/theme/createTheme.ts +0 -60
- package/src/theme/defaultTokens.ts +0 -61
- package/src/theme/index.ts +0 -2
- package/src/theme/public.ts +0 -4
- package/src/theme/resolveToken.ts +0 -32
- package/src/theme/surfaceColorPolicy.ts +0 -7
- package/src/utils/deepEqual.ts +0 -34
- package/src/utils/deepMerge.test.ts +0 -113
- package/src/utils/deepMerge.ts +0 -29
- /package/dist/{surfaceColor.js → constants/surfaceColor.js} +0 -0
- /package/dist/{theme → features/theme/domain}/createSurfaceColorDiagnosticCollector.js +0 -0
- /package/dist/{theme → features/theme/domain}/resolveSurfaceSemanticModel.js +0 -0
- /package/dist/{theme → features/theme/utils}/resolveHeadingTokenOverrides.js +0 -0
- /package/dist/{theme → features/theme/utils}/resolveNumericTokenOverrides.d.ts +0 -0
- /package/dist/{theme → features/theme/utils}/resolveNumericTokenOverrides.js +0 -0
- /package/dist/{interactionPolicy.d.ts → types/interactionPolicy.d.ts} +0 -0
- /package/dist/{interactionPolicy.js → types/interactionPolicy.js} +0 -0
- /package/src/{theme → features/theme/utils}/resolveNumericTokenOverrides.ts +0 -0
- /package/src/{interactionPolicy.ts → types/interactionPolicy.ts} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
|
|
3
|
+
import { describe, expect, it } from 'bun:test';
|
|
4
|
+
|
|
5
|
+
import { SURFACE_COLORS, SURFACE_EMPHASES } from '../constants/surfaceColor';
|
|
6
|
+
import type { SurfaceColor, SurfaceEmphasis } from './surfaceColor';
|
|
7
|
+
|
|
8
|
+
describe('surface color type ownership', () => {
|
|
9
|
+
it('derives public types from runtime constants and exports both deliberately', () => {
|
|
10
|
+
const color: SurfaceColor = 'danger';
|
|
11
|
+
const emphasis: SurfaceEmphasis = 'muted';
|
|
12
|
+
const indexSource = readFileSync(new URL('../index.ts', import.meta.url), 'utf8');
|
|
13
|
+
expect(SURFACE_COLORS).toContain(color);
|
|
14
|
+
expect(SURFACE_EMPHASES).toContain(emphasis);
|
|
15
|
+
expect(indexSource).toContain("from './constants/surfaceColor';");
|
|
16
|
+
expect(indexSource).toContain("from './types/surfaceColor';");
|
|
17
|
+
});
|
|
18
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
SURFACE_COLORS,
|
|
3
|
+
SURFACE_EMPHASES,
|
|
4
|
+
SURFACE_PALETTE_COLORS,
|
|
5
|
+
SURFACE_STATUS_COLORS,
|
|
6
|
+
} from '../constants/surfaceColor';
|
|
7
|
+
|
|
8
|
+
export type SurfacePaletteColor = (typeof SURFACE_PALETTE_COLORS)[number];
|
|
9
|
+
export type SurfaceStatusColor = (typeof SURFACE_STATUS_COLORS)[number];
|
|
10
|
+
export type SurfaceColor = (typeof SURFACE_COLORS)[number];
|
|
11
|
+
export type SurfaceEmphasis = (typeof SURFACE_EMPHASES)[number];
|
package/src/types/switch.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
|
|
3
3
|
import type { ControlSize } from '../internal/resolvers/resolveControlSize';
|
|
4
|
-
import type { SurfaceColor } from '../surfaceColor';
|
|
5
4
|
import type { PressableProps } from './pressable';
|
|
5
|
+
import type { SurfaceColor } from './surfaceColor';
|
|
6
6
|
|
|
7
7
|
export interface SwitchProps extends Omit<
|
|
8
8
|
PressableProps,
|
package/src/types/tabs.ts
CHANGED
package/src/types/text-input.ts
CHANGED
|
@@ -5,8 +5,8 @@ import type {
|
|
|
5
5
|
TextStyle,
|
|
6
6
|
} from 'react-native';
|
|
7
7
|
|
|
8
|
-
import type { InteractionPolicy } from '../interactionPolicy';
|
|
9
8
|
import type { ControlSize } from '../internal/resolvers/resolveControlSize';
|
|
9
|
+
import type { InteractionPolicy } from './interactionPolicy';
|
|
10
10
|
|
|
11
11
|
export interface TextInputProps extends Omit<
|
|
12
12
|
ReactNativeTextInputProps,
|
|
@@ -9,19 +9,7 @@ import type {
|
|
|
9
9
|
ThemeColorMode,
|
|
10
10
|
} from '@ankhorage/color-theory';
|
|
11
11
|
import type { ThemeConfig as ContractsThemeConfig } from '@ankhorage/contracts';
|
|
12
|
-
|
|
13
|
-
export type {
|
|
14
|
-
ColorHarmony,
|
|
15
|
-
ColorSwatch,
|
|
16
|
-
ColorSwatchStep,
|
|
17
|
-
GeneratedColorRole,
|
|
18
|
-
GeneratedThemeModeColors,
|
|
19
|
-
GeneratedThemeSwatches,
|
|
20
|
-
HexColor,
|
|
21
|
-
SemanticColorReferenceMap,
|
|
22
|
-
SemanticColorToken,
|
|
23
|
-
} from '@ankhorage/color-theory';
|
|
24
|
-
export type { ThemeConfig, ThemeModeConfig } from '@ankhorage/contracts';
|
|
12
|
+
import type { ReactNode } from 'react';
|
|
25
13
|
|
|
26
14
|
export interface NeutralSemantics {
|
|
27
15
|
bg: string;
|
|
@@ -242,3 +230,24 @@ export interface ThemeTokens {
|
|
|
242
230
|
export interface SurfaceTheme extends ThemeTokens {
|
|
243
231
|
config: ContractsThemeConfig;
|
|
244
232
|
}
|
|
233
|
+
|
|
234
|
+
export type ThemeMode = 'light' | 'dark';
|
|
235
|
+
|
|
236
|
+
export interface ThemeRuntime {
|
|
237
|
+
theme: SurfaceTheme;
|
|
238
|
+
mode: ThemeMode;
|
|
239
|
+
setThemeConfig: (config: Partial<ContractsThemeConfig>) => void;
|
|
240
|
+
setMode: (mode: ThemeMode) => void;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export interface ThemeProviderProps {
|
|
244
|
+
children: ReactNode;
|
|
245
|
+
initialConfig?: Partial<ContractsThemeConfig>;
|
|
246
|
+
initialMode?: ThemeMode;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export interface ThemeScopeProps {
|
|
250
|
+
children: ReactNode;
|
|
251
|
+
themeConfig?: Partial<ContractsThemeConfig>;
|
|
252
|
+
mode?: ThemeMode;
|
|
253
|
+
}
|
package/src/types/toast.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
2
|
|
|
3
|
-
import type { InteractionPolicy } from '
|
|
4
|
-
import type { SurfaceStatusColor } from '
|
|
3
|
+
import type { InteractionPolicy } from './interactionPolicy';
|
|
4
|
+
import type { SurfaceStatusColor } from './surfaceColor';
|
|
5
5
|
|
|
6
6
|
export type ToastStatus = 'default' | SurfaceStatusColor;
|
|
7
7
|
|
package/src/types/tooltip.ts
CHANGED
package/src/types/typography.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type React from 'react';
|
|
|
2
2
|
import type { TextStyle } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import type { TextVariant, TextWeight } from '../internal/resolvers/resolveTextStyles';
|
|
5
|
-
import type { SurfaceColor, SurfaceEmphasis } from '
|
|
5
|
+
import type { SurfaceColor, SurfaceEmphasis } from './surfaceColor';
|
|
6
6
|
|
|
7
7
|
export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
|
|
8
8
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { resolveToken } from '../theme/resolveToken';
|
|
2
|
-
import type { SurfaceTheme } from '../theme/types';
|
|
1
|
+
import { resolveToken } from '../features/theme/utils/resolveToken';
|
|
3
2
|
import type { SpaceValue } from '../types/layout';
|
|
3
|
+
import type { SurfaceTheme } from '../types/theme';
|
|
4
4
|
|
|
5
5
|
/*** Resolves a numeric spacing value or a Surface spacing token. */
|
|
6
6
|
export function resolveSpacing(
|
|
@@ -2,9 +2,9 @@ import type { ViewStyle } from 'react-native';
|
|
|
2
2
|
|
|
3
3
|
import { resolveResponsive } from '../core/responsive/resolve';
|
|
4
4
|
import type { Breakpoint } from '../core/responsive/types';
|
|
5
|
-
import { resolveToken } from '../theme/resolveToken';
|
|
6
|
-
import type { SurfaceTheme } from '../theme/types';
|
|
5
|
+
import { resolveToken } from '../features/theme/utils/resolveToken';
|
|
7
6
|
import type { ColorValue, ViewStyleProps } from '../types/layout';
|
|
7
|
+
import type { SurfaceTheme } from '../types/theme';
|
|
8
8
|
import { resolveSpacing } from './resolveSpacing';
|
|
9
9
|
|
|
10
10
|
/*** Resolves responsive Surface View style props into one React Native view style. */
|
|
@@ -12,7 +12,7 @@ const { Grid, ScrollView, View } = await import('./features/layout/public');
|
|
|
12
12
|
const { KeyboardAvoidingView } = await import('./features/keyboard-avoiding-view/public');
|
|
13
13
|
const { Show } = await import('./core/responsive/Show');
|
|
14
14
|
const { OverlayProvider } = await import('./internal/overlay/OverlayProvider');
|
|
15
|
-
const { ThemeProvider } = await import('./theme/
|
|
15
|
+
const { ThemeProvider } = await import('./features/theme/runtime');
|
|
16
16
|
|
|
17
17
|
function ResponsiveAcceptanceTree() {
|
|
18
18
|
return (
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
/**
|
|
3
|
-
* Runtime font state consumed by theme and text primitives.
|
|
4
|
-
*/
|
|
5
|
-
export interface FontRuntime {
|
|
6
|
-
/** true when the active font assets have finished loading */
|
|
7
|
-
fontsLoaded: boolean;
|
|
8
|
-
/** The currently active font family id */
|
|
9
|
-
activeFontId: string | null;
|
|
10
|
-
/** Update the active font family id */
|
|
11
|
-
setActiveFontId: (id: string) => void;
|
|
12
|
-
}
|
|
13
|
-
export declare function FontProvider(props: {
|
|
14
|
-
fontsLoaded: boolean;
|
|
15
|
-
activeFontId?: string | null;
|
|
16
|
-
children: React.ReactNode;
|
|
17
|
-
onActiveFontChange?: (id: string) => void;
|
|
18
|
-
}): React.JSX.Element;
|
|
19
|
-
export declare function useFontContext(): FontRuntime;
|
|
20
|
-
//# sourceMappingURL=FontContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FontContext.d.ts","sourceRoot":"","sources":["../../src/context/FontContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgD,MAAM,OAAO,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6DAA6D;IAC7D,WAAW,EAAE,OAAO,CAAC;IAErB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,uCAAuC;IACvC,eAAe,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAYD,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,qBAuBA;AAED,wBAAgB,cAAc,IAAI,WAAW,CAE5C"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React, { createContext, use, useMemo, useState } from 'react';
|
|
2
|
-
const fallbackRuntime = {
|
|
3
|
-
fontsLoaded: true,
|
|
4
|
-
activeFontId: null,
|
|
5
|
-
setActiveFontId: () => {
|
|
6
|
-
/* fallback */
|
|
7
|
-
},
|
|
8
|
-
};
|
|
9
|
-
const FontContext = createContext(fallbackRuntime);
|
|
10
|
-
export function FontProvider(props) {
|
|
11
|
-
const { fontsLoaded, activeFontId: initialActiveFontId = null, children, onActiveFontChange, } = props;
|
|
12
|
-
const [activeFontId, setActiveFontIdState] = useState(initialActiveFontId);
|
|
13
|
-
const value = useMemo(() => ({
|
|
14
|
-
fontsLoaded,
|
|
15
|
-
activeFontId,
|
|
16
|
-
setActiveFontId: (id) => {
|
|
17
|
-
setActiveFontIdState(id);
|
|
18
|
-
if (onActiveFontChange)
|
|
19
|
-
onActiveFontChange(id);
|
|
20
|
-
},
|
|
21
|
-
}), [fontsLoaded, activeFontId, onActiveFontChange]);
|
|
22
|
-
return <FontContext value={value}>{children}</FontContext>;
|
|
23
|
-
}
|
|
24
|
-
export function useFontContext() {
|
|
25
|
-
return use(FontContext);
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=FontContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FontContext.js","sourceRoot":"","sources":["../../src/context/FontContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAgBrE,MAAM,eAAe,GAAgB;IACnC,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,eAAe,EAAE,GAAG,EAAE;QACpB,cAAc;IAChB,CAAC;CACF,CAAC;AAEF,MAAM,WAAW,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAEnD,MAAM,UAAU,YAAY,CAAC,KAK5B;IACC,MAAM,EACJ,WAAW,EACX,YAAY,EAAE,mBAAmB,GAAG,IAAI,EACxC,QAAQ,EACR,kBAAkB,GACnB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,YAAY,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAE3E,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,YAAY;QACZ,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE;YAC9B,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzB,IAAI,kBAAkB;gBAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;KACF,CAAC,EACF,CAAC,WAAW,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAChD,CAAC;IAEF,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC;AAC1B,CAAC","sourcesContent":["import React, { createContext, use, useMemo, useState } from 'react';\n\n/**\n * Runtime font state consumed by theme and text primitives.\n */\nexport interface FontRuntime {\n /** true when the active font assets have finished loading */\n fontsLoaded: boolean;\n\n /** The currently active font family id */\n activeFontId: string | null;\n\n /** Update the active font family id */\n setActiveFontId: (id: string) => void;\n}\n\nconst fallbackRuntime: FontRuntime = {\n fontsLoaded: true,\n activeFontId: null,\n setActiveFontId: () => {\n /* fallback */\n },\n};\n\nconst FontContext = createContext(fallbackRuntime);\n\nexport function FontProvider(props: {\n fontsLoaded: boolean;\n activeFontId?: string | null;\n children: React.ReactNode;\n onActiveFontChange?: (id: string) => void;\n}) {\n const {\n fontsLoaded,\n activeFontId: initialActiveFontId = null,\n children,\n onActiveFontChange,\n } = props;\n\n const [activeFontId, setActiveFontIdState] = useState(initialActiveFontId);\n\n const value = useMemo<FontRuntime>(\n () => ({\n fontsLoaded,\n activeFontId,\n setActiveFontId: (id: string) => {\n setActiveFontIdState(id);\n if (onActiveFontChange) onActiveFontChange(id);\n },\n }),\n [fontsLoaded, activeFontId, onActiveFontChange],\n );\n\n return <FontContext value={value}>{children}</FontContext>;\n}\n\nexport function useFontContext(): FontRuntime {\n return use(FontContext);\n}\n"]}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
/**
|
|
3
|
-
* Minimal translation runtime surface.
|
|
4
|
-
* Do not import i18next types here; keep Surface runtime-agnostic.
|
|
5
|
-
*/
|
|
6
|
-
export interface I18nInstance {
|
|
7
|
-
changeLanguage: (lng: string) => Promise<unknown>;
|
|
8
|
-
language?: string;
|
|
9
|
-
t?: Translator;
|
|
10
|
-
}
|
|
11
|
-
export type Translator = (key: string, options?: Record<string, unknown>) => string;
|
|
12
|
-
export interface TranslationRuntime {
|
|
13
|
-
t: Translator;
|
|
14
|
-
i18n: I18nInstance | null;
|
|
15
|
-
}
|
|
16
|
-
export declare function TranslationProvider(props: {
|
|
17
|
-
t: Translator;
|
|
18
|
-
i18n?: I18nInstance | null;
|
|
19
|
-
children: React.ReactNode;
|
|
20
|
-
}): React.JSX.Element;
|
|
21
|
-
export declare function useTranslationContext(): TranslationRuntime;
|
|
22
|
-
//# sourceMappingURL=TranslationContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationContext.d.ts","sourceRoot":"","sources":["../../src/context/TranslationContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,CAAC,EAAE,UAAU,CAAC;CAChB;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,UAAU,CAAC;IACd,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;CAC3B;AASD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,CAAC,EAAE,UAAU,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qBAeA;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAE1D"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import React, { createContext, use } from 'react';
|
|
2
|
-
const fallbackRuntime = {
|
|
3
|
-
t: (key) => key,
|
|
4
|
-
i18n: null,
|
|
5
|
-
};
|
|
6
|
-
const TranslationContext = createContext(fallbackRuntime);
|
|
7
|
-
export function TranslationProvider(props) {
|
|
8
|
-
const { t, i18n, children } = props;
|
|
9
|
-
const value = {
|
|
10
|
-
t: (key, options) => {
|
|
11
|
-
if (i18n?.t) {
|
|
12
|
-
const result = i18n.t(key, options);
|
|
13
|
-
if (result !== key)
|
|
14
|
-
return result;
|
|
15
|
-
}
|
|
16
|
-
return t(key, options);
|
|
17
|
-
},
|
|
18
|
-
i18n: i18n ?? null,
|
|
19
|
-
};
|
|
20
|
-
return <TranslationContext value={value}>{children}</TranslationContext>;
|
|
21
|
-
}
|
|
22
|
-
export function useTranslationContext() {
|
|
23
|
-
return use(TranslationContext);
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=TranslationContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationContext.js","sourceRoot":"","sources":["../../src/context/TranslationContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAmBlD,MAAM,eAAe,GAAuB;IAC1C,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG;IACf,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,kBAAkB,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAE1D,MAAM,UAAU,mBAAmB,CAAC,KAInC;IACC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAEpC,MAAM,KAAK,GAAuB;QAChC,CAAC,EAAE,CAAC,GAAW,EAAE,OAAiC,EAAE,EAAE;YACpD,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBACpC,IAAI,MAAM,KAAK,GAAG;oBAAE,OAAO,MAAM,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzB,CAAC;QACD,IAAI,EAAE,IAAI,IAAI,IAAI;KACnB,CAAC;IAEF,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAC;AACjC,CAAC","sourcesContent":["import React, { createContext, use } from 'react';\n\n/**\n * Minimal translation runtime surface.\n * Do not import i18next types here; keep Surface runtime-agnostic.\n */\nexport interface I18nInstance {\n changeLanguage: (lng: string) => Promise<unknown>;\n language?: string;\n t?: Translator;\n}\n\nexport type Translator = (key: string, options?: Record<string, unknown>) => string;\n\nexport interface TranslationRuntime {\n t: Translator;\n i18n: I18nInstance | null;\n}\n\nconst fallbackRuntime: TranslationRuntime = {\n t: (key) => key,\n i18n: null,\n};\n\nconst TranslationContext = createContext(fallbackRuntime);\n\nexport function TranslationProvider(props: {\n t: Translator;\n i18n?: I18nInstance | null;\n children: React.ReactNode;\n}) {\n const { t, i18n, children } = props;\n\n const value: TranslationRuntime = {\n t: (key: string, options?: Record<string, unknown>) => {\n if (i18n?.t) {\n const result = i18n.t(key, options);\n if (result !== key) return result;\n }\n return t(key, options);\n },\n i18n: i18n ?? null,\n };\n\n return <TranslationContext value={value}>{children}</TranslationContext>;\n}\n\nexport function useTranslationContext(): TranslationRuntime {\n return use(TranslationContext);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interactionPolicy.d.ts","sourceRoot":"","sources":["../src/interactionPolicy.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interactionPolicy.js","sourceRoot":"","sources":["../src/interactionPolicy.ts"],"names":[],"mappings":"","sourcesContent":["export type InteractionPolicy = 'enabled' | 'passive';\n\nexport interface InteractionPolicyProps {\n interactionPolicy?: InteractionPolicy;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceColor.d.ts","sourceRoot":"","sources":["../src/surfaceColor.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,wEAMzB,CAAC;AAEX,eAAO,MAAM,qBAAqB,kDAAmD,CAAC;AAEtF,eAAO,MAAM,cAAc,yHAIjB,CAAC;AAEX,eAAO,MAAM,gBAAgB,oDAAqD,CAAC;AAEnF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
package/dist/surfaceColor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"surfaceColor.js","sourceRoot":"","sources":["../src/surfaceColor.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS;IACT,WAAW;IACX,UAAU;IACV,YAAY;IACZ,SAAS;CACD,CAAC;AAEX,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAEtF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,sBAAsB;IACzB,GAAG,qBAAqB;IACxB,QAAQ;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC","sourcesContent":["export const SURFACE_PALETTE_COLORS = [\n 'primary',\n 'secondary',\n 'tertiary',\n 'quaternary',\n 'neutral',\n] as const;\n\nexport const SURFACE_STATUS_COLORS = ['success', 'warning', 'error', 'info'] as const;\n\nexport const SURFACE_COLORS = [\n ...SURFACE_PALETTE_COLORS,\n ...SURFACE_STATUS_COLORS,\n 'danger',\n] as const;\n\nexport const SURFACE_EMPHASES = ['default', 'muted', 'subtle', 'inverse'] as const;\n\nexport type SurfacePaletteColor = (typeof SURFACE_PALETTE_COLORS)[number];\nexport type SurfaceStatusColor = (typeof SURFACE_STATUS_COLORS)[number];\nexport type SurfaceColor = (typeof SURFACE_COLORS)[number];\nexport type SurfaceEmphasis = (typeof SURFACE_EMPHASES)[number];\n"]}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { SurfaceTheme, ThemeConfig } from './types';
|
|
3
|
-
export declare const ThemeContext: React.Context<{
|
|
4
|
-
theme: SurfaceTheme;
|
|
5
|
-
mode: "light" | "dark";
|
|
6
|
-
setThemeConfig: (config: Partial<ThemeConfig>) => void;
|
|
7
|
-
setMode: (mode: "light" | "dark") => void;
|
|
8
|
-
_hasProvider?: boolean;
|
|
9
|
-
}>;
|
|
10
|
-
export declare const ThemeProvider: ({ children, initialConfig, initialMode, }: {
|
|
11
|
-
children: React.ReactNode;
|
|
12
|
-
initialConfig?: Partial<ThemeConfig>;
|
|
13
|
-
initialMode?: "light" | "dark";
|
|
14
|
-
}) => React.JSX.Element;
|
|
15
|
-
export declare const useTheme: () => {
|
|
16
|
-
theme: SurfaceTheme;
|
|
17
|
-
mode: "light" | "dark";
|
|
18
|
-
setThemeConfig: (config: Partial<ThemeConfig>) => void;
|
|
19
|
-
setMode: (mode: "light" | "dark") => void;
|
|
20
|
-
_hasProvider?: boolean;
|
|
21
|
-
};
|
|
22
|
-
export declare const useThemeConfig: () => (config: Partial<ThemeConfig>) => void;
|
|
23
|
-
export declare const useThemeMode: () => {
|
|
24
|
-
mode: "light" | "dark";
|
|
25
|
-
setMode: (mode: "light" | "dark") => void;
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=ThemeContext.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeContext.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAQ3D,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIzD,eAAO,MAAM,YAAY;WAChB,YAAY;UACb,OAAO,GAAG,MAAM;oBACN,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI;aAC7C,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI;mBAC1B,OAAO;EAWtB,CAAC;AAEH,eAAO,MAAM,aAAa,GAAI,2CAI3B;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAChC,sBAyCA,CAAC;AAEF,eAAO,MAAM,QAAQ;WApEZ,YAAY;UACb,OAAO,GAAG,MAAM;oBACN,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI;aAC7C,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,KAAK,IAAI;mBAC1B,OAAO;CAkEvB,CAAC;AAEF,eAAO,MAAM,cAAc,iBAtEA,OAAO,CAAC,WAAW,CAAC,KAAK,IAyEnD,CAAC;AAEF,eAAO,MAAM,YAAY;;oBA1EP,OAAO,GAAG,MAAM,KAAK,IAAI;CA6E1C,CAAC"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import React, { createContext, use, useMemo } from 'react';
|
|
2
|
-
import { useFontContext } from '../context/FontContext';
|
|
3
|
-
import { ResponsiveProvider } from '../core/responsive/ResponsiveProvider';
|
|
4
|
-
import { OverlayProvider } from '../internal/overlay/OverlayProvider';
|
|
5
|
-
import { isDeepEqual } from '../utils/deepEqual';
|
|
6
|
-
import { deepMerge } from '../utils/deepMerge';
|
|
7
|
-
import { createTheme } from './createTheme';
|
|
8
|
-
const defaultTheme = createTheme();
|
|
9
|
-
export const ThemeContext = createContext({
|
|
10
|
-
theme: defaultTheme,
|
|
11
|
-
mode: 'light',
|
|
12
|
-
setThemeConfig: () => {
|
|
13
|
-
/* fallback */
|
|
14
|
-
},
|
|
15
|
-
setMode: () => {
|
|
16
|
-
/* fallback */
|
|
17
|
-
},
|
|
18
|
-
_hasProvider: false,
|
|
19
|
-
});
|
|
20
|
-
export const ThemeProvider = ({ children, initialConfig, initialMode = 'light', }) => {
|
|
21
|
-
const [config, setConfig] = React.useState(() => initialConfig ? deepMerge(defaultTheme.config, initialConfig) : defaultTheme.config);
|
|
22
|
-
const [mode, setMode] = React.useState(initialMode);
|
|
23
|
-
const { activeFontId } = useFontContext();
|
|
24
|
-
React.useEffect(() => {
|
|
25
|
-
if (initialConfig) {
|
|
26
|
-
setConfig((prev) => {
|
|
27
|
-
const merged = deepMerge(prev, initialConfig);
|
|
28
|
-
if (isDeepEqual(prev, merged))
|
|
29
|
-
return prev;
|
|
30
|
-
return merged;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}, [initialConfig]);
|
|
34
|
-
const theme = useMemo(() => createTheme(config, mode, activeFontId), [config, mode, activeFontId]);
|
|
35
|
-
const value = useMemo(() => ({
|
|
36
|
-
theme,
|
|
37
|
-
mode,
|
|
38
|
-
setThemeConfig: (newConfig) => setConfig((prev) => deepMerge(prev, newConfig)),
|
|
39
|
-
setMode,
|
|
40
|
-
_hasProvider: true,
|
|
41
|
-
}), [theme, mode]);
|
|
42
|
-
return (<ResponsiveProvider>
|
|
43
|
-
<ThemeContext value={value}>
|
|
44
|
-
<OverlayProvider>{children}</OverlayProvider>
|
|
45
|
-
</ThemeContext>
|
|
46
|
-
</ResponsiveProvider>);
|
|
47
|
-
};
|
|
48
|
-
export const useTheme = () => {
|
|
49
|
-
return use(ThemeContext);
|
|
50
|
-
};
|
|
51
|
-
export const useThemeConfig = () => {
|
|
52
|
-
const { setThemeConfig } = useTheme();
|
|
53
|
-
return setThemeConfig;
|
|
54
|
-
};
|
|
55
|
-
export const useThemeMode = () => {
|
|
56
|
-
const { mode, setMode } = useTheme();
|
|
57
|
-
return { mode, setMode };
|
|
58
|
-
};
|
|
59
|
-
//# sourceMappingURL=ThemeContext.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeContext.js","sourceRoot":"","sources":["../../src/theme/ThemeContext.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, use, useMemo } from 'react';\n\nimport { useFontContext } from '../context/FontContext';\nimport { ResponsiveProvider } from '../core/responsive/ResponsiveProvider';\nimport { OverlayProvider } from '../internal/overlay/OverlayProvider';\nimport { isDeepEqual } from '../utils/deepEqual';\nimport { deepMerge } from '../utils/deepMerge';\nimport { createTheme } from './createTheme';\nimport type { SurfaceTheme, ThemeConfig } from './types';\n\nconst defaultTheme = createTheme();\n\nexport const ThemeContext = createContext<{\n theme: SurfaceTheme;\n mode: 'light' | 'dark';\n setThemeConfig: (config: Partial<ThemeConfig>) => void;\n setMode: (mode: 'light' | 'dark') => void;\n _hasProvider?: boolean;\n}>({\n theme: defaultTheme,\n mode: 'light',\n setThemeConfig: () => {\n /* fallback */\n },\n setMode: () => {\n /* fallback */\n },\n _hasProvider: false,\n});\n\nexport const ThemeProvider = ({\n children,\n initialConfig,\n initialMode = 'light',\n}: {\n children: React.ReactNode;\n initialConfig?: Partial<ThemeConfig>;\n initialMode?: 'light' | 'dark';\n}) => {\n const [config, setConfig] = React.useState<ThemeConfig>(() =>\n initialConfig ? deepMerge(defaultTheme.config, initialConfig) : defaultTheme.config,\n );\n const [mode, setMode] = React.useState<'light' | 'dark'>(initialMode);\n const { activeFontId } = useFontContext();\n\n React.useEffect(() => {\n if (initialConfig) {\n setConfig((prev) => {\n const merged = deepMerge(prev, initialConfig);\n if (isDeepEqual(prev, merged)) return prev;\n return merged;\n });\n }\n }, [initialConfig]);\n\n const theme = useMemo(\n () => createTheme(config, mode, activeFontId),\n [config, mode, activeFontId],\n );\n\n const value = useMemo(\n () => ({\n theme,\n mode,\n setThemeConfig: (newConfig: Partial<ThemeConfig>) =>\n setConfig((prev) => deepMerge(prev, newConfig)),\n setMode,\n _hasProvider: true,\n }),\n [theme, mode],\n );\n\n return (\n <ResponsiveProvider>\n <ThemeContext value={value}>\n <OverlayProvider>{children}</OverlayProvider>\n </ThemeContext>\n </ResponsiveProvider>\n );\n};\n\nexport const useTheme = () => {\n return use(ThemeContext);\n};\n\nexport const useThemeConfig = () => {\n const { setThemeConfig } = useTheme();\n return setThemeConfig;\n};\n\nexport const useThemeMode = () => {\n const { mode, setMode } = useTheme();\n return { mode, setMode };\n};\n"]}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { GeneratedThemeModeColors, GeneratedThemeSwatches, HexColor, SemanticColorReferenceMap, SemanticColorToken, ThemeColorMode } from '@ankhorage/color-theory';
|
|
2
|
-
import type { ThemeConfig } from '@ankhorage/contracts';
|
|
3
|
-
import type { SurfaceColorDiagnostics, ThemeSemantics, ThemeTokens } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* Surface semantic resolver: maps color-theory SemanticColorToken references
|
|
6
|
-
* to hex values from the generated swatches.
|
|
7
|
-
*/
|
|
8
|
-
export type SurfaceSemanticColors = Record<SemanticColorToken, HexColor>;
|
|
9
|
-
export declare function resolveSemanticColors(generated: GeneratedThemeModeColors, references: SemanticColorReferenceMap): SurfaceSemanticColors;
|
|
10
|
-
export declare function generatePalette(config: ThemeConfig, mode?: ThemeColorMode): {
|
|
11
|
-
colors: ThemeTokens['colors'];
|
|
12
|
-
swatches: GeneratedThemeSwatches;
|
|
13
|
-
semantics: ThemeSemantics;
|
|
14
|
-
colorDiagnostics: SurfaceColorDiagnostics;
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=colorEngine.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorEngine.d.ts","sourceRoot":"","sources":["../../src/theme/colorEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAEzE,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,wBAAwB,EACnC,UAAU,EAAE,yBAAyB,GACpC,qBAAqB,CAUvB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE,cAAwB,GAC7B;IACD,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C,CA0CA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorEngine.js","sourceRoot":"","sources":["../../src/theme/colorEngine.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n GeneratedThemeModeColors,\n GeneratedThemeSwatches,\n HexColor,\n SemanticColorReferenceMap,\n SemanticColorToken,\n ThemeColorMode,\n} from '@ankhorage/color-theory';\nimport {\n DARK_SEMANTIC_COLOR_REFERENCES,\n generateThemeModeColors,\n LIGHT_SEMANTIC_COLOR_REFERENCES,\n parseHexColorOrThrow,\n} from '@ankhorage/color-theory';\nimport type { ThemeConfig } from '@ankhorage/contracts';\n\nimport { resolveSurfaceSemanticModel } from './resolveSurfaceSemanticModel';\nimport type { SurfaceColorDiagnostics, ThemeSemantics, ThemeTokens } from './types';\n\n/**\n * Surface semantic resolver: maps color-theory SemanticColorToken references\n * to hex values from the generated swatches.\n */\nexport type SurfaceSemanticColors = Record<SemanticColorToken, HexColor>;\n\nexport function resolveSemanticColors(\n generated: GeneratedThemeModeColors,\n references: SemanticColorReferenceMap,\n): SurfaceSemanticColors {\n return Object.fromEntries(\n Object.entries(references).map(([token, ref]) => {\n const swatch = generated.swatches[ref.role];\n if (!swatch) {\n throw new Error(`Missing swatch for role '${ref.role}' (token: '${token}')`);\n }\n return [token, swatch[ref.step]];\n }),\n ) as SurfaceSemanticColors;\n}\n\nexport function generatePalette(\n config: ThemeConfig,\n mode: ThemeColorMode = 'light',\n): {\n colors: ThemeTokens['colors'];\n swatches: GeneratedThemeSwatches;\n semantics: ThemeSemantics;\n colorDiagnostics: SurfaceColorDiagnostics;\n} {\n const modeConfig = mode === 'dark' ? config.dark : config.light;\n const isDark = mode === 'dark';\n\n parseHexColorOrThrow(modeConfig.primaryColor);\n\n const generated = generateThemeModeColors(modeConfig);\n const { swatches } = generated;\n const references = isDark ? DARK_SEMANTIC_COLOR_REFERENCES : LIGHT_SEMANTIC_COLOR_REFERENCES;\n const resolved = resolveSemanticColors(generated, references);\n const { semantics, colorDiagnostics } = resolveSurfaceSemanticModel({\n generated,\n mode,\n references,\n resolved,\n });\n const { border, content, error, info, neutral, success, surface, warning } = semantics;\n\n const colors: ThemeTokens['colors'] = {\n primary: swatches.primary[500],\n secondary: (swatches.secondary ?? swatches.primary)[500],\n accent: (swatches.tertiary ?? swatches.primary)[500],\n highlight: (swatches.quaternary ?? swatches.primary)[500],\n tertiary: (swatches.tertiary ?? swatches.primary)[500],\n quaternary: (swatches.quaternary ?? swatches.primary)[500],\n background: neutral.bg,\n surface: surface.default,\n text: content.default,\n textSecondary: content.muted,\n border: border.default,\n error: error.base,\n success: success.base,\n warning: warning.base,\n info: info.base,\n };\n\n return {\n colors,\n swatches,\n semantics,\n colorDiagnostics,\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSurfaceColorDiagnosticCollector.d.ts","sourceRoot":"","sources":["../../src/theme/createSurfaceColorDiagnosticCollector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAOjC,OAAO,KAAK,EAAE,+BAA+B,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAE1F,0FAA0F;AAC1F,wBAAgB,qCAAqC,oCAEpD;AAED,cAAM,+BAA+B;IACnC,QAAQ,CAAC,UAAU,EAAE,+BAA+B,EAAE,CAAM;IAC5D,QAAQ,CAAC,SAAS,EAAE,yBAAyB,EAAE,CAAM;IAErD,QAAQ,CAAC,iBAAiB,GACxB,IAAI,MAAM,EACV,YAAY,QAAQ,EACpB,YAAY,QAAQ,EACpB,iBAAiB,MAAM,KACtB,QAAQ,CAWT;IAEF,QAAQ,CAAC,cAAc,GACrB,IAAI,MAAM,EACV,YAAY,QAAQ,EACpB,YAAY,QAAQ,EACpB,iBAAiB,MAAM,KACtB,yBAAyB,CAU1B;IAEF,QAAQ,CAAC,WAAW,GAClB,IAAI,MAAM,EACV,QAAQ,WAAW,EACnB,QAAQ,oBAAoB,EAC5B,UAAU,SAAS,oBAAoB,EAAE,EACzC,WAAW,oBAAoB,KAC9B,QAAQ,CAOT;IAEF,QAAQ,CAAC,gBAAgB,GACvB,IAAI,MAAM,EACV,YAAY,QAAQ,EACpB,iBAAiB,MAAM,KACtB,QAAQ,CAWT;CACH"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSurfaceColorDiagnosticCollector.js","sourceRoot":"","sources":["../../src/theme/createSurfaceColorDiagnosticCollector.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAIjC,0FAA0F;AAC1F,MAAM,UAAU,qCAAqC;IACnD,OAAO,IAAI,+BAA+B,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,+BAA+B;IAC1B,UAAU,GAAsC,EAAE,CAAC;IACnD,SAAS,GAAgC,EAAE,CAAC;IAE5C,iBAAiB,GAAG,CAC3B,EAAU,EACV,UAAoB,EACpB,UAAoB,EACpB,eAAuB,EACb,EAAE;QACZ,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,EAAE;YACF,UAAU;YACV,UAAU;YACV,QAAQ;YACR,eAAe;YACf,MAAM,EAAE,QAAQ,IAAI,eAAe;SACpC,CAAC,CAAC;QACH,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;IAEO,cAAc,GAAG,CACxB,EAAU,EACV,UAAoB,EACpB,UAAoB,EACpB,eAAuB,EACI,EAAE;QAC7B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1D,OAAO;YACL,EAAE;YACF,UAAU;YACV,UAAU;YACV,QAAQ;YACR,eAAe;YACf,MAAM,EAAE,QAAQ,IAAI,eAAe;SACpC,CAAC;IACJ,CAAC,CAAC;IAEO,WAAW,GAAG,CACrB,EAAU,EACV,MAAmB,EACnB,MAA4B,EAC5B,QAAyC,EACzC,SAA+B,EACrB,EAAE;QACZ,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,gDAAgD,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;IAC7B,CAAC,CAAC;IAEO,gBAAgB,GAAG,CAC1B,EAAU,EACV,UAAoB,EACpB,eAAuB,EACb,EAAE;QACZ,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAClB,EAAE;YACF,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,UAAU;YACV,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,eAAe;YACf,MAAM,EAAE,QAAQ,CAAC,QAAQ,IAAI,eAAe;SAC7C,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC,CAAC;CACH","sourcesContent":["import type {\n ColorContrastContext,\n ColorSelectionTarget,\n ColorSwatch,\n ColorSwatchTiePolicy,\n HexColor,\n} from '@ankhorage/color-theory';\nimport {\n getContrastRatio,\n getReadableForeground,\n selectColorSwatchStep,\n} from '@ankhorage/color-theory';\n\nimport type { SurfaceColorSelectionDiagnostic, SurfaceContrastDiagnostic } from './types';\n\n/** Collect deterministic Color Theory evidence while Surface resolves semantic colors. */\nexport function createSurfaceColorDiagnosticCollector() {\n return new SurfaceColorDiagnosticCollector();\n}\n\nclass SurfaceColorDiagnosticCollector {\n readonly selections: SurfaceColorSelectionDiagnostic[] = [];\n readonly contrasts: SurfaceContrastDiagnostic[] = [];\n\n readonly measureForeground = (\n id: string,\n foreground: HexColor,\n background: HexColor,\n minimumContrast: number,\n ): HexColor => {\n const contrast = getContrastRatio(foreground, background);\n this.contrasts.push({\n id,\n foreground,\n background,\n contrast,\n minimumContrast,\n passes: contrast >= minimumContrast,\n });\n return foreground;\n };\n\n readonly measureSurface = (\n id: string,\n foreground: HexColor,\n background: HexColor,\n minimumContrast: number,\n ): SurfaceContrastDiagnostic => {\n const contrast = getContrastRatio(foreground, background);\n return {\n id,\n foreground,\n background,\n contrast,\n minimumContrast,\n passes: contrast >= minimumContrast,\n };\n };\n\n readonly selectColor = (\n id: string,\n swatch: ColorSwatch,\n target: ColorSelectionTarget,\n contexts: readonly ColorContrastContext[],\n tiePolicy: ColorSwatchTiePolicy,\n ): HexColor => {\n const result = selectColorSwatchStep(swatch, target, contexts, tiePolicy);\n this.selections.push({ id, result });\n if (!result.selected) {\n throw new Error(`[surface] No '${id}' swatch step satisfies the required contrast.`);\n }\n return result.selected.hex;\n };\n\n readonly selectForeground = (\n id: string,\n background: HexColor,\n minimumContrast: number,\n ): HexColor => {\n const selected = getReadableForeground(background);\n this.contrasts.push({\n id,\n foreground: selected.foreground,\n background,\n contrast: selected.contrast,\n minimumContrast,\n passes: selected.contrast >= minimumContrast,\n });\n return selected.foreground;\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSurfaceSemanticPolicy.d.ts","sourceRoot":"","sources":["../../src/theme/createSurfaceSemanticPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,oBAAoB,EACpB,QAAQ,EACR,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,KAAK,sBAAsB,GAAG,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAEnE,UAAU,2BAA2B;IACnC,iBAAiB,EAAE,CACjB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,MAAM,KACpB,QAAQ,CAAC;IACd,cAAc,EAAE,CACd,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,QAAQ,EACpB,UAAU,EAAE,QAAQ,EACpB,eAAe,EAAE,MAAM,KACpB,yBAAyB,CAAC;CAChC;AAED,uFAAuF;AACvF,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,2BAA2B,yBAG1C;AAED,cAAM,qBAAqB;IAMvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAP/B,QAAQ,CAAC,uBAAuB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClE,QAAQ,CAAC,mBAAmB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC9D,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;gBAGtB,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,2BAA2B;IAO5D,YAAY,CAAC,aAAa,EAAE,WAAW,GAAG,gBAAgB;IAkB1D,YAAY,CAAC,OAAO,EAAE,QAAQ,GAAG,gBAAgB;IAajD,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,gBAAgB,GAAG,IAAI;IA4C1E,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,GAAG,yBAAyB,EAAE;IAQhF,aAAa,IAAI,oBAAoB;IAIrC,UAAU,IAAI,oBAAoB;IAIlC,mBAAmB,IAAI,oBAAoB;IAI3C,UAAU,IAAI,oBAAoB;IAIlC,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,cAAc;CAQvB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createSurfaceSemanticPolicy.js","sourceRoot":"","sources":["../../src/theme/createSurfaceSemanticPolicy.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n ColorContrastContext,\n ColorSelectionTarget,\n ColorSwatch,\n ColorSwatchTiePolicy,\n HexColor,\n SemanticColorToken,\n} from '@ankhorage/color-theory';\nimport { parseHexColorOrThrow } from '@ankhorage/color-theory';\n\nimport { SURFACE_COLOR_POLICY } from './surfaceColorPolicy';\nimport type {\n ContentSemantics,\n NeutralSemantics,\n SurfaceContrastDiagnostic,\n SurfaceSemantics,\n} from './types';\n\ntype ResolvedSemanticColors = Record<SemanticColorToken, HexColor>;\n\ninterface SurfaceSemanticMeasurements {\n measureForeground: (\n id: string,\n foreground: HexColor,\n background: HexColor,\n minimumContrast: number,\n ) => HexColor;\n measureSurface: (\n id: string,\n foreground: HexColor,\n background: HexColor,\n minimumContrast: number,\n ) => SurfaceContrastDiagnostic;\n}\n\n/** Create the canonical Surface policy for selecting and measuring semantic colors. */\nexport function createSurfaceSemanticPolicy(\n resolved: ResolvedSemanticColors,\n isDark: boolean,\n measurements: SurfaceSemanticMeasurements,\n) {\n return new SurfaceSemanticPolicy(resolved, isDark, measurements);\n}\n\nclass SurfaceSemanticPolicy {\n readonly adjacentSurfaceContexts: readonly ColorContrastContext[];\n readonly textSurfaceContexts: readonly ColorContrastContext[];\n readonly tiePolicy: ColorSwatchTiePolicy;\n\n constructor(\n private readonly resolved: ResolvedSemanticColors,\n private readonly isDark: boolean,\n private readonly measurements: SurfaceSemanticMeasurements,\n ) {\n this.adjacentSurfaceContexts = this.createSurfaceContexts(SURFACE_COLOR_POLICY.uiContrast);\n this.textSurfaceContexts = this.createSurfaceContexts(SURFACE_COLOR_POLICY.textContrast);\n this.tiePolicy = isDark ? 'lower-step' : 'higher-step';\n }\n\n buildNeutral(neutralSwatch: ColorSwatch): NeutralSemantics {\n return {\n bg: this.resolved.background,\n bgSubtle: this.resolved.surface,\n surface: this.resolved.surface,\n surfaceHover: this.isDark ? neutralSwatch[800] : neutralSwatch[200],\n surfaceActive: this.isDark ? neutralSwatch[700] : neutralSwatch[300],\n border: this.resolved.border,\n borderStrong: this.isDark ? neutralSwatch[600] : neutralSwatch[300],\n divider: this.resolved.divider,\n text: this.resolved.text,\n textMuted: this.resolved.textMuted,\n textSubtle: this.isDark ? neutralSwatch[300] : neutralSwatch[600],\n disabledBg: this.resolved.disabledBg,\n disabledText: this.resolved.disabledText,\n };\n }\n\n buildSurface(inverse: HexColor): SurfaceSemantics {\n return {\n default: this.resolved.surface,\n subtle: this.resolved.background,\n raised: this.resolved.surfaceRaised,\n sunken: this.resolved.background,\n overlay: this.resolved.surfaceRaised,\n scrim: '#0000008f',\n disabled: this.resolved.disabledBg,\n inverse,\n };\n }\n\n measureContent(content: ContentSemantics, surface: SurfaceSemantics): void {\n const pairs = [\n [\n 'content.default/background',\n content.default,\n surface.sunken,\n SURFACE_COLOR_POLICY.textContrast,\n ],\n [\n 'content.default/surface',\n content.default,\n surface.default,\n SURFACE_COLOR_POLICY.textContrast,\n ],\n ['content.muted/surface', content.muted, surface.default, SURFACE_COLOR_POLICY.textContrast],\n [\n 'content.subtle/surface',\n content.subtle,\n surface.default,\n SURFACE_COLOR_POLICY.textContrast,\n ],\n [\n 'content.disabled/disabled',\n content.disabled,\n surface.disabled,\n SURFACE_COLOR_POLICY.disabledContrast,\n ],\n [\n 'content.inverse/inverse',\n content.inverse,\n surface.inverse,\n SURFACE_COLOR_POLICY.textContrast,\n ],\n ] as const;\n for (const [id, foreground, background, minimumContrast] of pairs) {\n this.measurements.measureForeground(\n id,\n parseHexColorOrThrow(foreground),\n parseHexColorOrThrow(background),\n minimumContrast,\n );\n }\n }\n\n measureSurfaceSeparation(surface: SurfaceSemantics): SurfaceContrastDiagnostic[] {\n return [\n this.measureSurface('surface.default', surface.default),\n this.measureSurface('surface.raised', surface.raised),\n this.measureSurface('surface.disabled', surface.disabled),\n ];\n }\n\n neutralTarget(): ColorSelectionTarget {\n return { lightness: this.isDark ? 0.65 : 0.55, chroma: 0.02 };\n }\n\n roleTarget(): ColorSelectionTarget {\n return { lightness: this.isDark ? 0.65 : 0.5, chroma: 0.15 };\n }\n\n strongNeutralTarget(): ColorSelectionTarget {\n return { lightness: this.isDark ? 0.8 : 0.4, chroma: 0.02 };\n }\n\n textTarget(): ColorSelectionTarget {\n return { lightness: this.isDark ? 0.75 : 0.45, chroma: 0.15 };\n }\n\n private createSurfaceContexts(minimumContrast: number): readonly ColorContrastContext[] {\n return [\n { id: 'background', against: this.resolved.background, minimumContrast },\n { id: 'surface', against: this.resolved.surface, minimumContrast },\n ];\n }\n\n private measureSurface(id: string, foreground: string): SurfaceContrastDiagnostic {\n return this.measurements.measureSurface(\n id,\n parseHexColorOrThrow(foreground),\n this.resolved.background,\n SURFACE_COLOR_POLICY.surfaceSeparation,\n );\n }\n}\n"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { SurfaceTheme, ThemeConfig } from './types';
|
|
2
|
-
export { DEFAULT_TOKENS } from './defaultTokens';
|
|
3
|
-
export declare const DEFAULT_CONFIG: ThemeConfig;
|
|
4
|
-
export declare function createTheme(config?: ThemeConfig, mode?: 'light' | 'dark', activeFontId?: string | null): SurfaceTheme;
|
|
5
|
-
//# sourceMappingURL=createTheme.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createTheme.d.ts","sourceRoot":"","sources":["../../src/theme/createTheme.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAc,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAErE,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,eAAO,MAAM,cAAc,EAAE,WAK5B,CAAC;AAcF,wBAAgB,WAAW,CACzB,MAAM,GAAE,WAA4B,EACpC,IAAI,GAAE,OAAO,GAAG,MAAgB,EAChC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAC3B,YAAY,CAad"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { generatePalette } from './colorEngine';
|
|
2
|
-
import { resolveGlobalTokens } from './resolveGlobalTokens';
|
|
3
|
-
export { DEFAULT_TOKENS } from './defaultTokens';
|
|
4
|
-
export const DEFAULT_CONFIG = {
|
|
5
|
-
id: 'default',
|
|
6
|
-
name: 'Default',
|
|
7
|
-
light: { primaryColor: '#3B82F6', harmony: 'monochromatic' },
|
|
8
|
-
dark: { primaryColor: '#3B82F6', harmony: 'monochromatic' },
|
|
9
|
-
};
|
|
10
|
-
const ACTIVE_FONT_WEIGHTS = [
|
|
11
|
-
'100',
|
|
12
|
-
'200',
|
|
13
|
-
'300',
|
|
14
|
-
'400',
|
|
15
|
-
'500',
|
|
16
|
-
'600',
|
|
17
|
-
'700',
|
|
18
|
-
'800',
|
|
19
|
-
'900',
|
|
20
|
-
];
|
|
21
|
-
export function createTheme(config = DEFAULT_CONFIG, mode = 'light', activeFontId) {
|
|
22
|
-
const { colors, swatches, semantics, colorDiagnostics } = generatePalette(config, mode);
|
|
23
|
-
const theme = {
|
|
24
|
-
...resolveGlobalTokens(config.tokens),
|
|
25
|
-
colors,
|
|
26
|
-
swatches,
|
|
27
|
-
semantics,
|
|
28
|
-
colorDiagnostics,
|
|
29
|
-
config,
|
|
30
|
-
};
|
|
31
|
-
applyActiveFont(theme, activeFontId);
|
|
32
|
-
return theme;
|
|
33
|
-
}
|
|
34
|
-
function applyActiveFont(theme, activeFontId) {
|
|
35
|
-
if (!activeFontId)
|
|
36
|
-
return;
|
|
37
|
-
const familyName = toPascalCase(activeFontId);
|
|
38
|
-
for (const weight of ACTIVE_FONT_WEIGHTS) {
|
|
39
|
-
theme.typography.fonts.normal[weight] = `${familyName}_${weight}Regular`;
|
|
40
|
-
theme.typography.fonts.italic[weight] = `${familyName}_${weight}Italic`;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function toPascalCase(value) {
|
|
44
|
-
return value
|
|
45
|
-
.split(/[- ]+/)
|
|
46
|
-
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
47
|
-
.join('');
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=createTheme.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createTheme.js","sourceRoot":"","sources":["../../src/theme/createTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE;IAC5D,IAAI,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE;CAC5D,CAAC;AAEF,MAAM,mBAAmB,GAA0B;IACjD,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,SAAsB,cAAc,EACpC,OAAyB,OAAO,EAChC,YAA4B;IAE5B,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxF,MAAM,KAAK,GAAiB;QAC1B,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;QACrC,MAAM;QACN,QAAQ;QACR,SAAS;QACT,gBAAgB;QAChB,MAAM;KACP,CAAC;IAEF,eAAe,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,KAAmB,EAAE,YAAuC;IACnF,IAAI,CAAC,YAAY;QAAE,OAAO;IAE1B,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9C,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,UAAU,IAAI,MAAM,SAAS,CAAC;QACzE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,UAAU,IAAI,MAAM,QAAQ,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK;SACT,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC","sourcesContent":["import { generatePalette } from './colorEngine';\nimport { resolveGlobalTokens } from './resolveGlobalTokens';\nimport type { FontWeight, SurfaceTheme, ThemeConfig } from './types';\n\nexport { DEFAULT_TOKENS } from './defaultTokens';\n\nexport const DEFAULT_CONFIG: ThemeConfig = {\n id: 'default',\n name: 'Default',\n light: { primaryColor: '#3B82F6', harmony: 'monochromatic' },\n dark: { primaryColor: '#3B82F6', harmony: 'monochromatic' },\n};\n\nconst ACTIVE_FONT_WEIGHTS: readonly FontWeight[] = [\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n];\n\nexport function createTheme(\n config: ThemeConfig = DEFAULT_CONFIG,\n mode: 'light' | 'dark' = 'light',\n activeFontId?: string | null,\n): SurfaceTheme {\n const { colors, swatches, semantics, colorDiagnostics } = generatePalette(config, mode);\n const theme: SurfaceTheme = {\n ...resolveGlobalTokens(config.tokens),\n colors,\n swatches,\n semantics,\n colorDiagnostics,\n config,\n };\n\n applyActiveFont(theme, activeFontId);\n return theme;\n}\n\nfunction applyActiveFont(theme: SurfaceTheme, activeFontId: string | null | undefined): void {\n if (!activeFontId) return;\n\n const familyName = toPascalCase(activeFontId);\n for (const weight of ACTIVE_FONT_WEIGHTS) {\n theme.typography.fonts.normal[weight] = `${familyName}_${weight}Regular`;\n theme.typography.fonts.italic[weight] = `${familyName}_${weight}Italic`;\n }\n}\n\nfunction toPascalCase(value: string): string {\n return value\n .split(/[- ]+/)\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join('');\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTokens.d.ts","sourceRoot":"","sources":["../../src/theme/defaultTokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAgBvD,eAAO,MAAM,cAAc,EAAE,IAAI,CAC/B,WAAW,EACX,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,kBAAkB,CA0CzD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTokens.js","sourceRoot":"","sources":["../../src/theme/defaultTokens.ts"],"names":[],"mappings":"AAEA,MAAM,cAAc,GAA2C;IAC7D,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;CAClB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAGvB;IACF,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAChE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IACjD,UAAU,EAAE;QACV,QAAQ,EAAE;YACR,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAC/C,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAC/C,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;YAC/C,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;YACnD,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SACpD;QACD,KAAK,EAAE;YACL,EAAE,EAAE,EAAE;YACN,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;YACL,CAAC,EAAE,EAAE;YACL,EAAE,EAAE,EAAE;YACN,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,EAAE;YACT,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;YACN,EAAE,EAAE,EAAE;SACP;QACD,OAAO,EAAE;YACP,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,KAAK;YACjB,KAAK,EAAE,KAAK;YACZ,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,KAAK;SACb;QACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,cAAc,EAAE,EAAE;KACxE;IACD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE;CACzC,CAAC","sourcesContent":["import type { FontWeight, ThemeTokens } from './types';\n\nconst EMPTY_FONT_MAP: Record<FontWeight, string | undefined> = {\n '100': undefined,\n '200': undefined,\n '300': undefined,\n '400': undefined,\n '500': undefined,\n '600': undefined,\n '700': undefined,\n '800': undefined,\n '900': undefined,\n bold: undefined,\n normal: undefined,\n};\n\nexport const DEFAULT_TOKENS: Omit<\n ThemeTokens,\n 'colors' | 'swatches' | 'semantics' | 'colorDiagnostics'\n> = {\n spacing: { none: 0, xs: 4, s: 8, m: 16, l: 24, xl: 32, xxl: 48 },\n radii: { none: 0, s: 4, m: 8, l: 16, full: 9999 },\n typography: {\n headings: {\n 1: { size: 32, lineHeight: 40, weight: 'bold' },\n 2: { size: 24, lineHeight: 32, weight: 'bold' },\n 3: { size: 20, lineHeight: 28, weight: 'bold' },\n 4: { size: 18, lineHeight: 24, weight: 'semiBold' },\n 5: { size: 16, lineHeight: 22, weight: 'semiBold' },\n 6: { size: 14, lineHeight: 20, weight: 'semiBold' },\n },\n sizes: {\n xs: 12,\n s: 14,\n m: 16,\n l: 18,\n xl: 20,\n xxl: 24,\n '3xl': 30,\n h1: 32,\n h2: 24,\n h3: 20,\n h4: 18,\n h5: 16,\n h6: 14,\n },\n weights: {\n thin: '100',\n extraLight: '200',\n light: '300',\n regular: '400',\n medium: '500',\n semiBold: '600',\n bold: '700',\n extraBold: '800',\n black: '900',\n },\n fonts: { normal: { ...EMPTY_FONT_MAP }, italic: { ...EMPTY_FONT_MAP } },\n },\n shadows: { soft: 2, medium: 4, hard: 8 },\n};\n"]}
|
package/dist/theme/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
|