@tirth_jasoliya/ui 1.0.4 → 1.0.5

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
@@ -3113,6 +3113,42 @@ var GeneralHelper = class {
3113
3113
  import { AlertTriangleIcon } from "lucide-react";
3114
3114
  import { useRouteError, isRouteErrorResponse, useNavigate } from "react-router";
3115
3115
  import { Fragment as Fragment5, jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
3116
+ var ErrorComponent = () => {
3117
+ const error = useRouteError();
3118
+ const navigate = useNavigate();
3119
+ const renderErrorDetails = () => {
3120
+ if (isRouteErrorResponse(error)) {
3121
+ return /* @__PURE__ */ jsxs21(Fragment5, { children: [
3122
+ /* @__PURE__ */ jsxs21("h2", { className: "text-3xl font-semibold text-destructive", children: [
3123
+ "Error ",
3124
+ error.status,
3125
+ ": ",
3126
+ error.statusText
3127
+ ] }),
3128
+ typeof error.data === "string" ? /* @__PURE__ */ jsx34("pre", { className: "text-lg text-muted-foreground whitespace-pre-wrap max-w-4xl text-left", children: error.data }) : error.data?.message && /* @__PURE__ */ jsx34("pre", { className: "text-lg text-muted-foreground whitespace-pre-wrap max-w-4xl text-left", children: error.data.message })
3129
+ ] });
3130
+ }
3131
+ if (error instanceof Error) {
3132
+ return /* @__PURE__ */ jsxs21(Fragment5, { children: [
3133
+ /* @__PURE__ */ jsx34("h2", { className: "text-3xl font-semibold text-destructive", children: "Unexpected Error" }),
3134
+ /* @__PURE__ */ jsx34("pre", { className: "text-lg text-muted-foreground whitespace-pre-wrap max-w-4xl text-left", children: error.message }),
3135
+ error.stack && /* @__PURE__ */ jsxs21("details", { className: "mt-2 text-sm text-muted-foreground max-w-4xl text-left", children: [
3136
+ /* @__PURE__ */ jsx34("summary", { className: "cursor-pointer underline", children: "Stack Trace" }),
3137
+ /* @__PURE__ */ jsx34("pre", { className: "whitespace-pre-wrap", children: error.stack })
3138
+ ] })
3139
+ ] });
3140
+ }
3141
+ return /* @__PURE__ */ jsxs21(Fragment5, { children: [
3142
+ /* @__PURE__ */ jsx34("h2", { className: "text-3xl font-semibold text-destructive", children: "Unknown Error" }),
3143
+ /* @__PURE__ */ jsx34("pre", { className: "text-lg text-muted-foreground whitespace-pre-wrap max-w-4xl text-left", children: typeof error === "string" ? error : JSON.stringify(error, null, 2) })
3144
+ ] });
3145
+ };
3146
+ return /* @__PURE__ */ jsx34("div", { className: "rounded-2xl flex justify-center items-center h-full bg-sidebar px-4", children: /* @__PURE__ */ jsxs21("div", { className: "flex flex-col items-center space-y-4 text-center", children: [
3147
+ /* @__PURE__ */ jsx34(AlertTriangleIcon, { className: "h-16 w-16 text-destructive" }),
3148
+ renderErrorDetails(),
3149
+ /* @__PURE__ */ jsx34(Button, { variant: "outline", onClick: () => navigate(-1), children: "Go Back" })
3150
+ ] }) });
3151
+ };
3116
3152
 
3117
3153
  // src/components/core/event-success.tsx
3118
3154
  import { motion as motion3 } from "framer-motion";
@@ -3162,27 +3198,230 @@ function Checkmark({ size = 100, strokeWidth = 2, color = "currentColor", classN
3162
3198
  }
3163
3199
  );
3164
3200
  }
3201
+ function CurrencyTransfer() {
3202
+ return /* @__PURE__ */ jsx35(Card, { className: "w-full max-w-sm mx-auto p-6 min-h-[300px] flex flex-col justify-center bg-background", children: /* @__PURE__ */ jsxs22(CardContent, { className: "space-y-4 flex flex-col items-center justify-center", children: [
3203
+ /* @__PURE__ */ jsx35(
3204
+ motion3.div,
3205
+ {
3206
+ className: "flex justify-center",
3207
+ initial: { opacity: 0, scale: 0.8 },
3208
+ animate: { opacity: 1, scale: 1 },
3209
+ transition: {
3210
+ duration: 0.4,
3211
+ ease: [0.4, 0, 0.2, 1],
3212
+ scale: {
3213
+ type: "spring",
3214
+ damping: 15,
3215
+ stiffness: 200
3216
+ }
3217
+ },
3218
+ children: /* @__PURE__ */ jsxs22("div", { className: "relative", children: [
3219
+ /* @__PURE__ */ jsx35(
3220
+ motion3.div,
3221
+ {
3222
+ className: "absolute inset-0 bg-primary/5 rounded-full",
3223
+ initial: { opacity: 0, scale: 0.8 },
3224
+ animate: { opacity: 1, scale: 1 },
3225
+ transition: {
3226
+ delay: 0.2,
3227
+ duration: 0.8,
3228
+ ease: "circOut"
3229
+ }
3230
+ }
3231
+ ),
3232
+ /* @__PURE__ */ jsx35(
3233
+ Checkmark,
3234
+ {
3235
+ size: 80,
3236
+ strokeWidth: 4,
3237
+ color: "rgb(16 185 129)",
3238
+ className: "relative z-10 dark:drop-shadow-[0_0_10px_rgba(0,0,0,0.1)]"
3239
+ }
3240
+ )
3241
+ ] })
3242
+ }
3243
+ ),
3244
+ /* @__PURE__ */ jsxs22(
3245
+ motion3.div,
3246
+ {
3247
+ className: "space-y-2 text-center w-full",
3248
+ initial: { opacity: 0, y: 10 },
3249
+ animate: { opacity: 1, y: 0 },
3250
+ transition: {
3251
+ delay: 0.2,
3252
+ duration: 0.6,
3253
+ ease: [0.4, 0, 0.2, 1]
3254
+ },
3255
+ children: [
3256
+ /* @__PURE__ */ jsx35(
3257
+ motion3.h2,
3258
+ {
3259
+ className: "text-lg text-zinc-100 dark:text-zinc-900 tracking-tighter font-semibold uppercase",
3260
+ initial: { opacity: 0, y: 5 },
3261
+ animate: { opacity: 1, y: 0 },
3262
+ transition: { delay: 1, duration: 0.4 },
3263
+ children: "Transfer Successful"
3264
+ }
3265
+ ),
3266
+ /* @__PURE__ */ jsx35("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx35(
3267
+ motion3.div,
3268
+ {
3269
+ className: "flex-1 bg-zinc-800/50 dark:bg-zinc-50/50 rounded-xl p-3 border border-zinc-700/50 dark:border-zinc-200/50 backdrop-blur-md",
3270
+ initial: { opacity: 0, scale: 0.95 },
3271
+ animate: { opacity: 1, scale: 1 },
3272
+ transition: {
3273
+ delay: 1.2,
3274
+ duration: 0.4,
3275
+ ease: [0.4, 0, 0.2, 1]
3276
+ },
3277
+ children: /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-start gap-2", children: [
3278
+ /* @__PURE__ */ jsxs22("div", { className: "space-y-1.5", children: [
3279
+ /* @__PURE__ */ jsxs22("span", { className: "text-xs font-medium text-secondary-foreground flex items-center gap-1.5", children: [
3280
+ /* @__PURE__ */ jsxs22(
3281
+ "svg",
3282
+ {
3283
+ className: "w-3 h-3",
3284
+ xmlns: "http://www.w3.org/2000/svg",
3285
+ viewBox: "0 0 24 24",
3286
+ fill: "none",
3287
+ stroke: "currentColor",
3288
+ strokeWidth: "2",
3289
+ strokeLinecap: "round",
3290
+ strokeLinejoin: "round",
3291
+ children: [
3292
+ /* @__PURE__ */ jsx35("title", { children: "From" }),
3293
+ /* @__PURE__ */ jsx35("path", { d: "M12 19V5M5 12l7-7 7 7" })
3294
+ ]
3295
+ }
3296
+ ),
3297
+ "From"
3298
+ ] }),
3299
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2.5 group transition-all", children: [
3300
+ /* @__PURE__ */ jsx35("span", { className: "inline-flex items-center justify-center w-7 h-7 rounded-lg bg-zinc-900 dark:bg-white shadow-lg border border-zinc-700 dark:border-zinc-300 text-sm font-medium text-zinc-100 dark:text-zinc-900 group-hover:scale-105 transition-transform", children: "$" }),
3301
+ /* @__PURE__ */ jsx35("span", { className: "font-medium text-zinc-100 dark:text-zinc-900 tracking-tight", children: "500.00 USD" })
3302
+ ] })
3303
+ ] }),
3304
+ /* @__PURE__ */ jsx35("div", { className: "w-full h-px bg-gradient-to-r from-transparent via-zinc-700 dark:via-zinc-300 to-transparent" }),
3305
+ /* @__PURE__ */ jsxs22("div", { className: "space-y-1.5", children: [
3306
+ /* @__PURE__ */ jsxs22("span", { className: "text-xs font-medium text-secondary-foreground flex items-center gap-1.5", children: [
3307
+ /* @__PURE__ */ jsxs22(
3308
+ "svg",
3309
+ {
3310
+ className: "w-3 h-3",
3311
+ xmlns: "http://www.w3.org/2000/svg",
3312
+ viewBox: "0 0 24 24",
3313
+ fill: "none",
3314
+ stroke: "currentColor",
3315
+ strokeWidth: "2",
3316
+ strokeLinecap: "round",
3317
+ strokeLinejoin: "round",
3318
+ children: [
3319
+ /* @__PURE__ */ jsx35("title", { children: "To" }),
3320
+ /* @__PURE__ */ jsx35("path", { d: "M12 5v14M5 12l7 7 7-7" })
3321
+ ]
3322
+ }
3323
+ ),
3324
+ "To"
3325
+ ] }),
3326
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2.5 group transition-all", children: [
3327
+ /* @__PURE__ */ jsx35("span", { className: "inline-flex items-center justify-center w-7 h-7 rounded-lg bg-zinc-900 dark:bg-white shadow-lg border border-zinc-700 dark:border-zinc-300 text-sm font-medium text-zinc-100 dark:text-zinc-900 group-hover:scale-105 transition-transform", children: "\u20AC" }),
3328
+ /* @__PURE__ */ jsx35("span", { className: "font-medium text-zinc-100 dark:text-zinc-900 tracking-tight", children: "460.00 EUR" })
3329
+ ] })
3330
+ ] })
3331
+ ] })
3332
+ }
3333
+ ) }),
3334
+ /* @__PURE__ */ jsx35(
3335
+ motion3.div,
3336
+ {
3337
+ className: "w-full text-xs text-secondary-foreground mt-2 text-center",
3338
+ initial: { opacity: 0 },
3339
+ animate: { opacity: 1 },
3340
+ transition: { delay: 1.4, duration: 0.4 },
3341
+ children: "Exchange Rate: 1 USD = 0.92 EUR"
3342
+ }
3343
+ )
3344
+ ]
3345
+ }
3346
+ )
3347
+ ] }) });
3348
+ }
3165
3349
 
