@devalok/shilp-sutra 0.34.0 → 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 (541) hide show
  1. package/LICENSE +21 -21
  2. package/dist/_chunks/badge-group.js +306 -246
  3. package/dist/_chunks/badge-group.js.map +1 -0
  4. package/dist/_chunks/chat.js +518 -0
  5. package/dist/_chunks/chat.js.map +1 -0
  6. package/dist/_chunks/date-picker.js +748 -0
  7. package/dist/_chunks/date-picker.js.map +1 -0
  8. package/dist/_chunks/document-preview.js +109 -90
  9. package/dist/_chunks/document-preview.js.map +1 -0
  10. package/dist/_chunks/file-preview.js +492 -504
  11. package/dist/_chunks/file-preview.js.map +1 -0
  12. package/dist/_chunks/framer.js +5564 -5613
  13. package/dist/_chunks/framer.js.map +1 -0
  14. package/dist/_chunks/image-preview.js +127 -88
  15. package/dist/_chunks/image-preview.js.map +1 -0
  16. package/dist/_chunks/keybinding.js +12 -14
  17. package/dist/_chunks/keybinding.js.map +1 -0
  18. package/dist/_chunks/link-context.js +19 -16
  19. package/dist/_chunks/link-context.js.map +1 -0
  20. package/dist/_chunks/mention-suggestion.js +353 -350
  21. package/dist/_chunks/mention-suggestion.js.map +1 -0
  22. package/dist/_chunks/motion-provider.js +26 -20
  23. package/dist/_chunks/motion-provider.js.map +1 -0
  24. package/dist/_chunks/popover.js +123 -0
  25. package/dist/_chunks/popover.js.map +1 -0
  26. package/dist/_chunks/primitives.js +7585 -6426
  27. package/dist/_chunks/primitives.js.map +1 -0
  28. package/dist/_chunks/rich-chat-input.js +2071 -0
  29. package/dist/_chunks/rich-chat-input.js.map +1 -0
  30. package/dist/_chunks/rolldown-runtime.js +21 -0
  31. package/dist/_chunks/shared.js +126 -0
  32. package/dist/_chunks/shared.js.map +1 -0
  33. package/dist/_chunks/sonner.js +605 -734
  34. package/dist/_chunks/sonner.js.map +1 -0
  35. package/dist/_chunks/stat-row.js +418 -440
  36. package/dist/_chunks/stat-row.js.map +1 -0
  37. package/dist/_chunks/tiptap.js +15850 -19964
  38. package/dist/_chunks/tiptap.js.map +1 -0
  39. package/dist/_chunks/tree-view.js +231 -290
  40. package/dist/_chunks/tree-view.js.map +1 -0
  41. package/dist/_chunks/use-calendar.js +161 -208
  42. package/dist/_chunks/use-calendar.js.map +1 -0
  43. package/dist/_chunks/vendor-client.js +314 -2199
  44. package/dist/_chunks/vendor-client.js.map +1 -0
  45. package/dist/_chunks/vendor-utils.js +1721 -2978
  46. package/dist/_chunks/vendor-utils.js.map +1 -0
  47. package/dist/ai/ai-command-provider.js +23 -17
  48. package/dist/ai/ai-command-provider.js.map +1 -0
  49. package/dist/ai/block-renderer.js +68 -51
  50. package/dist/ai/block-renderer.js.map +1 -0
  51. package/dist/ai/blocks/index.js +2 -12
  52. package/dist/ai/blocks/loading.d.ts.map +1 -1
  53. package/dist/ai/command-bar.js +470 -519
  54. package/dist/ai/command-bar.js.map +1 -0
  55. package/dist/ai/conversation.js +241 -227
  56. package/dist/ai/conversation.js.map +1 -0
  57. package/dist/ai/devadoot-icon.d.ts.map +1 -1
  58. package/dist/ai/index.js +181 -167
  59. package/dist/ai/index.js.map +1 -0
  60. package/dist/ai/types.js +0 -1
  61. package/dist/composed/activity-feed.js +232 -202
  62. package/dist/composed/activity-feed.js.map +1 -0
  63. package/dist/composed/avatar-group.js +164 -222
  64. package/dist/composed/avatar-group.js.map +1 -0
  65. package/dist/composed/bulk-action-bar.js +166 -165
  66. package/dist/composed/bulk-action-bar.js.map +1 -0
  67. package/dist/composed/command-palette.js +290 -308
  68. package/dist/composed/command-palette.js.map +1 -0
  69. package/dist/composed/confirm-dialog.js +28 -48
  70. package/dist/composed/confirm-dialog.js.map +1 -0
  71. package/dist/composed/content-card.js +69 -108
  72. package/dist/composed/content-card.js.map +1 -0
  73. package/dist/composed/date-picker/index.js +3 -13
  74. package/dist/composed/deadline-indicator.js +68 -74
  75. package/dist/composed/deadline-indicator.js.map +1 -0
  76. package/dist/composed/emoji-picker.js +83 -110
  77. package/dist/composed/emoji-picker.js.map +1 -0
  78. package/dist/composed/empty-state.d.ts.map +1 -1
  79. package/dist/composed/empty-state.js +64 -103
  80. package/dist/composed/empty-state.js.map +1 -0
  81. package/dist/composed/error-boundary.js +129 -127
  82. package/dist/composed/error-boundary.js.map +1 -0
  83. package/dist/composed/file-preview.js +2 -12
  84. package/dist/composed/filter-bar.js +98 -130
  85. package/dist/composed/filter-bar.js.map +1 -0
  86. package/dist/composed/form-section.js +61 -45
  87. package/dist/composed/form-section.js.map +1 -0
  88. package/dist/composed/global-loading.js +34 -47
  89. package/dist/composed/global-loading.js.map +1 -0
  90. package/dist/composed/index.js +34 -92
  91. package/dist/composed/inline-edit.js +92 -107
  92. package/dist/composed/inline-edit.js.map +1 -0
  93. package/dist/composed/lib/string-utils.js +8 -8
  94. package/dist/composed/lib/string-utils.js.map +1 -0
  95. package/dist/composed/loading-skeleton.js +103 -171
  96. package/dist/composed/loading-skeleton.js.map +1 -0
  97. package/dist/composed/markdown-viewer.js +187 -139
  98. package/dist/composed/markdown-viewer.js.map +1 -0
  99. package/dist/composed/master-detail.js +147 -156
  100. package/dist/composed/master-detail.js.map +1 -0
  101. package/dist/composed/member-picker.js +46 -49
  102. package/dist/composed/member-picker.js.map +1 -0
  103. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  104. package/dist/composed/multi-select-popover.js +185 -179
  105. package/dist/composed/multi-select-popover.js.map +1 -0
  106. package/dist/composed/page-header.js +54 -76
  107. package/dist/composed/page-header.js.map +1 -0
  108. package/dist/composed/page-skeletons.js +143 -127
  109. package/dist/composed/page-skeletons.js.map +1 -0
  110. package/dist/composed/priority-indicator.js +105 -111
  111. package/dist/composed/priority-indicator.js.map +1 -0
  112. package/dist/composed/responsive-overlay.js +36 -41
  113. package/dist/composed/responsive-overlay.js.map +1 -0
  114. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  115. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  116. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  117. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  118. package/dist/composed/rich-chat-input.js +2 -1860
  119. package/dist/composed/rich-text-editor.js +561 -424
  120. package/dist/composed/rich-text-editor.js.map +1 -0
  121. package/dist/composed/schedule-view.js +134 -185
  122. package/dist/composed/schedule-view.js.map +1 -0
  123. package/dist/composed/simple-tooltip.js +21 -21
  124. package/dist/composed/simple-tooltip.js.map +1 -0
  125. package/dist/composed/status-badge.d.ts.map +1 -1
  126. package/dist/composed/status-badge.js +133 -137
  127. package/dist/composed/status-badge.js.map +1 -0
  128. package/dist/hooks/index.js +7 -12
  129. package/dist/hooks/use-color-mode.js +28 -25
  130. package/dist/hooks/use-color-mode.js.map +1 -0
  131. package/dist/hooks/use-mobile.js +13 -13
  132. package/dist/hooks/use-mobile.js.map +1 -0
  133. package/dist/hooks/use-toast.js +2 -4
  134. package/dist/hooks/use-touch-device.js +9 -11
  135. package/dist/hooks/use-touch-device.js.map +1 -0
  136. package/dist/hooks/use-viewport-height.js +14 -14
  137. package/dist/hooks/use-viewport-height.js.map +1 -0
  138. package/dist/motion/check-motion-provider.d.ts +3 -0
  139. package/dist/motion/check-motion-provider.d.ts.map +1 -0
  140. package/dist/motion/index.js +17 -11
  141. package/dist/motion/index.js.map +1 -0
  142. package/dist/motion/primitives-index.js +226 -186
  143. package/dist/motion/primitives-index.js.map +1 -0
  144. package/dist/primitives/react-accordion.d.ts +114 -114
  145. package/dist/primitives/react-alert-dialog.d.ts +51 -51
  146. package/dist/primitives/react-aspect-ratio.d.ts +11 -11
  147. package/dist/primitives/react-avatar.d.ts +24 -24
  148. package/dist/primitives/react-checkbox.d.ts +50 -50
  149. package/dist/primitives/react-collapsible.d.ts +33 -33
  150. package/dist/primitives/react-context-menu.d.ts +96 -96
  151. package/dist/primitives/react-dialog.d.ts +103 -103
  152. package/dist/primitives/react-dropdown-menu.d.ts +97 -97
  153. package/dist/primitives/react-hover-card.d.ts +79 -79
  154. package/dist/primitives/react-label.d.ts +10 -10
  155. package/dist/primitives/react-menu.d.ts +169 -169
  156. package/dist/primitives/react-menubar.d.ts +115 -115
  157. package/dist/primitives/react-navigation-menu.d.ts +126 -126
  158. package/dist/primitives/react-popover.d.ts +85 -85
  159. package/dist/primitives/react-progress.d.ts +19 -19
  160. package/dist/primitives/react-radio-group.d.ts +58 -58
  161. package/dist/primitives/react-roving-focus.d.ts +49 -49
  162. package/dist/primitives/react-select.d.ts +137 -137
  163. package/dist/primitives/react-separator.d.ts +21 -21
  164. package/dist/primitives/react-slider.d.ts +75 -75
  165. package/dist/primitives/react-switch.d.ts +21 -21
  166. package/dist/primitives/react-tabs.d.ts +56 -56
  167. package/dist/primitives/react-toast.d.ts +120 -120
  168. package/dist/primitives/react-toggle-group.d.ts +75 -75
  169. package/dist/primitives/react-toggle.d.ts +24 -24
  170. package/dist/primitives/react-tooltip.d.ts +101 -101
  171. package/dist/primitives/react-visually-hidden.d.ts +22 -22
  172. package/dist/shell/app-command-palette.d.ts +2 -0
  173. package/dist/shell/app-command-palette.d.ts.map +1 -1
  174. package/dist/shell/app-command-palette.js +94 -238
  175. package/dist/shell/app-command-palette.js.map +1 -0
  176. package/dist/shell/bottom-navbar.js +150 -190
  177. package/dist/shell/bottom-navbar.js.map +1 -0
  178. package/dist/shell/command-registry.js +13 -14
  179. package/dist/shell/command-registry.js.map +1 -0
  180. package/dist/shell/index.js +10 -20
  181. package/dist/shell/link-context.js +2 -5
  182. package/dist/shell/notification-center.d.ts.map +1 -1
  183. package/dist/shell/notification-center.js +263 -259
  184. package/dist/shell/notification-center.js.map +1 -0
  185. package/dist/shell/notification-preferences.js +241 -184
  186. package/dist/shell/notification-preferences.js.map +1 -0
  187. package/dist/shell/sidebar.js +251 -281
  188. package/dist/shell/sidebar.js.map +1 -0
  189. package/dist/shell/top-bar.js +203 -237
  190. package/dist/shell/top-bar.js.map +1 -0
  191. package/dist/tailwind/index.cjs +473 -442
  192. package/dist/tailwind/index.js +2 -4
  193. package/dist/tailwind/preset.d.ts.map +1 -1
  194. package/dist/tailwind/preset.js +490 -459
  195. package/dist/tailwind/preset.js.map +1 -0
  196. package/dist/tokens/index.css +4 -4
  197. package/dist/tokens/primitives.css +442 -442
  198. package/dist/tokens/semantic.css +742 -547
  199. package/dist/tokens/typography-semantic.css +123 -100
  200. package/dist/tokens/typography.css +422 -422
  201. package/dist/ui/accordion.js +52 -60
  202. package/dist/ui/accordion.js.map +1 -0
  203. package/dist/ui/alert-dialog.d.ts +6 -2
  204. package/dist/ui/alert-dialog.d.ts.map +1 -1
  205. package/dist/ui/alert-dialog.js +112 -156
  206. package/dist/ui/alert-dialog.js.map +1 -0
  207. package/dist/ui/alert.d.ts +3 -2
  208. package/dist/ui/alert.d.ts.map +1 -1
  209. package/dist/ui/alert.js +203 -99
  210. package/dist/ui/alert.js.map +1 -0
  211. package/dist/ui/aspect-ratio.js +13 -16
  212. package/dist/ui/aspect-ratio.js.map +1 -0
  213. package/dist/ui/autocomplete.d.ts.map +1 -1
  214. package/dist/ui/autocomplete.js +137 -148
  215. package/dist/ui/autocomplete.js.map +1 -0
  216. package/dist/ui/avatar.js +196 -169
  217. package/dist/ui/avatar.js.map +1 -0
  218. package/dist/ui/badge-group.js +2 -7
  219. package/dist/ui/badge-indicator.js +42 -51
  220. package/dist/ui/badge-indicator.js.map +1 -0
  221. package/dist/ui/badge.js +2 -15
  222. package/dist/ui/banner.js +76 -68
  223. package/dist/ui/banner.js.map +1 -0
  224. package/dist/ui/breadcrumb.js +65 -84
  225. package/dist/ui/breadcrumb.js.map +1 -0
  226. package/dist/ui/button-group.js +109 -102
  227. package/dist/ui/button-group.js.map +1 -0
  228. package/dist/ui/button-processing.d.ts.map +1 -1
  229. package/dist/ui/button-processing.js +89 -72
  230. package/dist/ui/button-processing.js.map +1 -0
  231. package/dist/ui/button.js +393 -279
  232. package/dist/ui/button.js.map +1 -0
  233. package/dist/ui/card.js +151 -157
  234. package/dist/ui/card.js.map +1 -0
  235. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  236. package/dist/ui/charts/chart-container.d.ts +2 -0
  237. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  238. package/dist/ui/charts/index.js +1025 -1319
  239. package/dist/ui/charts/index.js.map +1 -0
  240. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  241. package/dist/ui/chat/index.js +2 -11
  242. package/dist/ui/chat/message-input.d.ts.map +1 -1
  243. package/dist/ui/chat/message-list.d.ts +1 -1
  244. package/dist/ui/chat/message-list.d.ts.map +1 -1
  245. package/dist/ui/chat/message.d.ts.map +1 -1
  246. package/dist/ui/chat/system-message.d.ts.map +1 -1
  247. package/dist/ui/checkbox.d.ts.map +1 -1
  248. package/dist/ui/checkbox.js +82 -100
  249. package/dist/ui/checkbox.js.map +1 -0
  250. package/dist/ui/code.js +18 -32
  251. package/dist/ui/code.js.map +1 -0
  252. package/dist/ui/collapsible.js +21 -29
  253. package/dist/ui/collapsible.js.map +1 -0
  254. package/dist/ui/color-input.d.ts.map +1 -1
  255. package/dist/ui/color-input.js +455 -372
  256. package/dist/ui/color-input.js.map +1 -0
  257. package/dist/ui/color-swatch.js +60 -90
  258. package/dist/ui/color-swatch.js.map +1 -0
  259. package/dist/ui/combobox.d.ts +7 -0
  260. package/dist/ui/combobox.d.ts.map +1 -1
  261. package/dist/ui/combobox.js +278 -293
  262. package/dist/ui/combobox.js.map +1 -0
  263. package/dist/ui/container.js +18 -24
  264. package/dist/ui/container.js.map +1 -0
  265. package/dist/ui/context-menu.js +154 -203
  266. package/dist/ui/context-menu.js.map +1 -0
  267. package/dist/ui/data-table-body.js +116 -213
  268. package/dist/ui/data-table-body.js.map +1 -0
  269. package/dist/ui/data-table-bulk-actions.js +43 -59
  270. package/dist/ui/data-table-bulk-actions.js.map +1 -0
  271. package/dist/ui/data-table-card.js +84 -71
  272. package/dist/ui/data-table-card.js.map +1 -0
  273. package/dist/ui/data-table-context.js +39 -42
  274. package/dist/ui/data-table-context.js.map +1 -0
  275. package/dist/ui/data-table-header.js +98 -139
  276. package/dist/ui/data-table-header.js.map +1 -0
  277. package/dist/ui/data-table-pagination.js +69 -82
  278. package/dist/ui/data-table-pagination.js.map +1 -0
  279. package/dist/ui/data-table-toolbar.js +104 -130
  280. package/dist/ui/data-table-toolbar.js.map +1 -0
  281. package/dist/ui/data-table.js +281 -354
  282. package/dist/ui/data-table.js.map +1 -0
  283. package/dist/ui/devalok-grain.js +77 -66
  284. package/dist/ui/devalok-grain.js.map +1 -0
  285. package/dist/ui/dialog.js +118 -151
  286. package/dist/ui/dialog.js.map +1 -0
  287. package/dist/ui/dropdown-menu.js +152 -203
  288. package/dist/ui/dropdown-menu.js.map +1 -0
  289. package/dist/ui/file-upload.js +242 -266
  290. package/dist/ui/file-upload.js.map +1 -0
  291. package/dist/ui/form.d.ts +8 -0
  292. package/dist/ui/form.d.ts.map +1 -1
  293. package/dist/ui/form.js +62 -56
  294. package/dist/ui/form.js.map +1 -0
  295. package/dist/ui/hover-card.js +54 -54
  296. package/dist/ui/hover-card.js.map +1 -0
  297. package/dist/ui/icon-button.js +21 -26
  298. package/dist/ui/icon-button.js.map +1 -0
  299. package/dist/ui/icon-context.js +17 -17
  300. package/dist/ui/icon-context.js.map +1 -0
  301. package/dist/ui/icon-group.js +22 -29
  302. package/dist/ui/icon-group.js.map +1 -0
  303. package/dist/ui/icon.js +201 -121
  304. package/dist/ui/icon.js.map +1 -0
  305. package/dist/ui/index.d.ts +4 -4
  306. package/dist/ui/index.d.ts.map +1 -1
  307. package/dist/ui/index.js +90 -350
  308. package/dist/ui/index.js.map +1 -0
  309. package/dist/ui/input-otp.d.ts +12 -3
  310. package/dist/ui/input-otp.d.ts.map +1 -1
  311. package/dist/ui/input-otp.js +58 -48
  312. package/dist/ui/input-otp.js.map +1 -0
  313. package/dist/ui/input.d.ts.map +1 -1
  314. package/dist/ui/input.js +93 -169
  315. package/dist/ui/input.js.map +1 -0
  316. package/dist/ui/label.d.ts.map +1 -1
  317. package/dist/ui/label.js +23 -23
  318. package/dist/ui/label.js.map +1 -0
  319. package/dist/ui/lib/check-tokens.d.ts +3 -0
  320. package/dist/ui/lib/check-tokens.d.ts.map +1 -0
  321. package/dist/ui/lib/date-utils.js +14 -11
  322. package/dist/ui/lib/date-utils.js.map +1 -0
  323. package/dist/ui/lib/motion.d.ts +15 -4
  324. package/dist/ui/lib/motion.d.ts.map +1 -1
  325. package/dist/ui/lib/motion.js +83 -33
  326. package/dist/ui/lib/motion.js.map +1 -0
  327. package/dist/ui/lib/utils.js +39 -16
  328. package/dist/ui/lib/utils.js.map +1 -0
  329. package/dist/ui/link.js +13 -24
  330. package/dist/ui/link.js.map +1 -0
  331. package/dist/ui/menubar.js +132 -210
  332. package/dist/ui/menubar.js.map +1 -0
  333. package/dist/ui/navigation-menu.js +163 -193
  334. package/dist/ui/navigation-menu.js.map +1 -0
  335. package/dist/ui/number-input.d.ts +16 -1
  336. package/dist/ui/number-input.d.ts.map +1 -1
  337. package/dist/ui/number-input.js +102 -95
  338. package/dist/ui/number-input.js.map +1 -0
  339. package/dist/ui/pagination.js +122 -159
  340. package/dist/ui/pagination.js.map +1 -0
  341. package/dist/ui/popover.js +2 -131
  342. package/dist/ui/progress-ring.d.ts.map +1 -1
  343. package/dist/ui/progress-ring.js +133 -143
  344. package/dist/ui/progress-ring.js.map +1 -0
  345. package/dist/ui/progress.js +51 -95
  346. package/dist/ui/progress.js.map +1 -0
  347. package/dist/ui/radio.d.ts.map +1 -1
  348. package/dist/ui/radio.js +47 -49
  349. package/dist/ui/radio.js.map +1 -0
  350. package/dist/ui/search-input.js +51 -53
  351. package/dist/ui/search-input.js.map +1 -0
  352. package/dist/ui/segmented-control.d.ts +1 -1
  353. package/dist/ui/segmented-control.d.ts.map +1 -1
  354. package/dist/ui/segmented-control.js +95 -114
  355. package/dist/ui/segmented-control.js.map +1 -0
  356. package/dist/ui/select.d.ts.map +1 -1
  357. package/dist/ui/select.js +137 -157
  358. package/dist/ui/select.js.map +1 -0
  359. package/dist/ui/separator.d.ts.map +1 -1
  360. package/dist/ui/separator.js +18 -25
  361. package/dist/ui/separator.js.map +1 -0
  362. package/dist/ui/sheet.js +135 -163
  363. package/dist/ui/sheet.js.map +1 -0
  364. package/dist/ui/sidebar.js +357 -600
  365. package/dist/ui/sidebar.js.map +1 -0
  366. package/dist/ui/skeleton.js +179 -231
  367. package/dist/ui/skeleton.js.map +1 -0
  368. package/dist/ui/slider.d.ts +22 -3
  369. package/dist/ui/slider.d.ts.map +1 -1
  370. package/dist/ui/slider.js +62 -34
  371. package/dist/ui/slider.js.map +1 -0
  372. package/dist/ui/spinner.js +226 -205
  373. package/dist/ui/spinner.js.map +1 -0
  374. package/dist/ui/split-button.d.ts.map +1 -1
  375. package/dist/ui/split-button.js +228 -276
  376. package/dist/ui/split-button.js.map +1 -0
  377. package/dist/ui/stack.js +56 -70
  378. package/dist/ui/stack.js.map +1 -0
  379. package/dist/ui/stat-card.js +259 -251
  380. package/dist/ui/stat-card.js.map +1 -0
  381. package/dist/ui/status-dot.js +67 -63
  382. package/dist/ui/status-dot.js.map +1 -0
  383. package/dist/ui/stepper.d.ts +10 -0
  384. package/dist/ui/stepper.d.ts.map +1 -1
  385. package/dist/ui/stepper.js +124 -168
  386. package/dist/ui/stepper.js.map +1 -0
  387. package/dist/ui/switch.d.ts.map +1 -1
  388. package/dist/ui/switch.js +56 -55
  389. package/dist/ui/switch.js.map +1 -0
  390. package/dist/ui/table.js +57 -90
  391. package/dist/ui/table.js.map +1 -0
  392. package/dist/ui/tabs.d.ts +3 -1
  393. package/dist/ui/tabs.d.ts.map +1 -1
  394. package/dist/ui/tabs.js +159 -156
  395. package/dist/ui/tabs.js.map +1 -0
  396. package/dist/ui/text.d.ts +1 -1
  397. package/dist/ui/text.d.ts.map +1 -1
  398. package/dist/ui/text.js +60 -59
  399. package/dist/ui/text.js.map +1 -0
  400. package/dist/ui/textarea.js +40 -57
  401. package/dist/ui/textarea.js.map +1 -0
  402. package/dist/ui/toast-registry.d.ts +8 -0
  403. package/dist/ui/toast-registry.d.ts.map +1 -0
  404. package/dist/ui/toast-registry.js +13 -0
  405. package/dist/ui/toast-registry.js.map +1 -0
  406. package/dist/ui/toast-types.js +0 -1
  407. package/dist/ui/toast.d.ts.map +1 -1
  408. package/dist/ui/toast.js +559 -536
  409. package/dist/ui/toast.js.map +1 -0
  410. package/dist/ui/toaster.d.ts.map +1 -1
  411. package/dist/ui/toaster.js +24 -33
  412. package/dist/ui/toaster.js.map +1 -0
  413. package/dist/ui/toggle-group.d.ts +2 -0
  414. package/dist/ui/toggle-group.d.ts.map +1 -1
  415. package/dist/ui/toggle-group.js +44 -41
  416. package/dist/ui/toggle-group.js.map +1 -0
  417. package/dist/ui/toggle.d.ts +2 -0
  418. package/dist/ui/toggle.d.ts.map +1 -1
  419. package/dist/ui/toggle.js +44 -40
  420. package/dist/ui/toggle.js.map +1 -0
  421. package/dist/ui/tooltip.js +80 -65
  422. package/dist/ui/tooltip.js.map +1 -0
  423. package/dist/ui/tree-view/index.js +2 -6
  424. package/dist/ui/visually-hidden.js +12 -10
  425. package/dist/ui/visually-hidden.js.map +1 -0
  426. package/docs/components/_header.md +85 -85
  427. package/docs/components/composed/activity-feed.md +62 -62
  428. package/docs/components/composed/avatar-group.md +65 -65
  429. package/docs/components/composed/bulk-action-bar.md +40 -40
  430. package/docs/components/composed/command-palette.md +40 -40
  431. package/docs/components/composed/confirm-dialog.md +46 -46
  432. package/docs/components/composed/content-card.md +36 -36
  433. package/docs/components/composed/date-picker.md +130 -130
  434. package/docs/components/composed/deadline-indicator.md +27 -27
  435. package/docs/components/composed/emoji-picker.md +52 -52
  436. package/docs/components/composed/empty-state.md +53 -53
  437. package/docs/components/composed/error-boundary.md +29 -29
  438. package/docs/components/composed/file-preview.md +40 -40
  439. package/docs/components/composed/filter-bar.md +57 -57
  440. package/docs/components/composed/form-section.md +31 -31
  441. package/docs/components/composed/global-loading.md +27 -27
  442. package/docs/components/composed/inline-edit.md +35 -35
  443. package/docs/components/composed/loading-skeleton.md +51 -51
  444. package/docs/components/composed/markdown-viewer.md +27 -27
  445. package/docs/components/composed/master-detail.md +48 -48
  446. package/docs/components/composed/member-picker.md +35 -35
  447. package/docs/components/composed/multi-select-popover.md +62 -62
  448. package/docs/components/composed/page-header.md +41 -41
  449. package/docs/components/composed/page-skeletons.md +32 -32
  450. package/docs/components/composed/priority-indicator.md +32 -32
  451. package/docs/components/composed/responsive-overlay.md +34 -34
  452. package/docs/components/composed/rich-text-editor.md +82 -82
  453. package/docs/components/composed/schedule-view.md +39 -39
  454. package/docs/components/composed/simple-tooltip.md +33 -33
  455. package/docs/components/composed/status-badge.md +55 -55
  456. package/docs/components/shell/app-command-palette.md +44 -44
  457. package/docs/components/shell/bottom-navbar.md +52 -52
  458. package/docs/components/shell/command-registry.md +48 -48
  459. package/docs/components/shell/link-context.md +41 -41
  460. package/docs/components/shell/notification-center.md +63 -63
  461. package/docs/components/shell/notification-preferences.md +42 -42
  462. package/docs/components/shell/sidebar.md +92 -92
  463. package/docs/components/shell/top-bar.md +143 -143
  464. package/docs/components/ui/accordion.md +51 -51
  465. package/docs/components/ui/alert-dialog.md +61 -61
  466. package/docs/components/ui/alert.md +46 -46
  467. package/docs/components/ui/aspect-ratio.md +25 -25
  468. package/docs/components/ui/autocomplete.md +48 -48
  469. package/docs/components/ui/avatar.md +56 -56
  470. package/docs/components/ui/badge.md +83 -82
  471. package/docs/components/ui/banner.md +42 -42
  472. package/docs/components/ui/breadcrumb.md +37 -37
  473. package/docs/components/ui/button-group.md +41 -41
  474. package/docs/components/ui/button.md +94 -93
  475. package/docs/components/ui/card.md +52 -52
  476. package/docs/components/ui/charts.md +43 -43
  477. package/docs/components/ui/checkbox.md +36 -36
  478. package/docs/components/ui/chip.md +47 -47
  479. package/docs/components/ui/code.md +28 -28
  480. package/docs/components/ui/collapsible.md +40 -40
  481. package/docs/components/ui/color-input.md +91 -91
  482. package/docs/components/ui/color-swatch.md +25 -25
  483. package/docs/components/ui/combobox.md +54 -54
  484. package/docs/components/ui/container.md +26 -26
  485. package/docs/components/ui/context-menu.md +43 -43
  486. package/docs/components/ui/data-table-body.md +1 -1
  487. package/docs/components/ui/data-table-bulk-actions.md +1 -1
  488. package/docs/components/ui/data-table-card.md +1 -1
  489. package/docs/components/ui/data-table-context.md +1 -1
  490. package/docs/components/ui/data-table-header.md +1 -1
  491. package/docs/components/ui/data-table-pagination.md +1 -1
  492. package/docs/components/ui/data-table-toolbar.md +44 -44
  493. package/docs/components/ui/data-table.md +94 -94
  494. package/docs/components/ui/dialog.md +54 -54
  495. package/docs/components/ui/dropdown-menu.md +48 -48
  496. package/docs/components/ui/file-upload.md +41 -41
  497. package/docs/components/ui/form.md +51 -51
  498. package/docs/components/ui/hover-card.md +32 -32
  499. package/docs/components/ui/icon-button.md +40 -40
  500. package/docs/components/ui/input-otp.md +44 -44
  501. package/docs/components/ui/input.md +74 -74
  502. package/docs/components/ui/label.md +25 -25
  503. package/docs/components/ui/link.md +29 -29
  504. package/docs/components/ui/menubar.md +44 -44
  505. package/docs/components/ui/navigation-menu.md +46 -46
  506. package/docs/components/ui/number-input.md +44 -44
  507. package/docs/components/ui/pagination.md +48 -48
  508. package/docs/components/ui/popover.md +30 -30
  509. package/docs/components/ui/progress-ring.md +41 -41
  510. package/docs/components/ui/progress.md +34 -34
  511. package/docs/components/ui/radio.md +34 -34
  512. package/docs/components/ui/search-input.md +43 -43
  513. package/docs/components/ui/segmented-control.md +50 -50
  514. package/docs/components/ui/select.md +53 -53
  515. package/docs/components/ui/separator.md +32 -32
  516. package/docs/components/ui/sheet.md +47 -47
  517. package/docs/components/ui/sidebar.md +72 -72
  518. package/docs/components/ui/skeleton.md +77 -77
  519. package/docs/components/ui/slider.md +29 -29
  520. package/docs/components/ui/spinner.md +54 -54
  521. package/docs/components/ui/stack.md +39 -39
  522. package/docs/components/ui/stat-card.md +61 -61
  523. package/docs/components/ui/status-dot.md +26 -26
  524. package/docs/components/ui/stepper.md +49 -49
  525. package/docs/components/ui/switch.md +47 -47
  526. package/docs/components/ui/table.md +47 -47
  527. package/docs/components/ui/tabs.md +60 -60
  528. package/docs/components/ui/text.md +37 -37
  529. package/docs/components/ui/textarea.md +39 -39
  530. package/docs/components/ui/toast.md +65 -65
  531. package/docs/components/ui/toaster.md +47 -47
  532. package/docs/components/ui/toggle-group.md +43 -43
  533. package/docs/components/ui/toggle.md +37 -37
  534. package/docs/components/ui/tooltip.md +38 -38
  535. package/docs/components/ui/tree-view.md +65 -65
  536. package/docs/components/ui/visually-hidden.md +21 -21
  537. package/llms-full.txt +5266 -5264
  538. package/llms.txt +624 -580
  539. package/package.json +7 -8
  540. package/dist/_chunks/date-time-picker.js +0 -851
  541. package/dist/_chunks/typing-indicator.js +0 -565
