@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,48 +1,48 @@
1
- # CommandRegistry
2
-
3
- - Import: @devalok/shilp-sutra/shell/command-registry
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- Exports: CommandRegistryProvider, useCommandRegistry
8
-
9
- ## Props
10
-
11
- ### CommandRegistryProvider
12
- children: ReactNode
13
- registry: CommandRegistry (REQUIRED)
14
-
15
- CommandRegistry: { pages: CommandPageItem[], adminPages: CommandPageItem[] }
16
- CommandPageItem: { id: string, label: string, icon: ReactNode, path: string, keywords?: string[] }
17
-
18
- ### useCommandRegistry hook
19
- Returns: CommandRegistry | null
20
-
21
- ## Defaults
22
- None
23
-
24
- ## Example
25
- ```jsx
26
- <CommandRegistryProvider
27
- registry={{
28
- pages: [
29
- { id: 'dashboard', label: 'Dashboard', icon: <IconHome />, path: '/dashboard' },
30
- { id: 'projects', label: 'Projects', icon: <IconFolder />, path: '/projects' },
31
- ],
32
- adminPages: [
33
- { id: 'users', label: 'Manage Users', icon: <IconUsers />, path: '/admin/users' },
34
- ],
35
- }}
36
- >
37
- <App />
38
- </CommandRegistryProvider>
39
- ```
40
-
41
- ## Gotchas
42
- - Provides the command registry context consumed by AppCommandPalette
43
- - Place at app root, wrapping both AppCommandPalette and the rest of the app
44
- - `useCommandRegistry()` returns `null` if no provider is found — handle this case
45
-
46
- ## Changes
47
- ### v0.1.0
48
- - **Added** Initial release
1
+ # CommandRegistry
2
+
3
+ - Import: @devalok/shilp-sutra/shell/command-registry
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ Exports: CommandRegistryProvider, useCommandRegistry
8
+
9
+ ## Props
10
+
11
+ ### CommandRegistryProvider
12
+ children: ReactNode
13
+ registry: CommandRegistry (REQUIRED)
14
+
15
+ CommandRegistry: { pages: CommandPageItem[], adminPages: CommandPageItem[] }
16
+ CommandPageItem: { id: string, label: string, icon: ReactNode, path: string, keywords?: string[] }
17
+
18
+ ### useCommandRegistry hook
19
+ Returns: CommandRegistry | null
20
+
21
+ ## Defaults
22
+ None
23
+
24
+ ## Example
25
+ ```jsx
26
+ <CommandRegistryProvider
27
+ registry={{
28
+ pages: [
29
+ { id: 'dashboard', label: 'Dashboard', icon: <IconHome />, path: '/dashboard' },
30
+ { id: 'projects', label: 'Projects', icon: <IconFolder />, path: '/projects' },
31
+ ],
32
+ adminPages: [
33
+ { id: 'users', label: 'Manage Users', icon: <IconUsers />, path: '/admin/users' },
34
+ ],
35
+ }}
36
+ >
37
+ <App />
38
+ </CommandRegistryProvider>
39
+ ```
40
+
41
+ ## Gotchas
42
+ - Provides the command registry context consumed by AppCommandPalette
43
+ - Place at app root, wrapping both AppCommandPalette and the rest of the app
44
+ - `useCommandRegistry()` returns `null` if no provider is found — handle this case
45
+
46
+ ## Changes
47
+ ### v0.1.0
48
+ - **Added** Initial release
@@ -1,41 +1,41 @@
1
- # LinkProvider
2
-
3
- - Import: @devalok/shilp-sutra/shell/link-context
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- Exports: LinkProvider, useLink
8
-
9
- ## Props
10
-
11
- ### LinkProvider
12
- component: ForwardRefComponent (e.g. Next.js Link, Remix Link)
13
- children: ReactNode
14
-
15
- ### useLink hook
16
- Returns: LinkComponent
17
-
18
- ## Defaults
19
- Without LinkProvider, shell components render plain `<a>` tags
20
-
21
- ## Example
22
- ```jsx
23
- import Link from 'next/link'
24
-
25
- <LinkProvider component={Link}>
26
- <AppSidebar ... />
27
- <BottomNavbar ... />
28
- </LinkProvider>
29
- ```
30
-
31
- ## Gotchas
32
- - Without LinkProvider, shell components render plain `<a>` tags (full page reloads)
33
- - Place at app root, wrapping all shell components that render navigation links
34
- - The `component` prop must be a forwardRef component (Next.js Link, Remix Link, etc.)
35
-
36
- ## Changes
37
- ### v0.1.1
38
- - **Added** Shell components decoupled from Next.js — replaced hard `next/link` import with polymorphic `LinkProvider`/`useLink` context
39
-
40
- ### v0.1.0
41
- - **Added** Initial release (with hardcoded Next.js Link dependency)
1
+ # LinkProvider
2
+
3
+ - Import: @devalok/shilp-sutra/shell/link-context
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ Exports: LinkProvider, useLink
8
+
9
+ ## Props
10
+
11
+ ### LinkProvider
12
+ component: ForwardRefComponent (e.g. Next.js Link, Remix Link)
13
+ children: ReactNode
14
+
15
+ ### useLink hook
16
+ Returns: LinkComponent
17
+
18
+ ## Defaults
19
+ Without LinkProvider, shell components render plain `<a>` tags
20
+
21
+ ## Example
22
+ ```jsx
23
+ import Link from 'next/link'
24
+
25
+ <LinkProvider component={Link}>
26
+ <AppSidebar ... />
27
+ <BottomNavbar ... />
28
+ </LinkProvider>
29
+ ```
30
+
31
+ ## Gotchas
32
+ - Without LinkProvider, shell components render plain `<a>` tags (full page reloads)
33
+ - Place at app root, wrapping all shell components that render navigation links
34
+ - The `component` prop must be a forwardRef component (Next.js Link, Remix Link, etc.)
35
+
36
+ ## Changes
37
+ ### v0.1.1
38
+ - **Added** Shell components decoupled from Next.js — replaced hard `next/link` import with polymorphic `LinkProvider`/`useLink` context
39
+
40
+ ### v0.1.0
41
+ - **Added** Initial release (with hardcoded Next.js Link dependency)
@@ -1,63 +1,63 @@
1
- # NotificationCenter
2
-
3
- - Import: @devalok/shilp-sutra/shell/notification-center
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- ## Props
8
- notifications?: Notification[]
9
- unreadCount?: number (derived from notifications if not provided)
10
- open?: boolean (controlled mode)
11
- onOpenChange?: (open: boolean) => void
12
- isLoading?: boolean
13
- hasMore?: boolean
14
- onFetchMore?: () => void
15
- onMarkRead?: (id: string) => void
16
- onMarkAllRead?: () => void
17
- onNavigate?: (path: string) => void — called when a notification with a route is clicked
18
- getNotificationRoute?: (notification: Notification) => string | null — returns route for a notification; defaults to () => null
19
- footerSlot?: ReactNode — content rendered in a sticky footer below the scroll area
20
- emptyState?: ReactNode — replaces default empty state UI
21
- headerActions?: ReactNode — extra action buttons after "Mark all read"
22
- popoverClassName?: string — override default popover dimensions
23
- onDismiss?: (id: string) => void — when provided, each notification shows a dismiss button
24
-
25
- Notification: { id: string, title: string, body?: string | null, tier: 'INFO' | 'IMPORTANT' | 'CRITICAL', isRead: boolean, createdAt: string, entityType?: string | null, entityId?: string | null, projectId?: string | null, project?: { title: string } | null, actions?: NotificationAction[] }
26
- NotificationAction: { label: string, variant?: 'primary' | 'default' | 'danger', onClick: (id: string) => void }
27
-
28
- ## Defaults
29
- getNotificationRoute defaults to () => null (no hardcoded routes)
30
-
31
- ## Example
32
- ```jsx
33
- <NotificationCenter
34
- notifications={notifications}
35
- onMarkRead={markAsRead}
36
- onMarkAllRead={markAllAsRead}
37
- onNavigate={(path) => router.push(path)}
38
- getNotificationRoute={(n) => n.entityType === 'task' ? `/tasks/${n.entityId}` : null}
39
- onDismiss={(id) => dismissNotification(id)}
40
- footerSlot={<Link href="/notifications">View all notifications</Link>}
41
- emptyState={<p>You're all caught up!</p>}
42
- headerActions={<Button variant="ghost" size="sm">Settings</Button>}
43
- popoverClassName="w-[480px]"
44
- />
45
- ```
46
-
47
- ## Gotchas
48
- - Typically rendered inside TopBar's `notificationSlot` prop
49
- - `getNotificationRoute` must be provided for clickable notifications — no hardcoded routes
50
- - Tier dot doubles as read/unread marker (opacity-based)
51
- - `onDismiss` enables per-notification dismiss buttons when provided
52
-
53
- ## Changes
54
- ### v0.13.0
55
- - **Added** `NotificationAction` type and `actions` prop on `Notification` — inline action buttons per notification row
56
- - **Fixed** Tier dot now doubles as read/unread marker (opacity-based) — removed separate unread indicator dot
57
-
58
- ### v0.1.1
59
- - **Changed** Decoupled from Next.js via LinkProvider
60
- - **Fixed** Added `aria-label` to bell button
61
-
62
- ### v0.1.0
63
- - **Added** Initial release
1
+ # NotificationCenter
2
+
3
+ - Import: @devalok/shilp-sutra/shell/notification-center
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ ## Props
8
+ notifications?: Notification[]
9
+ unreadCount?: number (derived from notifications if not provided)
10
+ open?: boolean (controlled mode)
11
+ onOpenChange?: (open: boolean) => void
12
+ isLoading?: boolean
13
+ hasMore?: boolean
14
+ onFetchMore?: () => void
15
+ onMarkRead?: (id: string) => void
16
+ onMarkAllRead?: () => void
17
+ onNavigate?: (path: string) => void — called when a notification with a route is clicked
18
+ getNotificationRoute?: (notification: Notification) => string | null — returns route for a notification; defaults to () => null
19
+ footerSlot?: ReactNode — content rendered in a sticky footer below the scroll area
20
+ emptyState?: ReactNode — replaces default empty state UI
21
+ headerActions?: ReactNode — extra action buttons after "Mark all read"
22
+ popoverClassName?: string — override default popover dimensions
23
+ onDismiss?: (id: string) => void — when provided, each notification shows a dismiss button
24
+
25
+ Notification: { id: string, title: string, body?: string | null, tier: 'INFO' | 'IMPORTANT' | 'CRITICAL', isRead: boolean, createdAt: string, entityType?: string | null, entityId?: string | null, projectId?: string | null, project?: { title: string } | null, actions?: NotificationAction[] }
26
+ NotificationAction: { label: string, variant?: 'primary' | 'default' | 'danger', onClick: (id: string) => void }
27
+
28
+ ## Defaults
29
+ getNotificationRoute defaults to () => null (no hardcoded routes)
30
+
31
+ ## Example
32
+ ```jsx
33
+ <NotificationCenter
34
+ notifications={notifications}
35
+ onMarkRead={markAsRead}
36
+ onMarkAllRead={markAllAsRead}
37
+ onNavigate={(path) => router.push(path)}
38
+ getNotificationRoute={(n) => n.entityType === 'task' ? `/tasks/${n.entityId}` : null}
39
+ onDismiss={(id) => dismissNotification(id)}
40
+ footerSlot={<Link href="/notifications">View all notifications</Link>}
41
+ emptyState={<p>You're all caught up!</p>}
42
+ headerActions={<Button variant="ghost" size="sm">Settings</Button>}
43
+ popoverClassName="w-[480px]"
44
+ />
45
+ ```
46
+
47
+ ## Gotchas
48
+ - Typically rendered inside TopBar's `notificationSlot` prop
49
+ - `getNotificationRoute` must be provided for clickable notifications — no hardcoded routes
50
+ - Tier dot doubles as read/unread marker (opacity-based)
51
+ - `onDismiss` enables per-notification dismiss buttons when provided
52
+
53
+ ## Changes
54
+ ### v0.13.0
55
+ - **Added** `NotificationAction` type and `actions` prop on `Notification` — inline action buttons per notification row
56
+ - **Fixed** Tier dot now doubles as read/unread marker (opacity-based) — removed separate unread indicator dot
57
+
58
+ ### v0.1.1
59
+ - **Changed** Decoupled from Next.js via LinkProvider
60
+ - **Fixed** Added `aria-label` to bell button
61
+
62
+ ### v0.1.0
63
+ - **Added** Initial release
@@ -1,42 +1,42 @@
1
- # NotificationPreferences
2
-
3
- - Import: @devalok/shilp-sutra/shell/notification-preferences
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- ## Props
8
- preferences?: NotificationPreference[]
9
- projects?: NotificationProject[]
10
- isLoading?: boolean
11
- onSave?: (preference: { projectId, channel, minTier, muted }) => void | Promise<void>
12
- onToggleMute?: (preference: NotificationPreference) => void | Promise<void>
13
- onUpdateTier?: (preference: NotificationPreference, newTier: string) => void | Promise<void>
14
- onDelete?: (preferenceId: string) => void | Promise<void>
15
- className?: string
16
-
17
- NotificationPreference: { id: string, userId?: string, projectId: string | null, channel: string, minTier: string, muted: boolean }
18
- NotificationProject: { id: string, title: string }
19
-
20
- ## Defaults
21
- None
22
-
23
- ## Example
24
- ```jsx
25
- <NotificationPreferences
26
- preferences={prefs}
27
- projects={projectList}
28
- onSave={handleSavePref}
29
- onToggleMute={handleToggleMute}
30
- onUpdateTier={handleUpdateTier}
31
- onDelete={handleDeletePref}
32
- />
33
- ```
34
-
35
- ## Gotchas
36
- - Manages per-project notification preferences (channel, tier, mute)
37
- - All callback props support async (Promise<void>) for server-side operations
38
- - Typically rendered on a settings/preferences page
39
-
40
- ## Changes
41
- ### v0.1.0
42
- - **Added** Initial release
1
+ # NotificationPreferences
2
+
3
+ - Import: @devalok/shilp-sutra/shell/notification-preferences
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ ## Props
8
+ preferences?: NotificationPreference[]
9
+ projects?: NotificationProject[]
10
+ isLoading?: boolean
11
+ onSave?: (preference: { projectId, channel, minTier, muted }) => void | Promise<void>
12
+ onToggleMute?: (preference: NotificationPreference) => void | Promise<void>
13
+ onUpdateTier?: (preference: NotificationPreference, newTier: string) => void | Promise<void>
14
+ onDelete?: (preferenceId: string) => void | Promise<void>
15
+ className?: string
16
+
17
+ NotificationPreference: { id: string, userId?: string, projectId: string | null, channel: string, minTier: string, muted: boolean }
18
+ NotificationProject: { id: string, title: string }
19
+
20
+ ## Defaults
21
+ None
22
+
23
+ ## Example
24
+ ```jsx
25
+ <NotificationPreferences
26
+ preferences={prefs}
27
+ projects={projectList}
28
+ onSave={handleSavePref}
29
+ onToggleMute={handleToggleMute}
30
+ onUpdateTier={handleUpdateTier}
31
+ onDelete={handleDeletePref}
32
+ />
33
+ ```
34
+
35
+ ## Gotchas
36
+ - Manages per-project notification preferences (channel, tier, mute)
37
+ - All callback props support async (Promise<void>) for server-side operations
38
+ - Typically rendered on a settings/preferences page
39
+
40
+ ## Changes
41
+ ### v0.1.0
42
+ - **Added** Initial release
@@ -1,92 +1,92 @@
1
- # AppSidebar
2
-
3
- - Import: @devalok/shilp-sutra/shell/sidebar
4
- - Server-safe: No
5
- - Category: shell
6
-
7
- ## Props
8
- currentPath?: string (highlights active nav item)
9
- user?: SidebarUser | null — { name, email?, image?, designation?, role? }
10
- navGroups?: NavGroup[] — { label: string, items: NavItem[], action?: ReactNode }
11
- logo?: ReactNode
12
- footerLinks?: Array<{ label: string, href: string }> (DEPRECATED — use footer.links)
13
- footer?: SidebarFooterConfig — structured footer (takes precedence over footerLinks)
14
- headerSlot?: ReactNode — content between user info and navigation
15
- preFooterSlot?: ReactNode — content between navigation and footer
16
- preFooterClassName?: string — className on preFooterSlot wrapper div
17
- renderItem?: (item: NavItem, defaultRender: () => ReactNode) => ReactNode | null — custom item rendering
18
- className?: string
19
-
20
- NavItem: { title: string, href: string, icon: ReactNode, exact?: boolean, badge?: string | number, children?: NavSubItem[], defaultOpen?: boolean }
21
- NavSubItem: { title: string, href: string, icon?: ReactNode, exact?: boolean }
22
- NavGroup: { label: string, items: NavItem[], action?: ReactNode }
23
- SidebarUser: { name: string, email?: string, image?: string | null, designation?: string, role?: string }
24
- SidebarFooterConfig: { links?: Array<{ label: string, href: string }>, version?: string | { label: string, href: string }, slot?: ReactNode, promo?: SidebarPromo }
25
- SidebarPromo: { text: string, icon?: ReactNode, action?: { label: string, href?: string, onClick?: () => void }, onDismiss?: () => void }
26
-
27
- ## Defaults
28
- None
29
-
30
- ## Example
31
- ```jsx
32
- <AppSidebar
33
- currentPath="/dashboard"
34
- user={{ name: 'Jane', email: 'jane@example.com' }}
35
- navGroups={[{
36
- label: 'Main',
37
- items: [
38
- { title: 'Dashboard', href: '/dashboard', icon: <IconHome /> },
39
- { title: 'Projects', href: '/projects', icon: <IconFolder />, children: [
40
- { title: 'Karm V2', href: '/projects/abc/board' },
41
- ]},
42
- ],
43
- }]}
44
- footer={{
45
- links: [{ label: 'Terms', href: '/terms' }],
46
- version: { label: 'v2.4.1', href: '/changelog' },
47
- }}
48
- />
49
- ```
50
-
51
- ## Gotchas
52
- - Must be wrapped in SidebarProvider (from ui/sidebar)
53
- - Requires LinkProvider for framework-specific link components
54
- - `footerLinks` is deprecated — use `footer.links` instead
55
- - `renderItem` returning `null` falls back to default rendering
56
- - Collapsible nav items auto-open when a child is active (matching `currentPath`)
57
- - Badge numbers > 99 display as "99+"
58
-
59
- ## Changes
60
- ### v0.19.0
61
- - **Changed** Background elevated from `bg-surface-1` to `bg-surface-2` for visual hierarchy above app background
62
- - **Changed** Interactive hover states bumped from `surface-2` to `surface-3`
63
-
64
- ### v0.18.0
65
- - **Fixed** `bg-interactive-subtle` changed to `bg-accent-2` (OKLCH migration)
66
-
67
- ### v0.16.0
68
- - **Added** `preFooterClassName?: string` — custom className on preFooterSlot wrapper
69
-
70
- ### v0.14.0
71
- - **Changed** `footer.version` now accepts `string | { label: string; href: string }` — version can link to changelog
72
-
73
- ### v0.13.0
74
- - **Added** `SidebarPromo` type and `footer.promo` prop — dismissable promo/upsell banner
75
- - **Changed** Footer links and version now render on a single line separated by dividers
76
- - **Fixed** Collapsible chevron wrapped in fixed-height container to prevent drift
77
- - **Fixed** Collapsible chevron no longer drifts into child elements when sub-list expands
78
-
79
- ### v0.10.0
80
- - **Added** Collapsible nav items with `children` array and `NavSubItem` type
81
- - **Added** Nav item `badge` prop for counts/labels, caps at 99+
82
- - **Added** Nav group `action` prop for buttons next to group labels
83
- - **Added** Structured `footer` prop with `SidebarFooterConfig` — links, version, slot
84
- - **Added** `headerSlot` and `preFooterSlot` content slots
85
- - **Added** `renderItem` escape hatch for custom item rendering
86
- - **Deprecated** `footerLinks` prop — use `footer.links` instead
87
-
88
- ### v0.1.1
89
- - **Changed** Decoupled from Next.js via LinkProvider
90
-
91
- ### v0.1.0
92
- - **Added** Initial release
1
+ # AppSidebar
2
+
3
+ - Import: @devalok/shilp-sutra/shell/sidebar
4
+ - Server-safe: No
5
+ - Category: shell
6
+
7
+ ## Props
8
+ currentPath?: string (highlights active nav item)
9
+ user?: SidebarUser | null — { name, email?, image?, designation?, role? }
10
+ navGroups?: NavGroup[] — { label: string, items: NavItem[], action?: ReactNode }
11
+ logo?: ReactNode
12
+ footerLinks?: Array<{ label: string, href: string }> (DEPRECATED — use footer.links)
13
+ footer?: SidebarFooterConfig — structured footer (takes precedence over footerLinks)
14
+ headerSlot?: ReactNode — content between user info and navigation
15
+ preFooterSlot?: ReactNode — content between navigation and footer
16
+ preFooterClassName?: string — className on preFooterSlot wrapper div
17
+ renderItem?: (item: NavItem, defaultRender: () => ReactNode) => ReactNode | null — custom item rendering
18
+ className?: string
19
+
20
+ NavItem: { title: string, href: string, icon: ReactNode, exact?: boolean, badge?: string | number, children?: NavSubItem[], defaultOpen?: boolean }
21
+ NavSubItem: { title: string, href: string, icon?: ReactNode, exact?: boolean }
22
+ NavGroup: { label: string, items: NavItem[], action?: ReactNode }
23
+ SidebarUser: { name: string, email?: string, image?: string | null, designation?: string, role?: string }
24
+ SidebarFooterConfig: { links?: Array<{ label: string, href: string }>, version?: string | { label: string, href: string }, slot?: ReactNode, promo?: SidebarPromo }
25
+ SidebarPromo: { text: string, icon?: ReactNode, action?: { label: string, href?: string, onClick?: () => void }, onDismiss?: () => void }
26
+
27
+ ## Defaults
28
+ None
29
+
30
+ ## Example
31
+ ```jsx
32
+ <AppSidebar
33
+ currentPath="/dashboard"
34
+ user={{ name: 'Jane', email: 'jane@example.com' }}
35
+ navGroups={[{
36
+ label: 'Main',
37
+ items: [
38
+ { title: 'Dashboard', href: '/dashboard', icon: <IconHome /> },
39
+ { title: 'Projects', href: '/projects', icon: <IconFolder />, children: [
40
+ { title: 'Karm V2', href: '/projects/abc/board' },
41
+ ]},
42
+ ],
43
+ }]}
44
+ footer={{
45
+ links: [{ label: 'Terms', href: '/terms' }],
46
+ version: { label: 'v2.4.1', href: '/changelog' },
47
+ }}
48
+ />
49
+ ```
50
+
51
+ ## Gotchas
52
+ - Must be wrapped in SidebarProvider (from ui/sidebar)
53
+ - Requires LinkProvider for framework-specific link components
54
+ - `footerLinks` is deprecated — use `footer.links` instead
55
+ - `renderItem` returning `null` falls back to default rendering
56
+ - Collapsible nav items auto-open when a child is active (matching `currentPath`)
57
+ - Badge numbers > 99 display as "99+"
58
+
59
+ ## Changes
60
+ ### v0.19.0
61
+ - **Changed** Background elevated from `bg-surface-1` to `bg-surface-2` for visual hierarchy above app background
62
+ - **Changed** Interactive hover states bumped from `surface-2` to `surface-3`
63
+
64
+ ### v0.18.0
65
+ - **Fixed** `bg-interactive-subtle` changed to `bg-accent-2` (OKLCH migration)
66
+
67
+ ### v0.16.0
68
+ - **Added** `preFooterClassName?: string` — custom className on preFooterSlot wrapper
69
+
70
+ ### v0.14.0
71
+ - **Changed** `footer.version` now accepts `string | { label: string; href: string }` — version can link to changelog
72
+
73
+ ### v0.13.0
74
+ - **Added** `SidebarPromo` type and `footer.promo` prop — dismissable promo/upsell banner
75
+ - **Changed** Footer links and version now render on a single line separated by dividers
76
+ - **Fixed** Collapsible chevron wrapped in fixed-height container to prevent drift
77
+ - **Fixed** Collapsible chevron no longer drifts into child elements when sub-list expands
78
+
79
+ ### v0.10.0
80
+ - **Added** Collapsible nav items with `children` array and `NavSubItem` type
81
+ - **Added** Nav item `badge` prop for counts/labels, caps at 99+
82
+ - **Added** Nav group `action` prop for buttons next to group labels
83
+ - **Added** Structured `footer` prop with `SidebarFooterConfig` — links, version, slot
84
+ - **Added** `headerSlot` and `preFooterSlot` content slots
85
+ - **Added** `renderItem` escape hatch for custom item rendering
86
+ - **Deprecated** `footerLinks` prop — use `footer.links` instead
87
+
88
+ ### v0.1.1
89
+ - **Changed** Decoupled from Next.js via LinkProvider
90
+
91
+ ### v0.1.0
92
+ - **Added** Initial release