@nextsparkjs/core 0.1.0-beta.31 → 0.1.0-beta.32

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 (81) hide show
  1. package/dist/components/api/keys/ApiKeyDisplay.js +1 -1
  2. package/dist/components/api/keys/CreateApiKeyDialog.js +1 -1
  3. package/dist/components/app/layouts/PublicFooter.js +1 -1
  4. package/dist/components/app/layouts/PublicNavbar.js +1 -1
  5. package/dist/components/app/misc/ThemeToggle.js +1 -1
  6. package/dist/components/auth/DevKeyring.js +1 -1
  7. package/dist/components/auth/forms/LoginForm.js +1 -1
  8. package/dist/components/auth/forms/SignupForm.js +1 -1
  9. package/dist/components/dashboard/index.js +2 -2
  10. package/dist/components/dashboard/layouts/Sidebar.js +1 -1
  11. package/dist/components/dashboard/layouts/TopNavbar.js +2 -2
  12. package/dist/components/dashboard/misc/NotificationsDropdown.js +1 -1
  13. package/dist/components/dashboard/misc/QuickCreateDropdown.js +1 -1
  14. package/dist/components/dashboard/misc/SearchDropdown.js +1 -1
  15. package/dist/components/dashboard/mobile/MobileBottomNav.js +1 -1
  16. package/dist/components/dashboard/mobile/MobileMoreSheet.js +1 -1
  17. package/dist/components/dashboard/mobile/MobileTopBar.js +2 -2
  18. package/dist/components/dashboard/mobile/QuickCreateSheet.js +1 -1
  19. package/dist/components/dashboard/navigation/DynamicNavigation.js +1 -1
  20. package/dist/components/devtools/BlockDetailViewer.js +1 -1
  21. package/dist/components/devtools/BlocksViewer.js +1 -1
  22. package/dist/components/devtools/ConfigViewer.js +1 -1
  23. package/dist/components/devtools/FeaturesViewer.js +1 -1
  24. package/dist/components/devtools/FlowsViewer.js +1 -1
  25. package/dist/components/devtools/TagsOverview.js +1 -1
  26. package/dist/components/devtools/TestCasesViewer.js +1 -1
  27. package/dist/components/devtools/index.js +2 -2
  28. package/dist/components/devtools/scheduled-actions/actions-table.js +1 -1
  29. package/dist/components/devtools/scheduled-actions/filters.js +1 -1
  30. package/dist/components/entities/EntityBulkActions.js +1 -1
  31. package/dist/components/entities/EntityChildManager.js +1 -1
  32. package/dist/components/entities/EntityDetail.js +1 -1
  33. package/dist/components/entities/EntityDetailHeader.js +1 -1
  34. package/dist/components/entities/EntityForm.js +1 -1
  35. package/dist/components/entities/EntityList.js +1 -1
  36. package/dist/components/entities/EntitySearch.js +1 -1
  37. package/dist/components/entities/EntityTable.js +1 -1
  38. package/dist/components/entities/index.js +1 -1
  39. package/dist/components/entities/wrappers/EntityListWrapper.js +1 -1
  40. package/dist/components/public/index.js +2 -2
  41. package/dist/components/settings/layouts/SettingsSidebar.js +2 -2
  42. package/dist/components/shared/CopyableId.js +1 -1
  43. package/dist/components/superadmin/filters/PaginationControls.js +1 -1
  44. package/dist/components/superadmin/index.js +1 -1
  45. package/dist/components/superadmin/layouts/SuperadminSidebar.js +1 -1
  46. package/dist/components/superadmin/tables/PlanFeaturesMatrix.js +1 -1
  47. package/dist/components/superadmin/tables/RolesPermissionsMatrix.js +1 -1
  48. package/dist/components/superadmin/tables/TeamsTable.js +1 -1
  49. package/dist/components/ui/last-used-badge.js +1 -1
  50. package/dist/components/users/tables/UsersTable.js +1 -1
  51. package/dist/hooks/useLocale.js +1 -1
  52. package/dist/i18n.js +1 -1
  53. package/dist/index.js +3 -3
  54. package/dist/lib/api/helpers.js +1 -1
  55. package/dist/lib/auth.js +2 -2
  56. package/dist/lib/i18n-utils.js +1 -1
  57. package/dist/lib/locale-client.js +1 -1
  58. package/dist/lib/locale.js +1 -1
  59. package/dist/lib/namespace-loader.js +1 -1
  60. package/dist/lib/plugins/plugin-loader.js +1 -1
  61. package/dist/lib/scheduled-actions/cleanup.js +1 -1
  62. package/dist/lib/scheduled-actions/processor.js +1 -1
  63. package/dist/styles/classes.json +1 -1
  64. package/dist/styles/ui.css +1 -1
  65. package/dist/templates/contents/themes/starter/tests/cypress/e2e/tasks/tasks-crud.cy.ts +1 -1
  66. package/dist/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +8 -7
  67. package/dist/templates/scripts/cy-run-prod.cjs +277 -0
  68. package/dist/types/user.types.js +1 -1
  69. package/package.json +12 -12
  70. package/scripts/build/docs-registry.mjs +0 -0
  71. package/scripts/create-theme.mjs +0 -0
  72. package/scripts/deploy/release-version.mjs +0 -0
  73. package/scripts/deploy/vercel-deploy.mjs +0 -0
  74. package/scripts/dev/watch-plugins.mjs +0 -0
  75. package/scripts/maintenance/update-core.mjs +0 -0
  76. package/scripts/setup/npm-postinstall.mjs +0 -0
  77. package/scripts/setup/setup-claude.mjs +0 -0
  78. package/scripts/validation/check-imports.sh +0 -0
  79. package/templates/contents/themes/starter/tests/cypress/e2e/tasks/tasks-crud.cy.ts +1 -1
  80. package/templates/contents/themes/starter/tests/cypress/src/session-helpers.ts +8 -7
  81. package/templates/scripts/cy-run-prod.cjs +277 -0
