analytica-frontend-lib 1.0.82 → 1.0.83

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 (40) hide show
  1. package/dist/Accordation/index.js +2 -2
  2. package/dist/Accordation/index.js.map +1 -1
  3. package/dist/Accordation/index.mjs +2 -2
  4. package/dist/Accordation/index.mjs.map +1 -1
  5. package/dist/AlertDialog/index.js +1 -1
  6. package/dist/AlertDialog/index.js.map +1 -1
  7. package/dist/AlertDialog/index.mjs +1 -1
  8. package/dist/AlertDialog/index.mjs.map +1 -1
  9. package/dist/Card/index.js +2 -2
  10. package/dist/Card/index.js.map +1 -1
  11. package/dist/Card/index.mjs +2 -2
  12. package/dist/Card/index.mjs.map +1 -1
  13. package/dist/Modal/index.js +1 -1
  14. package/dist/Modal/index.js.map +1 -1
  15. package/dist/Modal/index.mjs +1 -1
  16. package/dist/Modal/index.mjs.map +1 -1
  17. package/dist/Quiz/index.d.mts +29 -0
  18. package/dist/Quiz/index.d.ts +29 -0
  19. package/dist/Quiz/index.js +3662 -0
  20. package/dist/Quiz/index.js.map +1 -0
  21. package/dist/Quiz/index.mjs +3673 -0
  22. package/dist/Quiz/index.mjs.map +1 -0
  23. package/dist/Quiz/useQuizStore/index.d.mts +108 -0
  24. package/dist/Quiz/useQuizStore/index.d.ts +108 -0
  25. package/dist/Quiz/useQuizStore/index.js +274 -0
  26. package/dist/Quiz/useQuizStore/index.js.map +1 -0
  27. package/dist/Quiz/useQuizStore/index.mjs +249 -0
  28. package/dist/Quiz/useQuizStore/index.mjs.map +1 -0
  29. package/dist/index.css +53 -0
  30. package/dist/index.css.map +1 -1
  31. package/dist/index.d.mts +2 -0
  32. package/dist/index.d.ts +2 -0
  33. package/dist/index.js +659 -4
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +657 -4
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/simulated-result-QN5HCUY5.png +0 -0
  38. package/dist/styles.css +53 -0
  39. package/dist/styles.css.map +1 -1
  40. package/package.json +2 -1
