{"_id":"@ajari-dev/nisa-assistant","_rev":"1-d547497f818a50458c904aa486db16ea","name":"@ajari-dev/nisa-assistant","dist-tags":{"latest":"2.0.1"},"versions":{"2.0.0":{"name":"@ajari-dev/nisa-assistant","version":"2.0.0","author":{"name":"Yues Tadrik Hafiyan","email":"yues_hafiyan@ajari.live"},"license":"ISC","_id":"@ajari-dev/nisa-assistant@2.0.0","maintainers":[{"name":"ajari-dev","email":"dev@ajari.eu"}],"dist":{"shasum":"750f741fbdabb2a3de2f7a6e0b622ffe64091af3","tarball":"https://registry.npmjs.org/@ajari-dev/nisa-assistant/-/nisa-assistant-2.0.0.tgz","fileCount":13,"integrity":"sha512-+u2G7EboW9q/hWIECgqUyLlfRBG+OsNJkAbGvjs8D4YwvQfwRcF4o18HL+3opqwMnANC+0CKlLr9q6CpkOpW8g==","signatures":[{"sig":"MEYCIQDm8m4zaBixiL1+DV0eD7Pw0wKV4loQlrsZQZWZLGI3yQIhAJGRHmkuVjTYmRwOLBJkYOIH2ky8u+bH8/FrZaInXNkH","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":155997},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.mjs","require":"./dist/index.js"},"./types":"./dist/types.d.ts","./index.css":{"import":"./dist/index.css","require":"./dist/index.css"}},"gitHead":"184dd8bc454c2071f211b0fe7db6fc7da1d7d1bf","scripts":{"lint":"eslint 'src/**/*.{ts,tsx}' --ext .ts,.tsx --no-ignore --debug","tsup:build":"tsup","tsup:clean":"rimraf ./dist/","tsup:copyfiles":"copyfiles -u 1 public/index.html src/**/*.html src/**/*.css src/**/*.png src/**/*.jpeg dist/"},"_npmUser":{"name":"ajari-dev","email":"dev@ajari.eu"},"_npmVersion":"10.5.0","description":"Chat based NISA assistant","directories":{},"_nodeVersion":"21.7.1","dependencies":{"clsx":"^2.1.1","hark":"^1.2.3","axios":"^1.7.2","react":"^18.2.0","dotenv":"^16.4.7","lodash":"^4.17.21","moment":"^2.30.1","nookies":"^2.5.2","react-dom":"^18.2.0","recordrtc":"^5.6.2","markdown-it":"^14.1.0","usehooks-ts":"^3.1.0","react-router":"^6.23.0","socket.io-client":"^4.8.1","webextension-polyfill":"^0.11.0","@ajari-dev/learn-expert-design-system":"*","@ajari-dev/learn-expert-tailwind-plugin":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","eslint":"9.x","moment":"^2.30.1","rimraf":"^5.0.7","globals":"^15.9.0","postcss":"^8.4.49","prettier":"^3.2.5","copyfiles":"^2.4.1","@eslint/js":"^9.9.0","typescript":"^5.3.3","@types/hark":"^1.2.5","@types/node":"^20.12.12","tailwindcss":"^3.4.17","@types/react":"^18.2.61","autoprefixer":"^10.4.20","@types/lodash":"^4.17.13","@types/react-dom":"^18.2.19","@types/recordrtc":"^5.6.14","typescript-eslint":"^8.1.0","@types/markdown-it":"^14.1.2","eslint-plugin-react":"^7.35.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@tailwindcss/typography":"^0.5.16","@types/react-router-dom":"^5.3.3","@typescript-eslint/parser":"^7.1.0","eslint-plugin-react-hooks":"^4.6.2","@types/webextension-polyfill":"^0.10.7","@typescript-eslint/eslint-plugin":"^7.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nisa-assistant_2.0.0_1736931446281_0.7279010841330771","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@ajari-dev/nisa-assistant","version":"2.0.1","description":"Chat based NISA assistant","main":"./dist/index.js","scripts":{"tsup:clean":"rimraf ./dist/","tsup:copyfiles":"copyfiles -u 1 public/index.html src/**/*.html src/**/*.css src/**/*.png src/**/*.jpeg dist/","tsup:build":"tsup","lint":"eslint 'src/**/*.{ts,tsx}' --ext .ts,.tsx --no-ignore --debug"},"publishConfig":{"access":"public"},"author":{"name":"Yues Tadrik Hafiyan","email":"yues_hafiyan@ajari.live"},"license":"ISC","devDependencies":{"@eslint/js":"^9.9.0","@tailwindcss/typography":"^0.5.16","@types/hark":"^1.2.5","@types/lodash":"^4.17.13","@types/markdown-it":"^14.1.2","@types/node":"^20.12.12","@types/react":"^18.2.61","@types/react-dom":"^18.2.19","@types/react-router-dom":"^5.3.3","@types/recordrtc":"^5.6.14","@types/webextension-polyfill":"^0.10.7","@typescript-eslint/eslint-plugin":"^7.1.0","@typescript-eslint/parser":"^7.1.0","autoprefixer":"^10.4.20","copyfiles":"^2.4.1","eslint":"9.x","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","eslint-plugin-react":"^7.35.0","eslint-plugin-react-hooks":"^4.6.2","globals":"^15.9.0","moment":"^2.30.1","postcss":"^8.4.49","prettier":"^3.2.5","rimraf":"^5.0.7","tailwindcss":"^3.4.17","tsup":"^8.0.2","typescript":"^5.3.3","typescript-eslint":"^8.1.0"},"dependencies":{"@ajari-dev/learn-expert-design-system":"*","@ajari-dev/learn-expert-tailwind-plugin":"*","axios":"^1.7.2","clsx":"^2.1.1","dotenv":"^16.4.7","hark":"^1.2.3","lodash":"^4.17.21","markdown-it":"^14.1.0","moment":"^2.30.1","nookies":"^2.5.2","react":"^18.2.0","react-dom":"^18.2.0","react-router":"^6.23.0","recordrtc":"^5.6.2","socket.io-client":"^4.8.1","usehooks-ts":"^3.1.0","webextension-polyfill":"^0.11.0"},"exports":{".":{"require":"./dist/index.js","import":"./dist/index.mjs"},"./index.css":{"require":"./dist/index.css","import":"./dist/index.css"},"./types":"./dist/types.d.ts"},"_id":"@ajari-dev/nisa-assistant@2.0.1","gitHead":"f2f117f72c6c42392a5eaff48be8272eb663b96c","types":"./dist/index.d.ts","_nodeVersion":"21.7.1","_npmVersion":"10.5.0","dist":{"integrity":"sha512-B7N1xyXQku3uuGooWKl1vy+30gWew7YFmpGGN8beVwg6kQbL8aDdOyRZN+sRWiHHMnHou7ke++UqI4TCFL/mUg==","shasum":"0fdd48a10bac730d94d071a122c2971d75006af4","tarball":"https://registry.npmjs.org/@ajari-dev/nisa-assistant/-/nisa-assistant-2.0.1.tgz","fileCount":13,"unpackedSize":156081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE/E4IvjdktgBKd6Sg02ZoSFFcROgyMG1UaDc3uH6pm+AiAWlvxjIeMYbqFp2auuZl+/wu6WGYsYCcmKSyvFONxkcg=="}]},"_npmUser":{"name":"ajari-dev","email":"dev@ajari.eu"},"directories":{},"maintainers":[{"name":"ajari-dev","email":"dev@ajari.eu"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nisa-assistant_2.0.1_1736932581254_0.6734860726487824"},"_hasShrinkwrap":false}},"time":{"created":"2025-01-15T08:57:26.184Z","modified":"2025-01-15T09:16:21.614Z","2.0.0":"2025-01-15T08:57:26.447Z","2.0.1":"2025-01-15T09:16:21.452Z"},"author":{"name":"Yues Tadrik Hafiyan","email":"yues_hafiyan@ajari.live"},"license":"ISC","description":"Chat based NISA assistant","maintainers":[{"name":"ajari-dev","email":"dev@ajari.eu"}],"readme":"# NISA Assistant\n\n## 1. Installation\n\n```\nyarn add @ajari-dev/nisa-assistant\n\n//or\n\nnpm install @ajari-dev/nisa-assistant\n```\n\n## 2. Getting Started\n\n### 2.1 Features\n1. Our NISA assistant provide an AI-based question and answer formed by a chat application.\n2. User able to change language by preferenced user. Currently, NISA still provide en-US (english-US) and Bahasa Indonesia (id-ID). Further, NISA add more languages.\n3. User able to choose either input from text or audio.\n4. NISA provides a recommendation based on context.\n5. NISA provides an NISA voice interpreter on each answer.\n\n### 2.2 Ask for API_KEY\nThis package requires a API_KEY as credential key. You can ask or request via [](emaimaillto:dev@ajari.eu) our developer for grant API_KEY.\n\n### 2.2 Wrap with AssistantProvider\nAdd NISAAssistantProvider and wrap in your root component app. Put API_KEY in this provider's props.\n\n```typescript\nimport { AssistantProvider as NISAAsssistantProvider } from \"@ajari-dev/nisa-assistant\";\n\nconst AppLayout = () => {\n    return(\n        <NISAAsssistantProvider API_KEY=\"<YOUR_API_KEY>\">\n            //...your rest code\n        </NISAAsssistantProvider>\n    )\n}\n```\n\n### 2.3 Add NISA CSS\nImport NISA css for implementing style in all NISA components.\n\n```typescript\nimport \"@ajari-dev/nisa-assistant/index.css\";\n\n//...your rest code\n\n```\n\n\n### 2.4 Apply AssistantApp Component\nThis component is main component, that handle floating button and its chat interface.\n```typescript\nimport { AssistantApp } from \"@ajari-dev/nisa-assistant\";\n\nconst App = () => {\n    return(\n        <div>\n            <AssistantApp\n                position=\"bottom-right\"\n            />\n            //...rest code\n        </div>\n    )\n}\n```\n\n\n## 3. API\n### 3.1 AssistantApp\n\n```typescript\ntype AssistantAppProps = {\n    position: \"bottom-right\" | \"top-left\" | \"top-right\" | \"bottom-left\";\n    floatingButtonProps?: FloatingButtonProps;\n    chatProps?: ChatAssistantProps;\n}\n```\n\n| Props      | Description     | Default  | Type    |\n| --------   | --------        | -------- | -------- |\n| `position` | position of floating button | 'bottom-right'    | `'bottom-left'` \\| `'bottom-right'` \\| `'top-right'` \\| `'top-left'` |\n| `floatingButtonProps` | Props for customize floating button styling | `undefined`    | FloatingButtonProps |\n| `chatProps` | Props for customize chat interface styling | `undefined`    | ChatProps |\n\n#### 3.1.1 FloatingButtonProps\n```typescript\ntype FloatingButtonProps = {\n    customIcon?: React.ReactNode;\n    defaultIconSize?: number;\n    disabled: boolean;\n    className?: string;\n}\n```\n\n| Props | Description | Default |Type |\n| -------- | -------- | -------- | ------- |\n| `customIcon`     | for customize floating button icon (override default Icon)     | `undefined`     | `ReactNode` |\n| `defaultIconSize`     | for customize floating button icon (override default Icon)     | `100`     | `number` |\n| `disabled`     | disable floating button     | `false`     | `boolean` |\n| `className`     | className for floating button     | `undefined`     | `string` |\n\n\n#### 3.1.2 ChatAssistantProps\n```typescript\ntype ChatAssistantProps = {\n    width: string;\n    height: string;\n    customBackground?: string;\n    roundedSize?: \"sm\" | \"md\" | \"lg\";\n    isBackdropBlur: boolean;\n    isBorder: boolean;\n    borderColor: string;\n}\n```\n\n| Props | Description | Default | Type | Example |\n| -------- | -------- | -------- | -------- |-------- |\n| `width`     | Width size of chat interface. Default value is undefined, because relative full of its parent.    | `undefined`     | `string` of CSS | `100px` or `80%` |\n| `height`     | Height size of chat interface. Default value is undefined, because relative full of its parent.    | `undefined`     | `string` of CSS | `100px` or `80%` |\n| `customBackground`     | custom background of chat interface, it either color or gradient background.    | `undefined`     | `string` of TailwindCSS | `bg-blue-100` or `bg-black/10` |\n| `roundedSize`     | border radius of chat interface    | `undefined`     | `sm` \\| `md` \\| `lg` | `sm` |\n| `isBackdropBlur`     | Backdrop blur of chat interface    | `false`     | `boolean` | `false` |\n| `isBorder`     | show border of chat interface    | `false`     | `boolean` | `false` |\n| `borderColor`     | border color of chat interface    | `<empty_string>`     | `string` | `<empty_string>` |\n\n","readmeFilename":"README.md"}