{"_id":"@agamagar/away-design-system","_rev":"3-defa564ad592d634699c71ea594f6fa8","name":"@agamagar/away-design-system","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@agamagar/away-design-system","version":"0.1.0","keywords":["react-native","expo","design-system","unistyles","away","components","ui-kit"],"author":{"name":"agamagar"},"license":"MIT","_id":"@agamagar/away-design-system@0.1.0","maintainers":[{"name":"agamagar","email":"agamagar117@gmail.com"}],"homepage":"https://github.com/agamagar/away-design-system#readme","bugs":{"url":"https://github.com/agamagar/away-design-system/issues"},"dist":{"shasum":"b8994aa5c79d3e2d784ad90b64d3a9b5f974d68d","tarball":"https://registry.npmjs.org/@agamagar/away-design-system/-/away-design-system-0.1.0.tgz","fileCount":54,"integrity":"sha512-HYAxbkVD6v17iBUExz54gdQeTOFGVImqECvtDJZySZfKE1Hci1v7zpkFpm56VoJUHiIbkvGoWvKpdFcEpNS3nQ==","signatures":[{"sig":"MEYCIQDx3hvRPszgdzFZ85iIRrKev69SlWKx7f2SaMGBhExpkQIhAIPDBMGVqoB8VBPpQ7OXrmrO4lhIVbnpqRjCnhNsoGA+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151376},"main":"src/index.ts","types":"src/index.ts","module":"src/index.ts","source":"src/index.ts","gitHead":"defe1a787d0bed66d9cf357403fa85db78415e6b","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"agamagar","email":"agamagar117@gmail.com"},"repository":{"url":"git+https://github.com/agamagar/away-design-system.git","type":"git"},"_npmVersion":"10.9.2","description":"Away design system for React Native (Expo + Unistyles v3): theme tokens, uiKit primitives, and the agent/concierge component kit.","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0"},"peerDependencies":{"react":">=18","expo-image":"*","expo-haptics":"*","react-native":">=0.74","react-i18next":">=13","react-native-svg":">=15","expo-linear-gradient":"*","phosphor-react-native":">=3","react-native-worklets":"*","react-native-unistyles":">=3","@hugeicons/react-native":">=1","react-native-reanimated":">=3","@hugeicons/core-free-icons":">=4","react-native-gesture-handler":">=2"},"peerDependenciesMeta":{"expo-image":{"optional":true},"react-i18next":{"optional":true},"react-native-svg":{"optional":true},"expo-linear-gradient":{"optional":true},"phosphor-react-native":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/away-design-system_0.1.0_1783065890783_0.29401026982817213","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agamagar/away-design-system","version":"0.2.0","keywords":["react-native","expo","design-system","unistyles","away","components","ui-kit"],"author":{"name":"agamagar"},"license":"MIT","_id":"@agamagar/away-design-system@0.2.0","maintainers":[{"name":"agamagar","email":"agamagar117@gmail.com"}],"homepage":"https://github.com/agamagar/away-design-system#readme","bugs":{"url":"https://github.com/agamagar/away-design-system/issues"},"dist":{"shasum":"b867fb91cdd2be1825eaee8dcf01c3d07fd4b2ee","tarball":"https://registry.npmjs.org/@agamagar/away-design-system/-/away-design-system-0.2.0.tgz","fileCount":74,"integrity":"sha512-OTBKDi161oDiCpPoYlvwwsFPx24PhyIDIZ5MljicpFMwsOUly9mh2aq6O1Oxl4HZUAgqxpiZz+Oy5e35MVQmzQ==","signatures":[{"sig":"MEUCIBQArfOvi9HQhx2ykbi8YMF6tb+V0x4402UuJpHR/vO8AiEA/gVlEZTHThUw60uclXOlNM8pZZ0yaqk3EKG4sFNBvEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202798},"main":"src/index.ts","types":"src/index.ts","module":"src/index.ts","source":"src/index.ts","gitHead":"93e173e85b66f0ab5b7217d2bfcccea910e08eab","scripts":{"typecheck":"tsc --noEmit"},"_npmUser":{"name":"agamagar","email":"agamagar117@gmail.com"},"repository":{"url":"git+https://github.com/agamagar/away-design-system.git","type":"git"},"_npmVersion":"10.9.2","description":"Away design system for React Native (Expo + Unistyles v3): theme tokens, uiKit primitives, and the agent/concierge component kit.","directories":{},"sideEffects":false,"_nodeVersion":"23.10.0","react-native":"src/index.ts","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"i18next":"^26.3.4","expo-image":"^57.0.0","typescript":"5.6","react-i18next":"^17.0.8","expo-linear-gradient":"^57.0.0","phosphor-react-native":"^3.0.6"},"peerDependencies":{"react":">=18","expo-image":"*","expo-haptics":"*","react-native":">=0.74","react-i18next":">=13","react-native-svg":">=15","expo-linear-gradient":"*","phosphor-react-native":">=3","react-native-worklets":"*","react-native-unistyles":">=3","@hugeicons/react-native":">=1","react-native-reanimated":">=3","@hugeicons/core-free-icons":">=4","react-native-gesture-handler":">=2"},"peerDependenciesMeta":{"expo-image":{"optional":true},"react-i18next":{"optional":true},"react-native-svg":{"optional":true},"expo-linear-gradient":{"optional":true},"phosphor-react-native":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/away-design-system_0.2.0_1783235541124_0.502794442803999","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agamagar/away-design-system","version":"0.3.0","description":"Away design system for React Native (Expo + Unistyles v3): theme tokens, base component system (variant engine + mobile shell), AI-agent chat kit, uiKit primitives, and the agent/concierge component kit.","keywords":["react-native","expo","design-system","unistyles","away","components","ui-kit"],"license":"MIT","author":{"name":"agamagar"},"repository":{"type":"git","url":"git+https://github.com/agamagar/away-design-system.git"},"homepage":"https://github.com/agamagar/away-design-system#readme","bugs":{"url":"https://github.com/agamagar/away-design-system/issues"},"main":"src/index.ts","module":"src/index.ts","types":"src/index.ts","react-native":"src/index.ts","source":"src/index.ts","sideEffects":false,"scripts":{"typecheck":"tsc --noEmit"},"peerDependencies":{"@hugeicons/core-free-icons":">=4","@hugeicons/react-native":">=1","expo-haptics":"*","expo-image":"*","expo-linear-gradient":"*","phosphor-react-native":">=3","react":">=18","react-i18next":">=13","react-native":">=0.74","react-native-gesture-handler":">=2","react-native-reanimated":">=3","react-native-svg":">=15","react-native-unistyles":">=3","react-native-worklets":"*"},"peerDependenciesMeta":{"react-native-svg":{"optional":true},"expo-linear-gradient":{"optional":true},"expo-image":{"optional":true},"phosphor-react-native":{"optional":true},"react-i18next":{"optional":true}},"devDependencies":{"expo-image":"^57.0.0","expo-linear-gradient":"^57.0.0","i18next":"^26.3.4","phosphor-react-native":"^3.0.6","react-i18next":"^17.0.8","typescript":"5.6"},"publishConfig":{"access":"public"},"_id":"@agamagar/away-design-system@0.3.0","gitHead":"67b8fa78581117b0964c6eb97c1db32d4dc2a94c","_nodeVersion":"23.10.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-BbekFvX+8SH0r5wMaqliUmA0qD5dgqgQ9bgdfqOLf9JxheT3LOABIW5kMz6ICUOl37nk36shE6maRhAgaiJkig==","shasum":"ca592f3e75a19702260950c0efad2f339650ce36","tarball":"https://registry.npmjs.org/@agamagar/away-design-system/-/away-design-system-0.3.0.tgz","fileCount":107,"unpackedSize":311374,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBZ9SWm6A3gtGcayf8zRa1e5Fp2IpAARB8gCowdorWT/AiEAzxsKsIYgpzjVi0aTWwcerqDj5K9xQLL84CfnBJqbgXE="}]},"_npmUser":{"name":"agamagar","email":"agamagar117@gmail.com"},"directories":{},"maintainers":[{"name":"agamagar","email":"agamagar117@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/away-design-system_0.3.0_1784015686681_0.9181442116778993"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-03T08:04:50.677Z","modified":"2026-07-14T07:54:46.913Z","0.1.0":"2026-07-03T08:04:50.919Z","0.2.0":"2026-07-05T07:12:21.252Z","0.3.0":"2026-07-14T07:54:46.811Z"},"bugs":{"url":"https://github.com/agamagar/away-design-system/issues"},"author":{"name":"agamagar"},"license":"MIT","homepage":"https://github.com/agamagar/away-design-system#readme","keywords":["react-native","expo","design-system","unistyles","away","components","ui-kit"],"repository":{"type":"git","url":"git+https://github.com/agamagar/away-design-system.git"},"description":"Away design system for React Native (Expo + Unistyles v3): theme tokens, base component system (variant engine + mobile shell), AI-agent chat kit, uiKit primitives, and the agent/concierge component kit.","maintainers":[{"name":"agamagar","email":"agamagar117@gmail.com"}],"readme":"# @agamagar/away-design-system\n\nThe **Away** design system for React Native (Expo + [Unistyles v3](https://www.unistyl.es/)):\n\n- **Theme tokens** — color palettes, semantic tokens, and the light/indigo **agent** token layer.\n- **Base components** — a variant-driven base layer (`Box`, `Stack`, `Text`, `Button`, `Input`, `Card`, `Switch`, …) built to be **used as-is or extended**; all colors/sizes route through one `foundation.ts` contract.\n- **uiKit primitives** — `UiText`, `UiButton`, `UiPressable`.\n- **Agent Kit** — the concierge + agent-search components (16 components + 6 screens) synced from the Figma \"Figma Motion\" file.\n\nThe active runtime theme is **`away`** — a dark, navy-tinted theme. See [`DESIGN.md`](./DESIGN.md) for the full token + component contract.\n\n> Ships as **TypeScript source** — consumed and transpiled by your app's Metro/Babel pipeline (the standard for Expo libraries). No build step; types come straight from source.\n\n## Install\n\n```sh\n# npm\nnpm install @agamagar/away-design-system\n\n# or from GitHub directly\nnpm install github:agamagar/away-design-system\n```\n\n### Peer dependencies\n\nInstall the peers your app doesn't already have:\n\n```sh\nnpx expo install react-native-unistyles react-native-reanimated react-native-gesture-handler \\\n  react-native-worklets react-native-svg expo-haptics expo-linear-gradient expo-image \\\n  @hugeicons/react-native @hugeicons/core-free-icons phosphor-react-native react-i18next\n```\n\n`react-native-svg`, `expo-linear-gradient`, `expo-image`, `phosphor-react-native`, and\n`react-i18next` are **optional** — only needed if you use the components that depend on them.\n\n## Base components (use as base, then modify)\n\nEverything resolves through `src/base/foundation.ts` — **the single modify-point**:\n`Tone` (`neutral | accent | success | warning | danger | info`) ×\n`Variant` (`solid | soft | outline | ghost`) × `Size` (`sm | md | lg`, `md` = 44pt).\nRe-accent or resize the whole system by editing the resolvers; components stay untouched.\n\n```tsx\nimport { Box, VStack, HStack, Text, Button, Input, Card, Chip, Switch } from '@agamagar/away-design-system';\n\n<Card level={1} onPress={open}>\n  <VStack gap=\"sm\">\n    <Text variant=\"heading\">Trip to Goa</Text>\n    <Text variant=\"caption\" color=\"secondary\">Dec 12 – Dec 16</Text>\n    <HStack gap=\"sm\">\n      <Chip label=\"Non-stop\" selected tone=\"accent\" />\n      <Chip label=\"Refundable\" />\n    </HStack>\n    <Button label=\"Search flights\" tone=\"accent\" fullWidth onPress={search} />\n  </VStack>\n</Card>\n```\n\n| Layer | Components |\n|---|---|\n| Layout | `Box` (token-mapped props), `Stack`/`HStack`/`VStack`, `Spacer`, `Divider` |\n| Typography | `Text` (`variant`: display/title/heading/body/label/caption/overline) |\n| Behavior | `BasePressable` (scale/opacity feedback + haptics + debounce) — extend for custom tappables |\n| Controls | `Button` (loading/leading/trailing), `IconButton`, `Chip`, `Badge` |\n| Surfaces | `Card` (levels 1–3), `ListRow` (leading/title/subtitle/trailing), `Avatar` |\n| Forms | `Input` (label/helper/error/focus ring), `Checkbox`, `Radio`, `Switch` |\n| Feedback | `Spinner`, `Skeleton` |\n\nTo build a custom on-system component, import the contract:\n\n```tsx\nimport { resolveVariant, CONTROL_SIZES, type Tone } from '@agamagar/away-design-system';\n```\n\n## Setup\n\nRegister the themes **once** at startup, before rendering anything:\n\n```ts\n// app/_layout.tsx (or your entry)\nimport { configureAwayUnistyles } from '@agamagar/away-design-system';\n\nconfigureAwayUnistyles(); // initialTheme: 'away'\n```\n\nMake sure your app is wrapped in `GestureHandlerRootView` (required by `UiButton`,\n`UiPressable`, and the gesture-driven agent components).\n\n## Usage\n\n```tsx\nimport {\n  UiText,\n  AgentInputBar,\n  AgentDestinationScreen,\n  useAwayAgentTokens, // via theme\n} from '@agamagar/away-design-system';\nimport { useUnistyles } from 'react-native-unistyles';\n\nfunction Composer() {\n  return <AgentInputBar contextLabel=\"DEL, BLR +2 others\" onSend={(t) => console.log(t)} />;\n}\n```\n\nRead tokens through Unistyles:\n\n```tsx\nconst { theme } = useUnistyles();\ntheme.colors.agent.accent;   // #6d5cf0\ntheme.colors.background;      // #0b0b14 (away)\ntheme.spacing.md;             // 12\n```\n\n## What's exported\n\n**Theme:** `configureAwayUnistyles`, `themes`, `breakpoints`, `palette`, `lightTheme`,\n`darkTheme`, `awayTheme`, `agentColors`, `agentShadows`.\n\n**uiKit:** `UiText`, `UiButton`, `UiPressable`.\n\n**Agent Kit primitives:** `AgentRoundButton`, `AgentInputBar`, `AgentCard`,\n`AgentSuggestionCard`, `AgentSuggestionRow`, `AgentAttachmentThumb`, `AgentChatDock`,\n`AgentSearchSheet`, `AgentSegmented`, `AgentSearchField`, `AgentSelectRow`, `AgentStepper`,\n`AgentPriceBars`, `AgentCalendar`, `AgentTimeDial`, plus `AGENT` / `AGENT_HIT_SLOP`.\n\n**Agent screens:** `AgentDestinationScreen`, `AgentDatesScreen`, `AgentPassengersScreen`,\n`AgentTravelClassScreen`, `AgentTimeScreen`, `AgentPreferencesScreen` (faithful reproductions\nwith sample data; not navigation-wired).\n\n## Publishing (maintainers)\n\n```sh\nnpm login\nnpm publish   # publishConfig.access = \"public\"\n```\n\nBump `version` first. To publish privately, set `publishConfig.access` to `restricted`\n(requires a paid npm plan) or keep distribution via GitHub install.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}