@devalok/shilp-sutra 0.56.0 → 0.59.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/MIGRATION.md +198 -0
- package/dist/_chunks/badge-group.js +75 -174
- package/dist/_chunks/badge-group.js.map +1 -1
- package/dist/_chunks/chat.js +270 -253
- package/dist/_chunks/chat.js.map +1 -1
- package/dist/_chunks/document-preview.js +1 -1
- package/dist/_chunks/document-preview.js.map +1 -1
- package/dist/_chunks/emoji-suggestion.js +1 -1
- package/dist/_chunks/emoji-suggestion.js.map +1 -1
- package/dist/_chunks/image-preview.js +71 -70
- package/dist/_chunks/image-preview.js.map +1 -1
- package/dist/_chunks/mention-suggestion.js +2 -2
- package/dist/_chunks/mention-suggestion.js.map +1 -1
- package/dist/_chunks/motion-preference.js +15 -0
- package/dist/_chunks/motion-preference.js.map +1 -0
- package/dist/_chunks/motion-provider.js +1 -1
- package/dist/_chunks/motion-provider.js.map +1 -1
- package/dist/_chunks/oauth-button.js +1 -1
- package/dist/_chunks/oauth-button.js.map +1 -1
- package/dist/_chunks/popover.js +50 -49
- package/dist/_chunks/popover.js.map +1 -1
- package/dist/_chunks/primitives-internal.js +29 -29
- package/dist/_chunks/primitives-internal.js.map +1 -1
- package/dist/_chunks/shared.js +48 -47
- package/dist/_chunks/shared.js.map +1 -1
- package/dist/_chunks/success.js +36 -36
- package/dist/_chunks/success.js.map +1 -1
- package/dist/_chunks/tree-view.js +1 -1
- package/dist/_chunks/tree-view.js.map +1 -1
- package/dist/_chunks/use-calendar.js +4 -4
- package/dist/_chunks/use-calendar.js.map +1 -1
- package/dist/ai/block-renderer.js +8 -8
- package/dist/ai/blocks/text.js +1 -1
- package/dist/ai/blocks/text.js.map +1 -1
- package/dist/ai/command-bar.js +67 -67
- package/dist/ai/command-bar.js.map +1 -1
- package/dist/ai/conversation.js +35 -35
- package/dist/ai/conversation.js.map +1 -1
- package/dist/ai/index.js +4 -4
- package/dist/composed/activity-feed.d.ts.map +1 -1
- package/dist/composed/activity-feed.js +109 -108
- package/dist/composed/activity-feed.js.map +1 -1
- package/dist/composed/avatar-group.d.ts +7 -2
- package/dist/composed/avatar-group.d.ts.map +1 -1
- package/dist/composed/avatar-group.js +3 -3
- package/dist/composed/avatar-group.js.map +1 -1
- package/dist/composed/command-palette.js +137 -137
- package/dist/composed/command-palette.js.map +1 -1
- package/dist/composed/content-card.js +2 -2
- package/dist/composed/content-card.js.map +1 -1
- package/dist/composed/date-picker/index.js +9 -9
- package/dist/composed/date-picker/index.js.map +1 -1
- package/dist/composed/diff.d.ts +23 -2
- package/dist/composed/diff.d.ts.map +1 -1
- package/dist/composed/diff.js +341 -260
- package/dist/composed/diff.js.map +1 -1
- package/dist/composed/emoji-picker.js +3 -3
- package/dist/composed/emoji-picker.js.map +1 -1
- package/dist/composed/empty-state.js +4 -4
- package/dist/composed/error-boundary.js +2 -2
- package/dist/composed/error-boundary.js.map +1 -1
- package/dist/composed/file-preview/image-preview.d.ts.map +1 -1
- package/dist/composed/file-preview/shared.d.ts.map +1 -1
- package/dist/composed/file-preview/video-preview.d.ts.map +1 -1
- package/dist/composed/file-preview.js +152 -151
- package/dist/composed/file-preview.js.map +1 -1
- package/dist/composed/filter-bar.d.ts.map +1 -1
- package/dist/composed/filter-bar.js +53 -52
- package/dist/composed/filter-bar.js.map +1 -1
- package/dist/composed/form-section.d.ts.map +1 -1
- package/dist/composed/form-section.js +38 -37
- package/dist/composed/form-section.js.map +1 -1
- package/dist/composed/inline-edit.js +1 -1
- package/dist/composed/inline-edit.js.map +1 -1
- package/dist/composed/loading-skeleton.js +3 -3
- package/dist/composed/loading-skeleton.js.map +1 -1
- package/dist/composed/master-detail.d.ts.map +1 -1
- package/dist/composed/master-detail.js +1 -1
- package/dist/composed/master-detail.js.map +1 -1
- package/dist/composed/member-picker.js +1 -1
- package/dist/composed/member-picker.js.map +1 -1
- package/dist/composed/multi-select-popover.d.ts.map +1 -1
- package/dist/composed/multi-select-popover.js +109 -108
- package/dist/composed/multi-select-popover.js.map +1 -1
- package/dist/composed/page-skeletons.js +4 -4
- package/dist/composed/page-skeletons.js.map +1 -1
- package/dist/composed/responsive-modal.js +1 -1
- package/dist/composed/responsive-modal.js.map +1 -1
- package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
- package/dist/composed/rich-chat-input.d.ts.map +1 -1
- package/dist/composed/rich-chat-input.js +473 -472
- package/dist/composed/rich-chat-input.js.map +1 -1
- package/dist/composed/rich-text-editor.js +6 -6
- package/dist/composed/rich-text-editor.js.map +1 -1
- package/dist/composed/schedule-view.js +5 -5
- package/dist/composed/schedule-view.js.map +1 -1
- package/dist/composed/status-badge.d.ts.map +1 -1
- package/dist/composed/status-badge.js +29 -28
- package/dist/composed/status-badge.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +4 -3
- package/dist/hooks/use-container-size.d.ts +18 -0
- package/dist/hooks/use-container-size.d.ts.map +1 -0
- package/dist/hooks/use-container-size.js +28 -0
- package/dist/hooks/use-container-size.js.map +1 -0
- package/dist/motion/index.d.ts +1 -0
- package/dist/motion/index.d.ts.map +1 -1
- package/dist/motion/index.js +2 -15
- package/dist/motion/motion-preference.d.ts +36 -0
- package/dist/motion/motion-preference.d.ts.map +1 -0
- package/dist/motion/motion-provider.d.ts +2 -1
- package/dist/motion/motion-provider.d.ts.map +1 -1
- package/dist/motion/primitives-index.js +103 -102
- package/dist/motion/primitives-index.js.map +1 -1
- package/dist/motion/primitives.d.ts.map +1 -1
- package/dist/shell/app-shell.d.ts +101 -0
- package/dist/shell/app-shell.d.ts.map +1 -0
- package/dist/shell/app-shell.js +76 -0
- package/dist/shell/app-shell.js.map +1 -0
- package/dist/shell/bottom-navbar.js +21 -21
- package/dist/shell/bottom-navbar.js.map +1 -1
- package/dist/shell/index.d.ts +2 -1
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +6 -5
- package/dist/shell/notification-center.d.ts +17 -0
- package/dist/shell/notification-center.d.ts.map +1 -1
- package/dist/shell/notification-center.js +110 -105
- package/dist/shell/notification-center.js.map +1 -1
- package/dist/shell/notification-preferences.js +1 -1
- package/dist/shell/notification-preferences.js.map +1 -1
- package/dist/shell/top-bar.js +7 -7
- package/dist/shell/top-bar.js.map +1 -1
- package/dist/tokens/generate-scale.d.ts +49 -0
- package/dist/tokens/generate-scale.d.ts.map +1 -1
- package/dist/tokens/index.css +1 -0
- package/dist/tokens/palettes.css +292 -0
- package/dist/tokens/primitives.css +29 -26
- package/dist/tokens/semantic.css +170 -47
- package/dist/tokens/shilp-sutra.css +1 -0
- package/dist/tokens/utilities.css +10 -7
- package/dist/tokens/variants.css +1 -1
- package/dist/ui/accordion.d.ts.map +1 -1
- package/dist/ui/accordion.js +27 -26
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +60 -59
- package/dist/ui/alert-dialog.js.map +1 -1
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +55 -113
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/autocomplete.js +80 -80
- package/dist/ui/autocomplete.js.map +1 -1
- package/dist/ui/avatar.d.ts.map +1 -1
- package/dist/ui/avatar.js +71 -70
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge-indicator.d.ts +4 -8
- package/dist/ui/badge-indicator.d.ts.map +1 -1
- package/dist/ui/badge-indicator.js +3 -8
- package/dist/ui/badge-indicator.js.map +1 -1
- package/dist/ui/badge.d.ts +55 -34
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/banner.d.ts.map +1 -1
- package/dist/ui/banner.js +43 -41
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js +3 -23
- package/dist/ui/button-group.js.map +1 -1
- package/dist/ui/button.d.ts +10 -1
- package/dist/ui/button.d.ts.map +1 -1
- package/dist/ui/button.js +79 -212
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.d.ts.map +1 -1
- package/dist/ui/card.js +78 -75
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/charts/radar-chart.d.ts.map +1 -1
- package/dist/ui/charts/radar-chart.js +1 -1
- package/dist/ui/charts/radar-chart.js.map +1 -1
- package/dist/ui/chat/date-separator.d.ts +8 -1
- package/dist/ui/chat/date-separator.d.ts.map +1 -1
- package/dist/ui/chat/message-list.d.ts.map +1 -1
- package/dist/ui/chat/message.d.ts.map +1 -1
- package/dist/ui/chat/typing-indicator.d.ts.map +1 -1
- package/dist/ui/checkbox.js +1 -1
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code.js +2 -2
- package/dist/ui/code.js.map +1 -1
- package/dist/ui/color-input.d.ts.map +1 -1
- package/dist/ui/color-input.js +151 -150
- package/dist/ui/color-input.js.map +1 -1
- package/dist/ui/combobox.d.ts +14 -0
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +156 -152
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/context-menu.d.ts.map +1 -1
- package/dist/ui/context-menu.js +70 -69
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/data-table-body.d.ts +3 -1
- package/dist/ui/data-table-body.d.ts.map +1 -1
- package/dist/ui/data-table-body.js +93 -92
- package/dist/ui/data-table-body.js.map +1 -1
- package/dist/ui/data-table-bulk-actions.d.ts +7 -1
- package/dist/ui/data-table-bulk-actions.d.ts.map +1 -1
- package/dist/ui/data-table-bulk-actions.js +14 -8
- package/dist/ui/data-table-bulk-actions.js.map +1 -1
- package/dist/ui/data-table-card.d.ts.map +1 -1
- package/dist/ui/data-table-card.js +66 -47
- package/dist/ui/data-table-card.js.map +1 -1
- package/dist/ui/data-table-context.d.ts +4 -0
- package/dist/ui/data-table-context.d.ts.map +1 -1
- package/dist/ui/data-table-context.js +2 -2
- package/dist/ui/data-table-context.js.map +1 -1
- package/dist/ui/data-table-header.d.ts.map +1 -1
- package/dist/ui/data-table-header.js +50 -46
- package/dist/ui/data-table-header.js.map +1 -1
- package/dist/ui/data-table-pagination.js +3 -3
- package/dist/ui/data-table-pagination.js.map +1 -1
- package/dist/ui/data-table-toolbar.d.ts +11 -1
- package/dist/ui/data-table-toolbar.d.ts.map +1 -1
- package/dist/ui/data-table-toolbar.js +7 -7
- package/dist/ui/data-table-toolbar.js.map +1 -1
- package/dist/ui/data-table.d.ts +52 -5
- package/dist/ui/data-table.d.ts.map +1 -1
- package/dist/ui/data-table.js +181 -169
- package/dist/ui/data-table.js.map +1 -1
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +62 -61
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dot.d.ts.map +1 -1
- package/dist/ui/dot.js +10 -41
- package/dist/ui/dot.js.map +1 -1
- package/dist/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/ui/dropdown-menu.js +79 -78
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/file-upload.d.ts.map +1 -1
- package/dist/ui/file-upload.js +117 -116
- package/dist/ui/file-upload.js.map +1 -1
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +27 -26
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/hover-card.d.ts.map +1 -1
- package/dist/ui/hover-card.js +26 -25
- package/dist/ui/hover-card.js.map +1 -1
- package/dist/ui/icon.js +7 -7
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +3 -3
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/input-otp.js +1 -1
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.js +8 -8
- package/dist/ui/input.js.map +1 -1
- package/dist/ui/menubar.d.ts.map +1 -1
- package/dist/ui/menubar.js +73 -72
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/navigation-menu.d.ts.map +1 -1
- package/dist/ui/navigation-menu.js +80 -79
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/number-input.js +3 -3
- package/dist/ui/number-input.js.map +1 -1
- package/dist/ui/pagination.js +1 -1
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/progress-ring.js +2 -2
- package/dist/ui/progress-ring.js.map +1 -1
- package/dist/ui/progress.d.ts.map +1 -1
- package/dist/ui/progress.js +82 -74
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +32 -31
- package/dist/ui/radio.js.map +1 -1
- package/dist/ui/search-input.d.ts.map +1 -1
- package/dist/ui/search-input.js +28 -27
- package/dist/ui/search-input.js.map +1 -1
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +67 -66
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/sheet.js +1 -1
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +14 -14
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/slider.d.ts +63 -9
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +75 -33
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/split-button.d.ts +8 -2
- package/dist/ui/split-button.d.ts.map +1 -1
- package/dist/ui/split-button.js +49 -95
- package/dist/ui/split-button.js.map +1 -1
- package/dist/ui/stat-card.d.ts.map +1 -1
- package/dist/ui/stat-card.js +89 -88
- package/dist/ui/stat-card.js.map +1 -1
- package/dist/ui/stat-flash.js +16 -16
- package/dist/ui/stepper.d.ts.map +1 -1
- package/dist/ui/stepper.js +63 -62
- package/dist/ui/stepper.js.map +1 -1
- package/dist/ui/surface.d.ts.map +1 -1
- package/dist/ui/surface.js +2 -2
- package/dist/ui/surface.js.map +1 -1
- package/dist/ui/switch.js +1 -1
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.js +3 -3
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +68 -67
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/textarea.js +5 -5
- package/dist/ui/textarea.js.map +1 -1
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +196 -195
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toggle.d.ts.map +1 -1
- package/dist/ui/toggle.js +26 -24
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/tooltip.d.ts.map +1 -1
- package/dist/ui/tooltip.js +37 -36
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/ui/tree-view/tree-item.d.ts.map +1 -1
- package/docs/components/composed/avatar-group.md +4 -4
- package/docs/components/composed/diff.md +10 -2
- package/docs/components/composed/schedule-view.md +1 -1
- package/docs/components/shell/app-shell.md +132 -0
- package/docs/components/ui/avatar.md +1 -1
- package/docs/components/ui/button.md +1 -1
- package/docs/components/ui/chat.md +7 -1
- package/docs/components/ui/color-swatch.md +1 -1
- package/docs/components/ui/data-table-toolbar.md +6 -2
- package/docs/components/ui/data-table.md +41 -7
- package/docs/components/ui/dot.md +1 -1
- package/docs/components/ui/progress.md +1 -0
- package/docs/components/ui/surface.md +3 -3
- package/docs/components/ui/table.md +2 -2
- package/docs/recipes/customize-brand.md +58 -0
- package/docs/recipes/install-astro.md +1 -0
- package/docs/recipes/install-next-app-router.md +1 -0
- package/docs/recipes/install-next-pages.md +22 -1
- package/docs/recipes/install-remix.md +1 -0
- package/docs/recipes/install-tanstack-start.md +1 -0
- package/docs/recipes/install-vite.md +2 -0
- package/docs/recipes/server-components.md +7 -4
- package/docs/recipes/troubleshoot.md +1 -0
- package/llms.txt +2 -1
- package/make-kit/Guidelines.md +2 -2
- package/make-kit/components/button.md +1 -1
- package/make-kit/components/card.md +6 -6
- package/make-kit/components/surface.md +4 -4
- package/make-kit/foundations/color.md +4 -4
- package/make-kit/foundations/dark-mode.md +1 -1
- package/make-kit/foundations/radius.md +1 -1
- package/make-kit/foundations/surfaces.md +9 -9
- package/mcp-manifest.json +358 -35
- package/package.json +8 -4
- package/skill/SKILL.md +12 -6
- package/skill/references/components.md +2 -1
- package/skill/references/customize-brand.md +58 -0
- package/skill/references/server-components.md +7 -4
- package/skill/references/setup-astro.md +1 -0
- package/skill/references/setup-next-app-router.md +1 -0
- package/skill/references/setup-next-pages.md +22 -1
- package/skill/references/setup-remix.md +1 -0
- package/skill/references/setup-tanstack-start.md +1 -0
- package/skill/references/setup-vite.md +2 -0
- package/skill/references/troubleshoot.md +1 -0
- package/dist/motion/check-motion-provider.d.ts +0 -2
- package/dist/motion/check-motion-provider.d.ts.map +0 -1
- package/dist/motion/index.js.map +0 -1
- package/dist/primitives/react-toast.d.ts +0 -120
- package/dist/ui/charts/_internal/scales.d.ts +0 -5
- package/dist/ui/charts/_internal/scales.d.ts.map +0 -1
- package/dist/ui/lib/slot.d.ts +0 -8
- package/dist/ui/lib/slot.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-badge.js","names":[],"sources":["../../src/composed/status-badge.tsx"],"sourcesContent":["'use client'\n\nimport { IconChevronDown } from '@tabler/icons-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { Badge } from '../ui/badge'\nimport { Dot, type DotColor } from '../ui/dot'\nimport type { IconInput } from '../ui/lib/icon-input'\nimport { motionProps } from '../ui/lib/motion'\n\n/**\n * Domain work-statuses → the shared intent colour used by both the Badge pill\n * and the leading Dot. StatusBadge is a thin semantic wrapper: it owns the\n * status vocabulary and composes `<Badge>` + `<Dot>` rather than re-styling a pill.\n */\ntype StatusKey =\n | 'active' | 'pending' | 'approved' | 'rejected' | 'completed'\n | 'blocked' | 'in-progress' | 'review' | 'cancelled' | 'draft'\n\n// Intent colours shared by Badge + Dot (never 'current' — that's a Badge-internal mode).\ntype IntentColor = Exclude<DotColor, 'current'>\n\nconst STATUS_TO_COLOR: Record<StatusKey, IntentColor> = {\n active: 'success',\n approved: 'success',\n completed: 'success',\n pending: 'warning',\n rejected: 'error',\n blocked: 'error',\n 'in-progress': 'accent',\n review: 'info',\n cancelled: 'neutral',\n draft: 'neutral',\n}\n\ntype StatusColor = 'success' | 'warning' | 'error' | 'info' | 'neutral'\n\ninterface StatusBadgeBaseProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children' | 'color'> {\n label?: string\n hideDot?: boolean\n size?: 'sm' | 'md'\n onClick?: () => void\n /** Trailing icon. When omitted on a clickable badge, a chevron is shown. */\n icon?: IconInput\n}\n\ninterface StatusBadgeWithStatus extends StatusBadgeBaseProps {\n status?: StatusKey\n color?: never\n}\n\ninterface StatusBadgeWithColor extends StatusBadgeBaseProps {\n status?: never\n color: StatusColor\n}\n\nexport type StatusBadgeProps = StatusBadgeWithStatus | StatusBadgeWithColor\n\n/* Between durations.moderate02 (0.24) and slow01 (0.4) — smooth status morph. */\nconst statusMorphTransition = { duration: 0.3, ease: 'easeOut' as const }\n\nconst titleCase = (s: string) => s.charAt(0).toUpperCase() + s.slice(1)\n\nconst StatusBadge = React.forwardRef<HTMLElement, StatusBadgeProps>(\n ({ status, color, size = 'md', label, hideDot = false, onClick, icon, className, ...props }, ref) => {\n // A `color` wins if given; otherwise derive from `status` (default 'pending').\n const key = color ?? status ?? 'pending'\n const dotColor: IntentColor = color ?? STATUS_TO_COLOR[(status ?? 'pending') as StatusKey]\n const displayLabel = label ?? titleCase(color ?? status ?? 'pending').replace('-', ' ')\n const isClickable = onClick != null\n\n // Trailing: an explicit icon, else a chevron for clickable badges.\n const endIcon: IconInput | undefined = icon ?? (isClickable ? IconChevronDown : undefined)\n\n return (\n <AnimatePresence mode=\"wait\">\n
|
|
1
|
+
{"version":3,"file":"status-badge.js","names":[],"sources":["../../src/composed/status-badge.tsx"],"sourcesContent":["'use client'\n\nimport { IconChevronDown } from '@tabler/icons-react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { MotionPreference } from '../motion/motion-preference'\nimport { Badge } from '../ui/badge'\nimport { Dot, type DotColor } from '../ui/dot'\nimport type { IconInput } from '../ui/lib/icon-input'\nimport { motionProps } from '../ui/lib/motion'\n\n/**\n * Domain work-statuses → the shared intent colour used by both the Badge pill\n * and the leading Dot. StatusBadge is a thin semantic wrapper: it owns the\n * status vocabulary and composes `<Badge>` + `<Dot>` rather than re-styling a pill.\n */\ntype StatusKey =\n | 'active' | 'pending' | 'approved' | 'rejected' | 'completed'\n | 'blocked' | 'in-progress' | 'review' | 'cancelled' | 'draft'\n\n// Intent colours shared by Badge + Dot (never 'current' — that's a Badge-internal mode).\ntype IntentColor = Exclude<DotColor, 'current'>\n\nconst STATUS_TO_COLOR: Record<StatusKey, IntentColor> = {\n active: 'success',\n approved: 'success',\n completed: 'success',\n pending: 'warning',\n rejected: 'error',\n blocked: 'error',\n 'in-progress': 'accent',\n review: 'info',\n cancelled: 'neutral',\n draft: 'neutral',\n}\n\ntype StatusColor = 'success' | 'warning' | 'error' | 'info' | 'neutral'\n\ninterface StatusBadgeBaseProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children' | 'color'> {\n label?: string\n hideDot?: boolean\n size?: 'sm' | 'md'\n onClick?: () => void\n /** Trailing icon. When omitted on a clickable badge, a chevron is shown. */\n icon?: IconInput\n}\n\ninterface StatusBadgeWithStatus extends StatusBadgeBaseProps {\n status?: StatusKey\n color?: never\n}\n\ninterface StatusBadgeWithColor extends StatusBadgeBaseProps {\n status?: never\n color: StatusColor\n}\n\nexport type StatusBadgeProps = StatusBadgeWithStatus | StatusBadgeWithColor\n\n/* Between durations.moderate02 (0.24) and slow01 (0.4) — smooth status morph. */\nconst statusMorphTransition = { duration: 0.3, ease: 'easeOut' as const }\n\nconst titleCase = (s: string) => s.charAt(0).toUpperCase() + s.slice(1)\n\nconst StatusBadge = React.forwardRef<HTMLElement, StatusBadgeProps>(\n ({ status, color, size = 'md', label, hideDot = false, onClick, icon, className, ...props }, ref) => {\n // A `color` wins if given; otherwise derive from `status` (default 'pending').\n const key = color ?? status ?? 'pending'\n const dotColor: IntentColor = color ?? STATUS_TO_COLOR[(status ?? 'pending') as StatusKey]\n const displayLabel = label ?? titleCase(color ?? status ?? 'pending').replace('-', ' ')\n const isClickable = onClick != null\n\n // Trailing: an explicit icon, else a chevron for clickable badges.\n const endIcon: IconInput | undefined = icon ?? (isClickable ? IconChevronDown : undefined)\n\n return (\n <MotionPreference>\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={key}\n initial={{ opacity: 0.6, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0.6, scale: 0.95 }}\n transition={statusMorphTransition}\n className=\"inline-flex\"\n {...motionProps(props)}\n >\n <Badge\n ref={ref}\n variant=\"soft\"\n color={dotColor}\n size={size}\n onClick={onClick}\n startIcon={!hideDot ? <Dot color={dotColor} size=\"sm\" /> : undefined}\n endIcon={endIcon}\n className={className}\n >\n {displayLabel}\n </Badge>\n </motion.span>\n </AnimatePresence>\n </MotionPreference>\n )\n },\n)\nStatusBadge.displayName = 'StatusBadge'\n\nexport { StatusBadge }\n"],"mappings":";;;;;;;;;;AAwBA,IAAM,IAAkD;CACtD,QAAQ;CACR,UAAU;CACV,WAAW;CACX,SAAS;CACT,UAAU;CACV,SAAS;CACT,eAAe;CACf,QAAQ;CACR,WAAW;CACX,OAAO;AACT,GA0BM,IAAwB;CAAE,UAAU;CAAK,MAAM;AAAmB,GAElE,KAAa,MAAc,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,MAAM,CAAC,GAEhE,IAAc,EAAM,YACvB,EAAE,WAAQ,UAAO,UAAO,MAAM,UAAO,aAAU,IAAO,YAAS,SAAM,cAAW,GAAG,KAAS,MAAQ;CAEnG,IAAM,IAAM,KAAS,KAAU,WACzB,IAAwB,KAAS,EAAiB,KAAU,YAC5D,IAAe,KAAS,EAAU,KAAS,KAAU,SAAS,CAAC,CAAC,QAAQ,KAAK,GAAG,GAIhF,IAAiC,MAHnB,KAAW,OAGiD,KAAA,IAAlB;CAE9D,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAiB,MAAK;YACpB,kBAAC,EAAO,MAAR;GAEE,SAAS;IAAE,SAAS;IAAK,OAAO;GAAK;GACrC,SAAS;IAAE,SAAS;IAAG,OAAO;GAAE;GAChC,MAAM;IAAE,SAAS;IAAK,OAAO;GAAK;GAClC,YAAY;GACZ,WAAU;GACV,GAAI,EAAY,CAAK;aAErB,kBAAC,GAAD;IACO;IACL,SAAQ;IACR,OAAO;IACD;IACG;IACT,WAAY,IAA+C,KAAA,IAArC,kBAAC,GAAD;KAAK,OAAO;KAAU,MAAK;IAAM,CAAA;IAC9C;IACE;cAEV;GACI,CAAA;EACI,GApBN,CAoBM;CACE,CAAA,EACD,CAAA;AAEtB,CACF;AACA,EAAY,cAAc"}
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { toast } from '../ui/toast.js';
|
|
2
2
|
export type { ToastActionOptions, ToastOptions, ToastType, ToastUndoOptions, ToastUploadOptions, UploadFile, } from '../ui/toast-types.js';
|
|
3
3
|
export { type ColorMode, useColorMode } from './use-color-mode.js';
|
|
4
|
+
export { type ContainerSize, useContainerSize } from './use-container-size.js';
|
|
4
5
|
export { useIsMobile } from './use-mobile.js';
|
|
5
6
|
export { useTouchDevice } from './use-touch-device.js';
|
|
6
7
|
export { useViewportHeight } from './use-viewport-height.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAC,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACnC,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,KAAK,SAAS,EAAC,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAC,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { useIsMobile as e } from "./use-mobile.js";
|
|
3
3
|
import { toast as t } from "../ui/toast.js";
|
|
4
4
|
import { useColorMode as n } from "./use-color-mode.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
5
|
+
import { useContainerSize as r } from "./use-container-size.js";
|
|
6
|
+
import { useTouchDevice as i } from "./use-touch-device.js";
|
|
7
|
+
import { useViewportHeight as a } from "./use-viewport-height.js";
|
|
8
|
+
export { t as toast, n as useColorMode, r as useContainerSize, e as useIsMobile, i as useTouchDevice, a as useViewportHeight };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface ContainerSize {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Tracks an element's content-box size via `ResizeObserver`. Attach the
|
|
8
|
+
* returned `ref` to the element you want to measure.
|
|
9
|
+
*
|
|
10
|
+
* SSR-safe: returns `{ width: 0, height: 0 }` until the ref is attached and
|
|
11
|
+
* the observer fires.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useContainerSize<T extends Element = HTMLDivElement>(): {
|
|
14
|
+
ref: React.RefCallback<T>;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=use-container-size.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-container-size.d.ts","sourceRoot":"","sources":["../../src/hooks/use-container-size.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,GAAG,cAAc,KAAK;IACtE,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;CACf,CAuBA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import * as e from "react";
|
|
3
|
+
//#region src/hooks/use-container-size.ts
|
|
4
|
+
function t() {
|
|
5
|
+
let [t, n] = e.useState({
|
|
6
|
+
width: 0,
|
|
7
|
+
height: 0
|
|
8
|
+
}), r = e.useRef(null), i = e.useRef(null), a = e.useCallback((e) => {
|
|
9
|
+
if (i.current?.disconnect(), r.current = e, !e) return;
|
|
10
|
+
let t = new ResizeObserver((e) => {
|
|
11
|
+
let t = e[0];
|
|
12
|
+
if (!t) return;
|
|
13
|
+
let { width: r, height: i } = t.contentRect;
|
|
14
|
+
n((e) => e.width === r && e.height === i ? e : {
|
|
15
|
+
width: r,
|
|
16
|
+
height: i
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
t.observe(e), i.current = t;
|
|
20
|
+
}, []);
|
|
21
|
+
return e.useEffect(() => () => i.current?.disconnect(), []), {
|
|
22
|
+
ref: a,
|
|
23
|
+
width: t.width,
|
|
24
|
+
height: t.height
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { t as useContainerSize };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-container-size.js","names":[],"sources":["../../src/hooks/use-container-size.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nexport interface ContainerSize {\n width: number\n height: number\n}\n\n/**\n * Tracks an element's content-box size via `ResizeObserver`. Attach the\n * returned `ref` to the element you want to measure.\n *\n * SSR-safe: returns `{ width: 0, height: 0 }` until the ref is attached and\n * the observer fires.\n */\nexport function useContainerSize<T extends Element = HTMLDivElement>(): {\n ref: React.RefCallback<T>\n width: number\n height: number\n} {\n const [size, setSize] = React.useState<ContainerSize>({ width: 0, height: 0 })\n const elementRef = React.useRef<T | null>(null)\n const observerRef = React.useRef<ResizeObserver | null>(null)\n\n const ref = React.useCallback((node: T | null) => {\n observerRef.current?.disconnect()\n elementRef.current = node\n if (!node) return\n\n const observer = new ResizeObserver((entries) => {\n const entry = entries[0]\n if (!entry) return\n const { width, height } = entry.contentRect\n setSize((prev) => (prev.width === width && prev.height === height ? prev : { width, height }))\n })\n observer.observe(node)\n observerRef.current = observer\n }, [])\n\n React.useEffect(() => () => observerRef.current?.disconnect(), [])\n\n return { ref, width: size.width, height: size.height }\n}\n"],"mappings":";;;AAgBA,SAAgB,IAId;CACA,IAAM,CAAC,GAAM,KAAW,EAAM,SAAwB;EAAE,OAAO;EAAG,QAAQ;CAAE,CAAC,GACvE,IAAa,EAAM,OAAiB,IAAI,GACxC,IAAc,EAAM,OAA8B,IAAI,GAEtD,IAAM,EAAM,aAAa,MAAmB;EAGhD,IAFA,EAAY,SAAS,WAAW,GAChC,EAAW,UAAU,GACjB,CAAC,GAAM;EAEX,IAAM,IAAW,IAAI,gBAAgB,MAAY;GAC/C,IAAM,IAAQ,EAAQ;GACtB,IAAI,CAAC,GAAO;GACZ,IAAM,EAAE,UAAO,cAAW,EAAM;GAChC,GAAS,MAAU,EAAK,UAAU,KAAS,EAAK,WAAW,IAAS,IAAO;IAAE;IAAO;GAAO,CAAE;EAC/F,CAAC;EAED,AADA,EAAS,QAAQ,CAAI,GACrB,EAAY,UAAU;CACxB,GAAG,CAAC,CAAC;CAIL,OAFA,EAAM,sBAAsB,EAAY,SAAS,WAAW,GAAG,CAAC,CAAC,GAE1D;EAAE;EAAK,OAAO,EAAK;EAAO,QAAQ,EAAK;CAAO;AACvD"}
|
package/dist/motion/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { motionProps, type SpringPreset, springs, stagger, type TweenPreset, tweens, withReducedMotion } from '../ui/lib/motion.js';
|
|
2
|
+
export { MotionPreference, type MotionPreferenceProps } from './motion-preference.js';
|
|
2
3
|
export { MotionProvider, type MotionProviderProps, useMotion } from './motion-provider.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/motion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAC/H,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAC,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/motion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,WAAW,EAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAC/H,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAC,SAAS,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/motion/index.js
CHANGED
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { motionProps as e, springs as t, stagger as n, tweens as r, withReducedMotion as i } from "../ui/lib/motion.js";
|
|
3
3
|
import { MotionProvider as a, useMotion as o } from "../_chunks/motion-provider.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
function c() {
|
|
7
|
-
if (!s && !(typeof window > "u")) {
|
|
8
|
-
try {
|
|
9
|
-
return;
|
|
10
|
-
} catch {}
|
|
11
|
-
s = !0, console.info("[shilp-sutra] Tip: Wrap your app in <MotionProvider> for reduced-motion support across all shilp-sutra animations. See https://www.npmjs.com/package/@devalok/shilp-sutra");
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//#endregion
|
|
15
|
-
//#region src/motion/index.ts
|
|
16
|
-
c();
|
|
17
|
-
//#endregion
|
|
18
|
-
export { a as MotionProvider, e as motionProps, t as springs, n as stagger, r as tweens, o as useMotion, i as withReducedMotion };
|
|
4
|
+
import { MotionPreference as s } from "../_chunks/motion-preference.js";
|
|
5
|
+
export { s as MotionPreference, a as MotionProvider, e as motionProps, t as springs, n as stagger, r as tweens, o as useMotion, i as withReducedMotion };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
type MotionPreferenceProps = {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Makes the OS `prefers-reduced-motion` setting the DEFAULT for a component's
|
|
7
|
+
* animations, instead of something the consumer has to opt into.
|
|
8
|
+
*
|
|
9
|
+
* Framer Motion's `MotionConfigContext` defaults to `reducedMotion: "never"` —
|
|
10
|
+
* meaning every `motion.*` element ignores the OS setting until some ancestor
|
|
11
|
+
* says otherwise. Our only ancestor that says otherwise is `<MotionProvider>`,
|
|
12
|
+
* which consumers are not required to mount, so out of the box the whole
|
|
13
|
+
* library animated straight through a reduced-motion preference.
|
|
14
|
+
*
|
|
15
|
+
* Wrapping a component's root in this fixes that for the subtree. Under
|
|
16
|
+
* `"user"`, Framer suppresses exactly the positional keys — width, height,
|
|
17
|
+
* top/left/right/bottom and every transform — and leaves opacity, colour and
|
|
18
|
+
* filter animating normally. That is the behaviour WCAG 2.3.3 asks for: kill
|
|
19
|
+
* the movement, keep the fade.
|
|
20
|
+
*
|
|
21
|
+
* It renders no DOM, and defers to anything that has already made the call:
|
|
22
|
+
*
|
|
23
|
+
* - a mounted `<MotionProvider>` owns the decision, including the deliberate
|
|
24
|
+
* `reducedMotion={false}` "animate regardless" override;
|
|
25
|
+
* - a bare `<MotionConfig>` that has moved off the default was set on purpose;
|
|
26
|
+
* - nesting is self-cancelling — the outermost wrapper configures the context,
|
|
27
|
+
* and every one below it sees a non-default value and passes straight through.
|
|
28
|
+
*
|
|
29
|
+
* The one case it cannot read is a consumer who mounts `<MotionConfig
|
|
30
|
+
* reducedMotion="never">` by hand to force animation on. That is
|
|
31
|
+
* indistinguishable from the framework default, so this wrapper overrides it.
|
|
32
|
+
* `<MotionProvider reducedMotion={false}>` is the supported way to express it.
|
|
33
|
+
*/
|
|
34
|
+
declare function MotionPreference({ children }: MotionPreferenceProps): React.JSX.Element;
|
|
35
|
+
export { MotionPreference, type MotionPreferenceProps };
|
|
36
|
+
//# sourceMappingURL=motion-preference.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motion-preference.d.ts","sourceRoot":"","sources":["../../src/motion/motion-preference.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAQ5D;AAED,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,CAAA"}
|
|
@@ -6,6 +6,7 @@ type MotionContextValue = {
|
|
|
6
6
|
tweens: typeof tweens;
|
|
7
7
|
reducedMotion: boolean;
|
|
8
8
|
};
|
|
9
|
+
declare const MotionContext: React.Context<MotionContextValue | null>;
|
|
9
10
|
type MotionProviderProps = {
|
|
10
11
|
children: React.ReactNode;
|
|
11
12
|
/** 'user' = detect OS preference, true = force off, false = force on */
|
|
@@ -13,5 +14,5 @@ type MotionProviderProps = {
|
|
|
13
14
|
};
|
|
14
15
|
declare function MotionProvider({ children, reducedMotion }: MotionProviderProps): React.JSX.Element;
|
|
15
16
|
declare function useMotion(): MotionContextValue;
|
|
16
|
-
export { MotionProvider, type MotionProviderProps, useMotion };
|
|
17
|
+
export { MotionContext, MotionProvider, type MotionProviderProps, useMotion };
|
|
17
18
|
//# sourceMappingURL=motion-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"motion-provider.d.ts","sourceRoot":"","sources":["../../src/motion/motion-provider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAElD,KAAK,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEzC,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;
|
|
1
|
+
{"version":3,"file":"motion-provider.d.ts","sourceRoot":"","sources":["../../src/motion/motion-provider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAElD,KAAK,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAA;AAEzC,KAAK,kBAAkB,GAAG;IACxB,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAKD,QAAA,MAAM,aAAa,0CAAuD,CAAA;AAE1E,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,wEAAwE;IACxE,aAAa,CAAC,EAAE,iBAAiB,CAAA;CAClC,CAAA;AAED,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,aAAsB,EAAE,EAAE,mBAAmB,qBAgBhF;AAED,iBAAS,SAAS,IAAI,kBAAkB,CAMvC;AAED,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAC,SAAS,EAAE,CAAA"}
|
|
@@ -1,45 +1,46 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { springs as e, tweens as t } from "../ui/lib/motion.js";
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
3
|
+
import { MotionPreference as n } from "../_chunks/motion-preference.js";
|
|
4
|
+
import { cn as r } from "../ui/lib/utils.js";
|
|
5
|
+
import * as i from "react";
|
|
6
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
7
|
+
import { AnimatePresence as o, motion as s } from "framer-motion";
|
|
7
8
|
//#region src/motion/primitives.tsx
|
|
8
|
-
var
|
|
9
|
-
let
|
|
9
|
+
var c = i.forwardRef(({ show: e, children: i, className: c, layout: l, layoutId: u, whileInView: d, viewportOnce: f = !0, viewportMargin: p = "-50px", ...m }, h) => {
|
|
10
|
+
let g = d ? {
|
|
10
11
|
initial: "hidden",
|
|
11
12
|
whileInView: "visible",
|
|
12
13
|
viewport: {
|
|
13
|
-
once:
|
|
14
|
-
margin:
|
|
14
|
+
once: f,
|
|
15
|
+
margin: p
|
|
15
16
|
}
|
|
16
17
|
} : {};
|
|
17
|
-
return /* @__PURE__ */
|
|
18
|
-
ref:
|
|
18
|
+
return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(o, { children: e && /* @__PURE__ */ a(s.div, {
|
|
19
|
+
ref: h,
|
|
19
20
|
initial: { opacity: 0 },
|
|
20
21
|
animate: { opacity: 1 },
|
|
21
22
|
exit: { opacity: 0 },
|
|
22
23
|
transition: t.fade,
|
|
23
|
-
className:
|
|
24
|
-
layout:
|
|
25
|
-
layoutId:
|
|
26
|
-
...
|
|
27
|
-
...
|
|
28
|
-
children:
|
|
29
|
-
}) });
|
|
24
|
+
className: r(c),
|
|
25
|
+
layout: l,
|
|
26
|
+
layoutId: u,
|
|
27
|
+
...g,
|
|
28
|
+
...m,
|
|
29
|
+
children: i
|
|
30
|
+
}) }) });
|
|
30
31
|
});
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
let
|
|
32
|
+
c.displayName = "MotionFade";
|
|
33
|
+
var l = i.forwardRef(({ show: i, children: c, className: l, preset: u = "snappy", layout: d, layoutId: f, whileInView: p, viewportOnce: m = !0, viewportMargin: h = "-50px", ...g }, _) => {
|
|
34
|
+
let v = e[u], y = p ? {
|
|
34
35
|
initial: "hidden",
|
|
35
36
|
whileInView: "visible",
|
|
36
37
|
viewport: {
|
|
37
|
-
once:
|
|
38
|
-
margin:
|
|
38
|
+
once: m,
|
|
39
|
+
margin: h
|
|
39
40
|
}
|
|
40
41
|
} : {};
|
|
41
|
-
return /* @__PURE__ */
|
|
42
|
-
ref:
|
|
42
|
+
return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(o, { children: i && /* @__PURE__ */ a(s.div, {
|
|
43
|
+
ref: _,
|
|
43
44
|
initial: {
|
|
44
45
|
opacity: 0,
|
|
45
46
|
scale: .96
|
|
@@ -53,29 +54,29 @@ var c = r.forwardRef(({ show: r, children: s, className: c, preset: l = "snappy"
|
|
|
53
54
|
scale: .96
|
|
54
55
|
},
|
|
55
56
|
transition: {
|
|
56
|
-
...
|
|
57
|
+
...v,
|
|
57
58
|
opacity: t.fade
|
|
58
59
|
},
|
|
59
|
-
className:
|
|
60
|
-
layout:
|
|
61
|
-
layoutId:
|
|
62
|
-
...
|
|
63
|
-
...
|
|
64
|
-
children:
|
|
65
|
-
}) });
|
|
60
|
+
className: r(l),
|
|
61
|
+
layout: d,
|
|
62
|
+
layoutId: f,
|
|
63
|
+
...y,
|
|
64
|
+
...g,
|
|
65
|
+
children: c
|
|
66
|
+
}) }) });
|
|
66
67
|
});
|
|
67
|
-
|
|
68
|
-
var
|
|
69
|
-
let
|
|
68
|
+
l.displayName = "MotionScale";
|
|
69
|
+
var u = i.forwardRef(({ show: i, children: c, className: l, preset: u = "bouncy", layout: d, layoutId: f, whileInView: p, viewportOnce: m = !0, viewportMargin: h = "-50px", ...g }, _) => {
|
|
70
|
+
let v = e[u], y = p ? {
|
|
70
71
|
initial: "hidden",
|
|
71
72
|
whileInView: "visible",
|
|
72
73
|
viewport: {
|
|
73
|
-
once:
|
|
74
|
-
margin:
|
|
74
|
+
once: m,
|
|
75
|
+
margin: h
|
|
75
76
|
}
|
|
76
77
|
} : {};
|
|
77
|
-
return /* @__PURE__ */
|
|
78
|
-
ref:
|
|
78
|
+
return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(o, { children: i && /* @__PURE__ */ a(s.div, {
|
|
79
|
+
ref: _,
|
|
79
80
|
initial: {
|
|
80
81
|
opacity: 0,
|
|
81
82
|
scale: .5
|
|
@@ -89,37 +90,37 @@ var l = r.forwardRef(({ show: r, children: s, className: c, preset: l = "bouncy"
|
|
|
89
90
|
scale: .5
|
|
90
91
|
},
|
|
91
92
|
transition: {
|
|
92
|
-
...
|
|
93
|
+
...v,
|
|
93
94
|
opacity: t.fade
|
|
94
95
|
},
|
|
95
|
-
className:
|
|
96
|
-
layout:
|
|
97
|
-
layoutId:
|
|
98
|
-
...
|
|
99
|
-
...
|
|
100
|
-
children:
|
|
101
|
-
}) });
|
|
96
|
+
className: r(l),
|
|
97
|
+
layout: d,
|
|
98
|
+
layoutId: f,
|
|
99
|
+
...y,
|
|
100
|
+
...g,
|
|
101
|
+
children: c
|
|
102
|
+
}) }) });
|
|
102
103
|
});
|
|
103
|
-
|
|
104
|
-
var
|
|
105
|
-
let
|
|
104
|
+
u.displayName = "MotionPop";
|
|
105
|
+
var d = i.forwardRef(({ show: i, children: c, className: l, preset: u = "smooth", direction: d = "up", layout: f, layoutId: p, whileInView: m, viewportOnce: h = !0, viewportMargin: g = "-50px", ..._ }, v) => {
|
|
106
|
+
let y = e[u], b = {
|
|
106
107
|
up: { y: 16 },
|
|
107
108
|
down: { y: -16 },
|
|
108
109
|
left: { x: 16 },
|
|
109
110
|
right: { x: -16 }
|
|
110
|
-
}[
|
|
111
|
+
}[d], x = m ? {
|
|
111
112
|
initial: "hidden",
|
|
112
113
|
whileInView: "visible",
|
|
113
114
|
viewport: {
|
|
114
|
-
once:
|
|
115
|
-
margin:
|
|
115
|
+
once: h,
|
|
116
|
+
margin: g
|
|
116
117
|
}
|
|
117
118
|
} : {};
|
|
118
|
-
return /* @__PURE__ */
|
|
119
|
-
ref:
|
|
119
|
+
return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(o, { children: i && /* @__PURE__ */ a(s.div, {
|
|
120
|
+
ref: v,
|
|
120
121
|
initial: {
|
|
121
122
|
opacity: 0,
|
|
122
|
-
...
|
|
123
|
+
...b
|
|
123
124
|
},
|
|
124
125
|
animate: {
|
|
125
126
|
opacity: 1,
|
|
@@ -128,27 +129,27 @@ var u = r.forwardRef(({ show: r, children: s, className: c, preset: l = "smooth"
|
|
|
128
129
|
},
|
|
129
130
|
exit: {
|
|
130
131
|
opacity: 0,
|
|
131
|
-
...
|
|
132
|
+
...b
|
|
132
133
|
},
|
|
133
134
|
transition: {
|
|
134
|
-
...
|
|
135
|
+
...y,
|
|
135
136
|
opacity: t.fade
|
|
136
137
|
},
|
|
137
|
-
className:
|
|
138
|
-
layout:
|
|
139
|
-
layoutId:
|
|
140
|
-
...
|
|
141
|
-
...
|
|
142
|
-
children:
|
|
143
|
-
}) });
|
|
138
|
+
className: r(l),
|
|
139
|
+
layout: f,
|
|
140
|
+
layoutId: p,
|
|
141
|
+
...x,
|
|
142
|
+
..._,
|
|
143
|
+
children: c
|
|
144
|
+
}) }) });
|
|
144
145
|
});
|
|
145
|
-
|
|
146
|
-
var
|
|
147
|
-
let
|
|
148
|
-
return /* @__PURE__ */
|
|
146
|
+
d.displayName = "MotionSlide";
|
|
147
|
+
var f = i.forwardRef(({ show: i, children: c, className: l, preset: u = "gentle", layout: d, layoutId: f, ...p }, m) => {
|
|
148
|
+
let h = e[u];
|
|
149
|
+
return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(o, {
|
|
149
150
|
initial: !1,
|
|
150
|
-
children:
|
|
151
|
-
ref:
|
|
151
|
+
children: i && /* @__PURE__ */ a(s.div, {
|
|
152
|
+
ref: m,
|
|
152
153
|
initial: {
|
|
153
154
|
height: 0,
|
|
154
155
|
opacity: 0,
|
|
@@ -165,44 +166,44 @@ var d = r.forwardRef(({ show: r, children: s, className: c, preset: l = "gentle"
|
|
|
165
166
|
overflow: "hidden"
|
|
166
167
|
},
|
|
167
168
|
transition: {
|
|
168
|
-
...
|
|
169
|
+
...h,
|
|
169
170
|
opacity: t.fade
|
|
170
171
|
},
|
|
171
|
-
className:
|
|
172
|
-
layout:
|
|
173
|
-
layoutId:
|
|
174
|
-
...
|
|
175
|
-
children:
|
|
172
|
+
className: r(l),
|
|
173
|
+
layout: d,
|
|
174
|
+
layoutId: f,
|
|
175
|
+
...p,
|
|
176
|
+
children: c
|
|
176
177
|
})
|
|
177
|
-
});
|
|
178
|
+
}) });
|
|
178
179
|
});
|
|
179
|
-
|
|
180
|
-
var
|
|
181
|
-
let
|
|
180
|
+
f.displayName = "MotionCollapse";
|
|
181
|
+
var p = i.forwardRef(({ children: e, className: t, delay: i = .04, whileInView: o, viewportOnce: c = !0, viewportMargin: l = "-50px", ...u }, d) => {
|
|
182
|
+
let f = {
|
|
182
183
|
hidden: {},
|
|
183
|
-
visible: { transition: { staggerChildren:
|
|
184
|
-
},
|
|
184
|
+
visible: { transition: { staggerChildren: i } }
|
|
185
|
+
}, p = o ? {
|
|
185
186
|
initial: "hidden",
|
|
186
187
|
whileInView: "visible",
|
|
187
188
|
viewport: {
|
|
188
|
-
once:
|
|
189
|
-
margin:
|
|
189
|
+
once: c,
|
|
190
|
+
margin: l
|
|
190
191
|
}
|
|
191
192
|
} : {
|
|
192
193
|
initial: "hidden",
|
|
193
194
|
animate: "visible"
|
|
194
195
|
};
|
|
195
|
-
return /* @__PURE__ */
|
|
196
|
-
ref:
|
|
197
|
-
variants:
|
|
198
|
-
className:
|
|
199
|
-
...
|
|
200
|
-
...
|
|
196
|
+
return /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(s.div, {
|
|
197
|
+
ref: d,
|
|
198
|
+
variants: f,
|
|
199
|
+
className: r(t),
|
|
200
|
+
...p,
|
|
201
|
+
...u,
|
|
201
202
|
children: e
|
|
202
|
-
});
|
|
203
|
+
}) });
|
|
203
204
|
});
|
|
204
|
-
|
|
205
|
-
var
|
|
205
|
+
p.displayName = "MotionStagger";
|
|
206
|
+
var m = {
|
|
206
207
|
hidden: {
|
|
207
208
|
opacity: 0,
|
|
208
209
|
y: 8
|
|
@@ -215,13 +216,13 @@ var p = {
|
|
|
215
216
|
opacity: t.fade
|
|
216
217
|
}
|
|
217
218
|
}
|
|
218
|
-
},
|
|
219
|
-
ref:
|
|
220
|
-
variants:
|
|
221
|
-
className:
|
|
222
|
-
...
|
|
219
|
+
}, h = i.forwardRef(({ children: e, className: t, ...i }, o) => /* @__PURE__ */ a(n, { children: /* @__PURE__ */ a(s.div, {
|
|
220
|
+
ref: o,
|
|
221
|
+
variants: m,
|
|
222
|
+
className: r(t),
|
|
223
|
+
...i,
|
|
223
224
|
children: e
|
|
224
|
-
}));
|
|
225
|
-
|
|
225
|
+
}) }));
|
|
226
|
+
h.displayName = "MotionStaggerItem";
|
|
226
227
|
//#endregion
|
|
227
|
-
export {
|
|
228
|
+
export { f as MotionCollapse, c as MotionFade, u as MotionPop, l as MotionScale, d as MotionSlide, p as MotionStagger, h as MotionStaggerItem };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives-index.js","names":[],"sources":["../../src/motion/primitives.tsx"],"sourcesContent":["'use client'\n\nimport { AnimatePresence, type HTMLMotionProps,motion, type Transition, type Variants } from 'framer-motion'\nimport * as React from 'react'\n\nimport type { SpringPreset } from '../ui/lib/motion'\nimport { springs, tweens } from '../ui/lib/motion'\nimport { cn } from '../ui/lib/utils'\n\n// ── Shared types ──\n\ntype MotionDivProps = Omit<HTMLMotionProps<'div'>, 'ref'>\n\ntype MotionPrimitiveProps = {\n show: boolean\n children: React.ReactNode\n className?: string\n preset?: SpringPreset\n layout?: boolean | 'position' | 'size' | 'preserve-aspect'\n layoutId?: string\n whileInView?: boolean\n viewportOnce?: boolean\n viewportMargin?: string\n}\n\n// ── MotionFade ──\n// Default: fade tween only (no spring needed for pure opacity)\n\nconst MotionFade = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={tweens.fade}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n )\n },\n)\nMotionFade.displayName = 'MotionFade'\n\n// ── MotionScale ──\n// Default: snappy spring for scale + fade tween for opacity\n\nconst MotionScale = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, preset = 'snappy', layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const spring = springs[preset]\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0, scale: 0.96 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.96 }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n )\n },\n)\nMotionScale.displayName = 'MotionScale'\n\n// ── MotionPop ──\n// Default: bouncy spring with overshoot for scale + fade\n\nconst MotionPop = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, preset = 'bouncy', layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const spring = springs[preset]\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0, scale: 0.5 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5 }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n )\n },\n)\nMotionPop.displayName = 'MotionPop'\n\n// ── MotionSlide ──\n// Default: smooth spring for translate + fade\n\nconst MotionSlide = React.forwardRef<\n HTMLDivElement,\n MotionPrimitiveProps & { direction?: 'up' | 'down' | 'left' | 'right' } & MotionDivProps\n>(\n ({ show, children, className, preset = 'smooth', direction = 'up', layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const spring = springs[preset]\n const offsets = {\n up: { y: 16 },\n down: { y: -16 },\n left: { x: 16 },\n right: { x: -16 },\n }\n const offset = offsets[direction]\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0, ...offset }}\n animate={{ opacity: 1, x: 0, y: 0 }}\n exit={{ opacity: 0, ...offset }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n )\n },\n)\nMotionSlide.displayName = 'MotionSlide'\n\n// ── MotionCollapse ──\n// Default: gentle spring for height + fade\n// Uses height: \"auto\" — Framer Motion handles this natively\n\nconst MotionCollapse = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, preset = 'gentle', layout, layoutId, ...rest }, ref) => {\n const spring = springs[preset]\n\n return (\n <AnimatePresence initial={false}>\n {show && (\n <motion.div\n ref={ref}\n initial={{ height: 0, opacity: 0, overflow: 'hidden' }}\n animate={{ height: 'auto', opacity: 1, overflow: 'hidden' }}\n exit={{ height: 0, opacity: 0, overflow: 'hidden' }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n )\n },\n)\nMotionCollapse.displayName = 'MotionCollapse'\n\n// ── MotionStagger + MotionStaggerItem ──\n// Parent orchestrates children with staggerChildren\n\ntype MotionStaggerProps = {\n children: React.ReactNode\n className?: string\n delay?: number\n whileInView?: boolean\n viewportOnce?: boolean\n viewportMargin?: string\n}\n\nconst MotionStagger = React.forwardRef<HTMLDivElement, MotionStaggerProps & MotionDivProps>(\n ({ children, className, delay = 0.04, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const variants: Variants = {\n hidden: {},\n visible: {\n transition: { staggerChildren: delay },\n },\n }\n\n const viewProps = whileInView\n ? { initial: 'hidden' as const, whileInView: 'visible' as const, viewport: { once: viewportOnce, margin: viewportMargin } }\n : { initial: 'hidden' as const, animate: 'visible' as const }\n\n return (\n <motion.div\n ref={ref}\n variants={variants}\n className={cn(className)}\n {...viewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )\n },\n)\nMotionStagger.displayName = 'MotionStagger'\n\nconst itemVariants: Variants = {\n hidden: { opacity: 0, y: 8 },\n visible: {\n opacity: 1,\n y: 0,\n transition: { ...springs.smooth, opacity: tweens.fade },\n },\n}\n\nconst MotionStaggerItem = React.forwardRef<HTMLDivElement, { children: React.ReactNode; className?: string } & MotionDivProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <motion.div\n ref={ref}\n variants={itemVariants}\n className={cn(className)}\n {...rest}\n >\n {children}\n </motion.div>\n )\n },\n)\nMotionStaggerItem.displayName = 'MotionStaggerItem'\n\nexport {\n MotionCollapse,\n MotionFade,\n MotionPop,\n type MotionPrimitiveProps,\n MotionScale,\n MotionSlide,\n MotionStagger,\n MotionStaggerItem,\n type MotionStaggerProps,\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primitives-index.js","names":[],"sources":["../../src/motion/primitives.tsx"],"sourcesContent":["'use client'\n\nimport { AnimatePresence, type HTMLMotionProps,motion, type Transition, type Variants } from 'framer-motion'\nimport * as React from 'react'\n\nimport type { SpringPreset } from '../ui/lib/motion'\nimport { springs, tweens } from '../ui/lib/motion'\nimport { cn } from '../ui/lib/utils'\nimport { MotionPreference } from './motion-preference'\n\n// ── Shared types ──\n\ntype MotionDivProps = Omit<HTMLMotionProps<'div'>, 'ref'>\n\ntype MotionPrimitiveProps = {\n show: boolean\n children: React.ReactNode\n className?: string\n preset?: SpringPreset\n layout?: boolean | 'position' | 'size' | 'preserve-aspect'\n layoutId?: string\n whileInView?: boolean\n viewportOnce?: boolean\n viewportMargin?: string\n}\n\n// ── MotionFade ──\n// Default: fade tween only (no spring needed for pure opacity)\n\nconst MotionFade = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <MotionPreference>\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={tweens.fade}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </MotionPreference>\n )\n },\n)\nMotionFade.displayName = 'MotionFade'\n\n// ── MotionScale ──\n// Default: snappy spring for scale + fade tween for opacity\n\nconst MotionScale = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, preset = 'snappy', layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const spring = springs[preset]\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <MotionPreference>\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0, scale: 0.96 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.96 }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </MotionPreference>\n )\n },\n)\nMotionScale.displayName = 'MotionScale'\n\n// ── MotionPop ──\n// Default: bouncy spring with overshoot for scale + fade\n\nconst MotionPop = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, preset = 'bouncy', layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const spring = springs[preset]\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <MotionPreference>\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0, scale: 0.5 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5 }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </MotionPreference>\n )\n },\n)\nMotionPop.displayName = 'MotionPop'\n\n// ── MotionSlide ──\n// Default: smooth spring for translate + fade\n\nconst MotionSlide = React.forwardRef<\n HTMLDivElement,\n MotionPrimitiveProps & { direction?: 'up' | 'down' | 'left' | 'right' } & MotionDivProps\n>(\n ({ show, children, className, preset = 'smooth', direction = 'up', layout, layoutId, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const spring = springs[preset]\n const offsets = {\n up: { y: 16 },\n down: { y: -16 },\n left: { x: 16 },\n right: { x: -16 },\n }\n const offset = offsets[direction]\n const inViewProps = whileInView ? {\n initial: 'hidden',\n whileInView: 'visible',\n viewport: { once: viewportOnce, margin: viewportMargin },\n } : {}\n\n return (\n <MotionPreference>\n <AnimatePresence>\n {show && (\n <motion.div\n ref={ref}\n initial={{ opacity: 0, ...offset }}\n animate={{ opacity: 1, x: 0, y: 0 }}\n exit={{ opacity: 0, ...offset }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...inViewProps}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </MotionPreference>\n )\n },\n)\nMotionSlide.displayName = 'MotionSlide'\n\n// ── MotionCollapse ──\n// Default: gentle spring for height + fade\n// Uses height: \"auto\" — Framer Motion handles this natively\n\nconst MotionCollapse = React.forwardRef<HTMLDivElement, MotionPrimitiveProps & MotionDivProps>(\n ({ show, children, className, preset = 'gentle', layout, layoutId, ...rest }, ref) => {\n const spring = springs[preset]\n\n return (\n <MotionPreference>\n <AnimatePresence initial={false}>\n {show && (\n <motion.div\n ref={ref}\n initial={{ height: 0, opacity: 0, overflow: 'hidden' }}\n animate={{ height: 'auto', opacity: 1, overflow: 'hidden' }}\n exit={{ height: 0, opacity: 0, overflow: 'hidden' }}\n transition={{ ...spring, opacity: tweens.fade }}\n className={cn(className)}\n layout={layout}\n layoutId={layoutId}\n {...rest}\n >\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n </MotionPreference>\n )\n },\n)\nMotionCollapse.displayName = 'MotionCollapse'\n\n// ── MotionStagger + MotionStaggerItem ──\n// Parent orchestrates children with staggerChildren\n\ntype MotionStaggerProps = {\n children: React.ReactNode\n className?: string\n delay?: number\n whileInView?: boolean\n viewportOnce?: boolean\n viewportMargin?: string\n}\n\nconst MotionStagger = React.forwardRef<HTMLDivElement, MotionStaggerProps & MotionDivProps>(\n ({ children, className, delay = 0.04, whileInView, viewportOnce = true, viewportMargin = '-50px', ...rest }, ref) => {\n const variants: Variants = {\n hidden: {},\n visible: {\n transition: { staggerChildren: delay },\n },\n }\n\n const viewProps = whileInView\n ? { initial: 'hidden' as const, whileInView: 'visible' as const, viewport: { once: viewportOnce, margin: viewportMargin } }\n : { initial: 'hidden' as const, animate: 'visible' as const }\n\n return (\n <MotionPreference>\n <motion.div\n ref={ref}\n variants={variants}\n className={cn(className)}\n {...viewProps}\n {...rest}\n >\n {children}\n </motion.div>\n </MotionPreference>\n )\n },\n)\nMotionStagger.displayName = 'MotionStagger'\n\nconst itemVariants: Variants = {\n hidden: { opacity: 0, y: 8 },\n visible: {\n opacity: 1,\n y: 0,\n transition: { ...springs.smooth, opacity: tweens.fade },\n },\n}\n\nconst MotionStaggerItem = React.forwardRef<HTMLDivElement, { children: React.ReactNode; className?: string } & MotionDivProps>(\n ({ children, className, ...rest }, ref) => {\n return (\n <MotionPreference>\n <motion.div\n ref={ref}\n variants={itemVariants}\n className={cn(className)}\n {...rest}\n >\n {children}\n </motion.div>\n </MotionPreference>\n )\n },\n)\nMotionStaggerItem.displayName = 'MotionStaggerItem'\n\nexport {\n MotionCollapse,\n MotionFade,\n MotionPop,\n type MotionPrimitiveProps,\n MotionScale,\n MotionSlide,\n MotionStagger,\n MotionStaggerItem,\n type MotionStaggerProps,\n}\n"],"mappings":";;;;;;;AA6BA,IAAM,IAAa,EAAM,YACtB,EAAE,SAAM,aAAU,cAAW,WAAQ,aAAU,gBAAa,kBAAe,IAAM,oBAAiB,SAAS,GAAG,KAAQ,MAAQ;CAC7H,IAAM,IAAc,IAAc;EAChC,SAAS;EACT,aAAa;EACb,UAAU;GAAE,MAAM;GAAc,QAAQ;EAAe;CACzD,IAAI,CAAC;CAEL,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACG,KACC,kBAAC,EAAO,KAAR;EACO;EACL,SAAS,EAAE,SAAS,EAAE;EACtB,SAAS,EAAE,SAAS,EAAE;EACtB,MAAM,EAAE,SAAS,EAAE;EACnB,YAAY,EAAO;EACnB,WAAW,EAAG,CAAS;EACf;EACE;EACV,GAAI;EACJ,GAAI;EAEH;CACS,CAAA,EAEC,CAAA,EACD,CAAA;AAEtB,CACF;AACA,EAAW,cAAc;AAKzB,IAAM,IAAc,EAAM,YACvB,EAAE,SAAM,aAAU,cAAW,YAAS,UAAU,WAAQ,aAAU,gBAAa,kBAAe,IAAM,oBAAiB,SAAS,GAAG,KAAQ,MAAQ;CAChJ,IAAM,IAAS,EAAQ,IACjB,IAAc,IAAc;EAChC,SAAS;EACT,aAAa;EACb,UAAU;GAAE,MAAM;GAAc,QAAQ;EAAe;CACzD,IAAI,CAAC;CAEL,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACG,KACC,kBAAC,EAAO,KAAR;EACO;EACL,SAAS;GAAE,SAAS;GAAG,OAAO;EAAK;EACnC,SAAS;GAAE,SAAS;GAAG,OAAO;EAAE;EAChC,MAAM;GAAE,SAAS;GAAG,OAAO;EAAK;EAChC,YAAY;GAAE,GAAG;GAAQ,SAAS,EAAO;EAAK;EAC9C,WAAW,EAAG,CAAS;EACf;EACE;EACV,GAAI;EACJ,GAAI;EAEH;CACS,CAAA,EAEC,CAAA,EACD,CAAA;AAEtB,CACF;AACA,EAAY,cAAc;AAK1B,IAAM,IAAY,EAAM,YACrB,EAAE,SAAM,aAAU,cAAW,YAAS,UAAU,WAAQ,aAAU,gBAAa,kBAAe,IAAM,oBAAiB,SAAS,GAAG,KAAQ,MAAQ;CAChJ,IAAM,IAAS,EAAQ,IACjB,IAAc,IAAc;EAChC,SAAS;EACT,aAAa;EACb,UAAU;GAAE,MAAM;GAAc,QAAQ;EAAe;CACzD,IAAI,CAAC;CAEL,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACG,KACC,kBAAC,EAAO,KAAR;EACO;EACL,SAAS;GAAE,SAAS;GAAG,OAAO;EAAI;EAClC,SAAS;GAAE,SAAS;GAAG,OAAO;EAAE;EAChC,MAAM;GAAE,SAAS;GAAG,OAAO;EAAI;EAC/B,YAAY;GAAE,GAAG;GAAQ,SAAS,EAAO;EAAK;EAC9C,WAAW,EAAG,CAAS;EACf;EACE;EACV,GAAI;EACJ,GAAI;EAEH;CACS,CAAA,EAEC,CAAA,EACD,CAAA;AAEtB,CACF;AACA,EAAU,cAAc;AAKxB,IAAM,IAAc,EAAM,YAIvB,EAAE,SAAM,aAAU,cAAW,YAAS,UAAU,eAAY,MAAM,WAAQ,aAAU,gBAAa,kBAAe,IAAM,oBAAiB,SAAS,GAAG,KAAQ,MAAQ;CAClK,IAAM,IAAS,EAAQ,IAOjB,IAAS;EALb,IAAI,EAAE,GAAG,GAAG;EACZ,MAAM,EAAE,GAAG,IAAI;EACf,MAAM,EAAE,GAAG,GAAG;EACd,OAAO,EAAE,GAAG,IAAI;CAEH,EAAQ,IACjB,IAAc,IAAc;EAChC,SAAS;EACT,aAAa;EACb,UAAU;GAAE,MAAM;GAAc,QAAQ;EAAe;CACzD,IAAI,CAAC;CAEL,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UACG,KACC,kBAAC,EAAO,KAAR;EACO;EACL,SAAS;GAAE,SAAS;GAAG,GAAG;EAAO;EACjC,SAAS;GAAE,SAAS;GAAG,GAAG;GAAG,GAAG;EAAE;EAClC,MAAM;GAAE,SAAS;GAAG,GAAG;EAAO;EAC9B,YAAY;GAAE,GAAG;GAAQ,SAAS,EAAO;EAAK;EAC9C,WAAW,EAAG,CAAS;EACf;EACE;EACV,GAAI;EACJ,GAAI;EAEH;CACS,CAAA,EAEC,CAAA,EACD,CAAA;AAEtB,CACF;AACA,EAAY,cAAc;AAM1B,IAAM,IAAiB,EAAM,YAC1B,EAAE,SAAM,aAAU,cAAW,YAAS,UAAU,WAAQ,aAAU,GAAG,KAAQ,MAAQ;CACpF,IAAM,IAAS,EAAQ;CAEvB,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;EAAiB,SAAS;YACvB,KACC,kBAAC,EAAO,KAAR;GACO;GACL,SAAS;IAAE,QAAQ;IAAG,SAAS;IAAG,UAAU;GAAS;GACrD,SAAS;IAAE,QAAQ;IAAQ,SAAS;IAAG,UAAU;GAAS;GAC1D,MAAM;IAAE,QAAQ;IAAG,SAAS;IAAG,UAAU;GAAS;GAClD,YAAY;IAAE,GAAG;IAAQ,SAAS,EAAO;GAAK;GAC9C,WAAW,EAAG,CAAS;GACf;GACE;GACV,GAAI;GAEH;EACS,CAAA;CAEC,CAAA,EACD,CAAA;AAEtB,CACF;AACA,EAAe,cAAc;AAc7B,IAAM,IAAgB,EAAM,YACzB,EAAE,aAAU,cAAW,WAAQ,KAAM,gBAAa,kBAAe,IAAM,oBAAiB,SAAS,GAAG,KAAQ,MAAQ;CACnH,IAAM,IAAqB;EACzB,QAAQ,CAAC;EACT,SAAS,EACP,YAAY,EAAE,iBAAiB,EAAM,EACvC;CACF,GAEM,IAAY,IACd;EAAE,SAAS;EAAmB,aAAa;EAAoB,UAAU;GAAE,MAAM;GAAc,QAAQ;EAAe;CAAE,IACxH;EAAE,SAAS;EAAmB,SAAS;CAAmB;CAE9D,OACE,kBAAC,GAAD,EAAA,UACE,kBAAC,EAAO,KAAR;EACO;EACK;EACV,WAAW,EAAG,CAAS;EACvB,GAAI;EACJ,GAAI;EAEH;CACS,CAAA,EACI,CAAA;AAEtB,CACF;AACA,EAAc,cAAc;AAE5B,IAAM,IAAyB;CAC7B,QAAQ;EAAE,SAAS;EAAG,GAAG;CAAE;CAC3B,SAAS;EACP,SAAS;EACT,GAAG;EACH,YAAY;GAAE,GAAG,EAAQ;GAAQ,SAAS,EAAO;EAAK;CACxD;AACF,GAEM,IAAoB,EAAM,YAC7B,EAAE,aAAU,cAAW,GAAG,KAAQ,MAE/B,kBAAC,GAAD,EAAA,UACE,kBAAC,EAAO,KAAR;CACO;CACL,UAAU;CACV,WAAW,EAAG,CAAS;CACvB,GAAI;CAEH;AACS,CAAA,EACI,CAAA,CAGxB;AACA,EAAkB,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/motion/primitives.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,eAAe,EAAyC,MAAM,eAAe,CAAA;AAC5G,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/motion/primitives.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,eAAe,EAAyC,MAAM,eAAe,CAAA;AAC5G,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAOpD,KAAK,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,iBAAiB,CAAA;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAKD,QAAA,MAAM,UAAU,8GA+Bf,CAAA;AAMD,QAAA,MAAM,WAAW,8GAgChB,CAAA;AAMD,QAAA,MAAM,SAAS,8GAgCd,CAAA;AAMD,QAAA,MAAM,WAAW;gBAEsB,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;yDAwCtE,CAAA;AAOD,QAAA,MAAM,cAAc,8GA0BnB,CAAA;AAMD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,QAAA,MAAM,aAAa,4GA2BlB,CAAA;AAYD,QAAA,MAAM,iBAAiB;cAAgD,KAAK,CAAC,SAAS;gBAAc,MAAM;yDAezG,CAAA;AAGD,OAAO,EACL,cAAc,EACd,UAAU,EACV,SAAS,EACT,KAAK,oBAAoB,EACzB,WAAW,EACX,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,CAAA"}
|