{"_id":"@cristianmpx/react-import-sheet-ui-raw","_rev":"2-7139e6c04228d27dd6b13f659ae04eed","name":"@cristianmpx/react-import-sheet-ui-raw","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@cristianmpx/react-import-sheet-ui-raw","version":"1.0.0","keywords":["react","import","sheet","excel","csv","headless","hooks","ui","raw"],"author":{"name":"Cristian Marin"},"license":"ISC","_id":"@cristianmpx/react-import-sheet-ui-raw@1.0.0","maintainers":[{"name":"cristianmpx","email":"cristianm.px1995@gmail.com"}],"homepage":"https://github.com/cristianm-developer/react-import-sheet-ui-raw#readme","bugs":{"url":"https://github.com/cristianm-developer/react-import-sheet-ui-raw/issues"},"dist":{"shasum":"91f7c92cd875e8ca6041fc695af1f2262c00033b","tarball":"https://registry.npmjs.org/@cristianmpx/react-import-sheet-ui-raw/-/react-import-sheet-ui-raw-1.0.0.tgz","fileCount":8,"integrity":"sha512-lOfad7puwvraRddJXBrDMNmPUfymR6cDCKIyWBJPKSnxzenG1MVSn4yXw3hDhiKLJidWpANzgl0JDvo0t/J95A==","signatures":[{"sig":"MEYCIQC2uVglWKES1paOz4BIlxCX17qMmv079RWxKlGM+h4/3wIhAJi6vOdJPUiUIBedJ/H2cHezDMAvQJdoBExiNKZAI8LC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":437254},"main":"dist/index.js","types":"dist/index.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b2526776165573f0252ca8673f20f54809aa459b","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest","build":"tsup","commit":"cz","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\" \"stories/**/*.{ts,tsx,js,jsx,json,md}\"","prepare":"husky","lint:fix":"eslint . --fix","test:run":"vitest run","storybook":"storybook dev -p 6006","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json,md}\" \"stories/**/*.{ts,tsx,js,jsx,json,md}\"","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"cristianmpx","email":"cristianm.px1995@gmail.com"},"repository":{"url":"git+https://github.com/cristianm-developer/react-import-sheet-ui-raw.git","type":"git"},"_npmVersion":"11.9.0","description":"UI components for sheet import — built on @cristianmpx/react-import-sheet-headless","directories":{},"lint-staged":{"*.{ts,tsx,js,jsx,json,md}":["eslint --fix","prettier --write"]},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"@cristianmpx/react-import-sheet-headless":"^1.0.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vite":"^6.0.3","husky":"^9.1.7","jsdom":"^25.0.1","react":"^19.2.4","eslint":"^9.17.0","vitest":"^4.0.18","globals":"^15.14.0","prettier":"^3.4.2","react-dom":"^19.2.4","storybook":"^10.2.13","@eslint/js":"^9.17.0","commitizen":"^4.3.1","typescript":"^5.9.3","lint-staged":"^15.2.10","@types/react":"^19.2.14","@commitlint/cli":"^19.6.1","@types/react-dom":"^19.2.3","@vitest/coverage-v8":"^4.0.18","eslint-plugin-react":"^7.37.2","@testing-library/dom":"^10.4.1","@vitejs/plugin-react":"^4.3.4","@storybook/addon-a11y":"^10.2.13","@storybook/addon-docs":"^10.2.13","@storybook/react-vite":"^10.2.13","@testing-library/react":"^16.0.1","eslint-config-prettier":"^9.1.0","@storybook/addon-vitest":"^10.2.13","@testing-library/jest-dom":"^6.6.3","@typescript-eslint/parser":"^8.18.0","cz-conventional-changelog":"^3.3.0","eslint-plugin-react-hooks":"^5.1.0","@commitlint/config-conventional":"^19.6.0","@typescript-eslint/eslint-plugin":"^8.18.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-import-sheet-ui-raw_1.0.0_1772567246531_0.15205572652011745","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@cristianmpx/react-import-sheet-ui-raw","version":"1.0.1","description":"UI components for sheet import — built on @cristianmpx/react-import-sheet-headless","author":{"name":"Cristian Marin"},"license":"ISC","repository":{"type":"git","url":"git+https://github.com/cristianm-developer/react-import-sheet-ui-raw.git"},"homepage":"https://github.com/cristianm-developer/react-import-sheet-ui-raw#readme","bugs":{"url":"https://github.com/cristianm-developer/react-import-sheet-ui-raw/issues"},"keywords":["react","import","sheet","excel","csv","headless","hooks","ui","raw"],"sideEffects":false,"main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"publishConfig":{"access":"public"},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"lint-staged":{"*.{ts,tsx,js,jsx,json,md}":["eslint --fix","prettier --write"]},"scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint .","lint:fix":"eslint . --fix","format":"prettier --write \"src/**/*.{ts,tsx,js,jsx,json,md}\" \"stories/**/*.{ts,tsx,js,jsx,json,md}\"","format:check":"prettier --check \"src/**/*.{ts,tsx,js,jsx,json,md}\" \"stories/**/*.{ts,tsx,js,jsx,json,md}\"","test":"vitest","test:run":"vitest run","test:coverage":"vitest run --coverage","storybook":"storybook dev -p 6006","build-storybook":"storybook build","prepare":"husky","prepublishOnly":"npm run build","commit":"cz"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"dependencies":{"@cristianmpx/react-import-sheet-headless":"^1.0.1"},"devDependencies":{"@commitlint/cli":"^19.6.1","@commitlint/config-conventional":"^19.6.0","@eslint/js":"^9.17.0","@storybook/addon-a11y":"^10.2.13","@storybook/addon-docs":"^10.2.13","@storybook/addon-vitest":"^10.2.13","@storybook/react-vite":"^10.2.13","@testing-library/dom":"^10.4.1","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.0.1","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@typescript-eslint/eslint-plugin":"^8.18.0","@typescript-eslint/parser":"^8.18.0","@vitejs/plugin-react":"^4.3.4","@vitest/coverage-v8":"^4.0.18","commitizen":"^4.3.1","cz-conventional-changelog":"^3.3.0","eslint":"^9.17.0","eslint-config-prettier":"^9.1.0","eslint-plugin-react":"^7.37.2","eslint-plugin-react-hooks":"^5.1.0","globals":"^15.14.0","husky":"^9.1.7","jsdom":"^25.0.1","lint-staged":"^15.2.10","prettier":"^3.4.2","react":"^19.2.4","react-dom":"^19.2.4","storybook":"^10.2.13","tsup":"^8.5.1","typescript":"^5.9.3","vite":"^6.0.3","vitest":"^4.0.18"},"gitHead":"b2526776165573f0252ca8673f20f54809aa459b","_id":"@cristianmpx/react-import-sheet-ui-raw@1.0.1","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-9YSSJ76lta7HTI64PojZHtO+QTwUU2fsxAlLscu4UQN9ZjCBX1rUtM8pAA78d4e2sfML3RCZ23zah9iFCwjV3g==","shasum":"c24f332502d7ae2fd16f1dd2eacc14b65ec005ee","tarball":"https://registry.npmjs.org/@cristianmpx/react-import-sheet-ui-raw/-/react-import-sheet-ui-raw-1.0.1.tgz","fileCount":8,"unpackedSize":437264,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIErClN4IvHm/ZRbtrqQm48ntYtvnT04Hbwq8aJhYAixsAiAeacVZ00D6+jisOO8yN5XiR8X0modVrPV5U6zVntFGTw=="}]},"_npmUser":{"name":"cristianmpx","email":"cristianm.px1995@gmail.com"},"directories":{},"maintainers":[{"name":"cristianmpx","email":"cristianm.px1995@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-import-sheet-ui-raw_1.0.1_1772567488334_0.956055671475079"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-03T19:47:26.403Z","modified":"2026-03-03T19:51:29.094Z","1.0.0":"2026-03-03T19:47:26.678Z","1.0.1":"2026-03-03T19:51:28.564Z"},"bugs":{"url":"https://github.com/cristianm-developer/react-import-sheet-ui-raw/issues"},"author":{"name":"Cristian Marin"},"license":"ISC","homepage":"https://github.com/cristianm-developer/react-import-sheet-ui-raw#readme","keywords":["react","import","sheet","excel","csv","headless","hooks","ui","raw"],"repository":{"type":"git","url":"git+https://github.com/cristianm-developer/react-import-sheet-ui-raw.git"},"description":"UI components for sheet import — built on @cristianmpx/react-import-sheet-headless","maintainers":[{"name":"cristianmpx","email":"cristianm.px1995@gmail.com"}],"readme":"# @cristianmpx/react-import-sheet-ui-raw\n\nUI components for sheet import — built on [@cristianmpx/react-import-sheet-headless](https://github.com/cristianm-developer/react-import-sheet-headless). **Hooks-first, headless:** no styles; you apply your own CSS and markup.\n\n## Features\n\n- **Hooks** (`useRawFilePicker`, `useRawCell`, `useRawTableBody`, etc.) with prop-getters and DOM contract (`data-*`, `aria-*`).\n- **RawImporterWorkflow** — optional orchestrator for idle → mapping → process → result/error.\n- **Validation errors:** cells expose `data-has-error` and an error message slot (`getErrorProps`, `data-ris-ui=\"raw-cell-error-message\"`). The workflow supports **cellErrorPlacement** (`inline` | `below` | `none`) to show the message inline, on a second line in the cell, or not in the cell (e.g. tooltip elsewhere).\n\n**Usage reference:** run `npm run storybook` for live examples and demos.\n\n## Install\n\n```bash\nnpm install @cristianmpx/react-import-sheet-ui-raw @cristianmpx/react-import-sheet-headless react react-dom\n```\n\n## Usage\n\nConfigure the headless engine with `ImporterProvider`, then use the raw UI components (e.g. `RawProgressMonitor`, `RawAbortController`) inside that tree. See the headless package for layout and pipeline setup.\n\n```tsx\nimport { ImporterProvider } from '@cristianmpx/react-import-sheet-headless';\nimport { RawProgressMonitor, RawAbortController } from '@cristianmpx/react-import-sheet-ui-raw';\n\n<ImporterProvider layout={myLayout} engine=\"auto\">\n  <RawProgressMonitor>\n    {({ phase, progressRef, aborted }) => (\n      <div>\n        {phase} {aborted && 'Aborted'}\n      </div>\n    )}\n  </RawProgressMonitor>\n  <RawAbortController>Cancel</RawAbortController>\n</ImporterProvider>;\n```\n\n## Scripts\n\n| Script                    | Description                        |\n| ------------------------- | ---------------------------------- |\n| `npm run build`           | Build ESM + CJS + types to `dist/` |\n| `npm run lint`            | Run ESLint                         |\n| `npm run lint:fix`        | ESLint with auto-fix               |\n| `npm run format`          | Prettier write                     |\n| `npm run format:check`    | Prettier check                     |\n| `npm run test`            | Vitest watch                       |\n| `npm run test:run`        | Vitest run once                    |\n| `npm run test:coverage`   | Vitest with coverage (≥90%)        |\n| `npm run storybook`       | Storybook dev server               |\n| `npm run build-storybook` | Build static Storybook             |\n| `npm run commit`          | Commitizen (conventional commits)  |\n\n## Storybook\n\nStorybook includes:\n\n- **Test widget** (addon-vitest): run component tests on stories from the sidebar; optional Accessibility and Coverage.\n- **Accessibility** (addon-a11y): run a11y checks alongside tests and inspect violations in the Accessibility panel.\n- **Docs** (addon-docs): auto-generated docs and MDX (e.g. **Get started** in the sidebar).\n\nRestart Storybook after installing or updating addons.\n\n## License\n\nISC\n","readmeFilename":"README.md"}