@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.
Files changed (374) hide show
  1. package/MIGRATION.md +198 -0
  2. package/dist/_chunks/badge-group.js +75 -174
  3. package/dist/_chunks/badge-group.js.map +1 -1
  4. package/dist/_chunks/chat.js +270 -253
  5. package/dist/_chunks/chat.js.map +1 -1
  6. package/dist/_chunks/document-preview.js +1 -1
  7. package/dist/_chunks/document-preview.js.map +1 -1
  8. package/dist/_chunks/emoji-suggestion.js +1 -1
  9. package/dist/_chunks/emoji-suggestion.js.map +1 -1
  10. package/dist/_chunks/image-preview.js +71 -70
  11. package/dist/_chunks/image-preview.js.map +1 -1
  12. package/dist/_chunks/mention-suggestion.js +2 -2
  13. package/dist/_chunks/mention-suggestion.js.map +1 -1
  14. package/dist/_chunks/motion-preference.js +15 -0
  15. package/dist/_chunks/motion-preference.js.map +1 -0
  16. package/dist/_chunks/motion-provider.js +1 -1
  17. package/dist/_chunks/motion-provider.js.map +1 -1
  18. package/dist/_chunks/oauth-button.js +1 -1
  19. package/dist/_chunks/oauth-button.js.map +1 -1
  20. package/dist/_chunks/popover.js +50 -49
  21. package/dist/_chunks/popover.js.map +1 -1
  22. package/dist/_chunks/primitives-internal.js +29 -29
  23. package/dist/_chunks/primitives-internal.js.map +1 -1
  24. package/dist/_chunks/shared.js +48 -47
  25. package/dist/_chunks/shared.js.map +1 -1
  26. package/dist/_chunks/success.js +36 -36
  27. package/dist/_chunks/success.js.map +1 -1
  28. package/dist/_chunks/tree-view.js +1 -1
  29. package/dist/_chunks/tree-view.js.map +1 -1
  30. package/dist/_chunks/use-calendar.js +4 -4
  31. package/dist/_chunks/use-calendar.js.map +1 -1
  32. package/dist/ai/block-renderer.js +8 -8
  33. package/dist/ai/blocks/text.js +1 -1
  34. package/dist/ai/blocks/text.js.map +1 -1
  35. package/dist/ai/command-bar.js +67 -67
  36. package/dist/ai/command-bar.js.map +1 -1
  37. package/dist/ai/conversation.js +35 -35
  38. package/dist/ai/conversation.js.map +1 -1
  39. package/dist/ai/index.js +4 -4
  40. package/dist/composed/activity-feed.d.ts.map +1 -1
  41. package/dist/composed/activity-feed.js +109 -108
  42. package/dist/composed/activity-feed.js.map +1 -1
  43. package/dist/composed/avatar-group.d.ts +7 -2
  44. package/dist/composed/avatar-group.d.ts.map +1 -1
  45. package/dist/composed/avatar-group.js +3 -3
  46. package/dist/composed/avatar-group.js.map +1 -1
  47. package/dist/composed/command-palette.js +137 -137
  48. package/dist/composed/command-palette.js.map +1 -1
  49. package/dist/composed/content-card.js +2 -2
  50. package/dist/composed/content-card.js.map +1 -1
  51. package/dist/composed/date-picker/index.js +9 -9
  52. package/dist/composed/date-picker/index.js.map +1 -1
  53. package/dist/composed/diff.d.ts +23 -2
  54. package/dist/composed/diff.d.ts.map +1 -1
  55. package/dist/composed/diff.js +341 -260
  56. package/dist/composed/diff.js.map +1 -1
  57. package/dist/composed/emoji-picker.js +3 -3
  58. package/dist/composed/emoji-picker.js.map +1 -1
  59. package/dist/composed/empty-state.js +4 -4
  60. package/dist/composed/error-boundary.js +2 -2
  61. package/dist/composed/error-boundary.js.map +1 -1
  62. package/dist/composed/file-preview/image-preview.d.ts.map +1 -1
  63. package/dist/composed/file-preview/shared.d.ts.map +1 -1
  64. package/dist/composed/file-preview/video-preview.d.ts.map +1 -1
  65. package/dist/composed/file-preview.js +152 -151
  66. package/dist/composed/file-preview.js.map +1 -1
  67. package/dist/composed/filter-bar.d.ts.map +1 -1
  68. package/dist/composed/filter-bar.js +53 -52
  69. package/dist/composed/filter-bar.js.map +1 -1
  70. package/dist/composed/form-section.d.ts.map +1 -1
  71. package/dist/composed/form-section.js +38 -37
  72. package/dist/composed/form-section.js.map +1 -1
  73. package/dist/composed/inline-edit.js +1 -1
  74. package/dist/composed/inline-edit.js.map +1 -1
  75. package/dist/composed/loading-skeleton.js +3 -3
  76. package/dist/composed/loading-skeleton.js.map +1 -1
  77. package/dist/composed/master-detail.d.ts.map +1 -1
  78. package/dist/composed/master-detail.js +1 -1
  79. package/dist/composed/master-detail.js.map +1 -1
  80. package/dist/composed/member-picker.js +1 -1
  81. package/dist/composed/member-picker.js.map +1 -1
  82. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  83. package/dist/composed/multi-select-popover.js +109 -108
  84. package/dist/composed/multi-select-popover.js.map +1 -1
  85. package/dist/composed/page-skeletons.js +4 -4
  86. package/dist/composed/page-skeletons.js.map +1 -1
  87. package/dist/composed/responsive-modal.js +1 -1
  88. package/dist/composed/responsive-modal.js.map +1 -1
  89. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  90. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  91. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  92. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  93. package/dist/composed/rich-chat-input.js +473 -472
  94. package/dist/composed/rich-chat-input.js.map +1 -1
  95. package/dist/composed/rich-text-editor.js +6 -6
  96. package/dist/composed/rich-text-editor.js.map +1 -1
  97. package/dist/composed/schedule-view.js +5 -5
  98. package/dist/composed/schedule-view.js.map +1 -1
  99. package/dist/composed/status-badge.d.ts.map +1 -1
  100. package/dist/composed/status-badge.js +29 -28
  101. package/dist/composed/status-badge.js.map +1 -1
  102. package/dist/hooks/index.d.ts +1 -0
  103. package/dist/hooks/index.d.ts.map +1 -1
  104. package/dist/hooks/index.js +4 -3
  105. package/dist/hooks/use-container-size.d.ts +18 -0
  106. package/dist/hooks/use-container-size.d.ts.map +1 -0
  107. package/dist/hooks/use-container-size.js +28 -0
  108. package/dist/hooks/use-container-size.js.map +1 -0
  109. package/dist/motion/index.d.ts +1 -0
  110. package/dist/motion/index.d.ts.map +1 -1
  111. package/dist/motion/index.js +2 -15
  112. package/dist/motion/motion-preference.d.ts +36 -0
  113. package/dist/motion/motion-preference.d.ts.map +1 -0
  114. package/dist/motion/motion-provider.d.ts +2 -1
  115. package/dist/motion/motion-provider.d.ts.map +1 -1
  116. package/dist/motion/primitives-index.js +103 -102
  117. package/dist/motion/primitives-index.js.map +1 -1
  118. package/dist/motion/primitives.d.ts.map +1 -1
  119. package/dist/shell/app-shell.d.ts +101 -0
  120. package/dist/shell/app-shell.d.ts.map +1 -0
  121. package/dist/shell/app-shell.js +76 -0
  122. package/dist/shell/app-shell.js.map +1 -0
  123. package/dist/shell/bottom-navbar.js +21 -21
  124. package/dist/shell/bottom-navbar.js.map +1 -1
  125. package/dist/shell/index.d.ts +2 -1
  126. package/dist/shell/index.d.ts.map +1 -1
  127. package/dist/shell/index.js +6 -5
  128. package/dist/shell/notification-center.d.ts +17 -0
  129. package/dist/shell/notification-center.d.ts.map +1 -1
  130. package/dist/shell/notification-center.js +110 -105
  131. package/dist/shell/notification-center.js.map +1 -1
  132. package/dist/shell/notification-preferences.js +1 -1
  133. package/dist/shell/notification-preferences.js.map +1 -1
  134. package/dist/shell/top-bar.js +7 -7
  135. package/dist/shell/top-bar.js.map +1 -1
  136. package/dist/tokens/generate-scale.d.ts +49 -0
  137. package/dist/tokens/generate-scale.d.ts.map +1 -1
  138. package/dist/tokens/index.css +1 -0
  139. package/dist/tokens/palettes.css +292 -0
  140. package/dist/tokens/primitives.css +29 -26
  141. package/dist/tokens/semantic.css +170 -47
  142. package/dist/tokens/shilp-sutra.css +1 -0
  143. package/dist/tokens/utilities.css +10 -7
  144. package/dist/tokens/variants.css +1 -1
  145. package/dist/ui/accordion.d.ts.map +1 -1
  146. package/dist/ui/accordion.js +27 -26
  147. package/dist/ui/accordion.js.map +1 -1
  148. package/dist/ui/alert-dialog.d.ts.map +1 -1
  149. package/dist/ui/alert-dialog.js +60 -59
  150. package/dist/ui/alert-dialog.js.map +1 -1
  151. package/dist/ui/alert.d.ts.map +1 -1
  152. package/dist/ui/alert.js +55 -113
  153. package/dist/ui/alert.js.map +1 -1
  154. package/dist/ui/autocomplete.js +80 -80
  155. package/dist/ui/autocomplete.js.map +1 -1
  156. package/dist/ui/avatar.d.ts.map +1 -1
  157. package/dist/ui/avatar.js +71 -70
  158. package/dist/ui/avatar.js.map +1 -1
  159. package/dist/ui/badge-indicator.d.ts +4 -8
  160. package/dist/ui/badge-indicator.d.ts.map +1 -1
  161. package/dist/ui/badge-indicator.js +3 -8
  162. package/dist/ui/badge-indicator.js.map +1 -1
  163. package/dist/ui/badge.d.ts +55 -34
  164. package/dist/ui/badge.d.ts.map +1 -1
  165. package/dist/ui/banner.d.ts.map +1 -1
  166. package/dist/ui/banner.js +43 -41
  167. package/dist/ui/banner.js.map +1 -1
  168. package/dist/ui/button-group.d.ts.map +1 -1
  169. package/dist/ui/button-group.js +3 -23
  170. package/dist/ui/button-group.js.map +1 -1
  171. package/dist/ui/button.d.ts +10 -1
  172. package/dist/ui/button.d.ts.map +1 -1
  173. package/dist/ui/button.js +79 -212
  174. package/dist/ui/button.js.map +1 -1
  175. package/dist/ui/card.d.ts.map +1 -1
  176. package/dist/ui/card.js +78 -75
  177. package/dist/ui/card.js.map +1 -1
  178. package/dist/ui/charts/radar-chart.d.ts.map +1 -1
  179. package/dist/ui/charts/radar-chart.js +1 -1
  180. package/dist/ui/charts/radar-chart.js.map +1 -1
  181. package/dist/ui/chat/date-separator.d.ts +8 -1
  182. package/dist/ui/chat/date-separator.d.ts.map +1 -1
  183. package/dist/ui/chat/message-list.d.ts.map +1 -1
  184. package/dist/ui/chat/message.d.ts.map +1 -1
  185. package/dist/ui/chat/typing-indicator.d.ts.map +1 -1
  186. package/dist/ui/checkbox.js +1 -1
  187. package/dist/ui/checkbox.js.map +1 -1
  188. package/dist/ui/code.js +2 -2
  189. package/dist/ui/code.js.map +1 -1
  190. package/dist/ui/color-input.d.ts.map +1 -1
  191. package/dist/ui/color-input.js +151 -150
  192. package/dist/ui/color-input.js.map +1 -1
  193. package/dist/ui/combobox.d.ts +14 -0
  194. package/dist/ui/combobox.d.ts.map +1 -1
  195. package/dist/ui/combobox.js +156 -152
  196. package/dist/ui/combobox.js.map +1 -1
  197. package/dist/ui/context-menu.d.ts.map +1 -1
  198. package/dist/ui/context-menu.js +70 -69
  199. package/dist/ui/context-menu.js.map +1 -1
  200. package/dist/ui/data-table-body.d.ts +3 -1
  201. package/dist/ui/data-table-body.d.ts.map +1 -1
  202. package/dist/ui/data-table-body.js +93 -92
  203. package/dist/ui/data-table-body.js.map +1 -1
  204. package/dist/ui/data-table-bulk-actions.d.ts +7 -1
  205. package/dist/ui/data-table-bulk-actions.d.ts.map +1 -1
  206. package/dist/ui/data-table-bulk-actions.js +14 -8
  207. package/dist/ui/data-table-bulk-actions.js.map +1 -1
  208. package/dist/ui/data-table-card.d.ts.map +1 -1
  209. package/dist/ui/data-table-card.js +66 -47
  210. package/dist/ui/data-table-card.js.map +1 -1
  211. package/dist/ui/data-table-context.d.ts +4 -0
  212. package/dist/ui/data-table-context.d.ts.map +1 -1
  213. package/dist/ui/data-table-context.js +2 -2
  214. package/dist/ui/data-table-context.js.map +1 -1
  215. package/dist/ui/data-table-header.d.ts.map +1 -1
  216. package/dist/ui/data-table-header.js +50 -46
  217. package/dist/ui/data-table-header.js.map +1 -1
  218. package/dist/ui/data-table-pagination.js +3 -3
  219. package/dist/ui/data-table-pagination.js.map +1 -1
  220. package/dist/ui/data-table-toolbar.d.ts +11 -1
  221. package/dist/ui/data-table-toolbar.d.ts.map +1 -1
  222. package/dist/ui/data-table-toolbar.js +7 -7
  223. package/dist/ui/data-table-toolbar.js.map +1 -1
  224. package/dist/ui/data-table.d.ts +52 -5
  225. package/dist/ui/data-table.d.ts.map +1 -1
  226. package/dist/ui/data-table.js +181 -169
  227. package/dist/ui/data-table.js.map +1 -1
  228. package/dist/ui/dialog.d.ts.map +1 -1
  229. package/dist/ui/dialog.js +62 -61
  230. package/dist/ui/dialog.js.map +1 -1
  231. package/dist/ui/dot.d.ts.map +1 -1
  232. package/dist/ui/dot.js +10 -41
  233. package/dist/ui/dot.js.map +1 -1
  234. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  235. package/dist/ui/dropdown-menu.js +79 -78
  236. package/dist/ui/dropdown-menu.js.map +1 -1
  237. package/dist/ui/file-upload.d.ts.map +1 -1
  238. package/dist/ui/file-upload.js +117 -116
  239. package/dist/ui/file-upload.js.map +1 -1
  240. package/dist/ui/form.d.ts.map +1 -1
  241. package/dist/ui/form.js +27 -26
  242. package/dist/ui/form.js.map +1 -1
  243. package/dist/ui/hover-card.d.ts.map +1 -1
  244. package/dist/ui/hover-card.js +26 -25
  245. package/dist/ui/hover-card.js.map +1 -1
  246. package/dist/ui/icon.js +7 -7
  247. package/dist/ui/index.d.ts +2 -2
  248. package/dist/ui/index.d.ts.map +1 -1
  249. package/dist/ui/index.js +3 -3
  250. package/dist/ui/index.js.map +1 -1
  251. package/dist/ui/input-otp.js +1 -1
  252. package/dist/ui/input-otp.js.map +1 -1
  253. package/dist/ui/input.js +8 -8
  254. package/dist/ui/input.js.map +1 -1
  255. package/dist/ui/menubar.d.ts.map +1 -1
  256. package/dist/ui/menubar.js +73 -72
  257. package/dist/ui/menubar.js.map +1 -1
  258. package/dist/ui/navigation-menu.d.ts.map +1 -1
  259. package/dist/ui/navigation-menu.js +80 -79
  260. package/dist/ui/navigation-menu.js.map +1 -1
  261. package/dist/ui/number-input.js +3 -3
  262. package/dist/ui/number-input.js.map +1 -1
  263. package/dist/ui/pagination.js +1 -1
  264. package/dist/ui/pagination.js.map +1 -1
  265. package/dist/ui/popover.d.ts.map +1 -1
  266. package/dist/ui/progress-ring.js +2 -2
  267. package/dist/ui/progress-ring.js.map +1 -1
  268. package/dist/ui/progress.d.ts.map +1 -1
  269. package/dist/ui/progress.js +82 -74
  270. package/dist/ui/progress.js.map +1 -1
  271. package/dist/ui/radio.d.ts.map +1 -1
  272. package/dist/ui/radio.js +32 -31
  273. package/dist/ui/radio.js.map +1 -1
  274. package/dist/ui/search-input.d.ts.map +1 -1
  275. package/dist/ui/search-input.js +28 -27
  276. package/dist/ui/search-input.js.map +1 -1
  277. package/dist/ui/select.d.ts.map +1 -1
  278. package/dist/ui/select.js +67 -66
  279. package/dist/ui/select.js.map +1 -1
  280. package/dist/ui/sheet.js +1 -1
  281. package/dist/ui/sheet.js.map +1 -1
  282. package/dist/ui/sidebar.d.ts.map +1 -1
  283. package/dist/ui/sidebar.js +14 -14
  284. package/dist/ui/sidebar.js.map +1 -1
  285. package/dist/ui/slider.d.ts +63 -9
  286. package/dist/ui/slider.d.ts.map +1 -1
  287. package/dist/ui/slider.js +75 -33
  288. package/dist/ui/slider.js.map +1 -1
  289. package/dist/ui/split-button.d.ts +8 -2
  290. package/dist/ui/split-button.d.ts.map +1 -1
  291. package/dist/ui/split-button.js +49 -95
  292. package/dist/ui/split-button.js.map +1 -1
  293. package/dist/ui/stat-card.d.ts.map +1 -1
  294. package/dist/ui/stat-card.js +89 -88
  295. package/dist/ui/stat-card.js.map +1 -1
  296. package/dist/ui/stat-flash.js +16 -16
  297. package/dist/ui/stepper.d.ts.map +1 -1
  298. package/dist/ui/stepper.js +63 -62
  299. package/dist/ui/stepper.js.map +1 -1
  300. package/dist/ui/surface.d.ts.map +1 -1
  301. package/dist/ui/surface.js +2 -2
  302. package/dist/ui/surface.js.map +1 -1
  303. package/dist/ui/switch.js +1 -1
  304. package/dist/ui/switch.js.map +1 -1
  305. package/dist/ui/table.js +3 -3
  306. package/dist/ui/table.js.map +1 -1
  307. package/dist/ui/tabs.d.ts.map +1 -1
  308. package/dist/ui/tabs.js +68 -67
  309. package/dist/ui/tabs.js.map +1 -1
  310. package/dist/ui/textarea.js +5 -5
  311. package/dist/ui/textarea.js.map +1 -1
  312. package/dist/ui/toast.d.ts.map +1 -1
  313. package/dist/ui/toast.js +196 -195
  314. package/dist/ui/toast.js.map +1 -1
  315. package/dist/ui/toggle.d.ts.map +1 -1
  316. package/dist/ui/toggle.js +26 -24
  317. package/dist/ui/toggle.js.map +1 -1
  318. package/dist/ui/tooltip.d.ts.map +1 -1
  319. package/dist/ui/tooltip.js +37 -36
  320. package/dist/ui/tooltip.js.map +1 -1
  321. package/dist/ui/tree-view/tree-item.d.ts.map +1 -1
  322. package/docs/components/composed/avatar-group.md +4 -4
  323. package/docs/components/composed/diff.md +10 -2
  324. package/docs/components/composed/schedule-view.md +1 -1
  325. package/docs/components/shell/app-shell.md +132 -0
  326. package/docs/components/ui/avatar.md +1 -1
  327. package/docs/components/ui/button.md +1 -1
  328. package/docs/components/ui/chat.md +7 -1
  329. package/docs/components/ui/color-swatch.md +1 -1
  330. package/docs/components/ui/data-table-toolbar.md +6 -2
  331. package/docs/components/ui/data-table.md +41 -7
  332. package/docs/components/ui/dot.md +1 -1
  333. package/docs/components/ui/progress.md +1 -0
  334. package/docs/components/ui/surface.md +3 -3
  335. package/docs/components/ui/table.md +2 -2
  336. package/docs/recipes/customize-brand.md +58 -0
  337. package/docs/recipes/install-astro.md +1 -0
  338. package/docs/recipes/install-next-app-router.md +1 -0
  339. package/docs/recipes/install-next-pages.md +22 -1
  340. package/docs/recipes/install-remix.md +1 -0
  341. package/docs/recipes/install-tanstack-start.md +1 -0
  342. package/docs/recipes/install-vite.md +2 -0
  343. package/docs/recipes/server-components.md +7 -4
  344. package/docs/recipes/troubleshoot.md +1 -0
  345. package/llms.txt +2 -1
  346. package/make-kit/Guidelines.md +2 -2
  347. package/make-kit/components/button.md +1 -1
  348. package/make-kit/components/card.md +6 -6
  349. package/make-kit/components/surface.md +4 -4
  350. package/make-kit/foundations/color.md +4 -4
  351. package/make-kit/foundations/dark-mode.md +1 -1
  352. package/make-kit/foundations/radius.md +1 -1
  353. package/make-kit/foundations/surfaces.md +9 -9
  354. package/mcp-manifest.json +358 -35
  355. package/package.json +8 -4
  356. package/skill/SKILL.md +12 -6
  357. package/skill/references/components.md +2 -1
  358. package/skill/references/customize-brand.md +58 -0
  359. package/skill/references/server-components.md +7 -4
  360. package/skill/references/setup-astro.md +1 -0
  361. package/skill/references/setup-next-app-router.md +1 -0
  362. package/skill/references/setup-next-pages.md +22 -1
  363. package/skill/references/setup-remix.md +1 -0
  364. package/skill/references/setup-tanstack-start.md +1 -0
  365. package/skill/references/setup-vite.md +2 -0
  366. package/skill/references/troubleshoot.md +1 -0
  367. package/dist/motion/check-motion-provider.d.ts +0 -2
  368. package/dist/motion/check-motion-provider.d.ts.map +0 -1
  369. package/dist/motion/index.js.map +0 -1
  370. package/dist/primitives/react-toast.d.ts +0 -120
  371. package/dist/ui/charts/_internal/scales.d.ts +0 -5
  372. package/dist/ui/charts/_internal/scales.d.ts.map +0 -1
  373. package/dist/ui/lib/slot.d.ts +0 -8
  374. 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 <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 )\n },\n)\nStatusBadge.displayName = 'StatusBadge'\n\nexport { StatusBadge }\n"],"mappings":";;;;;;;;;AAuBA,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;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;AAErB,CACF;AACA,EAAY,cAAc"}
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"}
@@ -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"}
@@ -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 { useTouchDevice as r } from "./use-touch-device.js";
6
- import { useViewportHeight as i } from "./use-viewport-height.js";
7
- export { t as toast, n as useColorMode, e as useIsMobile, r as useTouchDevice, i as useViewportHeight };
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"}
@@ -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"}
@@ -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
- //#region src/motion/check-motion-provider.ts
5
- var s = !1;
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;AAOD,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,cAAc,EAAE,KAAK,mBAAmB,EAAC,SAAS,EAAE,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 { cn as n } from "../ui/lib/utils.js";
4
- import * as r from "react";
5
- import { jsx as i } from "react/jsx-runtime";
6
- import { AnimatePresence as a, motion as o } from "framer-motion";
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 s = r.forwardRef(({ show: e, children: r, className: s, layout: c, layoutId: l, whileInView: u, viewportOnce: d = !0, viewportMargin: f = "-50px", ...p }, m) => {
9
- let h = u ? {
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: d,
14
- margin: f
14
+ once: f,
15
+ margin: p
15
16
  }
16
17
  } : {};
17
- return /* @__PURE__ */ i(a, { children: e && /* @__PURE__ */ i(o.div, {
18
- ref: m,
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: n(s),
24
- layout: c,
25
- layoutId: l,
26
- ...h,
27
- ...p,
28
- children: r
29
- }) });
24
+ className: r(c),
25
+ layout: l,
26
+ layoutId: u,
27
+ ...g,
28
+ ...m,
29
+ children: i
30
+ }) }) });
30
31
  });
