@solostylist/ui-kit 1.0.134 → 1.0.136
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/dist/{Favorite-D-vTz4mw.js → Favorite-DmSF47XC.js} +2 -2
- package/dist/main.d.ts +6 -0
- package/dist/main.js +142 -134
- package/dist/s-chat-message/s-chat-message.d.ts +3 -0
- package/dist/s-chat-message/s-chat-message.js +117 -65
- package/dist/s-comment-message/s-comment-message.js +1 -1
- package/dist/s-item-not-found/index.d.ts +2 -0
- package/dist/s-item-not-found/index.js +4 -0
- package/dist/s-item-not-found/package.json +5 -0
- package/dist/s-item-not-found/s-item-not-found.d.ts +10 -0
- package/dist/s-item-not-found/s-item-not-found.js +10 -0
- package/dist/s-review/s-review.d.ts +3 -1
- package/dist/s-review/s-review.js +105 -50
- package/dist/s-theme-demo/s-theme-demo.js +1 -1
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { j as o } from "./jsx-runtime-OVHDjVDe.js";
|
|
2
2
|
import { c as t } from "./createSvgIcon-Dq42_0tn.js";
|
|
3
|
-
const
|
|
3
|
+
const c = t(/* @__PURE__ */ o.jsx("path", {
|
|
4
4
|
d: "m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54z"
|
|
5
5
|
}), "Favorite");
|
|
6
6
|
export {
|
|
7
|
-
|
|
7
|
+
c as F
|
|
8
8
|
};
|
package/dist/main.d.ts
CHANGED
|
@@ -16,6 +16,8 @@ export { default as SChatInput } from './s-chat-input/index';
|
|
|
16
16
|
export type { SChatInputProps } from './s-chat-input/index';
|
|
17
17
|
export { default as SChatMessage } from './s-chat-message/index';
|
|
18
18
|
export type { SChatMessageProps } from './s-chat-message/index';
|
|
19
|
+
export { default as SCommentMessage } from './s-comment-message/index';
|
|
20
|
+
export type { SCommentMessageProps } from './s-comment-message/index';
|
|
19
21
|
export { default as STextEditor } from './s-text-editor/index';
|
|
20
22
|
export type { STextEditorProps } from './s-text-editor/index';
|
|
21
23
|
export { default as SCheckbox } from './s-checkbox/index';
|
|
@@ -105,6 +107,8 @@ export { default as SLazyImage } from './s-lazy-image/index';
|
|
|
105
107
|
export type { SLazyImageProps } from './s-lazy-image/index';
|
|
106
108
|
export { default as SImageComparison } from './s-image-comparison/index';
|
|
107
109
|
export type { SImageComparisonProps } from './s-image-comparison/index';
|
|
110
|
+
export { default as SItemNotFound } from './s-item-not-found/index';
|
|
111
|
+
export type { SItemNotFoundProps } from './s-item-not-found/index';
|
|
108
112
|
export { default as SCategoryCard } from './s-category-card/index';
|
|
109
113
|
export type { SCategoryCardProps } from './s-category-card/index';
|
|
110
114
|
export { default as SRadialPulseAnimate } from './s-radial-pulse-animate/index';
|
|
@@ -119,5 +123,7 @@ export { default as STextShimmer } from './s-text-shimmer/index';
|
|
|
119
123
|
export type { STextShimmerProps } from './s-text-shimmer/index';
|
|
120
124
|
export { default as STypewriterText } from './s-typewriter-text/index';
|
|
121
125
|
export type { STypewriterTextProps } from './s-typewriter-text/index';
|
|
126
|
+
export { default as SLanguageSwitcher, SLanguagePopover, defaultLanguageOptions } from './s-language-switcher/index';
|
|
127
|
+
export type { SLanguageSwitcherProps, SLanguagePopoverProps, SLanguageOption } from './s-language-switcher/index';
|
|
122
128
|
export * from './hooks';
|
|
123
129
|
export * from './utils';
|
package/dist/main.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { default as
|
|
1
|
+
import { default as t } from "./s-accordion/s-accordion.js";
|
|
2
2
|
import { default as l } from "./s-action-overlay/s-action-overlay.js";
|
|
3
3
|
import { default as s } from "./s-autocomplete/s-autocomplete.js";
|
|
4
4
|
import { default as S } from "./s-avatar/s-avatar.js";
|
|
@@ -7,151 +7,159 @@ import { default as i } from "./s-button-link/s-button-link.js";
|
|
|
7
7
|
import { default as g } from "./s-carousel/s-carousel.js";
|
|
8
8
|
import { default as T } from "./s-chat-input/s-chat-input.js";
|
|
9
9
|
import { default as v } from "./s-chat-message/s-chat-message.js";
|
|
10
|
-
import { default as b } from "./s-
|
|
10
|
+
import { default as b } from "./s-comment-message/s-comment-message.js";
|
|
11
|
+
import { default as M } from "./s-text-editor/s-text-editor.js";
|
|
11
12
|
import "./s-text-editor/s-text-editor-toolbar.js";
|
|
12
13
|
import { default as y } from "./s-checkbox/s-checkbox.js";
|
|
13
|
-
import { default as
|
|
14
|
-
import { default as
|
|
15
|
-
import { default as
|
|
16
|
-
import { DialogConfirmProvider as
|
|
17
|
-
import { DialogMessageProvider as
|
|
18
|
-
import { default as
|
|
19
|
-
import { default as
|
|
20
|
-
import { default as
|
|
21
|
-
import { default as
|
|
22
|
-
import { default as
|
|
23
|
-
import { default as
|
|
24
|
-
import { default as
|
|
25
|
-
import { default as
|
|
26
|
-
import { default as
|
|
27
|
-
import { default as
|
|
28
|
-
import { default as
|
|
29
|
-
import { default as
|
|
30
|
-
import { default as
|
|
31
|
-
import { default as
|
|
32
|
-
import { default as
|
|
33
|
-
import { default as
|
|
34
|
-
import { default as
|
|
35
|
-
import { default as
|
|
36
|
-
import { default as
|
|
37
|
-
import { default as
|
|
38
|
-
import { SSmartTextField as
|
|
39
|
-
import { SCopilotKitProvider as
|
|
40
|
-
import { SStripeCVC as
|
|
41
|
-
import { default as
|
|
42
|
-
import { default as
|
|
43
|
-
import { default as
|
|
44
|
-
import { default as
|
|
45
|
-
import { default as
|
|
46
|
-
import { default as
|
|
47
|
-
import { default as
|
|
48
|
-
import { default as
|
|
49
|
-
import { default as
|
|
50
|
-
import { default as
|
|
51
|
-
import { default as
|
|
52
|
-
import { MediaItem as
|
|
53
|
-
import { default as
|
|
54
|
-
import { default as
|
|
55
|
-
import { default as
|
|
56
|
-
import { default as
|
|
57
|
-
import { default as
|
|
58
|
-
import { default as
|
|
59
|
-
import { default as
|
|
60
|
-
import { default as
|
|
61
|
-
import { default as
|
|
62
|
-
import { default as
|
|
63
|
-
import { default as
|
|
64
|
-
import { default as
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
14
|
+
import { default as L } from "./s-chip/s-chip.js";
|
|
15
|
+
import { default as F } from "./s-chips/s-chips.js";
|
|
16
|
+
import { default as B } from "./s-data-table/s-data-table.js";
|
|
17
|
+
import { DialogConfirmProvider as z, default as E, useDialogConfirm as R } from "./s-dialog-confirm/s-dialog-confirm.js";
|
|
18
|
+
import { DialogMessageProvider as N, default as O, useDialogMessage as j } from "./s-dialog-message/s-dialog-message.js";
|
|
19
|
+
import { default as V } from "./s-error/s-error.js";
|
|
20
|
+
import { default as H } from "./s-empty/s-empty.js";
|
|
21
|
+
import { default as Q } from "./s-flex-box/s-flex-box.js";
|
|
22
|
+
import { default as W } from "./s-dialog/s-dialog.js";
|
|
23
|
+
import { default as Y } from "./s-file-dropzone/s-file-dropzone.js";
|
|
24
|
+
import { default as _ } from "./s-file-icon/s-file-icon.js";
|
|
25
|
+
import { default as ee } from "./s-i18n-provider/s-i18n-provider.js";
|
|
26
|
+
import { default as re } from "./s-icon-button/s-icon-button.js";
|
|
27
|
+
import { default as te } from "./s-label/s-label.js";
|
|
28
|
+
import { default as le } from "./s-multi-select/s-multi-select.js";
|
|
29
|
+
import { default as se } from "./s-no-ssr/s-no-ssr.js";
|
|
30
|
+
import { default as Se } from "./s-overlay-scrollbar/s-overlay-scrollbar.js";
|
|
31
|
+
import { default as de } from "./s-text-field/s-text-field.js";
|
|
32
|
+
import { default as ie } from "./s-pagination/s-pagination.js";
|
|
33
|
+
import { default as ge } from "./s-select/s-select.js";
|
|
34
|
+
import { default as Te } from "./s-skeleton/s-skeleton.js";
|
|
35
|
+
import { default as ve } from "./s-tip/s-tip.js";
|
|
36
|
+
import { default as be } from "./s-text-truncation/s-text-truncation.js";
|
|
37
|
+
import { default as Me, SnackbarMessageProvider as he, useSnackbarMessage as ye } from "./s-snackbar-message/s-snackbar-message.js";
|
|
38
|
+
import { default as Le } from "./s-form/s-form.js";
|
|
39
|
+
import { SSmartTextField as Fe } from "./s-smart-text-field/s-smart-text-field.js";
|
|
40
|
+
import { SCopilotKitProvider as Be } from "./s-copilot-kit-provider/s-copilot-kit-provider.js";
|
|
41
|
+
import { SStripeCVC as ze, SStripeExpiry as Ee, SStripeNumber as Re, StripeTextField as Ge } from "./s-stripe/s-stripe.js";
|
|
42
|
+
import { default as Oe } from "./s-theme-provider/s-theme-provider.js";
|
|
43
|
+
import { default as Ke } from "./s-theme-switch/s-theme-switch.js";
|
|
44
|
+
import { default as qe } from "./s-datetime-picker/s-datetime-picker.js";
|
|
45
|
+
import { default as Je } from "./s-date-picker/s-date-picker.js";
|
|
46
|
+
import { default as Ue } from "./s-localization-provider/s-localization-provider.js";
|
|
47
|
+
import { default as Xe } from "./s-gradient-icon/s-gradient-icon.js";
|
|
48
|
+
import { default as Ze } from "./s-glow-button/s-glow-button.js";
|
|
49
|
+
import { default as $e } from "./s-moving-border/s-moving-border.js";
|
|
50
|
+
import { default as oo } from "./s-scroll-reveal/s-scroll-reveal.js";
|
|
51
|
+
import { default as ao } from "./s-spotlight-cursor/s-spotlight-cursor.js";
|
|
52
|
+
import { default as fo } from "./s-copyable-text/s-copyable-text.js";
|
|
53
|
+
import { MediaItem as mo, default as so } from "./s-interactive-gallery/s-interactive-gallery.js";
|
|
54
|
+
import { default as So } from "./s-image-modal/s-image-modal.js";
|
|
55
|
+
import { default as xo } from "./s-lazy-image/s-lazy-image.js";
|
|
56
|
+
import { default as no } from "./s-image-comparison/s-image-comparison.js";
|
|
57
|
+
import { default as co } from "./s-item-not-found/s-item-not-found.js";
|
|
58
|
+
import { default as Co } from "./s-category-card/s-category-card.js";
|
|
59
|
+
import { default as Po } from "./s-radial-pulse-animate/s-radial-pulse-animate.js";
|
|
60
|
+
import { default as Do } from "./s-rating/s-rating.js";
|
|
61
|
+
import { default as ho } from "./s-review/s-review.js";
|
|
62
|
+
import { default as Io } from "./s-tabs/s-tabs.js";
|
|
63
|
+
import { default as ko } from "./s-tabs/s-tab.js";
|
|
64
|
+
import { default as Ao } from "./s-tabs/s-tab-panel.js";
|
|
65
|
+
import { default as wo } from "./s-text-shimmer/s-text-shimmer.js";
|
|
66
|
+
import { default as Eo } from "./s-typewriter-text/s-typewriter-text.js";
|
|
67
|
+
import { SLanguagePopover as Go, default as No, defaultLanguageOptions as Oo } from "./s-language-switcher/s-language-switcher.js";
|
|
68
|
+
import { useDialog as Ko } from "./hooks/use-dialog.js";
|
|
69
|
+
import { usePopover as qo } from "./hooks/use-popover.js";
|
|
67
70
|
import "react";
|
|
68
|
-
import { useScrollAnimation as
|
|
69
|
-
import { formatDatePosted as
|
|
70
|
-
import { bytesToSize as
|
|
71
|
-
import { LogLevel as
|
|
72
|
-
import { default as
|
|
71
|
+
import { useScrollAnimation as Jo } from "./hooks/use-scroll-animation.js";
|
|
72
|
+
import { formatDatePosted as Uo } from "./utils/dayjs.js";
|
|
73
|
+
import { bytesToSize as Xo } from "./utils/bytes-to-size.js";
|
|
74
|
+
import { LogLevel as Zo, Logger as _o, createLogger as $o, logger as er } from "./utils/logger.js";
|
|
75
|
+
import { default as rr } from "dayjs";
|
|
73
76
|
export {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
z as DialogConfirmProvider,
|
|
78
|
+
N as DialogMessageProvider,
|
|
79
|
+
Zo as LogLevel,
|
|
80
|
+
_o as Logger,
|
|
81
|
+
mo as MediaItem,
|
|
82
|
+
t as SAccordion,
|
|
80
83
|
l as SActionOverlay,
|
|
81
84
|
s as SAutocomplete,
|
|
82
85
|
S as SAvatar,
|
|
83
86
|
d as SButton,
|
|
84
87
|
i as SButtonLink,
|
|
85
88
|
g as SCarousel,
|
|
86
|
-
|
|
89
|
+
Co as SCategoryCard,
|
|
87
90
|
T as SChatInput,
|
|
88
91
|
v as SChatMessage,
|
|
89
92
|
y as SCheckbox,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
Y as
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
ee as
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
93
|
+
L as SChip,
|
|
94
|
+
F as SChips,
|
|
95
|
+
b as SCommentMessage,
|
|
96
|
+
Be as SCopilotKitProvider,
|
|
97
|
+
fo as SCopyableText,
|
|
98
|
+
B as SDataTable,
|
|
99
|
+
Je as SDatePicker,
|
|
100
|
+
qe as SDateTimePicker,
|
|
101
|
+
W as SDialog,
|
|
102
|
+
E as SDialogConfirm,
|
|
103
|
+
O as SDialogMessage,
|
|
104
|
+
H as SEmpty,
|
|
105
|
+
V as SError,
|
|
106
|
+
Y as SFileDropzone,
|
|
107
|
+
_ as SFileIcon,
|
|
108
|
+
Q as SFlexBox,
|
|
109
|
+
Le as SForm,
|
|
110
|
+
Ze as SGlowButton,
|
|
111
|
+
Xe as SGradientIcon,
|
|
112
|
+
ee as SI18nProvider,
|
|
113
|
+
re as SIconButton,
|
|
114
|
+
no as SImageComparison,
|
|
115
|
+
So as SImageModal,
|
|
116
|
+
so as SInteractiveGallery,
|
|
117
|
+
co as SItemNotFound,
|
|
118
|
+
te as SLabel,
|
|
119
|
+
Go as SLanguagePopover,
|
|
120
|
+
No as SLanguageSwitcher,
|
|
121
|
+
xo as SLazyImage,
|
|
122
|
+
Ue as SLocalizationProvider,
|
|
123
|
+
$e as SMovingBorder,
|
|
124
|
+
le as SMultiSelect,
|
|
125
|
+
se as SNoSsr,
|
|
126
|
+
Se as SOverlayScrollbar,
|
|
127
|
+
ie as SPagination,
|
|
128
|
+
Po as SRadialPulseAnimate,
|
|
129
|
+
Do as SRating,
|
|
130
|
+
ho as SReview,
|
|
131
|
+
oo as SScrollReveal,
|
|
132
|
+
ge as SSelect,
|
|
133
|
+
Te as SSkeleton,
|
|
134
|
+
Fe as SSmartTextField,
|
|
135
|
+
Me as SSnackbarMessage,
|
|
136
|
+
ao as SSpotlightCursor,
|
|
137
|
+
ze as SStripeCVC,
|
|
138
|
+
Ee as SStripeExpiry,
|
|
139
|
+
Re as SStripeNumber,
|
|
140
|
+
ko as STab,
|
|
141
|
+
Ao as STabPanel,
|
|
142
|
+
Io as STabs,
|
|
143
|
+
M as STextEditor,
|
|
144
|
+
de as STextField,
|
|
145
|
+
wo as STextShimmer,
|
|
146
|
+
be as STextTruncation,
|
|
147
|
+
Oe as SThemeProvider,
|
|
148
|
+
Ke as SThemeSwitch,
|
|
149
|
+
ve as STip,
|
|
150
|
+
Eo as STypewriterText,
|
|
151
|
+
he as SnackbarMessageProvider,
|
|
152
|
+
Ge as StripeTextField,
|
|
153
|
+
Xo as bytesToSize,
|
|
154
|
+
$o as createLogger,
|
|
155
|
+
rr as dayjs,
|
|
156
|
+
Oo as defaultLanguageOptions,
|
|
157
|
+
Uo as formatDatePosted,
|
|
158
|
+
er as logger,
|
|
159
|
+
Ko as useDialog,
|
|
160
|
+
R as useDialogConfirm,
|
|
161
|
+
j as useDialogMessage,
|
|
162
|
+
qo as usePopover,
|
|
163
|
+
Jo as useScrollAnimation,
|
|
156
164
|
ye as useSnackbarMessage
|
|
157
165
|
};
|
|
@@ -21,6 +21,9 @@ export interface SChatMessageProps extends Omit<BoxProps, 'children'> {
|
|
|
21
21
|
attachments?: ChatAttachment[];
|
|
22
22
|
onAttachmentClick?: (attachment: ChatAttachment) => void;
|
|
23
23
|
onDownload?: (attachment: ChatAttachment) => void;
|
|
24
|
+
hasError?: boolean;
|
|
25
|
+
errorMessage?: string;
|
|
26
|
+
onRetry?: () => void;
|
|
24
27
|
}
|
|
25
28
|
declare const SChatMessage: React.FC<SChatMessageProps>;
|
|
26
29
|
export default SChatMessage;
|
|
@@ -1,42 +1,49 @@
|
|
|
1
1
|
import { j as r } from "../jsx-runtime-OVHDjVDe.js";
|
|
2
|
-
import { useState as
|
|
3
|
-
import { Box as o, Typography as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { c as
|
|
8
|
-
const
|
|
2
|
+
import { useState as I } from "react";
|
|
3
|
+
import { Box as o, Typography as s, Paper as R, IconButton as b } from "@mui/material";
|
|
4
|
+
import k from "../s-avatar/s-avatar.js";
|
|
5
|
+
import V from "../s-image-modal/s-image-modal.js";
|
|
6
|
+
import U from "../s-lazy-image/s-lazy-image.js";
|
|
7
|
+
import { c as x } from "../createSvgIcon-Dq42_0tn.js";
|
|
8
|
+
const A = x(/* @__PURE__ */ r.jsx("path", {
|
|
9
9
|
d: "M5 20h14v-2H5zM19 9h-4V3H9v6H5l7 7z"
|
|
10
|
-
}), "Download"),
|
|
10
|
+
}), "Download"), P = x(/* @__PURE__ */ r.jsx("path", {
|
|
11
|
+
d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8"
|
|
12
|
+
}), "ErrorOutline"), E = x(/* @__PURE__ */ r.jsx("path", {
|
|
11
13
|
d: "M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm7 7V3.5L18.5 9z"
|
|
12
|
-
}), "InsertDriveFile"),
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
}), "InsertDriveFile"), G = x(/* @__PURE__ */ r.jsx("path", {
|
|
15
|
+
d: "M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"
|
|
16
|
+
}), "Refresh"), _ = ({
|
|
17
|
+
message: f,
|
|
18
|
+
variant: w = "received",
|
|
19
|
+
timestamp: g,
|
|
20
|
+
avatar: u,
|
|
21
|
+
senderName: l,
|
|
22
|
+
showAvatar: j = !0,
|
|
23
|
+
showTimestamp: M = !1,
|
|
24
|
+
maxWidth: C = "70%",
|
|
25
|
+
attachments: m = [],
|
|
26
|
+
onAttachmentClick: t,
|
|
23
27
|
onDownload: n,
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
hasError: h = !1,
|
|
29
|
+
errorMessage: T = "Failed to send message",
|
|
30
|
+
onRetry: v,
|
|
31
|
+
sx: B,
|
|
32
|
+
...F
|
|
26
33
|
}) => {
|
|
27
|
-
const [a,
|
|
34
|
+
const [a, y] = I(null), [W, z] = I(!1), i = w === "sent", H = (e) => (typeof e == "string" ? new Date(e) : e).toLocaleTimeString("en-US", {
|
|
28
35
|
hour: "2-digit",
|
|
29
36
|
minute: "2-digit",
|
|
30
37
|
hour12: !0
|
|
31
|
-
}),
|
|
38
|
+
}), L = (e) => {
|
|
32
39
|
if (!e) return "";
|
|
33
|
-
const
|
|
34
|
-
return Math.round(e / Math.pow(1024, p) * 100) / 100 + " " +
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
+
const d = ["Bytes", "KB", "MB", "GB"], p = Math.floor(Math.log(e) / Math.log(1024));
|
|
41
|
+
return Math.round(e / Math.pow(1024, p) * 100) / 100 + " " + d[p];
|
|
42
|
+
}, O = (e) => {
|
|
43
|
+
t ? t(e) : (y(e), z(!0));
|
|
44
|
+
}, D = (e) => {
|
|
45
|
+
t ? t(e) : n && n(e);
|
|
46
|
+
}, c = m.filter((e) => e.type === "image"), S = m.filter((e) => e.type === "file");
|
|
40
47
|
return /* @__PURE__ */ r.jsxs(
|
|
41
48
|
o,
|
|
42
49
|
{
|
|
@@ -46,13 +53,13 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
46
53
|
gap: 1,
|
|
47
54
|
mb: 1,
|
|
48
55
|
sx: {
|
|
49
|
-
maxWidth:
|
|
56
|
+
maxWidth: C,
|
|
50
57
|
alignSelf: i ? "flex-end" : "flex-start",
|
|
51
|
-
...
|
|
58
|
+
...B
|
|
52
59
|
},
|
|
53
|
-
...
|
|
60
|
+
...F,
|
|
54
61
|
children: [
|
|
55
|
-
|
|
62
|
+
j && !i && /* @__PURE__ */ r.jsx(k, { avatar: u, name: l, size: 36 }),
|
|
56
63
|
/* @__PURE__ */ r.jsxs(
|
|
57
64
|
o,
|
|
58
65
|
{
|
|
@@ -62,8 +69,8 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
62
69
|
gap: 0.5,
|
|
63
70
|
sx: { minWidth: 0 },
|
|
64
71
|
children: [
|
|
65
|
-
|
|
66
|
-
|
|
72
|
+
l && !i && /* @__PURE__ */ r.jsx(
|
|
73
|
+
s,
|
|
67
74
|
{
|
|
68
75
|
variant: "caption",
|
|
69
76
|
sx: {
|
|
@@ -72,7 +79,7 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
72
79
|
fontWeight: 500,
|
|
73
80
|
ml: 0.5
|
|
74
81
|
},
|
|
75
|
-
children:
|
|
82
|
+
children: l
|
|
76
83
|
}
|
|
77
84
|
),
|
|
78
85
|
/* @__PURE__ */ r.jsxs(
|
|
@@ -86,29 +93,32 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
86
93
|
backgroundColor: i ? "primary.main" : "",
|
|
87
94
|
color: i ? "primary.contrastText" : "text.primary",
|
|
88
95
|
border: i ? "none" : "1px solid",
|
|
89
|
-
borderColor: "divider",
|
|
96
|
+
borderColor: h ? "error.main" : "divider",
|
|
90
97
|
...i && {
|
|
91
98
|
backgroundColor: "primary.dark"
|
|
92
99
|
},
|
|
100
|
+
...h && {
|
|
101
|
+
opacity: 0.7
|
|
102
|
+
},
|
|
93
103
|
overflow: "hidden"
|
|
94
104
|
},
|
|
95
105
|
children: [
|
|
96
|
-
|
|
106
|
+
c.length > 0 && /* @__PURE__ */ r.jsx(
|
|
97
107
|
o,
|
|
98
108
|
{
|
|
99
109
|
sx: {
|
|
100
110
|
display: "grid",
|
|
101
|
-
gridTemplateColumns:
|
|
111
|
+
gridTemplateColumns: c.length === 1 ? "1fr" : "repeat(2, 1fr)",
|
|
102
112
|
gap: 0.5,
|
|
103
113
|
p: 0.5
|
|
104
114
|
},
|
|
105
115
|
minWidth: 200,
|
|
106
|
-
children:
|
|
116
|
+
children: c.map((e) => /* @__PURE__ */ r.jsx(
|
|
107
117
|
o,
|
|
108
118
|
{
|
|
109
119
|
sx: {
|
|
110
120
|
position: "relative",
|
|
111
|
-
paddingTop:
|
|
121
|
+
paddingTop: c.length === 1 ? "66.67%" : "100%",
|
|
112
122
|
cursor: "pointer",
|
|
113
123
|
borderRadius: 1.5,
|
|
114
124
|
overflow: "hidden",
|
|
@@ -116,9 +126,9 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
116
126
|
opacity: 0.9
|
|
117
127
|
}
|
|
118
128
|
},
|
|
119
|
-
onClick: () =>
|
|
129
|
+
onClick: () => O(e),
|
|
120
130
|
children: /* @__PURE__ */ r.jsx(
|
|
121
|
-
|
|
131
|
+
U,
|
|
122
132
|
{
|
|
123
133
|
src: e.thumbnailUrl || e.url,
|
|
124
134
|
alt: e.name || "Image",
|
|
@@ -137,8 +147,8 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
137
147
|
))
|
|
138
148
|
}
|
|
139
149
|
),
|
|
140
|
-
|
|
141
|
-
|
|
150
|
+
S.length > 0 && /* @__PURE__ */ r.jsx(o, { sx: { p: 1.5 }, children: S.map((e, d) => /* @__PURE__ */ r.jsxs(
|
|
151
|
+
R,
|
|
142
152
|
{
|
|
143
153
|
variant: "outlined",
|
|
144
154
|
sx: {
|
|
@@ -146,17 +156,17 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
146
156
|
alignItems: "center",
|
|
147
157
|
gap: 1.5,
|
|
148
158
|
p: 1,
|
|
149
|
-
mt:
|
|
159
|
+
mt: d > 0 ? 1 : 0,
|
|
150
160
|
cursor: "pointer",
|
|
151
161
|
backgroundColor: i ? "blackAlpha.zero" : "background.paper",
|
|
152
162
|
"&:hover": {
|
|
153
163
|
backgroundColor: i ? "blackAlpha.light" : "action.hover"
|
|
154
164
|
}
|
|
155
165
|
},
|
|
156
|
-
onClick: () =>
|
|
166
|
+
onClick: () => D(e),
|
|
157
167
|
children: [
|
|
158
168
|
/* @__PURE__ */ r.jsx(
|
|
159
|
-
|
|
169
|
+
E,
|
|
160
170
|
{
|
|
161
171
|
sx: {
|
|
162
172
|
fontSize: 32,
|
|
@@ -166,7 +176,7 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
166
176
|
),
|
|
167
177
|
/* @__PURE__ */ r.jsxs(o, { sx: { flex: 1, minWidth: 0 }, children: [
|
|
168
178
|
/* @__PURE__ */ r.jsx(
|
|
169
|
-
|
|
179
|
+
s,
|
|
170
180
|
{
|
|
171
181
|
variant: "body2",
|
|
172
182
|
sx: {
|
|
@@ -181,19 +191,19 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
181
191
|
}
|
|
182
192
|
),
|
|
183
193
|
e.size && /* @__PURE__ */ r.jsx(
|
|
184
|
-
|
|
194
|
+
s,
|
|
185
195
|
{
|
|
186
196
|
variant: "caption",
|
|
187
197
|
sx: {
|
|
188
198
|
fontSize: "0.75rem",
|
|
189
199
|
color: i ? "whiteAlpha.dark" : "text.secondary"
|
|
190
200
|
},
|
|
191
|
-
children:
|
|
201
|
+
children: L(e.size)
|
|
192
202
|
}
|
|
193
203
|
)
|
|
194
204
|
] }),
|
|
195
205
|
n && /* @__PURE__ */ r.jsx(
|
|
196
|
-
|
|
206
|
+
b,
|
|
197
207
|
{
|
|
198
208
|
size: "small",
|
|
199
209
|
onClick: (p) => {
|
|
@@ -202,15 +212,15 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
202
212
|
sx: {
|
|
203
213
|
color: i ? "primary.contrastText" : "action.active"
|
|
204
214
|
},
|
|
205
|
-
children: /* @__PURE__ */ r.jsx(
|
|
215
|
+
children: /* @__PURE__ */ r.jsx(A, { fontSize: "small" })
|
|
206
216
|
}
|
|
207
217
|
)
|
|
208
218
|
]
|
|
209
219
|
},
|
|
210
220
|
e.id
|
|
211
221
|
)) }),
|
|
212
|
-
|
|
213
|
-
|
|
222
|
+
f && /* @__PURE__ */ r.jsx(o, { sx: { px: 2, py: 1.5, pt: m.length > 0 ? 0 : 1.5 }, children: /* @__PURE__ */ r.jsx(
|
|
223
|
+
s,
|
|
214
224
|
{
|
|
215
225
|
variant: "body2",
|
|
216
226
|
sx: {
|
|
@@ -218,14 +228,14 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
218
228
|
lineHeight: 1.4,
|
|
219
229
|
whiteSpace: "pre-wrap"
|
|
220
230
|
},
|
|
221
|
-
children:
|
|
231
|
+
children: f
|
|
222
232
|
}
|
|
223
233
|
) })
|
|
224
234
|
]
|
|
225
235
|
}
|
|
226
236
|
),
|
|
227
|
-
|
|
228
|
-
|
|
237
|
+
M && g && /* @__PURE__ */ r.jsx(
|
|
238
|
+
s,
|
|
229
239
|
{
|
|
230
240
|
variant: "caption",
|
|
231
241
|
sx: {
|
|
@@ -234,19 +244,61 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
234
244
|
ml: i ? 0 : 0.5,
|
|
235
245
|
mr: i ? 0.5 : 0
|
|
236
246
|
},
|
|
237
|
-
children:
|
|
247
|
+
children: H(g)
|
|
248
|
+
}
|
|
249
|
+
),
|
|
250
|
+
h && /* @__PURE__ */ r.jsxs(
|
|
251
|
+
o,
|
|
252
|
+
{
|
|
253
|
+
display: "flex",
|
|
254
|
+
alignItems: "center",
|
|
255
|
+
gap: 0.5,
|
|
256
|
+
sx: {
|
|
257
|
+
color: "error.main",
|
|
258
|
+
ml: i ? 0 : 0.5,
|
|
259
|
+
mr: i ? 0.5 : 0
|
|
260
|
+
},
|
|
261
|
+
children: [
|
|
262
|
+
/* @__PURE__ */ r.jsx(P, { sx: { fontSize: "0.875rem" } }),
|
|
263
|
+
/* @__PURE__ */ r.jsx(
|
|
264
|
+
s,
|
|
265
|
+
{
|
|
266
|
+
variant: "caption",
|
|
267
|
+
sx: {
|
|
268
|
+
fontSize: "0.75rem",
|
|
269
|
+
fontWeight: 500
|
|
270
|
+
},
|
|
271
|
+
children: T
|
|
272
|
+
}
|
|
273
|
+
),
|
|
274
|
+
v && /* @__PURE__ */ r.jsx(
|
|
275
|
+
b,
|
|
276
|
+
{
|
|
277
|
+
size: "small",
|
|
278
|
+
onClick: v,
|
|
279
|
+
sx: {
|
|
280
|
+
color: "error.main",
|
|
281
|
+
padding: 0.25,
|
|
282
|
+
"&:hover": {
|
|
283
|
+
backgroundColor: "error.light"
|
|
284
|
+
}
|
|
285
|
+
},
|
|
286
|
+
children: /* @__PURE__ */ r.jsx(G, { sx: { fontSize: "0.875rem" } })
|
|
287
|
+
}
|
|
288
|
+
)
|
|
289
|
+
]
|
|
238
290
|
}
|
|
239
291
|
)
|
|
240
292
|
]
|
|
241
293
|
}
|
|
242
294
|
),
|
|
243
|
-
|
|
295
|
+
j && i && /* @__PURE__ */ r.jsx(k, { avatar: u, name: l, size: 36 }),
|
|
244
296
|
a && /* @__PURE__ */ r.jsx(
|
|
245
|
-
|
|
297
|
+
V,
|
|
246
298
|
{
|
|
247
|
-
isOpen:
|
|
299
|
+
isOpen: W,
|
|
248
300
|
onClose: () => {
|
|
249
|
-
|
|
301
|
+
z(!1), y(null);
|
|
250
302
|
},
|
|
251
303
|
selectedItem: {
|
|
252
304
|
id: a.id,
|
|
@@ -263,5 +315,5 @@ const R = z(/* @__PURE__ */ r.jsx("path", {
|
|
|
263
315
|
);
|
|
264
316
|
};
|
|
265
317
|
export {
|
|
266
|
-
|
|
318
|
+
_ as default
|
|
267
319
|
};
|
|
@@ -2,7 +2,7 @@ import { j as t } from "../jsx-runtime-OVHDjVDe.js";
|
|
|
2
2
|
import { useState as u, useEffect as w } from "react";
|
|
3
3
|
import { Box as v, Stack as y, Typography as m, IconButton as W, Button as k, Collapse as H } from "@mui/material";
|
|
4
4
|
import A from "../s-avatar/s-avatar.js";
|
|
5
|
-
import { F as P } from "../Favorite-
|
|
5
|
+
import { F as P } from "../Favorite-DmSF47XC.js";
|
|
6
6
|
import { c as I } from "../createSvgIcon-Dq42_0tn.js";
|
|
7
7
|
import { E as V } from "../ExpandMore-mZGpvXf6.js";
|
|
8
8
|
const Y = I(/* @__PURE__ */ t.jsx("path", {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BoxProps } from '@mui/material';
|
|
2
|
+
import { SLazyImageProps } from '../s-lazy-image';
|
|
3
|
+
export interface SItemNotFoundProps {
|
|
4
|
+
message: string;
|
|
5
|
+
image?: string;
|
|
6
|
+
boxProps?: BoxProps;
|
|
7
|
+
lazyImageProps?: Omit<SLazyImageProps, 'src'>;
|
|
8
|
+
}
|
|
9
|
+
declare const SItemNotFound: ({ message, image, boxProps, lazyImageProps }: SItemNotFoundProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export default SItemNotFound;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { j as t } from "../jsx-runtime-OVHDjVDe.js";
|
|
2
|
+
import { Box as n, Typography as i } from "@mui/material";
|
|
3
|
+
import a from "../s-lazy-image/s-lazy-image.js";
|
|
4
|
+
const c = ({ message: e, image: o = "/assets/not-found.svg", boxProps: r, lazyImageProps: s }) => /* @__PURE__ */ t.jsxs(n, { display: "flex", justifyContent: "center", alignItems: "center", flexDirection: "column", ...r, children: [
|
|
5
|
+
/* @__PURE__ */ t.jsx(a, { src: o, width: 220, height: 220, ...s }),
|
|
6
|
+
/* @__PURE__ */ t.jsx(i, { variant: "h6", color: "text.disabled", children: e })
|
|
7
|
+
] });
|
|
8
|
+
export {
|
|
9
|
+
c as default
|
|
10
|
+
};
|
|
@@ -7,9 +7,11 @@ export interface SReviewProps {
|
|
|
7
7
|
rating: number;
|
|
8
8
|
reviewContent: string;
|
|
9
9
|
datetime: Date | string;
|
|
10
|
+
images?: string[];
|
|
11
|
+
userHelpfulVote?: 'yes' | 'no' | null;
|
|
10
12
|
helpfulYes?: number;
|
|
11
13
|
helpfulNo?: number;
|
|
12
|
-
onHelpfulVote?: (reviewId: string | number, vote: 'yes' | 'no') => void;
|
|
14
|
+
onHelpfulVote?: (reviewId: string | number, vote: 'yes' | 'no' | null) => void;
|
|
13
15
|
showHelpfulSection?: boolean;
|
|
14
16
|
avatarSize?: number;
|
|
15
17
|
maxRating?: number;
|
|
@@ -1,86 +1,141 @@
|
|
|
1
1
|
import { j as e } from "../jsx-runtime-OVHDjVDe.js";
|
|
2
|
-
import { useState as
|
|
3
|
-
import { Box as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
2
|
+
import { useState as g, useEffect as A } from "react";
|
|
3
|
+
import { Box as p, Stack as j, Typography as i, IconButton as T, Divider as F } from "@mui/material";
|
|
4
|
+
import N from "../s-avatar/s-avatar.js";
|
|
5
|
+
import q from "../s-image-modal/s-image-modal.js";
|
|
6
|
+
import G from "../s-lazy-image/s-lazy-image.js";
|
|
7
|
+
import J from "../s-rating/s-rating.js";
|
|
8
|
+
import { c as $ } from "../createSvgIcon-Dq42_0tn.js";
|
|
9
|
+
const K = $(/* @__PURE__ */ e.jsx("path", {
|
|
8
10
|
d: "M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v2c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2m4 0v12h4V3z"
|
|
9
|
-
}), "ThumbDown"),
|
|
11
|
+
}), "ThumbDown"), P = $(/* @__PURE__ */ e.jsx("path", {
|
|
10
12
|
d: "M1 21h4V9H1zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73z"
|
|
11
|
-
}), "ThumbUp"),
|
|
12
|
-
const
|
|
13
|
-
return
|
|
14
|
-
},
|
|
13
|
+
}), "ThumbUp"), Q = (a) => {
|
|
14
|
+
const c = /* @__PURE__ */ new Date(), y = typeof a == "string" ? new Date(a) : a, v = c.getTime() - y.getTime(), u = Math.floor(v / 1e3), l = Math.floor(u / 60), s = Math.floor(l / 60), r = Math.floor(s / 24), h = Math.floor(r / 7), m = Math.floor(r / 30), f = Math.floor(r / 365);
|
|
15
|
+
return u < 60 ? "just now" : l < 60 ? l === 1 ? "1 minute ago" : `${l} minutes ago` : s < 24 ? s === 1 ? "1 hour ago" : `${s} hours ago` : r < 7 ? r === 1 ? "1 day ago" : `${r} days ago` : h < 4 ? h === 1 ? "1 week ago" : `${h} weeks ago` : m < 12 ? m === 1 ? "1 month ago" : `${m} months ago` : f === 1 ? "1 year ago" : `${f} years ago`;
|
|
16
|
+
}, re = ({
|
|
15
17
|
id: a = Date.now(),
|
|
16
|
-
userName:
|
|
17
|
-
userAvatar:
|
|
18
|
-
rating:
|
|
19
|
-
reviewContent:
|
|
20
|
-
datetime:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
18
|
+
userName: c,
|
|
19
|
+
userAvatar: y,
|
|
20
|
+
rating: v,
|
|
21
|
+
reviewContent: u,
|
|
22
|
+
datetime: l,
|
|
23
|
+
images: s,
|
|
24
|
+
userHelpfulVote: r = null,
|
|
25
|
+
helpfulYes: h = 0,
|
|
26
|
+
helpfulNo: m = 0,
|
|
27
|
+
onHelpfulVote: f,
|
|
28
|
+
showHelpfulSection: k = !0,
|
|
29
|
+
avatarSize: z = 48,
|
|
30
|
+
maxRating: D = 5,
|
|
31
|
+
readOnly: H = !0,
|
|
32
|
+
sx: L = {}
|
|
29
33
|
}) => {
|
|
30
|
-
const [
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
const [R, w] = g(h), [V, I] = g(m), [d, M] = g(r), [W, C] = g(!1), [E, b] = g(null), S = (t) => {
|
|
35
|
+
let n = t;
|
|
36
|
+
d === t ? (t === "yes" ? w((o) => Math.max(0, o - 1)) : I((o) => Math.max(0, o - 1)), M(null), n = null) : (d === "yes" ? w((o) => Math.max(0, o - 1)) : d === "no" && I((o) => Math.max(0, o - 1)), t === "yes" ? w((o) => o + 1) : I((o) => o + 1), M(t), n = t), f && f(a, n);
|
|
37
|
+
}, x = (s == null ? void 0 : s.map((t, n) => ({
|
|
38
|
+
id: `review-${a}-image-${n}`,
|
|
39
|
+
type: "image",
|
|
40
|
+
url: t,
|
|
41
|
+
title: `Review image ${n + 1}`,
|
|
42
|
+
desc: `Image ${n + 1} from ${c}'s review`
|
|
43
|
+
}))) || [], O = (t) => {
|
|
44
|
+
const n = x[t];
|
|
45
|
+
n && (b(n), C(!0));
|
|
46
|
+
}, U = () => {
|
|
47
|
+
C(!1), b(null);
|
|
48
|
+
}, Y = (t) => {
|
|
49
|
+
b(t);
|
|
50
|
+
}, B = Q(l);
|
|
51
|
+
return A(() => {
|
|
52
|
+
M(r);
|
|
53
|
+
}, [r]), /* @__PURE__ */ e.jsxs(p, { sx: { py: 2, ...L }, children: [
|
|
54
|
+
/* @__PURE__ */ e.jsxs(j, { direction: "row", spacing: 2, alignItems: "flex-start", children: [
|
|
55
|
+
/* @__PURE__ */ e.jsx(N, { avatar: y, name: c, size: z }),
|
|
56
|
+
/* @__PURE__ */ e.jsxs(p, { sx: { flex: 1 }, children: [
|
|
57
|
+
/* @__PURE__ */ e.jsxs(j, { direction: "row", alignItems: "center", spacing: 2, mb: 1, children: [
|
|
58
|
+
/* @__PURE__ */ e.jsx(i, { variant: "subtitle2", fontWeight: "600", children: c }),
|
|
59
|
+
/* @__PURE__ */ e.jsx("div", { children: /* @__PURE__ */ e.jsx(i, { variant: "caption", color: "text.secondary", children: B }) })
|
|
40
60
|
] }),
|
|
41
|
-
/* @__PURE__ */ e.jsx(
|
|
42
|
-
/* @__PURE__ */ e.jsx(i, { variant: "body2", sx: { mb: 2, lineHeight: 1.6 }, children:
|
|
43
|
-
|
|
61
|
+
/* @__PURE__ */ e.jsx(p, { sx: { mb: 1 }, children: /* @__PURE__ */ e.jsx(J, { value: v, max: D, readOnly: H, size: "small" }) }),
|
|
62
|
+
/* @__PURE__ */ e.jsx(i, { variant: "body2", sx: { mb: 2, lineHeight: 1.6 }, children: u }),
|
|
63
|
+
s && s.length > 0 && /* @__PURE__ */ e.jsx(j, { direction: "row", spacing: 1, sx: { mb: 2, flexWrap: "wrap", gap: 1 }, children: s.map((t, n) => /* @__PURE__ */ e.jsx(
|
|
64
|
+
G,
|
|
65
|
+
{
|
|
66
|
+
src: t,
|
|
67
|
+
alt: `Review image ${n + 1}`,
|
|
68
|
+
width: 80,
|
|
69
|
+
height: 80,
|
|
70
|
+
variant: "rounded",
|
|
71
|
+
style: {
|
|
72
|
+
objectFit: "cover",
|
|
73
|
+
cursor: "pointer"
|
|
74
|
+
},
|
|
75
|
+
onClick: () => O(n),
|
|
76
|
+
onMouseEnter: (o) => {
|
|
77
|
+
o.currentTarget.style.opacity = "0.8";
|
|
78
|
+
},
|
|
79
|
+
onMouseLeave: (o) => {
|
|
80
|
+
o.currentTarget.style.opacity = "1";
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
n
|
|
84
|
+
)) }),
|
|
85
|
+
k && /* @__PURE__ */ e.jsxs(p, { children: [
|
|
44
86
|
/* @__PURE__ */ e.jsx(i, { variant: "caption", color: "text.secondary", sx: { mr: 2 }, children: "Was this review helpful?" }),
|
|
45
|
-
/* @__PURE__ */ e.jsxs(
|
|
87
|
+
/* @__PURE__ */ e.jsxs(j, { direction: "row", spacing: 1, sx: { display: "inline-flex", alignItems: "center" }, children: [
|
|
46
88
|
/* @__PURE__ */ e.jsx(
|
|
47
|
-
|
|
89
|
+
T,
|
|
48
90
|
{
|
|
49
91
|
size: "small",
|
|
50
|
-
onClick: () =>
|
|
92
|
+
onClick: () => S("yes"),
|
|
51
93
|
sx: {
|
|
52
|
-
color:
|
|
94
|
+
color: d === "yes" ? "primary.main" : "text.secondary",
|
|
53
95
|
"&:hover": {
|
|
54
96
|
backgroundColor: "action.hover"
|
|
55
97
|
}
|
|
56
98
|
},
|
|
57
|
-
children: /* @__PURE__ */ e.jsx(
|
|
99
|
+
children: /* @__PURE__ */ e.jsx(P, { fontSize: "small" })
|
|
58
100
|
}
|
|
59
101
|
),
|
|
60
|
-
/* @__PURE__ */ e.jsx(i, { variant: "caption", color: "text.secondary", children:
|
|
102
|
+
/* @__PURE__ */ e.jsx(i, { variant: "caption", color: "text.secondary", children: R }),
|
|
61
103
|
/* @__PURE__ */ e.jsx(
|
|
62
|
-
|
|
104
|
+
T,
|
|
63
105
|
{
|
|
64
106
|
size: "small",
|
|
65
|
-
onClick: () =>
|
|
107
|
+
onClick: () => S("no"),
|
|
66
108
|
sx: {
|
|
67
|
-
color:
|
|
109
|
+
color: d === "no" ? "error.main" : "text.secondary",
|
|
68
110
|
ml: 1,
|
|
69
111
|
"&:hover": {
|
|
70
112
|
backgroundColor: "action.hover"
|
|
71
113
|
}
|
|
72
114
|
},
|
|
73
|
-
children: /* @__PURE__ */ e.jsx(
|
|
115
|
+
children: /* @__PURE__ */ e.jsx(K, { fontSize: "small" })
|
|
74
116
|
}
|
|
75
117
|
),
|
|
76
|
-
/* @__PURE__ */ e.jsx(i, { variant: "caption", color: "text.secondary", children:
|
|
118
|
+
/* @__PURE__ */ e.jsx(i, { variant: "caption", color: "text.secondary", children: V })
|
|
77
119
|
] })
|
|
78
120
|
] })
|
|
79
121
|
] })
|
|
80
122
|
] }),
|
|
81
|
-
/* @__PURE__ */ e.jsx(
|
|
123
|
+
/* @__PURE__ */ e.jsx(F, { sx: { mt: 2 } }),
|
|
124
|
+
/* @__PURE__ */ e.jsx(
|
|
125
|
+
q,
|
|
126
|
+
{
|
|
127
|
+
isOpen: W,
|
|
128
|
+
onClose: U,
|
|
129
|
+
selectedItem: E,
|
|
130
|
+
onItemChange: Y,
|
|
131
|
+
mediaItems: x,
|
|
132
|
+
showNavigation: x.length > 1,
|
|
133
|
+
showThumbnailDock: x.length > 1,
|
|
134
|
+
showCounter: x.length > 1
|
|
135
|
+
}
|
|
136
|
+
)
|
|
82
137
|
] });
|
|
83
138
|
};
|
|
84
139
|
export {
|
|
85
|
-
|
|
140
|
+
re as default
|
|
86
141
|
};
|
|
@@ -6,7 +6,7 @@ import v from "../s-form/s-form.js";
|
|
|
6
6
|
import u from "../s-text-field/s-text-field.js";
|
|
7
7
|
import y from "../s-theme-switch/s-theme-switch.js";
|
|
8
8
|
import { c as j } from "../createSvgIcon-Dq42_0tn.js";
|
|
9
|
-
import { F as b } from "../Favorite-
|
|
9
|
+
import { F as b } from "../Favorite-DmSF47XC.js";
|
|
10
10
|
const f = j(/* @__PURE__ */ r.jsx("path", {
|
|
11
11
|
d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6z"
|
|
12
12
|
}), "Add"), S = j(/* @__PURE__ */ r.jsx("path", {
|