@thewhileloop/whileui 1.1.0 → 1.2.0
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/README.md +493 -39
- package/dist/blocks/chat/chat.d.ts.map +1 -1
- package/dist/blocks/chat/chat.js +17 -6
- package/dist/blocks/chat/chat.js.map +1 -1
- package/dist/blocks/commerce/feature-gate.d.ts +13 -0
- package/dist/blocks/commerce/feature-gate.d.ts.map +1 -0
- package/dist/blocks/commerce/feature-gate.js +13 -0
- package/dist/blocks/commerce/feature-gate.js.map +1 -0
- package/dist/blocks/commerce/index.d.ts +5 -0
- package/dist/blocks/commerce/index.d.ts.map +1 -1
- package/dist/blocks/commerce/index.js +5 -0
- package/dist/blocks/commerce/index.js.map +1 -1
- package/dist/blocks/commerce/metric-card.d.ts +3 -1
- package/dist/blocks/commerce/metric-card.d.ts.map +1 -1
- package/dist/blocks/commerce/metric-card.js +8 -1
- package/dist/blocks/commerce/metric-card.js.map +1 -1
- package/dist/blocks/commerce/plan-toggle.d.ts +12 -0
- package/dist/blocks/commerce/plan-toggle.d.ts.map +1 -0
- package/dist/blocks/commerce/plan-toggle.js +19 -0
- package/dist/blocks/commerce/plan-toggle.js.map +1 -0
- package/dist/blocks/commerce/pricing-card.d.ts +3 -1
- package/dist/blocks/commerce/pricing-card.d.ts.map +1 -1
- package/dist/blocks/commerce/pricing-card.js +9 -1
- package/dist/blocks/commerce/pricing-card.js.map +1 -1
- package/dist/blocks/commerce/product-card.d.ts +3 -1
- package/dist/blocks/commerce/product-card.d.ts.map +1 -1
- package/dist/blocks/commerce/product-card.js +16 -2
- package/dist/blocks/commerce/product-card.js.map +1 -1
- package/dist/blocks/commerce/subscription-card.d.ts +17 -0
- package/dist/blocks/commerce/subscription-card.d.ts.map +1 -0
- package/dist/blocks/commerce/subscription-card.js +18 -0
- package/dist/blocks/commerce/subscription-card.js.map +1 -0
- package/dist/blocks/commerce/upgrade-banner.d.ts +12 -0
- package/dist/blocks/commerce/upgrade-banner.d.ts.map +1 -0
- package/dist/blocks/commerce/upgrade-banner.js +9 -0
- package/dist/blocks/commerce/upgrade-banner.js.map +1 -0
- package/dist/blocks/commerce/usage-bar.d.ts +11 -0
- package/dist/blocks/commerce/usage-bar.d.ts.map +1 -0
- package/dist/blocks/commerce/usage-bar.js +33 -0
- package/dist/blocks/commerce/usage-bar.js.map +1 -0
- package/dist/blocks/datepicker/date-range-picker-modal.d.ts +3 -2
- package/dist/blocks/datepicker/date-range-picker-modal.d.ts.map +1 -1
- package/dist/blocks/datepicker/date-range-picker-modal.js +16 -3
- package/dist/blocks/datepicker/date-range-picker-modal.js.map +1 -1
- package/dist/blocks/datepicker/datepicker-inline.d.ts.map +1 -1
- package/dist/blocks/datepicker/datepicker-inline.js +3 -1
- package/dist/blocks/datepicker/datepicker-inline.js.map +1 -1
- package/dist/blocks/datepicker/datepicker-modal.d.ts +3 -2
- package/dist/blocks/datepicker/datepicker-modal.d.ts.map +1 -1
- package/dist/blocks/datepicker/datepicker-modal.js +16 -3
- package/dist/blocks/datepicker/datepicker-modal.js.map +1 -1
- package/dist/blocks/datepicker/use-calendar-theme.d.ts.map +1 -1
- package/dist/blocks/datepicker/use-calendar-theme.js +2 -1
- package/dist/blocks/datepicker/use-calendar-theme.js.map +1 -1
- package/dist/blocks/layout/app-shell.d.ts +5 -1
- package/dist/blocks/layout/app-shell.d.ts.map +1 -1
- package/dist/blocks/layout/app-shell.js +2 -2
- package/dist/blocks/layout/app-shell.js.map +1 -1
- package/dist/blocks/layout/confirm-action-sheet.d.ts +3 -2
- package/dist/blocks/layout/confirm-action-sheet.d.ts.map +1 -1
- package/dist/blocks/layout/confirm-action-sheet.js +23 -4
- package/dist/blocks/layout/confirm-action-sheet.js.map +1 -1
- package/dist/blocks/layout/form-modal-screen.d.ts.map +1 -1
- package/dist/blocks/layout/form-modal-screen.js +26 -5
- package/dist/blocks/layout/form-modal-screen.js.map +1 -1
- package/dist/blocks/layout/index.d.ts +2 -1
- package/dist/blocks/layout/index.d.ts.map +1 -1
- package/dist/blocks/layout/index.js +1 -0
- package/dist/blocks/layout/index.js.map +1 -1
- package/dist/blocks/layout/onboarding-screen.js +2 -2
- package/dist/blocks/layout/onboarding-screen.js.map +1 -1
- package/dist/blocks/layout/page-skeleton.d.ts +7 -1
- package/dist/blocks/layout/page-skeleton.d.ts.map +1 -1
- package/dist/blocks/layout/page-skeleton.js +7 -14
- package/dist/blocks/layout/page-skeleton.js.map +1 -1
- package/dist/blocks/layout/screen-skeleton.d.ts +16 -0
- package/dist/blocks/layout/screen-skeleton.d.ts.map +1 -0
- package/dist/blocks/layout/screen-skeleton.js +8 -0
- package/dist/blocks/layout/screen-skeleton.js.map +1 -0
- package/dist/blocks/layout/sheet.d.ts +3 -2
- package/dist/blocks/layout/sheet.d.ts.map +1 -1
- package/dist/blocks/layout/sheet.js +41 -9
- package/dist/blocks/layout/sheet.js.map +1 -1
- package/dist/blocks/layout/smart-input.d.ts.map +1 -1
- package/dist/blocks/layout/smart-input.js +8 -1
- package/dist/blocks/layout/smart-input.js.map +1 -1
- package/dist/blocks/lists/list-item.d.ts +3 -1
- package/dist/blocks/lists/list-item.d.ts.map +1 -1
- package/dist/blocks/lists/list-item.js +9 -1
- package/dist/blocks/lists/list-item.js.map +1 -1
- package/dist/blocks/lists/notification-item.d.ts +3 -1
- package/dist/blocks/lists/notification-item.d.ts.map +1 -1
- package/dist/blocks/lists/notification-item.js +10 -2
- package/dist/blocks/lists/notification-item.js.map +1 -1
- package/dist/blocks/lists/swipeable-item.d.ts.map +1 -1
- package/dist/blocks/lists/swipeable-item.js +7 -4
- package/dist/blocks/lists/swipeable-item.js.map +1 -1
- package/dist/blocks/navigation/bottom-nav.d.ts.map +1 -1
- package/dist/blocks/navigation/bottom-nav.js +9 -2
- package/dist/blocks/navigation/bottom-nav.js.map +1 -1
- package/dist/blocks/navigation/drawer-menu.d.ts +3 -2
- package/dist/blocks/navigation/drawer-menu.d.ts.map +1 -1
- package/dist/blocks/navigation/drawer-menu.js +88 -29
- package/dist/blocks/navigation/drawer-menu.js.map +1 -1
- package/dist/blocks/navigation/header.d.ts +1 -1
- package/dist/blocks/navigation/header.d.ts.map +1 -1
- package/dist/blocks/navigation/header.js +12 -3
- package/dist/blocks/navigation/header.js.map +1 -1
- package/dist/blocks/navigation/navigation-sidebar.d.ts +3 -1
- package/dist/blocks/navigation/navigation-sidebar.d.ts.map +1 -1
- package/dist/blocks/navigation/navigation-sidebar.js +12 -5
- package/dist/blocks/navigation/navigation-sidebar.js.map +1 -1
- package/dist/blocks/navigation/tab-bar.d.ts.map +1 -1
- package/dist/blocks/navigation/tab-bar.js +8 -2
- package/dist/blocks/navigation/tab-bar.js.map +1 -1
- package/dist/components/accordion/accordion.d.ts +1 -1
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/accordion/accordion.js +10 -4
- package/dist/components/accordion/accordion.js.map +1 -1
- package/dist/components/alert/alert.js +4 -4
- package/dist/components/alert/alert.js.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.d.ts +3 -2
- package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +15 -4
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/badge/badge.js +6 -6
- package/dist/components/badge/badge.js.map +1 -1
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button/button.js +11 -5
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/card/card.d.ts +2 -1
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card/card.js +12 -3
- package/dist/components/card/card.js.map +1 -1
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox/checkbox.js +7 -1
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/context-menu/context-menu.d.ts +3 -2
- package/dist/components/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/context-menu/context-menu.js +12 -3
- package/dist/components/context-menu/context-menu.js.map +1 -1
- package/dist/components/data-row/data-row.d.ts.map +1 -1
- package/dist/components/data-row/data-row.js +8 -5
- package/dist/components/data-row/data-row.js.map +1 -1
- package/dist/components/dialog/dialog.d.ts +3 -2
- package/dist/components/dialog/dialog.d.ts.map +1 -1
- package/dist/components/dialog/dialog.js +14 -3
- package/dist/components/dialog/dialog.js.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.d.ts +3 -2
- package/dist/components/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/dropdown-menu/dropdown-menu.js +12 -3
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/form-field/form-field.d.ts.map +1 -1
- package/dist/components/form-field/form-field.js +6 -3
- package/dist/components/form-field/form-field.js.map +1 -1
- package/dist/components/hover-card/hover-card.d.ts +2 -1
- package/dist/components/hover-card/hover-card.d.ts.map +1 -1
- package/dist/components/hover-card/hover-card.js +17 -2
- package/dist/components/hover-card/hover-card.js.map +1 -1
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/input.js +3 -1
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/labeled-field/labeled-field.d.ts.map +1 -1
- package/dist/components/labeled-field/labeled-field.js +3 -1
- package/dist/components/labeled-field/labeled-field.js.map +1 -1
- package/dist/components/menubar/menubar.d.ts +3 -2
- package/dist/components/menubar/menubar.d.ts.map +1 -1
- package/dist/components/menubar/menubar.js +12 -3
- package/dist/components/menubar/menubar.js.map +1 -1
- package/dist/components/numeric-input/numeric-input.d.ts +2 -2
- package/dist/components/numeric-input/numeric-input.d.ts.map +1 -1
- package/dist/components/numeric-input/numeric-input.js +18 -6
- package/dist/components/numeric-input/numeric-input.js.map +1 -1
- package/dist/components/otp-input/index.d.ts +2 -0
- package/dist/components/otp-input/index.d.ts.map +1 -0
- package/dist/components/otp-input/index.js +2 -0
- package/dist/components/otp-input/index.js.map +1 -0
- package/dist/components/otp-input/otp-input.d.ts +97 -0
- package/dist/components/otp-input/otp-input.d.ts.map +1 -0
- package/dist/components/otp-input/otp-input.js +88 -0
- package/dist/components/otp-input/otp-input.js.map +1 -0
- package/dist/components/popover/popover.d.ts +2 -1
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.js +16 -3
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/segmented-control/segmented-control.d.ts +3 -3
- package/dist/components/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/components/segmented-control/segmented-control.js +19 -5
- package/dist/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/select/select.d.ts +2 -1
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.js +30 -11
- package/dist/components/select/select.js.map +1 -1
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton/skeleton.js +6 -2
- package/dist/components/skeleton/skeleton.js.map +1 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +7 -1
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/tabs/tabs.d.ts +3 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js +9 -3
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/textarea/textarea.d.ts +2 -2
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/textarea/textarea.js +19 -6
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/toast/toast.d.ts.map +1 -1
- package/dist/components/toast/toast.js +12 -2
- package/dist/components/toast/toast.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/frosted-surface.d.ts +33 -0
- package/dist/lib/frosted-surface.d.ts.map +1 -0
- package/dist/lib/frosted-surface.js +181 -0
- package/dist/lib/frosted-surface.js.map +1 -0
- package/dist/lib/interaction-tokens.d.ts +26 -0
- package/dist/lib/interaction-tokens.d.ts.map +1 -0
- package/dist/lib/interaction-tokens.js +70 -0
- package/dist/lib/interaction-tokens.js.map +1 -0
- package/dist/lib/react-native-classname.d.ts +23 -0
- package/dist/lib/react-native-classname.d.ts.map +1 -0
- package/dist/lib/react-native-classname.js +2 -0
- package/dist/lib/react-native-classname.js.map +1 -0
- package/dist/lib/theme-colors.d.ts +33 -4
- package/dist/lib/theme-colors.d.ts.map +1 -1
- package/dist/lib/theme-colors.js +249 -37
- package/dist/lib/theme-colors.js.map +1 -1
- package/dist/lib/visual-tokens.d.ts +39 -0
- package/dist/lib/visual-tokens.d.ts.map +1 -0
- package/dist/lib/visual-tokens.js +91 -0
- package/dist/lib/visual-tokens.js.map +1 -0
- package/dist/vite.d.ts +47 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +110 -0
- package/dist/vite.js.map +1 -0
- package/package.json +16 -2
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
import { type ViewProps } from 'react-native';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
2
3
|
export type PageSkeletonVariant = 'dashboard' | 'list' | 'settings' | 'card' | 'generic';
|
|
3
4
|
export type PageSkeletonPadding = 'none' | 'sm' | 'default' | 'lg';
|
|
5
|
+
export type PageSkeletonHeaderPlaceholder = 'compact' | 'default';
|
|
4
6
|
export interface PageSkeletonProps extends ViewProps {
|
|
5
7
|
variant: PageSkeletonVariant;
|
|
6
8
|
/** Rows/items for list (default 3) or settings (default 4) variant. */
|
|
7
9
|
count?: number;
|
|
8
10
|
/** Container padding. */
|
|
9
11
|
padding?: PageSkeletonPadding;
|
|
12
|
+
/** Optional header slot rendered above skeleton content. */
|
|
13
|
+
header?: ReactNode;
|
|
14
|
+
/** Optional placeholder header (when no real header is available yet). */
|
|
15
|
+
headerPlaceholder?: boolean | PageSkeletonHeaderPlaceholder;
|
|
10
16
|
}
|
|
11
|
-
export declare function PageSkeleton({ variant, count, padding, className, ...props }: PageSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function PageSkeleton({ variant, count, padding, header, headerPlaceholder, className, ...props }: PageSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
12
18
|
export declare namespace PageSkeleton {
|
|
13
19
|
var displayName: string;
|
|
14
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-skeleton.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/page-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"page-skeleton.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/page-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAAC;AACzF,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC;AACnE,MAAM,MAAM,6BAA6B,GAAG,SAAS,GAAG,SAAS,CAAC;AAElE,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,OAAO,EAAE,mBAAmB,CAAC;IAC7B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,GAAG,6BAA6B,CAAC;CAC7D;AAoKD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,OAAmB,EACnB,MAAM,EACN,iBAAyB,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAqBnB;yBA7Be,YAAY"}
|
|
@@ -10,6 +10,10 @@ const PADDING_CLASS = {
|
|
|
10
10
|
default: 'p-4',
|
|
11
11
|
lg: 'p-6',
|
|
12
12
|
};
|
|
13
|
+
function HeaderPlaceholder({ variant }) {
|
|
14
|
+
const compact = variant === 'compact';
|
|
15
|
+
return (_jsx(View, { className: cn(compact ? 'px-4 pt-3 pb-2' : 'px-4 pt-4 pb-3'), children: _jsxs(Row, { align: "center", justify: "between", children: [_jsxs(Row, { align: "center", gap: "sm", children: [_jsx(Skeleton, { className: cn('rounded-full', compact ? 'h-8 w-8' : 'h-10 w-10') }), _jsxs(Stack, { gap: "xs", children: [_jsx(Skeleton, { className: cn('h-3 rounded-full', compact ? 'w-24' : 'w-28') }), _jsx(Skeleton, { className: cn('h-3 rounded-full', compact ? 'w-16' : 'w-20') })] })] }), _jsx(Skeleton, { className: cn('rounded-full', compact ? 'h-8 w-8' : 'h-10 w-10') })] }) }));
|
|
16
|
+
}
|
|
13
17
|
// ─── Variant internals ────────────────────────────────────────
|
|
14
18
|
function DashboardVariant({ className, padding = 'default', ...props }) {
|
|
15
19
|
return (_jsx(View, { className: cn(PADDING_CLASS[padding], className), ...props, children: _jsxs(Stack, { gap: "md", children: [_jsxs(View, { className: "rounded-2xl border border-border bg-card p-4", children: [_jsxs(Row, { className: "mb-3 gap-2", align: "center", children: [_jsx(Skeleton, { className: "h-6 w-16 rounded-full" }), _jsx(Skeleton, { className: "h-6 w-20 rounded-full" }), _jsx(Skeleton, { className: "h-6 w-14 rounded-full" })] }), _jsx(Skeleton, { className: "h-4 w-full" }), _jsx(Skeleton, { className: "mt-1 h-4 w-4/5" })] }), _jsx(Row, { gap: "sm", align: "stretch", children: [1, 2, 3].map((i) => (_jsxs(View, { className: "flex-1 rounded-2xl border border-border bg-card p-3", children: [_jsx(Skeleton, { className: "mb-2 h-3 w-2/3" }), _jsx(Skeleton, { className: "h-6 w-1/2" })] }, i))) }), _jsx(Skeleton, { className: "h-4 w-1/3" }), [1, 2, 3].map((i) => (_jsxs(Row, { className: "items-center gap-3 py-3", align: "center", children: [_jsx(Skeleton, { className: "h-10 w-10 shrink-0 rounded-full" }), _jsxs(Stack, { className: "flex-1", gap: "xs", children: [_jsx(Skeleton, { className: "h-4 w-3/4" }), _jsx(Skeleton, { className: "h-3 w-1/2" })] })] }, i)))] }) }));
|
|
@@ -27,20 +31,9 @@ function GenericVariant({ className, padding = 'default', ...props }) {
|
|
|
27
31
|
return (_jsx(View, { className: cn(PADDING_CLASS[padding], className), ...props, children: _jsxs(Stack, { gap: "lg", children: [_jsx(Skeleton, { className: "h-6 w-1/2" }), _jsxs(Stack, { gap: "sm", children: [_jsx(Skeleton, { className: "h-4 w-full" }), _jsx(Skeleton, { className: "h-4 w-5/6" }), _jsx(Skeleton, { className: "h-4 w-4/5" })] })] }) }));
|
|
28
32
|
}
|
|
29
33
|
// ─── Component ───────────────────────────────────────────────
|
|
30
|
-
export function PageSkeleton({ variant, count, padding = 'default', className, ...props }) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
if (variant === 'list') {
|
|
35
|
-
return (_jsx(ListVariant, { variant: "list", count: count ?? 3, padding: padding, className: className, ...props }));
|
|
36
|
-
}
|
|
37
|
-
if (variant === 'settings') {
|
|
38
|
-
return (_jsx(SettingsVariant, { variant: "settings", count: count ?? 4, padding: padding, className: className, ...props }));
|
|
39
|
-
}
|
|
40
|
-
if (variant === 'card') {
|
|
41
|
-
return _jsx(CardVariant, { padding: padding, className: className, ...props });
|
|
42
|
-
}
|
|
43
|
-
return _jsx(GenericVariant, { padding: padding, className: className, ...props });
|
|
34
|
+
export function PageSkeleton({ variant, count, padding = 'default', header, headerPlaceholder = false, className, ...props }) {
|
|
35
|
+
const resolvedHeaderPlaceholder = headerPlaceholder === 'compact' ? 'compact' : 'default';
|
|
36
|
+
return (_jsxs(View, { className: cn('w-full', className), ...props, children: [header, !header && headerPlaceholder && _jsx(HeaderPlaceholder, { variant: resolvedHeaderPlaceholder }), variant === 'dashboard' ? (_jsx(DashboardVariant, { padding: padding })) : variant === 'list' ? (_jsx(ListVariant, { variant: "list", count: count ?? 3, padding: padding })) : variant === 'settings' ? (_jsx(SettingsVariant, { variant: "settings", count: count ?? 4, padding: padding })) : variant === 'card' ? (_jsx(CardVariant, { padding: padding })) : (_jsx(GenericVariant, { padding: padding }))] }));
|
|
44
37
|
}
|
|
45
38
|
PageSkeleton.displayName = 'PageSkeleton';
|
|
46
39
|
//# sourceMappingURL=page-skeleton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-skeleton.js","sourceRoot":"","sources":["../../../src/blocks/layout/page-skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"page-skeleton.js","sourceRoot":"","sources":["../../../src/blocks/layout/page-skeleton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAoBlC,MAAM,aAAa,GAAwC;IACzD,IAAI,EAAE,KAAK;IACX,EAAE,EAAE,KAAK;IACT,OAAO,EAAE,KAAK;IACd,EAAE,EAAE,KAAK;CACV,CAAC;AAEF,SAAS,iBAAiB,CAAC,EAAE,OAAO,EAA8C;IAChF,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC;IAEtC,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAChE,MAAC,GAAG,IAAC,KAAK,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,aACnC,MAAC,GAAG,IAAC,KAAK,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,aAC1B,KAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAI,EAC9E,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,KAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAI,EAC1E,KAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAI,IACpE,IACJ,EACN,KAAC,QAAQ,IAAC,SAAS,EAAE,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAI,IAC1E,GACD,CACR,CAAC;AACJ,CAAC;AAED,iEAAiE;AAEjE,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,GAAG,KAAK,EACqC;IAC7C,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,YAC/D,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aAEb,MAAC,IAAI,IAAC,SAAS,EAAC,8CAA8C,aAC5D,MAAC,GAAG,IAAC,SAAS,EAAC,YAAY,EAAC,KAAK,EAAC,QAAQ,aACxC,KAAC,QAAQ,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAC9C,KAAC,QAAQ,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAC9C,KAAC,QAAQ,IAAC,SAAS,EAAC,uBAAuB,GAAG,IAC1C,EACN,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,gBAAgB,GAAG,IAClC,EAGP,KAAC,GAAG,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,SAAS,YAC1B,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,MAAC,IAAI,IAAS,SAAS,EAAC,qDAAqD,aAC3E,KAAC,QAAQ,IAAC,SAAS,EAAC,gBAAgB,GAAG,EACvC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,KAFzB,CAAC,CAGL,CACR,CAAC,GACE,EAGN,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EACjC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,MAAC,GAAG,IAAS,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAC,QAAQ,aAC7D,KAAC,QAAQ,IAAC,SAAS,EAAC,iCAAiC,GAAG,EACxD,MAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,aAChC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC5B,KALA,CAAC,CAML,CACP,CAAC,IACI,GACH,CACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,KAAK,GAAG,CAAC,EACT,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,GAAG,KAAK,EACgC;IACxC,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,YAC/D,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EACjC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3C,MAAC,GAAG,IAAS,SAAS,EAAC,gDAAgD,EAAC,KAAK,EAAC,QAAQ,aACpF,KAAC,QAAQ,IAAC,SAAS,EAAC,iCAAiC,GAAG,EACxD,MAAC,KAAK,IAAC,SAAS,EAAC,QAAQ,EAAC,GAAG,EAAC,IAAI,aAChC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC5B,KALA,CAAC,CAML,CACP,CAAC,IACI,GACH,CACR,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EACvB,KAAK,GAAG,CAAC,EACT,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,GAAG,KAAK,EACoC;IAC5C,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,YAC/D,KAAC,KAAK,IAAC,GAAG,EAAC,MAAM,YACd,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC3C,MAAC,GAAG,IAEF,SAAS,EAAC,0DAA0D,EACpE,KAAK,EAAC,QAAQ,aAEd,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,UAAU,GAAG,KAL5B,CAAC,CAMF,CACP,CAAC,GACI,GACH,CACR,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,GAAG,KAAK,EACqC;IAC7C,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,YAC/D,KAAC,IAAI,IAAC,SAAS,EAAC,0DAA0D,YACxE,MAAC,IAAI,IAAC,SAAS,EAAC,WAAW,aACzB,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC7B,GACF,GACF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,GAAG,KAAK,EACqC;IAC7C,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KAAM,KAAK,YAC/D,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,MAAC,KAAK,IAAC,GAAG,EAAC,IAAI,aACb,KAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,GAAG,EACnC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,EAClC,KAAC,QAAQ,IAAC,SAAS,EAAC,WAAW,GAAG,IAC5B,IACF,GACH,CACR,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,OAAO,GAAG,SAAS,EACnB,MAAM,EACN,iBAAiB,GAAG,KAAK,EACzB,SAAS,EACT,GAAG,KAAK,EACU;IAClB,MAAM,yBAAyB,GAC7B,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1D,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAM,KAAK,aAChD,MAAM,EACN,CAAC,MAAM,IAAI,iBAAiB,IAAI,KAAC,iBAAiB,IAAC,OAAO,EAAE,yBAAyB,GAAI,EACzF,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,CACzB,KAAC,gBAAgB,IAAC,OAAO,EAAE,OAAO,GAAI,CACvC,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,KAAC,WAAW,IAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,GAAI,CACpE,CAAC,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,CAC3B,KAAC,eAAe,IAAC,OAAO,EAAC,UAAU,EAAC,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,GAAI,CAC5E,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,KAAC,WAAW,IAAC,OAAO,EAAE,OAAO,GAAI,CAClC,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,IAAC,OAAO,EAAE,OAAO,GAAI,CACrC,IACI,CACR,CAAC;AACJ,CAAC;AAED,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ViewProps } from 'react-native';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
import { type PageSkeletonHeaderPlaceholder, type PageSkeletonPadding, type PageSkeletonVariant } from './page-skeleton';
|
|
4
|
+
export interface ScreenSkeletonProps extends Omit<ViewProps, 'children'> {
|
|
5
|
+
variant?: PageSkeletonVariant;
|
|
6
|
+
count?: number;
|
|
7
|
+
padding?: PageSkeletonPadding;
|
|
8
|
+
header?: ReactNode;
|
|
9
|
+
headerPlaceholder?: boolean | PageSkeletonHeaderPlaceholder;
|
|
10
|
+
className?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function ScreenSkeleton({ variant, count, padding, header, headerPlaceholder, className, ...props }: ScreenSkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare namespace ScreenSkeleton {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=screen-skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-skeleton.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/screen-skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAEL,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACtE,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,GAAG,6BAA6B,CAAC;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAmB,EACnB,KAAK,EACL,OAAmB,EACnB,MAAM,EACN,iBAA6B,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,mBAAmB,2CAYrB;yBApBe,cAAc"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PageSkeleton, } from './page-skeleton';
|
|
3
|
+
import { cn } from '../../lib/cn';
|
|
4
|
+
export function ScreenSkeleton({ variant = 'generic', count, padding = 'default', header, headerPlaceholder = 'default', className, ...props }) {
|
|
5
|
+
return (_jsx(PageSkeleton, { variant: variant, count: count, padding: padding, header: header, headerPlaceholder: headerPlaceholder, className: cn('flex-1', className), ...props }));
|
|
6
|
+
}
|
|
7
|
+
ScreenSkeleton.displayName = 'ScreenSkeleton';
|
|
8
|
+
//# sourceMappingURL=screen-skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-skeleton.js","sourceRoot":"","sources":["../../../src/blocks/layout/screen-skeleton.tsx"],"names":[],"mappings":";AAEA,OAAO,EACL,YAAY,GAIb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAWlC,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,GAAG,SAAS,EACnB,KAAK,EACL,OAAO,GAAG,SAAS,EACnB,MAAM,EACN,iBAAiB,GAAG,SAAS,EAC7B,SAAS,EACT,GAAG,KAAK,EACY;IACpB,OAAO,CACL,KAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,KAC9B,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewProps } from 'react-native';
|
|
3
|
-
|
|
3
|
+
import { type FrostedSurfaceProps } from '../../lib/frosted-surface';
|
|
4
|
+
export interface SheetProps extends FrostedSurfaceProps {
|
|
4
5
|
open: boolean;
|
|
5
6
|
onOpenChange: (open: boolean) => void;
|
|
6
7
|
children: React.ReactNode;
|
|
@@ -22,7 +23,7 @@ export interface SheetCloseProps extends ViewProps {
|
|
|
22
23
|
children: React.ReactNode;
|
|
23
24
|
asChild?: boolean;
|
|
24
25
|
}
|
|
25
|
-
export declare function Sheet({ open, onOpenChange, children, maxHeight, maxWidth, }: SheetProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function Sheet({ open, onOpenChange, children, maxHeight, maxWidth: maxWidthProp, frosted, blurIntensity, blurTintToken, }: SheetProps): import("react/jsx-runtime").JSX.Element;
|
|
26
27
|
export declare function SheetHeader({ title, description, className, children, ...props }: SheetHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
27
28
|
export declare function SheetContent({ scrollEnabled, className, children, ...props }: SheetContentProps): import("react/jsx-runtime").JSX.Element;
|
|
28
29
|
export declare function SheetFooter({ className, ...props }: SheetFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAQL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAQL,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAOtB,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAYnC,MAAM,WAAW,UAAW,SAAQ,mBAAmB;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;CAAG;AAEtD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,KAAK,CAAC,EACpB,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,SAAkB,EAClB,QAAQ,EAAE,YAAY,EACtB,OAAe,EACf,aAAa,EACb,aAAa,GACd,EAAE,UAAU,2CA8EZ;AAED,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAoClB;AAED,wBAAgB,YAAY,CAAC,EAC3B,aAAoB,EACpB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAkBnB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,2CAOpE;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,2CAmBrF"}
|
|
@@ -1,30 +1,62 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React, { createContext, useContext } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Modal, Platform, Pressable, ScrollView, useWindowDimensions, View, } from 'react-native';
|
|
4
4
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
5
5
|
import { Text } from '../../components/text';
|
|
6
6
|
import { cn } from '../../lib/cn';
|
|
7
|
+
import { useThemeColors } from '../../lib/theme-colors';
|
|
8
|
+
import { useInteractionTokens, withInteractivePressableStyle } from '../../lib/interaction-tokens';
|
|
9
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
10
|
+
import { useFrostedSurface, useFrostedBackdrop, } from '../../lib/frosted-surface';
|
|
7
11
|
const SheetContext = createContext({ onClose: () => { } });
|
|
8
12
|
// ─── Components ───────────────────────────────────────────────
|
|
9
|
-
export function Sheet({ open, onOpenChange, children, maxHeight = 'full', maxWidth =
|
|
13
|
+
export function Sheet({ open, onOpenChange, children, maxHeight = 'full', maxWidth: maxWidthProp, frosted = false, blurIntensity, blurTintToken, }) {
|
|
10
14
|
const insets = useSafeAreaInsets();
|
|
15
|
+
const colors = useThemeColors();
|
|
16
|
+
const visual = useVisualTokens();
|
|
11
17
|
const onClose = () => onOpenChange(false);
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
const frostedSurface = useFrostedSurface({
|
|
19
|
+
frosted,
|
|
20
|
+
blurIntensity,
|
|
21
|
+
blurTintToken,
|
|
22
|
+
defaultTintToken: 'surfaceTranslucent',
|
|
23
|
+
defaultBlurPreset: 'medium',
|
|
24
|
+
});
|
|
25
|
+
const frostedBackdrop = useFrostedBackdrop({
|
|
26
|
+
frosted,
|
|
27
|
+
blurIntensity: typeof blurIntensity === 'number' && Number.isFinite(blurIntensity)
|
|
28
|
+
? blurIntensity * visual.frostedBackdropBlurScale
|
|
29
|
+
: undefined,
|
|
30
|
+
tintColor: colors.overlay,
|
|
31
|
+
});
|
|
32
|
+
const { height: screenHeight, width: windowWidth } = useWindowDimensions();
|
|
33
|
+
const maxWidth = maxWidthProp ?? visual.sheetMaxWidth;
|
|
34
|
+
// Full width on phones; cap at maxWidth only on tablets/web (breakpoint)
|
|
35
|
+
const widthStyle = typeof maxWidth === 'number' && windowWidth >= visual.sheetTabletBreakpoint
|
|
16
36
|
? { maxWidth, alignSelf: 'center', width: maxWidth }
|
|
17
37
|
: {};
|
|
18
38
|
const maxHeightStyle = maxHeight === 'full'
|
|
19
39
|
? { flex: 1 }
|
|
20
40
|
: maxHeight === 'half'
|
|
21
|
-
? {
|
|
41
|
+
? {
|
|
42
|
+
maxHeight: screenHeight * visual.sheetHalfMaxHeightRatio,
|
|
43
|
+
minHeight: Math.min(screenHeight * visual.sheetHalfMaxHeightRatio, visual.sheetHalfMinHeight),
|
|
44
|
+
}
|
|
22
45
|
: { maxHeight };
|
|
23
|
-
|
|
46
|
+
const sheetStyle = [
|
|
47
|
+
maxHeightStyle,
|
|
48
|
+
{ paddingBottom: Math.max(insets.bottom, 16) },
|
|
49
|
+
widthStyle,
|
|
50
|
+
frostedSurface.surfaceStyle,
|
|
51
|
+
];
|
|
52
|
+
return (_jsx(Modal, { visible: open, transparent: true, animationType: "slide", onRequestClose: onClose, statusBarTranslucent: Platform.OS === 'android', presentationStyle: "overFullScreen", children: _jsxs(View, { className: "flex-1 justify-end", style: { backgroundColor: frosted ? 'transparent' : colors.overlay }, children: [frostedBackdrop, _jsx(Pressable, { className: "flex-1", onPress: onClose }), _jsxs(View, { className: cn('rounded-t-xl border border-border overflow-hidden relative', frosted ? 'bg-transparent' : 'bg-background'), style: sheetStyle, children: [frostedSurface.overlay, _jsx(SheetContext.Provider, { value: { onClose }, children: children })] })] }) }));
|
|
24
53
|
}
|
|
25
54
|
export function SheetHeader({ title, description, className, children, ...props }) {
|
|
26
55
|
const { onClose } = useContext(SheetContext);
|
|
27
|
-
|
|
56
|
+
const interaction = useInteractionTokens();
|
|
57
|
+
return (_jsxs(View, { className: cn('flex-row items-center justify-between gap-3 border-b border-border px-4 py-3', className), ...props, children: [_jsxs(View, { className: "flex-1 min-w-0 gap-0.5 self-stretch justify-center", children: [title && (_jsx(Text, { className: "text-base font-semibold text-foreground text-left", children: title })), description && (_jsx(Text, { className: "text-sm text-muted-foreground text-left", children: description }))] }), children ?? (_jsx(Pressable, { onPress: onClose, className: "p-2 -mr-2 -mt-2 -mb-2 rounded-lg", style: withInteractivePressableStyle(undefined, interaction, {
|
|
58
|
+
pressedVariant: 'default',
|
|
59
|
+
}), hitSlop: { top: 8, bottom: 8, left: 8, right: 8 }, accessibilityRole: "button", accessibilityLabel: "Close", children: _jsx(Text, { className: "text-xl text-muted-foreground leading-none", children: "\u00D7" }) }))] }));
|
|
28
60
|
}
|
|
29
61
|
export function SheetContent({ scrollEnabled = true, className, children, ...props }) {
|
|
30
62
|
if (scrollEnabled) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../src/blocks/layout/sheet.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"sheet.js","sourceRoot":"","sources":["../../../src/blocks/layout/sheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-input.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/smart-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAQ,SAAS,EAAkC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"smart-input.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/smart-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAQ,SAAS,EAAkC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAOpG,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,qCAAqC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uDAAuD;IACvD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,oCAAoC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,kFAAkF;IAClF,OAAO,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oGAAoG;IACpG,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,eAAe,CAAC;IACxD,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,mFA6DrB,CAAC"}
|
|
@@ -4,10 +4,17 @@ import { View, TextInput, KeyboardAvoidingView, Platform } from 'react-native';
|
|
|
4
4
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
5
5
|
import { cn } from '../../lib/cn';
|
|
6
6
|
import { useThemeColors } from '../../lib/theme-colors';
|
|
7
|
+
import { useInteractionTokens } from '../../lib/interaction-tokens';
|
|
8
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
7
9
|
export const SmartInput = forwardRef(function SmartInput({ leftSlot, centerSlot, rightSlot, variant = 'bar', className, inputClassName, submitBehavior = 'newline', safeArea = true, placeholderTextColor, editable = true, ...props }, ref) {
|
|
8
10
|
const insets = useSafeAreaInsets();
|
|
9
11
|
const colors = useThemeColors();
|
|
12
|
+
const interaction = useInteractionTokens();
|
|
13
|
+
const visual = useVisualTokens();
|
|
10
14
|
const bottomPadding = safeArea ? Math.max(insets.bottom, 12) : 12;
|
|
11
|
-
return (_jsx(KeyboardAvoidingView, { behavior: Platform.OS === 'ios' ? 'padding' : undefined, className: "w-full", children: _jsxs(View, { className: cn('w-full flex-row items-center gap-2 px-3 py-2 bg-background', variant === 'bar' && 'border-t border-border', variant === 'card' && 'rounded-2xl border border-border shadow-md', className), style: { paddingBottom: bottomPadding }, children: [leftSlot && _jsx(View, { className: "shrink-0", children: leftSlot }), centerSlot && _jsx(View, { className: "shrink-0", children: centerSlot }), _jsx(TextInput, { ref: ref,
|
|
15
|
+
return (_jsx(KeyboardAvoidingView, { behavior: Platform.OS === 'ios' ? 'padding' : undefined, className: "w-full", children: _jsxs(View, { className: cn('w-full flex-row items-center gap-2 px-3 py-2 bg-background', variant === 'bar' && 'border-t border-border', variant === 'card' && 'rounded-2xl border border-border shadow-md', className), style: { paddingBottom: bottomPadding }, children: [leftSlot && _jsx(View, { className: "shrink-0", children: leftSlot }), centerSlot && _jsx(View, { className: "shrink-0", children: centerSlot }), _jsx(TextInput, { ref: ref, style: [
|
|
16
|
+
{ maxHeight: visual.smartInputMaxHeight },
|
|
17
|
+
!editable ? { opacity: interaction.disabledOpacity } : null,
|
|
18
|
+
], className: cn('flex-1 min-h-11 px-4 py-3 text-sm text-foreground placeholder:text-muted-foreground outline-none', variant === 'bar' && 'rounded-xl border border-border bg-muted', variant === 'card' && 'rounded-xl bg-transparent', inputClassName), multiline: true, submitBehavior: submitBehavior, textAlignVertical: "top", placeholderTextColor: placeholderTextColor ?? colors.placeholder, editable: editable, ...props }), rightSlot && _jsx(View, { className: "shrink-0", children: rightSlot })] }) }));
|
|
12
19
|
});
|
|
13
20
|
//# sourceMappingURL=smart-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-input.js","sourceRoot":"","sources":["../../../src/blocks/layout/smart-input.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAuB,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"smart-input.js","sourceRoot":"","sources":["../../../src/blocks/layout/smart-input.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAuB,MAAM,cAAc,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAqB1D,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAA6B,SAAS,UAAU,CAClF,EACE,QAAQ,EACR,UAAU,EACV,SAAS,EACT,OAAO,GAAG,KAAK,EACf,SAAS,EACT,cAAc,EACd,cAAc,GAAG,SAAS,EAC1B,QAAQ,GAAG,IAAI,EACf,oBAAoB,EACpB,QAAQ,GAAG,IAAI,EACf,GAAG,KAAK,EACT,EACD,GAAG;IAEH,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,OAAO,CACL,KAAC,oBAAoB,IACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACvD,SAAS,EAAC,QAAQ,YAElB,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,4DAA4D,EAC5D,OAAO,KAAK,KAAK,IAAI,wBAAwB,EAC7C,OAAO,KAAK,MAAM,IAAI,4CAA4C,EAClE,SAAS,CACV,EACD,KAAK,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,aAEtC,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,QAAQ,GAAQ,EACxD,UAAU,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,UAAU,GAAQ,EAC7D,KAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;wBACL,EAAE,SAAS,EAAE,MAAM,CAAC,mBAAmB,EAAE;wBACzC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI;qBAC5D,EACD,SAAS,EAAE,EAAE,CACX,kGAAkG,EAClG,OAAO,KAAK,KAAK,IAAI,0CAA0C,EAC/D,OAAO,KAAK,MAAM,IAAI,2BAA2B,EACjD,cAAc,CACf,EACD,SAAS,QACT,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAC,KAAK,EACvB,oBAAoB,EAAE,oBAAoB,IAAI,MAAM,CAAC,WAAW,EAChE,QAAQ,EAAE,QAAQ,KACd,KAAK,GACT,EACD,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,UAAU,YAAE,SAAS,GAAQ,IACtD,GACc,CACxB,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -10,6 +10,8 @@ export interface ListItemProps extends Omit<PressableProps, 'children'> {
|
|
|
10
10
|
action?: React.ReactNode;
|
|
11
11
|
showBorder?: boolean;
|
|
12
12
|
compact?: boolean;
|
|
13
|
+
/** Show a skeleton placeholder instead of content. */
|
|
14
|
+
loading?: boolean;
|
|
13
15
|
}
|
|
14
|
-
export declare function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder, compact, className, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder, compact, loading, className, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
15
17
|
//# sourceMappingURL=list-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"list-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAOpE,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACrE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAkCD,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAiB,EACjB,OAAe,EACf,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,2CAqCf"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { View, Pressable } from 'react-native';
|
|
3
3
|
import { Text } from '../../components/text';
|
|
4
|
+
import { Skeleton } from '../../components/skeleton';
|
|
4
5
|
import { cn } from '../../lib/cn';
|
|
6
|
+
// ─── Skeleton ─────────────────────────────────────────────────
|
|
7
|
+
function ListItemSkeleton({ showBorder = true, compact = false, className, }) {
|
|
8
|
+
return (_jsxs(View, { className: cn('flex-row items-center bg-card px-4', compact ? 'py-2' : 'py-3', showBorder && 'border-b border-border', className), children: [_jsx(Skeleton, { className: "mr-3 h-8 w-8 rounded-lg" }), _jsxs(View, { className: "flex-1 gap-1.5", children: [_jsx(Skeleton, { className: "h-4 w-2/3 rounded-md" }), _jsx(Skeleton, { className: "h-3 w-1/3 rounded-md" })] }), _jsx(Skeleton, { className: "h-4 w-4 rounded-sm" })] }));
|
|
9
|
+
}
|
|
5
10
|
// ─── Component ───────────────────────────────────────────────
|
|
6
|
-
export function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder = true, compact = false, className, ...props }) {
|
|
11
|
+
export function ListItem({ icon, title, subtitle, description, rightIcon, rightText, action, showBorder = true, compact = false, loading = false, className, ...props }) {
|
|
12
|
+
if (loading) {
|
|
13
|
+
return _jsx(ListItemSkeleton, { showBorder: showBorder, compact: compact, className: className });
|
|
14
|
+
}
|
|
7
15
|
return (_jsxs(Pressable, { className: cn('flex-row items-center bg-card px-4', compact ? 'py-2' : 'py-3', showBorder && 'border-b border-border', 'active:bg-muted', className), ...props, children: [icon && _jsx(View, { className: "mr-3 text-muted-foreground", children: icon }), _jsxs(View, { className: "flex-1", children: [_jsx(Text, { className: "text-base text-foreground", children: title }), subtitle && _jsx(Text, { className: "text-sm text-muted-foreground", children: subtitle }), description && (_jsx(Text, { className: "mt-1 text-sm text-muted-foreground", numberOfLines: 2, children: description }))] }), rightText && _jsx(Text, { className: "mr-2 text-sm text-muted-foreground", children: rightText }), rightIcon && _jsx(View, { className: "text-muted-foreground", children: rightIcon }), action, !action && !rightIcon && _jsx(Text, { className: "text-lg text-muted-foreground", children: "\u203A" })] }));
|
|
8
16
|
}
|
|
9
17
|
//# sourceMappingURL=list-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/list-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAkBlC,iEAAiE;AAEjE,SAAS,gBAAgB,CAAC,EACxB,UAAU,GAAG,IAAI,EACjB,OAAO,GAAG,KAAK,EACf,SAAS,GAKV;IACC,OAAO,CACL,MAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACzB,UAAU,IAAI,wBAAwB,EACtC,SAAS,CACV,aAED,KAAC,QAAQ,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAChD,MAAC,IAAI,IAAC,SAAS,EAAC,gBAAgB,aAC9B,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAC7C,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,GAAG,IACxC,EACP,KAAC,QAAQ,IAAC,SAAS,EAAC,oBAAoB,GAAG,IACtC,CACR,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,QAAQ,CAAC,EACvB,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,KAAK,EACf,SAAS,EACT,GAAG,KAAK,EACM;IACd,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,KAAC,gBAAgB,IAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,GAAI,CAAC;IAC9F,CAAC;IAED,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,oCAAoC,EACpC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACzB,UAAU,IAAI,wBAAwB,EACtC,iBAAiB,EACjB,SAAS,CACV,KACG,KAAK,aAGR,IAAI,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,4BAA4B,YAAE,IAAI,GAAQ,EAGnE,MAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,aACtB,KAAC,IAAI,IAAC,SAAS,EAAC,2BAA2B,YAAE,KAAK,GAAQ,EACzD,QAAQ,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,QAAQ,GAAQ,EAC7E,WAAW,IAAI,CACd,KAAC,IAAI,IAAC,SAAS,EAAC,oCAAoC,EAAC,aAAa,EAAE,CAAC,YAClE,WAAW,GACP,CACR,IACI,EAGN,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,oCAAoC,YAAE,SAAS,GAAQ,EACpF,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,YAAE,SAAS,GAAQ,EACvE,MAAM,EACN,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,uBAAS,IACxE,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,8 @@ export interface NotificationItemProps extends Omit<PressableProps, 'children'>
|
|
|
9
9
|
time: string;
|
|
10
10
|
read?: boolean;
|
|
11
11
|
showDot?: boolean;
|
|
12
|
+
/** Show a skeleton placeholder instead of content. */
|
|
13
|
+
loading?: boolean;
|
|
12
14
|
}
|
|
13
|
-
export declare function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read, showDot, className, ...props }: NotificationItemProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read, showDot, loading, className, ...props }: NotificationItemProps): import("react/jsx-runtime").JSX.Element;
|
|
14
16
|
//# sourceMappingURL=notification-item.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"notification-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAQpE,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC7E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAqBD,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAY,EACZ,OAAc,EACd,OAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,2CA+CvB"}
|
|
@@ -2,9 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { View, Pressable } from 'react-native';
|
|
3
3
|
import { Text } from '../../components/text';
|
|
4
4
|
import { Avatar, AvatarFallback, AvatarImage } from '../../components/avatar';
|
|
5
|
+
import { Skeleton } from '../../components/skeleton';
|
|
5
6
|
import { cn } from '../../lib/cn';
|
|
7
|
+
// ─── Skeleton ─────────────────────────────────────────────────
|
|
8
|
+
function NotificationItemSkeleton({ className }) {
|
|
9
|
+
return (_jsxs(View, { className: cn('flex-row items-start px-4 py-3', className), children: [_jsx(Skeleton, { className: "h-10 w-10 rounded-full" }), _jsxs(View, { className: "ml-3 flex-1 gap-2", children: [_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Skeleton, { className: "h-3.5 w-1/3 rounded-md" }), _jsx(Skeleton, { className: "h-3 w-12 rounded-md" })] }), _jsx(Skeleton, { className: "h-3 w-4/5 rounded-md" })] })] }));
|
|
10
|
+
}
|
|
6
11
|
// ─── Component ───────────────────────────────────────────────
|
|
7
|
-
export function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read = false, showDot = true, className, ...props }) {
|
|
8
|
-
|
|
12
|
+
export function NotificationItem({ icon, avatarUrl, avatarFallback, title, message, time, read = false, showDot = true, loading = false, className, ...props }) {
|
|
13
|
+
if (loading) {
|
|
14
|
+
return _jsx(NotificationItemSkeleton, { className: className });
|
|
15
|
+
}
|
|
16
|
+
return (_jsxs(Pressable, { className: cn('flex-row items-start px-4 py-3 active:bg-muted', !read && 'bg-primary-soft-subtle', className), ...props, children: [avatarUrl || avatarFallback ? (_jsxs(Avatar, { className: "h-10 w-10", children: [avatarUrl && _jsx(AvatarImage, { src: avatarUrl }), _jsx(AvatarFallback, { children: avatarFallback })] })) : (icon && (_jsx(View, { className: "h-10 w-10 items-center justify-center rounded-full bg-muted", children: icon }))), _jsxs(View, { className: "ml-3 flex-1", children: [_jsxs(View, { className: "flex-row items-center justify-between", children: [_jsx(Text, { className: cn('text-sm', !read ? 'font-semibold text-foreground' : 'text-foreground'), children: title }), _jsxs(View, { className: "flex-row items-center gap-2", children: [_jsx(Text, { className: "text-xs text-muted-foreground", children: time }), !read && showDot && _jsx(View, { className: "h-2 w-2 rounded-full bg-primary" })] })] }), _jsx(Text, { className: "mt-0.5 text-sm text-muted-foreground", numberOfLines: 2, children: message })] })] }));
|
|
9
17
|
}
|
|
10
18
|
//# sourceMappingURL=notification-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"notification-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/notification-item.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAiBlC,iEAAiE;AAEjE,SAAS,wBAAwB,CAAC,EAAE,SAAS,EAA0B;IACrE,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,gCAAgC,EAAE,SAAS,CAAC,aAC9D,KAAC,QAAQ,IAAC,SAAS,EAAC,wBAAwB,GAAG,EAC/C,MAAC,IAAI,IAAC,SAAS,EAAC,mBAAmB,aACjC,MAAC,IAAI,IAAC,SAAS,EAAC,uCAAuC,aACrD,KAAC,QAAQ,IAAC,SAAS,EAAC,wBAAwB,GAAG,EAC/C,KAAC,QAAQ,IAAC,SAAS,EAAC,qBAAqB,GAAG,IACvC,EACP,KAAC,QAAQ,IAAC,SAAS,EAAC,sBAAsB,GAAG,IACxC,IACF,CACR,CAAC;AACJ,CAAC;AAED,gEAAgE;AAEhE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,IAAI,EACJ,SAAS,EACT,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,IAAI,GAAG,KAAK,EACZ,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,KAAK,EACf,SAAS,EACT,GAAG,KAAK,EACc;IACtB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,KAAC,wBAAwB,IAAC,SAAS,EAAE,SAAS,GAAI,CAAC;IAC5D,CAAC;IAED,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CACX,gDAAgD,EAChD,CAAC,IAAI,IAAI,wBAAwB,EACjC,SAAS,CACV,KACG,KAAK,aAGR,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAC7B,MAAC,MAAM,IAAC,SAAS,EAAC,WAAW,aAC1B,SAAS,IAAI,KAAC,WAAW,IAAC,GAAG,EAAE,SAAS,GAAI,EAC7C,KAAC,cAAc,cAAE,cAAc,GAAkB,IAC1C,CACV,CAAC,CAAC,CAAC,CACF,IAAI,IAAI,CACN,KAAC,IAAI,IAAC,SAAS,EAAC,6DAA6D,YAC1E,IAAI,GACA,CACR,CACF,EAGD,MAAC,IAAI,IAAC,SAAS,EAAC,aAAa,aAC3B,MAAC,IAAI,IAAC,SAAS,EAAC,uCAAuC,aACrD,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,iBAAiB,CAAC,YAEpF,KAAK,GACD,EACP,MAAC,IAAI,IAAC,SAAS,EAAC,6BAA6B,aAC3C,KAAC,IAAI,IAAC,SAAS,EAAC,+BAA+B,YAAE,IAAI,GAAQ,EAC5D,CAAC,IAAI,IAAI,OAAO,IAAI,KAAC,IAAI,IAAC,SAAS,EAAC,iCAAiC,GAAG,IACpE,IACF,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,sCAAsC,EAAC,aAAa,EAAE,CAAC,YACpE,OAAO,GACH,IACF,IACG,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swipeable-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"swipeable-item.d.ts","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"AACA,OAAO,EAA2C,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAOvF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,WAAW,CAAC,EAAE,WAAW,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,wBAAgB,aAAa,CAAC,EAC5B,WAA2B,EAC3B,YAA4B,EAC5B,WAAW,EACX,YAAY,EACZ,cAAmB,EACnB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAuGpB"}
|
|
@@ -3,10 +3,13 @@ import { useRef } from 'react';
|
|
|
3
3
|
import { View, Pressable, Animated, PanResponder } from 'react-native';
|
|
4
4
|
import { Text } from '../../components/text';
|
|
5
5
|
import { cn } from '../../lib/cn';
|
|
6
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
7
|
+
const EMPTY_ACTIONS = [];
|
|
6
8
|
// ─── Component ───────────────────────────────────────────────
|
|
7
|
-
export function SwipeableItem({ leftActions =
|
|
9
|
+
export function SwipeableItem({ leftActions = EMPTY_ACTIONS, rightActions = EMPTY_ACTIONS, onSwipeLeft, onSwipeRight, swipeThreshold = 80, children, className, ...props }) {
|
|
8
10
|
const translateX = useRef(new Animated.Value(0)).current;
|
|
9
|
-
const
|
|
11
|
+
const visual = useVisualTokens();
|
|
12
|
+
const actionWidth = visual.swipeActionWidth;
|
|
10
13
|
const panResponder = useRef(PanResponder.create({
|
|
11
14
|
onMoveShouldSetPanResponder: (_, gestureState) => {
|
|
12
15
|
return Math.abs(gestureState.dx) > 10;
|
|
@@ -54,9 +57,9 @@ export function SwipeableItem({ leftActions = [], rightActions = [], onSwipeLeft
|
|
|
54
57
|
return (_jsxs(View, { className: cn('overflow-hidden', className), ...props, children: [_jsx(View, { className: "absolute bottom-0 left-0 top-0 flex-row", children: leftActions.map((action, _index) => (_jsxs(Pressable, { onPress: () => {
|
|
55
58
|
action.onPress();
|
|
56
59
|
resetPosition();
|
|
57
|
-
}, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-
|
|
60
|
+
}, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-swipe-action-foreground", children: action.label })] }, action.key))) }), _jsx(View, { className: "absolute bottom-0 right-0 top-0 flex-row", children: rightActions.map((action, _index) => (_jsxs(Pressable, { onPress: () => {
|
|
58
61
|
action.onPress();
|
|
59
62
|
resetPosition();
|
|
60
|
-
}, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-
|
|
63
|
+
}, className: "items-center justify-center", style: { width: actionWidth, backgroundColor: action.color }, children: [action.icon, _jsx(Text, { className: "mt-1 text-xs font-medium text-swipe-action-foreground", children: action.label })] }, action.key))) }), _jsx(Animated.View, { ...panResponder.panHandlers, style: { transform: [{ translateX }] }, className: "bg-background", children: children })] }));
|
|
61
64
|
}
|
|
62
65
|
//# sourceMappingURL=swipeable-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swipeable-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"swipeable-item.js","sourceRoot":"","sources":["../../../src/blocks/lists/swipeable-item.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-nav.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bottom-nav.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAQpF,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IAC1E,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAoDD,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAgB5F"}
|
|
@@ -2,10 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { View, Pressable } from 'react-native';
|
|
3
3
|
import { Text } from '../../components/text';
|
|
4
4
|
import { cn } from '../../lib/cn';
|
|
5
|
+
import { useInteractionTokens, withInteractivePressableStyle } from '../../lib/interaction-tokens';
|
|
6
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
5
7
|
// ─── Components ──────────────────────────────────────────────
|
|
6
|
-
function BottomNavItemComponent({ item, isActive, className, ...props }) {
|
|
8
|
+
function BottomNavItemComponent({ item, isActive, className, style: styleProp, ...props }) {
|
|
7
9
|
const { label, icon, badge } = item;
|
|
8
|
-
|
|
10
|
+
const interaction = useInteractionTokens();
|
|
11
|
+
const visual = useVisualTokens();
|
|
12
|
+
const interactiveStyle = withInteractivePressableStyle(styleProp, interaction, {
|
|
13
|
+
pressedVariant: 'default',
|
|
14
|
+
});
|
|
15
|
+
return (_jsxs(Pressable, { className: cn('flex-1 items-center justify-center py-2', className), style: interactiveStyle, ...props, children: [_jsxs(View, { className: "relative", style: !isActive ? { opacity: interaction.inactiveOpacity } : undefined, children: [icon, badge !== undefined && badge > 0 && (_jsx(View, { className: "absolute -right-2 -top-1 h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1", children: _jsx(Text, { className: "font-bold text-destructive-foreground", style: { fontSize: visual.bottomNavBadgeFontSize }, children: badge > 99 ? '99+' : badge }) }))] }), _jsx(Text, { className: cn('mt-1 text-xs font-medium', isActive ? 'text-primary' : 'text-muted-foreground'), children: label })] }));
|
|
9
16
|
}
|
|
10
17
|
export function BottomNav({ items, activeKey, onSelect, className, ...props }) {
|
|
11
18
|
return (_jsx(View, { className: cn('flex-row border-t border-border bg-background px-2 pb-6 pt-2', className), ...props, children: items.map((item) => (_jsx(BottomNavItemComponent, { item: item, isActive: activeKey === item.key, onPress: () => onSelect(item.key) }, item.key))) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottom-nav.js","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"bottom-nav.js","sourceRoot":"","sources":["../../../src/blocks/navigation/bottom-nav.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAuC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAsB1D,gEAAgE;AAEhE,SAAS,sBAAsB,CAAC,EAC9B,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,SAAS,EAChB,GAAG,KAAK,EACW;IACnB,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACpC,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,gBAAgB,GAAG,6BAA6B,CAAC,SAAS,EAAE,WAAW,EAAE;QAC7E,cAAc,EAAE,SAAS;KAC1B,CAAC,CAAC;IAEH,OAAO,CACL,MAAC,SAAS,IACR,SAAS,EAAE,EAAE,CAAC,yCAAyC,EAAE,SAAS,CAAC,EACnE,KAAK,EAAE,gBAAgB,KACnB,KAAK,aAET,MAAC,IAAI,IACH,SAAS,EAAC,UAAU,EACpB,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,aAEtE,IAAI,EACJ,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,CACnC,KAAC,IAAI,IAAC,SAAS,EAAC,mGAAmG,YACjH,KAAC,IAAI,IACH,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,sBAAsB,EAAE,YAEjD,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GACtB,GACF,CACR,IACI,EACP,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CACX,0BAA0B,EAC1B,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CACpD,YAEA,KAAK,GACD,IACG,CACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,EAAkB;IAC3F,OAAO,CACL,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,CAAC,8DAA8D,EAAE,SAAS,CAAC,KACpF,KAAK,YAER,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,sBAAsB,IAErB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC,GAAG,EAChC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAH5B,IAAI,CAAC,GAAG,CAIb,CACH,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type ViewStyle, type StyleProp } from 'react-native';
|
|
3
|
+
import { type FrostedSurfaceProps } from '../../lib/frosted-surface';
|
|
3
4
|
export interface DrawerMenuItem {
|
|
4
5
|
key: string;
|
|
5
6
|
label: string;
|
|
@@ -11,7 +12,7 @@ export interface DrawerMenuSection {
|
|
|
11
12
|
title?: string;
|
|
12
13
|
items: DrawerMenuItem[];
|
|
13
14
|
}
|
|
14
|
-
export interface DrawerMenuProps {
|
|
15
|
+
export interface DrawerMenuProps extends FrostedSurfaceProps {
|
|
15
16
|
visible: boolean;
|
|
16
17
|
onClose: () => void;
|
|
17
18
|
sections: DrawerMenuSection[];
|
|
@@ -24,5 +25,5 @@ export interface DrawerMenuProps {
|
|
|
24
25
|
className?: string;
|
|
25
26
|
style?: StyleProp<ViewStyle>;
|
|
26
27
|
}
|
|
27
|
-
export declare function DrawerMenu({ visible, onClose, sections, activeKey, onSelect, header, footer, maxWidth, className, style, }: DrawerMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function DrawerMenu({ visible, onClose, sections, activeKey, onSelect, header, footer, maxWidth, className, style, frosted, blurIntensity, blurTintToken, }: DrawerMenuProps): import("react/jsx-runtime").JSX.Element | null;
|
|
28
29
|
//# sourceMappingURL=drawer-menu.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer-menu.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/drawer-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"drawer-menu.d.ts","sourceRoot":"","sources":["../../../src/blocks/navigation/drawer-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AActB,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,KAAK,EACL,OAAe,EACf,aAAa,EACb,aAAa,GACd,EAAE,eAAe,kDAqNjB"}
|