@junyiacademy/ui-test 1.6.6 → 1.6.7

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.
Files changed (76) hide show
  1. package/README.md +66 -4
  2. package/dist/index.js.mjs +1479 -0
  3. package/dist/index.js.umd.js +2 -0
  4. package/dist/shared-utils/src/hooks/topic-filter/useGetTopicList.d.ts +14 -0
  5. package/dist/shared-utils/src/models/index.d.ts +2 -0
  6. package/dist/shared-utils/src/models/topic-tree/SubTree.d.ts +5 -0
  7. package/dist/shared-utils/src/models/topic-tree/Topic.d.ts +10 -0
  8. package/dist/shared-utils/src/models/user/UserProfile.d.ts +92 -0
  9. package/dist/shared-utils/src/utils/axios.d.ts +2 -0
  10. package/dist/shared-utils/src/utils/getCsrfToken.d.ts +7 -0
  11. package/dist/{index.d.ts → ui/src/index.d.ts} +7 -0
  12. package/dist/{interfaces → ui/src/interfaces}/index.d.ts +1 -9
  13. package/dist/ui/src/lib/Info-Popover/InfoPopover.d.ts +20 -0
  14. package/dist/ui/src/lib/MUI/Alert/Alert.d.ts +3 -0
  15. package/dist/ui/src/lib/MUI/Avatar/Avatar.d.ts +3 -0
  16. package/dist/ui/src/lib/MUI/Badge/Badge.d.ts +3 -0
  17. package/dist/ui/src/lib/MUI/Checkbox/Checkbox.d.ts +3 -0
  18. package/dist/ui/src/lib/MUI/Chip/Chip.d.ts +3 -0
  19. package/dist/ui/src/lib/MUI/CircularProgress/CircularProgress.d.ts +3 -0
  20. package/dist/ui/src/lib/MUI/Divider/Divider.d.ts +3 -0
  21. package/dist/ui/src/lib/MUI/Fab/Fab.d.ts +3 -0
  22. package/dist/ui/src/lib/MUI/LinearProgress/LinearProgress.d.ts +3 -0
  23. package/dist/ui/src/lib/MUI/Link/Link.d.ts +3 -0
  24. package/dist/ui/src/lib/MUI/Menu/Menu.d.ts +3 -0
  25. package/dist/ui/src/lib/MUI/Menu/MenuItem.d.ts +3 -0
  26. package/dist/ui/src/lib/MUI/Paper/Paper.d.ts +3 -0
  27. package/dist/ui/src/lib/MUI/Rating/Rating.d.ts +3 -0
  28. package/dist/ui/src/lib/MUI/Skeleton/Skeleton.d.ts +3 -0
  29. package/dist/ui/src/lib/MUI/Slider/Slider.d.ts +3 -0
  30. package/dist/ui/src/lib/MUI/Snackbar/Snackbar.d.ts +3 -0
  31. package/dist/ui/src/lib/MUI/Switch/Switch.d.ts +3 -0
  32. package/dist/ui/src/lib/MUI/Tooltip/Tooltip.d.ts +3 -0
  33. package/dist/ui/src/lib/MUI/Typography/Typography.d.ts +5 -0
  34. package/dist/ui/src/lib/button/Button.d.ts +10 -0
  35. package/dist/ui/src/lib/button/LoadingButton.d.ts +7 -0
  36. package/dist/ui/src/lib/button-group/ButtonGroup.d.ts +15 -0
  37. package/dist/ui/src/lib/chip/Chip.d.ts +9 -0
  38. package/dist/ui/src/lib/icon/Icon.d.ts +5 -0
  39. package/dist/{lib → ui/src/lib}/menu-item/SelectMenuItem.d.ts +1 -1
  40. package/dist/ui/src/lib/radio/Radio.d.ts +13 -0
  41. package/dist/ui/src/lib/select/OutlinedSelect.d.ts +3 -0
  42. package/dist/ui/src/lib/select/Select.d.ts +3 -0
  43. package/dist/ui/src/lib/select/StandardSelect.d.ts +3 -0
  44. package/dist/{lib → ui/src/lib}/text-field/TextField.d.ts +1 -1
  45. package/dist/ui/src/lib/topic-filter/TopicFilter.d.ts +13 -0
  46. package/dist/ui/src/lib/tutorial/Tutorial.d.ts +8 -0
  47. package/dist/ui/src/lib/tutorial/TutorialStep.d.ts +27 -0
  48. package/dist/ui/src/styles/colors.d.ts +11 -0
  49. package/dist/ui/src/styles/locales/dateTimePicker.d.ts +83 -0
  50. package/dist/ui/src/styles/theme.d.ts +77 -0
  51. package/dist/ui/src/utils/capitalize.d.ts +1 -0
  52. package/package.json +27 -12
  53. package/dist/index.js +0 -20
  54. package/dist/interfaces/index.js +0 -2
  55. package/dist/lib/button/Button.d.ts +0 -6
  56. package/dist/lib/button/Button.js +0 -73
  57. package/dist/lib/button-group/ButtonGroup.d.ts +0 -3
  58. package/dist/lib/button-group/ButtonGroup.js +0 -51
  59. package/dist/lib/menu-item/SelectMenuItem.js +0 -58
  60. package/dist/lib/radio/Radio.d.ts +0 -11
  61. package/dist/lib/radio/Radio.js +0 -76
  62. package/dist/lib/select/OutlinedSelect.d.ts +0 -3
  63. package/dist/lib/select/OutlinedSelect.js +0 -133
  64. package/dist/lib/select/Select.d.ts +0 -3
  65. package/dist/lib/select/Select.js +0 -40
  66. package/dist/lib/select/StandardSelect.d.ts +0 -3
  67. package/dist/lib/select/StandardSelect.js +0 -88
  68. package/dist/lib/text-field/TextField.js +0 -110
  69. package/dist/lib/topic-filter/TopicFilter.d.ts +0 -13
  70. package/dist/lib/topic-filter/TopicFilter.js +0 -151
  71. package/dist/styles/theme.d.ts +0 -24
  72. package/dist/styles/theme.js +0 -42
  73. package/dist/utils/Capitalize.d.ts +0 -1
  74. package/dist/utils/Capitalize.js +0 -6
  75. package/dist/utils/topicTree.d.ts +0 -2
  76. package/dist/utils/topicTree.js +0 -177
