injast-core 1.0.81 → 1.0.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -1
- package/dist/components/index.js +1143 -1
- package/dist/constants/index.js +4 -0
- package/dist/headphone-FHILIBNI.svg +7 -0
- package/dist/index.js +1160 -17
- package/dist/types/components/index.d.ts +19 -0
- package/dist/types/constants/index.d.ts +1 -0
- package/dist/types/mobile-app-template/components/mobile-app-footer-nav.d.ts +16 -0
- package/dist/types/mobile-app-template/components/mobile-app-layout.d.ts +19 -0
- package/dist/types/mobile-app-template/index.d.ts +2 -0
- package/dist/types/shared/components/Badge.d.ts +7 -0
- package/dist/types/shared/components/SidebarRow.d.ts +40 -0
- package/dist/types/shared/components/TemplateDashboardSidebar.d.ts +24 -0
- package/dist/types/shared/components/app-page-footer.d.ts +14 -0
- package/dist/types/shared/components/app-page-header.d.ts +28 -0
- package/dist/types/shared/components/template-dashboard/TemplateDashboard.d.ts +2 -0
- package/dist/types/shared/components/template-dashboard/TemplateDashboard.types.d.ts +18 -0
- package/dist/types/shared/components/template-dashboard/index.d.ts +3 -0
- package/dist/types/shared/components/template-dashboard-header/TemplateDashboardHeader.d.ts +3 -0
- package/dist/types/shared/components/template-dashboard-header/TemplateDashboardHeader.styles.d.ts +99 -0
- package/dist/types/shared/components/template-dashboard-header/TemplateDashboardHeader.types.d.ts +8 -0
- package/dist/types/shared/components/template-dashboard-header/index.d.ts +3 -0
- package/dist/types/theme/colors.d.ts +36 -0
- package/guidelines/Guidelines.md +46 -14
- package/guidelines/ai-index.md +111 -0
- package/guidelines/components/app-templates.md +103 -0
- package/guidelines/components/data-display.md +1 -1
- package/guidelines/components/date-inputs.md +2 -2
- package/guidelines/components/feedback.md +9 -3
- package/guidelines/components/forms.md +3 -1
- package/guidelines/components/layout.md +7 -5
- package/guidelines/foundations/spacing.md +3 -3
- package/guidelines/setup.md +14 -3
- package/package.json +6 -3
- package/skills/injast-app-builder/SKILL.md +54 -0
- package/skills/injast-app-builder/agents/openai.yaml +4 -0
package/dist/components/index.js
CHANGED
|
@@ -1436,6 +1436,9 @@ var Tab_default = Tab;
|
|
|
1436
1436
|
// src/constants/stepConnectorClasses.ts
|
|
1437
1437
|
import { stepConnectorClasses as MuiStepConnectorClasses } from "@mui/material";
|
|
1438
1438
|
|
|
1439
|
+
// src/constants/index.ts
|
|
1440
|
+
var APP_LAYOUT_MAX_WIDTH = 550;
|
|
1441
|
+
|
|
1439
1442
|
// src/components/CounterBoxInput.tsx
|
|
1440
1443
|
import { useEffect as useEffect3, useMemo, useState as useState3 } from "react";
|
|
1441
1444
|
import { Add, Minus } from "iconsax-react";
|
|
@@ -3130,11 +3133,1140 @@ var MultiSelect = ({
|
|
|
3130
3133
|
] });
|
|
3131
3134
|
};
|
|
3132
3135
|
var MultiSelect_default = MultiSelect;
|
|
3136
|
+
|
|
3137
|
+
// src/shared/components/Badge.tsx
|
|
3138
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
3139
|
+
var Badge = ({ content, color = "#FACC15", textColor = "#1F2937" }) => {
|
|
3140
|
+
if (content == null) return null;
|
|
3141
|
+
const displayText = typeof content === "number" && content > 99 ? "+99" : String(content);
|
|
3142
|
+
return /* @__PURE__ */ jsx54(
|
|
3143
|
+
Box_default,
|
|
3144
|
+
{
|
|
3145
|
+
sx: {
|
|
3146
|
+
minWidth: 20,
|
|
3147
|
+
height: 20,
|
|
3148
|
+
px: "6px",
|
|
3149
|
+
borderRadius: "999px",
|
|
3150
|
+
bgcolor: color,
|
|
3151
|
+
color: textColor,
|
|
3152
|
+
display: "inline-flex",
|
|
3153
|
+
alignItems: "center",
|
|
3154
|
+
justifyContent: "center",
|
|
3155
|
+
fontFamily: '"IRANYekanXFaNum", "IRANYekanX", sans-serif',
|
|
3156
|
+
fontSize: 12,
|
|
3157
|
+
fontWeight: 700,
|
|
3158
|
+
lineHeight: 1,
|
|
3159
|
+
flexShrink: 0
|
|
3160
|
+
},
|
|
3161
|
+
children: displayText
|
|
3162
|
+
}
|
|
3163
|
+
);
|
|
3164
|
+
};
|
|
3165
|
+
var Badge_default = Badge;
|
|
3166
|
+
|
|
3167
|
+
// src/shared/components/SidebarRow.tsx
|
|
3168
|
+
import { ArrowDown2 as ArrowDown22, Notification, Setting2 } from "iconsax-reactjs";
|
|
3169
|
+
import { Fragment as Fragment5, jsx as jsx55, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
3170
|
+
var SidebarDot = ({
|
|
3171
|
+
collapsed,
|
|
3172
|
+
disabled = false
|
|
3173
|
+
}) => /* @__PURE__ */ jsx55(
|
|
3174
|
+
Box_default,
|
|
3175
|
+
{
|
|
3176
|
+
sx: {
|
|
3177
|
+
width: collapsed ? 10 : 4,
|
|
3178
|
+
height: collapsed ? 10 : 4,
|
|
3179
|
+
borderRadius: "50%",
|
|
3180
|
+
bgcolor: disabled ? "rgba(255,255,255,0.30)" : "#FFFFFFE6",
|
|
3181
|
+
flexShrink: 0
|
|
3182
|
+
}
|
|
3183
|
+
}
|
|
3184
|
+
);
|
|
3185
|
+
var SidebarItemIcon = ({
|
|
3186
|
+
icon,
|
|
3187
|
+
color = "white"
|
|
3188
|
+
}) => {
|
|
3189
|
+
const IconComponent = icon === "notification" ? Notification : Setting2;
|
|
3190
|
+
return /* @__PURE__ */ jsx55(IconComponent, { size: 20, color, variant: "Linear" });
|
|
3191
|
+
};
|
|
3192
|
+
var SidebarRow = ({
|
|
3193
|
+
active = false,
|
|
3194
|
+
badgeColor = "#FACC15",
|
|
3195
|
+
badgeTextColor,
|
|
3196
|
+
badgeContent,
|
|
3197
|
+
child = false,
|
|
3198
|
+
collapsed,
|
|
3199
|
+
disabled = false,
|
|
3200
|
+
expanded = false,
|
|
3201
|
+
hasChildren = false,
|
|
3202
|
+
icon,
|
|
3203
|
+
onClick,
|
|
3204
|
+
title
|
|
3205
|
+
}) => {
|
|
3206
|
+
const resolvedIcon = icon;
|
|
3207
|
+
const disabledColor = "rgba(255,255,255,0.38)";
|
|
3208
|
+
const itemColor = disabled ? disabledColor : "white";
|
|
3209
|
+
const rowHeight = child ? "40px" : "48px";
|
|
3210
|
+
return /* @__PURE__ */ jsx55(
|
|
3211
|
+
Box_default,
|
|
3212
|
+
{
|
|
3213
|
+
component: "button",
|
|
3214
|
+
onClick: disabled ? void 0 : onClick,
|
|
3215
|
+
sx: {
|
|
3216
|
+
width: "100%",
|
|
3217
|
+
height: rowHeight,
|
|
3218
|
+
minHeight: rowHeight,
|
|
3219
|
+
boxSizing: "border-box",
|
|
3220
|
+
border: 0,
|
|
3221
|
+
outline: "none",
|
|
3222
|
+
appearance: "none",
|
|
3223
|
+
WebkitTapHighlightColor: "transparent",
|
|
3224
|
+
borderRadius: "8px",
|
|
3225
|
+
bgcolor: active && !disabled ? "rgba(255,255,255,0.10)" : "transparent",
|
|
3226
|
+
color: itemColor,
|
|
3227
|
+
display: "flex",
|
|
3228
|
+
alignItems: "center",
|
|
3229
|
+
justifyContent: collapsed ? "center" : "space-between",
|
|
3230
|
+
p: 0,
|
|
3231
|
+
cursor: disabled ? "not-allowed" : "pointer",
|
|
3232
|
+
transition: "background-color 0.2s ease",
|
|
3233
|
+
fontWeight: 400,
|
|
3234
|
+
"&:hover": {
|
|
3235
|
+
bgcolor: disabled ? "transparent" : active ? "rgba(255,255,255,0.10)" : "rgba(255,255,255,0.06)",
|
|
3236
|
+
fontWeight: 400
|
|
3237
|
+
},
|
|
3238
|
+
"&:disabled": {
|
|
3239
|
+
color: disabledColor
|
|
3240
|
+
},
|
|
3241
|
+
"&:focus": {
|
|
3242
|
+
outline: "none"
|
|
3243
|
+
},
|
|
3244
|
+
"&:focus-visible": {
|
|
3245
|
+
outline: "none"
|
|
3246
|
+
}
|
|
3247
|
+
},
|
|
3248
|
+
children: collapsed ? /* @__PURE__ */ jsxs10(
|
|
3249
|
+
Box_default,
|
|
3250
|
+
{
|
|
3251
|
+
sx: {
|
|
3252
|
+
position: "relative",
|
|
3253
|
+
display: "inline-flex",
|
|
3254
|
+
alignItems: "center",
|
|
3255
|
+
justifyContent: "center"
|
|
3256
|
+
},
|
|
3257
|
+
children: [
|
|
3258
|
+
resolvedIcon ? /* @__PURE__ */ jsx55(SidebarItemIcon, { icon: resolvedIcon, color: itemColor }) : null,
|
|
3259
|
+
badgeContent != null && !disabled ? /* @__PURE__ */ jsx55(
|
|
3260
|
+
Box_default,
|
|
3261
|
+
{
|
|
3262
|
+
sx: {
|
|
3263
|
+
position: "absolute",
|
|
3264
|
+
top: -10,
|
|
3265
|
+
insetInlineEnd: -14
|
|
3266
|
+
},
|
|
3267
|
+
children: /* @__PURE__ */ jsx55(Badge_default, { content: badgeContent, color: badgeColor, textColor: badgeTextColor })
|
|
3268
|
+
}
|
|
3269
|
+
) : null
|
|
3270
|
+
]
|
|
3271
|
+
}
|
|
3272
|
+
) : /* @__PURE__ */ jsxs10(Fragment5, { children: [
|
|
3273
|
+
/* @__PURE__ */ jsxs10(
|
|
3274
|
+
Box_default,
|
|
3275
|
+
{
|
|
3276
|
+
sx: {
|
|
3277
|
+
display: "flex",
|
|
3278
|
+
alignItems: "center",
|
|
3279
|
+
gap: child ? "8px" : "12px",
|
|
3280
|
+
minWidth: 0,
|
|
3281
|
+
paddingInlineEnd: child ? "16px" : "12px",
|
|
3282
|
+
paddingInlineStart: child ? "32px" : "12px"
|
|
3283
|
+
},
|
|
3284
|
+
children: [
|
|
3285
|
+
resolvedIcon ? /* @__PURE__ */ jsx55(SidebarItemIcon, { icon: resolvedIcon, color: itemColor }) : child ? /* @__PURE__ */ jsx55(SidebarDot, { collapsed, disabled }) : null,
|
|
3286
|
+
/* @__PURE__ */ jsx55(
|
|
3287
|
+
Typography_default,
|
|
3288
|
+
{
|
|
3289
|
+
fontSize: 14,
|
|
3290
|
+
sx: {
|
|
3291
|
+
color: itemColor,
|
|
3292
|
+
fontWeight: active && !disabled ? 500 : 400,
|
|
3293
|
+
whiteSpace: "nowrap",
|
|
3294
|
+
overflow: "hidden",
|
|
3295
|
+
textOverflow: "ellipsis"
|
|
3296
|
+
},
|
|
3297
|
+
children: title
|
|
3298
|
+
}
|
|
3299
|
+
)
|
|
3300
|
+
]
|
|
3301
|
+
}
|
|
3302
|
+
),
|
|
3303
|
+
hasChildren || badgeContent != null ? /* @__PURE__ */ jsxs10(
|
|
3304
|
+
Box_default,
|
|
3305
|
+
{
|
|
3306
|
+
sx: {
|
|
3307
|
+
marginInlineStart: "12px",
|
|
3308
|
+
marginInlineEnd: "12px",
|
|
3309
|
+
display: "flex",
|
|
3310
|
+
alignItems: "center",
|
|
3311
|
+
justifyContent: "center",
|
|
3312
|
+
gap: "8px",
|
|
3313
|
+
flexShrink: 0
|
|
3314
|
+
},
|
|
3315
|
+
children: [
|
|
3316
|
+
badgeContent != null && !disabled ? /* @__PURE__ */ jsx55(Badge_default, { content: badgeContent, color: badgeColor, textColor: badgeTextColor }) : null,
|
|
3317
|
+
hasChildren ? /* @__PURE__ */ jsx55(
|
|
3318
|
+
ArrowDown22,
|
|
3319
|
+
{
|
|
3320
|
+
size: 16,
|
|
3321
|
+
color: itemColor,
|
|
3322
|
+
variant: "Linear",
|
|
3323
|
+
style: {
|
|
3324
|
+
transition: "transform 0.2s ease",
|
|
3325
|
+
transform: expanded ? "rotate(180deg)" : "rotate(0deg)"
|
|
3326
|
+
}
|
|
3327
|
+
}
|
|
3328
|
+
) : null
|
|
3329
|
+
]
|
|
3330
|
+
}
|
|
3331
|
+
) : null
|
|
3332
|
+
] })
|
|
3333
|
+
}
|
|
3334
|
+
);
|
|
3335
|
+
};
|
|
3336
|
+
var SidebarRow_default = SidebarRow;
|
|
3337
|
+
|
|
3338
|
+
// src/shared/components/TemplateDashboardSidebar.tsx
|
|
3339
|
+
import { useState as useState8 } from "react";
|
|
3340
|
+
import { ArrowLeft, ArrowRight } from "iconsax-reactjs";
|
|
3341
|
+
import { jsx as jsx56, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
3342
|
+
var templateDashboardSidebarWidths = {
|
|
3343
|
+
expanded: 220,
|
|
3344
|
+
collapsed: 76
|
|
3345
|
+
};
|
|
3346
|
+
var TemplateDashboardSidebar = ({
|
|
3347
|
+
activeItemId,
|
|
3348
|
+
badgeColor = "#FACC15",
|
|
3349
|
+
badgeTextColor,
|
|
3350
|
+
buttonColor = "#0F8DDC",
|
|
3351
|
+
collapsed = false,
|
|
3352
|
+
items = [],
|
|
3353
|
+
logo,
|
|
3354
|
+
logoCollapsed,
|
|
3355
|
+
onItemClick,
|
|
3356
|
+
onToggleCollapse,
|
|
3357
|
+
sidebarColor,
|
|
3358
|
+
title = "\u062A\u0646\u0638\u06CC\u0645\u0627\u062A"
|
|
3359
|
+
}) => {
|
|
3360
|
+
const resolvedItems = items.length > 0 ? items : [
|
|
3361
|
+
{
|
|
3362
|
+
id: "settings",
|
|
3363
|
+
title,
|
|
3364
|
+
icon: "settings"
|
|
3365
|
+
}
|
|
3366
|
+
];
|
|
3367
|
+
const [expandedItemIds, setExpandedItemIds] = useState8(
|
|
3368
|
+
resolvedItems.length > 0 ? [resolvedItems[0].id] : []
|
|
3369
|
+
);
|
|
3370
|
+
const handleParentClick = (item) => {
|
|
3371
|
+
if (item.disabled) return;
|
|
3372
|
+
if (!item.children?.length) {
|
|
3373
|
+
onItemClick?.(item);
|
|
3374
|
+
return;
|
|
3375
|
+
}
|
|
3376
|
+
setExpandedItemIds(
|
|
3377
|
+
(prev) => prev.includes(item.id) ? prev.filter((id) => id !== item.id) : [...prev, item.id]
|
|
3378
|
+
);
|
|
3379
|
+
};
|
|
3380
|
+
return /* @__PURE__ */ jsxs11(
|
|
3381
|
+
Box_default,
|
|
3382
|
+
{
|
|
3383
|
+
component: "aside",
|
|
3384
|
+
sx: {
|
|
3385
|
+
position: "relative",
|
|
3386
|
+
width: "100%",
|
|
3387
|
+
height: "100%",
|
|
3388
|
+
background: sidebarColor ?? "var(--Blue-primary, #0661A2)",
|
|
3389
|
+
color: "white",
|
|
3390
|
+
display: "flex",
|
|
3391
|
+
flexDirection: "column",
|
|
3392
|
+
overflow: "visible",
|
|
3393
|
+
px: collapsed ? 0.8 : 1.05,
|
|
3394
|
+
pt: logo || logoCollapsed ? 0 : "64px",
|
|
3395
|
+
pb: 1.7
|
|
3396
|
+
},
|
|
3397
|
+
children: [
|
|
3398
|
+
logo || logoCollapsed ? /* @__PURE__ */ jsx56(
|
|
3399
|
+
Box_default,
|
|
3400
|
+
{
|
|
3401
|
+
sx: {
|
|
3402
|
+
display: "flex",
|
|
3403
|
+
alignItems: "center",
|
|
3404
|
+
justifyContent: collapsed ? "center" : "flex-start",
|
|
3405
|
+
px: collapsed ? 0 : 1.5,
|
|
3406
|
+
py: 2,
|
|
3407
|
+
minHeight: collapsed ? 56 : 80,
|
|
3408
|
+
overflow: "hidden",
|
|
3409
|
+
flexShrink: 0
|
|
3410
|
+
},
|
|
3411
|
+
children: collapsed && logoCollapsed ? logoCollapsed : logo
|
|
3412
|
+
}
|
|
3413
|
+
) : null,
|
|
3414
|
+
/* @__PURE__ */ jsx56(
|
|
3415
|
+
Box_default,
|
|
3416
|
+
{
|
|
3417
|
+
component: "nav",
|
|
3418
|
+
sx: {
|
|
3419
|
+
display: "flex",
|
|
3420
|
+
flexDirection: "column",
|
|
3421
|
+
gap: "4px",
|
|
3422
|
+
minHeight: 0,
|
|
3423
|
+
overflowY: "auto",
|
|
3424
|
+
"&::-webkit-scrollbar": {
|
|
3425
|
+
width: 6
|
|
3426
|
+
},
|
|
3427
|
+
"&::-webkit-scrollbar-thumb": {
|
|
3428
|
+
bgcolor: "#73A8CF",
|
|
3429
|
+
borderRadius: 999
|
|
3430
|
+
}
|
|
3431
|
+
},
|
|
3432
|
+
children: resolvedItems.map((item) => {
|
|
3433
|
+
const hasChildren = Boolean(item.children?.length);
|
|
3434
|
+
const isExpanded = expandedItemIds.includes(item.id);
|
|
3435
|
+
return /* @__PURE__ */ jsxs11(Box_default, { children: [
|
|
3436
|
+
/* @__PURE__ */ jsx56(
|
|
3437
|
+
SidebarRow_default,
|
|
3438
|
+
{
|
|
3439
|
+
title: item.title,
|
|
3440
|
+
icon: item.icon,
|
|
3441
|
+
badgeColor,
|
|
3442
|
+
badgeTextColor,
|
|
3443
|
+
badgeContent: hasChildren && isExpanded && !collapsed ? void 0 : item.badgeContent,
|
|
3444
|
+
disabled: item.disabled,
|
|
3445
|
+
collapsed,
|
|
3446
|
+
hasChildren,
|
|
3447
|
+
expanded: isExpanded,
|
|
3448
|
+
active: item.id === activeItemId,
|
|
3449
|
+
onClick: () => handleParentClick(item)
|
|
3450
|
+
}
|
|
3451
|
+
),
|
|
3452
|
+
hasChildren ? /* @__PURE__ */ jsx56(
|
|
3453
|
+
Box_default,
|
|
3454
|
+
{
|
|
3455
|
+
sx: {
|
|
3456
|
+
overflow: "hidden",
|
|
3457
|
+
maxHeight: !collapsed && isExpanded ? "500px" : 0,
|
|
3458
|
+
opacity: !collapsed && isExpanded ? 1 : 0,
|
|
3459
|
+
visibility: !collapsed && isExpanded ? "visible" : "hidden",
|
|
3460
|
+
transition: "max-height 200ms ease, opacity 120ms ease, visibility 0s linear 200ms"
|
|
3461
|
+
},
|
|
3462
|
+
children: /* @__PURE__ */ jsx56(
|
|
3463
|
+
Box_default,
|
|
3464
|
+
{
|
|
3465
|
+
sx: {
|
|
3466
|
+
display: "flex",
|
|
3467
|
+
flexDirection: "column",
|
|
3468
|
+
gap: !collapsed && isExpanded ? "4px" : 0,
|
|
3469
|
+
pt: !collapsed && isExpanded ? "4px" : 0
|
|
3470
|
+
},
|
|
3471
|
+
children: item.children?.map((child) => /* @__PURE__ */ jsx56(
|
|
3472
|
+
Box_default,
|
|
3473
|
+
{
|
|
3474
|
+
sx: {
|
|
3475
|
+
boxSizing: "border-box"
|
|
3476
|
+
},
|
|
3477
|
+
children: /* @__PURE__ */ jsx56(
|
|
3478
|
+
SidebarRow_default,
|
|
3479
|
+
{
|
|
3480
|
+
title: child.title,
|
|
3481
|
+
icon: child.icon,
|
|
3482
|
+
badgeColor,
|
|
3483
|
+
badgeTextColor,
|
|
3484
|
+
badgeContent: child.badgeContent,
|
|
3485
|
+
disabled: child.disabled,
|
|
3486
|
+
collapsed: false,
|
|
3487
|
+
child: true,
|
|
3488
|
+
active: child.id === activeItemId,
|
|
3489
|
+
onClick: () => onItemClick?.({
|
|
3490
|
+
id: child.id,
|
|
3491
|
+
title: child.title,
|
|
3492
|
+
icon: child.icon,
|
|
3493
|
+
badgeContent: child.badgeContent,
|
|
3494
|
+
disabled: child.disabled
|
|
3495
|
+
})
|
|
3496
|
+
}
|
|
3497
|
+
)
|
|
3498
|
+
},
|
|
3499
|
+
child.id
|
|
3500
|
+
))
|
|
3501
|
+
}
|
|
3502
|
+
)
|
|
3503
|
+
}
|
|
3504
|
+
) : null
|
|
3505
|
+
] }, item.id);
|
|
3506
|
+
})
|
|
3507
|
+
}
|
|
3508
|
+
),
|
|
3509
|
+
/* @__PURE__ */ jsx56(
|
|
3510
|
+
IconButton_default,
|
|
3511
|
+
{
|
|
3512
|
+
"aria-label": collapsed ? "\u0628\u0627\u0632 \u06A9\u0631\u062F\u0646 \u0633\u0627\u06CC\u062F\u0628\u0627\u0631" : "\u0628\u0633\u062A\u0646 \u0633\u0627\u06CC\u062F\u0628\u0627\u0631",
|
|
3513
|
+
onClick: onToggleCollapse,
|
|
3514
|
+
sx: {
|
|
3515
|
+
position: "absolute",
|
|
3516
|
+
insetInlineEnd: "-16px",
|
|
3517
|
+
top: "16px",
|
|
3518
|
+
width: "34px",
|
|
3519
|
+
height: "34px",
|
|
3520
|
+
minWidth: "34px",
|
|
3521
|
+
borderRadius: "8px",
|
|
3522
|
+
bgcolor: "#FFFFFF",
|
|
3523
|
+
border: "1px solid #D8E0EA",
|
|
3524
|
+
p: 0,
|
|
3525
|
+
display: "inline-flex",
|
|
3526
|
+
alignItems: "center",
|
|
3527
|
+
justifyContent: "center",
|
|
3528
|
+
flexShrink: 0,
|
|
3529
|
+
boxSizing: "border-box",
|
|
3530
|
+
zIndex: 10,
|
|
3531
|
+
"&:hover": {
|
|
3532
|
+
bgcolor: "#FFFFFF"
|
|
3533
|
+
}
|
|
3534
|
+
},
|
|
3535
|
+
children: collapsed ? /* @__PURE__ */ jsx56(ArrowLeft, { size: 20, color: buttonColor }) : /* @__PURE__ */ jsx56(ArrowRight, { size: 20, color: buttonColor })
|
|
3536
|
+
}
|
|
3537
|
+
)
|
|
3538
|
+
]
|
|
3539
|
+
}
|
|
3540
|
+
);
|
|
3541
|
+
};
|
|
3542
|
+
var TemplateDashboardSidebar_default = TemplateDashboardSidebar;
|
|
3543
|
+
|
|
3544
|
+
// src/shared/components/template-dashboard/TemplateDashboard.tsx
|
|
3545
|
+
import { useState as useState9 } from "react";
|
|
3546
|
+
import { jsx as jsx57, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
3547
|
+
function TemplateDashboard({
|
|
3548
|
+
sidebarTitle,
|
|
3549
|
+
sidebarItems,
|
|
3550
|
+
sidebarActiveItemId,
|
|
3551
|
+
sidebarExpandedItemId,
|
|
3552
|
+
sidebarColor,
|
|
3553
|
+
badgeColor,
|
|
3554
|
+
badgeTextColor,
|
|
3555
|
+
buttonColor,
|
|
3556
|
+
sidebarLogo,
|
|
3557
|
+
sidebarLogoCollapsed,
|
|
3558
|
+
onSidebarItemClick,
|
|
3559
|
+
header,
|
|
3560
|
+
pageHeader,
|
|
3561
|
+
children
|
|
3562
|
+
}) {
|
|
3563
|
+
const [collapsed, setCollapsed] = useState9(false);
|
|
3564
|
+
const sidebarWidth = collapsed ? templateDashboardSidebarWidths.collapsed : templateDashboardSidebarWidths.expanded;
|
|
3565
|
+
return /* @__PURE__ */ jsxs12(Box_default, { sx: { height: "100%", display: "flex", direction: "ltr" }, children: [
|
|
3566
|
+
/* @__PURE__ */ jsx57(
|
|
3567
|
+
Box_default,
|
|
3568
|
+
{
|
|
3569
|
+
sx: {
|
|
3570
|
+
height: "100%",
|
|
3571
|
+
width: sidebarWidth,
|
|
3572
|
+
flexShrink: 0,
|
|
3573
|
+
transition: "width 0.2s ease"
|
|
3574
|
+
},
|
|
3575
|
+
children: /* @__PURE__ */ jsx57(
|
|
3576
|
+
TemplateDashboardSidebar_default,
|
|
3577
|
+
{
|
|
3578
|
+
collapsed,
|
|
3579
|
+
logo: sidebarLogo,
|
|
3580
|
+
logoCollapsed: sidebarLogoCollapsed,
|
|
3581
|
+
sidebarColor,
|
|
3582
|
+
badgeColor,
|
|
3583
|
+
badgeTextColor,
|
|
3584
|
+
buttonColor,
|
|
3585
|
+
onToggleCollapse: () => setCollapsed((v) => !v),
|
|
3586
|
+
title: sidebarTitle,
|
|
3587
|
+
items: sidebarItems,
|
|
3588
|
+
activeItemId: sidebarActiveItemId,
|
|
3589
|
+
expandedItemId: sidebarExpandedItemId,
|
|
3590
|
+
onItemClick: onSidebarItemClick
|
|
3591
|
+
}
|
|
3592
|
+
)
|
|
3593
|
+
}
|
|
3594
|
+
),
|
|
3595
|
+
/* @__PURE__ */ jsxs12(
|
|
3596
|
+
Box_default,
|
|
3597
|
+
{
|
|
3598
|
+
sx: {
|
|
3599
|
+
height: "100%",
|
|
3600
|
+
minHeight: 0,
|
|
3601
|
+
minWidth: 0,
|
|
3602
|
+
flex: 1,
|
|
3603
|
+
display: "flex",
|
|
3604
|
+
flexDirection: "column"
|
|
3605
|
+
},
|
|
3606
|
+
children: [
|
|
3607
|
+
header ? /* @__PURE__ */ jsx57(Box_default, { sx: { flexShrink: 0 }, children: header }) : null,
|
|
3608
|
+
pageHeader ? /* @__PURE__ */ jsx57(Box_default, { sx: { flexShrink: 0 }, children: pageHeader }) : null,
|
|
3609
|
+
/* @__PURE__ */ jsx57(
|
|
3610
|
+
Box_default,
|
|
3611
|
+
{
|
|
3612
|
+
component: "main",
|
|
3613
|
+
sx: {
|
|
3614
|
+
bgcolor: defaultColors.neutral[50],
|
|
3615
|
+
flex: 1,
|
|
3616
|
+
minHeight: 0,
|
|
3617
|
+
overflowY: "auto",
|
|
3618
|
+
p: "24px"
|
|
3619
|
+
},
|
|
3620
|
+
children
|
|
3621
|
+
}
|
|
3622
|
+
)
|
|
3623
|
+
]
|
|
3624
|
+
}
|
|
3625
|
+
)
|
|
3626
|
+
] });
|
|
3627
|
+
}
|
|
3628
|
+
|
|
3629
|
+
// src/shared/components/template-dashboard-header/TemplateDashboardHeader.styles.ts
|
|
3630
|
+
var surfaceButtonStyles = {
|
|
3631
|
+
width: "42px",
|
|
3632
|
+
height: "42px",
|
|
3633
|
+
minWidth: "42px",
|
|
3634
|
+
borderRadius: "8px",
|
|
3635
|
+
bgcolor: "#F5F7FA",
|
|
3636
|
+
border: "none",
|
|
3637
|
+
p: 0,
|
|
3638
|
+
display: "inline-flex",
|
|
3639
|
+
alignItems: "center",
|
|
3640
|
+
justifyContent: "center",
|
|
3641
|
+
flexShrink: 0,
|
|
3642
|
+
boxSizing: "border-box"
|
|
3643
|
+
};
|
|
3644
|
+
var templateDashboardHeaderStyles = {
|
|
3645
|
+
root: {
|
|
3646
|
+
width: "100%",
|
|
3647
|
+
height: "72px",
|
|
3648
|
+
minHeight: "72px",
|
|
3649
|
+
maxHeight: "72px",
|
|
3650
|
+
bgcolor: "#FFFFFF",
|
|
3651
|
+
px: "24px",
|
|
3652
|
+
py: "18px",
|
|
3653
|
+
boxSizing: "border-box",
|
|
3654
|
+
display: "flex",
|
|
3655
|
+
alignItems: "center",
|
|
3656
|
+
justifyContent: "space-between",
|
|
3657
|
+
direction: "ltr",
|
|
3658
|
+
flexShrink: 0
|
|
3659
|
+
},
|
|
3660
|
+
rightCluster: {
|
|
3661
|
+
display: "flex",
|
|
3662
|
+
flexDirection: "row",
|
|
3663
|
+
alignItems: "center",
|
|
3664
|
+
gap: "16px",
|
|
3665
|
+
flexShrink: 0
|
|
3666
|
+
},
|
|
3667
|
+
datePill: {
|
|
3668
|
+
width: "192px",
|
|
3669
|
+
height: "42px",
|
|
3670
|
+
minWidth: "192px",
|
|
3671
|
+
bgcolor: "#F5F7FA",
|
|
3672
|
+
borderRadius: "8px",
|
|
3673
|
+
display: "flex",
|
|
3674
|
+
alignItems: "center",
|
|
3675
|
+
justifyContent: "center",
|
|
3676
|
+
px: "12px",
|
|
3677
|
+
boxSizing: "border-box",
|
|
3678
|
+
flexShrink: 0
|
|
3679
|
+
},
|
|
3680
|
+
dateText: {
|
|
3681
|
+
fontSize: "12px",
|
|
3682
|
+
fontWeight: 500,
|
|
3683
|
+
lineHeight: "18px",
|
|
3684
|
+
color: "#374151",
|
|
3685
|
+
whiteSpace: "nowrap"
|
|
3686
|
+
},
|
|
3687
|
+
leftCluster: {
|
|
3688
|
+
display: "flex",
|
|
3689
|
+
flexDirection: "row",
|
|
3690
|
+
alignItems: "center",
|
|
3691
|
+
gap: "12px",
|
|
3692
|
+
flexShrink: 0
|
|
3693
|
+
},
|
|
3694
|
+
logoutButton: surfaceButtonStyles,
|
|
3695
|
+
profileButton: surfaceButtonStyles,
|
|
3696
|
+
userTextBlock: {
|
|
3697
|
+
display: "flex",
|
|
3698
|
+
flexDirection: "column",
|
|
3699
|
+
alignItems: "flex-start",
|
|
3700
|
+
direction: "ltr",
|
|
3701
|
+
textAlign: "left",
|
|
3702
|
+
minWidth: 0
|
|
3703
|
+
},
|
|
3704
|
+
userName: {
|
|
3705
|
+
fontSize: "13px",
|
|
3706
|
+
fontWeight: 600,
|
|
3707
|
+
lineHeight: "20px",
|
|
3708
|
+
color: "#374151"
|
|
3709
|
+
},
|
|
3710
|
+
userRole: {
|
|
3711
|
+
fontSize: "11px",
|
|
3712
|
+
fontWeight: 400,
|
|
3713
|
+
lineHeight: "16px",
|
|
3714
|
+
color: "#8A94A6"
|
|
3715
|
+
}
|
|
3716
|
+
};
|
|
3717
|
+
|
|
3718
|
+
// src/shared/components/template-dashboard-header/TemplateDashboardHeader.tsx
|
|
3719
|
+
import { jsx as jsx58, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3720
|
+
var TemplateDashboardHeader = ({
|
|
3721
|
+
left,
|
|
3722
|
+
right,
|
|
3723
|
+
children,
|
|
3724
|
+
className,
|
|
3725
|
+
sx
|
|
3726
|
+
}) => {
|
|
3727
|
+
return /* @__PURE__ */ jsxs13(
|
|
3728
|
+
Box_default,
|
|
3729
|
+
{
|
|
3730
|
+
component: "header",
|
|
3731
|
+
className,
|
|
3732
|
+
sx: {
|
|
3733
|
+
...templateDashboardHeaderStyles.root,
|
|
3734
|
+
...sx ?? {}
|
|
3735
|
+
},
|
|
3736
|
+
children: [
|
|
3737
|
+
right ? /* @__PURE__ */ jsx58(Box_default, { sx: templateDashboardHeaderStyles.rightCluster, children: right }) : null,
|
|
3738
|
+
left ? /* @__PURE__ */ jsx58(Box_default, { sx: templateDashboardHeaderStyles.leftCluster, children: left }) : null,
|
|
3739
|
+
children
|
|
3740
|
+
]
|
|
3741
|
+
}
|
|
3742
|
+
);
|
|
3743
|
+
};
|
|
3744
|
+
var TemplateDashboardHeader_default = TemplateDashboardHeader;
|
|
3745
|
+
|
|
3746
|
+
// src/shared/components/app-page-header.tsx
|
|
3747
|
+
import { useRouter } from "@tanstack/react-router";
|
|
3748
|
+
import { ArrowRight as ArrowRight2, Notification as Notification2 } from "iconsax-reactjs";
|
|
3749
|
+
|
|
3750
|
+
// src/assets/icons/headphone.svg
|
|
3751
|
+
var headphone_default = "../headphone-FHILIBNI.svg";
|
|
3752
|
+
|
|
3753
|
+
// src/shared/components/app-page-header.tsx
|
|
3754
|
+
import { Fragment as Fragment6, jsx as jsx59, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3755
|
+
var AppPageHeader = ({
|
|
3756
|
+
title,
|
|
3757
|
+
subtitle,
|
|
3758
|
+
titleComponent,
|
|
3759
|
+
notificationBtn,
|
|
3760
|
+
chatbotBtn = true,
|
|
3761
|
+
headerActions,
|
|
3762
|
+
variant = "default",
|
|
3763
|
+
position = "fixed",
|
|
3764
|
+
rootSx,
|
|
3765
|
+
contentSx
|
|
3766
|
+
}) => {
|
|
3767
|
+
const router = useRouter();
|
|
3768
|
+
const onBackBtnClick = () => {
|
|
3769
|
+
router.history.back();
|
|
3770
|
+
};
|
|
3771
|
+
const navigateToChatbot = () => {
|
|
3772
|
+
window.location.href = "/chatbot";
|
|
3773
|
+
};
|
|
3774
|
+
const onNotificationBtnClick = () => {
|
|
3775
|
+
};
|
|
3776
|
+
const variantStyles = {
|
|
3777
|
+
default: {
|
|
3778
|
+
root: {
|
|
3779
|
+
display: "flex",
|
|
3780
|
+
flexDirection: "row",
|
|
3781
|
+
height: "60px",
|
|
3782
|
+
justifyContent: "center",
|
|
3783
|
+
alignItems: "center",
|
|
3784
|
+
bgcolor: "#F4F6FA"
|
|
3785
|
+
},
|
|
3786
|
+
content: {
|
|
3787
|
+
display: "flex",
|
|
3788
|
+
justifyContent: "space-between",
|
|
3789
|
+
alignItems: "center",
|
|
3790
|
+
p: 4,
|
|
3791
|
+
height: "60px",
|
|
3792
|
+
width: APP_LAYOUT_MAX_WIDTH,
|
|
3793
|
+
bgcolor: "#F4F6FA"
|
|
3794
|
+
},
|
|
3795
|
+
actionButton: {
|
|
3796
|
+
backgroundColor: defaultColors.neutral[200],
|
|
3797
|
+
borderRadius: "12px"
|
|
3798
|
+
},
|
|
3799
|
+
placeholder: {
|
|
3800
|
+
width: 20,
|
|
3801
|
+
height: 20
|
|
3802
|
+
},
|
|
3803
|
+
title: {
|
|
3804
|
+
variant: "h2",
|
|
3805
|
+
fontWeight: 700,
|
|
3806
|
+
sx: {
|
|
3807
|
+
textAlign: "center"
|
|
3808
|
+
}
|
|
3809
|
+
},
|
|
3810
|
+
titleContainer: {
|
|
3811
|
+
display: "flex",
|
|
3812
|
+
flexDirection: "column",
|
|
3813
|
+
alignItems: "center",
|
|
3814
|
+
justifyContent: "center",
|
|
3815
|
+
gap: "4px",
|
|
3816
|
+
flex: 1,
|
|
3817
|
+
minWidth: 0
|
|
3818
|
+
},
|
|
3819
|
+
subtitle: {
|
|
3820
|
+
sx: {
|
|
3821
|
+
textAlign: "center",
|
|
3822
|
+
fontSize: "14px",
|
|
3823
|
+
fontWeight: 400,
|
|
3824
|
+
color: defaultColors.neutral[500],
|
|
3825
|
+
lineHeight: 1.4
|
|
3826
|
+
}
|
|
3827
|
+
}
|
|
3828
|
+
},
|
|
3829
|
+
mobile: {
|
|
3830
|
+
root: {
|
|
3831
|
+
display: "flex",
|
|
3832
|
+
flexDirection: "row",
|
|
3833
|
+
justifyContent: "center",
|
|
3834
|
+
alignItems: "center",
|
|
3835
|
+
width: "100%",
|
|
3836
|
+
bgcolor: "#F4F6FA"
|
|
3837
|
+
},
|
|
3838
|
+
content: {
|
|
3839
|
+
display: "flex",
|
|
3840
|
+
justifyContent: "space-between",
|
|
3841
|
+
alignItems: "center",
|
|
3842
|
+
px: "18px",
|
|
3843
|
+
// pt: 'calc(12px + env(safe-area-inset-top))',
|
|
3844
|
+
pb: "0px",
|
|
3845
|
+
minHeight: "80px",
|
|
3846
|
+
width: "100%",
|
|
3847
|
+
maxWidth: APP_LAYOUT_MAX_WIDTH,
|
|
3848
|
+
bgcolor: "#F4F6FA",
|
|
3849
|
+
direction: "ltr",
|
|
3850
|
+
gap: "16px"
|
|
3851
|
+
},
|
|
3852
|
+
actionButton: {
|
|
3853
|
+
width: "36px",
|
|
3854
|
+
height: "36px",
|
|
3855
|
+
minWidth: "36px",
|
|
3856
|
+
backgroundColor: "#E9EDF4",
|
|
3857
|
+
borderRadius: "12px"
|
|
3858
|
+
},
|
|
3859
|
+
placeholder: {
|
|
3860
|
+
width: "64px",
|
|
3861
|
+
height: "64px"
|
|
3862
|
+
},
|
|
3863
|
+
title: {
|
|
3864
|
+
sx: {
|
|
3865
|
+
direction: "rtl",
|
|
3866
|
+
textAlign: "center",
|
|
3867
|
+
fontSize: "16px",
|
|
3868
|
+
fontWeight: 700,
|
|
3869
|
+
color: "#1F2937",
|
|
3870
|
+
lineHeight: 1.3
|
|
3871
|
+
}
|
|
3872
|
+
},
|
|
3873
|
+
titleContainer: {
|
|
3874
|
+
display: "flex",
|
|
3875
|
+
flexDirection: "column",
|
|
3876
|
+
alignItems: "center",
|
|
3877
|
+
justifyContent: "center",
|
|
3878
|
+
gap: "4px",
|
|
3879
|
+
flex: 1,
|
|
3880
|
+
minWidth: 0
|
|
3881
|
+
},
|
|
3882
|
+
subtitle: {
|
|
3883
|
+
sx: {
|
|
3884
|
+
direction: "rtl",
|
|
3885
|
+
textAlign: "center",
|
|
3886
|
+
fontSize: "14px",
|
|
3887
|
+
fontWeight: 400,
|
|
3888
|
+
color: "#9CA3AF",
|
|
3889
|
+
lineHeight: 1.4
|
|
3890
|
+
}
|
|
3891
|
+
}
|
|
3892
|
+
}
|
|
3893
|
+
};
|
|
3894
|
+
const selectedVariant = variantStyles[variant];
|
|
3895
|
+
const positionStyles = position === "fixed" ? {
|
|
3896
|
+
position: "fixed",
|
|
3897
|
+
left: 0,
|
|
3898
|
+
right: 0,
|
|
3899
|
+
top: 0,
|
|
3900
|
+
zIndex: 999
|
|
3901
|
+
} : {};
|
|
3902
|
+
const renderAction = (action) => {
|
|
3903
|
+
if (!action) {
|
|
3904
|
+
return /* @__PURE__ */ jsx59(Box_default, { sx: selectedVariant.placeholder });
|
|
3905
|
+
}
|
|
3906
|
+
return /* @__PURE__ */ jsx59(
|
|
3907
|
+
IconButton_default,
|
|
3908
|
+
{
|
|
3909
|
+
"aria-label": action.ariaLabel,
|
|
3910
|
+
onClick: action.onClick,
|
|
3911
|
+
disabled: action.disabled,
|
|
3912
|
+
sx: selectedVariant.actionButton,
|
|
3913
|
+
children: action.icon
|
|
3914
|
+
}
|
|
3915
|
+
);
|
|
3916
|
+
};
|
|
3917
|
+
const hasCustomActions = Boolean(headerActions);
|
|
3918
|
+
return /* @__PURE__ */ jsx59(
|
|
3919
|
+
Box_default,
|
|
3920
|
+
{
|
|
3921
|
+
sx: {
|
|
3922
|
+
...selectedVariant.root,
|
|
3923
|
+
...positionStyles,
|
|
3924
|
+
...rootSx
|
|
3925
|
+
},
|
|
3926
|
+
children: /* @__PURE__ */ jsxs14(
|
|
3927
|
+
Box_default,
|
|
3928
|
+
{
|
|
3929
|
+
sx: {
|
|
3930
|
+
...selectedVariant.content,
|
|
3931
|
+
...contentSx
|
|
3932
|
+
},
|
|
3933
|
+
children: [
|
|
3934
|
+
hasCustomActions ? renderAction(headerActions?.leading) : /* @__PURE__ */ jsx59(Fragment6, { children: notificationBtn ? /* @__PURE__ */ jsx59(
|
|
3935
|
+
IconButton_default,
|
|
3936
|
+
{
|
|
3937
|
+
onClick: onNotificationBtnClick,
|
|
3938
|
+
sx: selectedVariant.actionButton,
|
|
3939
|
+
children: /* @__PURE__ */ jsx59(Notification2, { size: 20, color: defaultColors.neutral[700] })
|
|
3940
|
+
}
|
|
3941
|
+
) : /* @__PURE__ */ jsx59(
|
|
3942
|
+
IconButton_default,
|
|
3943
|
+
{
|
|
3944
|
+
onClick: onBackBtnClick,
|
|
3945
|
+
sx: selectedVariant.actionButton,
|
|
3946
|
+
children: /* @__PURE__ */ jsx59(ArrowRight2, { size: 20, color: defaultColors.neutral[700] })
|
|
3947
|
+
}
|
|
3948
|
+
) }),
|
|
3949
|
+
titleComponent ? titleComponent : title && /* @__PURE__ */ jsxs14(Box_default, { sx: selectedVariant.titleContainer, children: [
|
|
3950
|
+
/* @__PURE__ */ jsx59(
|
|
3951
|
+
Typography_default,
|
|
3952
|
+
{
|
|
3953
|
+
variant: selectedVariant.title.variant,
|
|
3954
|
+
component: "h1",
|
|
3955
|
+
fontWeight: selectedVariant.title.fontWeight,
|
|
3956
|
+
sx: selectedVariant.title.sx,
|
|
3957
|
+
children: title
|
|
3958
|
+
}
|
|
3959
|
+
),
|
|
3960
|
+
subtitle ? /* @__PURE__ */ jsx59(Typography_default, { component: "span", sx: selectedVariant.subtitle.sx, children: subtitle }) : null
|
|
3961
|
+
] }),
|
|
3962
|
+
hasCustomActions ? renderAction(headerActions?.trailing) : chatbotBtn ? /* @__PURE__ */ jsx59(IconButton_default, { onClick: navigateToChatbot, sx: selectedVariant.actionButton, children: /* @__PURE__ */ jsx59("img", { src: headphone_default, width: 20, height: 20, alt: "support" }) }) : /* @__PURE__ */ jsx59(Box_default, { sx: selectedVariant.placeholder })
|
|
3963
|
+
]
|
|
3964
|
+
}
|
|
3965
|
+
)
|
|
3966
|
+
}
|
|
3967
|
+
);
|
|
3968
|
+
};
|
|
3969
|
+
var app_page_header_default = AppPageHeader;
|
|
3970
|
+
|
|
3971
|
+
// src/shared/components/app-page-footer.tsx
|
|
3972
|
+
import { jsx as jsx60 } from "react/jsx-runtime";
|
|
3973
|
+
var AppPageFooter = ({
|
|
3974
|
+
children,
|
|
3975
|
+
variant = "default",
|
|
3976
|
+
position = "fixed",
|
|
3977
|
+
rootSx,
|
|
3978
|
+
contentSx
|
|
3979
|
+
}) => {
|
|
3980
|
+
const variantStyles = {
|
|
3981
|
+
default: {
|
|
3982
|
+
root: {
|
|
3983
|
+
display: "flex",
|
|
3984
|
+
flexDirection: "row",
|
|
3985
|
+
height: "60px",
|
|
3986
|
+
justifyContent: "center",
|
|
3987
|
+
alignItems: "center",
|
|
3988
|
+
bgcolor: "#F4F6FA"
|
|
3989
|
+
},
|
|
3990
|
+
content: {
|
|
3991
|
+
bgcolor: "#F4F6FA",
|
|
3992
|
+
display: "flex",
|
|
3993
|
+
flexDirection: "row",
|
|
3994
|
+
width: APP_LAYOUT_MAX_WIDTH,
|
|
3995
|
+
height: "60px",
|
|
3996
|
+
alignItems: "center",
|
|
3997
|
+
px: 4,
|
|
3998
|
+
gap: 2.5,
|
|
3999
|
+
py: 5
|
|
4000
|
+
}
|
|
4001
|
+
},
|
|
4002
|
+
mobile: {
|
|
4003
|
+
root: {
|
|
4004
|
+
display: "flex",
|
|
4005
|
+
flexDirection: "row",
|
|
4006
|
+
justifyContent: "center",
|
|
4007
|
+
width: "100%",
|
|
4008
|
+
px: 0,
|
|
4009
|
+
pt: 0,
|
|
4010
|
+
pb: 0,
|
|
4011
|
+
mt: "auto",
|
|
4012
|
+
bgcolor: "#F4F6FA"
|
|
4013
|
+
},
|
|
4014
|
+
content: {
|
|
4015
|
+
bgcolor: "#F4F6FA",
|
|
4016
|
+
display: "flex",
|
|
4017
|
+
flexDirection: "row",
|
|
4018
|
+
width: "100%",
|
|
4019
|
+
maxWidth: APP_LAYOUT_MAX_WIDTH,
|
|
4020
|
+
alignItems: "center",
|
|
4021
|
+
px: "10px",
|
|
4022
|
+
pt: "18px",
|
|
4023
|
+
pb: "14px",
|
|
4024
|
+
minHeight: "108px"
|
|
4025
|
+
}
|
|
4026
|
+
}
|
|
4027
|
+
};
|
|
4028
|
+
const positionStyles = position === "fixed" ? {
|
|
4029
|
+
position: "fixed",
|
|
4030
|
+
left: 0,
|
|
4031
|
+
right: 0,
|
|
4032
|
+
bottom: 0,
|
|
4033
|
+
zIndex: 999
|
|
4034
|
+
} : position === "sticky" ? {
|
|
4035
|
+
position: "sticky",
|
|
4036
|
+
bottom: 0,
|
|
4037
|
+
zIndex: 2
|
|
4038
|
+
} : {};
|
|
4039
|
+
const selectedVariant = variantStyles[variant];
|
|
4040
|
+
return /* @__PURE__ */ jsx60(
|
|
4041
|
+
Box_default,
|
|
4042
|
+
{
|
|
4043
|
+
sx: {
|
|
4044
|
+
...selectedVariant.root,
|
|
4045
|
+
...positionStyles,
|
|
4046
|
+
...rootSx
|
|
4047
|
+
},
|
|
4048
|
+
children: /* @__PURE__ */ jsx60(
|
|
4049
|
+
Box_default,
|
|
4050
|
+
{
|
|
4051
|
+
sx: {
|
|
4052
|
+
...selectedVariant.content,
|
|
4053
|
+
...contentSx
|
|
4054
|
+
},
|
|
4055
|
+
children
|
|
4056
|
+
}
|
|
4057
|
+
)
|
|
4058
|
+
}
|
|
4059
|
+
);
|
|
4060
|
+
};
|
|
4061
|
+
var app_page_footer_default = AppPageFooter;
|
|
4062
|
+
|
|
4063
|
+
// src/mobile-app-template/components/mobile-app-footer-nav.tsx
|
|
4064
|
+
import { Link } from "@tanstack/react-router";
|
|
4065
|
+
|
|
4066
|
+
// src/theme/colors.ts
|
|
4067
|
+
var appColors = {
|
|
4068
|
+
primary: {
|
|
4069
|
+
50: "#EDFCF6",
|
|
4070
|
+
100: "#D4F7E8",
|
|
4071
|
+
200: "#ACEED6",
|
|
4072
|
+
300: "#76DFBF",
|
|
4073
|
+
400: "#3EC9A3",
|
|
4074
|
+
500: "#1DBF98",
|
|
4075
|
+
600: "#15A48F",
|
|
4076
|
+
700: "#0E8983",
|
|
4077
|
+
800: "#09696E",
|
|
4078
|
+
900: "#054F5B",
|
|
4079
|
+
transparent: "#1DBF981A",
|
|
4080
|
+
main: "#1DBF98",
|
|
4081
|
+
light: "#D4F7E8",
|
|
4082
|
+
dark: "#054F5B",
|
|
4083
|
+
contrastText: "#fff"
|
|
4084
|
+
},
|
|
4085
|
+
secondary: {
|
|
4086
|
+
50: "#E3FFEE",
|
|
4087
|
+
100: "#FFF9DB",
|
|
4088
|
+
200: "#FFEEA4",
|
|
4089
|
+
300: "#FBE07D",
|
|
4090
|
+
400: "#FDD352",
|
|
4091
|
+
500: "#F4BC28",
|
|
4092
|
+
600: "#DCA000",
|
|
4093
|
+
700: "#BB820D",
|
|
4094
|
+
800: "#A06B0B",
|
|
4095
|
+
900: "#89580C",
|
|
4096
|
+
transparent: "#F4BC281A",
|
|
4097
|
+
main: "#F4BC28",
|
|
4098
|
+
light: "#FFF9DB",
|
|
4099
|
+
dark: "#A06B0B",
|
|
4100
|
+
contrastText: "#fff"
|
|
4101
|
+
}
|
|
4102
|
+
};
|
|
4103
|
+
|
|
4104
|
+
// src/mobile-app-template/components/mobile-app-footer-nav.tsx
|
|
4105
|
+
import { jsx as jsx61, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
4106
|
+
var MobileAppFooterNav = ({ items }) => {
|
|
4107
|
+
const renderItemContent = (item) => {
|
|
4108
|
+
const isActive = Boolean(item.active);
|
|
4109
|
+
const icon = typeof item.icon === "function" ? item.icon(isActive) : item.icon;
|
|
4110
|
+
return /* @__PURE__ */ jsxs15(
|
|
4111
|
+
Box_default,
|
|
4112
|
+
{
|
|
4113
|
+
sx: {
|
|
4114
|
+
display: "flex",
|
|
4115
|
+
flexDirection: "column",
|
|
4116
|
+
alignItems: "center",
|
|
4117
|
+
justifyContent: "center",
|
|
4118
|
+
gap: "8px",
|
|
4119
|
+
color: isActive ? appColors.primary.main : "#9CA3AF",
|
|
4120
|
+
width: "100%",
|
|
4121
|
+
minHeight: "74px"
|
|
4122
|
+
},
|
|
4123
|
+
children: [
|
|
4124
|
+
/* @__PURE__ */ jsx61(
|
|
4125
|
+
Box_default,
|
|
4126
|
+
{
|
|
4127
|
+
sx: {
|
|
4128
|
+
display: "flex",
|
|
4129
|
+
lineHeight: 0,
|
|
4130
|
+
transform: "translateY(12px)"
|
|
4131
|
+
},
|
|
4132
|
+
children: icon
|
|
4133
|
+
}
|
|
4134
|
+
),
|
|
4135
|
+
/* @__PURE__ */ jsx61(
|
|
4136
|
+
Typography_default,
|
|
4137
|
+
{
|
|
4138
|
+
component: "span",
|
|
4139
|
+
sx: {
|
|
4140
|
+
fontSize: "12px",
|
|
4141
|
+
fontWeight: isActive ? 500 : 400,
|
|
4142
|
+
color: isActive ? appColors.primary.main : "#9CA3AF",
|
|
4143
|
+
lineHeight: 1.4,
|
|
4144
|
+
transform: "translateY(12px)"
|
|
4145
|
+
},
|
|
4146
|
+
children: item.label
|
|
4147
|
+
}
|
|
4148
|
+
)
|
|
4149
|
+
]
|
|
4150
|
+
}
|
|
4151
|
+
);
|
|
4152
|
+
};
|
|
4153
|
+
return /* @__PURE__ */ jsx61(app_page_footer_default, { variant: "mobile", position: "static", children: /* @__PURE__ */ jsx61(
|
|
4154
|
+
Box_default,
|
|
4155
|
+
{
|
|
4156
|
+
component: "nav",
|
|
4157
|
+
role: "navigation",
|
|
4158
|
+
sx: {
|
|
4159
|
+
display: "grid",
|
|
4160
|
+
gridTemplateColumns: `repeat(${items.length}, minmax(0, 1fr))`,
|
|
4161
|
+
alignItems: "center",
|
|
4162
|
+
justifyItems: "center",
|
|
4163
|
+
width: "100%"
|
|
4164
|
+
},
|
|
4165
|
+
children: items.map((item) => {
|
|
4166
|
+
if (item.to) {
|
|
4167
|
+
return /* @__PURE__ */ jsx61(
|
|
4168
|
+
Link,
|
|
4169
|
+
{
|
|
4170
|
+
to: item.to,
|
|
4171
|
+
style: {
|
|
4172
|
+
width: "100%",
|
|
4173
|
+
display: "flex",
|
|
4174
|
+
justifyContent: "center"
|
|
4175
|
+
},
|
|
4176
|
+
children: renderItemContent(item)
|
|
4177
|
+
},
|
|
4178
|
+
item.key
|
|
4179
|
+
);
|
|
4180
|
+
}
|
|
4181
|
+
return /* @__PURE__ */ jsx61(
|
|
4182
|
+
Box_default,
|
|
4183
|
+
{
|
|
4184
|
+
component: item.onClick ? "button" : "div",
|
|
4185
|
+
type: item.onClick ? "button" : void 0,
|
|
4186
|
+
onClick: item.onClick,
|
|
4187
|
+
sx: {
|
|
4188
|
+
width: "100%",
|
|
4189
|
+
display: "flex",
|
|
4190
|
+
justifyContent: "center",
|
|
4191
|
+
bgcolor: "transparent",
|
|
4192
|
+
border: "none",
|
|
4193
|
+
font: "inherit",
|
|
4194
|
+
cursor: item.onClick ? "pointer" : "default"
|
|
4195
|
+
},
|
|
4196
|
+
children: renderItemContent(item)
|
|
4197
|
+
},
|
|
4198
|
+
item.key
|
|
4199
|
+
);
|
|
4200
|
+
})
|
|
4201
|
+
}
|
|
4202
|
+
) });
|
|
4203
|
+
};
|
|
4204
|
+
var mobile_app_footer_nav_default = MobileAppFooterNav;
|
|
4205
|
+
|
|
4206
|
+
// src/mobile-app-template/components/mobile-app-layout.tsx
|
|
4207
|
+
import { jsx as jsx62, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4208
|
+
var MobileAppLayout = ({
|
|
4209
|
+
title,
|
|
4210
|
+
subtitle,
|
|
4211
|
+
titleComponent,
|
|
4212
|
+
headerActions,
|
|
4213
|
+
footerItems = [],
|
|
4214
|
+
className,
|
|
4215
|
+
children
|
|
4216
|
+
}) => {
|
|
4217
|
+
return /* @__PURE__ */ jsxs16(
|
|
4218
|
+
Box_default,
|
|
4219
|
+
{
|
|
4220
|
+
className,
|
|
4221
|
+
sx: {
|
|
4222
|
+
width: "100%",
|
|
4223
|
+
minHeight: "100dvh",
|
|
4224
|
+
maxWidth: APP_LAYOUT_MAX_WIDTH,
|
|
4225
|
+
mx: "auto",
|
|
4226
|
+
display: "flex",
|
|
4227
|
+
flexDirection: "column",
|
|
4228
|
+
bgcolor: "#F5F6FA",
|
|
4229
|
+
color: defaultColors.neutral[900],
|
|
4230
|
+
overflowX: "hidden"
|
|
4231
|
+
},
|
|
4232
|
+
children: [
|
|
4233
|
+
/* @__PURE__ */ jsx62(
|
|
4234
|
+
app_page_header_default,
|
|
4235
|
+
{
|
|
4236
|
+
title,
|
|
4237
|
+
subtitle,
|
|
4238
|
+
titleComponent,
|
|
4239
|
+
headerActions,
|
|
4240
|
+
variant: "mobile",
|
|
4241
|
+
position: "static"
|
|
4242
|
+
}
|
|
4243
|
+
),
|
|
4244
|
+
/* @__PURE__ */ jsx62(
|
|
4245
|
+
Box_default,
|
|
4246
|
+
{
|
|
4247
|
+
component: "section",
|
|
4248
|
+
sx: {
|
|
4249
|
+
px: "18px",
|
|
4250
|
+
pb: "24px",
|
|
4251
|
+
flex: 1
|
|
4252
|
+
},
|
|
4253
|
+
children
|
|
4254
|
+
}
|
|
4255
|
+
),
|
|
4256
|
+
footerItems.length ? /* @__PURE__ */ jsx62(mobile_app_footer_nav_default, { items: footerItems }) : null
|
|
4257
|
+
]
|
|
4258
|
+
}
|
|
4259
|
+
);
|
|
4260
|
+
};
|
|
4261
|
+
var mobile_app_layout_default = MobileAppLayout;
|
|
3133
4262
|
export {
|
|
3134
4263
|
Accordion_default as Accordion,
|
|
3135
4264
|
AccordionDetails_default as AccordionDetails,
|
|
3136
4265
|
AccordionSummary_default as AccordionSummary,
|
|
4266
|
+
app_page_footer_default as AppPageFooter,
|
|
4267
|
+
app_page_header_default as AppPageHeader,
|
|
3137
4268
|
Autocomplete_default as Autocomplete,
|
|
4269
|
+
Badge_default as Badge,
|
|
3138
4270
|
Box_default as Box,
|
|
3139
4271
|
Button_default as Button,
|
|
3140
4272
|
CardNumberInput_default as CardNumberInput,
|
|
@@ -3160,6 +4292,8 @@ export {
|
|
|
3160
4292
|
Loading_default as Loading,
|
|
3161
4293
|
LoadingModal_default as LoadingModal,
|
|
3162
4294
|
MenuItem_default as MenuItem,
|
|
4295
|
+
mobile_app_footer_nav_default as MobileAppFooterNav,
|
|
4296
|
+
mobile_app_layout_default as MobileAppLayout,
|
|
3163
4297
|
MobileDatePicker_default as MobileDatePicker,
|
|
3164
4298
|
Modal_default as Modal,
|
|
3165
4299
|
MultiSelect_default as MultiSelect,
|
|
@@ -3170,6 +4304,9 @@ export {
|
|
|
3170
4304
|
Radio_default as Radio,
|
|
3171
4305
|
RadioGroup_default as RadioGroup,
|
|
3172
4306
|
Select_default as Select,
|
|
4307
|
+
SidebarDot,
|
|
4308
|
+
SidebarItemIcon,
|
|
4309
|
+
SidebarRow_default as SidebarRow,
|
|
3173
4310
|
Skeleton_default as Skeleton,
|
|
3174
4311
|
Slider_default as Slider,
|
|
3175
4312
|
Step_default as Step,
|
|
@@ -3179,9 +4316,14 @@ export {
|
|
|
3179
4316
|
Stepper_default as Stepper,
|
|
3180
4317
|
SvgIcon_default as SvgIcon,
|
|
3181
4318
|
Tab_default as Tab,
|
|
4319
|
+
TemplateDashboard,
|
|
4320
|
+
TemplateDashboardHeader_default as TemplateDashboardHeader,
|
|
4321
|
+
TemplateDashboardSidebar_default as TemplateDashboardSidebar,
|
|
3182
4322
|
TextField_default as TextField,
|
|
3183
4323
|
Toast_default as Toast,
|
|
3184
4324
|
Toggle_default as Toggle,
|
|
3185
4325
|
Typography_default as Typography,
|
|
3186
|
-
WheelDatePicker_default as WheelDatePicker
|
|
4326
|
+
WheelDatePicker_default as WheelDatePicker,
|
|
4327
|
+
templateDashboardHeaderStyles,
|
|
4328
|
+
templateDashboardSidebarWidths
|
|
3187
4329
|
};
|