@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,39 +1,39 @@
1
- # ScheduleView
2
-
3
- - Import: @devalok/shilp-sutra/composed/schedule-view
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- view: "day" | "week" (REQUIRED)
9
- date: Date (REQUIRED — current day or any date in target week)
10
- events: ScheduleEvent[] (REQUIRED) — { id, title, start: Date, end: Date, color? }
11
- onEventClick?: (event: ScheduleEvent) => void
12
- onSlotClick?: (start: Date, end: Date) => void
13
- startHour: number (default: 8)
14
- endHour: number (default: 18, exclusive)
15
- slotDuration: number (minutes, default: 30)
16
-
17
- Event colors: "primary" | "success" | "warning" | "error" | "info" | "neutral"
18
-
19
- ## Defaults
20
- startHour=8, endHour=18, slotDuration=30
21
-
22
- ## Example
23
- ```jsx
24
- <ScheduleView
25
- view="week"
26
- date={new Date()}
27
- events={calendarEvents}
28
- onEventClick={(e) => openEvent(e.id)}
29
- />
30
- ```
31
-
32
- ## Gotchas
33
- - `endHour` is exclusive — `endHour=18` means the last visible slot starts at 17:30 (with default 30min slots)
34
- - `onSlotClick` fires when clicking an empty time slot — useful for creating new events
35
- - Events that span outside `startHour`/`endHour` may be clipped
36
-
37
- ## Changes
38
- ### v0.1.0
39
- - **Added** Initial release
1
+ # ScheduleView
2
+
3
+ - Import: @devalok/shilp-sutra/composed/schedule-view
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ view: "day" | "week" (REQUIRED)
9
+ date: Date (REQUIRED — current day or any date in target week)
10
+ events: ScheduleEvent[] (REQUIRED) — { id, title, start: Date, end: Date, color? }
11
+ onEventClick?: (event: ScheduleEvent) => void
12
+ onSlotClick?: (start: Date, end: Date) => void
13
+ startHour: number (default: 8)
14
+ endHour: number (default: 18, exclusive)
15
+ slotDuration: number (minutes, default: 30)
16
+
17
+ Event colors: "primary" | "success" | "warning" | "error" | "info" | "neutral"
18
+
19
+ ## Defaults
20
+ startHour=8, endHour=18, slotDuration=30
21
+
22
+ ## Example
23
+ ```jsx
24
+ <ScheduleView
25
+ view="week"
26
+ date={new Date()}
27
+ events={calendarEvents}
28
+ onEventClick={(e) => openEvent(e.id)}
29
+ />
30
+ ```
31
+
32
+ ## Gotchas
33
+ - `endHour` is exclusive — `endHour=18` means the last visible slot starts at 17:30 (with default 30min slots)
34
+ - `onSlotClick` fires when clicking an empty time slot — useful for creating new events
35
+ - Events that span outside `startHour`/`endHour` may be clipped
36
+
37
+ ## Changes
38
+ ### v0.1.0
39
+ - **Added** Initial release
@@ -1,33 +1,33 @@
1
- # SimpleTooltip
2
-
3
- - Import: @devalok/shilp-sutra/composed/simple-tooltip
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- content: ReactNode (REQUIRED — tooltip content)
9
- side: "top" | "right" | "bottom" | "left" (default: "top")
10
- align: "start" | "center" | "end" (default: "center")
11
- delayDuration: number (ms, default: 300)
12
- children: ReactNode (trigger element)
13
-
14
- ## Defaults
15
- side="top", align="center", delayDuration=300
16
-
17
- ## Example
18
- ```jsx
19
- <SimpleTooltip content="Edit this item">
20
- <IconButton icon={<IconEdit />} aria-label="Edit" />
21
- </SimpleTooltip>
22
- ```
23
-
24
- ## Gotchas
25
- - Wraps the full Tooltip compound (Provider + Tooltip + Trigger + Content) into one component — no need for TooltipProvider
26
- - Unlike the low-level Tooltip, SimpleTooltip does not require wrapping in a TooltipProvider
27
-
28
- ## Changes
29
- ### v0.18.0
30
- - **Fixed** Type definition corrected
31
-
32
- ### v0.1.0
33
- - **Added** Initial release
1
+ # SimpleTooltip
2
+
3
+ - Import: @devalok/shilp-sutra/composed/simple-tooltip
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ content: ReactNode (REQUIRED — tooltip content)
9
+ side: "top" | "right" | "bottom" | "left" (default: "top")
10
+ align: "start" | "center" | "end" (default: "center")
11
+ delayDuration: number (ms, default: 300)
12
+ children: ReactNode (trigger element)
13
+
14
+ ## Defaults
15
+ side="top", align="center", delayDuration=300
16
+
17
+ ## Example
18
+ ```jsx
19
+ <SimpleTooltip content="Edit this item">
20
+ <IconButton icon={<IconEdit />} aria-label="Edit" />
21
+ </SimpleTooltip>
22
+ ```
23
+
24
+ ## Gotchas
25
+ - Wraps the full Tooltip compound (Provider + Tooltip + Trigger + Content) into one component — no need for TooltipProvider
26
+ - Unlike the low-level Tooltip, SimpleTooltip does not require wrapping in a TooltipProvider
27
+
28
+ ## Changes
29
+ ### v0.18.0
30
+ - **Fixed** Type definition corrected
31
+
32
+ ### v0.1.0
33
+ - **Added** Initial release
@@ -1,55 +1,55 @@
1
- # StatusBadge
2
-
3
- - Import: @devalok/shilp-sutra/composed/status-badge
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- Note: StatusBadge was server-safe prior to v0.18.0 but is NO LONGER server-safe due to Framer Motion dependency.
8
-
9
- ## Props
10
- status: "active" | "pending" | "approved" | "rejected" | "completed" | "blocked" | "in-progress" | "review" | "cancelled" | "draft"
11
- color: "success" | "warning" | "error" | "info" | "neutral" (overrides status styling when set)
12
- size: "sm" | "md"
13
- label: string (auto-derived from status/color if omitted)
14
- hideDot: boolean (default: false)
15
- onClick: () => void (makes badge clickable — renders as button with chevron)
16
- icon: ReactNode (custom trailing icon — replaces default chevron when clickable)
17
-
18
- ## Defaults
19
- size="md", hideDot=false
20
- When neither status nor color is passed, defaults to status='pending' styling
21
-
22
- ## Example
23
- ```jsx
24
- <StatusBadge status="active" />
25
- <StatusBadge status="in-progress" />
26
- <StatusBadge status="review" label="Needs Review" />
27
- <StatusBadge color="warning" label="In Review" size="sm" />
28
- <StatusBadge status="active" onClick={() => openStatusPicker()} />
29
- ```
30
-
31
- ## Gotchas
32
- - When `color` is set, it takes priority over `status` for styling
33
- - Props use a discriminated union — pass either `status` or `color`, not both
34
- - As of v0.18.0, StatusBadge is NOT server-safe (Framer Motion dependency)
35
- - When `onClick` is provided, badge renders as a `<button>` with a trailing chevron icon
36
- - Pass `icon` to replace the default chevron with a custom trailing icon
37
-
38
- ## Changes
39
- ### v0.29.0
40
- - **Added** `in-progress` status (accent/blue styling)
41
- - **Added** `review` status (info styling)
42
- - **Added** `onClick` prop — renders as a `<button>` with trailing chevron and hover opacity
43
- - **Added** `icon` prop — custom trailing icon (replaces the default chevron when clickable)
44
-
45
- ### v0.18.0
46
- - **Changed** No longer server-safe due to Framer Motion dependency
47
-
48
- ### v0.8.0
49
- - **Changed** Props now use discriminated union — pass either `status` or `color`, not both
50
-
51
- ### v0.2.0
52
- - **Added** Identified as server-safe component (later reverted in v0.18.0)
53
-
54
- ### v0.1.0
55
- - **Added** Initial release
1
+ # StatusBadge
2
+
3
+ - Import: @devalok/shilp-sutra/composed/status-badge
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ Note: StatusBadge was server-safe prior to v0.18.0 but is NO LONGER server-safe due to Framer Motion dependency.
8
+
9
+ ## Props
10
+ status: "active" | "pending" | "approved" | "rejected" | "completed" | "blocked" | "in-progress" | "review" | "cancelled" | "draft"
11
+ color: "success" | "warning" | "error" | "info" | "neutral" (overrides status styling when set)
12
+ size: "sm" | "md"
13
+ label: string (auto-derived from status/color if omitted)
14
+ hideDot: boolean (default: false)
15
+ onClick: () => void (makes badge clickable — renders as button with chevron)
16
+ icon: ReactNode (custom trailing icon — replaces default chevron when clickable)
17
+
18
+ ## Defaults
19
+ size="md", hideDot=false
20
+ When neither status nor color is passed, defaults to status='pending' styling
21
+
22
+ ## Example
23
+ ```jsx
24
+ <StatusBadge status="active" />
25
+ <StatusBadge status="in-progress" />
26
+ <StatusBadge status="review" label="Needs Review" />
27
+ <StatusBadge color="warning" label="In Review" size="sm" />
28
+ <StatusBadge status="active" onClick={() => openStatusPicker()} />
29
+ ```
30
+
31
+ ## Gotchas
32
+ - When `color` is set, it takes priority over `status` for styling
33
+ - Props use a discriminated union — pass either `status` or `color`, not both
34
+ - As of v0.18.0, StatusBadge is NOT server-safe (Framer Motion dependency)
35
+ - When `onClick` is provided, badge renders as a `<button>` with a trailing chevron icon
36
+ - Pass `icon` to replace the default chevron with a custom trailing icon
37
+
38
+ ## Changes
39
+ ### v0.29.0
40
+ - **Added** `in-progress` status (accent/blue styling)
41
+ - **Added** `review` status (info styling)
42
+ - **Added** `onClick` prop — renders as a `<button>` with trailing chevron and hover opacity
43
+ - **Added** `icon` prop — custom trailing icon (replaces the default chevron when clickable)
44
+
45
+ ### v0.18.0
46
+ - **Changed** No longer server-safe due to Framer Motion dependency
47
+
48
+ ### v0.8.0
49
+ - **Changed** Props now use discriminated union — pass either `status` or `color`, not both
50
+
51
+ ### v0.2.0
52
+ - **Added** Identified as server-safe component (later reverted in v0.18.0)
53
+
54
+ ### v0.1.0
55
+ - **Added** Initial release
@@ -1,44 +1,44 @@
1
- # AppCommandPalette
2
-
3
- - Import: @devalok/shilp-sutra/shell/app-command-palette
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- ## Props
8
- user?: AppCommandPaletteUser | null — { name, role? } (optional)
9
- isAdmin?: boolean (shows admin command groups regardless of user.role; takes precedence over role-based detection)
10
- extraGroups?: CommandGroup[]
11
- onNavigate?: (path: string) => void
12
- onSearch?: (query: string) => void
13
- searchResults?: SearchResult[]
14
- isSearching?: boolean (shows loading state while search is in progress)
15
- onSearchResultSelect?: (result: SearchResult) => void
16
-
17
- SearchResult: { id: string, title: string, snippet?: string, entityType: string, projectId?: string | null, metadata?: Record<string, unknown> }
18
- AppCommandPaletteUser: { name: string, role?: string }
19
-
20
- ## Defaults
21
- None
22
-
23
- ## Example
24
- ```jsx
25
- <AppCommandPalette
26
- user={{ name: 'John', role: 'admin' }}
27
- isAdmin={true}
28
- onNavigate={(path) => router.push(path)}
29
- searchResults={results}
30
- onSearchResultSelect={(r) => router.push(`/${r.entityType}/${r.id}`)}
31
- />
32
- ```
33
-
34
- ## Gotchas
35
- - Uses CommandRegistry context for page navigation items (see CommandRegistryProvider)
36
- - `isAdmin` takes precedence over `user.role` for showing admin command groups
37
- - Should be placed at the app root level, typically alongside TopBar
38
-
39
- ## Changes
40
- ### v0.3.0
41
- - **Fixed** Added missing `'use client'` directive
42
-
43
- ### v0.1.0
44
- - **Added** Initial release
1
+ # AppCommandPalette
2
+
3
+ - Import: @devalok/shilp-sutra/shell/app-command-palette
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ ## Props
8
+ user?: AppCommandPaletteUser | null — { name, role? } (optional)
9
+ isAdmin?: boolean (shows admin command groups regardless of user.role; takes precedence over role-based detection)
10
+ extraGroups?: CommandGroup[]
11
+ onNavigate?: (path: string) => void
12
+ onSearch?: (query: string) => void
13
+ searchResults?: SearchResult[]
14
+ isSearching?: boolean (shows loading state while search is in progress)
15
+ onSearchResultSelect?: (result: SearchResult) => void
16
+
17
+ SearchResult: { id: string, title: string, snippet?: string, entityType: string, projectId?: string | null, metadata?: Record<string, unknown> }
18
+ AppCommandPaletteUser: { name: string, role?: string }
19
+
20
+ ## Defaults
21
+ None
22
+
23
+ ## Example
24
+ ```jsx
25
+ <AppCommandPalette
26
+ user={{ name: 'John', role: 'admin' }}
27
+ isAdmin={true}
28
+ onNavigate={(path) => router.push(path)}
29
+ searchResults={results}
30
+ onSearchResultSelect={(r) => router.push(`/${r.entityType}/${r.id}`)}
31
+ />
32
+ ```
33
+
34
+ ## Gotchas
35
+ - Uses CommandRegistry context for page navigation items (see CommandRegistryProvider)
36
+ - `isAdmin` takes precedence over `user.role` for showing admin command groups
37
+ - Should be placed at the app root level, typically alongside TopBar
38
+
39
+ ## Changes
40
+ ### v0.3.0
41
+ - **Fixed** Added missing `'use client'` directive
42
+
43
+ ### v0.1.0
44
+ - **Added** Initial release
@@ -1,52 +1,52 @@
1
- # BottomNavbar
2
-
3
- - Import: @devalok/shilp-sutra/shell/bottom-navbar
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- ## Props
8
- currentPath?: string (optional)
9
- user?: BottomNavbarUser | null (optional)
10
- primaryItems?: BottomNavItem[] (max 4 recommended, optional)
11
- moreItems?: BottomNavItem[] (overflow items in "More" menu, optional)
12
- className?: string
13
-
14
- BottomNavItem: { title: string, href: string, icon: ReactNode, exact?: boolean, badge?: number }
15
- BottomNavbarUser: { name: string, role?: string }
16
-
17
- ## Defaults
18
- None
19
-
20
- ## Example
21
- ```jsx
22
- <BottomNavbar
23
- currentPath="/dashboard"
24
- primaryItems={[
25
- { title: 'Home', href: '/', icon: <IconHome /> },
26
- { title: 'Tasks', href: '/tasks', icon: <IconChecklist /> },
27
- ]}
28
- />
29
- ```
30
-
31
- ## Gotchas
32
- - Designed for mobile viewports — fixed to bottom of screen
33
- - Max 4 `primaryItems` recommended; overflow goes in `moreItems` shown in a "More" sheet
34
- - Use with `useIsMobile()` hook to conditionally render instead of AppSidebar
35
- - Requires LinkProvider for framework-specific link components (e.g., Next.js Link)
36
-
37
- ## Changes
38
- ### v0.19.0
39
- - **Changed** Background elevated from `bg-surface-1` to `bg-surface-2` for visual hierarchy above app background
40
- - **Changed** "More" menu and interactive items bumped accordingly
41
-
42
- ### v0.18.0
43
- - **Fixed** Removed incorrect `role="button"` and `tabIndex` from overlay
44
-
45
- ### v0.16.0
46
- - **Added** `badge?: number` on `BottomNavItem` — notification count badge (red dot, 99+ cap)
47
-
48
- ### v0.1.1
49
- - **Changed** Decoupled from Next.js via LinkProvider
50
-
51
- ### v0.1.0
52
- - **Added** Initial release
1
+ # BottomNavbar
2
+
3
+ - Import: @devalok/shilp-sutra/shell/bottom-navbar
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ ## Props
8
+ currentPath?: string (optional)
9
+ user?: BottomNavbarUser | null (optional)
10
+ primaryItems?: BottomNavItem[] (max 4 recommended, optional)
11
+ moreItems?: BottomNavItem[] (overflow items in "More" menu, optional)
12
+ className?: string
13
+
14
+ BottomNavItem: { title: string, href: string, icon: ReactNode, exact?: boolean, badge?: number }
15
+ BottomNavbarUser: { name: string, role?: string }
16
+
17
+ ## Defaults
18
+ None
19
+
20
+ ## Example
21
+ ```jsx
22
+ <BottomNavbar
23
+ currentPath="/dashboard"
24
+ primaryItems={[
25
+ { title: 'Home', href: '/', icon: <IconHome /> },
26
+ { title: 'Tasks', href: '/tasks', icon: <IconChecklist /> },
27
+ ]}
28
+ />
29
+ ```
30
+
31
+ ## Gotchas
32
+ - Designed for mobile viewports — fixed to bottom of screen
33
+ - Max 4 `primaryItems` recommended; overflow goes in `moreItems` shown in a "More" sheet
34
+ - Use with `useIsMobile()` hook to conditionally render instead of AppSidebar
35
+ - Requires LinkProvider for framework-specific link components (e.g., Next.js Link)
36
+
37
+ ## Changes
38
+ ### v0.19.0
39
+ - **Changed** Background elevated from `bg-surface-1` to `bg-surface-2` for visual hierarchy above app background
40
+ - **Changed** "More" menu and interactive items bumped accordingly
41
+
42
+ ### v0.18.0
43
+ - **Fixed** Removed incorrect `role="button"` and `tabIndex` from overlay
44
+
45
+ ### v0.16.0
46
+ - **Added** `badge?: number` on `BottomNavItem` — notification count badge (red dot, 99+ cap)
47
+
48
+ ### v0.1.1
49
+ - **Changed** Decoupled from Next.js via LinkProvider
50
+
51
+ ### v0.1.0
52
+ - **Added** Initial release
@@ -1,48 +1,48 @@
1
- # CommandRegistry
2
-
3
- - Import: @devalok/shilp-sutra/shell/command-registry
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- Exports: CommandRegistryProvider, useCommandRegistry
8
-
9
- ## Props
10
-
11
- ### CommandRegistryProvider
12
- children: ReactNode
13
- registry: CommandRegistry (REQUIRED)
14
-
15
- CommandRegistry: { pages: CommandPageItem[], adminPages: CommandPageItem[] }
16
- CommandPageItem: { id: string, label: string, icon: ReactNode, path: string, keywords?: string[] }
17
-
18
- ### useCommandRegistry hook
19
- Returns: CommandRegistry | null
20
-
21
- ## Defaults
22
- None
23
-
24
- ## Example
25
- ```jsx
26
- <CommandRegistryProvider
27
- registry={{
28
- pages: [
29
- { id: 'dashboard', label: 'Dashboard', icon: <IconHome />, path: '/dashboard' },
30
- { id: 'projects', label: 'Projects', icon: <IconFolder />, path: '/projects' },
31
- ],
32
- adminPages: [
33
- { id: 'users', label: 'Manage Users', icon: <IconUsers />, path: '/admin/users' },
34
- ],
35
- }}
36
- >
37
- <App />
38
- </CommandRegistryProvider>
39
- ```
40
-
41
- ## Gotchas
42
- - Provides the command registry context consumed by AppCommandPalette
43
- - Place at app root, wrapping both AppCommandPalette and the rest of the app
44
- - `useCommandRegistry()` returns `null` if no provider is found — handle this case
45
-
46
- ## Changes
47
- ### v0.1.0
48
- - **Added** Initial release
1
+ # CommandRegistry
2
+
3
+ - Import: @devalok/shilp-sutra/shell/command-registry
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ Exports: CommandRegistryProvider, useCommandRegistry
8
+
9
+ ## Props
10
+
11
+ ### CommandRegistryProvider
12
+ children: ReactNode
13
+ registry: CommandRegistry (REQUIRED)
14
+
15
+ CommandRegistry: { pages: CommandPageItem[], adminPages: CommandPageItem[] }
16
+ CommandPageItem: { id: string, label: string, icon: ReactNode, path: string, keywords?: string[] }
17
+
18
+ ### useCommandRegistry hook
19
+ Returns: CommandRegistry | null
20
+
21
+ ## Defaults
22
+ None
23
+
24
+ ## Example
25
+ ```jsx
26
+ <CommandRegistryProvider
27
+ registry={{
28
+ pages: [
29
+ { id: 'dashboard', label: 'Dashboard', icon: <IconHome />, path: '/dashboard' },
30
+ { id: 'projects', label: 'Projects', icon: <IconFolder />, path: '/projects' },
31
+ ],
32
+ adminPages: [
33
+ { id: 'users', label: 'Manage Users', icon: <IconUsers />, path: '/admin/users' },
34
+ ],
35
+ }}
36
+ >
37
+ <App />
38
+ </CommandRegistryProvider>
39
+ ```
40
+
41
+ ## Gotchas
42
+ - Provides the command registry context consumed by AppCommandPalette
43
+ - Place at app root, wrapping both AppCommandPalette and the rest of the app
44
+ - `useCommandRegistry()` returns `null` if no provider is found — handle this case
45
+
46
+ ## Changes
47
+ ### v0.1.0
48
+ - **Added** Initial release
@@ -1,41 +1,41 @@
1
- # LinkProvider
2
-
3
- - Import: @devalok/shilp-sutra/shell/link-context
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- Exports: LinkProvider, useLink
8
-
9
- ## Props
10
-
11
- ### LinkProvider
12
- component: ForwardRefComponent (e.g. Next.js Link, Remix Link)
13
- children: ReactNode
14
-
15
- ### useLink hook
16
- Returns: LinkComponent
17
-
18
- ## Defaults
19
- Without LinkProvider, shell components render plain `<a>` tags
20
-
21
- ## Example
22
- ```jsx
23
- import Link from 'next/link'
24
-
25
- <LinkProvider component={Link}>
26
- <AppSidebar ... />
27
- <BottomNavbar ... />
28
- </LinkProvider>
29
- ```
30
-
31
- ## Gotchas
32
- - Without LinkProvider, shell components render plain `<a>` tags (full page reloads)
33
- - Place at app root, wrapping all shell components that render navigation links
34
- - The `component` prop must be a forwardRef component (Next.js Link, Remix Link, etc.)
35
-
36
- ## Changes
37
- ### v0.1.1
38
- - **Added** Shell components decoupled from Next.js — replaced hard `next/link` import with polymorphic `LinkProvider`/`useLink` context
39
-
40
- ### v0.1.0
41
- - **Added** Initial release (with hardcoded Next.js Link dependency)
1
+ # LinkProvider
2
+
3
+ - Import: @devalok/shilp-sutra/shell/link-context
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ Exports: LinkProvider, useLink
8
+
9
+ ## Props
10
+
11
+ ### LinkProvider
12
+ component: ForwardRefComponent (e.g. Next.js Link, Remix Link)
13
+ children: ReactNode
14
+
15
+ ### useLink hook
16
+ Returns: LinkComponent
17
+
18
+ ## Defaults
19
+ Without LinkProvider, shell components render plain `<a>` tags
20
+
21
+ ## Example
22
+ ```jsx
23
+ import Link from 'next/link'
24
+
25
+ <LinkProvider component={Link}>
26
+ <AppSidebar ... />
27
+ <BottomNavbar ... />
28
+ </LinkProvider>
29
+ ```
30
+
31
+ ## Gotchas
32
+ - Without LinkProvider, shell components render plain `<a>` tags (full page reloads)
33
+ - Place at app root, wrapping all shell components that render navigation links
34
+ - The `component` prop must be a forwardRef component (Next.js Link, Remix Link, etc.)
35
+
36
+ ## Changes
37
+ ### v0.1.1
38
+ - **Added** Shell components decoupled from Next.js — replaced hard `next/link` import with polymorphic `LinkProvider`/`useLink` context
39
+
40
+ ### v0.1.0
41
+ - **Added** Initial release (with hardcoded Next.js Link dependency)