{"_id":"@canonical/i18n-react","_rev":"17-2dea3c9cbe207cd341ec9fdf54472bb8","name":"@canonical/i18n-react","dist-tags":{"latest":"0.43.0"},"versions":{"0.29.0":{"name":"@canonical/i18n-react","version":"0.29.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.29.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"5b58b53f8ba5d1b1c75c5216cbfc2a8959be9f8f","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.29.0.tgz","fileCount":50,"integrity":"sha512-VcR/+CyuBaIHKOQP6TH1wf67kdOOQKia2pAefzRO3d2ERwWQ4W1RNh65AM91JLQboRaupVl6lPzswglzTndbsg==","signatures":[{"sig":"MEUCIQDcgyHD+/i0GhJCm2K6G2kgbicfWdfE0yzEnx2tEvh2MwIgKBkWeKMZxWqM8pZr0TLHmyt3rLEV+VpmlXQiAchfHcA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22784},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"ace65ef42cd0ce72830614b2d61687550ef0ba00","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"11.6.2","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.13.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.29.0","@canonical/webarchitect":"^0.29.0","@testing-library/jest-dom":"^6.9.1","@canonical/typescript-config-react":"^0.29.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.29.0_1783981931993_0.6850754591486699","host":"s3://npm-registry-packages-npm-production"}},"0.30.0":{"name":"@canonical/i18n-react","version":"0.30.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.30.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"a8cc4d9de536d54d1dbd7f322971809f2b7d2be4","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.30.0.tgz","fileCount":51,"integrity":"sha512-TC7D0oxzaOfY9LJS0cwfJiSCBrDKEVJbosT/0n82fnRgutaIHc9BLyFf7FM4dzxGs3G+/j1qbs2YsY1ieEWe2w==","signatures":[{"sig":"MEQCIGwMw1jdWrXviPnpAPOJD8Vv+/rxxmN6ZvKHCo77nX2lAiBPxhfULeov0Us77A7HumfjeZ4sW8op0tNz9KatLeRYzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.30.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30519},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"40fe86ac955473536ac14f074812a9821f5b65c0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.30.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@testing-library/jest-dom":"^6.9.1","@canonical/typescript-config-react":"^0.27.1-experimental.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.30.0_1783988079197_0.33812844170720613","host":"s3://npm-registry-packages-npm-production"}},"0.31.0":{"name":"@canonical/i18n-react","version":"0.31.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.31.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"bb6a3a8b3471755a6a3924dc52bface096d988bb","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.31.0.tgz","fileCount":51,"integrity":"sha512-6D4L4UzqWNFdwFmp0mPpuwSs+zkwDWYKYcYHdkrIDm/R0hO6e1QlZeKyqfb9uu1ppU8nfe+zkBwxcu2pNGiwUw==","signatures":[{"sig":"MEUCIQDUGInrD9ADhheigCdu04Q5kSLaRL6Jy3u5bZD42npS5QIgQ/DlVwykSdSWhh4O0lyRh5kBLIyi8CrTILJglDfLcig=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.31.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30504},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"d4a67ebe42e62b8cf3de77f42f537309ca88d672","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.31.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@testing-library/jest-dom":"^6.9.1","@canonical/typescript-config-react":"^0.31.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.31.0_1784323733764_0.2641181613177237","host":"s3://npm-registry-packages-npm-production"}},"0.32.0":{"name":"@canonical/i18n-react","version":"0.32.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.32.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"3a6400ad34df4291583bd0c47110a6cdcc131247","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.32.0.tgz","fileCount":51,"integrity":"sha512-LuQH1fEQJWqpxSrPTfFepKFHsVIUdgatzG8Mso4Sgw0pY0X7PeHQZ8fR+hK+v7icPqTKT+F3nCrqRirA0/MUew==","signatures":[{"sig":"MEUCIDlSbVJZrLd0LScdFiInSD7LUYBaC3bdllJgojY3vqg1AiEAktr6+cEWZKtKwFxUiW2fwqfZwOZEd0+u2JIX0BRhe/A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.32.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30504},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5b279d8150e3988c68c6c2a741046bcd425624ca","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.32.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@testing-library/jest-dom":"^6.9.1","@canonical/typescript-config-react":"^0.32.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.32.0_1784542927061_0.4840857544863377","host":"s3://npm-registry-packages-npm-production"}},"0.33.0":{"name":"@canonical/i18n-react","version":"0.33.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.33.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"b218c4faa3c442966e7ee4999890512c77eed5cd","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.33.0.tgz","fileCount":51,"integrity":"sha512-eguCVLpSeBwZOidlj2/fWiyGTw+Ih6pFE7mo6CSthBqOAosvGVyDScvlrg5YOKNgjgjYllQZxhZOMEhsqCLfSw==","signatures":[{"sig":"MEUCIQC59NaLK82gX/AeStpV9B8mcdAK9YfU0dFfqpG7OET9+gIgC0VkRipUeljqAdpgC3DxKpVp10wYFuQgD913OtEkH/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.33.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30504},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"fca2bc4440fff2d511fc8db6686f9b19222fdbc7","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.18.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.33.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@testing-library/jest-dom":"^6.9.1","@canonical/typescript-config-react":"^0.33.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.33.0_1784914656720_0.4073771956980985","host":"s3://npm-registry-packages-npm-production"}},"0.34.0":{"name":"@canonical/i18n-react","version":"0.34.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.34.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"c7b72970f8881483746060575efc428389eaa9bf","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.34.0.tgz","fileCount":51,"integrity":"sha512-bELlbyTZ7G3iH8DN6f7mHbyaalOcpDYY58MKVhBXw4tcN5dcQnxoGohuXRs6l6nNub3uilAYkszeFMgql+PNkg==","signatures":[{"sig":"MEYCIQDehZA2R04NpOaHk4msGYsnuU9NdErHSkZGnEGEzA4VbQIhAJCMMJnz280z2c1f5xQLLIs3zCNMAxlCQ6JDdb14Wy5P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.34.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30504},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"e8d25fecbe6e70edfc4cb300bad65f691dbbd26e","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.34.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^24.12.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@testing-library/jest-dom":"^6.9.1","@canonical/typescript-config-react":"^0.34.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.34.0_1787317068340_0.3977966741729535","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@canonical/i18n-react","version":"0.35.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.35.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"amylily1011","email":"amy.lily@canonical.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"041a561dcb34d5d0ed0c930c2dd6cae1f73c8be9","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.35.0.tgz","fileCount":51,"integrity":"sha512-P5FbqMpWwF2QMuY0HYnKs/e7Ms9iFy7cxEtAeRn2Tip+txdVdZthgPszqyky4ucbe4v7nYXf0XM4U9Eoo66FcA==","signatures":[{"sig":"MEYCIQDBp3y03cFHoW4h2KtvVd0upw8y/voj3Jgsaef6sijjyQIhAN0qm7ErEZuX2iUurRa2TkHgtZScljD1qEKYkQ8N/1hB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.35.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30503},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"5198c5399ef657959272c0e35924391573d81146","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.35.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.27.1-experimental.0","@canonical/webarchitect":"^0.27.1-experimental.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.35.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.35.0_1787877241987_0.9956816867049236","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@canonical/i18n-react","version":"0.36.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.36.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"b161e43c53d6320c7161333d9acdf9f26fba16ff","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.36.0.tgz","fileCount":51,"integrity":"sha512-NKuMXffgsM3HD8ro6F0CzafVTs1nSltbUSy/qzlvYk5flOhg8mO8Fl1om3gyw4FwKx8wP3L+8hTapnFjlRIawA==","signatures":[{"sig":"MEYCIQDfzND6mln9pf0ERvBtZWwm1Pxhi90+WD25X3DvZsbCdgIhAMLOeU+nFdHubzCnZx86GXBTnsUG0QoL1hpGfwR/H7ij","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.36.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30473},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"78eb47ac10104e914eeacd331795e14b832703d4","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/9.0.7/node@v24.19.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.36.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.36.0","@canonical/webarchitect":"^0.36.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.36.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.36.0_1788028816997_0.5778935865274397","host":"s3://npm-registry-packages-npm-production"}},"0.37.0":{"name":"@canonical/i18n-react","version":"0.37.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.37.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ando.gq","email":"tom@ando.sh"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"aca3e34e2625a3d4f18e59a6e59d5df6f5c9d3a0","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.37.0.tgz","fileCount":51,"integrity":"sha512-dQikm+YRmbFYiLUXwY1dPCjfwUDxvtYZtrbzU8EV0bHAGxfgsB9SDlBnQmsVX+PUdVVCddUFYQ9EdyqxEFHcJw==","signatures":[{"sig":"MEUCIQCnJemoEnY5Zb3PZ3MalSPGDhSmTikDmqDINf1YpIN+HgIgVKH6tqW2T5k5hgMveirmT4pyQACVsUEec2VnzwyM8rk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.37.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30473},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"ac8383bdb4be1bcd6fa6c4960a1e3d78c0279688","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.19.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.37.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.4.9","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.37.0","@canonical/webarchitect":"^0.37.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.37.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.37.0_1788345307074_0.07676933284380127","host":"s3://npm-registry-packages-npm-production"}},"0.38.0":{"name":"@canonical/i18n-react","version":"0.38.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.38.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"7716f7ea04e454e5efa8a259f4cfe48c2bc77143","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.38.0.tgz","fileCount":51,"integrity":"sha512-CNNZgaMLqs8+fDahP6YFPcg8JxHa+bBC/umV3vThoxt+F0XfnChdZZ4gvsD+ivDQ7kKWtWrQMB7cyrFDZIgzpw==","signatures":[{"sig":"MEUCIQD7ce2rdxZP//qQZKVXa/w+oTffJpeORrqSfZuugzjTaAIgK/L7Ss3NQS0DOhIAuAHdQ/kt9FqlRmY7NIqdutcv5EQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDrQ5cK6g5B6C27M/H1huv5Bgu/kRbICDv9rPFzBEqdyAIhANAXIIpO0CACdAE+LOeSyke9xbXSGEzo0QV7nWwIx99Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.38.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30474},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"4d10a68a9b299af6fe3d1d7d053e54ca128944ad","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.38.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.13","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.38.0","@canonical/webarchitect":"^0.38.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.38.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.38.0_1789573117692_0.6639590458627669","host":"s3://npm-registry-packages-npm-production"}},"0.40.0":{"name":"@canonical/i18n-react","version":"0.40.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.40.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"c1862d6be7fe5a7afee14b2c8a281d5c4fea66a7","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.40.0.tgz","fileCount":51,"integrity":"sha512-sZpvseF8RGuW9u0GWEPue4xc+fSPMORcmqhfMxS537X0qHacOwXN08uzb5nbIMmTqm1RmQ/ztkUOu3ngZcU1Ew==","signatures":[{"sig":"MEYCIQC6MzU5T1ES2TzkPJiSwivfp3qjGZvSJ/Tt3Oh1Rc7VaAIhALmV4hDbCD4KBXxjtCJ6Soi1TIg13d6Zms7BPD/P8tes","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDDC8TgnzHfuqhmbAUWzZYzx/Y91z3yM1TJEsXegXgYQQIhAKAsCP8czGxIN8Mn9rRCcelnv+6LiGPpGxJcwa/SDm9C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.40.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30474},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"9136b71518260c5f33e7619da087198c931e4c13","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.20.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.40.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.13","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.40.0","@canonical/webarchitect":"^0.40.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.40.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.40.0_1789941857013_0.15161579713622042","host":"s3://npm-registry-packages-npm-production"}},"0.42.0":{"name":"@canonical/i18n-react","version":"0.42.0","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","_id":"@canonical/i18n-react@0.42.0","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"homepage":"https://github.com/canonical/pragma#readme","bugs":{"url":"https://github.com/canonical/pragma/issues"},"dist":{"shasum":"e5cafa7e644431e9fc0856e8fe8e20f78871a96d","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.42.0.tgz","fileCount":51,"integrity":"sha512-B6k4uNqGdLMKS71P/eewrIqFMlVBmBR/lKaYBCIchCdVMZu/DM+ZMfDQZNK1cRlGLGYja7nhpqwOc1S7e3HHtw==","signatures":[{"sig":"MEUCIDX6Mukn8V4Cbml4Jz9rdBAAnCVcALdzU8/fXrL7t44LAiEAxtg9+w7oglKK0XTKeK6BOyW0u3h4Sm3O4KiuJ7nAaEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAnH1by7+ASJHhVStoUZLiUxFrEVxMP+xPWgADt/FnbKAiAtzoh3DCBVSgErRgSup0vkNbzH62Bk8+6vJ3MvbtsDYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.42.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30464},"type":"module","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"75c2b17029ba899be3fa645be28290ac6fcb83a9","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:71281495-a186-44b8-9bbb-e5cc9a8e3de5"}},"repository":{"url":"git+https://github.com/canonical/pragma.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.42.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^4.0.18","typescript":"^7.0.2","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.14","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"^0.42.0","@canonical/webarchitect":"^0.42.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.42.0"},"_npmOperationalInternal":{"tmp":"tmp/i18n-react_0.42.0_1790560888586_0.9246659595345497","host":"s3://npm-registry-packages-npm-production"}},"0.43.0":{"_id":"@canonical/i18n-react@0.43.0","bugs":{"url":"https://github.com/canonical/pragma-web/issues"},"dist":{"shasum":"a5b4849ee4a5b625eb9aafb2c1a751adbdb35480","tarball":"https://registry.npmjs.org/@canonical/i18n-react/-/i18n-react-0.43.0.tgz","fileCount":51,"integrity":"sha512-kFjFF8O3X7TAgGxtjdvSEOZmjJ2qIjQ3Oy7+/FVFSWVU9mpjlW8azqCwX3H5Z9zRp94sx26T4gw27TuOVj4dvw==","signatures":[{"sig":"MEUCIBCKch47IqwFHFy+i1/R6EMCSrsTpqZIIrD0/z8vmSuDAiEA8tGEz3G0w+TAnbmOskKSR6ttSEVbWH1p3btI/o1/AsY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEbz1ITw/72lxbZPl+Rv2YCwOYGszOQEMfZP3oz5NR5JAiBAGZWGaLQJe4jay+Q7LBCyM7rfWec1KNoE4VS2VBotFw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@canonical%2fi18n-react@0.43.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30472},"name":"@canonical/i18n-react","type":"module","types":"dist/types/index.d.ts","author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"module":"dist/esm/index.js","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/esm/index.js","default":"./dist/esm/index.js"}},"gitHead":"581682464ef71de3f77dc2dc8bbe2b7e493bb05e","license":"LGPL-3.0","scripts":{"test":"vitest run","build":"tsc -p tsconfig.build.json","check":"bun run check:biome && bun run check:ts && bun run check:webarchitect","check:ts":"tsc --noEmit","build:all":"bun run build","check:fix":"bun run check:biome:fix && bun run check:ts","test:watch":"vitest","check:biome":"biome check","test:coverage":"vitest run --coverage","check:biome:fix":"biome check --write","check:webarchitect":"webarchitect package-react"},"version":"0.43.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"6e1b50bb-1af6-4fa6-b7a7-011004bdf4e1"}},"homepage":"https://github.com/canonical/pragma-web#readme","repository":{"url":"git+https://github.com/canonical/pragma-web.git","type":"git"},"_npmVersion":"lerna/10.0.1/node@v24.21.0+x64 (linux)","description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","directories":{},"maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"_nodeVersion":"24.21.0","dependencies":{"react":"^19.2.4","react-dom":"^19.2.4","@canonical/i18n-core":"^0.43.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.1","jsdom":"^28.1.0","vitest":"^5.0.0","typescript":"^7.0.2","@types/node":"^26.0.0","@types/react":"^19.2.14","@biomejs/biome":"2.5.14","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^5.0.0","@vitejs/plugin-react":"^6.0.0","@testing-library/react":"^16.3.2","@canonical/biome-config":"0.43.0","@canonical/webarchitect":"0.43.0","@testing-library/jest-dom":"^7.0.0","@canonical/typescript-config-react":"^0.43.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/i18n-react_0.43.0_1790801978483_0.6685475967550059"}}},"time":{"created":"2026-07-13T22:32:11.830Z","modified":"2026-09-30T20:59:38.938Z","0.29.0":"2026-07-13T22:32:12.148Z","0.30.0":"2026-07-14T00:14:39.335Z","0.31.0":"2026-07-17T21:28:53.894Z","0.32.0":"2026-07-20T10:22:07.205Z","0.33.0":"2026-07-24T17:37:36.905Z","0.34.0":"2026-08-21T12:57:48.493Z","0.35.0":"2026-08-28T00:34:02.393Z","0.36.0":"2026-08-29T18:40:17.136Z","0.37.0":"2026-09-02T10:35:07.223Z","0.38.0":"2026-09-16T15:38:37.788Z","0.40.0":"2026-09-20T22:04:17.108Z","0.42.0":"2026-09-28T02:01:28.664Z","0.43.0":"2026-09-30T20:59:38.556Z"},"bugs":{"url":"https://github.com/canonical/pragma-web/issues"},"author":{"name":"Canonical Webteam","email":"webteam@canonical.com"},"license":"LGPL-3.0","homepage":"https://github.com/canonical/pragma-web#readme","repository":{"url":"git+https://github.com/canonical/pragma-web.git","type":"git"},"description":"React bindings for @canonical/i18n-core: I18nProvider and the useTranslation, useLocale, and useFormatters hooks.","maintainers":[{"name":"ilayda21","email":"ilayda.cavusoglupars@canonical.com"},{"name":"frankban","email":"frankban@gmail.com"},{"name":"huwshimi","email":"huw@ikmail.com"},{"name":"anthonydillon","email":"me@anthonydillon.com"},{"name":"steverydz","email":"steverydz@gmail.com"},{"name":"bartaz","email":"bartek.szopka@canonical.com"},{"name":"jpmartinspt","email":"joao.figueiredo.martins@canonical.com"},{"name":"petesfrench","email":"peterfrench94@gmail.com"},{"name":"jmuzina","email":"jmuzina@pm.me"},{"name":"mtruj","email":"mariapaula.trujillo@canonical.com"},{"name":"edlerd","email":"david.edler@canonical.com"},{"name":"abehnia","email":"ardavan.behnia@canonical.com"},{"name":"canonical-organization","email":"is-admin@canonical.com"},{"name":"edisile-canonical","email":"eduard.manta@canonical.com"},{"name":"steciuk-canonical","email":"adam.steciuk@canonical.com"},{"name":"abbiesims","email":"abbie.sims@canonical.com"},{"name":"ataku_b","email":"atakan99saglam@gmail.com"},{"name":"ad.vl","email":"adrian.villa.g@gmail.com"},{"name":"engr-ali","email":"its.muhammad.ali.mughal@gmail.com"},{"name":"ninfa_jeon","email":"urvashi.sharma271099@gmail.com"},{"name":"ndv99","email":"n.devilliers1999@gmail.com"},{"name":"goulin-canonical","email":"goulin.khoge@canonical.com"},{"name":"immortalcodes","email":"21112002mj@gmail.com"},{"name":"alvaromateo","email":"alvaro.mateoalvarez@canonical.com"},{"name":"onibenjo-canonical","email":"benjaminaderopo.oni@canonical.com"}],"readme":"# @canonical/i18n-react\n\nReact bindings for [`@canonical/i18n-core`](../../runtime/i18n). Thin by design:\nthe core engine owns negotiation, catalogs, formatting, and the live locale\nvalue; these hooks expose it to React through `useSyncExternalStore`, so updates\nare SSR-safe and surgical — only components that read a locale re-render.\n\n## Installation\n\n```bash\nbun add @canonical/i18n-react @canonical/i18n-core\n```\n\n## Setup\n\nWrap the app once. Pass the SSR-negotiated locale so the server and the first\nclient render agree.\n\n```tsx\nimport type { I18nConfig, Locale, Messages } from \"@canonical/i18n-core\";\nimport { I18nProvider } from \"@canonical/i18n-react\";\n\nconst config: I18nConfig = {\n  locales: [\"en\", \"fr\", \"ar\"],\n  defaultLocale: \"en\",\n  rtlLocales: [\"ar\"],\n};\n\nconst catalogs: Record<Locale, Messages> = {\n  en: { \"nav.home\": \"Home\", items: { one: \"{count} item\", other: \"{count} items\" } },\n  fr: { \"nav.home\": \"Accueil\", items: { one: \"{count} article\", other: \"{count} articles\" } },\n};\n\n<I18nProvider config={config} catalogs={catalogs} locale={negotiatedLocale}>\n  <App />\n</I18nProvider>;\n```\n\n## Hooks\n\n```tsx\nimport { useFormatters, useLocale, useTranslation } from \"@canonical/i18n-react\";\n\nfunction Home() {\n  const { t, direction } = useTranslation();\n  return <a dir={direction}>{t(\"nav.home\")}</a>;\n}\n\nfunction Cart({ count }: { count: number }) {\n  const { t } = useTranslation();\n  return <span>{t(\"items\", { count })}</span>; // plural via Intl.PluralRules\n}\n\nfunction Price({ amount }: { amount: number }) {\n  const f = useFormatters();\n  return <span>{f.currency(amount, \"USD\")}</span>;\n}\n\n```\n\n## Language switcher\n\nThis package deliberately ships no visual components — semantic components\nbelong to the design-system tier. Pair `useLocale` with any control; listing\neach locale by its **endonym** (the language's own name) and tagging each\n`<option lang>` keeps the switcher accessible:\n\n```tsx\nimport { useLocale } from \"@canonical/i18n-react\";\n\nfunction LanguageSwitcher() {\n  const { locale, locales, setLocale } = useLocale();\n  return (\n    <select\n      aria-label=\"Language\"\n      value={locale}\n      onChange={(event) => setLocale(event.target.value)}\n    >\n      {locales.map((tag) => (\n        <option key={tag} value={tag} lang={tag}>\n          {new Intl.DisplayNames([tag], { type: \"language\" }).of(tag)}\n        </option>\n      ))}\n    </select>\n  );\n}\n```\n\nChanging the locale re-translates and re-formats every subscribed component and,\nin the browser, persists the choice to a cookie and flips `<html dir>` for RTL\nlocales — all via the shared `@canonical/i18n-core` source.\n\nFor a correct first paint, set `<html lang dir>` on the server from the\nnegotiated locale with `documentAttrs` (see the\n[`@canonical/i18n-core` README](../../runtime/i18n/README.md#server-side-rendering)).\n\n## License\n\nLGPL-3.0\n","readmeFilename":"README.md"}