@nextsparkjs/core 0.1.0-beta.68 → 0.1.0-beta.69
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/components/settings/layouts/SettingsSidebar.d.ts.map +1 -1
- package/dist/components/settings/layouts/SettingsSidebar.js +14 -0
- package/dist/components/ui/index.d.ts +7 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +7 -0
- package/dist/components/ui/skeleton-dashboard.d.ts +32 -0
- package/dist/components/ui/skeleton-dashboard.d.ts.map +1 -0
- package/dist/components/ui/skeleton-dashboard.js +69 -0
- package/dist/components/ui/skeleton-detail.d.ts.map +1 -1
- package/dist/components/ui/skeleton-detail.js +0 -1
- package/dist/components/ui/skeleton-features.d.ts +27 -0
- package/dist/components/ui/skeleton-features.d.ts.map +1 -0
- package/dist/components/ui/skeleton-features.js +90 -0
- package/dist/components/ui/skeleton-form.d.ts.map +1 -1
- package/dist/components/ui/skeleton-form.js +0 -1
- package/dist/components/ui/skeleton-list.d.ts.map +1 -1
- package/dist/components/ui/skeleton-list.js +0 -1
- package/dist/components/ui/skeleton-public.d.ts +26 -0
- package/dist/components/ui/skeleton-public.d.ts.map +1 -0
- package/dist/components/ui/skeleton-public.js +61 -0
- package/dist/components/ui/skeleton-settings.d.ts +54 -0
- package/dist/components/ui/skeleton-settings.d.ts.map +1 -0
- package/dist/components/ui/skeleton-settings.js +332 -0
- package/dist/components/ui/skeleton.d.ts +23 -1
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/skeleton.js +46 -2
- package/dist/contexts/TeamContext.d.ts +2 -0
- package/dist/contexts/TeamContext.d.ts.map +1 -1
- package/dist/contexts/TeamContext.js +78 -68
- package/dist/hooks/usePrefetch.d.ts +43 -0
- package/dist/hooks/usePrefetch.d.ts.map +1 -0
- package/dist/hooks/usePrefetch.js +56 -0
- package/dist/lib/actions/index.d.ts +27 -14
- package/dist/lib/actions/index.d.ts.map +1 -1
- package/dist/lib/actions/index.js +19 -1
- package/dist/lib/actions/team.actions.d.ts +107 -0
- package/dist/lib/actions/team.actions.d.ts.map +1 -0
- package/dist/lib/actions/team.actions.js +220 -0
- package/dist/lib/actions/user.actions.d.ts +99 -0
- package/dist/lib/actions/user.actions.d.ts.map +1 -0
- package/dist/lib/actions/user.actions.js +149 -0
- package/dist/messages/de/devtools.json +4 -0
- package/dist/messages/de/index.d.ts +4 -0
- package/dist/messages/de/index.d.ts.map +1 -1
- package/dist/messages/en/devtools.json +16 -0
- package/dist/messages/en/index.d.ts +16 -0
- package/dist/messages/en/index.d.ts.map +1 -1
- package/dist/messages/es/devtools.json +4 -0
- package/dist/messages/es/index.d.ts +4 -0
- package/dist/messages/es/index.d.ts.map +1 -1
- package/dist/messages/fr/devtools.json +4 -0
- package/dist/messages/fr/index.d.ts +4 -0
- package/dist/messages/fr/index.d.ts.map +1 -1
- package/dist/messages/it/devtools.json +4 -0
- package/dist/messages/it/index.d.ts +4 -0
- package/dist/messages/it/index.d.ts.map +1 -1
- package/dist/messages/pt/devtools.json +4 -0
- package/dist/messages/pt/index.d.ts +4 -0
- package/dist/messages/pt/index.d.ts.map +1 -1
- package/dist/nextspark-entities.d.ts +59 -0
- package/dist/styles/classes.json +15 -2
- package/dist/styles/ui.css +1 -1
- package/dist/templates/app/(public)/[...slug]/page.tsx +2 -1
- package/dist/templates/app/(public)/docs/[section]/[page]/page.tsx +1 -1
- package/dist/templates/app/api/devtools/config/entities/route.ts +2 -1
- package/dist/templates/app/api/user/plan-flags/route.ts +1 -1
- package/dist/templates/app/api/v1/[entity]/[id]/child/[childType]/[childId]/route.ts +4 -2
- package/dist/templates/app/dashboard/(main)/layout.tsx +2 -1
- package/dist/templates/app/dashboard/(main)/loading.tsx +5 -0
- package/dist/templates/app/dashboard/features/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/api-keys/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/billing/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/invoices/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/notifications/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/password/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/plans/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/profile/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/security/loading.tsx +5 -0
- package/dist/templates/app/dashboard/settings/teams/loading.tsx +5 -0
- package/dist/templates/app/devtools/config/page.tsx +1 -1
- package/dist/templates/app/devtools/page.tsx +1 -1
- package/dist/templates/app/devtools/tests/[[...path]]/page.tsx +1 -1
- package/dist/templates/contents/themes/starter/messages/de/common.json +4 -1
- package/dist/templates/contents/themes/starter/messages/de/index.ts +15 -0
- package/dist/templates/contents/themes/starter/messages/en/common.json +4 -1
- package/dist/templates/contents/themes/starter/messages/en/index.ts +15 -0
- package/dist/templates/contents/themes/starter/messages/es/common.json +4 -1
- package/dist/templates/contents/themes/starter/messages/es/index.ts +15 -0
- package/dist/templates/contents/themes/starter/messages/fr/common.json +4 -1
- package/dist/templates/contents/themes/starter/messages/fr/index.ts +15 -0
- package/dist/templates/contents/themes/starter/messages/it/common.json +4 -1
- package/dist/templates/contents/themes/starter/messages/it/index.ts +13 -0
- package/dist/templates/contents/themes/starter/messages/pt/common.json +4 -1
- package/dist/templates/contents/themes/starter/messages/pt/index.ts +13 -0
- package/dist/templates/contents/themes/starter/styles/globals.css +3 -1
- package/dist/templates/contents/themes/starter/templates/(dashboard)/analytics/loading.tsx +5 -0
- package/dist/templates/contents/themes/starter/templates/(public)/loading.tsx +5 -0
- package/dist/templates/next.config.mjs +5 -0
- package/dist/templates/{middleware.ts → proxy.ts} +5 -6
- package/globals.css +54 -0
- package/nextspark-entities.d.ts +59 -0
- package/package.json +14 -13
- package/scripts/build/registry/discovery/api-presets.mjs +20 -12
- package/scripts/build/registry/generators/api-presets-registry.mjs +18 -5
- package/scripts/build/registry/generators/block-registry.mjs +14 -3
- package/scripts/build/registry/generators/docs-registry.mjs +21 -3
- package/scripts/build/registry/generators/translation-registry.mjs +16 -7
- package/scripts/build/theme.mjs +2 -1
- package/templates/app/(public)/[...slug]/page.tsx +2 -1
- package/templates/app/(public)/docs/[section]/[page]/page.tsx +1 -1
- package/templates/app/api/auth/[...all]/route.ts +13 -5
- package/templates/app/api/devtools/config/entities/route.ts +2 -1
- package/templates/app/api/user/plan-flags/route.ts +1 -1
- package/templates/app/api/v1/[entity]/[id]/child/[childType]/[childId]/route.ts +4 -2
- package/templates/app/dashboard/(main)/layout.tsx +2 -1
- package/templates/app/dashboard/(main)/loading.tsx +5 -0
- package/templates/app/dashboard/features/loading.tsx +5 -0
- package/templates/app/dashboard/settings/api-keys/loading.tsx +5 -0
- package/templates/app/dashboard/settings/billing/loading.tsx +5 -0
- package/templates/app/dashboard/settings/invoices/loading.tsx +5 -0
- package/templates/app/dashboard/settings/loading.tsx +5 -0
- package/templates/app/dashboard/settings/notifications/loading.tsx +5 -0
- package/templates/app/dashboard/settings/password/loading.tsx +5 -0
- package/templates/app/dashboard/settings/plans/loading.tsx +5 -0
- package/templates/app/dashboard/settings/profile/loading.tsx +5 -0
- package/templates/app/dashboard/settings/security/loading.tsx +5 -0
- package/templates/app/dashboard/settings/teams/loading.tsx +5 -0
- package/templates/app/devtools/config/page.tsx +1 -1
- package/templates/app/devtools/page.tsx +1 -1
- package/templates/app/devtools/tests/[[...path]]/page.tsx +1 -1
- package/templates/contents/themes/starter/config/app.config.ts +8 -7
- package/templates/contents/themes/starter/messages/de/common.json +4 -1
- package/templates/contents/themes/starter/messages/de/index.ts +15 -0
- package/templates/contents/themes/starter/messages/en/common.json +4 -1
- package/templates/contents/themes/starter/messages/en/index.ts +15 -0
- package/templates/contents/themes/starter/messages/es/common.json +4 -1
- package/templates/contents/themes/starter/messages/es/index.ts +15 -0
- package/templates/contents/themes/starter/messages/fr/common.json +4 -1
- package/templates/contents/themes/starter/messages/fr/index.ts +15 -0
- package/templates/contents/themes/starter/messages/it/common.json +4 -1
- package/templates/contents/themes/starter/messages/it/index.ts +13 -0
- package/templates/contents/themes/starter/messages/pt/common.json +4 -1
- package/templates/contents/themes/starter/messages/pt/index.ts +13 -0
- package/templates/contents/themes/starter/styles/globals.css +3 -1
- package/templates/contents/themes/starter/templates/(dashboard)/analytics/loading.tsx +5 -0
- package/templates/contents/themes/starter/templates/(public)/loading.tsx +5 -0
- package/templates/next.config.mjs +5 -0
- package/templates/pnpm-workspace.yaml +5 -0
- package/templates/{middleware.ts → proxy.ts} +5 -6
- package/tests/jest/setup.ts +5 -0
- package/dist/presets/plugin/.env.example.template +0 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/layouts/SettingsSidebar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SettingsSidebar.d.ts","sourceRoot":"","sources":["../../../../src/components/settings/layouts/SettingsSidebar.tsx"],"names":[],"mappings":"AAoCA,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAkKlE"}
|
|
@@ -5,6 +5,7 @@ import { usePathname } from "next/navigation";
|
|
|
5
5
|
import { useState, useCallback, useMemo } from "react";
|
|
6
6
|
import { cn } from "../../../lib/utils.js";
|
|
7
7
|
import { useUserProfile } from "../../../hooks/useUserProfile.js";
|
|
8
|
+
import { usePrefetchSettings } from "../../../hooks/usePrefetch.js";
|
|
8
9
|
import {
|
|
9
10
|
User,
|
|
10
11
|
Users,
|
|
@@ -34,8 +35,19 @@ function SettingsSidebar({ className }) {
|
|
|
34
35
|
const pathname = usePathname();
|
|
35
36
|
const [statusMessage, setStatusMessage] = useState("");
|
|
36
37
|
const { hasPassword } = useUserProfile();
|
|
38
|
+
const { prefetchProfile, prefetchTeams } = usePrefetchSettings();
|
|
37
39
|
const t = useTranslations("common");
|
|
38
40
|
const tSettings = useTranslations("settings");
|
|
41
|
+
const getPrefetchHandler = useCallback((pageName) => {
|
|
42
|
+
switch (pageName) {
|
|
43
|
+
case "profile":
|
|
44
|
+
return prefetchProfile;
|
|
45
|
+
case "teams":
|
|
46
|
+
return prefetchTeams;
|
|
47
|
+
default:
|
|
48
|
+
return void 0;
|
|
49
|
+
}
|
|
50
|
+
}, [prefetchProfile, prefetchTeams]);
|
|
39
51
|
const filteredNavigation = useMemo(() => {
|
|
40
52
|
const enabledPages = getEnabledSettingsPages();
|
|
41
53
|
console.log("[SettingsSidebar] enabledPages:", enabledPages);
|
|
@@ -117,6 +129,7 @@ function SettingsSidebar({ className }) {
|
|
|
117
129
|
children: filteredNavigation.map((item) => {
|
|
118
130
|
const isActive = pathname === item.href;
|
|
119
131
|
const Icon = item.icon;
|
|
132
|
+
const prefetchHandler = getPrefetchHandler(item.name);
|
|
120
133
|
return /* @__PURE__ */ jsxs(
|
|
121
134
|
Link,
|
|
122
135
|
{
|
|
@@ -124,6 +137,7 @@ function SettingsSidebar({ className }) {
|
|
|
124
137
|
role: "listitem",
|
|
125
138
|
onClick: () => handleNavigation(tSettings(`navigation.${item.name}`), tSettings(`overview.${item.name}Description`)),
|
|
126
139
|
onKeyDown: (e) => handleKeyDown(e, item.href, tSettings(`navigation.${item.name}`), tSettings(`overview.${item.name}Description`)),
|
|
140
|
+
onMouseEnter: prefetchHandler,
|
|
127
141
|
"aria-current": isActive ? "page" : void 0,
|
|
128
142
|
"aria-label": createAriaLabel(
|
|
129
143
|
"{name} - {description}{current}",
|
|
@@ -27,6 +27,13 @@ export * from './select';
|
|
|
27
27
|
export * from './separator';
|
|
28
28
|
export * from './sheet';
|
|
29
29
|
export * from './skeleton';
|
|
30
|
+
export * from './skeleton-dashboard';
|
|
31
|
+
export * from './skeleton-detail';
|
|
32
|
+
export * from './skeleton-features';
|
|
33
|
+
export * from './skeleton-form';
|
|
34
|
+
export * from './skeleton-list';
|
|
35
|
+
export * from './skeleton-settings';
|
|
36
|
+
export * from './skeleton-public';
|
|
30
37
|
export * from './slider';
|
|
31
38
|
export * from './switch';
|
|
32
39
|
export * from './table';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAGzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AACxB,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AAGzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA"}
|
|
@@ -27,6 +27,13 @@ export * from "./select.js";
|
|
|
27
27
|
export * from "./separator.js";
|
|
28
28
|
export * from "./sheet.js";
|
|
29
29
|
export * from "./skeleton.js";
|
|
30
|
+
export * from "./skeleton-dashboard.js";
|
|
31
|
+
export * from "./skeleton-detail.js";
|
|
32
|
+
export * from "./skeleton-features.js";
|
|
33
|
+
export * from "./skeleton-form.js";
|
|
34
|
+
export * from "./skeleton-list.js";
|
|
35
|
+
export * from "./skeleton-settings.js";
|
|
36
|
+
export * from "./skeleton-public.js";
|
|
30
37
|
export * from "./slider.js";
|
|
31
38
|
export * from "./switch.js";
|
|
32
39
|
export * from "./table.js";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skeleton components specifically for dashboard pages
|
|
3
|
+
* Provides realistic loading states that match the actual dashboard structure
|
|
4
|
+
*
|
|
5
|
+
* Performance optimizations:
|
|
6
|
+
* - Uses SkeletonContainer for content-visibility optimization
|
|
7
|
+
* - CSS containment isolates layout calculations
|
|
8
|
+
* - Supports prefers-reduced-motion
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Skeleton for a single stat card
|
|
12
|
+
*/
|
|
13
|
+
export declare function SkeletonStatCard(): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Skeleton for stats grid (4 cards)
|
|
16
|
+
* Uses SkeletonContainer for content-visibility optimization
|
|
17
|
+
*/
|
|
18
|
+
export declare function SkeletonStatsGrid(): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* Skeleton for quick actions section
|
|
21
|
+
*/
|
|
22
|
+
export declare function SkeletonQuickActions(): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Skeleton for activity section
|
|
25
|
+
*/
|
|
26
|
+
export declare function SkeletonActivity(): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Complete skeleton for dashboard home page
|
|
29
|
+
* Matches the layout of the actual dashboard home
|
|
30
|
+
*/
|
|
31
|
+
export declare function SkeletonDashboardHome(): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
//# sourceMappingURL=skeleton-dashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton-dashboard.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-dashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,wBAAgB,gBAAgB,4CAa/B;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,4CAShC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,4CAoBnC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,4CAsB/B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,4CAqBpC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Card, CardContent, CardHeader } from "./card.js";
|
|
3
|
+
import { Skeleton, SkeletonContainer } from "./skeleton.js";
|
|
4
|
+
function SkeletonStatCard() {
|
|
5
|
+
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
6
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "flex flex-row items-center justify-between space-y-0 pb-2", children: [
|
|
7
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24" }),
|
|
8
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-4" })
|
|
9
|
+
] }),
|
|
10
|
+
/* @__PURE__ */ jsxs(CardContent, { children: [
|
|
11
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-16 mb-2" }),
|
|
12
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-20" })
|
|
13
|
+
] })
|
|
14
|
+
] });
|
|
15
|
+
}
|
|
16
|
+
function SkeletonStatsGrid() {
|
|
17
|
+
return /* @__PURE__ */ jsxs(SkeletonContainer, { "data-cy": "skeleton-stats-grid", className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4", children: [
|
|
18
|
+
/* @__PURE__ */ jsx(SkeletonStatCard, {}),
|
|
19
|
+
/* @__PURE__ */ jsx(SkeletonStatCard, {}),
|
|
20
|
+
/* @__PURE__ */ jsx(SkeletonStatCard, {}),
|
|
21
|
+
/* @__PURE__ */ jsx(SkeletonStatCard, {})
|
|
22
|
+
] });
|
|
23
|
+
}
|
|
24
|
+
function SkeletonQuickActions() {
|
|
25
|
+
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
26
|
+
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
27
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-32" }),
|
|
28
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-64" })
|
|
29
|
+
] }),
|
|
30
|
+
/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(SkeletonContainer, { className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "p-4 border rounded-lg space-y-2", children: [
|
|
31
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-5" }),
|
|
32
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-24" }),
|
|
33
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-32" })
|
|
34
|
+
] }, i)) }) })
|
|
35
|
+
] });
|
|
36
|
+
}
|
|
37
|
+
function SkeletonActivity() {
|
|
38
|
+
return /* @__PURE__ */ jsxs(Card, { children: [
|
|
39
|
+
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
40
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-32" }),
|
|
41
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-48" })
|
|
42
|
+
] }),
|
|
43
|
+
/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx("div", { className: "space-y-4", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
44
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-2 w-2 rounded-full" }),
|
|
45
|
+
/* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1", children: [
|
|
46
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-40" }),
|
|
47
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-24" })
|
|
48
|
+
] })
|
|
49
|
+
] }, i)) }) })
|
|
50
|
+
] });
|
|
51
|
+
}
|
|
52
|
+
function SkeletonDashboardHome() {
|
|
53
|
+
return /* @__PURE__ */ jsx("div", { "data-cy": "skeleton-dashboard-home", className: "min-h-screen bg-gradient-to-b from-background to-muted/20 py-12 px-4 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto space-y-8", children: [
|
|
54
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-8", children: [
|
|
55
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-64 mb-2" }),
|
|
56
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-80" })
|
|
57
|
+
] }),
|
|
58
|
+
/* @__PURE__ */ jsx(SkeletonStatsGrid, {}),
|
|
59
|
+
/* @__PURE__ */ jsx(SkeletonQuickActions, {}),
|
|
60
|
+
/* @__PURE__ */ jsx(SkeletonActivity, {})
|
|
61
|
+
] }) });
|
|
62
|
+
}
|
|
63
|
+
export {
|
|
64
|
+
SkeletonActivity,
|
|
65
|
+
SkeletonDashboardHome,
|
|
66
|
+
SkeletonQuickActions,
|
|
67
|
+
SkeletonStatCard,
|
|
68
|
+
SkeletonStatsGrid
|
|
69
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-detail.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-detail.tsx"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"skeleton-detail.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-detail.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,wBAAgB,oBAAoB,4CAqBnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,OAAe,EAAE,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2CAO7E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAc,EACf,EAAE;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,2CAkBA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,4CAqC/B;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,4CAYnC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skeleton components specifically for feature pages
|
|
3
|
+
* Provides realistic loading states that match the feature gate/placeholder structure
|
|
4
|
+
*
|
|
5
|
+
* Performance optimizations:
|
|
6
|
+
* - Uses SkeletonContainer for content-visibility optimization
|
|
7
|
+
* - CSS containment isolates layout calculations
|
|
8
|
+
* - Supports prefers-reduced-motion
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Skeleton for feature placeholder page
|
|
12
|
+
* Matches the FeaturePlaceholder component layout
|
|
13
|
+
*/
|
|
14
|
+
export declare function SkeletonFeaturePlaceholder(): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* Skeleton for analytics dashboard page
|
|
17
|
+
*/
|
|
18
|
+
export declare function SkeletonAnalyticsPage(): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* Skeleton for webhooks configuration page
|
|
21
|
+
*/
|
|
22
|
+
export declare function SkeletonWebhooksPage(): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
/**
|
|
24
|
+
* Skeleton for automation page
|
|
25
|
+
*/
|
|
26
|
+
export declare function SkeletonAutomationPage(): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
//# sourceMappingURL=skeleton-features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton-features.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-features.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;GAGG;AACH,wBAAgB,0BAA0B,4CA8BzC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,4CAkCpC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,4CAoCnC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,4CAiCrC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Card, CardContent, CardHeader } from "./card.js";
|
|
3
|
+
import { Skeleton } from "./skeleton.js";
|
|
4
|
+
function SkeletonFeaturePlaceholder() {
|
|
5
|
+
return /* @__PURE__ */ jsx("div", { "data-cy": "skeleton-feature-placeholder", className: "flex flex-col items-center justify-center min-h-[400px] p-8", children: /* @__PURE__ */ jsxs(Card, { className: "max-w-md w-full text-center", children: [
|
|
6
|
+
/* @__PURE__ */ jsxs(CardHeader, { className: "pb-4", children: [
|
|
7
|
+
/* @__PURE__ */ jsx("div", { className: "flex justify-center mb-4", children: /* @__PURE__ */ jsx(Skeleton, { className: "h-16 w-16 rounded-full" }) }),
|
|
8
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-7 w-48 mx-auto mb-2" }),
|
|
9
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-64 mx-auto" })
|
|
10
|
+
] }),
|
|
11
|
+
/* @__PURE__ */ jsxs(CardContent, { className: "space-y-4", children: [
|
|
12
|
+
/* @__PURE__ */ jsx("div", { className: "space-y-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
13
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-5 flex-shrink-0" }),
|
|
14
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-full" })
|
|
15
|
+
] }, i)) }),
|
|
16
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-full mt-6" })
|
|
17
|
+
] })
|
|
18
|
+
] }) });
|
|
19
|
+
}
|
|
20
|
+
function SkeletonAnalyticsPage() {
|
|
21
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
22
|
+
/* @__PURE__ */ jsxs("header", { children: [
|
|
23
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-48 mb-2" }),
|
|
24
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-72" })
|
|
25
|
+
] }),
|
|
26
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-4 md:grid-cols-4", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6", children: [
|
|
27
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-24 mb-2" }),
|
|
28
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-16 mb-1" }),
|
|
29
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-20" })
|
|
30
|
+
] }) }, i)) }),
|
|
31
|
+
/* @__PURE__ */ jsxs(Card, { children: [
|
|
32
|
+
/* @__PURE__ */ jsxs(CardHeader, { children: [
|
|
33
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-32" }),
|
|
34
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-48" })
|
|
35
|
+
] }),
|
|
36
|
+
/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(Skeleton, { className: "h-64 w-full" }) })
|
|
37
|
+
] })
|
|
38
|
+
] });
|
|
39
|
+
}
|
|
40
|
+
function SkeletonWebhooksPage() {
|
|
41
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
42
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between", children: [
|
|
43
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
44
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-32 mb-2" }),
|
|
45
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-64" })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-36" })
|
|
48
|
+
] }),
|
|
49
|
+
/* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "divide-y", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between p-4", children: [
|
|
50
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
51
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-5" }),
|
|
52
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
53
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-40" }),
|
|
54
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-64" })
|
|
55
|
+
] })
|
|
56
|
+
] }),
|
|
57
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
58
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-16 rounded-full" }),
|
|
59
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-8" })
|
|
60
|
+
] })
|
|
61
|
+
] }, i)) }) }) })
|
|
62
|
+
] });
|
|
63
|
+
}
|
|
64
|
+
function SkeletonAutomationPage() {
|
|
65
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
66
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between", children: [
|
|
67
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
68
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-8 w-36 mb-2" }),
|
|
69
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-72" })
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-40" })
|
|
72
|
+
] }),
|
|
73
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-4 md:grid-cols-2", children: Array.from({ length: 4 }).map((_, i) => /* @__PURE__ */ jsx(Card, { children: /* @__PURE__ */ jsx(CardContent, { className: "p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between", children: [
|
|
74
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
75
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-10 rounded-lg" }),
|
|
76
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
|
|
77
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-5 w-32" }),
|
|
78
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-48" })
|
|
79
|
+
] })
|
|
80
|
+
] }),
|
|
81
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-6 w-12 rounded-full" })
|
|
82
|
+
] }) }) }, i)) })
|
|
83
|
+
] });
|
|
84
|
+
}
|
|
85
|
+
export {
|
|
86
|
+
SkeletonAnalyticsPage,
|
|
87
|
+
SkeletonAutomationPage,
|
|
88
|
+
SkeletonFeaturePlaceholder,
|
|
89
|
+
SkeletonWebhooksPage
|
|
90
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-form.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-form.tsx"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"skeleton-form.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-form.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,wBAAgB,kBAAkB,4CAgBjC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,UAAc,EAAE,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,2CAWjF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,UAAkB,EAAE,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,2CAOjF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,4CAYpC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,UAAc,EACd,YAAmB,EACnB,aAAoB,EACrB,EAAE;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,2CAuCA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CAUlC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,UAAc,EACd,YAAmB,EACnB,aAAoB,EACrB,EAAE;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,2CAqBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-list.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-list.tsx"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"skeleton-list.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-list.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;GAEG;AACH,wBAAgB,kBAAkB,4CAgBjC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,WAAe,EAAE,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,2CAqBhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,WAAe,EAAE,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,2CA0B7E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAY,EACZ,WAAe,EAChB,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,2CAeA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,4CAmBjC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CAiBlC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,QAAY,EACZ,WAAe,EACf,eAAuB,EACxB,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,2CAgBA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skeleton components specifically for public pages
|
|
3
|
+
* Provides realistic loading states that match the public page structure
|
|
4
|
+
*
|
|
5
|
+
* Performance optimizations:
|
|
6
|
+
* - Uses SkeletonContainer for content-visibility optimization
|
|
7
|
+
* - CSS containment isolates layout calculations
|
|
8
|
+
* - Supports prefers-reduced-motion
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Skeleton for hero section
|
|
12
|
+
*/
|
|
13
|
+
export declare function SkeletonHeroSection(): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Skeleton for features section
|
|
16
|
+
*/
|
|
17
|
+
export declare function SkeletonFeaturesSection(): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Complete skeleton for landing/home page
|
|
20
|
+
*/
|
|
21
|
+
export declare function SkeletonLandingPage(): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* Skeleton for support/contact page
|
|
24
|
+
*/
|
|
25
|
+
export declare function SkeletonSupportPage(): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
//# sourceMappingURL=skeleton-public.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton-public.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-public.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;GAEG;AACH,wBAAgB,mBAAmB,4CAYlC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,4CAsBtC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CAOlC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CA+BlC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Skeleton } from "./skeleton.js";
|
|
3
|
+
function SkeletonHeroSection() {
|
|
4
|
+
return /* @__PURE__ */ jsxs("section", { className: "flex flex-col items-center justify-center px-4 py-24 text-center", children: [
|
|
5
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-12 w-96 max-w-full sm:h-16" }),
|
|
6
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-6 h-6 w-[32rem] max-w-full" }),
|
|
7
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-2 h-6 w-96 max-w-full" }),
|
|
8
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-10 h-12 w-40" })
|
|
9
|
+
] });
|
|
10
|
+
}
|
|
11
|
+
function SkeletonFeaturesSection() {
|
|
12
|
+
return /* @__PURE__ */ jsx("section", { className: "px-4 py-24 bg-muted/50", children: /* @__PURE__ */ jsxs("div", { className: "max-w-6xl mx-auto", children: [
|
|
13
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-64 mx-auto" }),
|
|
14
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-4 h-5 w-96 mx-auto" }),
|
|
15
|
+
/* @__PURE__ */ jsx("div", { className: "mt-12 grid gap-8 md:grid-cols-3", children: Array.from({ length: 3 }).map((_, i) => /* @__PURE__ */ jsxs("div", { className: "p-6 rounded-lg border bg-card", children: [
|
|
16
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-12 w-12 rounded-lg" }),
|
|
17
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-4 h-6 w-32" }),
|
|
18
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-2 h-4 w-full" }),
|
|
19
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-1 h-4 w-3/4" })
|
|
20
|
+
] }, i)) })
|
|
21
|
+
] }) });
|
|
22
|
+
}
|
|
23
|
+
function SkeletonLandingPage() {
|
|
24
|
+
return /* @__PURE__ */ jsxs("main", { className: "flex min-h-screen flex-col", children: [
|
|
25
|
+
/* @__PURE__ */ jsx(SkeletonHeroSection, {}),
|
|
26
|
+
/* @__PURE__ */ jsx(SkeletonFeaturesSection, {})
|
|
27
|
+
] });
|
|
28
|
+
}
|
|
29
|
+
function SkeletonSupportPage() {
|
|
30
|
+
return /* @__PURE__ */ jsxs("div", { className: "max-w-2xl mx-auto px-4 py-12", children: [
|
|
31
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-9 w-48" }),
|
|
32
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-2 h-5 w-80" }),
|
|
33
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-8 space-y-6", children: [
|
|
34
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [
|
|
35
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
36
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-16" }),
|
|
37
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-full" })
|
|
38
|
+
] }),
|
|
39
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
40
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-16" }),
|
|
41
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-full" })
|
|
42
|
+
] })
|
|
43
|
+
] }),
|
|
44
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
45
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-20" }),
|
|
46
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-full" })
|
|
47
|
+
] }),
|
|
48
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
49
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-20" }),
|
|
50
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-32 w-full" })
|
|
51
|
+
] }),
|
|
52
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-10 w-32" })
|
|
53
|
+
] })
|
|
54
|
+
] });
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
SkeletonFeaturesSection,
|
|
58
|
+
SkeletonHeroSection,
|
|
59
|
+
SkeletonLandingPage,
|
|
60
|
+
SkeletonSupportPage
|
|
61
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skeleton components specifically for settings pages
|
|
3
|
+
* Provides realistic loading states that match the settings page structure
|
|
4
|
+
*
|
|
5
|
+
* Performance optimizations:
|
|
6
|
+
* - Uses SkeletonContainer for content-visibility optimization
|
|
7
|
+
* - CSS containment isolates layout calculations
|
|
8
|
+
* - Supports prefers-reduced-motion
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Skeleton for settings navigation card
|
|
12
|
+
*/
|
|
13
|
+
export declare function SkeletonSettingsNavCard(): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Skeleton for settings overview page (navigation cards)
|
|
16
|
+
*/
|
|
17
|
+
export declare function SkeletonSettingsOverview(): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
/**
|
|
19
|
+
* Skeleton for profile form page
|
|
20
|
+
*/
|
|
21
|
+
export declare function SkeletonProfileForm(): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* Skeleton for billing/plans page
|
|
24
|
+
*/
|
|
25
|
+
export declare function SkeletonBillingPage(): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
/**
|
|
27
|
+
* Skeleton for password change page
|
|
28
|
+
*/
|
|
29
|
+
export declare function SkeletonPasswordPage(): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
/**
|
|
31
|
+
* Skeleton for security page (sessions list)
|
|
32
|
+
*/
|
|
33
|
+
export declare function SkeletonSecurityPage(): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
/**
|
|
35
|
+
* Skeleton for API keys page
|
|
36
|
+
*/
|
|
37
|
+
export declare function SkeletonApiKeysPage(): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
/**
|
|
39
|
+
* Skeleton for notifications page
|
|
40
|
+
*/
|
|
41
|
+
export declare function SkeletonNotificationsPage(): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
/**
|
|
43
|
+
* Skeleton for teams page
|
|
44
|
+
*/
|
|
45
|
+
export declare function SkeletonTeamsPage(): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
/**
|
|
47
|
+
* Skeleton for invoices page
|
|
48
|
+
*/
|
|
49
|
+
export declare function SkeletonInvoicesPage(): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
/**
|
|
51
|
+
* Skeleton for plans page
|
|
52
|
+
*/
|
|
53
|
+
export declare function SkeletonPlansPage(): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
//# sourceMappingURL=skeleton-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton-settings.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-settings.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,wBAAgB,uBAAuB,4CAYtC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,4CAsBvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CAkFlC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CAqDlC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,4CAmCnC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,4CAkCnC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,4CAoClC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,4CA2BxC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,4CA2ChC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,4CA2CnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,4CAqChC"}
|