Files
metabuilder/hooks/index.ts
johndoe6345789 8fcc71d530 refactor: Consolidate frontends/nextjs into root hooks and components
Hooks consolidation:
- frontends/nextjs now imports from @metabuilder/hooks
- Deleted empty directories (data/, use-dbal/, __tests__/)
- Deleted outdated documentation
- Added @metabuilder/hooks dependency to package.json
- Kept NextJS-specific auth hooks locally (have @/lib/* dependencies)
- Added missing useWorkflowExecutions export to root hooks

Components consolidation:
- Deleted duplicates: Skeleton, LoadingIndicator, EmptyState, ErrorBoundary, AccessDenied
- Created new /components/vanilla/access-denied/ component
- Updated /components exports and package.json
- frontends/nextjs/src/components/index.ts now re-exports from @metabuilder/components
- Updated imports in LoadingSkeleton, EmptyStateShowcase, page.tsx

Organization principle: Project-specific code is fine in root folders
as long as it's well organized.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 22:37:35 +00:00

142 lines
5.5 KiB
TypeScript

// Core hooks (30 original)
export { useLoginLogic } from './useLoginLogic'
export { useRegisterLogic } from './useRegisterLogic'
export { usePasswordValidation } from './usePasswordValidation'
export { useAuthForm } from './useAuthForm'
export { useDashboardLogic } from './useDashboardLogic'
export { useResponsiveSidebar } from './useResponsiveSidebar'
export { useHeaderLogic } from './useHeaderLogic'
export { useProjectSidebarLogic } from './useProjectSidebarLogic'
export { useStorageDataHandlers } from './useStorageDataHandlers'
export { useStorageSettingsHandlers } from './useStorageSettingsHandlers'
export { useStorageSwitchHandlers } from './useStorageSwitchHandlers'
export { useFaviconDesigner } from './useFaviconDesigner'
export { useDragResize } from './useDragResize'
export { useGithubBuildStatus } from './use-github-build-status'
// Accessibility hooks (migrated from @metabuilder/fakemui)
export {
useAccessible,
useKeyboardNavigation,
useFocusManagement,
useLiveRegion,
useFocusTrap,
generateTestId,
testId,
aria,
keyboard,
validate,
} from './useAccessible'
export type {
AccessibilityFeature,
AccessibilityComponent,
AccessibilityAction,
} from './useAccessible'
// Toast hooks (migrated from @metabuilder/fakemui)
export { ToastProvider, useToast } from './useToast'
export type { ToastSeverity, ToastOptions, ToastContextValue, ToastProviderProps } from './useToast'
// Data structure hooks (5 new)
export { useSet } from './useSet'
export { useMap } from './useMap'
export { useArray } from './useArray'
export { useStack } from './useStack'
export { useQueue } from './useQueue'
// State mutation hooks (5 new)
export { useToggle } from './useToggle'
export { usePrevious } from './usePrevious'
export { useStateWithHistory } from './useStateWithHistory'
export { useAsync } from './useAsync'
export { useUndo } from './useUndo'
// Form & validation hooks (5 new)
export { useValidation } from './useValidation'
export { useInput } from './useInput'
export { useCheckbox } from './useCheckbox'
export { useSelect } from './useSelect'
export { useFieldArray } from './useFieldArray'
// DOM & event hooks (7 new)
export { useWindowSize } from './useWindowSize'
export { useLocalStorage } from './useLocalStorage'
export { useMediaQuery } from './useMediaQuery'
export { useKeyboardShortcuts } from './useKeyboardShortcuts'
export { useClickOutside } from './useClickOutside'
export { useHotkeys } from './useHotkeys'
export { useEventListener } from './useEventListener'
// Pagination & data hooks (5 new)
export { usePagination } from './usePagination'
export { useSortable } from './useSortable'
export { useFilter } from './useFilter'
export { useSearch } from './useSearch'
export { useSort } from './useSort'
// Utility hooks (30+ new)
export { useCounter } from './useCounter'
export { useDebugInfo } from './useDebugInfo'
export { useMountEffect } from './useMountEffect'
export { useMountEffect as useUnmountEffect } from './useMountEffect'
export { useTimeout } from './useTimeout'
export { useInterval } from './useInterval'
export { useNotification } from './useNotification'
export { useGeolocation } from './useGeolocation'
export { useClipboard } from './useClipboard'
export { useLocalStorageState } from './useLocalStorageState'
export { useSessionStorageState } from './useSessionStorageState'
export { useOrientation } from './useOrientation'
export { useFocus } from './useFocus'
export { useHover } from './useHover'
export { useActive } from './useActive'
export { useFetch } from './useFetch'
export { useRefresh } from './useRefresh'
export { useRender } from './useRender'
export { useMounted } from './useMounted'
export { useScrollPosition } from './useScrollPosition'
export { useScroll } from './useScroll'
export { usePreviousValue } from './usePreviousValue'
export { usePromise } from './usePromise'
export { useValueRef } from './useValueRef'
export { useUpdateEffect } from './useUpdateEffect'
export { useDifferent } from './useDifferent'
export { useChange } from './useChange'
export { useDefaults } from './useDefaults'
export { useFirstEffect } from './useFirstEffect'
export { useEventCallback } from './useEventCallback'
export { useId } from './useId'
export { usePatch } from './usePatch'
export { useDeepComparison } from './useDeepComparison'
export { useForceUpdate } from './useForceUpdate'
export { useDecrement } from './useDecrement'
export { useIncrement } from './useIncrement'
export { useAsyncCallback } from './useAsyncCallback'
// API & data hooks
export { useAuth } from './use-auth'
export { useBlobStorage } from './use-blob-storage'
export { useCachedData } from './use-cached-data'
export { useDBAL } from './use-dbal'
export { useKVStore } from './use-kv-store'
export { useMobile } from './use-mobile'
export { useRestAPI } from './use-rest-api'
export { useAsyncData } from './useAsyncData'
export { useAutoRefresh } from './useAutoRefresh'
export { useCodeEditor } from './useCodeEditor'
export { useFileTree } from './useFileTree'
export { useGitHubFetcher } from './useGitHubFetcher'
export { useKV } from './useKV'
export { useLevelRouting } from './useLevelRouting'
export { usePackageActions } from './usePackageActions'
export { usePackageDetails } from './usePackageDetails'
export { usePackages } from './usePackages'
export { useResolvedUser } from './useResolvedUser'
export { useUserActions } from './useUserActions'
export { useUserForm } from './useUserForm'
export { useUsers } from './useUsers'
export { useWorkflow, useWorkflowExecutions } from './useWorkflow'
// Re-export types
export type { AuthUser } from './use-auth'