@bigtablet/design-system 1.14.0 → 1.14.1

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
@@ -8,8 +8,7 @@ import { ToastContainer, Slide, toast } from 'react-toastify';
8
8
  import 'react-toastify/dist/ReactToastify.css';
9
9
  import { ChevronDown, Check } from 'lucide-react';
10
10
 
11
- // src/ui/display/card/style.module.scss
12
- var style_module_default = {};
11
+ // src/ui/display/card/index.tsx
13
12
  var Card = ({
14
13
  heading,
15
14
  shadow = "sm",
@@ -20,20 +19,17 @@ var Card = ({
20
19
  ...props
21
20
  }) => {
22
21
  const cls = [
23
- style_module_default.card,
24
- style_module_default[`shadow_${shadow}`],
25
- style_module_default[`p_${padding}`],
26
- bordered && style_module_default.bordered,
22
+ "card",
23
+ `card_shadow_${shadow}`,
24
+ `card_p_${padding}`,
25
+ bordered && "card_bordered",
27
26
  className ?? ""
28
27
  ].filter(Boolean).join(" ");
29
28
  return /* @__PURE__ */ jsxs("div", { className: cls, ...props, children: [
30
- heading ? /* @__PURE__ */ jsx("div", { className: style_module_default.title, children: heading }) : null,
31
- /* @__PURE__ */ jsx("div", { className: style_module_default.body, children })
29
+ heading ? /* @__PURE__ */ jsx("div", { className: "card_title", children: heading }) : null,
30
+ /* @__PURE__ */ jsx("div", { className: "card_body", children })
32
31
  ] });
33
32
  };
34
-
35
- // src/ui/feedback/alert/style.module.scss
36
- var style_module_default2 = {};
37
33
  var AlertContext = createContext(null);
38
34
  var useAlert = () => {
39
35
  const context = useContext(AlertContext);
@@ -94,14 +90,14 @@ var AlertModal = ({
94
90
  onClose
95
91
  }) => {
96
92
  const modalClassName = [
97
- style_module_default2.modal,
98
- style_module_default2[`variant_${variant}`]
93
+ "alert_modal",
94
+ `alert_variant_${variant}`
99
95
  ].filter(Boolean).join(" ");
100
96
  const actionsClassName = [
101
- style_module_default2.actions,
102
- style_module_default2[`actions_${actionsAlign}`]
97
+ "alert_actions",
98
+ `alert_actions_${actionsAlign}`
103
99
  ].filter(Boolean).join(" ");
104
- return /* @__PURE__ */ jsx("div", { className: style_module_default2.overlay, onClick: onClose, children: /* @__PURE__ */ jsxs(
100
+ return /* @__PURE__ */ jsx("div", { className: "alert_overlay", onClick: onClose, children: /* @__PURE__ */ jsxs(
105
101
  "div",
106
102
  {
107
103
  className: modalClassName,
@@ -111,14 +107,14 @@ var AlertModal = ({
111
107
  "aria-labelledby": "alert_title",
112
108
  "aria-describedby": "alert_message",
113
109
  children: [
114
- title && /* @__PURE__ */ jsx("div", { className: style_module_default2.title, id: "alert_title", children: title }),
115
- message && /* @__PURE__ */ jsx("div", { className: style_module_default2.message, id: "alert_message", children: message }),
110
+ title && /* @__PURE__ */ jsx("div", { className: "alert_title", id: "alert_title", children: title }),
111
+ message && /* @__PURE__ */ jsx("div", { className: "alert_message", id: "alert_message", children: message }),
116
112
  /* @__PURE__ */ jsxs("div", { className: actionsClassName, children: [
117
113
  showCancel && /* @__PURE__ */ jsx(
118
114
  "button",
119
115
  {
120
116
  type: "button",
121
- className: `${style_module_default2.button} ${style_module_default2.button_cancel}`,
117
+ className: "alert_button alert_button_cancel",
122
118
  onClick: onCancel,
123
119
  children: cancelText
124
120
  }
@@ -127,7 +123,7 @@ var AlertModal = ({
127
123
  "button",
128
124
  {
129
125
  type: "button",
130
- className: `${style_module_default2.button} ${style_module_default2.button_confirm}`,
126
+ className: "alert_button alert_button_confirm",
131
127
  onClick: onConfirm,
132
128
  children: confirmText
133
129
  }
@@ -137,23 +133,17 @@ var AlertModal = ({
137
133
  }
138
134
  ) });
139
135
  };
140
-
141
- // src/ui/feedback/spinner/style.module.scss
142
- var style_module_default3 = {};
143
136
  var Spinner = ({ size = 24 }) => {
144
137
  return /* @__PURE__ */ jsx(
145
138
  "span",
146
139
  {
147
- className: style_module_default3.spinner,
140
+ className: "spinner",
148
141
  style: { width: size, height: size },
149
142
  role: "status",
150
143
  "aria-label": "\uB85C\uB529 \uC911"
151
144
  }
152
145
  );
153
146
  };
154
-
155
- // src/ui/feedback/top-loading/style.module.scss
156
- var style_module_default4 = {};
157
147
  var TopLoading = ({
158
148
  progress,
159
149
  color,
@@ -165,7 +155,7 @@ var TopLoading = ({
165
155
  return /* @__PURE__ */ jsx(
166
156
  "div",
167
157
  {
168
- className: style_module_default4.top_loading,
158
+ className: "top_loading",
169
159
  style: { height },
170
160
  role: "progressbar",
171
161
  "aria-valuemin": 0,
@@ -176,8 +166,8 @@ var TopLoading = ({
176
166
  "div",
177
167
  {
178
168
  className: [
179
- style_module_default4.bar,
180
- isIndeterminate && style_module_default4.indeterminate
169
+ "top_loading_bar",
170
+ isIndeterminate && "top_loading_indeterminate"
181
171
  ].filter(Boolean).join(" "),
182
172
  style: {
183
173
  width: isIndeterminate ? void 0 : `${progress}%`,
@@ -217,9 +207,6 @@ var useToast = (containerId = "default") => {
217
207
  message: (msg) => toast(msg, base)
218
208
  };
219
209
  };
220
-
221
- // src/ui/general/button/style.module.scss
222
- var style_module_default5 = {};
223
210
  var Button = ({
224
211
  variant = "primary",
225
212
  size = "md",
@@ -228,16 +215,13 @@ var Button = ({
228
215
  ...props
229
216
  }) => {
230
217
  const buttonClassName = [
231
- style_module_default5.button,
232
- style_module_default5[`size_${size}`],
233
- style_module_default5[`variant_${variant}`],
218
+ "button",
219
+ `button_variant_${variant}`,
220
+ `button_size_${size}`,
234
221
  className ?? ""
235
222
  ].filter(Boolean).join(" ");
236
223
  return /* @__PURE__ */ jsx("button", { className: buttonClassName, style: { width }, ...props });
237
224
  };
238
-
239
- // src/ui/form/checkbox/style.module.scss
240
- var style_module_default6 = {};
241
225
  var Checkbox = ({
242
226
  label,
243
227
  size = "md",
@@ -251,8 +235,8 @@ var Checkbox = ({
251
235
  inputRef.current.indeterminate = Boolean(indeterminate);
252
236
  }, [indeterminate]);
253
237
  const rootClassName = [
254
- style_module_default6.checkbox,
255
- style_module_default6[`size_${size}`],
238
+ "checkbox",
239
+ `checkbox_size_${size}`,
256
240
  className ?? ""
257
241
  ].filter(Boolean).join(" ");
258
242
  return /* @__PURE__ */ jsxs("label", { className: rootClassName, children: [
@@ -261,17 +245,14 @@ var Checkbox = ({
261
245
  {
262
246
  ref: inputRef,
263
247
  type: "checkbox",
264
- className: style_module_default6.input,
248
+ className: "checkbox_input",
265
249
  ...props
266
250
  }
267
251
  ),
268
- /* @__PURE__ */ jsx("span", { className: style_module_default6.box, "aria-hidden": "true" }),
269
- label ? /* @__PURE__ */ jsx("span", { className: style_module_default6.label, children: label }) : null
252
+ /* @__PURE__ */ jsx("span", { className: "checkbox_box", "aria-hidden": "true" }),
253
+ label ? /* @__PURE__ */ jsx("span", { className: "checkbox_label", children: label }) : null
270
254
  ] });
271
255
  };
272
-
273
- // src/ui/form/file/style.module.scss
274
- var style_module_default7 = {};
275
256
  var FileInput = ({
276
257
  label = "\uD30C\uC77C \uC120\uD0DD",
277
258
  onFiles,
@@ -281,8 +262,8 @@ var FileInput = ({
281
262
  }) => {
282
263
  const inputId = React3.useId();
283
264
  const rootClassName = [
284
- style_module_default7.file_input,
285
- disabled && style_module_default7.disabled,
265
+ "file_input",
266
+ disabled && "file_input_disabled",
286
267
  className ?? ""
287
268
  ].filter(Boolean).join(" ");
288
269
  return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
@@ -291,33 +272,27 @@ var FileInput = ({
291
272
  {
292
273
  id: inputId,
293
274
  type: "file",
294
- className: style_module_default7.control,
275
+ className: "file_input_control",
295
276
  disabled,
296
277
  onChange: (e) => onFiles?.(e.currentTarget.files),
297
278
  ...props
298
279
  }
299
280
  ),
300
- /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: style_module_default7.label, children: label })
281
+ /* @__PURE__ */ jsx("label", { htmlFor: inputId, className: "file_input_label", children: label })
301
282
  ] });
302
283
  };
303
-
304
- // src/ui/form/radio/style.module.scss
305
- var style_module_default8 = {};
306
284
  var Radio = ({ label, size = "md", className, ...props }) => {
307
285
  const rootClassName = [
308
- style_module_default8.radio,
309
- style_module_default8[`size_${size}`],
286
+ "radio",
287
+ `radio_size_${size}`,
310
288
  className ?? ""
311
289
  ].filter(Boolean).join(" ");
312
290
  return /* @__PURE__ */ jsxs("label", { className: rootClassName, children: [
313
- /* @__PURE__ */ jsx("input", { type: "radio", className: style_module_default8.input, ...props }),
314
- /* @__PURE__ */ jsx("span", { className: style_module_default8.dot, "aria-hidden": "true" }),
315
- label ? /* @__PURE__ */ jsx("span", { className: style_module_default8.label, children: label }) : null
291
+ /* @__PURE__ */ jsx("input", { type: "radio", className: "radio_input", ...props }),
292
+ /* @__PURE__ */ jsx("span", { className: "radio_dot", "aria-hidden": "true" }),
293
+ label ? /* @__PURE__ */ jsx("span", { className: "radio_label", children: label }) : null
316
294
  ] });
317
295
  };
318
-
319
- // src/ui/general/select/style.module.scss
320
- var style_module_default9 = {};
321
296
  var Select = ({
322
297
  id,
323
298
  label,
@@ -438,13 +413,13 @@ var Select = ({
438
413
  )
439
414
  );
440
415
  }, [isOpen, options, currentValue]);
441
- const rootClassName = [style_module_default9.select, className ?? ""].filter(Boolean).join(" ");
416
+ const rootClassName = ["select", className ?? ""].filter(Boolean).join(" ");
442
417
  const controlClassName = [
443
- style_module_default9.control,
444
- style_module_default9[`variant_${variant}`],
445
- style_module_default9[`size_${size}`],
446
- isOpen && style_module_default9.is_open,
447
- disabled && style_module_default9.is_disabled
418
+ "select_control",
419
+ `select_variant_${variant}`,
420
+ `select_size_${size}`,
421
+ isOpen && "is_open",
422
+ disabled && "is_disabled"
448
423
  ].filter(Boolean).join(" ");
449
424
  return /* @__PURE__ */ jsxs(
450
425
  "div",
@@ -457,7 +432,7 @@ var Select = ({
457
432
  "label",
458
433
  {
459
434
  htmlFor: selectId,
460
- className: style_module_default9.label,
435
+ className: "select_label",
461
436
  children: label
462
437
  }
463
438
  ),
@@ -477,12 +452,12 @@ var Select = ({
477
452
  /* @__PURE__ */ jsx(
478
453
  "span",
479
454
  {
480
- className: currentOption ? style_module_default9.value : style_module_default9.placeholder,
455
+ className: currentOption ? "select_value" : "select_placeholder",
481
456
  style: textAlign === "left" ? { textAlign: "start" } : void 0,
482
457
  children: currentOption ? currentOption.label : placeholder
483
458
  }
484
459
  ),
485
- /* @__PURE__ */ jsx("span", { className: style_module_default9.icon, "aria-hidden": "true", children: /* @__PURE__ */ jsx(ChevronDown, { size: 16 }) })
460
+ /* @__PURE__ */ jsx("span", { className: "select_icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx(ChevronDown, { size: 16 }) })
486
461
  ]
487
462
  }
488
463
  ),
@@ -491,15 +466,15 @@ var Select = ({
491
466
  {
492
467
  id: `${selectId}_listbox`,
493
468
  role: "listbox",
494
- className: style_module_default9.list,
469
+ className: "select_list",
495
470
  children: options.map((opt, i) => {
496
471
  const selected = currentValue === opt.value;
497
472
  const active = i === activeIndex;
498
473
  const optionClassName = [
499
- style_module_default9.option,
500
- selected && style_module_default9.is_selected,
501
- active && style_module_default9.is_active,
502
- opt.disabled && style_module_default9.is_disabled
474
+ "select_option",
475
+ selected && "is_selected",
476
+ active && "is_active",
477
+ opt.disabled && "is_disabled"
503
478
  ].filter(Boolean).join(" ");
504
479
  return /* @__PURE__ */ jsxs(
505
480
  "li",
@@ -533,9 +508,6 @@ var Select = ({
533
508
  }
534
509
  );
535
510
  };
536
-
537
- // src/ui/form/switch/style.module.scss
538
- var style_module_default10 = {};
539
511
  var Switch = ({
540
512
  checked,
541
513
  defaultChecked,
@@ -555,10 +527,10 @@ var Switch = ({
555
527
  onChange?.(next);
556
528
  };
557
529
  const rootClassName = [
558
- style_module_default10.switch,
559
- style_module_default10[`size_${size}`],
560
- isOn && style_module_default10.on,
561
- disabled && style_module_default10.disabled,
530
+ "switch",
531
+ `switch_size_${size}`,
532
+ isOn && "switch_on",
533
+ disabled && "switch_disabled",
562
534
  className ?? ""
563
535
  ].filter(Boolean).join(" ");
564
536
  return /* @__PURE__ */ jsx(
@@ -571,13 +543,10 @@ var Switch = ({
571
543
  onClick: handleToggle,
572
544
  className: rootClassName,
573
545
  ...props,
574
- children: /* @__PURE__ */ jsx("span", { className: style_module_default10.thumb })
546
+ children: /* @__PURE__ */ jsx("span", { className: "switch_thumb" })
575
547
  }
576
548
  );
577
549
  };
578
-
579
- // src/ui/form/textfield/style.module.scss
580
- var style_module_default11 = {};
581
550
  var TextField = React3.forwardRef(
582
551
  ({
583
552
  id,
@@ -610,28 +579,28 @@ var TextField = React3.forwardRef(
610
579
  setInnerValue(applyTransform(value ?? ""));
611
580
  }, [isControlled, value, transformValue]);
612
581
  const rootClassName = [
613
- style_module_default11.text_field,
614
- fullWidth && style_module_default11.full_width,
582
+ "text_field",
583
+ fullWidth && "text_field_full_width",
615
584
  className ?? ""
616
585
  ].filter(Boolean).join(" ");
617
586
  const inputClassName = [
618
- style_module_default11.input,
619
- style_module_default11[`variant_${variant}`],
620
- style_module_default11[`size_${size}`],
621
- leftIcon && style_module_default11.with_left,
622
- rightIcon && style_module_default11.with_right,
623
- error && style_module_default11.error,
624
- success && style_module_default11.success
587
+ "text_field_input",
588
+ `text_field_variant_${variant}`,
589
+ `text_field_size_${size}`,
590
+ leftIcon && "text_field_with_left",
591
+ rightIcon && "text_field_with_right",
592
+ error && "text_field_error",
593
+ success && "text_field_success"
625
594
  ].filter(Boolean).join(" ");
626
595
  const helperClassName = [
627
- style_module_default11.helper,
628
- error && style_module_default11.helper_error,
629
- success && style_module_default11.helper_success
596
+ "text_field_helper",
597
+ error && "text_field_helper_error",
598
+ success && "text_field_helper_success"
630
599
  ].filter(Boolean).join(" ");
631
600
  return /* @__PURE__ */ jsxs("div", { className: rootClassName, children: [
632
- label ? /* @__PURE__ */ jsx("label", { className: style_module_default11.label, htmlFor: inputId, children: label }) : null,
633
- /* @__PURE__ */ jsxs("div", { className: style_module_default11.wrap, children: [
634
- leftIcon ? /* @__PURE__ */ jsx("span", { className: `${style_module_default11.icon} ${style_module_default11.icon_left}`, children: leftIcon }) : null,
601
+ label ? /* @__PURE__ */ jsx("label", { className: "text_field_label", htmlFor: inputId, children: label }) : null,
602
+ /* @__PURE__ */ jsxs("div", { className: "text_field_wrap", children: [
603
+ leftIcon ? /* @__PURE__ */ jsx("span", { className: "text_field_icon text_field_icon_left", children: leftIcon }) : null,
635
604
  /* @__PURE__ */ jsx(
636
605
  "input",
637
606
  {
@@ -664,16 +633,13 @@ var TextField = React3.forwardRef(
664
633
  }
665
634
  }
666
635
  ),
667
- rightIcon ? /* @__PURE__ */ jsx("span", { className: `${style_module_default11.icon} ${style_module_default11.icon_right}`, children: rightIcon }) : null
636
+ rightIcon ? /* @__PURE__ */ jsx("span", { className: "text_field_icon text_field_icon_right", children: rightIcon }) : null
668
637
  ] }),
669
638
  helperText ? /* @__PURE__ */ jsx("div", { id: helperId, className: helperClassName, children: helperText }) : null
670
639
  ] });
671
640
  }
672
641
  );
673
642
  TextField.displayName = "TextField";
674
-
675
- // src/ui/form/date-picker/style.module.scss
676
- var style_module_default12 = {};
677
643
  var pad = (n) => String(n).padStart(2, "0");
678
644
  var getDaysInMonth = (year, month) => new Date(year, month, 0).getDate();
679
645
  var normalizeWidth = (v) => typeof v === "number" ? `${v}px` : v;
@@ -713,9 +679,9 @@ var DatePicker = ({
713
679
  const safeDay = clampDay(yy, mm, dd ?? 1);
714
680
  onChange(`${yy}-${pad(mm)}-${pad(safeDay)}`);
715
681
  };
716
- return /* @__PURE__ */ jsxs("div", { className: style_module_default12.date_picker, style: { width: normalizeWidth(width?.container) }, children: [
717
- label && /* @__PURE__ */ jsx("label", { className: style_module_default12.label, children: label }),
718
- /* @__PURE__ */ jsxs("div", { className: style_module_default12.fields, children: [
682
+ return /* @__PURE__ */ jsxs("div", { className: "date_picker", style: { width: normalizeWidth(width?.container) }, children: [
683
+ label && /* @__PURE__ */ jsx("label", { className: "date_picker_label", children: label }),
684
+ /* @__PURE__ */ jsxs("div", { className: "date_picker_fields", children: [
719
685
  /* @__PURE__ */ jsxs(
720
686
  "select",
721
687
  {
@@ -766,9 +732,6 @@ var DatePicker = ({
766
732
  ] })
767
733
  ] });
768
734
  };
769
-
770
- // src/ui/navigation/pagination/style.module.scss
771
- var style_module_default13 = {};
772
735
  var range = (start, end) => {
773
736
  const out = [];
774
737
  for (let i = start; i <= end; i += 1) out.push(i);
@@ -794,25 +757,25 @@ var Pagination = ({ page, totalPages, onChange }) => {
794
757
  () => getPaginationItems(page, totalPages),
795
758
  [page, totalPages]
796
759
  );
797
- return /* @__PURE__ */ jsxs("nav", { className: style_module_default13.pagination, "aria-label": "Pagination", children: [
760
+ return /* @__PURE__ */ jsxs("nav", { className: "pagination", "aria-label": "Pagination", children: [
798
761
  /* @__PURE__ */ jsx(
799
762
  "button",
800
763
  {
801
- className: style_module_default13.item,
764
+ className: "pagination_item",
802
765
  onClick: () => onChange(page - 1),
803
766
  disabled: prevDisabled,
804
767
  "aria-label": "Previous page",
805
768
  children: "\u2039"
806
769
  }
807
770
  ),
808
- /* @__PURE__ */ jsx("div", { className: style_module_default13.pages, role: "list", children: items.map((it, idx) => {
771
+ /* @__PURE__ */ jsx("div", { className: "pagination_pages", role: "list", children: items.map((it, idx) => {
809
772
  if (it === "ellipsis") {
810
- return /* @__PURE__ */ jsx("span", { className: style_module_default13.ellipsis, "aria-hidden": "true", children: "\u2026" }, `e-${idx}`);
773
+ return /* @__PURE__ */ jsx("span", { className: "pagination_ellipsis", "aria-hidden": "true", children: "\u2026" }, `e-${idx}`);
811
774
  }
812
775
  const isActive = it === page;
813
776
  const buttonClassName = [
814
- style_module_default13.pageButton,
815
- isActive && style_module_default13.active
777
+ "pagination_page_button",
778
+ isActive && "pagination_active"
816
779
  ].filter(Boolean).join(" ");
817
780
  return /* @__PURE__ */ jsx(
818
781
  "button",
@@ -829,7 +792,7 @@ var Pagination = ({ page, totalPages, onChange }) => {
829
792
  /* @__PURE__ */ jsx(
830
793
  "button",
831
794
  {
832
- className: style_module_default13.item,
795
+ className: "pagination_item",
833
796
  onClick: () => onChange(page + 1),
834
797
  disabled: nextDisabled,
835
798
  "aria-label": "Next page",
@@ -838,9 +801,6 @@ var Pagination = ({ page, totalPages, onChange }) => {
838
801
  )
839
802
  ] });
840
803
  };
841
-
842
- // src/ui/overlay/modal/style.module.scss
843
- var style_module_default14 = {};
844
804
  var Modal = ({
845
805
  open,
846
806
  onClose,
@@ -860,11 +820,11 @@ var Modal = ({
860
820
  return () => document.removeEventListener("keydown", onKeyDown);
861
821
  }, [open, onClose]);
862
822
  if (!open) return null;
863
- const panelClassName = [style_module_default14.panel, className].filter(Boolean).join(" ");
823
+ const panelClassName = ["modal_panel", className].filter(Boolean).join(" ");
864
824
  return /* @__PURE__ */ jsx(
865
825
  "div",
866
826
  {
867
- className: style_module_default14.modal,
827
+ className: "modal",
868
828
  role: "dialog",
869
829
  "aria-modal": "true",
870
830
  onClick: () => closeOnOverlay && onClose?.(),
@@ -876,8 +836,8 @@ var Modal = ({
876
836
  onClick: (e) => e.stopPropagation(),
877
837
  ...props,
878
838
  children: [
879
- title && /* @__PURE__ */ jsx("div", { className: style_module_default14.header, children: title }),
880
- /* @__PURE__ */ jsx("div", { className: style_module_default14.body, children })
839
+ title && /* @__PURE__ */ jsx("div", { className: "modal_header", children: title }),
840
+ /* @__PURE__ */ jsx("div", { className: "modal_body", children })
881
841
  ]
882
842
  }
883
843
  )
package/dist/next.css CHANGED
@@ -1,4 +1,4 @@
1
- /* src/ui/navigation/sidebar/style.module.scss */
1
+ /* src/ui/navigation/sidebar/style.scss */
2
2
  .sidebar {
3
3
  display: flex;
4
4
  flex-direction: column;
@@ -11,29 +11,29 @@
11
11
  overflow: hidden;
12
12
  transition: width 0.3s ease-in-out;
13
13
  }
14
- .is_closed {
14
+ .sidebar_is_closed {
15
15
  width: 56px;
16
16
  }
17
- .brand {
17
+ .sidebar_brand {
18
18
  padding: 0.5rem;
19
19
  margin-bottom: 0.5rem;
20
20
  border-bottom: 1px solid #e5e5e5;
21
21
  }
22
- .brand_link {
22
+ .sidebar_brand_link {
23
23
  display: flex;
24
24
  align-items: center;
25
25
  justify-content: space-between;
26
26
  align-items: center;
27
27
  }
28
- .nav {
28
+ .sidebar_nav {
29
29
  display: grid;
30
30
  gap: 0.25rem;
31
31
  }
32
- .group {
32
+ .sidebar_group {
33
33
  display: grid;
34
34
  gap: 0.25rem;
35
35
  }
36
- .item {
36
+ .sidebar_item {
37
37
  border: none;
38
38
  display: flex;
39
39
  align-items: center;
@@ -45,39 +45,39 @@
45
45
  background: transparent;
46
46
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
47
47
  }
48
- .item:hover {
48
+ .sidebar_item:hover {
49
49
  background: #fafafa;
50
50
  color: #1f2937;
51
51
  }
52
- .item_active {
52
+ .sidebar_item_active {
53
53
  background: #ffffff;
54
54
  color: #1f2937;
55
55
  box-shadow: inset 0 0 0 1px #e5e5e5;
56
56
  }
57
- .item_left {
57
+ .sidebar_item_left {
58
58
  display: flex;
59
59
  align-items: center;
60
60
  gap: 0.5rem;
61
61
  }
62
- .item_right {
62
+ .sidebar_item_right {
63
63
  display: flex;
64
64
  align-items: center;
65
65
  }
66
- .icon {
66
+ .sidebar_icon {
67
67
  display: grid;
68
68
  place-items: center;
69
69
  }
70
- .chevron {
70
+ .sidebar_chevron {
71
71
  transition: transform 0.2s ease-in-out;
72
72
  }
73
- .chevron_open {
73
+ .sidebar_chevron_open {
74
74
  transform: rotate(180deg);
75
75
  }
76
- .label {
76
+ .sidebar_label {
77
77
  font-size: 1rem;
78
78
  white-space: nowrap;
79
79
  }
80
- .sub {
80
+ .sidebar_sub {
81
81
  display: grid;
82
82
  gap: 0.25rem;
83
83
  padding-left: 0.75rem;
@@ -90,12 +90,12 @@
90
90
  opacity 0.2s ease-in-out,
91
91
  transform 0.2s ease-in-out;
92
92
  }
93
- .sub_open {
93
+ .sidebar_sub_open {
94
94
  max-height: 500px;
95
95
  opacity: 1;
96
96
  transform: translateY(0);
97
97
  }
98
- .sub_item {
98
+ .sidebar_sub_item {
99
99
  display: flex;
100
100
  align-items: center;
101
101
  gap: 0.75rem;
@@ -106,20 +106,20 @@
106
106
  background: transparent;
107
107
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
108
108
  }
109
- .sub_item:hover {
109
+ .sidebar_sub_item:hover {
110
110
  background: #fafafa;
111
111
  color: #1f2937;
112
112
  }
113
- .sub_item_active {
113
+ .sidebar_sub_item_active {
114
114
  color: #000000;
115
115
  font-weight: 500;
116
116
  }
117
- .sub_icon {
117
+ .sidebar_sub_icon {
118
118
  display: grid;
119
119
  place-items: center;
120
120
  color: #6b7280;
121
121
  }
122
- .sub_label {
122
+ .sidebar_sub_label {
123
123
  font-size: 0.875rem;
124
124
  white-space: nowrap;
125
125
  }