@devalok/shilp-sutra 0.54.0 → 0.55.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 (357) hide show
  1. package/MIGRATION.md +28 -0
  2. package/dist/_chunks/badge-group.js +1 -1
  3. package/dist/_chunks/popover.js +38 -37
  4. package/dist/_chunks/popover.js.map +1 -1
  5. package/dist/_chunks/primitives/react-accordion.js +270 -0
  6. package/dist/_chunks/primitives/react-accordion.js.map +1 -0
  7. package/dist/_chunks/primitives/react-alert-dialog.js +857 -0
  8. package/dist/_chunks/primitives/react-alert-dialog.js.map +1 -0
  9. package/dist/_chunks/primitives/react-aspect-ratio.js +32 -0
  10. package/dist/_chunks/primitives/react-aspect-ratio.js.map +1 -0
  11. package/dist/_chunks/primitives/react-avatar.js +69 -0
  12. package/dist/_chunks/primitives/react-avatar.js.map +1 -0
  13. package/dist/_chunks/primitives/react-checkbox.js +151 -0
  14. package/dist/_chunks/primitives/react-checkbox.js.map +1 -0
  15. package/dist/_chunks/primitives/react-context-menu.js +905 -0
  16. package/dist/_chunks/primitives/react-context-menu.js.map +1 -0
  17. package/dist/_chunks/primitives/react-dropdown-menu.js +220 -0
  18. package/dist/_chunks/primitives/react-dropdown-menu.js.map +1 -0
  19. package/dist/_chunks/primitives/react-hover-card.js +153 -0
  20. package/dist/_chunks/primitives/react-hover-card.js.map +1 -0
  21. package/dist/_chunks/primitives/react-label.js +16 -0
  22. package/dist/_chunks/primitives/react-label.js.map +1 -0
  23. package/dist/_chunks/primitives/react-menubar.js +304 -0
  24. package/dist/_chunks/primitives/react-menubar.js.map +1 -0
  25. package/dist/_chunks/primitives/react-navigation-menu.js +560 -0
  26. package/dist/_chunks/primitives/react-navigation-menu.js.map +1 -0
  27. package/dist/_chunks/primitives/react-popover.js +186 -0
  28. package/dist/_chunks/primitives/react-popover.js.map +1 -0
  29. package/dist/_chunks/primitives/react-progress.js +70 -0
  30. package/dist/_chunks/primitives/react-progress.js.map +1 -0
  31. package/dist/_chunks/primitives/react-radio-group.js +170 -0
  32. package/dist/_chunks/primitives/react-radio-group.js.map +1 -0
  33. package/dist/_chunks/primitives/react-select.js +671 -0
  34. package/dist/_chunks/primitives/react-select.js.map +1 -0
  35. package/dist/_chunks/primitives/react-separator.js +24 -0
  36. package/dist/_chunks/primitives/react-separator.js.map +1 -0
  37. package/dist/_chunks/primitives/react-slider.js +349 -0
  38. package/dist/_chunks/primitives/react-slider.js.map +1 -0
  39. package/dist/_chunks/primitives/react-switch.js +92 -0
  40. package/dist/_chunks/primitives/react-switch.js.map +1 -0
  41. package/dist/_chunks/primitives/react-tabs.js +114 -0
  42. package/dist/_chunks/primitives/react-tabs.js.map +1 -0
  43. package/dist/_chunks/primitives/react-toggle-group.js +122 -0
  44. package/dist/_chunks/primitives/react-toggle-group.js.map +1 -0
  45. package/dist/_chunks/primitives/react-toggle.js +28 -0
  46. package/dist/_chunks/primitives/react-toggle.js.map +1 -0
  47. package/dist/_chunks/primitives/react-tooltip.js +341 -0
  48. package/dist/_chunks/primitives/react-tooltip.js.map +1 -0
  49. package/dist/_chunks/primitives-internal.js +2071 -0
  50. package/dist/_chunks/primitives-internal.js.map +1 -0
  51. package/dist/_chunks/shared.js +32 -32
  52. package/dist/_chunks/tiptap.js +1 -1
  53. package/dist/ai/ai-command-provider.d.ts +2 -3
  54. package/dist/ai/block-renderer.d.ts +1 -2
  55. package/dist/ai/blocks/block-shell.d.ts +0 -1
  56. package/dist/ai/blocks/block-table.d.ts +1 -2
  57. package/dist/ai/blocks/confirm.d.ts +1 -2
  58. package/dist/ai/blocks/divider.d.ts +1 -2
  59. package/dist/ai/blocks/error.d.ts +1 -2
  60. package/dist/ai/blocks/index.d.ts +7 -8
  61. package/dist/ai/blocks/info.d.ts +1 -2
  62. package/dist/ai/blocks/loading.d.ts +1 -2
  63. package/dist/ai/blocks/stat-row.d.ts +1 -2
  64. package/dist/ai/blocks/success.d.ts +1 -2
  65. package/dist/ai/blocks/text.d.ts +1 -2
  66. package/dist/ai/command-bar.d.ts +1 -2
  67. package/dist/ai/conversation.d.ts +2 -3
  68. package/dist/ai/devadoot-icon.d.ts +0 -1
  69. package/dist/ai/index.d.ts +16 -17
  70. package/dist/ai/types.js +1 -0
  71. package/dist/composed/activity-feed.d.ts +1 -2
  72. package/dist/composed/avatar-group.d.ts +1 -2
  73. package/dist/composed/bulk-action-bar.d.ts +2 -3
  74. package/dist/composed/command-palette.d.ts +1 -2
  75. package/dist/composed/confirm-dialog.d.ts +0 -1
  76. package/dist/composed/date-picker/calendar-grid.d.ts +0 -1
  77. package/dist/composed/date-picker/date-picker.d.ts +0 -1
  78. package/dist/composed/date-picker/date-range-picker.d.ts +1 -2
  79. package/dist/composed/date-picker/date-time-picker.d.ts +0 -1
  80. package/dist/composed/date-picker/index.d.ts +17 -18
  81. package/dist/composed/date-picker/month-picker.d.ts +0 -1
  82. package/dist/composed/date-picker/presets.d.ts +0 -1
  83. package/dist/composed/date-picker/time-picker.d.ts +0 -1
  84. package/dist/composed/date-picker/use-calendar.d.ts +0 -1
  85. package/dist/composed/date-picker/year-picker.d.ts +0 -1
  86. package/dist/composed/deadline-indicator.d.ts +0 -1
  87. package/dist/composed/diff.d.ts +0 -1
  88. package/dist/composed/emoji-picker.d.ts +0 -1
  89. package/dist/composed/empty-state.d.ts +1 -2
  90. package/dist/composed/error-boundary.d.ts +0 -1
  91. package/dist/composed/extensions/emoji-data.d.ts +0 -1
  92. package/dist/composed/extensions/emoji-node.d.ts +0 -1
  93. package/dist/composed/extensions/emoji-suggestion.d.ts +1 -2
  94. package/dist/composed/extensions/file-attachment.d.ts +0 -1
  95. package/dist/composed/extensions/mention-suggestion.d.ts +1 -2
  96. package/dist/composed/extensions/slash-command.d.ts +0 -1
  97. package/dist/composed/file-preview/audio-preview.d.ts +0 -1
  98. package/dist/composed/file-preview/document-preview.d.ts +0 -1
  99. package/dist/composed/file-preview/embed-preview.d.ts +0 -1
  100. package/dist/composed/file-preview/image-preview.d.ts +0 -1
  101. package/dist/composed/file-preview/shared.d.ts +0 -1
  102. package/dist/composed/file-preview/video-preview.d.ts +0 -1
  103. package/dist/composed/file-preview.d.ts +0 -1
  104. package/dist/composed/filter-bar.d.ts +0 -1
  105. package/dist/composed/form-section.d.ts +0 -1
  106. package/dist/composed/global-loading.d.ts +0 -1
  107. package/dist/composed/index.d.ts +49 -50
  108. package/dist/composed/inline-edit.d.ts +0 -1
  109. package/dist/composed/markdown-viewer.d.ts +0 -1
  110. package/dist/composed/master-detail.d.ts +0 -1
  111. package/dist/composed/member-picker.d.ts +0 -1
  112. package/dist/composed/multi-select-popover.d.ts +0 -1
  113. package/dist/composed/priority-indicator.d.ts +0 -1
  114. package/dist/composed/responsive-modal.d.ts +1 -2
  115. package/dist/composed/responsive-modal.js +47 -47
  116. package/dist/composed/rich-chat-input/attachment-strip.d.ts +0 -1
  117. package/dist/composed/rich-chat-input/audio-player.d.ts +0 -1
  118. package/dist/composed/rich-chat-input/audio-waveform.d.ts +0 -1
  119. package/dist/composed/rich-chat-input/chat-toolbar.d.ts +0 -1
  120. package/dist/composed/rich-chat-input/recording-overlay.d.ts +0 -1
  121. package/dist/composed/rich-chat-input/reply-banner.d.ts +0 -1
  122. package/dist/composed/rich-chat-input/schedule-send.d.ts +0 -1
  123. package/dist/composed/rich-chat-input/use-voice-recorder.d.ts +0 -1
  124. package/dist/composed/rich-chat-input.d.ts +9 -10
  125. package/dist/composed/rich-chat-input.js +1 -1
  126. package/dist/composed/rich-text-editor.d.ts +1 -2
  127. package/dist/composed/schedule-view.d.ts +0 -1
  128. package/dist/composed/simple-tooltip.d.ts +0 -1
  129. package/dist/composed/status-badge.d.ts +1 -2
  130. package/dist/hooks/index.d.ts +6 -7
  131. package/dist/hooks/use-color-mode.d.ts +0 -1
  132. package/dist/hooks/use-mobile.d.ts +0 -1
  133. package/dist/hooks/use-touch-device.d.ts +0 -1
  134. package/dist/hooks/use-viewport-height.d.ts +0 -1
  135. package/dist/motion/check-motion-provider.d.ts +0 -1
  136. package/dist/motion/index.d.ts +2 -3
  137. package/dist/motion/motion-provider.d.ts +1 -2
  138. package/dist/motion/primitives-index.d.ts +1 -2
  139. package/dist/motion/primitives.d.ts +1 -2
  140. package/dist/primitives/_internal/react-arrow.d.ts +1 -1
  141. package/dist/primitives/_internal/react-collection.d.ts +2 -2
  142. package/dist/primitives/_internal/react-dismissable-layer.d.ts +1 -1
  143. package/dist/primitives/_internal/react-focus-scope.d.ts +1 -1
  144. package/dist/primitives/_internal/react-popper.d.ts +4 -4
  145. package/dist/primitives/_internal/react-portal.d.ts +1 -1
  146. package/dist/primitives/_internal/react-use-rect.d.ts +1 -1
  147. package/dist/primitives/react-accordion.d.ts +3 -3
  148. package/dist/primitives/react-alert-dialog.d.ts +2 -2
  149. package/dist/primitives/react-aspect-ratio.d.ts +1 -1
  150. package/dist/primitives/react-avatar.d.ts +2 -2
  151. package/dist/primitives/react-checkbox.d.ts +3 -3
  152. package/dist/primitives/react-collapsible.d.ts +2 -2
  153. package/dist/primitives/react-context-menu.d.ts +3 -3
  154. package/dist/primitives/react-dialog.d.ts +5 -5
  155. package/dist/primitives/react-dropdown-menu.d.ts +3 -3
  156. package/dist/primitives/react-hover-card.d.ts +5 -5
  157. package/dist/primitives/react-label.d.ts +1 -1
  158. package/dist/primitives/react-menu.d.ts +7 -7
  159. package/dist/primitives/react-menubar.d.ts +5 -5
  160. package/dist/primitives/react-navigation-menu.d.ts +5 -5
  161. package/dist/primitives/react-popover.d.ts +6 -6
  162. package/dist/primitives/react-progress.d.ts +2 -2
  163. package/dist/primitives/react-radio-group.d.ts +3 -3
  164. package/dist/primitives/react-roving-focus.d.ts +2 -2
  165. package/dist/primitives/react-select.d.ts +6 -6
  166. package/dist/primitives/react-separator.d.ts +1 -1
  167. package/dist/primitives/react-slider.d.ts +2 -2
  168. package/dist/primitives/react-switch.d.ts +2 -2
  169. package/dist/primitives/react-tabs.d.ts +3 -3
  170. package/dist/primitives/react-toast.d.ts +3 -3
  171. package/dist/primitives/react-toggle-group.d.ts +4 -4
  172. package/dist/primitives/react-toggle.d.ts +1 -1
  173. package/dist/primitives/react-tooltip.d.ts +5 -5
  174. package/dist/primitives/react-visually-hidden.d.ts +1 -1
  175. package/dist/shell/app-command-palette.d.ts +2 -3
  176. package/dist/shell/bottom-navbar.d.ts +1 -2
  177. package/dist/shell/command-registry.d.ts +1 -2
  178. package/dist/shell/index.d.ts +7 -8
  179. package/dist/shell/link-context.d.ts +2 -3
  180. package/dist/shell/notification-center.d.ts +0 -1
  181. package/dist/shell/notification-preferences.d.ts +0 -1
  182. package/dist/shell/top-bar.d.ts +1 -2
  183. package/dist/test-utils/conformance.d.ts +0 -1
  184. package/dist/ui/accordion.d.ts +1 -2
  185. package/dist/ui/accordion.js +1 -1
  186. package/dist/ui/alert-dialog.d.ts +1 -2
  187. package/dist/ui/alert-dialog.js +52 -52
  188. package/dist/ui/alert.d.ts +0 -1
  189. package/dist/ui/aspect-ratio.d.ts +1 -2
  190. package/dist/ui/aspect-ratio.js +4 -4
  191. package/dist/ui/autocomplete.d.ts +1 -2
  192. package/dist/ui/autocomplete.js +1 -1
  193. package/dist/ui/avatar.d.ts +1 -2
  194. package/dist/ui/avatar.js +33 -33
  195. package/dist/ui/badge-group.d.ts +1 -2
  196. package/dist/ui/badge-indicator.d.ts +0 -1
  197. package/dist/ui/badge.d.ts +3 -4
  198. package/dist/ui/banner.d.ts +0 -1
  199. package/dist/ui/breadcrumb.js +1 -1
  200. package/dist/ui/button-group.d.ts +1 -2
  201. package/dist/ui/button-processing.d.ts +0 -1
  202. package/dist/ui/button.d.ts +1 -2
  203. package/dist/ui/button.js +1 -1
  204. package/dist/ui/card.d.ts +0 -1
  205. package/dist/ui/charts/_internal/animation.d.ts +0 -1
  206. package/dist/ui/charts/_internal/axes.d.ts +0 -1
  207. package/dist/ui/charts/_internal/colors.d.ts +1 -2
  208. package/dist/ui/charts/_internal/grid-lines.d.ts +0 -1
  209. package/dist/ui/charts/_internal/legend.d.ts +0 -1
  210. package/dist/ui/charts/_internal/scales.d.ts +0 -1
  211. package/dist/ui/charts/_internal/tooltip.d.ts +0 -1
  212. package/dist/ui/charts/_internal/types.d.ts +0 -1
  213. package/dist/ui/charts/area-chart.d.ts +1 -2
  214. package/dist/ui/charts/bar-chart.d.ts +1 -2
  215. package/dist/ui/charts/chart-container.d.ts +1 -2
  216. package/dist/ui/charts/gauge-chart.d.ts +0 -1
  217. package/dist/ui/charts/index.d.ts +9 -10
  218. package/dist/ui/charts/line-chart.d.ts +1 -2
  219. package/dist/ui/charts/pie-chart.d.ts +0 -1
  220. package/dist/ui/charts/radar-chart.d.ts +0 -1
  221. package/dist/ui/charts/sparkline.d.ts +0 -1
  222. package/dist/ui/chat/date-separator.d.ts +0 -1
  223. package/dist/ui/chat/index.d.ts +7 -8
  224. package/dist/ui/chat/message-input.d.ts +0 -1
  225. package/dist/ui/chat/message-list.d.ts +0 -1
  226. package/dist/ui/chat/message.d.ts +1 -2
  227. package/dist/ui/chat/system-message.d.ts +1 -2
  228. package/dist/ui/chat/typing-indicator.d.ts +0 -1
  229. package/dist/ui/chat/unread-separator.d.ts +0 -1
  230. package/dist/ui/checkbox.d.ts +2 -3
  231. package/dist/ui/checkbox.js +13 -13
  232. package/dist/ui/collapsible.d.ts +1 -2
  233. package/dist/ui/collapsible.js +1 -1
  234. package/dist/ui/color-input.d.ts +0 -1
  235. package/dist/ui/color-swatch.d.ts +0 -1
  236. package/dist/ui/combobox.d.ts +2 -3
  237. package/dist/ui/combobox.js +125 -125
  238. package/dist/ui/combobox.js.map +1 -1
  239. package/dist/ui/context-menu.d.ts +1 -2
  240. package/dist/ui/context-menu.js +58 -58
  241. package/dist/ui/data-table-body.d.ts +0 -1
  242. package/dist/ui/data-table-bulk-actions.d.ts +0 -1
  243. package/dist/ui/data-table-card.d.ts +0 -1
  244. package/dist/ui/data-table-context.d.ts +0 -1
  245. package/dist/ui/data-table-header.d.ts +0 -1
  246. package/dist/ui/data-table-pagination.d.ts +0 -1
  247. package/dist/ui/data-table-toolbar.d.ts +0 -1
  248. package/dist/ui/data-table.d.ts +3 -4
  249. package/dist/ui/devalok-grain.d.ts +0 -1
  250. package/dist/ui/dialog.d.ts +1 -2
  251. package/dist/ui/dialog.js +43 -43
  252. package/dist/ui/dot.d.ts +0 -1
  253. package/dist/ui/dropdown-menu.d.ts +1 -2
  254. package/dist/ui/dropdown-menu.js +69 -69
  255. package/dist/ui/file-upload.d.ts +0 -1
  256. package/dist/ui/form.d.ts +0 -1
  257. package/dist/ui/hover-card.d.ts +1 -2
  258. package/dist/ui/hover-card.js +16 -16
  259. package/dist/ui/icon-button.d.ts +2 -3
  260. package/dist/ui/icon-context.d.ts +0 -1
  261. package/dist/ui/icon-group.d.ts +1 -2
  262. package/dist/ui/icon.d.ts +1 -2
  263. package/dist/ui/index.d.ts +78 -79
  264. package/dist/ui/index.d.ts.map +1 -1
  265. package/dist/ui/index.js.map +1 -1
  266. package/dist/ui/input-otp.d.ts +0 -1
  267. package/dist/ui/input.d.ts +1 -2
  268. package/dist/ui/label.d.ts +1 -2
  269. package/dist/ui/label.js +7 -7
  270. package/dist/ui/lib/bottom-sheet.d.ts +0 -1
  271. package/dist/ui/lib/check-tokens.d.ts +0 -1
  272. package/dist/ui/lib/field-state.d.ts +0 -1
  273. package/dist/ui/lib/icon-input.d.ts +0 -1
  274. package/dist/ui/lib/index.d.ts +6 -7
  275. package/dist/ui/lib/keybinding.d.ts +0 -1
  276. package/dist/ui/lib/link-context.d.ts +0 -1
  277. package/dist/ui/lib/mention.d.ts +0 -1
  278. package/dist/ui/lib/normalize-icon.d.ts +2 -2
  279. package/dist/ui/lib/slot.d.ts +2 -3
  280. package/dist/ui/lib/use-controllable-open.d.ts +0 -1
  281. package/dist/ui/link.d.ts +0 -1
  282. package/dist/ui/link.js +1 -1
  283. package/dist/ui/menubar.d.ts +1 -2
  284. package/dist/ui/menubar.js +64 -64
  285. package/dist/ui/navigation-menu.d.ts +1 -2
  286. package/dist/ui/navigation-menu.js +67 -67
  287. package/dist/ui/number-input.d.ts +1 -2
  288. package/dist/ui/oauth-button/index.d.ts +1 -2
  289. package/dist/ui/oauth-button/oauth-button.d.ts +2 -3
  290. package/dist/ui/pagination.d.ts +0 -1
  291. package/dist/ui/pagination.js +1 -1
  292. package/dist/ui/popover.d.ts +1 -2
  293. package/dist/ui/progress-ring.d.ts +0 -1
  294. package/dist/ui/progress.d.ts +1 -2
  295. package/dist/ui/progress.js +30 -30
  296. package/dist/ui/radio.d.ts +2 -3
  297. package/dist/ui/radio.js +18 -18
  298. package/dist/ui/search-input.d.ts +0 -1
  299. package/dist/ui/segmented-control.d.ts +1 -2
  300. package/dist/ui/select.d.ts +1 -2
  301. package/dist/ui/select.js +55 -55
  302. package/dist/ui/separator.d.ts +1 -2
  303. package/dist/ui/separator.js +5 -5
  304. package/dist/ui/sheet.d.ts +1 -2
  305. package/dist/ui/sheet.js +45 -45
  306. package/dist/ui/sidebar.d.ts +4 -5
  307. package/dist/ui/sidebar.js +1 -1
  308. package/dist/ui/slider.d.ts +1 -2
  309. package/dist/ui/slider.js +14 -14
  310. package/dist/ui/spinner.d.ts +0 -1
  311. package/dist/ui/split-button.d.ts +14 -4
  312. package/dist/ui/split-button.d.ts.map +1 -1
  313. package/dist/ui/split-button.js.map +1 -1
  314. package/dist/ui/stat-card.d.ts +3 -4
  315. package/dist/ui/stat-flash.d.ts +1 -2
  316. package/dist/ui/stepper.d.ts +1 -2
  317. package/dist/ui/surface.js +1 -1
  318. package/dist/ui/switch.d.ts +2 -3
  319. package/dist/ui/switch.js +12 -12
  320. package/dist/ui/table-row-link.d.ts +0 -1
  321. package/dist/ui/tabs.d.ts +1 -2
  322. package/dist/ui/tabs.js +35 -35
  323. package/dist/ui/textarea.d.ts +1 -2
  324. package/dist/ui/toast-registry.d.ts +0 -1
  325. package/dist/ui/toast-types.js +1 -0
  326. package/dist/ui/toast.d.ts +2 -3
  327. package/dist/ui/toaster.d.ts +0 -1
  328. package/dist/ui/toggle-group.d.ts +2 -3
  329. package/dist/ui/toggle-group.js +14 -14
  330. package/dist/ui/toggle.d.ts +1 -2
  331. package/dist/ui/toggle.js +12 -12
  332. package/dist/ui/tooltip.d.ts +1 -2
  333. package/dist/ui/tooltip.js +21 -21
  334. package/dist/ui/tree-view/index.d.ts +3 -4
  335. package/dist/ui/tree-view/tree-item.d.ts +1 -2
  336. package/dist/ui/tree-view/tree-view.d.ts +1 -2
  337. package/dist/ui/tree-view/use-tree.d.ts +1 -2
  338. package/dist/ui/truncated-text.d.ts +0 -1
  339. package/docs/recipes/install-astro.md +2 -0
  340. package/docs/recipes/install-next-app-router.md +2 -0
  341. package/docs/recipes/install-remix.md +2 -0
  342. package/docs/recipes/install-tanstack-start.md +2 -0
  343. package/docs/recipes/install-vite.md +2 -0
  344. package/docs/recipes/troubleshoot.md +80 -0
  345. package/llms.txt +1 -1
  346. package/mcp-manifest.json +9 -1
  347. package/package.json +30 -5
  348. package/skill/SKILL.md +1 -1
  349. package/skill/references/components.md +1 -1
  350. package/skill/references/setup-astro.md +2 -0
  351. package/skill/references/setup-next-app-router.md +2 -0
  352. package/skill/references/setup-remix.md +2 -0
  353. package/skill/references/setup-tanstack-start.md +2 -0
  354. package/skill/references/setup-vite.md +2 -0
  355. package/skill/references/troubleshoot.md +80 -0
  356. package/dist/_chunks/primitives.js +0 -7596
  357. package/dist/_chunks/primitives.js.map +0 -1
