@solostylist/ui-kit 1.0.97 → 1.0.98

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/main.d.ts CHANGED
@@ -95,6 +95,8 @@ export { default as SImageComparison } from './s-image-comparison/index';
95
95
  export type { SImageComparisonProps } from './s-image-comparison/index';
96
96
  export { default as SRadialPulseAnimate } from './s-radial-pulse-animate/index';
97
97
  export type { SRadialPulseAnimateProps } from './s-radial-pulse-animate/index';
98
+ export { default as SRating } from './s-rating/index';
99
+ export type { SRatingProps } from './s-rating/index';
98
100
  export { default as STextShimmer } from './s-text-shimmer/index';
99
101
  export type { STextShimmerProps } from './s-text-shimmer/index';
100
102
  export * from './hooks';
package/dist/main.js CHANGED
@@ -14,8 +14,8 @@ import { default as b } from "./s-chips/s-chips.js";
14
14
  import { default as L } from "./s-data-table/s-data-table.js";
15
15
  import { DialogConfirmProvider as y, default as F, useDialogConfirm as B } from "./s-dialog-confirm/s-dialog-confirm.js";
16
16
  import { DialogMessageProvider as A, default as E, useDialogMessage as G } from "./s-dialog-message/s-dialog-message.js";
17
- import { default as j } from "./s-error/s-error.js";
18
- import { default as K } from "./s-empty/s-empty.js";
17
+ import { default as R } from "./s-error/s-error.js";
18
+ import { default as w } from "./s-empty/s-empty.js";
19
19
  import { default as V } from "./s-dialog/s-dialog.js";
20
20
  import { default as H } from "./s-file-dropzone/s-file-dropzone.js";
21
21
  import { default as O } from "./s-file-icon/s-file-icon.js";
@@ -39,8 +39,8 @@ import { default as Fe } from "./s-theme-provider/s-theme-provider.js";
39
39
  import { default as ze } from "./s-datetime-picker/s-datetime-picker.js";
40
40
  import { default as Ee } from "./s-date-picker/s-date-picker.js";
41
41
  import { default as Ne } from "./s-localization-provider/s-localization-provider.js";
42
- import { default as we } from "./s-gradient-icon/s-gradient-icon.js";
43
- import { default as Re } from "./s-glow-button/s-glow-button.js";
42
+ import { default as je } from "./s-gradient-icon/s-gradient-icon.js";
43
+ import { default as Ke } from "./s-glow-button/s-glow-button.js";
44
44
  import { default as qe } from "./s-moving-border/s-moving-border.js";
45
45
  import { default as Je } from "./s-copyable-text/s-copyable-text.js";
46
46
  import { MediaItem as Qe, default as Ue } from "./s-interactive-gallery/s-interactive-gallery.js";
@@ -48,18 +48,19 @@ import { default as Xe } from "./s-image-modal/s-image-modal.js";
48
48
  import { default as Ze } from "./s-lazy-image/s-lazy-image.js";
49
49
  import { default as $e } from "./s-image-comparison/s-image-comparison.js";
50
50
  import { default as oo } from "./s-radial-pulse-animate/s-radial-pulse-animate.js";