@@ -0,0 +1,1479 @@
1
+ import { createTheme as K, styled as $, alpha as B } from "@mui/material/styles";
2
+ import { jsx as o, jsxs as y, Fragment as it } from "react/jsx-runtime";
3
+ import { forwardRef as H, useState as D } from "react";
4
+ import { MenuItem as lt, InputLabel as X, OutlinedInput as st, FormControl as Z, Select as tt, FormHelperText as et, Input as dt, useMediaQuery as pt, Box as x, Button as ot, ButtonGroup as ct, FormControlLabel as ut, Radio as mt, Typography as w, TextField as ht, Card as gt, CardHeader as xt, IconButton as ft, CardMedia as bt, Divider as Ft, CardContent as yt, CardActions as Ct, Slide as $t, Modal as kt, Chip as vt, Popper as St } from "@mui/material";
5
+ import Tt from "@mui/icons-material/ArrowRightRounded";
6
+ import { menuItemClasses as wt } from "@mui/material/MenuItem";
7
+ import { formHelperTextClasses as rt } from "@mui/material/FormHelperText";
8
+ import { inputBaseClasses as _ } from "@mui/material/InputBase";
9
+ import { inputLabelClasses as g } from "@mui/material/InputLabel";
10
+ import { outlinedInputClasses as C } from "@mui/material/OutlinedInput";
11
+ import { inputClasses as F } from "@mui/material/Input";
12
+ import { buttonClasses as P } from "@mui/material/Button";
13
+ import { buttonGroupClasses as A } from "@mui/material/ButtonGroup";
14
+ import { formControlLabelClasses as j } from "@mui/material/FormControlLabel";
15
+ import { radioClasses as Pt } from "@mui/material/Radio";
16
+ import { textFieldClasses as Bt } from "@mui/material/TextField";
17
+ import zt from "@mui/material/useMediaQuery";
18
+ import Lt from "@mui/icons-material/Close";
19
+ import { chipClasses as N } from "@mui/material/Chip";
20
+ const M = {
21
+ yellow: { 200: "#FFFF99" },
22
+ blue: { 600: "#4990E2" },
23
+ lightGreen: { 400: "#99CC66" }
24
+ }, Mt = (t) => ({
25
+ components: {
26
+ MuiLocalizationProvider: {
27
+ defaultProps: {
28
+ localeText: { ...t }
29
+ }
30
+ }
31
+ }
32
+ }), Q = {
33
+ hours: "小時",
34
+ minutes: "分鐘",
35
+ seconds: "秒",
36
+ meridiem: "子午線"
37
+ }, Et = {
38
+ // Calendar navigation
39
+ previousMonth: "上個月",
40
+ nextMonth: "下個月",
41
+ // View navigation
42
+ openPreviousView: "上一個視圖",
43
+ openNextView: "下一個視圖",
44
+ calendarViewSwitchingButtonAriaLabel: (t) => t === "year" ? "年視圖已打開,切換為日曆視圖" : "日曆視圖已打開,切換為年視圖",
45
+ // DateRange placeholders
46
+ start: "開始",
47
+ end: "結束",
48
+ // Action bar
49
+ cancelButtonLabel: "取消",
50
+ clearButtonLabel: "清除",
51
+ okButtonLabel: "確認",
52
+ todayButtonLabel: "今天",
53
+ nextStepButtonLabel: "下一步",
54
+ // Toolbar titles
55
+ datePickerToolbarTitle: "選擇日期",
56
+ dateTimePickerToolbarTitle: "選擇日期和時間",
57
+ timePickerToolbarTitle: "選擇時間",
58
+ dateRangePickerToolbarTitle: "選擇時間範圍",
59
+ // Clock labels
60
+ clockLabelText: (t, e) => `選擇 ${Q[t]}. ${e === null ? "未選擇時間" : `已選擇${e}`}`,
61
+ hoursClockNumberText: (t) => `${t}小時`,
62
+ minutesClockNumberText: (t) => `${t}分鐘`,
63
+ secondsClockNumberText: (t) => `${t}秒`,
64
+ // Digital clock labels
65
+ selectViewText: (t) => `選擇 ${Q[t]}`,
66
+ // Calendar labels
67
+ calendarWeekNumberHeaderLabel: "週數",
68
+ calendarWeekNumberHeaderText: "#",
69
+ calendarWeekNumberAriaLabelText: (t) => `第${t}週`,
70
+ calendarWeekNumberText: (t) => `${t}`,
71
+ // Open picker labels
72
+ openDatePickerDialogue: (t) => t ? `選擇日期,已選擇${t}` : "選擇日期",
73
+ openTimePickerDialogue: (t) => t ? `選擇時間,已選擇${t}` : "選擇時間",
74
+ // Table labels
75
+ timeTableLabel: "選擇時間",
76
+ dateTableLabel: "選擇日期",
77
+ // Field section placeholders
78
+ fieldYearPlaceholder: (t) => "Y".repeat(t.digitAmount),
79
+ fieldMonthPlaceholder: (t) => t.contentType === "letter" ? "MMMM" : "MM",
80
+ fieldDayPlaceholder: () => "DD",
81
+ fieldWeekDayPlaceholder: (t) => t.contentType === "letter" ? "EEEE" : "EE",
82
+ fieldHoursPlaceholder: () => "hh",
83
+ fieldMinutesPlaceholder: () => "mm",
84
+ fieldSecondsPlaceholder: () => "ss",
85
+ fieldMeridiemPlaceholder: () => "aa"
86
+ }, At = Mt(Et), Y = K(), b = [
87
+ '"Noto Sans TC"',
88
+ "PingFang",
89
+ '"Microsoft JhengHei"',
90
+ "Arial",
91
+ "sans-serif"
92
+ ].join(","), he = K(
93
+ {
94
+ typography: {
95
+ fontFamily: b,
96
+ h1: { fontFamily: b, fontSize: 96, lineHeight: "112px" },
97
+ h2: { fontFamily: b, fontSize: 60, lineHeight: 1.2 },
98
+ h3: { fontFamily: b, fontSize: 48, lineHeight: 1.167 },
99
+ h4: { fontFamily: b, fontSize: 34, lineHeight: 1.235 },
100
+ h5: { fontFamily: b, fontSize: 24, lineHeight: 1.334 },
101
+ h6: { fontFamily: b, fontSize: 20, lineHeight: 1.6 },
102
+ subtitle1: {
103
+ fontFamily: b,
104
+ fontSize: 16,
105
+ lineHeight: 1.75
106
+ },
107
+ subtitle2: {
108
+ fontFamily: b,
109
+ fontSize: 14,
110
+ lineHeight: 1.57
111
+ },
112
+ body1: { fontFamily: b, fontSize: 16, lineHeight: 1.5 },
113
+ body2: { fontFamily: b, fontSize: 14, lineHeight: 1.43 },
114
+ button: { fontFamily: b },
115
+ caption: { fontFamily: b, fontSize: 12, lineHeight: 1.66 },
116
+ overline: { fontFamily: b, fontSize: 12, lineHeight: 2.66 }
117
+ },
118
+ palette: {
119
+ primary: {
120
+ light: "#82C0FF",
121
+ main: M.blue[600],
122
+ dark: "#0063B0"
123
+ },
124
+ secondary: {
125
+ light: "#FFD759",
126
+ main: "#F5A623",
127
+ dark: "#BD7700",
128
+ contrastText: "#FFFFFF"
129
+ },
130
+ cancel: {
131
+ main: "#C4C4C4",
132
+ contrastText: "#FFFFFF"
133
+ },
134
+ primaryGreen: {
135
+ light: "#9DD49E",
136
+ main: "#5CB85D",
137
+ dark: "#218838",
138
+ contrastText: "#FFFFFF"
139
+ },
140
+ blueGreen: {
141
+ main: "#19A696",
142
+ contrastText: "#FFFFFF"
143
+ },
144
+ grassGreen: Y.palette.augmentColor({
145
+ color: { main: "#80BB5A", contrastText: "#FFFFFF" }
146
+ }),
147
+ darkOrange: Y.palette.augmentColor({
148
+ color: { main: "#D55704", contrastText: "#FFFFFF" }
149
+ }),
150
+ progressPrimary: {
151
+ main: M.blue[600],
152
+ dark: M.blue[600],
153
+ light: "#FFFFFF",
154
+ contrastText: "#FFFFFF"
155
+ },
156
+ progressUpgraded: {
157
+ main: "#EEEEEE",
158
+ light: "#FFF",
159
+ dark: "#D4D4D4",
160
+ contrastText: "#000000DE"
161
+ },
162
+ progressUnstarted: {
163
+ main: "#EEEEEE",
164
+ light: "#FFF",
165
+ dark: "#D4D4D4",
166
+ contrastText: "#000000DE"
167
+ },
168
+ progressStart: {
169
+ main: "#BEDEFF",
170
+ light: "#FFFFFF",
171
+ dark: "#ABC8E5",
172
+ contrastText: "#000000DE"
173
+ },
174
+ progressLevel1: {
175
+ main: "#82C0FF",
176
+ light: "#FFFFFF",
177
+ dark: "#75ADE5",
178
+ contrastText: "#000000DE"
179
+ },
180
+ progressLevel2: {
181
+ main: M.blue[600],
182
+ light: "#FFFFFF",
183
+ dark: "#4180C9",
184
+ contrastText: "#FFFFFF"
185
+ },
186
+ progressLevel3: {
187
+ main: "#0063B0",
188
+ light: "#FFFFFF",
189
+ dark: "#005596",
190
+ contrastText: "#FFFFFF"
191
+ },
192
+ progressFinished: {
193
+ main: "#05396B",
194
+ light: "#FFFFFF",
195
+ dark: "#042B52",
196
+ contrastText: "#FFFFFF"
197
+ },
198
+ progressStruggle: {
199
+ main: "#C62828",
200
+ light: "#FFFFFF",
201
+ dark: "#AD2323",
202
+ contrastText: "#FFFFFF"
203
+ },
204
+ text: {
205
+ secondary: "rgba(0, 0, 0, 0.54)",
206
+ disabled: "rgba(0, 0, 0, 0.38)"
207
+ }
208
+ },
209
+ components: {
210
+ MuiCssBaseline: {
211
+ styleOverrides: {
212
+ body: {
213
+ color: "rgba(0, 0, 0, 0.6)",
214
+ lineHeight: "1.2",
215
+ WebkitFontSmoothing: "auto",
216
+ "& .swal2-container": { zIndex: 1350 },
217
+ button: {
218
+ fontFamily: b
219
+ }
220
+ },
221
+ "ol, ul": {
222
+ listStyle: "none"
223
+ },
224
+ "h1, h2, h3, h4, h5, h6, p": {
225
+ color: "rgba(0, 0, 0, 0.87)",
226
+ margin: 0,
227
+ padding: 0,
228
+ border: 0
229
+ },
230
+ a: {
231
+ color: M.blue[600],
232
+ textDecoration: "none",
233
+ cursor: "pointer"
234
+ },
235
+ "a:hover, a:focus": {
236
+ color: "#0063b0"
237
+ }
238
+ }
239
+ },
240
+ MuiButton: {
241
+ styleOverrides: {
242
+ sizeSmall: {
243
+ fontSize: 12,
244
+ fontWeight: 500,
245
+ lineHeight: "22px"
246
+ },
247
+ sizeMedium: {
248
+ fontSize: 14,
249
+ fontWeight: 500,
250
+ lineHeight: "24px"
251
+ },
252
+ sizeLarge: {
253
+ fontSize: 15,
254
+ fontWeight: 500,
255
+ lineHeight: "26px"
256
+ }
257
+ }
258
+ }
259
+ }
260
+ },
261
+ At
262
+ ), I = H(
263
+ (t, e) => {
264
+ const { children: r, value: a = "", ...m } = t, { sx: n, ...s } = m;
265
+ return /* @__PURE__ */ o(
266
+ lt,
267
+ {
268
+ ref: e,
269
+ sx: [
270
+ (p) => ({
271
+ whiteSpace: "unset",
272
+ color: p.palette.text.primary,
273
+ [`&.${wt.selected}`]: {
274
+ backgroundColor: p.palette.grey[300],
275
+ "&:hover": {
276
+ backgroundColor: p.palette.grey[200]
277
+ }
278
+ }
279
+ }),
280
+ ...Array.isArray(n) ? n : [n]
281
+ ],
282
+ value: a,
283
+ ...s,
284
+ children: r
285
+ }
286
+ );
287
+ }
288
+ );
289
+ I.displayName = "SelectMenuItem";
290
+ const It = $(X, {
291
+ shouldForwardProp: (t) => t !== "color"
292
+ })(({ color: t = "primary", theme: e }) => ({
293
+ color: e.palette.text.secondary,
294
+ [`&.${g.outlined}`]: {
295
+ [`&:not(.${g.disabled}) .${g.focused}`]: {
296
+ color: e.palette.action.active
297
+ },
298
+ [`&.${g.sizeSmall}:not(.${g.shrink})`]: {
299
+ transform: "translate(12px, 12px) scale(1)"
300
+ }
301
+ },
302
+ // eslint-disable-next-line
303
+ [`&.${g.shrink}:not(.${g.error}):not(.${g.disabled}).${g.focused}`]: {
304
+ color: e.palette[t].main
305
+ },
306
+ [`&.${g.shrink}`]: {
307
+ backgroundColor: "#ffffff",
308
+ padding: "0 2px"
309
+ }
310
+ })), Dt = $(st)(
311
+ ({ theme: t }) => ({
312
+ [`&.${C.root}`]: {
313
+ [`&.${C.error}.${C.focused} .${C.notchedOutline}`]: {
314
+ borderColor: `${t.palette.error.main}`
315
+ },
316
+ [`&.${_.sizeSmall} > .${_.input}`]: {
317
+ padding: "12.5px 15px 12.5px 12px"
318
+ }
319
+ },
320
+ [`& .${C.input}`]: {
321
+ color: t.palette.text.primary,
322
+ "&:focus": {
323
+ background: "rgba(0,0,0,0)"
324
+ }
325
+ }
326
+ })
327
+ ), Ht = ({
328
+ label: t,
329
+ helperText: e,
330
+ FormControlProps: r = {},
331
+ InputLabelProps: a = {},
332
+ InputProps: m = {},
333
+ SelectProps: n = {},
334
+ MenuProps: s = {},
335
+ FormHelperTextProps: p = {},
336
+ className: c,
337
+ children: i,
338
+ color: u = "primary",
339
+ size: d = "small",
340
+ paperMaxHeight: h = "auto",
341
+ error: l = !1,
342
+ hasLabel: f = !0,
343
+ hasShrink: v = !1,
344
+ value: z = "",
345
+ disabled: T = !1
346
+ }) => {
347
+ const W = !!e, { sx: L = [], ...V } = r, { sx: k = [], ...O } = p;
348
+ return /* @__PURE__ */ y(
349
+ Z,
350
+ {
351
+ sx: [
352
+ (R) => ({
353
+ backgroundColor: "white",
354
+ "&:hover": {
355
+ // eslint-disable-next-line
356
+ [`& :not(.${C.disabled}):not(.${C.error}) .${C.notchedOutline}`]: {
357
+ borderColor: R.palette[u].main
358
+ }
359
+ }
360
+ }),
361
+ ...Array.isArray(L) ? L : [L]
362
+ ],
363
+ size: d,
364
+ disabled: T,
365
+ error: l,
366
+ color: u,
367
+ className: c,
368
+ ...V,
369
+ children: [
370
+ f && /* @__PURE__ */ o(
371
+ It,
372
+ {
373
+ color: u,
374
+ shrink: v ? !0 : void 0,
375
+ ...a,
376
+ children: t
377
+ }
378
+ ),
379
+ /* @__PURE__ */ o(
380
+ tt,
381
+ {
382
+ value: z,
383
+ label: f ? t : void 0,
384
+ MenuProps: {
385
+ PaperProps: {
386
+ sx: {
387
+ maxHeight: h
388
+ }
389
+ },
390
+ disableAutoFocusItem: !0,
391
+ anchorOrigin: {
392
+ vertical: 2,
393
+ horizontal: "left"
394
+ },
395
+ transformOrigin: {
396
+ vertical: "top",
397
+ horizontal: "left"
398
+ },
399
+ ...s
400
+ },
401
+ input: /* @__PURE__ */ o(
402
+ Dt,
403
+ {
404
+ color: u,
405
+ label: f ? t : void 0,
406
+ disabled: T,
407
+ ...m
408
+ }
409
+ ),
410
+ ...n,
411
+ children: i
412
+ }
413
+ ),
414
+ W && /* @__PURE__ */ o(
415
+ et,
416
+ {
417
+ sx: [
418
+ {
419
+ [`&.${rt.root}`]: {
420
+ marginLeft: 0
421
+ }
422
+ },
423
+ ...Array.isArray(k) ? k : [k]
424
+ ],
425
+ ...O,
426
+ children: e
427
+ }
428
+ )
429
+ ]
430
+ }
431
+ );
432
+ }, Wt = $(X, {
433
+ shouldForwardProp: (t) => t !== "color"
434
+ })(({ color: t = "primary", theme: e }) => ({
435
+ [`&.${g.root}`]: {
436
+ color: e.palette.text.disabled
437
+ },
438
+ [`&.${g.focused}`]: {
439
+ color: e.palette[t].main
440
+ },
441
+ [`&.${g.error}`]: {
442
+ color: e.palette.error.main
443
+ }
444
+ })), Ot = $(dt, {
445
+ shouldForwardProp: (t) => t !== "color"
446
+ })(({ color: t = "primary", theme: e }) => ({
447
+ color: e.palette.text.primary,
448
+ [`& .${F.input}`]: {
449
+ "&:focus": {
450
+ background: "rgba(0,0,0,0)"
451
+ }
452
+ },
453
+ [`&.${F.underline}:not(.${F.disabled}):not(.${F.error})`]: {
454
+ "&:after,&:hover:before": {
455
+ borderBottomColor: e.palette[t].main
456
+ }
457
+ },
458
+ [`&.${F.underline}.${F.error}:not(.${F.disabled})`]: {
459
+ "&:after,&:hover:before": {
460
+ borderBottomColor: e.palette.error.main
461
+ }
462
+ }
463
+ })), Rt = ({
464
+ label: t,
465
+ helperText: e,
466
+ FormControlProps: r = {},
467
+ InputLabelProps: a = {},
468
+ InputProps: m = {},
469
+ SelectProps: n = {},
470
+ FormHelperTextProps: s = {},
471
+ className: p,
472
+ children: c,
473
+ color: i = "primary",
474
+ size: u = "small",
475
+ paperMaxHeight: d = "auto",
476
+ error: h = !1,
477
+ hasLabel: l = !0,
478
+ hasShrink: f = !1,
479
+ value: v = "",
480
+ disabled: z = !1
481
+ }) => {
482
+ const T = !!e;
483
+ return /* @__PURE__ */ y(
484
+ Z,
485
+ {
486
+ variant: "standard",
487
+ color: i,
488
+ size: u,
489
+ disabled: z,
490
+ error: h,
491
+ className: p,
492
+ ...r,
493
+ children: [
494
+ /* @__PURE__ */ o(
495
+ Wt,
496
+ {
497
+ color: i,
498
+ shrink: f ? !0 : void 0,
499
+ ...a,
500
+ children: l ? t : void 0
501
+ }
502
+ ),
503
+ /* @__PURE__ */ o(
504
+ tt,
505
+ {
506
+ value: v,
507
+ MenuProps: {
508
+ PaperProps: {
509
+ sx: {
510
+ maxHeight: d
511
+ }
512
+ },
513
+ anchorOrigin: {
514
+ vertical: 2,
515
+ horizontal: "left"
516
+ },
517
+ transformOrigin: {
518
+ vertical: "top",
519
+ horizontal: "left"
520
+ }
521
+ },
522
+ input: /* @__PURE__ */ o(Ot, { color: i, ...m }),
523
+ ...n,
524
+ children: c
525
+ }
526
+ ),
527
+ T && /* @__PURE__ */ o(et, { ...s, children: e })
528
+ ]
529
+ }
530
+ );
531
+ }, J = ({ variant: t, ...e }) => t === "outlined" ? /* @__PURE__ */ o(Ht, { ...e }) : /* @__PURE__ */ o(Rt, { ...e }), q = "請選擇", U = "option-for-reset", jt = "", Gt = (t, e, r) => {
532
+ const a = r && t === 0 ? U : jt;
533
+ return e?.[t + 1] || a;
534
+ }, ge = ({
535
+ topicList: t,
536
+ onTopicSelected: e,
537
+ hasArrow: r,
538
+ selectedTopicIds: a,
539
+ onResetClick: m = () => {
540
+ },
541
+ hasResetOption: n = !1
542
+ }) => {
543
+ const s = pt((u) => u.breakpoints.up("md")), [p, c] = D([]), i = (u, d) => {
544
+ if (u.target.value === U) {
545
+ m();
546
+ return;
547
+ }
548
+ e(u.target.value, {
549
+ layerNumber: d
550
+ }), c((h) => [
551
+ ...h.slice(0, d + 1),
552
+ !1
553
+ ]);
554
+ };
555
+ return /* @__PURE__ */ o(
556
+ x,
557
+ {
558
+ sx: {
559
+ display: "flex",
560
+ alignItems: "center",
561
+ flexWrap: "wrap"
562
+ },
563
+ children: t.map((u, d) => {
564
+ const h = p[d] || !a[d + 1];
565
+ return u.isError ? null : /* @__PURE__ */ y(
566
+ x,
567
+ {
568
+ sx: {
569
+ display: "flex",
570
+ alignItems: "center",
571
+ width: s ? void 0 : "100%"
572
+ },
573
+ children: [
574
+ r && d !== 0 && /* @__PURE__ */ o(
575
+ Tt,
576
+ {
577
+ sx: (l) => ({
578
+ margin: l.spacing(-1, -1.5),
579
+ fontSize: l.spacing(7),
580
+ color: "#444"
581
+ }),
582
+ fontSize: "large",
583
+ "data-testid": "topic-filter-arrow"
584
+ }
585
+ ),
586
+ u.isLoading ? /* @__PURE__ */ o(
587
+ J,
588
+ {
589
+ variant: "outlined",
590
+ size: "small",
591
+ label: "載入資料中...",
592
+ disabled: !0,
593
+ FormControlProps: {
594
+ sx: (l) => ({
595
+ width: s ? 220 : "100%",
596
+ margin: l.spacing(1)
597
+ })
598
+ }
599
+ }
600
+ ) : /* @__PURE__ */ y(
601
+ J,
602
+ {
603
+ variant: "outlined",
604
+ size: "small",
605
+ label: q,
606
+ paperMaxHeight: 412,
607
+ hasLabel: h,
608
+ value: Gt(
609
+ d,
610
+ a,
611
+ n
612
+ ),
613
+ SelectProps: {
614
+ "data-testid": `layered-topic-${d}`
615
+ },
616
+ InputProps: {
617
+ inputProps: {
618
+ "aria-label": `layered-topic-${d}`
619
+ },
620
+ onChange: (l) => {
621
+ i(l, d);
622
+ },
623
+ onFocus: () => {
624
+ c((l) => {
625
+ const f = [...l];
626
+ return f[d] = !0, f;
627
+ });
628
+ },
629
+ onBlur: () => {
630
+ c((l) => {
631
+ const f = [...l];
632
+ return f[d] = !1, f;
633
+ });
634
+ }
635
+ },
636
+ FormControlProps: {
637
+ sx: (l) => ({
638
+ width: s ? 220 : "100%",
639
+ margin: l.spacing(1)
640
+ })
641
+ },
642
+ children: [
643
+ /* @__PURE__ */ o(I, { disabled: !0, value: "", children: q }),
644
+ n && d === 0 && /* @__PURE__ */ o(I, { value: U, children: "所有科目" }),
645
+ u.data.children.map((l) => /* @__PURE__ */ o(
646
+ I,
647
+ {
648
+ value: l.id,
649
+ "data-testid": `layered-menuitem-${d}`,
650
+ "data-is-content-topic": l.hasContentChild,
651
+ children: l.title
652
+ },
653
+ l.id
654
+ ))
655
+ ]
656
+ }
657
+ )
658
+ ]
659
+ },
660
+ d
661
+ );
662
+ })
663
+ }
664
+ );
665
+ };
666
+ function S(t) {
667
+ return `${t.charAt(0).toUpperCase()}${t.slice(1)}`;
668
+ }
669
+ const E = H(
670
+ (t, e) => {
671
+ const { children: r, ...a } = t;
672
+ return /* @__PURE__ */ o(ot, { ref: e, ...a, children: r });
673
+ }
674
+ );
675
+ E.displayName = "Button";
676
+ const xe = $(E, {
677
+ shouldForwardProp: (t) => t !== "active"
678
+ })(({ theme: t, active: e, color: r = "primary" }) => ({
679
+ // For variant: outlined
680
+ [`&.${P.outlined}${S(r)}`]: {
681
+ backgroundColor: e ? t.palette[r].main : t.palette.common.white,
682
+ color: e ? t.palette.common.white : t.palette[r].main,
683
+ borderColor: t.palette[r].main,
684
+ "&:hover": {
685
+ backgroundColor: e ? t.palette[r].main : B(t.palette[r].main, 0.1)
686
+ },
687
+ [`&.${P.disabled}`]: {
688
+ backgroundColor: t.palette.common.white,
689
+ borderColor: t.palette.action.disabledBackground,
690
+ color: t.palette.action.disabled
691
+ }
692
+ },
693
+ // For variant: text
694
+ [`&.${P.text}${S(r)}`]: {
695
+ "&:hover": {
696
+ backgroundColor: B(t.palette[r].main, 0.1)
697
+ }
698
+ }
699
+ })), Ut = $(ot)(
700
+ ({ theme: t, color: e = "primary", loading: r }) => ({
701
+ // For variant: outlined
702
+ [`&.${P.outlined}${S(e)}`]: {
703
+ borderColor: !r && t.palette[e].main,
704
+ "&:hover": {
705
+ backgroundColor: B(t.palette[e].main, 0.1)
706
+ },
707
+ [`&.${P.disabled}`]: {
708
+ backgroundColor: !r && t.palette.common.white,
709
+ borderColor: !r && t.palette.action.disabledBackground,
710
+ color: !r && t.palette.action.disabled
711
+ }
712
+ },
713
+ // For variant: text
714
+ [`&.${P.text}${S(e)}`]: {
715
+ "&:hover": {
716
+ backgroundColor: B(t.palette[e].main, 0.1)
717
+ }
718
+ }
719
+ })
720
+ ), fe = ({
721
+ children: t,
722
+ ...e
723
+ }) => /* @__PURE__ */ o(Ut, { ...e, children: /* @__PURE__ */ o("span", { children: t }) }), nt = H(
724
+ (t, e) => {
725
+ const { children: r, ...a } = t;
726
+ return /* @__PURE__ */ o(ct, { ref: e, ...a, children: r });
727
+ }
728
+ );
729
+ nt.displayName = "ButtonGroup";
730
+ const be = $(
731
+ nt
732
+ )(({ color: t = "primary", theme: e }) => ({
733
+ [`&.${A.outlined} > .${A.grouped}${S(t)}.${A.grouped}.${A.disabled}`]: {
734
+ borderColor: B(e.palette[t].main, 0.5),
735
+ color: B(e.palette[t].main, 0.5)
736
+ }
737
+ })), Vt = $(ut)(({ theme: t }) => ({
738
+ [`& .${j.label}`]: {
739
+ color: t.palette.text.secondary,
740
+ [`&.${j.disabled}`]: {
741
+ color: t.palette.text.disabled
742
+ }
743
+ },
744
+ [`& .${Pt.checked} + .${j.label}`]: {
745
+ color: t.palette.text.primary
746
+ }
747
+ })), Fe = ({
748
+ checked: t,
749
+ disabled: e,
750
+ label: r,
751
+ labelPlacement: a,
752
+ value: m,
753
+ FormControlLabelProps: n = {},
754
+ RadioProps: s = {},
755
+ TypographyProps: p = {},
756
+ color: c = "secondary",
757
+ size: i = "medium",
758
+ caption: u = ""
759
+ }) => {
760
+ const { sx: d = [], ...h } = s, { sx: l = [], ...f } = p;
761
+ return /* @__PURE__ */ y(it, { children: [
762
+ /* @__PURE__ */ o(
763
+ Vt,
764
+ {
765
+ control: /* @__PURE__ */ o(
766
+ mt,
767
+ {
768
+ sx: [
769
+ (v) => ({
770
+ color: v.palette.text.primary
771
+ }),
772
+ ...Array.isArray(d) ? d : [d]
773
+ ],
774
+ color: c,
775
+ size: i,
776
+ ...h
777
+ }
778
+ ),
779
+ checked: t,
780
+ disabled: e,
781
+ label: r,
782
+ labelPlacement: a,
783
+ value: m,
784
+ ...n
785
+ }
786
+ ),
787
+ u && /* @__PURE__ */ o(
788
+ w,
789
+ {
790
+ sx: [
791
+ (v) => ({
792
+ color: v.palette.text.disabled,
793
+ margin: "0 0 0 30px"
794
+ }),
795
+ ...Array.isArray(l) ? l : [l]
796
+ ],
797
+ variant: "body2",
798
+ ...f,
799
+ children: u
800
+ }
801
+ )
802
+ ] });
803
+ }, _t = $(ht)(
804
+ ({ label: t, color: e = "primary", theme: r }) => ({
805
+ [`& .${g.error}`]: {
806
+ [`&:not(.${g.shrink})`]: {
807
+ color: r.palette.text.secondary
808
+ },
809
+ [`&.${g.disabled}`]: {
810
+ color: r.palette.text.disabled
811
+ }
812
+ },
813
+ [`& .${g.error}.${g.focused}`]: {
814
+ color: r.palette.error.main
815
+ },
816
+ // For variant: standard | filled
817
+ [`& .${F.underline}:not(.${F.disabled})`]: {
818
+ [`&.MuiInputBase-color${S(e)}:hover:before`]: {
819
+ borderColor: r.palette[e].main
820
+ }
821
+ },
822
+ // For variant: outlined
823
+ [`& .${F.disabled} .${C.notchedOutline}`]: {
824
+ borderStyle: "dotted"
825
+ },
826
+ [`& .${F.error}.${F.focused} .${C.notchedOutline}`]: {
827
+ borderColor: r.palette.error.main
828
+ },
829
+ [`&.${Bt.root} :not(.${F.disabled}):not(.${F.error})`]: {
830
+ [`&.MuiInputBase-color${S(e)}:hover .${C.notchedOutline}`]: {
831
+ borderColor: r.palette[e].main
832
+ }
833
+ },
834
+ [`& .${C.notchedOutline}`]: {
835
+ "& > legend": {
836
+ maxWidth: t === "" && 0
837
+ }
838
+ }
839
+ })
840
+ ), ye = (t) => {
841
+ const { slotProps: e = {}, ...r } = t, {
842
+ inputLabel: a = {},
843
+ input: m = {},
844
+ formHelperText: n = {},
845
+ ...s
846
+ } = e, p = !!("endAdornment" in m && m?.endAdornment);
847
+ return /* @__PURE__ */ o(
848
+ _t,
849
+ {
850
+ slotProps: {
851
+ inputLabel: {
852
+ shrink: p ? !0 : void 0,
853
+ ...a
854
+ },
855
+ input: m,
856
+ formHelperText: {
857
+ ...n,
858
+ sx: [
859
+ (c) => ({
860
+ [`&.${rt.root}`]: {
861
+ marginLeft: 0,
862
+ [`&.${F.error}`]: {
863
+ color: c.palette.error.main
864
+ }
865
+ }
866
+ })
867
+ ]
868
+ },
869
+ ...s
870
+ },
871
+ ...r
872
+ }
873
+ );
874
+ }, at = H((t, e) => {
875
+ const {
876
+ title: r,
877
+ content: a,
878
+ imageUrl: m,
879
+ confirmButtonProps: n,
880
+ cancelButtonProps: s,
881
+ closeButtonProps: p,
882
+ context: c
883
+ } = t;
884
+ return /* @__PURE__ */ y(
885
+ gt,
886
+ {
887
+ ref: e,
888
+ sx: (i) => ({
889
+ zIndex: "10000",
890
+ backgroundColor: "white",
891
+ borderRadius: "10px",
892
+ boxShadow: "4px 6px 20px 0px #00000040",
893
+ padding: 0,
894
+ width: "400px",
895
+ [i.breakpoints.up(1024)]: {
896
+ position: "fixed",
897
+ left: "64px",
898
+ bottom: "50px"
899
+ },
900
+ [i.breakpoints.down(451)]: {
901
+ width: "80%"
902
+ }
903
+ }),
904
+ children: [
905
+ /* @__PURE__ */ o(
906
+ xt,
907
+ {
908
+ sx: (i) => ({
909
+ padding: i.spacing(p ? 1 : 2, 2, 0)
910
+ }),
911
+ action: p && /* @__PURE__ */ o(
912
+ ft,
913
+ {
914
+ onClick: () => {
915
+ p instanceof Object && p?.onClick ? p.onClick(c) : c.close();
916
+ },
917
+ children: /* @__PURE__ */ o(Lt, {})
918
+ }
919
+ )
920
+ }
921
+ ),
922
+ m && /* @__PURE__ */ o(
923
+ bt,
924
+ {
925
+ sx: (i) => ({
926
+ padding: i.spacing(1, 2)
927
+ }),
928
+ children: /* @__PURE__ */ y(
929
+ x,
930
+ {
931
+ sx: (i) => ({
932
+ display: "flex",
933
+ flexDirection: "column",
934
+ gap: i.spacing(1)
935
+ }),
936
+ children: [
937
+ /* @__PURE__ */ o(
938
+ x,
939
+ {
940
+ component: "img",
941
+ sx: {
942
+ textAlign: "center",
943
+ width: "100%",
944
+ height: "100%",
945
+ border: "0.5px solid #D2D2D2",
946
+ borderRadius: "8px"
947
+ },
948
+ src: m
949
+ }
950
+ ),
951
+ /* @__PURE__ */ o(Ft, {})
952
+ ]
953
+ }
954
+ )
955
+ }
956
+ ),
957
+ /* @__PURE__ */ y(
958
+ yt,
959
+ {
960
+ sx: (i) => ({
961
+ padding: i.spacing(0, 2),
962
+ gap: i.spacing(1),
963
+ display: "flex",
964
+ flexDirection: "column"
965
+ }),
966
+ children: [
967
+ /* @__PURE__ */ y(
968
+ x,
969
+ {
970
+ sx: (i) => ({
971
+ gap: i.spacing(1),
972
+ display: "flex"
973
+ }),
974
+ children: [
975
+ /* @__PURE__ */ o(
976
+ x,
977
+ {
978
+ component: "img",
979
+ alt: "title icon",
980
+ src: "https://www.junyiacademy.org/images/exam/title_icon.svg"
981
+ }
982
+ ),
983
+ /* @__PURE__ */ o(x, { children: /* @__PURE__ */ o(w, { sx: { fontSize: "21px" }, children: r }) })
984
+ ]
985
+ }
986
+ ),
987
+ /* @__PURE__ */ o(w, { sx: { color: "#b5b5b5", fontSize: "18px" }, children: a })
988
+ ]
989
+ }
990
+ ),
991
+ /* @__PURE__ */ y(
992
+ Ct,
993
+ {
994
+ sx: (i) => ({
995
+ padding: i.spacing(1, 1, 3, 1),
996
+ display: "flex",
997
+ justifyContent: "center",
998
+ gap: i.spacing(2)
999
+ }),
1000
+ children: [
1001
+ s && /* @__PURE__ */ o(
1002
+ E,
1003
+ {
1004
+ color: "cancel",
1005
+ variant: s?.variant ?? "contained",
1006
+ size: s?.size ?? "large",
1007
+ onClick: () => {
1008
+ s?.onClick && s.onClick(c);
1009
+ },
1010
+ children: s.title || "取消"
1011
+ }
1012
+ ),
1013
+ n && /* @__PURE__ */ o(
1014
+ E,
1015
+ {
1016
+ variant: n?.variant ?? "contained",
1017
+ size: n?.size ?? "large",
1018
+ onClick: () => {
1019
+ n?.onClick && n.onClick(c);
1020
+ },
1021
+ children: n.title || "確定"
1022
+ }
1023
+ )
1024
+ ]
1025
+ }
1026
+ )
1027
+ ]
1028
+ }
1029
+ );
1030
+ });
1031
+ at.displayName = "TutorialStep";
1032
+ const Ce = ({
1033
+ steps: t = [],
1034
+ initialStep: e = 0,
1035
+ onClose: r
1036
+ }) => {
1037
+ const [a, m] = D(e), n = zt((h) => h.breakpoints.up(1024)), [s, p] = D(!0), c = t[a], u = {
1038
+ ...c,
1039
+ context: {
1040
+ close: () => {
1041
+ p(!1), r && r();
1042
+ },
1043
+ goToStep: (h) => {
1044
+ m(h);
1045
+ },
1046
+ currentStep: a,
1047
+ currentStepProps: c
1048
+ }
1049
+ };
1050
+ return ((h) => n ? /* @__PURE__ */ o($t, { in: s, direction: "up", mountOnEnter: !0, unmountOnExit: !0, children: h }) : /* @__PURE__ */ o(
1051
+ kt,
1052
+ {
1053
+ open: s,
1054
+ sx: {
1055
+ display: "flex",
1056
+ alignItems: "center",
1057
+ justifyContent: "center",
1058
+ outline: 0
1059
+ },
1060
+ children: /* @__PURE__ */ o(
1061
+ x,
1062
+ {
1063
+ sx: {
1064
+ display: "flex",
1065
+ alignItems: "center",
1066
+ justifyContent: "center",
1067
+ outline: 0
1068
+ },
1069
+ children: h
1070
+ }
1071
+ )
1072
+ }
1073
+ ))(/* @__PURE__ */ o(at, { ...u }));
1074
+ }, Nt = ({
1075
+ color: t = "progressUpgraded",
1076
+ checked: e = !1,
1077
+ ...r
1078
+ }) => {
1079
+ const { sx: a = [], ...m } = r;
1080
+ return /* @__PURE__ */ o(
1081
+ vt,
1082
+ {
1083
+ variant: "outlined",
1084
+ sx: [
1085
+ (n) => ({
1086
+ ...e ? {
1087
+ backgroundColor: n.palette[t].main,
1088
+ color: n.palette[t].contrastText,
1089
+ ".MuiChip-icon": {
1090
+ color: n.palette[t].contrastText
1091
+ }
1092
+ } : {
1093
+ backgroundColor: n.palette[t].light,
1094
+ color: n.palette.text.primary
1095
+ },
1096
+ [`&.${N.clickable}:hover`]: {
1097
+ backgroundColor: n.palette[t].dark,
1098
+ color: n.palette[t].contrastText
1099
+ },
1100
+ [`&.${N.clickable}:hover > .MuiChip-icon`]: {
1101
+ color: n.palette[t].contrastText
1102
+ }
1103
+ }),
1104
+ ...Array.isArray(a) ? a : [a]
1105
+ ],
1106
+ ...m
1107
+ }
1108
+ );
1109
+ }, Qt = $(St)(({ theme: t }) => ({
1110
+ zIndex: 1e3,
1111
+ "& > div": {
1112
+ position: "relative"
1113
+ },
1114
+ '&[data-popper-placement*="bottom"]': {
1115
+ "& > div": {
1116
+ marginTop: 6
1117
+ },
1118
+ "& .MuiPopper-arrow": {
1119
+ top: 0,
1120
+ left: 0,
1121
+ marginTop: "-0.9em",
1122
+ width: "3em",
1123
+ height: "1em",
1124
+ "&::after": {
1125
+ borderWidth: "0 1em 1em 1em",
1126
+ borderColor: `transparent transparent ${t.palette.common.white} transparent`,
1127
+ top: 1
1128
+ },
1129
+ "&::before": {
1130
+ borderWidth: "0 1em 1em 1em",
1131
+ borderColor: "transparent transparent rgba(0, 0, 0, 0.4) transparent",
1132
+ top: 6
1133
+ }
1134
+ }
1135
+ },
1136
+ '&[data-popper-placement*="top"]': {
1137
+ "& > div": {
1138
+ marginBottom: 6
1139
+ },
1140
+ "& .MuiPopper-arrow": {
1141
+ bottom: 0,
1142
+ left: 0,
1143
+ marginBottom: "-0.9em",
1144
+ width: "3em",
1145
+ height: "1em",
1146
+ "&::after": {
1147
+ borderWidth: "6px 6px 0 6px",
1148
+ borderColor: `${t.palette.common.white} transparent transparent transparent`,
1149
+ bottom: 14
1150
+ },
1151
+ "&::before": {
1152
+ borderWidth: "7px 7px 0 7px",
1153
+ borderColor: "rgba(0, 0, 0, 0.4) transparent transparent transparent",
1154
+ bottom: 6
1155
+ }
1156
+ }
1157
+ },
1158
+ '&[data-popper-placement*="right"]': {
1159
+ "& > div": {
1160
+ marginLeft: 6
1161
+ },
1162
+ "& .MuiPopper-arrow": {
1163
+ left: 6,
1164
+ marginLeft: "-0.9em",
1165
+ height: "3em",
1166
+ width: "1em",
1167
+ "&::after": {
1168
+ borderWidth: "6px 6px 6px 0",
1169
+ borderColor: `transparent ${t.palette.common.white} transparent transparent`,
1170
+ top: -13,
1171
+ left: 1
1172
+ },
1173
+ "&::before": {
1174
+ borderWidth: "7px 7px 7px 0",
1175
+ borderColor: "transparent rgba(0, 0, 0, 0.4) transparent transparent"
1176
+ }
1177
+ }
1178
+ },
1179
+ '&[data-popper-placement*="left"]': {
1180
+ "& > div": {
1181
+ marginRight: 6
1182
+ },
1183
+ "& .MuiPopper-arrow": {
1184
+ right: 6,
1185
+ marginRight: "-0.9em",
1186
+ height: "3em",
1187
+ width: "1em",
1188
+ "&::after": {
1189
+ borderWidth: "6px 0 6px 6px",
1190
+ borderColor: `transparent transparent transparent ${t.palette.common.white}`,
1191
+ top: -13,
1192
+ right: 1
1193
+ },
1194
+ "&::before": {
1195
+ borderWidth: "7px 0 7px 7px",
1196
+ borderColor: "transparent transparent transparent rgba(0, 0, 0, 0.4)"
1197
+ }
1198
+ }
1199
+ }
1200
+ })), Yt = $("div")(({ hasBorder: t }) => ({
1201
+ position: "absolute",
1202
+ fontSize: 7,
1203
+ width: "3em",
1204
+ height: "3em",
1205
+ zIndex: 1,
1206
+ "&::after": {
1207
+ position: "relative",
1208
+ content: '""',
1209
+ margin: "auto",
1210
+ display: "block",
1211
+ width: 0,
1212
+ height: 0,
1213
+ borderStyle: "solid",
1214
+ zIndex: 2
1215
+ },
1216
+ "&::before": {
1217
+ position: "relative",
1218
+ content: '""',
1219
+ margin: "auto",
1220
+ display: "block",
1221
+ visibility: t ? "visible" : "hidden",
1222
+ width: 0,
1223
+ height: 0,
1224
+ borderStyle: "solid"
1225
+ }
1226
+ })), G = $(E)({
1227
+ minWidth: "49px"
1228
+ }), $e = ({
1229
+ anchorEl: t,
1230
+ arrow: e,
1231
+ placement: r = "right",
1232
+ hasBorder: a = !0,
1233
+ content: m = "",
1234
+ helperText: n,
1235
+ chipLabel: s,
1236
+ TopLeftButtonProps: p,
1237
+ TopRightButtonProps: c,
1238
+ BottomRightButtonProps: i,
1239
+ ChipProps: u,
1240
+ PopperProps: d = {}
1241
+ }) => {
1242
+ const [h, l] = D(null), { title: f, ...v } = p || {}, { title: z, ...T } = c || {}, { title: W, ...L } = i || {};
1243
+ return /* @__PURE__ */ y(
1244
+ Qt,
1245
+ {
1246
+ "data-testid": "info-popover",
1247
+ open: !!t,
1248
+ anchorEl: t,
1249
+ placement: r,
1250
+ disablePortal: !0,
1251
+ modifiers: [
1252
+ {
1253
+ name: "flip",
1254
+ enabled: !0,
1255
+ options: {
1256
+ altBoundary: !0,
1257
+ rootBoundary: "document",
1258
+ padding: 8
1259
+ }
1260
+ },
1261
+ {
1262
+ name: "preventOverflow",
1263
+ enabled: !0,
1264
+ options: {
1265
+ altAxis: !1,
1266
+ altBoundary: !0,
1267
+ tether: !0,
1268
+ rootBoundary: "document",
1269
+ padding: 8
1270
+ }
1271
+ },
1272
+ {
1273
+ name: "arrow",
1274
+ enabled: e,
1275
+ options: {
1276
+ element: h,
1277
+ padding: 10
1278
+ }
1279
+ }
1280
+ ],
1281
+ sx: {
1282
+ maxWidth: 194,
1283
+ width: "100%"
1284
+ },
1285
+ ...d,
1286
+ children: [
1287
+ e ? /* @__PURE__ */ o(
1288
+ Yt,
1289
+ {
1290
+ "data-testid": "info-popover-arrow",
1291
+ ref: l,
1292
+ className: "MuiPopper-arrow",
1293
+ hasBorder: a
1294
+ }
1295
+ ) : null,
1296
+ /* @__PURE__ */ o(
1297
+ x,
1298
+ {
1299
+ "data-testid": "info-popover-paper",
1300
+ sx: (k) => ({
1301
+ padding: 2,
1302
+ backgroundColor: k.palette.background.paper,
1303
+ borderRadius: "4px",
1304
+ border: a ? "1px solid rgba(0, 0, 0, 0.4)" : null,
1305
+ overflow: "auto",
1306
+ boxShadow: k.shadows[2]
1307
+ }),
1308
+ children: /* @__PURE__ */ y(
1309
+ x,
1310
+ {
1311
+ sx: {
1312
+ maxWidth: 194
1313
+ },
1314
+ children: [
1315
+ /* @__PURE__ */ o(
1316
+ w,
1317
+ {
1318
+ variant: "body1",
1319
+ sx: {
1320
+ width: "100%",
1321
+ "&:not(:last-child)": {
1322
+ marginBottom: 1
1323
+ }
1324
+ },
1325
+ children: m
1326
+ }
1327
+ ),
1328
+ s && u && /* @__PURE__ */ y(
1329
+ x,
1330
+ {
1331
+ sx: {
1332
+ display: "flex",
1333
+ justifyContent: "flex-end",
1334
+ alignItems: "center",
1335
+ "&:not(:last-child)": {
1336
+ marginBottom: 1
1337
+ }
1338
+ },
1339
+ children: [
1340
+ /* @__PURE__ */ o(w, { variant: "body2", children: s }),
1341
+ /* @__PURE__ */ o(
1342
+ Nt,
1343
+ {
1344
+ ...u,
1345
+ sx: {
1346
+ border: 0
1347
+ }
1348
+ }
1349
+ )
1350
+ ]
1351
+ }
1352
+ ),
1353
+ n && /* @__PURE__ */ o(
1354
+ x,
1355
+ {
1356
+ sx: (k) => ({
1357
+ width: "100%",
1358
+ padding: k.spacing(1, 0),
1359
+ "&:not(:last-child)": {
1360
+ marginBottom: 1
1361
+ }
1362
+ }),
1363
+ children: n.split(`
1364
+ `).map((k, O) => /* @__PURE__ */ o(
1365
+ w,
1366
+ {
1367
+ variant: "body2",
1368
+ sx: (R) => ({
1369
+ color: R.palette.text.secondary,
1370
+ textAlign: "right"
1371
+ }),
1372
+ children: k
1373
+ },
1374
+ `helper-text-${O}`
1375
+ ))
1376
+ }
1377
+ ),
1378
+ (c || p) && /* @__PURE__ */ y(
1379
+ x,
1380
+ {
1381
+ sx: {
1382
+ display: "flex",
1383
+ justifyContent: "flex-end",
1384
+ alignItems: "center",
1385
+ "&:not(:last-child)": {
1386
+ marginBottom: 1
1387
+ }
1388
+ },
1389
+ children: [
1390
+ p && /* @__PURE__ */ o(
1391
+ x,
1392
+ {
1393
+ sx: {
1394
+ display: "flex"
1395
+ },
1396
+ children: /* @__PURE__ */ o(
1397
+ G,
1398
+ {
1399
+ "data-testid": "info-popover-top-left-button",
1400
+ variant: "contained",
1401
+ size: "medium",
1402
+ color: "primary",
1403
+ ...v,
1404
+ children: f
1405
+ }
1406
+ )
1407
+ }
1408
+ ),
1409
+ c && /* @__PURE__ */ o(
1410
+ x,
1411
+ {
1412
+ sx: {
1413
+ display: "flex",
1414
+ marginLeft: 1
1415
+ },
1416
+ children: /* @__PURE__ */ o(
1417
+ G,
1418
+ {
1419
+ "data-testid": "info-popover-top-right-button",
1420
+ variant: "contained",
1421
+ size: "medium",
1422
+ color: "primary",
1423
+ ...T,
1424
+ children: z
1425
+ }
1426
+ )
1427
+ }
1428
+ )
1429
+ ]
1430
+ }
1431
+ ),
1432
+ i && /* @__PURE__ */ o(
1433
+ x,
1434
+ {
1435
+ sx: {
1436
+ display: "flex",
1437
+ justifyContent: "flex-end",
1438
+ alignItems: "center",
1439
+ "&:not(:last-child)": {
1440
+ marginBottom: 1
1441
+ }
1442
+ },
1443
+ children: /* @__PURE__ */ o(
1444
+ G,
1445
+ {
1446
+ "data-testid": "info-popover-bottom-left-button",
1447
+ variant: "contained",
1448
+ size: "medium",
1449
+ color: "primary",
1450
+ ...L,
1451
+ children: W
1452
+ }
1453
+ )
1454
+ }
1455
+ )
1456
+ ]
1457
+ }
1458
+ )
1459
+ }
1460
+ )
1461
+ ]
1462
+ }
1463
+ );
1464
+ };
1465
+ export {
1466
+ xe as Button,
1467
+ be as ButtonGroup,
1468
+ Nt as Chip,
1469
+ $e as InfoPopover,
1470
+ fe as LoadingButton,
1471
+ Fe as Radio,
1472
+ J as Select,
1473
+ I as SelectMenuItem,
1474
+ ye as TextField,
1475
+ ge as TopicFilter,
1476
+ Ce as Tutorial,
1477
+ M as colors,
1478
+ he as theme
1479
+ };