@axzydev/axzy_ui_system 1.4.0 → 1.4.2
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/README.md +2 -2
- package/dist/index.cjs +151 -67
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.cts +46 -4
- package/dist/index.d.ts +46 -4
- package/dist/index.js +151 -67
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/App.tsx +3 -0
- package/src/components/organisms/sidebar/sidebar.doc.mdx +47 -2
- package/src/components/organisms/sidebar/sidebar.props.ts +40 -2
- package/src/components/organisms/sidebar/sidebar.stories.tsx +59 -1
- package/src/components/organisms/sidebar/sidebar.tsx +111 -15
- package/src/index.ts +2 -1
- package/src/sandbox/LandingShowcase.tsx +1 -1
- package/src/sandbox/navigation.ts +1 -0
- package/src/showcases/HelpShowcase.tsx +497 -0
- package/src/showcases/StructureShowcases.tsx +58 -5
package/README.md
CHANGED
|
@@ -103,8 +103,8 @@ export default function App() {
|
|
|
103
103
|
### 1. Clonar e instalar
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
git clone https://github.com/
|
|
107
|
-
cd
|
|
106
|
+
git clone https://github.com/maag070208/AXZY_UI_SYSTEM.git
|
|
107
|
+
cd AXZY_UI_SYSTEM
|
|
108
108
|
pnpm install
|
|
109
109
|
```
|
|
110
110
|
|
package/dist/index.cjs
CHANGED
|
@@ -7663,6 +7663,7 @@ function ITSegmentedControl({
|
|
|
7663
7663
|
|
|
7664
7664
|
// src/components/organisms/sidebar/sidebar.tsx
|
|
7665
7665
|
var import_react35 = require("react");
|
|
7666
|
+
var import_clsx40 = __toESM(require("clsx"), 1);
|
|
7666
7667
|
var import_fa26 = require("react-icons/fa");
|
|
7667
7668
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
7668
7669
|
function isSubItemGroup(entry) {
|
|
@@ -7681,7 +7682,8 @@ function ITSidebar({
|
|
|
7681
7682
|
onItemClick,
|
|
7682
7683
|
onSubItemClick,
|
|
7683
7684
|
subitemConnector = "dot",
|
|
7684
|
-
header
|
|
7685
|
+
header,
|
|
7686
|
+
notification
|
|
7685
7687
|
}) {
|
|
7686
7688
|
const [expandedItems, setExpandedItems] = (0, import_react35.useState)(/* @__PURE__ */ new Set());
|
|
7687
7689
|
const [isHovering, setIsHovering] = (0, import_react35.useState)(false);
|
|
@@ -7826,6 +7828,87 @@ function ITSidebar({
|
|
|
7826
7828
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("ul", { "aria-labelledby": headingId, className: "flex flex-col gap-0", children: group.items.map(renderSubItem) })
|
|
7827
7829
|
] }, group.id);
|
|
7828
7830
|
};
|
|
7831
|
+
const renderNotification = () => {
|
|
7832
|
+
if (!notification) return null;
|
|
7833
|
+
const {
|
|
7834
|
+
count,
|
|
7835
|
+
icon,
|
|
7836
|
+
label = "Notificaciones",
|
|
7837
|
+
onClick,
|
|
7838
|
+
badgeProps
|
|
7839
|
+
} = notification;
|
|
7840
|
+
const { className: badgeClassName, ...badgeRest } = badgeProps ?? {};
|
|
7841
|
+
const badge = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7842
|
+
ITBadget,
|
|
7843
|
+
{
|
|
7844
|
+
color: "danger",
|
|
7845
|
+
size: "sm",
|
|
7846
|
+
...badgeRest,
|
|
7847
|
+
className: (0, import_clsx40.default)("shadow-md", badgeClassName),
|
|
7848
|
+
children: String(count)
|
|
7849
|
+
}
|
|
7850
|
+
);
|
|
7851
|
+
if (isSidebarCollapsed) {
|
|
7852
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7853
|
+
"button",
|
|
7854
|
+
{
|
|
7855
|
+
type: "button",
|
|
7856
|
+
"aria-label": label,
|
|
7857
|
+
title: label,
|
|
7858
|
+
onClick,
|
|
7859
|
+
className: "relative flex items-center justify-center w-full p-2 mb-1 rounded-xl transition-all duration-300",
|
|
7860
|
+
style: { color: "var(--it-sidebar-icon-color, var(--color-secondary-500))" },
|
|
7861
|
+
onMouseEnter: (e) => {
|
|
7862
|
+
e.currentTarget.style.backgroundColor = "var(--it-sidebar-hover-bg, var(--color-secondary-100))";
|
|
7863
|
+
},
|
|
7864
|
+
onMouseLeave: (e) => {
|
|
7865
|
+
e.currentTarget.style.backgroundColor = "transparent";
|
|
7866
|
+
},
|
|
7867
|
+
children: [
|
|
7868
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "flex items-center justify-center text-[1.05rem]", children: icon }),
|
|
7869
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "absolute top-0.5 right-0.5 pointer-events-none", children: badge })
|
|
7870
|
+
]
|
|
7871
|
+
}
|
|
7872
|
+
);
|
|
7873
|
+
}
|
|
7874
|
+
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7875
|
+
"button",
|
|
7876
|
+
{
|
|
7877
|
+
type: "button",
|
|
7878
|
+
"aria-label": label,
|
|
7879
|
+
title: label,
|
|
7880
|
+
onClick,
|
|
7881
|
+
className: "flex items-center gap-2.5 w-full text-left px-3 py-2 mb-1 rounded-xl transition-all duration-300",
|
|
7882
|
+
style: { color: "var(--it-sidebar-label-color, var(--color-secondary-600))" },
|
|
7883
|
+
onMouseEnter: (e) => {
|
|
7884
|
+
e.currentTarget.style.backgroundColor = "var(--it-sidebar-hover-bg, var(--color-secondary-100))";
|
|
7885
|
+
},
|
|
7886
|
+
onMouseLeave: (e) => {
|
|
7887
|
+
e.currentTarget.style.backgroundColor = "transparent";
|
|
7888
|
+
},
|
|
7889
|
+
children: [
|
|
7890
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7891
|
+
"span",
|
|
7892
|
+
{
|
|
7893
|
+
className: "flex-shrink-0 flex items-center justify-center text-[1.05rem]",
|
|
7894
|
+
style: { color: "var(--it-sidebar-icon-color, #9ca3af)" },
|
|
7895
|
+
children: icon
|
|
7896
|
+
}
|
|
7897
|
+
),
|
|
7898
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7899
|
+
ITText,
|
|
7900
|
+
{
|
|
7901
|
+
as: "span",
|
|
7902
|
+
className: "truncate tracking-wide",
|
|
7903
|
+
style: { fontSize: "0.8rem", fontWeight: 500 },
|
|
7904
|
+
children: label
|
|
7905
|
+
}
|
|
7906
|
+
),
|
|
7907
|
+
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "ml-auto flex-shrink-0", children: badge })
|
|
7908
|
+
]
|
|
7909
|
+
}
|
|
7910
|
+
);
|
|
7911
|
+
};
|
|
7829
7912
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7830
7913
|
"aside",
|
|
7831
7914
|
{
|
|
@@ -7847,9 +7930,11 @@ function ITSidebar({
|
|
|
7847
7930
|
},
|
|
7848
7931
|
children: [
|
|
7849
7932
|
header && !isSidebarCollapsed && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-4 pt-4 pb-1 flex-shrink-0", children: header }),
|
|
7933
|
+
notification && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-4 pt-3 flex-shrink-0", children: renderNotification() }),
|
|
7850
7934
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsx)("nav", { "aria-label": "Componentes de la librer\xEDa", className: "flex-1 py-4 overflow-y-auto overflow-x-hidden custom-scrollbar px-4", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("ul", { className: "space-y-1", children: navigationItems.map((item) => {
|
|
7851
7935
|
const hasSubmenu = !!item.subitems && item.subitems.length > 0;
|
|
7852
7936
|
const submenuId = `it-sidebar-submenu-${item.id}`;
|
|
7937
|
+
const { className: badgeClassName, ...badgeRest } = item.badgeProps ?? {};
|
|
7853
7938
|
return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("li", { className: "relative group/navitem", children: [
|
|
7854
7939
|
/* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
|
|
7855
7940
|
"div",
|
|
@@ -7926,19 +8011,18 @@ function ITSidebar({
|
|
|
7926
8011
|
children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_fa26.FaChevronDown, { className: "w-3 h-3" })
|
|
7927
8012
|
}
|
|
7928
8013
|
),
|
|
7929
|
-
item.badge && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
7930
|
-
|
|
8014
|
+
item.badge != null && item.badge !== "" && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
|
|
8015
|
+
ITBadget,
|
|
7931
8016
|
{
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
7936
|
-
|
|
7937
|
-
|
|
7938
|
-
|
|
7939
|
-
|
|
7940
|
-
|
|
7941
|
-
children: isSidebarCollapsed ? "" : item.badge
|
|
8017
|
+
color: "primary",
|
|
8018
|
+
size: "sm",
|
|
8019
|
+
...badgeRest,
|
|
8020
|
+
className: (0, import_clsx40.default)(
|
|
8021
|
+
"absolute shadow-md",
|
|
8022
|
+
isSidebarCollapsed ? "top-0.5 right-0.5" : "right-3 top-1/2 -translate-y-1/2",
|
|
8023
|
+
badgeClassName
|
|
8024
|
+
),
|
|
8025
|
+
children: String(item.badge)
|
|
7942
8026
|
}
|
|
7943
8027
|
)
|
|
7944
8028
|
]
|
|
@@ -8004,7 +8088,7 @@ function ITSidebar({
|
|
|
8004
8088
|
|
|
8005
8089
|
// src/components/atoms/slide/slide.tsx
|
|
8006
8090
|
var import_react36 = require("react");
|
|
8007
|
-
var
|
|
8091
|
+
var import_clsx41 = __toESM(require("clsx"), 1);
|
|
8008
8092
|
var import_jsx_runtime58 = require("react/jsx-runtime");
|
|
8009
8093
|
function ITSlideToggle({
|
|
8010
8094
|
onToggle,
|
|
@@ -8062,7 +8146,7 @@ function ITSlideToggle({
|
|
|
8062
8146
|
"div",
|
|
8063
8147
|
{
|
|
8064
8148
|
onClick: toggleSwitch,
|
|
8065
|
-
className: (0,
|
|
8149
|
+
className: (0, import_clsx41.default)(
|
|
8066
8150
|
"flex items-center rounded-full p-1 transition-colors duration-300",
|
|
8067
8151
|
container,
|
|
8068
8152
|
disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
|
|
@@ -8081,7 +8165,7 @@ function ITSlideToggle({
|
|
|
8081
8165
|
children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
|
|
8082
8166
|
"div",
|
|
8083
8167
|
{
|
|
8084
|
-
className: (0,
|
|
8168
|
+
className: (0, import_clsx41.default)(
|
|
8085
8169
|
"bg-white rounded-full shadow-md transform transition-transform duration-300 pointer-events-none",
|
|
8086
8170
|
knob,
|
|
8087
8171
|
isOn ? translate : "translate-x-0"
|
|
@@ -8093,7 +8177,7 @@ function ITSlideToggle({
|
|
|
8093
8177
|
}
|
|
8094
8178
|
|
|
8095
8179
|
// src/components/atoms/slider/slider.tsx
|
|
8096
|
-
var
|
|
8180
|
+
var import_clsx42 = __toESM(require("clsx"), 1);
|
|
8097
8181
|
var import_jsx_runtime59 = require("react/jsx-runtime");
|
|
8098
8182
|
function ITSlider({
|
|
8099
8183
|
value,
|
|
@@ -8105,7 +8189,7 @@ function ITSlider({
|
|
|
8105
8189
|
disabled = false,
|
|
8106
8190
|
className
|
|
8107
8191
|
}) {
|
|
8108
|
-
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: (0,
|
|
8192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: (0, import_clsx42.default)("flex flex-col gap-1.5", className), children: [
|
|
8109
8193
|
label && /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(ITText, { as: "label", className: "text-xs font-semibold text-secondary-600 dark:text-secondary-400", children: [
|
|
8110
8194
|
label,
|
|
8111
8195
|
": ",
|
|
@@ -8121,7 +8205,7 @@ function ITSlider({
|
|
|
8121
8205
|
value,
|
|
8122
8206
|
onChange: (e) => onChange(Number(e.target.value)),
|
|
8123
8207
|
disabled,
|
|
8124
|
-
className: (0,
|
|
8208
|
+
className: (0, import_clsx42.default)(
|
|
8125
8209
|
"w-full h-1.5 appearance-none rounded-full outline-none cursor-pointer",
|
|
8126
8210
|
"bg-secondary-200 dark:bg-secondary-700",
|
|
8127
8211
|
"accent-primary-500",
|
|
@@ -8141,7 +8225,7 @@ function ITSlider({
|
|
|
8141
8225
|
}
|
|
8142
8226
|
|
|
8143
8227
|
// src/components/molecules/stat-card/stat-card.tsx
|
|
8144
|
-
var
|
|
8228
|
+
var import_clsx43 = __toESM(require("clsx"), 1);
|
|
8145
8229
|
var import_jsx_runtime60 = require("react/jsx-runtime");
|
|
8146
8230
|
var trendColors = {
|
|
8147
8231
|
up: "text-emerald-600 bg-emerald-50 dark:text-emerald-400 dark:bg-emerald-950/30",
|
|
@@ -8162,7 +8246,7 @@ function ITStatCard({
|
|
|
8162
8246
|
return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
|
|
8163
8247
|
"div",
|
|
8164
8248
|
{
|
|
8165
|
-
className: (0,
|
|
8249
|
+
className: (0, import_clsx43.default)("rounded-xl p-4 border border-slate-100 dark:border-slate-800", color, className),
|
|
8166
8250
|
style,
|
|
8167
8251
|
onClick,
|
|
8168
8252
|
role: onClick ? "button" : void 0,
|
|
@@ -8174,7 +8258,7 @@ function ITStatCard({
|
|
|
8174
8258
|
] }),
|
|
8175
8259
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex items-baseline gap-2", children: [
|
|
8176
8260
|
/* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: "text-2xl font-bold text-slate-800 dark:text-white", children: value }),
|
|
8177
|
-
trend && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: (0,
|
|
8261
|
+
trend && /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(ITText, { as: "span", className: (0, import_clsx43.default)("text-[11px] font-semibold px-1.5 py-0.5 rounded-md", trendColors[trendDirection]), children: trend })
|
|
8178
8262
|
] })
|
|
8179
8263
|
]
|
|
8180
8264
|
}
|
|
@@ -8182,7 +8266,7 @@ function ITStatCard({
|
|
|
8182
8266
|
}
|
|
8183
8267
|
|
|
8184
8268
|
// src/components/molecules/table/table.tsx
|
|
8185
|
-
var
|
|
8269
|
+
var import_clsx44 = __toESM(require("clsx"), 1);
|
|
8186
8270
|
var import_react37 = __toESM(require("react"), 1);
|
|
8187
8271
|
var import_fa27 = require("react-icons/fa");
|
|
8188
8272
|
var import_md2 = require("react-icons/md");
|
|
@@ -8353,7 +8437,7 @@ function ITTable({
|
|
|
8353
8437
|
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "relative w-10 h-5 bg-secondary-300 rounded-full", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8354
8438
|
"div",
|
|
8355
8439
|
{
|
|
8356
|
-
className: (0,
|
|
8440
|
+
className: (0, import_clsx44.default)(
|
|
8357
8441
|
"absolute top-0.5 w-4 h-4 rounded-full transition-all duration-300 shadow-sm",
|
|
8358
8442
|
{
|
|
8359
8443
|
"left-0.5 bg-secondary-400": currentValue === void 0,
|
|
@@ -8544,7 +8628,7 @@ function ITTable({
|
|
|
8544
8628
|
event.preventDefault();
|
|
8545
8629
|
onRowClick(row, event);
|
|
8546
8630
|
};
|
|
8547
|
-
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { ref: rootRef, className: (0,
|
|
8631
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { ref: rootRef, className: (0, import_clsx44.default)("space-y-4 w-full", containerClassName), children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: tableContainer, style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: [
|
|
8548
8632
|
title && /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "px-6 py-5 flex items-center justify-between", style: { backgroundColor: "var(--color-table-rowBg, #ffffff)" }, children: [
|
|
8549
8633
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "h2", className: "text-xl font-bold text-secondary-900 leading-tight", children: title }),
|
|
8550
8634
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center bg-slate-100 dark:bg-slate-800/80 rounded-lg p-0.5 border border-slate-200 dark:border-slate-700/50", children: [
|
|
@@ -8601,7 +8685,7 @@ function ITTable({
|
|
|
8601
8685
|
effectiveView === "cards" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "p-4 space-y-3 max-h-[400px] overflow-y-auto", children: currentData.length > 0 ? currentData.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8602
8686
|
"div",
|
|
8603
8687
|
{
|
|
8604
|
-
className: (0,
|
|
8688
|
+
className: (0, import_clsx44.default)(tableCardHover, onRowClick && tableCardClickable),
|
|
8605
8689
|
role: onRowClick ? "button" : void 0,
|
|
8606
8690
|
tabIndex: onRowClick ? 0 : void 0,
|
|
8607
8691
|
onClick: onRowClick ? handleRowClick(row) : void 0,
|
|
@@ -8609,7 +8693,7 @@ function ITTable({
|
|
|
8609
8693
|
children: renderCard ? renderCard(row) : renderDefaultCard(row)
|
|
8610
8694
|
},
|
|
8611
8695
|
i
|
|
8612
|
-
)) : /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: (0,
|
|
8696
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: (0, import_clsx44.default)(tableEmptyContent, "py-12"), children: [
|
|
8613
8697
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-lg", children: "No se encontraron resultados" }),
|
|
8614
8698
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ITText, { as: "span", className: "text-sm mt-1", children: "Intenta ajustar los filtros" })
|
|
8615
8699
|
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
@@ -8621,7 +8705,7 @@ function ITTable({
|
|
|
8621
8705
|
children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
|
|
8622
8706
|
"table",
|
|
8623
8707
|
{
|
|
8624
|
-
className: (0,
|
|
8708
|
+
className: (0, import_clsx44.default)(
|
|
8625
8709
|
tableLayoutClass,
|
|
8626
8710
|
showVerticalBorder && "[&_th]:border-r [&_th:last-child]:border-r-0 [&_td]:border-r [&_td:last-child]:border-r-0",
|
|
8627
8711
|
showVerticalBorder && (verticalBorderClassname || "[&_th]:border-slate-100 dark:[&_th]:border-slate-700/30 [&_td]:border-slate-100 dark:[&_td]:border-slate-700/30"),
|
|
@@ -8641,7 +8725,7 @@ function ITTable({
|
|
|
8641
8725
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8642
8726
|
"tr",
|
|
8643
8727
|
{
|
|
8644
|
-
className: (0,
|
|
8728
|
+
className: (0, import_clsx44.default)(tableHeaderRow, "dark:text-slate-200"),
|
|
8645
8729
|
"aria-rowindex": isTableVirtual ? 1 : void 0,
|
|
8646
8730
|
children: columns.map((col) => {
|
|
8647
8731
|
const pin = pinnedMeta[col.key];
|
|
@@ -8650,7 +8734,7 @@ function ITTable({
|
|
|
8650
8734
|
"th",
|
|
8651
8735
|
{
|
|
8652
8736
|
scope: "col",
|
|
8653
|
-
className: (0,
|
|
8737
|
+
className: (0, import_clsx44.default)(
|
|
8654
8738
|
tableHeaderCell(col.className, density),
|
|
8655
8739
|
col.align && tableAlignClasses[col.align],
|
|
8656
8740
|
isPinned && "sticky",
|
|
@@ -8684,7 +8768,7 @@ function ITTable({
|
|
|
8684
8768
|
})
|
|
8685
8769
|
}
|
|
8686
8770
|
) }),
|
|
8687
|
-
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tbody", { className: (0,
|
|
8771
|
+
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tbody", { className: (0, import_clsx44.default)(tableBody, "dark:divide-slate-700/30"), children: currentData.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(import_jsx_runtime61.Fragment, { children: [
|
|
8688
8772
|
isTableVirtual && topSpacerHeight > 0 && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("tr", { "aria-hidden": "true", style: { height: topSpacerHeight }, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("td", { colSpan: columnCount, style: { padding: 0, border: 0 } }) }),
|
|
8689
8773
|
windowData.map((row, windowIndex) => {
|
|
8690
8774
|
const absoluteIndex = isTableVirtual ? startIndex + windowIndex : windowIndex;
|
|
@@ -8692,7 +8776,7 @@ function ITTable({
|
|
|
8692
8776
|
"tr",
|
|
8693
8777
|
{
|
|
8694
8778
|
"aria-rowindex": isTableVirtual ? absoluteIndex + 2 : void 0,
|
|
8695
|
-
className: (0,
|
|
8779
|
+
className: (0, import_clsx44.default)(
|
|
8696
8780
|
tableRow,
|
|
8697
8781
|
variant === "striped" && absoluteIndex % 2 === 0 && "bg-secondary-50/40 dark:bg-slate-800/20",
|
|
8698
8782
|
onRowClick && tableRowClickable
|
|
@@ -8708,7 +8792,7 @@ function ITTable({
|
|
|
8708
8792
|
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
|
|
8709
8793
|
"td",
|
|
8710
8794
|
{
|
|
8711
|
-
className: (0,
|
|
8795
|
+
className: (0, import_clsx44.default)(
|
|
8712
8796
|
tableCell(col.className, density),
|
|
8713
8797
|
col.align && tableAlignClasses[col.align],
|
|
8714
8798
|
isPinned && "sticky bg-[var(--color-table-rowBg,white)] group-hover:bg-[var(--color-table-rowHover,var(--color-secondary-50))]",
|
|
@@ -8720,7 +8804,7 @@ function ITTable({
|
|
|
8720
8804
|
...isPinned ? pin.side === "left" ? { left: pin.offset } : { right: pin.offset } : {}
|
|
8721
8805
|
} : void 0,
|
|
8722
8806
|
title: truncateTitle,
|
|
8723
|
-
children: col.type === "actions" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: tableActionsCell, children: renderCellContent(col, row) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: (0,
|
|
8807
|
+
children: col.type === "actions" ? /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: tableActionsCell, children: renderCellContent(col, row) }) : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: (0, import_clsx44.default)(tableCellText, col.truncate && "truncate"), children: renderCellContent(col, row) })
|
|
8724
8808
|
},
|
|
8725
8809
|
`${absoluteIndex}-${col.key}`
|
|
8726
8810
|
);
|
|
@@ -8756,7 +8840,7 @@ function ITTable({
|
|
|
8756
8840
|
}
|
|
8757
8841
|
|
|
8758
8842
|
// src/components/atoms/textarea/textarea.tsx
|
|
8759
|
-
var
|
|
8843
|
+
var import_clsx45 = __toESM(require("clsx"), 1);
|
|
8760
8844
|
var import_jsx_runtime62 = require("react/jsx-runtime");
|
|
8761
8845
|
var resizeMap = {
|
|
8762
8846
|
none: "resize-none",
|
|
@@ -8777,7 +8861,7 @@ function ITTextarea({
|
|
|
8777
8861
|
maxLength,
|
|
8778
8862
|
resize = "vertical"
|
|
8779
8863
|
}) {
|
|
8780
|
-
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: (0,
|
|
8864
|
+
return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: (0, import_clsx45.default)("flex flex-col gap-1.5", className), children: [
|
|
8781
8865
|
label && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(ITText, { as: "label", className: inputLabel(!!error), htmlFor: name, children: label }),
|
|
8782
8866
|
/* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
|
|
8783
8867
|
"textarea",
|
|
@@ -8790,7 +8874,7 @@ function ITTextarea({
|
|
|
8790
8874
|
rows,
|
|
8791
8875
|
disabled,
|
|
8792
8876
|
maxLength,
|
|
8793
|
-
className: (0,
|
|
8877
|
+
className: (0, import_clsx45.default)(
|
|
8794
8878
|
"w-full border border-solid transition-all duration-200 rounded-lg px-3 py-2 text-sm outline-none",
|
|
8795
8879
|
"focus:ring-2",
|
|
8796
8880
|
resizeMap[resize],
|
|
@@ -8805,7 +8889,7 @@ function ITTextarea({
|
|
|
8805
8889
|
|
|
8806
8890
|
// src/components/molecules/tabs/tabs.tsx
|
|
8807
8891
|
var import_react38 = require("react");
|
|
8808
|
-
var
|
|
8892
|
+
var import_clsx46 = require("clsx");
|
|
8809
8893
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8810
8894
|
var ITTabs = ({
|
|
8811
8895
|
items,
|
|
@@ -8822,8 +8906,8 @@ var ITTabs = ({
|
|
|
8822
8906
|
if (onChange) onChange(id);
|
|
8823
8907
|
};
|
|
8824
8908
|
const activeContent = items.find((item) => item.id === activeId)?.content;
|
|
8825
|
-
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: (0,
|
|
8826
|
-
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: (0,
|
|
8909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: (0, import_clsx46.clsx)("w-full", containerClassName), children: [
|
|
8910
|
+
/* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: (0, import_clsx46.clsx)(
|
|
8827
8911
|
"flex border-secondary-200 mb-4",
|
|
8828
8912
|
variant === "line" ? "border-b" : "gap-2 p-1 bg-secondary-100 rounded-lg w-fit",
|
|
8829
8913
|
className
|
|
@@ -8834,7 +8918,7 @@ var ITTabs = ({
|
|
|
8834
8918
|
{
|
|
8835
8919
|
onClick: () => handleTabClick(item.id, item.disabled),
|
|
8836
8920
|
disabled: item.disabled,
|
|
8837
|
-
className: (0,
|
|
8921
|
+
className: (0, import_clsx46.clsx)(
|
|
8838
8922
|
"flex items-center gap-2 px-4 py-2 text-sm font-medium transition-all duration-200 outline-none",
|
|
8839
8923
|
// LINE VARIANT
|
|
8840
8924
|
variant === "line" && [
|
|
@@ -8862,7 +8946,7 @@ var ITTabs = ({
|
|
|
8862
8946
|
var tabs_default = ITTabs;
|
|
8863
8947
|
|
|
8864
8948
|
// src/components/organisms/triple-filter/tripleFilter.tsx
|
|
8865
|
-
var
|
|
8949
|
+
var import_clsx47 = __toESM(require("clsx"), 1);
|
|
8866
8950
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
8867
8951
|
var colorMap2 = {
|
|
8868
8952
|
primary: "text-primary-600",
|
|
@@ -8885,14 +8969,14 @@ var ITTripleFilter = ({
|
|
|
8885
8969
|
return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
8886
8970
|
"div",
|
|
8887
8971
|
{
|
|
8888
|
-
className: (0,
|
|
8972
|
+
className: (0, import_clsx47.default)("flex bg-slate-100 p-1 rounded-xl gap-1 w-fit", className),
|
|
8889
8973
|
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
|
|
8890
8974
|
"button",
|
|
8891
8975
|
{
|
|
8892
8976
|
onClick: () => onChange(option.value),
|
|
8893
|
-
className: (0,
|
|
8977
|
+
className: (0, import_clsx47.default)(
|
|
8894
8978
|
"px-4 py-1.5 rounded-lg text-[10px] font-bold uppercase tracking-wider transition-all duration-200 whitespace-nowrap",
|
|
8895
|
-
value === option.value ? (0,
|
|
8979
|
+
value === option.value ? (0, import_clsx47.default)("bg-white shadow-sm", colorMap2[color]) : "text-slate-400 hover:text-slate-600"
|
|
8896
8980
|
),
|
|
8897
8981
|
children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(ITText, { as: "span", children: option.label })
|
|
8898
8982
|
},
|
|
@@ -8914,7 +8998,7 @@ var positionStyles = {
|
|
|
8914
8998
|
};
|
|
8915
8999
|
|
|
8916
9000
|
// src/components/organisms/toast/toast.tsx
|
|
8917
|
-
var
|
|
9001
|
+
var import_clsx48 = __toESM(require("clsx"), 1);
|
|
8918
9002
|
var import_react39 = require("react");
|
|
8919
9003
|
var import_fa28 = require("react-icons/fa");
|
|
8920
9004
|
var import_jsx_runtime65 = require("react/jsx-runtime");
|
|
@@ -8960,7 +9044,7 @@ function ITToast({
|
|
|
8960
9044
|
return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
|
|
8961
9045
|
"div",
|
|
8962
9046
|
{
|
|
8963
|
-
className: (0,
|
|
9047
|
+
className: (0, import_clsx48.default)(
|
|
8964
9048
|
"fixed z-[80] p-4 rounded-xl shadow-xl flex items-center justify-between gap-4 transition-all duration-300 text-white min-w-[300px]",
|
|
8965
9049
|
positionStyles[position],
|
|
8966
9050
|
{
|
|
@@ -8993,7 +9077,7 @@ function ITToast({
|
|
|
8993
9077
|
|
|
8994
9078
|
// src/components/molecules/wysiwyg/wysiwyg.tsx
|
|
8995
9079
|
var import_react41 = require("react");
|
|
8996
|
-
var
|
|
9080
|
+
var import_clsx50 = __toESM(require("clsx"), 1);
|
|
8997
9081
|
var import_fa29 = require("react-icons/fa");
|
|
8998
9082
|
|
|
8999
9083
|
// src/components/molecules/wysiwyg/wysiwyg.props.ts
|
|
@@ -9009,7 +9093,7 @@ var toolbarActions = [
|
|
|
9009
9093
|
|
|
9010
9094
|
// src/components/atoms/tooltip/tooltip.tsx
|
|
9011
9095
|
var import_react40 = require("react");
|
|
9012
|
-
var
|
|
9096
|
+
var import_clsx49 = __toESM(require("clsx"), 1);
|
|
9013
9097
|
var import_jsx_runtime66 = require("react/jsx-runtime");
|
|
9014
9098
|
var positionClasses2 = {
|
|
9015
9099
|
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
@@ -9042,14 +9126,14 @@ function ITTooltip({
|
|
|
9042
9126
|
return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
|
|
9043
9127
|
"div",
|
|
9044
9128
|
{
|
|
9045
|
-
className: (0,
|
|
9129
|
+
className: (0, import_clsx49.default)("relative inline-flex", className),
|
|
9046
9130
|
onMouseEnter: handleMouseEnter,
|
|
9047
9131
|
onMouseLeave: handleMouseLeave,
|
|
9048
9132
|
children: [
|
|
9049
9133
|
children,
|
|
9050
|
-
visible && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: (0,
|
|
9134
|
+
visible && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: (0, import_clsx49.default)("absolute z-[70] pointer-events-none", positionClasses2[position]), children: [
|
|
9051
9135
|
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "bg-slate-800 dark:bg-slate-700 text-white text-xs rounded-lg px-2.5 py-1.5 whitespace-nowrap shadow-lg", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(ITText, { as: "span", children: content }) }),
|
|
9052
|
-
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: (0,
|
|
9136
|
+
/* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: (0, import_clsx49.default)("absolute", arrowClasses[position]) })
|
|
9053
9137
|
] })
|
|
9054
9138
|
]
|
|
9055
9139
|
}
|
|
@@ -9493,7 +9577,7 @@ function ITWysiwyg({
|
|
|
9493
9577
|
"aria-pressed": isActive,
|
|
9494
9578
|
onMouseDown: (e) => e.preventDefault(),
|
|
9495
9579
|
onClick: () => runAction(action),
|
|
9496
|
-
className: (0,
|
|
9580
|
+
className: (0, import_clsx50.default)(
|
|
9497
9581
|
"flex h-8 w-8 items-center justify-center rounded-md text-[13px] transition-colors",
|
|
9498
9582
|
isActive ? "bg-primary-100 text-primary-700 dark:bg-primary-900/40 dark:text-primary-300" : "text-secondary-500 hover:bg-secondary-200/70 hover:text-secondary-800 dark:text-secondary-400 dark:hover:bg-slate-700 dark:hover:text-secondary-200",
|
|
9499
9583
|
isLocked && "cursor-not-allowed opacity-40"
|
|
@@ -9507,7 +9591,7 @@ function ITWysiwyg({
|
|
|
9507
9591
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsxs)(
|
|
9508
9592
|
"div",
|
|
9509
9593
|
{
|
|
9510
|
-
className: (0,
|
|
9594
|
+
className: (0, import_clsx50.default)(
|
|
9511
9595
|
"w-full border border-solid rounded-lg overflow-hidden transition-all duration-200",
|
|
9512
9596
|
error ? "ring-2 ring-danger-100 border-danger-500" : "border-secondary-300 focus-within:ring-2 focus-within:border-primary-500 focus-within:ring-primary-100",
|
|
9513
9597
|
isLocked && "opacity-50 cursor-not-allowed bg-secondary-100 dark:bg-slate-800"
|
|
@@ -9516,7 +9600,7 @@ function ITWysiwyg({
|
|
|
9516
9600
|
/* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
|
|
9517
9601
|
"div",
|
|
9518
9602
|
{
|
|
9519
|
-
className: (0,
|
|
9603
|
+
className: (0, import_clsx50.default)(
|
|
9520
9604
|
"flex flex-wrap items-center gap-0.5 px-1.5 py-1 border-b border-secondary-200 bg-secondary-50 dark:bg-slate-800",
|
|
9521
9605
|
isLocked && "bg-secondary-100 dark:bg-slate-900"
|
|
9522
9606
|
),
|
|
@@ -9543,7 +9627,7 @@ function ITWysiwyg({
|
|
|
9543
9627
|
focusedRef.current = false;
|
|
9544
9628
|
emitChange();
|
|
9545
9629
|
},
|
|
9546
|
-
className: (0,
|
|
9630
|
+
className: (0, import_clsx50.default)(
|
|
9547
9631
|
"outline-none bg-white dark:bg-slate-900 text-secondary-800 dark:text-secondary-200",
|
|
9548
9632
|
"empty:before:content-[attr(data-placeholder)] empty:before:text-secondary-400 empty:before:pointer-events-none empty:before:select-none",
|
|
9549
9633
|
"[&_ul]:list-disc [&_ol]:list-decimal [&_ul]:pl-5 [&_ol]:pl-5 [&_li]:ml-4",
|
|
@@ -9567,7 +9651,7 @@ function ITWysiwyg({
|
|
|
9567
9651
|
// src/components/organisms/dropfile/dropfile.tsx
|
|
9568
9652
|
var import_react42 = require("react");
|
|
9569
9653
|
var import_react_dropzone = require("react-dropzone");
|
|
9570
|
-
var
|
|
9654
|
+
var import_clsx51 = __toESM(require("clsx"), 1);
|
|
9571
9655
|
|
|
9572
9656
|
// src/components/organisms/dropfile/dropfile.props.ts
|
|
9573
9657
|
var FileTypeEnum = /* @__PURE__ */ ((FileTypeEnum2) => {
|
|
@@ -9870,7 +9954,7 @@ var ITDropfile = ({
|
|
|
9870
9954
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(ITText, { as: "p", className: "text-[10px] text-secondary-500", children: selectedFile ? (selectedFile.size / 1024 / 1024).toFixed(2) + " MB" : "" })
|
|
9871
9955
|
] })
|
|
9872
9956
|
] }) }),
|
|
9873
|
-
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: (0,
|
|
9957
|
+
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)("div", { className: (0, import_clsx51.default)("relative bg-secondary-100 flex items-center justify-center", !contentClassName ? "max-h-[200px] min-h-[100px] overflow-auto" : contentClassName), children: selectedFile && fileType?.startsWith("image/") || !selectedFile && imagePreview ? /* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9874
9958
|
"img",
|
|
9875
9959
|
{
|
|
9876
9960
|
src: imagePreview,
|
|
@@ -9934,7 +10018,7 @@ var ITDropfile = ({
|
|
|
9934
10018
|
] }) });
|
|
9935
10019
|
if (view === "button") {
|
|
9936
10020
|
const hasFile = Boolean(selectedFile || imagePreview);
|
|
9937
|
-
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0,
|
|
10021
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0, import_clsx51.default)("inline-block", containerClassName), children: [
|
|
9938
10022
|
/* @__PURE__ */ (0, import_jsx_runtime68.jsx)(
|
|
9939
10023
|
ITButton,
|
|
9940
10024
|
{
|
|
@@ -9956,7 +10040,7 @@ var ITDropfile = ({
|
|
|
9956
10040
|
] }) })
|
|
9957
10041
|
] });
|
|
9958
10042
|
}
|
|
9959
|
-
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0,
|
|
10043
|
+
return /* @__PURE__ */ (0, import_jsx_runtime68.jsxs)("div", { className: (0, import_clsx51.default)("w-full transition-all duration-300", containerClassName), children: [
|
|
9960
10044
|
headerRow,
|
|
9961
10045
|
dropZoneOrPreview
|
|
9962
10046
|
] });
|
|
@@ -9965,7 +10049,7 @@ var dropfile_default = ITDropfile;
|
|
|
9965
10049
|
|
|
9966
10050
|
// src/components/templates/layout/layout.tsx
|
|
9967
10051
|
var import_react44 = require("react");
|
|
9968
|
-
var
|
|
10052
|
+
var import_clsx52 = __toESM(require("clsx"), 1);
|
|
9969
10053
|
|
|
9970
10054
|
// src/components/organisms/topbar/topbar.tsx
|
|
9971
10055
|
var import_fa30 = require("react-icons/fa");
|
|
@@ -10223,7 +10307,7 @@ function ITLayout({
|
|
|
10223
10307
|
)
|
|
10224
10308
|
}
|
|
10225
10309
|
),
|
|
10226
|
-
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: (0,
|
|
10310
|
+
/* @__PURE__ */ (0, import_jsx_runtime70.jsx)("main", { className: "flex-1 overflow-y-auto w-full custom-scrollbar relative z-0", children: /* @__PURE__ */ (0, import_jsx_runtime70.jsx)("div", { className: (0, import_clsx52.default)("mx-auto w-full max-w-7xl px-4 sm:px-6 lg:px-8 py-6 h-full", contentClassName), children }) })
|
|
10227
10311
|
]
|
|
10228
10312
|
}
|
|
10229
10313
|
)
|
|
@@ -10316,7 +10400,7 @@ function ITLoader({
|
|
|
10316
10400
|
}
|
|
10317
10401
|
|
|
10318
10402
|
// src/components/molecules/stepper/stepper.tsx
|
|
10319
|
-
var
|
|
10403
|
+
var import_clsx53 = __toESM(require("clsx"), 1);
|
|
10320
10404
|
var import_react45 = require("react");
|
|
10321
10405
|
var import_fa31 = require("react-icons/fa");
|
|
10322
10406
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
@@ -10393,7 +10477,7 @@ function ITStepper({
|
|
|
10393
10477
|
}
|
|
10394
10478
|
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ITText, { as: "span", className: "text-sm font-semibold", children: index + 1 });
|
|
10395
10479
|
};
|
|
10396
|
-
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: (0,
|
|
10480
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: (0, import_clsx53.default)("w-full max-w-5xl mx-auto px-4", containerClassName), children: [
|
|
10397
10481
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "relative mb-8", children: [
|
|
10398
10482
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10399
10483
|
"div",
|
|
@@ -10428,7 +10512,7 @@ function ITStepper({
|
|
|
10428
10512
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
|
|
10429
10513
|
"div",
|
|
10430
10514
|
{
|
|
10431
|
-
className: (0,
|
|
10515
|
+
className: (0, import_clsx53.default)(
|
|
10432
10516
|
"flex items-center justify-center w-11 h-11 rounded-full border-2 transition-all duration-300 transform",
|
|
10433
10517
|
hasIcon && "p-2",
|
|
10434
10518
|
isCompleted && "bg-slate-400 border-slate-400 text-white scale-100 shadow",
|
|
@@ -10443,7 +10527,7 @@ function ITStepper({
|
|
|
10443
10527
|
ITText,
|
|
10444
10528
|
{
|
|
10445
10529
|
as: "span",
|
|
10446
|
-
className: (0,
|
|
10530
|
+
className: (0, import_clsx53.default)(
|
|
10447
10531
|
"mt-2 text-xs sm:text-sm font-medium transition-colors text-center",
|
|
10448
10532
|
isCompleted ? "text-slate-400" : !isActive && "text-secondary-400"
|
|
10449
10533
|
),
|
|
@@ -10464,7 +10548,7 @@ function ITStepper({
|
|
|
10464
10548
|
tabIndex: -1,
|
|
10465
10549
|
role: "region",
|
|
10466
10550
|
"aria-labelledby": `step-${currentStep}`,
|
|
10467
|
-
className: (0,
|
|
10551
|
+
className: (0, import_clsx53.default)(
|
|
10468
10552
|
stepClassName,
|
|
10469
10553
|
"bg-white border border-secondary-100 rounded-2xl shadow-lg min-h-[280px] transition-transform duration-400 no-scrollbar p-6",
|
|
10470
10554
|
scrollableContent && "overflow-y-auto hide-scrollbar"
|