@devalok/shilp-sutra 0.34.1 → 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 (439) hide show
  1. package/LICENSE +21 -21
  2. package/dist/_chunks/badge-group.js +95 -95
  3. package/dist/_chunks/badge-group.js.map +1 -0
  4. package/dist/_chunks/chat.js +7 -2
  5. package/dist/_chunks/chat.js.map +1 -0
  6. package/dist/_chunks/date-picker.js.map +1 -0
  7. package/dist/_chunks/document-preview.js.map +1 -0
  8. package/dist/_chunks/file-preview.js.map +1 -0
  9. package/dist/_chunks/framer.js +62 -62
  10. package/dist/_chunks/framer.js.map +1 -0
  11. package/dist/_chunks/image-preview.js +1 -1
  12. package/dist/_chunks/image-preview.js.map +1 -0
  13. package/dist/_chunks/keybinding.js.map +1 -0
  14. package/dist/_chunks/link-context.js.map +1 -0
  15. package/dist/_chunks/mention-suggestion.js.map +1 -0
  16. package/dist/_chunks/motion-provider.js.map +1 -0
  17. package/dist/_chunks/popover.js +32 -36
  18. package/dist/_chunks/popover.js.map +1 -0
  19. package/dist/_chunks/primitives.js +686 -686
  20. package/dist/_chunks/primitives.js.map +1 -0
  21. package/dist/_chunks/rich-chat-input.js +650 -649
  22. package/dist/_chunks/rich-chat-input.js.map +1 -0
  23. package/dist/_chunks/shared.js.map +1 -0
  24. package/dist/_chunks/sonner.js.map +1 -0
  25. package/dist/_chunks/stat-row.js +158 -158
  26. package/dist/_chunks/stat-row.js.map +1 -0
  27. package/dist/_chunks/tiptap.js +11 -11
  28. package/dist/_chunks/tiptap.js.map +1 -0
  29. package/dist/_chunks/tree-view.js +1 -1
  30. package/dist/_chunks/tree-view.js.map +1 -0
  31. package/dist/_chunks/use-calendar.js.map +1 -0
  32. package/dist/_chunks/vendor-client.js +1 -1
  33. package/dist/_chunks/vendor-client.js.map +1 -0
  34. package/dist/_chunks/vendor-utils.js.map +1 -0
  35. package/dist/ai/ai-command-provider.js.map +1 -0
  36. package/dist/ai/block-renderer.js.map +1 -0
  37. package/dist/ai/blocks/loading.d.ts.map +1 -1
  38. package/dist/ai/command-bar.js.map +1 -0
  39. package/dist/ai/conversation.js +76 -76
  40. package/dist/ai/conversation.js.map +1 -0
  41. package/dist/ai/devadoot-icon.d.ts.map +1 -1
  42. package/dist/ai/index.js.map +1 -0
  43. package/dist/composed/activity-feed.js.map +1 -0
  44. package/dist/composed/avatar-group.js +1 -1
  45. package/dist/composed/avatar-group.js.map +1 -0
  46. package/dist/composed/bulk-action-bar.js +13 -21
  47. package/dist/composed/bulk-action-bar.js.map +1 -0
  48. package/dist/composed/command-palette.js.map +1 -0
  49. package/dist/composed/confirm-dialog.js.map +1 -0
  50. package/dist/composed/content-card.js.map +1 -0
  51. package/dist/composed/deadline-indicator.js.map +1 -0
  52. package/dist/composed/emoji-picker.js.map +1 -0
  53. package/dist/composed/empty-state.d.ts.map +1 -1
  54. package/dist/composed/empty-state.js +30 -30
  55. package/dist/composed/empty-state.js.map +1 -0
  56. package/dist/composed/error-boundary.js.map +1 -0
  57. package/dist/composed/filter-bar.js.map +1 -0
  58. package/dist/composed/form-section.js.map +1 -0
  59. package/dist/composed/global-loading.js.map +1 -0
  60. package/dist/composed/inline-edit.js.map +1 -0
  61. package/dist/composed/lib/string-utils.js.map +1 -0
  62. package/dist/composed/loading-skeleton.js.map +1 -0
  63. package/dist/composed/markdown-viewer.js.map +1 -0
  64. package/dist/composed/master-detail.js.map +1 -0
  65. package/dist/composed/member-picker.js.map +1 -0
  66. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  67. package/dist/composed/multi-select-popover.js +4 -0
  68. package/dist/composed/multi-select-popover.js.map +1 -0
  69. package/dist/composed/page-header.js.map +1 -0
  70. package/dist/composed/page-skeletons.js.map +1 -0
  71. package/dist/composed/priority-indicator.js.map +1 -0
  72. package/dist/composed/responsive-overlay.js.map +1 -0
  73. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  74. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  75. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  76. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  77. package/dist/composed/rich-text-editor.js.map +1 -0
  78. package/dist/composed/schedule-view.js.map +1 -0
  79. package/dist/composed/simple-tooltip.js.map +1 -0
  80. package/dist/composed/status-badge.d.ts.map +1 -1
  81. package/dist/composed/status-badge.js.map +1 -0
  82. package/dist/hooks/use-color-mode.js.map +1 -0
  83. package/dist/hooks/use-mobile.js.map +1 -0
  84. package/dist/hooks/use-touch-device.js.map +1 -0
  85. package/dist/hooks/use-viewport-height.js.map +1 -0
  86. package/dist/motion/check-motion-provider.d.ts +3 -0
  87. package/dist/motion/check-motion-provider.d.ts.map +1 -0
  88. package/dist/motion/index.js +14 -0
  89. package/dist/motion/index.js.map +1 -0
  90. package/dist/motion/primitives-index.js.map +1 -0
  91. package/dist/primitives/react-accordion.d.ts +114 -114
  92. package/dist/primitives/react-alert-dialog.d.ts +51 -51
  93. package/dist/primitives/react-aspect-ratio.d.ts +11 -11
  94. package/dist/primitives/react-avatar.d.ts +24 -24
  95. package/dist/primitives/react-checkbox.d.ts +50 -50
  96. package/dist/primitives/react-collapsible.d.ts +33 -33
  97. package/dist/primitives/react-context-menu.d.ts +96 -96
  98. package/dist/primitives/react-dialog.d.ts +103 -103
  99. package/dist/primitives/react-dropdown-menu.d.ts +97 -97
  100. package/dist/primitives/react-hover-card.d.ts +79 -79
  101. package/dist/primitives/react-label.d.ts +10 -10
  102. package/dist/primitives/react-menu.d.ts +169 -169
  103. package/dist/primitives/react-menubar.d.ts +115 -115
  104. package/dist/primitives/react-navigation-menu.d.ts +126 -126
  105. package/dist/primitives/react-popover.d.ts +85 -85
  106. package/dist/primitives/react-progress.d.ts +19 -19
  107. package/dist/primitives/react-radio-group.d.ts +58 -58
  108. package/dist/primitives/react-roving-focus.d.ts +49 -49
  109. package/dist/primitives/react-select.d.ts +137 -137
  110. package/dist/primitives/react-separator.d.ts +21 -21
  111. package/dist/primitives/react-slider.d.ts +75 -75
  112. package/dist/primitives/react-switch.d.ts +21 -21
  113. package/dist/primitives/react-tabs.d.ts +56 -56
  114. package/dist/primitives/react-toast.d.ts +120 -120
  115. package/dist/primitives/react-toggle-group.d.ts +75 -75
  116. package/dist/primitives/react-toggle.d.ts +24 -24
  117. package/dist/primitives/react-tooltip.d.ts +101 -101
  118. package/dist/primitives/react-visually-hidden.d.ts +22 -22
  119. package/dist/shell/app-command-palette.d.ts +2 -0
  120. package/dist/shell/app-command-palette.d.ts.map +1 -1
  121. package/dist/shell/app-command-palette.js +42 -155
  122. package/dist/shell/app-command-palette.js.map +1 -0
  123. package/dist/shell/bottom-navbar.js +1 -1
  124. package/dist/shell/bottom-navbar.js.map +1 -0
  125. package/dist/shell/command-registry.js.map +1 -0
  126. package/dist/shell/notification-center.d.ts.map +1 -1
  127. package/dist/shell/notification-center.js +194 -169
  128. package/dist/shell/notification-center.js.map +1 -0
  129. package/dist/shell/notification-preferences.js.map +1 -0
  130. package/dist/shell/sidebar.js.map +1 -0
  131. package/dist/shell/top-bar.js +1 -1
  132. package/dist/shell/top-bar.js.map +1 -0
  133. package/dist/tailwind/index.cjs +48 -1
  134. package/dist/tailwind/preset.d.ts.map +1 -1
  135. package/dist/tailwind/preset.js +48 -1
  136. package/dist/tailwind/preset.js.map +1 -0
  137. package/dist/tokens/index.css +4 -4
  138. package/dist/tokens/primitives.css +442 -442
  139. package/dist/tokens/semantic.css +742 -547
  140. package/dist/tokens/typography-semantic.css +123 -100
  141. package/dist/tokens/typography.css +422 -422
  142. package/dist/ui/accordion.js +13 -13
  143. package/dist/ui/accordion.js.map +1 -0
  144. package/dist/ui/alert-dialog.d.ts +6 -2
  145. package/dist/ui/alert-dialog.d.ts.map +1 -1
  146. package/dist/ui/alert-dialog.js +43 -42
  147. package/dist/ui/alert-dialog.js.map +1 -0
  148. package/dist/ui/alert.d.ts +3 -2
  149. package/dist/ui/alert.d.ts.map +1 -1
  150. package/dist/ui/alert.js +31 -5
  151. package/dist/ui/alert.js.map +1 -0
  152. package/dist/ui/aspect-ratio.js +1 -1
  153. package/dist/ui/aspect-ratio.js.map +1 -0
  154. package/dist/ui/autocomplete.d.ts.map +1 -1
  155. package/dist/ui/autocomplete.js +92 -67
  156. package/dist/ui/autocomplete.js.map +1 -0
  157. package/dist/ui/avatar.js +9 -9
  158. package/dist/ui/avatar.js.map +1 -0
  159. package/dist/ui/badge-indicator.js.map +1 -0
  160. package/dist/ui/banner.js.map +1 -0
  161. package/dist/ui/breadcrumb.js +1 -1
  162. package/dist/ui/breadcrumb.js.map +1 -0
  163. package/dist/ui/button-group.js.map +1 -0
  164. package/dist/ui/button-processing.d.ts.map +1 -1
  165. package/dist/ui/button-processing.js +61 -40
  166. package/dist/ui/button-processing.js.map +1 -0
  167. package/dist/ui/button.js +8 -8
  168. package/dist/ui/button.js.map +1 -0
  169. package/dist/ui/card.js.map +1 -0
  170. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  171. package/dist/ui/charts/chart-container.d.ts +2 -0
  172. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  173. package/dist/ui/charts/index.js +88 -65
  174. package/dist/ui/charts/index.js.map +1 -0
  175. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  176. package/dist/ui/chat/message-input.d.ts.map +1 -1
  177. package/dist/ui/chat/message-list.d.ts +1 -1
  178. package/dist/ui/chat/message-list.d.ts.map +1 -1
  179. package/dist/ui/chat/message.d.ts.map +1 -1
  180. package/dist/ui/chat/system-message.d.ts.map +1 -1
  181. package/dist/ui/checkbox.d.ts.map +1 -1
  182. package/dist/ui/checkbox.js +33 -28
  183. package/dist/ui/checkbox.js.map +1 -0
  184. package/dist/ui/code.js.map +1 -0
  185. package/dist/ui/collapsible.js +1 -1
  186. package/dist/ui/collapsible.js.map +1 -0
  187. package/dist/ui/color-input.d.ts.map +1 -1
  188. package/dist/ui/color-input.js +165 -163
  189. package/dist/ui/color-input.js.map +1 -0
  190. package/dist/ui/color-swatch.js.map +1 -0
  191. package/dist/ui/combobox.d.ts +7 -0
  192. package/dist/ui/combobox.d.ts.map +1 -1
  193. package/dist/ui/combobox.js +147 -113
  194. package/dist/ui/combobox.js.map +1 -0
  195. package/dist/ui/container.js +1 -1
  196. package/dist/ui/container.js.map +1 -0
  197. package/dist/ui/context-menu.js.map +1 -0
  198. package/dist/ui/data-table-body.js.map +1 -0
  199. package/dist/ui/data-table-bulk-actions.js +1 -1
  200. package/dist/ui/data-table-bulk-actions.js.map +1 -0
  201. package/dist/ui/data-table-card.js.map +1 -0
  202. package/dist/ui/data-table-context.js.map +1 -0
  203. package/dist/ui/data-table-header.js.map +1 -0
  204. package/dist/ui/data-table-pagination.js.map +1 -0
  205. package/dist/ui/data-table-toolbar.js.map +1 -0
  206. package/dist/ui/data-table.js +34 -31
  207. package/dist/ui/data-table.js.map +1 -0
  208. package/dist/ui/devalok-grain.js.map +1 -0
  209. package/dist/ui/dialog.js +31 -35
  210. package/dist/ui/dialog.js.map +1 -0
  211. package/dist/ui/dropdown-menu.js.map +1 -0
  212. package/dist/ui/file-upload.js +120 -120
  213. package/dist/ui/file-upload.js.map +1 -0
  214. package/dist/ui/form.d.ts +8 -0
  215. package/dist/ui/form.d.ts.map +1 -1
  216. package/dist/ui/form.js +14 -12
  217. package/dist/ui/form.js.map +1 -0
  218. package/dist/ui/hover-card.js.map +1 -0
  219. package/dist/ui/icon-button.js.map +1 -0
  220. package/dist/ui/icon-context.js.map +1 -0
  221. package/dist/ui/icon-group.js.map +1 -0
  222. package/dist/ui/icon.js.map +1 -0
  223. package/dist/ui/index.d.ts +4 -4
  224. package/dist/ui/index.d.ts.map +1 -1
  225. package/dist/ui/index.js +82 -66
  226. package/dist/ui/index.js.map +1 -0
  227. package/dist/ui/input-otp.d.ts +12 -3
  228. package/dist/ui/input-otp.d.ts.map +1 -1
  229. package/dist/ui/input-otp.js +41 -27
  230. package/dist/ui/input-otp.js.map +1 -0
  231. package/dist/ui/input.d.ts.map +1 -1
  232. package/dist/ui/input.js +16 -15
  233. package/dist/ui/input.js.map +1 -0
  234. package/dist/ui/label.d.ts.map +1 -1
  235. package/dist/ui/label.js +19 -14
  236. package/dist/ui/label.js.map +1 -0
  237. package/dist/ui/lib/check-tokens.d.ts +3 -0
  238. package/dist/ui/lib/check-tokens.d.ts.map +1 -0
  239. package/dist/ui/lib/date-utils.js.map +1 -0
  240. package/dist/ui/lib/motion.d.ts +15 -4
  241. package/dist/ui/lib/motion.d.ts.map +1 -1
  242. package/dist/ui/lib/motion.js +18 -9
  243. package/dist/ui/lib/motion.js.map +1 -0
  244. package/dist/ui/lib/utils.js.map +1 -0
  245. package/dist/ui/link.js +2 -2
  246. package/dist/ui/link.js.map +1 -0
  247. package/dist/ui/menubar.js.map +1 -0
  248. package/dist/ui/navigation-menu.js.map +1 -0
  249. package/dist/ui/number-input.d.ts +16 -1
  250. package/dist/ui/number-input.d.ts.map +1 -1
  251. package/dist/ui/number-input.js +79 -49
  252. package/dist/ui/number-input.js.map +1 -0
  253. package/dist/ui/pagination.js +1 -1
  254. package/dist/ui/pagination.js.map +1 -0
  255. package/dist/ui/progress-ring.d.ts.map +1 -1
  256. package/dist/ui/progress-ring.js.map +1 -0
  257. package/dist/ui/progress.js.map +1 -0
  258. package/dist/ui/radio.d.ts.map +1 -1
  259. package/dist/ui/radio.js +27 -20
  260. package/dist/ui/radio.js.map +1 -0
  261. package/dist/ui/search-input.js.map +1 -0
  262. package/dist/ui/segmented-control.d.ts +1 -1
  263. package/dist/ui/segmented-control.d.ts.map +1 -1
  264. package/dist/ui/segmented-control.js +2 -0
  265. package/dist/ui/segmented-control.js.map +1 -0
  266. package/dist/ui/select.d.ts.map +1 -1
  267. package/dist/ui/select.js +54 -48
  268. package/dist/ui/select.js.map +1 -0
  269. package/dist/ui/separator.d.ts.map +1 -1
  270. package/dist/ui/separator.js +10 -7
  271. package/dist/ui/separator.js.map +1 -0
  272. package/dist/ui/sheet.js +29 -29
  273. package/dist/ui/sheet.js.map +1 -0
  274. package/dist/ui/sidebar.js +7 -7
  275. package/dist/ui/sidebar.js.map +1 -0
  276. package/dist/ui/skeleton.js.map +1 -0
  277. package/dist/ui/slider.d.ts +22 -3
  278. package/dist/ui/slider.d.ts.map +1 -1
  279. package/dist/ui/slider.js +57 -19
  280. package/dist/ui/slider.js.map +1 -0
  281. package/dist/ui/spinner.js.map +1 -0
  282. package/dist/ui/split-button.d.ts.map +1 -1
  283. package/dist/ui/split-button.js +77 -76
  284. package/dist/ui/split-button.js.map +1 -0
  285. package/dist/ui/stack.js.map +1 -0
  286. package/dist/ui/stat-card.js.map +1 -0
  287. package/dist/ui/status-dot.js.map +1 -0
  288. package/dist/ui/stepper.d.ts +10 -0
  289. package/dist/ui/stepper.d.ts.map +1 -1
  290. package/dist/ui/stepper.js +80 -75
  291. package/dist/ui/stepper.js.map +1 -0
  292. package/dist/ui/switch.d.ts.map +1 -1
  293. package/dist/ui/switch.js +26 -22
  294. package/dist/ui/switch.js.map +1 -0
  295. package/dist/ui/table.js.map +1 -0
  296. package/dist/ui/tabs.d.ts +3 -1
  297. package/dist/ui/tabs.d.ts.map +1 -1
  298. package/dist/ui/tabs.js +68 -48
  299. package/dist/ui/tabs.js.map +1 -0
  300. package/dist/ui/text.d.ts +1 -1
  301. package/dist/ui/text.d.ts.map +1 -1
  302. package/dist/ui/text.js +10 -2
  303. package/dist/ui/text.js.map +1 -0
  304. package/dist/ui/textarea.js +1 -1
  305. package/dist/ui/textarea.js.map +1 -0
  306. package/dist/ui/toast-registry.d.ts +8 -0
  307. package/dist/ui/toast-registry.d.ts.map +1 -0
  308. package/dist/ui/toast-registry.js +13 -0
  309. package/dist/ui/toast-registry.js.map +1 -0
  310. package/dist/ui/toast.d.ts.map +1 -1
  311. package/dist/ui/toast.js +141 -136
  312. package/dist/ui/toast.js.map +1 -0
  313. package/dist/ui/toaster.d.ts.map +1 -1
  314. package/dist/ui/toaster.js +15 -14
  315. package/dist/ui/toaster.js.map +1 -0
  316. package/dist/ui/toggle-group.d.ts +2 -0
  317. package/dist/ui/toggle-group.d.ts.map +1 -1
  318. package/dist/ui/toggle-group.js +23 -16
  319. package/dist/ui/toggle-group.js.map +1 -0
  320. package/dist/ui/toggle.d.ts +2 -0
  321. package/dist/ui/toggle.d.ts.map +1 -1
  322. package/dist/ui/toggle.js +14 -6
  323. package/dist/ui/toggle.js.map +1 -0
  324. package/dist/ui/tooltip.js.map +1 -0
  325. package/dist/ui/visually-hidden.js.map +1 -0
  326. package/docs/components/_header.md +85 -85
  327. package/docs/components/composed/activity-feed.md +62 -62
  328. package/docs/components/composed/avatar-group.md +65 -65
  329. package/docs/components/composed/bulk-action-bar.md +40 -40
  330. package/docs/components/composed/command-palette.md +40 -40
  331. package/docs/components/composed/confirm-dialog.md +46 -46
  332. package/docs/components/composed/content-card.md +36 -36
  333. package/docs/components/composed/date-picker.md +130 -130
  334. package/docs/components/composed/deadline-indicator.md +27 -27
  335. package/docs/components/composed/emoji-picker.md +52 -52
  336. package/docs/components/composed/empty-state.md +53 -53
  337. package/docs/components/composed/error-boundary.md +29 -29
  338. package/docs/components/composed/file-preview.md +40 -40
  339. package/docs/components/composed/filter-bar.md +57 -57
  340. package/docs/components/composed/form-section.md +31 -31
  341. package/docs/components/composed/global-loading.md +27 -27
  342. package/docs/components/composed/inline-edit.md +35 -35
  343. package/docs/components/composed/loading-skeleton.md +51 -51
  344. package/docs/components/composed/markdown-viewer.md +27 -27
  345. package/docs/components/composed/master-detail.md +48 -48
  346. package/docs/components/composed/member-picker.md +35 -35
  347. package/docs/components/composed/multi-select-popover.md +62 -62
  348. package/docs/components/composed/page-header.md +41 -41
  349. package/docs/components/composed/page-skeletons.md +32 -32
  350. package/docs/components/composed/priority-indicator.md +32 -32
  351. package/docs/components/composed/responsive-overlay.md +34 -34
  352. package/docs/components/composed/rich-text-editor.md +82 -82
  353. package/docs/components/composed/schedule-view.md +39 -39
  354. package/docs/components/composed/simple-tooltip.md +33 -33
  355. package/docs/components/composed/status-badge.md +55 -55
  356. package/docs/components/shell/app-command-palette.md +44 -44
  357. package/docs/components/shell/bottom-navbar.md +52 -52
  358. package/docs/components/shell/command-registry.md +48 -48
  359. package/docs/components/shell/link-context.md +41 -41
  360. package/docs/components/shell/notification-center.md +63 -63
  361. package/docs/components/shell/notification-preferences.md +42 -42
  362. package/docs/components/shell/sidebar.md +92 -92
  363. package/docs/components/shell/top-bar.md +143 -143
  364. package/docs/components/ui/accordion.md +51 -51
  365. package/docs/components/ui/alert-dialog.md +61 -61
  366. package/docs/components/ui/alert.md +46 -46
  367. package/docs/components/ui/aspect-ratio.md +25 -25
  368. package/docs/components/ui/autocomplete.md +48 -48
  369. package/docs/components/ui/avatar.md +56 -56
  370. package/docs/components/ui/badge.md +83 -82
  371. package/docs/components/ui/banner.md +42 -42
  372. package/docs/components/ui/breadcrumb.md +37 -37
  373. package/docs/components/ui/button-group.md +41 -41
  374. package/docs/components/ui/button.md +94 -93
  375. package/docs/components/ui/card.md +52 -52
  376. package/docs/components/ui/charts.md +43 -43
  377. package/docs/components/ui/checkbox.md +36 -36
  378. package/docs/components/ui/chip.md +47 -47
  379. package/docs/components/ui/code.md +28 -28
  380. package/docs/components/ui/collapsible.md +40 -40
  381. package/docs/components/ui/color-input.md +91 -91
  382. package/docs/components/ui/color-swatch.md +25 -25
  383. package/docs/components/ui/combobox.md +54 -54
  384. package/docs/components/ui/container.md +26 -26
  385. package/docs/components/ui/context-menu.md +43 -43
  386. package/docs/components/ui/data-table-body.md +1 -1
  387. package/docs/components/ui/data-table-bulk-actions.md +1 -1
  388. package/docs/components/ui/data-table-card.md +1 -1
  389. package/docs/components/ui/data-table-context.md +1 -1
  390. package/docs/components/ui/data-table-header.md +1 -1
  391. package/docs/components/ui/data-table-pagination.md +1 -1
  392. package/docs/components/ui/data-table-toolbar.md +44 -44
  393. package/docs/components/ui/data-table.md +94 -94
  394. package/docs/components/ui/dialog.md +54 -54
  395. package/docs/components/ui/dropdown-menu.md +48 -48
  396. package/docs/components/ui/file-upload.md +41 -41
  397. package/docs/components/ui/form.md +51 -51
  398. package/docs/components/ui/hover-card.md +32 -32
  399. package/docs/components/ui/icon-button.md +40 -40
  400. package/docs/components/ui/input-otp.md +44 -44
  401. package/docs/components/ui/input.md +74 -74
  402. package/docs/components/ui/label.md +25 -25
  403. package/docs/components/ui/link.md +29 -29
  404. package/docs/components/ui/menubar.md +44 -44
  405. package/docs/components/ui/navigation-menu.md +46 -46
  406. package/docs/components/ui/number-input.md +44 -44
  407. package/docs/components/ui/pagination.md +48 -48
  408. package/docs/components/ui/popover.md +30 -30
  409. package/docs/components/ui/progress-ring.md +41 -41
  410. package/docs/components/ui/progress.md +34 -34
  411. package/docs/components/ui/radio.md +34 -34
  412. package/docs/components/ui/search-input.md +43 -43
  413. package/docs/components/ui/segmented-control.md +50 -50
  414. package/docs/components/ui/select.md +53 -53
  415. package/docs/components/ui/separator.md +32 -32
  416. package/docs/components/ui/sheet.md +47 -47
  417. package/docs/components/ui/sidebar.md +72 -72
  418. package/docs/components/ui/skeleton.md +77 -77
  419. package/docs/components/ui/slider.md +29 -29
  420. package/docs/components/ui/spinner.md +54 -54
  421. package/docs/components/ui/stack.md +39 -39
  422. package/docs/components/ui/stat-card.md +61 -61
  423. package/docs/components/ui/status-dot.md +26 -26
  424. package/docs/components/ui/stepper.md +49 -49
  425. package/docs/components/ui/switch.md +47 -47
  426. package/docs/components/ui/table.md +47 -47
  427. package/docs/components/ui/tabs.md +60 -60
  428. package/docs/components/ui/text.md +37 -37
  429. package/docs/components/ui/textarea.md +39 -39
  430. package/docs/components/ui/toast.md +65 -65
  431. package/docs/components/ui/toaster.md +47 -47
  432. package/docs/components/ui/toggle-group.md +43 -43
  433. package/docs/components/ui/toggle.md +37 -37
  434. package/docs/components/ui/tooltip.md +38 -38
  435. package/docs/components/ui/tree-view.md +65 -65
  436. package/docs/components/ui/visually-hidden.md +21 -21
  437. package/llms-full.txt +5266 -5264
  438. package/llms.txt +624 -580
  439. package/package.json +7 -8
