{"id":19144938,"url":"https://github.com/samvera-labs/clover-iiif","last_synced_at":"2026-01-08T17:21:29.081Z","repository":{"id":39749201,"uuid":"407293674","full_name":"samvera-labs/clover-iiif","owner":"samvera-labs","description":"Extensible IIIF front-end toolkit and Manifest viewer. Accessible. Composable. Open Source.","archived":false,"fork":false,"pushed_at":"2024-10-11T15:13:44.000Z","size":33204,"stargazers_count":63,"open_issues_count":33,"forks_count":15,"subscribers_count":19,"default_branch":"main","last_synced_at":"2024-10-24T18:39:34.905Z","etag":null,"topics":["audio-player","iiif","iiif-presentation","react","video-player"],"latest_commit_sha":null,"homepage":"https://samvera-labs.github.io/clover-iiif/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samvera-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-16T19:41:27.000Z","updated_at":"2024-10-11T15:12:12.000Z","dependencies_parsed_at":"2023-10-16T21:52:56.472Z","dependency_job_id":"b7417dd6-0759-4e8a-9f17-c96075ec3b33","html_url":"https://github.com/samvera-labs/clover-iiif","commit_stats":{"total_commits":343,"total_committers":8,"mean_commits":42.875,"dds":"0.24489795918367352","last_synced_commit":"66809cb85c09dd57c511f6112b0a945e2924bd65"},"previous_names":["nulib/react-media-player"],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera-labs%2Fclover-iiif","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera-labs%2Fclover-iiif/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera-labs%2Fclover-iiif/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samvera-labs%2Fclover-iiif/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samvera-labs","download_url":"https://codeload.github.com/samvera-labs/clover-iiif/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246952275,"owners_count":20859812,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio-player","iiif","iiif-presentation","react","video-player"],"created_at":"2024-11-09T07:37:03.244Z","updated_at":"2026-01-02T21:19:04.722Z","avatar_url":"https://github.com/samvera-labs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clover IIIF\n\n**Extensible IIIF front-end toolkit and Manifest viewer. Accessible. Composable. Open Source.**\n\nClover IIIF is a suite of Manifest and Collection components combined with lower-level IIIF Presentation 3.0 API UI components. Designed with a focus on accessibility, customization, and developer experience. You can use Clover IIIF to build your own custom IIIF-fluent web interfaces while still using the full power of the IIIF Presentation 3.0 API.\n\n---\n\n## Documentation\n\nFor full documentation, visit [samvera-labs.github.io/clover-iiif](https://samvera-labs.github.io/clover-iiif/).\n\n## Compatibility\n\n- React: 18 and 19 are supported (`react` and `react-dom` `^18.2.0 || ^19.0.0`).\n- Node: 20.5.0 (see `.tool-versions`).\n\n### Test Compatibility Locally\n\nYou can validate React 19 and 18 + Next builds using the included sidecar examples:\n\n```bash\n# 1) Build this library first (outputs to dist/)\nnpm run build\n\n# 2) Create a local tarball and install it in the example apps\nPKG=$(npm pack --silent)\n\n# React 19 + Next 15\ncd examples/next-react19\nnpm i ../../$PKG\nnpm i  # install app deps\nnpm run build\n\n# React 18 + Next 14\ncd ../next-react18\nnpm i ../../$PKG\nnpm i\nnpm run build\n```\n\nIf you want to test different Next/React versions, adjust `examples/next-react19/package.json` or run:\n\n```bash\ncd examples/next-react19\nnpm i next@14.2.18 react@18.3.1 react-dom@18.3.1\nnpm run build\n```\n\n## Contributing\n\nWe welcome all contributions. Please follow our [contributing guidelines](./.github/CONTRIBUTING.md). If you're working on a pull request for this project, create a feature branch off of `main`.\n\n### Development\n\nClover IIIF front-end development occurs within Next.js based [Nextra](https://nextra.site/) documentation. The default url for the local server is `http://localhost:3000`, unless the `3000` port is in use.\n\n```shell\nnpm install\nnpm run dev\n```\n\n### Testing\n\nClover IIIF utilizes [vitest](https://vitest.dev/) for unit testing.\n\n````shell\n# Run tests\nnpm run test\n\n# Run coverage report on the tests\nnpm run coverage\n````\n\n### E2E (HTML WC example)\n\nYou can quickly validate the plain HTML Web Component example with Playwright:\n\n```shell\n# 1) Ensure Playwright browsers are installed (one-time)\nnpm run e2e:install\n\n# 2) Run the HTML WC test (serves playwright/html on :3002 automatically)\nnpm run e2e:html\n```\n\nTip: If port 3002 is in use, set custom env vars:\n\n```shell\nBASE_URL=http://localhost:4000 \\\nWEB_SERVER_CMD=\"python3 -m http.server 4000 --directory playwright/html\" \\\nnpx playwright test e2e/wc.spec.ts --config=playwright/playwright.config.ts\n```\n\n### Code Quality\n\nClover IIIF utilizes [ESLint](https://eslint.org/) and [Prettier](https://prettier.io/) for code quality. Files will be automatically formatted and \"fixed\" to Prettier and ESLint's configurations when making a `commit` as part of `lint-staged` config. The following commands are also directly available:\n\n```shell\n# Run ESLint\nnpm run lint\n\n# Run Prettier check\nnpm run prettier\n\n# Run Prettier fix\nnpm run prettier:fix\n\n# Run TypeScript checks\nnpm run typecheck\n```\n\n## Releases\n\nThe Clover Suite recently released `v2`. The biggest change from v1.x.x to v2. is that Clover is now more than just a Viewer component. You can still use the Viewer component as you may have previously by following the [Installation and Usage instructions](https://samvera-labs.github.io/clover-iiif/docs/viewer).\n\n## License\n\nThis project is available under the [MIT License](https://github.com/samvera-labs/clover-iiif/blob/main/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera-labs%2Fclover-iiif","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamvera-labs%2Fclover-iiif","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamvera-labs%2Fclover-iiif/lists"}