{"_id":"@damarkuncoro/ui-library","_rev":"4-7432f54920cbbc9153ae98fbf49c6757","name":"@damarkuncoro/ui-library","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@damarkuncoro/ui-library","version":"0.0.1","author":{"name":"Damar Kuncoro"},"_id":"@damarkuncoro/ui-library@0.0.1","maintainers":[{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"}],"dist":{"shasum":"d7f1e1dced5200c51ce2cdb35c796ff4f8538d6d","tarball":"https://registry.npmjs.org/@damarkuncoro/ui-library/-/ui-library-0.0.1.tgz","fileCount":165,"integrity":"sha512-FOBDq6WgjAsGIXrxw4d+49bjQn+Qce9+hW4VtoBaWQndaZQdfLeZxlg0ybD8LbzRRH8W4AYzOvPNepnh9n8tAw==","signatures":[{"sig":"MEYCIQCHerdd5y1EkcKRpNnb6lh07k561Xv/IhckQbbwEzOfUAIhAJ+qhNfxEtOC0iNmcz/gPdGhYKY/sEgTF4QUet42o5DN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":285926},"main":"lib/cjs/index.js","_from":"file:damarkuncoro-ui-library-0.0.1.tgz","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","exports":{".":{"types":"./lib/esm/index.d.ts","import":"./lib/esm/index.js","require":"./lib/cjs/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"rm -rf lib && tsc -p tsconfig.build.esm.json && tsc -p tsconfig.build.cjs.json && echo '{\"type\": \"module\"}' > lib/esm/package.json && echo '{\"type\": \"commonjs\"}' > lib/cjs/package.json","meta-architecture":"meta-architecture"},"_npmUser":{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"},"_resolved":"/private/var/folders/5q/j90n97w16zd2vsdm445cmp680000gp/T/5a50e9fd8c20af03c7b59770c26826fc/damarkuncoro-ui-library-0.0.1.tgz","_integrity":"sha512-FOBDq6WgjAsGIXrxw4d+49bjQn+Qce9+hW4VtoBaWQndaZQdfLeZxlg0ybD8LbzRRH8W4AYzOvPNepnh9n8tAw==","_npmVersion":"10.8.2","description":"A strict Meta-Architecture compliant UI library focusing on Separation of Concerns, Zero Hardcoding, and Contract-Driven Development.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"@damarkuncoro/meta-architecture":"latest"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.11","jsdom":"^26.0.0","react":"^19.2.4","vitest":"^4.0.18","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.2.0","@types/react":"^19.2.10","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^4.3.4","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ui-library_0.0.1_1770098249162_0.01798609429498188","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@damarkuncoro/ui-library","version":"0.0.2","author":{"name":"Damar Kuncoro"},"_id":"@damarkuncoro/ui-library@0.0.2","maintainers":[{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"}],"dist":{"shasum":"0311cc1d85dbbd8b89205c1f2c3d4773fae17f2f","tarball":"https://registry.npmjs.org/@damarkuncoro/ui-library/-/ui-library-0.0.2.tgz","fileCount":165,"integrity":"sha512-8i0pL33W3CqZUI3/ftZLCTIH3PFvbIw13Sts8IfZj9YYokmqjSkMR9Nbh/DxOZ96RZRS+CnuKdxqT0G2XS+LMA==","signatures":[{"sig":"MEUCIQCR3s1iCkMUK5QJJbPV3H4wXDT4L3BlP67NV77W+lqDBwIgJhBDK/NEELaPuKf2cwXrOUUd2w7i/TNBqmHwXnU4ZlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":305803},"main":"lib/cjs/index.js","_from":"file:damarkuncoro-ui-library-0.0.2.tgz","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","exports":{".":{"types":"./lib/esm/index.d.ts","import":"./lib/esm/index.js","require":"./lib/cjs/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vitest","build":"rm -rf lib && tsc -p tsconfig.build.esm.json && tsc -p tsconfig.build.cjs.json && echo '{\"type\": \"module\"}' > lib/esm/package.json && echo '{\"type\": \"commonjs\"}' > lib/cjs/package.json","meta-architecture":"meta-architecture"},"_npmUser":{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"},"_resolved":"/private/var/folders/5q/j90n97w16zd2vsdm445cmp680000gp/T/b0ab3a718e1c7901a17681b195dc2caf/damarkuncoro-ui-library-0.0.2.tgz","_integrity":"sha512-8i0pL33W3CqZUI3/ftZLCTIH3PFvbIw13Sts8IfZj9YYokmqjSkMR9Nbh/DxOZ96RZRS+CnuKdxqT0G2XS+LMA==","_npmVersion":"10.8.2","description":"A strict Meta-Architecture compliant UI library focusing on Separation of Concerns, Zero Hardcoding, and Contract-Driven Development.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"@damarkuncoro/meta-architecture":"latest"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.11","jsdom":"^26.0.0","react":"^19.2.4","vitest":"^4.0.18","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.2.0","@types/react":"^19.2.10","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^4.3.4","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ui-library_0.0.2_1770100011768_0.9382650109140509","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@damarkuncoro/ui-library","version":"0.0.3","author":{"name":"Damar Kuncoro"},"_id":"@damarkuncoro/ui-library@0.0.3","maintainers":[{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"}],"dist":{"shasum":"a7067823219dc20cdcf1f145014fcec498772c5f","tarball":"https://registry.npmjs.org/@damarkuncoro/ui-library/-/ui-library-0.0.3.tgz","fileCount":239,"integrity":"sha512-MycrVz/ff2oD/NBLswrQSoS9xktYpDcx7zT3APIa/iuvSAeBBV7kddLjm4th9t25rYNlQEtezhk0FP4u2sIWJg==","signatures":[{"sig":"MEQCIFVaeuoOuekeLo/eoBst3chPs6z91R2M9JnmtXITL561AiB9vSrrxQBJsy7krz1w1L7YoH+99vlGioY0SDxoHXZfRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376816},"main":"lib/cjs/index.js","_from":"file:damarkuncoro-ui-library-0.0.3.tgz","types":"lib/esm/index.d.ts","module":"lib/esm/index.js","exports":{".":{"types":"./lib/esm/index.d.ts","import":"./lib/esm/index.js","require":"./lib/cjs/index.js"},"./tailwind":{"types":"./lib/esm/tailwind.d.ts","import":"./lib/esm/tailwind.js","require":"./lib/cjs/tailwind.js"},"./tailwind/v3":{"types":"./lib/esm/tailwind-v3.d.ts","import":"./lib/esm/tailwind-v3.js","require":"./lib/cjs/tailwind-v3.js"},"./tailwind/v4":{"types":"./lib/esm/tailwind-v4.d.ts","import":"./lib/esm/tailwind-v4.js","require":"./lib/cjs/tailwind-v4.js"},"./package.json":"./package.json","./styles/contract-fallback.css":{"import":"./lib/esm/styles/contract-fallback.css","require":"./lib/cjs/styles/contract-fallback.css"}},"scripts":{"test":"vitest","build":"rm -rf lib && tsc -p tsconfig.build.esm.json && tsc -p tsconfig.build.cjs.json && echo '{\"type\": \"module\"}' > lib/esm/package.json && echo '{\"type\": \"commonjs\"}' > lib/cjs/package.json && mkdir -p lib/esm/styles lib/cjs/styles && cp -R src/styles/* lib/esm/styles/ && cp -R src/styles/* lib/cjs/styles/","meta-architecture":"meta-architecture"},"_npmUser":{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"},"_resolved":"/private/var/folders/5q/j90n97w16zd2vsdm445cmp680000gp/T/333d31591753e58f5719dc57ec4cbc2e/damarkuncoro-ui-library-0.0.3.tgz","_integrity":"sha512-MycrVz/ff2oD/NBLswrQSoS9xktYpDcx7zT3APIa/iuvSAeBBV7kddLjm4th9t25rYNlQEtezhk0FP4u2sIWJg==","_npmVersion":"10.8.2","description":"A strict Meta-Architecture compliant UI library focusing on Separation of Concerns, Zero Hardcoding, and Contract-Driven Development.","directories":{},"_nodeVersion":"20.19.4","dependencies":{"@damarkuncoro/meta-architecture":"latest"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.11","jsdom":"^26.0.0","react":"^19.2.4","vitest":"^4.0.18","react-dom":"^19.2.4","typescript":"^5.9.3","@types/node":"^25.2.0","@types/react":"^19.2.10","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^4.3.4","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/ui-library_0.0.3_1770128206599_0.13771726942214957","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@damarkuncoro/ui-library","version":"0.0.4","main":"lib/cjs/index.js","module":"lib/esm/index.js","types":"lib/esm/index.d.ts","exports":{".":{"types":"./lib/esm/index.d.ts","import":"./lib/esm/index.js","require":"./lib/cjs/index.js"},"./tailwind":{"types":"./lib/esm/tailwind.d.ts","import":"./lib/esm/tailwind.js","require":"./lib/cjs/tailwind.js"},"./tailwind/v3":{"types":"./lib/esm/tailwind-v3.d.ts","import":"./lib/esm/tailwind-v3.js","require":"./lib/cjs/tailwind-v3.js"},"./tailwind/v4":{"types":"./lib/esm/tailwind-v4.d.ts","import":"./lib/esm/tailwind-v4.js","require":"./lib/cjs/tailwind-v4.js"},"./styles/contract-fallback.css":{"import":"./lib/esm/styles/contract-fallback.css","require":"./lib/cjs/styles/contract-fallback.css"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"dependencies":{"@damarkuncoro/meta-architecture":"latest"},"peerDependencies":{"react":">=18","react-dom":">=18"},"devDependencies":{"@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.2.0","@types/node":"^25.2.0","@types/react":"^19.2.10","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^4.3.4","jsdom":"^26.0.0","react":"^19.2.4","react-dom":"^19.2.4","typescript":"^5.9.3","vite":"^6.0.11","vitest":"^4.0.18"},"author":{"name":"Damar Kuncoro"},"scripts":{"build":"rm -rf lib && tsc -p tsconfig.build.esm.json && tsc -p tsconfig.build.cjs.json && echo '{\"type\": \"module\"}' > lib/esm/package.json && echo '{\"type\": \"commonjs\"}' > lib/cjs/package.json && mkdir -p lib/esm/styles lib/cjs/styles && cp -R src/styles/* lib/esm/styles/ && cp -R src/styles/* lib/cjs/styles/","test":"vitest","meta-architecture":"meta-architecture"},"_id":"@damarkuncoro/ui-library@0.0.4","description":"A strict Meta-Architecture compliant UI library focusing on Separation of Concerns, Zero Hardcoding, and Contract-Driven Development.","_integrity":"sha512-hJa7jg1+xL+P7To3Th4jIoYhQnv9hBQJJlC7psN+6Yd/qhOQRkD35D1an5m3l64HzVXHt2McuKHi0posjefFTw==","_resolved":"/private/var/folders/5q/j90n97w16zd2vsdm445cmp680000gp/T/2a61d755ef71a26cc9ffb497092a336b/damarkuncoro-ui-library-0.0.4.tgz","_from":"file:damarkuncoro-ui-library-0.0.4.tgz","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-hJa7jg1+xL+P7To3Th4jIoYhQnv9hBQJJlC7psN+6Yd/qhOQRkD35D1an5m3l64HzVXHt2McuKHi0posjefFTw==","shasum":"67eb4293ab3a79eb6fa11d053b772766850a4580","tarball":"https://registry.npmjs.org/@damarkuncoro/ui-library/-/ui-library-0.0.4.tgz","fileCount":263,"unpackedSize":445864,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCJOklCYpNvtC7vEzQZhZLuVCyJKzF9w1aKaLGZBWbGhQIhAOVjetWMQmWa7doKZ50HAVkAAc8NoUNpe+2hwU4W/kqV"}]},"_npmUser":{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"},"directories":{},"maintainers":[{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui-library_0.0.4_1770137000322_0.42034922572279587"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-03T05:57:29.023Z","modified":"2026-02-03T16:43:20.608Z","0.0.1":"2026-02-03T05:57:29.334Z","0.0.2":"2026-02-03T06:26:51.938Z","0.0.3":"2026-02-03T14:16:46.747Z","0.0.4":"2026-02-03T16:43:20.487Z"},"author":{"name":"Damar Kuncoro"},"description":"A strict Meta-Architecture compliant UI library focusing on Separation of Concerns, Zero Hardcoding, and Contract-Driven Development.","maintainers":[{"name":"damarkuncoro","email":"damarkuncoro@gmail.com"}],"readme":"# @damarkuncoro/ui-library\n\nA strict Meta-Architecture compliant UI library focusing on Separation of Concerns, Zero Hardcoding, and Contract-Driven Development.\n\n## Features\n\n- **Meta Architecture**: Strict separation between Logic (Base) and Visuals (Skin).\n- **Contract-Driven**: All component APIs and Visual Styles are defined by rigid Contracts.\n- **Zero Hardcoding**: Every visual value (color, spacing, size) is derived from Design Tokens or Contracts.\n- **Multi-Skin Support**: Comes with Tailwind CSS skin by default, but supports framework-agnostic implementations.\n- **TypeScript First**: Built with strict type safety and `as const` assertions.\n- **Tailwind v3 & v4 Support**: Compatible with both Tailwind CSS v3 and v4.\n\n## Installation\n\n```bash\npnpm add @damarkuncoro/ui-library\n```\n\n## Setup\n\n### 1. Theme Provider\n\nWrap your application with `ThemeProvider` to inject design tokens (CSS Variables).\n\n```tsx\nimport { ThemeProvider } from '@damarkuncoro/ui-library';\n\nfunction App() {\n  return (\n    <ThemeProvider>\n      <YourApp />\n    </ThemeProvider>\n  );\n}\n```\n\n### 2. Tailwind Configuration\n\nConfigure Tailwind to use the library's preset and CSS variables.\n\n#### For Tailwind v3:\n\n```js\n// tailwind.config.js\nconst { preset, content } = require('@damarkuncoro/ui-library/tailwind/v3');\n\nmodule.exports = {\n  content: [\n    './src/**/*.{js,jsx,ts,tsx}',\n    ...content(),\n  ],\n  theme: {\n    extend: preset.theme.extend,\n  },\n  presets: [preset],\n};\n```\n\n#### For Tailwind v4:\n\n```js\n// tailwind.config.js\nimport { preset } from '@damarkuncoro/ui-library/tailwind/v4';\n\nexport default {\n  presets: [preset],\n};\n```\n\n### 3. Import CSS Variables\n\nImport the contract fallback CSS to ensure design tokens are available:\n\n```css\n/* index.css */\n@import '@damarkuncoro/ui-library/styles/contract-fallback.css';\n```\n\n## Usage\n\n### Button\n\nThe Button component supports multiple variants, sizes, and states.\n\n```tsx\nimport { Button } from '@damarkuncoro/ui-library';\n\n// Standard usage (Tailwind Skin)\n<Button variant=\"primary\" size=\"md\" onClick={() => console.log('Clicked')}>\n  Click Me\n</Button>\n\n// With Icons\n<Button leftIcon={<span>👈</span>} variant=\"outline\">\n  Go Back\n</Button>\n\n// Loading State\n<Button isLoading variant=\"primary\">\n  Processing...\n</Button>\n\n// Disabled State\n<Button disabled variant=\"secondary\">\n  Disabled\n</Button>\n```\n\n#### Button Variants\n\n- `primary` - Primary action button\n- `secondary` - Secondary action button\n- `outline` - Outlined button\n- `ghost` - Ghost button (no background)\n- `danger` - Destructive action button\n\n#### Button Sizes\n\n- `sm` - Small button\n- `md` - Medium button (default)\n- `lg` - Large button\n\n#### Button Props\n\n| Prop | Type | Default | Description |\n|------|------|----------|-------------|\n| `children` | `ReactNode` | - | Button content (required) |\n| `variant` | `ButtonVariant` | `'primary'` | Visual style variant |\n| `size` | `ButtonSize` | `'md'` | Button size |\n| `isLoading` | `boolean` | `false` | Show loading spinner |\n| `leftIcon` | `ReactNode` | - | Icon before text |\n| `rightIcon` | `ReactNode` | - | Icon after text |\n| `disabled` | `boolean` | `false` | Disable button |\n| `onClick` | `function` | - | Click handler |\n\n### Input\n\nThe Input component supports multiple variants, sizes, icons, and validation states.\n\n```tsx\nimport { Input } from '@damarkuncoro/ui-library';\n\n// Standard usage\n<Input \n  placeholder=\"Enter your name\" \n  variant=\"outline\" \n  onChange={(e) => console.log(e.target.value)} \n/>\n\n// With Icons\n<Input \n  placeholder=\"Search...\" \n  leftIcon={<span>🔍</span>}\n  variant=\"filled\"\n/>\n\n// Invalid State\n<Input \n  placeholder=\"Email\" \n  isInvalid={true}\n  variant=\"outline\"\n/>\n\n// Disabled State\n<Input \n  placeholder=\"Read only\" \n  disabled\n  variant=\"flushed\"\n/>\n```\n\n#### Input Variants\n\n- `outline` - Outlined input (default)\n- `filled` - Filled background input\n- `flushed` - Bottom border only input\n\n#### Input Sizes\n\n- `sm` - Small input\n- `md` - Medium input (default)\n- `lg` - Large input\n\n#### Input Props\n\n| Prop | Type | Default | Description |\n|------|------|----------|-------------|\n| `placeholder` | `string` | - | Placeholder text |\n| `variant` | `InputVariant` | `'outline'` | Visual style variant |\n| `size` | `InputSize` | `'md'` | Input size |\n| `isInvalid` | `boolean` | `false` | Show error state |\n| `leftIcon` | `ReactNode` | - | Icon before input |\n| `rightIcon` | `ReactNode` | - | Icon after input |\n| `disabled` | `boolean` | `false` | Disable input |\n| `readOnly` | `boolean` | `false` | Make input read-only |\n| `onChange` | `function` | - | Change handler |\n| `inputClassName` | `string` | - | Custom class for input element |\n| `wrapperStyle` | `CSSProperties` | - | Custom inline styles for wrapper |\n\n### Native Skin\n\nFor projects not using Tailwind CSS, use the native skin components:\n\n```tsx\nimport { ButtonNative, InputNative } from '@damarkuncoro/ui-library';\n\n<ButtonNative variant=\"primary\">Native Button</ButtonNative>\n<InputNative placeholder=\"Native Input\" />\n```\n\n## Customization\n\n### 1. Theming (Easy)\n\nYou can override default design tokens (colors, etc.) by passing a `themeOverrides` prop to `ThemeProvider`.\n\n```tsx\nconst myBrandTheme = {\n  light: {\n    '--color-primary-main': '#ff4757', // Change primary color to Red\n    '--color-primary-hover': '#ff6b81',\n  },\n  dark: {\n    '--color-primary-main': '#ff6b81',\n  }\n};\n\nfunction App() {\n  return (\n    <ThemeProvider themeOverrides={myBrandTheme}>\n      <Button variant=\"primary\">Branded Button</Button>\n    </ThemeProvider>\n  );\n}\n```\n\n### 2. Custom Skins (Advanced)\n\nIf you need complete control over visual implementation (e.g., using a different CSS framework like Emotion or Styled Components), you can build your own **Skin** on top of our **Base** components.\n\nThis library follows a strict dependency rule:\n1.  **Contracts**: JSON/TS definitions of Logic (Props) and Visuals (Tokens).\n2.  **Base UI**: Functional components (Logic, ARIA, DOM). Depends only on Logic Contracts.\n3.  **Skins**: Visual implementations. Depend on Base UI + Visual Contracts.\n\nTo create your own skin:\n\n1.  Import `ButtonBase` and `buttonSkinContractDef`.\n2.  Create a wrapper that styles `ButtonBase` using values from `buttonSkinContractDef`.\n3.  Pass styles via `className` or `style` prop.\n\n```tsx\nimport { ButtonBase, buttonSkinContractDef } from '@damarkuncoro/ui-library';\nimport styled from 'styled-components'; // Example\n\n// 1. Read values from Contract (Single Source of Truth)\nconst { variants } = buttonSkinContractDef;\n\n// 2. Build your Styled Component\nconst MyStyledButton = styled(ButtonBase)`\n  background-color: ${variants.primary.backgroundColor};\n  color: ${variants.primary.color};\n  /* ... map other contract values ... */\n`;\n\n// 3. Use it!\n<MyStyledButton variant=\"primary\">Custom Skin</MyStyledButton>\n```\n\n## Available Exports\n\n### Components\n- `Button` - Tailwind-styled button component\n- `ButtonNative` - Native-styled button component\n- `Input` - Tailwind-styled input component\n- `InputNative` - Native-styled input component\n\n### Theme\n- `ThemeProvider` - Theme provider component\n- `useTheme` - Theme hook\n\n### Contracts\n- `buttonContractDef` - Button logic contract\n- `buttonSkinContractDef` - Button visual contract\n- `inputContractDef` - Input logic contract\n- `inputSkinContractDef` - Input visual contract\n\n### Base Components\n- `ButtonBase` - Button logic component\n- `InputBase` - Input logic component\n\n### Example Components\n- `ButtonVariantExamples` - Button variant examples\n- `ButtonSizeExamples` - Button size examples\n- `ButtonIconExamples` - Button icon examples\n- `ButtonStateExamples` - Button state examples\n- `ButtonCombinedExamples` - Button combined examples\n- `ButtonNativeSkinExamples` - Button native skin examples\n- `ButtonAccessibilityExamples` - Button accessibility examples\n- `InputVariantExamples` - Input variant examples\n- `InputSizeExamples` - Input size examples\n- `InputIconExamples` - Input icon examples\n- `InputStateExamples` - Input state examples\n- `InputCombinedExamples` - Input combined examples\n\n## License\n\nMIT\n\n## Author\n\nDamar Kuncoro\n","readmeFilename":"README.md"}