@devalok/shilp-sutra 0.34.0 → 0.36.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 (541) hide show
  1. package/LICENSE +21 -21
  2. package/dist/_chunks/badge-group.js +306 -246
  3. package/dist/_chunks/badge-group.js.map +1 -0
  4. package/dist/_chunks/chat.js +518 -0
  5. package/dist/_chunks/chat.js.map +1 -0
  6. package/dist/_chunks/date-picker.js +748 -0
  7. package/dist/_chunks/date-picker.js.map +1 -0
  8. package/dist/_chunks/document-preview.js +109 -90
  9. package/dist/_chunks/document-preview.js.map +1 -0
  10. package/dist/_chunks/file-preview.js +492 -504
  11. package/dist/_chunks/file-preview.js.map +1 -0
  12. package/dist/_chunks/framer.js +5564 -5613
  13. package/dist/_chunks/framer.js.map +1 -0
  14. package/dist/_chunks/image-preview.js +127 -88
  15. package/dist/_chunks/image-preview.js.map +1 -0
  16. package/dist/_chunks/keybinding.js +12 -14
  17. package/dist/_chunks/keybinding.js.map +1 -0
  18. package/dist/_chunks/link-context.js +19 -16
  19. package/dist/_chunks/link-context.js.map +1 -0
  20. package/dist/_chunks/mention-suggestion.js +353 -350
  21. package/dist/_chunks/mention-suggestion.js.map +1 -0
  22. package/dist/_chunks/motion-provider.js +26 -20
  23. package/dist/_chunks/motion-provider.js.map +1 -0
  24. package/dist/_chunks/popover.js +123 -0
  25. package/dist/_chunks/popover.js.map +1 -0
  26. package/dist/_chunks/primitives.js +7585 -6426
  27. package/dist/_chunks/primitives.js.map +1 -0
  28. package/dist/_chunks/rich-chat-input.js +2071 -0
  29. package/dist/_chunks/rich-chat-input.js.map +1 -0
  30. package/dist/_chunks/rolldown-runtime.js +21 -0
  31. package/dist/_chunks/shared.js +126 -0
  32. package/dist/_chunks/shared.js.map +1 -0
  33. package/dist/_chunks/sonner.js +605 -734
  34. package/dist/_chunks/sonner.js.map +1 -0
  35. package/dist/_chunks/stat-row.js +418 -440
  36. package/dist/_chunks/stat-row.js.map +1 -0
  37. package/dist/_chunks/tiptap.js +15850 -19964
  38. package/dist/_chunks/tiptap.js.map +1 -0
  39. package/dist/_chunks/tree-view.js +231 -290
  40. package/dist/_chunks/tree-view.js.map +1 -0
  41. package/dist/_chunks/use-calendar.js +161 -208
  42. package/dist/_chunks/use-calendar.js.map +1 -0
  43. package/dist/_chunks/vendor-client.js +314 -2199
  44. package/dist/_chunks/vendor-client.js.map +1 -0
  45. package/dist/_chunks/vendor-utils.js +1721 -2978
  46. package/dist/_chunks/vendor-utils.js.map +1 -0
  47. package/dist/ai/ai-command-provider.js +23 -17
  48. package/dist/ai/ai-command-provider.js.map +1 -0
  49. package/dist/ai/block-renderer.js +68 -51
  50. package/dist/ai/block-renderer.js.map +1 -0
  51. package/dist/ai/blocks/index.js +2 -12
  52. package/dist/ai/blocks/loading.d.ts.map +1 -1
  53. package/dist/ai/command-bar.js +470 -519
  54. package/dist/ai/command-bar.js.map +1 -0
  55. package/dist/ai/conversation.js +241 -227
  56. package/dist/ai/conversation.js.map +1 -0
  57. package/dist/ai/devadoot-icon.d.ts.map +1 -1
  58. package/dist/ai/index.js +181 -167
  59. package/dist/ai/index.js.map +1 -0
  60. package/dist/ai/types.js +0 -1
  61. package/dist/composed/activity-feed.js +232 -202
  62. package/dist/composed/activity-feed.js.map +1 -0
  63. package/dist/composed/avatar-group.js +164 -222
  64. package/dist/composed/avatar-group.js.map +1 -0
  65. package/dist/composed/bulk-action-bar.js +166 -165
  66. package/dist/composed/bulk-action-bar.js.map +1 -0
  67. package/dist/composed/command-palette.js +290 -308
  68. package/dist/composed/command-palette.js.map +1 -0
  69. package/dist/composed/confirm-dialog.js +28 -48
  70. package/dist/composed/confirm-dialog.js.map +1 -0
  71. package/dist/composed/content-card.js +69 -108
  72. package/dist/composed/content-card.js.map +1 -0
  73. package/dist/composed/date-picker/index.js +3 -13
  74. package/dist/composed/deadline-indicator.js +68 -74
  75. package/dist/composed/deadline-indicator.js.map +1 -0
  76. package/dist/composed/emoji-picker.js +83 -110
  77. package/dist/composed/emoji-picker.js.map +1 -0
  78. package/dist/composed/empty-state.d.ts.map +1 -1
  79. package/dist/composed/empty-state.js +64 -103
  80. package/dist/composed/empty-state.js.map +1 -0
  81. package/dist/composed/error-boundary.js +129 -127
  82. package/dist/composed/error-boundary.js.map +1 -0
  83. package/dist/composed/file-preview.js +2 -12
  84. package/dist/composed/filter-bar.js +98 -130
  85. package/dist/composed/filter-bar.js.map +1 -0
  86. package/dist/composed/form-section.js +61 -45
  87. package/dist/composed/form-section.js.map +1 -0
  88. package/dist/composed/global-loading.js +34 -47
  89. package/dist/composed/global-loading.js.map +1 -0
  90. package/dist/composed/index.js +34 -92
  91. package/dist/composed/inline-edit.js +92 -107
  92. package/dist/composed/inline-edit.js.map +1 -0
  93. package/dist/composed/lib/string-utils.js +8 -8
  94. package/dist/composed/lib/string-utils.js.map +1 -0
  95. package/dist/composed/loading-skeleton.js +103 -171
  96. package/dist/composed/loading-skeleton.js.map +1 -0
  97. package/dist/composed/markdown-viewer.js +187 -139
  98. package/dist/composed/markdown-viewer.js.map +1 -0
  99. package/dist/composed/master-detail.js +147 -156
  100. package/dist/composed/master-detail.js.map +1 -0
  101. package/dist/composed/member-picker.js +46 -49
  102. package/dist/composed/member-picker.js.map +1 -0
  103. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  104. package/dist/composed/multi-select-popover.js +185 -179
  105. package/dist/composed/multi-select-popover.js.map +1 -0
  106. package/dist/composed/page-header.js +54 -76
  107. package/dist/composed/page-header.js.map +1 -0
  108. package/dist/composed/page-skeletons.js +143 -127
  109. package/dist/composed/page-skeletons.js.map +1 -0
  110. package/dist/composed/priority-indicator.js +105 -111
  111. package/dist/composed/priority-indicator.js.map +1 -0
  112. package/dist/composed/responsive-overlay.js +36 -41
  113. package/dist/composed/responsive-overlay.js.map +1 -0
  114. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  115. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  116. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  117. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  118. package/dist/composed/rich-chat-input.js +2 -1860
  119. package/dist/composed/rich-text-editor.js +561 -424
  120. package/dist/composed/rich-text-editor.js.map +1 -0
  121. package/dist/composed/schedule-view.js +134 -185
  122. package/dist/composed/schedule-view.js.map +1 -0
  123. package/dist/composed/simple-tooltip.js +21 -21
  124. package/dist/composed/simple-tooltip.js.map +1 -0
  125. package/dist/composed/status-badge.d.ts.map +1 -1
  126. package/dist/composed/status-badge.js +133 -137
  127. package/dist/composed/status-badge.js.map +1 -0
  128. package/dist/hooks/index.js +7 -12
  129. package/dist/hooks/use-color-mode.js +28 -25
  130. package/dist/hooks/use-color-mode.js.map +1 -0
  131. package/dist/hooks/use-mobile.js +13 -13
  132. package/dist/hooks/use-mobile.js.map +1 -0
  133. package/dist/hooks/use-toast.js +2 -4
  134. package/dist/hooks/use-touch-device.js +9 -11
  135. package/dist/hooks/use-touch-device.js.map +1 -0
  136. package/dist/hooks/use-viewport-height.js +14 -14
  137. package/dist/hooks/use-viewport-height.js.map +1 -0
  138. package/dist/motion/check-motion-provider.d.ts +3 -0
  139. package/dist/motion/check-motion-provider.d.ts.map +1 -0
  140. package/dist/motion/index.js +17 -11
  141. package/dist/motion/index.js.map +1 -0
  142. package/dist/motion/primitives-index.js +226 -186
  143. package/dist/motion/primitives-index.js.map +1 -0
  144. package/dist/primitives/react-accordion.d.ts +114 -114
  145. package/dist/primitives/react-alert-dialog.d.ts +51 -51
  146. package/dist/primitives/react-aspect-ratio.d.ts +11 -11
  147. package/dist/primitives/react-avatar.d.ts +24 -24
  148. package/dist/primitives/react-checkbox.d.ts +50 -50
  149. package/dist/primitives/react-collapsible.d.ts +33 -33
  150. package/dist/primitives/react-context-menu.d.ts +96 -96
  151. package/dist/primitives/react-dialog.d.ts +103 -103
  152. package/dist/primitives/react-dropdown-menu.d.ts +97 -97
  153. package/dist/primitives/react-hover-card.d.ts +79 -79
  154. package/dist/primitives/react-label.d.ts +10 -10
  155. package/dist/primitives/react-menu.d.ts +169 -169
  156. package/dist/primitives/react-menubar.d.ts +115 -115
  157. package/dist/primitives/react-navigation-menu.d.ts +126 -126
  158. package/dist/primitives/react-popover.d.ts +85 -85
  159. package/dist/primitives/react-progress.d.ts +19 -19
  160. package/dist/primitives/react-radio-group.d.ts +58 -58
  161. package/dist/primitives/react-roving-focus.d.ts +49 -49
  162. package/dist/primitives/react-select.d.ts +137 -137
  163. package/dist/primitives/react-separator.d.ts +21 -21
  164. package/dist/primitives/react-slider.d.ts +75 -75
  165. package/dist/primitives/react-switch.d.ts +21 -21
  166. package/dist/primitives/react-tabs.d.ts +56 -56
  167. package/dist/primitives/react-toast.d.ts +120 -120
  168. package/dist/primitives/react-toggle-group.d.ts +75 -75
  169. package/dist/primitives/react-toggle.d.ts +24 -24
  170. package/dist/primitives/react-tooltip.d.ts +101 -101
  171. package/dist/primitives/react-visually-hidden.d.ts +22 -22
  172. package/dist/shell/app-command-palette.d.ts +2 -0
  173. package/dist/shell/app-command-palette.d.ts.map +1 -1
  174. package/dist/shell/app-command-palette.js +94 -238
  175. package/dist/shell/app-command-palette.js.map +1 -0
  176. package/dist/shell/bottom-navbar.js +150 -190
  177. package/dist/shell/bottom-navbar.js.map +1 -0
  178. package/dist/shell/command-registry.js +13 -14
  179. package/dist/shell/command-registry.js.map +1 -0
  180. package/dist/shell/index.js +10 -20
  181. package/dist/shell/link-context.js +2 -5
  182. package/dist/shell/notification-center.d.ts.map +1 -1
  183. package/dist/shell/notification-center.js +263 -259
  184. package/dist/shell/notification-center.js.map +1 -0
  185. package/dist/shell/notification-preferences.js +241 -184
  186. package/dist/shell/notification-preferences.js.map +1 -0
  187. package/dist/shell/sidebar.js +251 -281
  188. package/dist/shell/sidebar.js.map +1 -0
  189. package/dist/shell/top-bar.js +203 -237
  190. package/dist/shell/top-bar.js.map +1 -0
  191. package/dist/tailwind/index.cjs +473 -442
  192. package/dist/tailwind/index.js +2 -4
  193. package/dist/tailwind/preset.d.ts.map +1 -1
  194. package/dist/tailwind/preset.js +490 -459
  195. package/dist/tailwind/preset.js.map +1 -0
  196. package/dist/tokens/index.css +4 -4
  197. package/dist/tokens/primitives.css +442 -442
  198. package/dist/tokens/semantic.css +742 -547
  199. package/dist/tokens/typography-semantic.css +123 -100
  200. package/dist/tokens/typography.css +422 -422
  201. package/dist/ui/accordion.js +52 -60
  202. package/dist/ui/accordion.js.map +1 -0
  203. package/dist/ui/alert-dialog.d.ts +6 -2
  204. package/dist/ui/alert-dialog.d.ts.map +1 -1
  205. package/dist/ui/alert-dialog.js +112 -156
  206. package/dist/ui/alert-dialog.js.map +1 -0
  207. package/dist/ui/alert.d.ts +3 -2
  208. package/dist/ui/alert.d.ts.map +1 -1
  209. package/dist/ui/alert.js +203 -99
  210. package/dist/ui/alert.js.map +1 -0
  211. package/dist/ui/aspect-ratio.js +13 -16
  212. package/dist/ui/aspect-ratio.js.map +1 -0
  213. package/dist/ui/autocomplete.d.ts.map +1 -1
  214. package/dist/ui/autocomplete.js +137 -148
  215. package/dist/ui/autocomplete.js.map +1 -0
  216. package/dist/ui/avatar.js +196 -169
  217. package/dist/ui/avatar.js.map +1 -0
  218. package/dist/ui/badge-group.js +2 -7
  219. package/dist/ui/badge-indicator.js +42 -51
  220. package/dist/ui/badge-indicator.js.map +1 -0
  221. package/dist/ui/badge.js +2 -15
  222. package/dist/ui/banner.js +76 -68
  223. package/dist/ui/banner.js.map +1 -0
  224. package/dist/ui/breadcrumb.js +65 -84
  225. package/dist/ui/breadcrumb.js.map +1 -0
  226. package/dist/ui/button-group.js +109 -102
  227. package/dist/ui/button-group.js.map +1 -0
  228. package/dist/ui/button-processing.d.ts.map +1 -1
  229. package/dist/ui/button-processing.js +89 -72
  230. package/dist/ui/button-processing.js.map +1 -0
  231. package/dist/ui/button.js +393 -279
  232. package/dist/ui/button.js.map +1 -0
  233. package/dist/ui/card.js +151 -157
  234. package/dist/ui/card.js.map +1 -0
  235. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  236. package/dist/ui/charts/chart-container.d.ts +2 -0
  237. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  238. package/dist/ui/charts/index.js +1025 -1319
  239. package/dist/ui/charts/index.js.map +1 -0
  240. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  241. package/dist/ui/chat/index.js +2 -11
  242. package/dist/ui/chat/message-input.d.ts.map +1 -1
  243. package/dist/ui/chat/message-list.d.ts +1 -1
  244. package/dist/ui/chat/message-list.d.ts.map +1 -1
  245. package/dist/ui/chat/message.d.ts.map +1 -1
  246. package/dist/ui/chat/system-message.d.ts.map +1 -1
  247. package/dist/ui/checkbox.d.ts.map +1 -1
  248. package/dist/ui/checkbox.js +82 -100
  249. package/dist/ui/checkbox.js.map +1 -0
  250. package/dist/ui/code.js +18 -32
  251. package/dist/ui/code.js.map +1 -0
  252. package/dist/ui/collapsible.js +21 -29
  253. package/dist/ui/collapsible.js.map +1 -0
  254. package/dist/ui/color-input.d.ts.map +1 -1
  255. package/dist/ui/color-input.js +455 -372
  256. package/dist/ui/color-input.js.map +1 -0
  257. package/dist/ui/color-swatch.js +60 -90
  258. package/dist/ui/color-swatch.js.map +1 -0
  259. package/dist/ui/combobox.d.ts +7 -0
  260. package/dist/ui/combobox.d.ts.map +1 -1
  261. package/dist/ui/combobox.js +278 -293
  262. package/dist/ui/combobox.js.map +1 -0
  263. package/dist/ui/container.js +18 -24
  264. package/dist/ui/container.js.map +1 -0
  265. package/dist/ui/context-menu.js +154 -203
  266. package/dist/ui/context-menu.js.map +1 -0
  267. package/dist/ui/data-table-body.js +116 -213
  268. package/dist/ui/data-table-body.js.map +1 -0
  269. package/dist/ui/data-table-bulk-actions.js +43 -59
  270. package/dist/ui/data-table-bulk-actions.js.map +1 -0
  271. package/dist/ui/data-table-card.js +84 -71
  272. package/dist/ui/data-table-card.js.map +1 -0
  273. package/dist/ui/data-table-context.js +39 -42
  274. package/dist/ui/data-table-context.js.map +1 -0
  275. package/dist/ui/data-table-header.js +98 -139
  276. package/dist/ui/data-table-header.js.map +1 -0
  277. package/dist/ui/data-table-pagination.js +69 -82
  278. package/dist/ui/data-table-pagination.js.map +1 -0
  279. package/dist/ui/data-table-toolbar.js +104 -130
  280. package/dist/ui/data-table-toolbar.js.map +1 -0
  281. package/dist/ui/data-table.js +281 -354
  282. package/dist/ui/data-table.js.map +1 -0
  283. package/dist/ui/devalok-grain.js +77 -66
  284. package/dist/ui/devalok-grain.js.map +1 -0
  285. package/dist/ui/dialog.js +118 -151
  286. package/dist/ui/dialog.js.map +1 -0
  287. package/dist/ui/dropdown-menu.js +152 -203
  288. package/dist/ui/dropdown-menu.js.map +1 -0
  289. package/dist/ui/file-upload.js +242 -266
  290. package/dist/ui/file-upload.js.map +1 -0
  291. package/dist/ui/form.d.ts +8 -0
  292. package/dist/ui/form.d.ts.map +1 -1
  293. package/dist/ui/form.js +62 -56
  294. package/dist/ui/form.js.map +1 -0
  295. package/dist/ui/hover-card.js +54 -54
  296. package/dist/ui/hover-card.js.map +1 -0
  297. package/dist/ui/icon-button.js +21 -26
  298. package/dist/ui/icon-button.js.map +1 -0
  299. package/dist/ui/icon-context.js +17 -17
  300. package/dist/ui/icon-context.js.map +1 -0
  301. package/dist/ui/icon-group.js +22 -29
  302. package/dist/ui/icon-group.js.map +1 -0
  303. package/dist/ui/icon.js +201 -121
  304. package/dist/ui/icon.js.map +1 -0
  305. package/dist/ui/index.d.ts +4 -4
  306. package/dist/ui/index.d.ts.map +1 -1
  307. package/dist/ui/index.js +90 -350
  308. package/dist/ui/index.js.map +1 -0
  309. package/dist/ui/input-otp.d.ts +12 -3
  310. package/dist/ui/input-otp.d.ts.map +1 -1
  311. package/dist/ui/input-otp.js +58 -48
  312. package/dist/ui/input-otp.js.map +1 -0
  313. package/dist/ui/input.d.ts.map +1 -1
  314. package/dist/ui/input.js +93 -169
  315. package/dist/ui/input.js.map +1 -0
  316. package/dist/ui/label.d.ts.map +1 -1
  317. package/dist/ui/label.js +23 -23
  318. package/dist/ui/label.js.map +1 -0
  319. package/dist/ui/lib/check-tokens.d.ts +3 -0
  320. package/dist/ui/lib/check-tokens.d.ts.map +1 -0
  321. package/dist/ui/lib/date-utils.js +14 -11
  322. package/dist/ui/lib/date-utils.js.map +1 -0
  323. package/dist/ui/lib/motion.d.ts +15 -4
  324. package/dist/ui/lib/motion.d.ts.map +1 -1
  325. package/dist/ui/lib/motion.js +83 -33
  326. package/dist/ui/lib/motion.js.map +1 -0
  327. package/dist/ui/lib/utils.js +39 -16
  328. package/dist/ui/lib/utils.js.map +1 -0
  329. package/dist/ui/link.js +13 -24
  330. package/dist/ui/link.js.map +1 -0
  331. package/dist/ui/menubar.js +132 -210
  332. package/dist/ui/menubar.js.map +1 -0
  333. package/dist/ui/navigation-menu.js +163 -193
  334. package/dist/ui/navigation-menu.js.map +1 -0
  335. package/dist/ui/number-input.d.ts +16 -1
  336. package/dist/ui/number-input.d.ts.map +1 -1
  337. package/dist/ui/number-input.js +102 -95
  338. package/dist/ui/number-input.js.map +1 -0
  339. package/dist/ui/pagination.js +122 -159
  340. package/dist/ui/pagination.js.map +1 -0
  341. package/dist/ui/popover.js +2 -131
  342. package/dist/ui/progress-ring.d.ts.map +1 -1
  343. package/dist/ui/progress-ring.js +133 -143
  344. package/dist/ui/progress-ring.js.map +1 -0
  345. package/dist/ui/progress.js +51 -95
  346. package/dist/ui/progress.js.map +1 -0
  347. package/dist/ui/radio.d.ts.map +1 -1
  348. package/dist/ui/radio.js +47 -49
  349. package/dist/ui/radio.js.map +1 -0
  350. package/dist/ui/search-input.js +51 -53
  351. package/dist/ui/search-input.js.map +1 -0
  352. package/dist/ui/segmented-control.d.ts +1 -1
  353. package/dist/ui/segmented-control.d.ts.map +1 -1
  354. package/dist/ui/segmented-control.js +95 -114
  355. package/dist/ui/segmented-control.js.map +1 -0
  356. package/dist/ui/select.d.ts.map +1 -1
  357. package/dist/ui/select.js +137 -157
  358. package/dist/ui/select.js.map +1 -0
  359. package/dist/ui/separator.d.ts.map +1 -1
  360. package/dist/ui/separator.js +18 -25
  361. package/dist/ui/separator.js.map +1 -0
  362. package/dist/ui/sheet.js +135 -163
  363. package/dist/ui/sheet.js.map +1 -0
  364. package/dist/ui/sidebar.js +357 -600
  365. package/dist/ui/sidebar.js.map +1 -0
  366. package/dist/ui/skeleton.js +179 -231
  367. package/dist/ui/skeleton.js.map +1 -0
  368. package/dist/ui/slider.d.ts +22 -3
  369. package/dist/ui/slider.d.ts.map +1 -1
  370. package/dist/ui/slider.js +62 -34
  371. package/dist/ui/slider.js.map +1 -0
  372. package/dist/ui/spinner.js +226 -205
  373. package/dist/ui/spinner.js.map +1 -0
  374. package/dist/ui/split-button.d.ts.map +1 -1
  375. package/dist/ui/split-button.js +228 -276
  376. package/dist/ui/split-button.js.map +1 -0
  377. package/dist/ui/stack.js +56 -70
  378. package/dist/ui/stack.js.map +1 -0
  379. package/dist/ui/stat-card.js +259 -251
  380. package/dist/ui/stat-card.js.map +1 -0
  381. package/dist/ui/status-dot.js +67 -63
  382. package/dist/ui/status-dot.js.map +1 -0
  383. package/dist/ui/stepper.d.ts +10 -0
  384. package/dist/ui/stepper.d.ts.map +1 -1
  385. package/dist/ui/stepper.js +124 -168
  386. package/dist/ui/stepper.js.map +1 -0
  387. package/dist/ui/switch.d.ts.map +1 -1
  388. package/dist/ui/switch.js +56 -55
  389. package/dist/ui/switch.js.map +1 -0
  390. package/dist/ui/table.js +57 -90
  391. package/dist/ui/table.js.map +1 -0
  392. package/dist/ui/tabs.d.ts +3 -1
  393. package/dist/ui/tabs.d.ts.map +1 -1
  394. package/dist/ui/tabs.js +159 -156
  395. package/dist/ui/tabs.js.map +1 -0
  396. package/dist/ui/text.d.ts +1 -1
  397. package/dist/ui/text.d.ts.map +1 -1
  398. package/dist/ui/text.js +60 -59
  399. package/dist/ui/text.js.map +1 -0
  400. package/dist/ui/textarea.js +40 -57
  401. package/dist/ui/textarea.js.map +1 -0
  402. package/dist/ui/toast-registry.d.ts +8 -0
  403. package/dist/ui/toast-registry.d.ts.map +1 -0
  404. package/dist/ui/toast-registry.js +13 -0
  405. package/dist/ui/toast-registry.js.map +1 -0
  406. package/dist/ui/toast-types.js +0 -1
  407. package/dist/ui/toast.d.ts.map +1 -1
  408. package/dist/ui/toast.js +559 -536
  409. package/dist/ui/toast.js.map +1 -0
  410. package/dist/ui/toaster.d.ts.map +1 -1
  411. package/dist/ui/toaster.js +24 -33
  412. package/dist/ui/toaster.js.map +1 -0
  413. package/dist/ui/toggle-group.d.ts +2 -0
  414. package/dist/ui/toggle-group.d.ts.map +1 -1
  415. package/dist/ui/toggle-group.js +44 -41
  416. package/dist/ui/toggle-group.js.map +1 -0
  417. package/dist/ui/toggle.d.ts +2 -0
  418. package/dist/ui/toggle.d.ts.map +1 -1
  419. package/dist/ui/toggle.js +44 -40
  420. package/dist/ui/toggle.js.map +1 -0
  421. package/dist/ui/tooltip.js +80 -65
  422. package/dist/ui/tooltip.js.map +1 -0
  423. package/dist/ui/tree-view/index.js +2 -6
  424. package/dist/ui/visually-hidden.js +12 -10
  425. package/dist/ui/visually-hidden.js.map +1 -0
  426. package/docs/components/_header.md +85 -85
  427. package/docs/components/composed/activity-feed.md +62 -62
  428. package/docs/components/composed/avatar-group.md +65 -65
  429. package/docs/components/composed/bulk-action-bar.md +40 -40
  430. package/docs/components/composed/command-palette.md +40 -40
  431. package/docs/components/composed/confirm-dialog.md +46 -46
  432. package/docs/components/composed/content-card.md +36 -36
  433. package/docs/components/composed/date-picker.md +130 -130
  434. package/docs/components/composed/deadline-indicator.md +27 -27
  435. package/docs/components/composed/emoji-picker.md +52 -52
  436. package/docs/components/composed/empty-state.md +53 -53
  437. package/docs/components/composed/error-boundary.md +29 -29
  438. package/docs/components/composed/file-preview.md +40 -40
  439. package/docs/components/composed/filter-bar.md +57 -57
  440. package/docs/components/composed/form-section.md +31 -31
  441. package/docs/components/composed/global-loading.md +27 -27
  442. package/docs/components/composed/inline-edit.md +35 -35
  443. package/docs/components/composed/loading-skeleton.md +51 -51
  444. package/docs/components/composed/markdown-viewer.md +27 -27
  445. package/docs/components/composed/master-detail.md +48 -48
  446. package/docs/components/composed/member-picker.md +35 -35
  447. package/docs/components/composed/multi-select-popover.md +62 -62
  448. package/docs/components/composed/page-header.md +41 -41
  449. package/docs/components/composed/page-skeletons.md +32 -32
  450. package/docs/components/composed/priority-indicator.md +32 -32
  451. package/docs/components/composed/responsive-overlay.md +34 -34
  452. package/docs/components/composed/rich-text-editor.md +82 -82
  453. package/docs/components/composed/schedule-view.md +39 -39
  454. package/docs/components/composed/simple-tooltip.md +33 -33
  455. package/docs/components/composed/status-badge.md +55 -55
  456. package/docs/components/shell/app-command-palette.md +44 -44
  457. package/docs/components/shell/bottom-navbar.md +52 -52
  458. package/docs/components/shell/command-registry.md +48 -48
  459. package/docs/components/shell/link-context.md +41 -41
  460. package/docs/components/shell/notification-center.md +63 -63
  461. package/docs/components/shell/notification-preferences.md +42 -42
  462. package/docs/components/shell/sidebar.md +92 -92
  463. package/docs/components/shell/top-bar.md +143 -143
  464. package/docs/components/ui/accordion.md +51 -51
  465. package/docs/components/ui/alert-dialog.md +61 -61
  466. package/docs/components/ui/alert.md +46 -46
  467. package/docs/components/ui/aspect-ratio.md +25 -25
  468. package/docs/components/ui/autocomplete.md +48 -48
  469. package/docs/components/ui/avatar.md +56 -56
  470. package/docs/components/ui/badge.md +83 -82
  471. package/docs/components/ui/banner.md +42 -42
  472. package/docs/components/ui/breadcrumb.md +37 -37
  473. package/docs/components/ui/button-group.md +41 -41
  474. package/docs/components/ui/button.md +94 -93
  475. package/docs/components/ui/card.md +52 -52
  476. package/docs/components/ui/charts.md +43 -43
  477. package/docs/components/ui/checkbox.md +36 -36
  478. package/docs/components/ui/chip.md +47 -47
  479. package/docs/components/ui/code.md +28 -28
  480. package/docs/components/ui/collapsible.md +40 -40
  481. package/docs/components/ui/color-input.md +91 -91
  482. package/docs/components/ui/color-swatch.md +25 -25
  483. package/docs/components/ui/combobox.md +54 -54
  484. package/docs/components/ui/container.md +26 -26
  485. package/docs/components/ui/context-menu.md +43 -43
  486. package/docs/components/ui/data-table-body.md +1 -1
  487. package/docs/components/ui/data-table-bulk-actions.md +1 -1
  488. package/docs/components/ui/data-table-card.md +1 -1
  489. package/docs/components/ui/data-table-context.md +1 -1
  490. package/docs/components/ui/data-table-header.md +1 -1
  491. package/docs/components/ui/data-table-pagination.md +1 -1
  492. package/docs/components/ui/data-table-toolbar.md +44 -44
  493. package/docs/components/ui/data-table.md +94 -94
  494. package/docs/components/ui/dialog.md +54 -54
  495. package/docs/components/ui/dropdown-menu.md +48 -48
  496. package/docs/components/ui/file-upload.md +41 -41
  497. package/docs/components/ui/form.md +51 -51
  498. package/docs/components/ui/hover-card.md +32 -32
  499. package/docs/components/ui/icon-button.md +40 -40
  500. package/docs/components/ui/input-otp.md +44 -44
  501. package/docs/components/ui/input.md +74 -74
  502. package/docs/components/ui/label.md +25 -25
  503. package/docs/components/ui/link.md +29 -29
  504. package/docs/components/ui/menubar.md +44 -44
  505. package/docs/components/ui/navigation-menu.md +46 -46
  506. package/docs/components/ui/number-input.md +44 -44
  507. package/docs/components/ui/pagination.md +48 -48
  508. package/docs/components/ui/popover.md +30 -30
  509. package/docs/components/ui/progress-ring.md +41 -41
  510. package/docs/components/ui/progress.md +34 -34
  511. package/docs/components/ui/radio.md +34 -34
  512. package/docs/components/ui/search-input.md +43 -43
  513. package/docs/components/ui/segmented-control.md +50 -50
  514. package/docs/components/ui/select.md +53 -53
  515. package/docs/components/ui/separator.md +32 -32
  516. package/docs/components/ui/sheet.md +47 -47
  517. package/docs/components/ui/sidebar.md +72 -72
  518. package/docs/components/ui/skeleton.md +77 -77
  519. package/docs/components/ui/slider.md +29 -29
  520. package/docs/components/ui/spinner.md +54 -54
  521. package/docs/components/ui/stack.md +39 -39
  522. package/docs/components/ui/stat-card.md +61 -61
  523. package/docs/components/ui/status-dot.md +26 -26
  524. package/docs/components/ui/stepper.md +49 -49
  525. package/docs/components/ui/switch.md +47 -47
  526. package/docs/components/ui/table.md +47 -47
  527. package/docs/components/ui/tabs.md +60 -60
  528. package/docs/components/ui/text.md +37 -37
  529. package/docs/components/ui/textarea.md +39 -39
  530. package/docs/components/ui/toast.md +65 -65
  531. package/docs/components/ui/toaster.md +47 -47
  532. package/docs/components/ui/toggle-group.md +43 -43
  533. package/docs/components/ui/toggle.md +37 -37
  534. package/docs/components/ui/tooltip.md +38 -38
  535. package/docs/components/ui/tree-view.md +65 -65
  536. package/docs/components/ui/visually-hidden.md +21 -21
  537. package/llms-full.txt +5266 -5264
  538. package/llms.txt +624 -580
  539. package/package.json +7 -8
  540. package/dist/_chunks/date-time-picker.js +0 -851
  541. package/dist/_chunks/typing-indicator.js +0 -565
