@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.
Files changed (152) hide show
  1. package/dist/components/settings/layouts/SettingsSidebar.d.ts.map +1 -1
  2. package/dist/components/settings/layouts/SettingsSidebar.js +14 -0
  3. package/dist/components/ui/index.d.ts +7 -0
  4. package/dist/components/ui/index.d.ts.map +1 -1
  5. package/dist/components/ui/index.js +7 -0
  6. package/dist/components/ui/skeleton-dashboard.d.ts +32 -0
  7. package/dist/components/ui/skeleton-dashboard.d.ts.map +1 -0
  8. package/dist/components/ui/skeleton-dashboard.js +69 -0
  9. package/dist/components/ui/skeleton-detail.d.ts.map +1 -1
  10. package/dist/components/ui/skeleton-detail.js +0 -1
  11. package/dist/components/ui/skeleton-features.d.ts +27 -0
  12. package/dist/components/ui/skeleton-features.d.ts.map +1 -0
  13. package/dist/components/ui/skeleton-features.js +90 -0
  14. package/dist/components/ui/skeleton-form.d.ts.map +1 -1
  15. package/dist/components/ui/skeleton-form.js +0 -1
  16. package/dist/components/ui/skeleton-list.d.ts.map +1 -1
  17. package/dist/components/ui/skeleton-list.js +0 -1
  18. package/dist/components/ui/skeleton-public.d.ts +26 -0
  19. package/dist/components/ui/skeleton-public.d.ts.map +1 -0
  20. package/dist/components/ui/skeleton-public.js +61 -0
  21. package/dist/components/ui/skeleton-settings.d.ts +54 -0
  22. package/dist/components/ui/skeleton-settings.d.ts.map +1 -0
  23. package/dist/components/ui/skeleton-settings.js +332 -0
  24. package/dist/components/ui/skeleton.d.ts +23 -1
  25. package/dist/components/ui/skeleton.d.ts.map +1 -1
  26. package/dist/components/ui/skeleton.js +46 -2
  27. package/dist/contexts/TeamContext.d.ts +2 -0
  28. package/dist/contexts/TeamContext.d.ts.map +1 -1
  29. package/dist/contexts/TeamContext.js +78 -68
  30. package/dist/hooks/usePrefetch.d.ts +43 -0
  31. package/dist/hooks/usePrefetch.d.ts.map +1 -0
  32. package/dist/hooks/usePrefetch.js +56 -0
  33. package/dist/lib/actions/index.d.ts +27 -14
  34. package/dist/lib/actions/index.d.ts.map +1 -1
  35. package/dist/lib/actions/index.js +19 -1
  36. package/dist/lib/actions/team.actions.d.ts +107 -0
  37. package/dist/lib/actions/team.actions.d.ts.map +1 -0
  38. package/dist/lib/actions/team.actions.js +220 -0
  39. package/dist/lib/actions/user.actions.d.ts +99 -0
  40. package/dist/lib/actions/user.actions.d.ts.map +1 -0
  41. package/dist/lib/actions/user.actions.js +149 -0
  42. package/dist/messages/de/devtools.json +4 -0
  43. package/dist/messages/de/index.d.ts +4 -0
  44. package/dist/messages/de/index.d.ts.map +1 -1
  45. package/dist/messages/en/devtools.json +16 -0
  46. package/dist/messages/en/index.d.ts +16 -0
  47. package/dist/messages/en/index.d.ts.map +1 -1
  48. package/dist/messages/es/devtools.json +4 -0
  49. package/dist/messages/es/index.d.ts +4 -0
  50. package/dist/messages/es/index.d.ts.map +1 -1
  51. package/dist/messages/fr/devtools.json +4 -0
  52. package/dist/messages/fr/index.d.ts +4 -0
  53. package/dist/messages/fr/index.d.ts.map +1 -1
  54. package/dist/messages/it/devtools.json +4 -0
  55. package/dist/messages/it/index.d.ts +4 -0
  56. package/dist/messages/it/index.d.ts.map +1 -1
  57. package/dist/messages/pt/devtools.json +4 -0
  58. package/dist/messages/pt/index.d.ts +4 -0
  59. package/dist/messages/pt/index.d.ts.map +1 -1
  60. package/dist/nextspark-entities.d.ts +59 -0
  61. package/dist/styles/classes.json +15 -2
  62. package/dist/styles/ui.css +1 -1
  63. package/dist/templates/app/(public)/[...slug]/page.tsx +2 -1
  64. package/dist/templates/app/(public)/docs/[section]/[page]/page.tsx +1 -1
  65. package/dist/templates/app/api/devtools/config/entities/route.ts +2 -1
  66. package/dist/templates/app/api/user/plan-flags/route.ts +1 -1
  67. package/dist/templates/app/api/v1/[entity]/[id]/child/[childType]/[childId]/route.ts +4 -2
  68. package/dist/templates/app/dashboard/(main)/layout.tsx +2 -1
  69. package/dist/templates/app/dashboard/(main)/loading.tsx +5 -0
  70. package/dist/templates/app/dashboard/features/loading.tsx +5 -0
  71. package/dist/templates/app/dashboard/settings/api-keys/loading.tsx +5 -0
  72. package/dist/templates/app/dashboard/settings/billing/loading.tsx +5 -0
  73. package/dist/templates/app/dashboard/settings/invoices/loading.tsx +5 -0
  74. package/dist/templates/app/dashboard/settings/loading.tsx +5 -0
  75. package/dist/templates/app/dashboard/settings/notifications/loading.tsx +5 -0
  76. package/dist/templates/app/dashboard/settings/password/loading.tsx +5 -0
  77. package/dist/templates/app/dashboard/settings/plans/loading.tsx +5 -0
  78. package/dist/templates/app/dashboard/settings/profile/loading.tsx +5 -0
  79. package/dist/templates/app/dashboard/settings/security/loading.tsx +5 -0
  80. package/dist/templates/app/dashboard/settings/teams/loading.tsx +5 -0
  81. package/dist/templates/app/devtools/config/page.tsx +1 -1
  82. package/dist/templates/app/devtools/page.tsx +1 -1
  83. package/dist/templates/app/devtools/tests/[[...path]]/page.tsx +1 -1
  84. package/dist/templates/contents/themes/starter/messages/de/common.json +4 -1
  85. package/dist/templates/contents/themes/starter/messages/de/index.ts +15 -0
  86. package/dist/templates/contents/themes/starter/messages/en/common.json +4 -1
  87. package/dist/templates/contents/themes/starter/messages/en/index.ts +15 -0
  88. package/dist/templates/contents/themes/starter/messages/es/common.json +4 -1
  89. package/dist/templates/contents/themes/starter/messages/es/index.ts +15 -0
  90. package/dist/templates/contents/themes/starter/messages/fr/common.json +4 -1
  91. package/dist/templates/contents/themes/starter/messages/fr/index.ts +15 -0
  92. package/dist/templates/contents/themes/starter/messages/it/common.json +4 -1
  93. package/dist/templates/contents/themes/starter/messages/it/index.ts +13 -0
  94. package/dist/templates/contents/themes/starter/messages/pt/common.json +4 -1
  95. package/dist/templates/contents/themes/starter/messages/pt/index.ts +13 -0
  96. package/dist/templates/contents/themes/starter/styles/globals.css +3 -1
  97. package/dist/templates/contents/themes/starter/templates/(dashboard)/analytics/loading.tsx +5 -0
  98. package/dist/templates/contents/themes/starter/templates/(public)/loading.tsx +5 -0
  99. package/dist/templates/next.config.mjs +5 -0
  100. package/dist/templates/{middleware.ts → proxy.ts} +5 -6
  101. package/globals.css +54 -0
  102. package/nextspark-entities.d.ts +59 -0
  103. package/package.json +14 -13
  104. package/scripts/build/registry/discovery/api-presets.mjs +20 -12
  105. package/scripts/build/registry/generators/api-presets-registry.mjs +18 -5
  106. package/scripts/build/registry/generators/block-registry.mjs +14 -3
  107. package/scripts/build/registry/generators/docs-registry.mjs +21 -3
  108. package/scripts/build/registry/generators/translation-registry.mjs +16 -7
  109. package/scripts/build/theme.mjs +2 -1
  110. package/templates/app/(public)/[...slug]/page.tsx +2 -1
  111. package/templates/app/(public)/docs/[section]/[page]/page.tsx +1 -1
  112. package/templates/app/api/auth/[...all]/route.ts +13 -5
  113. package/templates/app/api/devtools/config/entities/route.ts +2 -1
  114. package/templates/app/api/user/plan-flags/route.ts +1 -1
  115. package/templates/app/api/v1/[entity]/[id]/child/[childType]/[childId]/route.ts +4 -2
  116. package/templates/app/dashboard/(main)/layout.tsx +2 -1
  117. package/templates/app/dashboard/(main)/loading.tsx +5 -0
  118. package/templates/app/dashboard/features/loading.tsx +5 -0
  119. package/templates/app/dashboard/settings/api-keys/loading.tsx +5 -0
  120. package/templates/app/dashboard/settings/billing/loading.tsx +5 -0
  121. package/templates/app/dashboard/settings/invoices/loading.tsx +5 -0
  122. package/templates/app/dashboard/settings/loading.tsx +5 -0
  123. package/templates/app/dashboard/settings/notifications/loading.tsx +5 -0
  124. package/templates/app/dashboard/settings/password/loading.tsx +5 -0
  125. package/templates/app/dashboard/settings/plans/loading.tsx +5 -0
  126. package/templates/app/dashboard/settings/profile/loading.tsx +5 -0
  127. package/templates/app/dashboard/settings/security/loading.tsx +5 -0
  128. package/templates/app/dashboard/settings/teams/loading.tsx +5 -0
  129. package/templates/app/devtools/config/page.tsx +1 -1
  130. package/templates/app/devtools/page.tsx +1 -1
  131. package/templates/app/devtools/tests/[[...path]]/page.tsx +1 -1
  132. package/templates/contents/themes/starter/config/app.config.ts +8 -7
  133. package/templates/contents/themes/starter/messages/de/common.json +4 -1
  134. package/templates/contents/themes/starter/messages/de/index.ts +15 -0
  135. package/templates/contents/themes/starter/messages/en/common.json +4 -1
  136. package/templates/contents/themes/starter/messages/en/index.ts +15 -0
  137. package/templates/contents/themes/starter/messages/es/common.json +4 -1
  138. package/templates/contents/themes/starter/messages/es/index.ts +15 -0
  139. package/templates/contents/themes/starter/messages/fr/common.json +4 -1
  140. package/templates/contents/themes/starter/messages/fr/index.ts +15 -0
  141. package/templates/contents/themes/starter/messages/it/common.json +4 -1
  142. package/templates/contents/themes/starter/messages/it/index.ts +13 -0
  143. package/templates/contents/themes/starter/messages/pt/common.json +4 -1
  144. package/templates/contents/themes/starter/messages/pt/index.ts +13 -0
  145. package/templates/contents/themes/starter/styles/globals.css +3 -1
  146. package/templates/contents/themes/starter/templates/(dashboard)/analytics/loading.tsx +5 -0
  147. package/templates/contents/themes/starter/templates/(public)/loading.tsx +5 -0
  148. package/templates/next.config.mjs +5 -0
  149. package/templates/pnpm-workspace.yaml +5 -0
  150. package/templates/{middleware.ts → proxy.ts} +5 -6
  151. package/tests/jest/setup.ts +5 -0
  152. 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":"AAmCA,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB,2CAmJlE"}
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;AAQH;;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"}
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"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import { Card, CardContent, CardHeader } from "./card.js";
4
3
  import { Skeleton } from "./skeleton.js";
@@ -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;AAQH;;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
+ {"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,4 +1,3 @@
1
- "use client";
2
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
2
  import { Card, CardContent, CardHeader } from "./card.js";
4
3
  import { Skeleton } from "./skeleton.js";
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton-list.d.ts","sourceRoot":"","sources":["../../../src/components/ui/skeleton-list.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAQH;;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"}
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"}
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import { Card, CardContent } from "./card.js";
4
3
  import { Skeleton } from "./skeleton.js";
@@ -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"}