@@ -0,0 +1,249 @@
1
+ // src/components/Quiz/useQuizStore.ts
2
+ import { create } from "zustand";
3
+ import { devtools } from "zustand/middleware";
4
+ var useQuizStore = create()(
5
+ devtools(
6
+ (set, get) => {
7
+ let timerInterval = null;
8
+ const startTimer = () => {
9
+ if (timerInterval) {
10
+ clearInterval(timerInterval);
11
+ }
12
+ timerInterval = setInterval(() => {
13
+ const { timeElapsed } = get();
14
+ set({ timeElapsed: timeElapsed + 1 });
15
+ }, 1e3);
16
+ };
17
+ const stopTimer = () => {
18
+ if (timerInterval) {
19
+ clearInterval(timerInterval);
20
+ timerInterval = null;
21
+ }
22
+ };
23
+ return {
24
+ // Initial State
25
+ currentQuestionIndex: 0,
26
+ selectedAnswers: {},
27
+ skippedQuestions: [],
28
+ userAnswers: [],
29
+ timeElapsed: 0,
30
+ isStarted: false,
31
+ isFinished: false,
32
+ // Setters
33
+ setBySimulado: (simulado) => set({ bySimulado: simulado }),
34
+ setByAtividade: (atividade) => set({ byAtividade: atividade }),
35
+ setByAula: (aula) => set({ byAula: aula }),
36
+ // Navigation
37
+ goToNextQuestion: () => {
38
+ const { currentQuestionIndex, getTotalQuestions } = get();
39
+ const totalQuestions = getTotalQuestions();
40
+ if (currentQuestionIndex < totalQuestions - 1) {
41
+ set({ currentQuestionIndex: currentQuestionIndex + 1 });
42
+ }
43
+ },
44
+ goToPreviousQuestion: () => {
45
+ const { currentQuestionIndex } = get();
46
+ if (currentQuestionIndex > 0) {
47
+ set({ currentQuestionIndex: currentQuestionIndex - 1 });
48
+ }
49
+ },
50
+ goToQuestion: (index) => {
51
+ const { getTotalQuestions } = get();
52
+ const totalQuestions = getTotalQuestions();
53
+ if (index >= 0 && index < totalQuestions) {
54
+ set({ currentQuestionIndex: index });
55
+ }
56
+ },
57
+ // Quiz Actions
58
+ selectAnswer: (questionId, answerId) => {
59
+ const { selectedAnswers, skippedQuestions, addUserAnswer } = get();
60
+ const newSkippedQuestions = skippedQuestions.filter(
61
+ (id) => id !== questionId
62
+ );
63
+ set({
64
+ selectedAnswers: {
65
+ ...selectedAnswers,
66
+ [questionId]: answerId
67
+ },
68
+ skippedQuestions: newSkippedQuestions
69
+ });
70
+ addUserAnswer(questionId, answerId);
71
+ },
72
+ skipQuestion: () => {
73
+ const { getCurrentQuestion, skippedQuestions, addUserAnswer } = get();
74
+ const currentQuestion = getCurrentQuestion();
75
+ if (currentQuestion) {
76
+ set({
77
+ skippedQuestions: [...skippedQuestions, currentQuestion.id]
78
+ });
79
+ addUserAnswer(currentQuestion.id);
80
+ }
81
+ },
82
+ addUserAnswer: (questionId, answerId) => {
83
+ const { userAnswers, bySimulado, byAtividade, byAula } = get();
84
+ const quiz = bySimulado || byAtividade || byAula;
85
+ const question = quiz?.questions.find((q) => q.id === questionId);
86
+ if (!question) return;
87
+ const existingAnswerIndex = userAnswers.findIndex(
88
+ (answer) => answer.id === questionId
89
+ );
90
+ if (existingAnswerIndex !== -1) {
91
+ const updatedAnswers = [...userAnswers];
92
+ updatedAnswers[existingAnswerIndex] = {
93
+ ...question,
94
+ answerKey: answerId || "",
95
+ isSkipped: !answerId
96
+ };
97
+ set({ userAnswers: updatedAnswers });
98
+ } else {
99
+ set({
100
+ userAnswers: [
101
+ ...userAnswers,
102
+ {
103
+ ...question,
104
+ answerKey: answerId || "",
105
+ isSkipped: !answerId
106
+ }
107
+ ]
108
+ });
109
+ }
110
+ },
111
+ startQuiz: () => {
112
+ set({ isStarted: true, timeElapsed: 0 });
113
+ startTimer();
114
+ },
115
+ finishQuiz: () => {
116
+ set({ isFinished: true });
117
+ stopTimer();
118
+ },
119
+ resetQuiz: () => {
120
+ stopTimer();
121
+ set({
122
+ currentQuestionIndex: 0,
123
+ selectedAnswers: {},
124
+ skippedQuestions: [],
125
+ userAnswers: [],
126
+ timeElapsed: 0,
127
+ isStarted: false,
128
+ isFinished: false
129
+ });
130
+ },
131
+ // Timer
132
+ updateTime: (time) => set({ timeElapsed: time }),
133
+ startTimer,
134
+ stopTimer,
135
+ // Getters
136
+ getCurrentQuestion: () => {
137
+ const { bySimulado, byAtividade, byAula, currentQuestionIndex } = get();
138
+ const quiz = bySimulado || byAtividade || byAula;
139
+ if (!quiz) {
140
+ return null;
141
+ }
142
+ return quiz.questions[currentQuestionIndex];
143
+ },
144
+ getTotalQuestions: () => {
145
+ const { bySimulado, byAtividade, byAula } = get();
146
+ const quiz = bySimulado || byAtividade || byAula;
147
+ return quiz?.questions?.length || 0;
148
+ },
149
+ getAnsweredQuestions: () => {
150
+ const { selectedAnswers } = get();
151
+ return Object.keys(selectedAnswers).length;
152
+ },
153
+ getUnansweredQuestions: () => {
154
+ const {
155
+ bySimulado,
156
+ byAtividade,
157
+ byAula,
158
+ selectedAnswers,
159
+ skippedQuestions
160
+ } = get();
161
+ const quiz = bySimulado || byAtividade || byAula;
162
+ if (!quiz) return [];
163
+ const unansweredQuestions = [];
164
+ quiz.questions.forEach((question, index) => {
165
+ const isAnswered = question.id in selectedAnswers;
166
+ const isSkipped = skippedQuestions.includes(question.id);
167
+ if (!isAnswered && !isSkipped) {
168
+ unansweredQuestions.push(index + 1);
169
+ }
170
+ });
171
+ return unansweredQuestions;
172
+ },
173
+ getSkippedQuestions: () => {
174
+ const { skippedQuestions } = get();
175
+ return skippedQuestions.length;
176
+ },
177
+ getProgress: () => {
178
+ const { getTotalQuestions, getAnsweredQuestions } = get();
179
+ const total = getTotalQuestions();
180
+ const answered = getAnsweredQuestions();
181
+ return total > 0 ? answered / total * 100 : 0;
182
+ },
183
+ isQuestionAnswered: (questionId) => {
184
+ const { selectedAnswers } = get();
185
+ return questionId in selectedAnswers;
186
+ },
187
+ isQuestionSkipped: (questionId) => {
188
+ const { skippedQuestions } = get();
189
+ return skippedQuestions.includes(questionId);
190
+ },
191
+ getCurrentAnswer: () => {
192
+ const { getCurrentQuestion, selectedAnswers } = get();
193
+ const currentQuestion = getCurrentQuestion();
194
+ return selectedAnswers[currentQuestion?.id || ""];
195
+ },
196
+ getQuizTitle: () => {
197
+ const { bySimulado, byAtividade, byAula } = get();
198
+ const quiz = bySimulado || byAtividade || byAula;
199
+ return quiz?.title || "Quiz";
200
+ },
201
+ formatTime: (seconds) => {
202
+ const minutes = Math.floor(seconds / 60);
203
+ const remainingSeconds = seconds % 60;
204
+ return `${minutes.toString().padStart(2, "0")}:${remainingSeconds.toString().padStart(2, "0")}`;
205
+ },
206
+ getUserAnswers: () => {
207
+ const { userAnswers } = get();
208
+ return userAnswers;
209
+ },
210
+ getUnansweredQuestionsFromUserAnswers: () => {
211
+ const { bySimulado, byAtividade, byAula, userAnswers } = get();
212
+ const quiz = bySimulado || byAtividade || byAula;
213
+ if (!quiz) return [];
214
+ const unansweredQuestions = [];
215
+ quiz.questions.forEach((question, index) => {
216
+ const userAnswer = userAnswers.find(
217
+ (answer) => answer.id === question.id
218
+ );
219
+ if (!userAnswer || userAnswer.isSkipped) {
220
+ unansweredQuestions.push(index + 1);
221
+ }
222
+ });
223
+ return unansweredQuestions;
224
+ },
225
+ getQuestionsGroupedBySubject: () => {
226
+ const { bySimulado, byAtividade, byAula } = get();
227
+ const quiz = bySimulado || byAtividade || byAula;
228
+ if (!quiz) return {};
229
+ const groupedQuestions = {};
230
+ quiz.questions.forEach((question) => {
231
+ const subjectId = question.knowledgeMatrix?.[0]?.subjectId || "Sem mat\xE9ria";
232
+ if (!groupedQuestions[subjectId]) {
233
+ groupedQuestions[subjectId] = [];
234
+ }
235
+ groupedQuestions[subjectId].push(question);
236
+ });
237
+ return groupedQuestions;
238
+ }
239
+ };
240
+ },
241
+ {
242
+ name: "quiz-store"
243
+ }
244
+ )
245
+ );
246
+ export {
247
+ useQuizStore
248
+ };
249
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Quiz/useQuizStore.ts"],"sourcesContent":["import { create } from 'zustand';\nimport { devtools } from 'zustand/middleware';\n\ninterface Question {\n id: string;\n questionText: string;\n correctOptionId: string;\n description: string;\n type: 'ALTERNATIVA' | 'DISSERTATIVA' | 'MULTIPLA_CHOICE';\n status: 'APROVADO' | 'REPROVADO';\n difficulty: 'FACIL' | 'MEDIO' | 'DIFICIL';\n examBoard: string | null;\n examYear: string | null;\n answerKey: string | null;\n createdAt: string;\n updatedAt: string;\n knowledgeMatrix: {\n areaKnowledgeId: string;\n subjectId: string;\n topicId: string;\n subtopicId: string;\n contentId: string;\n }[];\n options: {\n id: string;\n option: string;\n }[];\n createdBy: string;\n}\n\ninterface Simulado {\n id: string;\n title: string;\n questions: Question[];\n}\n\ninterface Atividade {\n id: string;\n title: string;\n questions: Question[];\n}\n\ninterface Aula {\n id: string;\n title: string;\n questions: Question[];\n}\n\ninterface UserAnswer extends Question {\n isSkipped: boolean;\n}\n\ninterface QuizState {\n // Data\n bySimulado?: Simulado;\n byAtividade?: Atividade;\n byAula?: Aula;\n\n // UI State\n currentQuestionIndex: number;\n selectedAnswers: Record<string, string>;\n skippedQuestions: string[];\n userAnswers: UserAnswer[];\n timeElapsed: number;\n isStarted: boolean;\n isFinished: boolean;\n\n // Actions\n setBySimulado: (simulado: Simulado) => void;\n setByAtividade: (atividade: Atividade) => void;\n setByAula: (aula: Aula) => void;\n\n // Quiz Navigation\n goToNextQuestion: () => void;\n goToPreviousQuestion: () => void;\n goToQuestion: (index: number) => void;\n\n // Quiz Actions\n selectAnswer: (questionId: string, answerId: string) => void;\n skipQuestion: () => void;\n addUserAnswer: (questionId: string, answerId?: string) => void;\n startQuiz: () => void;\n finishQuiz: () => void;\n resetQuiz: () => void;\n\n // Timer\n updateTime: (time: number) => void;\n startTimer: () => void;\n stopTimer: () => void;\n\n // Getters\n getCurrentQuestion: () => Question | null;\n getTotalQuestions: () => number;\n getAnsweredQuestions: () => number;\n getUnansweredQuestions: () => number[];\n getSkippedQuestions: () => number;\n getProgress: () => number;\n isQuestionAnswered: (questionId: string) => boolean;\n isQuestionSkipped: (questionId: string) => boolean;\n getCurrentAnswer: () => string | undefined;\n getQuizTitle: () => string;\n formatTime: (seconds: number) => string;\n getUserAnswers: () => UserAnswer[];\n getUnansweredQuestionsFromUserAnswers: () => number[];\n getQuestionsGroupedBySubject: () => { [key: string]: Question[] };\n}\n\nexport const useQuizStore = create<QuizState>()(\n devtools(\n (set, get) => {\n let timerInterval: ReturnType<typeof setInterval> | null = null;\n\n const startTimer = () => {\n if (timerInterval) {\n clearInterval(timerInterval);\n }\n\n timerInterval = setInterval(() => {\n const { timeElapsed } = get();\n set({ timeElapsed: timeElapsed + 1 });\n }, 1000);\n };\n\n const stopTimer = () => {\n if (timerInterval) {\n clearInterval(timerInterval);\n timerInterval = null;\n }\n };\n\n return {\n // Initial State\n currentQuestionIndex: 0,\n selectedAnswers: {},\n skippedQuestions: [],\n userAnswers: [],\n timeElapsed: 0,\n isStarted: false,\n isFinished: false,\n\n // Setters\n setBySimulado: (simulado) => set({ bySimulado: simulado }),\n setByAtividade: (atividade) => set({ byAtividade: atividade }),\n setByAula: (aula) => set({ byAula: aula }),\n\n // Navigation\n goToNextQuestion: () => {\n const { currentQuestionIndex, getTotalQuestions } = get();\n const totalQuestions = getTotalQuestions();\n\n if (currentQuestionIndex < totalQuestions - 1) {\n set({ currentQuestionIndex: currentQuestionIndex + 1 });\n }\n },\n\n goToPreviousQuestion: () => {\n const { currentQuestionIndex } = get();\n\n if (currentQuestionIndex > 0) {\n set({ currentQuestionIndex: currentQuestionIndex - 1 });\n }\n },\n\n goToQuestion: (index) => {\n const { getTotalQuestions } = get();\n const totalQuestions = getTotalQuestions();\n\n if (index >= 0 && index < totalQuestions) {\n set({ currentQuestionIndex: index });\n }\n },\n\n // Quiz Actions\n selectAnswer: (questionId, answerId) => {\n const { selectedAnswers, skippedQuestions, addUserAnswer } = get();\n // Remove from skipped questions if it was skipped\n const newSkippedQuestions = skippedQuestions.filter(\n (id) => id !== questionId\n );\n set({\n selectedAnswers: {\n ...selectedAnswers,\n [questionId]: answerId,\n },\n skippedQuestions: newSkippedQuestions,\n });\n // Add to user answers\n addUserAnswer(questionId, answerId);\n },\n\n skipQuestion: () => {\n const { getCurrentQuestion, skippedQuestions, addUserAnswer } = get();\n const currentQuestion = getCurrentQuestion();\n\n if (currentQuestion) {\n set({\n skippedQuestions: [...skippedQuestions, currentQuestion.id],\n });\n // Add to user answers as skipped\n addUserAnswer(currentQuestion.id);\n }\n },\n\n addUserAnswer: (questionId, answerId) => {\n const { userAnswers, bySimulado, byAtividade, byAula } = get();\n const quiz = bySimulado || byAtividade || byAula;\n const question = quiz?.questions.find((q) => q.id === questionId);\n\n if (!question) return;\n\n const existingAnswerIndex = userAnswers.findIndex(\n (answer) => answer.id === questionId\n );\n\n if (existingAnswerIndex !== -1) {\n // Update existing answer\n const updatedAnswers = [...userAnswers];\n updatedAnswers[existingAnswerIndex] = {\n ...question,\n answerKey: answerId || '',\n isSkipped: !answerId,\n };\n set({ userAnswers: updatedAnswers });\n } else {\n // Add new answer\n set({\n userAnswers: [\n ...userAnswers,\n {\n ...question,\n answerKey: answerId || '',\n isSkipped: !answerId,\n },\n ],\n });\n }\n },\n\n startQuiz: () => {\n set({ isStarted: true, timeElapsed: 0 });\n startTimer();\n },\n\n finishQuiz: () => {\n set({ isFinished: true });\n stopTimer();\n },\n\n resetQuiz: () => {\n stopTimer();\n set({\n currentQuestionIndex: 0,\n selectedAnswers: {},\n skippedQuestions: [],\n userAnswers: [],\n timeElapsed: 0,\n isStarted: false,\n isFinished: false,\n });\n },\n\n // Timer\n updateTime: (time) => set({ timeElapsed: time }),\n startTimer,\n stopTimer,\n\n // Getters\n getCurrentQuestion: () => {\n const { bySimulado, byAtividade, byAula, currentQuestionIndex } =\n get();\n const quiz = bySimulado || byAtividade || byAula;\n\n if (!quiz) {\n return null;\n }\n\n return quiz.questions[currentQuestionIndex];\n },\n\n getTotalQuestions: () => {\n const { bySimulado, byAtividade, byAula } = get();\n const quiz = bySimulado || byAtividade || byAula;\n\n return quiz?.questions?.length || 0;\n },\n\n getAnsweredQuestions: () => {\n const { selectedAnswers } = get();\n return Object.keys(selectedAnswers).length;\n },\n\n getUnansweredQuestions: () => {\n const {\n bySimulado,\n byAtividade,\n byAula,\n selectedAnswers,\n skippedQuestions,\n } = get();\n const quiz = bySimulado || byAtividade || byAula;\n if (!quiz) return [];\n\n const unansweredQuestions: number[] = [];\n\n quiz.questions.forEach((question, index) => {\n const isAnswered = question.id in selectedAnswers;\n const isSkipped = skippedQuestions.includes(question.id);\n\n if (!isAnswered && !isSkipped) {\n unansweredQuestions.push(index + 1); // index + 1 para mostrar número da questão\n }\n });\n return unansweredQuestions;\n },\n\n getSkippedQuestions: () => {\n const { skippedQuestions } = get();\n return skippedQuestions.length;\n },\n\n getProgress: () => {\n const { getTotalQuestions, getAnsweredQuestions } = get();\n const total = getTotalQuestions();\n const answered = getAnsweredQuestions();\n\n return total > 0 ? (answered / total) * 100 : 0;\n },\n\n isQuestionAnswered: (questionId) => {\n const { selectedAnswers } = get();\n return questionId in selectedAnswers;\n },\n\n isQuestionSkipped: (questionId) => {\n const { skippedQuestions } = get();\n return skippedQuestions.includes(questionId);\n },\n\n getCurrentAnswer: () => {\n const { getCurrentQuestion, selectedAnswers } = get();\n const currentQuestion = getCurrentQuestion();\n\n return selectedAnswers[currentQuestion?.id || ''];\n },\n\n getQuizTitle: () => {\n const { bySimulado, byAtividade, byAula } = get();\n const quiz = bySimulado || byAtividade || byAula;\n\n return quiz?.title || 'Quiz';\n },\n\n formatTime: (seconds: number) => {\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = seconds % 60;\n return `${minutes.toString().padStart(2, '0')}:${remainingSeconds.toString().padStart(2, '0')}`;\n },\n\n getUserAnswers: () => {\n const { userAnswers } = get();\n return userAnswers;\n },\n\n getUnansweredQuestionsFromUserAnswers: () => {\n const { bySimulado, byAtividade, byAula, userAnswers } = get();\n const quiz = bySimulado || byAtividade || byAula;\n if (!quiz) return [];\n\n const unansweredQuestions: number[] = [];\n\n quiz.questions.forEach((question, index) => {\n const userAnswer = userAnswers.find(\n (answer) => answer.id === question.id\n );\n\n // Se não há resposta do usuário OU se a questão foi pulada (isSkipped = true)\n if (!userAnswer || userAnswer.isSkipped) {\n unansweredQuestions.push(index + 1); // index + 1 para mostrar número da questão\n }\n });\n\n return unansweredQuestions;\n },\n\n getQuestionsGroupedBySubject: () => {\n const { bySimulado, byAtividade, byAula } = get();\n const quiz = bySimulado || byAtividade || byAula;\n if (!quiz) return {};\n\n const groupedQuestions: { [key: string]: Question[] } = {};\n\n quiz.questions.forEach((question) => {\n const subjectId =\n question.knowledgeMatrix?.[0]?.subjectId || 'Sem matéria';\n\n if (!groupedQuestions[subjectId]) {\n groupedQuestions[subjectId] = [];\n }\n\n groupedQuestions[subjectId].push(question);\n });\n\n return groupedQuestions;\n },\n };\n },\n {\n name: 'quiz-store',\n }\n )\n);\n"],"mappings":"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","names":[]}
package/dist/index.css CHANGED
@@ -526,9 +526,15 @@
526
526
  .right-\[10px\] {
527
527
  right: 10px;
528
528
  }
529
+ .bottom-0 {
530
+ bottom: calc(var(--spacing) * 0);
531
+ }
529
532
  .bottom-4 {
530
533
  bottom: calc(var(--spacing) * 4);
531
534
  }
535
+ .bottom-15 {
536
+ bottom: calc(var(--spacing) * 15);
537
+ }
532
538
  .bottom-full {
533
539
  bottom: 100%;
534
540
  }
@@ -652,6 +658,9 @@
652
658
  .mb-8 {
653
659
  margin-bottom: calc(var(--spacing) * 8);
654
660
  }
661
+ .mb-auto {
662
+ margin-bottom: auto;
663
+ }
655
664
  .ml-2 {
656
665
  margin-left: calc(var(--spacing) * 2);
657
666
  }
@@ -810,6 +819,9 @@
810
819
  .h-\[152px\] {
811
820
  height: 152px;
812
821
  }
822
+ .h-\[calc\(100vh-180px\)\] {
823
+ height: calc(100vh - 180px);
824
+ }
813
825
  .h-auto {
814
826
  height: auto;
815
827
  }
@@ -945,6 +957,9 @@
945
957
  .w-\[200px\] {
946
958
  width: 200px;
947
959
  }
960
+ .w-\[282px\] {
961
+ width: 282px;
962
+ }
948
963
  .w-\[320px\] {
949
964
  width: 320px;
950
965
  }
@@ -994,6 +1009,9 @@
994
1009
  .max-w-\[262px\] {
995
1010
  max-width: 262px;
996
1011
  }
1012
+ .max-w-\[266px\] {
1013
+ max-width: 266px;
1014
+ }
997
1015
  .max-w-\[324px\] {
998
1016
  max-width: 324px;
999
1017
  }
@@ -2405,6 +2423,10 @@
2405
2423
  .stroke-success-200 {
2406
2424
  stroke: var(--color-success-200);
2407
2425
  }
2426
+ .object-cover {
2427
+ -o-object-fit: cover;
2428
+ object-fit: cover;
2429
+ }
2408
2430
  .p-0 {
2409
2431
  padding: calc(var(--spacing) * 0);
2410
2432
  }
@@ -2513,6 +2535,12 @@
2513
2535
  .pb-9\.5 {
2514
2536
  padding-bottom: calc(var(--spacing) * 9.5);
2515
2537
  }
2538
+ .pb-15 {
2539
+ padding-bottom: calc(var(--spacing) * 15);
2540
+ }
2541
+ .pb-\[80px\] {
2542
+ padding-bottom: 80px;
2543
+ }
2516
2544
  .pl-8 {
2517
2545
  padding-left: calc(var(--spacing) * 8);
2518
2546
  }
@@ -3415,6 +3443,21 @@
3415
3443
  border-radius: var(--radius-xl);
3416
3444
  }
