@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,51 +1,51 @@
1
- # FormField / FormHelperText / useFormField
2
-
3
- - Import: @devalok/shilp-sutra/ui/form
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- ### FormField
9
- state: "helper" | "error" | "warning" | "success" (default: "helper")
10
- helperTextId: string (auto-generated if omitted)
11
- required: boolean
12
-
13
- ### FormHelperText
14
- state: "helper" | "error" | "warning" | "success" (inherits from FormField context)
15
-
16
- ## Types
17
- FormHelperState = 'helper' | 'error' | 'warning' | 'success'
18
-
19
- ## Hook
20
- useFormField() => { state, helperTextId, required }
21
-
22
- ## Defaults
23
- state: "helper"
24
-
25
- ## Example
26
- ```jsx
27
- <FormField state="error">
28
- <Label htmlFor="email">Email</Label>
29
- <Input id="email" state="error" />
30
- <FormHelperText>Please enter a valid email.</FormHelperText>
31
- </FormField>
32
- ```
33
-
34
- ## Gotchas
35
- - getFormFieldA11y() was REMOVED — use useFormField() hook instead
36
- - FormHelperText auto-reads state and id from FormField context
37
- - FormHelperText renders role="alert" when state="error"
38
-
39
- ## Changes
40
- ### v0.18.0
41
- - **Fixed** Wrapped FormField context provider value in `useMemo` for performance
42
-
43
- ### v0.8.0
44
- - **Fixed** Input/Textarea now consume FormField context automatically (`aria-describedby`, `aria-invalid`, `aria-required`)
45
-
46
- ### v0.3.0
47
- - **Added** `useFormField()` hook for automatic aria-describedby wiring
48
- - **Changed** (BREAKING) FormField auto-wires `aria-describedby` via context. `getFormFieldA11y()` removed
49
-
50
- ### v0.1.0
51
- - **Added** Initial release
1
+ # FormField / FormHelperText / useFormField
2
+
3
+ - Import: @devalok/shilp-sutra/ui/form
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ ### FormField
9
+ state: "helper" | "error" | "warning" | "success" (default: "helper")
10
+ helperTextId: string (auto-generated if omitted)
11
+ required: boolean
12
+
13
+ ### FormHelperText
14
+ state: "helper" | "error" | "warning" | "success" (inherits from FormField context)
15
+
16
+ ## Types
17
+ FormHelperState = 'helper' | 'error' | 'warning' | 'success'
18
+
19
+ ## Hook
20
+ useFormField() => { state, helperTextId, required }
21
+
22
+ ## Defaults
23
+ state: "helper"
24
+
25
+ ## Example
26
+ ```jsx
27
+ <FormField state="error">
28
+ <Label htmlFor="email">Email</Label>
29
+ <Input id="email" state="error" />
30
+ <FormHelperText>Please enter a valid email.</FormHelperText>
31
+ </FormField>
32
+ ```
33
+
34
+ ## Gotchas
35
+ - getFormFieldA11y() was REMOVED — use useFormField() hook instead
36
+ - FormHelperText auto-reads state and id from FormField context
37
+ - FormHelperText renders role="alert" when state="error"
38
+
39
+ ## Changes
40
+ ### v0.18.0
41
+ - **Fixed** Wrapped FormField context provider value in `useMemo` for performance
42
+
43
+ ### v0.8.0
44
+ - **Fixed** Input/Textarea now consume FormField context automatically (`aria-describedby`, `aria-invalid`, `aria-required`)
45
+
46
+ ### v0.3.0
47
+ - **Added** `useFormField()` hook for automatic aria-describedby wiring
48
+ - **Changed** (BREAKING) FormField auto-wires `aria-describedby` via context. `getFormFieldA11y()` removed
49
+
50
+ ### v0.1.0
51
+ - **Added** Initial release
@@ -1,32 +1,32 @@
1
- # HoverCard
2
-
3
- - Import: @devalok/shilp-sutra/ui/hover-card
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Compound Components
8
- HoverCard (root)
9
- HoverCardTrigger
10
- HoverCardContent
11
-
12
- ## Example
13
- ```jsx
14
- <HoverCard>
15
- <HoverCardTrigger asChild><span>Hover me</span></HoverCardTrigger>
16
- <HoverCardContent>Preview content</HoverCardContent>
17
- </HoverCard>
18
- ```
19
-
20
- ## Gotchas
21
- - Overlay component — uses Framer Motion for enter/exit animations (v0.18.0)
22
-
23
- ## Changes
24
- ### v0.18.0
25
- - **Changed** Migrated to Framer Motion for enter/exit animations
26
- - **Added** `HoverCardContentProps` type export
27
-
28
- ### v0.14.0
29
- - **Changed** z-index promoted from `z-dropdown` (1000) to `z-popover` (1400) — fixes content rendering behind Sheet/Dialog overlays
30
-
31
- ### v0.1.0
32
- - **Added** Initial release
1
+ # HoverCard
2
+
3
+ - Import: @devalok/shilp-sutra/ui/hover-card
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Compound Components
8
+ HoverCard (root)
9
+ HoverCardTrigger
10
+ HoverCardContent
11
+
12
+ ## Example
13
+ ```jsx
14
+ <HoverCard>
15
+ <HoverCardTrigger asChild><span>Hover me</span></HoverCardTrigger>
16
+ <HoverCardContent>Preview content</HoverCardContent>
17
+ </HoverCard>
18
+ ```
19
+
20
+ ## Gotchas
21
+ - Overlay component — uses Framer Motion for enter/exit animations (v0.18.0)
22
+
23
+ ## Changes
24
+ ### v0.18.0
25
+ - **Changed** Migrated to Framer Motion for enter/exit animations
26
+ - **Added** `HoverCardContentProps` type export
27
+
28
+ ### v0.14.0
29
+ - **Changed** z-index promoted from `z-dropdown` (1000) to `z-popover` (1400) — fixes content rendering behind Sheet/Dialog overlays
30
+
31
+ ### v0.1.0
32
+ - **Added** Initial release
@@ -1,40 +1,40 @@
1
- # IconButton
2
-
3
- - Import: @devalok/shilp-sutra/ui/icon-button
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- icon: ReactElement (REQUIRED — use <Icon icon={...} />)
9
- aria-label: string (REQUIRED — WCAG AA mandatory)
10
- shape: "square" | "circle"
11
- size: "sm" | "md" | "lg"
12
- variant: same as Button (solid, soft, outline, ghost, link)
13
- color: same as Button (accent, error, success, warning, neutral)
14
- loading: boolean
15
- disabled: boolean
16
-
17
- ## Defaults
18
- shape: "square"
19
- size: "md"
20
-
21
- ## Example
22
- ```jsx
23
- <IconButton icon={<Icon icon={IconEdit} />} variant="ghost" aria-label="Edit item" />
24
- <IconButton icon={<Icon icon={IconX} />} shape="circle" variant="ghost" size="sm" aria-label="Close" />
25
- <IconButton icon={<Icon icon={IconTrash} />} variant="solid" color="error" aria-label="Delete" />
26
- ```
27
-
28
- ## Gotchas
29
- - aria-label is enforced by TypeScript — you MUST provide it
30
- - Prefer IconButton over Button with size="icon-*" for icon-only buttons
31
- - `icon` prop should use `<Icon icon={...} />` wrapper (auto-sized via Button's IconProvider)
32
-
33
- ## Changes
34
- ### v0.29.0
35
- - **Changed** `icon` prop now expects `<Icon icon={...} />` wrapper (auto-sized via Button's IconProvider context)
36
- - **Changed** Inherits all new Button v2 colors: `accent`, `error`, `success`, `warning`, `neutral` (was `default`/`error` only)
37
- - **Changed** Inherits Button v2 variants including new `soft` variant
38
-
39
- ### v0.1.0
40
- - **Added** Initial release
1
+ # IconButton
2
+
3
+ - Import: @devalok/shilp-sutra/ui/icon-button
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ icon: ReactElement (REQUIRED — use <Icon icon={...} />)
9
+ aria-label: string (REQUIRED — WCAG AA mandatory)
10
+ shape: "square" | "circle"
11
+ size: "sm" | "md" | "lg"
12
+ variant: same as Button (solid, soft, outline, ghost, link)
13
+ color: same as Button (accent, error, success, warning, neutral)
14
+ loading: boolean
15
+ disabled: boolean
16
+
17
+ ## Defaults
18
+ shape: "square"
19
+ size: "md"
20
+
21
+ ## Example
22
+ ```jsx
23
+ <IconButton icon={<Icon icon={IconEdit} />} variant="ghost" aria-label="Edit item" />
24
+ <IconButton icon={<Icon icon={IconX} />} shape="circle" variant="ghost" size="sm" aria-label="Close" />
25
+ <IconButton icon={<Icon icon={IconTrash} />} variant="solid" color="error" aria-label="Delete" />
26
+ ```
27
+
28
+ ## Gotchas
29
+ - aria-label is enforced by TypeScript — you MUST provide it
30
+ - Prefer IconButton over Button with size="icon-*" for icon-only buttons
31
+ - `icon` prop should use `<Icon icon={...} />` wrapper (auto-sized via Button's IconProvider)
32
+
33
+ ## Changes
34
+ ### v0.29.0
35
+ - **Changed** `icon` prop now expects `<Icon icon={...} />` wrapper (auto-sized via Button's IconProvider context)
36
+ - **Changed** Inherits all new Button v2 colors: `accent`, `error`, `success`, `warning`, `neutral` (was `default`/`error` only)
37
+ - **Changed** Inherits Button v2 variants including new `soft` variant
38
+
39
+ ### v0.1.0
40
+ - **Added** Initial release
@@ -1,44 +1,44 @@
1
- # InputOTP
2
-
3
- - Import: @devalok/shilp-sutra/ui/input-otp
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- Standard input-otp props (maxLength, pattern, etc.)
9
-
10
- ## Compound Components
11
- InputOTP (root)
12
- InputOTPGroup
13
- InputOTPSlot (index: number, REQUIRED)
14
- InputOTPSeparator
15
-
16
- ## Example
17
- ```jsx
18
- <InputOTP maxLength={6}>
19
- <InputOTPGroup>
20
- <InputOTPSlot index={0} />
21
- <InputOTPSlot index={1} />
22
- <InputOTPSlot index={2} />
23
- </InputOTPGroup>
24
- <InputOTPSeparator />
25
- <InputOTPGroup>
26
- <InputOTPSlot index={3} />
27
- <InputOTPSlot index={4} />
28
- <InputOTPSlot index={5} />
29
- </InputOTPGroup>
30
- </InputOTP>
31
- ```
32
-
33
- ## Gotchas
34
- - Each InputOTPSlot requires an `index` prop (0-based)
35
-
36
- ## Changes
37
- ### v0.18.0
38
- - **Added** `InputOTPProps` type export
39
-
40
- ### v0.1.1
41
- - **Fixed** `animate-caret-blink` keyframe added to Tailwind preset — caret animation was silently broken
42
-
43
- ### v0.1.0
44
- - **Added** Initial release
1
+ # InputOTP
2
+
3
+ - Import: @devalok/shilp-sutra/ui/input-otp
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ Standard input-otp props (maxLength, pattern, etc.)
9
+
10
+ ## Compound Components
11
+ InputOTP (root)
12
+ InputOTPGroup
13
+ InputOTPSlot (index: number, REQUIRED)
14
+ InputOTPSeparator
15
+
16
+ ## Example
17
+ ```jsx
18
+ <InputOTP maxLength={6}>
19
+ <InputOTPGroup>
20
+ <InputOTPSlot index={0} />
21
+ <InputOTPSlot index={1} />
22
+ <InputOTPSlot index={2} />
23
+ </InputOTPGroup>
24
+ <InputOTPSeparator />
25
+ <InputOTPGroup>
26
+ <InputOTPSlot index={3} />
27
+ <InputOTPSlot index={4} />
28
+ <InputOTPSlot index={5} />
29
+ </InputOTPGroup>
30
+ </InputOTP>
31
+ ```
32
+
33
+ ## Gotchas
34
+ - Each InputOTPSlot requires an `index` prop (0-based)
35
+
36
+ ## Changes
37
+ ### v0.18.0
38
+ - **Added** `InputOTPProps` type export
39
+
40
+ ### v0.1.1
41
+ - **Fixed** `animate-caret-blink` keyframe added to Tailwind preset — caret animation was silently broken
42
+
43
+ ### v0.1.0
44
+ - **Added** Initial release
@@ -1,74 +1,74 @@
1
- # Input
2
-
3
- - Import: @devalok/shilp-sutra/ui/input
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- size: "xs" | "sm" | "md" | "lg"
9
- state: InputState
10
- startSection: ReactNode (icon or content in the leading slot)
11
- endSection: ReactNode (icon or content in the trailing slot)
12
- startSectionClickable: boolean (enables pointer events on start section)
13
- endSectionClickable: boolean (enables pointer events on end section)
14
- startSectionType: 'icon' | 'label' (section display type — auto-inferred from content)
15
- endSectionType: 'icon' | 'label' (section display type — auto-inferred from content)
16
- wrapperClassName: string (classes for the wrapper div — border, bg, ring)
17
- startIcon: ReactNode (@deprecated — use startSection)
18
- endIcon: ReactNode (@deprecated — use endSection)
19
- (plus all standard HTML input attributes except native "size")
20
-
21
- ## Types
22
- InputState = 'default' | 'error' | 'warning' | 'success'
23
-
24
- ## Defaults
25
- size: "md"
26
-
27
- ## Example
28
- ```jsx
29
- <Input type="email" placeholder="you@example.com" state="error" startSection={<Icon icon={IconMail} />} />
30
- <Input size="xs" placeholder="Quick search" startSection={<Icon icon={IconSearch} />} />
31
- <Input startSection="https://" startSectionType="label" placeholder="example.com" />
32
- <Input endSection=".00" endSectionType="label" startSection={<Icon icon={IconCurrencyDollar} />} placeholder="0" />
33
- ```
34
-
35
- ## Gotchas
36
- - HTML native "size" attribute is excluded — use CSS width instead
37
- - state="error" sets aria-invalid automatically
38
- - Inside FormField: auto-inherits state, aria-describedby, aria-required from context (explicit props override)
39
- - `className` targets the `<input>` element; use `wrapperClassName` for border/bg/ring overrides
40
- - Focus ring is on the wrapper container (focus-within), not the input itself
41
- - Icons in startSection/endSection are auto-sized via IconProvider per input size
42
- - Sections are `pointer-events-none` by default — set `startSectionClickable`/`endSectionClickable` for interactive sections
43
- - Section type is auto-inferred: strings default to `'label'` (tinted bg + border), React elements default to `'icon'` (fixed-width centered). Override with `startSectionType`/`endSectionType`.
44
-
45
- ## Changes
46
- ### v0.29.0
47
- - **Changed** v2 rewrite: container-first architecture with wrapper div holding focus ring
48
- - **Added** `xs` size (28px height)
49
- - **Added** `startSection` / `endSection` props replacing `startIcon` / `endIcon` (deprecated but still work)
50
- - **Added** `startSectionClickable` / `endSectionClickable` props for interactive sections
51
- - **Added** `wrapperClassName` prop for styling the wrapper div (border, bg, ring)
52
- - **Changed** Focus ring now on wrapper via `focus-within` (container-level ring, not input-level)
53
- - **Changed** Icons auto-sized via `IconProvider` context per input size
54
- - **Deprecated** `startIcon` / `endIcon` — use `startSection` / `endSection`
55
- - **Added** `startSectionType` / `endSectionType` props — `'icon'` (fixed-width centered cell) or `'label'` (tinted background with border separator). Auto-inferred from content type (strings → label, React elements → icon).
56
- - **Changed** Sections use flexbox layout for consistent alignment
57
- - **Deprecated** `inputVariants` export — use `inputWrapperVariants` (semantics changed to target wrapper)
58
-
59
- ### v0.15.0
60
- - **Changed** `lg` size font changed from `text-ds-lg` (18px) to `text-ds-md` (14px) — all input sizes now use 14px for consistency
61
- - **Changed** `md` size font standardized to `text-ds-md` (14px) from mixed values
62
-
63
- ### v0.12.0
64
- - **Changed** Softer resting border (`border-border-subtle` instead of `border-border`), subtler focus ring (`ring-1 ring-focus/50` instead of `ring-2 ring-focus`)
65
- - **Changed** Reverted split `pl-*/pr-*` size variants back to `px-*`; icon padding uses `pl-ds-07`/`pr-ds-07`
66
-
67
- ### v0.8.0
68
- - **Fixed** Now consumes FormField context automatically (`aria-describedby`, `aria-invalid`, `aria-required`)
69
-
70
- ### v0.4.2
71
- - **Added** `inputVariants` export
72
-
73
- ### v0.1.0
74
- - **Added** Initial release
1
+ # Input
2
+
3
+ - Import: @devalok/shilp-sutra/ui/input
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ size: "xs" | "sm" | "md" | "lg"
9
+ state: InputState
10
+ startSection: ReactNode (icon or content in the leading slot)
11
+ endSection: ReactNode (icon or content in the trailing slot)
12
+ startSectionClickable: boolean (enables pointer events on start section)
13
+ endSectionClickable: boolean (enables pointer events on end section)
14
+ startSectionType: 'icon' | 'label' (section display type — auto-inferred from content)
15
+ endSectionType: 'icon' | 'label' (section display type — auto-inferred from content)
16
+ wrapperClassName: string (classes for the wrapper div — border, bg, ring)
17
+ startIcon: ReactNode (@deprecated — use startSection)
18
+ endIcon: ReactNode (@deprecated — use endSection)
19
+ (plus all standard HTML input attributes except native "size")
20
+
21
+ ## Types
22
+ InputState = 'default' | 'error' | 'warning' | 'success'
23
+
24
+ ## Defaults
25
+ size: "md"
26
+
27
+ ## Example
28
+ ```jsx
29
+ <Input type="email" placeholder="you@example.com" state="error" startSection={<Icon icon={IconMail} />} />
30
+ <Input size="xs" placeholder="Quick search" startSection={<Icon icon={IconSearch} />} />
31
+ <Input startSection="https://" startSectionType="label" placeholder="example.com" />
32
+ <Input endSection=".00" endSectionType="label" startSection={<Icon icon={IconCurrencyDollar} />} placeholder="0" />
33
+ ```
34
+
35
+ ## Gotchas
36
+ - HTML native "size" attribute is excluded — use CSS width instead
37
+ - state="error" sets aria-invalid automatically
38
+ - Inside FormField: auto-inherits state, aria-describedby, aria-required from context (explicit props override)
39
+ - `className` targets the `<input>` element; use `wrapperClassName` for border/bg/ring overrides
40
+ - Focus ring is on the wrapper container (focus-within), not the input itself
41
+ - Icons in startSection/endSection are auto-sized via IconProvider per input size
42
+ - Sections are `pointer-events-none` by default — set `startSectionClickable`/`endSectionClickable` for interactive sections
43
+ - Section type is auto-inferred: strings default to `'label'` (tinted bg + border), React elements default to `'icon'` (fixed-width centered). Override with `startSectionType`/`endSectionType`.
44
+
45
+ ## Changes
46
+ ### v0.29.0
47
+ - **Changed** v2 rewrite: container-first architecture with wrapper div holding focus ring
48
+ - **Added** `xs` size (28px height)
49
+ - **Added** `startSection` / `endSection` props replacing `startIcon` / `endIcon` (deprecated but still work)
50
+ - **Added** `startSectionClickable` / `endSectionClickable` props for interactive sections
51
+ - **Added** `wrapperClassName` prop for styling the wrapper div (border, bg, ring)
52
+ - **Changed** Focus ring now on wrapper via `focus-within` (container-level ring, not input-level)
53
+ - **Changed** Icons auto-sized via `IconProvider` context per input size
54
+ - **Deprecated** `startIcon` / `endIcon` — use `startSection` / `endSection`
55
+ - **Added** `startSectionType` / `endSectionType` props — `'icon'` (fixed-width centered cell) or `'label'` (tinted background with border separator). Auto-inferred from content type (strings → label, React elements → icon).
56
+ - **Changed** Sections use flexbox layout for consistent alignment
57
+ - **Deprecated** `inputVariants` export — use `inputWrapperVariants` (semantics changed to target wrapper)
58
+
59
+ ### v0.15.0
60
+ - **Changed** `lg` size font changed from `text-ds-lg` (18px) to `text-ds-md` (14px) — all input sizes now use 14px for consistency
61
+ - **Changed** `md` size font standardized to `text-ds-md` (14px) from mixed values
62
+
63
+ ### v0.12.0
64
+ - **Changed** Softer resting border (`border-border-subtle` instead of `border-border`), subtler focus ring (`ring-1 ring-focus/50` instead of `ring-2 ring-focus`)
65
+ - **Changed** Reverted split `pl-*/pr-*` size variants back to `px-*`; icon padding uses `pl-ds-07`/`pr-ds-07`
66
+
67
+ ### v0.8.0
68
+ - **Fixed** Now consumes FormField context automatically (`aria-describedby`, `aria-invalid`, `aria-required`)
69
+
70
+ ### v0.4.2
71
+ - **Added** `inputVariants` export
72
+
73
+ ### v0.1.0
74
+ - **Added** Initial release
@@ -1,25 +1,25 @@
1
- # Label
2
-
3
- - Import: @devalok/shilp-sutra/ui/label
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- required: boolean (shows red asterisk)
9
- htmlFor: string
10
- (plus standard Radix Label props)
11
-
12
- ## Example
13
- ```jsx
14
- <Label htmlFor="email" required>Email Address</Label>
15
- ```
16
-
17
- ## Gotchas
18
- - Use with FormField for automatic aria wiring
19
-
20
- ## Changes
21
- ### v0.2.0
22
- - **Fixed** Children rendering verified and covered by tests — issue was caused by `@primitives` type leak, not a runtime bug
23
-
24
- ### v0.1.0
25
- - **Added** Initial release
1
+ # Label
2
+
3
+ - Import: @devalok/shilp-sutra/ui/label
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ required: boolean (shows red asterisk)
9
+ htmlFor: string
10
+ (plus standard Radix Label props)
11
+
12
+ ## Example
13
+ ```jsx
14
+ <Label htmlFor="email" required>Email Address</Label>
15
+ ```
16
+
17
+ ## Gotchas
18
+ - Use with FormField for automatic aria wiring
19
+
20
+ ## Changes
21
+ ### v0.2.0
22
+ - **Fixed** Children rendering verified and covered by tests — issue was caused by `@primitives` type leak, not a runtime bug
23
+
24
+ ### v0.1.0
25
+ - **Added** Initial release
@@ -1,29 +1,29 @@
1
- # Link
2
-
3
- - Import: @devalok/shilp-sutra/ui/link
4
- - Server-safe: No
5
- - Category: ui
6
-
7
- ## Props
8
- inline: boolean (default: true — "inline" or "block" display)
9
- asChild: boolean (merge with child element, e.g. Next.js Link)
10
- (plus standard anchor attributes)
11
-
12
- ## Defaults
13
- inline: true
14
-
15
- ## Example
16
- ```jsx
17
- <Link href="/docs">Documentation</Link>
18
- <Link asChild><NextLink href="/about">About</NextLink></Link>
19
- ```
20
-
21
- ## Gotchas
22
- - Use asChild with framework-specific Link components (e.g. Next.js Link)
23
-
24
- ## Changes
25
- ### v0.18.0
26
- - **Fixed** Color tokens — `text-info-9` changed to `text-accent-11` (links are interactive = accent scale)
27
-
28
- ### v0.1.0
29
- - **Added** Initial release
1
+ # Link
2
+
3
+ - Import: @devalok/shilp-sutra/ui/link
4
+ - Server-safe: No
5
+ - Category: ui
6
+
7
+ ## Props
8
+ inline: boolean (default: true — "inline" or "block" display)
9
+ asChild: boolean (merge with child element, e.g. Next.js Link)
10
+ (plus standard anchor attributes)
11
+
12
+ ## Defaults
13
+ inline: true
14
+
15
+ ## Example
16
+ ```jsx
17
+ <Link href="/docs">Documentation</Link>
18
+ <Link asChild><NextLink href="/about">About</NextLink></Link>
19
+ ```
20
+
21
+ ## Gotchas
22
+ - Use asChild with framework-specific Link components (e.g. Next.js Link)
23
+
24
+ ## Changes
25
+ ### v0.18.0
26
+ - **Fixed** Color tokens — `text-info-9` changed to `text-accent-11` (links are interactive = accent scale)
27
+
28
+ ### v0.1.0
29
+ - **Added** Initial release