Files
lifeforge/packages/ui/package.json
melvinchia3636 032e577732 refactor(localization): extract i18n into @lifeforge/localization package
- Create new @lifeforge/localization package with client-i18n-config, I18nInitProvider, and useModuleTranslation hook
- Rename ModuleHeaderStateProvider -> ModuleMetadataProvider and move to @lifeforge/federation
- Move I18nInitProvider from apps/web to @lifeforge/localization with configurable init/fallbacks
- Add module name to ModuleMetadataProvider context for scoped translations
- Wire up @lifeforge/localization and @lifeforge/federation as dependencies in @lifeforge/ui
- Update ModuleHeader to use useModuleTranslation for scoped i18n namespaces
- Register @lifeforge/localization in shared-packages config
- Update docs vite config with federation plugin
2026-06-25 08:53:35 +08:00

107 lines
3.2 KiB
JSON

{
"name": "@lifeforge/ui",
"version": "0.25.29-1",
"description": "LifeForge UI component library",
"license": "CC-BY-NC-SA-4.0",
"author": "LifeForge (https://github.com/LifeForge-app)",
"keywords": [
"ui",
"components",
"react",
"lifeforge"
],
"sideEffects": false,
"main": "dist/index.js",
"module": "dist/index.mjs",
"types": "dist/index.d.ts",
"files": [
"dist",
"README.md"
],
"publishConfig": {
"access": "public"
},
"scripts": {
"dev": "storybook dev -p 6006",
"types": "tsgo -b",
"build": "tsgo -b && rm -rf dist && vite build",
"build-storybook": "cd ../../api && bun run build && cd ../packages/ui && storybook build"
},
"dependencies": {
"@headlessui/react": "^2.2.9",
"@iconify/collections": "^1.0.690",
"@iconify/react": "^6.0.2",
"@iconify/tools": "^4.1.4",
"@iconify/types": "^2.0.0",
"@iconify/utils": "^3.0.2",
"@lifeforge/api": "workspace:*",
"@lifeforge/federation": "workspace:*",
"@lifeforge/localization": "workspace:*",
"@million/lint": "^1.0.14",
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-select": "^2.2.6",
"@uiw/react-color": "^2.9.0",
"@vanilla-extract/recipes": "^0.5.7",
"@vanilla-extract/sprinkles": "^1.6.5",
"@vitejs/plugin-react": "^4.7.0",
"@yudiel/react-qr-scanner": "^2.3.1",
"color-sorter": "^6.2.0",
"crypto-js": "^4.2.0",
"culori": "^4.0.2",
"dom-css": "^2.1.0",
"file-type-mime": "^0.4.7",
"i18next-http-backend": "^2.7.3",
"javascript-color-gradient": "^2.5.0",
"prop-types": "^15.8.1",
"raf": "^3.4.1",
"react-currency-input-field": "^3.10.0",
"react-datepicker": "^8.7.0",
"react-dropzone": "^14.3.8",
"react-medium-image-zoom": "^5.4.0",
"react-number-format": "^5.4.5",
"react-otp-input": "^3.1.1",
"react-photo-album": "^2.4.1",
"react-tooltip": "^5.30.0",
"react-virtualized": "^9.22.6",
"rrule": "^2.8.1",
"uuid": "^11.1.0",
"react-toastify": "^11.0.5",
"zustand": "^5.0.8"
},
"peerDependencies": {
"react": "^19.2.0",
"react-dom": "^19.2.0"
},
"devDependencies": {
"@chromatic-com/storybook": "^4.1.3",
"@storybook/addon-docs": "10.1.0",
"@storybook/addon-onboarding": "10.1.0",
"@storybook/react-vite": "10.1.0",
"@types/culori": "^4.0.1",
"@types/dom-css": "^2.1.1",
"@types/javascript-color-gradient": "^2.4.2",
"@types/lodash": "^4.17.20",
"@types/raf": "^3.4.3",
"@types/react": "^19.2.0",
"@types/react-custom-scrollbars": "^4.0.13",
"@types/react-dom": "^19.2.0",
"@types/react-virtualized": "^9.22.3",
"@types/tinycolor2": "^1.4.6",
"@typescript/native-preview": "^7.0.0-dev.20251011.1",
"@vitest/browser": "^1.6.1",
"@vitest/coverage-v8": "^1.6.1",
"babel-plugin-react-compiler": "^19.1.0-rc.1-rc-af1b7da-20250421",
"eslint-plugin-react-compiler": "^19.1.0-rc.2",
"eslint-plugin-storybook": "10.1.0",
"playwright": "^1.57.0",
"storybook": "10.1.0",
"storybook-addon-deep-controls": "^0.9.5",
"tsup": "^8.5.0",
"vite": "^7.3.1",
"vite-plugin-dts": "^4.5.4",
"vite-tsconfig-paths": "^5.1.4",
"vitest": "^1.6.1"
}
}