3417
3445
  }
3446
+ .not-lg\:h-\[calc\(100vh-200px\)\] {
3447
+ @media not (width >= 64rem) {
3448
+ height: calc(100vh - 200px);
3449
+ }
3450
+ }
3451
+ .not-lg\:max-w-\[calc\(100vw-32px\)\] {
3452
+ @media not (width >= 64rem) {
3453
+ max-width: calc(100vw - 32px);
3454
+ }
3455
+ }
3456
+ .not-lg\:px-6 {
3457
+ @media not (width >= 64rem) {
3458
+ padding-inline: calc(var(--spacing) * 6);
3459
+ }
3460
+ }
3418
3461
  .group-hover\:text-primary-950 {
3419
3462
  &:is(:where(.group):hover *) {
3420
3463
  @media (hover: hover) {
@@ -7951,6 +7994,11 @@
7951
7994
  height: calc(var(--spacing) * 6);
7952
7995
  }
7953
7996
  }
7997
+ .lg\:max-h-\[687px\] {
7998
+ @media (width >= 64rem) {
7999
+ max-height: 687px;
8000
+ }
8001
+ }
7954
8002
  .lg\:w-3\.5 {
7955
8003
  @media (width >= 64rem) {
7956
8004
  width: calc(var(--spacing) * 3.5);
@@ -7961,6 +8009,11 @@
7961
8009
  width: calc(var(--spacing) * 6);
7962
8010
  }
7963
8011
  }
8012
+ .lg\:max-w-\[1000px\] {
8013
+ @media (width >= 64rem) {
8014
+ max-width: 1000px;
8015
+ }
8016
+ }
7964
8017
  .lg\:max-w-none {
7965
8018
  @media (width >= 64rem) {
7966
8019
  max-width: none;