@@ -7,7 +7,7 @@ import { Alert, AlertDescription } from "../../ui/alert.js";
7
7
  import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../../ui/card.js";
8
8
  import { Copy, Eye, EyeOff, CheckCircle, AlertTriangle, X } from "lucide-react";
9
9
  import { toast } from "sonner";
10
- import { createCyId } from "../../../lib/test.js";
10
+ import { createCyId } from "../../../lib/test/index.js";
11
11
  function ApiKeyDisplay({ apiKey, keyName, warning, onClose }) {
12
12
  const [isVisible, setIsVisible] = useState(false);
13
13
  const [copied, setCopied] = useState(false);
@@ -27,7 +27,7 @@ import { Separator } from "../../ui/separator.js";
27
27
  import { AlertTriangle, Info } from "lucide-react";
28
28
  import { toast } from "sonner";
29
29
  import { API_SCOPES, SCOPE_CATEGORIES } from "../../../lib/api/keys.js";
30
- import { createCyId } from "../../../lib/test.js";
30
+ import { createCyId } from "../../../lib/test/index.js";
31
31
  function CreateApiKeyDialog({ open, onClose, onSuccess }) {
32
32
  const [name, setName] = useState("");
33
33
  const [selectedScopes, setSelectedScopes] = useState([]);
@@ -2,7 +2,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import Link from "next/link";
3
3
  import { Separator } from "../../ui/separator.js";
4
4
  import { useTranslations } from "next-intl";
5
- import { sel } from "../../../lib/test.js";
5
+ import { sel } from "../../../lib/test/index.js";
6
6
  function PublicFooter() {
7
7
  const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
8
8
  const t = useTranslations("footer");
@@ -6,7 +6,7 @@ import { Button } from "../../ui/button.js";
6
6
  import { ThemeToggle } from "../misc/ThemeToggle.js";
7
7
  import { Menu, X } from "lucide-react";
8
8
  import { useState } from "react";
9
- import { sel } from "../../../lib/test.js";
9
+ import { sel } from "../../../lib/test/index.js";
10
10
  import { useTranslations } from "next-intl";
11
11
  function PublicNavbar() {
12
12
  const { user, isLoading } = useAuth();
@@ -10,7 +10,7 @@ import {
10
10
  DropdownMenuTrigger
11
11
  } from "../../ui/dropdown-menu.js";
12
12
  import { useEffect, useState, useCallback } from "react";
13
- import { createTestId, createCyId, createAriaLabel } from "../../../lib/test.js";
13
+ import { createTestId, createCyId, createAriaLabel } from "../../../lib/test/index.js";
14
14
  import { useTranslations } from "next-intl";
15
15
  import { useAuth } from "../../../hooks/useAuth.js";
16
16
  function ThemeToggle() {
@@ -5,7 +5,7 @@ import { Key, ChevronDown, User, Shield, Crown, ShieldCheck, UserCircle } from "
5
5
  import { Popover, PopoverContent, PopoverTrigger } from "../ui/popover.js";
6
6
  import { Button } from "../ui/button.js";
7
7
  import { Badge } from "../ui/badge.js";
8
- import { sel } from "../../lib/test.js";
8
+ import { sel } from "../../lib/test/index.js";
9
9
  function parseTeamRoles(teamRoles) {
10
10
  if (!teamRoles) return [];
11
11
  const hasHighlight = teamRoles.includes("\u2B50");
@@ -18,7 +18,7 @@ import { Separator } from "../../ui/separator.js";
18
18
  import { LastUsedBadge } from "../../ui/last-used-badge.js";
19
19
  import { Mail, Lock, Loader2, AlertCircle, Users } from "lucide-react";
20
20
  import { GoogleIcon } from "../../ui/google-icon.js";
21
- import { createTestId, sel } from "../../../lib/test.js";
21
+ import { createTestId, sel } from "../../../lib/test/index.js";
22
22
  import { useTranslations } from "next-intl";
23
23
  import { AuthTranslationPreloader } from "../../../lib/i18n/AuthTranslationPreloader.js";
24
24
  import { DevKeyring } from "../DevKeyring.js";
@@ -16,7 +16,7 @@ import { Separator } from "../../ui/separator.js";
16
16
  import { PasswordInput } from "../../ui/password-input.js";
17
17
  import { Mail, User, Loader2, AlertCircle, ArrowRight, MailCheck, CheckCircle2, Users } from "lucide-react";
18
18
  import { signupSchema } from "../../../lib/validation.js";
19
- import { createTestId, sel } from "../../../lib/test.js";
19
+ import { createTestId, sel } from "../../../lib/test/index.js";
20
20
  import { useTranslations } from "next-intl";
21
21
  import { AuthTranslationPreloader } from "../../../lib/i18n/AuthTranslationPreloader.js";
22
22
  import { toast } from "sonner";
@@ -1,2 +1,2 @@
1
- export * from "./layouts.js";
2
- export * from "./mobile.js";
1
+ export * from "./layouts/index.js";
2
+ export * from "./mobile/index.js";
@@ -4,7 +4,7 @@ import Link from "next/link";
4
4
  import { useState, useEffect } from "react";
5
5
  import { cn } from "../../../lib/utils.js";
6
6
  import { useSidebar } from "../../../contexts/sidebar-context.js";
7
- import { createTestId, createCyId } from "../../../lib/test.js";
7
+ import { createTestId, createCyId } from "../../../lib/test/index.js";
8
8
  import { DynamicNavigation } from "../navigation/DynamicNavigation.js";
9
9
  import { TeamSwitcherCompact } from "../../teams/TeamSwitcherCompact.js";
10
10
  function Sidebar({ className, entities }) {
@@ -21,12 +21,12 @@ import { NotificationsDropdown } from "../misc/NotificationsDropdown.js";
21
21
  import { SearchDropdown } from "../misc/SearchDropdown.js";
22
22
  import { QuickCreateDropdown } from "../misc/QuickCreateDropdown.js";
23
23
  import { cn } from "../../../lib/utils.js";
24
- import { createTestId, sel, createAriaLabel } from "../../../lib/test.js";
24
+ import { createTestId, sel, createAriaLabel } from "../../../lib/test/index.js";
25
25
  import { useTranslations } from "next-intl";
26
26
  import { useIsSuperAdmin } from "../../app/guards/SuperAdminGuard.js";
27
27
  import { useIsDeveloper } from "../../app/guards/DeveloperGuard.js";
28
28
  import { DynamicNavigation } from "../navigation/DynamicNavigation.js";
29
- import { isTopbarFeatureEnabled, getTopbarFeatureConfig, TOPBAR_CONFIG } from "../../../lib/config.js";
29
+ import { isTopbarFeatureEnabled, getTopbarFeatureConfig, TOPBAR_CONFIG } from "../../../lib/config/index.js";
30
30
  function TopNavbar({ entities, className }) {
31
31
  var _a;
32
32
  const { user, signOut, isLoading } = useAuth();
@@ -16,7 +16,7 @@ import { Bell, Check, CheckCheck, X, AlertCircle, Info, CheckCircle, AlertTriang
16
16
  import { useNotifications } from "../../../hooks/useNotifications.js";
17
17
  import { cn } from "../../../lib/utils.js";
18
18
  import { useState, useCallback } from "react";
19
- import { createTestId, createCyId, createAriaLabel } from "../../../lib/test.js";
19
+ import { createTestId, createCyId, createAriaLabel } from "../../../lib/test/index.js";
20
20
  import { useTranslations } from "next-intl";
21
21
  const getNotificationIcon = (type) => {
22
22
  switch (type) {
@@ -12,7 +12,7 @@ import {
12
12
  } from "../../ui/dropdown-menu.js";
13
13
  import { Plus, Loader2 } from "lucide-react";
14
14
  import { useQuickCreateEntities } from "../../../hooks/useQuickCreateEntities.js";
15
- import { createTestId, createCyId } from "../../../lib/test.js";
15
+ import { createTestId, createCyId } from "../../../lib/test/index.js";
16
16
  function QuickCreateDropdown() {
17
17
  const { entities: availableEntities, isLoading, hasEntities } = useQuickCreateEntities();
18
18
  if (isLoading || !hasEntities) {
@@ -18,7 +18,7 @@ import {
18
18
  import { useEntitySearch } from "../../../hooks/useEntitySearch.js";
19
19
  import { formatSearchResult } from "../../../lib/search-highlighting.js";
20
20
  import { cn } from "../../../lib/utils.js";
21
- import { createTestId, createCyId, createAriaLabel } from "../../../lib/test.js";
21
+ import { createTestId, createCyId, createAriaLabel } from "../../../lib/test/index.js";
22
22
  import { useTranslations } from "next-intl";
23
23
  const getTypeIcon = (result) => {
24
24
  if (result.type === "entity") {
@@ -4,7 +4,7 @@ import Link from "next/link";
4
4
  import { usePathname } from "next/navigation";
5
5
  import { useState } from "react";
6
6
  import { cn } from "../../../lib/utils.js";
7
- import { createTestId, createCyId } from "../../../lib/test.js";
7
+ import { createTestId, createCyId } from "../../../lib/test/index.js";
8
8
  import { useTranslations } from "next-intl";
9
9
  import { MobileMoreSheet } from "./MobileMoreSheet.js";
10
10
  import { QuickCreateSheet } from "./QuickCreateSheet.js";
@@ -12,7 +12,7 @@ import { Button } from "../../ui/button.js";
12
12
  import { Separator } from "../../ui/separator.js";
13
13
  import Link from "next/link";
14
14
  import { Shield, LogOut } from "lucide-react";
15
- import { createTestId, createCyId } from "../../../lib/test.js";
15
+ import { createTestId, createCyId } from "../../../lib/test/index.js";
16
16
  import { TeamSwitcherCompact } from "../../teams/TeamSwitcherCompact.js";
17
17
  import { useTranslations } from "next-intl";
18
18
  import { useIsSuperAdmin } from "../../app/guards/SuperAdminGuard.js";
@@ -5,8 +5,8 @@ import Image from "next/image";
5
5
  import { useAuth } from "../../../hooks/useAuth.js";
6
6
  import { ThemeToggle } from "../../app/misc/ThemeToggle.js";
7
7
  import { NotificationsDropdown } from "../misc/NotificationsDropdown.js";
8
- import { createTestId, createCyId } from "../../../lib/test.js";
9
- import { isTopbarFeatureEnabled } from "../../../lib/config.js";
8
+ import { createTestId, createCyId } from "../../../lib/test/index.js";
9
+ import { isTopbarFeatureEnabled } from "../../../lib/config/index.js";
10
10
  import { useTranslations } from "next-intl";
11
11
  function MobileTopBar() {
12
12
  const { user } = useAuth();
@@ -10,7 +10,7 @@ import {
10
10
  import Link from "next/link";
11
11
  import { Loader2 } from "lucide-react";
12
12
  import { useQuickCreateEntities } from "../../../hooks/useQuickCreateEntities.js";
13
- import { createTestId, createCyId } from "../../../lib/test.js";
13
+ import { createTestId, createCyId } from "../../../lib/test/index.js";
14
14
  import { useTranslations } from "next-intl";
15
15
  function QuickCreateSheet({ isOpen, onOpenChange }) {
16
16
  const t = useTranslations();
@@ -6,7 +6,7 @@ import { usePathname } from "next/navigation";
6
6
  import { useMemo } from "react";
7
7
  import { cn } from "../../../lib/utils.js";
8
8
  import { useTranslations } from "next-intl";
9
- import { createCyId } from "../../../lib/test.js";
9
+ import { createCyId } from "../../../lib/test/index.js";
10
10
  import { Home } from "lucide-react";
11
11
  import * as Icons from "lucide-react";
12
12
  import { THEME_REGISTRY } from "@nextsparkjs/registries/theme-registry";
@@ -19,7 +19,7 @@ import { useTranslations } from "next-intl";
19
19
  import { BLOCK_REGISTRY } from "@nextsparkjs/registries/block-registry";
20
20
  import { TAGS_REGISTRY } from "@nextsparkjs/registries/testing-registry";
21
21
  import { getBlockComponent } from "../../lib/blocks/loader.js";
22
- import { sel } from "../../lib/test.js";
22
+ import { sel } from "../../lib/test/index.js";
23
23
  const CATEGORY_COLORS = {
24
24
  hero: "bg-violet-100 text-violet-800 dark:bg-violet-900 dark:text-violet-300",
25
25
  content: "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300",
@@ -10,7 +10,7 @@ import { Copy, Check, Search, TestTube2, CheckCircle2, XCircle, ArrowRight, Layo
10
10
  import { useTranslations } from "next-intl";
11
11
  import { BLOCK_REGISTRY } from "@nextsparkjs/registries/block-registry";
12
12
  import { TAGS_REGISTRY } from "@nextsparkjs/registries/testing-registry";
13
- import { sel } from "../../lib/test.js";
13
+ import { sel } from "../../lib/test/index.js";
14
14
  const CATEGORY_COLORS = {
15
15
  hero: "bg-violet-100 text-violet-800 dark:bg-violet-900 dark:text-violet-300",
16
16
  content: "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300",
@@ -13,7 +13,7 @@ import {
13
13
  } from "../ui/accordion.js";
14
14
  import { codeToHtml } from "shiki";
15
15
  import { useTranslations } from "next-intl";
16
- import { sel } from "../../lib/test.js";
16
+ import { sel } from "../../lib/test/index.js";
17
17
  const JsonViewer = memo(function JsonViewer2({ data, fontSize = "0.875rem" }) {
18
18
  const [html, setHtml] = useState("");
19
19
  const [isLoading, setIsLoading] = useState(true);
@@ -8,7 +8,7 @@ import { Input } from "../ui/input.js";
8
8
  import { Copy, Check, Search, TestTube2, CheckCircle2, XCircle } from "lucide-react";
9
9
  import { useTranslations } from "next-intl";
10
10
  import { FEATURE_REGISTRY, COVERAGE_SUMMARY } from "@nextsparkjs/registries/testing-registry";
11
- import { sel } from "../../lib/test.js";
11
+ import { sel } from "../../lib/test/index.js";
12
12
  const CATEGORY_COLORS = {
13
13
  core: "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300",
14
14
  entities: "bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300",
@@ -8,7 +8,7 @@ import { Input } from "../ui/input.js";
8
8
  import { Copy, Check, Search, TestTube2, CheckCircle2, XCircle, Zap, AlertTriangle } from "lucide-react";
9
9
  import { useTranslations } from "next-intl";
10
10
  import { FLOW_REGISTRY, COVERAGE_SUMMARY } from "@nextsparkjs/registries/testing-registry";
11
- import { sel } from "../../lib/test.js";
11
+ import { sel } from "../../lib/test/index.js";
12
12
  const CATEGORY_COLORS = {
13
13
  acquisition: "bg-emerald-100 text-emerald-800 dark:bg-emerald-900 dark:text-emerald-300",
14
14
  navigation: "bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-300",
@@ -9,7 +9,7 @@ import { Input } from "../ui/input.js";
9
9
  import { Copy, Check, Search, Tag, ExternalLink, ChevronDown, ChevronRight, FileCode2 } from "lucide-react";
10
10
  import { useTranslations } from "next-intl";
11
11
  import { TAGS_REGISTRY, COVERAGE_SUMMARY } from "@nextsparkjs/registries/testing-registry";
12
- import { sel } from "../../lib/test.js";
12
+ import { sel } from "../../lib/test/index.js";
13
13
  import { cn } from "../../lib/utils.js";
14
14
  const CATEGORY_DISPLAY_ORDER = [
15
15
  "layers",
@@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState, useEffect, useMemo } from "react";
4
4
  import { FileTree } from "./FileTree.js";
5
5
  import { MarkdownViewer } from "./MarkdownViewer.js";
6
- import { BDDTestViewer } from "./bdd.js";
6
+ import { BDDTestViewer } from "./bdd/index.js";
7
7
  import { cn } from "../../lib/utils.js";
8
8
  import {
9
9
  Card,
@@ -9,8 +9,8 @@ import { FlowsViewer } from "./FlowsViewer.js";
9
9
  import { TagsOverview } from "./TagsOverview.js";
10
10
  import { BlocksViewer } from "./BlocksViewer.js";
11
11
  import { BlockDetailViewer } from "./BlockDetailViewer.js";
12
- export * from "./bdd.js";
13
- import { ApiTester } from "./api-tester.js";
12
+ export * from "./bdd/index.js";
13
+ import { ApiTester } from "./api-tester/index.js";
14
14
  export {
15
15
  ApiTester,
16
16
  BlockDetailViewer,
@@ -13,7 +13,7 @@ import {
13
13
  } from "../../ui/table.js";
14
14
  import { Button } from "../../ui/button.js";
15
15
  import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
16
- import { sel } from "../../../lib/test.js";
16
+ import { sel } from "../../../lib/test/index.js";
17
17
  function ActionsTable({ actions }) {
18
18
  const t = useTranslations("devtools.scheduledActions");
19
19
  const [expandedRows, setExpandedRows] = useState(/* @__PURE__ */ new Set());
@@ -9,7 +9,7 @@ import {
9
9
  SelectTrigger,
10
10
  SelectValue
11
11
  } from "../../ui/select.js";
12
- import { sel } from "../../../lib/test.js";
12
+ import { sel } from "../../../lib/test/index.js";
13
13
  function Filters({ filters, onFiltersChange, registeredActionTypes }) {
14
14
  const t = useTranslations("devtools.scheduledActions");
15
15
  const handleStatusChange = (value) => {
@@ -19,7 +19,7 @@ import {
19
19
  DialogTitle
20
20
  } from "../ui/dialog.js";
21
21
  import { CheckSquare, Pencil, Trash2, X, Loader2 } from "lucide-react";
22
- import { createCyId } from "../../lib/test.js";
22
+ import { createCyId } from "../../lib/test/index.js";
23
23
  function EntityBulkActions({
24
24
  entitySlug,
25
25
  selectedIds,
@@ -35,7 +35,7 @@ import {
35
35
  } from "lucide-react";
36
36
  import { EntityFieldRenderer } from "./EntityFieldRenderer.js";
37
37
  import { EntityForm } from "./EntityForm.js";
38
- import { createTestId, createCyId } from "../../lib/test.js";
38
+ import { createTestId, createCyId } from "../../lib/test/index.js";
39
39
  function generateTestIds(parentName, childName) {
40
40
  return {
41
41
  container: createTestId(`${parentName}-${childName}`, "container"),
@@ -8,7 +8,7 @@ import { getEntity, getEntityMetadata } from "../../lib/entities/queries.js";
8
8
  import { EntityFieldRenderer } from "./EntityFieldRenderer.js";
9
9
  import { EntityChildManager } from "./EntityChildManager.js";
10
10
  import { EntityDetailHeader } from "./EntityDetailHeader.js";
11
- import { createTestId, createCyId } from "../../lib/test.js";
11
+ import { createTestId, createCyId } from "../../lib/test/index.js";
12
12
  import { useTeam } from "../../hooks/useTeam.js";
13
13
  import { usePermissions } from "../../lib/permissions/hooks.js";
14
14
  function generateTestIds(entityName) {
@@ -16,7 +16,7 @@ import {
16
16
  AlertDialogTrigger
17
17
  } from "../ui/alert-dialog.js";
18
18
  import { CopyableId } from "../shared/CopyableId.js";
19
- import { createCyId } from "../../lib/test.js";
19
+ import { createCyId } from "../../lib/test/index.js";
20
20
  import { usePermissions } from "../../lib/permissions/hooks.js";
21
21
  function formatDate(dateString) {
22
22
  if (!dateString) return null;
@@ -14,7 +14,7 @@ import {
14
14
  Trash2
15
15
  } from "lucide-react";
16
16
  import { EntityFieldRenderer } from "./EntityFieldRenderer.js";
17
- import { createTestId, createCyId } from "../../lib/test.js";
17
+ import { createTestId, createCyId } from "../../lib/test/index.js";
18
18
  function validateFormData(data, entityConfig) {
19
19
  const errors = {};
20
20
  entityConfig.fields.forEach((field) => {
@@ -48,7 +48,7 @@ import {
48
48
  } from "lucide-react";
49
49
  import { SkeletonEntityList } from "../ui/skeleton-list.js";
50
50
  import { EntityFieldRenderer } from "./EntityFieldRenderer.js";
51
- import { createTestId, sel } from "../../lib/test.js";
51
+ import { createTestId, sel } from "../../lib/test/index.js";
52
52
  import { usePermission } from "../../lib/permissions/hooks.js";
53
53
  function generateTestIds(entityName) {
54
54
  return {
@@ -30,7 +30,7 @@ import {
30
30
  User
31
31
  } from "lucide-react";
32
32
  import { useAuth } from "../../hooks/useAuth.js";
33
- import { createTestId, createCyId } from "../../lib/test.js";
33
+ import { createTestId, createCyId } from "../../lib/test/index.js";
34
34
  async function performSearch(query, accessibleEntities, filters = {}, maxResults = 50) {
35
35
  await new Promise((resolve) => setTimeout(resolve, 150));
36
36
  if (!query.trim()) return [];
@@ -55,7 +55,7 @@ import {
55
55
  } from "lucide-react";
56
56
  import { SkeletonEntityList } from "../ui/skeleton-list.js";
57
57
  import { EntityFieldRenderer } from "./EntityFieldRenderer.js";
58
- import { sel } from "../../lib/test.js";
58
+ import { sel } from "../../lib/test/index.js";
59
59
  import { usePermission } from "../../lib/permissions/hooks.js";
60
60
  function EntityTable({
61
61
  entityConfig,
@@ -15,7 +15,7 @@ import {
15
15
  EntityFormWrapper,
16
16
  EntityListWrapper,
17
17
  EntityDetailWrapper
18
- } from "./wrappers.js";
18
+ } from "./wrappers/index.js";
19
19
  import { generateColumnsFromConfig } from "./entity-table.types.js";
20
20
  export {
21
21
  EntityBulkActions,
@@ -15,7 +15,7 @@ import { useUrlFilters } from "../../../hooks/useUrlFilters.js";
15
15
  import { listEntityData, deleteEntityData } from "../../../lib/api/entities.js";
16
16
  import { useTeam } from "../../../hooks/useTeam.js";
17
17
  import { usePermission } from "../../../lib/permissions/hooks.js";
18
- import { createCyId } from "../../../lib/test.js";
18
+ import { createCyId } from "../../../lib/test/index.js";
19
19
  import { toast } from "sonner";
20
20
  function EntityListWrapper({
21
21
  entityType,
@@ -1,2 +1,2 @@
1
- export * from "./pageBuilder.js";
2
- export * from "./entities.js";
1
+ export * from "./pageBuilder/index.js";
2
+ export * from "./entities/index.js";
@@ -16,9 +16,9 @@ import {
16
16
  Key,
17
17
  Share2
18
18
  } from "lucide-react";
19
- import { createTestId, createCyId, createAriaLabel, sel } from "../../../lib/test.js";
19
+ import { createTestId, createCyId, createAriaLabel, sel } from "../../../lib/test/index.js";
20
20
  import { useTranslations } from "next-intl";
21
- import { getEnabledSettingsPages } from "../../../lib/config.js";
21
+ import { getEnabledSettingsPages } from "../../../lib/config/index.js";
22
22
  const settingsIcons = {
23
23
  profile: User,
24
24
  password: Lock,
@@ -2,7 +2,7 @@
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
4
  import { Copy, Check } from "lucide-react";
5
- import { createCyId } from "../../lib/test.js";
5
+ import { createCyId } from "../../lib/test/index.js";
6
6
  function CopyableId({
7
7
  id,
8
8
  truncateAt = 8,
@@ -9,7 +9,7 @@ import {
9
9
  SelectTrigger,
10
10
  SelectValue
11
11
  } from "../../ui/select.js";
12
- import { sel } from "../../../lib/test.js";
12
+ import { sel } from "../../../lib/test/index.js";
13
13
  function PaginationControls({
14
14
  page,
15
15
  totalPages,
@@ -2,7 +2,7 @@ import { SuperadminSidebar } from "./layouts/SuperadminSidebar.js";
2
2
  import { TeamsTable } from "./tables/TeamsTable.js";
3
3
  import { PlanFeaturesMatrix } from "./tables/PlanFeaturesMatrix.js";
4
4
  import { RolesPermissionsMatrix } from "./tables/RolesPermissionsMatrix.js";
5
- import { SearchInput, PaginationControls, FilterDropdown } from "./filters.js";
5
+ import { SearchInput, PaginationControls, FilterDropdown } from "./filters/index.js";
6
6
  import { ComponentGallery } from "./misc/ComponentGallery.js";
7
7
  import { FieldTypesGallery } from "./misc/FieldTypesGallery.js";
8
8
  import { ThemePreview } from "./misc/ThemePreview.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "lucide-react";
18
18
  import { cn } from "../../../lib/utils.js";
19
19
  import { Button } from "../../ui/button.js";
20
- import { sel } from "../../../lib/test.js";
20
+ import { sel } from "../../../lib/test/index.js";
21
21
  import { useState } from "react";
22
22
  function SuperadminSidebar() {
23
23
  const pathname = usePathname();
@@ -11,7 +11,7 @@ import {
11
11
  TableRow
12
12
  } from "../../ui/table.js";
13
13
  import { cn } from "../../../lib/utils.js";
14
- import { sel } from "../../../lib/test.js";
14
+ import { sel } from "../../../lib/test/index.js";
15
15
  function PlanFeaturesMatrix({
16
16
  plans,
17
17
  features,
@@ -12,7 +12,7 @@ import {
12
12
  TableRow
13
13
  } from "../../ui/table.js";
14
14
  import { cn } from "../../../lib/utils.js";
15
- import { sel } from "../../../lib/test.js";
15
+ import { sel } from "../../../lib/test/index.js";
16
16
  function RolesPermissionsMatrix({
17
17
  roles,
18
18
  hierarchy,
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { format } from "date-fns";
4
4
  import Link from "next/link";
5
5
  import { useRouter } from "next/navigation";
6
- import { sel } from "../../../lib/test.js";
6
+ import { sel } from "../../../lib/test/index.js";
7
7
  import {
8
8
  Table,
9
9
  TableBody,
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { cn } from "../../lib/utils.js";
4
- import { createCyId } from "../../lib/test.js";
4
+ import { createCyId } from "../../lib/test/index.js";
5
5
  function LastUsedBadge({ children, text, className, "data-cy": dataCy }) {
6
6
  return /* @__PURE__ */ jsxs(
7
7
  "div",
@@ -52,7 +52,7 @@ import {
52
52
  import { useRoleTranslations } from "../../../lib/role-helpers.js";
53
53
  import Link from "next/link";
54
54
  import { useRouter } from "next/navigation";
55
- import { sel } from "../../../lib/test.js";
55
+ import { sel } from "../../../lib/test/index.js";
56
56
  function UsersTable({ users, isLoading, onRefresh }) {
57
57
  const getRoleName = useRoleTranslations();
58
58
  const { toast } = useToast();
@@ -2,7 +2,7 @@
2
2
  import { useState, useCallback } from "react";
3
3
  import { useUserProfile } from "./useUserProfile.js";
4
4
  import { setUserLocaleClient } from "../lib/locale-client.js";
5
- import { I18N_CONFIG } from "../lib/config.js";
5
+ import { I18N_CONFIG } from "../lib/config/index.js";
6
6
  function useLocale() {
7
7
  const { profile, updateProfile } = useUserProfile();
8
8
  const [isChanging, setIsChanging] = useState(false);
package/dist/i18n.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getRequestConfig } from "next-intl/server";
2
- import { I18N_CONFIG } from "./lib/config.js";
2
+ import { I18N_CONFIG } from "./lib/config/index.js";
3
3
  import { headers } from "next/headers";
4
4
  import { loadMergedTranslations } from "./lib/translations/registry.js";
5
5
  import { getUserLocale } from "./lib/locale.js";
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { cn } from "./lib/utils.js";
2
- export * from "./hooks.js";
3
- export * from "./contexts.js";
4
- export * from "./providers.js";
2
+ export * from "./hooks/index.js";
3
+ export * from "./contexts/index.js";
4
+ export * from "./providers/index.js";
5
5
  export {
6
6
  cn
7
7
  };
@@ -2,7 +2,7 @@ import { NextResponse } from "next/server";
2
2
  import { validateApiKey } from "./auth.js";
3
3
  import { mutateWithRLS, queryWithRLS } from "../db.js";
4
4
  import { checkRateLimit, addRateLimitHeaders } from "./rate-limit.js";
5
- import { getApplicationConfig } from "../config.js";
5
+ import { getApplicationConfig } from "../config/index.js";
6
6
  import { auth } from "../auth.js";
7
7
  import { MetaService } from "../services/meta.service.js";
8
8
  import { ScopeService } from "../services/scope.service.js";
package/dist/lib/auth.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { betterAuth } from "better-auth";
2
2
  import { Pool } from "pg";
3
3
  import { nextCookies } from "better-auth/next-js";
4
- import { EmailFactory, emailTemplates } from "./email.js";
5
- import { I18N_CONFIG, USER_ROLES_CONFIG, TEAMS_CONFIG } from "./config.js";
4
+ import { EmailFactory, emailTemplates } from "./email/index.js";
5
+ import { I18N_CONFIG, USER_ROLES_CONFIG, TEAMS_CONFIG } from "./config/index.js";
6
6
  import { getUserFlags } from "./services/user-flags.service.js";
7
7
  import { TeamService } from "./services/team.service.js";
8
8
  import { shouldSkipTeamCreation } from "./auth-context.js";
@@ -1,4 +1,4 @@
1
- import { I18N_CONFIG } from "./config.js";
1
+ import { I18N_CONFIG } from "./config/index.js";
2
2
  function isValidLocale(locale) {
3
3
  return I18N_CONFIG.supportedLocales.includes(locale);
4
4
  }
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import { I18N_CONFIG } from "./config.js";
2
+ import { I18N_CONFIG } from "./config/index.js";
3
3
  function setUserLocaleClient(locale) {
4
4
  if (!I18N_CONFIG.supportedLocales.includes(locale)) {
5
5
  throw new Error(
@@ -1,5 +1,5 @@
1
1
  import { cookies, headers } from "next/headers";
2
- import { I18N_CONFIG } from "./config.js";
2
+ import { I18N_CONFIG } from "./config/index.js";
3
3
  import { auth } from "./auth.js";
4
4
  import { queryOne } from "./db.js";
5
5
  async function getUserLocale() {
@@ -1,4 +1,4 @@
1
- import { I18N_CONFIG } from "./config.js";
1
+ import { I18N_CONFIG } from "./config/index.js";
2
2
  import { getSafeLocale } from "./i18n-utils.js";
3
3
  const loadedNamespaces = /* @__PURE__ */ new Map();
4
4
  const PAGE_NAMESPACE_MAP = {