@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,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{useColorScheme as K}from"nativewind";var L="light";function M(){let{colorScheme:E,setColorScheme:C,toggleColorScheme:D}=K();return{colorScheme:E??L,isDarkColorScheme:E==="dark",setColorScheme:C,toggleColorScheme:D}}import{cn as k}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@rn-primitives/switch";import{Platform as Q}from"react-native";import U,{interpolateColor as Y,useAnimatedStyle as q,useDerivedValue as Z,withTiming as _}from"react-native-reanimated";import{jsx as g}from"react/jsx-runtime";function $({className:E,...C}){return g(f.Root,{className:k("peer h-6 w-11 shrink-0 cursor-pointer flex-row items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed",C.checked?"bg-primary":"bg-input",C.disabled&&"opacity-50",E),...C,children:g(f.Thumb,{className:k("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-foreground/5 shadow-md ring-0 transition-transform",C.checked?"translate-x-5":"translate-x-0")})})}var z={light:{primary:"rgb(24, 24, 27)",input:"rgb(228, 228, 231)"},dark:{primary:"rgb(250, 250, 250)",input:"rgb(39, 39, 42)"}};function P({className:E,...C}){let{colorScheme:D}=M(),F=D==="dark"?"dark":"light",H=Z(()=>C.checked?18:0),I=q(()=>{return{backgroundColor:Y(H.value,[0,18],[z[F].input,z[F].primary])}}),J=q(()=>({transform:[{translateX:_(H.value,{duration:200})}]}));return g(U.View,{style:I,className:k("h-8 w-[46px] rounded-full",C.disabled&&"opacity-50"),children:g(f.Root,{className:k("h-8 w-[46px] shrink-0 flex-row items-center rounded-full border-2 border-transparent",C.checked?"bg-primary":"bg-input",E),...C,children:g(U.View,{style:J,children:g(f.Thumb,{className:"h-7 w-7 rounded-full bg-background shadow-foreground/25 shadow-md ring-0"})})})})}var O=Q.select({web:$,default:P});export{O as Switch};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as TablePrimitive from '@rn-primitives/table';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function Table({ className, ...props }: TablePrimitive.RootProps & {
|
|
4
|
+
ref?: React.RefObject<TablePrimitive.RootRef>;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function TableHeader({ className, ...props }: TablePrimitive.HeaderProps & {
|
|
7
|
+
ref?: React.RefObject<TablePrimitive.HeaderRef>;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function TableBody({ className, style, ...props }: TablePrimitive.BodyProps & {
|
|
10
|
+
ref?: React.RefObject<TablePrimitive.BodyRef>;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function TableFooter({ className, ...props }: TablePrimitive.FooterProps & {
|
|
13
|
+
ref?: React.RefObject<TablePrimitive.FooterRef>;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function TableRow({ className, ...props }: TablePrimitive.RowProps & {
|
|
16
|
+
ref?: React.RefObject<TablePrimitive.RowRef>;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare function TableHead({ className, ...props }: TablePrimitive.HeadProps & {
|
|
19
|
+
ref?: React.RefObject<TablePrimitive.HeadRef>;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare function TableCell({ className, ...props }: TablePrimitive.CellProps & {
|
|
22
|
+
ref?: React.RefObject<TablePrimitive.CellRef>;
|
|
23
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export { Table, TableBody, TableCell, TableFooter, TableHead, TableHeader, TableRow, };
|
package/dist/ui/table.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import*as I from"@rn-primitives/slot";import*as D from"react";import{Text as L}from"react-native";import{jsx as M}from"react/jsx-runtime";var G=D.createContext(void 0);function S({className:f,asChild:g=!1,...E}){let J=D.useContext(G);return M(g?I.Text:L,{className:K("web:select-text text-base text-foreground",J,f),...E})}import{cn as A}from"@contractspec/lib.ui-kit-core/utils";import*as q from"@rn-primitives/table";import{jsx as z}from"react/jsx-runtime";function Y({className:f,...g}){return z(q.Root,{className:A("w-full caption-bottom text-sm",f),...g})}function Z({className:f,...g}){return z(q.Header,{className:A("border-border [&_tr]:border-b",f),...g})}function _({className:f,style:g,...E}){return z(q.Body,{className:A("flex-1 border-border [&_tr:last-child]:border-0",f),style:[{minHeight:2},g],...E})}function $({className:f,...g}){return z(q.Footer,{className:A("bg-muted/50 font-medium [&>tr]:last:border-b-0",f),...g})}function w({className:f,...g}){return z(q.Row,{className:A("flex-row border-border border-b web:transition-colors web:hover:bg-muted/50 web:data-[state=selected]:bg-muted",f),...g})}function B({className:f,...g}){return z(G.Provider,{value:"text-muted-foreground",children:z(q.Head,{className:A("h-12 justify-center px-4 text-left font-medium [&:has([role=checkbox])]:pr-0",f),...g})})}function F({className:f,...g}){return z(q.Cell,{className:A("p-4 align-middle [&:has([role=checkbox])]:pr-0",f),...g})}export{w as TableRow,Z as TableHeader,B as TableHead,$ as TableFooter,F as TableCell,_ as TableBody,Y as Table};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as TabsPrimitive from '@rn-primitives/tabs';
|
|
2
|
+
declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger };
|
package/dist/ui/tabs.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as w}from"@contractspec/lib.ui-kit-core/utils";import*as d from"@rn-primitives/tabs";import{Platform as z}from"react-native";import{jsx as y}from"react/jsx-runtime";function E({className:q,...h}){return y(d.Root,{className:w("flex flex-col gap-2",q),...h})}function F({className:q,...h}){return y(d.List,{className:w("flex h-9 flex-row items-center justify-center rounded-lg bg-muted p-[3px]",z.select({web:"inline-flex w-fit",native:"mr-auto"}),q),...h})}function G({className:q,...h}){let{value:A}=d.useRootContext();return y(d.Trigger,{className:w("flex h-[calc(100%-1px)] flex-row items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 shadow-black/5 shadow-none",z.select({web:"inline-flex cursor-default whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0"}),h.disabled&&"opacity-50",h.value===A&&"bg-background dark:border-foreground/10 dark:bg-input/30",q),...h})}function H({className:q,...h}){return y(d.Content,{className:w(z.select({web:"flex-1 outline-none"}),q),...h})}export{G as TabsTrigger,F as TabsList,H as TabsContent,E as Tabs};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Text as RNText } from 'react-native';
|
|
3
|
+
declare const TextClassContext: React.Context<string | undefined>;
|
|
4
|
+
export type TextProps = React.ComponentProps<typeof RNText> & {
|
|
5
|
+
ref?: React.RefObject<React.ComponentRef<typeof RNText>>;
|
|
6
|
+
asChild?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare function Text({ className, asChild, ...props }: React.ComponentProps<typeof RNText> & {
|
|
9
|
+
ref?: React.RefObject<React.ComponentRef<typeof RNText>>;
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export { Text, TextClassContext };
|
package/dist/ui/text.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as A}from"@contractspec/lib.ui-kit-core/utils";import*as g from"@rn-primitives/slot";import*as f from"react";import{Text as B}from"react-native";import{jsx as E}from"react/jsx-runtime";var D=f.createContext(void 0);function I({className:q,asChild:w=!1,...y}){let z=f.useContext(D);return E(w?g.Text:B,{className:A("web:select-text text-base text-foreground",z,q),...y})}export{D as TextClassContext,I as Text};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SharedTextareaProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { TextInput, type TextInputProps } from 'react-native';
|
|
4
|
+
export type TextareaProps = SharedTextareaProps & TextInputProps & {
|
|
5
|
+
ref?: React.RefObject<TextInput>;
|
|
6
|
+
};
|
|
7
|
+
declare const Textarea: React.ForwardRefExoticComponent<Omit<TextareaProps, "ref"> & React.RefAttributes<TextInput>>;
|
|
8
|
+
export { Textarea };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as q}from"@contractspec/lib.ui-kit-core/utils";import*as w from"react";import{TextInput as B}from"react-native";import{jsx as E}from"react/jsx-runtime";var D=w.forwardRef(({className:y,placeholderClassName:z,...g},A)=>{return E(B,{ref:A,className:q("web:flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 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",g.editable===!1&&"web:cursor-not-allowed opacity-50",y),placeholderClassName:q("text-muted-foreground",z),multiline:!0,...g})});D.displayName="Textarea";export{D as Textarea};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SharedTimePickerProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
export interface TimePickerProps extends SharedTimePickerProps {
|
|
3
|
+
}
|
|
4
|
+
export declare function TimePicker({ value, onChange, disabled, placeholder, is24Hour, className, }: TimePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as Z}from"@contractspec/lib.ui-kit-core/utils";import*as L from"@rn-primitives/slot";import*as E from"react";import{Text as _}from"react-native";import{jsx as M}from"react/jsx-runtime";var $=E.createContext(void 0);function O({className:q,asChild:z=!1,...A}){let F=E.useContext($);return M(z?L.Text:_,{className:Z("web:select-text text-base text-foreground",F,q),...A})}import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import R from"@react-native-community/datetimepicker";import{useMemo as V,useState as y}from"react";import{Platform as Q,Pressable as f,View as g}from"react-native";import{jsx as I,jsxs as k}from"react/jsx-runtime";function S(q,z){if(!q)return"";try{return q.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!z})}catch{return""}}function p({value:q,onChange:z,disabled:A,placeholder:F="Select time",is24Hour:B=!0,className:U}){let[W,J]=y(!1),X=V(()=>({is24Hour:B,timeZoneName:void 0}),[B]),Y=(w,K)=>{if(Q.OS!=="ios")J(!1);if(K)z(K)};return k(g,{className:G("w-full",U),children:[I(f,{disabled:A,onPress:()=>J(!0),className:G("h-12 flex-row items-center rounded-md border border-input bg-background px-3",A&&"opacity-50"),children:I(O,{className:G("text-base text-foreground",!q&&"opacity-50"),children:q?S(q,B):F})}),W&&I(R,{value:q??new Date,mode:"time",display:Q.OS==="ios"?"spinner":"default",onChange:Y,...X})]})}export{p as TimePicker};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as ToastPrimitive from '@rn-primitives/toast';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
declare function Toast({ className, ...props }: ToastPrimitive.RootProps & {
|
|
5
|
+
ref?: React.RefObject<ToastPrimitive.RootRef>;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function ToastTitle({ className, ...props }: ToastPrimitive.TitleProps & {
|
|
8
|
+
ref?: React.RefObject<ToastPrimitive.TitleRef>;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function ToastDescription({ className, ...props }: ToastPrimitive.DescriptionProps & {
|
|
11
|
+
ref?: React.RefObject<ToastPrimitive.DescriptionRef>;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function ToastAction({ className, children, ...props }: ToastPrimitive.ActionProps & {
|
|
14
|
+
ref?: React.RefObject<ToastPrimitive.ActionRef>;
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare function ToastClose({ className, children, ...props }: ToastPrimitive.CloseProps & {
|
|
18
|
+
ref?: React.RefObject<ToastPrimitive.CloseRef>;
|
|
19
|
+
children?: React.ReactNode;
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
declare function ToastViewport({ className, children, ...props }: React.ComponentProps<typeof View>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;
|
|
23
|
+
type ToastActionElement = React.ReactElement<typeof ToastAction>;
|
|
24
|
+
declare function ToastText({ title, description, }: {
|
|
25
|
+
title?: React.ReactNode;
|
|
26
|
+
description?: React.ReactNode;
|
|
27
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
declare function ToastCard({ title, description, action, open, onOpenChange, }: {
|
|
29
|
+
title?: React.ReactNode;
|
|
30
|
+
description?: React.ReactNode;
|
|
31
|
+
action?: React.ReactNode;
|
|
32
|
+
open: boolean;
|
|
33
|
+
onOpenChange: (open: boolean) => void;
|
|
34
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
35
|
+
declare function toastCard(args: Parameters<typeof ToastCard>[0]): {
|
|
36
|
+
dismiss: () => void;
|
|
37
|
+
element: React.ReactElement;
|
|
38
|
+
id: string;
|
|
39
|
+
};
|
|
40
|
+
export { Toast, ToastAction, type ToastActionElement, ToastCard, ToastClose, ToastDescription, type ToastProps, ToastText, ToastTitle, ToastViewport, toastCard, };
|
package/dist/ui/toast.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as P}from"@contractspec/lib.ui-kit-core/utils";import*as L from"@rn-primitives/slot";import*as H from"react";import{Text as Q}from"react-native";import{jsx as S}from"react/jsx-runtime";var G=H.createContext(void 0);function J({className:f,asChild:q=!1,...z}){let E=H.useContext(G);return S(q?L.Text:Q,{className:P("web:select-text text-base text-foreground",E,f),...z})}import{cn as F}from"@contractspec/lib.ui-kit-core/utils";import*as B from"@rn-primitives/toast";import{X as U}from"lucide-react-native";import{View as K}from"react-native";import{jsx as y,jsxs as M}from"react/jsx-runtime";function W({className:f,...q}){return y(B.Root,{className:F("rounded-lg border border-border bg-popover p-4 shadow-foreground/5 shadow-md",f),...q})}function O({className:f,...q}){return y(G.Provider,{value:"font-medium text-base text-popover-foreground",children:y(B.Title,{className:F(f),...q})})}function V({className:f,...q}){return y(G.Provider,{value:"text-sm text-muted-foreground",children:y(B.Description,{className:F(f),...q})})}function v({className:f,children:q,...z}){return y(G.Provider,{value:"font-medium text-sm text-foreground",children:y(B.Action,{className:F("mt-3 inline-flex min-h-9 items-center justify-center rounded-md border border-input px-3",f),...z,children:q})})}function Y({className:f,children:q,...z}){return y(B.Close,{className:F("absolute top-2 right-2 inline-flex h-8 w-8 items-center justify-center rounded-md",f),...z,children:q??y(U,{size:16})})}function u({className:f,children:q,...z}){return y(K,{className:F("flex flex-col gap-2",f),...z,children:q})}function Z({title:f,description:q}){return M(K,{className:"flex-1 gap-1",children:[f?y(J,{className:"font-medium text-base",children:f}):null,q?y(J,{className:"text-muted-foreground text-sm",children:q}):null]})}function _({title:f,description:q,action:z,open:E,onOpenChange:I}){if(!E)return null;return y(W,{open:E,onOpenChange:I,children:M(K,{className:"flex-row items-start gap-3",children:[y(Z,{description:q,title:f}),z,y(Y,{onPress:()=>I(!1)})]})})}function g(f){let q=Math.random().toString(36).slice(2),z=f.open;return{id:q,dismiss:()=>{z=!1,f.onOpenChange(!1)},element:y(_,{...f,open:z,onOpenChange:(E)=>{z=E,f.onOpenChange(E)}})}}export{g as toastCard,u as ToastViewport,O as ToastTitle,Z as ToastText,V as ToastDescription,Y as ToastClose,_ as ToastCard,v as ToastAction,W as Toast};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as ToggleGroupPrimitive from '@rn-primitives/toggle-group';
|
|
2
|
+
import type { VariantProps } from 'class-variance-authority';
|
|
3
|
+
import type { LucideIcon } from 'lucide-react-native';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { toggleVariants } from './toggle';
|
|
6
|
+
declare function ToggleGroup({ className, variant, size, children, ...props }: ToggleGroupPrimitive.RootProps & VariantProps<typeof toggleVariants> & {
|
|
7
|
+
ref?: React.RefObject<ToggleGroupPrimitive.RootRef>;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: ToggleGroupPrimitive.ItemProps & VariantProps<typeof toggleVariants> & {
|
|
10
|
+
ref?: React.RefObject<ToggleGroupPrimitive.ItemRef>;
|
|
11
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function ToggleGroupIcon({ className, icon: Icon, ...props }: React.ComponentPropsWithoutRef<LucideIcon> & {
|
|
13
|
+
icon: LucideIcon;
|
|
14
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export { ToggleGroup, ToggleGroupIcon, ToggleGroupItem };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as _}from"@contractspec/lib.ui-kit-core/utils";import*as U from"@rn-primitives/slot";import*as J from"react";import{Text as $}from"react-native";import{jsx as y}from"react/jsx-runtime";var E=J.createContext(void 0);function d({className:f,asChild:A=!1,...w}){let q=J.useContext(E);return y(A?U.Text:$,{className:_("web:select-text text-base text-foreground",q,f),...w})}import{cn as L}from"@contractspec/lib.ui-kit-core/utils";import*as W from"@rn-primitives/toggle";import{cva as X}from"class-variance-authority";import*as Y from"react";import{jsx as M}from"react/jsx-runtime";var O=X("web:group web:inline-flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:hover:bg-muted web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 active:bg-muted",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent web:hover:bg-accent active:bg-accent"},size:{default:"h-10 native:h-12 native:px-[12] px-3",sm:"h-9 native:h-10 native:px-[9] px-2.5",lg:"h-11 native:h-14 native:px-6 px-5"}},defaultVariants:{variant:"default",size:"default"}}),P=X("font-medium native:text-base text-foreground text-sm",{variants:{variant:{default:"",outline:"web:group-hover:text-accent-foreground web:group-active:text-accent-foreground"},size:{default:"",sm:"",lg:""}},defaultVariants:{variant:"default",size:"default"}});function j({className:f,variant:A,size:w,...q}){return M(E.Provider,{value:L(P({variant:A,size:w}),q.pressed?"text-accent-foreground":"web:group-hover:text-muted-foreground",f),children:M(W.Root,{className:L(O({variant:A,size:w}),q.disabled&&"web:pointer-events-none opacity-50",q.pressed&&"bg-accent",f),...q})})}function N({className:f,icon:A,...w}){let q=Y.useContext(E);return M(A,{className:L(q,f),...w})}import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import*as B from"@rn-primitives/toggle-group";import*as H from"react";import{jsx as F}from"react/jsx-runtime";var Z=H.createContext(null);function g({className:f,variant:A,size:w,children:q,...D}){return F(B.Root,{className:K("flex flex-row items-center justify-center gap-1",f),...D,children:F(Z.Provider,{value:{variant:A,size:w},children:q})})}function R(){let f=H.useContext(Z);if(f===null)throw Error("ToggleGroup compound components cannot be rendered outside the ToggleGroup component");return f}function x({className:f,children:A,variant:w,size:q,...D}){let Q=R(),{value:S}=B.useRootContext();return F(E.Provider,{value:K(P({variant:w,size:q}),B.utils.getIsSelected(S,D.value)?"text-accent-foreground":"web:group-hover:text-muted-foreground"),children:F(B.Item,{className:K(O({variant:Q.variant||w,size:Q.size||q}),D.disabled&&"web:pointer-events-none opacity-50",B.utils.getIsSelected(S,D.value)&&"bg-accent",f),...D,children:A})})}function l({className:f,icon:A,...w}){let q=H.useContext(E);return F(A,{className:K(q,f),...w})}export{x as ToggleGroupItem,l as ToggleGroupIcon,g as ToggleGroup};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as TogglePrimitive from '@rn-primitives/toggle';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
import type { LucideIcon } from 'lucide-react-native';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
declare const toggleVariants: (props?: ({
|
|
6
|
+
variant?: "default" | "outline" | null | undefined;
|
|
7
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
declare const toggleTextVariants: (props?: ({
|
|
10
|
+
variant?: "default" | "outline" | null | undefined;
|
|
11
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
12
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
13
|
+
declare function Toggle({ className, variant, size, ...props }: TogglePrimitive.RootProps & VariantProps<typeof toggleVariants> & VariantProps<typeof toggleVariants> & {
|
|
14
|
+
ref?: React.RefObject<TogglePrimitive.RootRef>;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function ToggleIcon({ className, icon: Icon, ...props }: React.ComponentPropsWithoutRef<LucideIcon> & {
|
|
17
|
+
icon: LucideIcon;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export { Toggle, ToggleIcon, toggleTextVariants, toggleVariants };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as L}from"@contractspec/lib.ui-kit-core/utils";import*as G from"@rn-primitives/slot";import*as B from"react";import{Text as M}from"react-native";import{jsx as O}from"react/jsx-runtime";var D=B.createContext(void 0);function X({className:q,asChild:w=!1,...A}){let f=B.useContext(D);return O(w?G.Text:M,{className:L("web:select-text text-base text-foreground",f,q),...A})}import{cn as E}from"@contractspec/lib.ui-kit-core/utils";import*as H from"@rn-primitives/toggle";import{cva as J}from"class-variance-authority";import*as K from"react";import{jsx as F}from"react/jsx-runtime";var P=J("web:group web:inline-flex items-center justify-center rounded-md web:ring-offset-background web:transition-colors web:hover:bg-muted web:focus-visible:outline-hidden web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 active:bg-muted",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent web:hover:bg-accent active:bg-accent"},size:{default:"h-10 native:h-12 native:px-[12] px-3",sm:"h-9 native:h-10 native:px-[9] px-2.5",lg:"h-11 native:h-14 native:px-6 px-5"}},defaultVariants:{variant:"default",size:"default"}}),Q=J("font-medium native:text-base text-foreground text-sm",{variants:{variant:{default:"",outline:"web:group-hover:text-accent-foreground web:group-active:text-accent-foreground"},size:{default:"",sm:"",lg:""}},defaultVariants:{variant:"default",size:"default"}});function R({className:q,variant:w,size:A,...f}){return F(D.Provider,{value:E(Q({variant:w,size:A}),f.pressed?"text-accent-foreground":"web:group-hover:text-muted-foreground",q),children:F(H.Root,{className:E(P({variant:w,size:A}),f.disabled&&"web:pointer-events-none opacity-50",f.pressed&&"bg-accent",q),...f})})}function b({className:q,icon:w,...A}){let f=K.useContext(D);return F(w,{className:E(f,q),...A})}export{P as toggleVariants,Q as toggleTextVariants,b as ToggleIcon,R as Toggle};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as ToolbarPrimitive from '@rn-primitives/toolbar';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function Toolbar({ className, ...props }: ToolbarPrimitive.RootProps & {
|
|
4
|
+
ref?: React.RefObject<ToolbarPrimitive.RootRef>;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function ToolbarButton({ className, children, ...props }: ToolbarPrimitive.ButtonProps & {
|
|
7
|
+
ref?: React.RefObject<ToolbarPrimitive.ButtonRef>;
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function ToolbarLink({ className, children, ...props }: ToolbarPrimitive.LinkProps & {
|
|
11
|
+
ref?: React.RefObject<ToolbarPrimitive.LinkRef>;
|
|
12
|
+
children?: React.ReactNode;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function ToolbarToggleGroup({ className, children, ...props }: ToolbarPrimitive.ToggleGroupProps & {
|
|
15
|
+
ref?: React.RefObject<ToolbarPrimitive.ToggleGroupRef>;
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
declare function ToolbarToggleItem({ className, children, ...props }: ToolbarPrimitive.ToggleItemProps & {
|
|
19
|
+
ref?: React.RefObject<ToolbarPrimitive.ToggleItemRef>;
|
|
20
|
+
children?: React.ReactNode;
|
|
21
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
declare function ToolbarSeparator({ className, ...props }: ToolbarPrimitive.SeparatorProps & {
|
|
23
|
+
ref?: React.RefObject<ToolbarPrimitive.SeparatorRef>;
|
|
24
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export { Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, ToolbarToggleGroup, ToolbarToggleItem, };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as O}from"@contractspec/lib.ui-kit-core/utils";import*as K from"@rn-primitives/slot";import*as F from"react";import{Text as P}from"react-native";import{jsx as Q}from"react/jsx-runtime";var E=F.createContext(void 0);function W({className:q,asChild:w=!1,...f}){let D=F.useContext(E);return Q(w?K.Text:P,{className:O("web:select-text text-base text-foreground",D,q),...f})}import{cn as A}from"@contractspec/lib.ui-kit-core/utils";import*as y from"@rn-primitives/toolbar";import*as H from"react";import{jsx as z}from"react/jsx-runtime";var M=H.createContext(null);function $({className:q,...w}){return z(y.Root,{className:A("flex flex-row items-center gap-1",q),...w})}function B({className:q,children:w,...f}){return z(E.Provider,{value:"font-medium text-sm text-foreground",children:z(y.Button,{className:A("min-h-9 items-center justify-center rounded-md px-3 active:bg-accent",f.disabled&&"opacity-50",q),...f,children:w})})}function G({className:q,children:w,...f}){return z(E.Provider,{value:"font-medium text-sm text-primary",children:z(y.Link,{className:A("min-h-9 items-center justify-center rounded-md px-3",q),...f,children:w})})}function I({className:q,children:w,...f}){return z(M.Provider,{value:f,children:z(y.ToggleGroup,{className:A("flex flex-row items-center gap-1",q),...f,children:w})})}function L({className:q,children:w,...f}){let D=H.useContext(M),J=D?.type==="single"?D.value===f.value:Array.isArray(D?.value)&&D.value.includes(f.value);return z(E.Provider,{value:A("font-medium text-sm",J?"text-accent-foreground":"text-foreground"),children:z(y.ToggleItem,{className:A("min-h-9 items-center justify-center rounded-md px-3 active:bg-accent",J&&"bg-accent",f.disabled&&"opacity-50",q),...f,children:w})})}function R({className:q,...w}){return z(y.Separator,{className:A("mx-1 h-5 w-px bg-border",q),...w})}export{L as ToolbarToggleItem,I as ToolbarToggleGroup,R as ToolbarSeparator,G as ToolbarLink,B as ToolbarButton,$ as Toolbar};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as TooltipPrimitive from '@rn-primitives/tooltip';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare const Tooltip: {
|
|
4
|
+
({ asChild, delayDuration: _delayDuration, skipDelayDuration: _skipDelayDuration, disableHoverableContent: _disableHoverableContent, onOpenChange: onOpenChangeProp, ref, ...viewProps }: import("react-native").ViewProps & {
|
|
5
|
+
asChild?: boolean;
|
|
6
|
+
} & {
|
|
7
|
+
onOpenChange?: (open: boolean) => void;
|
|
8
|
+
delayDuration?: number;
|
|
9
|
+
skipDelayDuration?: number;
|
|
10
|
+
disableHoverableContent?: boolean;
|
|
11
|
+
} & React.RefAttributes<import("react-native").View>): React.JSX.Element;
|
|
12
|
+
displayName: string;
|
|
13
|
+
};
|
|
14
|
+
declare const TooltipTrigger: {
|
|
15
|
+
({ asChild, onPress: onPressProp, disabled, ref, ...props }: Omit<import("react-native").PressableProps & React.RefAttributes<import("react-native").View>, "ref"> & {
|
|
16
|
+
asChild?: boolean;
|
|
17
|
+
} & {
|
|
18
|
+
onKeyDown?: (ev: React.KeyboardEvent) => void;
|
|
19
|
+
onKeyUp?: (ev: React.KeyboardEvent) => void;
|
|
20
|
+
} & React.RefAttributes<import("@rn-primitives/tooltip").TriggerRef>): React.JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
23
|
+
declare function TooltipContent({ className, sideOffset, portalHost, ...props }: TooltipPrimitive.ContentProps & {
|
|
24
|
+
ref?: React.RefObject<TooltipPrimitive.ContentRef>;
|
|
25
|
+
portalHost?: string;
|
|
26
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export { Tooltip, TooltipContent, TooltipTrigger };
|
|
@@ -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/tooltip";import{Platform as K,StyleSheet as W}from"react-native";import X,{FadeIn as Y,FadeOut as Z}from"react-native-reanimated";import{jsx as w}from"react/jsx-runtime";var H=q.Root,S=q.Trigger;function h({className:B,sideOffset:D=4,portalHost:E,...G}){return w(q.Portal,{hostName:E,children:w(q.Overlay,{style:K.OS!=="web"?W.absoluteFill:void 0,children:w(X.View,{entering:K.select({web:void 0,default:Y}),exiting:K.select({web:void 0,default:Z}),children:w(J.Provider,{value:"text-sm native:text-base text-popover-foreground",children:w(q.Content,{sideOffset:D,className:V("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 web:fade-in-0 web:zoom-in-95 z-50 web:animate-in overflow-hidden rounded-md border border-border bg-popover px-3 py-1.5 shadow-foreground/5 shadow-md",B),...G})})})})})}export{S as TooltipTrigger,h as TooltipContent,H as Tooltip};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type TextProps } from './text';
|
|
2
|
+
export type TypographyProps = TextProps & {
|
|
3
|
+
asChild?: boolean;
|
|
4
|
+
};
|
|
5
|
+
declare function H1({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function H2({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function H3({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function H4({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function P({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function BlockQuote({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function Code({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function Lead({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function Large({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function Small({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function Muted({ className, asChild, ...props }: TypographyProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export { BlockQuote, Code, H1, H2, H3, H4, Large, Lead, Muted, P, Small };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import*as I from"@rn-primitives/slot";import*as G from"react";import{Text as O}from"react-native";import{jsx as V}from"react/jsx-runtime";var U=G.createContext(void 0);function A({className:q,asChild:w=!1,...y}){let z=G.useContext(U);return V(w?I.Text:O,{className:K("web:select-text text-base text-foreground",z,q),...y})}import{cn as E}from"@contractspec/lib.ui-kit-core/utils";import*as D from"@rn-primitives/slot";import{Platform as J}from"react-native";import{jsx as F}from"react/jsx-runtime";function M({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{role:"heading","aria-level":"1",className:E("web:select-text web:scroll-m-20 font-extrabold text-4xl text-foreground tracking-tight lg:text-5xl",q),...y})}function Q({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{role:"heading","aria-level":"2",className:E("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),...y})}function R({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{role:"heading","aria-level":"3",className:E("web:select-text web:scroll-m-20 font-semibold text-2xl text-foreground tracking-tight",q),...y})}function S({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{role:"heading","aria-level":"4",className:E("web:select-text web:scroll-m-20 font-semibold text-foreground text-xl tracking-tight",q),...y})}function b({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{className:E("web:select-text text-base text-foreground",q),...y})}function f({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{role:J.OS==="web"?"blockquote":void 0,className:E("mt-6 native:mt-4 web:select-text border-border border-l-2 native:pl-3 pl-6 text-base text-foreground italic",q),...y})}function L({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{role:J.OS==="web"?"code":void 0,className:E("relative web:select-text rounded-md bg-muted px-[0.3rem] py-[0.2rem] font-semibold text-foreground text-sm",q),...y})}function k({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{className:E("web:select-text text-muted-foreground text-xl",q),...y})}function P({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{className:E("web:select-text font-semibold text-foreground text-xl",q),...y})}function v({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{className:E("web:select-text font-medium text-foreground text-sm leading-none",q),...y})}function H({className:q,asChild:w=!1,...y}){return F(w?D.Text:A,{className:E("web:select-text text-muted-foreground text-sm",q),...y})}export{v as Small,b as P,H as Muted,k as Lead,P as Large,S as H4,R as H3,Q as H2,M as H1,L as Code,f as BlockQuote};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { SharedUseListStateOptions, SharedUseListStateReturn } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
export interface UseListStateOptions extends SharedUseListStateOptions {
|
|
3
|
+
}
|
|
4
|
+
export interface UseListStateReturn extends SharedUseListStateReturn {
|
|
5
|
+
}
|
|
6
|
+
export declare const useListState: ({ initialSearch, initialFilters, initialPage, initialItemsPerPage, }?: UseListStateOptions) => UseListStateReturn;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{useCallback as z,useMemo as A,useState as D}from"react";var q=({initialSearch:E="",initialFilters:G={},initialPage:H=1,initialItemsPerPage:J=25}={})=>{let[K,V]=D(E),[L,N]=D(G),[O,x]=D(H),[T,W]=D(J),Y=z((j,B)=>{N((U)=>({...U,[j]:B})),x(1)},[]),Z=z(()=>{N({}),x(1)},[]),_=z((j)=>{V(j),x(1)},[]),$=z((j)=>{W(j),x(1)},[]),M=z(()=>{V(E),N(G),x(H),W(J)},[E,G,H,J]),R=A(()=>{let j={search:K,page:O,limit:T},B={};return Object.entries(L).forEach(([U,X])=>{if(X)B[U]=X}),{...j,...B}},[K,L,O,T]);return{searchQuery:K,setSearchQuery:_,filters:L,setFilter:Y,clearFilters:Z,currentPage:O,itemsPerPage:T,setCurrentPage:x,setItemsPerPage:$,queryParams:R,resetAll:M}};export{q as useListState};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as _}from"@contractspec/lib.ui-kit-core/utils";import*as P from"@rn-primitives/slot";import*as D from"react";import{Text as $}from"react-native";import{jsx as R}from"react/jsx-runtime";var F=D.createContext(void 0);function G({className:U,asChild:m=!1,...L}){let H=D.useContext(F);return R(m?P.Text:$,{className:_("web:select-text text-base text-foreground",H,U),...L})}import{cn as z}from"@contractspec/lib.ui-kit-core/utils";import{cva as W}from"class-variance-authority";import{Pressable as S}from"react-native";import{jsx as Q}from"react/jsx-runtime";var T=W("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"}}),C=W("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 X({ref:U,className:m,variant:L,size:H,...f}){return Q(F.Provider,{value:C({variant:L,size:H,className:"web:pointer-events-none"}),children:Q(S,{className:z(f.disabled&&"web:pointer-events-none opacity-50",T({variant:L,size:H,className:m})),ref:U,role:"button",...f})})}import{cn as I}from"@contractspec/lib.ui-kit-core/utils";import{cva as J}from"class-variance-authority";import{View as K}from"react-native";import{jsx as O}from"react/jsx-runtime";var M="flex",b=J([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"}}),o=J([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"}}),N=J([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 c({className:U,spacing:m,align:L,justify:H,width:f,padding:k,gap:q,wrap:A,...E}){return O(K,{className:I(N({spacing:m,align:L,justify:H,width:f,padding:k,gap:q,wrap:A}),U),...E})}function Y({className:U,spacing:m,align:L,justify:H,width:f,padding:k,gap:q,wrap:A,...E}){return O(K,{className:I(o({spacing:m,align:L,justify:H,width:f,padding:k,gap:q,wrap:A}),U),...E})}function Z({className:U,spacing:m,align:L,justify:H,width:f,padding:k,gap:q,...A}){return O(K,{className:I(b({spacing:m,align:L,justify:H,width:f,padding:k,gap:q}),U),...A})}import{Link as V}from"expo-router";import{jsx as B,jsxs as h}from"react/jsx-runtime";function HL({title:U,summary:m,ctaHref:L,ctaLabel:H="Learn more",onCtaClick:f}){return h(Z,{className:"rounded-lg border p-4",gap:"sm",children:[B(G,{className:"font-semibold text-lg",children:U}),m&&B(G,{className:"text-base text-muted-foreground",children:m}),L&&B(Y,{children:B(V,{href:L,children:B(X,{size:"sm",variant:"outline",onPress:f,children:H})})})]})}export{HL as UseCaseCard};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as X}from"@contractspec/lib.ui-kit-core/utils";import*as P from"@rn-primitives/slot";import*as E from"react";import{Text as Y}from"react-native";import{jsx as _}from"react/jsx-runtime";var Z=E.createContext(void 0);function D({className:T,asChild:m=!1,...O}){let U=E.useContext(Z);return _(m?P.Text:Y,{className:X("web:select-text text-base text-foreground",U,T),...O})}import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import{cva as I}from"class-variance-authority";import{View as J}from"react-native";import{jsx as L}from"react/jsx-runtime";var K="flex",$=I([K,"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"}}),B=I([K,"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"}}),H=I([K,"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 C({className:T,spacing:m,align:O,justify:U,width:f,padding:q,gap:z,wrap:A,...F}){return L(J,{className:G(H({spacing:m,align:O,justify:U,width:f,padding:q,gap:z,wrap:A}),T),...F})}function u({className:T,spacing:m,align:O,justify:U,width:f,padding:q,gap:z,wrap:A,...F}){return L(J,{className:G(B({spacing:m,align:O,justify:U,width:f,padding:q,gap:z,wrap:A}),T),...F})}function Q({className:T,spacing:m,align:O,justify:U,width:f,padding:q,gap:z,...A}){return L(J,{className:G($({spacing:m,align:O,justify:U,width:f,padding:q,gap:z}),T),...A})}import{jsx as M,jsxs as W}from"react/jsx-runtime";function d({title:T,body:m,outcome:O}){return W(Q,{className:"rounded-lg border p-4",gap:"sm",children:[M(D,{className:"font-semibold text-lg",children:T}),m&&M(D,{className:"text-base text-muted-foreground",children:m}),O&&W(D,{className:"text-base",children:[M(D,{className:"font-medium",children:"Outcome:"})," ",O]})]})}export{d as UserStoryCard};
|
package/dist/ui/utils.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ContractVisualizationRenderModel } from '@contractspec/lib.presentation-runtime-core';
|
|
2
|
+
import type { SharedVisualizationInteractionHandler, SharedVisualizationProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
3
|
+
export type VisualizationInteractionHandler = SharedVisualizationInteractionHandler;
|
|
4
|
+
export interface VisualizationProps extends Omit<SharedVisualizationProps, 'model'> {
|
|
5
|
+
model: ContractVisualizationRenderModel;
|
|
6
|
+
}
|
|
7
|
+
export declare function Visualization({ model, className, height, onDataPointPress, }: VisualizationProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{cn as D}from"@contractspec/lib.ui-kit-core/utils";import*as L from"@rn-primitives/slot";import*as B from"react";import{Text as k}from"react-native";import{jsx as y}from"react/jsx-runtime";var T=B.createContext(void 0);function $({className:q,asChild:I=!1,...K}){let J=B.useContext(T);return y(I?L.Text:k,{className:D("web:select-text text-base text-foreground",J,q),...K})}import{cn as F}from"@contractspec/lib.ui-kit-core/utils";import{cva as H}from"class-variance-authority";import{View as G}from"react-native";import{jsx as M}from"react/jsx-runtime";var E="flex",f=H([E,"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"}}),v=H([E,"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"}}),S=H([E,"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 Zq({className:q,spacing:I,align:K,justify:J,width:U,padding:Y,gap:_,wrap:Z,...X}){return M(G,{className:F(S({spacing:I,align:K,justify:J,width:U,padding:Y,gap:_,wrap:Z}),q),...X})}function _q({className:q,spacing:I,align:K,justify:J,width:U,padding:Y,gap:_,wrap:Z,...X}){return M(G,{className:F(v({spacing:I,align:K,justify:J,width:U,padding:Y,gap:_,wrap:Z}),q),...X})}function O({className:q,spacing:I,align:K,justify:J,width:U,padding:Y,gap:_,...Z}){return M(G,{className:F(f({spacing:I,align:K,justify:J,width:U,padding:Y,gap:_}),q),...Z})}import{buildVisualizationEChartsOption as N,formatVisualizationValue as R}from"@contractspec/lib.presentation-runtime-core";import w,{SVGRenderer as P}from"@wuba/react-native-echarts/svgChart";import{BarChart as V,FunnelChart as C,HeatmapChart as j,LineChart as g,MapChart as u,PieChart as x,ScatterChart as h}from"echarts/charts";import{AriaComponent as p,GeoComponent as c,GridComponent as r,LegendComponent as d,TitleComponent as n,TooltipComponent as m,VisualMapComponent as i}from"echarts/components";import*as A from"echarts/core";import{useEffect as l,useMemo as o,useRef as s,useState as t}from"react";import{View as a}from"react-native";import{jsx as Q,jsxs as W}from"react/jsx-runtime";A.use([p,n,m,r,d,i,c,P,g,V,x,h,j,C,u]);function zq({model:q,className:I,height:K=280,onDataPointPress:J}){let U=s(null),[Y,_]=t(320),Z=o(()=>N(q),[q]);if(l(()=>{if(!b(q)||!U.current||Y<=0)return;if(q.kind==="geo"&&q.geo?.geoJson?.type==="inline")A.registerMap("contractspec-visualization-geo",q.geo.geoJson.data);let X=A.init(U.current,"light",{renderer:"svg",width:Y,height:K});if(X.setOption(Z),J)X.on("click",J);return()=>{if(J)X.off("click",J);X.dispose()}},[K,q,J,Z,Y]),q.kind==="metric")return Q(e,{className:I,model:q});if(!b(q))return Q(qq,{className:I,model:q});return W(O,{gap:"sm",className:I,children:[Q(a,{className:"w-full",onLayout:(X)=>_(Math.max(X.nativeEvent.layout.width,1)),style:{height:K},children:Q(w,{ref:U})}),Q(z,{model:q})]})}function e({className:q,model:I}){return W(O,{gap:"xs",className:q,children:[Q($,{className:"text-muted-foreground text-sm",children:I.metric?.label??I.title}),Q($,{className:"font-semibold text-3xl",children:R(I.metric?.value,I.metric?.format)}),I.metric?.comparisonValue!=null?W($,{className:"text-muted-foreground text-sm",children:["Comparison:"," ",R(I.metric.comparisonValue,I.metric.format)]}):null,Q(z,{model:I})]})}function qq({className:q,model:I}){return W(O,{gap:"sm",className:q,children:[Q($,{className:"text-muted-foreground text-sm",children:"This visualization falls back to a summary view on native."}),Q(z,{model:I})]})}function z({model:q}){if(!q.table.columns.length||!q.table.rows.length)return null;return W(O,{gap:"xs",children:[Q($,{className:"font-medium text-sm",children:"Data summary"}),q.table.rows.slice(0,6).map((I,K)=>Q($,{className:"text-muted-foreground text-sm",children:q.table.columns.map((J)=>`${J.label}: ${String(I[J.key]??"\u2014")}`).join(" \u2022 ")},`summary-${K}`))]})}function b(q){if(q.kind==="metric")return!1;if(q.kind==="geo"&&q.geo?.mode==="slippy-map")return!1;if(q.kind==="geo"&&q.geo?.geoJson?.type==="url")return!1;return!0}export{zq as Visualization};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Visualization, type VisualizationInteractionHandler, type VisualizationProps, } from './Visualization';
|