@@ -1,143 +1,143 @@
1
- # TopBar
2
-
3
- - Import: @devalok/shilp-sutra/shell/top-bar
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- ## Overview
8
-
9
- Composition-based application top bar. Uses dot-notation subcomponents for flexible layout.
10
-
11
- ## Subcomponents
12
-
13
- | Component | Purpose |
14
- |-----------|---------|
15
- | `TopBar` | Root — bg-surface-2, border-b, sticky. Auto-switches to grid when Center is present. |
16
- | `TopBar.Left` | Left zone — sidebar trigger, title, breadcrumbs |
17
- | `TopBar.Center` | Optional center zone — search bar, tabs. Triggers 3-column grid layout. |
18
- | `TopBar.Right` | Right zone — action buttons, user menu. Gets ml-auto in flex mode. |
19
- | `TopBar.Section` | Groups items with configurable gap |
20
- | `TopBar.IconButton` | Circular icon button with tooltip (bg-surface-3, hover:bg-surface-4) |
21
- | `TopBar.Title` | Page title heading, hidden on mobile |
22
- | `TopBar.UserMenu` | Avatar dropdown with color mode toggle, profile, logout |
23
-
24
- ## Props
25
-
26
- ### TopBar (root)
27
- children: ReactNode
28
- className?: string
29
-
30
- ### TopBar.Left / TopBar.Center / TopBar.Right
31
- children: ReactNode
32
- className?: string
33
-
34
- ### TopBar.Section
35
- gap?: "tight" | "default" | "loose" (default: "default")
36
- children: ReactNode
37
- className?: string
38
-
39
- Gap values: tight = gap-ds-02, default = gap-ds-04, loose = gap-ds-06
40
-
41
- ### TopBar.IconButton
42
- icon: ReactNode
43
- tooltip: string
44
- ...ButtonHTMLAttributes
45
-
46
- ### TopBar.Title
47
- children: ReactNode
48
- className?: string
49
-
50
- ### TopBar.UserMenu
51
- user: TopBarUser — { name, email?, image? }
52
- onNavigate?: (path: string) => void
53
- onLogout?: () => void
54
- userMenuItems?: UserMenuItem[]
55
- className?: string
56
-
57
- TopBarUser: { name: string, email?: string, image?: string | null }
58
- UserMenuItem: { label: string, icon?: ReactNode, href?: string, onClick?: () => void, separator?: boolean, color?: string, badge?: string | boolean, disabled?: boolean }
59
-
60
- UserMenuItem fields:
61
- - href — navigates via onNavigate callback
62
- - onClick — custom action (takes precedence over href)
63
- - separator — renders a DropdownMenuSeparator before this item
64
- - color — semantic text color (e.g. "error" for text-error)
65
- - badge — string for count badge, true for dot indicator
66
- - disabled — greys out the item
67
-
68
- ## Example
69
-
70
- ### Two-zone (standard)
71
- ```jsx
72
- <TopBar>
73
- <TopBar.Left>
74
- <SidebarTrigger />
75
- <TopBar.Title>Dashboard</TopBar.Title>
76
- </TopBar.Left>
77
- <TopBar.Right>
78
- <TopBar.Section gap="tight">
79
- <TopBar.IconButton icon={<IconSearch />} tooltip="Search (Ctrl+K)" onClick={openSearch} />
80
- <NotificationCenter notifications={notifications} />
81
- <TopBar.IconButton icon={<IconSparkles />} tooltip="AI Chat" onClick={openAI} />
82
- </TopBar.Section>
83
- <TopBar.UserMenu
84
- user={{ name: 'John', email: 'john@example.com' }}
85
- onNavigate={(p) => router.push(p)}
86
- onLogout={handleLogout}
87
- userMenuItems={[
88
- { label: 'Changelog', icon: <IconNews />, href: '/changelog', badge: '3' },
89
- ]}
90
- />
91
- </TopBar.Right>
92
- </TopBar>
93
- ```
94
-
95
- ### Three-zone (centered search bar)
96
- ```jsx
97
- <TopBar>
98
- <TopBar.Left>
99
- <SidebarTrigger />
100
- <TopBar.Title>Dashboard</TopBar.Title>
101
- </TopBar.Left>
102
- <TopBar.Center>
103
- <SearchBarTrigger />
104
- </TopBar.Center>
105
- <TopBar.Right>
106
- <TopBar.Section gap="tight">
107
- <TopBar.IconButton icon={<IconBell />} tooltip="Notifications" onClick={fn} />
108
- </TopBar.Section>
109
- <TopBar.UserMenu user={user} onLogout={logout} />
110
- </TopBar.Right>
111
- </TopBar>
112
- ```
113
-
114
- ## Gotchas
115
- - Without `TopBar.Center`, layout is flex (two-zone). With it, layout switches to CSS grid `1fr auto 1fr` for true centering.
116
- - `TopBar.IconButton` renders any number of action buttons — no artificial limit. Use responsive hiding (`className="hidden md:flex"`) for mobile.
117
- - `TopBar.UserMenu` includes Profile link, color mode toggle, and logout automatically. `userMenuItems` are inserted between Profile and the toggle.
118
- - Requires SidebarProvider wrapper for SidebarTrigger to work.
119
-
120
- ## Changes
121
- ### v0.19.0
122
- - **BREAKING** Rewritten as composition API. Old props-based API removed (`pageTitle`, `onSearchClick`, `onAiChatClick`, `notificationSlot`, `mobileLogo` props).
123
- - **Added** `TopBar.Left`, `TopBar.Center`, `TopBar.Right` zone components
124
- - **Added** `TopBar.Section` with `gap` prop (`tight` | `default` | `loose`)
125
- - **Added** `TopBar.IconButton` — reusable circular icon button with tooltip
126
- - **Added** `TopBar.Title` — responsive page title (hidden on mobile)
127
- - **Added** `TopBar.UserMenu` — extracted user dropdown as standalone subcomponent
128
- - **Added** Auto grid/flex layout detection based on Center zone presence
129
- - **Changed** Background elevated from `bg-surface-1` to `bg-surface-2`
130
-
131
- ### v0.27.2
132
- - **Fixed** UserMenu email truncation — long emails now truncate instead of overflowing the dropdown
133
-
134
- ### v0.7.0
135
- - **Added** `userMenuItems` prop for custom dropdown items
136
-
137
- ### v0.1.1
138
- - **Changed** Decoupled from Next.js via LinkProvider
139
- - **Fixed** Added `aria-label` to search/AI buttons
140
- - **Fixed** Added `type="button"` to search/AI/avatar buttons to prevent form submission
141
-
142
- ### v0.1.0
143
- - **Added** Initial release
1
+ # TopBar
2
+
3
+ - Import: @devalok/shilp-sutra/shell/top-bar
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ ## Overview
8
+
9
+ Composition-based application top bar. Uses dot-notation subcomponents for flexible layout.
10
+
11
+ ## Subcomponents
12
+
13
+ | Component | Purpose |
14
+ |-----------|---------|
15
+ | `TopBar` | Root — bg-surface-2, border-b, sticky. Auto-switches to grid when Center is present. |
16
+ | `TopBar.Left` | Left zone — sidebar trigger, title, breadcrumbs |
17
+ | `TopBar.Center` | Optional center zone — search bar, tabs. Triggers 3-column grid layout. |
18
+ | `TopBar.Right` | Right zone — action buttons, user menu. Gets ml-auto in flex mode. |
19
+ | `TopBar.Section` | Groups items with configurable gap |
20
+ | `TopBar.IconButton` | Circular icon button with tooltip (bg-surface-3, hover:bg-surface-4) |
21
+ | `TopBar.Title` | Page title heading, hidden on mobile |
22
+ | `TopBar.UserMenu` | Avatar dropdown with color mode toggle, profile, logout |
23
+
24
+ ## Props
25
+
26
+ ### TopBar (root)
27
+ children: ReactNode
28
+ className?: string
29
+
30
+ ### TopBar.Left / TopBar.Center / TopBar.Right
31
+ children: ReactNode
32
+ className?: string
33
+
34
+ ### TopBar.Section
35
+ gap?: "tight" | "default" | "loose" (default: "default")
36
+ children: ReactNode
37
+ className?: string
38
+
39
+ Gap values: tight = gap-ds-02, default = gap-ds-04, loose = gap-ds-06
40
+
41
+ ### TopBar.IconButton
42
+ icon: ReactNode
43
+ tooltip: string
44
+ ...ButtonHTMLAttributes
45
+
46
+ ### TopBar.Title
47
+ children: ReactNode
48
+ className?: string
49
+
50
+ ### TopBar.UserMenu
51
+ user: TopBarUser — { name, email?, image? }
52
+ onNavigate?: (path: string) => void
53
+ onLogout?: () => void
54
+ userMenuItems?: UserMenuItem[]
55
+ className?: string
56
+
57
+ TopBarUser: { name: string, email?: string, image?: string | null }
58
+ UserMenuItem: { label: string, icon?: ReactNode, href?: string, onClick?: () => void, separator?: boolean, color?: string, badge?: string | boolean, disabled?: boolean }
59
+
60
+ UserMenuItem fields:
61
+ - href — navigates via onNavigate callback
62
+ - onClick — custom action (takes precedence over href)
63
+ - separator — renders a DropdownMenuSeparator before this item
64
+ - color — semantic text color (e.g. "error" for text-error)
65
+ - badge — string for count badge, true for dot indicator
66
+ - disabled — greys out the item
67
+
68
+ ## Example
69
+
70
+ ### Two-zone (standard)
71
+ ```jsx
72
+ <TopBar>
73
+ <TopBar.Left>
74
+ <SidebarTrigger />
75
+ <TopBar.Title>Dashboard</TopBar.Title>
76
+ </TopBar.Left>
77
+ <TopBar.Right>
78
+ <TopBar.Section gap="tight">
79
+ <TopBar.IconButton icon={<IconSearch />} tooltip="Search (Ctrl+K)" onClick={openSearch} />
80
+ <NotificationCenter notifications={notifications} />
81
+ <TopBar.IconButton icon={<IconSparkles />} tooltip="AI Chat" onClick={openAI} />
82
+ </TopBar.Section>
83
+ <TopBar.UserMenu
84
+ user={{ name: 'John', email: 'john@example.com' }}
85
+ onNavigate={(p) => router.push(p)}
86
+ onLogout={handleLogout}
87
+ userMenuItems={[
88
+ { label: 'Changelog', icon: <IconNews />, href: '/changelog', badge: '3' },
89
+ ]}
90
+ />
91
+ </TopBar.Right>
92
+ </TopBar>
93
+ ```
94
+
95
+ ### Three-zone (centered search bar)
96
+ ```jsx
97
+ <TopBar>
98
+ <TopBar.Left>
99
+ <SidebarTrigger />
100
+ <TopBar.Title>Dashboard</TopBar.Title>
101
+ </TopBar.Left>
102
+ <TopBar.Center>
103
+ <SearchBarTrigger />
104
+ </TopBar.Center>
105
+ <TopBar.Right>
106
+ <TopBar.Section gap="tight">
107
+ <TopBar.IconButton icon={<IconBell />} tooltip="Notifications" onClick={fn} />
108
+ </TopBar.Section>
109
+ <TopBar.UserMenu user={user} onLogout={logout} />
110
+ </TopBar.Right>
111
+ </TopBar>
112
+ ```
113
+
114
+ ## Gotchas
115
+ - Without `TopBar.Center`, layout is flex (two-zone). With it, layout switches to CSS grid `1fr auto 1fr` for true centering.
116
+ - `TopBar.IconButton` renders any number of action buttons — no artificial limit. Use responsive hiding (`className="hidden md:flex"`) for mobile.
117
+ - `TopBar.UserMenu` includes Profile link, color mode toggle, and logout automatically. `userMenuItems` are inserted between Profile and the toggle.
118
+ - Requires SidebarProvider wrapper for SidebarTrigger to work.
119
+
120
+ ## Changes
121
+ ### v0.19.0
122
+ - **BREAKING** Rewritten as composition API. Old props-based API removed (`pageTitle`, `onSearchClick`, `onAiChatClick`, `notificationSlot`, `mobileLogo` props).
123
+ - **Added** `TopBar.Left`, `TopBar.Center`, `TopBar.Right` zone components
124
+ - **Added** `TopBar.Section` with `gap` prop (`tight` | `default` | `loose`)
125
+ - **Added** `TopBar.IconButton` — reusable circular icon button with tooltip
126
+ - **Added** `TopBar.Title` — responsive page title (hidden on mobile)
127
+ - **Added** `TopBar.UserMenu` — extracted user dropdown as standalone subcomponent
128
+ - **Added** Auto grid/flex layout detection based on Center zone presence
129
+ - **Changed** Background elevated from `bg-surface-1` to `bg-surface-2`
130
+
131
+ ### v0.27.2
132
+ - **Fixed** UserMenu email truncation — long emails now truncate instead of overflowing the dropdown
133
+
134
+ ### v0.7.0
135
+ - **Added** `userMenuItems` prop for custom dropdown items
136
+
137
+ ### v0.1.1
138
+ - **Changed** Decoupled from Next.js via LinkProvider
139
+ - **Fixed** Added `aria-label` to search/AI buttons
140
+ - **Fixed** Added `type="button"` to search/AI/avatar buttons to prevent form submission
141
+
142
+ ### v0.1.0
143
+ - **Added** Initial release
@@ -1,51 +1,51 @@
1
- # Accordion
2
-
3
- - Import: @devalok/shilp-sutra/ui/accordion
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- type: "single" | "multiple" (REQUIRED)
9
- defaultValue: string (single) | string[] (multiple)
10
- value: string | string[] (controlled)
11
- onValueChange: (value) => void
12
- collapsible: boolean (only valid when type="single")
13
-
14
- ## Compound Components
15
- Accordion (root)
16
- AccordionItem (value: string, REQUIRED)
17
- AccordionTrigger (clickable header, chevron auto-renders; chevronPosition: "left" | "right")
18
- AccordionContent (collapsible body)
19
-
20
- ## Defaults
21
- none (type is required); AccordionTrigger: chevronPosition="right"
22
-
23
- ## Example
24
- ```jsx
25
- <Accordion type="single" defaultValue="item-1" collapsible>
26
- <AccordionItem value="item-1">
27
- <AccordionTrigger>Question?</AccordionTrigger>
28
- <AccordionContent>Answer.</AccordionContent>
29
- </AccordionItem>
30
- </Accordion>
31
- ```
32
-
33
- ## Gotchas
34
- - type is REQUIRED — omitting it causes runtime error
35
- - collapsible only works with type="single"
36
-
37
- ## Changes
38
- ### v0.29.0
39
- - **Added** `chevronPosition` prop on AccordionTrigger: `"left"` | `"right"` (default: `"right"`) — controls which side the chevron icon renders
40
-
41
- ### v0.18.0
42
- - **Changed** Accordion content fade animation migrated to Framer Motion (height animation still uses CSS keyframes)
43
-
44
- ### v0.13.0
45
- - **Added** `accordion-down` and `accordion-up` keyframes added to Tailwind preset using Radix CSS custom properties
46
-
47
- ### v0.4.2
48
- - **Added** `AccordionItemProps`, `AccordionTriggerProps`, `AccordionContentProps` type exports
49
-
50
- ### v0.1.0
51
- - **Added** Initial release
1
+ # Accordion
2
+
3
+ - Import: @devalok/shilp-sutra/ui/accordion
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ type: "single" | "multiple" (REQUIRED)
9
+ defaultValue: string (single) | string[] (multiple)
10
+ value: string | string[] (controlled)
11
+ onValueChange: (value) => void
12
+ collapsible: boolean (only valid when type="single")
13
+
14
+ ## Compound Components
15
+ Accordion (root)
16
+ AccordionItem (value: string, REQUIRED)
17
+ AccordionTrigger (clickable header, chevron auto-renders; chevronPosition: "left" | "right")
18
+ AccordionContent (collapsible body)
19
+
20
+ ## Defaults
21
+ none (type is required); AccordionTrigger: chevronPosition="right"
22
+
23
+ ## Example
24
+ ```jsx
25
+ <Accordion type="single" defaultValue="item-1" collapsible>
26
+ <AccordionItem value="item-1">
27
+ <AccordionTrigger>Question?</AccordionTrigger>
28
+ <AccordionContent>Answer.</AccordionContent>
29
+ </AccordionItem>
30
+ </Accordion>
31
+ ```
32
+
33
+ ## Gotchas
34
+ - type is REQUIRED — omitting it causes runtime error
35
+ - collapsible only works with type="single"
36
+
37
+ ## Changes
38
+ ### v0.29.0
39
+ - **Added** `chevronPosition` prop on AccordionTrigger: `"left"` | `"right"` (default: `"right"`) — controls which side the chevron icon renders
40
+
41
+ ### v0.18.0
42
+ - **Changed** Accordion content fade animation migrated to Framer Motion (height animation still uses CSS keyframes)
43
+
44
+ ### v0.13.0
45
+ - **Added** `accordion-down` and `accordion-up` keyframes added to Tailwind preset using Radix CSS custom properties
46
+
47
+ ### v0.4.2
48
+ - **Added** `AccordionItemProps`, `AccordionTriggerProps`, `AccordionContentProps` type exports
49
+
50
+ ### v0.1.0
51
+ - **Added** Initial release
@@ -1,61 +1,61 @@
1
- # AlertDialog
2
-
3
- - Import: @devalok/shilp-sutra/ui/alert-dialog
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- open: boolean (controlled)
9
- onOpenChange: (open: boolean) => void
10
- defaultOpen: boolean
11
-
12
- ## Compound Components
13
- AlertDialog (root)
14
- AlertDialogTrigger
15
- AlertDialogContent
16
- AlertDialogHeader
17
- AlertDialogTitle
18
- AlertDialogDescription
19
- AlertDialogFooter
20
- AlertDialogCancel
21
- AlertDialogAction
22
-
23
- ## Defaults
24
- none
25
-
26
- ## Example
27
- ```jsx
28
- <AlertDialog>
29
- <AlertDialogTrigger asChild>
30
- <Button color="error">Delete</Button>
31
- </AlertDialogTrigger>
32
- <AlertDialogContent>
33
- <AlertDialogHeader>
34
- <AlertDialogTitle>Are you sure?</AlertDialogTitle>
35
- <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>
36
- </AlertDialogHeader>
37
- <AlertDialogFooter>
38
- <AlertDialogCancel>Cancel</AlertDialogCancel>
39
- <AlertDialogAction>Delete</AlertDialogAction>
40
- </AlertDialogFooter>
41
- </AlertDialogContent>
42
- </AlertDialog>
43
- ```
44
-
45
- ## Gotchas
46
- - AlertDialogAction does NOT have color="error" styling — add it yourself via className or wrap a Button
47
-
48
- ## Changes
49
- ### v0.19.1
50
- - **Fixed** AlertDialog not centered after Framer Motion animation completes — same `transform: none` fix as Dialog.
51
-
52
- ### v0.18.0
53
- - **Changed** Overlay animations migrated to Framer Motion (physics-based springs)
54
- - **Added** `AlertDialogContentProps`, `AlertDialogActionProps`, `AlertDialogCancelProps` type exports
55
- - **Fixed** Context provider value wrapped in `useMemo` for performance
56
-
57
- ### v0.4.2
58
- - **Fixed** AlertDialogHeader/Footer now wrapped in `React.forwardRef` (matches Dialog/Sheet pattern)
59
-
60
- ### v0.1.0
61
- - **Added** Initial release
1
+ # AlertDialog
2
+
3
+ - Import: @devalok/shilp-sutra/ui/alert-dialog
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ open: boolean (controlled)
9
+ onOpenChange: (open: boolean) => void
10
+ defaultOpen: boolean
11
+
12
+ ## Compound Components
13
+ AlertDialog (root)
14
+ AlertDialogTrigger
15
+ AlertDialogContent
16
+ AlertDialogHeader
17
+ AlertDialogTitle
18
+ AlertDialogDescription
19
+ AlertDialogFooter
20
+ AlertDialogCancel
21
+ AlertDialogAction
22
+
23
+ ## Defaults
24
+ none
25
+
26
+ ## Example
27
+ ```jsx
28
+ <AlertDialog>
29
+ <AlertDialogTrigger asChild>
30
+ <Button color="error">Delete</Button>
31
+ </AlertDialogTrigger>
32
+ <AlertDialogContent>
33
+ <AlertDialogHeader>
34
+ <AlertDialogTitle>Are you sure?</AlertDialogTitle>
35
+ <AlertDialogDescription>This cannot be undone.</AlertDialogDescription>
36
+ </AlertDialogHeader>
37
+ <AlertDialogFooter>
38
+ <AlertDialogCancel>Cancel</AlertDialogCancel>
39
+ <AlertDialogAction>Delete</AlertDialogAction>
40
+ </AlertDialogFooter>
41
+ </AlertDialogContent>
42
+ </AlertDialog>
43
+ ```
44
+
45
+ ## Gotchas
46
+ - AlertDialogAction does NOT have color="error" styling — add it yourself via className or wrap a Button
47
+
48
+ ## Changes
49
+ ### v0.19.1
50
+ - **Fixed** AlertDialog not centered after Framer Motion animation completes — same `transform: none` fix as Dialog.
51
+
52
+ ### v0.18.0
53
+ - **Changed** Overlay animations migrated to Framer Motion (physics-based springs)
54
+ - **Added** `AlertDialogContentProps`, `AlertDialogActionProps`, `AlertDialogCancelProps` type exports
55
+ - **Fixed** Context provider value wrapped in `useMemo` for performance
56
+
57
+ ### v0.4.2
58
+ - **Fixed** AlertDialogHeader/Footer now wrapped in `React.forwardRef` (matches Dialog/Sheet pattern)
59
+
60
+ ### v0.1.0
61
+ - **Added** Initial release
@@ -1,46 +1,46 @@
1
- # Alert
2
-
3
- - Import: @devalok/shilp-sutra/ui/alert
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- variant: "subtle" | "filled" | "outline"
9
- color: "info" | "success" | "warning" | "error" | "neutral"
10
- title: string (optional)
11
- onDismiss: () => void (optional, shows X button when provided)
12
- children: ReactNode (body text)
13
-
14
- ## Defaults
15
- variant="subtle", color="info"
16
-
17
- ## Example
18
- ```jsx
19
- <Alert color="error" title="Save failed" onDismiss={() => setError(null)}>
20
- Your changes could not be saved.
21
- </Alert>
22
- ```
23
-
24
- ## Gotchas
25
- - NOT a compound component — use title prop, NOT <AlertTitle>
26
- - DO NOT use variant="destructive" — use color="error"
27
- - Renders role="alert" automatically
28
- - Icon is auto-selected by color (info=circle, success=check, warning=triangle, error=alert)
29
-
30
- ## Changes
31
- ### v0.31.0
32
- - **Added** `size` prop: `sm | md | lg`. Default `md` (non-breaking).
33
-
34
- ### v0.18.0
35
- - **Changed** Exit animation migrated to Framer Motion
36
- - **Fixed** `onDismiss` JSDoc documenting it fires after exit animation completes
37
- - **Changed** OKLCH color token migration
38
-
39
- ### v0.3.1
40
- - **Fixed** AlertProps uses `Omit<HTMLAttributes, 'color'>` to resolve TypeScript conflict with CVA `color` variant
41
-
42
- ### v0.3.0
43
- - **Changed** (BREAKING) `variant` prop renamed to `color` for semantic intent
44
-
45
- ### v0.1.0
46
- - **Added** Initial release
1
+ # Alert
2
+
3
+ - Import: @devalok/shilp-sutra/ui/alert
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ variant: "subtle" | "filled" | "outline"
9
+ color: "info" | "success" | "warning" | "error" | "neutral"
10
+ title: string (optional)
11
+ onDismiss: () => void (optional, shows X button when provided)
12
+ children: ReactNode (body text)
13
+
14
+ ## Defaults
15
+ variant="subtle", color="info"
16
+
17
+ ## Example
18
+ ```jsx
19
+ <Alert color="error" title="Save failed" onDismiss={() => setError(null)}>
20
+ Your changes could not be saved.
21
+ </Alert>
22
+ ```
23
+
24
+ ## Gotchas
25
+ - NOT a compound component — use title prop, NOT <AlertTitle>
26
+ - DO NOT use variant="destructive" — use color="error"
27
+ - Renders role="alert" automatically
28
+ - Icon is auto-selected by color (info=circle, success=check, warning=triangle, error=alert)
29
+
30
+ ## Changes
31
+ ### v0.31.0
32
+ - **Added** `size` prop: `sm | md | lg`. Default `md` (non-breaking).
33
+
34
+ ### v0.18.0
35
+ - **Changed** Exit animation migrated to Framer Motion
36
+ - **Fixed** `onDismiss` JSDoc documenting it fires after exit animation completes
37
+ - **Changed** OKLCH color token migration
38
+
39
+ ### v0.3.1
40
+ - **Fixed** AlertProps uses `Omit<HTMLAttributes, 'color'>` to resolve TypeScript conflict with CVA `color` variant
41
+
42
+ ### v0.3.0
43
+ - **Changed** (BREAKING) `variant` prop renamed to `color` for semantic intent
44
+
45
+ ### v0.1.0
46
+ - **Added** Initial release
@@ -1,25 +1,25 @@
1
- # AspectRatio
2
-
3
- - Import: @devalok/shilp-sutra/ui/aspect-ratio
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- ratio: number (e.g. 16/9, 4/3, 1)
9
-
10
- ## Defaults
11
- none
12
-
13
- ## Example
14
- ```jsx
15
- <AspectRatio ratio={16 / 9}>
16
- <img src="/photo.jpg" alt="Photo" className="object-cover w-full h-full" />
17
- </AspectRatio>
18
- ```
19
-
20
- ## Gotchas
21
- - ratio is a number, not a string — use `16/9` not `"16/9"`
22
-
23
- ## Changes
24
- ### v0.1.0
25
- - **Added** Initial release
1
+ # AspectRatio
2
+
3
+ - Import: @devalok/shilp-sutra/ui/aspect-ratio
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ ratio: number (e.g. 16/9, 4/3, 1)
9
+
10
+ ## Defaults
11
+ none
12
+
13
+ ## Example
14
+ ```jsx
15
+ <AspectRatio ratio={16 / 9}>
16
+ <img src="/photo.jpg" alt="Photo" className="object-cover w-full h-full" />
17
+ </AspectRatio>
18
+ ```
19
+
20
+ ## Gotchas
21
+ - ratio is a number, not a string — use `16/9` not `"16/9"`
22
+
23
+ ## Changes
24
+ ### v0.1.0
25
+ - **Added** Initial release