3166
3350
  // src/components/core/loader.tsx
3167
3351
  import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
3352
+ var Loader4 = () => {
3353
+ return /* @__PURE__ */ jsx36("div", { className: "rounded-2xl flex justify-center items-center h-full bg-transparent", children: /* @__PURE__ */ jsxs23("div", { className: "flex flex-col items-center space-y-4", children: [
3354
+ /* @__PURE__ */ jsx36("div", { className: "animate-spin rounded-full border-t-4 border-ring h-16 w-16 mb-4" }),
3355
+ /* @__PURE__ */ jsx36("h2", { className: "text-xl font-semibold text-muted-foreground", children: "Loading, please wait..." }),
3356
+ /* @__PURE__ */ jsx36("p", { className: "text-sm text-muted-foreground", children: "Your content is on its way." })
3357
+ ] }) });
3358
+ };
3168
3359
 
3169
3360
  // src/components/core/notfound.tsx
3170
3361
  import { useLocation } from "react-router";
3171
3362
  import { GhostIcon } from "lucide-react";
3172
3363
  import { NavLink as NavLink2, useNavigate as useNavigate2 } from "react-router";
3173
3364
  import { jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
3365
+ var NotFound = () => {
3366
+ const location = useLocation();
3367
+ const navigate = useNavigate2();
3368
+ const goBack = () => {
3369
+ if (window.history.length > 2) {
3370
+ navigate(-1);
3371
+ } else {
3372
+ navigate("/");
3373
+ }
3374
+ };
3375
+ return /* @__PURE__ */ jsxs24("div", { className: "rounded-2xl flex flex-col items-center justify-center h-full p-6 text-center bg-sidebar text-muted-foreground select-none", children: [
3376
+ /* @__PURE__ */ jsx37(GhostIcon, { className: "h-15 w-15 text-destructive mb-4" }),
3377
+ /* @__PURE__ */ jsx37("h1", { className: "text-2xl font-bold text-destructive mb-2", children: "Page Not Found" }),
3378
+ /* @__PURE__ */ jsxs24("p", { className: "text-xl mb-4", children: [
3379
+ "The page ",
3380
+ /* @__PURE__ */ jsx37("code", { className: "px-1 py-0.5 rounded bg-muted text-foreground", children: location.pathname }),
3381
+ " doesn't exist or has been moved."
3382
+ ] }),
3383
+ /* @__PURE__ */ jsxs24("div", { className: "flex space-x-4", children: [
3384
+ /* @__PURE__ */ jsx37(Button, { variant: "outline", onClick: goBack, children: "Go Back" }),
3385
+ /* @__PURE__ */ jsx37(Button, { variant: "ghost", children: /* @__PURE__ */ jsx37(NavLink2, { to: "/", children: "Return Home" }) })
3386
+ ] })
3387
+ ] });
3388
+ };
3174
3389
 
3175
3390
  // src/components/core/offline-content.tsx
3176
3391
  import { WifiOffIcon } from "lucide-react";
3177
3392
  import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
3393
+ var OfflineUI = () => /* @__PURE__ */ jsxs25("div", { className: "rounded-2xl flex flex-col items-center justify-center h-screen p-6 text-center text-muted-foreground bg-background select-none", children: [
3394
+ /* @__PURE__ */ jsx38(WifiOffIcon, { className: "h-15 w-15 text-destructive mb-4" }),
3395
+ /* @__PURE__ */ jsx38("h1", { className: "text-3xl font-bold text-destructive mb-2", children: "You're offline" }),
3396
+ /* @__PURE__ */ jsx38("p", { className: "text-xl max-w-md", children: "We couldn't connect to the server." })
3397
+ ] });
3178
3398
 
3179
3399
  // src/components/core/unauthorized.tsx
3180
3400
  import { ShieldOffIcon } from "lucide-react";
3181
3401
  import { NavLink as NavLink3, useNavigate as useNavigate3 } from "react-router";
3182
3402
  import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
3403
+ var Unauthorized = () => {
3404
+ const navigate = useNavigate3();
3405
+ const goBack = () => {
3406
+ if (window.history.length > 2) {
3407
+ navigate(-1);
3408
+ } else {
3409
+ navigate("/");
3410
+ }
3411
+ };
3412
+ return /* @__PURE__ */ jsxs26("div", { className: "rounded-2xl flex flex-col items-center justify-center h-full p-6 text-center bg-sidebar text-muted-foreground select-none", children: [
3413
+ /* @__PURE__ */ jsx39(ShieldOffIcon, { className: "h-15 w-15 text-destructive mb-4" }),
3414
+ /* @__PURE__ */ jsx39("h1", { className: "text-2xl font-bold text-destructive mb-2", children: "Access Denied" }),
3415
+ /* @__PURE__ */ jsx39("p", { className: "text-xl mb-4", children: "You don't have permission to view this page. Please sign in with an authorized account or contact your administrator." }),
3416
+ /* @__PURE__ */ jsxs26("div", { className: "flex space-x-4", children: [
3417
+ /* @__PURE__ */ jsx39(Button, { variant: "outline", onClick: goBack, children: "Go Back" }),
3418
+ /* @__PURE__ */ jsx39(Button, { variant: "ghost", children: /* @__PURE__ */ jsx39(NavLink3, { to: "/", children: "Go to Home" }) })
3419
+ ] })
3420
+ ] });
3421
+ };
3183
3422
  export {
3184
3423
  AppMetaProvider,
3185
- Checkmark,
3424
+ CurrencyTransfer,
3186
3425
  DataTable,
3187
3426
  DataTableActionBar,
3188
3427
  DataTableActionBarAction,
@@ -3191,7 +3430,12 @@ export {
3191
3430
  DataTemplateActionBar,
3192
3431
  DataTemplateActionBarAction,
3193
3432
  DataTemplateActionBarSelection,
3433
+ ErrorComponent,
3194
3434
  GeneralHelper,
3435
+ Loader4 as Loader,
3436
+ NotFound,
3437
+ OfflineUI,
3438
+ Unauthorized,
3195
3439
  createLayoutComponents,
3196
3440
  createPageTemplateHook,
3197
3441
  createTypedAppMetaContext