analytica-frontend-lib 1.0.45 → 1.0.47

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/index.js CHANGED
@@ -24,6 +24,13 @@ __export(src_exports, {
24
24
  Badge: () => Badge_default,
25
25
  Button: () => Button_default,
26
26
  Calendar: () => Calendar_default,
27
+ CardActivesResults: () => CardActivesResults,
28
+ CardPerformance: () => CardPerformance,
29
+ CardProgress: () => CardProgress,
30
+ CardQuestions: () => CardQuestions,
31
+ CardResults: () => CardResults,
32
+ CardStatus: () => CardStatus,
33
+ CardTopic: () => CardTopic,
27
34
  CheckBox: () => CheckBox_default,
28
35
  Chips: () => Chips_default,
29
36
  Divider: () => Divider_default,
@@ -54,6 +61,7 @@ __export(src_exports, {
54
61
  SelectTrigger: () => SelectTrigger,
55
62
  SelectValue: () => SelectValue,
56
63
  SelectionButton: () => SelectionButton_default,
64
+ Stepper: () => Stepper_default,
57
65
  Table: () => Table_default,
58
66
  Text: () => Text_default,
59
67
  TextArea: () => TextArea_default,
@@ -2089,9 +2097,308 @@ var ProgressCircle = ({
2089
2097
  };
2090
2098
  var ProgressCircle_default = ProgressCircle;
2091
2099
 
2100
+ // src/components/Stepper/Stepper.tsx
2101
+ var import_phosphor_react7 = require("phosphor-react");
2102
+ var import_jsx_runtime20 = require("react/jsx-runtime");
2103
+ var SIZE_CLASSES9 = {
2104
+ small: {
2105
+ container: "gap-2",
2106
+ // 8px gap as specified in CSS
2107
+ stepWidth: "w-[58px]",
2108
+ // exact 58px from CSS
2109
+ stepHeight: "h-[38px]",
2110
+ // exact 38px from CSS
2111
+ indicator: "w-5 h-5",
2112
+ // 20px as specified
2113
+ progressBar: "h-0.5",
2114
+ // 2px as specified
2115
+ indicatorTextSize: "2xs",
2116
+ // 10px as specified
2117
+ labelTextSize: "xs",
2118
+ // 12px as specified
2119
+ iconSize: "w-3 h-3"
2120
+ // 12px
2121
+ },
2122
+ medium: {
2123
+ container: "gap-3",
2124
+ // 12px (8px + 4px progression)
2125
+ stepWidth: "w-[110px]",
2126
+ // 110px (increased from 90px to fit "Endereço Residencial")
2127
+ stepHeight: "h-[48px]",
2128
+ // 48px (increased from 46px for better proportion)
2129
+ indicator: "w-6 h-6",
2130
+ // 24px (20px + 4px progression)
2131
+ progressBar: "h-0.5",
2132
+ // 2px maintained for consistency
2133
+ indicatorTextSize: "2xs",
2134
+ // 10px maintained for readability
2135
+ labelTextSize: "xs",
2136
+ // 12px maintained
2137
+ iconSize: "w-3.5 h-3.5"
2138
+ // 14px
2139
+ },
2140
+ large: {
2141
+ container: "gap-4",
2142
+ // 16px (12px + 4px progression)
2143
+ stepWidth: "w-[160px]",
2144
+ // 160px (increased from 140px to fit "Endereço Residencial")
2145
+ stepHeight: "h-[58px]",
2146
+ // 58px (increased from 54px for better proportion)
2147
+ indicator: "w-7 h-7",
2148
+ // 28px (24px + 4px progression)
2149
+ progressBar: "h-1",
2150
+ // 4px (increased for better visibility)
2151
+ indicatorTextSize: "xs",
2152
+ // 12px (increased for larger size)
2153
+ labelTextSize: "sm",
2154
+ // 14px (increased for larger size)
2155
+ iconSize: "w-4 h-4"
2156
+ // 16px
2157
+ },
2158
+ extraLarge: {
2159
+ container: "gap-5",
2160
+ // 20px (16px + 4px progression)
2161
+ stepWidth: "w-[200px]",
2162
+ // 200px (increased from 180px to ensure "Endereço Residencial" fits)
2163
+ stepHeight: "h-[68px]",
2164
+ // 68px (increased from 62px for better proportion)
2165
+ indicator: "w-8 h-8",
2166
+ // 32px (28px + 4px progression)
2167
+ progressBar: "h-1",
2168
+ // 4px maintained
2169
+ indicatorTextSize: "xs",
2170
+ // 12px maintained for readability
2171
+ labelTextSize: "sm",
2172
+ // 14px maintained
2173
+ iconSize: "w-[18px] h-[18px]"
2174
+ // 18px
2175
+ }
2176
+ };
2177
+ var STATE_CLASSES6 = {
2178
+ pending: {
2179
+ progressBar: "bg-text-400",
2180
+ // #A3A3A3
2181
+ indicator: "bg-text-400",
2182
+ // #A3A3A3
2183
+ indicatorText: "text-white",
2184
+ // Branco para contraste com background cinza
2185
+ label: "text-text-400"
2186
+ // #A3A3A3
2187
+ },
2188
+ current: {
2189
+ progressBar: "bg-primary-800",
2190
+ // #1C61B2 usando classe Tailwind padrão
2191
+ indicator: "bg-primary-800",
2192
+ // #1C61B2 usando classe Tailwind padrão
2193
+ indicatorText: "text-white",
2194
+ // Branco usando classe Tailwind padrão
2195
+ label: "text-primary-800"
2196
+ // #1C61B2 usando classe Tailwind padrão
2197
+ },
2198
+ completed: {
2199
+ progressBar: "bg-primary-400",
2200
+ // #48A0E8 para barra quando checked (completed)
2201
+ indicator: "bg-primary-400",
2202
+ // #48A0E8 para corresponder à barra de progresso
2203
+ indicatorText: "text-white",
2204
+ // Branco usando classe Tailwind padrão
2205
+ label: "text-primary-400"
2206
+ // #48A0E8 para corresponder à barra de progresso
2207
+ }
2208
+ };
2209
+ var Step = ({
2210
+ step,
2211
+ index,
2212
+ size: _size,
2213
+ sizeClasses,
2214
+ stateClasses,
2215
+ isLast: _isLast,
2216
+ className = ""
2217
+ }) => {
2218
+ const stepNumber = index + 1;
2219
+ const isCompleted = step.state === "completed";
2220
+ const getAriaLabel = () => {
2221
+ let suffix = "";
2222
+ if (step.state === "completed") {
2223
+ suffix = " (conclu\xEDdo)";
2224
+ } else if (step.state === "current") {
2225
+ suffix = " (atual)";
2226
+ }
2227
+ return `${step.label}${suffix}`;
2228
+ };
2229
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2230
+ "div",
2231
+ {
2232
+ className: `
2233
+ flex flex-col justify-center items-center pb-2 gap-2
2234
+ ${sizeClasses.stepWidth} ${sizeClasses.stepHeight}
2235
+ flex-none flex-grow
2236
+ ${className}
2237
+ sm:max-w-[100px] md:max-w-[120px] lg:max-w-none xl:max-w-none
2238
+ sm:min-h-[40px] md:min-h-[45px] lg:min-h-none
2239
+ overflow-visible
2240
+ `,
2241
+ children: [
2242
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2243
+ "div",
2244
+ {
2245
+ className: `
2246
+ w-full ${sizeClasses.progressBar} ${stateClasses.progressBar}
2247
+ rounded-sm flex-none
2248
+ `
2249
+ }
2250
+ ),
2251
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2252
+ "div",
2253
+ {
2254
+ className: `
2255
+ flex flex-col sm:flex-row items-center
2256
+ gap-1 sm:gap-2 w-full sm:w-auto
2257
+ h-auto sm:h-5 flex-none
2258
+ overflow-visible
2259
+ `,
2260
+ children: [
2261
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2262
+ "div",
2263
+ {
2264
+ className: `
2265
+ ${sizeClasses.indicator} ${stateClasses.indicator}
2266
+ rounded-full flex items-center justify-center relative
2267
+ flex-none transition-all duration-300 ease-out
2268
+ w-4 h-4 sm:w-5 sm:h-5 md:w-5 md:h-5 lg:w-6 lg:h-6
2269
+ `,
2270
+ "aria-label": getAriaLabel(),
2271
+ children: isCompleted ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2272
+ import_phosphor_react7.Check,
2273
+ {
2274
+ weight: "bold",
2275
+ className: `
2276
+ ${stateClasses.indicatorText}
2277
+ w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3 md:h-3 lg:w-3.5 lg:h-3.5
2278
+ `
2279
+ }
2280
+ ) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2281
+ Text_default,
2282
+ {
2283
+ size: sizeClasses.indicatorTextSize,
2284
+ weight: "medium",
2285
+ color: "",
2286
+ className: `${stateClasses.indicatorText} leading-none text-2xs sm:text-xs`,
2287
+ children: stepNumber
2288
+ }
2289
+ )
2290
+ }
2291
+ ),
2292
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2293
+ Text_default,
2294
+ {
2295
+ size: sizeClasses.labelTextSize,
2296
+ weight: "medium",
2297
+ color: "",
2298
+ className: `
2299
+ ${stateClasses.label} leading-tight flex-none
2300
+ text-center sm:text-left break-words
2301
+ px-1 sm:px-0 max-w-full
2302
+ text-2xs sm:text-xs md:text-xs lg:text-sm
2303
+ whitespace-normal
2304
+ `,
2305
+ children: step.label
2306
+ }
2307
+ )
2308
+ ]
2309
+ }
2310
+ )
2311
+ ]
2312
+ }
2313
+ );
2314
+ };
2315
+ var calculateStepStates = (steps, currentStep) => {
2316
+ return steps.map((step, index) => {
2317
+ let stepState;
2318
+ if (index < currentStep) {
2319
+ stepState = "completed";
2320
+ } else if (index === currentStep) {
2321
+ stepState = "current";
2322
+ } else {
2323
+ stepState = "pending";
2324
+ }
2325
+ return {
2326
+ ...step,
2327
+ state: stepState
2328
+ };
2329
+ });
2330
+ };
2331
+ var getProgressText = (currentStep, totalSteps, customText) => {
2332
+ if (customText) return customText;
2333
+ return `Etapa ${currentStep + 1} de ${totalSteps}`;
2334
+ };
2335
+ var Stepper = ({
2336
+ steps: initialSteps,
2337
+ size = "medium",
2338
+ currentStep,
2339
+ className = "",
2340
+ stepClassName = "",
2341
+ showProgress = false,
2342
+ progressText,
2343
+ responsive = true
2344
+ }) => {
2345
+ const sizeClasses = SIZE_CLASSES9[size];
2346
+ const steps = currentStep !== void 0 ? calculateStepStates(initialSteps, currentStep) : initialSteps;
2347
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2348
+ "fieldset",
2349
+ {
2350
+ className: `flex flex-col gap-4 sm:gap-5 md:gap-6 ${className} border-0 p-0 m-0`,
2351
+ children: [
2352
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("legend", { className: "absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children: "Stepper de formul\xE1rio" }),
2353
+ showProgress && currentStep !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2354
+ Text_default,
2355
+ {
2356
+ size: "sm",
2357
+ weight: "medium",
2358
+ className: "text-text-600 text-center sm:text-left text-xs sm:text-sm",
2359
+ children: getProgressText(currentStep, steps.length, progressText)
2360
+ }
2361
+ ),
2362
+ /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2363
+ "div",
2364
+ {
2365
+ className: `
2366
+ flex items-center
2367
+ ${sizeClasses.container}
2368
+ ${responsive ? "flex-row overflow-x-auto overflow-y-hidden scrollbar-hide justify-start sm:justify-center md:justify-center lg:justify-center" : "flex-row justify-center"}
2369
+ px-2 sm:px-4 md:px-6 lg:px-0
2370
+ max-w-full min-w-0
2371
+ gap-2 sm:gap-3 md:gap-4 lg:gap-4
2372
+ `,
2373
+ role: "tablist",
2374
+ "aria-label": "Progress steps",
2375
+ children: steps.map((step, index) => {
2376
+ const stateClasses = STATE_CLASSES6[step.state];
2377
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2378
+ Step,
2379
+ {
2380
+ step,
2381
+ index,
2382
+ size,
2383
+ sizeClasses,
2384
+ stateClasses,
2385
+ isLast: index === steps.length - 1,
2386
+ className: stepClassName
2387
+ },
2388
+ step.id
2389
+ );
2390
+ })
2391
+ }
2392
+ )
2393
+ ]
2394
+ }
2395
+ );
2396
+ };
2397
+ var Stepper_default = Stepper;
2398
+
2092
2399
  // src/components/Calendar/Calendar.tsx