@@ -1,5 +1,4 @@
1
- "use client";
2
- export { TreeItem, type TreeItemProps } from './tree-item';
3
- export { TreeView, type TreeViewProps } from './tree-view';
4
- export { type TreeNode, useTree } from './use-tree';
1
+ export { TreeItem, type TreeItemProps } from './tree-item.js';
2
+ export { TreeView, type TreeViewProps } from './tree-view.js';
3
+ export { type TreeNode, useTree } from './use-tree.js';
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,4 @@
1
- "use client";
2
- import { IconInput } from '../lib/icon-input';
1
+ import { IconInput } from '../lib/icon-input.js';
3
2
  import * as React from 'react';
4
3
  export interface TreeItemProps {
5
4
  /** Unique identifier for this tree item */
@@ -1,5 +1,4 @@
1
- "use client";
2
- import { TreeNode, useTree } from './use-tree';
1
+ import { TreeNode, useTree } from './use-tree.js';
3
2
  import * as React from 'react';
4
3
  interface TreeContextValue {
5
4
  tree: ReturnType<typeof useTree>;
@@ -1,5 +1,4 @@
1
- "use client";
2
- import { IconInput } from '../lib/icon-input';
1
+ import { IconInput } from '../lib/icon-input.js';
3
2
  export interface TreeNode {
4
3
  id: string;
5
4
  label: string;
@@ -1,4 +1,3 @@
1
- "use client";
2
1
  import * as React from 'react';
3
2
  type TruncateMode = 'end' | 'clamp' | 'middle';
4
3
  export interface TruncatedTextProps {
@@ -38,6 +38,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
38
38
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
39
39
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
40
40
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
41
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
42
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
41
43
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
42
44
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
43
45
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -51,6 +51,8 @@ Some components depend on third-party libraries that ship as optional peers. **I
51
51
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
52
52
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
53
53
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
54
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
55
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
54
56
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
55
57
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
56
58
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -34,6 +34,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
34
34
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
35
35
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
36
36
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
37
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
38
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
37
39
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
38
40
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
39
41
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -43,6 +43,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
43
43
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
44
44
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
45
45
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
46
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
47
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
46
48
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
47
49
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
48
50
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -49,6 +49,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
49
49
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
50
50
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
51
51
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
52
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
53
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
52
54
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
53
55
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
54
56
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -196,6 +196,8 @@ In dev mode, calling `toast()` without a mounted `<Toaster />` logs a one-time c
196
196
 
197
197
  **Diagnosis:** Should not happen since v0.37.0 — `use-sync-external-store` was moved to runtime dependencies and is auto-installed transitively.
198
198
 
199
+ **Why this dependency exists at all** (it is a hook built into React 18+, so it looks redundant): we do not use the shim ourselves. It is a TipTap transitive. TipTap's code is bundled into our `dist`, and that bundled chunk imports `use-sync-external-store/shim`. We externalize the shim rather than bundling it, because bundling forced a `createRequire` bridge into our Rollup runtime chunk that broke every Turbopack consumer. Externalized code must be resolvable from the consumer's tree, hence the declaration.
200
+
199
201
  If it still happens, install it explicitly:
200
202
 
201
203
  ```bash
@@ -204,6 +206,84 @@ pnpm add use-sync-external-store
204
206
 
205
207
  And open an issue at <https://github.com/devalok-design/shilp-sutra/issues> with the resolution graph (`pnpm why use-sync-external-store`) so we can fix the root cause.
206
208
 
209
+ ## Symptom: `Cannot find package 'sonner'` when you only imported a hook (or `'react-markdown'` from the AI barrel)
210
+
211
+ **Diagnosis:** you imported a *barrel* rather than the component itself, and the barrel re-exports something with an optional peer.
212
+
213
+ - `@devalok/shilp-sutra/hooks` re-exports `toast`, which needs `sonner`.
214
+ - `@devalok/shilp-sutra/ai` re-exports the block renderer, which needs `react-markdown`.
215
+
216
+ A bundler tree-shakes the unused branch away, so this is invisible in a client build. It bites at **runtime in Node** — SSR, a route handler, a test — where the import is evaluated for real.
217
+
218
+ Fix — import the specific module instead of the barrel:
219
+
220
+ ```ts
221
+ // needs sonner installed, because the barrel also exports toast
222
+ import { useIsMobile } from '@devalok/shilp-sutra/hooks'
223
+
224
+ // no optional peers at all
225
+ import { useIsMobile } from '@devalok/shilp-sutra/hooks/use-mobile'
226
+ ```
227
+
228
+ Every hook has its own subpath: `use-mobile`, `use-color-mode`, `use-touch-device`, `use-viewport-height`. Same rule applies across the library — a deep import never costs you more than that component needs.
229
+
230
+ ## Symptom: `error TS2305: Module '"react"' has no exported member 'ReactSVG'`
231
+
232
+ **This is an upstream `@tabler/icons-react` bug, not a shilp-sutra one** — but you will hit it following our install instructions, so it is documented here.
233
+
234
+ `@tabler/icons-react` (through 3.45.0, the current release) opens its type declarations with:
235
+
236
+ ```ts
237
+ import { ReactSVG, … } from 'react'
238
+ ```
239
+
240
+ React 18's types exported `ReactSVG`; React 19's removed it, keeping only `ReactSVGElement`. So on React 19 the icon package's own `.d.ts` fails to compile.
241
+
242
+ You only see it with **all three**: React 19, `skipLibCheck: false`, and a direct `@tabler/icons-react` import in your own code. React 18 is unaffected, and the default `skipLibCheck: true` suppresses it.
243
+
244
+ Workarounds, in order of preference:
245
+
246
+ 1. Leave `skipLibCheck: true` (the default in every framework scaffold). It suppresses errors inside dependency declarations — including this one.
247
+ 2. Import icons through our re-export instead of directly, so the broken declaration is never loaded into your program.
248
+ 3. Pin `@types/react` to 18 if your app is still on React 18.
249
+
250
+ There is nothing to fix on our side: we neither wrap nor re-declare Tabler's types. Track it upstream at <https://github.com/tabler/tabler-icons/issues>.
251
+
252
+ ## Symptom: `error TS2307: Cannot find module '@devalok/shilp-sutra/ui/button'` under `"moduleResolution": "node"`
253
+
254
+ **Diagnosis:** You are on TypeScript's legacy resolution mode, which predates and ignores the `exports` field in `package.json`. Our files live under `dist/`, and every public path is mapped through `exports` — legacy resolution looks for a literal `node_modules/@devalok/shilp-sutra/ui/button.js` and finds nothing.
255
+
256
+ **Supported resolution modes:**
257
+
258
+ | `moduleResolution` | Supported | Notes |
259
+ |---|---|---|
260
+ | `bundler` | ✅ | Recommended. Vite, Next.js, and most modern setups default to this. |
261
+ | `node16` / `nodenext` | ✅ | Fully supported since 0.55.0. |
262
+ | `node` (legacy) | ❌ | Cannot read `exports`. No subpath resolves. |
263
+
264
+ Fix — in your `tsconfig.json`:
265
+
266
+ ```jsonc
267
+ { "compilerOptions": { "moduleResolution": "bundler" } }
268
+ ```
269
+
270
+ ## Symptom: `require('@devalok/shilp-sutra')` throws `ERR_REQUIRE_ESM`
271
+
272
+ **Diagnosis:** The package is ESM-only — we ship no CommonJS build. Whether `require()` works depends on your Node version:
273
+
274
+ | Node | `require('@devalok/shilp-sutra/ui/button')` |
275
+ |---|---|
276
+ | 22.12+ / 23+ | ✅ Works — `require(esm)` is supported and unflagged. Verified against every entry point, including the full `./ui` barrel. |
277
+ | < 22.12 | ❌ `ERR_REQUIRE_ESM` |
278
+
279
+ On older Node, use a dynamic import:
280
+
281
+ ```js
282
+ const { Button } = await import('@devalok/shilp-sutra/ui/button')
283
+ ```
284
+
285
+ Or move the consuming file to ESM (`"type": "module"`, or a `.mjs` extension). Every supported framework target — Next.js, Vite, Remix, Astro, TanStack Start — handles the ESM entry natively; this only affects hand-written CJS scripts.
286
+
207
287
  ## Symptom: Storybook MCP server `localhost:6006/mcp` returns 404
208
288
 
209
289
  **Diagnosis:** Storybook dev server isn't running, OR the MCP plugin is not enabled in this Storybook version.
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # @devalok/shilp-sutra
2
2
 
3
- > Radix UI + Tailwind 4 (CSS-first) + CVA design system for Devalok apps, v0.54.0.
3
+ > Radix UI + Tailwind 4 (CSS-first) + CVA design system for Devalok apps, v0.55.0.
4
4
  > Built on the same primitives as shadcn/ui but with DIFFERENT prop APIs — never guess from shadcn knowledge; verify every prop.
5
5
  > This file is a ROUTER: it tells you what exists and where to get details. Do not look for prop tables here — fetch them per component (MCP tool or per-component doc file below).
6
6
 
package/mcp-manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "./mcp-manifest.schema.json",
3
3
  "manifestVersion": "1.2.0",
4
4
  "package": "@devalok/shilp-sutra",
5
- "packageVersion": "0.54.0",
5
+ "packageVersion": "0.55.0",
6
6
  "components": {
7
7
  "accordion": {
8
8
  "displayName": "Accordion",
@@ -11697,6 +11697,10 @@
11697
11697
  "version": "0.32.0",
11698
11698
  "summary": "Initial release"
11699
11699
  }
11700
+ ],
11701
+ "peers": [
11702
+ "@tiptap/pm",
11703
+ "@tiptap/react"
11700
11704
  ]
11701
11705
  },
11702
11706
  "rich-text-editor": {
@@ -11857,6 +11861,10 @@
11857
11861
  "version": "0.1.1",
11858
11862
  "summary": "**Fixed** Added content sync effect so editor updates when `content` prop changes externally"
11859
11863
  }
11864
+ ],
11865
+ "peers": [
11866
+ "@tiptap/pm",
11867
+ "@tiptap/react"
11860
11868
  ]
11861
11869
  },
11862
11870
  "schedule-view": {
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@devalok/shilp-sutra",
3
- "version": "0.54.0",
3
+ "version": "0.55.0",
4
4
  "description": "Devalok Design System — accessible React components, OKLCH design tokens, and Tailwind 4 CSS-first setup. Ships with AI-agent setup recipes.",
5
5
  "license": "MIT",
6
6
  "author": "Devalok Design & Strategy Studios <shilp-sutra@devalok.in>",
7
7
  "homepage": "https://shilp-sutra.devalok.in",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/devalok-design/shilp-sutra",
10
+ "url": "git+https://github.com/devalok-design/shilp-sutra.git",
11
11
  "directory": "packages/core"
12
12
  },
13
13
  "bugs": {
@@ -52,11 +52,8 @@
52
52
  "provenance": true
53
53
  },
54
54
  "dependencies": {
55
- "@emoji-mart/data": "^1.2.1",
56
55
  "class-variance-authority": "^0.7.1",
57
56
  "clsx": "^2.1.1",
58
- "diff": "^9.0.0",
59
- "frimousse": "^0.3.0",
60
57
  "tw-animate-css": "^1.4.0",
61
58
  "use-sync-external-store": "^1.6.0"
62
59
  },
@@ -735,6 +732,16 @@
735
732
  "import": "./dist/hooks/use-mobile.js",
736
733
  "default": "./dist/hooks/use-mobile.js"
737
734
  },
735
+ "./hooks/use-touch-device": {
736
+ "types": "./dist/hooks/use-touch-device.d.ts",
737
+ "import": "./dist/hooks/use-touch-device.js",
738
+ "default": "./dist/hooks/use-touch-device.js"
739
+ },
740
+ "./hooks/use-viewport-height": {
741
+ "types": "./dist/hooks/use-viewport-height.d.ts",
742
+ "import": "./dist/hooks/use-viewport-height.js",
743
+ "default": "./dist/hooks/use-viewport-height.js"
744
+ },
738
745
  "./utils": {
739
746
  "types": "./dist/ui/lib/utils.d.ts",
740
747
  "import": "./dist/ui/lib/utils.js",
@@ -850,6 +857,10 @@
850
857
  "@tabler/icons-react": "^3.0.0",
851
858
  "@tanstack/react-table": "^8.0.0",
852
859
  "@tanstack/react-virtual": "^3.0.0",
860
+ "@tiptap/core": "^3.28.0",
861
+ "@tiptap/pm": "^3.28.0",
862
+ "@tiptap/react": "^3.28.0",
863
+ "@tiptap/suggestion": "^3.28.0",
853
864
  "d3-array": "^3.0.0",
854
865
  "d3-axis": "^3.0.0",
855
866
  "d3-format": "^3.0.0",
@@ -879,6 +890,18 @@
879
890
  "@tanstack/react-virtual": {
880
891
  "optional": true
881
892
  },
893
+ "@tiptap/core": {
894
+ "optional": true
895
+ },
896
+ "@tiptap/pm": {
897
+ "optional": true
898
+ },
899
+ "@tiptap/react": {
900
+ "optional": true
901
+ },
902
+ "@tiptap/suggestion": {
903
+ "optional": true
904
+ },
882
905
  "d3-array": {
883
906
  "optional": true
884
907
  },
@@ -967,8 +990,10 @@
967
990
  "d3-time-format": "^4.1.0",
968
991
  "d3-transition": "^3.0.1",
969
992
  "date-fns": "^4.4.0",
993
+ "diff": "^9.0.0",
970
994
  "esbuild": "^0.28.1",
971
995
  "framer-motion": "^12.42.2",
996
+ "frimousse": "^0.3.0",
972
997
  "input-otp": "^1.4.2",
973
998
  "prosemirror-state": "^1.4.4",
974
999
  "react-colorful": "^5.8.0",
package/skill/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: shilp-sutra
3
3
  description: Add, configure, and use components from Devalok's shilp-sutra design system (@devalok/shilp-sutra) — a Tailwind 4 + React 19 + CVA library with 110+ accessible components, OKLCH design tokens, framer-motion animations, and per-component RSC-safe entry points. Use this skill whenever the user mentions shilp-sutra, Devalok, the @devalok npm scope, or asks to install/add/style/theme UI in any React project that already depends on the package — even if they don't name it explicitly. Use it instead of generic shadcn/ui, MUI, or Chakra knowledge when shilp-sutra is in the project. Covers Next.js (App + Pages), Vite, Astro, Remix, TanStack Start setup playbooks; component API and variant reference; brand token customization; Server Component import patterns; and a troubleshoot tree for the thirteen most common breakages.
4
4
  license: MIT
5
5
  metadata:
6
- version: "0.54.0"
6
+ version: "0.55.0"
7
7
  author: Devalok Design & Strategy Studios
8
8
  homepage: https://github.com/devalok-design/shilp-sutra
9
9
  npm: https://www.npmjs.com/package/@devalok/shilp-sutra
@@ -2,7 +2,7 @@
2
2
 
3
3
  # @devalok/shilp-sutra
4
4
 
5
- > Radix UI + Tailwind 4 (CSS-first) + CVA design system for Devalok apps, v0.54.0.
5
+ > Radix UI + Tailwind 4 (CSS-first) + CVA design system for Devalok apps, v0.55.0.
6
6
  > Built on the same primitives as shadcn/ui but with DIFFERENT prop APIs — never guess from shadcn knowledge; verify every prop.
7
7
  > This file is a ROUTER: it tells you what exists and where to get details. Do not look for prop tables here — fetch them per component (MCP tool or per-component doc file below).
8
8
 
@@ -40,6 +40,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
40
40
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
41
41
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
42
42
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
43
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
44
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
43
45
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
44
46
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
45
47
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -53,6 +53,8 @@ Some components depend on third-party libraries that ship as optional peers. **I
53
53
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
54
54
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
55
55
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
56
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
57
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
56
58
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
57
59
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
58
60
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -36,6 +36,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
36
36
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
37
37
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
38
38
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
39
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
40
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
39
41
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
40
42
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
41
43
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -45,6 +45,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
45
45
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
46
46
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
47
47
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
48
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
49
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
48
50
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
49
51
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
50
52
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -51,6 +51,8 @@ Some components ship hard peers as optional. **Install BEFORE first import.**
51
51
  | `@devalok/shilp-sutra/composed/date-picker` | `pnpm add date-fns` |
52
52
  | `@devalok/shilp-sutra/composed/file-preview` | `pnpm add react-pdf react-zoom-pan-pinch` |
53
53
  | `@devalok/shilp-sutra/composed/markdown-viewer` | `pnpm add react-markdown react-syntax-highlighter remark-gfm` |
54
+ | `@devalok/shilp-sutra/composed/rich-chat-input` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
55
+ | `@devalok/shilp-sutra/composed/rich-text-editor` | `pnpm add -D @tiptap/pm @tiptap/react` *(types only — the runtime is bundled)* |
54
56
  | `@devalok/shilp-sutra/composed/schedule-view` | `pnpm add date-fns` |
55
57
  | `@devalok/shilp-sutra/ui/charts` | `pnpm add d3-axis d3-scale d3-selection d3-shape` |
56
58
  | `@devalok/shilp-sutra/ui/data-table` | `pnpm add @tanstack/react-table @tanstack/react-virtual` |
@@ -198,6 +198,8 @@ In dev mode, calling `toast()` without a mounted `<Toaster />` logs a one-time c
198
198
 
199
199
  **Diagnosis:** Should not happen since v0.37.0 — `use-sync-external-store` was moved to runtime dependencies and is auto-installed transitively.
200
200
 
201
+ **Why this dependency exists at all** (it is a hook built into React 18+, so it looks redundant): we do not use the shim ourselves. It is a TipTap transitive. TipTap's code is bundled into our `dist`, and that bundled chunk imports `use-sync-external-store/shim`. We externalize the shim rather than bundling it, because bundling forced a `createRequire` bridge into our Rollup runtime chunk that broke every Turbopack consumer. Externalized code must be resolvable from the consumer's tree, hence the declaration.
202
+
201
203
  If it still happens, install it explicitly:
202
204
 
203
205
  ```bash
@@ -206,6 +208,84 @@ pnpm add use-sync-external-store
206
208
 
207
209
  And open an issue at <https://github.com/devalok-design/shilp-sutra/issues> with the resolution graph (`pnpm why use-sync-external-store`) so we can fix the root cause.
208
210
 
211
+ ## Symptom: `Cannot find package 'sonner'` when you only imported a hook (or `'react-markdown'` from the AI barrel)
212
+
213
+ **Diagnosis:** you imported a *barrel* rather than the component itself, and the barrel re-exports something with an optional peer.
214
+
215
+ - `@devalok/shilp-sutra/hooks` re-exports `toast`, which needs `sonner`.
216
+ - `@devalok/shilp-sutra/ai` re-exports the block renderer, which needs `react-markdown`.
217
+
218
+ A bundler tree-shakes the unused branch away, so this is invisible in a client build. It bites at **runtime in Node** — SSR, a route handler, a test — where the import is evaluated for real.
219
+
220
+ Fix — import the specific module instead of the barrel:
221
+
222
+ ```ts
223
+ // needs sonner installed, because the barrel also exports toast
224
+ import { useIsMobile } from '@devalok/shilp-sutra/hooks'
225
+
226
+ // no optional peers at all
227
+ import { useIsMobile } from '@devalok/shilp-sutra/hooks/use-mobile'
228
+ ```
229
+
230
+ Every hook has its own subpath: `use-mobile`, `use-color-mode`, `use-touch-device`, `use-viewport-height`. Same rule applies across the library — a deep import never costs you more than that component needs.
231
+
232
+ ## Symptom: `error TS2305: Module '"react"' has no exported member 'ReactSVG'`
233
+
234
+ **This is an upstream `@tabler/icons-react` bug, not a shilp-sutra one** — but you will hit it following our install instructions, so it is documented here.
235
+
236
+ `@tabler/icons-react` (through 3.45.0, the current release) opens its type declarations with:
237
+
238
+ ```ts
239
+ import { ReactSVG, … } from 'react'
240
+ ```
241
+
242
+ React 18's types exported `ReactSVG`; React 19's removed it, keeping only `ReactSVGElement`. So on React 19 the icon package's own `.d.ts` fails to compile.
243
+
244
+ You only see it with **all three**: React 19, `skipLibCheck: false`, and a direct `@tabler/icons-react` import in your own code. React 18 is unaffected, and the default `skipLibCheck: true` suppresses it.
245
+
246
+ Workarounds, in order of preference:
247
+
248
+ 1. Leave `skipLibCheck: true` (the default in every framework scaffold). It suppresses errors inside dependency declarations — including this one.
249
+ 2. Import icons through our re-export instead of directly, so the broken declaration is never loaded into your program.
250
+ 3. Pin `@types/react` to 18 if your app is still on React 18.
251
+
252
+ There is nothing to fix on our side: we neither wrap nor re-declare Tabler's types. Track it upstream at <https://github.com/tabler/tabler-icons/issues>.
253
+
254
+ ## Symptom: `error TS2307: Cannot find module '@devalok/shilp-sutra/ui/button'` under `"moduleResolution": "node"`
255
+
256
+ **Diagnosis:** You are on TypeScript's legacy resolution mode, which predates and ignores the `exports` field in `package.json`. Our files live under `dist/`, and every public path is mapped through `exports` — legacy resolution looks for a literal `node_modules/@devalok/shilp-sutra/ui/button.js` and finds nothing.
257
+
258
+ **Supported resolution modes:**
259
+
260
+ | `moduleResolution` | Supported | Notes |
261
+ |---|---|---|
262
+ | `bundler` | ✅ | Recommended. Vite, Next.js, and most modern setups default to this. |
263
+ | `node16` / `nodenext` | ✅ | Fully supported since 0.55.0. |
264
+ | `node` (legacy) | ❌ | Cannot read `exports`. No subpath resolves. |
265
+
266
+ Fix — in your `tsconfig.json`:
267
+
268
+ ```jsonc
269
+ { "compilerOptions": { "moduleResolution": "bundler" } }
270
+ ```
271
+
272
+ ## Symptom: `require('@devalok/shilp-sutra')` throws `ERR_REQUIRE_ESM`
273
+
274
+ **Diagnosis:** The package is ESM-only — we ship no CommonJS build. Whether `require()` works depends on your Node version:
275
+
276
+ | Node | `require('@devalok/shilp-sutra/ui/button')` |
277
+ |---|---|
278
+ | 22.12+ / 23+ | ✅ Works — `require(esm)` is supported and unflagged. Verified against every entry point, including the full `./ui` barrel. |
279
+ | < 22.12 | ❌ `ERR_REQUIRE_ESM` |
280
+
281
+ On older Node, use a dynamic import:
282
+
283
+ ```js
284
+ const { Button } = await import('@devalok/shilp-sutra/ui/button')
285
+ ```
286
+
287
+ Or move the consuming file to ESM (`"type": "module"`, or a `.mjs` extension). Every supported framework target — Next.js, Vite, Remix, Astro, TanStack Start — handles the ESM entry natively; this only affects hand-written CJS scripts.
288
+
209
289
  ## Symptom: Storybook MCP server `localhost:6006/mcp` returns 404
210
290
 
211
291
  **Diagnosis:** Storybook dev server isn't running, OR the MCP plugin is not enabled in this Storybook version.