@@ -1,53 +1,53 @@
1
- # EmptyState
2
-
3
- - Import: @devalok/shilp-sutra/composed/empty-state
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- Note: EmptyState was server-safe prior to v0.18.0 but is NO LONGER server-safe due to Framer Motion dependency.
8
-
9
- ## Props
10
- title: string (REQUIRED)
11
- description: string
12
- icon: ReactNode | ComponentType<{ className?: string }> (default: Devalok chakra icon)
13
- action: ReactNode (e.g. a Button)
14
- compact: boolean (smaller layout)
15
- iconSize: 'sm' | 'md' | 'lg' (default 'md', compact defaults to 'sm') — sm=h-ico-sm, md=h-ico-lg, lg=h-ico-xl
16
-
17
- ## Defaults
18
- iconSize="md" (compact defaults to "sm")
19
-
20
- ## Example
21
- ```jsx
22
- <EmptyState
23
- title="No tasks found"
24
- description="Create your first task to get started."
25
- action={<Button>Create Task</Button>}
26
- iconSize="lg"
27
- />
28
- ```
29
-
30
- ## Gotchas
31
- - `icon` accepts both JSX elements (`<IconFolder />`) and component references (`IconFolder`). Component references are auto-instantiated with correct sizing classes.
32
- - `iconSize` controls icon dimensions regardless of icon type. When `compact=true` and no `iconSize`, defaults to `'sm'`.
33
- - As of v0.18.0, EmptyState is NOT server-safe (Framer Motion dependency). Use per-component import in client components.
34
-
35
- ## Changes
36
- ### v0.18.0
37
- - **Changed** No longer server-safe due to Framer Motion dependency
38
-
39
- ### v0.16.0
40
- - **Added** `iconSize?: 'sm' | 'md' | 'lg'` — control icon dimensions
41
-
42
- ### v0.13.0
43
- - **Changed** `icon` prop now accepts `React.ComponentType<{ className?: string }>` in addition to `ReactNode` — component references are auto-instantiated
44
-
45
- ### v0.5.0
46
- - **Changed** `icon` prop changed from `TablerIcon` (component ref) to `React.ReactNode` — use `icon={<MyIcon />}` instead of `icon={MyIcon}`
47
- - **Changed** Default icon is now the Devalok swadhisthana chakra (inline SVG)
48
-
49
- ### v0.2.0
50
- - **Added** Identified as server-safe component (later reverted in v0.18.0)
51
-
52
- ### v0.1.0
53
- - **Added** Initial release
1
+ # EmptyState
2
+
3
+ - Import: @devalok/shilp-sutra/composed/empty-state
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ Note: EmptyState was server-safe prior to v0.18.0 but is NO LONGER server-safe due to Framer Motion dependency.
8
+
9
+ ## Props
10
+ title: string (REQUIRED)
11
+ description: string
12
+ icon: ReactNode | ComponentType<{ className?: string }> (default: Devalok chakra icon)
13
+ action: ReactNode (e.g. a Button)
14
+ compact: boolean (smaller layout)
15
+ iconSize: 'sm' | 'md' | 'lg' (default 'md', compact defaults to 'sm') — sm=h-ico-sm, md=h-ico-lg, lg=h-ico-xl
16
+
17
+ ## Defaults
18
+ iconSize="md" (compact defaults to "sm")
19
+
20
+ ## Example
21
+ ```jsx
22
+ <EmptyState
23
+ title="No tasks found"
24
+ description="Create your first task to get started."
25
+ action={<Button>Create Task</Button>}
26
+ iconSize="lg"
27
+ />
28
+ ```
29
+
30
+ ## Gotchas
31
+ - `icon` accepts both JSX elements (`<IconFolder />`) and component references (`IconFolder`). Component references are auto-instantiated with correct sizing classes.
32
+ - `iconSize` controls icon dimensions regardless of icon type. When `compact=true` and no `iconSize`, defaults to `'sm'`.
33
+ - As of v0.18.0, EmptyState is NOT server-safe (Framer Motion dependency). Use per-component import in client components.
34
+
35
+ ## Changes
36
+ ### v0.18.0
37
+ - **Changed** No longer server-safe due to Framer Motion dependency
38
+
39
+ ### v0.16.0
40
+ - **Added** `iconSize?: 'sm' | 'md' | 'lg'` — control icon dimensions
41
+
42
+ ### v0.13.0
43
+ - **Changed** `icon` prop now accepts `React.ComponentType<{ className?: string }>` in addition to `ReactNode` — component references are auto-instantiated
44
+
45
+ ### v0.5.0
46
+ - **Changed** `icon` prop changed from `TablerIcon` (component ref) to `React.ReactNode` — use `icon={<MyIcon />}` instead of `icon={MyIcon}`
47
+ - **Changed** Default icon is now the Devalok swadhisthana chakra (inline SVG)
48
+
49
+ ### v0.2.0
50
+ - **Added** Identified as server-safe component (later reverted in v0.18.0)
51
+
52
+ ### v0.1.0
53
+ - **Added** Initial release
@@ -1,29 +1,29 @@
1
- # ErrorDisplay
2
-
3
- - Import: @devalok/shilp-sutra/composed/error-boundary
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- error: unknown (REQUIRED — Error object, status object, or string)
9
- onReset: () => void (optional retry button)
10
-
11
- ## Defaults
12
- None
13
-
14
- ## Example
15
- ```jsx
16
- <ErrorDisplay error={error} onReset={() => refetch()} />
17
- ```
18
-
19
- ## Gotchas
20
- - Auto-detects HTTP status codes (404, 403, 500) and shows appropriate icon/message
21
- - Shows stack trace in development mode only
22
- - The import path is `error-boundary` but the component is named `ErrorDisplay`
23
-
24
- ## Changes
25
- ### v0.18.0
26
- - **Added** ErrorBoundary tests (13 new tests)
27
-
28
- ### v0.1.0
29
- - **Added** Initial release
1
+ # ErrorDisplay
2
+
3
+ - Import: @devalok/shilp-sutra/composed/error-boundary
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ error: unknown (REQUIRED — Error object, status object, or string)
9
+ onReset: () => void (optional retry button)
10
+
11
+ ## Defaults
12
+ None
13
+
14
+ ## Example
15
+ ```jsx
16
+ <ErrorDisplay error={error} onReset={() => refetch()} />
17
+ ```
18
+
19
+ ## Gotchas
20
+ - Auto-detects HTTP status codes (404, 403, 500) and shows appropriate icon/message
21
+ - Shows stack trace in development mode only
22
+ - The import path is `error-boundary` but the component is named `ErrorDisplay`
23
+
24
+ ## Changes
25
+ ### v0.18.0
26
+ - **Added** ErrorBoundary tests (13 new tests)
27
+
28
+ ### v0.1.0
29
+ - **Added** Initial release
@@ -1,40 +1,40 @@
1
- # FilePreview
2
-
3
- - Import: @devalok/shilp-sutra/composed/file-preview
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- url: string (file URL — required)
9
- type: "image" | "pdf" | "video" | "audio" | "embed" (auto-detected from URL/mimeType)
10
- mimeType: string (helps auto-detection)
11
- alt: string (image alt text)
12
- initialPage: number (PDF starting page, default 1)
13
- fileName: string (displayed in file info bar)
14
- fileSize: string (displayed as badge, e.g. "2.4 MB")
15
- onError: (error: string) => void (called on load failures)
16
-
17
- ## Defaults
18
- initialPage={1}, type auto-detected
19
-
20
- ## Features by Type
21
-
22
- **Image:** Pinch/scroll zoom (0.1x–8x), double-click toggle, floating toolbar (zoom %/reset/fullscreen), keyboard (+/-/0/F/Esc)
23
- **PDF:** react-pdf page nav (prev/next + direct input), keyboard (←→), crossfade between pages
24
- **Video:** Custom branded player, play overlay, auto-hiding controls, progress bar + scrub handle, mute, fullscreen
25
- **Audio:** Branded mini-player, full-width progress bar with hover tooltip + scrub handle, volume, file name display
26
- **Embed:** 16:9 aspect ratio, auto-converts YouTube/Vimeo/Figma/Loom URLs, 15s timeout
27
-
28
- ## Example
29
- ```jsx
30
- <FilePreview url="/uploads/mockup.png" fileName="mockup.png" fileSize="2.4 MB" />
31
- <FilePreview url="/docs/contract.pdf" initialPage={3} />
32
- <FilePreview url="https://youtube.com/watch?v=..." />
33
- ```
34
-
35
- ## Gotchas
36
- - Image/PDF lazy-loaded (Skeleton on first render)
37
- - PDF worker from unpkg CDN — configure workerSrc for offline apps
38
- - All types have error fallback with download link
39
- - Embed URLs auto-converted to embed format
40
- - Audio player doesn't show separate Download button (integrated in card)
1
+ # FilePreview
2
+
3
+ - Import: @devalok/shilp-sutra/composed/file-preview
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ url: string (file URL — required)
9
+ type: "image" | "pdf" | "video" | "audio" | "embed" (auto-detected from URL/mimeType)
10
+ mimeType: string (helps auto-detection)
11
+ alt: string (image alt text)
12
+ initialPage: number (PDF starting page, default 1)
13
+ fileName: string (displayed in file info bar)
14
+ fileSize: string (displayed as badge, e.g. "2.4 MB")
15
+ onError: (error: string) => void (called on load failures)
16
+
17
+ ## Defaults
18
+ initialPage={1}, type auto-detected
19
+
20
+ ## Features by Type
21
+
22
+ **Image:** Pinch/scroll zoom (0.1x–8x), double-click toggle, floating toolbar (zoom %/reset/fullscreen), keyboard (+/-/0/F/Esc)
23
+ **PDF:** react-pdf page nav (prev/next + direct input), keyboard (←→), crossfade between pages
24
+ **Video:** Custom branded player, play overlay, auto-hiding controls, progress bar + scrub handle, mute, fullscreen
25
+ **Audio:** Branded mini-player, full-width progress bar with hover tooltip + scrub handle, volume, file name display
26
+ **Embed:** 16:9 aspect ratio, auto-converts YouTube/Vimeo/Figma/Loom URLs, 15s timeout
27
+
28
+ ## Example
29
+ ```jsx
30
+ <FilePreview url="/uploads/mockup.png" fileName="mockup.png" fileSize="2.4 MB" />
31
+ <FilePreview url="/docs/contract.pdf" initialPage={3} />
32
+ <FilePreview url="https://youtube.com/watch?v=..." />
33
+ ```
34
+
35
+ ## Gotchas
36
+ - Image/PDF lazy-loaded (Skeleton on first render)
37
+ - PDF worker from unpkg CDN — configure workerSrc for offline apps
38
+ - All types have error fallback with download link
39
+ - Embed URLs auto-converted to embed format
40
+ - Audio player doesn't show separate Download button (integrated in card)
@@ -1,57 +1,57 @@
1
- # FilterBar
2
-
3
- - Import: @devalok/shilp-sutra/composed/filter-bar
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Exports
8
- FilterBar, FilterSelect, FilterMultiSelect
9
-
10
- ## Props
11
-
12
- ### FilterBar
13
- searchValue: string
14
- onSearchChange: (value: string) => void (renders SearchInput when provided)
15
- searchPlaceholder: string
16
- onClearAll: () => void (renders "Clear all" button when provided)
17
- size: "xs" | "sm" | "md" (propagated to all child controls via context)
18
- children: ReactNode (FilterSelect / FilterMultiSelect controls)
19
-
20
- ### FilterSelect
21
- label: string
22
- value: string
23
- onValueChange: (value: string) => void
24
- options: { value: string; label: string }[]
25
- allLabel: string (label for the "all" option)
26
-
27
- ### FilterMultiSelect
28
- label: string
29
- value: string[]
30
- onValueChange: (values: string[]) => void
31
- options: { value: string; label: string }[]
32
-
33
- ## Defaults
34
- size="sm", searchPlaceholder="Search...", allLabel="All"
35
-
36
- ## Example
37
- ```jsx
38
- <FilterBar searchValue={search} onSearchChange={setSearch} onClearAll={clearFilters}>
39
- <FilterSelect
40
- label="Status"
41
- value={status}
42
- onValueChange={setStatus}
43
- options={[{ value: 'active', label: 'Active' }, { value: 'done', label: 'Done' }]}
44
- />
45
- <FilterMultiSelect
46
- label="Assignees"
47
- value={assignees}
48
- onValueChange={setAssignees}
49
- options={memberOptions}
50
- />
51
- </FilterBar>
52
- ```
53
-
54
- ## Gotchas
55
- - FilterSelect and FilterMultiSelect must be direct children of FilterBar to inherit the size context
56
- - FilterSelect uses `"all"` as the sentinel value for "no filter" — do not use `"all"` as a real option value
57
- - Active filters get an accent border highlight automatically
1
+ # FilterBar
2
+
3
+ - Import: @devalok/shilp-sutra/composed/filter-bar
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Exports
8
+ FilterBar, FilterSelect, FilterMultiSelect
9
+
10
+ ## Props
11
+
12
+ ### FilterBar
13
+ searchValue: string
14
+ onSearchChange: (value: string) => void (renders SearchInput when provided)
15
+ searchPlaceholder: string
16
+ onClearAll: () => void (renders "Clear all" button when provided)
17
+ size: "xs" | "sm" | "md" (propagated to all child controls via context)
18
+ children: ReactNode (FilterSelect / FilterMultiSelect controls)
19
+
20
+ ### FilterSelect
21
+ label: string
22
+ value: string
23
+ onValueChange: (value: string) => void
24
+ options: { value: string; label: string }[]
25
+ allLabel: string (label for the "all" option)
26
+
27
+ ### FilterMultiSelect
28
+ label: string
29
+ value: string[]
30
+ onValueChange: (values: string[]) => void
31
+ options: { value: string; label: string }[]
32
+
33
+ ## Defaults
34
+ size="sm", searchPlaceholder="Search...", allLabel="All"
35
+
36
+ ## Example
37
+ ```jsx
38
+ <FilterBar searchValue={search} onSearchChange={setSearch} onClearAll={clearFilters}>
39
+ <FilterSelect
40
+ label="Status"
41
+ value={status}
42
+ onValueChange={setStatus}
43
+ options={[{ value: 'active', label: 'Active' }, { value: 'done', label: 'Done' }]}
44
+ />
45
+ <FilterMultiSelect
46
+ label="Assignees"
47
+ value={assignees}
48
+ onValueChange={setAssignees}
49
+ options={memberOptions}
50
+ />
51
+ </FilterBar>
52
+ ```
53
+
54
+ ## Gotchas
55
+ - FilterSelect and FilterMultiSelect must be direct children of FilterBar to inherit the size context
56
+ - FilterSelect uses `"all"` as the sentinel value for "no filter" — do not use `"all"` as a real option value
57
+ - Active filters get an accent border highlight automatically
@@ -1,31 +1,31 @@
1
- # FormSection
2
-
3
- - Import: @devalok/shilp-sutra/composed/form-section
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- title: string
9
- description: string (subtitle text below the title)
10
- collapsible: boolean (wraps content in a Collapsible)
11
- defaultOpen: boolean (initial open state when collapsible)
12
- children: ReactNode (form fields)
13
-
14
- ## Defaults
15
- collapsible={false}, defaultOpen={true}
16
-
17
- ## Example
18
- ```jsx
19
- <FormSection title="General" description="Basic project settings">
20
- <FormField .../>
21
- <FormField .../>
22
- </FormSection>
23
-
24
- <FormSection title="Advanced" collapsible defaultOpen={false}>
25
- <FormField .../>
26
- </FormSection>
27
- ```
28
-
29
- ## Gotchas
30
- - `defaultOpen` only applies when `collapsible={true}` — otherwise the section is always open
31
- - Renders a horizontal rule between the header and content automatically
1
+ # FormSection
2
+
3
+ - Import: @devalok/shilp-sutra/composed/form-section
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ title: string
9
+ description: string (subtitle text below the title)
10
+ collapsible: boolean (wraps content in a Collapsible)
11
+ defaultOpen: boolean (initial open state when collapsible)
12
+ children: ReactNode (form fields)
13
+
14
+ ## Defaults
15
+ collapsible={false}, defaultOpen={true}
16
+
17
+ ## Example
18
+ ```jsx
19
+ <FormSection title="General" description="Basic project settings">
20
+ <FormField .../>
21
+ <FormField .../>
22
+ </FormSection>
23
+
24
+ <FormSection title="Advanced" collapsible defaultOpen={false}>
25
+ <FormField .../>
26
+ </FormSection>
27
+ ```
28
+
29
+ ## Gotchas
30
+ - `defaultOpen` only applies when `collapsible={true}` — otherwise the section is always open
31
+ - Renders a horizontal rule between the header and content automatically
@@ -1,27 +1,27 @@
1
- # GlobalLoading
2
-
3
- - Import: @devalok/shilp-sutra/composed/global-loading
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- isLoading: boolean (REQUIRED)
9
-
10
- ## Defaults
11
- None
12
-
13
- ## Example
14
- ```jsx
15
- <GlobalLoading isLoading={isNavigating} />
16
- ```
17
-
18
- ## Gotchas
19
- - Fixed-position bar at top of viewport (z-toast layer)
20
- - Renders nothing when `isLoading` is false
21
-
22
- ## Changes
23
- ### v0.18.0
24
- - **Fixed** Track `setTimeout` with ref, add cleanup on unmount
25
-
26
- ### v0.1.0
27
- - **Added** Initial release
1
+ # GlobalLoading
2
+
3
+ - Import: @devalok/shilp-sutra/composed/global-loading
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ isLoading: boolean (REQUIRED)
9
+
10
+ ## Defaults
11
+ None
12
+
13
+ ## Example
14
+ ```jsx
15
+ <GlobalLoading isLoading={isNavigating} />
16
+ ```
17
+
18
+ ## Gotchas
19
+ - Fixed-position bar at top of viewport (z-toast layer)
20
+ - Renders nothing when `isLoading` is false
21
+
22
+ ## Changes
23
+ ### v0.18.0
24
+ - **Fixed** Track `setTimeout` with ref, add cleanup on unmount
25
+
26
+ ### v0.1.0
27
+ - **Added** Initial release
@@ -1,35 +1,35 @@
1
- # InlineEdit
2
-
3
- - Import: @devalok/shilp-sutra/composed/inline-edit
4
- - Server-safe: No
5
- - Category: composed
6
-
7
- ## Props
8
- value: string (current text value)
9
- onSave: (newValue: string) => void | Promise<void> (called on commit; async shows spinner)
10
- placeholder: string (shown when value is empty)
11
- textClassName: string (CSS class for the editable text, e.g. "text-ds-lg font-semibold")
12
- readOnly: boolean
13
- maxLength: number
14
- saving: boolean (external saving state — shows spinner, disables editing)
15
-
16
- ## Defaults
17
- placeholder="Click to edit", readOnly={false}, saving={false}
18
-
19
- ## Example
20
- ```jsx
21
- <InlineEdit
22
- value={title}
23
- onSave={(v) => updateTitle(v)}
24
- textClassName="text-ds-lg font-semibold"
25
- />
26
- ```
27
-
28
- ## Gotchas
29
- - Uses contentEditable — the text IS the editor. No input field appears.
30
- - Click to focus → cursor appears in text. Type to edit. Enter saves. Escape reverts.
31
- - Text is auto-selected on focus (like renaming a file in Finder)
32
- - Paste is restricted to plain text (no rich content)
33
- - The value is trimmed before calling `onSave`; if unchanged, `onSave` is not called
34
- - If `onSave` returns a Promise, a spinner is shown and editing is disabled until it resolves
35
- - On Promise rejection, the text reverts to the original value
1
+ # InlineEdit
2
+
3
+ - Import: @devalok/shilp-sutra/composed/inline-edit
4
+ - Server-safe: No
5
+ - Category: composed
6
+
7
+ ## Props
8
+ value: string (current text value)
9
+ onSave: (newValue: string) => void | Promise<void> (called on commit; async shows spinner)
10
+ placeholder: string (shown when value is empty)
11
+ textClassName: string (CSS class for the editable text, e.g. "text-ds-lg font-semibold")
12
+ readOnly: boolean
13
+ maxLength: number
14
+ saving: boolean (external saving state — shows spinner, disables editing)
15
+
16
+ ## Defaults
17
+ placeholder="Click to edit", readOnly={false}, saving={false}
18
+
19
+ ## Example
20
+ ```jsx
21
+ <InlineEdit
22
+ value={title}
23
+ onSave={(v) => updateTitle(v)}
24
+ textClassName="text-ds-lg font-semibold"
25
+ />
26
+ ```
27
+
28
+ ## Gotchas
29
+ - Uses contentEditable — the text IS the editor. No input field appears.
30
+ - Click to focus → cursor appears in text. Type to edit. Enter saves. Escape reverts.
31
+ - Text is auto-selected on focus (like renaming a file in Finder)
32
+ - Paste is restricted to plain text (no rich content)
33
+ - The value is trimmed before calling `onSave`; if unchanged, `onSave` is not called
34
+ - If `onSave` returns a Promise, a spinner is shown and editing is disabled until it resolves
35
+ - On Promise rejection, the text reverts to the original value
@@ -1,51 +1,51 @@
1
- # LoadingSkeleton
2
-
3
- - Import: @devalok/shilp-sutra/composed/loading-skeleton
4
- - Server-safe: Yes
5
- - Category: composed
6
-
7
- Exports: CardSkeleton, TableSkeleton, BoardSkeleton, ListSkeleton
8
-
9
- ## Props
10
-
11
- ### CardSkeleton
12
- className: string
13
-
14
- ### TableSkeleton
15
- rows: number (default: 5)
16
- columns: number (default: 4)
17
- className: string
18
-
19
- ### BoardSkeleton
20
- columns: number (default: 4)
21
- cardsPerColumn: number (default: 3)
22
- className: string
23
-
24
- ### ListSkeleton
25
- rows: number (default: 6)
26
- showAvatar: boolean (default: true)
27
- className: string
28
-
29
- ## Defaults
30
- TableSkeleton: rows=5, columns=4
31
- BoardSkeleton: columns=4, cardsPerColumn=3
32
- ListSkeleton: rows=6, showAvatar=true
33
-
34
- ## Example
35
- ```jsx
36
- <CardSkeleton />
37
- <TableSkeleton rows={8} columns={5} />
38
- <BoardSkeleton columns={3} cardsPerColumn={4} />
39
- <ListSkeleton rows={10} showAvatar={false} />
40
- ```
41
-
42
- ## Gotchas
43
- - Server-safe: can be imported directly in Next.js Server Components
44
- - These are pre-composed skeleton layouts — for individual skeleton shapes, use the `Skeleton` UI component
45
-
46
- ## Changes
47
- ### v0.2.0
48
- - **Added** Identified as server-safe component
49
-
50
- ### v0.1.0
51
- - **Added** Initial release
1
+ # LoadingSkeleton
2
+
3
+ - Import: @devalok/shilp-sutra/composed/loading-skeleton
4
+ - Server-safe: Yes
5
+ - Category: composed
6
+
7
+ Exports: CardSkeleton, TableSkeleton, BoardSkeleton, ListSkeleton
8
+
9
+ ## Props
10
+
11
+ ### CardSkeleton
12
+ className: string
13
+
14
+ ### TableSkeleton
15
+ rows: number (default: 5)
16
+ columns: number (default: 4)
17
+ className: string
18
+
19
+ ### BoardSkeleton
20
+ columns: number (default: 4)
21
+ cardsPerColumn: number (default: 3)
22
+ className: string
23
+
24
+ ### ListSkeleton
25
+ rows: number (default: 6)
26
+ showAvatar: boolean (default: true)
27
+ className: string
28
+
29
+ ## Defaults
30
+ TableSkeleton: rows=5, columns=4
31
+ BoardSkeleton: columns=4, cardsPerColumn=3
32
+ ListSkeleton: rows=6, showAvatar=true
33
+
34
+ ## Example
35
+ ```jsx
36
+ <CardSkeleton />
37
+ <TableSkeleton rows={8} columns={5} />
38
+ <BoardSkeleton columns={3} cardsPerColumn={4} />
39
+ <ListSkeleton rows={10} showAvatar={false} />
40
+ ```
41
+
42
+ ## Gotchas
43
+ - Server-safe: can be imported directly in Next.js Server Components
44
+ - These are pre-composed skeleton layouts — for individual skeleton shapes, use the `Skeleton` UI component
45
+
46
+ ## Changes
47
+ ### v0.2.0
48
+ - **Added** Identified as server-safe component
49
+
50
+ ### v0.1.0
51
+ - **Added** Initial release