@inorain_development/hotel-smarters-chat-ui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -0
- package/lib/commonjs/features/chat/components/common/cart-icon.native.js +36 -0
- package/lib/commonjs/features/chat/components/common/cart-icon.native.js.map +1 -0
- package/lib/commonjs/features/chat/components/common/collapsible.js +20 -0
- package/lib/commonjs/features/chat/components/common/collapsible.js.map +1 -0
- package/lib/commonjs/features/chat/components/common/collapsible.native.js +38 -0
- package/lib/commonjs/features/chat/components/common/collapsible.native.js.map +1 -0
- package/lib/commonjs/features/chat/components/product/index.js +13 -0
- package/lib/commonjs/features/chat/components/product/index.js.map +1 -0
- package/lib/commonjs/features/chat/components/product/product.js +83 -0
- package/lib/commonjs/features/chat/components/product/product.js.map +1 -0
- package/lib/commonjs/features/chat/components/product/product.model.js +6 -0
- package/lib/commonjs/features/chat/components/product/product.model.js.map +1 -0
- package/lib/commonjs/features/chat/components/product/product.native.js +125 -0
- package/lib/commonjs/features/chat/components/product/product.native.js.map +1 -0
- package/lib/commonjs/features/chat/components/service/index.js +13 -0
- package/lib/commonjs/features/chat/components/service/index.js.map +1 -0
- package/lib/commonjs/features/chat/components/service/service.js +83 -0
- package/lib/commonjs/features/chat/components/service/service.js.map +1 -0
- package/lib/commonjs/features/chat/components/service/service.model.js +6 -0
- package/lib/commonjs/features/chat/components/service/service.model.js.map +1 -0
- package/lib/commonjs/features/chat/components/service/service.native.js +106 -0
- package/lib/commonjs/features/chat/components/service/service.native.js.map +1 -0
- package/lib/commonjs/features/chat/index.d.js +6 -0
- package/lib/commonjs/features/chat/index.d.js.map +1 -0
- package/lib/commonjs/features/chat/index.d.ts.map +1 -0
- package/lib/commonjs/features/chat/index.js +46 -0
- package/lib/commonjs/features/chat/index.js.map +1 -0
- package/lib/commonjs/features/chat/model/chat.model.js +23 -0
- package/lib/commonjs/features/chat/model/chat.model.js.map +1 -0
- package/lib/commonjs/features/chat/renderer/index.js +13 -0
- package/lib/commonjs/features/chat/renderer/index.js.map +1 -0
- package/lib/commonjs/features/chat/renderer/renderer.js +32 -0
- package/lib/commonjs/features/chat/renderer/renderer.js.map +1 -0
- package/lib/commonjs/features/chat/renderer/renderer.native.js +32 -0
- package/lib/commonjs/features/chat/renderer/renderer.native.js.map +1 -0
- package/lib/commonjs/index.d.js +17 -0
- package/lib/commonjs/index.d.js.map +1 -0
- package/lib/commonjs/index.d.ts.map +1 -0
- package/lib/commonjs/index.js +17 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/native.d.js +6 -0
- package/lib/commonjs/native.d.js.map +1 -0
- package/lib/commonjs/native.d.ts.map +1 -0
- package/lib/commonjs/native.js +46 -0
- package/lib/commonjs/native.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/styles/global.css +3 -0
- package/lib/commonjs/utils/i18n.utils.js +12 -0
- package/lib/commonjs/utils/i18n.utils.js.map +1 -0
- package/lib/commonjs/utils/theme.utils.js +37 -0
- package/lib/commonjs/utils/theme.utils.js.map +1 -0
- package/lib/commonjs/utils/use-expandable-list.js +23 -0
- package/lib/commonjs/utils/use-expandable-list.js.map +1 -0
- package/lib/commonjs/web.d.js +6 -0
- package/lib/commonjs/web.d.js.map +1 -0
- package/lib/commonjs/web.d.ts.map +1 -0
- package/lib/commonjs/web.js +46 -0
- package/lib/commonjs/web.js.map +1 -0
- package/lib/module/features/chat/components/common/cart-icon.native.js +32 -0
- package/lib/module/features/chat/components/common/cart-icon.native.js.map +1 -0
- package/lib/module/features/chat/components/common/collapsible.js +16 -0
- package/lib/module/features/chat/components/common/collapsible.js.map +1 -0
- package/lib/module/features/chat/components/common/collapsible.native.js +34 -0
- package/lib/module/features/chat/components/common/collapsible.native.js.map +1 -0
- package/lib/module/features/chat/components/product/index.js +4 -0
- package/lib/module/features/chat/components/product/index.js.map +1 -0
- package/lib/module/features/chat/components/product/product.js +79 -0
- package/lib/module/features/chat/components/product/product.js.map +1 -0
- package/lib/module/features/chat/components/product/product.model.js +4 -0
- package/lib/module/features/chat/components/product/product.model.js.map +1 -0
- package/lib/module/features/chat/components/product/product.native.js +121 -0
- package/lib/module/features/chat/components/product/product.native.js.map +1 -0
- package/lib/module/features/chat/components/service/index.js +4 -0
- package/lib/module/features/chat/components/service/index.js.map +1 -0
- package/lib/module/features/chat/components/service/service.js +79 -0
- package/lib/module/features/chat/components/service/service.js.map +1 -0
- package/lib/module/features/chat/components/service/service.model.js +4 -0
- package/lib/module/features/chat/components/service/service.model.js.map +1 -0
- package/lib/module/features/chat/components/service/service.native.js +102 -0
- package/lib/module/features/chat/components/service/service.native.js.map +1 -0
- package/lib/module/features/chat/index.d.js +10 -0
- package/lib/module/features/chat/index.d.js.map +1 -0
- package/lib/module/features/chat/index.d.ts.map +1 -0
- package/lib/module/features/chat/index.js +7 -0
- package/lib/module/features/chat/index.js.map +1 -0
- package/lib/module/features/chat/model/chat.model.js +19 -0
- package/lib/module/features/chat/model/chat.model.js.map +1 -0
- package/lib/module/features/chat/renderer/index.js +4 -0
- package/lib/module/features/chat/renderer/index.js.map +1 -0
- package/lib/module/features/chat/renderer/renderer.js +28 -0
- package/lib/module/features/chat/renderer/renderer.js.map +1 -0
- package/lib/module/features/chat/renderer/renderer.native.js +28 -0
- package/lib/module/features/chat/renderer/renderer.native.js.map +1 -0
- package/lib/module/index.d.js +13 -0
- package/lib/module/index.d.js.map +1 -0
- package/lib/module/index.d.ts.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/native.d.js +11 -0
- package/lib/module/native.d.js.map +1 -0
- package/lib/module/native.d.ts.map +1 -0
- package/lib/module/native.js +7 -0
- package/lib/module/native.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/styles/global.css +3 -0
- package/lib/module/utils/i18n.utils.js +8 -0
- package/lib/module/utils/i18n.utils.js.map +1 -0
- package/lib/module/utils/theme.utils.js +33 -0
- package/lib/module/utils/theme.utils.js.map +1 -0
- package/lib/module/utils/use-expandable-list.js +19 -0
- package/lib/module/utils/use-expandable-list.js.map +1 -0
- package/lib/module/web.d.js +10 -0
- package/lib/module/web.d.js.map +1 -0
- package/lib/module/web.d.ts.map +1 -0
- package/lib/module/web.js +7 -0
- package/lib/module/web.js.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/common/cart-icon.native.d.ts +6 -0
- package/lib/typescript/commonjs/features/chat/components/common/cart-icon.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/common/collapsible.d.ts +6 -0
- package/lib/typescript/commonjs/features/chat/components/common/collapsible.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/common/collapsible.native.d.ts +6 -0
- package/lib/typescript/commonjs/features/chat/components/common/collapsible.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/product/index.d.ts +3 -0
- package/lib/typescript/commonjs/features/chat/components/product/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/product/product.d.ts +4 -0
- package/lib/typescript/commonjs/features/chat/components/product/product.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/product/product.model.d.ts +10 -0
- package/lib/typescript/commonjs/features/chat/components/product/product.model.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/product/product.native.d.ts +4 -0
- package/lib/typescript/commonjs/features/chat/components/product/product.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/service/index.d.ts +3 -0
- package/lib/typescript/commonjs/features/chat/components/service/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/service/service.d.ts +4 -0
- package/lib/typescript/commonjs/features/chat/components/service/service.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/service/service.model.d.ts +10 -0
- package/lib/typescript/commonjs/features/chat/components/service/service.model.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/components/service/service.native.d.ts +4 -0
- package/lib/typescript/commonjs/features/chat/components/service/service.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/index.d.ts +8 -0
- package/lib/typescript/commonjs/features/chat/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/model/chat.model.d.ts +31 -0
- package/lib/typescript/commonjs/features/chat/model/chat.model.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/renderer/index.d.ts +2 -0
- package/lib/typescript/commonjs/features/chat/renderer/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/renderer/renderer.d.ts +5 -0
- package/lib/typescript/commonjs/features/chat/renderer/renderer.d.ts.map +1 -0
- package/lib/typescript/commonjs/features/chat/renderer/renderer.native.d.ts +5 -0
- package/lib/typescript/commonjs/features/chat/renderer/renderer.native.d.ts.map +1 -0
- package/lib/typescript/commonjs/index.d.ts +11 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/native.d.ts +8 -0
- package/lib/typescript/commonjs/native.d.ts.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/utils/i18n.utils.d.ts +3 -0
- package/lib/typescript/commonjs/utils/i18n.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/theme.utils.d.ts +16 -0
- package/lib/typescript/commonjs/utils/theme.utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/use-expandable-list.d.ts +8 -0
- package/lib/typescript/commonjs/utils/use-expandable-list.d.ts.map +1 -0
- package/lib/typescript/commonjs/web.d.ts +8 -0
- package/lib/typescript/commonjs/web.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/common/cart-icon.native.d.ts +6 -0
- package/lib/typescript/module/features/chat/components/common/cart-icon.native.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/common/collapsible.d.ts +6 -0
- package/lib/typescript/module/features/chat/components/common/collapsible.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/common/collapsible.native.d.ts +6 -0
- package/lib/typescript/module/features/chat/components/common/collapsible.native.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/product/index.d.ts +3 -0
- package/lib/typescript/module/features/chat/components/product/index.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/product/product.d.ts +4 -0
- package/lib/typescript/module/features/chat/components/product/product.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/product/product.model.d.ts +10 -0
- package/lib/typescript/module/features/chat/components/product/product.model.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/product/product.native.d.ts +4 -0
- package/lib/typescript/module/features/chat/components/product/product.native.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/service/index.d.ts +3 -0
- package/lib/typescript/module/features/chat/components/service/index.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/service/service.d.ts +4 -0
- package/lib/typescript/module/features/chat/components/service/service.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/service/service.model.d.ts +10 -0
- package/lib/typescript/module/features/chat/components/service/service.model.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/components/service/service.native.d.ts +4 -0
- package/lib/typescript/module/features/chat/components/service/service.native.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/index.d.ts +8 -0
- package/lib/typescript/module/features/chat/index.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/model/chat.model.d.ts +31 -0
- package/lib/typescript/module/features/chat/model/chat.model.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/renderer/index.d.ts +2 -0
- package/lib/typescript/module/features/chat/renderer/index.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/renderer/renderer.d.ts +5 -0
- package/lib/typescript/module/features/chat/renderer/renderer.d.ts.map +1 -0
- package/lib/typescript/module/features/chat/renderer/renderer.native.d.ts +5 -0
- package/lib/typescript/module/features/chat/renderer/renderer.native.d.ts.map +1 -0
- package/lib/typescript/module/index.d.ts +11 -0
- package/lib/typescript/module/index.d.ts.map +1 -0
- package/lib/typescript/module/native.d.ts +8 -0
- package/lib/typescript/module/native.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/utils/i18n.utils.d.ts +3 -0
- package/lib/typescript/module/utils/i18n.utils.d.ts.map +1 -0
- package/lib/typescript/module/utils/theme.utils.d.ts +16 -0
- package/lib/typescript/module/utils/theme.utils.d.ts.map +1 -0
- package/lib/typescript/module/utils/use-expandable-list.d.ts +8 -0
- package/lib/typescript/module/utils/use-expandable-list.d.ts.map +1 -0
- package/lib/typescript/module/web.d.ts +8 -0
- package/lib/typescript/module/web.d.ts.map +1 -0
- package/nativewind-env.d.ts +1 -0
- package/package.json +142 -0
- package/src/features/chat/components/common/cart-icon.native.tsx +20 -0
- package/src/features/chat/components/common/collapsible.native.tsx +28 -0
- package/src/features/chat/components/common/collapsible.tsx +13 -0
- package/src/features/chat/components/product/index.ts +2 -0
- package/src/features/chat/components/product/product.model.ts +10 -0
- package/src/features/chat/components/product/product.native.tsx +117 -0
- package/src/features/chat/components/product/product.tsx +80 -0
- package/src/features/chat/components/service/index.ts +2 -0
- package/src/features/chat/components/service/service.model.ts +10 -0
- package/src/features/chat/components/service/service.native.tsx +96 -0
- package/src/features/chat/components/service/service.tsx +80 -0
- package/src/features/chat/index.d.ts +8 -0
- package/src/features/chat/index.d.ts.map +1 -0
- package/src/features/chat/index.ts +13 -0
- package/src/features/chat/model/chat.model.ts +36 -0
- package/src/features/chat/renderer/index.ts +1 -0
- package/src/features/chat/renderer/renderer.native.tsx +22 -0
- package/src/features/chat/renderer/renderer.tsx +22 -0
- package/src/index.d.ts +11 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.ts +10 -0
- package/src/native.d.ts +9 -0
- package/src/native.d.ts.map +1 -0
- package/src/native.ts +13 -0
- package/src/styles/global.css +3 -0
- package/src/utils/i18n.utils.ts +7 -0
- package/src/utils/theme.utils.ts +47 -0
- package/src/utils/use-expandable-list.ts +12 -0
- package/src/web.d.ts +8 -0
- package/src/web.d.ts.map +1 -0
- package/src/web.ts +13 -0
- package/tailwind.config.js +43 -0
package/README.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# @inorain_development/hotel-smarters-chat-ui
|
|
2
|
+
|
|
3
|
+
Cross-platform chat UI component library for **React (DOM / admin)** and **React Native
|
|
4
|
+
(mobile + web via `react-native-web`)**, published as an npm module.
|
|
5
|
+
|
|
6
|
+
The chat AI returns a `{ type, data }` payload, and this library renders the matching
|
|
7
|
+
component for that `type` (e.g. `products`, `event`, `event-list`, `location`, order/reservation
|
|
8
|
+
status, hotel event, …). One library, three consumers:
|
|
9
|
+
|
|
10
|
+
| Consumer | Runtime | Imports from | Implementation served |
|
|
11
|
+
| ----------- | -------------------- | ----------------------------- | --------------------- |
|
|
12
|
+
| mobile | React Native (Metro) | `@inorain_development/hotel-smarters-chat-ui/native` | RN (`*.native.tsx`) |
|
|
13
|
+
| web client | React Native Web | `@inorain_development/hotel-smarters-chat-ui/native` | RN (`*.native.tsx`) |
|
|
14
|
+
| admin | React DOM | `@inorain_development/hotel-smarters-chat-ui/web` | DOM (`*.tsx`) |
|
|
15
|
+
|
|
16
|
+
> Why two entry points instead of just `.tsx` / `.native.tsx` extensions: both the web client
|
|
17
|
+
> (react-native-web) and the admin are "web" to a bundler, so both resolve `.tsx`. They need
|
|
18
|
+
> *different* implementations, so the RN vs DOM boundary is drawn by **explicit subpath exports**
|
|
19
|
+
> (`/native` vs `/web`), not by file extensions.
|
|
20
|
+
|
|
21
|
+
## Status
|
|
22
|
+
|
|
23
|
+
Initial setup only — tooling, configuration and the Feature-Based + Component-Based folder
|
|
24
|
+
structure. **No domain components or dynamic renderer yet** (added once the data models are ready).
|
|
25
|
+
|
|
26
|
+
## Styling
|
|
27
|
+
|
|
28
|
+
Tailwind on both platforms:
|
|
29
|
+
|
|
30
|
+
- **Web (admin):** `tailwindcss`.
|
|
31
|
+
- **React Native (mobile / web client):** [NativeWind](https://www.nativewind.dev/) v4 — same
|
|
32
|
+
`className="..."` API, compiled to native styles (and to CSS on web).
|
|
33
|
+
|
|
34
|
+
Both share `tailwind.config.js` (exported from the package) so design tokens stay in sync.
|
|
35
|
+
|
|
36
|
+
## Project structure
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
src/
|
|
40
|
+
index.ts # root aggregator (defaults to the web/DOM build)
|
|
41
|
+
native.ts # entry for mobile + web client (re-exports *.native impls)
|
|
42
|
+
web.ts # entry for admin (re-exports DOM impls)
|
|
43
|
+
components/ # shared cross-platform UI primitives (Card, Badge, Row, …)
|
|
44
|
+
features/
|
|
45
|
+
chat/
|
|
46
|
+
components/ # domain chat components (Event, Location, ProductList, …)
|
|
47
|
+
renderer/ # LATER: type -> component registry + ChatComponentRenderer
|
|
48
|
+
model/ # feature types (ChatComponentType enum, base payload)
|
|
49
|
+
index.ts
|
|
50
|
+
utils/
|
|
51
|
+
styles/
|
|
52
|
+
global.css # @tailwind directives (imported by web consumers)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Component convention
|
|
56
|
+
|
|
57
|
+
Each domain component is a folder with **two `.tsx` files and one model file**:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Event/
|
|
61
|
+
Event.tsx # DOM implementation (admin): div/span + Tailwind
|
|
62
|
+
Event.native.tsx # RN implementation (mobile + web client): View/Text + NativeWind
|
|
63
|
+
Event.model.ts # single model file: prop types + shape of `data` (shared by both)
|
|
64
|
+
Event.logic.ts # optional: shared platform-agnostic logic/helpers
|
|
65
|
+
index.ts # re-export
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`web.ts` pulls in `Event.tsx`; `native.ts` pulls in `Event.native.tsx`.
|
|
69
|
+
|
|
70
|
+
## Consumer setup
|
|
71
|
+
|
|
72
|
+
### Mobile / web client (React Native)
|
|
73
|
+
|
|
74
|
+
Configure NativeWind per its docs (Metro preset, `jsxImportSource: "nativewind"`, a
|
|
75
|
+
`tailwind.config.js`, and a `global.css` with the `@tailwind` directives), then:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
import { /* components */ } from '@inorain_development/hotel-smarters-chat-ui/native';
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Admin (React DOM, Vite / webpack)
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm i @inorain_development/hotel-smarters-chat-ui react-native-web nativewind
|
|
85
|
+
npm i -D tailwindcss react-native
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
1. Alias `react-native` → `react-native-web` in the bundler; add `.web.tsx`/`.web.js` to resolve
|
|
89
|
+
extensions; define `__DEV__`.
|
|
90
|
+
2. NativeWind for web: `tailwind.config.js` using `nativewind/preset` with the package added to
|
|
91
|
+
`content` (`./node_modules/@inorain_development/hotel-smarters-chat-ui/**/*.{js,jsx}`); set babel
|
|
92
|
+
`jsxImportSource: "nativewind"`; configure PostCSS + Tailwind; import the global CSS at app entry.
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
import { /* components */ } from '@inorain_development/hotel-smarters-chat-ui/web';
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Development
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm install # install dependencies
|
|
102
|
+
npm run typecheck # tsc --noEmit
|
|
103
|
+
npm run build # react-native-builder-bob -> lib/{commonjs,module,typescript}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Publishing (later)
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
npm publish --access public # scoped org package; runs the bob build via prepack
|
|
110
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CartIcon = CartIcon;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
function CartIcon({
|
|
9
|
+
size = 16,
|
|
10
|
+
color = 'currentColor'
|
|
11
|
+
}) {
|
|
12
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("svg", {
|
|
13
|
+
width: size,
|
|
14
|
+
height: size,
|
|
15
|
+
viewBox: "0 0 24 24",
|
|
16
|
+
fill: "none",
|
|
17
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
|
|
18
|
+
d: "M3 4h2l2.4 11.2a1.5 1.5 0 0 0 1.47 1.18h7.86a1.5 1.5 0 0 0 1.47-1.18L21 8H6",
|
|
19
|
+
stroke: color,
|
|
20
|
+
strokeWidth: 1.8,
|
|
21
|
+
strokeLinecap: "round",
|
|
22
|
+
strokeLinejoin: "round"
|
|
23
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
|
|
24
|
+
cx: "9.5",
|
|
25
|
+
cy: "20",
|
|
26
|
+
r: "1.4",
|
|
27
|
+
fill: color
|
|
28
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("circle", {
|
|
29
|
+
cx: "17",
|
|
30
|
+
cy: "20",
|
|
31
|
+
r: "1.4",
|
|
32
|
+
fill: color
|
|
33
|
+
})]
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=cart-icon.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CartIcon","size","color","_jsxRuntime","jsxs","width","height","viewBox","fill","children","jsx","d","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/common/cart-icon.native.tsx"],"mappings":";;;;;;;AAKO,SAASA,QAAQA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG;AAA8B,CAAC,EAAE;EAC7E,oBACE,IAAAC,WAAA,CAAAC,IAAA;IAAKC,KAAK,EAAEJ,IAAK;IAACK,MAAM,EAAEL,IAAK;IAACM,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAAC,QAAA,gBAC7D,IAAAN,WAAA,CAAAO,GAAA;MACEC,CAAC,EAAC,6EAA6E;MAC/EC,MAAM,EAAEV,KAAM;MACdW,WAAW,EAAE,GAAI;MACjBC,aAAa,EAAC,OAAO;MACrBC,cAAc,EAAC;IAAO,CACvB,CAAC,eACF,IAAAZ,WAAA,CAAAO,GAAA;MAAQM,EAAE,EAAC,KAAK;MAACC,EAAE,EAAC,IAAI;MAACC,CAAC,EAAC,KAAK;MAACV,IAAI,EAAEN;IAAM,CAAE,CAAC,eAChD,IAAAC,WAAA,CAAAO,GAAA;MAAQM,EAAE,EAAC,IAAI;MAACC,EAAE,EAAC,IAAI;MAACC,CAAC,EAAC,KAAK;MAACV,IAAI,EAAEN;IAAM,CAAE,CAAC;EAAA,CAC5C,CAAC;AAEV","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Collapsible = Collapsible;
|
|
7
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
8
|
+
function Collapsible({
|
|
9
|
+
expanded,
|
|
10
|
+
children
|
|
11
|
+
}) {
|
|
12
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
13
|
+
className: `grid transition-[grid-template-rows] duration-300 ease-in-out ${expanded ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'}`,
|
|
14
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
15
|
+
className: "min-h-0 overflow-hidden",
|
|
16
|
+
children: children
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=collapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Collapsible","expanded","children","_jsxRuntime","jsx","className"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/common/collapsible.tsx"],"mappings":";;;;;;;AAEO,SAASA,WAAWA,CAAC;EAAEC,QAAQ;EAAEC;AAAqD,CAAC,EAAE;EAC9F,oBACE,IAAAC,WAAA,CAAAC,GAAA;IACEC,SAAS,EAAE,iEACTJ,QAAQ,GAAG,iBAAiB,GAAG,iBAAiB,EAC/C;IAAAC,QAAA,eAEH,IAAAC,WAAA,CAAAC,GAAA;MAAKC,SAAS,EAAC,yBAAyB;MAAAH,QAAA,EAAEA;IAAQ,CAAM;EAAC,CACtD,CAAC;AAEV","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Collapsible = Collapsible;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
+
function Collapsible({
|
|
11
|
+
expanded,
|
|
12
|
+
children
|
|
13
|
+
}) {
|
|
14
|
+
const [height, setHeight] = (0, _react.useState)(0);
|
|
15
|
+
const anim = (0, _react.useRef)(new _reactNative.Animated.Value(0)).current;
|
|
16
|
+
(0, _react.useEffect)(() => {
|
|
17
|
+
_reactNative.Animated.timing(anim, {
|
|
18
|
+
toValue: expanded ? height : 0,
|
|
19
|
+
duration: 250,
|
|
20
|
+
useNativeDriver: false
|
|
21
|
+
}).start();
|
|
22
|
+
}, [expanded, height, anim]);
|
|
23
|
+
const onLayout = e => {
|
|
24
|
+
const next = e.nativeEvent.layout.height;
|
|
25
|
+
if (next > 0 && next !== height) setHeight(next);
|
|
26
|
+
};
|
|
27
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Animated.View, {
|
|
28
|
+
style: {
|
|
29
|
+
height: anim,
|
|
30
|
+
overflow: 'hidden'
|
|
31
|
+
},
|
|
32
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
33
|
+
onLayout: onLayout,
|
|
34
|
+
children: children
|
|
35
|
+
})
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=collapsible.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_jsxRuntime","Collapsible","expanded","children","height","setHeight","useState","anim","useRef","Animated","Value","current","useEffect","timing","toValue","duration","useNativeDriver","start","onLayout","e","next","nativeEvent","layout","jsx","View","style","overflow"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/common/collapsible.native.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAA8C,IAAAE,WAAA,GAAAF,OAAA;AAGvC,SAASG,WAAWA,CAAC;EAAEC,QAAQ;EAAEC;AAAqD,CAAC,EAAE;EAC9F,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EACvC,MAAMC,IAAI,GAAG,IAAAC,aAAM,EAAC,IAAIC,qBAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAElD,IAAAC,gBAAS,EAAC,MAAM;IACdH,qBAAQ,CAACI,MAAM,CAACN,IAAI,EAAE;MACpBO,OAAO,EAAEZ,QAAQ,GAAGE,MAAM,GAAG,CAAC;MAC9BW,QAAQ,EAAE,GAAG;MACbC,eAAe,EAAE;IACnB,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACZ,CAAC,EAAE,CAACf,QAAQ,EAAEE,MAAM,EAAEG,IAAI,CAAC,CAAC;EAE5B,MAAMW,QAAQ,GAAIC,CAAoB,IAAK;IACzC,MAAMC,IAAI,GAAGD,CAAC,CAACE,WAAW,CAACC,MAAM,CAAClB,MAAM;IACxC,IAAIgB,IAAI,GAAG,CAAC,IAAIA,IAAI,KAAKhB,MAAM,EAAEC,SAAS,CAACe,IAAI,CAAC;EAClD,CAAC;EAED,oBACE,IAAApB,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAAU,QAAQ,CAACe,IAAI;IAACC,KAAK,EAAE;MAAErB,MAAM,EAAEG,IAAI;MAAEmB,QAAQ,EAAE;IAAS,CAAE;IAAAvB,QAAA,eACzD,IAAAH,WAAA,CAAAuB,GAAA,EAACxB,YAAA,CAAAyB,IAAI;MAACN,QAAQ,EAAEA,QAAS;MAAAf,QAAA,EAAEA;IAAQ,CAAO;EAAC,CAC9B,CAAC;AAEpB","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Product", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _product.Product;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _product = require("./product");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_product","require"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Product = Product;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _themeUtils = require("../../../../utils/theme.utils.js");
|
|
9
|
+
var _i18nUtils = require("../../../../utils/i18n.utils.js");
|
|
10
|
+
var _useExpandableList = require("../../../../utils/use-expandable-list.js");
|
|
11
|
+
var _collapsible = require("../common/collapsible");
|
|
12
|
+
var _chatModel = require("../../model/chat.model.js");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function Product({
|
|
15
|
+
data,
|
|
16
|
+
theme = _chatModel.Theme.Dark,
|
|
17
|
+
language,
|
|
18
|
+
onSelect
|
|
19
|
+
}) {
|
|
20
|
+
const c = (0, _themeUtils.getThemeClasses)(theme);
|
|
21
|
+
const items = Array.isArray(data) ? data : [data];
|
|
22
|
+
const {
|
|
23
|
+
head,
|
|
24
|
+
rest,
|
|
25
|
+
expanded,
|
|
26
|
+
hasMore,
|
|
27
|
+
toggle
|
|
28
|
+
} = (0, _useExpandableList.useExpandableList)(items);
|
|
29
|
+
const renderRow = item => {
|
|
30
|
+
const name = (0, _i18nUtils.resolveText)(item.name, language);
|
|
31
|
+
const description = (0, _i18nUtils.resolveText)(item.description, language);
|
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
33
|
+
className: "flex cursor-pointer items-center gap-3",
|
|
34
|
+
onClick: () => onSelect?.(item),
|
|
35
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
36
|
+
src: item.image,
|
|
37
|
+
alt: name,
|
|
38
|
+
className: `h-14 w-14 rounded-lg object-cover down-sm:h-12 down-sm:w-12 ${c.iconBg}`
|
|
39
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
40
|
+
className: "flex min-w-0 flex-1 flex-col gap-1",
|
|
41
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
42
|
+
className: "flex items-center justify-between gap-2",
|
|
43
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
44
|
+
className: `flex-1 truncate text-base font-bold down-sm:text-sm ${c.title}`,
|
|
45
|
+
children: name
|
|
46
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
47
|
+
className: `shrink-0 text-base font-bold down-sm:text-sm ${c.price}`,
|
|
48
|
+
children: item.price
|
|
49
|
+
})]
|
|
50
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
51
|
+
className: `line-clamp-2 text-sm down-sm:text-xs ${c.subtitle}`,
|
|
52
|
+
children: description
|
|
53
|
+
})]
|
|
54
|
+
})]
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
58
|
+
className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
|
|
59
|
+
children: [head.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
60
|
+
children: [index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
61
|
+
className: `my-2.5 h-px ${c.divider}`
|
|
62
|
+
}) : null, renderRow(item)]
|
|
63
|
+
}, item.id)), hasMore ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
64
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_collapsible.Collapsible, {
|
|
65
|
+
expanded: expanded,
|
|
66
|
+
children: rest.map(item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
67
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
68
|
+
className: `my-2.5 h-px ${c.divider}`
|
|
69
|
+
}), renderRow(item)]
|
|
70
|
+
}, item.id))
|
|
71
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
72
|
+
className: "mt-2 flex justify-center",
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
74
|
+
type: "button",
|
|
75
|
+
onClick: toggle,
|
|
76
|
+
className: `rounded-xl border px-4 py-1.5 text-sm font-medium ${c.actionBorder} ${c.actionText}`,
|
|
77
|
+
children: expanded ? 'Show less' : 'Show more'
|
|
78
|
+
})
|
|
79
|
+
})]
|
|
80
|
+
}) : null]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=product.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_themeUtils","_i18nUtils","_useExpandableList","_collapsible","_chatModel","_jsxRuntime","Product","data","theme","Theme","Dark","language","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","renderRow","item","name","resolveText","description","jsxs","className","onClick","children","jsx","src","image","alt","iconBg","title","price","subtitle","surface","border","map","index","Fragment","divider","id","Collapsible","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/product.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/product.model.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Product = Product;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _themeUtils = require("../../../../utils/theme.utils.js");
|
|
10
|
+
var _i18nUtils = require("../../../../utils/i18n.utils.js");
|
|
11
|
+
var _useExpandableList = require("../../../../utils/use-expandable-list.js");
|
|
12
|
+
var _collapsibleNative = require("../common/collapsible.native.js");
|
|
13
|
+
var _cartIconNative = require("../common/cart-icon.native.js");
|
|
14
|
+
var _chatModel = require("../../model/chat.model.js");
|
|
15
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
|
+
function Product({
|
|
17
|
+
data,
|
|
18
|
+
theme = _chatModel.Theme.Dark,
|
|
19
|
+
language,
|
|
20
|
+
actionLabel = 'Add to cart',
|
|
21
|
+
counts,
|
|
22
|
+
onAction,
|
|
23
|
+
onSelect
|
|
24
|
+
}) {
|
|
25
|
+
const c = (0, _themeUtils.getThemeClasses)(theme);
|
|
26
|
+
const items = Array.isArray(data) ? data : [data];
|
|
27
|
+
const {
|
|
28
|
+
head,
|
|
29
|
+
rest,
|
|
30
|
+
expanded,
|
|
31
|
+
hasMore,
|
|
32
|
+
toggle
|
|
33
|
+
} = (0, _useExpandableList.useExpandableList)(items);
|
|
34
|
+
|
|
35
|
+
// Build an id -> count lookup once so each row stays O(1).
|
|
36
|
+
const countById = (0, _react.useMemo)(() => {
|
|
37
|
+
const map = new Map();
|
|
38
|
+
for (const entry of counts ?? []) map.set(entry.id, entry.count);
|
|
39
|
+
return map;
|
|
40
|
+
}, [counts]);
|
|
41
|
+
const renderRow = item => {
|
|
42
|
+
const name = (0, _i18nUtils.resolveText)(item.name, language);
|
|
43
|
+
const description = (0, _i18nUtils.resolveText)(item.description, language);
|
|
44
|
+
const count = countById.get(item.id) ?? 0;
|
|
45
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
|
|
46
|
+
className: "flex-row items-center gap-3",
|
|
47
|
+
onPress: () => onSelect?.(item),
|
|
48
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
|
|
49
|
+
accessibilityLabel: name,
|
|
50
|
+
source: {
|
|
51
|
+
uri: item.image
|
|
52
|
+
},
|
|
53
|
+
className: `h-14 w-14 rounded-lg down-sm:h-12 down-sm:w-12 ${c.iconBg}`
|
|
54
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
55
|
+
className: "flex-1 gap-1",
|
|
56
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
57
|
+
className: "flex-row items-center justify-between gap-2",
|
|
58
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
59
|
+
className: `flex-1 text-base font-bold down-sm:text-sm ${c.title}`,
|
|
60
|
+
numberOfLines: 1,
|
|
61
|
+
children: name
|
|
62
|
+
}), count > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
63
|
+
className: `flex-row items-center gap-1 rounded-full px-2 py-0.5 ${c.iconBg}`,
|
|
64
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_cartIconNative.CartIcon, {
|
|
65
|
+
size: 14,
|
|
66
|
+
color: c.iconColor
|
|
67
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
68
|
+
className: `text-xs font-semibold ${c.iconText}`,
|
|
69
|
+
children: count
|
|
70
|
+
})]
|
|
71
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
72
|
+
className: `text-base font-bold down-sm:text-sm ${c.price}`,
|
|
73
|
+
children: item.price
|
|
74
|
+
})]
|
|
75
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
76
|
+
className: "flex-row items-center justify-between gap-2",
|
|
77
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
78
|
+
className: `flex-1 text-sm down-sm:text-xs ${c.subtitle}`,
|
|
79
|
+
numberOfLines: 2,
|
|
80
|
+
children: description
|
|
81
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
82
|
+
accessibilityRole: "button",
|
|
83
|
+
onPress: () => onAction?.(item, _chatModel.ItemAction.Add),
|
|
84
|
+
className: `rounded-xl border px-3 py-1.5 ${c.actionBorder}`,
|
|
85
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
86
|
+
className: `text-sm font-medium ${c.actionText}`,
|
|
87
|
+
children: actionLabel
|
|
88
|
+
})
|
|
89
|
+
})]
|
|
90
|
+
})]
|
|
91
|
+
})]
|
|
92
|
+
});
|
|
93
|
+
};
|
|
94
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
95
|
+
className: "gap-2",
|
|
96
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
97
|
+
className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
|
|
98
|
+
children: [head.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
99
|
+
children: [index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
100
|
+
className: `my-2.5 h-px ${c.divider}`
|
|
101
|
+
}) : null, renderRow(item)]
|
|
102
|
+
}, item.id)), hasMore ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
103
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_collapsibleNative.Collapsible, {
|
|
104
|
+
expanded: expanded,
|
|
105
|
+
children: rest.map(item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
106
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
107
|
+
className: `my-2.5 h-px ${c.divider}`
|
|
108
|
+
}), renderRow(item)]
|
|
109
|
+
}, item.id))
|
|
110
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
111
|
+
className: "mt-2 items-center",
|
|
112
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
|
|
113
|
+
onPress: toggle,
|
|
114
|
+
className: `rounded-xl border px-4 py-1.5 ${c.actionBorder}`,
|
|
115
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
116
|
+
className: `text-sm font-medium ${c.actionText}`,
|
|
117
|
+
children: expanded ? 'Show less' : 'Show more'
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
})]
|
|
121
|
+
}) : null]
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=product.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_themeUtils","_i18nUtils","_useExpandableList","_collapsibleNative","_cartIconNative","_chatModel","_jsxRuntime","Product","data","theme","Theme","Dark","language","actionLabel","counts","onAction","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","countById","useMemo","map","Map","entry","set","id","count","renderRow","item","name","resolveText","description","get","jsxs","Pressable","className","onPress","children","jsx","Image","accessibilityLabel","source","uri","image","iconBg","View","Text","title","numberOfLines","CartIcon","size","color","iconColor","iconText","price","subtitle","accessibilityRole","ItemAction","Add","actionBorder","actionText","surface","border","index","Fragment","divider","Collapsible"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/product/product.native.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "Service", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _service.Service;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _service = require("./service");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_service","require"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Service = Service;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _themeUtils = require("../../../../utils/theme.utils.js");
|
|
9
|
+
var _i18nUtils = require("../../../../utils/i18n.utils.js");
|
|
10
|
+
var _useExpandableList = require("../../../../utils/use-expandable-list.js");
|
|
11
|
+
var _collapsible = require("../common/collapsible");
|
|
12
|
+
var _chatModel = require("../../model/chat.model.js");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function Service({
|
|
15
|
+
data,
|
|
16
|
+
theme = _chatModel.Theme.Dark,
|
|
17
|
+
language,
|
|
18
|
+
onSelect
|
|
19
|
+
}) {
|
|
20
|
+
const c = (0, _themeUtils.getThemeClasses)(theme);
|
|
21
|
+
const items = Array.isArray(data) ? data : [data];
|
|
22
|
+
const {
|
|
23
|
+
head,
|
|
24
|
+
rest,
|
|
25
|
+
expanded,
|
|
26
|
+
hasMore,
|
|
27
|
+
toggle
|
|
28
|
+
} = (0, _useExpandableList.useExpandableList)(items);
|
|
29
|
+
const renderRow = item => {
|
|
30
|
+
const name = (0, _i18nUtils.resolveText)(item.name, language);
|
|
31
|
+
const description = (0, _i18nUtils.resolveText)(item.description, language);
|
|
32
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
33
|
+
className: "flex cursor-pointer items-center gap-3",
|
|
34
|
+
onClick: () => onSelect?.(item),
|
|
35
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
|
|
36
|
+
src: item.image,
|
|
37
|
+
alt: name,
|
|
38
|
+
className: `h-14 w-14 rounded-lg object-cover down-sm:h-12 down-sm:w-12 ${c.iconBg}`
|
|
39
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
40
|
+
className: "flex min-w-0 flex-1 flex-col gap-1",
|
|
41
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
42
|
+
className: "flex items-center justify-between gap-2",
|
|
43
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
44
|
+
className: `flex-1 truncate text-base font-bold down-sm:text-sm ${c.title}`,
|
|
45
|
+
children: name
|
|
46
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
47
|
+
className: `shrink-0 text-base font-bold down-sm:text-sm ${c.price}`,
|
|
48
|
+
children: item.price
|
|
49
|
+
})]
|
|
50
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
|
|
51
|
+
className: `line-clamp-2 text-sm down-sm:text-xs ${c.subtitle}`,
|
|
52
|
+
children: description
|
|
53
|
+
})]
|
|
54
|
+
})]
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
58
|
+
className: `rounded-2xl border px-3 py-2 ${c.surface} ${c.border}`,
|
|
59
|
+
children: [head.map((item, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
60
|
+
children: [index > 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
61
|
+
className: `my-2.5 h-px ${c.divider}`
|
|
62
|
+
}) : null, renderRow(item)]
|
|
63
|
+
}, item.id)), hasMore ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
64
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_collapsible.Collapsible, {
|
|
65
|
+
expanded: expanded,
|
|
66
|
+
children: rest.map(item => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
|
|
67
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
68
|
+
className: `my-2.5 h-px ${c.divider}`
|
|
69
|
+
}), renderRow(item)]
|
|
70
|
+
}, item.id))
|
|
71
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
72
|
+
className: "mt-2 flex justify-center",
|
|
73
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
|
|
74
|
+
type: "button",
|
|
75
|
+
onClick: toggle,
|
|
76
|
+
className: `rounded-xl border px-4 py-1.5 text-sm font-medium ${c.actionBorder} ${c.actionText}`,
|
|
77
|
+
children: expanded ? 'Show less' : 'Show more'
|
|
78
|
+
})
|
|
79
|
+
})]
|
|
80
|
+
}) : null]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_themeUtils","_i18nUtils","_useExpandableList","_collapsible","_chatModel","_jsxRuntime","Service","data","theme","Theme","Dark","language","onSelect","c","getThemeClasses","items","Array","isArray","head","rest","expanded","hasMore","toggle","useExpandableList","renderRow","item","name","resolveText","description","jsxs","className","onClick","children","jsx","src","image","alt","iconBg","title","price","subtitle","surface","border","map","index","Fragment","divider","id","Collapsible","type","actionBorder","actionText"],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/service.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["features/chat/components/service/service.model.ts"],"mappings":"","ignoreList":[]}
|