@tirth_jasoliya/ui 1.0.3 → 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.d.cts CHANGED
@@ -395,4 +395,16 @@ declare class GeneralHelper {
395
395
  }) => React$1.JSX.Element;
396
396
  }
397
397
 
398
- export { type AppMeta, AppMetaProvider, DataTable, DataTableActionBar, DataTableActionBarAction, DataTableActionBarSelection, type DataTableProps, DataTemplate, DataTemplateActionBar, DataTemplateActionBarAction, DataTemplateActionBarSelection, type DataTemplateProps, GeneralHelper, type GroupColumnDef, createLayoutComponents, createPageTemplateHook, createTypedAppMetaContext };
398
+ declare const ErrorComponent: () => React$1.JSX.Element;
399
+
400
+ declare function CurrencyTransfer(): React$1.JSX.Element;
401
+
402
+ declare const Loader: () => React$1.JSX.Element;
403
+
404
+ declare const NotFound: () => React$1.JSX.Element;
405
+
406
+ declare const OfflineUI: () => React$1.JSX.Element;
407
+
408
+ declare const Unauthorized: () => React$1.JSX.Element;
409
+
410
+ export { type AppMeta, AppMetaProvider, CurrencyTransfer, DataTable, DataTableActionBar, DataTableActionBarAction, DataTableActionBarSelection, type DataTableProps, DataTemplate, DataTemplateActionBar, DataTemplateActionBarAction, DataTemplateActionBarSelection, type DataTemplateProps, ErrorComponent, GeneralHelper, type GroupColumnDef, Loader, NotFound, OfflineUI, Unauthorized, createLayoutComponents, createPageTemplateHook, createTypedAppMetaContext };
package/dist/index.d.ts CHANGED
@@ -395,4 +395,16 @@ declare class GeneralHelper {
395
395
  }) => React$1.JSX.Element;
396
396
  }
397
397
 
398
- export { type AppMeta, AppMetaProvider, DataTable, DataTableActionBar, DataTableActionBarAction, DataTableActionBarSelection, type DataTableProps, DataTemplate, DataTemplateActionBar, DataTemplateActionBarAction, DataTemplateActionBarSelection, type DataTemplateProps, GeneralHelper, type GroupColumnDef, createLayoutComponents, createPageTemplateHook, createTypedAppMetaContext };
398
+ declare const ErrorComponent: () => React$1.JSX.Element;
399
+
400
+ declare function CurrencyTransfer(): React$1.JSX.Element;
401
+
402
+ declare const Loader: () => React$1.JSX.Element;
403
+
404
+ declare const NotFound: () => React$1.JSX.Element;
405
+
406
+ declare const OfflineUI: () => React$1.JSX.Element;
407
+
408
+ declare const Unauthorized: () => React$1.JSX.Element;
409
+
410
+ export { type AppMeta, AppMetaProvider, CurrencyTransfer, DataTable, DataTableActionBar, DataTableActionBarAction, DataTableActionBarSelection, type DataTableProps, DataTemplate, DataTemplateActionBar, DataTemplateActionBarAction, DataTemplateActionBarSelection, type DataTemplateProps, ErrorComponent, GeneralHelper, type GroupColumnDef, Loader, NotFound, OfflineUI, Unauthorized, createLayoutComponents, createPageTemplateHook, createTypedAppMetaContext };
package/dist/index.js CHANGED
@@ -3108,8 +3108,320 @@ var GeneralHelper = class {
3108
3108
  ) });
3109
3109
  };
3110
3110
  };
3111
+
3112
+ // src/components/core/error.tsx
3113
+ import { AlertTriangleIcon } from "lucide-react";
3114
+ import { useRouteError, isRouteErrorResponse, useNavigate } from "react-router";
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
+ };
3152
+
3153
+ // src/components/core/event-success.tsx
3154
+ import { motion as motion3 } from "framer-motion";
3155
+ import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
3156
+ function Checkmark({ size = 100, strokeWidth = 2, color = "currentColor", className = "" }) {
3157
+ return /* @__PURE__ */ jsxs22(
3158
+ motion3.svg,
3159
+ {
3160
+ width: size,
3161
+ height: size,
3162
+ viewBox: "0 0 100 100",
3163
+ initial: "hidden",
3164
+ animate: "visible",
3165
+ className,
3166
+ children: [
3167
+ /* @__PURE__ */ jsx35("title", { children: "Animated Checkmark" }),
3168
+ /* @__PURE__ */ jsx35(
3169
+ motion3.circle,
3170
+ {
3171
+ cx: "50",
3172
+ cy: "50",
3173
+ r: "40",
3174
+ stroke: color,
3175
+ custom: 0,
3176
+ style: {
3177
+ strokeWidth,
3178
+ strokeLinecap: "round",
3179
+ fill: "transparent"
3180
+ }
3181
+ }
3182
+ ),
3183
+ /* @__PURE__ */ jsx35(
3184
+ motion3.path,
3185
+ {
3186
+ d: "M30 50L45 65L70 35",
3187
+ stroke: color,
3188
+ custom: 1,
3189
+ style: {
3190
+ strokeWidth,
3191
+ strokeLinecap: "round",
3192
+ strokeLinejoin: "round",
3193
+ fill: "transparent"
3194
+ }
3195
+ }
3196
+ )
3197
+ ]
3198
+ }
3199
+ );
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
+ }
3349
+
3350
+ // src/components/core/loader.tsx
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
+ };
3359
+
3360
+ // src/components/core/notfound.tsx
3361
+ import { useLocation } from "react-router";
3362
+ import { GhostIcon } from "lucide-react";
3363
+ import { NavLink as NavLink2, useNavigate as useNavigate2 } from "react-router";
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
+ };
3389
+
3390
+ // src/components/core/offline-content.tsx
3391
+ import { WifiOffIcon } from "lucide-react";
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
+ ] });
3398
+
3399
+ // src/components/core/unauthorized.tsx
3400
+ import { ShieldOffIcon } from "lucide-react";
3401
+ import { NavLink as NavLink3, useNavigate as useNavigate3 } from "react-router";
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
+ };
3111
3422
  export {
3112
3423
  AppMetaProvider,
3424
+ CurrencyTransfer,
3113
3425
  DataTable,
3114
3426
  DataTableActionBar,
3115
3427
  DataTableActionBarAction,
@@ -3118,7 +3430,12 @@ export {
3118
3430
  DataTemplateActionBar,
3119
3431
  DataTemplateActionBarAction,
3120
3432
  DataTemplateActionBarSelection,
3433
+ ErrorComponent,
3121
3434
  GeneralHelper,
3435
+ Loader4 as Loader,
3436
+ NotFound,
3437
+ OfflineUI,
3438
+ Unauthorized,
3122
3439
  createLayoutComponents,
3123
3440
  createPageTemplateHook,
3124
3441
  createTypedAppMetaContext