@thewhileloop/whileui 1.1.1 → 1.2.1
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 +505 -38
- package/dist/blocks/chat/chat.d.ts.map +1 -1
- package/dist/blocks/chat/chat.js +15 -5
- 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 +23 -1
- 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/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 +39 -6
- 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 +5 -3
- 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 -25
- 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.map +1 -1
- package/dist/blocks/navigation/navigation-sidebar.js +9 -2
- 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 +8 -4
- package/dist/components/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/components/alert-dialog/alert-dialog.js +159 -14
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/alert-dialog/index.d.ts +1 -1
- package/dist/components/alert-dialog/index.d.ts.map +1 -1
- package/dist/components/alert-dialog/index.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.map +1 -1
- package/dist/components/numeric-input/numeric-input.js +15 -3
- 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 +6 -1
- 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 +10 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-modal.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/date-range-picker-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"date-range-picker-modal.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/date-range-picker-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAC;AAS9D,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAa5E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,iCAAiC;IACjC,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,gCAAgC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOvE;AAiCD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,KAA2B,EAC3B,YAAqB,EACrB,SAAS,EACT,OAAe,EACf,aAAa,EACb,aAAa,GACd,EAAE,yBAAyB,2CAwJ3B;AAED,2FAA2F;AAC3F,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,WAAiC,EACjC,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAYA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -7,6 +7,8 @@ import { Calendar } from 'react-native-calendars';
|
|
|
7
7
|
import { Text } from '../../components/text';
|
|
8
8
|
import { Button, ButtonText } from '../../components/button';
|
|
9
9
|
import { cn } from '../../lib/cn';
|
|
10
|
+
import { useThemeColors } from '../../lib/theme-colors';
|
|
11
|
+
import { useFrostedSurface } from '../../lib/frosted-surface';
|
|
10
12
|
import { useCalendarTheme } from './use-calendar-theme';
|
|
11
13
|
function formatRangeDisplay(range) {
|
|
12
14
|
if (!range)
|
|
@@ -43,14 +45,22 @@ function buildMarkedDates(start, end, theme) {
|
|
|
43
45
|
}
|
|
44
46
|
return marked;
|
|
45
47
|
}
|
|
46
|
-
export function DateRangePickerModal({ value, onValueChange, open, onOpenChange, minDate, maxDate, theme: customTheme, trigger, title = 'Select date range', confirmLabel = 'Done', className, }) {
|
|
48
|
+
export function DateRangePickerModal({ value, onValueChange, open, onOpenChange, minDate, maxDate, theme: customTheme, trigger, title = 'Select date range', confirmLabel = 'Done', className, frosted = false, blurIntensity, blurTintToken, }) {
|
|
47
49
|
const insets = useSafeAreaInsets();
|
|
48
50
|
const { theme } = useUniwind();
|
|
51
|
+
const colors = useThemeColors();
|
|
52
|
+
const frostedSurface = useFrostedSurface({
|
|
53
|
+
frosted,
|
|
54
|
+
blurIntensity,
|
|
55
|
+
blurTintToken,
|
|
56
|
+
defaultTintToken: 'surfaceTranslucent',
|
|
57
|
+
defaultBlurPreset: 'medium',
|
|
58
|
+
});
|
|
49
59
|
const calendarTheme = useCalendarTheme(customTheme);
|
|
50
60
|
const arrowColor = calendarTheme.arrowColor ??
|
|
51
61
|
calendarTheme.monthTextColor ??
|
|
52
62
|
calendarTheme.dayTextColor ??
|
|
53
|
-
|
|
63
|
+
colors.foreground;
|
|
54
64
|
const renderArrow = useCallback((direction) => (_jsx(Text, { className: "text-base font-medium", style: { color: arrowColor }, children: direction === 'left' ? '<' : '>' })), [arrowColor]);
|
|
55
65
|
const [draftStart, setDraftStart] = useState(value?.start ?? null);
|
|
56
66
|
const [draftEnd, setDraftEnd] = useState(value?.end ?? null);
|
|
@@ -110,7 +120,10 @@ export function DateRangePickerModal({ value, onValueChange, open, onOpenChange,
|
|
|
110
120
|
setDraftStart(null);
|
|
111
121
|
setDraftEnd(null);
|
|
112
122
|
}, [onOpenChange]);
|
|
113
|
-
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: handleOpen, className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-border bg-muted px-4', className), children: trigger })) : null, _jsx(Modal, { visible: open, transparent: true, animationType: "slide", children: _jsx(Pressable, { className: "flex-1 justify-end
|
|
123
|
+
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: handleOpen, className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-border bg-muted px-4', className), children: trigger })) : null, _jsx(Modal, { visible: open, transparent: true, animationType: "slide", children: _jsx(Pressable, { className: "flex-1 justify-end", style: { backgroundColor: colors.overlay }, onPress: handleBackdropPress, children: _jsxs(Pressable, { className: cn('rounded-t-xl border border-border relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-background'), style: [
|
|
124
|
+
{ paddingBottom: Math.max(insets.bottom, 16) },
|
|
125
|
+
frostedSurface.surfaceStyle,
|
|
126
|
+
], onPress: (e) => e.stopPropagation(), children: [frostedSurface.overlay, _jsxs(View, { className: "flex-row items-center justify-between border-b border-border px-4 py-3", children: [_jsx(Text, { className: "text-base font-medium text-foreground", children: title }), _jsx(Button, { size: "sm", onPress: handleConfirm, children: _jsx(ButtonText, { children: confirmLabel }) })] }), _jsx(View, { className: "p-4", children: _jsx(View, { className: "rounded-xl border border-border overflow-hidden", children: _jsx(Calendar, { current: draftStart ?? value?.start ?? undefined, onDayPress: handleDayPress, markedDates: markedDates, markingType: "period", minDate: minDate, maxDate: maxDate, theme: calendarTheme, renderArrow: renderArrow, enableSwipeMonths: true }, theme) }) })] }) }) })] }));
|
|
114
127
|
}
|
|
115
128
|
/** Compact trigger showing formatted range. Use as DateRangePickerModal's trigger prop. */
|
|
116
129
|
export function DateRangePickerTrigger({ value, placeholder = 'Select date range', className, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-range-picker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/date-range-picker-modal.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"date-range-picker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/date-range-picker-modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-inline.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-inline.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"datepicker-inline.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-inline.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,SAAS,GACV,EAAE,qBAAqB,2CAgDvB"}
|
|
@@ -5,14 +5,16 @@ import { useUniwind } from 'uniwind';
|
|
|
5
5
|
import { Calendar } from 'react-native-calendars';
|
|
6
6
|
import { Text } from '../../components/text';
|
|
7
7
|
import { cn } from '../../lib/cn';
|
|
8
|
+
import { useThemeColors } from '../../lib/theme-colors';
|
|
8
9
|
import { useCalendarTheme } from './use-calendar-theme';
|
|
9
10
|
export function DatePickerInline({ value, onValueChange, minDate, maxDate, theme: customTheme, className, }) {
|
|
10
11
|
const { theme } = useUniwind();
|
|
12
|
+
const colors = useThemeColors();
|
|
11
13
|
const calendarTheme = useCalendarTheme(customTheme);
|
|
12
14
|
const arrowColor = calendarTheme.arrowColor ??
|
|
13
15
|
calendarTheme.monthTextColor ??
|
|
14
16
|
calendarTheme.dayTextColor ??
|
|
15
|
-
|
|
17
|
+
colors.foreground;
|
|
16
18
|
const renderArrow = useCallback((direction) => (_jsx(Text, { className: "text-base font-medium", style: { color: arrowColor }, children: direction === 'left' ? '<' : '>' })), [arrowColor]);
|
|
17
19
|
const markedDates = useMemo(() => {
|
|
18
20
|
if (!value)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-inline.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-inline.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAiB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,sBAAsB,CAAC;AAgB5E,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,SAAS,GACa;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,UAAU,GACd,aAAa,CAAC,UAAU;QACxB,aAAa,CAAC,cAAc;QAC5B,aAAa,CAAC,YAAY;QAC1B,
|
|
1
|
+
{"version":3,"file":"datepicker-inline.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-inline.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAiB,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAsB,MAAM,sBAAsB,CAAC;AAgB5E,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,SAAS,GACa;IACtB,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,UAAU,GACd,aAAa,CAAC,UAAU;QACxB,aAAa,CAAC,cAAc;QAC5B,aAAa,CAAC,YAAY;QAC1B,MAAM,CAAC,UAAU,CAAC;IACpB,MAAM,WAAW,GAAG,WAAW,CAC7B,CAAC,SAA2B,EAAE,EAAE,CAAC,CAC/B,KAAC,IAAI,IAAC,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,YACjE,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAC5B,CACR,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE;QAC/B,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,OAAO;YACL,CAAC,KAAK,CAAC,EAAE;gBACP,QAAQ,EAAE,IAAI;gBACd,iBAAiB,EAAE,KAAK;gBACxB,KAAK,EAAE,KAAK,EAAE,iEAAiE;aAChF;SACF,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,cAAc,GAAG,CAAC,GAAa,EAAE,EAAE;QACvC,aAAa,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,CAAC,iDAAiD,EAAE,SAAS,CAAC,YAC/E,KAAC,QAAQ,IAEP,OAAO,EAAE,KAAK,IAAI,SAAS,EAC3B,UAAU,EAAE,cAAc,EAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAwC,EAC/C,WAAW,EAAE,WAAW,EACxB,iBAAiB,UARZ,KAAK,CASV,GACG,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type FrostedSurfaceProps } from '../../lib/frosted-surface';
|
|
2
3
|
import { type CalendarTheme } from './use-calendar-theme';
|
|
3
|
-
export interface DatePickerModalProps {
|
|
4
|
+
export interface DatePickerModalProps extends FrostedSurfaceProps {
|
|
4
5
|
/** Controlled: selected date in YYYY-MM-DD */
|
|
5
6
|
value?: string | null;
|
|
6
7
|
/** Controlled: change handler */
|
|
@@ -24,7 +25,7 @@ export interface DatePickerModalProps {
|
|
|
24
25
|
className?: string;
|
|
25
26
|
}
|
|
26
27
|
declare function formatDisplayDate(dateString: string | null | undefined): string;
|
|
27
|
-
export declare function DatePickerModal({ value, onValueChange, open, onOpenChange, minDate, maxDate, theme: customTheme, trigger, title, confirmLabel, className, }: DatePickerModalProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
+
export declare function DatePickerModal({ value, onValueChange, open, onOpenChange, minDate, maxDate, theme: customTheme, trigger, title, confirmLabel, className, frosted, blurIntensity, blurTintToken, }: DatePickerModalProps): import("react/jsx-runtime").JSX.Element;
|
|
28
29
|
/** Compact trigger showing formatted date. Use as DatePickerModal's trigger prop. */
|
|
29
30
|
export declare function DatePickerTrigger({ value, placeholder, className, }: {
|
|
30
31
|
value?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-modal.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"datepicker-modal.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AASpD,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxF,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,iCAAiC;IACjC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,gCAAgC;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iBAAS,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CASxE;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,aAAa,EACb,IAAI,EACJ,YAAY,EACZ,OAAO,EACP,OAAO,EACP,KAAK,EAAE,WAAW,EAClB,OAAO,EACP,KAAqB,EACrB,YAAqB,EACrB,SAAS,EACT,OAAe,EACf,aAAa,EACb,aAAa,GACd,EAAE,oBAAoB,2CA6GtB;AAED,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,WAA2B,EAC3B,SAAS,GACV,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAYA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -7,6 +7,8 @@ import { Calendar } from 'react-native-calendars';
|
|
|
7
7
|
import { Text } from '../../components/text';
|
|
8
8
|
import { Button, ButtonText } from '../../components/button';
|
|
9
9
|
import { cn } from '../../lib/cn';
|
|
10
|
+
import { useThemeColors } from '../../lib/theme-colors';
|
|
11
|
+
import { useFrostedSurface } from '../../lib/frosted-surface';
|
|
10
12
|
import { useCalendarTheme } from './use-calendar-theme';
|
|
11
13
|
function formatDisplayDate(dateString) {
|
|
12
14
|
if (!dateString)
|
|
@@ -19,14 +21,22 @@ function formatDisplayDate(dateString) {
|
|
|
19
21
|
year: 'numeric',
|
|
20
22
|
});
|
|
21
23
|
}
|
|
22
|
-
export function DatePickerModal({ value, onValueChange, open, onOpenChange, minDate, maxDate, theme: customTheme, trigger, title = 'Select date', confirmLabel = 'Done', className, }) {
|
|
24
|
+
export function DatePickerModal({ value, onValueChange, open, onOpenChange, minDate, maxDate, theme: customTheme, trigger, title = 'Select date', confirmLabel = 'Done', className, frosted = false, blurIntensity, blurTintToken, }) {
|
|
23
25
|
const insets = useSafeAreaInsets();
|
|
24
26
|
const { theme } = useUniwind();
|
|
27
|
+
const colors = useThemeColors();
|
|
28
|
+
const frostedSurface = useFrostedSurface({
|
|
29
|
+
frosted,
|
|
30
|
+
blurIntensity,
|
|
31
|
+
blurTintToken,
|
|
32
|
+
defaultTintToken: 'surfaceTranslucent',
|
|
33
|
+
defaultBlurPreset: 'medium',
|
|
34
|
+
});
|
|
25
35
|
const calendarTheme = useCalendarTheme(customTheme);
|
|
26
36
|
const arrowColor = calendarTheme.arrowColor ??
|
|
27
37
|
calendarTheme.monthTextColor ??
|
|
28
38
|
calendarTheme.dayTextColor ??
|
|
29
|
-
|
|
39
|
+
colors.foreground;
|
|
30
40
|
const renderArrow = useCallback((direction) => (_jsx(Text, { className: "text-base font-medium", style: { color: arrowColor }, children: direction === 'left' ? '<' : '>' })), [arrowColor]);
|
|
31
41
|
const markedDates = useMemo(() => {
|
|
32
42
|
if (!value)
|
|
@@ -48,7 +58,10 @@ export function DatePickerModal({ value, onValueChange, open, onOpenChange, minD
|
|
|
48
58
|
const handleBackdropPress = () => {
|
|
49
59
|
onOpenChange(false);
|
|
50
60
|
};
|
|
51
|
-
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: () => onOpenChange(true), className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-border bg-muted px-4', className), children: trigger })) : null, _jsx(Modal, { visible: open, transparent: true, animationType: "slide", children: _jsx(Pressable, { className: "flex-1 justify-end
|
|
61
|
+
return (_jsxs(_Fragment, { children: [trigger ? (_jsx(Pressable, { onPress: () => onOpenChange(true), className: cn('min-h-10 w-full flex-row items-center rounded-lg border border-border bg-muted px-4', className), children: trigger })) : null, _jsx(Modal, { visible: open, transparent: true, animationType: "slide", children: _jsx(Pressable, { className: "flex-1 justify-end", style: { backgroundColor: colors.overlay }, onPress: handleBackdropPress, children: _jsxs(Pressable, { className: cn('rounded-t-xl border border-border relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-background'), style: [
|
|
62
|
+
{ paddingBottom: Math.max(insets.bottom, 16) },
|
|
63
|
+
frostedSurface.surfaceStyle,
|
|
64
|
+
], onPress: (e) => e.stopPropagation(), children: [frostedSurface.overlay, _jsxs(View, { className: "flex-row items-center justify-between border-b border-border px-4 py-3", children: [_jsx(Text, { className: "text-base font-medium text-foreground", children: title }), _jsx(Button, { size: "sm", onPress: handleConfirm, children: _jsx(ButtonText, { children: confirmLabel }) })] }), _jsx(View, { className: "p-4", children: _jsx(View, { className: "rounded-xl border border-border overflow-hidden", children: _jsx(Calendar, { current: value ?? undefined, onDayPress: handleDayPress, markedDates: markedDates, minDate: minDate, maxDate: maxDate, theme: calendarTheme, renderArrow: renderArrow, enableSwipeMonths: true }, theme) }) })] }) }) })] }));
|
|
52
65
|
}
|
|
53
66
|
/** Compact trigger showing formatted date. Use as DatePickerModal's trigger prop. */
|
|
54
67
|
export function DatePickerTrigger({ value, placeholder = 'Select date', className, }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datepicker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-modal.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"datepicker-modal.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/datepicker-modal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-calendar-theme.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/use-calendar-theme.ts"],"names":[],"mappings":"AAIA,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"use-calendar-theme.d.ts","sourceRoot":"","sources":["../../../src/blocks/datepicker/use-calendar-theme.ts"],"names":[],"mappings":"AAIA,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA0BD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,aAAa,GAAG,aAAa,CAW3E"}
|
|
@@ -2,7 +2,8 @@ import { useCSSVariable } from 'uniwind';
|
|
|
2
2
|
import { useThemeColors } from '../../lib/theme-colors';
|
|
3
3
|
function buildCalendarTheme(c, fontFamily) {
|
|
4
4
|
return {
|
|
5
|
-
|
|
5
|
+
backgroundColor: c.surfaceTranslucent,
|
|
6
|
+
calendarBackground: c.surfaceTranslucent,
|
|
6
7
|
textSectionTitleColor: c.mutedForeground,
|
|
7
8
|
selectedDayBackgroundColor: c.primary,
|
|
8
9
|
selectedDayTextColor: c.primaryForeground,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-calendar-theme.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/use-calendar-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkCxD,SAAS,kBAAkB,CAAC,CAAc,EAAE,UAAmB;IAC7D,OAAO;QACL,kBAAkB,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"use-calendar-theme.js","sourceRoot":"","sources":["../../../src/blocks/datepicker/use-calendar-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAkCxD,SAAS,kBAAkB,CAAC,CAAc,EAAE,UAAmB;IAC7D,OAAO;QACL,eAAe,EAAE,CAAC,CAAC,kBAAkB;QACrC,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;QACxC,qBAAqB,EAAE,CAAC,CAAC,eAAe;QACxC,0BAA0B,EAAE,CAAC,CAAC,OAAO;QACrC,oBAAoB,EAAE,CAAC,CAAC,iBAAiB;QACzC,cAAc,EAAE,CAAC,CAAC,UAAU;QAC5B,oBAAoB,EAAE,CAAC,CAAC,KAAK;QAC7B,YAAY,EAAE,CAAC,CAAC,UAAU;QAC1B,iBAAiB,EAAE,CAAC,CAAC,MAAM;QAC3B,kBAAkB,EAAE,CAAC,CAAC,MAAM;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM;QAClB,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;QACrC,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,cAAc,EAAE,CAAC,CAAC,UAAU;QAC5B,GAAG,CAAC,UAAU,IAAI;YAChB,iBAAiB,EAAE,UAAU;YAC7B,mBAAmB,EAAE,UAAU;YAC/B,uBAAuB,EAAE,UAAU;SACpC,CAAC;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAA2B;IAC1D,MAAM,CAAC,GAAG,cAAc,EAAE,CAAC;IAC3B,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,MAAM,UAAU,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,SAAS;YAAE,MAAM,CAAC,CAAwB,CAAC,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -5,6 +5,10 @@ export interface AppShellProps extends ViewProps {
|
|
|
5
5
|
footer?: React.ReactNode;
|
|
6
6
|
bottomNav?: React.ReactNode;
|
|
7
7
|
safeArea?: boolean;
|
|
8
|
+
/** Keep shell mounted while swapping content with skeleton. */
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
/** Optional custom loading placeholder for the content area. */
|
|
11
|
+
skeleton?: React.ReactNode;
|
|
8
12
|
}
|
|
9
|
-
export declare function AppShell({ header, footer, bottomNav, safeArea, children, className, ...props }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function AppShell({ header, footer, bottomNav, safeArea, loading, skeleton, children, className, ...props }: AppShellProps): import("react/jsx-runtime").JSX.Element;
|
|
10
14
|
//# sourceMappingURL=app-shell.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/app-shell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpD,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"app-shell.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/app-shell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAMpD,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAID,wBAAgB,QAAQ,CAAC,EACvB,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAe,EACf,OAAe,EACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,aAAa,2CAWf"}
|
|
@@ -3,8 +3,8 @@ import { View } from 'react-native';
|
|
|
3
3
|
import { SafeAreaView } from 'react-native-safe-area-context';
|
|
4
4
|
import { cn } from '../../lib/cn';
|
|
5
5
|
// ─── Component ───────────────────────────────────────────────
|
|
6
|
-
export function AppShell({ header, footer, bottomNav, safeArea = true, children, className, ...props }) {
|
|
6
|
+
export function AppShell({ header, footer, bottomNav, safeArea = true, loading = false, skeleton, children, className, ...props }) {
|
|
7
7
|
const Container = safeArea ? SafeAreaView : View;
|
|
8
|
-
return (_jsxs(Container, { className: cn('flex-1 bg-background', className), ...props, children: [header, _jsx(View, { className: "flex-1", children: children }), footer, bottomNav] }));
|
|
8
|
+
return (_jsxs(Container, { className: cn('flex-1 bg-background', className), ...props, children: [header, _jsx(View, { className: "flex-1", children: loading ? (skeleton ?? null) : children }), footer, bottomNav] }));
|
|
9
9
|
}
|
|
10
10
|
//# sourceMappingURL=app-shell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-shell.js","sourceRoot":"","sources":["../../../src/blocks/layout/app-shell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"app-shell.js","sourceRoot":"","sources":["../../../src/blocks/layout/app-shell.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAelC,gEAAgE;AAEhE,MAAM,UAAU,QAAQ,CAAC,EACvB,MAAM,EACN,MAAM,EACN,SAAS,EACT,QAAQ,GAAG,IAAI,EACf,OAAO,GAAG,KAAK,EACf,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACM;IACd,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjD,OAAO,CACL,MAAC,SAAS,IAAC,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,KAAM,KAAK,aACnE,MAAM,EACP,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAQ,EACxE,MAAM,EACN,SAAS,IACA,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ViewProps } from 'react-native';
|
|
2
|
+
import { type FrostedSurfaceProps } from '../../lib/frosted-surface';
|
|
2
3
|
export type ConfirmActionSheetActionVariant = 'default' | 'destructive' | 'cancel';
|
|
3
4
|
export interface ConfirmActionSheetAction {
|
|
4
5
|
key: string;
|
|
@@ -8,7 +9,7 @@ export interface ConfirmActionSheetAction {
|
|
|
8
9
|
disabled?: boolean;
|
|
9
10
|
closeOnPress?: boolean;
|
|
10
11
|
}
|
|
11
|
-
export interface ConfirmActionSheetProps extends Omit<ViewProps, 'children'
|
|
12
|
+
export interface ConfirmActionSheetProps extends Omit<ViewProps, 'children'>, FrostedSurfaceProps {
|
|
12
13
|
open: boolean;
|
|
13
14
|
onOpenChange: (open: boolean) => void;
|
|
14
15
|
title: string;
|
|
@@ -20,5 +21,5 @@ export interface ConfirmActionSheetProps extends Omit<ViewProps, 'children'> {
|
|
|
20
21
|
onCancel?: () => void;
|
|
21
22
|
destructive?: boolean;
|
|
22
23
|
}
|
|
23
|
-
export declare function ConfirmActionSheet({ open, onOpenChange, title, description, actions, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, className, style, ...props }: ConfirmActionSheetProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare function ConfirmActionSheet({ open, onOpenChange, title, description, actions, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, className, style, frosted, blurIntensity, blurTintToken, ...props }: ConfirmActionSheetProps): import("react/jsx-runtime").JSX.Element;
|
|
24
25
|
//# sourceMappingURL=confirm-action-sheet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-action-sheet.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/confirm-action-sheet.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"confirm-action-sheet.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/confirm-action-sheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,SAAS,EAEf,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAqB,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnF,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,+BAA+B,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,mBAAmB;IAC/F,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,WAAW,EACX,OAAO,EACP,YAAwB,EACxB,WAAsB,EACtB,SAAS,EACT,QAAQ,EACR,WAAkB,EAClB,SAAS,EACT,KAAK,EACL,OAAe,EACf,aAAa,EACb,aAAa,EACb,GAAG,KAAK,EACT,EAAE,uBAAuB,2CA0GzB"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { Modal, Pressable, View } from 'react-native';
|
|
3
|
+
import { Modal, Pressable, 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
|
-
|
|
7
|
+
import { useThemeColors } from '../../lib/theme-colors';
|
|
8
|
+
import { useInteractionTokens, withInteractivePressableStyle } from '../../lib/interaction-tokens';
|
|
9
|
+
import { useFrostedSurface } from '../../lib/frosted-surface';
|
|
10
|
+
export function ConfirmActionSheet({ open, onOpenChange, title, description, actions, confirmLabel = 'Confirm', cancelLabel = 'Cancel', onConfirm, onCancel, destructive = true, className, style, frosted = false, blurIntensity, blurTintToken, ...props }) {
|
|
8
11
|
const insets = useSafeAreaInsets();
|
|
12
|
+
const colors = useThemeColors();
|
|
13
|
+
const interaction = useInteractionTokens();
|
|
14
|
+
const frostedSurface = useFrostedSurface({
|
|
15
|
+
frosted,
|
|
16
|
+
blurIntensity,
|
|
17
|
+
blurTintToken,
|
|
18
|
+
defaultTintToken: 'surfaceTranslucent',
|
|
19
|
+
defaultBlurPreset: 'medium',
|
|
20
|
+
});
|
|
9
21
|
const resolvedActions = useMemo(() => {
|
|
10
22
|
if (actions && actions.length > 0) {
|
|
11
23
|
return actions;
|
|
@@ -32,10 +44,17 @@ export function ConfirmActionSheet({ open, onOpenChange, title, description, act
|
|
|
32
44
|
onOpenChange(false);
|
|
33
45
|
}
|
|
34
46
|
};
|
|
35
|
-
return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", onRequestClose: handleClose, children: _jsxs(View, { className: "flex-1 justify-end
|
|
47
|
+
return (_jsx(Modal, { visible: open, transparent: true, animationType: "fade", onRequestClose: handleClose, children: _jsxs(View, { className: "flex-1 justify-end", style: { backgroundColor: colors.overlay }, children: [_jsx(Pressable, { className: "flex-1", onPress: handleClose }), _jsxs(View, { className: cn('rounded-t-lg border border-border px-4 pt-4 relative overflow-hidden', frosted ? 'bg-transparent' : 'bg-background', className), style: [
|
|
48
|
+
{ paddingBottom: Math.max(insets.bottom, 12) },
|
|
49
|
+
frostedSurface.surfaceStyle,
|
|
50
|
+
style,
|
|
51
|
+
], ...props, children: [frostedSurface.overlay, _jsxs(View, { className: "mb-4 gap-1.5", children: [_jsx(Text, { className: "text-base font-semibold text-foreground", children: title }), description ? (_jsx(Text, { className: "text-sm text-muted-foreground", children: description })) : null] }), _jsx(View, { className: "gap-2", children: resolvedActions.map((action) => {
|
|
36
52
|
const isDestructive = action.variant === 'destructive';
|
|
37
53
|
const isCancel = action.variant === 'cancel';
|
|
38
|
-
return (_jsx(Pressable, { className: cn('min-h-11 items-center justify-center rounded-md border px-4 py-2
|
|
54
|
+
return (_jsx(Pressable, { className: cn('min-h-11 items-center justify-center rounded-md border px-4 py-2', isCancel ? 'border-border bg-muted' : 'border-transparent bg-secondary', isDestructive && 'bg-destructive-soft border-destructive-soft-border', action.disabled && ''), style: withInteractivePressableStyle(undefined, interaction, {
|
|
55
|
+
disabled: Boolean(action.disabled),
|
|
56
|
+
pressedVariant: 'default',
|
|
57
|
+
}), onPress: () => handleActionPress(action), disabled: action.disabled, accessibilityRole: "button", children: _jsx(Text, { className: cn('text-sm font-medium', isCancel ? 'text-foreground' : 'text-secondary-foreground', isDestructive && 'text-destructive'), children: action.label }) }, action.key));
|
|
39
58
|
}) })] })] }) }));
|
|
40
59
|
}
|
|
41
60
|
//# sourceMappingURL=confirm-action-sheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-action-sheet.js","sourceRoot":"","sources":["../../../src/blocks/layout/confirm-action-sheet.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,
|
|
1
|
+
{"version":3,"file":"confirm-action-sheet.js","sourceRoot":"","sources":["../../../src/blocks/layout/confirm-action-sheet.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-modal-screen.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/form-modal-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"form-modal-screen.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/form-modal-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAQhG,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gGAAgG;IAChG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,OAAe,EACf,MAAc,EACd,UAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,aAAoB,EACpB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,2CA0FtB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -4,9 +4,31 @@ import { SafeAreaView, SafeAreaProvider } from 'react-native-safe-area-context';
|
|
|
4
4
|
import { Text } from '../../components/text';
|
|
5
5
|
import { Spinner } from '../../components/spinner';
|
|
6
6
|
import { cn } from '../../lib/cn';
|
|
7
|
+
import { useInteractionTokens, withInteractivePressableStyle } from '../../lib/interaction-tokens';
|
|
8
|
+
import { useVisualTokens } from '../../lib/visual-tokens';
|
|
7
9
|
function FormModalScreen({ className, title, subtitle, leftSlot, rightSlot, onClose, loading = false, saving = false, savingText = 'Saving...', loadingSpinnerColor, savingSpinnerColor, scrollEnabled = true, children, ...props }) {
|
|
8
10
|
const { height: screenHeight } = useWindowDimensions();
|
|
9
|
-
const
|
|
11
|
+
const interaction = useInteractionTokens();
|
|
12
|
+
const visual = useVisualTokens();
|
|
13
|
+
const content = loading ? (_jsx(SafeAreaView, { style: { flex: 1 }, className: "bg-background", edges: ['top'], children: _jsx(View, { style: { flex: 1 }, className: "items-center justify-center", children: _jsx(Spinner, { color: loadingSpinnerColor }) }) })) : (_jsxs(SafeAreaView, { style: { flex: 1 }, className: cn('bg-background', className), edges: ['top'], ...props, children: [_jsxs(View, { className: "flex-row items-center px-4 py-3 border-b border-border", children: [_jsx(View, { className: "w-12", children: leftSlot ? (leftSlot) : onClose ? (_jsx(Pressable, { onPress: onClose, disabled: saving, className: "p-2 -m-2 items-center justify-center", style: (state) => {
|
|
14
|
+
const interactiveStyle = withInteractivePressableStyle(undefined, interaction, {
|
|
15
|
+
disabled: saving,
|
|
16
|
+
pressedVariant: 'default',
|
|
17
|
+
});
|
|
18
|
+
const resolved = typeof interactiveStyle === 'function'
|
|
19
|
+
? interactiveStyle(state)
|
|
20
|
+
: interactiveStyle;
|
|
21
|
+
return [
|
|
22
|
+
{
|
|
23
|
+
minWidth: visual.touchTargetMinSize,
|
|
24
|
+
minHeight: visual.touchTargetMinSize,
|
|
25
|
+
},
|
|
26
|
+
resolved,
|
|
27
|
+
];
|
|
28
|
+
}, accessibilityRole: "button", accessibilityLabel: "Close", children: _jsx(Text, { className: "text-foreground text-xl font-medium", children: "\u00D7" }) })) : null }), _jsxs(View, { className: "flex-1 items-center", children: [_jsx(Text, { variant: "title", className: "text-center", children: title }), subtitle && (_jsx(Text, { variant: "caption", className: "text-center text-muted-foreground", children: subtitle }))] }), _jsx(View, { className: "w-12 items-end", children: rightSlot })] }), saving && (_jsxs(View, { className: "bg-primary px-4 py-2 flex-row items-center justify-center gap-2", children: [_jsx(Spinner, { size: "sm", color: savingSpinnerColor }), _jsx(Text, { className: "text-primary-foreground text-sm", children: savingText })] })), _jsx(ScrollView, { style: { flex: 1 }, contentContainerStyle: {
|
|
29
|
+
padding: 16,
|
|
30
|
+
minHeight: screenHeight * visual.formModalContentMinHeightRatio,
|
|
31
|
+
}, scrollEnabled: !saving && scrollEnabled, keyboardShouldPersistTaps: "handled", children: children })] }));
|
|
10
32
|
return (_jsx(SafeAreaProvider, { style: { flex: 1, minHeight: screenHeight }, children: content }));
|
|
11
33
|
}
|
|
12
34
|
export { FormModalScreen };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-modal-screen.js","sourceRoot":"","sources":["../../../src/blocks/layout/form-modal-screen.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAkB,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"form-modal-screen.js","sourceRoot":"","sources":["../../../src/blocks/layout/form-modal-screen.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ export { AppShell, type AppShellProps } from './app-shell';
|
|
|
2
2
|
export { ActionBar, type ActionBarProps } from './action-bar';
|
|
3
3
|
export { ConfirmActionSheet, type ConfirmActionSheetAction, type ConfirmActionSheetActionVariant, type ConfirmActionSheetProps, } from './confirm-action-sheet';
|
|
4
4
|
export { ContentSkeleton, type ContentSkeletonProps } from './content-skeleton';
|
|
5
|
-
export { PageSkeleton, type PageSkeletonProps, type PageSkeletonVariant, type PageSkeletonPadding, } from './page-skeleton';
|
|
5
|
+
export { PageSkeleton, type PageSkeletonProps, type PageSkeletonHeaderPlaceholder, type PageSkeletonVariant, type PageSkeletonPadding, } from './page-skeleton';
|
|
6
|
+
export { ScreenSkeleton, type ScreenSkeletonProps } from './screen-skeleton';
|
|
6
7
|
export { ErrorBoundary, type ErrorBoundaryProps } from './error-boundary';
|
|
7
8
|
export { EmptyState, type EmptyStateProps } from './empty-state';
|
|
8
9
|
export { ErrorState, type ErrorStateProps } from './error-state';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpF,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,+BAA+B,EACpC,KAAK,uBAAuB,GAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,6BAA6B,EAClC,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,uBAAuB,EACvB,KAAK,4BAA4B,GAClC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACpF,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAC"}
|
|
@@ -3,6 +3,7 @@ export { ActionBar } from './action-bar';
|
|
|
3
3
|
export { ConfirmActionSheet, } from './confirm-action-sheet';
|
|
4
4
|
export { ContentSkeleton } from './content-skeleton';
|
|
5
5
|
export { PageSkeleton, } from './page-skeleton';
|
|
6
|
+
export { ScreenSkeleton } from './screen-skeleton';
|
|
6
7
|
export { ErrorBoundary } from './error-boundary';
|
|
7
8
|
export { EmptyState } from './empty-state';
|
|
8
9
|
export { ErrorState } from './error-state';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,GAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAA6B,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACL,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/blocks/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAuB,MAAM,cAAc,CAAC;AAC9D,OAAO,EACL,kBAAkB,GAInB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAA6B,MAAM,oBAAoB,CAAC;AAChF,OAAO,EACL,YAAY,GAKb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAA4B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAA2B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,eAAe,EAA6B,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,aAAa,EAA2B,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,uBAAuB,GAExB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAQpF,OAAO,EAAE,UAAU,EAAwB,MAAM,eAAe,CAAC;AACjE,OAAO,EACL,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC"}
|
|
@@ -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
|