@lssm-tech/lib.ui-kit 4.1.6
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/LICENSE +21 -0
- package/README.md +180 -0
- package/dist/browser/index.js +1 -0
- package/dist/browser/ui/accordion.js +1 -0
- package/dist/browser/ui/alert-dialog.js +1 -0
- package/dist/browser/ui/alert.js +1 -0
- package/dist/browser/ui/aspect-ratio.js +1 -0
- package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +1 -0
- package/dist/browser/ui/atoms/FilterSelect/index.js +1 -0
- package/dist/browser/ui/atoms/FilterSelect/types.js +0 -0
- package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -0
- package/dist/browser/ui/atoms/LoadingSpinner/index.js +1 -0
- package/dist/browser/ui/atoms/Pagination/Pagination.js +1 -0
- package/dist/browser/ui/atoms/Pagination/index.js +1 -0
- package/dist/browser/ui/atoms/Pagination/types.js +0 -0
- package/dist/browser/ui/atoms/SearchInput/SearchInput.js +1 -0
- package/dist/browser/ui/atoms/SearchInput/index.js +1 -0
- package/dist/browser/ui/atoms/SearchInput/types.js +0 -0
- package/dist/browser/ui/avatar.js +1 -0
- package/dist/browser/ui/badge.js +1 -0
- package/dist/browser/ui/breadcrumb.js +1 -0
- package/dist/browser/ui/button.js +1 -0
- package/dist/browser/ui/card.js +1 -0
- package/dist/browser/ui/carousel.js +1 -0
- package/dist/browser/ui/checkbox.js +1 -0
- package/dist/browser/ui/collapsible.js +1 -0
- package/dist/browser/ui/combobox.js +1 -0
- package/dist/browser/ui/command.js +1 -0
- package/dist/browser/ui/context-menu.js +1 -0
- package/dist/browser/ui/contracts.typecheck.js +0 -0
- package/dist/browser/ui/data-table.js +1 -0
- package/dist/browser/ui/date-picker.js +1 -0
- package/dist/browser/ui/date-range-picker.js +1 -0
- package/dist/browser/ui/datetime-picker.js +1 -0
- package/dist/browser/ui/dialog.js +1 -0
- package/dist/browser/ui/dropdown-menu.js +1 -0
- package/dist/browser/ui/empty-state.js +1 -0
- package/dist/browser/ui/empty.js +1 -0
- package/dist/browser/ui/fab.js +1 -0
- package/dist/browser/ui/field.js +1 -0
- package/dist/browser/ui/form.js +1 -0
- package/dist/browser/ui/hover-card.js +1 -0
- package/dist/browser/ui/icons/Check.js +1 -0
- package/dist/browser/ui/icons/ChevronDown.js +1 -0
- package/dist/browser/ui/icons/ChevronRight.js +1 -0
- package/dist/browser/ui/icons/ChevronUp.js +1 -0
- package/dist/browser/ui/icons/CircleUser.js +1 -0
- package/dist/browser/ui/icons/Info.js +1 -0
- package/dist/browser/ui/icons/Key.js +1 -0
- package/dist/browser/ui/icons/MoonStar.js +1 -0
- package/dist/browser/ui/icons/Sun.js +1 -0
- package/dist/browser/ui/icons/X.js +1 -0
- package/dist/browser/ui/icons/iconWithClassName.js +1 -0
- package/dist/browser/ui/input-group.js +1 -0
- package/dist/browser/ui/input-otp.js +1 -0
- package/dist/browser/ui/input-password.js +1 -0
- package/dist/browser/ui/input.js +1 -0
- package/dist/browser/ui/label.js +1 -0
- package/dist/browser/ui/link.js +1 -0
- package/dist/browser/ui/list.js +1 -0
- package/dist/browser/ui/loading-button.js +1 -0
- package/dist/browser/ui/loading-overlay.js +1 -0
- package/dist/browser/ui/loading-screen.js +1 -0
- package/dist/browser/ui/marketing/FeatureGrid.js +1 -0
- package/dist/browser/ui/marketing/Hero.js +1 -0
- package/dist/browser/ui/marketing/PricingTable.js +1 -0
- package/dist/browser/ui/marketing/index.js +1 -0
- package/dist/browser/ui/menubar.js +1 -0
- package/dist/browser/ui/molecules/Autocomplete/index.js +1 -0
- package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +1 -0
- package/dist/browser/ui/molecules/SearchAndFilter/index.js +1 -0
- package/dist/browser/ui/molecules/SearchAndFilter/types.js +0 -0
- package/dist/browser/ui/molecules/SkeletonList.js +1 -0
- package/dist/browser/ui/native-select.js +1 -0
- package/dist/browser/ui/nativewind-env.d.js +0 -0
- package/dist/browser/ui/navigation-menu.js +1 -0
- package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +1 -0
- package/dist/browser/ui/organisms/ErrorBoundary/index.js +1 -0
- package/dist/browser/ui/organisms/ListPage/ListPage.js +1 -0
- package/dist/browser/ui/organisms/ListPage/index.js +1 -0
- package/dist/browser/ui/organisms/ListPage/types.js +0 -0
- package/dist/browser/ui/page-header.js +1 -0
- package/dist/browser/ui/password-strength.js +1 -0
- package/dist/browser/ui/popover.js +1 -0
- package/dist/browser/ui/portal.js +1 -0
- package/dist/browser/ui/progress.js +1 -0
- package/dist/browser/ui/radio-group.js +1 -0
- package/dist/browser/ui/select.js +1 -0
- package/dist/browser/ui/separator.js +1 -0
- package/dist/browser/ui/sheet.js +1 -0
- package/dist/browser/ui/sidebar.js +1 -0
- package/dist/browser/ui/skeleton.js +1 -0
- package/dist/browser/ui/slider.js +1 -0
- package/dist/browser/ui/stack.js +1 -0
- package/dist/browser/ui/stepper.js +1 -0
- package/dist/browser/ui/switch.js +1 -0
- package/dist/browser/ui/table.js +1 -0
- package/dist/browser/ui/tabs.js +1 -0
- package/dist/browser/ui/text.js +1 -0
- package/dist/browser/ui/textarea.js +1 -0
- package/dist/browser/ui/time-picker.js +1 -0
- package/dist/browser/ui/toast.js +1 -0
- package/dist/browser/ui/toggle-group.js +1 -0
- package/dist/browser/ui/toggle.js +1 -0
- package/dist/browser/ui/toolbar.js +1 -0
- package/dist/browser/ui/tooltip.js +1 -0
- package/dist/browser/ui/typography.js +1 -0
- package/dist/browser/ui/useColorScheme.js +1 -0
- package/dist/browser/ui/useListState.js +1 -0
- package/dist/browser/ui/usecases/UseCaseCard.js +1 -0
- package/dist/browser/ui/usecases/UserStoryCard.js +1 -0
- package/dist/browser/ui/usecases/index.js +1 -0
- package/dist/browser/ui/utils.js +1 -0
- package/dist/browser/ui/visualization/Visualization.js +1 -0
- package/dist/browser/ui/visualization/index.js +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/ui/accordion.d.ts +16 -0
- package/dist/ui/accordion.js +2 -0
- package/dist/ui/alert-dialog.d.ts +46 -0
- package/dist/ui/alert-dialog.js +2 -0
- package/dist/ui/alert.d.ts +17 -0
- package/dist/ui/alert.js +2 -0
- package/dist/ui/aspect-ratio.d.ts +8 -0
- package/dist/ui/aspect-ratio.js +2 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +3 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.js +2 -0
- package/dist/ui/atoms/FilterSelect/index.d.ts +2 -0
- package/dist/ui/atoms/FilterSelect/index.js +2 -0
- package/dist/ui/atoms/FilterSelect/types.d.ts +5 -0
- package/dist/ui/atoms/FilterSelect/types.js +1 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +19 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +2 -0
- package/dist/ui/atoms/LoadingSpinner/index.d.ts +1 -0
- package/dist/ui/atoms/LoadingSpinner/index.js +2 -0
- package/dist/ui/atoms/Pagination/Pagination.d.ts +3 -0
- package/dist/ui/atoms/Pagination/Pagination.js +2 -0
- package/dist/ui/atoms/Pagination/index.d.ts +2 -0
- package/dist/ui/atoms/Pagination/index.js +2 -0
- package/dist/ui/atoms/Pagination/types.d.ts +3 -0
- package/dist/ui/atoms/Pagination/types.js +1 -0
- package/dist/ui/atoms/SearchInput/SearchInput.d.ts +3 -0
- package/dist/ui/atoms/SearchInput/SearchInput.js +2 -0
- package/dist/ui/atoms/SearchInput/index.d.ts +2 -0
- package/dist/ui/atoms/SearchInput/index.js +2 -0
- package/dist/ui/atoms/SearchInput/types.d.ts +3 -0
- package/dist/ui/atoms/SearchInput/types.js +1 -0
- package/dist/ui/avatar.d.ts +13 -0
- package/dist/ui/avatar.js +2 -0
- package/dist/ui/badge.d.ts +11 -0
- package/dist/ui/badge.js +2 -0
- package/dist/ui/breadcrumb.d.ts +12 -0
- package/dist/ui/breadcrumb.js +2 -0
- package/dist/ui/button.d.ts +16 -0
- package/dist/ui/button.js +2 -0
- package/dist/ui/card.d.ts +22 -0
- package/dist/ui/card.js +2 -0
- package/dist/ui/carousel.d.ts +1 -0
- package/dist/ui/carousel.js +2 -0
- package/dist/ui/checkbox.d.ts +12 -0
- package/dist/ui/checkbox.js +2 -0
- package/dist/ui/collapsible.d.ts +27 -0
- package/dist/ui/collapsible.js +2 -0
- package/dist/ui/combobox.d.ts +17 -0
- package/dist/ui/combobox.js +2 -0
- package/dist/ui/command.d.ts +1 -0
- package/dist/ui/command.js +2 -0
- package/dist/ui/context-menu.d.ts +83 -0
- package/dist/ui/context-menu.js +2 -0
- package/dist/ui/contracts.typecheck.d.ts +1 -0
- package/dist/ui/contracts.typecheck.js +1 -0
- package/dist/ui/data-table.d.ts +8 -0
- package/dist/ui/data-table.js +2 -0
- package/dist/ui/data-table.smoke.test.d.ts +1 -0
- package/dist/ui/date-picker.d.ts +4 -0
- package/dist/ui/date-picker.js +2 -0
- package/dist/ui/date-range-picker.d.ts +6 -0
- package/dist/ui/date-range-picker.js +2 -0
- package/dist/ui/datetime-picker.d.ts +6 -0
- package/dist/ui/datetime-picker.js +2 -0
- package/dist/ui/dialog.d.ts +51 -0
- package/dist/ui/dialog.js +2 -0
- package/dist/ui/dropdown-menu.d.ts +84 -0
- package/dist/ui/dropdown-menu.js +2 -0
- package/dist/ui/empty-state.d.ts +9 -0
- package/dist/ui/empty-state.js +2 -0
- package/dist/ui/empty.d.ts +12 -0
- package/dist/ui/empty.js +2 -0
- package/dist/ui/fab.d.ts +21 -0
- package/dist/ui/fab.js +2 -0
- package/dist/ui/field.d.ts +21 -0
- package/dist/ui/field.js +2 -0
- package/dist/ui/form.d.ts +29 -0
- package/dist/ui/form.js +2 -0
- package/dist/ui/hover-card.d.ts +25 -0
- package/dist/ui/hover-card.js +2 -0
- package/dist/ui/icons/Check.d.ts +2 -0
- package/dist/ui/icons/Check.js +2 -0
- package/dist/ui/icons/ChevronDown.d.ts +2 -0
- package/dist/ui/icons/ChevronDown.js +2 -0
- package/dist/ui/icons/ChevronRight.d.ts +2 -0
- package/dist/ui/icons/ChevronRight.js +2 -0
- package/dist/ui/icons/ChevronUp.d.ts +2 -0
- package/dist/ui/icons/ChevronUp.js +2 -0
- package/dist/ui/icons/CircleUser.d.ts +2 -0
- package/dist/ui/icons/CircleUser.js +2 -0
- package/dist/ui/icons/Info.d.ts +2 -0
- package/dist/ui/icons/Info.js +2 -0
- package/dist/ui/icons/Key.d.ts +2 -0
- package/dist/ui/icons/Key.js +2 -0
- package/dist/ui/icons/MoonStar.d.ts +2 -0
- package/dist/ui/icons/MoonStar.js +2 -0
- package/dist/ui/icons/Sun.d.ts +2 -0
- package/dist/ui/icons/Sun.js +2 -0
- package/dist/ui/icons/X.d.ts +2 -0
- package/dist/ui/icons/X.js +2 -0
- package/dist/ui/icons/iconWithClassName.d.ts +2 -0
- package/dist/ui/icons/iconWithClassName.js +2 -0
- package/dist/ui/input-group.d.ts +36 -0
- package/dist/ui/input-group.js +2 -0
- package/dist/ui/input-otp.d.ts +20 -0
- package/dist/ui/input-otp.js +2 -0
- package/dist/ui/input-password.d.ts +10 -0
- package/dist/ui/input-password.js +2 -0
- package/dist/ui/input.d.ts +8 -0
- package/dist/ui/input.js +2 -0
- package/dist/ui/label.d.ts +3 -0
- package/dist/ui/label.js +2 -0
- package/dist/ui/link.d.ts +6 -0
- package/dist/ui/link.js +2 -0
- package/dist/ui/list.d.ts +23 -0
- package/dist/ui/list.js +2 -0
- package/dist/ui/loading-button.d.ts +9 -0
- package/dist/ui/loading-button.js +2 -0
- package/dist/ui/loading-overlay.d.ts +7 -0
- package/dist/ui/loading-overlay.js +2 -0
- package/dist/ui/loading-screen.d.ts +6 -0
- package/dist/ui/loading-screen.js +2 -0
- package/dist/ui/marketing/FeatureGrid.d.ts +4 -0
- package/dist/ui/marketing/FeatureGrid.js +2 -0
- package/dist/ui/marketing/Hero.d.ts +16 -0
- package/dist/ui/marketing/Hero.js +2 -0
- package/dist/ui/marketing/PricingTable.d.ts +4 -0
- package/dist/ui/marketing/PricingTable.js +2 -0
- package/dist/ui/marketing/index.d.ts +3 -0
- package/dist/ui/marketing/index.js +2 -0
- package/dist/ui/menubar.d.ts +80 -0
- package/dist/ui/menubar.js +2 -0
- package/dist/ui/molecules/Autocomplete/index.d.ts +1 -0
- package/dist/ui/molecules/Autocomplete/index.js +2 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +3 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +2 -0
- package/dist/ui/molecules/SearchAndFilter/index.d.ts +2 -0
- package/dist/ui/molecules/SearchAndFilter/index.js +2 -0
- package/dist/ui/molecules/SearchAndFilter/types.d.ts +4 -0
- package/dist/ui/molecules/SearchAndFilter/types.js +1 -0
- package/dist/ui/molecules/SkeletonList.d.ts +7 -0
- package/dist/ui/molecules/SkeletonList.js +2 -0
- package/dist/ui/native-select.d.ts +29 -0
- package/dist/ui/native-select.js +2 -0
- package/dist/ui/nativewind-env.d.js +1 -0
- package/dist/ui/navigation-menu.d.ts +44 -0
- package/dist/ui/navigation-menu.js +2 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +25 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +2 -0
- package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
- package/dist/ui/organisms/ErrorBoundary/index.js +2 -0
- package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -0
- package/dist/ui/organisms/ListPage/ListPage.js +2 -0
- package/dist/ui/organisms/ListPage/index.d.ts +2 -0
- package/dist/ui/organisms/ListPage/index.js +2 -0
- package/dist/ui/organisms/ListPage/types.d.ts +44 -0
- package/dist/ui/organisms/ListPage/types.js +1 -0
- package/dist/ui/page-header.d.ts +9 -0
- package/dist/ui/page-header.js +2 -0
- package/dist/ui/password-strength.d.ts +13 -0
- package/dist/ui/password-strength.js +2 -0
- package/dist/ui/popover.d.ts +23 -0
- package/dist/ui/popover.js +2 -0
- package/dist/ui/portal.d.ts +1 -0
- package/dist/ui/portal.js +2 -0
- package/dist/ui/progress.d.ts +7 -0
- package/dist/ui/progress.js +2 -0
- package/dist/ui/radio-group.d.ts +4 -0
- package/dist/ui/radio-group.js +2 -0
- package/dist/ui/select.d.ts +60 -0
- package/dist/ui/select.js +2 -0
- package/dist/ui/separator.d.ts +6 -0
- package/dist/ui/separator.js +2 -0
- package/dist/ui/sheet.d.ts +1 -0
- package/dist/ui/sheet.js +2 -0
- package/dist/ui/sidebar.d.ts +1 -0
- package/dist/ui/sidebar.js +2 -0
- package/dist/ui/skeleton.d.ts +4 -0
- package/dist/ui/skeleton.js +2 -0
- package/dist/ui/slider.d.ts +7 -0
- package/dist/ui/slider.js +2 -0
- package/dist/ui/stack.d.ts +43 -0
- package/dist/ui/stack.js +2 -0
- package/dist/ui/stepper.d.ts +10 -0
- package/dist/ui/stepper.js +2 -0
- package/dist/ui/switch.d.ts +7 -0
- package/dist/ui/switch.js +2 -0
- package/dist/ui/table.d.ts +24 -0
- package/dist/ui/table.js +2 -0
- package/dist/ui/tabs.d.ts +6 -0
- package/dist/ui/tabs.js +2 -0
- package/dist/ui/text.d.ts +12 -0
- package/dist/ui/text.js +2 -0
- package/dist/ui/textarea.d.ts +8 -0
- package/dist/ui/textarea.js +2 -0
- package/dist/ui/time-picker.d.ts +4 -0
- package/dist/ui/time-picker.js +2 -0
- package/dist/ui/toast.d.ts +40 -0
- package/dist/ui/toast.js +2 -0
- package/dist/ui/toggle-group.d.ts +15 -0
- package/dist/ui/toggle-group.js +2 -0
- package/dist/ui/toggle.d.ts +19 -0
- package/dist/ui/toggle.js +2 -0
- package/dist/ui/toolbar.d.ts +25 -0
- package/dist/ui/toolbar.js +2 -0
- package/dist/ui/tooltip.d.ts +27 -0
- package/dist/ui/tooltip.js +2 -0
- package/dist/ui/typography.d.ts +16 -0
- package/dist/ui/typography.js +2 -0
- package/dist/ui/useColorScheme.d.ts +6 -0
- package/dist/ui/useColorScheme.js +2 -0
- package/dist/ui/useListState.d.ts +6 -0
- package/dist/ui/useListState.js +2 -0
- package/dist/ui/usecases/UseCaseCard.d.ts +7 -0
- package/dist/ui/usecases/UseCaseCard.js +2 -0
- package/dist/ui/usecases/UserStoryCard.d.ts +5 -0
- package/dist/ui/usecases/UserStoryCard.js +2 -0
- package/dist/ui/usecases/index.d.ts +2 -0
- package/dist/ui/usecases/index.js +2 -0
- package/dist/ui/utils.d.ts +2 -0
- package/dist/ui/utils.js +2 -0
- package/dist/ui/visualization/Visualization.d.ts +7 -0
- package/dist/ui/visualization/Visualization.js +2 -0
- package/dist/ui/visualization/index.d.ts +1 -0
- package/dist/ui/visualization/index.js +2 -0
- package/package.json +1776 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as NavigationMenuPrimitive from '@rn-primitives/navigation-menu';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
declare function NavigationMenu({ className, children, ...props }: NavigationMenuPrimitive.RootProps & {
|
|
5
|
+
ref?: React.RefObject<NavigationMenuPrimitive.RootRef>;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function NavigationMenuList({ className, ...props }: NavigationMenuPrimitive.ListProps & {
|
|
8
|
+
ref?: React.RefObject<NavigationMenuPrimitive.ListRef>;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare const NavigationMenuItem: {
|
|
11
|
+
({ asChild, value, ref, ...viewProps }: import("react-native").ViewProps & {
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
} & {
|
|
14
|
+
value: string | undefined;
|
|
15
|
+
} & React.RefAttributes<View>): React.JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
19
|
+
declare function NavigationMenuTrigger({ className, children, ...props }: Omit<NavigationMenuPrimitive.TriggerProps, 'children'> & {
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
ref?: React.RefObject<NavigationMenuPrimitive.TriggerRef>;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare function NavigationMenuContent({ className, children, portalHost, ...props }: NavigationMenuPrimitive.ContentProps & {
|
|
24
|
+
portalHost?: string;
|
|
25
|
+
ref?: React.RefObject<NavigationMenuPrimitive.ContentRef>;
|
|
26
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
declare const NavigationMenuLink: {
|
|
28
|
+
({ asChild, ref, ...props }: Omit<import("react-native").PressableProps & React.RefAttributes<View>, "ref"> & {
|
|
29
|
+
asChild?: boolean;
|
|
30
|
+
} & {
|
|
31
|
+
onKeyDown?: (ev: React.KeyboardEvent) => void;
|
|
32
|
+
onKeyUp?: (ev: React.KeyboardEvent) => void;
|
|
33
|
+
} & {
|
|
34
|
+
active?: boolean;
|
|
35
|
+
} & React.RefAttributes<View>): React.JSX.Element;
|
|
36
|
+
displayName: string;
|
|
37
|
+
};
|
|
38
|
+
declare function NavigationMenuViewport({ className, ...props }: NavigationMenuPrimitive.ViewportProps & {
|
|
39
|
+
ref?: React.RefObject<NavigationMenuPrimitive.ViewportRef>;
|
|
40
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare function NavigationMenuIndicator({ ref, className, ...props }: NavigationMenuPrimitive.IndicatorProps & {
|
|
42
|
+
ref?: React.RefObject<NavigationMenuPrimitive.IndicatorRef>;
|
|
43
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle, };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{styled as b}from"nativewind";function X(q){b(q,{className:{target:"style",nativeStyleMapping:{color:!0,opacity:!0}}})}import{ChevronDown as Q}from"lucide-react-native";X(Q);import{cn as B}from"@contractspec/lib.ui-kit-core/utils";import*as W from"@rn-primitives/navigation-menu";import{cva as E}from"class-variance-authority";import{Platform as R,View as U}from"react-native";import Z,{Extrapolation as I,FadeInLeft as O,FadeOutLeft as f,interpolate as k,useAnimatedStyle as D,useDerivedValue as F,withTiming as Y}from"react-native-reanimated";import{jsx as y,jsxs as _}from"react/jsx-runtime";function j({className:q,children:z,...C}){return _(W.Root,{className:B("relative z-10 flex max-w-max flex-row items-center justify-center",q),...C,children:[z,R.OS==="web"&&y(L,{})]})}function m({className:q,...z}){return y(W.List,{className:B("web:group flex flex-1 web:list-none flex-row items-center justify-center gap-1",q),...z})}var N=W.Item,H=E("web:group web:inline-flex h-10 native:h-12 w-max flex-row items-center justify-center rounded-md bg-background native:px-3 px-4 py-2 font-medium text-sm web:transition-colors web:hover:bg-accent web:hover:text-accent-foreground web:focus:bg-accent web:focus:text-accent-foreground web:focus:outline-hidden active:bg-accent web:disabled:pointer-events-none disabled:opacity-50 web:data-[state=open]:bg-accent/50 web:data-active:bg-accent/50");function g({className:q,children:z,...C}){let{value:G}=W.useRootContext(),{value:J}=W.useItemContext(),K=F(()=>G===J?Y(1,{duration:250}):Y(0,{duration:200})),$=D(()=>({transform:[{rotate:`${K.value*180}deg`}],opacity:k(K.value,[0,1],[1,0.8],I.CLAMP)}));return _(W.Trigger,{className:B(H(),"web:group gap-1.5",G===J&&"bg-accent",q),...C,children:[z,y(Z.View,{style:$,children:y(Q,{size:12,className:B("relative h-3 w-3 text-foreground web:transition web:duration-200"),"aria-hidden":!0})})]})}function u({className:q,children:z,portalHost:C,...G}){let{value:J}=W.useRootContext(),{value:K}=W.useItemContext();return y(W.Portal,{hostName:C,children:y(W.Content,{className:B("w-full native:overflow-hidden native:rounded-lg native:border native:border-border native:bg-popover native:text-popover-foreground native:shadow-lg",J===K?"web:fade-in web:slide-in-from-right-20 web:animate-in":"web:fade-out web:slide-out-to-left-20 web:animate-out",q),...G,children:y(Z.View,{entering:R.OS!=="web"?O:void 0,exiting:R.OS!=="web"?f:void 0,children:z})})})}var v=W.Link;function L({className:q,...z}){return y(U,{className:B("absolute top-full left-0 flex justify-center"),children:y(U,{className:B("web:zoom-in-90 relative mt-1.5 web:h-(--radix-navigation-menu-viewport-height) w-full web:origin-top-center web:animate-in overflow-hidden rounded-md border border-border bg-popover text-popover-foreground shadow-lg",q),...z,children:y(W.Viewport,{})})})}function p({ref:q,className:z,...C}){let{value:G}=W.useRootContext(),{value:J}=W.useItemContext();return y(W.Indicator,{ref:q,className:B("top-full z-1 flex h-1.5 items-end justify-center overflow-hidden",G===J?"web:fade-in web:animate-in":"web:fade-out web:animate-out",z),...C,children:y(U,{className:"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-foreground/5 shadow-md"})})}export{H as navigationMenuTriggerStyle,L as NavigationMenuViewport,g as NavigationMenuTrigger,m as NavigationMenuList,v as NavigationMenuLink,N as NavigationMenuItem,p as NavigationMenuIndicator,u as NavigationMenuContent,j as NavigationMenu};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ErrorBoundaryState {
|
|
3
|
+
hasError: boolean;
|
|
4
|
+
error: Error | null;
|
|
5
|
+
errorId: string | null;
|
|
6
|
+
}
|
|
7
|
+
interface ErrorBoundaryProps {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
fallback?: React.ComponentType<ErrorFallbackProps>;
|
|
10
|
+
onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
|
|
11
|
+
}
|
|
12
|
+
interface ErrorFallbackProps {
|
|
13
|
+
error: Error;
|
|
14
|
+
errorId: string | null;
|
|
15
|
+
resetError: () => void;
|
|
16
|
+
}
|
|
17
|
+
export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
|
|
18
|
+
constructor(props: ErrorBoundaryProps);
|
|
19
|
+
static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
|
|
20
|
+
componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
|
|
21
|
+
resetError: () => void;
|
|
22
|
+
render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
23
|
+
}
|
|
24
|
+
export declare const useErrorHandler: () => (error: Error) => never;
|
|
25
|
+
export type { ErrorBoundaryProps, ErrorFallbackProps };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as z}from"@contractspec/lib.ui-kit-core/utils";import*as S from"@rn-primitives/slot";import*as $ from"react";import{Text as B}from"react-native";import{jsx as R}from"react/jsx-runtime";var D=$.createContext(void 0);function O({className:q,asChild:G=!1,...J}){let K=$.useContext(D);return R(G?S.Text:B,{className:z("web:select-text text-base text-foreground",K,q),...J})}import{cn as y}from"@contractspec/lib.ui-kit-core/utils";import{cva as L}from"class-variance-authority";import{Pressable as H}from"react-native";import{jsx as F}from"react/jsx-runtime";var k=L("group flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2",{variants:{variant:{default:"bg-primary web:hover:opacity-90 active:opacity-90",destructive:"bg-destructive web:hover:opacity-90 active:opacity-90",outline:"border border-input bg-background web:hover:bg-accent web:hover:text-accent-foreground active:bg-accent",secondary:"bg-secondary web:hover:opacity-80 active:opacity-80",ghost:"web:hover:bg-accent web:hover:text-accent-foreground active:bg-accent",link:"web:underline-offset-4 web:hover:underline web:focus:underline"},size:{default:"h-10 native:h-12 native:px-5 px-4 native:py-3 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 native:h-14 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),w=L("web:whitespace-nowrap font-medium native:text-base text-foreground text-sm web:transition-colors",{variants:{variant:{default:"text-primary-foreground",destructive:"text-destructive-foreground",outline:"group-active:text-accent-foreground",secondary:"text-secondary-foreground group-active:text-secondary-foreground",ghost:"group-active:text-accent-foreground",link:"text-primary group-active:underline"},size:{default:"",sm:"",lg:"native:text-lg",icon:""}},defaultVariants:{variant:"default",size:"default"}});function M({ref:q,className:G,variant:J,size:K,..._}){return F(D.Provider,{value:w({variant:J,size:K,className:"web:pointer-events-none"}),children:F(H,{className:y(_.disabled&&"web:pointer-events-none opacity-50",k({variant:J,size:K,className:G})),ref:q,role:"button",..._})})}import{cn as W}from"@contractspec/lib.ui-kit-core/utils";import*as U from"@rn-primitives/slot";import{Platform as E}from"react-native";import{jsx as X}from"react/jsx-runtime";function l({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{role:"heading","aria-level":"1",className:W("web:select-text web:scroll-m-20 font-extrabold text-4xl text-foreground tracking-tight lg:text-5xl",q),...J})}function o({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{role:"heading","aria-level":"2",className:W("web:select-text web:scroll-m-20 border-border border-b pb-2 font-semibold text-3xl text-foreground tracking-tight first:mt-0",q),...J})}function t({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{role:"heading","aria-level":"3",className:W("web:select-text web:scroll-m-20 font-semibold text-2xl text-foreground tracking-tight",q),...J})}function e({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{role:"heading","aria-level":"4",className:W("web:select-text web:scroll-m-20 font-semibold text-foreground text-xl tracking-tight",q),...J})}function Q({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{className:W("web:select-text text-base text-foreground",q),...J})}function r({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{role:E.OS==="web"?"blockquote":void 0,className:W("mt-6 native:mt-4 web:select-text border-border border-l-2 native:pl-3 pl-6 text-base text-foreground italic",q),...J})}function a({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{role:E.OS==="web"?"code":void 0,className:W("relative web:select-text rounded-md bg-muted px-[0.3rem] py-[0.2rem] font-semibold text-foreground text-sm",q),...J})}function s({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{className:W("web:select-text text-muted-foreground text-xl",q),...J})}function qq({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{className:W("web:select-text font-semibold text-foreground text-xl",q),...J})}function Gq({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{className:W("web:select-text font-medium text-foreground text-sm leading-none",q),...J})}function Jq({className:q,asChild:G=!1,...J}){return X(G?U.Text:O,{className:W("web:select-text text-muted-foreground text-sm",q),...J})}import{AlertTriangle as I,Home as P,RefreshCw as V}from"lucide-react";import g from"react";import{Platform as f,View as A}from"react-native";import{jsx as Y,jsxs as Z}from"react/jsx-runtime";var v=({error:q,errorId:G,resetError:J})=>{return Y(A,{className:"flex min-h-screen items-center justify-center bg-gray-50 px-4",children:Z(A,{className:"w-full max-w-md rounded-lg bg-white p-6 shadow-lg",children:[Y(A,{className:"mb-4 flex justify-center",children:Y(I,{className:"h-12 w-12 text-red-500"})}),Y(O,{className:"mb-2 font-semibold text-2xl text-gray-900",children:"Une erreur s'est produite"}),Y(Q,{className:"mb-6 text-gray-600",children:"Nous nous excusons pour ce d\xE9sagr\xE9ment. Notre \xE9quipe a \xE9t\xE9 notifi\xE9e et travaille \xE0 r\xE9soudre le probl\xE8me."}),!1,Z(A,{className:"flex flex-col justify-center gap-3 sm:flex-row",children:[Z(M,{onPress:J,className:"flex items-center gap-2",children:[Y(V,{className:"h-4 w-4"}),"R\xE9essayer"]}),Z(M,{onPress:()=>{if(f.OS==="web"&&typeof window<"u")window.location.href="/"},variant:"secondary",className:"flex items-center gap-2",children:[Y(P,{className:"h-4 w-4"}),"Accueil"]})]}),G&&Z(Q,{className:"mt-4 text-gray-500 text-sm",children:["Code d'erreur: ",G]})]})})};class b extends g.Component{constructor(q){super(q);this.state={hasError:!1,error:null,errorId:null}}static getDerivedStateFromError(q){return{hasError:!0,error:q}}componentDidCatch(q,G){let J=`err_${Date.now()}_${Math.random().toString(36).substring(2,11)}`;this.setState({errorId:J}),this.props.onError?.(q,G)}resetError=()=>{this.setState({hasError:!1,error:null,errorId:null})};render(){if(this.state.hasError&&this.state.error){let q=this.props.fallback||v;return Y(q,{error:this.state.error,errorId:this.state.errorId,resetError:this.resetError})}return this.props.children}}var $q=()=>{return g.useCallback((q)=>{throw q},[])};export{$q as useErrorHandler,b as ErrorBoundary};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import type { ListPageProps } from './types';
|
|
2
|
+
export declare function ListPage<T>({ title, description, header, items, totalItems, totalPages, isLoading, isFetching, error, listState, searchPlaceholder, filters, onRefresh, primaryAction, toolbar, renderItem, renderEmpty, renderStats, className, itemClassName, linkComponent, }: ListPageProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{styled as a0}from"nativewind";function h(b){a0(b,{className:{target:"style",nativeStyleMapping:{color:!0,opacity:!0}}})}import{ChevronDown as i}from"lucide-react-native";h(i);import{cn as s0}from"@contractspec/lib.ui-kit-core/utils";import*as v0 from"@rn-primitives/slot";import*as a from"react";import{Text as M1}from"react-native";import{jsx as b1}from"react/jsx-runtime";var e=a.createContext(void 0);function f({className:b,asChild:M=!1,...W}){let $=a.useContext(e);return b1(M?v0.Text:M1,{className:s0("web:select-text text-base text-foreground",$,b),...W})}import{cn as W1}from"@contractspec/lib.ui-kit-core/utils";import{cva as F0}from"class-variance-authority";import{Pressable as $1}from"react-native";import{jsx as k0}from"react/jsx-runtime";var z1=F0("group flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2",{variants:{variant:{default:"bg-primary web:hover:opacity-90 active:opacity-90",destructive:"bg-destructive web:hover:opacity-90 active:opacity-90",outline:"border border-input bg-background web:hover:bg-accent web:hover:text-accent-foreground active:bg-accent",secondary:"bg-secondary web:hover:opacity-80 active:opacity-80",ghost:"web:hover:bg-accent web:hover:text-accent-foreground active:bg-accent",link:"web:underline-offset-4 web:hover:underline web:focus:underline"},size:{default:"h-10 native:h-12 native:px-5 px-4 native:py-3 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 native:h-14 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),f1=F0("web:whitespace-nowrap font-medium native:text-base text-foreground text-sm web:transition-colors",{variants:{variant:{default:"text-primary-foreground",destructive:"text-destructive-foreground",outline:"group-active:text-accent-foreground",secondary:"text-secondary-foreground group-active:text-secondary-foreground",ghost:"group-active:text-accent-foreground",link:"text-primary group-active:underline"},size:{default:"",sm:"",lg:"native:text-lg",icon:""}},defaultVariants:{variant:"default",size:"default"}});function Y({ref:b,className:M,variant:W,size:$,...G}){return k0(e.Provider,{value:f1({variant:W,size:$,className:"web:pointer-events-none"}),children:k0($1,{className:W1(G.disabled&&"web:pointer-events-none opacity-50",z1({variant:W,size:$,className:M})),ref:b,role:"button",...G})})}import{cn as w0}from"@contractspec/lib.ui-kit-core/utils";import*as s from"@rn-primitives/label";import{Platform as T0}from"react-native";import{jsx as y0}from"react/jsx-runtime";function L0({className:b,onPress:M,onLongPress:W,onPressIn:$,onPressOut:G,disabled:I,..._}){return y0(s.Root,{className:w0("flex select-none flex-row items-center gap-2",T0.select({web:"cursor-default leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50"}),I&&"opacity-50"),onPress:M,onLongPress:W,onPressIn:$,onPressOut:G,disabled:I,children:y0(s.Text,{className:w0("font-medium text-foreground text-sm",T0.select({web:"leading-none"}),b),..._})})}import{Check as J0}from"lucide-react-native";h(J0);import{ChevronUp as K0}from"lucide-react-native";h(K0);import{cn as y}from"@contractspec/lib.ui-kit-core/utils";import*as X from"@rn-primitives/select";import{Platform as Y0,StyleSheet as G1,View as X1}from"react-native";import _1,{FadeIn as q1,FadeOut as I1}from"react-native-reanimated";import{jsx as D,jsxs as Z0}from"react/jsx-runtime";var M0=X.Root,I4=X.Group,b0=X.Value;function W0({ref:b,className:M,children:W,...$}){return Z0(X.Trigger,{ref:b,className:y("flex h-10 native:h-12 flex-row items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-muted-foreground text-sm web:ring-offset-background web:focus:outline-hidden web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 [&>span]:line-clamp-1",$.disabled&&"web:cursor-not-allowed opacity-50",M),...$,children:[W,D(i,{size:16,"aria-hidden":!0,className:"text-foreground opacity-50"})]})}function J1({className:b,...M}){if(Y0.OS!=="web")return null;return D(X.ScrollUpButton,{className:y("flex web:cursor-default items-center justify-center py-1",b),...M,children:D(K0,{size:14,className:"text-foreground"})})}function K1({className:b,...M}){if(Y0.OS!=="web")return null;return D(X.ScrollDownButton,{className:y("flex web:cursor-default items-center justify-center py-1",b),...M,children:D(i,{size:14,className:"text-foreground"})})}function $0({className:b,children:M,position:W="popper",portalHost:$,...G}){let{open:I}=X.useRootContext();return D(X.Portal,{hostName:$,children:D(X.Overlay,{style:Y0.OS!=="web"?G1.absoluteFill:void 0,children:D(_1.View,{className:"z-50",entering:q1,exiting:I1,children:Z0(X.Content,{className:y("data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-32 rounded-md border border-border bg-popover px-1 py-2 shadow-foreground/10 shadow-md",W==="popper"&&"data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",I?"web:fade-in-0 web:zoom-in-95 web:animate-in":"web:fade-out-0 web:zoom-out-95 web:animate-out",b),position:W,...G,children:[D(J1,{}),D(X.Viewport,{className:y("p-1",W==="popper"&&"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"),children:M}),D(K1,{})]})})})})}function J4({className:b,...M}){return D(X.Label,{className:y("py-1.5 pr-2 native:pb-2 native:pl-10 pl-8 font-semibold native:text-base text-popover-foreground text-sm",b),...M})}function t({className:b,children:M,...W}){return Z0(X.Item,{className:y("web:group relative flex w-full web:cursor-default web:select-none flex-row items-center rounded-xs native:py-2 py-1.5 pr-2 native:pl-10 pl-8 web:outline-hidden web:hover:bg-accent/50 web:focus:bg-accent active:bg-accent",W.disabled&&"web:pointer-events-none opacity-50",b),...W,children:[D(X1,{className:"absolute left-2 native:left-3.5 flex h-3.5 w-3.5 items-center justify-center native:pt-px",children:D(X.ItemIndicator,{children:D(J0,{size:16,strokeWidth:3,className:"text-popover-foreground"})})}),D(X.ItemText,{className:"native:text-base native:text-lg text-popover-foreground text-sm web:group-focus:text-accent-foreground"})]})}function K4({className:b,...M}){return D(X.Separator,{className:y("-mx-1 my-1 h-px bg-muted",b),...M})}import{cn as R0}from"@contractspec/lib.ui-kit-core/utils";import{cva as E0}from"class-variance-authority";import{View as H0}from"react-native";import{jsx as D0}from"react/jsx-runtime";var O0="flex",Y1=E0([O0,"flex-col"],{variants:{spacing:{none:"",xs:"gap-y-1",sm:"gap-y-2",md:"gap-y-4",lg:"gap-y-6",xl:"gap-y-8","2xl":"gap-y-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"}},defaultVariants:{spacing:"md",align:"stretch",justify:"start",width:"auto",padding:"none",gap:"none"}}),Z1=E0([O0,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"start",width:"auto",padding:"none",gap:"none",wrap:"wrap"}}),R1=E0([O0,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"center",width:"auto",padding:"none",gap:"none",wrap:"wrap"}});function O4({className:b,spacing:M,align:W,justify:$,width:G,padding:I,gap:_,wrap:H,...Z}){return D0(H0,{className:R0(R1({spacing:M,align:W,justify:$,width:G,padding:I,gap:_,wrap:H}),b),...Z})}function B({className:b,spacing:M,align:W,justify:$,width:G,padding:I,gap:_,wrap:H,...Z}){return D0(H0,{className:R0(Z1({spacing:M,align:W,justify:$,width:G,padding:I,gap:_,wrap:H}),b),...Z})}function k({className:b,spacing:M,align:W,justify:$,width:G,padding:I,gap:_,...H}){return D0(H0,{className:R0(Y1({spacing:M,align:W,justify:$,width:G,padding:I,gap:_}),b),...H})}import{View as E1}from"react-native";import{jsx as C,jsxs as N}from"react/jsx-runtime";var Q0=({value:b,options:M,onChange:W,placeholder:$="S\xE9lectionner...",label:G,disabled:I=!1,className:_="",showCounts:H=!1})=>{return N(B,{className:`space-y-2 ${_}`,children:[G&&C(L0,{className:"font-medium text-base text-foreground",children:G}),N(M0,{value:b,onValueChange:W,disabled:I,children:[C(W0,{className:"w-full",children:C(b0,{placeholder:$})}),N($0,{className:"bg-background",children:[N(t,{value:"all",label:"Tous",children:[C(f,{children:"Tous"}),H&&N(E1,{className:"ml-2 text-muted-foreground text-sm",children:["(",M.reduce((Z,w)=>Z+(w.count||0),0),")"]})]}),M.map((Z)=>C(t,{value:Z.value,label:Z.label,children:N(B,{className:"flex w-full items-center justify-between",children:[C(f,{children:Z.label}),H&&Z.count!==void 0&&N(f,{className:"ml-2 text-muted-foreground text-sm",children:["(",Z.count,")"]})]})},Z.value))]})]})]})};import{cn as u}from"@contractspec/lib.ui-kit-core/utils";import*as S from"@rn-primitives/slot";import{Platform as V0}from"react-native";import{jsx as v}from"react/jsx-runtime";function m4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{role:"heading","aria-level":"1",className:u("web:select-text web:scroll-m-20 font-extrabold text-4xl text-foreground tracking-tight lg:text-5xl",b),...W})}function N4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{role:"heading","aria-level":"2",className:u("web:select-text web:scroll-m-20 border-border border-b pb-2 font-semibold text-3xl text-foreground tracking-tight first:mt-0",b),...W})}function P4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{role:"heading","aria-level":"3",className:u("web:select-text web:scroll-m-20 font-semibold text-2xl text-foreground tracking-tight",b),...W})}function g4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{role:"heading","aria-level":"4",className:u("web:select-text web:scroll-m-20 font-semibold text-foreground text-xl tracking-tight",b),...W})}function d({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{className:u("web:select-text text-base text-foreground",b),...W})}function A4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{role:V0.OS==="web"?"blockquote":void 0,className:u("mt-6 native:mt-4 web:select-text border-border border-l-2 native:pl-3 pl-6 text-base text-foreground italic",b),...W})}function h4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{role:V0.OS==="web"?"code":void 0,className:u("relative web:select-text rounded-md bg-muted px-[0.3rem] py-[0.2rem] font-semibold text-foreground text-sm",b),...W})}function C4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{className:u("web:select-text text-muted-foreground text-xl",b),...W})}function d4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{className:u("web:select-text font-semibold text-foreground text-xl",b),...W})}function l4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{className:u("web:select-text font-medium text-foreground text-sm leading-none",b),...W})}function o4({className:b,asChild:M=!1,...W}){return v(M?S.Text:f,{className:u("web:select-text text-muted-foreground text-sm",b),...W})}import{ChevronLeft as H1,ChevronRight as O1,ChevronsLeft as D1,ChevronsRight as Q1}from"lucide-react-native";import{jsx as R,jsxs as F}from"react/jsx-runtime";function U1(b,M){if(M<=7)return Array.from({length:M},(W,$)=>$+1);if(b<=3)return[1,2,3,4,5,"end-ellipsis",M];if(b>=M-2)return[1,"start-ellipsis",M-4,M-3,M-2,M-1,M];return[1,"start-ellipsis",b-1,b,b+1,"end-ellipsis",M]}var U0=({currentPage:b,totalPages:M,totalItems:W,itemsPerPage:$,onPageChange:G,onItemsPerPageChange:I,disabled:_=!1,className:H="",showItemsPerPage:Z=!0,itemsPerPageOptions:w=[10,25,50,100]})=>{if(M<=0)return null;let T=Math.max(0,W),V=Math.max(1,$),O=Math.min(Math.max(b,1),M),q=T===0?0:(O-1)*V+1,g=T===0?0:Math.min(O*V,T),K=O>1&&!_,m=O<M&&!_,A=U1(O,M);return F(k,{align:"center",gap:"md",justify:"between",className:`sm:flex-row ${H}`,children:[R(k,{className:"order-2 text-base text-muted-foreground sm:order-1",children:F(f,{children:["Affichage de ",q," \xE0 ",g," sur ",T," r\xE9sultats"]})}),F(B,{align:"center",gap:"sm",className:"order-1 sm:order-2",children:[F(Y,{variant:"outline",size:"sm",onPress:()=>G(1),disabled:!K,accessibilityLabel:"Premi\xE8re page",className:"hidden h-8 w-8 p-0 sm:flex",children:[R(D1,{className:"h-4 w-4"}),R(f,{className:"sr-only",children:"Premi\xE8re page"})]}),F(Y,{variant:"outline",size:"sm",onPress:()=>G(O-1),disabled:!K,accessibilityLabel:"Page pr\xE9c\xE9dente",className:"h-8 w-8 p-0",children:[R(H1,{className:"h-4 w-4"}),R(f,{className:"sr-only",children:"Page pr\xE9c\xE9dente"})]}),R(B,{align:"center",gap:"xs",children:A.map((E)=>{if(typeof E!=="number")return R(B,{className:"px-2 py-1 text-muted-foreground",children:R(f,{children:"..."})},E);return R(Y,{variant:E===O?"default":"outline",size:"sm",onPress:()=>G(E),disabled:_,accessibilityLabel:`Page ${E}`,className:"h-8 min-w-8 px-2",children:R(f,{children:E})},E)})}),F(Y,{variant:"outline",size:"sm",onPress:()=>G(O+1),disabled:!m,accessibilityLabel:"Page suivante",className:"h-8 w-8 p-0",children:[R(O1,{className:"h-4 w-4"}),R(f,{className:"sr-only",children:"Page suivante"})]}),F(Y,{variant:"outline",size:"sm",onPress:()=>G(M),disabled:!m,accessibilityLabel:"Derni\xE8re page",className:"hidden h-8 w-8 p-0 sm:flex",children:[R(Q1,{className:"h-4 w-4"}),R(f,{className:"sr-only",children:"Derni\xE8re page"})]})]}),Z&&I&&F(B,{align:"center",gap:"sm",className:"order-3 text-base",children:[R(f,{className:"text-muted-foreground",children:"Afficher:"}),F(M0,{value:{value:$.toString(),label:$.toString()},onValueChange:(E)=>{let j=parseInt(E?.value??"",10);if(!Number.isNaN(j)&&j>0)I(j)},disabled:_,children:[R(W0,{className:"h-8 w-16",children:R(b0,{placeholder:"Afficher:"})}),R($0,{className:"bg-background",children:w.map((E)=>R(t,{value:E.toString(),label:E.toString(),children:E},E))})]})]})]})};import{cn as m0}from"@contractspec/lib.ui-kit-core/utils";import{TextInput as S1}from"react-native";import{jsx as B1}from"react/jsx-runtime";function N0({className:b,placeholderClassName:M,...W}){return B1(S1,{className:m0("web:flex h-10 native:h-12 web:w-full rounded-md border border-input bg-background px-3 web:py-2 native:text-lg text-base text-foreground native:leading-tight web:ring-offset-background file:border-0 file:bg-transparent file:font-medium placeholder:text-muted-foreground web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 lg:text-sm",W.editable===!1&&"web:cursor-not-allowed opacity-50",b),placeholderClassName:m0("text-muted-foreground",M),...W})}import{Search as u1,X as v1}from"lucide-react";import{View as S0}from"react-native";import{jsx as l,jsxs as P0}from"react/jsx-runtime";var B0=({value:b,onChange:M,placeholder:W="Rechercher...",onClear:$,disabled:G=!1,className:I=""})=>{let _=()=>{M(""),$?.()};return P0(S0,{className:`relative w-full ${I}`,children:[l(S0,{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",children:l(u1,{className:"h-4 w-4 text-muted-foreground"})}),l(N0,{value:b,onChange:(H)=>M(H.nativeEvent.text),placeholder:W,editable:!G,className:"pr-10 pl-10"}),b&&l(S0,{className:"absolute inset-y-0 right-0 flex items-center pr-3",children:P0(Y,{variant:"ghost",size:"sm",onPress:_,disabled:G,className:"h-6 w-6 p-0 hover:bg-transparent",children:[l(v1,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),l(f,{className:"sr-only",children:"Effacer la recherche"})]})})]})};import{cn as o}from"@contractspec/lib.ui-kit-core/utils";import{Text as g0,View as z0}from"react-native";import{jsx as P}from"react/jsx-runtime";function f0({className:b,...M}){return P(z0,{className:o("rounded-lg border border-border bg-card shadow-2xs shadow-foreground/10",b),...M})}function E8({className:b,...M}){return P(z0,{className:o("flex flex-col gap-y-1.5 p-6",b),...M})}function H8({className:b,...M}){return P(g0,{role:"heading","aria-level":3,className:o("font-semibold text-2xl text-card-foreground leading-none tracking-tight",b),...M})}function O8({className:b,...M}){return P(g0,{className:o("text-muted-foreground text-sm",b),...M})}function G0({className:b,...M}){return P(e.Provider,{value:"text-card-foreground",children:P(z0,{className:o("p-6 pt-0",b),...M})})}function D8({className:b,...M}){return P(z0,{className:o("flex flex-row items-center p-6 pt-0",b),...M})}import*as p from"@rn-primitives/collapsible";var A0=p.Root,h0=p.Trigger,C0=p.Content;import{cn as k1}from"@contractspec/lib.ui-kit-core/utils";import*as d0 from"@rn-primitives/separator";import{jsx as F1}from"react/jsx-runtime";function l0({className:b,orientation:M="horizontal",decorative:W=!0,...$}){return F1(d0.Root,{decorative:W,orientation:M,className:k1("shrink-0 bg-border",M==="horizontal"?"h-px w-full":"h-full w-px",b),...$})}import{ChevronDown as w1,ChevronUp as T1,Filter as y1}from"lucide-react";import{useState as L1}from"react";import{View as c}from"react-native";import{jsx as Q,jsxs as n}from"react/jsx-runtime";var u0=({searchValue:b,onSearchChange:M,searchPlaceholder:W,filters:$=[],isLoading:G=!1,disabled:I=!1,className:_="",collapsible:H=!0,defaultCollapsed:Z=!1})=>{let[w,T]=L1(Z),V=$.length>0,O=$.filter((K)=>K.value).length,q=H&&V,g=()=>Q(c,{className:"flex flex-col gap-4 sm:flex-row sm:flex-wrap",children:$.map((K)=>Q(Q0,{value:{value:K.value,label:K.value},options:K.options,onChange:K.onChange,label:K.label,disabled:I||G,showCounts:K.showCounts,className:"min-w-0"},K.key))});return n(c,{className:`flex flex-col gap-4 ${_}`,children:[n(c,{className:"flex flex-col gap-4 sm:flex-row",children:[Q(c,{className:"flex-1",children:Q(B0,{value:b,onChange:M,placeholder:W,disabled:I||G,className:"w-full"})}),q&&n(A0,{open:!w,onOpenChange:T,className:"sm:hidden",children:[Q(h0,{asChild:!0,children:n(Y,{variant:"outline",className:"sm:hidden",disabled:I||G,children:[Q(y1,{className:"mr-2 h-4 w-4"}),"Filtres",O>0&&Q(f,{className:"ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",children:O}),w?Q(w1,{className:"ml-2 h-4 w-4"}):Q(T1,{className:"ml-2 h-4 w-4"})]})}),Q(C0,{className:"mt-4 space-y-4",children:Q(g,{})})]})]}),V&&Q(c,{className:"hidden sm:flex",children:Q(g,{})}),O>0&&n(c,{className:"flex flex-wrap items-center gap-2",children:[Q(f,{className:"text-base text-muted-foreground",children:"Filtres actifs:"}),$.filter((K)=>K.value).map((K)=>{let m=K.options.find((A)=>A.value===K.value);return n(Y,{variant:"secondary",size:"sm",onPress:()=>K.onChange(void 0),disabled:I||G,className:"h-7 px-2 text-sm",children:[K.label,": ",m?.label,Q(f,{className:"ml-1",children:"\xD7"})]},K.key)})]})]})};import{AlertTriangle as V1,Loader2 as o0,Plus as x,RefreshCcw as p0}from"lucide-react";import{View as L}from"react-native";import{jsx as z,jsxs as J,Fragment as X0}from"react/jsx-runtime";function t8({title:b,description:M,header:W,items:$,totalItems:G,totalPages:I,isLoading:_,isFetching:H,error:Z,listState:w,searchPlaceholder:T,filters:V=[],onRefresh:O,primaryAction:q,toolbar:g,renderItem:K,renderEmpty:m,renderStats:A,className:E="",itemClassName:j="",linkComponent:c0}){let r=c0,{searchQuery:_0,setSearchQuery:n0,filters:q0,setFilter:x0,currentPage:j0,itemsPerPage:e0,setCurrentPage:t0,setItemsPerPage:r0}=w;if(_&&!$.length)return J(k,{className:`space-y-4 md:space-y-6 ${E}`,children:[W?W:J(k,{className:"gap-1",children:[z(f,{className:"font-bold text-2xl md:text-3xl",children:b}),M&&z(d,{className:"text-base text-muted-foreground",children:M})]}),z(L,{className:"flex min-h-[400px] items-center justify-center",children:z(f0,{children:J(G0,{className:"flex items-center gap-4 p-6",children:[z(o0,{className:"h-8 w-8 animate-spin text-primary"}),J(L,{children:[z(f,{className:"font-medium",children:"Chargement..."}),z(d,{className:"text-base text-muted-foreground",children:"R\xE9cup\xE9ration des donn\xE9es en cours"})]})]})})})]});if(Z&&!$.length)return J(k,{className:`space-y-4 md:space-y-6 ${E}`,children:[W?W:J(k,{className:"gap-1",children:[z(f,{className:"font-bold text-2xl md:text-3xl",children:b}),M&&z(d,{className:"text-base text-muted-foreground",children:M})]}),z(L,{className:"flex min-h-[400px] items-center justify-center",children:z(f0,{children:J(G0,{className:"flex flex-col items-center gap-4 p-6 text-center",children:[z(V1,{className:"h-12 w-12 text-destructive"}),J(L,{children:[z(f,{className:"font-medium",children:"Erreur de chargement"}),z(d,{className:"text-base text-muted-foreground",children:Z.message||"Une erreur est survenue"})]}),O&&J(Y,{onPress:O,variant:"outline",size:"sm",children:[z(p0,{className:"mr-2 h-4 w-4"}),"R\xE9essayer"]})]})})})]});let i0=V.map((U)=>({key:U.key,label:U.label,value:q0[U.key]||"",options:U.options,onChange:(I0)=>{x0(U.key,I0?.value||"")},showCounts:U.showCounts}));return J(k,{className:`space-y-4 md:space-y-6 ${E}`,children:[W?W:J(B,{className:"items-center justify-between",children:[J(k,{className:"gap-1",children:[z("h1",{className:"font-bold text-2xl md:text-3xl",children:b}),M&&z("p",{className:"text-base text-muted-foreground",children:M})]}),J(B,{className:"items-center gap-4",children:[g,(_||H)&&J("div",{className:"flex items-center gap-2 text-base text-muted-foreground",children:[z(o0,{className:"h-4 w-4 animate-spin"}),z(f,{className:"hidden sm:inline",children:"Mise \xE0 jour..."})]}),O&&J(Y,{variant:"outline",size:"sm",onPress:O,disabled:Boolean(_),"aria-label":"Rafra\xEEchir",children:[z(p0,{className:`mr-2 h-4 w-4 ${_||H?"animate-spin":""}`}),z(f,{className:"hidden sm:inline",children:"Rafra\xEEchir"})]}),q&&z(X0,{children:q.href?r?z(r,{href:q.href,children:J(Y,{children:[q.icon||z(x,{className:"mr-2 h-4 w-4"}),z(f,{className:"hidden sm:inline",children:q.label}),z(f,{className:"sm:hidden",children:"Nouveau"})]})}):J(Y,{onPress:q.onClick??void 0,children:[q.icon||z(x,{className:"mr-2 h-4 w-4"}),z(f,{className:"hidden sm:inline",children:q.label}),z(f,{className:"sm:hidden",children:"Nouveau"})]}):J(Y,{onPress:q.onClick,children:[q.icon||z(x,{className:"mr-2 h-4 w-4"}),z(f,{className:"hidden sm:inline",children:q.label}),z(f,{className:"sm:hidden",children:"Nouveau"})]})})]})]}),A&&J(X0,{children:[A($),z(l0,{})]}),z(u0,{searchValue:_0,onSearchChange:n0,searchPlaceholder:T,filters:i0,isLoading:_}),$.length===0&&!_?m?m():z(f0,{children:J(G0,{className:"flex flex-col items-center gap-4 p-8 text-center",children:[z(L,{className:"flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:z(L,{className:"h-6 w-6 rounded-full bg-muted-foreground/20"})}),J(L,{children:[z(f,{className:"font-medium",children:"Aucun \xE9l\xE9ment trouv\xE9"}),z(d,{className:"text-base text-muted-foreground",children:_0||Object.values(q0).some((U)=>U)?"Essayez de modifier vos crit\xE8res de recherche":"Commencez par cr\xE9er votre premier \xE9l\xE9ment"})]}),q&&!_0&&!Object.values(q0).some((U)=>U)&&z(X0,{children:q.href?r?z(r,{href:q.href,children:J(Y,{children:[q.icon||z(x,{className:"mr-2 h-4 w-4"}),q.label]})}):J(Y,{onPress:q.onClick??void 0,children:[q.icon||z(x,{className:"mr-2 h-4 w-4"}),q.label]}):J(Y,{onPress:q.onClick,children:[q.icon||z(x,{className:"mr-2 h-4 w-4"}),q.label]})})]})}):J(X0,{children:[z(L,{className:`space-y-4 ${j}`,children:$.map((U,I0)=>K(U,I0))}),I>1&&z(U0,{currentPage:j0,totalPages:I,totalItems:G,itemsPerPage:e0,onPageChange:t0,onItemsPerPageChange:r0,disabled:_})]})]})}export{t8 as ListPage};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { SharedListPageProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import type { FilterOption } from '../../atoms/FilterSelect';
|
|
4
|
+
import type { UseListStateReturn } from '../../useListState';
|
|
5
|
+
/** Injectable link component for navigation. Pass Next.js Link (web) or expo-router Link (mobile). */
|
|
6
|
+
export type ListPageLinkComponent = React.ComponentType<{
|
|
7
|
+
href: string;
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
}>;
|
|
10
|
+
export interface ListPageFilter {
|
|
11
|
+
key: string;
|
|
12
|
+
label: string;
|
|
13
|
+
options: FilterOption[];
|
|
14
|
+
showCounts?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export interface ListPageProps<T = unknown> extends SharedListPageProps<T> {
|
|
17
|
+
title: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
header?: ReactNode;
|
|
20
|
+
items: T[];
|
|
21
|
+
totalItems: number;
|
|
22
|
+
totalPages: number;
|
|
23
|
+
isLoading: boolean;
|
|
24
|
+
isFetching?: boolean;
|
|
25
|
+
error?: Error | null;
|
|
26
|
+
listState: UseListStateReturn;
|
|
27
|
+
searchPlaceholder?: string;
|
|
28
|
+
filters?: ListPageFilter[];
|
|
29
|
+
onRefresh?: () => void;
|
|
30
|
+
primaryAction?: {
|
|
31
|
+
label: string;
|
|
32
|
+
href?: string;
|
|
33
|
+
onClick?: () => void;
|
|
34
|
+
icon?: ReactNode;
|
|
35
|
+
};
|
|
36
|
+
toolbar?: ReactNode;
|
|
37
|
+
renderItem: (item: T, index: number) => ReactNode;
|
|
38
|
+
renderEmpty?: () => ReactNode;
|
|
39
|
+
renderStats?: (items: T[]) => ReactNode;
|
|
40
|
+
className?: string;
|
|
41
|
+
itemClassName?: string;
|
|
42
|
+
/** Required when primaryAction.href is used. Pass Next.js Link (web) or expo-router Link (mobile). */
|
|
43
|
+
linkComponent?: ListPageLinkComponent;
|
|
44
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SharedPageHeaderProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const headerVariants: (props?: ({
|
|
4
|
+
spacing?: "sm" | "lg" | "md" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface PageHeaderProps extends SharedPageHeaderProps, VariantProps<typeof headerVariants> {
|
|
7
|
+
}
|
|
8
|
+
export declare function PageHeader({ breadcrumb, title, subtitle, actions, spacing, className, }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as v}from"@contractspec/lib.ui-kit-core/utils";import*as P from"@rn-primitives/slot";import*as W from"react";import{Text as S}from"react-native";import{jsx as y}from"react/jsx-runtime";var w=W.createContext(void 0);function E({className:z,asChild:A=!1,...q}){let D=W.useContext(w);return y(A?P.Text:S,{className:v("web:select-text text-base text-foreground",D,z),...q})}import{cn as Y}from"@contractspec/lib.ui-kit-core/utils";import{cva as Z}from"class-variance-authority";import{View as _}from"react-native";import{jsx as R}from"react/jsx-runtime";var $="flex",k=Z([$,"flex-col"],{variants:{spacing:{none:"",xs:"gap-y-1",sm:"gap-y-2",md:"gap-y-4",lg:"gap-y-6",xl:"gap-y-8","2xl":"gap-y-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"}},defaultVariants:{spacing:"md",align:"stretch",justify:"start",width:"auto",padding:"none",gap:"none"}}),T=Z([$,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"start",width:"auto",padding:"none",gap:"none",wrap:"wrap"}}),b=Z([$,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"center",width:"auto",padding:"none",gap:"none",wrap:"wrap"}});function n({className:z,spacing:A,align:q,justify:D,width:J,padding:K,gap:O,wrap:U,...X}){return R(_,{className:Y(b({spacing:A,align:q,justify:D,width:J,padding:K,gap:O,wrap:U}),z),...X})}function M({className:z,spacing:A,align:q,justify:D,width:J,padding:K,gap:O,wrap:U,...X}){return R(_,{className:Y(T({spacing:A,align:q,justify:D,width:J,padding:K,gap:O,wrap:U}),z),...X})}function Q({className:z,spacing:A,align:q,justify:D,width:J,padding:K,gap:O,...U}){return R(_,{className:Y(k({spacing:A,align:q,justify:D,width:J,padding:K,gap:O}),z),...U})}import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import*as F from"@rn-primitives/slot";import{Platform as f}from"react-native";import{jsx as I}from"react/jsx-runtime";function H({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{role:"heading","aria-level":"1",className:G("web:select-text web:scroll-m-20 font-extrabold text-4xl text-foreground tracking-tight lg:text-5xl",z),...q})}function i({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{role:"heading","aria-level":"2",className:G("web:select-text web:scroll-m-20 border-border border-b pb-2 font-semibold text-3xl text-foreground tracking-tight first:mt-0",z),...q})}function t({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{role:"heading","aria-level":"3",className:G("web:select-text web:scroll-m-20 font-semibold text-2xl text-foreground tracking-tight",z),...q})}function a({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{role:"heading","aria-level":"4",className:G("web:select-text web:scroll-m-20 font-semibold text-foreground text-xl tracking-tight",z),...q})}function V({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{className:G("web:select-text text-base text-foreground",z),...q})}function s({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{role:f.OS==="web"?"blockquote":void 0,className:G("mt-6 native:mt-4 web:select-text border-border border-l-2 native:pl-3 pl-6 text-base text-foreground italic",z),...q})}function qq({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{role:f.OS==="web"?"code":void 0,className:G("relative web:select-text rounded-md bg-muted px-[0.3rem] py-[0.2rem] font-semibold text-foreground text-sm",z),...q})}function zq({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{className:G("web:select-text text-muted-foreground text-xl",z),...q})}function Aq({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{className:G("web:select-text font-semibold text-foreground text-xl",z),...q})}function Dq({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{className:G("web:select-text font-medium text-foreground text-sm leading-none",z),...q})}function Eq({className:z,asChild:A=!1,...q}){return I(A?F.Text:E,{className:G("web:select-text text-muted-foreground text-sm",z),...q})}import{cn as g}from"@contractspec/lib.ui-kit-core/utils";import{cva as u}from"class-variance-authority";import{jsx as B,jsxs as L}from"react/jsx-runtime";var C=u("",{variants:{spacing:{sm:"gap-1",md:"gap-2",lg:"gap-3"}},defaultVariants:{spacing:"md"}});function Uq({breadcrumb:z,title:A,subtitle:q,actions:D,spacing:J,className:K}){return L(Q,{className:g(C({spacing:J}),K),children:[z,L(M,{className:"items-start justify-between",children:[L(Q,{className:"gap-1",children:[B(H,{className:"font-semibold text-2xl md:text-3xl",children:A}),q?B(V,{className:"text-base text-muted-foreground",children:q}):null]}),D?B(M,{className:"flex items-center gap-2",children:D}):null]})]})}export{Uq as PageHeader};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
export declare const passwordSchema: z.ZodString;
|
|
3
|
+
export declare function getPasswordStrength(password: string): {
|
|
4
|
+
score: number;
|
|
5
|
+
feedback: string[];
|
|
6
|
+
isValid: boolean;
|
|
7
|
+
};
|
|
8
|
+
interface PasswordStrengthProps {
|
|
9
|
+
password: string;
|
|
10
|
+
showFeedback?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function PasswordStrength({ password, showFeedback, }: PasswordStrengthProps): import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as O}from"@contractspec/lib.ui-kit-core/utils";import*as A from"@rn-primitives/slot";import*as g from"react";import{Text as T}from"react-native";import{jsx as q}from"react/jsx-runtime";var V=g.createContext(void 0);function a({className:t,asChild:o=!1,...e}){let n=g.useContext(V);return q(o?A.Text:T,{className:O("web:select-text text-base text-foreground",n,t),...e})}import{cn as c}from"@contractspec/lib.ui-kit-core/utils";import{cva as k}from"class-variance-authority";import{View as S}from"react-native";import{jsx as z}from"react/jsx-runtime";var N="flex",w=k([N,"flex-col"],{variants:{spacing:{none:"",xs:"gap-y-1",sm:"gap-y-2",md:"gap-y-4",lg:"gap-y-6",xl:"gap-y-8","2xl":"gap-y-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"}},defaultVariants:{spacing:"md",align:"stretch",justify:"start",width:"auto",padding:"none",gap:"none"}}),F=k([N,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"start",width:"auto",padding:"none",gap:"none",wrap:"wrap"}}),M=k([N,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"center",width:"auto",padding:"none",gap:"none",wrap:"wrap"}});function K({className:t,spacing:o,align:e,justify:n,width:m,padding:f,gap:l,wrap:r,...s}){return z(S,{className:c(M({spacing:o,align:e,justify:n,width:m,padding:f,gap:l,wrap:r}),t),...s})}function h({className:t,spacing:o,align:e,justify:n,width:m,padding:f,gap:l,wrap:r,...s}){return z(S,{className:c(F({spacing:o,align:e,justify:n,width:m,padding:f,gap:l,wrap:r}),t),...s})}function P({className:t,spacing:o,align:e,justify:n,width:m,padding:f,gap:l,...r}){return z(S,{className:c(w({spacing:o,align:e,justify:n,width:m,padding:f,gap:l}),t),...r})}import{View as b}from"react-native";import*as H from"zod";import{jsx as u,jsxs as d}from"react/jsx-runtime";var W=H.string().min(8,"Password must be at least 8 characters").max(128,"Password is too long").regex(/(?=.*[a-z])/,"Password must contain at least one lowercase letter").regex(/(?=.*[A-Z])/,"Password must contain at least one uppercase letter").regex(/(?=.*\d)/,"Password must contain at least one number");function Z(t){let o=[],e=0;if(t.length>=8)e+=1;else o.push("At least 8 characters");if(/[a-z]/.test(t))e+=1;else o.push("One lowercase letter");if(/[A-Z]/.test(t))e+=1;else o.push("One uppercase letter");if(/\d/.test(t))e+=1;else o.push("One number");if(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/.test(t))e+=1;if(t.length>=12)e+=1;let n=W.safeParse(t).success;return{score:Math.min(e,5),feedback:o,isValid:n}}function Y({password:t,showFeedback:o=!0}){let{score:e,feedback:n,isValid:m}=Z(t);if(!t)return null;let f=(r)=>{if(r<=1)return"#ef4444";if(r<=2)return"#f97316";if(r<=3)return"#eab308";if(r<=4)return"#22c55e";return"#16a34a"},l=(r)=>{if(r<=1)return"Very Weak";if(r<=2)return"Weak";if(r<=3)return"Fair";if(r<=4)return"Good";return"Strong"};return d(P,{className:"gap-y-2",children:[d(P,{className:"gap-y-1",children:[d(h,{className:"items-center justify-between",children:[u(a,{className:"text-muted-foreground text-xs",children:"Password Strength"}),u(a,{className:"font-medium text-xs",style:{color:f(e)},children:l(e)})]}),u(b,{className:"h-2 overflow-hidden rounded-full bg-gray-200",children:u(b,{className:"h-full rounded-full transition-all duration-300",style:{width:`${e/5*100}%`,backgroundColor:f(e)}})})]}),o&&n.length>0&&d(P,{className:"gap-y-1",children:[u(a,{className:"text-muted-foreground text-xs",children:"Required:"}),n.map((r,s)=>d(h,{className:"items-center gap-x-2",children:[u(b,{className:"h-1 w-1 rounded-full bg-muted-foreground"}),u(a,{className:"text-muted-foreground text-xs",children:r})]},s))]}),m&&d(h,{className:"items-center gap-x-2",children:[u(b,{className:"h-2 w-2 rounded-full bg-green-500"}),u(a,{className:"text-green-600 text-xs",children:"Meets requirements"})]})]})}export{W as passwordSchema,Z as getPasswordStrength,Y as PasswordStrength};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as PopoverPrimitive from '@rn-primitives/popover';
|
|
2
|
+
declare const Popover: {
|
|
3
|
+
({ asChild, onOpenChange: onOpenChangeProp, ref, ...viewProps }: import("react-native").ViewProps & {
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
} & {
|
|
6
|
+
onOpenChange?: (open: boolean) => void;
|
|
7
|
+
} & import("react").RefAttributes<import("react-native").View>): React.JSX.Element;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
10
|
+
declare const PopoverTrigger: {
|
|
11
|
+
({ asChild, onPress: onPressProp, disabled, ref, ...props }: Omit<import("react-native").PressableProps & import("react").RefAttributes<import("react-native").View>, "ref"> & {
|
|
12
|
+
asChild?: boolean;
|
|
13
|
+
} & {
|
|
14
|
+
onKeyDown?: (ev: React.KeyboardEvent) => void;
|
|
15
|
+
onKeyUp?: (ev: React.KeyboardEvent) => void;
|
|
16
|
+
} & import("react").RefAttributes<import("@rn-primitives/popover").TriggerRef>): React.JSX.Element;
|
|
17
|
+
displayName: string;
|
|
18
|
+
};
|
|
19
|
+
declare function PopoverContent({ className, align, sideOffset, portalHost, ...props }: PopoverPrimitive.ContentProps & {
|
|
20
|
+
ref?: React.RefObject<PopoverPrimitive.ContentRef>;
|
|
21
|
+
portalHost?: string;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export { Popover, PopoverContent, PopoverTrigger };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as M}from"@contractspec/lib.ui-kit-core/utils";import*as L from"@rn-primitives/slot";import*as z from"react";import{Text as Q}from"react-native";import{jsx as U}from"react/jsx-runtime";var J=z.createContext(void 0);function A({className:B,asChild:D=!1,...E}){let G=z.useContext(J);return U(D?L.Text:Q,{className:M("web:select-text text-base text-foreground",G,B),...E})}import{cn as V}from"@contractspec/lib.ui-kit-core/utils";import*as q from"@rn-primitives/popover";import{Platform as W,StyleSheet as X}from"react-native";import Y,{FadeIn as Z,FadeOut as _}from"react-native-reanimated";import{jsx as w}from"react/jsx-runtime";var S=q.Root,h=q.Trigger;function O({className:B,align:D="center",sideOffset:E=4,portalHost:G,...K}){return w(q.Portal,{hostName:G,children:w(q.Overlay,{style:W.OS!=="web"?X.absoluteFill:void 0,children:w(Y.View,{entering:Z.duration(200),exiting:_,children:w(J.Provider,{value:"text-popover-foreground",children:w(q.Content,{align:D,sideOffset:E,className:V("web:fade-in-0 web:zoom-in-95 web:data-[side=bottom]:slide-in-from-top-2 web:data-[side=left]:slide-in-from-right-2 web:data-[side=right]:slide-in-from-left-2 web:data-[side=top]:slide-in-from-bottom-2 z-50 w-72 web:animate-in web:cursor-auto rounded-md border border-border bg-popover p-4 shadow-foreground/5 shadow-md web:outline-hidden",B),...K})})})})})}export{h as PopoverTrigger,O as PopoverContent,S as Popover};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Portal, PortalHost, useModalPortalRoot, } from '@rn-primitives/portal';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as ProgressPrimitive from '@rn-primitives/progress';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function Progress({ className, value, indicatorClassName, ...props }: ProgressPrimitive.RootProps & {
|
|
4
|
+
ref?: React.RefObject<ProgressPrimitive.RootRef>;
|
|
5
|
+
indicatorClassName?: string;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export { Progress };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import*as B from"@rn-primitives/progress";import{Platform as K,View as L}from"react-native";import M,{Extrapolation as O,interpolate as Q,useAnimatedStyle as R,useDerivedValue as T,withSpring as U}from"react-native-reanimated";import{jsx as q}from"react/jsx-runtime";function _({className:F,value:z,indicatorClassName:H,...J}){return q(B.Root,{className:G("relative h-4 w-full overflow-hidden rounded-full bg-secondary",F),...J,children:q(W,{value:z,className:H})})}function W({value:F,className:z}){let H=T(()=>F??0),J=R(()=>{return{width:U(`${Q(H.value,[0,100],[1,100],O.CLAMP)}%`,{overshootClamping:!0})}});if(K.OS==="web")return q(L,{className:G("h-full w-full flex-1 bg-primary web:transition-all",z),style:{transform:`translateX(-${100-(F??0)}%)`},children:q(B.Indicator,{className:G("h-full w-full",z)})});return q(B.Indicator,{asChild:!0,children:q(M.View,{style:J,className:G("h-full bg-foreground",z)})})}export{_ as Progress};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as RadioGroupPrimitive from '@rn-primitives/radio-group';
|
|
2
|
+
declare function RadioGroup({ className, ...props }: RadioGroupPrimitive.RootProps & React.RefAttributes<RadioGroupPrimitive.RootRef>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function RadioGroupItem({ className, ...props }: RadioGroupPrimitive.ItemProps & React.RefAttributes<RadioGroupPrimitive.ItemRef>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { RadioGroup, RadioGroupItem };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as z}from"@contractspec/lib.ui-kit-core/utils";import*as h from"@rn-primitives/radio-group";import{Platform as A}from"react-native";import{jsx as y}from"react/jsx-runtime";function D({className:w,...q}){return y(h.Root,{className:z("gap-3",w),...q})}function E({className:w,...q}){return y(h.Item,{className:z("aspect-square size-4 shrink-0 items-center justify-center rounded-full border border-input shadow-2xs shadow-black/5 dark:bg-input/30",A.select({web:"outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40"}),q.disabled&&"opacity-50",w),...q,children:y(h.Indicator,{className:"size-2 rounded-full bg-primary"})})}export{E as RadioGroupItem,D as RadioGroup};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import * as SelectPrimitive from '@rn-primitives/select';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
type Option = SelectPrimitive.Option;
|
|
5
|
+
declare const Select: {
|
|
6
|
+
({ asChild, value: valueProp, defaultValue, onValueChange: onValueChangeProp, onOpenChange: onOpenChangeProp, disabled, ref, ...viewProps }: import("react-native").ViewProps & {
|
|
7
|
+
asChild?: boolean;
|
|
8
|
+
} & {
|
|
9
|
+
value?: import("@rn-primitives/select").Option;
|
|
10
|
+
defaultValue?: import("@rn-primitives/select").Option;
|
|
11
|
+
onValueChange?: (option: import("@rn-primitives/select").Option) => void;
|
|
12
|
+
onOpenChange?: (open: boolean) => void;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
dir?: "ltr" | "rtl";
|
|
15
|
+
name?: string;
|
|
16
|
+
required?: boolean;
|
|
17
|
+
} & React.RefAttributes<View>): React.JSX.Element;
|
|
18
|
+
displayName: string;
|
|
19
|
+
};
|
|
20
|
+
declare const SelectGroup: {
|
|
21
|
+
({ asChild, ref, ...props }: import("react-native").ViewProps & {
|
|
22
|
+
asChild?: boolean;
|
|
23
|
+
} & React.RefAttributes<View>): React.JSX.Element;
|
|
24
|
+
displayName: string;
|
|
25
|
+
};
|
|
26
|
+
declare const SelectValue: {
|
|
27
|
+
({ asChild, placeholder, ref, ...props }: import("react-native").TextProps & {
|
|
28
|
+
asChild?: boolean;
|
|
29
|
+
} & {
|
|
30
|
+
placeholder: string;
|
|
31
|
+
} & React.RefAttributes<import("react-native").Text>): React.JSX.Element;
|
|
32
|
+
displayName: string;
|
|
33
|
+
};
|
|
34
|
+
declare function SelectTrigger({ ref, className, children, ...props }: SelectPrimitive.TriggerProps & {
|
|
35
|
+
ref?: React.RefObject<SelectPrimitive.TriggerRef>;
|
|
36
|
+
children?: React.ReactNode;
|
|
37
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
38
|
+
/**
|
|
39
|
+
* Platform: WEB ONLY
|
|
40
|
+
*/
|
|
41
|
+
declare function SelectScrollUpButton({ className, ...props }: SelectPrimitive.ScrollUpButtonProps): import("react/jsx-runtime").JSX.Element | null;
|
|
42
|
+
/**
|
|
43
|
+
* Platform: WEB ONLY
|
|
44
|
+
*/
|
|
45
|
+
declare function SelectScrollDownButton({ className, ...props }: SelectPrimitive.ScrollDownButtonProps): import("react/jsx-runtime").JSX.Element | null;
|
|
46
|
+
declare function SelectContent({ className, children, position, portalHost, ...props }: SelectPrimitive.ContentProps & {
|
|
47
|
+
ref?: React.RefObject<SelectPrimitive.ContentRef>;
|
|
48
|
+
className?: string;
|
|
49
|
+
portalHost?: string;
|
|
50
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
declare function SelectLabel({ className, ...props }: SelectPrimitive.LabelProps & {
|
|
52
|
+
ref?: React.RefObject<SelectPrimitive.LabelRef>;
|
|
53
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
declare function SelectItem({ className, children, ...props }: SelectPrimitive.ItemProps & {
|
|
55
|
+
ref?: React.RefObject<SelectPrimitive.ItemRef>;
|
|
56
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
57
|
+
declare function SelectSeparator({ className, ...props }: SelectPrimitive.SeparatorProps & {
|
|
58
|
+
ref?: React.RefObject<SelectPrimitive.SeparatorRef>;
|
|
59
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export { type Option, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{styled as Y}from"nativewind";function q(W){Y(W,{className:{target:"style",nativeStyleMapping:{color:!0,opacity:!0}}})}import{ChevronDown as E}from"lucide-react-native";q(E);import{Check as I}from"lucide-react-native";q(I);import{ChevronUp as J}from"lucide-react-native";q(J);import{cn as g}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@rn-primitives/select";import{Platform as K,StyleSheet as Z,View as _}from"react-native";import $,{FadeIn as m,FadeOut as A}from"react-native-reanimated";import{jsx as y,jsxs as Q}from"react/jsx-runtime";var N=f.Root,x=f.Group,S=f.Value;function j({ref:W,className:L,children:M,...z}){return Q(f.Trigger,{ref:W,className:g("flex h-10 native:h-12 flex-row items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-muted-foreground text-sm web:ring-offset-background web:focus:outline-hidden web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 [&>span]:line-clamp-1",z.disabled&&"web:cursor-not-allowed opacity-50",L),...z,children:[M,y(E,{size:16,"aria-hidden":!0,className:"text-foreground opacity-50"})]})}function C({className:W,...L}){if(K.OS!=="web")return null;return y(f.ScrollUpButton,{className:g("flex web:cursor-default items-center justify-center py-1",W),...L,children:y(J,{size:14,className:"text-foreground"})})}function G({className:W,...L}){if(K.OS!=="web")return null;return y(f.ScrollDownButton,{className:g("flex web:cursor-default items-center justify-center py-1",W),...L,children:y(E,{size:14,className:"text-foreground"})})}function r({className:W,children:L,position:M="popper",portalHost:z,...R}){let{open:X}=f.useRootContext();return y(f.Portal,{hostName:z,children:y(f.Overlay,{style:K.OS!=="web"?Z.absoluteFill:void 0,children:y($.View,{className:"z-50",entering:m,exiting:A,children:Q(f.Content,{className:g("data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-32 rounded-md border border-border bg-popover px-1 py-2 shadow-foreground/10 shadow-md",M==="popper"&&"data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",X?"web:fade-in-0 web:zoom-in-95 web:animate-in":"web:fade-out-0 web:zoom-out-95 web:animate-out",W),position:M,...R,children:[y(C,{}),y(f.Viewport,{className:g("p-1",M==="popper"&&"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width)"),children:L}),y(G,{})]})})})})}function t({className:W,...L}){return y(f.Label,{className:g("py-1.5 pr-2 native:pb-2 native:pl-10 pl-8 font-semibold native:text-base text-popover-foreground text-sm",W),...L})}function o({className:W,children:L,...M}){return Q(f.Item,{className:g("web:group relative flex w-full web:cursor-default web:select-none flex-row items-center rounded-xs native:py-2 py-1.5 pr-2 native:pl-10 pl-8 web:outline-hidden web:hover:bg-accent/50 web:focus:bg-accent active:bg-accent",M.disabled&&"web:pointer-events-none opacity-50",W),...M,children:[y(_,{className:"absolute left-2 native:left-3.5 flex h-3.5 w-3.5 items-center justify-center native:pt-px",children:y(f.ItemIndicator,{children:y(I,{size:16,strokeWidth:3,className:"text-popover-foreground"})})}),y(f.ItemText,{className:"native:text-base native:text-lg text-popover-foreground text-sm web:group-focus:text-accent-foreground"})]})}function n({className:W,...L}){return y(f.Separator,{className:g("-mx-1 my-1 h-px bg-muted",W),...L})}export{S as SelectValue,j as SelectTrigger,n as SelectSeparator,C as SelectScrollUpButton,G as SelectScrollDownButton,t as SelectLabel,o as SelectItem,x as SelectGroup,r as SelectContent,N as Select};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as SeparatorPrimitive from '@rn-primitives/separator';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function Separator({ className, orientation, decorative, ...props }: SeparatorPrimitive.RootProps & {
|
|
4
|
+
ref?: React.RefObject<SeparatorPrimitive.RootRef>;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { Separator };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as y}from"@contractspec/lib.ui-kit-core/utils";import*as g from"@rn-primitives/separator";import{jsx as z}from"react/jsx-runtime";function B({className:h,orientation:f="horizontal",decorative:q=!0,...w}){return z(g.Root,{decorative:q,orientation:f,className:y("shrink-0 bg-border",f==="horizontal"?"h-px w-full":"h-full w-px",h),...w})}export{B as Separator};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const sheet = "null";
|
package/dist/ui/sheet.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const sidebar = "null";
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import*as C from"react";import H,{useAnimatedStyle as I,useSharedValue as J,withRepeat as K,withSequence as L,withTiming as z}from"react-native-reanimated";import{jsx as M}from"react/jsx-runtime";var B=1000;function Q({className:D,...E}){let f=J(1);C.useEffect(()=>{f.value=K(L(z(0.5,{duration:B}),z(1,{duration:B})),-1)},[]);let F=I(()=>({opacity:f.value}));return M(H.View,{style:F,className:G("rounded-md bg-secondary dark:bg-muted",D),...E})}export{Q as Skeleton};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as SliderPrimitive from '@rn-primitives/slider';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
type SliderProps = SliderPrimitive.RootProps & {
|
|
4
|
+
ref?: React.RefObject<SliderPrimitive.RootRef>;
|
|
5
|
+
};
|
|
6
|
+
declare function Slider({ className, ...props }: SliderProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export { Slider };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as w}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@rn-primitives/slider";import{jsx as g,jsxs as y}from"react/jsx-runtime";function A({className:h,...q}){return y(f.Root,{className:w("relative flex w-full flex-row items-center data-[disabled]:opacity-50",h),...q,children:[g(f.Track,{className:"relative h-1.5 flex-1 overflow-hidden rounded-full bg-muted",children:g(f.Range,{className:"absolute h-full rounded-full bg-primary"})}),g(f.Thumb,{className:"ml-[-8] h-4 w-4 rounded-full border border-primary bg-background"})]})}export{A as Slider};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import type { ViewProps } from 'react-native';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
declare const vStackVariants: (props?: ({
|
|
6
|
+
spacing?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | "2xl" | null | undefined;
|
|
7
|
+
align?: "center" | "end" | "start" | "stretch" | null | undefined;
|
|
8
|
+
justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
|
|
9
|
+
width?: "auto" | "screen" | "full" | "fit" | null | undefined;
|
|
10
|
+
padding?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
|
|
11
|
+
gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
declare const hStackVariants: (props?: ({
|
|
14
|
+
spacing?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | "2xl" | null | undefined;
|
|
15
|
+
align?: "center" | "end" | "start" | "stretch" | "baseline" | null | undefined;
|
|
16
|
+
justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
|
|
17
|
+
width?: "auto" | "screen" | "full" | "fit" | null | undefined;
|
|
18
|
+
padding?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
|
|
19
|
+
gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
|
|
20
|
+
wrap?: "reverse" | "wrap" | "nowrap" | null | undefined;
|
|
21
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
22
|
+
declare const boxVariants: (props?: ({
|
|
23
|
+
spacing?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | "2xl" | null | undefined;
|
|
24
|
+
align?: "center" | "end" | "start" | "stretch" | "baseline" | null | undefined;
|
|
25
|
+
justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
|
|
26
|
+
width?: "auto" | "screen" | "full" | "fit" | null | undefined;
|
|
27
|
+
padding?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
|
|
28
|
+
gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined;
|
|
29
|
+
wrap?: "reverse" | "wrap" | "nowrap" | null | undefined;
|
|
30
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
31
|
+
type BoxProps = ViewProps & VariantProps<typeof boxVariants> & {
|
|
32
|
+
ref?: React.RefObject<React.ComponentRef<typeof View>>;
|
|
33
|
+
};
|
|
34
|
+
type VStackProps = ViewProps & VariantProps<typeof vStackVariants> & {
|
|
35
|
+
ref?: React.RefObject<React.ComponentRef<typeof View>>;
|
|
36
|
+
};
|
|
37
|
+
type HStackProps = ViewProps & VariantProps<typeof hStackVariants> & {
|
|
38
|
+
ref?: React.RefObject<React.ComponentRef<typeof View>>;
|
|
39
|
+
};
|
|
40
|
+
declare function Box({ className, spacing, align, justify, width, padding, gap, wrap, ...props }: BoxProps): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
declare function HStack({ className, spacing, align, justify, width, padding, gap, wrap, ...props }: HStackProps): import("react/jsx-runtime").JSX.Element;
|
|
42
|
+
declare function VStack({ className, spacing, align, justify, width, padding, gap, ...props }: VStackProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
export { Box, type BoxProps, HStack, type HStackProps, VStack, type VStackProps, };
|
package/dist/ui/stack.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as J}from"@contractspec/lib.ui-kit-core/utils";import{cva as K}from"class-variance-authority";import{View as L}from"react-native";import{jsx as O}from"react/jsx-runtime";var M="flex",P=K([M,"flex-col"],{variants:{spacing:{none:"",xs:"gap-y-1",sm:"gap-y-2",md:"gap-y-4",lg:"gap-y-6",xl:"gap-y-8","2xl":"gap-y-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"}},defaultVariants:{spacing:"md",align:"stretch",justify:"start",width:"auto",padding:"none",gap:"none"}}),Q=K([M,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"start",width:"auto",padding:"none",gap:"none",wrap:"wrap"}}),R=K([M,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"center",width:"auto",padding:"none",gap:"none",wrap:"wrap"}});function X({className:q,spacing:z,align:A,justify:C,width:D,padding:E,gap:F,wrap:G,...I}){return O(L,{className:J(R({spacing:z,align:A,justify:C,width:D,padding:E,gap:F,wrap:G}),q),...I})}function Y({className:q,spacing:z,align:A,justify:C,width:D,padding:E,gap:F,wrap:G,...I}){return O(L,{className:J(Q({spacing:z,align:A,justify:C,width:D,padding:E,gap:F,wrap:G}),q),...I})}function Z({className:q,spacing:z,align:A,justify:C,width:D,padding:E,gap:F,...G}){return O(L,{className:J(P({spacing:z,align:A,justify:C,width:D,padding:E,gap:F}),q),...G})}export{Z as VStack,Y as HStack,X as Box};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { SharedStepperProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const dotVariants: (props?: ({
|
|
4
|
+
state?: "active" | "inactive" | null | undefined;
|
|
5
|
+
size?: "sm" | "md" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export interface StepperProps extends SharedStepperProps, VariantProps<typeof dotVariants> {
|
|
8
|
+
}
|
|
9
|
+
export declare function Stepper({ current, total, size, className }: StepperProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import{cva as L}from"class-variance-authority";import{View as M}from"react-native";import{jsx as P}from"react/jsx-runtime";var O="flex",U=L([O,"flex-col"],{variants:{spacing:{none:"",xs:"gap-y-1",sm:"gap-y-2",md:"gap-y-4",lg:"gap-y-6",xl:"gap-y-8","2xl":"gap-y-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"}},defaultVariants:{spacing:"md",align:"stretch",justify:"start",width:"auto",padding:"none",gap:"none"}}),W=L([O,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"start",width:"auto",padding:"none",gap:"none",wrap:"wrap"}}),X=L([O,"flex-row"],{variants:{spacing:{none:"",xs:"gap-x-1",sm:"gap-x-2",md:"gap-x-4",lg:"gap-x-6",xl:"gap-x-8","2xl":"gap-x-12"},align:{stretch:"items-stretch",start:"items-start",center:"items-center",end:"items-end",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},width:{auto:"w-auto",full:"w-full",screen:"w-screen",fit:"w-fit"},padding:{none:"",xs:"p-1",sm:"p-2",md:"p-4",lg:"p-6",xl:"p-8"},gap:{none:"",xs:"gap-1",sm:"gap-2",md:"gap-4",lg:"gap-6",xl:"gap-8"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",reverse:"flex-wrap-reverse"}},defaultVariants:{spacing:"md",align:"center",justify:"center",width:"auto",padding:"none",gap:"none",wrap:"wrap"}});function H({className:A,spacing:C,align:D,justify:E,width:F,padding:G,gap:q,wrap:I,...J}){return P(M,{className:K(X({spacing:C,align:D,justify:E,width:F,padding:G,gap:q,wrap:I}),A),...J})}function Q({className:A,spacing:C,align:D,justify:E,width:F,padding:G,gap:q,wrap:I,...J}){return P(M,{className:K(W({spacing:C,align:D,justify:E,width:F,padding:G,gap:q,wrap:I}),A),...J})}function b({className:A,spacing:C,align:D,justify:E,width:F,padding:G,gap:q,...I}){return P(M,{className:K(U({spacing:C,align:D,justify:E,width:F,padding:G,gap:q}),A),...I})}import{cn as R}from"@contractspec/lib.ui-kit-core/utils";import{cva as Y}from"class-variance-authority";import{View as Z}from"react-native";import{jsx as T}from"react/jsx-runtime";var _=Y("h-2 w-2 rounded-full",{variants:{state:{active:"bg-primary",inactive:"bg-muted-foreground/20"},size:{sm:"",md:"h-2.5 w-2.5"}},defaultVariants:{state:"inactive",size:"md"}});function V({current:A,total:C,size:D,className:E}){let F=Array.from({length:Math.max(0,C)});return T(Q,{className:R("items-center gap-2",E),children:F.map((G,q)=>T(Z,{className:R(_({state:q+1===A?"active":"inactive",size:D}))},q))})}export{V as Stepper};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as SwitchPrimitives from '@rn-primitives/switch';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function SwitchNative({ className, ...props }: SwitchPrimitives.RootProps & {
|
|
4
|
+
ref?: React.RefObject<SwitchPrimitives.RootRef>;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare const Switch: typeof SwitchNative;
|
|
7
|
+
export { Switch };
|