31
- s.displayName = "MotionFade";
32
- var c = r.forwardRef(({ show: r, children: s, className: c, preset: l = "snappy", layout: u, layoutId: d, whileInView: f, viewportOnce: p = !0, viewportMargin: m = "-50px", ...h }, g) => {
33
- let _ = e[l], v = f ? {
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: p,
38
- margin: m
38
+ once: m,
39
+ margin: h
39
40
  }
40
41
  } : {};
41
- return /* @__PURE__ */ i(a, { children: r && /* @__PURE__ */ i(o.div, {
42
- ref: g,
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: n(c),
60
- layout: u,
61
- layoutId: d,
62
- ...v,
63
- ...h,
64
- children: s
65
- }) });
60
+ className: r(l),
61
+ layout: d,
62
+ layoutId: f,
63
+ ...y,
64
+ ...g,
65
+ children: c
66
+ }) }) });
66
67
  });
67
- c.displayName = "MotionScale";
68
- var l = r.forwardRef(({ show: r, children: s, className: c, preset: l = "bouncy", layout: u, layoutId: d, whileInView: f, viewportOnce: p = !0, viewportMargin: m = "-50px", ...h }, g) => {
69
- let _ = e[l], v = f ? {
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: p,
74
- margin: m
74
+ once: m,
75
+ margin: h
75
76
  }
76
77
  } : {};
77
- return /* @__PURE__ */ i(a, { children: r && /* @__PURE__ */ i(o.div, {
78
- ref: g,
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: n(c),
96
- layout: u,
97
- layoutId: d,
98
- ...v,
99
- ...h,
100
- children: s
101
- }) });
96
+ className: r(l),
97
+ layout: d,
98
+ layoutId: f,
99
+ ...y,
100
+ ...g,
101
+ children: c
102
+ }) }) });
102
103
  });