@@ -1,138 +1,134 @@
1
1
  "use client";
2
- import { jsx as r, jsxs as m } from "react/jsx-runtime";
3
- import * as B from "react";
4
- import { a as I } from "../_chunks/vendor-utils.js";
5
- import { IconChevronDown as M } from "@tabler/icons-react";
6
- import { Icon as L } from "../ui/icon.js";
7
- import { motionProps as x } from "../ui/lib/motion.js";
8
- import { cn as n } from "../ui/lib/utils.js";
9
- import { m as w, A as h } from "../_chunks/framer.js";
10
- const y = I(
11
- "inline-flex items-center gap-ds-02b rounded-ds-full font-body",
12
- {
13
- variants: {
14
- status: {
15
- active: "bg-success-3 text-success-11",
16
- pending: "bg-warning-3 text-warning-11",
17
- approved: "bg-success-3 text-success-11",
18
- rejected: "bg-error-3 text-error-11",
19
- completed: "bg-success-3 text-success-11",
20
- blocked: "bg-error-3 text-error-11",
21
- "in-progress": "bg-accent-3 text-accent-11",
22
- review: "bg-info-3 text-info-11",
23
- cancelled: "bg-surface-raised text-surface-fg-subtle",
24
- draft: "bg-surface-raised text-surface-fg-subtle"
25
- },
26
- color: {
27
- success: "bg-success-3 text-success-11",
28
- warning: "bg-warning-3 text-warning-11",
29
- error: "bg-error-3 text-error-11",
30
- info: "bg-info-3 text-info-11",
31
- neutral: "bg-surface-raised text-surface-fg-subtle"
32
- },
33
- size: {
34
- sm: "px-ds-03 py-ds-01 text-ds-xs font-semibold",
35
- md: "px-ds-04 py-ds-02 text-ds-sm font-medium"
36
- }
37
- },
38
- defaultVariants: {
39
- size: "md"
40
- }
41
- }
42
- ), P = {
43
- active: "bg-success-9",
44
- pending: "bg-warning-9",
45
- approved: "bg-success-9",
46
- rejected: "bg-error-9",
47
- completed: "bg-success-9",
48
- blocked: "bg-error-9",
49
- "in-progress": "bg-accent-9",
50
- review: "bg-info-9",
51
- cancelled: "bg-disabled",
52
- draft: "bg-surface-fg-subtle"
53
- }, R = {
54
- success: "bg-success-9",
55
- warning: "bg-warning-9",
56
- error: "bg-error-9",
57
- info: "bg-info-9",
58
- neutral: "bg-surface-fg-subtle"
59
- }, v = { duration: 0.3, ease: "easeOut" }, S = B.forwardRef(
60
- ({ status: C, color: e, size: a, label: c, hideDot: i = !1, onClick: o, icon: d, className: u, ...l }, g) => {
61
- const s = o != null, p = s ? w.button : w.span, b = s ? "cursor-pointer hover:opacity-80 transition-opacity" : void 0, f = d ?? (s ? /* @__PURE__ */ r(L, { icon: M, size: "xs", className: "text-current/50 -mr-0.5 shrink-0" }) : null);
62
- if (e != null) {
63
- const j = c ?? e.charAt(0).toUpperCase() + e.slice(1), A = R[e];
64
- return /* @__PURE__ */ r(h, { mode: "wait", children: /* @__PURE__ */ m(
65
- p,
66
- {
67
- ref: g,
68
- ...s ? { type: "button", onClick: o } : {},
69
- initial: { opacity: 0.6, scale: 0.95 },
70
- animate: { opacity: 1, scale: 1 },
71
- exit: { opacity: 0.6, scale: 0.95 },
72
- transition: v,
73
- className: n(
74
- y({ color: e, size: a }),
75
- b,
76
- u
77
- ),
78
- ...x(l),
79
- children: [
80
- !i && /* @__PURE__ */ r(
81
- "span",
82
- {
83
- className: n(
84
- "shrink-0 rounded-ds-full",
85
- a === "sm" ? "h-ds-02b w-ds-02b" : "h-[8px] w-[8px]",
86
- A
87
- ),
88
- "aria-hidden": "true"
89
- }
90
- ),
91
- j,
92
- f
93
- ]
94
- },
95
- e
96
- ) });
97
- }
98
- const t = C ?? "pending", k = c ?? t.charAt(0).toUpperCase() + t.slice(1), N = P[t];
99
- return /* @__PURE__ */ r(h, { mode: "wait", children: /* @__PURE__ */ m(
100
- p,
101
- {
102
- ref: g,
103
- ...s ? { type: "button", onClick: o } : {},
104
- initial: { opacity: 0.6 },
105
- animate: { opacity: 1 },
106
- exit: { opacity: 0.6 },
107
- transition: v,
108
- className: n(
109
- y({ status: t, size: a }),
110
- b,
111
- u
112
- ),
113
- ...x(l),
114
- children: [
115
- !i && /* @__PURE__ */ r(
116
- "span",
117
- {
118
- className: n(
119
- "shrink-0 rounded-ds-full",
120
- a === "sm" ? "h-ds-02b w-ds-02b" : "h-[8px] w-[8px]",
121
- N
122
- ),
123
- "aria-hidden": "true"
124
- }
125
- ),
126
- k,
127
- f
128
- ]
129
- },
130
- t
131
- ) });
132
- }
133
- );
134
- S.displayName = "StatusBadge";
135
- export {
136
- S as StatusBadge,
137
- y as statusBadgeVariants
138
- };
2
+ import { a as e, c as t } from "../_chunks/framer.js";
3
+ import { motionProps as n } from "../ui/lib/motion.js";
4
+ import { t as r } from "../_chunks/vendor-utils.js";
5
+ import { cn as i } from "../ui/lib/utils.js";
6
+ import { Icon as a } from "../ui/icon.js";
7
+ import * as o from "react";
8
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
9
+ import { IconChevronDown as l } from "@tabler/icons-react";
10
+ //#region src/composed/status-badge.tsx
11
+ var u = r("inline-flex items-center gap-ds-02b rounded-ds-full font-body", {
12
+ variants: {
13
+ status: {
14
+ active: "bg-success-3 text-success-11",
15
+ pending: "bg-warning-3 text-warning-11",
16
+ approved: "bg-success-3 text-success-11",
17
+ rejected: "bg-error-3 text-error-11",
18
+ completed: "bg-success-3 text-success-11",
19
+ blocked: "bg-error-3 text-error-11",
20
+ "in-progress": "bg-accent-3 text-accent-11",
21
+ review: "bg-info-3 text-info-11",
22
+ cancelled: "bg-surface-raised text-surface-fg-subtle",
23
+ draft: "bg-surface-raised text-surface-fg-subtle"
24
+ },
25
+ color: {
26
+ success: "bg-success-3 text-success-11",
27
+ warning: "bg-warning-3 text-warning-11",
28
+ error: "bg-error-3 text-error-11",
29
+ info: "bg-info-3 text-info-11",
30
+ neutral: "bg-surface-raised text-surface-fg-subtle"
31
+ },
32
+ size: {
33
+ sm: "px-ds-03 py-ds-01 text-ds-xs font-semibold",
34
+ md: "px-ds-04 py-ds-02 text-ds-sm font-medium"
35
+ }
36
+ },
37
+ defaultVariants: { size: "md" }
38
+ }), d = {
39
+ active: "bg-success-9",
40
+ pending: "bg-warning-9",
41
+ approved: "bg-success-9",
42
+ rejected: "bg-error-9",
43
+ completed: "bg-success-9",
44
+ blocked: "bg-error-9",
45
+ "in-progress": "bg-accent-9",
46
+ review: "bg-info-9",
47
+ cancelled: "bg-disabled",
48
+ draft: "bg-surface-fg-subtle"
49
+ }, f = {
50
+ success: "bg-success-9",
51
+ warning: "bg-warning-9",
52
+ error: "bg-error-9",
53
+ info: "bg-info-9",
54
+ neutral: "bg-surface-fg-subtle"
55
+ }, p = {
56
+ duration: .3,
57
+ ease: "easeOut"
58
+ }, m = o.forwardRef(({ status: r, color: o, size: m, label: h, hideDot: g = !1, onClick: _, icon: v, className: y, ...b }, x) => {
59
+ let S = _ != null, C = S ? e.button : e.span, w = S ? "cursor-pointer hover:opacity-80 transition-opacity" : void 0, T = v ?? (S ? /* @__PURE__ */ s(a, {
60
+ icon: l,
61
+ size: "xs",
62
+ className: "text-current/50 -mr-0.5 shrink-0"
63
+ }) : null);
64
+ if (o != null) {
65
+ let e = h ?? o.charAt(0).toUpperCase() + o.slice(1), r = f[o];
66
+ return /* @__PURE__ */ s(t, {
67
+ mode: "wait",
68
+ children: /* @__PURE__ */ c(C, {
69
+ ref: x,
70
+ ...S ? {
71
+ type: "button",
72
+ onClick: _
73
+ } : {},
74
+ initial: {
75
+ opacity: .6,
76
+ scale: .95
77
+ },
78
+ animate: {
79
+ opacity: 1,
80
+ scale: 1
81
+ },
82
+ exit: {
83
+ opacity: .6,
84
+ scale: .95
85
+ },
86
+ transition: p,
87
+ className: i(u({
88
+ color: o,
89
+ size: m
90
+ }), w, y),
91
+ ...n(b),
92
+ children: [
93
+ !g && /* @__PURE__ */ s("span", {
94
+ className: i("shrink-0 rounded-ds-full", m === "sm" ? "h-ds-02b w-ds-02b" : "h-[8px] w-[8px]", r),
95
+ "aria-hidden": "true"
96
+ }),
97
+ e,
98
+ T
99
+ ]
100
+ }, o)
101
+ });
102
+ }
103
+ let E = r ?? "pending", D = h ?? E.charAt(0).toUpperCase() + E.slice(1), O = d[E];
104
+ return /* @__PURE__ */ s(t, {
105
+ mode: "wait",
106
+ children: /* @__PURE__ */ c(C, {
107
+ ref: x,
108
+ ...S ? {
109
+ type: "button",
110
+ onClick: _
111
+ } : {},
112
+ initial: { opacity: .6 },
113
+ animate: { opacity: 1 },
114
+ exit: { opacity: .6 },
115
+ transition: p,
116
+ className: i(u({
117
+ status: E,
118
+ size: m
119
+ }), w, y),
120
+ ...n(b),
121
+ children: [
122
+ !g && /* @__PURE__ */ s("span", {
123
+ className: i("shrink-0 rounded-ds-full", m === "sm" ? "h-ds-02b w-ds-02b" : "h-[8px] w-[8px]", O),
124
+ "aria-hidden": "true"
125
+ }),
126
+ D,
127
+ T
128
+ ]
129
+ }, E)
130
+ });
131
+ });
132
+ m.displayName = "StatusBadge";
133
+ //#endregion
134
+ export { m as StatusBadge, u as statusBadgeVariants };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-badge.js","names":[],"sources":["../../src/composed/status-badge.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { IconChevronDown } from '@tabler/icons-react'\n\nimport { Icon } from '../ui/icon'\nimport { motionProps } from '../ui/lib/motion'\nimport { cn } from '../ui/lib/utils'\n\nconst statusBadgeVariants = cva(\n 'inline-flex items-center gap-ds-02b rounded-ds-full font-body',\n {\n variants: {\n status: {\n active: 'bg-success-3 text-success-11',\n pending: 'bg-warning-3 text-warning-11',\n approved: 'bg-success-3 text-success-11',\n rejected: 'bg-error-3 text-error-11',\n completed: 'bg-success-3 text-success-11',\n blocked: 'bg-error-3 text-error-11',\n 'in-progress': 'bg-accent-3 text-accent-11',\n review: 'bg-info-3 text-info-11',\n cancelled: 'bg-surface-raised text-surface-fg-subtle',\n draft: 'bg-surface-raised text-surface-fg-subtle',\n },\n color: {\n success: 'bg-success-3 text-success-11',\n warning: 'bg-warning-3 text-warning-11',\n error: 'bg-error-3 text-error-11',\n info: 'bg-info-3 text-info-11',\n neutral: 'bg-surface-raised text-surface-fg-subtle',\n },\n size: {\n sm: 'px-ds-03 py-ds-01 text-ds-xs font-semibold',\n md: 'px-ds-04 py-ds-02 text-ds-sm font-medium',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n },\n)\n\nconst dotColorMap: Record<string, string> = {\n active: 'bg-success-9',\n pending: 'bg-warning-9',\n approved: 'bg-success-9',\n rejected: 'bg-error-9',\n completed: 'bg-success-9',\n blocked: 'bg-error-9',\n 'in-progress': 'bg-accent-9',\n review: 'bg-info-9',\n cancelled: 'bg-disabled',\n draft: 'bg-surface-fg-subtle',\n}\n\nconst colorDotMap: Record<string, string> = {\n success: 'bg-success-9',\n warning: 'bg-warning-9',\n error: 'bg-error-9',\n info: 'bg-info-9',\n neutral: 'bg-surface-fg-subtle',\n}\n\ninterface StatusBadgeBaseProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'children' | 'color'> {\n label?: string\n hideDot?: boolean\n size?: VariantProps<typeof statusBadgeVariants>['size']\n onClick?: () => void\n icon?: React.ReactNode\n}\n\ninterface StatusBadgeWithStatus extends StatusBadgeBaseProps {\n status?: VariantProps<typeof statusBadgeVariants>['status']\n color?: never\n}\n\ninterface StatusBadgeWithColor extends StatusBadgeBaseProps {\n status?: never\n color: 'success' | 'warning' | 'error' | 'info' | 'neutral'\n}\n\nexport type StatusBadgeProps = StatusBadgeWithStatus | StatusBadgeWithColor\n\n/* Between durations.moderate02 (0.24) and durations.slow01 (0.4) — intentional for smooth morph */\nconst statusMorphTransition = { duration: 0.3, ease: 'easeOut' as const }\n\nconst StatusBadge = React.forwardRef<HTMLSpanElement, StatusBadgeProps>(\n ({ status, color, size, label, hideDot = false, onClick, icon, className, ...props }, ref) => {\n const isClickable = onClick != null\n const Tag = isClickable ? motion.button : motion.span\n const clickableClasses = isClickable ? 'cursor-pointer hover:opacity-80 transition-opacity' : undefined\n\n const trailingIcon = icon != null\n ? icon\n : isClickable\n ? <Icon icon={IconChevronDown} size=\"xs\" className=\"text-current/50 -mr-0.5 shrink-0\" />\n : null\n\n if (color != null) {\n // Color branch — color is the styling key\n const displayLabel = label ?? (color.charAt(0).toUpperCase() + color.slice(1))\n const dotColor = colorDotMap[color]\n\n return (\n <AnimatePresence mode=\"wait\">\n <Tag\n key={color}\n ref={ref as any}\n {...(isClickable ? { type: 'button' as const, onClick } : {})}\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={cn(\n statusBadgeVariants({ color, size }),\n clickableClasses,\n className,\n )}\n {...motionProps(props)}\n >\n {!hideDot && (\n <span\n className={cn(\n 'shrink-0 rounded-ds-full',\n size === 'sm' ? 'h-ds-02b w-ds-02b' : 'h-[8px] w-[8px]',\n dotColor,\n )}\n aria-hidden=\"true\"\n />\n )}\n {displayLabel}\n {trailingIcon}\n </Tag>\n </AnimatePresence>\n )\n }\n\n // Status branch — derive styling from status (default: 'pending')\n const statusKey = status ?? 'pending'\n const displayLabel = label ?? (statusKey.charAt(0).toUpperCase() + statusKey.slice(1))\n const dotColor = dotColorMap[statusKey]\n\n return (\n <AnimatePresence mode=\"wait\">\n <Tag\n key={statusKey}\n ref={ref as any}\n {...(isClickable ? { type: 'button' as const, onClick } : {})}\n initial={{ opacity: 0.6 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0.6 }}\n transition={statusMorphTransition}\n className={cn(\n statusBadgeVariants({ status: statusKey, size }),\n clickableClasses,\n className,\n )}\n {...motionProps(props)}\n >\n {!hideDot && (\n <span\n className={cn(\n 'shrink-0 rounded-ds-full',\n size === 'sm' ? 'h-ds-02b w-ds-02b' : 'h-[8px] w-[8px]',\n dotColor,\n )}\n aria-hidden=\"true\"\n />\n )}\n {displayLabel}\n {trailingIcon}\n </Tag>\n </AnimatePresence>\n )\n },\n)\nStatusBadge.displayName = 'StatusBadge'\n\nexport { StatusBadge, statusBadgeVariants }\n"],"mappings":";;;;;;;;;;AAWA,IAAM,IAAsB,EAC1B,iEACA;CACE,UAAU;EACR,QAAQ;GACN,QAAQ;GACR,SAAS;GACT,UAAU;GACV,UAAU;GACV,WAAW;GACX,SAAS;GACT,eAAe;GACf,QAAQ;GACR,WAAW;GACX,OAAO;GACR;EACD,OAAO;GACL,SAAS;GACT,SAAS;GACT,OAAO;GACP,MAAM;GACN,SAAS;GACV;EACD,MAAM;GACJ,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CACF,EAEK,IAAsC;CAC1C,QAAQ;CACR,SAAS;CACT,UAAU;CACV,UAAU;CACV,WAAW;CACX,SAAS;CACT,eAAe;CACf,QAAQ;CACR,WAAW;CACX,OAAO;CACR,EAEK,IAAsC;CAC1C,SAAS;CACT,SAAS;CACT,OAAO;CACP,MAAM;CACN,SAAS;CACV,EAuBK,IAAwB;CAAE,UAAU;CAAK,MAAM;CAAoB,EAEnE,IAAc,EAAM,YACvB,EAAE,WAAQ,UAAO,SAAM,UAAO,aAAU,IAAO,YAAS,SAAM,cAAW,GAAG,KAAS,MAAQ;CAC5F,IAAM,IAAc,KAAW,MACzB,IAAM,IAAc,EAAO,SAAS,EAAO,MAC3C,IAAmB,IAAc,uDAAuD,KAAA,GAExF,IAAe,MAEjB,IACE,kBAAC,GAAD;EAAM,MAAM;EAAiB,MAAK;EAAK,WAAU;EAAqC,CAAA,GACtF;AAEN,KAAI,KAAS,MAAM;EAEjB,IAAM,IAAe,KAAU,EAAM,OAAO,EAAE,CAAC,aAAa,GAAG,EAAM,MAAM,EAAE,EACvE,IAAW,EAAY;AAE7B,SACE,kBAAC,GAAD;GAAiB,MAAK;aACpB,kBAAC,GAAD;IAEO;IACL,GAAK,IAAc;KAAE,MAAM;KAAmB;KAAS,GAAG,EAAE;IAC5D,SAAS;KAAE,SAAS;KAAK,OAAO;KAAM;IACtC,SAAS;KAAE,SAAS;KAAG,OAAO;KAAG;IACjC,MAAM;KAAE,SAAS;KAAK,OAAO;KAAM;IACnC,YAAY;IACZ,WAAW,EACT,EAAoB;KAAE;KAAO;KAAM,CAAC,EACpC,GACA,EACD;IACD,GAAI,EAAY,EAAM;cAbxB;KAeG,CAAC,KACA,kBAAC,QAAD;MACE,WAAW,EACT,4BACA,MAAS,OAAO,sBAAsB,mBACtC,EACD;MACD,eAAY;MACZ,CAAA;KAEH;KACA;KACG;MA1BC,EA0BD;GACU,CAAA;;CAKtB,IAAM,IAAY,KAAU,WACtB,IAAe,KAAU,EAAU,OAAO,EAAE,CAAC,aAAa,GAAG,EAAU,MAAM,EAAE,EAC/E,IAAW,EAAY;AAE7B,QACE,kBAAC,GAAD;EAAiB,MAAK;YACpB,kBAAC,GAAD;GAEO;GACL,GAAK,IAAc;IAAE,MAAM;IAAmB;IAAS,GAAG,EAAE;GAC5D,SAAS,EAAE,SAAS,IAAK;GACzB,SAAS,EAAE,SAAS,GAAG;GACvB,MAAM,EAAE,SAAS,IAAK;GACtB,YAAY;GACZ,WAAW,EACT,EAAoB;IAAE,QAAQ;IAAW;IAAM,CAAC,EAChD,GACA,EACD;GACD,GAAI,EAAY,EAAM;aAbxB;IAeG,CAAC,KACA,kBAAC,QAAD;KACE,WAAW,EACT,4BACA,MAAS,OAAO,sBAAsB,mBACtC,EACD;KACD,eAAY;KACZ,CAAA;IAEH;IACA;IACG;KA1BC,EA0BD;EACU,CAAA;EAGvB;AACD,EAAY,cAAc"}
@@ -1,13 +1,8 @@
1
1
  "use client";
2
- import { useColorMode as r } from "./use-color-mode.js";
3
- import { useIsMobile as p } from "./use-mobile.js";
4
- import { useTouchDevice as f } from "./use-touch-device.js";
5
- import { useViewportHeight as u } from "./use-viewport-height.js";
6
- import { toast as i } from "../ui/toast.js";
7
- export {
8
- i as toast,
9
- r as useColorMode,
10
- p as useIsMobile,
11
- f as useTouchDevice,
12
- u as useViewportHeight
13
- };
2
+ import { useIsMobile as e } from "./use-mobile.js";
3
+ import { toast as t } from "../ui/toast.js";
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
+ import "./use-toast.js";
8
+ export { t as toast, n as useColorMode, e as useIsMobile, r as useTouchDevice, i as useViewportHeight };
@@ -1,28 +1,31 @@
1
1
  "use client";
2
- import { useState as d, useCallback as s, useEffect as m } from "react";
3
- function i(t) {
4
- return t === "system" ? typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : t;
2
+ import { useCallback as e, useEffect as t, useState as n } from "react";
3
+ //#region src/hooks/use-color-mode.ts
4
+ function r(e) {
5
+ return e === "system" ? typeof window > "u" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light" : e;
5
6
  }
6
- function u() {
7
- const [t, n] = d(() => {
8
- if (typeof window > "u") return "system";
9
- const e = localStorage.getItem("theme");
10
- return e === "light" || e === "dark" || e === "system" ? e : "system";
11
- }), r = s((e) => {
12
- const o = i(e);
13
- document.documentElement.classList.toggle("dark", o === "dark"), localStorage.setItem("theme", e), document.cookie = `theme=${e};path=/;max-age=31536000;SameSite=Lax`, n(e);
14
- }, []), a = s(() => {
15
- const e = document.documentElement.classList.contains("dark");
16
- r(e ? "light" : "dark");
17
- }, [r]);
18
- return m(() => {
19
- if (t !== "system") return;
20
- const e = window.matchMedia("(prefers-color-scheme: dark)"), o = (c) => {
21
- document.documentElement.classList.toggle("dark", c.matches);
22
- };
23
- return e.addEventListener("change", o), () => e.removeEventListener("change", o);
24
- }, [t]), { colorMode: t, setColorMode: r, toggleColorMode: a };
7
+ function i() {
8
+ let [i, a] = n(() => {
9
+ if (typeof window > "u") return "system";
10
+ let e = localStorage.getItem("theme");
11
+ return e === "light" || e === "dark" || e === "system" ? e : "system";
12
+ }), o = e((e) => {
13
+ let t = r(e);
14
+ document.documentElement.classList.toggle("dark", t === "dark"), localStorage.setItem("theme", e), document.cookie = `theme=${e};path=/;max-age=31536000;SameSite=Lax`, a(e);
15
+ }, []), s = e(() => {
16
+ o(document.documentElement.classList.contains("dark") ? "light" : "dark");
17
+ }, [o]);
18
+ return t(() => {
19
+ if (i !== "system") return;
20
+ let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => {
21
+ document.documentElement.classList.toggle("dark", e.matches);
22
+ };
23
+ return e.addEventListener("change", t), () => e.removeEventListener("change", t);
24
+ }, [i]), {
25
+ colorMode: i,
26
+ setColorMode: o,
27
+ toggleColorMode: s
28
+ };
25
29
  }
26
- export {
27
- u as useColorMode
28
- };
30
+ //#endregion
31
+ export { i as useColorMode };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-color-mode.js","names":[],"sources":["../../src/hooks/use-color-mode.ts"],"sourcesContent":["'use client'\n\nimport { useState, useCallback, useEffect } from 'react'\n\nexport type ColorMode = 'light' | 'dark' | 'system'\n\nfunction resolveMode(mode: ColorMode): 'light' | 'dark' {\n if (mode === 'system') {\n if (typeof window === 'undefined') return 'light'\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light'\n }\n return mode\n}\n\nexport function useColorMode() {\n const [mode, setModeState] = useState<ColorMode>(() => {\n if (typeof window === 'undefined') return 'system'\n const stored = localStorage.getItem('theme')\n return stored === 'light' || stored === 'dark' || stored === 'system' ? stored : 'system'\n })\n\n const setColorMode = useCallback((newMode: ColorMode) => {\n const resolved = resolveMode(newMode)\n document.documentElement.classList.toggle('dark', resolved === 'dark')\n localStorage.setItem('theme', newMode)\n document.cookie = `theme=${newMode};path=/;max-age=31536000;SameSite=Lax`\n setModeState(newMode)\n }, [])\n\n const toggleColorMode = useCallback(() => {\n const isDark = document.documentElement.classList.contains('dark')\n setColorMode(isDark ? 'light' : 'dark')\n }, [setColorMode])\n\n useEffect(() => {\n if (mode !== 'system') return\n const mq = window.matchMedia('(prefers-color-scheme: dark)')\n const handler = (e: MediaQueryListEvent) => {\n document.documentElement.classList.toggle('dark', e.matches)\n }\n mq.addEventListener('change', handler)\n return () => mq.removeEventListener('change', handler)\n }, [mode])\n\n return { colorMode: mode, setColorMode, toggleColorMode } as const\n}\n"],"mappings":";;;AAMA,SAAS,EAAY,GAAmC;AAOtD,QANI,MAAS,WACP,OAAO,SAAW,MAAoB,UACnC,OAAO,WAAW,+BAA+B,CAAC,UACrD,SACA,UAEC;;AAGT,SAAgB,IAAe;CAC7B,IAAM,CAAC,GAAM,KAAgB,QAA0B;AACrD,MAAI,OAAO,SAAW,IAAa,QAAO;EAC1C,IAAM,IAAS,aAAa,QAAQ,QAAQ;AAC5C,SAAO,MAAW,WAAW,MAAW,UAAU,MAAW,WAAW,IAAS;GACjF,EAEI,IAAe,GAAa,MAAuB;EACvD,IAAM,IAAW,EAAY,EAAQ;AAIrC,EAHA,SAAS,gBAAgB,UAAU,OAAO,QAAQ,MAAa,OAAO,EACtE,aAAa,QAAQ,SAAS,EAAQ,EACtC,SAAS,SAAS,SAAS,EAAQ,wCACnC,EAAa,EAAQ;IACpB,EAAE,CAAC,EAEA,IAAkB,QAAkB;AAExC,IADe,SAAS,gBAAgB,UAAU,SAAS,OAAO,GAC5C,UAAU,OAAO;IACtC,CAAC,EAAa,CAAC;AAYlB,QAVA,QAAgB;AACd,MAAI,MAAS,SAAU;EACvB,IAAM,IAAK,OAAO,WAAW,+BAA+B,EACtD,KAAW,MAA2B;AAC1C,YAAS,gBAAgB,UAAU,OAAO,QAAQ,EAAE,QAAQ;;AAG9D,SADA,EAAG,iBAAiB,UAAU,EAAQ,QACzB,EAAG,oBAAoB,UAAU,EAAQ;IACrD,CAAC,EAAK,CAAC,EAEH;EAAE,WAAW;EAAM;EAAc;EAAiB"}
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import * as o from "react";
3
- const e = 768;
4
- function r() {
5
- const [s, n] = o.useState(void 0);
6
- return o.useEffect(() => {
7
- const t = window.matchMedia(`(max-width: ${e - 1}px)`), i = () => {
8
- n(window.innerWidth < e);
9
- };
10
- return t.addEventListener("change", i), n(window.innerWidth < e), () => t.removeEventListener("change", i);
11
- }, []), !!s;
2
+ import * as e from "react";
3
+ //#region src/hooks/use-mobile.ts
4
+ var t = 768;
5
+ function n() {
6
+ let [n, r] = e.useState(void 0);
7
+ return e.useEffect(() => {
8
+ let e = window.matchMedia(`(max-width: ${t - 1}px)`), n = () => {
9
+ r(window.innerWidth < t);
10
+ };
11
+ return e.addEventListener("change", n), r(window.innerWidth < t), () => e.removeEventListener("change", n);
12
+ }, []), !!n;
12
13
  }
13
- export {
14
- r as useIsMobile
15
- };
14
+ //#endregion
15
+ export { n as useIsMobile };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-mobile.js","names":[],"sources":["../../src/hooks/use-mobile.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nconst MOBILE_BREAKPOINT = 768\n\n/**\n * Returns `false` during SSR and before the first client-side effect.\n * If you need to distinguish \"not yet measured\" from \"not mobile\",\n * use the raw state instead.\n */\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener('change', onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener('change', onChange)\n }, [])\n\n return !!isMobile\n}\n"],"mappings":";;;AAIA,IAAM,IAAoB;AAO1B,SAAgB,IAAc;CAC5B,IAAM,CAAC,GAAU,KAAe,EAAM,SAA8B,KAAA,EAAU;AAY9E,QAVA,EAAM,gBAAgB;EACpB,IAAM,IAAM,OAAO,WAAW,eAAe,IAAoB,EAAE,KAAK,EAClE,UAAiB;AACrB,KAAY,OAAO,aAAa,EAAkB;;AAIpD,SAFA,EAAI,iBAAiB,UAAU,EAAS,EACxC,EAAY,OAAO,aAAa,EAAkB,QACrC,EAAI,oBAAoB,UAAU,EAAS;IACvD,EAAE,CAAC,EAEC,CAAC,CAAC"}
@@ -1,5 +1,3 @@
1
1
  "use client";
2
- import { toast as r } from "../ui/toast.js";
3
- export {
4
- r as toast
5
- };
2
+ import { toast as e } from "../ui/toast.js";
3
+ export { e as toast };
@@ -1,13 +1,11 @@
1
1
  "use client";
2
- import * as t from "react";
3
- function s() {
4
- const [o, e] = t.useState(!1);
5
- return t.useEffect(() => {
6
- e(
7
- "ontouchstart" in window || navigator.maxTouchPoints > 0
8
- );
9
- }, []), o;
2
+ import * as e from "react";
3
+ //#region src/hooks/use-touch-device.ts
4
+ function t() {
5
+ let [t, n] = e.useState(!1);
6
+ return e.useEffect(() => {
7
+ n("ontouchstart" in window || navigator.maxTouchPoints > 0);
8
+ }, []), t;
10
9
  }
11
- export {
12
- s as useTouchDevice
13
- };
10
+ //#endregion
11
+ export { t as useTouchDevice };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-touch-device.js","names":[],"sources":["../../src/hooks/use-touch-device.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\n/**\n * Detects whether the device supports touch input.\n *\n * Use `useIsMobile()` for layout decisions (viewport width).\n * Use `useTouchDevice()` for interaction decisions (hover vs touch).\n *\n * SSR-safe: returns false on server.\n * Stable: only checks on mount, doesn't change on resize.\n */\nexport function useTouchDevice(): boolean {\n const [isTouch, setIsTouch] = React.useState(false)\n\n React.useEffect(() => {\n setIsTouch(\n 'ontouchstart' in window || navigator.maxTouchPoints > 0\n )\n }, [])\n\n return isTouch\n}\n"],"mappings":";;;AAaA,SAAgB,IAA0B;CACxC,IAAM,CAAC,GAAS,KAAc,EAAM,SAAS,GAAM;AAQnD,QANA,EAAM,gBAAgB;AACpB,IACE,kBAAkB,UAAU,UAAU,iBAAiB,EACxD;IACA,EAAE,CAAC,EAEC"}
@@ -1,16 +1,16 @@
1
1
  "use client";
2
- import * as i from "react";
3
- function s() {
4
- const [n, r] = i.useState(0);
5
- return i.useEffect(() => {
6
- const e = () => {
7
- r(window.visualViewport?.height ?? window.innerHeight);
8
- };
9
- e();
10
- const t = window.visualViewport;
11
- return t ? (t.addEventListener("resize", e), () => t.removeEventListener("resize", e)) : (window.addEventListener("resize", e), () => window.removeEventListener("resize", e));
12
- }, []), n;
2
+ import * as e from "react";
3
+ //#region src/hooks/use-viewport-height.ts
4
+ function t() {
5
+ let [t, n] = e.useState(0);
6
+ return e.useEffect(() => {
7
+ let e = () => {
8
+ n(window.visualViewport?.height ?? window.innerHeight);
9
+ };
10
+ e();
11
+ let t = window.visualViewport;
12
+ return t ? (t.addEventListener("resize", e), () => t.removeEventListener("resize", e)) : (window.addEventListener("resize", e), () => window.removeEventListener("resize", e));
13
+ }, []), t;
13
14
  }
14
- export {
15
- s as useViewportHeight
16
- };
15
+ //#endregion
16
+ export { t as useViewportHeight };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-viewport-height.js","names":[],"sources":["../../src/hooks/use-viewport-height.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\n/**\n * Returns the current dynamic viewport height in pixels.\n *\n * Unlike CSS `100vh`, this accounts for mobile browser toolbar\n * show/hide and virtual keyboard appearance via the Visual Viewport API.\n *\n * SSR-safe: returns 0 on server (check for 0 to detect SSR).\n */\nexport function useViewportHeight(): number {\n const [height, setHeight] = React.useState(0)\n\n React.useEffect(() => {\n const update = () => {\n setHeight(window.visualViewport?.height ?? window.innerHeight)\n }\n\n update()\n\n const vv = window.visualViewport\n if (vv) {\n vv.addEventListener('resize', update)\n return () => vv.removeEventListener('resize', update)\n } else {\n window.addEventListener('resize', update)\n return () => window.removeEventListener('resize', update)\n }\n }, [])\n\n return height\n}\n"],"mappings":";;;AAYA,SAAgB,IAA4B;CAC1C,IAAM,CAAC,GAAQ,KAAa,EAAM,SAAS,EAAE;AAmB7C,QAjBA,EAAM,gBAAgB;EACpB,IAAM,UAAe;AACnB,KAAU,OAAO,gBAAgB,UAAU,OAAO,YAAY;;AAGhE,KAAQ;EAER,IAAM,IAAK,OAAO;AAMhB,SALE,KACF,EAAG,iBAAiB,UAAU,EAAO,QACxB,EAAG,oBAAoB,UAAU,EAAO,KAErD,OAAO,iBAAiB,UAAU,EAAO,QAC5B,OAAO,oBAAoB,UAAU,EAAO;IAE1D,EAAE,CAAC,EAEC"}
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ export declare function checkMotionProvider(): void;
3
+ //# sourceMappingURL=check-motion-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-motion-provider.d.ts","sourceRoot":"","sources":["../../src/motion/check-motion-provider.ts"],"names":[],"mappings":"AAWA,wBAAgB,mBAAmB,IAAI,IAAI,CAiB1C"}
@@ -1,12 +1,18 @@
1
1
  "use client";
2
- import { M as r, u as t } from "../_chunks/motion-provider.js";
3
- import { motionProps as i, springs as n, stagger as p, tweens as M, withReducedMotion as a } from "../ui/lib/motion.js";
4
- export {
5
- r as MotionProvider,
6
- i as motionProps,
7
- n as springs,
8
- p as stagger,
9
- M as tweens,
10
- t as useMotion,
11
- a as withReducedMotion
12
- };
2
+ import { motionProps as e, springs as t, stagger as n, tweens as r, withReducedMotion as i } from "../ui/lib/motion.js";
3
+ import { n as a, t 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 { o as MotionProvider, e as motionProps, t as springs, n as stagger, r as tweens, a as useMotion, i as withReducedMotion };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/motion/check-motion-provider.ts","../../src/motion/index.ts"],"sourcesContent":["/**\n * Dev-mode hint for missing MotionProvider.\n *\n * If the consumer hasn't wrapped their app in <MotionProvider>, Framer Motion\n * animations still work but reduced-motion preferences won't propagate through\n * MotionConfig. This check emits a one-time console.info in dev mode.\n *\n * Only runs once, only in development, only in the browser.\n */\nlet checked = false\n\nexport function checkMotionProvider(): void {\n if (checked) return\n if (typeof window === 'undefined') return\n\n // Skip in production\n try {\n // @ts-expect-error -- import.meta.env is Vite-specific, not in base TS lib\n if (import.meta.env?.PROD) return\n } catch { /* not in Vite */ }\n\n checked = true\n\n // eslint-disable-next-line no-console\n console.info(\n '[shilp-sutra] Tip: Wrap your app in <MotionProvider> for reduced-motion support ' +\n 'across all shilp-sutra animations. See https://www.npmjs.com/package/@devalok/shilp-sutra',\n )\n}\n","export { MotionProvider, useMotion, type MotionProviderProps } from './motion-provider'\nexport { springs, tweens, stagger, withReducedMotion, motionProps, type SpringPreset, type TweenPreset } from '../ui/lib/motion'\n\nimport { checkMotionProvider } from './check-motion-provider'\ncheckMotionProvider()\n"],"mappings":";;;AASA,IAAI,IAAU;AAEd,SAAgB,IAA4B;AACtC,WACA,SAAO,SAAW,MAGtB;MAAI;AAEyB;UACrB;AAKR,EAHA,IAAU,IAGV,QAAQ,KACN,4KAED;;;;;ACvBH,GAAqB"}