51
- import { default as to } from "./s-text-shimmer/s-text-shimmer.js";
52
- import { useDialog as fo } from "./hooks/use-dialog.js";
53
- import { usePopover as mo } from "./hooks/use-popover.js";
54
- import { formatDatePosted as po } from "./utils/dayjs.js";
55
- import { bytesToSize as xo } from "./utils/bytes-to-size.js";
56
- import { LogLevel as io, Logger as no, createLogger as go, logger as co } from "./utils/logger.js";
57
- import { default as Do } from "dayjs";
51
+ import { default as to } from "./s-rating/s-rating.js";
52
+ import { default as fo } from "./s-text-shimmer/s-text-shimmer.js";
53
+ import { useDialog as mo } from "./hooks/use-dialog.js";
54
+ import { usePopover as po } from "./hooks/use-popover.js";
55
+ import { formatDatePosted as xo } from "./utils/dayjs.js";
56
+ import { bytesToSize as io } from "./utils/bytes-to-size.js";
57
+ import { LogLevel as go, Logger as co, createLogger as Co, logger as Do } from "./utils/logger.js";
58
+ import { default as To } from "dayjs";
58
59
  export {
59
60
  y as DialogConfirmProvider,
60
61
  A as DialogMessageProvider,
61
- io as LogLevel,
62
- no as Logger,
62
+ go as LogLevel,
63
+ co as Logger,
63
64
  Qe as MediaItem,
64
65
  t as SAccordion,
65
66
  f as SAutocomplete,
@@ -80,13 +81,13 @@ export {
80
81
  V as SDialog,
81
82
  F as SDialogConfirm,
82
83
  E as SDialogMessage,
83
- K as SEmpty,
84
- j as SError,
84
+ w as SEmpty,
85
+ R as SError,
85
86
  H as SFileDropzone,
86
87
  O as SFileIcon,
87
88
  De as SForm,
88
- Re as SGlowButton,
89
- we as SGradientIcon,
89
+ Ke as SGlowButton,
90
+ je as SGradientIcon,
90
91
  U as SI18nProvider,
91
92
  X as SIconButton,
92
93
  $e as SImageComparison,
@@ -100,6 +101,7 @@ export {
100
101
  oe as SNoSsr,
101
102
  fe as SPagination,
102
103
  oo as SRadialPulseAnimate,
104
+ to as SRating,
103
105
  me as SSelect,
104
106
  pe as SSkeleton,
105
107
  Te as SSmartTextField,
@@ -109,20 +111,20 @@ export {
109
111
  Le as SStripeNumber,
110
112
  D as STextEditor,
111
113
  te as STextField,
112
- to as STextShimmer,
114
+ fo as STextShimmer,
113
115
  ue as STextTruncation,
114
116
  Fe as SThemeProvider,
115
117
  Se as STip,
116
118
  ge as SnackbarMessageProvider,
117
119
  he as StripeTextField,
118
- xo as bytesToSize,
119
- go as createLogger,
120
- Do as dayjs,
121
- po as formatDatePosted,
122
- co as logger,
123
- fo as useDialog,
120
+ io as bytesToSize,
121
+ Co as createLogger,
122
+ To as dayjs,
123
+ xo as formatDatePosted,
124
+ Do as logger,
125
+ mo as useDialog,
124
126
  B as useDialogConfirm,
125
127
  G as useDialogMessage,
126
- mo as usePopover,
128
+ po as usePopover,
127
129
  ce as useSnackbarMessage
128
130
  };
@@ -1,64 +1,71 @@
1
- import { j as t } from "../jsx-runtime-DywqP_6a.js";
2
- import { forwardRef as k, useState as x, useId as F, useEffect as E } from "react";
3
- import { Box as o, outlinedInputClasses as K } from "@mui/material";
4
- import A from "../s-file-icon/s-file-icon.js";
5
- import j from "../s-icon-button/s-icon-button.js";
6
- import O from "../s-text-field/s-text-field.js";
7
- import { C as P } from "../Close-BSG2-e7H.js";
8
- import { b } from "../createSvgIcon-CS-Z7P80.js";
9
- const W = b(/* @__PURE__ */ t.jsx("path", {
1
+ import { j as r } from "../jsx-runtime-DywqP_6a.js";
2
+ import { forwardRef as F, useState as c, useRef as K, useId as O, useEffect as B } from "react";
3
+ import { Box as s, outlinedInputClasses as T, Popper as W, ClickAwayListener as D } from "@mui/material";
4
+ import H from "emoji-picker-react";
5
+ import _ from "../s-file-icon/s-file-icon.js";
6
+ import d from "../s-icon-button/s-icon-button.js";
7
+ import q from "../s-text-field/s-text-field.js";
8
+ import { C as G } from "../Close-BSG2-e7H.js";
9
+ import { b as v } from "../createSvgIcon-CS-Z7P80.js";
10
+ const J = v(/* @__PURE__ */ r.jsx("path", {
10
11
  d: "m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8z"
11
- }), "ArrowUpward"), B = b(/* @__PURE__ */ t.jsx("path", {
12
+ }), "ArrowUpward"), N = v(/* @__PURE__ */ r.jsx("path", {
12
13
  d: "M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6z"
13
- }), "AttachFile"), N = k(
14
- ({ onSubmit: c, onFileSelect: d, disabled: i, acceptedFileTypes: I, maxFileSize: g, ...C }, U) => {
15
- const [p, v] = x(""), [l, m] = x([]), [a, h] = x(/* @__PURE__ */ new Map()), w = F(), u = (e) => e.type.startsWith("image/"), z = (e) => {
16
- const s = `${e.name}-${e.size}-${e.lastModified}`;
17
- if (a.has(s))
18
- return a.get(s);
19
- if (u(e)) {
20
- const r = URL.createObjectURL(e);
21
- return h((n) => new Map(n).set(s, r)), r;
14
+ }), "AttachFile"), Q = v(/* @__PURE__ */ r.jsx("path", {
15
+ d: "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2M8.5 8c.83 0 1.5.67 1.5 1.5S9.33 11 8.5 11 7 10.33 7 9.5 7.67 8 8.5 8M12 18c-2.28 0-4.22-1.66-5-4h10c-.78 2.34-2.72 4-5 4m3.5-7c-.83 0-1.5-.67-1.5-1.5S14.67 8 15.5 8s1.5.67 1.5 1.5-.67 1.5-1.5 1.5"
16
+ }), "EmojiEmotions"), ae = F(
17
+ ({ onSubmit: p, onFileSelect: m, disabled: a, acceptedFileTypes: E, maxFileSize: k, ...z }, M) => {
18
+ const [u, h] = c(""), [l, x] = c([]), [i, f] = c(/* @__PURE__ */ new Map()), [C, g] = c(!1), y = K(null), w = O(), b = (e) => e.type.startsWith("image/"), U = (e) => {
19
+ const o = `${e.name}-${e.size}-${e.lastModified}`;
20
+ if (i.has(o))
21
+ return i.get(o);
22
+ if (b(e)) {
23
+ const n = URL.createObjectURL(e);
24
+ return f((t) => new Map(t).set(o, n)), n;
22
25
  }
23
26
  return "";
24
- }, $ = (e) => {
25
- v(e.target.value);
26
- }, y = () => {
27
- i || p.trim().length === 0 && l.length === 0 || (c == null || c(p, l), v(""), a.forEach((e) => URL.revokeObjectURL(e)), h(/* @__PURE__ */ new Map()), m([]));
28
27
  }, L = (e) => {
29
- const r = Array.from(e.target.files || []).filter((n) => !(g && n.size > g));
30
- m((n) => [...n, ...r]), d == null || d(r), e.target.value = "";
31
- }, M = (e) => {
32
- const s = l[e];
33
- if (s && u(s)) {
34
- const r = `${s.name}-${s.size}-${s.lastModified}`, n = a.get(r);
35
- n && (URL.revokeObjectURL(n), h((f) => {
36
- const R = new Map(f);
37
- return R.delete(r), R;
28
+ h(e.target.value);
29
+ }, $ = (e) => {
30
+ h((o) => o + e.emoji), g(!1);
31
+ }, P = () => {
32
+ g(!C);
33
+ }, R = () => {
34
+ a || u.trim().length === 0 && l.length === 0 || (p == null || p(u, l), h(""), i.forEach((e) => URL.revokeObjectURL(e)), f(/* @__PURE__ */ new Map()), x([]));
35
+ }, S = (e) => {
36
+ const n = Array.from(e.target.files || []).filter((t) => !(k && t.size > k));
37
+ x((t) => [...t, ...n]), m == null || m(n), e.target.value = "";
38
+ }, V = (e) => {
39
+ const o = l[e];
40
+ if (o && b(o)) {
41
+ const n = `${o.name}-${o.size}-${o.lastModified}`, t = i.get(n);
42
+ t && (URL.revokeObjectURL(t), f((j) => {
43
+ const I = new Map(j);
44
+ return I.delete(n), I;
38
45
  }));
39
46
  }
40
- m((r) => r.filter((n, f) => f !== e));
41
- }, V = (e) => {
42
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), y());
47
+ x((n) => n.filter((t, j) => j !== e));
48
+ }, A = (e) => {
49
+ e.key === "Enter" && !e.shiftKey && (e.preventDefault(), R());
43
50
  };
44
- return E(() => () => {
45
- a.forEach((e) => URL.revokeObjectURL(e));
46
- }, [a]), /* @__PURE__ */ t.jsxs(o, { border: "1px solid", borderColor: "divider", borderRadius: 2, padding: "8px 12px", children: [
47
- /* @__PURE__ */ t.jsx(
48
- O,
51
+ return B(() => () => {
52
+ i.forEach((e) => URL.revokeObjectURL(e));
53
+ }, [i]), /* @__PURE__ */ r.jsxs(s, { border: "1px solid", borderColor: "divider", borderRadius: 2, padding: "8px 12px", children: [
54
+ /* @__PURE__ */ r.jsx(
55
+ q,
49
56
  {
50
57
  placeholder: "Enter your message here...",
51
- disabled: i,
52
- value: p,
53
- onChange: $,
54
- onKeyDown: V,
58
+ disabled: a,
59
+ value: u,
60
+ onChange: L,
61
+ onKeyDown: A,
55
62
  multiline: !0,
56
63
  minRows: 1,
57
64
  maxRows: 10,
58
65
  size: "small",
59
66
  variant: "outlined",
60
67
  fullWidth: !0,
61
- inputRef: U,
68
+ inputRef: M,
62
69
  slotProps: {
63
70
  input: {
64
71
  sx: {
@@ -66,7 +73,7 @@ const W = b(/* @__PURE__ */ t.jsx("path", {
66
73
  backgroundColor: "transparent",
67
74
  border: "none",
68
75
  padding: 0,
69
- [`&.${K.focused}`]: {
76
+ [`&.${T.focused}`]: {
70
77
  outline: "none"
71
78
  },
72
79
  "& fieldset": {
@@ -81,13 +88,13 @@ const W = b(/* @__PURE__ */ t.jsx("path", {
81
88
  }
82
89
  }
83
90
  },
84
- ...C
91
+ ...z
85
92
  }
86
93
  ),
87
- l.length > 0 && /* @__PURE__ */ t.jsx(o, { mt: 1, children: l.map((e, s) => {
88
- const r = u(e), n = e.name.split(".").pop();
89
- return /* @__PURE__ */ t.jsxs(
90
- o,
94
+ l.length > 0 && /* @__PURE__ */ r.jsx(s, { mt: 1, children: l.map((e, o) => {
95
+ const n = b(e), t = e.name.split(".").pop();
96
+ return /* @__PURE__ */ r.jsxs(
97
+ s,
91
98
  {
92
99
  display: "flex",
93
100
  alignItems: "center",
@@ -100,12 +107,12 @@ const W = b(/* @__PURE__ */ t.jsx("path", {
100
107
  mb: 0.5
101
108
  },
102
109
  children: [
103
- /* @__PURE__ */ t.jsxs(o, { display: "flex", alignItems: "center", gap: 1, children: [
104
- r ? /* @__PURE__ */ t.jsx(
105
- o,
110
+ /* @__PURE__ */ r.jsxs(s, { display: "flex", alignItems: "center", gap: 1, children: [
111
+ n ? /* @__PURE__ */ r.jsx(
112
+ s,
106
113
  {
107
114
  component: "img",
108
- src: z(e),
115
+ src: U(e),
109
116
  alt: e.name,
110
117
  sx: {
111
118
  width: 40,
@@ -115,41 +122,41 @@ const W = b(/* @__PURE__ */ t.jsx("path", {
115
122
  border: "1px solid var(--s-palette-divider)"
116
123
  }
117
124
  }
118
- ) : /* @__PURE__ */ t.jsx(A, { extension: n }),
119
- /* @__PURE__ */ t.jsxs(o, { children: [
120
- /* @__PURE__ */ t.jsx(o, { component: "span", sx: { fontSize: "0.875rem", fontWeight: 500 }, children: e.name }),
121
- /* @__PURE__ */ t.jsxs(o, { component: "span", sx: { fontSize: "0.75rem", color: "text.secondary", ml: 1 }, children: [
125
+ ) : /* @__PURE__ */ r.jsx(_, { extension: t }),
126
+ /* @__PURE__ */ r.jsxs(s, { children: [
127
+ /* @__PURE__ */ r.jsx(s, { component: "span", sx: { fontSize: "0.875rem", fontWeight: 500 }, children: e.name }),
128
+ /* @__PURE__ */ r.jsxs(s, { component: "span", sx: { fontSize: "0.75rem", color: "text.secondary", ml: 1 }, children: [
122
129
  "(",
123
130
  Math.round(e.size / 1024),
124
131
  " KB)"
125
132
  ] })
126
133
  ] })
127
134
  ] }),
128
- /* @__PURE__ */ t.jsx(j, { size: "small", onClick: () => M(s), sx: { minWidth: "auto", p: 0.5 }, children: /* @__PURE__ */ t.jsx(P, {}) })
135
+ /* @__PURE__ */ r.jsx(d, { size: "small", onClick: () => V(o), sx: { minWidth: "auto", p: 0.5 }, children: /* @__PURE__ */ r.jsx(G, {}) })
129
136
  ]
130
137
  },
131
- `${e.name}-${s}`
138
+ `${e.name}-${o}`
132
139
  );
133
140
  }) }),
134
- /* @__PURE__ */ t.jsxs(o, { display: "flex", justifyContent: "space-between", alignItems: "center", mt: 1, children: [
135
- /* @__PURE__ */ t.jsxs(o, { children: [
136
- /* @__PURE__ */ t.jsx(
141
+ /* @__PURE__ */ r.jsxs(s, { display: "flex", justifyContent: "space-between", alignItems: "center", mt: 1, children: [
142
+ /* @__PURE__ */ r.jsxs(s, { display: "flex", gap: 1, children: [
143
+ /* @__PURE__ */ r.jsx(
137
144
  "input",
138
145
  {
139
146
  type: "file",
140
147
  multiple: !0,
141
- accept: I,
142
- onChange: L,
148
+ accept: E,
149
+ onChange: S,
143
150
  style: { display: "none" },
144
151
  id: `file-attachment-input-${w}`,
145
- disabled: i
152
+ disabled: a
146
153
  }
147
154
  ),
148
- /* @__PURE__ */ t.jsx("label", { htmlFor: `file-attachment-input-${w}`, children: /* @__PURE__ */ t.jsx(
149
- j,
155
+ /* @__PURE__ */ r.jsx("label", { htmlFor: `file-attachment-input-${w}`, children: /* @__PURE__ */ r.jsx(
156
+ d,
150
157
  {
151
158
  component: "span",
152
- disabled: i,
159
+ disabled: a,
153
160
  size: "small",
154
161
  sx: {
155
162
  transition: "transform 0.3s ease",
@@ -157,15 +164,31 @@ const W = b(/* @__PURE__ */ t.jsx("path", {
157
164
  transform: "scale(1.1)"
158
165
  }
159
166
  },
160
- children: /* @__PURE__ */ t.jsx(B, {})
167
+ children: /* @__PURE__ */ r.jsx(N, {})
161
168
  }
162
- ) })
169
+ ) }),
170
+ /* @__PURE__ */ r.jsx(
171
+ d,
172
+ {
173
+ ref: y,
174
+ onClick: P,
175
+ disabled: a,
176
+ size: "small",
177
+ sx: {
178
+ transition: "transform 0.3s ease",
179
+ "&:hover": {
180
+ transform: "scale(1.1)"
181
+ }
182
+ },
183
+ children: /* @__PURE__ */ r.jsx(Q, {})
184
+ }
185
+ )
163
186
  ] }),
164
- /* @__PURE__ */ t.jsx(
165
- j,
187
+ /* @__PURE__ */ r.jsx(
188
+ d,
166
189
  {
167
- onClick: y,
168
- disabled: i,
190
+ onClick: R,
191
+ disabled: a,
169
192
  size: "small",
170
193
  sx: {
171
194
  transition: "transform 0.3s ease",
@@ -173,13 +196,116 @@ const W = b(/* @__PURE__ */ t.jsx("path", {
173
196
  transform: "scale(1.2)"
174
197
  }
175
198
  },
176
- children: /* @__PURE__ */ t.jsx(W, {})
199
+ children: /* @__PURE__ */ r.jsx(J, {})
177
200
  }
178
201
  )
179
- ] })
202
+ ] }),
203
+ /* @__PURE__ */ r.jsx(W, { open: C, anchorEl: y.current, placement: "top-start", sx: { zIndex: 1300 }, children: /* @__PURE__ */ r.jsx(D, { onClickAway: () => g(!1), children: /* @__PURE__ */ r.jsx(
204
+ s,
205
+ {
206
+ sx: {
207
+ border: "1px solid",
208
+ borderColor: "divider",
209
+ borderRadius: 1,
210
+ overflow: "hidden",
211
+ "& .epr-main": {
212
+ backgroundColor: "background.paper",
213
+ border: "none"
214
+ },
215
+ "& .epr-header": {
216
+ backgroundColor: "background.paper"
217
+ },
218
+ "& .epr-search-container": {
219
+ backgroundColor: "background.paper"
220
+ },
221
+ "& .epr-search-container > .epr-icn-search": {
222
+ display: "none"
223
+ },
224
+ "& .epr-search-container > input": {
225
+ backgroundColor: "background.default",
226
+ border: "1px solid",
227
+ borderColor: "divider",
228
+ borderRadius: 1,
229
+ color: "text.primary",
230
+ padding: "8px 12px",
231
+ "&:focus": {
232
+ outline: "none",
233
+ borderColor: "primary.main"
234
+ },
235
+ "&::placeholder": {
236
+ color: "text.secondary"
237
+ }
238
+ },
239
+ "& .epr-category-nav": {
240
+ backgroundColor: "background.paper",
241
+ borderBottom: "1px solid",
242
+ borderColor: "divider",
243
+ padding: "0px 8px 8px 8px"
244
+ },
245
+ "& .epr-cat-btn": {
246
+ backgroundColor: "transparent !important",
247
+ border: "none",
248
+ transition: "all 0.2s ease"
249
+ },
250
+ "& .epr-body": {
251
+ backgroundColor: "background.paper"
252
+ },
253
+ "& .epr-emoji-category-label": {
254
+ backgroundColor: "background.paper",
255
+ color: "text.primary",
256
+ fontSize: 12,
257
+ fontWeight: 600,
258
+ padding: "8px 16px 4px",
259
+ textTransform: "uppercase",
260
+ letterSpacing: "0.5px"
261
+ },
262
+ "& .epr-emoji-list": {
263
+ backgroundColor: "background.paper"
264
+ },
265
+ "& .epr-emoji": {
266
+ borderRadius: 1,
267
+ margin: "2px",
268
+ transition: "all 0.2s ease",
269
+ "&:hover": {
270
+ backgroundColor: "action.hover",
271
+ transform: "scale(1.1)"
272
+ },
273
+ "&:active": {
274
+ transform: "scale(0.95)"
275
+ }
276
+ },
277
+ "& .epr-skin-tones": {
278
+ backgroundColor: "background.paper",
279
+ border: "1px solid",
280
+ borderColor: "divider",
281
+ borderRadius: 1,
282
+ display: "none"
283
+ },
284
+ "& .epr-tone": {
285
+ border: "none",
286
+ borderRadius: 1,
287
+ transition: "all 0.2s ease",
288
+ "&:hover": {
289
+ transform: "scale(1.1)"
290
+ }
291
+ }
292
+ },
293
+ children: /* @__PURE__ */ r.jsx(
294
+ H,
295
+ {
296
+ onEmojiClick: $,
297
+ width: 300,
298
+ height: 400,
299
+ searchDisabled: !1,
300
+ skinTonesDisabled: !1,
301
+ previewConfig: { showPreview: !1 }
302
+ }
303
+ )
304
+ }
305
+ ) }) })
180
306
  ] });
181
307
  }
182
308
  );
183
309
  export {
184
- N as default
310
+ ae as default
185
311
  };
@@ -1,21 +1,15 @@
1
1
  import { j as e } from "../jsx-runtime-DywqP_6a.js";
2
- import { b as r } from "../createSvgIcon-CS-Z7P80.js";
3
- import { Stack as i, Tooltip as s } from "@mui/material";
4
- const c = r(/* @__PURE__ */ e.jsx("path", {
2
+ import { b as s } from "../createSvgIcon-CS-Z7P80.js";
3
+ import { Stack as o, Box as c, Tooltip as l } from "@mui/material";
4
+ const m = s(/* @__PURE__ */ e.jsx("path", {
5
5
  d: "M11 18h2v-2h-2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8m0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4"
6
- }), "HelpOutlineOutlined"), d = ({ label: n, children: l, hint: t, sx: o }) => /* @__PURE__ */ e.jsxs(i, { width: "100%", sx: o, children: [
7
- /* @__PURE__ */ e.jsxs(i, { direction: "row", alignItems: "center", children: [
8
- /* @__PURE__ */ e.jsx(
9
- "div",
10
- {
11
- style: { fontSize: "0.875rem", fontWeight: 500, lineHeight: 1.57, color: "var(--s-palette-text-secondary)" },
12
- children: n
13
- }
14
- ),
15
- t ? /* @__PURE__ */ e.jsx(s, { title: t, placement: "top", children: /* @__PURE__ */ e.jsx(c, { style: { marginLeft: "4px", fontSize: 16 } }) }) : null
6
+ }), "HelpOutlineOutlined"), p = ({ label: n, children: r, hint: t, sx: i }) => /* @__PURE__ */ e.jsxs(o, { width: "100%", sx: i, children: [
7
+ /* @__PURE__ */ e.jsxs(o, { direction: "row", alignItems: "center", mb: 1, children: [
8
+ /* @__PURE__ */ e.jsx(c, { sx: { fontSize: "0.875rem", fontWeight: 500, lineHeight: 1.57, color: "text.secondary" }, children: n }),
9
+ t ? /* @__PURE__ */ e.jsx(l, { title: t, placement: "top", children: /* @__PURE__ */ e.jsx(m, { sx: { marginLeft: "4px", fontSize: 16, color: "text.secondary" } }) }) : null
16
10
  ] }),
17
- l
11
+ r
18
12
  ] });
19
13
  export {
20
- d as default
14
+ p as default
21
15
  };
@@ -0,0 +1,2 @@
1
+ export { default } from './s-rating';
2
+ export type { SRatingProps } from './s-rating';
@@ -0,0 +1,4 @@
1
+ import { default as o } from "./s-rating.js";
2
+ export {
3
+ o as default
4
+ };
@@ -0,0 +1,5 @@
1
+ {
2
+ "main": "./index.js",
3
+ "types": "./index.d.ts",
4
+ "sideEffects": false
5
+ }
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { RatingProps } from '@mui/material';
3
+ export interface SRatingProps extends RatingProps {
4
+ }
5
+ declare const SRating: React.ForwardRefExoticComponent<Omit<SRatingProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
6
+ export default SRating;
@@ -0,0 +1,7 @@
1
+ import { j as o } from "../jsx-runtime-DywqP_6a.js";
2
+ import { forwardRef as m } from "react";
3
+ import { Rating as a } from "@mui/material";
4
+ const e = m((r, t) => /* @__PURE__ */ o.jsx(a, { ref: t, ...r }));
5
+ export {
6
+ e as default
7
+ };
@@ -0,0 +1,6 @@
1
+ export { default as STabs } from './s-tabs';
2
+ export type { STabsProps, STabItem } from './s-tabs';
3
+ export { default as STab } from './s-tab';
4
+ export type { STabProps } from './s-tab';
5
+ export { default as STabPanel } from './s-tab-panel';
6
+ export type { STabPanelProps } from './s-tab-panel';
@@ -0,0 +1,8 @@
1
+ import { default as f } from "./s-tabs.js";
2
+ import { default as r } from "./s-tab.js";
3
+ import { default as l } from "./s-tab-panel.js";
4
+ export {
5
+ r as STab,
6
+ l as STabPanel,
7
+ f as STabs
8
+ };
@@ -0,0 +1,4 @@
1
+ {
2
+ "name": "s-tabs",
3
+ "main": "./index.ts"
4
+ }
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ import { BoxProps } from '@mui/material';
3
+ export interface STabPanelProps extends BoxProps {
4
+ children?: React.ReactNode;
5
+ index: number;
6
+ value: number;
7
+ keepMounted?: boolean;
8
+ }
9
+ declare const STabPanel: React.ForwardRefExoticComponent<Omit<STabPanelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ export default STabPanel;
@@ -0,0 +1,28 @@
1
+ import { j as d } from "../jsx-runtime-DywqP_6a.js";
2
+ import { forwardRef as i } from "react";
3
+ import { Box as p } from "@mui/material";
4
+ const b = i(
5
+ ({ children: o, value: r, index: a, keepMounted: l = !1, sx: t, ...s }, n) => {
6
+ const e = r === a;
7
+ return e || l ? /* @__PURE__ */ d.jsx(
8
+ p,
9
+ {
10
+ ref: n,
11
+ role: "tabpanel",
12
+ hidden: !e,
13
+ id: `tabpanel-${a}`,
14
+ "aria-labelledby": `tab-${a}`,
15
+ sx: {
16
+ ...t,
17
+ display: e ? "block" : "none"
18
+ },
19
+ ...s,
20
+ children: o
21
+ }
22
+ ) : null;
23
+ }
24
+ );
25
+ b.displayName = "STabPanel";
26
+ export {
27
+ b as default
28
+ };
@@ -0,0 +1,6 @@
1
+ import { default as React } from 'react';
2
+ import { TabProps } from '@mui/material';
3
+ export interface STabProps extends TabProps {
4
+ }
5
+ declare const STab: React.ForwardRefExoticComponent<Omit<STabProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ export default STab;
@@ -0,0 +1,8 @@
1
+ import { j as a } from "../jsx-runtime-DywqP_6a.js";
2
+ import { forwardRef as t } from "react";
3
+ import { Tab as m } from "@mui/material";
4
+ const s = t((r, o) => /* @__PURE__ */ a.jsx(m, { ref: o, ...r }));
5
+ s.displayName = "STab";
6
+ export {
7
+ s as default
8
+ };
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ import { BoxProps, TabProps, TabsProps } from '@mui/material';
3
+ export interface STabsProps extends Omit<TabsProps, 'children'> {
4
+ tabs: STabItem[];
5
+ activeTab?: number | false;
6
+ onTabChange?: (event: React.SyntheticEvent, value: any) => void;
7
+ children?: React.ReactNode;
8
+ tabPanelProps?: BoxProps;
9
+ }
10
+ export interface STabItem {
11
+ label: React.ReactNode;
12
+ value?: any;
13
+ disabled?: boolean;
14
+ icon?: React.ReactElement;
15
+ iconPosition?: 'start' | 'end' | 'top' | 'bottom';
16
+ wrapped?: boolean;
17
+ tabProps?: Omit<TabProps, 'label' | 'value' | 'disabled' | 'icon' | 'iconPosition' | 'wrapped'>;
18
+ }
19
+ declare const STabs: React.ForwardRefExoticComponent<Omit<STabsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
+ export default STabs;
@@ -0,0 +1,34 @@
1
+ import { j as o } from "../jsx-runtime-DywqP_6a.js";
2
+ import i, { forwardRef as c } from "react";
3
+ import { Tabs as x, Tab as j, Box as P } from "@mui/material";
4
+ const R = c(
5
+ ({ tabs: t, activeTab: e = 0, onTabChange: l, children: d, tabPanelProps: a, ...n }, m) => {
6
+ const [p, f] = i.useState(e);
7
+ i.useEffect(() => {
8
+ e !== !1 && f(e);
9
+ }, [e]);
10
+ const u = (s, r) => {
11
+ e === !1 && f(r), l == null || l(s, r);
12
+ };
13
+ return /* @__PURE__ */ o.jsxs(o.Fragment, { children: [
14
+ /* @__PURE__ */ o.jsx(x, { ref: m, value: p, onChange: u, ...n, children: t.map((s, r) => /* @__PURE__ */ o.jsx(
15
+ j,
16
+ {
17
+ label: s.label,
18
+ value: s.value ?? r,
19
+ disabled: s.disabled,
20
+ icon: s.icon,
21
+ iconPosition: s.iconPosition,
22
+ wrapped: s.wrapped,
23
+ ...s.tabProps
24
+ },
25
+ r
26
+ )) }),
27
+ d && /* @__PURE__ */ o.jsx(P, { role: "tabpanel", padding: 2, ...a, children: i.Children.toArray(d)[p] })
28
+ ] });
29
+ }
30
+ );
31
+ R.displayName = "STabs";
32
+ export {
33
+ R as default
34
+ };
@@ -1,12 +1,12 @@
1
1
  import { j as t } from "../../jsx-runtime-DywqP_6a.js";
2
2
  import * as i from "react";
3
- import { b as l } from "../../createSvgIcon-CS-Z7P80.js";
4
- import { gray as o, brand as s } from "../theme-primitives.js";
3
+ import { b as s } from "../../createSvgIcon-CS-Z7P80.js";
4
+ import { gray as o, brand as l } from "../theme-primitives.js";
5
5
  import { t as a } from "../../tabClasses-Bub2PPlp.js";
6
6
  import { a as d } from "../../colorManipulator-ep5lERxB.js";
7
- const n = l(/* @__PURE__ */ t.jsx("path", {
7
+ const n = s(/* @__PURE__ */ t.jsx("path", {
8
8
  d: "m12 5.83 2.46 2.46c.39.39 1.02.39 1.41 0s.39-1.02 0-1.41L12.7 3.7a.996.996 0 0 0-1.41 0L8.12 6.88c-.39.39-.39 1.02 0 1.41s1.02.39 1.41 0zm0 12.34-2.46-2.46a.996.996 0 0 0-1.41 0c-.39.39-.39 1.02 0 1.41l3.17 3.18c.39.39 1.02.39 1.41 0l3.17-3.17c.39-.39.39-1.02 0-1.41a.996.996 0 0 0-1.41 0z"
9
- }), "UnfoldMoreRounded"), g = {
9
+ }), "UnfoldMoreRounded"), y = {
10
10
  MuiAppBar: {
11
11
  styleOverrides: {
12
12
  root: ({ theme: r }) => ({
@@ -77,7 +77,7 @@ const n = l(/* @__PURE__ */ t.jsx("path", {
77
77
  width: 0
78
78
  },
79
79
  "&:focus-visible": {
80
- outline: `3px solid ${d(s[500], 0.5)}`,
80
+ outline: `3px solid ${d(l[500], 0.5)}`,
81
81
  outlineOffset: "4px",
82
82
  borderRadius: "2px"
83
83
  }
@@ -132,21 +132,17 @@ const n = l(/* @__PURE__ */ t.jsx("path", {
132
132
  borderLeft: "none",
133
133
  borderRight: "none",
134
134
  ":hover": {
135
- color: (r.vars || r).palette.text.primary,
136
- backgroundColor: (r.vars || r).palette.action.hover
135
+ color: (r.vars || r).palette.text.primary
137
136
  },
138
137
  [`&.${a.selected}`]: {
139
- color: (r.vars || r).palette.text.primary,
140
- backgroundColor: (r.vars || r).palette.action.selected
138
+ color: (r.vars || r).palette.text.primary
141
139
  },
142
140
  ...r.applyStyles("dark", {
143
141
  ":hover": {
144
- color: (r.vars || r).palette.text.primary,
145
- backgroundColor: (r.vars || r).palette.action.hover
142
+ color: (r.vars || r).palette.text.primary
146
143
  },
147
144
  [`&.${a.selected}`]: {
148
- color: (r.vars || r).palette.text.primary,
149
- backgroundColor: (r.vars || r).palette.action.selected
145
+ color: (r.vars || r).palette.text.primary
150
146
  }
151
147
  })
152
148
  })
@@ -216,5 +212,5 @@ const n = l(/* @__PURE__ */ t.jsx("path", {
216
212
  }
217
213
  };
218
214
  export {
219
- g as navigationCustomizations
215
+ y as navigationCustomizations
220
216
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "registry": "https://registry.npmjs.org"
5
5
  },
6
- "version": "1.0.97",
6
+ "version": "1.0.98",
7
7
  "description": "advanced ui kit for solostylist",
8
8
  "private": false,
9
9
  "type": "module",
@@ -55,7 +55,8 @@
55
55
  "react-router-dom": "^7.8.2",
56
56
  "react-slick": "^0.31.0",
57
57
  "slick-carousel": "^1.8.1",
58
- "uuid": "^11.1.0"
58
+ "uuid": "^11.1.0",
59
+ "emoji-picker-react": "^4.13.3"
59
60
  },
60
61
  "devDependencies": {
61
62
  "@ianvs/prettier-plugin-sort-imports": "^4.4.2",