103
- l.displayName = "MotionPop";
104
- var u = r.forwardRef(({ show: r, children: s, className: c, preset: l = "smooth", direction: u = "up", layout: d, layoutId: f, whileInView: p, viewportOnce: m = !0, viewportMargin: h = "-50px", ...g }, _) => {
105
- let v = e[l], y = {
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
- }[u], b = p ? {
111
+ }[d], x = m ? {
111
112
  initial: "hidden",
112
113
  whileInView: "visible",
113
114
  viewport: {
114
- once: m,
115
- margin: h
115
+ once: h,
116
+ margin: g
116
117
  }
117
118
  } : {};
118
- return /* @__PURE__ */ i(a, { children: r && /* @__PURE__ */ i(o.div, {
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
- ...y
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
- ...y
132
+ ...b
132
133
  },
133
134
  transition: {
134
- ...v,
135
+ ...y,
135
136
  opacity: t.fade
136
137
  },
137
- className: n(c),
138
- layout: d,
139
- layoutId: f,
140
- ...b,
141
- ...g,
142
- children: s
143
- }) });
138
+ className: r(l),
139
+ layout: f,
140
+ layoutId: p,
141
+ ...x,
142
+ ..._,
143
+ children: c
144
+ }) }) });
144
145
  });
145
- u.displayName = "MotionSlide";
146
- var d = r.forwardRef(({ show: r, children: s, className: c, preset: l = "gentle", layout: u, layoutId: d, ...f }, p) => {
147
- let m = e[l];
148
- return /* @__PURE__ */ i(a, {
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: r && /* @__PURE__ */ i(o.div, {
151
- ref: p,
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
- ...m,
169
+ ...h,
169
170
  opacity: t.fade
170
171
  },
171
- className: n(c),
172
- layout: u,
173
- layoutId: d,
174
- ...f,
175
- children: s
172
+ className: r(l),
173
+ layout: d,
174
+ layoutId: f,
175
+ ...p,
176
+ children: c
176
177
  })
177
- });
178
+ }) });
178
179
  });