2093
2400
  var import_react9 = require("react");
2094
- var import_jsx_runtime20 = require("react/jsx-runtime");
2401
+ var import_jsx_runtime21 = require("react/jsx-runtime");
2095
2402
  var WEEK_DAYS = ["SEG", "TER", "QUA", "QUI", "SEX", "S\xC1B", "DOM"];
2096
2403
  var WEEK_DAYS_SHORT = ["S", "T", "Q", "Q", "S", "S", "D"];
2097
2404
  var MONTH_NAMES = [
@@ -2114,15 +2421,15 @@ var MonthYearPicker = ({
2114
2421
  currentDate,
2115
2422
  onYearChange,
2116
2423
  onMonthChange
2117
- }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2424
+ }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2118
2425
  "div",
2119
2426
  {
2120
2427
  ref: monthPickerRef,
2121
2428
  className: "absolute top-full left-0 z-50 mt-1 bg-white rounded-lg shadow-lg border border-border-200 p-4 min-w-[280px]",
2122
2429
  children: [
2123
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "mb-4", children: [
2124
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar Ano" }),
2125
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "grid grid-cols-4 gap-1 max-h-32 overflow-y-auto", children: availableYears.map((year) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2430
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "mb-4", children: [
2431
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar Ano" }),
2432
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-4 gap-1 max-h-32 overflow-y-auto", children: availableYears.map((year) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2126
2433
  "button",
2127
2434
  {
2128
2435
  onClick: () => onYearChange(year),
@@ -2135,9 +2442,9 @@ var MonthYearPicker = ({
2135
2442
  year
2136
2443
  )) })
2137
2444
  ] }),
2138
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { children: [
2139
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar M\xEAs" }),
2140
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "grid grid-cols-3 gap-1", children: MONTH_NAMES.map((month, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2445
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { children: [
2446
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar M\xEAs" }),
2447
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-3 gap-1", children: MONTH_NAMES.map((month, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2141
2448
  "button",
2142
2449
  {
2143
2450
  onClick: () => onMonthChange(index, currentDate.getFullYear()),
@@ -2269,28 +2576,28 @@ var Calendar = ({
2269
2576
  onDateSelect?.(day.date);
2270
2577
  };
2271
2578
  if (variant === "navigation") {
2272
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: `bg-background rounded-xl p-3 ${className}`, children: [
2273
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center justify-between mb-4 px-6", children: [
2274
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "relative", ref: monthPickerContainerRef, children: [
2275
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2579
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: `bg-background rounded-xl p-3 ${className}`, children: [
2580
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center justify-between mb-4 px-6", children: [
2581
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "relative", ref: monthPickerContainerRef, children: [
2582
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2276
2583
  "button",
2277
2584
  {
2278
2585
  onClick: toggleMonthPicker,
2279
2586
  className: "flex items-center gap-1 hover:bg-background-100 rounded px-2 py-1 transition-colors",
2280
2587
  children: [
2281
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("span", { className: "text-sm font-medium text-text-600", children: [
2588
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("span", { className: "text-sm font-medium text-text-600", children: [
2282
2589
  MONTH_NAMES[currentDate.getMonth()],
2283
2590
  " ",
2284
2591
  currentDate.getFullYear()
2285
2592
  ] }),
2286
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2593
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2287
2594
  "svg",
2288
2595
  {
2289
2596
  className: `w-4 h-4 text-primary-950 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
2290
2597
  fill: "none",
2291
2598
  stroke: "currentColor",
2292
2599
  viewBox: "0 0 24 24",
2293
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2600
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2294
2601
  "path",
2295
2602
  {
2296
2603
  strokeLinecap: "round",
@@ -2304,7 +2611,7 @@ var Calendar = ({
2304
2611
  ]
2305
2612
  }
2306
2613
  ),
2307
- isMonthPickerOpen && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2614
+ isMonthPickerOpen && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2308
2615
  MonthYearPicker,
2309
2616
  {
2310
2617
  monthPickerRef,
@@ -2315,21 +2622,21 @@ var Calendar = ({
2315
2622
  }
2316
2623
  )
2317
2624
  ] }),
2318
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center gap-10", children: [
2319
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2625
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-10", children: [
2626
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2320
2627
  "button",
2321
2628
  {
2322
2629
  onClick: goToPreviousMonth,
2323
2630
  className: "p-1 rounded hover:bg-background-100 transition-colors",
2324
2631
  "aria-label": "M\xEAs anterior",
2325
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2632
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2326
2633
  "svg",
2327
2634
  {
2328
2635
  className: "w-6 h-6 text-primary-950",
2329
2636
  fill: "none",
2330
2637
  stroke: "currentColor",
2331
2638
  viewBox: "0 0 24 24",
2332
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2639
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2333
2640
  "path",
2334
2641
  {
2335
2642
  strokeLinecap: "round",
@@ -2342,20 +2649,20 @@ var Calendar = ({
2342
2649
  )
2343
2650
  }
2344
2651
  ),
2345
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2652
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2346
2653
  "button",
2347
2654
  {
2348
2655
  onClick: goToNextMonth,
2349
2656
  className: "p-1 rounded hover:bg-background-100 transition-colors",
2350
2657
  "aria-label": "Pr\xF3ximo m\xEAs",
2351
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2658
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2352
2659
  "svg",
2353
2660
  {
2354
2661
  className: "w-6 h-6 text-primary-950",
2355
2662
  fill: "none",
2356
2663
  stroke: "currentColor",
2357
2664
  viewBox: "0 0 24 24",
2358
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2665
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2359
2666
  "path",
2360
2667
  {
2361
2668
  strokeLinecap: "round",
@@ -2370,7 +2677,7 @@ var Calendar = ({
2370
2677
  )
2371
2678
  ] })
2372
2679
  ] }),
2373
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: WEEK_DAYS_SHORT.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2680
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: WEEK_DAYS_SHORT.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2374
2681
  "div",
2375
2682
  {
2376
2683
  className: "h-9 flex items-center justify-center text-xs font-normal text-text-600",
@@ -2378,13 +2685,13 @@ var Calendar = ({
2378
2685
  },
2379
2686
  `${day}-${index}`
2380
2687
  )) }),
2381
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarData.map((day) => {
2688
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarData.map((day) => {
2382
2689
  if (!day.isCurrentMonth) {
2383
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2690
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2384
2691
  "div",
2385
2692
  {
2386
2693
  className: "flex items-center justify-center",
2387
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "w-9 h-9" })
2694
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "w-9 h-9" })
2388
2695
  },
2389
2696
  day.date.getTime()
2390
2697
  );
@@ -2400,11 +2707,11 @@ var Calendar = ({
2400
2707
  } else if (day.isSelected) {
2401
2708
  spanClass = "h-6 w-6 rounded-full bg-primary-950 text-text";
2402
2709
  }
2403
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2710
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2404
2711
  "div",
2405
2712
  {
2406
2713
  className: "flex items-center justify-center",
2407
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2714
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2408
2715
  "button",
2409
2716
  {
2410
2717
  className: `
@@ -2420,7 +2727,7 @@ var Calendar = ({
2420
2727
  "aria-label": `${day.date.getDate()} de ${MONTH_NAMES[day.date.getMonth()]}`,
2421
2728
  "aria-current": day.isToday ? "date" : void 0,
2422
2729
  tabIndex: 0,
2423
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("span", { className: spanClass, children: day.date.getDate() })
2730
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { className: spanClass, children: day.date.getDate() })
2424
2731
  }
2425
2732
  )
2426
2733
  },
@@ -2429,28 +2736,28 @@ var Calendar = ({
2429
2736
  }) })
2430
2737
  ] });
2431
2738
  }
2432
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: `bg-background rounded-xl p-4 ${className}`, children: [
2433
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center justify-between mb-3.5", children: [
2434
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "relative", ref: monthPickerContainerRef, children: [
2435
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
2739
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: `bg-background rounded-xl p-4 ${className}`, children: [
2740
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center justify-between mb-3.5", children: [
2741
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "relative", ref: monthPickerContainerRef, children: [
2742
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2436
2743
  "button",
2437
2744
  {
2438
2745
  onClick: toggleMonthPicker,
2439
2746
  className: "flex items-center gap-2 hover:bg-background-100 rounded px-2 py-1 transition-colors",
2440
2747
  children: [
2441
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("h2", { className: "text-lg font-semibold text-text-950", children: [
2748
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("h2", { className: "text-lg font-semibold text-text-950", children: [
2442
2749
  MONTH_NAMES[currentDate.getMonth()],
2443
2750
  " ",
2444
2751
  currentDate.getFullYear()
2445
2752
  ] }),
2446
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2753
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2447
2754
  "svg",
2448
2755
  {
2449
2756
  className: `w-4 h-4 text-text-400 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
2450
2757
  fill: "none",
2451
2758
  stroke: "currentColor",
2452
2759
  viewBox: "0 0 24 24",
2453
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2760
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2454
2761
  "path",
2455
2762
  {
2456
2763
  strokeLinecap: "round",
@@ -2464,7 +2771,7 @@ var Calendar = ({
2464
2771
  ]
2465
2772
  }
2466
2773
  ),
2467
- isMonthPickerOpen && /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2774
+ isMonthPickerOpen && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2468
2775
  MonthYearPicker,
2469
2776
  {
2470
2777
  monthPickerRef,
@@ -2475,21 +2782,21 @@ var Calendar = ({
2475
2782
  }
2476
2783
  )
2477
2784
  ] }),
2478
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex items-center gap-1", children: [
2479
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2785
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-1", children: [
2786
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2480
2787
  "button",
2481
2788
  {
2482
2789
  onClick: goToPreviousMonth,
2483
2790
  className: "p-1 rounded-md hover:bg-background-100 transition-colors",
2484
2791
  "aria-label": "M\xEAs anterior",
2485
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2792
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2486
2793
  "svg",
2487
2794
  {
2488
2795
  className: "w-6 h-6 text-primary-950",
2489
2796
  fill: "none",
2490
2797
  stroke: "currentColor",
2491
2798
  viewBox: "0 0 24 24",
2492
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2799
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2493
2800
  "path",
2494
2801
  {
2495
2802
  strokeLinecap: "round",
@@ -2502,20 +2809,20 @@ var Calendar = ({
2502
2809
  )
2503
2810
  }
2504
2811
  ),
2505
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2812
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2506
2813
  "button",
2507
2814
  {
2508
2815
  onClick: goToNextMonth,
2509
2816
  className: "p-1 rounded-md hover:bg-background-100 transition-colors",
2510
2817
  "aria-label": "Pr\xF3ximo m\xEAs",
2511
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2818
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2512
2819
  "svg",
2513
2820
  {
2514
2821
  className: "w-6 h-6 text-primary-950",
2515
2822
  fill: "none",
2516
2823
  stroke: "currentColor",
2517
2824
  viewBox: "0 0 24 24",
2518
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2825
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2519
2826
  "path",
2520
2827
  {
2521
2828
  strokeLinecap: "round",
@@ -2530,7 +2837,7 @@ var Calendar = ({
2530
2837
  )
2531
2838
  ] })
2532
2839
  ] }),
2533
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2840
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2534
2841
  "div",
2535
2842
  {
2536
2843
  className: "h-4 flex items-center justify-center text-xs font-semibold text-text-500",
@@ -2538,13 +2845,13 @@ var Calendar = ({
2538
2845
  },
2539
2846
  day
2540
2847
  )) }),
2541
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarData.map((day) => {
2848
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "grid grid-cols-7 gap-1", children: calendarData.map((day) => {
2542
2849
  if (!day.isCurrentMonth) {
2543
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2850
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2544
2851
  "div",
2545
2852
  {
2546
2853
  className: "flex items-center justify-center",
2547
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "w-10 h-10" })
2854
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "w-10 h-10" })
2548
2855
  },
2549
2856
  day.date.getTime()
2550
2857
  );
@@ -2554,11 +2861,11 @@ var Calendar = ({
2554
2861
  variant,
2555
2862
  showActivities
2556
2863
  );
2557
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2864
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2558
2865
  "div",
2559
2866
  {
2560
2867
  className: "flex items-center justify-center",
2561
- children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2868
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2562
2869
  "button",
2563
2870
  {
2564
2871
  className: `
@@ -2588,9 +2895,9 @@ var Calendar_default = Calendar;
2588
2895
 
2589
2896
  // src/components/Modal/Modal.tsx
2590
2897
  var import_react10 = require("react");
2591
- var import_phosphor_react7 = require("phosphor-react");
2592
- var import_jsx_runtime21 = require("react/jsx-runtime");
2593
- var SIZE_CLASSES9 = {
2898
+ var import_phosphor_react8 = require("phosphor-react");
2899
+ var import_jsx_runtime22 = require("react/jsx-runtime");
2900
+ var SIZE_CLASSES10 = {
2594
2901
  xs: "max-w-[360px]",
2595
2902
  sm: "max-w-[420px]",
2596
2903
  md: "max-w-[510px]",
@@ -2641,52 +2948,45 @@ var Modal = ({
2641
2948
  }
2642
2949
  };
2643
2950
  if (!isOpen) return null;
2644
- const sizeClasses = SIZE_CLASSES9[size];
2951
+ const sizeClasses = SIZE_CLASSES10[size];
2645
2952
  const baseClasses = "bg-background rounded-3xl shadow-hard-shadow-2 border border-border-100 w-full mx-4";
2646
- const modalClasses = `${baseClasses} ${sizeClasses} ${className}`;
2647
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2953
+ const dialogResetClasses = "p-0 m-0 border-none outline-none max-h-none static";
2954
+ const modalClasses = `${baseClasses} ${sizeClasses} ${dialogResetClasses} ${className}`;
2955
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2648
2956
  "div",
2649
2957
  {
2650
2958
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs",
2651
2959
  onClick: handleBackdropClick,
2652
2960
  onKeyDown: handleBackdropKeyDown,
2653
- role: "none",
2654
- "aria-hidden": "true",
2655
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
2656
- "div",
2657
- {
2658
- className: modalClasses,
2659
- role: "dialog",
2660
- "aria-modal": "true",
2661
- "aria-labelledby": "modal-title",
2662
- children: [
2663
- /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center justify-between px-6 py-6", children: [
2664
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
2665
- !hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2666
- "button",
2667
- {
2668
- onClick: onClose,
2669
- className: "p-1 text-text-500 hover:text-text-700 hover:bg-background-50 rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-indicator-info focus:ring-offset-2",
2670
- "aria-label": "Fechar modal",
2671
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(import_phosphor_react7.X, { size: 18 })
2672
- }
2673
- )
2674
- ] }),
2675
- /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "px-6 pb-6", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
2676
- footer && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
2677
- ]
2678
- }
2679
- )
2961
+ role: "button",
2962
+ tabIndex: closeOnBackdropClick ? 0 : -1,
2963
+ "aria-label": "Fechar modal clicando no fundo",
2964
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("dialog", { className: modalClasses, "aria-labelledby": "modal-title", open: true, children: [
2965
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center justify-between px-6 py-6", children: [
2966
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
2967
+ !hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
2968
+ "button",
2969
+ {
2970
+ onClick: onClose,
2971
+ className: "p-1 text-text-500 hover:text-text-700 hover:bg-background-50 rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-indicator-info focus:ring-offset-2",
2972
+ "aria-label": "Fechar modal",
2973
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_phosphor_react8.X, { size: 18 })
2974
+ }
2975
+ )
2976
+ ] }),
2977
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-6 pb-6", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
2978
+ footer && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
2979
+ ] })
2680
2980
  }
2681
2981
  );
2682
2982
  };
2683
2983
  var Modal_default = Modal;
2684
2984
 
2685
2985
  // src/components/DropdownMenu/DropdownMenu.tsx
2686
- var import_phosphor_react8 = require("phosphor-react");
2986
+ var import_phosphor_react9 = require("phosphor-react");
2687
2987
  var import_react11 = require("react");
2688
2988
  var import_zustand2 = require("zustand");
2689
- var import_jsx_runtime22 = require("react/jsx-runtime");
2989
+ var import_jsx_runtime23 = require("react/jsx-runtime");
2690
2990
  function createDropdownStore() {
2691
2991
  return (0, import_zustand2.create)((set) => ({
2692
2992
  open: false,
@@ -2781,7 +3081,7 @@ var DropdownMenu = ({
2781
3081
  setOpen(propOpen);
2782
3082
  }
2783
3083
  }, [propOpen]);
2784
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
3084
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
2785
3085
  };
2786
3086
  var DropdownMenuTrigger = ({
2787
3087
  className,
@@ -2793,7 +3093,7 @@ var DropdownMenuTrigger = ({
2793
3093
  const store = useDropdownStore(externalStore);
2794
3094
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
2795
3095
  const toggleOpen = () => store.setState({ open: !open });
2796
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3096
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2797
3097
  Button_default,
2798
3098
  {
2799
3099
  variant: "outline",
@@ -2830,7 +3130,7 @@ var MENUCONTENT_VARIANT_CLASSES = {
2830
3130
  profile: "p-6"
2831
3131
  };
2832
3132
  var MenuLabel = (0, import_react11.forwardRef)(({ className, inset, store: _store, ...props }, ref) => {
2833
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3133
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2834
3134
  "div",
2835
3135
  {
2836
3136
  ref,
@@ -2869,7 +3169,7 @@ var MenuContent = (0, import_react11.forwardRef)(
2869
3169
  return `absolute ${vertical} ${horizontal}`;
2870
3170
  };
2871
3171
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
2872
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3172
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2873
3173
  "div",
2874
3174
  {
2875
3175
  ref,
@@ -2928,7 +3228,7 @@ var DropdownMenuItem = (0, import_react11.forwardRef)(
2928
3228
  const getVariantProps = () => {
2929
3229
  return variant === "profile" ? { "data-variant": "profile" } : {};
2930
3230
  };
2931
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3231
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2932
3232
  "div",
2933
3233
  {
2934
3234
  ref,
@@ -2950,7 +3250,7 @@ var DropdownMenuItem = (0, import_react11.forwardRef)(
2950
3250
  ...props,
2951
3251
  children: [
2952
3252
  iconLeft,
2953
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "w-full text-md", children }),
3253
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "w-full text-md", children }),
2954
3254
  iconRight
2955
3255
  ]
2956
3256
  }
@@ -2958,7 +3258,7 @@ var DropdownMenuItem = (0, import_react11.forwardRef)(
2958
3258
  }
2959
3259
  );
2960
3260
  DropdownMenuItem.displayName = "DropdownMenuItem";
2961
- var DropdownMenuSeparator = (0, import_react11.forwardRef)(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3261
+ var DropdownMenuSeparator = (0, import_react11.forwardRef)(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2962
3262
  "div",
2963
3263
  {
2964
3264
  ref,
@@ -2971,7 +3271,7 @@ var ProfileMenuTrigger = (0, import_react11.forwardRef)(({ className, onClick, s
2971
3271
  const store = useDropdownStore(externalStore);
2972
3272
  const open = (0, import_zustand2.useStore)(store, (s) => s.open);
2973
3273
  const toggleOpen = () => store.setState({ open: !open });
2974
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3274
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2975
3275
  "button",
2976
3276
  {
2977
3277
  ref,
@@ -2983,13 +3283,13 @@ var ProfileMenuTrigger = (0, import_react11.forwardRef)(({ className, onClick, s
2983
3283
  },
2984
3284
  "aria-expanded": open,
2985
3285
  ...props,
2986
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "size-6 rounded-full bg-background-100 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_phosphor_react8.User, { className: "text-background-950", size: 18 }) })
3286
+ children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "size-6 rounded-full bg-background-100 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react9.User, { className: "text-background-950", size: 18 }) })
2987
3287
  }
2988
3288
  );
2989
3289
  });
2990
3290
  ProfileMenuTrigger.displayName = "ProfileMenuTrigger";
2991
3291
  var ProfileMenuHeader = (0, import_react11.forwardRef)(({ className, name, email, store: _store, ...props }, ref) => {
2992
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3292
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
2993
3293
  "div",
2994
3294
  {
2995
3295
  ref,
@@ -3000,10 +3300,10 @@ var ProfileMenuHeader = (0, import_react11.forwardRef)(({ className, name, email
3000
3300
  `,
3001
3301
  ...props,
3002
3302
  children: [
3003
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "size-16 bg-background-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_phosphor_react8.User, { size: 34, className: "text-background-950" }) }),
3004
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex flex-col ", children: [
3005
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-xl font-bold text-text-950", children: name }),
3006
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-md text-text-600", children: email })
3303
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "size-16 bg-background-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react9.User, { size: 34, className: "text-background-950" }) }),
3304
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col ", children: [
3305
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-xl font-bold text-text-950", children: name }),
3306
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-md text-text-600", children: email })
3007
3307
  ] })
3008
3308
  ]
3009
3309
  }
@@ -3011,7 +3311,7 @@ var ProfileMenuHeader = (0, import_react11.forwardRef)(({ className, name, email
3011
3311
  });
3012
3312
  ProfileMenuHeader.displayName = "ProfileMenuHeader";
3013
3313
  var ProfileMenuSection = (0, import_react11.forwardRef)(({ className, children, store: _store, ...props }, ref) => {
3014
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3314
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3015
3315
  "div",
3016
3316
  {
3017
3317
  ref,
@@ -3034,7 +3334,7 @@ var ProfileMenuFooter = ({
3034
3334
  }) => {
3035
3335
  const store = useDropdownStore(externalStore);
3036
3336
  const setOpen = (0, import_zustand2.useStore)(store, (s) => s.setOpen);
3037
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3337
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3038
3338
  Button_default,
3039
3339
  {
3040
3340
  variant: "outline",
@@ -3046,8 +3346,8 @@ var ProfileMenuFooter = ({
3046
3346
  },
3047
3347
  ...props,
3048
3348
  children: [
3049
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_phosphor_react8.SignOut, {}) }),
3050
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: "Sair" })
3349
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react9.SignOut, {}) }),
3350
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { children: "Sair" })
3051
3351
  ]
3052
3352
  }
3053
3353
  );
@@ -3058,14 +3358,14 @@ var DropdownMenu_default = DropdownMenu;
3058
3358
  // src/components/Select/Select.tsx
3059
3359
  var import_zustand3 = require("zustand");
3060
3360
  var import_react12 = require("react");
3061
- var import_phosphor_react9 = require("phosphor-react");
3062
- var import_jsx_runtime23 = require("react/jsx-runtime");
3361
+ var import_phosphor_react10 = require("phosphor-react");
3362
+ var import_jsx_runtime24 = require("react/jsx-runtime");
3063
3363
  var VARIANT_CLASSES4 = {
3064
- outlined: "border-2 rounded-sm focus:border-primary-950",
3065
- underlined: "border-b-2 focus:border-primary-950",
3066
- rounded: "border-2 rounded-4xl focus:border-primary-950"
3364
+ outlined: "border rounded-sm focus:border-primary-950",
3365
+ underlined: "border-b focus:border-primary-950",
3366
+ rounded: "border rounded-4xl focus:border-primary-950"
3067
3367
  };
3068
- var SIZE_CLASSES10 = {
3368
+ var SIZE_CLASSES11 = {
3069
3369
  small: "text-sm",
3070
3370
  medium: "text-md",
3071
3371
  large: "text-lg"
@@ -3105,7 +3405,7 @@ function getLabelAsNode(children) {
3105
3405
  }
3106
3406
  const flattened = import_react12.Children.toArray(children);
3107
3407
  if (flattened.length === 1) return flattened[0];
3108
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_jsx_runtime23.Fragment, { children: flattened });
3408
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_jsx_runtime24.Fragment, { children: flattened });
3109
3409
  }
3110
3410
  var injectStore2 = (children, store) => {
3111
3411
  return import_react12.Children.map(children, (child) => {
@@ -3206,8 +3506,8 @@ var Select = ({
3206
3506
  if (label) store.setState({ selectedLabel: label });
3207
3507
  }
3208
3508
  }, [propValue]);
3209
- const sizeClasses = SIZE_CLASSES10[size];
3210
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: `relative ${sizeClasses} w-[288px]`, ref: selectRef, children: injectStore2(children, store) });
3509
+ const sizeClasses = SIZE_CLASSES11[size];
3510
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: `relative ${sizeClasses} w-[288px]`, ref: selectRef, children: injectStore2(children, store) });
3211
3511
  };
3212
3512
  var SelectValue = ({
3213
3513
  placeholder,
@@ -3216,7 +3516,7 @@ var SelectValue = ({
3216
3516
  const store = useSelectStore(externalStore);
3217
3517
  const selectedLabel = (0, import_zustand3.useStore)(store, (s) => s.selectedLabel);
3218
3518
  const value = (0, import_zustand3.useStore)(store, (s) => s.value);
3219
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-inherit", children: selectedLabel || placeholder || value });
3519
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "text-inherit", children: selectedLabel || placeholder || value });
3220
3520
  };
3221
3521
  var SelectTrigger = (0, import_react12.forwardRef)(
3222
3522
  ({
@@ -3231,13 +3531,13 @@ var SelectTrigger = (0, import_react12.forwardRef)(
3231
3531
  const open = (0, import_zustand3.useStore)(store, (s) => s.open);
3232
3532
  const toggleOpen = () => store.setState({ open: !open });
3233
3533
  const variantClasses = VARIANT_CLASSES4[variant];
3234
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3534
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3235
3535
  "button",
3236
3536
  {
3237
3537
  ref,
3238
3538
  className: `
3239
3539
  flex h-9 min-w-[220px] w-full items-center justify-between border-border-300 px-3 py-2
3240
- ${invalid && "border-indicator-error text-text-600"}
3540
+ ${invalid && `${variant == "underlined" ? "border-b-2" : "border-2"} border-indicator-error text-text-600`}
3241
3541
  ${disabled ? "cursor-not-allowed text-text-400 pointer-events-none opacity-50" : "cursor-pointer hover:bg-background-50 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground"}
3242
3542
  ${!invalid && !disabled ? "text-text-700" : ""}
3243
3543
  ${variantClasses}
@@ -3250,8 +3550,8 @@ var SelectTrigger = (0, import_react12.forwardRef)(
3250
3550
  ...props,
3251
3551
  children: [
3252
3552
  props.children,
3253
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3254
- import_phosphor_react9.CaretDown,
3553
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3554
+ import_phosphor_react10.CaretDown,
3255
3555
  {
3256
3556
  className: `h-[1em] w-[1em] opacity-50 transition-transform ${open ? "rotate-180" : ""}`
3257
3557
  }
@@ -3275,7 +3575,7 @@ var SelectContent = (0, import_react12.forwardRef)(
3275
3575
  const open = (0, import_zustand3.useStore)(store, (s) => s.open);
3276
3576
  if (!open) return null;
3277
3577
  const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
3278
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3578
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3279
3579
  "div",
3280
3580
  {
3281
3581
  role: "menu",
@@ -3313,7 +3613,7 @@ var SelectItem = (0, import_react12.forwardRef)(
3313
3613
  }
3314
3614
  props.onClick?.(e);
3315
3615
  };
3316
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
3616
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3317
3617
  "div",
3318
3618
  {
3319
3619
  role: "menuitem",
@@ -3333,7 +3633,7 @@ var SelectItem = (0, import_react12.forwardRef)(
3333
3633
  tabIndex: disabled ? -1 : 0,
3334
3634
  ...props,
3335
3635
  children: [
3336
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react9.Check, { className: "" }) }),
3636
+ /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_phosphor_react10.Check, { className: "" }) }),
3337
3637
  children
3338
3638
  ]
3339
3639
  }
@@ -3346,8 +3646,8 @@ var Select_default = Select;
3346
3646
  // src/components/Menu/Menu.tsx
3347
3647
  var import_zustand4 = require("zustand");
3348
3648
  var import_react13 = require("react");
3349
- var import_phosphor_react10 = require("phosphor-react");
3350
- var import_jsx_runtime24 = require("react/jsx-runtime");
3649
+ var import_phosphor_react11 = require("phosphor-react");
3650
+ var import_jsx_runtime25 = require("react/jsx-runtime");
3351
3651
  var createMenuStore = () => (0, import_zustand4.create)((set) => ({
3352
3652
  value: "",
3353
3653
  setValue: (value) => set({ value })
@@ -3383,7 +3683,7 @@ var Menu = (0, import_react13.forwardRef)(
3383
3683
  }, [value, onValueChange]);
3384
3684
  const baseClasses = "w-full flex flex-row items-center gap-2 py-2 px-6";
3385
3685
  const variantClasses = VARIANT_CLASSES5[variant];
3386
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3686
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3387
3687
  "ul",
3388
3688
  {
3389
3689
  ref,
@@ -3425,10 +3725,13 @@ var MenuItem = (0, import_react13.forwardRef)(
3425
3725
  if (["Enter", " "].includes(e.key)) handleClick(e);
3426
3726
  },
3427
3727
  tabIndex: disabled ? -1 : 0,
3728
+ onMouseDown: (e) => {
3729
+ e.preventDefault();
3730
+ },
3428
3731
  ...props
3429
3732
  };
3430
3733
  const variants = {
3431
- menu: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3734
+ menu: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3432
3735
  "li",
3433
3736
  {
3434
3737
  "data-variant": "menu",
@@ -3443,7 +3746,7 @@ var MenuItem = (0, import_react13.forwardRef)(
3443
3746
  children
3444
3747
  }
3445
3748
  ),
3446
- menu2: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3749
+ menu2: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3447
3750
  "li",
3448
3751
  {
3449
3752
  "data-variant": "menu2",
@@ -3455,7 +3758,7 @@ var MenuItem = (0, import_react13.forwardRef)(
3455
3758
  children
3456
3759
  }
3457
3760
  ),
3458
- breadcrumb: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3761
+ breadcrumb: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3459
3762
  "li",
3460
3763
  {
3461
3764
  "data-variant": "breadcrumb",
@@ -3466,7 +3769,7 @@ var MenuItem = (0, import_react13.forwardRef)(
3466
3769
  ${className ?? ""}
3467
3770
  `,
3468
3771
  ...commonProps,
3469
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3772
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3470
3773
  "span",
3471
3774
  {
3472
3775
  className: `
@@ -3484,14 +3787,14 @@ var MenuItem = (0, import_react13.forwardRef)(
3484
3787
  );
3485
3788
  MenuItem.displayName = "MenuItem";
3486
3789
  var MenuSeparator = (0, import_react13.forwardRef)(
3487
- ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3790
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3488
3791
  "li",
3489
3792
  {
3490
3793
  ref,
3491
3794
  "aria-hidden": "true",
3492
3795
  className: `[&>svg]:w-4 [&>svg]:h-4 text-text-600 ${className ?? ""}`,
3493
3796
  ...props,
3494
- children: children ?? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(import_phosphor_react10.CaretRight, {})
3797
+ children: children ?? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(import_phosphor_react11.CaretRight, {})
3495
3798
  }
3496
3799
  )
3497
3800
  );
@@ -3506,12 +3809,541 @@ var injectStore3 = (children, store) => import_react13.Children.map(children, (c
3506
3809
  });
3507
3810
  });
3508
3811
  var Menu_default = Menu;
3812
+
3813
+ // src/components/Card/Card.tsx
3814
+ var import_react14 = require("react");
3815
+ var import_phosphor_react12 = require("phosphor-react");
3816
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3817
+ var ACTION_CARD_CLASSES = {
3818
+ warning: "bg-warning-background",
3819
+ success: "bg-success-300",
3820
+ error: "bg-error-100",
3821
+ info: "bg-info-background"
3822
+ };
3823
+ var ACTION_ICON_CLASSES = {
3824
+ warning: "bg-warning-300 text-text",
3825
+ success: "bg-yellow-300 text-text-950",
3826
+ error: "bg-error-500 text-text",
3827
+ info: "bg-info-500 text-text"
3828
+ };
3829
+ var ACTION_SUBTITLE_CLASSES = {
3830
+ warning: "text-warning-600",
3831
+ success: "text-success-700",
3832
+ error: "text-error-700",
3833
+ info: "text-info-700"
3834
+ };
3835
+ var ACTION_HEADER_CLASSES = {
3836
+ warning: "text-warning-300",
3837
+ success: "text-success-300",
3838
+ error: "text-error-300",
3839
+ info: "text-info-300"
3840
+ };
3841
+ var CardActivesResults = (0, import_react14.forwardRef)(
3842
+ ({
3843
+ icon,
3844
+ title,
3845
+ subTitle,
3846
+ header,
3847
+ extended = false,
3848
+ action = "success",
3849
+ description,
3850
+ className,
3851
+ ...props
3852
+ }, ref) => {
3853
+ const actionCardClasses = ACTION_CARD_CLASSES[action];
3854
+ const actionIconClasses = ACTION_ICON_CLASSES[action];
3855
+ const actionSubTitleClasses = ACTION_SUBTITLE_CLASSES[action];
3856
+ const actionHeaderClasses = ACTION_HEADER_CLASSES[action];
3857
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3858
+ "div",
3859
+ {
3860
+ ref,
3861
+ className: `w-full flex flex-col border border-border-50 bg-background rounded-xl ${className}`,
3862
+ ...props,
3863
+ children: [
3864
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3865
+ "div",
3866
+ {
3867
+ className: `
3868
+ flex flex-col gap-1 items-center justify-center p-4
3869
+ ${actionCardClasses}
3870
+ ${extended ? "rounded-t-xl" : "rounded-xl"}`,
3871
+ children: [
3872
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3873
+ "span",
3874
+ {
3875
+ className: `size-7.5 rounded-full flex items-center justify-center ${actionIconClasses}`,
3876
+ children: icon
3877
+ }
3878
+ ),
3879
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 font-medium uppercase text-2xs", children: title }),
3880
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: `text-lg font-bold ${actionSubTitleClasses}`, children: subTitle })
3881
+ ]
3882
+ }
3883
+ ),
3884
+ extended && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
3885
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3886
+ "p",
3887
+ {
3888
+ className: `text-2xs font-medium uppercase ${actionHeaderClasses}`,
3889
+ children: header
3890
+ }
3891
+ ),
3892
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm text-info-800 text-center", children: description })
3893
+ ] })
3894
+ ]
3895
+ }
3896
+ );
3897
+ }
3898
+ );
3899
+ var CardQuestions = (0, import_react14.forwardRef)(
3900
+ ({
3901
+ header,
3902
+ state = "undone",
3903
+ className,
3904
+ onClickButton,
3905
+ valueButton,
3906
+ ...props
3907
+ }, ref) => {
3908
+ const isDone = state === "done";
3909
+ const stateLabel = isDone ? "Realizado" : "N\xE3o Realizado";
3910
+ const buttonLabel = isDone ? "Ver Quest\xE3o" : "Responder";
3911
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3912
+ "div",
3913
+ {
3914
+ ref,
3915
+ className: `
3916
+ w-full flex flex-row justify-between rounded-xl p-4 gap-4 bg-background border border-border-50
3917
+ ${className}
3918
+ `,
3919
+ ...props,
3920
+ children: [
3921
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("section", { className: "flex flex-col gap-1", children: [
3922
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "font-bold text-xs text-text-950", children: header }),
3923
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
3924
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3925
+ Badge_default,
3926
+ {
3927
+ size: "medium",
3928
+ variant: "solid",
3929
+ action: isDone ? "success" : "error",
3930
+ children: stateLabel
3931
+ }
3932
+ ),
3933
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "flex flex-row items-center gap-1 text-text-700 text-xs", children: [
3934
+ isDone ? "Nota" : "Sem nota",
3935
+ isDone && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Badge_default, { size: "medium", action: "success", children: "00" })
3936
+ ] })
3937
+ ] })
3938
+ ] }),
3939
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3940
+ Button_default,
3941
+ {
3942
+ size: "extra-small",
3943
+ onClick: () => onClickButton?.(valueButton),
3944
+ children: buttonLabel
3945
+ }
3946
+ ) })
3947
+ ]
3948
+ }
3949
+ );
3950
+ }
3951
+ );
3952
+ var CardProgress = (0, import_react14.forwardRef)(
3953
+ ({
3954
+ header,
3955
+ subhead,
3956
+ initialDate,
3957
+ endDate,
3958
+ progress = 0,
3959
+ direction = "horizontal",
3960
+ icon,
3961
+ color = "#B7DFFF",
3962
+ className,
3963
+ ...props
3964
+ }, ref) => {
3965
+ const isHorizontal = direction === "horizontal";
3966
+ const contentComponent = {
3967
+ horizontal: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
3968
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
3969
+ initialDate && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
3970
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
3971
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-600", children: initialDate })
3972
+ ] }),
3973
+ endDate && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
3974
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 font-semibold", children: "Fim" }),
3975
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-600", children: endDate })
3976
+ ] })
3977
+ ] }),
3978
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3979
+ ProgressBar_default,
3980
+ {
3981
+ size: "medium",
3982
+ showPercentage: true,
3983
+ value: progress,
3984
+ "data-testid": "progress-bar"
3985
+ }
3986
+ )
3987
+ ] }),
3988
+ vertical: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm text-text-800", children: subhead })
3989
+ };
3990
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
3991
+ "div",
3992
+ {
3993
+ ref,
3994
+ className: `
3995
+ w-full flex border border-border-50 rounded-xl
3996
+ ${isHorizontal ? "flex-row h-20" : "flex-col"}
3997
+ ${className}
3998
+ `,
3999
+ ...props,
4000
+ children: [
4001
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4002
+ "div",
4003
+ {
4004
+ className: `
4005
+ flex justify-center items-center [&>svg]:size-8 text-text-950
4006
+ ${isHorizontal ? "w-20 h-full rounded-l-xl" : "min-h-[50px] w-full rounded-t-xl"}
4007
+ `,
4008
+ style: {
4009
+ backgroundColor: color
4010
+ },
4011
+ children: icon
4012
+ }
4013
+ ),
4014
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4015
+ "div",
4016
+ {
4017
+ className: `
4018
+ p-4 flex flex-col justify-between w-full h-full
4019
+ ${!isHorizontal && "gap-4"}
4020
+ `,
4021
+ children: [
4022
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs font-bold text-text-950", children: header }),
4023
+ contentComponent[direction]
4024
+ ]
4025
+ }
4026
+ )
4027
+ ]
4028
+ }
4029
+ );
4030
+ }
4031
+ );
4032
+ var CardTopic = (0, import_react14.forwardRef)(
4033
+ ({
4034
+ header,
4035
+ subHead,
4036
+ progress,
4037
+ showPercentage = false,
4038
+ className = "",
4039
+ ...props
4040
+ }, ref) => {
4041
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4042
+ "div",
4043
+ {
4044
+ ref,
4045
+ className: `w-full py-2 px-4 flex flex-col justify-center gap-2 border border-border-50 rounded-xl min-h-20 ${className}`,
4046
+ ...props,
4047
+ children: [
4048
+ subHead && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_react14.Fragment, { children: [
4049
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { children: text }),
4050
+ index < subHead.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { children: "\u2022" })
4051
+ ] }, `${text} - ${index}`)) }),
4052
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs text-text-950 font-bold", children: header }),
4053
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ProgressBar_default, { showPercentage, value: progress })
4054
+ ]
4055
+ }
4056
+ );
4057
+ }
4058
+ );
4059
+ var CardPerformance = (0, import_react14.forwardRef)(
4060
+ ({
4061
+ header,
4062
+ progress,
4063
+ description = "Sem dados ainda! Voc\xEA ainda n\xE3o fez um question\xE1rio neste assunto.",
4064
+ className = "",
4065
+ onClickButton,
4066
+ valueButton,
4067
+ ...props
4068
+ }, ref) => {
4069
+ const hasProgress = progress !== void 0;
4070
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4071
+ "div",
4072
+ {
4073
+ ref,
4074
+ className: `w-full min-h-20.5 flex flex-row justify-between p-4 gap-2 bg-background border border-border-50 ${className}`,
4075
+ ...props,
4076
+ children: [
4077
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
4078
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-row justify-between items-center", children: [
4079
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-md font-bold text-text-950", children: header }),
4080
+ hasProgress && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4081
+ Button_default,
4082
+ {
4083
+ variant: "outline",
4084
+ size: "extra-small",
4085
+ onClick: () => onClickButton?.(valueButton),
4086
+ children: "Ver Aula"
4087
+ }
4088
+ )
4089
+ ] }),
4090
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(ProgressBar_default, { value: progress, label: `${progress}% corretas` }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs text-text-600", children: description }) })
4091
+ ] }),
4092
+ !hasProgress && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4093
+ import_phosphor_react12.CaretRight,
4094
+ {
4095
+ className: "size-4.5 text-text-800",
4096
+ "data-testid": "caret-icon",
4097
+ onClick: () => onClickButton?.(valueButton)
4098
+ }
4099
+ )
4100
+ ]
4101
+ }
4102
+ );
4103
+ }
4104
+ );
4105
+ var CardResults = (0, import_react14.forwardRef)(
4106
+ ({
4107
+ header,
4108
+ correct_answers,
4109
+ incorrect_answers,
4110
+ icon,
4111
+ direction = "col",
4112
+ color = "#B7DFFF",
4113
+ className,
4114
+ ...props
4115
+ }, ref) => {
4116
+ const isRow = direction == "row";
4117
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4118
+ "div",
4119
+ {
4120
+ ref,
4121
+ className: `
4122
+ w-full flex border border-border-50 rounded-xl min-h-20 flex-row items-center pr-4
4123
+ ${className}
4124
+ `,
4125
+ ...props,
4126
+ children: [
4127
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4128
+ "div",
4129
+ {
4130
+ className: `
4131
+ flex justify-center items-center [&>svg]:size-8 text-text-950 min-w-20 max-w-20 h-full rounded-l-xl
4132
+ `,
4133
+ style: {
4134
+ backgroundColor: color
4135
+ },
4136
+ children: icon
4137
+ }
4138
+ ),
4139
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4140
+ "div",
4141
+ {
4142
+ className: `
4143
+ p-4 flex justify-between w-full h-full
4144
+ ${isRow ? "flex-row items-center" : "flex-col"}
4145
+ `,
4146
+ children: [
4147
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs font-bold text-text-950", children: header }),
4148
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "flex flex-row gap-1 items-center", children: [
4149
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4150
+ Badge_default,
4151
+ {
4152
+ action: "success",
4153
+ variant: "solid",
4154
+ size: "medium",
4155
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CheckCircle, {}),
4156
+ children: [
4157
+ correct_answers,
4158
+ " Corretas"
4159
+ ]
4160
+ }
4161
+ ),
4162
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4163
+ Badge_default,
4164
+ {
4165
+ action: "error",
4166
+ variant: "solid",
4167
+ size: "medium",
4168
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.XCircle, {}),
4169
+ children: [
4170
+ incorrect_answers,
4171
+ " Incorretas"
4172
+ ]
4173
+ }
4174
+ )
4175
+ ] })
4176
+ ]
4177
+ }
4178
+ ),
4179
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
4180
+ ]
4181
+ }
4182
+ );
4183
+ }
4184
+ );
4185
+ var CardStatus = (0, import_react14.forwardRef)(
4186
+ ({ header, className, status, ...props }, ref) => {
4187
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4188
+ "div",
4189
+ {
4190
+ ref,
4191
+ className: `
4192
+ w-full flex border border-border-50 rounded-xl min-h-20 flex-row items-center pr-4
4193
+ ${className}
4194
+ `,
4195
+ ...props,
4196
+ children: [
4197
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4198
+ "div",
4199
+ {
4200
+ className: `
4201
+ p-4 flex justify-between w-full h-full flex-row items-center
4202
+ `,
4203
+ children: [
4204
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs font-bold text-text-950", children: header }),
4205
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("span", { className: "flex flex-row gap-1 items-center", children: [
4206
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4207
+ Badge_default,
4208
+ {
4209
+ action: status == "correct" ? "success" : "error",
4210
+ variant: "solid",
4211
+ size: "medium",
4212
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CheckCircle, {}),
4213
+ children: status == "correct" ? "Correta" : "Incorreta"
4214
+ }
4215
+ ),
4216
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-sm text-text-800", children: "Respondida" })
4217
+ ] })
4218
+ ]
4219
+ }
4220
+ ),
4221
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
4222
+ ]
4223
+ }
4224
+ );
4225
+ }
4226
+ );
4227
+ var CardSettings = (0, import_react14.forwardRef)(
4228
+ ({ header, className, icon, ...props }, ref) => {
4229
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4230
+ "div",
4231
+ {
4232
+ ref,
4233
+ className: `w-full p-2 flex flex-row items-center gap-2 text-text-700 bg-background rounded-xl ${className}`,
4234
+ ...props,
4235
+ children: [
4236
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
4237
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "w-full text-md", children: header }),
4238
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { size: 24 })
4239
+ ]
4240
+ }
4241
+ );
4242
+ }
4243
+ );
4244
+ var CardSupport = (0, import_react14.forwardRef)(
4245
+ ({ header, className, direction = "col", children, ...props }, ref) => {
4246
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4247
+ "div",
4248
+ {
4249
+ ref,
4250
+ className: `w-full p-4 flex flex-row items-center gap-2 text-text-700 bg-background rounded-xl ${className}`,
4251
+ ...props,
4252
+ children: [
4253
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4254
+ "div",
4255
+ {
4256
+ className: `
4257
+ w-full flex ${direction == "col" ? "flex-col" : "flex-row items-center"} gap-2
4258
+ `,
4259
+ children: [
4260
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs text-text-950 font-bold", children: header }) }),
4261
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "flex flex-row gap-1", children })
4262
+ ]
4263
+ }
4264
+ ),
4265
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "text-text-800", size: 24 })
4266
+ ]
4267
+ }
4268
+ );
4269
+ }
4270
+ );
4271
+ var CardForum = (0, import_react14.forwardRef)(
4272
+ ({
4273
+ title,
4274
+ content,
4275
+ comments,
4276
+ onClickComments,
4277
+ valueComments,
4278
+ onClickProfile,
4279
+ valueProfile,
4280
+ className = "",
4281
+ date,
4282
+ hour,
4283
+ ...props
4284
+ }, ref) => {
4285
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4286
+ "div",
4287
+ {
4288
+ ref,
4289
+ className: `w-auto h-auto p-4 rounded-lg flex flex-row gap-3 border border-border-100 bg-background ${className}`,
4290
+ ...props,
4291
+ children: [
4292
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4293
+ "button",
4294
+ {
4295
+ type: "button",
4296
+ "aria-label": "Ver perfil",
4297
+ onClick: () => onClickProfile?.(valueProfile),
4298
+ className: "min-w-8 h-8 rounded-full bg-background-950"
4299
+ }
4300
+ ),
4301
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col gap-2 flex-1", children: [
4302
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
4303
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
4304
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("p", { className: "text-xs text-text-600", children: [
4305
+ "\u2022 ",
4306
+ date,
4307
+ " \u2022 ",
4308
+ hour
4309
+ ] })
4310
+ ] }),
4311
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-950 text-sm line-clamp-2", children: content }),
4312
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4313
+ "button",
4314
+ {
4315
+ type: "button",
4316
+ "aria-label": "Ver coment\xE1rios",
4317
+ onClick: () => onClickComments?.(valueComments),
4318
+ className: "text-text-600 flex flex-row gap-2 items-center",
4319
+ children: [
4320
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.ChatCircleText, { "aria-hidden": "true", size: 16 }),
4321
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("p", { className: "text-xs", children: [
4322
+ comments,
4323
+ " respostas"
4324
+ ] })
4325
+ ]
4326
+ }
4327
+ )
4328
+ ] })
4329
+ ]
4330
+ }
4331
+ );
4332
+ }
4333
+ );
3509
4334
  // Annotate the CommonJS export names for ESM import in node:
3510
4335
  0 && (module.exports = {
3511
4336
  Alert,
3512
4337
  Badge,
3513
4338
  Button,
3514
4339
  Calendar,
4340
+ CardActivesResults,
4341
+ CardPerformance,
4342
+ CardProgress,
4343
+ CardQuestions,
4344
+ CardResults,
4345
+ CardStatus,
4346
+ CardTopic,
3515
4347
  CheckBox,
3516
4348
  Chips,
3517
4349
  Divider,
@@ -3542,6 +4374,7 @@ var Menu_default = Menu;
3542
4374
  SelectTrigger,
3543
4375
  SelectValue,
3544
4376
  SelectionButton,
4377
+ Stepper,
3545
4378
  Table,
3546
4379
  Text,
3547
4380
  TextArea,