@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,48 +1,48 @@
1
- # Autocomplete
2
-
3
- - Import: @devalok/shilp-sutra/ui/autocomplete
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- options: AutocompleteOption[] (REQUIRED) — { value: string, label: string }
9
- value: AutocompleteOption | null
10
- onValueChange?: (option: AutocompleteOption) => void
11
- placeholder: string
12
- emptyText: string (default: "No options")
13
- disabled: boolean
14
- className: string
15
- id: string
16
-
17
- ## Defaults
18
- emptyText="No options"
19
-
20
- ## Example
21
- ```jsx
22
- <Autocomplete
23
- options={[{ value: 'mumbai', label: 'Mumbai' }]}
24
- value={selectedCity}
25
- onValueChange={setSelectedCity}
26
- placeholder="Search cities..."
27
- />
28
- ```
29
-
30
- ## Gotchas
31
- - Allows free-text input (no forced selection) — use Combobox for forced selection
32
- - value is an object { value, label }, NOT just a string
33
-
34
- ## Changes
35
- ### v0.18.0
36
- - **Fixed** Added `useEffect` to sync query when external value changes
37
-
38
- ### v0.14.0
39
- - **Changed** z-index promoted from `z-dropdown` (1000) to `z-popover` (1400) — fixes dropdown rendering behind Sheet/Dialog overlays
40
-
41
- ### v0.3.0
42
- - **Changed** (BREAKING) `onChange` renamed to `onValueChange`
43
-
44
- ### v0.1.1
45
- - **Fixed** `focus:ring` changed to `focus-visible:ring` — focus ring no longer shows on mouse click
46
-
47
- ### v0.1.0
48
- - **Added** Initial release
1
+ # Autocomplete
2
+
3
+ - Import: @devalok/shilp-sutra/ui/autocomplete
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ options: AutocompleteOption[] (REQUIRED) — { value: string, label: string }
9
+ value: AutocompleteOption | null
10
+ onValueChange?: (option: AutocompleteOption) => void
11
+ placeholder: string
12
+ emptyText: string (default: "No options")
13
+ disabled: boolean
14
+ className: string
15
+ id: string
16
+
17
+ ## Defaults
18
+ emptyText="No options"
19
+
20
+ ## Example
21
+ ```jsx
22
+ <Autocomplete
23
+ options={[{ value: 'mumbai', label: 'Mumbai' }]}
24
+ value={selectedCity}
25
+ onValueChange={setSelectedCity}
26
+ placeholder="Search cities..."
27
+ />
28
+ ```
29
+
30
+ ## Gotchas
31
+ - Allows free-text input (no forced selection) — use Combobox for forced selection
32
+ - value is an object { value, label }, NOT just a string
33
+
34
+ ## Changes
35
+ ### v0.18.0
36
+ - **Fixed** Added `useEffect` to sync query when external value changes
37
+
38
+ ### v0.14.0
39
+ - **Changed** z-index promoted from `z-dropdown` (1000) to `z-popover` (1400) — fixes dropdown rendering behind Sheet/Dialog overlays
40
+
41
+ ### v0.3.0
42
+ - **Changed** (BREAKING) `onChange` renamed to `onValueChange`
43
+
44
+ ### v0.1.1
45
+ - **Fixed** `focus:ring` changed to `focus-visible:ring` — focus ring no longer shows on mouse click
46
+
47
+ ### v0.1.0
48
+ - **Added** Initial release
@@ -1,56 +1,56 @@
1
- # Avatar
2
-
3
- - Import: @devalok/shilp-sutra/ui/avatar
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- size: "xs" | "sm" | "md" | "lg" | "xl"
9
- shape: "circle" | "square" | "rounded"
10
- status: "online" | "offline" | "busy" | "away"
11
- ring: "none" | "lead" | "admin" | "client" (default: "none") — Role ring with semantic colors
12
- badge: number | "dot" | ReactNode — Badge overlay at top-right
13
- loading: boolean (default: false) — Skeleton shimmer state
14
-
15
- ## Compound Components
16
- Avatar (root with size/shape/status/ring/badge/loading)
17
- AvatarImage (src, alt)
18
- AvatarFallback (children = initials text, colorSeed?: string)
19
-
20
- ## AvatarFallback Props
21
- colorSeed: string — Deterministic color seed for consistent background color across renders
22
-
23
- ## Defaults
24
- size="md", shape="circle", ring="none", loading=false
25
-
26
- ## Example
27
- ```jsx
28
- <Avatar size="lg" status="online" ring="lead" badge={3}>
29
- <AvatarImage src={user.photoUrl} alt={user.name} />
30
- <AvatarFallback colorSeed={user.id}>JD</AvatarFallback>
31
- </Avatar>
32
- ```
33
-
34
- ## Gotchas
35
- - Status dot renders with role="img" and aria-label (accessible, not decorative)
36
- - Dot size scales automatically with avatar size
37
- - AvatarFallback font size scales automatically with avatar size (via AvatarSizeContext)
38
- - Ring offset color matches the surface context — ensure it sits on the expected background
39
- - Badge is hidden when value is `0` (falsy); use `"dot"` for presence without a count
40
- - Online status dot pulses with a CSS animation
41
-
42
- ## Changes
43
- ### v0.22.3
44
- - **Fixed** AvatarFallback text now auto-scales with avatar size — xs gets `text-[9px]`, sm `text-ds-xs`, md `text-ds-sm`, lg `text-ds-md`, xl `text-ds-lg`
45
-
46
- ### v0.22.0
47
- - **Fixed** Fallback always rendered `rounded-ds-full` regardless of `shape` prop. Now uses `AvatarShapeContext` to inherit the correct border-radius from `shape="square"` or `shape="rounded"`.
48
-
49
- ### v0.21.0
50
- - **Added** `ring` prop with semantic role colors (`lead`, `admin`, `client`)
51
- - **Added** `badge` prop for numeric, dot, or custom ReactNode overlay at top-right
52
- - **Added** `loading` prop for skeleton shimmer placeholder state
53
- - **Added** `AvatarFallback.colorSeed` for deterministic fallback background colors
54
-
55
- ### v0.1.0
56
- - **Added** Initial release with CVA size variants (xs-xl) and status indicator badge
1
+ # Avatar
2
+
3
+ - Import: @devalok/shilp-sutra/ui/avatar
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ size: "xs" | "sm" | "md" | "lg" | "xl"
9
+ shape: "circle" | "square" | "rounded"
10
+ status: "online" | "offline" | "busy" | "away"
11
+ ring: "none" | "lead" | "admin" | "client" (default: "none") — Role ring with semantic colors
12
+ badge: number | "dot" | ReactNode — Badge overlay at top-right
13
+ loading: boolean (default: false) — Skeleton shimmer state
14
+
15
+ ## Compound Components
16
+ Avatar (root with size/shape/status/ring/badge/loading)
17
+ AvatarImage (src, alt)
18
+ AvatarFallback (children = initials text, colorSeed?: string)
19
+
20
+ ## AvatarFallback Props
21
+ colorSeed: string — Deterministic color seed for consistent background color across renders
22
+
23
+ ## Defaults
24
+ size="md", shape="circle", ring="none", loading=false
25
+
26
+ ## Example
27
+ ```jsx
28
+ <Avatar size="lg" status="online" ring="lead" badge={3}>
29
+ <AvatarImage src={user.photoUrl} alt={user.name} />
30
+ <AvatarFallback colorSeed={user.id}>JD</AvatarFallback>
31
+ </Avatar>
32
+ ```
33
+
34
+ ## Gotchas
35
+ - Status dot renders with role="img" and aria-label (accessible, not decorative)
36
+ - Dot size scales automatically with avatar size
37
+ - AvatarFallback font size scales automatically with avatar size (via AvatarSizeContext)
38
+ - Ring offset color matches the surface context — ensure it sits on the expected background
39
+ - Badge is hidden when value is `0` (falsy); use `"dot"` for presence without a count
40
+ - Online status dot pulses with a CSS animation
41
+
42
+ ## Changes
43
+ ### v0.22.3
44
+ - **Fixed** AvatarFallback text now auto-scales with avatar size — xs gets `text-[9px]`, sm `text-ds-xs`, md `text-ds-sm`, lg `text-ds-md`, xl `text-ds-lg`
45
+
46
+ ### v0.22.0
47
+ - **Fixed** Fallback always rendered `rounded-ds-full` regardless of `shape` prop. Now uses `AvatarShapeContext` to inherit the correct border-radius from `shape="square"` or `shape="rounded"`.
48
+
49
+ ### v0.21.0
50
+ - **Added** `ring` prop with semantic role colors (`lead`, `admin`, `client`)
51
+ - **Added** `badge` prop for numeric, dot, or custom ReactNode overlay at top-right
52
+ - **Added** `loading` prop for skeleton shimmer placeholder state
53
+ - **Added** `AvatarFallback.colorSeed` for deterministic fallback background colors
54
+
55
+ ### v0.1.0
56
+ - **Added** Initial release with CVA size variants (xs-xl) and status indicator badge
@@ -1,82 +1,83 @@
1
- # Badge
2
-
3
- - Import: @devalok/shilp-sutra/ui/badge
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- variant: "subtle" | "solid" | "outline" | "soft"
9
- color: "default" | "accent" | "error" | "success" | "warning" | "info" | "neutral" | "teal" | "amber" | "slate" | "indigo" | "cyan" | "orange" | "emerald" | "custom"
10
- size: "xs" | "sm" | "md" | "lg"
11
- startIcon: ReactElement | null
12
- endIcon: ReactElement | null
13
- dot: boolean (shows animated leading dot indicator)
14
- onClick: () => void (makes badge interactive as button)
15
- selected: boolean (toggle state — shows check icon when true)
16
- disabled: boolean
17
- onDismiss: () => void (shows dismiss X button)
18
- maxWidth: number (enables truncation with title tooltip)
19
- circle: boolean (square aspect-ratio, centered content)
20
- asChild: boolean
21
- children: ReactNode
22
-
23
- ## Compound Components
24
- Badge.Indicator status indicator sub-component
25
- Badge.Grouplayout wrapper for badge collections
26
-
27
- ## Defaults
28
- variant="subtle", color="default", size="md"
29
-
30
- ## Example
31
- ```jsx
32
- <Badge variant="solid" color="success">Active</Badge>
33
- <Badge color="teal" onDismiss={() => removeFilter('teal')}>Teal team</Badge>
34
- <Badge onClick={() => toggle()} selected={isSelected}>Filterable</Badge>
35
- <Badge color="custom" style={{ '--badge-color': '#8b5cf6' }}>Custom</Badge>
36
- ```
37
-
38
- ## Gotchas
39
- - DO NOT use variant="destructive" — use variant="solid" color="error"
40
- - Badge is now interactive when `onClick` is provided (renders as `<button>`)
41
- - When both `onClick` and `onDismiss` are provided, renders as `div[role="button"]` to avoid nested buttons
42
- - Chip is deprecated use Badge with `onClick` for interactive tags
43
- - `color="custom"` requires `--badge-color` CSS variable (and optionally `--badge-fg-color` for solid variant)
44
-
45
- ## Changes
46
- ### v0.31.0
47
- - **Added** `truncate` prop — enables ellipsis truncation without requiring maxWidth
48
-
49
- ### v0.29.0
50
- - **Changed** (BREAKING) v2 rewrite — Badge is now a full interactive component
51
- - **Added** `soft` variant (tinted bg, no border completes the 4-variant set: subtle/solid/outline/soft)
52
- - **Added** `custom` color with CSS variable `--badge-color` (and `--badge-fg-color` for solid)
53
- - **Added** Interactive mode: `onClick` makes Badge a clickable button, `selected` shows animated check icon
54
- - **Added** `disabled` prop with reduced opacity and pointer-events-none
55
- - **Added** `startIcon` / `endIcon` props (auto-sized per badge size)
56
- - **Added** `maxWidth` prop for truncation with title tooltip
57
- - **Added** `circle` prop for square aspect-ratio badges
58
- - **Added** `asChild` prop for Slot composition
59
- - **Added** `Badge.Indicator` and `Badge.Group` compound sub-components
60
- - **Deprecated** Chip component — use Badge with `onClick` instead
61
- - **Changed** Dot animation now uses Framer Motion spring entrance + continuous pulse
62
-
63
- ### v0.18.0
64
- - **Changed** Pulse-ring animation migrated to Framer Motion
65
- - **Fixed** Accent color variants — `text-accent-9` changed to `text-accent-11`, `border-accent-9` changed to `border-accent-7`
66
- - **Changed** OKLCH color token migration
67
-
68
- ### v0.8.0
69
- - **Fixed** `text-[10px]` changed to `text-ds-xs` for token consistency
70
-
71
- ### v0.4.2
72
- - **Fixed** `Omit<HTMLAttributes, 'color'>` resolves TS2320 conflict with CVA color prop
73
-
74
- ### v0.3.1
75
- - **Fixed** Dismiss button added 24px touch target
76
-
77
- ### v0.3.0
78
- - **Changed** (BREAKING) Single `variant` axis split into `variant` (subtle/solid/outline) + `color` (default/info/success/error/...)
79
- - **Fixed** Solid variant phantom token `text-on-interactive` changed to `text-on-color`
80
-
81
- ### v0.1.0
82
- - **Added** Initial release
1
+ # Badge
2
+
3
+ - Import: @devalok/shilp-sutra/ui/badge
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ variant: "subtle" | "solid" | "outline" | "soft"
9
+ color: "default" | "accent" | "error" | "success" | "warning" | "info" | "neutral" | "teal" | "amber" | "slate" | "indigo" | "cyan" | "orange" | "emerald" | "custom"
10
+ size: "xs" | "sm" | "md" | "lg"
11
+ startIcon: ReactElement | null
12
+ endIcon: ReactElement | null
13
+ dot: boolean (shows animated leading dot indicator)
14
+ onClick: () => void (makes badge interactive as button)
15
+ selected: boolean (toggle state — shows check icon when true)
16
+ disabled: boolean
17
+ onDismiss: () => void (shows dismiss X button)
18
+ maxWidth: number (enables truncation with title tooltip)
19
+ truncate: boolean (ellipsis overflow pair with a width/maxWidth; adds title tooltip)
20
+ circle: boolean (square aspect-ratio, centered content)
21
+ asChild: boolean
22
+ children: ReactNode
23
+
24
+ ## Compound Components
25
+ Badge.Indicatorstatus indicator sub-component
26
+ Badge.Group — layout wrapper for badge collections
27
+
28
+ ## Defaults
29
+ variant="subtle", color="default", size="md"
30
+
31
+ ## Example
32
+ ```jsx
33
+ <Badge variant="solid" color="success">Active</Badge>
34
+ <Badge color="teal" onDismiss={() => removeFilter('teal')}>Teal team</Badge>
35
+ <Badge onClick={() => toggle()} selected={isSelected}>Filterable</Badge>
36
+ <Badge color="custom" style={{ '--badge-color': '#8b5cf6' }}>Custom</Badge>
37
+ ```
38
+
39
+ ## Gotchas
40
+ - DO NOT use variant="destructive" use variant="solid" color="error"
41
+ - Badge is now interactive when `onClick` is provided (renders as `<button>`)
42
+ - When both `onClick` and `onDismiss` are provided, renders as `div[role="button"]` to avoid nested buttons
43
+ - Chip is deprecated use Badge with `onClick` for interactive tags
44
+ - `color="custom"` requires `--badge-color` CSS variable (and optionally `--badge-fg-color` for solid variant)
45
+
46
+ ## Changes
47
+ ### v0.31.0
48
+ - **Added** `truncate` prop — enables ellipsis truncation without requiring maxWidth
49
+
50
+ ### v0.29.0
51
+ - **Changed** (BREAKING) v2 rewrite Badge is now a full interactive component
52
+ - **Added** `soft` variant (tinted bg, no border completes the 4-variant set: subtle/solid/outline/soft)
53
+ - **Added** `custom` color with CSS variable `--badge-color` (and `--badge-fg-color` for solid)
54
+ - **Added** Interactive mode: `onClick` makes Badge a clickable button, `selected` shows animated check icon
55
+ - **Added** `disabled` prop with reduced opacity and pointer-events-none
56
+ - **Added** `startIcon` / `endIcon` props (auto-sized per badge size)
57
+ - **Added** `maxWidth` prop for truncation with title tooltip
58
+ - **Added** `circle` prop for square aspect-ratio badges
59
+ - **Added** `asChild` prop for Slot composition
60
+ - **Added** `Badge.Indicator` and `Badge.Group` compound sub-components
61
+ - **Deprecated** Chip component use Badge with `onClick` instead
62
+ - **Changed** Dot animation now uses Framer Motion spring entrance + continuous pulse
63
+
64
+ ### v0.18.0
65
+ - **Changed** Pulse-ring animation migrated to Framer Motion
66
+ - **Fixed** Accent color variants — `text-accent-9` changed to `text-accent-11`, `border-accent-9` changed to `border-accent-7`
67
+ - **Changed** OKLCH color token migration
68
+
69
+ ### v0.8.0
70
+ - **Fixed** `text-[10px]` changed to `text-ds-xs` for token consistency
71
+
72
+ ### v0.4.2
73
+ - **Fixed** `Omit<HTMLAttributes, 'color'>` resolves TS2320 conflict with CVA color prop
74
+
75
+ ### v0.3.1
76
+ - **Fixed** Dismiss button added 24px touch target
77
+
78
+ ### v0.3.0
79
+ - **Changed** (BREAKING) Single `variant` axis split into `variant` (subtle/solid/outline) + `color` (default/info/success/error/...)
80
+ - **Fixed** Solid variant phantom token `text-on-interactive` changed to `text-on-color`
81
+
82
+ ### v0.1.0
83
+ - **Added** Initial release
@@ -1,42 +1,42 @@
1
- # Banner
2
-
3
- - Import: @devalok/shilp-sutra/ui/banner
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- color: "info" | "success" | "warning" | "error" | "neutral"
9
- actions: ReactNode (optional action slot for one or more buttons; wraps on narrow viewports)
10
- action: ReactNode (DEPRECATED — use `actions` instead)
11
- onDismiss: () => void (optional, shows X button)
12
- children: ReactNode (message text)
13
-
14
- ## Defaults
15
- color="info"
16
-
17
- ## Example
18
- ```jsx
19
- <Banner color="warning" onDismiss={() => dismiss()}>
20
- Scheduled maintenance on Sunday.
21
- </Banner>
22
- ```
23
-
24
- ## Gotchas
25
- - Banner is full-width (spans container). Alert is inline.
26
- - Renders role="alert" automatically
27
- - `onDismiss` fires after the exit animation completes, not immediately on dismiss button click
28
-
29
- ## Changes
30
- ### v0.20.0
31
- - **Added** `actions` prop (plural) for multiple action buttons with mobile-friendly flex-wrap
32
- - **Deprecated** `action` prop — use `actions` instead (both still work; `actions` takes priority)
33
- - **Changed** Root layout uses `flex-wrap` and children wrapper uses `min-w-0` for better text truncation
34
-
35
- ### v0.3.1
36
- - **Fixed** BannerProps uses `Omit<HTMLAttributes, 'color'>` to resolve TypeScript conflict with CVA `color` variant
37
-
38
- ### v0.3.0
39
- - **Changed** (BREAKING) `variant` prop renamed to `color` for semantic intent
40
-
41
- ### v0.1.0
42
- - **Added** Initial release
1
+ # Banner
2
+
3
+ - Import: @devalok/shilp-sutra/ui/banner
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ color: "info" | "success" | "warning" | "error" | "neutral"
9
+ actions: ReactNode (optional action slot for one or more buttons; wraps on narrow viewports)
10
+ action: ReactNode (DEPRECATED — use `actions` instead)
11
+ onDismiss: () => void (optional, shows X button)
12
+ children: ReactNode (message text)
13
+
14
+ ## Defaults
15
+ color="info"
16
+
17
+ ## Example
18
+ ```jsx
19
+ <Banner color="warning" onDismiss={() => dismiss()}>
20
+ Scheduled maintenance on Sunday.
21
+ </Banner>
22
+ ```
23
+
24
+ ## Gotchas
25
+ - Banner is full-width (spans container). Alert is inline.
26
+ - Renders role="alert" automatically
27
+ - `onDismiss` fires after the exit animation completes, not immediately on dismiss button click
28
+
29
+ ## Changes
30
+ ### v0.20.0
31
+ - **Added** `actions` prop (plural) for multiple action buttons with mobile-friendly flex-wrap
32
+ - **Deprecated** `action` prop — use `actions` instead (both still work; `actions` takes priority)
33
+ - **Changed** Root layout uses `flex-wrap` and children wrapper uses `min-w-0` for better text truncation
34
+
35
+ ### v0.3.1
36
+ - **Fixed** BannerProps uses `Omit<HTMLAttributes, 'color'>` to resolve TypeScript conflict with CVA `color` variant
37
+
38
+ ### v0.3.0
39
+ - **Changed** (BREAKING) `variant` prop renamed to `color` for semantic intent
40
+
41
+ ### v0.1.0
42
+ - **Added** Initial release
@@ -1,37 +1,37 @@
1
- # Breadcrumb
2
-
3
- - Import: @devalok/shilp-sutra/ui/breadcrumb
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Compound Components
8
- Breadcrumb (root nav)
9
- BreadcrumbList (ol)
10
- BreadcrumbItem (li)
11
- BreadcrumbLink (for clickable items) | BreadcrumbPage (for current page)
12
- BreadcrumbSeparator (auto-rendered or custom)
13
- BreadcrumbEllipsis (for collapsed items)
14
-
15
- ## Defaults
16
- none
17
-
18
- ## Example
19
- ```jsx
20
- <Breadcrumb>
21
- <BreadcrumbList>
22
- <BreadcrumbItem><BreadcrumbLink href="/">Home</BreadcrumbLink></BreadcrumbItem>
23
- <BreadcrumbSeparator />
24
- <BreadcrumbItem><BreadcrumbPage>Settings</BreadcrumbPage></BreadcrumbItem>
25
- </BreadcrumbList>
26
- </Breadcrumb>
27
- ```
28
-
29
- ## Gotchas
30
- - Use BreadcrumbPage for the current (non-clickable) page, BreadcrumbLink for navigable items
31
-
32
- ## Changes
33
- ### v0.18.0
34
- - **Added** `BreadcrumbProps`, `BreadcrumbLinkProps` type exports
35
-
36
- ### v0.1.0
37
- - **Added** Initial release
1
+ # Breadcrumb
2
+
3
+ - Import: @devalok/shilp-sutra/ui/breadcrumb
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Compound Components
8
+ Breadcrumb (root nav)
9
+ BreadcrumbList (ol)
10
+ BreadcrumbItem (li)
11
+ BreadcrumbLink (for clickable items) | BreadcrumbPage (for current page)
12
+ BreadcrumbSeparator (auto-rendered or custom)
13
+ BreadcrumbEllipsis (for collapsed items)
14
+
15
+ ## Defaults
16
+ none
17
+
18
+ ## Example
19
+ ```jsx
20
+ <Breadcrumb>
21
+ <BreadcrumbList>
22
+ <BreadcrumbItem><BreadcrumbLink href="/">Home</BreadcrumbLink></BreadcrumbItem>
23
+ <BreadcrumbSeparator />
24
+ <BreadcrumbItem><BreadcrumbPage>Settings</BreadcrumbPage></BreadcrumbItem>
25
+ </BreadcrumbList>
26
+ </Breadcrumb>
27
+ ```
28
+
29
+ ## Gotchas
30
+ - Use BreadcrumbPage for the current (non-clickable) page, BreadcrumbLink for navigable items
31
+
32
+ ## Changes
33
+ ### v0.18.0
34
+ - **Added** `BreadcrumbProps`, `BreadcrumbLinkProps` type exports
35
+
36
+ ### v0.1.0
37
+ - **Added** Initial release
@@ -1,41 +1,41 @@
1
- # ButtonGroup
2
-
3
- - Import: @devalok/shilp-sutra/ui/button-group
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- variant: ButtonProps['variant'] (propagated to children)
9
- color: ButtonProps['color'] (propagated to children)
10
- size: ButtonProps['size'] (propagated to children)
11
- orientation: "horizontal" | "vertical" (default: "horizontal")
12
-
13
- ## Defaults
14
- orientation="horizontal"
15
-
16
- ## Example
17
- ```jsx
18
- <ButtonGroup variant="outline" size="sm">
19
- <Button>Bold</Button>
20
- <Button>Italic</Button>
21
- </ButtonGroup>
22
- ```
23
-
24
- ## Gotchas
25
- - Children can override variant/size individually
26
-
27
- ## Changes
28
- ### v0.33.0
29
- - **Rebuilt** with compound component pattern — Button reads position from ButtonGroup context and applies border-radius inline
30
- - **Added** `disabled` prop (propagates to all children via context)
31
- - **Added** `attached` prop (default true; false = spaced with gap)
32
- - **Added** `fullWidth` prop (stretch to fill container)
33
- - **Added** Tonal divider elements between buttons for solid/soft/ghost variants
34
- - **Added** Focus z-index isolation (focused button rises above siblings)
35
- - **Fixed** Border-radius not working with custom `rounded-ds-*` design tokens
36
-
37
- ### v0.4.2
38
- - **Fixed** `Omit<HTMLAttributes, 'color'>` resolves TS2320 conflict with CVA color prop
39
-
40
- ### v0.1.0
41
- - **Added** Initial release
1
+ # ButtonGroup
2
+
3
+ - Import: @devalok/shilp-sutra/ui/button-group
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ variant: ButtonProps['variant'] (propagated to children)
9
+ color: ButtonProps['color'] (propagated to children)
10
+ size: ButtonProps['size'] (propagated to children)
11
+ orientation: "horizontal" | "vertical" (default: "horizontal")
12
+
13
+ ## Defaults
14
+ orientation="horizontal"
15
+
16
+ ## Example
17
+ ```jsx
18
+ <ButtonGroup variant="outline" size="sm">
19
+ <Button>Bold</Button>
20
+ <Button>Italic</Button>
21
+ </ButtonGroup>
22
+ ```
23
+
24
+ ## Gotchas
25
+ - Children can override variant/size individually
26
+
27
+ ## Changes
28
+ ### v0.33.0
29
+ - **Rebuilt** with compound component pattern — Button reads position from ButtonGroup context and applies border-radius inline
30
+ - **Added** `disabled` prop (propagates to all children via context)
31
+ - **Added** `attached` prop (default true; false = spaced with gap)
32
+ - **Added** `fullWidth` prop (stretch to fill container)
33
+ - **Added** Tonal divider elements between buttons for solid/soft/ghost variants
34
+ - **Added** Focus z-index isolation (focused button rises above siblings)
35
+ - **Fixed** Border-radius not working with custom `rounded-ds-*` design tokens
36
+
37
+ ### v0.4.2
38
+ - **Fixed** `Omit<HTMLAttributes, 'color'>` resolves TS2320 conflict with CVA color prop
39
+
40
+ ### v0.1.0
41
+ - **Added** Initial release