179
- d.displayName = "MotionCollapse";
180
- var f = r.forwardRef(({ children: e, className: t, delay: r = .04, whileInView: a, viewportOnce: s = !0, viewportMargin: c = "-50px", ...l }, u) => {
181
- let d = {
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: r } }
184
- }, f = a ? {
184
+ visible: { transition: { staggerChildren: i } }
185
+ }, p = o ? {
185
186
  initial: "hidden",
186
187
  whileInView: "visible",
187
188
  viewport: {
188
- once: s,
189
- margin: c
189
+ once: c,
190
+ margin: l
190
191
  }
191
192
  } : {
192
193
  initial: "hidden",
193
194
  animate: "visible"
194
195
  };
195
- return /* @__PURE__ */ i(o.div, {
196
- ref: u,
197
- variants: d,
198
- className: n(t),
199
- ...f,
200
- ...l,
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
- f.displayName = "MotionStagger";
205
- var p = {
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
- }, m = r.forwardRef(({ children: e, className: t, ...r }, a) => /* @__PURE__ */ i(o.div, {
219
- ref: a,
220
- variants: p,
221
- className: n(t),
222
- ...r,
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
- m.displayName = "MotionStaggerItem";
225
+ }) }));
226
+ h.displayName = "MotionStaggerItem";
226
227
  //#endregion
227
- export { d as MotionCollapse, s as MotionFade, l as MotionPop, c as MotionScale, u as MotionSlide, f as MotionStagger, m as MotionStaggerItem };
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":"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"}
@@ -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;AAMpD,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,8GA6Bf,CAAA;AAMD,QAAA,MAAM,WAAW,8GA8BhB,CAAA;AAMD,QAAA,MAAM,SAAS,8GA8Bd,CAAA;AAMD,QAAA,MAAM,WAAW;gBAEsB,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;yDAsCtE,CAAA;AAOD,QAAA,MAAM,cAAc,8GAwBnB,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,4GAyBlB,CAAA;AAYD,QAAA,MAAM,iBAAiB;cAAgD,KAAK,CAAC,SAAS;gBAAc,MAAM;yDAazG,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"}
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"}