{"_id":"@sfperusacdev/sf-ui","_rev":"38-72f95479f541d261c1f76ebe93d054f7","name":"@sfperusacdev/sf-ui","dist-tags":{"latest":"0.2.7"},"versions":{"0.1.11":{"name":"@sfperusacdev/sf-ui","version":"0.1.11","_id":"@sfperusacdev/sf-ui@0.1.11","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"}],"dist":{"shasum":"af9bf2074ca720a67f0f0633d435dfe6ccee65a3","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.11.tgz","fileCount":303,"integrity":"sha512-Lm5KY7nP/wg5QbyAVvxPoE8e9/qG9uQyGewfsR1n+z0HUTGiKcJWvAg+54kDpzxWfDVEWg4lP1G5yNVOVIkuBw==","signatures":[{"sig":"MEMCH2gWFfmWvB2ymhd8NZJ+hwIHIlGdlbS0Vn06EeaiA10CIHCE8/h5+oVYtxjVR+ceC4Rcph/5U+4C00SnFKc5KSWv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9265840},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"03d63a97fb3ef336ee11cc10448ecd6b61e39cdf","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.11_1783810775633_0.5251720091916328","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@sfperusacdev/sf-ui","version":"0.1.12","_id":"@sfperusacdev/sf-ui@0.1.12","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"}],"dist":{"shasum":"0574f6b3adbfcd0479f3766d09397d5d49724742","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.12.tgz","fileCount":303,"integrity":"sha512-2p9cyAKvtZLpoIOxhDKil1n1qpphuC70NU9So+VcrSOdmZ1DF8JEcR3f8O088XMuePP3/TMRY6cndeZE9fNWGg==","signatures":[{"sig":"MEQCIB+RV68SUX5p4lEOP73P94uArjpTGvLtBFKQYUXZhJLsAiAFdh9MZdsXJBG/sqMy433Nw0URkdbrXNzkI1RU6X8f1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9265852},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"03d63a97fb3ef336ee11cc10448ecd6b61e39cdf","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.12_1783818061025_0.4997405397220738","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@sfperusacdev/sf-ui","version":"0.1.13","_id":"@sfperusacdev/sf-ui@0.1.13","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"7da6fadd7fee125ab21a0def2d7928b040e041d9","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.13.tgz","fileCount":303,"integrity":"sha512-gABQdL9DWkf46g8CEeA1BzRZlpLN4ESPzhVtcWRCexAsV779sgClKlhknR6VzPY+qHW1UOQHkUClp2n9dWg7Lg==","signatures":[{"sig":"MEUCIQCo5iRH1lIW79pKMP585vWcn9cuRTD+9m8fWPEbecUFUQIgGQ0Jvg13zWDSpDzVGU7uRk7qj0W21vAHcN5qHaDnjOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9267944},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"d30aadceeccac1dd061ead931f99aaf9ff6729ee","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.13_1784642082550_0.30365683641775676","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@sfperusacdev/sf-ui","version":"0.1.14","_id":"@sfperusacdev/sf-ui@0.1.14","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"c6f267f48383fe11e895784963cdfc9dfed99dc7","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.14.tgz","fileCount":303,"integrity":"sha512-L5SFP0aAogHgL0W9Fq8qgSVOl31Ho/ziQfjOAR+itXQ6M8+TiEz6DFfrey6Q+E6jyWqIm0TZtn1dhrXhn8006A==","signatures":[{"sig":"MEYCIQDRmtq3nvl/a9MdPUQPQpA1znBUZ0OubmnBMC/6WESXdQIhANdJG/xYy+6yMXX9kkli4aSnuNzWgJ+CJu4BDWiAmKAw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9269812},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"fe6e7986fea0af1ee20d1257fb50bfa5dac80337","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.14_1784662648628_0.3665397474760377","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@sfperusacdev/sf-ui","version":"0.1.15","_id":"@sfperusacdev/sf-ui@0.1.15","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"41611080fecb564df0b54522c31d98906df2a48b","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.15.tgz","fileCount":303,"integrity":"sha512-pGhGdyvnwyp3Jwd56xRb2s9/WNjdgOYN2G+SMtmbOo08YVstVhfktXGrNyn3ROO9/UDZ8HGJaYqOAjem4cwL8A==","signatures":[{"sig":"MEQCIGmT+Bt2MctaV4uGt/czvDRQ+4rPi/b96Fa/9nnhHklZAiB6xq+D1Yipi1FhTZZT6tTUxyGcIiywOZuRRDSdKu44sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9273234},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"bf3f10789c4ca545007e8fe983523e542347badf","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.15_1784671491719_0.9028859964222256","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@sfperusacdev/sf-ui","version":"0.1.16","_id":"@sfperusacdev/sf-ui@0.1.16","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"dac36b48a8ce9073e647b3fc801b67be58928ee7","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.16.tgz","fileCount":303,"integrity":"sha512-RTBAVpZM4Bu4hPUfY/82wiXSzkTYxFBfD45n8lyZKQBN2YDQ0Y2UNsdmFORiIB5VaQysAAXbMZZDzol/B8YB/A==","signatures":[{"sig":"MEUCIF7jPTr52rtKRA9G1aigdQxeod1USZL4vS65mh8IbTVMAiEAi0f3aVCtqb5HB4Q2xxCFQ9kMv8iEeU/4f2OR6mpKYIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9274789},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"3844cc4a29261d8806deea176237330184f8e466","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.16_1784677499157_0.839401787645286","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@sfperusacdev/sf-ui","version":"0.1.17","_id":"@sfperusacdev/sf-ui@0.1.17","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"6bc08d63da5e20e891b986d5deaf9a07cc5d76fb","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.17.tgz","fileCount":303,"integrity":"sha512-Pv5cgIXeR7WR2909UittR6ZmuFaYjcW1Ic88W11vvuaL0PjEooFQVA5Jb+xb7xMMZ4mnowm9k3t6Tio3x4C/UA==","signatures":[{"sig":"MEUCIQChQqEHWAkJUVZgz8s+Y0RL/89S15XzPD1SH7kQd1wOeQIgb5ur1dVVwGo5KqZ9vtLirX3AijSSvu9vzBeqojryYbA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9276798},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"3aa75b6aecc02c8d84a7789e1b6b91fcf4dcaea7","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.17_1784688370041_0.13791090049071686","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@sfperusacdev/sf-ui","version":"0.1.18","_id":"@sfperusacdev/sf-ui@0.1.18","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"148d0deb18a2cae53c6627048a8a09c64b47bdb8","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.18.tgz","fileCount":303,"integrity":"sha512-5RBloU2x8aI5BzCKrxQ/PcqyaBDkNCA/3aUB80emRxo04VyTkVA+dp1EzMcFo955ZaDFrr2wGEbsXYBzCDWQ6w==","signatures":[{"sig":"MEUCIQCRfFpZGT5IdbDXlLE0teMrMa3tbb+BkmL3qfOXI3H08QIgIJkCJZONbq3WaJA6AiEB/CHN7BzlxDXU5lTz0d7yoVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9277669},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"12a3f100369cf67b7573d94f27e08701cb1dfa17","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.18_1784739105352_0.8023633118520253","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@sfperusacdev/sf-ui","version":"0.1.19","_id":"@sfperusacdev/sf-ui@0.1.19","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"ece0471db6692844d873bb84f7d776a467bc343f","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.19.tgz","fileCount":304,"integrity":"sha512-9w2HeYK53qolLzHSMXQYLtWElawKZss+NWwtyKa1yz2zbYbnSIvtMmk8Z5JOqEOViaR0SC+7uFYR1X57RfiofA==","signatures":[{"sig":"MEQCIFfdBkBBVBLyyTrWNDoBui9vLjN9tkF3a7UuKaJEm3wmAiAantNrn6Swfu8g5ZzolSuri8pjqkomJAGhMsOUY3dWCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9289526},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"09533142d8fb794eb21460400949721f30f9b8b7","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.19_1784770423119_0.7385382642840737","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@sfperusacdev/sf-ui","version":"0.1.20","_id":"@sfperusacdev/sf-ui@0.1.20","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"603044c8921d68375115cd5405c2d768218d4f87","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.20.tgz","fileCount":304,"integrity":"sha512-XmF6K6KETDSzMZNDgu2xg+OZfdPwD3alr/RVJyIDJi9ofTHpdXMl2klFfP9Vhxe/IBV8r61f2oXO6cJfaHmM7g==","signatures":[{"sig":"MEYCIQCVdbTPlCa+prIRu4UEVoBka4QJNVtvcGMi4qbgT3oQaQIhAMslEeh3zenth0MrkFFB0NLV3I8xFH0wVm8OA+Xcn5+R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9297785},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"f8ad71c86a1e169638bff0db5abf80b6ae244a98","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.20_1785219755341_0.7927104999655346","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"@sfperusacdev/sf-ui","version":"0.1.21","_id":"@sfperusacdev/sf-ui@0.1.21","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"17def51866eb5e54284960eaf6262a5f1d1e1c56","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.21.tgz","fileCount":307,"integrity":"sha512-Ta7AZ5V0eAWChwcK7iOta52FLgfMZTPsnaE+/mM2YiDx8vis9GqoT0bWjcQa2BudXTcpqBIuDpbVHnqMGarM9A==","signatures":[{"sig":"MEQCID+Gwkoi7H9DgSkjHaQ6H1wHjc/aEJo7Wb6LWG+KF9ZhAiBxIysK4H84erZEdcHPAfDDZQSXX7HdT4SdS7cWHNTjpg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9322341},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"bb5f8a2af6ce9a4f1dc1d2e96e058db87343166c","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.21_1785224431605_0.2804183247866108","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"@sfperusacdev/sf-ui","version":"0.1.22","_id":"@sfperusacdev/sf-ui@0.1.22","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"13d125e1dd0684ab755090169ccac124e5f2668b","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.22.tgz","fileCount":308,"integrity":"sha512-VOuKkCfuaoOs43ZCxElcXoeWZVPt0+LRGy+ukUS8171CgXGvFxcwWLyGZJ6/sqT3eJ2wLnMo+95nQXGeEGnMRQ==","signatures":[{"sig":"MEYCIQDGOnAXf3Oy/L1gRk0U2ecs8bXEbo2p8W20SjBdWxijpwIhAJzQr+aLYYzonOeadllrRlcUIGnFf+xeeLBbCL3kQxwH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9337079},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"365f6d5501bf5c2e2104ed1bab76ae2db45ffebf","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.22_1785295542391_0.9226055769900583","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@sfperusacdev/sf-ui","version":"0.1.23","_id":"@sfperusacdev/sf-ui@0.1.23","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"801e8fe5a228248c876d53819dbb2baa44f2444d","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.23.tgz","fileCount":309,"integrity":"sha512-oW1vdFHUuCQDQQ6+tkM/ny8oO2fxuiKhlyYuR449lHOueXItjYi+gZkI3/k0zJXOMyI6GFV1xRS7xJIyNsrLUQ==","signatures":[{"sig":"MEUCIQDAXK8b2PfWZ6vgnBCzGvn5xmkbyh3PIykxSwRQST+trAIgbYw7jdGv+Vk2H9th+8Pmi7zSI72d8QBUuLPs1li9kzQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9369089},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"f9547bff6ae97d69caf24757603818132656ad44","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.23_1785728596894_0.44594876718469867","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@sfperusacdev/sf-ui","version":"0.1.24","_id":"@sfperusacdev/sf-ui@0.1.24","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"efc73308a8644f9778817e02e28f89906c2185fb","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.24.tgz","fileCount":311,"integrity":"sha512-QE9LWaMfVAZJwEOkDDhXlJRV9PJ89V3lMQyv7mbqjfR+WqPuvOlKBne+GhMOJcnxhAl+8L5PVRTwJW18KERqBA==","signatures":[{"sig":"MEUCIEegQf7CG/PXyMgoAAteqQcNQ0TOR6Kx4wyMbX2Ap6PpAiEAysaIdDXmc6bfWkDP9ju7fmwo7n7i1Le4q++J8EPWfeQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9400275},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"6df7a864891b08fba62035bef9ab4be4670c4305","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.24_1785732233998_0.6968304522862334","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@sfperusacdev/sf-ui","version":"0.1.25","_id":"@sfperusacdev/sf-ui@0.1.25","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"a187fbc451a91a0c12e7aa6c21ac8ca97e755174","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.25.tgz","fileCount":311,"integrity":"sha512-FQpBHBuCIj/CguB5/+Znr2fzK6PbgZxqPPUV0P88lVzsWaa6vo2USm27VgvvkCdOOse0Dko6ypSBoGUb/ZSpAA==","signatures":[{"sig":"MEUCIA06bfx4bb5T2wcNmfeZdAu7yy0J71OVe74Et/Jvtsz/AiEAubAPt0tut302HoxBPrZO0Tlj9XfL1bNiF998mbCXoK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9319458},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"60a32cd17896c1a3ed8d4ac86d6b5632a90fb2e6","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","postinstall":"node scripts/ensure-rolldown-binding.mjs","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.25_1787373705110_0.1996700791457946","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@sfperusacdev/sf-ui","version":"0.1.26","_id":"@sfperusacdev/sf-ui@0.1.26","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"54a5bada853a7639ba87c2ffdc4e3f7af216375a","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.26.tgz","fileCount":311,"integrity":"sha512-cevhoQzp1IlHusLyHyg3FiodZGEmp49259kWY8V+jAl6cFKk6isEW6AKvazrSJEKoqEJlgB5pIdMtBOL3DxpPw==","signatures":[{"sig":"MEUCIQCEoZq04Y4FFysxw0JqBfTFKW8nFRLTivzx6oSu88+w7gIgPxd0zAuEJKrd/j8vL3/IBf9ldVzkt6h543dqTzFbOG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9319439},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"60a32cd17896c1a3ed8d4ac86d6b5632a90fb2e6","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.26_1787374132680_0.23154917354810212","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@sfperusacdev/sf-ui","version":"0.1.27","_id":"@sfperusacdev/sf-ui@0.1.27","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"101d1e0e8c0671c01c9f5d88e2228e70966e87b7","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.27.tgz","fileCount":311,"integrity":"sha512-89mpqj1oPyWOLETBq2PQa6SevPwDYME5et9aot6eeZmeP2Dzv5rNdmo4uEjPNWiNW0snfKI9B5Rcd+U9O+F9vg==","signatures":[{"sig":"MEQCIFUsihdGzTD+agRSS1gnfI5fI7Rwl35xaOT0bbVbd7ouAiBpueJQbNxx4aySHsvxU2e+ZdOTAjSNwsUQBMPVDqYr0g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9320453},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"fc67f2aa26331fd2e7e4033087547438a47ebf7d","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.27_1788677453268_0.14995862948853134","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@sfperusacdev/sf-ui","version":"0.1.28","_id":"@sfperusacdev/sf-ui@0.1.28","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"d9b1965f985e833f4b3ee39980b6c42e97ac8860","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.28.tgz","fileCount":312,"integrity":"sha512-sRTu/AhJR3rA6T+U09vHXT2+kmS6tWhzFeLOMHcHTDBFsEY0v83n0lqkOeTEP+szuo/52nXo9SvXi2KDPQyjkw==","signatures":[{"sig":"MEYCIQC9jEnwYKp77Mc8tbcKl9goEEFGNsqaYGXFm/Cad0dPjQIhAKbDwjLa1mS5uNWSpNDraumZAI522ZVWQkox87XAWGMB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9327349},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"e568f498336ec6248b9e324b2b0103a3ce905b90","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.28_1788815887218_0.7542949128038634","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@sfperusacdev/sf-ui","version":"0.1.29","_id":"@sfperusacdev/sf-ui@0.1.29","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"34bedb6d45833f3c61807e85c51863ac63470ff7","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.29.tgz","fileCount":322,"integrity":"sha512-DAWHBs3Kq8+S6Xq0hr0i/cTgHuYY6MJtxdzMeLns2ki3oI82cCytM8klwYyBumC2mTAoEFoaeI+YZnP3XqK7hQ==","signatures":[{"sig":"MEMCIFBJqJlyS8/kZkH0pdb1CU4GQ7AAjerEmN4UwecidsZrAh8c2oB1gKu6rqm1cPzgMsEDGXm/a2vIUTCM/ivwWga7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9393661},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"de8021045a5a4c099a4c72047a487eb7896a8ce2","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.29_1788910520511_0.7885781752629031","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"@sfperusacdev/sf-ui","version":"0.1.30","_id":"@sfperusacdev/sf-ui@0.1.30","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"e3c81b40e26aec3f79398da0db36bce349ee97a8","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.30.tgz","fileCount":322,"integrity":"sha512-927vamFpIhFhY/Mlk4WgREMJsb670fzRE/2kjZkzaGHFggunXKKwzc0s5HaeJBJdU5UaUZIrOUUkxSbPujzp2g==","signatures":[{"sig":"MEUCIQDEkwUL4qAiHs35yp8D87Cg0WhpeKQe177L4K1TmyNPpgIgV0AyfudBz7zd+D/gMSiLii69o81MgGix24uKjB+avaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9393663},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"b64b8ccb8df897bbb48dc60df6306a1565833dd4","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.30_1788912196368_0.1681238627457915","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@sfperusacdev/sf-ui","version":"0.1.31","_id":"@sfperusacdev/sf-ui@0.1.31","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"9140800d916407c938e00f80feeefe86b8d333fb","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.31.tgz","fileCount":324,"integrity":"sha512-rnT9eDhJnt4IZat9pmtX27nqNzlA4BwNiC4ME2gkgSYqNhydN5INxKiO1xYEoQNh0ePxIFhfqSZqKTWXPoLtYQ==","signatures":[{"sig":"MEUCIFG3HpKThyNNpLCK6XgTll+tXU7VZbafSjiaPGQ5wkChAiEAuaTH8uB75k8kuBfJrvUJSM8HAVPF3T4Nkwz20kxQp3Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9417758},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"2a14e76d67a9e5631c0ec6694e59ab4f843cd7ff","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.31_1788924267046_0.9794485739674055","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@sfperusacdev/sf-ui","version":"0.1.32","_id":"@sfperusacdev/sf-ui@0.1.32","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"54800f9be2fb70a9238ed2b973ff3c18d0702fac","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.32.tgz","fileCount":325,"integrity":"sha512-yoqPdEsHkNaQRsI+qlqXG+0cnJCmAK9Dr4Bh9e8tYGIynroEVH4ym3Ec0GE1fOd1UhRtDLCK/jYaJKa41ygQww==","signatures":[{"sig":"MEUCIQDkmw74dwPdbwQD/qI3Z1ON63LZxIbiwmL7oNFzfFfo0gIgBXFDsGUBNJ1kD52QGkneM3X+WD5QZTcvX6l/jPusTCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9419082},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"10374d45c62f499ea350316eac1750139e583e40","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.32_1788937090053_0.8211436613883754","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"@sfperusacdev/sf-ui","version":"0.1.33","_id":"@sfperusacdev/sf-ui@0.1.33","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"881d7e5d7a4b4c419cb2505fc89a05e902f2d583","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.33.tgz","fileCount":325,"integrity":"sha512-XzjB53+eiUfWBSzP2wy4B+qQEc1jhO+SZowGzeWQ4T8rNnuEK0p3SAfvt1leKsNjLCBY319BhBSnvaIPSw0n6A==","signatures":[{"sig":"MEYCIQD5cwfb889IKwlzqqIIYCMvpOpc9ec5jQFFsp9OVnRbdAIhAPbQ/e3KP97Nb+lZgZv6FLaNLpXUwuxdykhPg+xTEb34","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9421873},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"b0854d15af096da4afb127b0079b9e24b5586753","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.33_1788941325504_0.7486460546239586","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"@sfperusacdev/sf-ui","version":"0.1.34","_id":"@sfperusacdev/sf-ui@0.1.34","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"45e144bb046525b0d8c4a1a7d96632f5e83b6d4f","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.34.tgz","fileCount":328,"integrity":"sha512-LE5gRokIk7kYYfjEODG9rVQEBZUQapLROX9rKyyaOyMPeNKHIqBg1NGNbFBi7Ixo2xw8jkDmOYuXtTDdadjW7A==","signatures":[{"sig":"MEYCIQCLryTaI+0y5xFjgMghYa4HgzPoaf2xrKbefskQ2pqSBgIhALkosdeI6OktuCf3a7zuMwWWX44VTzfded8rg8JLd3Ni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9446131},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"8a285ceaaab50b74dffef346f318ae4b0cc1b43f","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.34_1788942416630_0.51360594501484","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"@sfperusacdev/sf-ui","version":"0.1.35","_id":"@sfperusacdev/sf-ui@0.1.35","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"10ff7d94619de8ab666f4fc4b2be7c52736fcb35","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.35.tgz","fileCount":360,"integrity":"sha512-ffPqOgR5pmHhEDXHJK6jTVagX8ky7+KZ/sHUcy/kkLp+jNHBZX1Zsss+THaB7/7SYEREP+s0LX54gwQ4BDQ62g==","signatures":[{"sig":"MEYCIQDfLxg9M9ytypw9Iw4WYItd9YwxULvesLPZXKG7XoB7KgIhAPTdoWwnusb746mKKP1vxhg56Uhc+FlxtHe6CSa1JxoI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBcE6+H5mGVjwckEu7w443c/IBhttMxEpgwt3YgAJuRqAiAQ3ONSlNJUcsQU4M/3LRwjVNYN/6vWneMgx7TOo0mMQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9705344},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"8ce46e4d7e627e1c2ec031bb071a7522c87151d2","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.35_1789996876085_0.4708615248841237","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"@sfperusacdev/sf-ui","version":"0.1.36","_id":"@sfperusacdev/sf-ui@0.1.36","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"0b8369cec62faa042ac27baf95f2edf1d258f992","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.36.tgz","fileCount":362,"integrity":"sha512-7dVkYdFh8RtSMsNGwaMwiEllH+2nPIrWvUHH4NdJffUq1dTsDSF6PW9U0e+hnlQWVHSNKIa0ZogszBKj1UgH5Q==","signatures":[{"sig":"MEUCIEdxHieGH27ar6Q8FwzliB+fVX2IjVgV14tYn9YPoN1/AiEAjaO7bv3uJiDyxHyg1RjFDpPHxLytW4rkaLnKJxOba+w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZTv66EzzlsNRitAqC5BXAUMg6MY/IatF02Z2pe4I83QIgBfa6czW/Xwn4zLSNXMF2qEHX+5EcrmBmt+V8l7lNSEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9736181},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"549a96ca6d26d9c90b2fca6336d2f770f3ef2af2","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.36_1790028038352_0.4074185073488248","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"@sfperusacdev/sf-ui","version":"0.1.37","_id":"@sfperusacdev/sf-ui@0.1.37","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"cc43d18d760fb3e79654ad95b4618be37d38204e","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.37.tgz","fileCount":363,"integrity":"sha512-WGpLLDH5WhIBD4nzrdScR2D6IoiLaSMvzGPwz5E9zh7WpBm6friqYgFFvCjlrEh9uOl4tz3B7P3dQM2659udXQ==","signatures":[{"sig":"MEYCIQD3ips9prJeYivEypGo5uehxgRhw1HYileEPKpM27SxmAIhAPZP1Fate9KPHMrZezp088dP+WlPMiN1UitQHcqff/ra","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGfePRpyTqaV0EnicUiH+aQ4xrBS7dfrlagNIyxQ+x97AiEA8Rv4NHfCAv/xe5qppHXoaAwQRWLCNRE6yTYunLluYVs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9740668},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"cf6a47446eff9dbe0e2c36acf3a1d134b26fba97","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.37_1790039396787_0.45989049876408017","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"@sfperusacdev/sf-ui","version":"0.1.38","_id":"@sfperusacdev/sf-ui@0.1.38","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"3ccc66369734b58a2d8ed3607d8eab705374c221","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.38.tgz","fileCount":363,"integrity":"sha512-b3dCm7kxEegOzgtaieqeXGAr0mGOhaU2pCEIefAGN7t1pBDegTs2Nj6HEzlnzp+kjAHPJDnv7eKxnaZ8AkjqRQ==","signatures":[{"sig":"MEUCIQD4q3nOEEkwpYUlte/ziVxUG9a5SUb8l+J3tL4psu9FPwIgXK/8yh4ktrXBw9c6wlA1e6Zf32S7KYnsXGZR5PDnDzY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGgzg/sbHZgPMKDn7FwUcUGKCsED8WbL3ZINI0uLPZWCAiEAnI4wq9QT7SzL1DuOe0OZhKtcogE1dImcU1eHzqMUqZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9745025},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"aec0da333b46b2967c512f4e05e25696c885294f","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.38_1790045020712_0.9107252041390228","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@sfperusacdev/sf-ui","version":"0.1.39","_id":"@sfperusacdev/sf-ui@0.1.39","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"fe27510d417ac0e7bd5c90f1f5e9f79363396966","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.1.39.tgz","fileCount":363,"integrity":"sha512-qsIj7m+QxaqMimLMEwZk123a28LH9D97/ptA8joC4MUmIkPklmc6fgtxiszCJYzazlHAy0bAPaYLdZ1btdydlw==","signatures":[{"sig":"MEUCIQCxEU7xK4h+p31vXTFP4jduIXRZ1PZb249aR3c2fAciXQIgOZeuuojNeDOK4JtEtmBjqjiXQjahm8PeO3dN4JwlnwQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIClkaalsiXVmlBaDE50q58bP+WlXHnoz0+1rndiOwqkqAiEAnic4HsxZo99BVMbPEsUBWEWcCy2EGdd+4jyA+kYOim4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9745861},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"5dbd36c72b46033695a921a8a3a5641dd9140bd4","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.1.39_1790050418757_0.35066107610817543","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@sfperusacdev/sf-ui","version":"0.2.0","_id":"@sfperusacdev/sf-ui@0.2.0","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"7ad42381418d41136503085806b01e76c4786e36","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.0.tgz","fileCount":364,"integrity":"sha512-gSX+mwJjjWEeoX7ciRvBL+l64ZeqdTNd6nA8F2xE/meHR5OOZ0bC2qX1mwABTwZN5zWa+hDpDK1Va1TuvtX52g==","signatures":[{"sig":"MEUCIB7gnUoE9nNEXM8Gi//JhjqgpyZfCs/YGJDvwrdsZQh/AiEA6wypcC33jDKTzhk0q+xha4/AjcRdWmnNNsfRxQ19Zmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC8cY5BkOiWeNQfKwDoK25nR/+ruwGDrJ0MkNfWHKC+gQIgLjbmjQfcqEywl/YLD0CSKyX02Uf9hTNC2rvwgSLMl4w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10703506},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"590fe2bad01ce8baf6866458ce14836075f411f8","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.0_1790564479516_0.04664755872325599","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@sfperusacdev/sf-ui","version":"0.2.1","_id":"@sfperusacdev/sf-ui@0.2.1","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"6f603392780d95e90188e3a8088754defa7653f6","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.1.tgz","fileCount":364,"integrity":"sha512-ORxzoV8T2iQoO8mgieRQrsgPSA0rbQJ7Z3C5aw88CVLU35IsNAt+Bnv+bSmamiSyBBEtClrPsvWCux/qoGagHw==","signatures":[{"sig":"MEUCIF06/VDExu+M+nDHWIHklBKJzE1u5l7bMaUFK15dFxOtAiEAkCPITIw3FIzbXNcCQtjxD7xiig6djfyw1Qrys8psJ/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIErhcwBbzbNEEDUuql4lC9ZlpjkKKwoz/zBKuDFqtq09AiEA5f+qytY+og5HnJUWOPZMFIgIS6QAuRz+Tb2OpjjmFE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10703506},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"590fe2bad01ce8baf6866458ce14836075f411f8","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.1_1790564727190_0.5899427734449205","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@sfperusacdev/sf-ui","version":"0.2.2","_id":"@sfperusacdev/sf-ui@0.2.2","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"39b47f81c69aec08b7e6923191b9c313494e4489","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.2.tgz","fileCount":364,"integrity":"sha512-LNYJx46QCTiAiL1/mCt0Tt7DZiqjvQbpKnt9rlzxOCTuUfBRzq1MqS8mW/LoI8mpuFl5GZ829L/AxLOEa39ONA==","signatures":[{"sig":"MEUCIQCw2wu0tPdGazJ8JuFN12nryHwcNoQhXJamcaHtK+a2jgIgF1qEsvJ2w3ejUPpv35tio0fNbEvuomO87Mowu1oPKcc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCVbkoP1f96HByYfGc6QGv4cZWyulPrcYHMaMxfXtAMVgIgWgH8EwcRcf2L7Wt3/a/gCuNfXKBmD3wmTMsROhR2t64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10717146},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"344a15476f7f2741b39e0fa3dceaa57f7b623ac8","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.2_1790572917548_0.014041494738309401","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@sfperusacdev/sf-ui","version":"0.2.3","_id":"@sfperusacdev/sf-ui@0.2.3","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"5c4e6c804ae8b4f17694d7ab2ea3e32662634f6f","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.3.tgz","fileCount":365,"integrity":"sha512-29Sh+GCLTcuBqFuSv6yrkp7YNjYW80xXqRKvjVivELdgdmSob8QgJEcMWX52xOod+jjOpaQ+kCItYcU+cm/gqA==","signatures":[{"sig":"MEUCIQCiXWWl2E39xTCigldeNmH5+JPBuo1gJMrySPxeTKfAIgIgO1d37n405JDgUKznwskuo2BCmHZsPCTPuBvpfT3yb5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBsYSlGt5qhEyBxYbpf5nXtEre3QvWRTiIdrkvOOur8CAiEAqMwbS7JznPWmOFTblIokZZ7e2lL9AmG84evUEIjv8+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10715775},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"4e4d117f1343761952f9e3e25fe99d4425162c83","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.3_1790574833017_0.6103978626562478","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@sfperusacdev/sf-ui","version":"0.2.4","_id":"@sfperusacdev/sf-ui@0.2.4","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"4fe9947ad87c972c906dfd414dc06b80fc652ee8","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.4.tgz","fileCount":365,"integrity":"sha512-NpCV8/D1BLA1oeY7DJJJ+qSJFmIR7S7CkT26vg6x26V14jCTeIsBkRz8Zpk/r7cDJJmVi7mOtKPhvbYRMDorxg==","signatures":[{"sig":"MEUCIAydXgAKlhZtGDxD/LHt0mgW4eCZ7n8xsquf7ED1plVcAiEAm9GkUuLmmEv2K3uNLLqUomxVOMpDCiVq0FabHPtUV8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC34bar8OOH0gPfHFmgkFFNLSQW41ar6C8U0HL7DFak3wIgJxURHzYXGi0cRq9flyzsmGzuJgmATusGIA0tGC4LmXc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10720633},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"1d49d50153b9778273a7ac0fbc308a54838331e1","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.4_1790610081267_0.8318470807628342","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@sfperusacdev/sf-ui","version":"0.2.5","_id":"@sfperusacdev/sf-ui@0.2.5","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"a1b3415f134d0ac5607b3a0098cf5831a8709340","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.5.tgz","fileCount":373,"integrity":"sha512-UBdIPM793srpKo1RnejYs05eCoOn7gumCSncYcj+hShp9nbqsvQhBe1kH0MfxYhbeZ7V9Nf5xmVf+LBbGeMT5g==","signatures":[{"sig":"MEUCIQC5jNFXB2MNYKNilvZkR+C+UosZmCoDzC8n1hErOWB1VAIgZv0hYCSrU5nm5CqKto8tj6UB0wp18O6Gf3A8FXxJi1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCPO6EJ6qjTgCIh+jMkir/yPdB9dKSjzMCH0aQNra5i7QIgcbHnt2QUrOvZAFvFetO7XcT8jdbBH/9uMPbiGL6AeaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10878008},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"604969f69704a6f0ca57f019e7cb6731febb6dc4","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.5_1790650470759_0.4855648083585071","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@sfperusacdev/sf-ui","version":"0.2.6","_id":"@sfperusacdev/sf-ui@0.2.6","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"dist":{"shasum":"7d6dfe7aacd03c498e37cfd422cda475fbb97ccc","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.6.tgz","fileCount":383,"integrity":"sha512-HLN44dSl/LdQJFMgRp1BLiP3TzjStUYU7Q1v/M9h/HjzQyn6J9nn6PThUtPUGtqQyBO7EMk8zbC7U2T7QtKkcQ==","signatures":[{"sig":"MEQCIF2Az9i28ZnpeqYLk/DTV5jaUt0KDbzIdF1KIaaBCRT3AiBJzgz7VokBE23vfjTxp1xUniFQUNS9OGElJISFHW8B2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC98dhBSLLQuPcre1g0+KHbHEJnaP1iGFpEocBYQRcnnAiEA8wMZhIfa5zA/ugHGg3dhILh0bLEYIbtc9heon4nCm1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10996637},"main":"./dist/sf-ui.umd.cjs","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"0a679e66a7d4cebf272ddb73d711b1dfdc29e0c4","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"tmp":"tmp/sf-ui_0.2.6_1790776562655_0.20763465581962515","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"_id":"@sfperusacdev/sf-ui@0.2.7","dist":{"shasum":"12f534e40dad94ce9d2fd377570f89d6f0e448f1","tarball":"https://registry.npmjs.org/@sfperusacdev/sf-ui/-/sf-ui-0.2.7.tgz","fileCount":383,"integrity":"sha512-wCI9EAx31w1nHIdf4get3jsbU6va4iyoCY0QZBeuiOvyQISJo/3dJXENy2ecuZKG/+PiIL6zXRVrR/b2TBxctw==","signatures":[{"sig":"MEQCIGYjD0sGwZ+wwZyrCEuUAUQALg1h9+s5blXCRfI4GTCHAiBkTQUZhBPbGotKhq2hzc9TQ32anBKbLi2JaoKQv7MEVQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIB9rtRaMaslOD1jsOn3MEJnW+p7qXEgs94Wcz23is8p+AiEAuIXyHgPsy6u2XK3XKLOIutY/9hCu/8LUXtHuqjHagHw="}],"unpackedSize":11001688},"main":"./dist/sf-ui.umd.cjs","name":"@sfperusacdev/sf-ui","type":"module","types":"./dist/types/src/index.d.ts","module":"./dist/sf-ui.js","exports":{".":{"import":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.js"},"require":{"types":"./dist/types/src/index.d.ts","default":"./dist/sf-ui.umd.cjs"}},"./styles.css":"./dist/sf-ui.css","./theme/erp.css":"./dist/theme/erp.css","./dist/sf-ui.css":"./dist/sf-ui.css","./theme/dark.css":"./dist/theme/dark.css","./theme/sark.css":"./dist/theme/sark.css","./theme/sf-tokens.css":"./dist/theme/sf-tokens.css"},"gitHead":"0a679e66a7d4cebf272ddb73d711b1dfdc29e0c4","scripts":{"dev":"npm run dev -w playground","lint":"eslint .","sast":"node scripts/security-scan.mjs","test":"vitest run","build":"node scripts/ensure-rolldown-binding.mjs && vite build && tsc -p tsconfig.lib.json && node scripts/copy-theme.mjs","perf:x5":"cross-env PERF_SCALE=5 npm run test:performance","perf:x10":"cross-env PERF_SCALE=10 npm run test:performance","perf:x25":"cross-env PERF_SCALE=25 npm run test:performance","perf:x50":"cross-env PERF_SCALE=50 npm run test:performance","perf:base":"cross-env PERF_SCALE=1 npm run test:performance","perf:x100":"cross-env PERF_SCALE=100 npm run test:performance","type-check":"tsc -p tsconfig.lib.json --noEmit","perf:phase0":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 0\"","perf:phase1":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1\"","perf:phase2":"cross-env PERF_SCALE=100 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 1 \\+ Phase 2\"","perf:phase3":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 3\"","perf:phase4":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 4\"","perf:phase5":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 5\"","perf:phase6":"cross-env PERF_SCALE=1 vitest run src/performance/catalogPhases.performance.test.tsx --reporter=verbose --silent=false --testNamePattern=\"Phase 6\"","security:full":"npm run sast && npm run test:security && npm audit --omit=dev --json","test:security":"vitest run src/utils/spreadsheetSanitizer.test.ts src/utils/sanitizeRichHtml.test.ts src/components/inputs/FileInput.security.test.tsx src/components/media-inputs/MultiPhotoInput.security.test.tsx src/components/document-inputs/DocumentInputs.fuzz.test.tsx src/hooks/maps/useAddressSearch.test.tsx","perf:phase-all":"npm run perf:phase0 && npm run perf:phase1 && npm run perf:phase2 && npm run perf:phase3 && npm run perf:phase4 && npm run perf:phase5 && npm run perf:phase6","prepublishOnly":"npm run build","test:performance":"cross-env SF_PERF_TESTS=1 vitest run src/performance/componentRender.performance.test.tsx --reporter=verbose --silent=false"},"version":"0.2.7","_npmUser":{"name":"sanmoya","email":"hmoya@sfperusac.com"},"workspaces":["playground"],"_npmVersion":"11.6.2","description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","directories":{},"maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"_nodeVersion":"24.11.1","dependencies":{"classnames":"^2.5.1","react-icons":"^5.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"yup":"^1.7.1","vite":"^8.0.12","jsdom":"^26.1.0","react":"^19.2.6","eslint":"^10.3.0","vitest":"^4.1.9","globals":"^17.6.0","leaflet":"^1.9.4","recharts":"^3.9.0","cross-env":"^10.1.0","react-dom":"^19.2.6","@eslint/js":"^10.0.1","typescript":"~6.0.2","@types/node":"^24.12.3","tailwindcss":"^4.3.0","@types/react":"^19.2.14","react-leaflet":"^5.0.0","react-qr-code":"^2.2.0","@types/leaflet":"^1.9.21","react-easy-crop":"^6.0.2","react-hook-form":"^7.75.0","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","react-day-picker":"^10.0.1","@tailwindcss/vite":"^4.3.0","typescript-eslint":"^8.59.2","@hookform/resolvers":"^5.4.0","@codemirror/lang-sql":"^6.10.0","@vitejs/plugin-react":"^6.0.1","@codemirror/lang-html":"^6.4.11","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.100.10","@tanstack/react-table":"^8.21.3","@uiw/react-codemirror":"^4.25.10","@testing-library/react":"^16.3.0","eslint-plugin-react-hooks":"^7.1.1","@codemirror/lang-javascript":"^6.2.5","eslint-plugin-react-refresh":"^0.5.2"},"peerDependencies":{"yup":">=1","react":">=18","leaflet":">=1.9","recharts":">=2","react-dom":">=18","tailwindcss":">=3","react-leaflet":">=4","react-qr-code":">=2","react-easy-crop":">=5","react-hook-form":">=7","react-day-picker":">=9","@hookform/resolvers":">=3","@codemirror/lang-sql":">=6","@codemirror/lang-html":">=6","@codemirror/lang-json":">=6","@tanstack/react-query":">=4","@tanstack/react-table":">=8","@uiw/react-codemirror":">=4","@codemirror/lang-javascript":">=6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sf-ui_0.2.7_1790875149627_0.5044263898654413"}}},"time":{"created":"2026-07-11T22:59:35.532Z","modified":"2026-10-01T17:19:09.924Z","0.1.11":"2026-07-11T22:59:35.840Z","0.1.12":"2026-07-12T01:01:01.215Z","0.1.13":"2026-07-21T13:54:42.728Z","0.1.14":"2026-07-21T19:37:28.864Z","0.1.15":"2026-07-21T22:04:51.960Z","0.1.16":"2026-07-21T23:44:59.377Z","0.1.17":"2026-07-22T02:46:10.246Z","0.1.18":"2026-07-22T16:51:45.567Z","0.1.19":"2026-07-23T01:33:43.341Z","0.1.20":"2026-07-28T06:22:35.553Z","0.1.21":"2026-07-28T07:40:31.895Z","0.1.22":"2026-07-29T03:25:42.592Z","0.1.23":"2026-08-03T03:43:17.074Z","0.1.24":"2026-08-03T04:43:54.184Z","0.1.25":"2026-08-22T04:41:45.296Z","0.1.26":"2026-08-22T04:48:52.875Z","0.1.27":"2026-09-06T06:50:53.451Z","0.1.28":"2026-09-07T21:18:07.393Z","0.1.29":"2026-09-08T23:35:21.127Z","0.1.30":"2026-09-09T00:03:16.579Z","0.1.31":"2026-09-09T03:24:27.279Z","0.1.32":"2026-09-09T06:58:10.242Z","0.1.33":"2026-09-09T08:08:45.675Z","0.1.34":"2026-09-09T08:26:56.798Z","0.1.35":"2026-09-21T13:21:16.205Z","0.1.36":"2026-09-21T22:00:38.497Z","0.1.37":"2026-09-22T01:09:56.923Z","0.1.38":"2026-09-22T02:43:40.865Z","0.1.39":"2026-09-22T04:13:38.886Z","0.2.0":"2026-09-28T03:01:19.666Z","0.2.1":"2026-09-28T03:05:27.329Z","0.2.2":"2026-09-28T05:21:57.703Z","0.2.3":"2026-09-28T05:53:53.161Z","0.2.4":"2026-09-28T15:41:21.408Z","0.2.5":"2026-09-29T02:54:30.935Z","0.2.6":"2026-09-30T13:56:02.805Z","0.2.7":"2026-10-01T17:19:09.763Z"},"description":"SF UI — librería de componentes React (inputs, tablas, hooks) para aplicaciones SF Perú.","maintainers":[{"name":"sanmoya","email":"hmoya@sfperusac.com"},{"name":"rtantajulca","email":"rtantajulca@sfperusac.com"}],"readme":"# @sfperusacdev/sf-ui\n\nLibrería de componentes React para aplicaciones SF Perú.\n\nRepositorio: [github.com/sfperusacdev/sf-ui](https://github.com/sfperusacdev/sf-ui)\n\n## Estructura\n\n```\nsf-ui/\n├── src/              Librería\n├── playground/       App de pruebas\n└── COMPONENT_MEMORY.md   Mapa de componentes y fases\n```\n\n## Clonar desde GitHub (otra PC)\n\n### Requisitos\n\n- Node.js 20+ (LTS recomendado)\n- Git\n- npm\n\n### Pasos\n\n```bash\n# HTTPS\ngit clone https://github.com/sfperusacdev/sf-ui.git\ncd sf-ui\n\n# o SSH (si tienes llave configurada en GitHub)\n# git clone git@github.com:sfperusacdev/sf-ui.git\n# cd sf-ui\n\nnpm install\nnpm run dev\n```\n\nAbre la URL que indique Vite (normalmente `http://localhost:5173`).\n\n### Después de clonar\n\n| Objetivo | Comando |\n|---|---|\n| Playground / probar componentes | `npm run dev` |\n| Compilar librería (`dist/` no va en Git) | `npm run build` |\n| Verificar tipos | `npm run type-check` |\n| Lint | `npm run lint` |\n\n### Playground\n\n- Pestañas **Referencia** e **Agregado** (Fases 1–15; CEO Demo al final).\n- Selector **Tema visual**: Referencia (slate) · ERP (naranja ISP) · Agro (verde SARK).\n- URL: `?tab=inputs-f8&theme=erp`\n\nDocumentación viva: ver `COMPONENT_MEMORY.md`.\nContratos oficiales de consumo: ver `SF_UI_COMPONENT_CONTRACTS.md`.\nCambios de release: ver `CHANGELOG.md`.\n\n## SF Geo + SF Maps\n\nArquitectura cerrada para mapas neutrales, Google/Leaflet y roadmap geo: ver `SF_GEO_MAPS_ARCHITECTURE.md`.\n\nMVP 1 vive dentro de este paquete y se consume desde `@sfperusacdev/sf-ui` con `SfProvider`, `MapView`, `LocationPicker`, `AddressSearchInput`, `AreaInput` y `RouteInput`. `AreaInput` y `RouteInput` permiten añadir puntos, arrastrar vértices, eliminar con doble clic, deshacer y limpiar; validan mínimos cuando son requeridos y el renderer Google conserva mapa/markers/shapes entre renders para edición sin parpadeos.\n\nLa base de pruebas de mapas cubre helpers de coordenadas y servicios puros (`distance`, `routing`) con Vitest.\n\nMVP 2 inició fuera de `sf-ui` como paquete independiente en `../sf-geo-core`, para mantener las reglas geoespaciales sin React, DOM ni provider de mapas.\n\n## Scripts\n\n```bash\nnpm install\nnpm run dev           # Playground\nnpm run build         # Build librería → dist/\nnpm run type-check\nnpm test\nnpm run lint\n```\n\n## Uso en otra app (local)\n\nTras `npm run build` en este repo:\n\n```bash\n# en tu app\nnpm install ../sf-ui\n```\n\n```tsx\nimport \"@sfperusacdev/sf-ui/dist/sf-ui.css\";\nimport \"@sfperusacdev/sf-ui/theme/erp.css\"; // opcional: erp | sark\nimport { Input, CustomTable, Button } from \"@sfperusacdev/sf-ui\";\n```\n\nTemas npm: `@sfperusacdev/sf-ui/theme/sf-tokens.css`, `theme/erp.css`, `theme/sark.css`.\n\n## Migracion desde sarksdk\n\nPara migrar consumo de `validators`, `createFormSchema` y `useCustomForm` desde `@sfperusac/sarksdk`, ver `SARKSDK_CONSUMER_MIGRATION.md`.\n\n## Publicar cambios a GitHub\n\n```bash\ngit add .\ngit commit -m \"tu mensaje\"\ngit push origin main\n```\n\nEn la otra PC:\n\n```bash\ngit pull origin main\nnpm install\nnpm run build   # si usas dist/ o empaquetas la lib\n```\n","readmeFilename":"README.md"}