{"_id":"@droplinked_inc/ui-kit","_rev":"4-32c2b81f6e84c4a96a191c9e0ae0e53e","name":"@droplinked_inc/ui-kit","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.1":{"name":"@droplinked_inc/ui-kit","version":"0.1.1","license":"MIT","_id":"@droplinked_inc/ui-kit@0.1.1","maintainers":[{"name":"droplinked_inc","email":"ali@droplinked.com"}],"homepage":"https://github.com/droplinked/droplink-packages#readme","bugs":{"url":"https://github.com/droplinked/droplink-packages/issues"},"dist":{"shasum":"8685d12aaf30dd39bf1a36dfcd0b583d6971b2b4","tarball":"https://registry.npmjs.org/@droplinked_inc/ui-kit/-/ui-kit-0.1.1.tgz","fileCount":108,"integrity":"sha512-gtPVousVx+Mn+YPQJeZG2JpK0L9thcKjO5L8JJtMNcHc0KdCxfrTEucd2FOv8tHPXqjaFlEj/66/PywEEgzNkg==","signatures":[{"sig":"MEQCICMx8ZcNM3KPUY4Fc7NZuYOsOdGJzJKv55GIrEkz1XyaAiA2lpkziwFuiEwPQ7rWa//uOWnW9GN8DrQnJvpH/rRYIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125535},"main":"./dist/index.js","type":"module","_from":"file:droplinked_inc-ui-kit-0.1.1.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src","test":"jest","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","test:coverage":"jest --coverage"},"_npmUser":{"name":"droplinked_inc","email":"ali@droplinked.com"},"_resolved":"/tmp/1d39d459276e355892cfd5fbfaa02de5/droplinked_inc-ui-kit-0.1.1.tgz","_integrity":"sha512-gtPVousVx+Mn+YPQJeZG2JpK0L9thcKjO5L8JJtMNcHc0KdCxfrTEucd2FOv8tHPXqjaFlEj/66/PywEEgzNkg==","repository":{"url":"git+https://github.com/droplinked/droplink-packages.git","type":"git","directory":"packages/ui-kit"},"_npmVersion":"10.9.7","description":"Droplinked UI component kit — rebuild from droplinked-ui-kit@0.0.40 substrate. Chakra UI v3 based.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","jest-axe":"^9.0.0","react-dom":"^19.0.0","@types/jest":"^29.5.14","@types/react":"^19.0.0","@emotion/react":"^11.14.0","@chakra-ui/react":"^3.30.0","@types/react-dom":"^19.0.0","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@emotion/react":"^11.0.0","@chakra-ui/react":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-kit_0.1.1_1779168343989_0.44896229777035224","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@droplinked_inc/ui-kit","version":"0.1.4","license":"MIT","_id":"@droplinked_inc/ui-kit@0.1.4","maintainers":[{"name":"droplinked_inc","email":"ali@droplinked.com"}],"homepage":"https://github.com/droplinked/droplink-packages#readme","bugs":{"url":"https://github.com/droplinked/droplink-packages/issues"},"dist":{"shasum":"c5f70d8e7d3a80bdde2b0001c606a7cdfb294ec8","tarball":"https://registry.npmjs.org/@droplinked_inc/ui-kit/-/ui-kit-0.1.4.tgz","fileCount":108,"integrity":"sha512-aV+dCacTsAQuBP9jllzdYeeQqTooQfIsGYXfNHgIYqSiKE+nCApjxR7eFEJvOVjIa1zihGH3NTt3yZ4Z8I55iA==","signatures":[{"sig":"MEYCIQC9+pRQt1/0oY9uesQ0QhbZ5oVvnJYPFbdvG9p5BGJNUAIhAPfqxra/rFwb28YuWOq1IYgVnmnHqmSdEGQhWLckoJNi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125778},"main":"./dist/index.js","type":"module","_from":"file:droplinked_inc-ui-kit-0.1.4.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"eslint src","test":"jest","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","test:coverage":"jest --coverage"},"_npmUser":{"name":"droplinked_inc","email":"ali@droplinked.com"},"_resolved":"/tmp/994029958dc2c046001da678737e2872/droplinked_inc-ui-kit-0.1.4.tgz","_integrity":"sha512-aV+dCacTsAQuBP9jllzdYeeQqTooQfIsGYXfNHgIYqSiKE+nCApjxR7eFEJvOVjIa1zihGH3NTt3yZ4Z8I55iA==","repository":{"url":"git+https://github.com/droplinked/droplink-packages.git","type":"git","directory":"packages/ui-kit"},"_npmVersion":"10.9.7","description":"Droplinked UI component kit — rebuild from droplinked-ui-kit@0.0.40 substrate. Chakra UI v3 based.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","jest-axe":"^9.0.0","react-dom":"^19.0.0","@types/jest":"^29.5.14","@types/react":"^19.0.0","@emotion/react":"^11.14.0","@chakra-ui/react":"^3.30.0","@types/react-dom":"^19.0.0","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@emotion/react":"^11.0.0","@chakra-ui/react":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-kit_0.1.4_1779173508801_0.528493862480782","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@droplinked_inc/ui-kit","version":"0.1.5","license":"MIT","_id":"@droplinked_inc/ui-kit@0.1.5","maintainers":[{"name":"droplinked_inc","email":"ali@droplinked.com"}],"homepage":"https://github.com/droplinked/droplink-packages#readme","bugs":{"url":"https://github.com/droplinked/droplink-packages/issues"},"dist":{"shasum":"b22ed5489959a421e9abf39e09ed6dd2c82aaa4c","tarball":"https://registry.npmjs.org/@droplinked_inc/ui-kit/-/ui-kit-0.1.5.tgz","fileCount":135,"integrity":"sha512-nP6Qv5HGoyD5SsfMyQe9skcq5n9Q6gq+33hD05Uv89Pvs3lXGTyYLGd+vORQHR91ssMkYsdRAUFrZPuW0l74Ww==","signatures":[{"sig":"MEUCIHTnovKMJqksg7YzuDvZR4o7hSQDb/sfum8z/F8sQJiXAiEAofeAwd+9XjfXesoOauZZPM/V9IuMW6G2XjAX8l2bZEE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189909},"main":"./dist/cjs/index.js","type":"module","_from":"file:droplinked_inc-ui-kit-0.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js","require":"./dist/cjs/index.js"}},"scripts":{"lint":"eslint src","test":"jest","build":"tsc -p tsconfig.json && swc src -d dist/cjs --strip-leading-paths --only \"**/*.ts,**/*.tsx\" --ignore \"**/*.d.ts,**/*.test.ts,**/*.test.tsx,**/__tests__/**\" && node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'}))\"","typecheck":"tsc --noEmit -p tsconfig.json","test:coverage":"jest --coverage"},"_npmUser":{"name":"droplinked_inc","email":"ali@droplinked.com"},"_resolved":"/tmp/2b50c701171f1d7788cfa14d22d0e7b2/droplinked_inc-ui-kit-0.1.5.tgz","_integrity":"sha512-nP6Qv5HGoyD5SsfMyQe9skcq5n9Q6gq+33hD05Uv89Pvs3lXGTyYLGd+vORQHR91ssMkYsdRAUFrZPuW0l74Ww==","repository":{"url":"git+https://github.com/droplinked/droplink-packages.git","type":"git","directory":"packages/ui-kit"},"_npmVersion":"10.9.8","description":"Droplinked UI component kit — rebuild from droplinked-ui-kit@0.0.40 substrate. Chakra UI v3 based.","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","@swc/cli":"^0.8.1","jest-axe":"^9.0.0","react-dom":"^19.0.0","@types/jest":"^29.5.14","@types/react":"^19.0.0","@emotion/react":"^11.14.0","@chakra-ui/react":"^3.30.0","@types/react-dom":"^19.0.0","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0","@emotion/react":"^11.0.0","@chakra-ui/react":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-kit_0.1.5_1779326467752_0.2570942596065744","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@droplinked_inc/ui-kit","version":"0.2.0","description":"Droplinked UI component kit — rebuild from droplinked-ui-kit@0.0.40 substrate. Chakra UI v3 based.","license":"MIT","type":"module","main":"./dist/cjs/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/cjs/index.js","default":"./dist/index.js"}},"peerDependencies":{"@chakra-ui/react":"^3.0.0","@emotion/react":"^11.0.0","react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"devDependencies":{"@chakra-ui/react":"^3.30.0","@emotion/react":"^11.14.0","@swc/cli":"^0.8.1","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.1.0","@testing-library/user-event":"^14.6.1","@types/jest":"^29.5.14","@types/react":"^19.0.0","@types/react-dom":"^19.0.0","jest-axe":"^9.0.0","jest-environment-jsdom":"^29.7.0","react":"^19.0.0","react-dom":"^19.0.0"},"publishConfig":{"provenance":false,"access":"public"},"repository":{"type":"git","url":"git+https://github.com/droplinked/droplink-packages.git","directory":"packages/ui-kit"},"engines":{"node":">=22.0.0"},"scripts":{"build":"tsc -p tsconfig.json && swc src -d dist/cjs --strip-leading-paths --only \"**/*.ts,**/*.tsx\" --ignore \"**/*.d.ts,**/*.test.ts,**/*.test.tsx,**/__tests__/**\" && node -e \"require('fs').writeFileSync('dist/cjs/package.json', JSON.stringify({type:'commonjs'}))\"","test":"jest","test:coverage":"jest --coverage","lint":"eslint src","typecheck":"tsc --noEmit -p tsconfig.json"},"_id":"@droplinked_inc/ui-kit@0.2.0","bugs":{"url":"https://github.com/droplinked/droplink-packages/issues"},"homepage":"https://github.com/droplinked/droplink-packages#readme","_integrity":"sha512-QHrvDzOBQZFtVPdZKYfV/sMYR+BgMqQxveXWKC8hPPxn+FYelInPkTEQtyNTbS8r0VPDbuWWJvRikIH/shuWeg==","_resolved":"/tmp/c7d7c9586928e60dce78a3a7e6c21879/droplinked_inc-ui-kit-0.2.0.tgz","_from":"file:droplinked_inc-ui-kit-0.2.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"11.19.0","dist":{"integrity":"sha512-QHrvDzOBQZFtVPdZKYfV/sMYR+BgMqQxveXWKC8hPPxn+FYelInPkTEQtyNTbS8r0VPDbuWWJvRikIH/shuWeg==","shasum":"70c2709d59fb94098f0e2e9676e6b86d6f16e4fc","tarball":"https://registry.npmjs.org/@droplinked_inc/ui-kit/-/ui-kit-0.2.0.tgz","fileCount":210,"unpackedSize":491266,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDN5X4yS8WuR1M8SvzRmKP79pDAzpFE7aRkjAk1i7pY4QIhAJA1/DAT7Glrw8FBLqTc7xhlOJhiuCB6aeozqLpVLX7C"}]},"_npmUser":{"name":"droplinked_inc","email":"ali@droplinked.com"},"directories":{},"maintainers":[{"name":"droplinked_inc","email":"ali@droplinked.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui-kit_0.2.0_1786016230347_0.31893331643157463"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-19T05:25:43.856Z","modified":"2026-08-06T11:37:10.642Z","0.1.1":"2026-05-19T05:25:44.139Z","0.1.4":"2026-05-19T06:51:48.958Z","0.1.5":"2026-05-21T01:21:07.894Z","0.2.0":"2026-08-06T11:37:10.499Z"},"bugs":{"url":"https://github.com/droplinked/droplink-packages/issues"},"license":"MIT","homepage":"https://github.com/droplinked/droplink-packages#readme","repository":{"type":"git","url":"git+https://github.com/droplinked/droplink-packages.git","directory":"packages/ui-kit"},"description":"Droplinked UI component kit — rebuild from droplinked-ui-kit@0.0.40 substrate. Chakra UI v3 based.","maintainers":[{"name":"droplinked_inc","email":"ali@droplinked.com"}],"readme":"# @droplinked_inc/ui-kit\n\n> Replaces `droplinked-ui-kit`. See [MIGRATION.md](../../docs/MIGRATION.md) for the swap path.\n\nDroplinked UI component kit. Built on **Chakra UI v3** + **Emotion**.\n\nThis is a clean-room rebuild of the previous `droplinked-ui-kit@0.0.40`\nwritten against the recovered substrate. See\n[`MIGRATION.md`](./MIGRATION.md) for the upgrade path from the old\npackage.\n\n## Install\n\n```sh\npnpm add @droplinked_inc/ui-kit @chakra-ui/react @emotion/react react react-dom\n```\n\n## Use\n\n```tsx\nimport { UIKitProvider, defaultSystem, Button } from '@droplinked_inc/ui-kit';\n\nexport function App() {\n  return (\n    <UIKitProvider system={defaultSystem}>\n      <Button variant=\"primary\">Pay now</Button>\n    </UIKitProvider>\n  );\n}\n```\n\n## What's in v0.1\n\n23 components covering the full surface used by `droplinked-checkout`:\n\n- **Primitives** — `Button`, `Input`, `TextArea`, `Checkbox`, `Divider`\n- **Layout** — `RuledGrid`, `SectionTitle`, `CheckoutHeader`\n- **Overlays** — `Modal`, `Notice` (was `Toast` — alias preserved), `SuccessBar`\n- **Data display** — `Chips`, `IconContainer`, `ProductCard`,\n  `DetailsItem`, `DetailsData`, `ListItem`\n- **Selection** — `SelectionCard`, `SelectionTab`, `Dropdown`, `SearchBar`\n- **Theme** — `UIKitProvider`, `defaultSystem`, `createThemeSystem`,\n  `defaultLightTheme`, `defaultRadii`, `defaultTypography`,\n  `cornerRadiusOptions`\n\n## Feedback primitives — canonical action prop API\n\n`EmptyState` and `ErrorState` share a single canonical action-prop\nshape: `actionLabel?: string` + `onAction?: () => void`. Use the short\nform on both surfaces:\n\n```tsx\n<EmptyState\n  title=\"No merchants yet\"\n  description=\"Connect your first PSP to surface merchants here.\"\n  actionLabel=\"Connect PSP\"\n  onAction={connectPsp}\n/>\n\n<ErrorState\n  title=\"Could not load merchants\"\n  actionLabel=\"Try again\"\n  onAction={retry}\n/>\n```\n\n`EmptyState` also accepts `primaryActionLabel` + `onPrimaryAction` as\n**`@deprecated` aliases** of the canonical short-form. Existing call\nsites continue to work but the long-form will be removed in the next\nmajor bump — migrate to `actionLabel` + `onAction`. When both forms are\npassed in the same render the canonical short-form wins and a dev\nwarning fires.\n\n## Hardening\n\n- URL props (`href`, `src`) pass through a strict allow-list (`http`,\n  `https`, `mailto`, relative paths). `javascript:` / `data:` URLs are\n  dropped.\n- No `dangerouslySetInnerHTML` anywhere in the package.\n- All string props render through React text nodes (no HTML\n  interpretation).\n- Form callbacks are strictly typed — no `any`.\n- Components forward refs where appropriate and accept `data-testid`.\n\n## Test & lint\n\n```sh\npnpm test            # 67 tests, jsdom\npnpm test:coverage   # ≥92% statements / ≥93% lines\npnpm typecheck\npnpm lint\n```\n","readmeFilename":"README.md"}