@devalok/shilp-sutra 0.36.0 → 0.37.0-next.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 (530) hide show
  1. package/MIGRATION.md +346 -0
  2. package/README.md +26 -29
  3. package/dist/_chunks/badge-group.js +42 -42
  4. package/dist/_chunks/badge-group.js.map +1 -1
  5. package/dist/_chunks/chat.js +324 -327
  6. package/dist/_chunks/chat.js.map +1 -1
  7. package/dist/_chunks/date-picker.js +245 -245
  8. package/dist/_chunks/date-picker.js.map +1 -1
  9. package/dist/_chunks/document-preview.js +33 -33
  10. package/dist/_chunks/document-preview.js.map +1 -1
  11. package/dist/_chunks/file-preview.js +264 -264
  12. package/dist/_chunks/file-preview.js.map +1 -1
  13. package/dist/_chunks/image-preview.js +45 -45
  14. package/dist/_chunks/image-preview.js.map +1 -1
  15. package/dist/_chunks/mention-suggestion.js +85 -85
  16. package/dist/_chunks/mention-suggestion.js.map +1 -1
  17. package/dist/_chunks/motion-provider.js +13 -13
  18. package/dist/_chunks/motion-provider.js.map +1 -1
  19. package/dist/_chunks/popover.js +36 -36
  20. package/dist/_chunks/popover.js.map +1 -1
  21. package/dist/_chunks/primitives.js +489 -489
  22. package/dist/_chunks/primitives.js.map +1 -1
  23. package/dist/_chunks/rich-chat-input.js +1066 -1066
  24. package/dist/_chunks/rich-chat-input.js.map +1 -1
  25. package/dist/_chunks/shared.js +43 -43
  26. package/dist/_chunks/shared.js.map +1 -1
  27. package/dist/_chunks/text.js +432 -0
  28. package/dist/_chunks/text.js.map +1 -0
  29. package/dist/_chunks/tiptap.js +6053 -6187
  30. package/dist/_chunks/tiptap.js.map +1 -1
  31. package/dist/_chunks/tree-view.js +97 -97
  32. package/dist/_chunks/tree-view.js.map +1 -1
  33. package/dist/_chunks/use-calendar.js.map +1 -1
  34. package/dist/ai/ai-command-provider.d.ts.map +1 -1
  35. package/dist/ai/ai-command-provider.js.map +1 -1
  36. package/dist/ai/block-renderer.d.ts.map +1 -1
  37. package/dist/ai/block-renderer.js +43 -43
  38. package/dist/ai/block-renderer.js.map +1 -1
  39. package/dist/ai/blocks/block-table.d.ts.map +1 -1
  40. package/dist/ai/blocks/confirm.d.ts.map +1 -1
  41. package/dist/ai/blocks/divider.d.ts.map +1 -1
  42. package/dist/ai/blocks/error.d.ts.map +1 -1
  43. package/dist/ai/blocks/index.d.ts +5 -5
  44. package/dist/ai/blocks/index.d.ts.map +1 -1
  45. package/dist/ai/blocks/index.js +2 -2
  46. package/dist/ai/blocks/info.d.ts.map +1 -1
  47. package/dist/ai/blocks/loading.d.ts.map +1 -1
  48. package/dist/ai/blocks/stat-row.d.ts.map +1 -1
  49. package/dist/ai/blocks/success.d.ts.map +1 -1
  50. package/dist/ai/blocks/text.d.ts.map +1 -1
  51. package/dist/ai/command-bar.d.ts +0 -11
  52. package/dist/ai/command-bar.d.ts.map +1 -1
  53. package/dist/ai/command-bar.js +128 -128
  54. package/dist/ai/command-bar.js.map +1 -1
  55. package/dist/ai/conversation.d.ts +1 -1
  56. package/dist/ai/conversation.d.ts.map +1 -1
  57. package/dist/ai/conversation.js +76 -76
  58. package/dist/ai/conversation.js.map +1 -1
  59. package/dist/ai/devadoot-icon.d.ts +0 -12
  60. package/dist/ai/devadoot-icon.d.ts.map +1 -1
  61. package/dist/ai/index.d.ts +11 -11
  62. package/dist/ai/index.d.ts.map +1 -1
  63. package/dist/ai/index.js +44 -44
  64. package/dist/ai/index.js.map +1 -1
  65. package/dist/composed/activity-feed.d.ts.map +1 -1
  66. package/dist/composed/activity-feed.js +93 -93
  67. package/dist/composed/activity-feed.js.map +1 -1
  68. package/dist/composed/avatar-group.d.ts.map +1 -1
  69. package/dist/composed/avatar-group.js +50 -50
  70. package/dist/composed/avatar-group.js.map +1 -1
  71. package/dist/composed/bulk-action-bar.d.ts.map +1 -1
  72. package/dist/composed/bulk-action-bar.js +40 -40
  73. package/dist/composed/bulk-action-bar.js.map +1 -1
  74. package/dist/composed/command-palette.d.ts +0 -6
  75. package/dist/composed/command-palette.d.ts.map +1 -1
  76. package/dist/composed/command-palette.js +131 -131
  77. package/dist/composed/command-palette.js.map +1 -1
  78. package/dist/composed/confirm-dialog.d.ts.map +1 -1
  79. package/dist/composed/confirm-dialog.js.map +1 -1
  80. package/dist/composed/content-card.d.ts.map +1 -1
  81. package/dist/composed/content-card.js.map +1 -1
  82. package/dist/composed/date-picker/calendar-grid.d.ts.map +1 -1
  83. package/dist/composed/date-picker/date-picker.d.ts.map +1 -1
  84. package/dist/composed/date-picker/date-range-picker.d.ts.map +1 -1
  85. package/dist/composed/date-picker/date-time-picker.d.ts.map +1 -1
  86. package/dist/composed/date-picker/index.d.ts +11 -11
  87. package/dist/composed/date-picker/index.d.ts.map +1 -1
  88. package/dist/composed/date-picker/index.js +1 -1
  89. package/dist/composed/date-picker/month-picker.d.ts.map +1 -1
  90. package/dist/composed/date-picker/presets.d.ts.map +1 -1
  91. package/dist/composed/date-picker/time-picker.d.ts.map +1 -1
  92. package/dist/composed/date-picker/year-picker.d.ts.map +1 -1
  93. package/dist/composed/deadline-indicator.d.ts.map +1 -1
  94. package/dist/composed/deadline-indicator.js +25 -25
  95. package/dist/composed/deadline-indicator.js.map +1 -1
  96. package/dist/composed/emoji-picker.d.ts.map +1 -1
  97. package/dist/composed/emoji-picker.js +37 -37
  98. package/dist/composed/emoji-picker.js.map +1 -1
  99. package/dist/composed/empty-state.d.ts.map +1 -1
  100. package/dist/composed/empty-state.js +21 -21
  101. package/dist/composed/empty-state.js.map +1 -1
  102. package/dist/composed/error-boundary.d.ts +1 -1
  103. package/dist/composed/error-boundary.d.ts.map +1 -1
  104. package/dist/composed/error-boundary.js.map +1 -1
  105. package/dist/composed/extensions/emoji-node.d.ts.map +1 -1
  106. package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -1
  107. package/dist/composed/extensions/file-attachment.d.ts.map +1 -1
  108. package/dist/composed/extensions/mention-suggestion.d.ts +1 -1
  109. package/dist/composed/extensions/mention-suggestion.d.ts.map +1 -1
  110. package/dist/composed/extensions/slash-command.d.ts +1 -1
  111. package/dist/composed/extensions/slash-command.d.ts.map +1 -1
  112. package/dist/composed/file-preview/audio-preview.d.ts.map +1 -1
  113. package/dist/composed/file-preview/document-preview.d.ts.map +1 -1
  114. package/dist/composed/file-preview/embed-preview.d.ts.map +1 -1
  115. package/dist/composed/file-preview/image-preview.d.ts.map +1 -1
  116. package/dist/composed/file-preview/shared.d.ts.map +1 -1
  117. package/dist/composed/file-preview/video-preview.d.ts.map +1 -1
  118. package/dist/composed/file-preview.d.ts.map +1 -1
  119. package/dist/composed/filter-bar.d.ts +1 -1
  120. package/dist/composed/filter-bar.d.ts.map +1 -1
  121. package/dist/composed/filter-bar.js +54 -54
  122. package/dist/composed/filter-bar.js.map +1 -1
  123. package/dist/composed/form-section.d.ts.map +1 -1
  124. package/dist/composed/form-section.js +26 -26
  125. package/dist/composed/form-section.js.map +1 -1
  126. package/dist/composed/global-loading.d.ts.map +1 -1
  127. package/dist/composed/global-loading.js.map +1 -1
  128. package/dist/composed/index.d.ts +55 -55
  129. package/dist/composed/index.d.ts.map +1 -1
  130. package/dist/composed/index.js +17 -17
  131. package/dist/composed/inline-edit.d.ts.map +1 -1
  132. package/dist/composed/inline-edit.js.map +1 -1
  133. package/dist/composed/loading-skeleton.d.ts +1 -1
  134. package/dist/composed/loading-skeleton.d.ts.map +1 -1
  135. package/dist/composed/loading-skeleton.js.map +1 -1
  136. package/dist/composed/markdown-viewer.d.ts.map +1 -1
  137. package/dist/composed/markdown-viewer.js +3 -3
  138. package/dist/composed/markdown-viewer.js.map +1 -1
  139. package/dist/composed/master-detail.d.ts.map +1 -1
  140. package/dist/composed/master-detail.js +42 -42
  141. package/dist/composed/master-detail.js.map +1 -1
  142. package/dist/composed/member-picker.d.ts.map +1 -1
  143. package/dist/composed/member-picker.js.map +1 -1
  144. package/dist/composed/multi-select-popover.d.ts.map +1 -1
  145. package/dist/composed/multi-select-popover.js +55 -55
  146. package/dist/composed/multi-select-popover.js.map +1 -1
  147. package/dist/composed/page-header.d.ts.map +1 -1
  148. package/dist/composed/page-header.js.map +1 -1
  149. package/dist/composed/page-skeletons.d.ts.map +1 -1
  150. package/dist/composed/page-skeletons.js.map +1 -1
  151. package/dist/composed/priority-indicator.d.ts.map +1 -1
  152. package/dist/composed/priority-indicator.js +34 -34
  153. package/dist/composed/priority-indicator.js.map +1 -1
  154. package/dist/composed/responsive-overlay.d.ts.map +1 -1
  155. package/dist/composed/responsive-overlay.js.map +1 -1
  156. package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
  157. package/dist/composed/rich-chat-input/audio-player.d.ts.map +1 -1
  158. package/dist/composed/rich-chat-input/audio-waveform.d.ts.map +1 -1
  159. package/dist/composed/rich-chat-input/chat-toolbar.d.ts.map +1 -1
  160. package/dist/composed/rich-chat-input/recording-overlay.d.ts.map +1 -1
  161. package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
  162. package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
  163. package/dist/composed/rich-chat-input.d.ts +6 -6
  164. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  165. package/dist/composed/rich-chat-input.js +1 -1
  166. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  167. package/dist/composed/rich-text-editor.js +25 -25
  168. package/dist/composed/rich-text-editor.js.map +1 -1
  169. package/dist/composed/schedule-view.d.ts.map +1 -1
  170. package/dist/composed/schedule-view.js +53 -53
  171. package/dist/composed/schedule-view.js.map +1 -1
  172. package/dist/composed/simple-tooltip.d.ts.map +1 -1
  173. package/dist/composed/simple-tooltip.js.map +1 -1
  174. package/dist/composed/status-badge.d.ts +1 -1
  175. package/dist/composed/status-badge.d.ts.map +1 -1
  176. package/dist/composed/status-badge.js +30 -30
  177. package/dist/composed/status-badge.js.map +1 -1
  178. package/dist/hooks/index.d.ts +3 -3
  179. package/dist/hooks/index.d.ts.map +1 -1
  180. package/dist/hooks/index.js +1 -1
  181. package/dist/hooks/use-color-mode.js.map +1 -1
  182. package/dist/hooks/use-toast.d.ts +1 -1
  183. package/dist/hooks/use-toast.d.ts.map +1 -1
  184. package/dist/motion/index.d.ts +2 -2
  185. package/dist/motion/index.d.ts.map +1 -1
  186. package/dist/motion/index.js.map +1 -1
  187. package/dist/motion/motion-provider.d.ts +1 -1
  188. package/dist/motion/motion-provider.d.ts.map +1 -1
  189. package/dist/motion/primitives-index.d.ts +1 -1
  190. package/dist/motion/primitives-index.d.ts.map +1 -1
  191. package/dist/motion/primitives-index.js +40 -40
  192. package/dist/motion/primitives-index.js.map +1 -1
  193. package/dist/motion/primitives.d.ts +1 -1
  194. package/dist/motion/primitives.d.ts.map +1 -1
  195. package/dist/shell/app-command-palette.d.ts +0 -8
  196. package/dist/shell/app-command-palette.d.ts.map +1 -1
  197. package/dist/shell/app-command-palette.js.map +1 -1
  198. package/dist/shell/bottom-navbar.d.ts +0 -6
  199. package/dist/shell/bottom-navbar.d.ts.map +1 -1
  200. package/dist/shell/bottom-navbar.js +62 -62
  201. package/dist/shell/bottom-navbar.js.map +1 -1
  202. package/dist/shell/index.d.ts +8 -8
  203. package/dist/shell/index.d.ts.map +1 -1
  204. package/dist/shell/index.js +5 -5
  205. package/dist/shell/link-context.d.ts +1 -1
  206. package/dist/shell/link-context.d.ts.map +1 -1
  207. package/dist/shell/notification-center.d.ts +0 -6
  208. package/dist/shell/notification-center.d.ts.map +1 -1
  209. package/dist/shell/notification-center.js +54 -54
  210. package/dist/shell/notification-center.js.map +1 -1
  211. package/dist/shell/notification-preferences.d.ts +0 -6
  212. package/dist/shell/notification-preferences.d.ts.map +1 -1
  213. package/dist/shell/notification-preferences.js +22 -22
  214. package/dist/shell/notification-preferences.js.map +1 -1
  215. package/dist/shell/sidebar.d.ts.map +1 -1
  216. package/dist/shell/sidebar.js.map +1 -1
  217. package/dist/shell/top-bar.d.ts +0 -6
  218. package/dist/shell/top-bar.d.ts.map +1 -1
  219. package/dist/shell/top-bar.js.map +1 -1
  220. package/dist/tailwind/index.cjs +15 -499
  221. package/dist/tailwind/preset.d.ts +21 -0
  222. package/dist/tailwind/preset.d.ts.map +1 -1
  223. package/dist/tailwind/preset.js +14 -489
  224. package/dist/tailwind/preset.js.map +1 -1
  225. package/dist/tokens/animations.css +17 -0
  226. package/dist/tokens/base.css +26 -0
  227. package/dist/tokens/index.css +22 -0
  228. package/dist/tokens/semantic.css +436 -464
  229. package/dist/tokens/shilp-sutra.css +41 -0
  230. package/dist/tokens/typography-semantic.css +48 -41
  231. package/dist/tokens/utilities.css +276 -0
  232. package/dist/tokens/variants.css +14 -0
  233. package/dist/ui/accordion.d.ts +2 -2
  234. package/dist/ui/accordion.d.ts.map +1 -1
  235. package/dist/ui/accordion.js +23 -23
  236. package/dist/ui/accordion.js.map +1 -1
  237. package/dist/ui/alert-dialog.d.ts +2 -2
  238. package/dist/ui/alert-dialog.d.ts.map +1 -1
  239. package/dist/ui/alert-dialog.js +37 -37
  240. package/dist/ui/alert-dialog.js.map +1 -1
  241. package/dist/ui/alert.d.ts.map +1 -1
  242. package/dist/ui/alert.js +36 -36
  243. package/dist/ui/alert.js.map +1 -1
  244. package/dist/ui/aspect-ratio.d.ts +1 -1
  245. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  246. package/dist/ui/aspect-ratio.js.map +1 -1
  247. package/dist/ui/autocomplete.d.ts +1 -1
  248. package/dist/ui/autocomplete.d.ts.map +1 -1
  249. package/dist/ui/autocomplete.js +27 -27
  250. package/dist/ui/autocomplete.js.map +1 -1
  251. package/dist/ui/avatar.d.ts +2 -2
  252. package/dist/ui/avatar.d.ts.map +1 -1
  253. package/dist/ui/avatar.js +41 -41
  254. package/dist/ui/avatar.js.map +1 -1
  255. package/dist/ui/badge-group.d.ts.map +1 -1
  256. package/dist/ui/badge-indicator.d.ts.map +1 -1
  257. package/dist/ui/badge-indicator.js +10 -10
  258. package/dist/ui/badge-indicator.js.map +1 -1
  259. package/dist/ui/badge.d.ts +2 -2
  260. package/dist/ui/badge.d.ts.map +1 -1
  261. package/dist/ui/banner.d.ts.map +1 -1
  262. package/dist/ui/banner.js +28 -28
  263. package/dist/ui/banner.js.map +1 -1
  264. package/dist/ui/breadcrumb.d.ts +1 -1
  265. package/dist/ui/breadcrumb.d.ts.map +1 -1
  266. package/dist/ui/breadcrumb.js.map +1 -1
  267. package/dist/ui/button-group.d.ts.map +1 -1
  268. package/dist/ui/button-group.js.map +1 -1
  269. package/dist/ui/button-processing.d.ts.map +1 -1
  270. package/dist/ui/button-processing.js +15 -15
  271. package/dist/ui/button-processing.js.map +1 -1
  272. package/dist/ui/button.d.ts.map +1 -1
  273. package/dist/ui/button.js +84 -84
  274. package/dist/ui/button.js.map +1 -1
  275. package/dist/ui/card.d.ts +1 -1
  276. package/dist/ui/card.d.ts.map +1 -1
  277. package/dist/ui/card.js +28 -28
  278. package/dist/ui/card.js.map +1 -1
  279. package/dist/ui/charts/_internal/axes.d.ts +1 -1
  280. package/dist/ui/charts/_internal/axes.d.ts.map +1 -1
  281. package/dist/ui/charts/_internal/grid-lines.d.ts.map +1 -1
  282. package/dist/ui/charts/_internal/legend.d.ts.map +1 -1
  283. package/dist/ui/charts/_internal/tooltip.d.ts +1 -1
  284. package/dist/ui/charts/_internal/tooltip.d.ts.map +1 -1
  285. package/dist/ui/charts/area-chart.d.ts.map +1 -1
  286. package/dist/ui/charts/bar-chart.d.ts +1 -1
  287. package/dist/ui/charts/bar-chart.d.ts.map +1 -1
  288. package/dist/ui/charts/chart-container.d.ts.map +1 -1
  289. package/dist/ui/charts/gauge-chart.d.ts.map +1 -1
  290. package/dist/ui/charts/index.d.ts +5 -5
  291. package/dist/ui/charts/index.d.ts.map +1 -1
  292. package/dist/ui/charts/index.js +618 -618
  293. package/dist/ui/charts/index.js.map +1 -1
  294. package/dist/ui/charts/line-chart.d.ts.map +1 -1
  295. package/dist/ui/charts/pie-chart.d.ts.map +1 -1
  296. package/dist/ui/charts/radar-chart.d.ts.map +1 -1
  297. package/dist/ui/charts/sparkline.d.ts.map +1 -1
  298. package/dist/ui/chat/date-separator.d.ts.map +1 -1
  299. package/dist/ui/chat/index.d.ts +4 -4
  300. package/dist/ui/chat/index.d.ts.map +1 -1
  301. package/dist/ui/chat/index.js +1 -1
  302. package/dist/ui/chat/message-input.d.ts.map +1 -1
  303. package/dist/ui/chat/message-list.d.ts.map +1 -1
  304. package/dist/ui/chat/message.d.ts +1 -1
  305. package/dist/ui/chat/message.d.ts.map +1 -1
  306. package/dist/ui/chat/system-message.d.ts.map +1 -1
  307. package/dist/ui/chat/typing-indicator.d.ts.map +1 -1
  308. package/dist/ui/chat/unread-separator.d.ts.map +1 -1
  309. package/dist/ui/checkbox.d.ts.map +1 -1
  310. package/dist/ui/checkbox.js +18 -18
  311. package/dist/ui/checkbox.js.map +1 -1
  312. package/dist/ui/code.d.ts.map +1 -1
  313. package/dist/ui/code.js.map +1 -1
  314. package/dist/ui/collapsible.d.ts +2 -2
  315. package/dist/ui/collapsible.d.ts.map +1 -1
  316. package/dist/ui/collapsible.js +10 -10
  317. package/dist/ui/collapsible.js.map +1 -1
  318. package/dist/ui/color-input.d.ts.map +1 -1
  319. package/dist/ui/color-input.js +85 -85
  320. package/dist/ui/color-input.js.map +1 -1
  321. package/dist/ui/color-swatch.d.ts.map +1 -1
  322. package/dist/ui/color-swatch.js.map +1 -1
  323. package/dist/ui/combobox.d.ts.map +1 -1
  324. package/dist/ui/combobox.js +58 -58
  325. package/dist/ui/combobox.js.map +1 -1
  326. package/dist/ui/container.d.ts.map +1 -1
  327. package/dist/ui/container.js.map +1 -1
  328. package/dist/ui/context-menu.d.ts +2 -2
  329. package/dist/ui/context-menu.d.ts.map +1 -1
  330. package/dist/ui/context-menu.js +47 -47
  331. package/dist/ui/context-menu.js.map +1 -1
  332. package/dist/ui/data-table-body.d.ts +1 -1
  333. package/dist/ui/data-table-body.d.ts.map +1 -1
  334. package/dist/ui/data-table-body.js +43 -43
  335. package/dist/ui/data-table-body.js.map +1 -1
  336. package/dist/ui/data-table-bulk-actions.js.map +1 -1
  337. package/dist/ui/data-table-card.d.ts.map +1 -1
  338. package/dist/ui/data-table-card.js +7 -7
  339. package/dist/ui/data-table-card.js.map +1 -1
  340. package/dist/ui/data-table-context.d.ts +1 -1
  341. package/dist/ui/data-table-context.d.ts.map +1 -1
  342. package/dist/ui/data-table-context.js.map +1 -1
  343. package/dist/ui/data-table-header.js +38 -38
  344. package/dist/ui/data-table-header.js.map +1 -1
  345. package/dist/ui/data-table-pagination.js.map +1 -1
  346. package/dist/ui/data-table-toolbar.d.ts.map +1 -1
  347. package/dist/ui/data-table-toolbar.js.map +1 -1
  348. package/dist/ui/data-table.d.ts +2 -2
  349. package/dist/ui/data-table.d.ts.map +1 -1
  350. package/dist/ui/data-table.js +5 -5
  351. package/dist/ui/data-table.js.map +1 -1
  352. package/dist/ui/devalok-grain.js +8 -8
  353. package/dist/ui/devalok-grain.js.map +1 -1
  354. package/dist/ui/dialog.d.ts +2 -2
  355. package/dist/ui/dialog.d.ts.map +1 -1
  356. package/dist/ui/dialog.js +41 -41
  357. package/dist/ui/dialog.js.map +1 -1
  358. package/dist/ui/dropdown-menu.d.ts +2 -2
  359. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  360. package/dist/ui/dropdown-menu.js +46 -46
  361. package/dist/ui/dropdown-menu.js.map +1 -1
  362. package/dist/ui/file-upload.d.ts.map +1 -1
  363. package/dist/ui/file-upload.js +54 -54
  364. package/dist/ui/file-upload.js.map +1 -1
  365. package/dist/ui/form.d.ts.map +1 -1
  366. package/dist/ui/form.js +17 -17
  367. package/dist/ui/form.js.map +1 -1
  368. package/dist/ui/hover-card.d.ts +2 -2
  369. package/dist/ui/hover-card.d.ts.map +1 -1
  370. package/dist/ui/hover-card.js +19 -19
  371. package/dist/ui/hover-card.js.map +1 -1
  372. package/dist/ui/icon-button.d.ts.map +1 -1
  373. package/dist/ui/icon-button.js.map +1 -1
  374. package/dist/ui/icon-group.d.ts.map +1 -1
  375. package/dist/ui/icon-group.js +4 -4
  376. package/dist/ui/icon-group.js.map +1 -1
  377. package/dist/ui/icon.d.ts.map +1 -1
  378. package/dist/ui/icon.js +32 -32
  379. package/dist/ui/icon.js.map +1 -1
  380. package/dist/ui/index.d.ts +57 -57
  381. package/dist/ui/index.d.ts.map +1 -1
  382. package/dist/ui/index.js +27 -27
  383. package/dist/ui/index.js.map +1 -1
  384. package/dist/ui/input-otp.d.ts +1 -1
  385. package/dist/ui/input-otp.d.ts.map +1 -1
  386. package/dist/ui/input-otp.js.map +1 -1
  387. package/dist/ui/input.d.ts.map +1 -1
  388. package/dist/ui/input.js +14 -14
  389. package/dist/ui/input.js.map +1 -1
  390. package/dist/ui/label.d.ts +1 -1
  391. package/dist/ui/label.d.ts.map +1 -1
  392. package/dist/ui/label.js.map +1 -1
  393. package/dist/ui/lib/bottom-sheet.d.ts.map +1 -1
  394. package/dist/ui/lib/index.d.ts +4 -4
  395. package/dist/ui/lib/index.d.ts.map +1 -1
  396. package/dist/ui/lib/slot.d.ts +1 -1
  397. package/dist/ui/lib/slot.d.ts.map +1 -1
  398. package/dist/ui/lib/utils.d.ts.map +1 -1
  399. package/dist/ui/lib/utils.js.map +1 -1
  400. package/dist/ui/link.d.ts.map +1 -1
  401. package/dist/ui/link.js.map +1 -1
  402. package/dist/ui/menubar.d.ts +2 -2
  403. package/dist/ui/menubar.d.ts.map +1 -1
  404. package/dist/ui/menubar.js +64 -64
  405. package/dist/ui/menubar.js.map +1 -1
  406. package/dist/ui/navigation-menu.d.ts +2 -2
  407. package/dist/ui/navigation-menu.d.ts.map +1 -1
  408. package/dist/ui/navigation-menu.js +72 -72
  409. package/dist/ui/navigation-menu.js.map +1 -1
  410. package/dist/ui/number-input.d.ts.map +1 -1
  411. package/dist/ui/number-input.js.map +1 -1
  412. package/dist/ui/pagination.d.ts +1 -1
  413. package/dist/ui/pagination.d.ts.map +1 -1
  414. package/dist/ui/pagination.js.map +1 -1
  415. package/dist/ui/popover.d.ts +2 -2
  416. package/dist/ui/popover.d.ts.map +1 -1
  417. package/dist/ui/progress-ring.d.ts +1 -1
  418. package/dist/ui/progress-ring.d.ts.map +1 -1
  419. package/dist/ui/progress-ring.js +33 -33
  420. package/dist/ui/progress-ring.js.map +1 -1
  421. package/dist/ui/progress.d.ts +2 -2
  422. package/dist/ui/progress.d.ts.map +1 -1
  423. package/dist/ui/progress.js +23 -23
  424. package/dist/ui/progress.js.map +1 -1
  425. package/dist/ui/radio.d.ts.map +1 -1
  426. package/dist/ui/radio.js +19 -19
  427. package/dist/ui/radio.js.map +1 -1
  428. package/dist/ui/search-input.d.ts.map +1 -1
  429. package/dist/ui/search-input.js +17 -17
  430. package/dist/ui/search-input.js.map +1 -1
  431. package/dist/ui/segmented-control.d.ts.map +1 -1
  432. package/dist/ui/segmented-control.js +19 -19
  433. package/dist/ui/segmented-control.js.map +1 -1
  434. package/dist/ui/select.d.ts +2 -2
  435. package/dist/ui/select.d.ts.map +1 -1
  436. package/dist/ui/select.js +68 -68
  437. package/dist/ui/select.js.map +1 -1
  438. package/dist/ui/separator.d.ts +1 -1
  439. package/dist/ui/separator.d.ts.map +1 -1
  440. package/dist/ui/separator.js.map +1 -1
  441. package/dist/ui/sheet.d.ts +2 -2
  442. package/dist/ui/sheet.d.ts.map +1 -1
  443. package/dist/ui/sheet.js +44 -44
  444. package/dist/ui/sheet.js.map +1 -1
  445. package/dist/ui/sidebar.d.ts +1 -1
  446. package/dist/ui/sidebar.d.ts.map +1 -1
  447. package/dist/ui/sidebar.js +156 -156
  448. package/dist/ui/sidebar.js.map +1 -1
  449. package/dist/ui/skeleton.d.ts +1 -1
  450. package/dist/ui/skeleton.d.ts.map +1 -1
  451. package/dist/ui/skeleton.js +2 -2
  452. package/dist/ui/skeleton.js.map +1 -1
  453. package/dist/ui/slider.d.ts +2 -2
  454. package/dist/ui/slider.d.ts.map +1 -1
  455. package/dist/ui/slider.js +5 -5
  456. package/dist/ui/slider.js.map +1 -1
  457. package/dist/ui/spinner.d.ts.map +1 -1
  458. package/dist/ui/spinner.js +21 -21
  459. package/dist/ui/spinner.js.map +1 -1
  460. package/dist/ui/split-button.d.ts +1 -1
  461. package/dist/ui/split-button.d.ts.map +1 -1
  462. package/dist/ui/split-button.js +28 -28
  463. package/dist/ui/split-button.js.map +1 -1
  464. package/dist/ui/stack.d.ts +1 -1
  465. package/dist/ui/stack.d.ts.map +1 -1
  466. package/dist/ui/stack.js.map +1 -1
  467. package/dist/ui/stat-card.d.ts.map +1 -1
  468. package/dist/ui/stat-card.js +73 -73
  469. package/dist/ui/stat-card.js.map +1 -1
  470. package/dist/ui/status-dot.d.ts.map +1 -1
  471. package/dist/ui/status-dot.js.map +1 -1
  472. package/dist/ui/stepper.d.ts +1 -1
  473. package/dist/ui/stepper.d.ts.map +1 -1
  474. package/dist/ui/stepper.js +48 -48
  475. package/dist/ui/stepper.js.map +1 -1
  476. package/dist/ui/switch.d.ts +1 -1
  477. package/dist/ui/switch.d.ts.map +1 -1
  478. package/dist/ui/switch.js +15 -15
  479. package/dist/ui/switch.js.map +1 -1
  480. package/dist/ui/table.d.ts +1 -1
  481. package/dist/ui/table.d.ts.map +1 -1
  482. package/dist/ui/table.js.map +1 -1
  483. package/dist/ui/tabs.d.ts +2 -2
  484. package/dist/ui/tabs.d.ts.map +1 -1
  485. package/dist/ui/tabs.js +52 -52
  486. package/dist/ui/tabs.js.map +1 -1
  487. package/dist/ui/text.d.ts +1 -1
  488. package/dist/ui/text.d.ts.map +1 -1
  489. package/dist/ui/text.js.map +1 -1
  490. package/dist/ui/textarea.d.ts.map +1 -1
  491. package/dist/ui/textarea.js +13 -13
  492. package/dist/ui/textarea.js.map +1 -1
  493. package/dist/ui/toast-registry.js.map +1 -1
  494. package/dist/ui/toast.d.ts +3 -3
  495. package/dist/ui/toast.d.ts.map +1 -1
  496. package/dist/ui/toast.js +164 -164
  497. package/dist/ui/toast.js.map +1 -1
  498. package/dist/ui/toaster.d.ts.map +1 -1
  499. package/dist/ui/toaster.js +6 -6
  500. package/dist/ui/toaster.js.map +1 -1
  501. package/dist/ui/toggle-group.d.ts +1 -1
  502. package/dist/ui/toggle-group.d.ts.map +1 -1
  503. package/dist/ui/toggle-group.js.map +1 -1
  504. package/dist/ui/toggle.d.ts +1 -1
  505. package/dist/ui/toggle.d.ts.map +1 -1
  506. package/dist/ui/toggle.js +14 -14
  507. package/dist/ui/toggle.js.map +1 -1
  508. package/dist/ui/tooltip.d.ts +2 -2
  509. package/dist/ui/tooltip.d.ts.map +1 -1
  510. package/dist/ui/tooltip.js +26 -26
  511. package/dist/ui/tooltip.js.map +1 -1
  512. package/dist/ui/tree-view/index.d.ts +2 -2
  513. package/dist/ui/tree-view/index.d.ts.map +1 -1
  514. package/dist/ui/tree-view/index.js +1 -1
  515. package/dist/ui/tree-view/tree-view.d.ts +1 -1
  516. package/dist/ui/tree-view/tree-view.d.ts.map +1 -1
  517. package/dist/ui/visually-hidden.d.ts.map +1 -1
  518. package/dist/ui/visually-hidden.js.map +1 -1
  519. package/docs/components/_header.md +96 -0
  520. package/docs/rollback.md +179 -0
  521. package/llms-full.txt +97 -1
  522. package/llms.txt +24 -2
  523. package/package.json +296 -277
  524. package/dist/_chunks/framer.js +0 -5604
  525. package/dist/_chunks/framer.js.map +0 -1
  526. package/dist/_chunks/rolldown-runtime.js +0 -21
  527. package/dist/_chunks/sonner.js +0 -616
  528. package/dist/_chunks/sonner.js.map +0 -1
  529. package/dist/_chunks/stat-row.js +0 -432
  530. package/dist/_chunks/stat-row.js.map +0 -1
@@ -0,0 +1,41 @@
1
+ /* ═══════════════════════════════════════════════════════════════════
2
+ @devalok/shilp-sutra — TW4-native consumer entry point
3
+
4
+ Consumers import this ONCE in their global stylesheet:
5
+
6
+ // app/globals.css
7
+ @import "tailwindcss";
8
+ @import "@devalok/shilp-sutra/css";
9
+
10
+ That's the whole setup. No `tailwind.config.ts`, no `@config`, no
11
+ JS preset. TW4 reads the @theme, @utility, @custom-variant, and
12
+ @source directives in this file and auto-generates the design
13
+ system's utility surface.
14
+ ═══════════════════════════════════════════════════════════════════ */
15
+
16
+ /* Token layer — matches the internal `./tokens` export order.
17
+ If you add files here, also update `./tokens/index.css` for the
18
+ legacy subpath. */
19
+ @import "./primitives.css";
20
+ @import "./semantic.css";
21
+ @import "./typography.css";
22
+ @import "./typography-semantic.css";
23
+ @import "./base.css";
24
+ @import "./animations.css";
25
+ @import "./utilities.css";
26
+ @import "./variants.css";
27
+
28
+ /* TW4 content detection — scan our shipped dist JS for utility classes
29
+ so consumers don't have to configure "content" for us.
30
+
31
+ Priority order is deliberate:
32
+ 1. Relative-path form: from dist/tokens/shilp-sutra.css up to dist/.
33
+ Under pnpm strict-hoist this always lands on the real (non-symlinked)
34
+ dist directory, so TW4 can read our compiled JS no matter how the
35
+ consumer package manager laid things out.
36
+ 2. Package-name form: fallback via Node package resolution. Works on
37
+ npm/yarn and on pnpm with shamefully-hoist, but can miss under
38
+ strict-hoist depending on the TW4 resolver version. */
39
+ @source "../../dist";
40
+ @source "@devalok/shilp-sutra";
41
+
@@ -1,5 +1,5 @@
1
1
  /* ═══════════════════════════════════════════════════════════════════
2
- SEMANTIC TYPOGRAPHY VARIANTS
2
+ SEMANTIC TYPOGRAPHY VARIANTS (TW4 native)
3
3
  Maps raw type scale tokens → meaningful component names.
4
4
 
5
5
  Migration guide from legacy classes:
@@ -11,113 +11,120 @@
11
11
  B3-Reg → body-sm B4-Reg → body-xs
12
12
  L1 → label-lg L2 → label-md
13
13
  L3 → label-sm L4 → label-xs
14
+
15
+ The `--typo-*` tokens below are INTERNAL composite values — they
16
+ group (size, weight, leading, tracking) per semantic variant so the
17
+ `@utility text-heading-xl { ... }` rules in utilities.css can inject
18
+ all four properties in one class. They stay in `:root`, NOT `@theme`,
19
+ because they don't map to a TW4 utility namespace directly — they're
20
+ read by our custom `@utility` rules.
14
21
  ═══════════════════════════════════════════════════════════════════ */
15
22
 
16
23
  :root {
17
24
  /* ── Heading Variants ──────────────────────── */
18
- --typo-heading-2xl-size: var(--font-size-6xl);
25
+ --typo-heading-2xl-size: var(--text-ds-6xl);
19
26
  --typo-heading-2xl-weight: var(--font-weight-regular);
20
- --typo-heading-2xl-leading: var(--line-height-tight);
27
+ --typo-heading-2xl-leading: var(--leading-ds-tight);
21
28
  --typo-heading-2xl-tracking: -0.025em;
22
29
 
23
- --typo-heading-xl-size: var(--font-size-5xl);
30
+ --typo-heading-xl-size: var(--text-ds-5xl);
24
31
  --typo-heading-xl-weight: var(--font-weight-regular);
25
- --typo-heading-xl-leading: var(--line-height-tight);
32
+ --typo-heading-xl-leading: var(--leading-ds-tight);
26
33
  --typo-heading-xl-tracking: -0.025em;
27
34
 
28
- --typo-heading-lg-size: var(--font-size-4xl);
35
+ --typo-heading-lg-size: var(--text-ds-4xl);
29
36
  --typo-heading-lg-weight: var(--font-weight-regular);
30
- --typo-heading-lg-leading: var(--line-height-tight);
37
+ --typo-heading-lg-leading: var(--leading-ds-tight);
31
38
  --typo-heading-lg-tracking: -0.02em;
32
39
 
33
- --typo-heading-md-size: var(--font-size-3xl);
40
+ --typo-heading-md-size: var(--text-ds-3xl);
34
41
  --typo-heading-md-weight: var(--font-weight-regular);
35
- --typo-heading-md-leading: var(--line-height-tight);
42
+ --typo-heading-md-leading: var(--leading-ds-tight);
36
43
  --typo-heading-md-tracking: -0.02em;
37
44
 
38
- --typo-heading-sm-size: var(--font-size-2xl);
45
+ --typo-heading-sm-size: var(--text-ds-2xl);
39
46
  --typo-heading-sm-weight: var(--font-weight-regular);
40
- --typo-heading-sm-leading: var(--line-height-snug);
47
+ --typo-heading-sm-leading: var(--leading-ds-snug);
41
48
  --typo-heading-sm-tracking: -0.015em;
42
49
 
43
- --typo-heading-xs-size: var(--font-size-xl);
50
+ --typo-heading-xs-size: var(--text-ds-xl);
44
51
  --typo-heading-xs-weight: var(--font-weight-regular);
45
- --typo-heading-xs-leading: var(--line-height-snug);
52
+ --typo-heading-xs-leading: var(--leading-ds-snug);
46
53
  --typo-heading-xs-tracking: 0;
47
54
 
48
55
  /* ── Body Variants ─────────────────────────── */
49
- --typo-body-lg-size: var(--font-size-base);
56
+ --typo-body-lg-size: var(--text-ds-base);
50
57
  --typo-body-lg-weight: var(--font-weight-regular);
51
- --typo-body-lg-leading: var(--line-height-relaxed);
58
+ --typo-body-lg-leading: var(--leading-ds-relaxed);
52
59
  --typo-body-lg-tracking: -0.01em; /* was -0.02em; loosened for readability */
53
60
 
54
- --typo-body-md-size: var(--font-size-md);
61
+ --typo-body-md-size: var(--text-ds-md);
55
62
  --typo-body-md-weight: var(--font-weight-regular);
56
- --typo-body-md-leading: var(--line-height-relaxed);
63
+ --typo-body-md-leading: var(--leading-ds-relaxed);
57
64
  --typo-body-md-tracking: 0em; /* was -0.02em; neutral at 14px */
58
65
 
59
- --typo-body-sm-size: var(--font-size-sm);
66
+ --typo-body-sm-size: var(--text-ds-sm);
60
67
  --typo-body-sm-weight: var(--font-weight-regular);
61
- --typo-body-sm-leading: var(--line-height-relaxed);
68
+ --typo-body-sm-leading: var(--leading-ds-relaxed);
62
69
  --typo-body-sm-tracking: 0.01em; /* was -0.02em; positive for small text legibility */
63
70
 
64
- --typo-body-xs-size: var(--font-size-xs);
71
+ --typo-body-xs-size: var(--text-ds-xs);
65
72
  --typo-body-xs-weight: var(--font-weight-regular);
66
- --typo-body-xs-leading: var(--line-height-relaxed);
73
+ --typo-body-xs-leading: var(--leading-ds-relaxed);
67
74
  --typo-body-xs-tracking: 0.02em; /* was -0.02em; positive for tiny text legibility */
68
75
 
69
76
  /* ── Label Variants (uppercase UI labels) ─── */
70
- --typo-label-lg-size: var(--font-size-base);
77
+ --typo-label-lg-size: var(--text-ds-base);
71
78
  --typo-label-lg-weight: var(--font-weight-semibold);
72
- --typo-label-lg-leading: var(--line-height-snug);
79
+ --typo-label-lg-leading: var(--leading-ds-snug);
73
80
  --typo-label-lg-tracking: 0.06em;
74
81
 
75
- --typo-label-md-size: var(--font-size-md);
82
+ --typo-label-md-size: var(--text-ds-md);
76
83
  --typo-label-md-weight: var(--font-weight-semibold);
77
- --typo-label-md-leading: var(--line-height-snug);
84
+ --typo-label-md-leading: var(--leading-ds-snug);
78
85
  --typo-label-md-tracking: 0.06em;
79
86
 
80
- --typo-label-sm-size: var(--font-size-sm);
87
+ --typo-label-sm-size: var(--text-ds-sm);
81
88
  --typo-label-sm-weight: var(--font-weight-semibold);
82
- --typo-label-sm-leading: var(--line-height-snug);
89
+ --typo-label-sm-leading: var(--leading-ds-snug);
83
90
  --typo-label-sm-tracking: 0.06em;
84
91
 
85
- --typo-label-xs-size: var(--font-size-xs);
92
+ --typo-label-xs-size: var(--text-ds-xs);
86
93
  --typo-label-xs-weight: var(--font-weight-semibold);
87
- --typo-label-xs-leading: var(--line-height-snug);
94
+ --typo-label-xs-leading: var(--leading-ds-snug);
88
95
  --typo-label-xs-tracking: 0.06em;
89
96
 
90
97
  /* ── Label Plain (mixed-case, no text-transform) ── */
91
- --typo-label-plain-lg-size: var(--font-size-base);
98
+ --typo-label-plain-lg-size: var(--text-ds-base);
92
99
  --typo-label-plain-lg-weight: var(--font-weight-semibold);
93
- --typo-label-plain-lg-leading: var(--line-height-snug);
100
+ --typo-label-plain-lg-leading: var(--leading-ds-snug);
94
101
  --typo-label-plain-lg-tracking: 0em;
95
102
 
96
- --typo-label-plain-md-size: var(--font-size-md);
103
+ --typo-label-plain-md-size: var(--text-ds-md);
97
104
  --typo-label-plain-md-weight: var(--font-weight-semibold);
98
- --typo-label-plain-md-leading: var(--line-height-snug);
105
+ --typo-label-plain-md-leading: var(--leading-ds-snug);
99
106
  --typo-label-plain-md-tracking: 0em;
100
107
 
101
- --typo-label-plain-sm-size: var(--font-size-sm);
108
+ --typo-label-plain-sm-size: var(--text-ds-sm);
102
109
  --typo-label-plain-sm-weight: var(--font-weight-semibold);
103
- --typo-label-plain-sm-leading: var(--line-height-snug);
110
+ --typo-label-plain-sm-leading: var(--leading-ds-snug);
104
111
  --typo-label-plain-sm-tracking: 0em;
105
112
 
106
113
  /* ── Caption & Overline ────────────────────── */
107
- --typo-caption-size: var(--font-size-sm);
114
+ --typo-caption-size: var(--text-ds-sm);
108
115
  --typo-caption-weight: var(--font-weight-regular);
109
- --typo-caption-leading: var(--line-height-normal);
116
+ --typo-caption-leading: var(--leading-ds-normal);
110
117
  --typo-caption-tracking: 0.025em;
111
118
 
112
- --typo-overline-size: var(--font-size-sm);
119
+ --typo-overline-size: var(--text-ds-sm);
113
120
  --typo-overline-weight: var(--font-weight-regular);
114
- --typo-overline-leading: var(--line-height-loose);
121
+ --typo-overline-leading: var(--leading-ds-loose);
115
122
  --typo-overline-tracking: 0.08em;
116
123
 
117
124
  /* ── Code (monospace) ──────────────────────── */
118
- --typo-code-size: var(--font-size-sm);
125
+ --typo-code-size: var(--text-ds-sm);
119
126
  --typo-code-weight: var(--font-weight-regular);
120
- --typo-code-leading: var(--line-height-normal);
127
+ --typo-code-leading: var(--leading-ds-normal);
121
128
  --typo-code-tracking: 0em;
122
129
  --typo-code-font: var(--font-mono);
123
130
  }
@@ -0,0 +1,276 @@
1
+ /* ═══════════════════════════════════════════════════════════════════
2
+ CUSTOM UTILITIES (TW4 native)
3
+
4
+ `@utility <name>` declares a Tailwind 4 custom utility. Unlike plain
5
+ CSS classes, @utility participates in TW4's variant system — so you
6
+ can write `md:text-heading-xl`, `hover:focus-ring`, etc.
7
+
8
+ Migrated from the JS preset's `plugin(({ addBase, addUtilities }))`
9
+ block in 0.37.0.
10
+ ═══════════════════════════════════════════════════════════════════ */
11
+
12
+ /* ───────────────────────────────────────────────────────────────────
13
+ TYPOGRAPHY COMPOSITES
14
+
15
+ Each variant sets font-size, font-weight, line-height, letter-spacing
16
+ in one class. Source of values: typography-semantic.css (--typo-*).
17
+ ─────────────────────────────────────────────────────────────────── */
18
+
19
+ @utility text-heading-2xl {
20
+ font-size: var(--typo-heading-2xl-size);
21
+ font-weight: var(--typo-heading-2xl-weight);
22
+ line-height: var(--typo-heading-2xl-leading);
23
+ letter-spacing: var(--typo-heading-2xl-tracking);
24
+ }
25
+
26
+ @utility text-heading-xl {
27
+ font-size: var(--typo-heading-xl-size);
28
+ font-weight: var(--typo-heading-xl-weight);
29
+ line-height: var(--typo-heading-xl-leading);
30
+ letter-spacing: var(--typo-heading-xl-tracking);
31
+ }
32
+
33
+ @utility text-heading-lg {
34
+ font-size: var(--typo-heading-lg-size);
35
+ font-weight: var(--typo-heading-lg-weight);
36
+ line-height: var(--typo-heading-lg-leading);
37
+ letter-spacing: var(--typo-heading-lg-tracking);
38
+ }
39
+
40
+ @utility text-heading-md {
41
+ font-size: var(--typo-heading-md-size);
42
+ font-weight: var(--typo-heading-md-weight);
43
+ line-height: var(--typo-heading-md-leading);
44
+ letter-spacing: var(--typo-heading-md-tracking);
45
+ }
46
+
47
+ @utility text-heading-sm {
48
+ font-size: var(--typo-heading-sm-size);
49
+ font-weight: var(--typo-heading-sm-weight);
50
+ line-height: var(--typo-heading-sm-leading);
51
+ letter-spacing: var(--typo-heading-sm-tracking);
52
+ }
53
+
54
+ @utility text-heading-xs {
55
+ font-size: var(--typo-heading-xs-size);
56
+ font-weight: var(--typo-heading-xs-weight);
57
+ line-height: var(--typo-heading-xs-leading);
58
+ letter-spacing: var(--typo-heading-xs-tracking);
59
+ }
60
+
61
+ @utility text-body-lg {
62
+ font-size: var(--typo-body-lg-size);
63
+ font-weight: var(--typo-body-lg-weight);
64
+ line-height: var(--typo-body-lg-leading);
65
+ letter-spacing: var(--typo-body-lg-tracking);
66
+ }
67
+
68
+ @utility text-body-md {
69
+ font-size: var(--typo-body-md-size);
70
+ font-weight: var(--typo-body-md-weight);
71
+ line-height: var(--typo-body-md-leading);
72
+ letter-spacing: var(--typo-body-md-tracking);
73
+ }
74
+
75
+ @utility text-body-sm {
76
+ font-size: var(--typo-body-sm-size);
77
+ font-weight: var(--typo-body-sm-weight);
78
+ line-height: var(--typo-body-sm-leading);
79
+ letter-spacing: var(--typo-body-sm-tracking);
80
+ }
81
+
82
+ @utility text-body-xs {
83
+ font-size: var(--typo-body-xs-size);
84
+ font-weight: var(--typo-body-xs-weight);
85
+ line-height: var(--typo-body-xs-leading);
86
+ letter-spacing: var(--typo-body-xs-tracking);
87
+ }
88
+
89
+ /* UPPERCASE UI labels — uppercase text-transform applied. */
90
+ @utility text-label-lg {
91
+ font-size: var(--typo-label-lg-size);
92
+ font-weight: var(--typo-label-lg-weight);
93
+ line-height: var(--typo-label-lg-leading);
94
+ letter-spacing: var(--typo-label-lg-tracking);
95
+ text-transform: uppercase;
96
+ }
97
+
98
+ @utility text-label-md {
99
+ font-size: var(--typo-label-md-size);
100
+ font-weight: var(--typo-label-md-weight);
101
+ line-height: var(--typo-label-md-leading);
102
+ letter-spacing: var(--typo-label-md-tracking);
103
+ text-transform: uppercase;
104
+ }
105
+
106
+ @utility text-label-sm {
107
+ font-size: var(--typo-label-sm-size);
108
+ font-weight: var(--typo-label-sm-weight);
109
+ line-height: var(--typo-label-sm-leading);
110
+ letter-spacing: var(--typo-label-sm-tracking);
111
+ text-transform: uppercase;
112
+ }
113
+
114
+ @utility text-label-xs {
115
+ font-size: var(--typo-label-xs-size);
116
+ font-weight: var(--typo-label-xs-weight);
117
+ line-height: var(--typo-label-xs-leading);
118
+ letter-spacing: var(--typo-label-xs-tracking);
119
+ text-transform: uppercase;
120
+ }
121
+
122
+ /* Label Plain — mixed case, no text-transform */
123
+ @utility text-label-plain-lg {
124
+ font-size: var(--typo-label-plain-lg-size);
125
+ font-weight: var(--typo-label-plain-lg-weight);
126
+ line-height: var(--typo-label-plain-lg-leading);
127
+ letter-spacing: var(--typo-label-plain-lg-tracking);
128
+ }
129
+
130
+ @utility text-label-plain-md {
131
+ font-size: var(--typo-label-plain-md-size);
132
+ font-weight: var(--typo-label-plain-md-weight);
133
+ line-height: var(--typo-label-plain-md-leading);
134
+ letter-spacing: var(--typo-label-plain-md-tracking);
135
+ }
136
+
137
+ @utility text-label-plain-sm {
138
+ font-size: var(--typo-label-plain-sm-size);
139
+ font-weight: var(--typo-label-plain-sm-weight);
140
+ line-height: var(--typo-label-plain-sm-leading);
141
+ letter-spacing: var(--typo-label-plain-sm-tracking);
142
+ }
143
+
144
+ @utility text-caption {
145
+ font-size: var(--typo-caption-size);
146
+ font-weight: var(--typo-caption-weight);
147
+ line-height: var(--typo-caption-leading);
148
+ letter-spacing: var(--typo-caption-tracking);
149
+ }
150
+
151
+ @utility text-overline {
152
+ font-size: var(--typo-overline-size);
153
+ font-weight: var(--typo-overline-weight);
154
+ line-height: var(--typo-overline-leading);
155
+ letter-spacing: var(--typo-overline-tracking);
156
+ text-transform: uppercase;
157
+ }
158
+
159
+ @utility text-code {
160
+ font-size: var(--typo-code-size);
161
+ font-weight: var(--typo-code-weight);
162
+ line-height: var(--typo-code-leading);
163
+ letter-spacing: var(--typo-code-tracking);
164
+ font-family: var(--typo-code-font);
165
+ }
166
+
167
+ /* ───────────────────────────────────────────────────────────────────
168
+ NUMBER FORMATTING
169
+ ─────────────────────────────────────────────────────────────────── */
170
+
171
+ @utility tabular-nums {
172
+ font-variant-numeric: tabular-nums;
173
+ }
174
+
175
+ /* ───────────────────────────────────────────────────────────────────
176
+ TOUCH TARGET
177
+ Expands the clickable hit-area to WCAG minimum 44x44 px without
178
+ affecting visual size. Applied via `::before` pseudo-element.
179
+ ─────────────────────────────────────────────────────────────────── */
180
+
181
+ @utility touch-target {
182
+ position: relative;
183
+
184
+ &::before {
185
+ content: "";
186
+ position: absolute;
187
+ top: 50%;
188
+ left: 50%;
189
+ transform: translate(-50%, -50%);
190
+ min-width: 44px;
191
+ min-height: 44px;
192
+ }
193
+ }
194
+
195
+ /* ───────────────────────────────────────────────────────────────────
196
+ FOCUS RINGS
197
+ Custom focus-visible ring utilities. Use in place of the default
198
+ `focus:ring-*` stack when you want the DS-branded ring with offset.
199
+ ─────────────────────────────────────────────────────────────────── */
200
+
201
+ @utility focus-ring {
202
+ &:focus-visible {
203
+ outline: none;
204
+ box-shadow:
205
+ 0 0 0 var(--border-focus-width) var(--color-surface-base),
206
+ 0 0 0 calc(var(--border-focus-width) + var(--border-focus-offset)) var(--color-accent-9);
207
+ }
208
+ }
209
+
210
+ @utility focus-ring-inset {
211
+ &:focus-visible {
212
+ outline: none;
213
+ box-shadow: inset 0 0 0 var(--border-focus-width) var(--color-accent-9);
214
+ }
215
+ }
216
+
217
+ @utility focus-ring-sm {
218
+ &:focus-visible {
219
+ outline: none;
220
+ box-shadow: 0 0 0 var(--border-focus-width) var(--color-accent-7);
221
+ }
222
+ }
223
+
224
+ /* ───────────────────────────────────────────────────────────────────
225
+ SAFE AREA INSETS
226
+ For notched/island devices. `env()` falls back to 0 on browsers
227
+ without safe-area metadata.
228
+ ─────────────────────────────────────────────────────────────────── */
229
+
230
+ @utility pt-safe { padding-top: env(safe-area-inset-top, 0px); }
231
+ @utility pb-safe { padding-bottom: env(safe-area-inset-bottom, 0px); }
232
+ @utility pl-safe { padding-left: env(safe-area-inset-left, 0px); }
233
+ @utility pr-safe { padding-right: env(safe-area-inset-right, 0px); }
234
+
235
+ @utility p-safe {
236
+ padding-top: env(safe-area-inset-top, 0px);
237
+ padding-bottom: env(safe-area-inset-bottom, 0px);
238
+ padding-left: env(safe-area-inset-left, 0px);
239
+ padding-right: env(safe-area-inset-right, 0px);
240
+ }
241
+
242
+ /* ───────────────────────────────────────────────────────────────────
243
+ Z-INDEX NAMED LAYERS
244
+
245
+ TW4 doesn't expose a `--z-*` auto-namespace; built-in z-* utilities
246
+ (z-10, z-20, ...) are hard-coded from `--default-z-*`. Our named
247
+ layers are declared here so class-generation picks them up.
248
+ Consumers still get TW4's default numeric scale alongside these.
249
+ ─────────────────────────────────────────────────────────────────── */
250
+
251
+ @utility z-base { z-index: var(--z-base); }
252
+ @utility z-raised { z-index: var(--z-raised); }
253
+ @utility z-dropdown { z-index: var(--z-dropdown); }
254
+ @utility z-sticky { z-index: var(--z-sticky); }
255
+ @utility z-overlay { z-index: var(--z-overlay); }
256
+ @utility z-modal { z-index: var(--z-modal); }
257
+ @utility z-popover { z-index: var(--z-popover); }
258
+ @utility z-toast { z-index: var(--z-toast); }
259
+ @utility z-tooltip { z-index: var(--z-tooltip); }
260
+
261
+ /* ───────────────────────────────────────────────────────────────────
262
+ TRANSITION DURATIONS (named scale)
263
+
264
+ TW4's built-in `duration-<ms>` utilities (duration-75, duration-100,
265
+ etc.) still work. These add our named layer on top so consumers can
266
+ write `duration-fast-01` instead of `duration-70` etc.
267
+ ─────────────────────────────────────────────────────────────────── */
268
+
269
+ @utility duration-instant { transition-duration: var(--duration-instant); }
270
+ @utility duration-fast-01 { transition-duration: var(--duration-fast-01); }
271
+ @utility duration-fast-02 { transition-duration: var(--duration-fast-02); }
272
+ @utility duration-moderate-01 { transition-duration: var(--duration-moderate-01); }
273
+ @utility duration-moderate-01b { transition-duration: var(--duration-moderate-01b); }
274
+ @utility duration-moderate-02 { transition-duration: var(--duration-moderate-02); }
275
+ @utility duration-slow-01 { transition-duration: var(--duration-slow-01); }
276
+ @utility duration-slow-02 { transition-duration: var(--duration-slow-02); }
@@ -0,0 +1,14 @@
1
+ /* ═══════════════════════════════════════════════════════════════════
2
+ CUSTOM VARIANTS (TW4 native)
3
+
4
+ `@custom-variant <name> <selector>` registers a Tailwind 4 variant
5
+ that consumers can use as a prefix, e.g. `dark:bg-surface-raised`.
6
+
7
+ Our dark variant matches TW3's classic `darkMode: 'class'` behavior
8
+ plus one extra: the `.dark` element itself also receives `dark:*`
9
+ utilities. Matches the official TW4 docs' recommended snippet and
10
+ removes a footgun where a consumer sets `.dark` on <body> but uses
11
+ `dark:*` utilities directly on <body>.
12
+ ═══════════════════════════════════════════════════════════════════ */
13
+
14
+ @custom-variant dark (&:where(.dark, .dark *));
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import * as React from 'react';
3
2
  import * as AccordionPrimitive from '../primitives/react-accordion';
3
+ import * as React from 'react';
4
4
  /**
5
5
  * Accordion compound component — vertically stacked, collapsible content sections.
6
6
  *
@@ -56,5 +56,5 @@ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPr
56
56
  export type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;
57
57
  export type AccordionTriggerProps = AccordionTriggerExtendedProps;
58
58
  export type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;
59
- export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
59
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
60
60
  //# sourceMappingURL=accordion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/ui/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,kBAAkB,MAAM,6BAA6B,CAAA;AAQjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,QAAA,MAAM,SAAS,8JAA0B,CAAA;AAEzC,QAAA,MAAM,aAAa,iKASjB,CAAA;AAGF,UAAU,6BAA8B,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;IAC/G,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACnC;AAED,QAAA,MAAM,gBAAgB,yGAwBpB,CAAA;AAGF,QAAA,MAAM,gBAAgB,oKAiBpB,CAAA;AAGF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC/F,MAAM,MAAM,qBAAqB,GAAG,6BAA6B,CAAA;AACjE,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAErG,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/ui/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,kBAAkB,MAAM,6BAA6B,CAAA;AAGjE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,QAAA,MAAM,SAAS,8JAA0B,CAAA;AAEzC,QAAA,MAAM,aAAa,iKASjB,CAAA;AAGF,UAAU,6BAA8B,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;IAC/G,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACnC;AAED,QAAA,MAAM,gBAAgB,yGAwBpB,CAAA;AAGF,QAAA,MAAM,gBAAgB,oKAiBpB,CAAA;AAGF,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAA;AAC/F,MAAM,MAAM,qBAAqB,GAAG,6BAA6B,CAAA;AACjE,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAA;AAErG,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAC,aAAa,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,50 +1,50 @@
1
1
  "use client";
2
2
  import { Fn as e, In as t, Ln as n, Pn as r, Rn as i } from "../_chunks/primitives.js";
3
- import { a } from "../_chunks/framer.js";
4
- import { tweens as o } from "./lib/motion.js";
5
- import { cn as s } from "./lib/utils.js";
6
- import { Icon as c } from "./icon.js";
7
- import * as l from "react";
8
- import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
- import { IconChevronDown as f } from "@tabler/icons-react";
3
+ import { tweens as a } from "./lib/motion.js";
4
+ import { cn as o } from "./lib/utils.js";
5
+ import { Icon as s } from "./icon.js";
6
+ import * as c from "react";
7
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
8
+ import { IconChevronDown as d } from "@tabler/icons-react";
9
+ import { motion as f } from "framer-motion";
10
10
  //#region src/ui/accordion.tsx
11
- var p = n, m = l.forwardRef(({ className: e, ...n }, r) => /* @__PURE__ */ u(t, {
11
+ var p = n, m = c.forwardRef(({ className: e, ...n }, r) => /* @__PURE__ */ l(t, {
12
12
  ref: r,
13
- className: s("border-b border-surface-border", e),
13
+ className: o("border-b border-surface-border", e),
14
14
  ...n
15
15
  }));
16
16
  m.displayName = "AccordionItem";
17
- var h = l.forwardRef(({ className: t, children: n, chevronPosition: r = "right", ...a }, o) => {
18
- let l = /* @__PURE__ */ u(c, {
19
- icon: f,
17
+ var h = c.forwardRef(({ className: t, children: n, chevronPosition: r = "right", ...a }, c) => {
18
+ let f = /* @__PURE__ */ l(s, {
19
+ icon: d,
20
20
  size: "sm",
21
21
  className: "shrink-0 text-surface-fg-muted transition-transform duration-moderate-02 ease-productive-standard group-data-[state=open]:rotate-180"
22
22
  });
23
- return /* @__PURE__ */ u(e, {
23
+ return /* @__PURE__ */ l(e, {
24
24
  className: "flex",
25
- children: /* @__PURE__ */ d(i, {
26
- ref: o,
27
- className: s("group flex flex-1 items-center justify-between py-ds-05 text-left text-ds-md font-medium hover:bg-surface-raised rounded-ds-md data-[state=open]:bg-surface-raised focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9", t),
25
+ children: /* @__PURE__ */ u(i, {
26
+ ref: c,
27
+ className: o("group flex flex-1 items-center justify-between py-ds-05 text-left text-ds-md font-medium hover:bg-surface-raised rounded-ds-md data-[state=open]:bg-surface-raised focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9", t),
28
28
  ...a,
29
29
  children: [
30
- r === "left" && l,
30
+ r === "left" && f,
31
31
  n,
32
- r === "right" && l
32
+ r === "right" && f
33
33
  ]
34
34
  })
35
35
  });
36
36
  });
37
37
  h.displayName = i.displayName;
38
- var g = l.forwardRef(({ className: e, children: t, ...n }, i) => /* @__PURE__ */ u(r, {
38
+ var g = c.forwardRef(({ className: e, children: t, ...n }, i) => /* @__PURE__ */ l(r, {
39
39
  ref: i,
40
40
  className: "w-full overflow-hidden text-ds-md data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up",
41
41
  ...n,
42
- children: /* @__PURE__ */ u(a.div, {
42
+ children: /* @__PURE__ */ l(f.div, {
43
43
  initial: !1,
44
44
  animate: { opacity: 1 },
45
- transition: o.fade,
46
- children: /* @__PURE__ */ u("div", {
47
- className: s("pb-ds-05 pt-ds-02", e),
45
+ transition: a.fade,
46
+ children: /* @__PURE__ */ l("div", {
47
+ className: o("pb-ds-05 pt-ds-02", e),
48
48
  children: t
49
49
  })
50
50
  })
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","names":[],"sources":["../../src/ui/accordion.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as AccordionPrimitive from '@primitives/react-accordion'\nimport { IconChevronDown } from '@tabler/icons-react'\nimport { Icon } from './icon'\nimport { motion } from 'framer-motion'\n\nimport { cn } from './lib/utils'\nimport { tweens } from './lib/motion'\n\n/**\n * Accordion compound component — vertically stacked, collapsible content sections.\n *\n * **Parts (in composition order):**\n * - `Accordion` — root; controls single vs. multiple open panels (this root)\n * - `AccordionItem` — individual collapsible section (requires `value` prop)\n * - `AccordionTrigger` — the clickable header row (chevron icon auto-renders and rotates)\n * - `AccordionContent` — the collapsible body revealed when the item is open\n *\n * **`type` prop (required on root):**\n * - `\"single\"` — only one panel open at a time; supports `collapsible` prop to re-close the active item\n * - `\"multiple\"` — multiple panels open simultaneously (value is `string[]`); `collapsible` is NOT valid here\n *\n * @compound\n * @example\n * // Single-open FAQ accordion:\n * <Accordion type=\"single\" defaultValue=\"item-1\" collapsible>\n * <AccordionItem value=\"item-1\">\n * <AccordionTrigger>What is Shilp Sutra?</AccordionTrigger>\n * <AccordionContent>\n * A React design system built for Next.js App Router, with full accessibility baked in.\n * </AccordionContent>\n * </AccordionItem>\n * <AccordionItem value=\"item-2\">\n * <AccordionTrigger>Is dark mode supported?</AccordionTrigger>\n * <AccordionContent>\n * Yes — add the <code>.dark</code> class to the root element to activate it.\n * </AccordionContent>\n * </AccordionItem>\n * </Accordion>\n *\n * @example\n * // Multiple-open controlled accordion:\n * const [open, setOpen] = useState<string[]>(['billing'])\n * <Accordion type=\"multiple\" value={open} onValueChange={setOpen}>\n * <AccordionItem value=\"billing\">\n * <AccordionTrigger>Billing</AccordionTrigger>\n * <AccordionContent>Your billing details here.</AccordionContent>\n * </AccordionItem>\n * <AccordionItem value=\"security\">\n * <AccordionTrigger>Security</AccordionTrigger>\n * <AccordionContent>Security settings here.</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n */\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-surface-border', className)}\n {...props}\n />\n))\nAccordionItem.displayName = 'AccordionItem'\n\ninterface AccordionTriggerExtendedProps extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {\n chevronPosition?: 'left' | 'right'\n}\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerExtendedProps\n>(({ className, children, chevronPosition = 'right', ...props }, ref) => {\n const chevron = (\n <Icon icon={IconChevronDown} size=\"sm\" className=\"shrink-0 text-surface-fg-muted transition-transform duration-moderate-02 ease-productive-standard group-data-[state=open]:rotate-180\" />\n )\n\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'group flex flex-1 items-center justify-between py-ds-05 text-left text-ds-md font-medium hover:bg-surface-raised rounded-ds-md data-[state=open]:bg-surface-raised focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9',\n className,\n )}\n {...props}\n >\n {chevronPosition === 'left' && chevron}\n {children}\n {chevronPosition === 'right' && chevron}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n})\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"w-full overflow-hidden text-ds-md data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up\"\n {...props}\n >\n <motion.div\n initial={false}\n animate={{ opacity: 1 }}\n transition={tweens.fade}\n >\n <div className={cn('pb-ds-05 pt-ds-02', className)}>{children}</div>\n </motion.div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\nexport type AccordionTriggerProps = AccordionTriggerExtendedProps\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"mappings":";;;;;;;;;;AAwDA,IAAM,IAAY,GAEZ,IAAgB,EAAM,YAGzB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,GAAD;CACO;CACL,WAAW,EAAG,kCAAkC,EAAU;CAC1D,GAAI;CACJ,CAAA,CACF;AACF,EAAc,cAAc;AAM5B,IAAM,IAAmB,EAAM,YAG5B,EAAE,cAAW,aAAU,qBAAkB,SAAS,GAAG,KAAS,MAAQ;CACvE,IAAM,IACJ,kBAAC,GAAD;EAAM,MAAM;EAAiB,MAAK;EAAK,WAAU;EAAyI,CAAA;AAG5L,QACE,kBAAC,GAAD;EAA2B,WAAU;YACnC,kBAAC,GAAD;GACO;GACL,WAAW,EACT,oPACA,EACD;GACD,GAAI;aANN;IAQG,MAAoB,UAAU;IAC9B;IACA,MAAoB,WAAW;IACL;;EACH,CAAA;EAE9B;AACF,EAAiB,cAAA,EAAyC;AAE1D,IAAM,IAAmB,EAAM,YAG5B,EAAE,cAAW,aAAU,GAAG,KAAS,MACpC,kBAAC,GAAD;CACO;CACL,WAAU;CACV,GAAI;WAEJ,kBAAC,EAAO,KAAR;EACE,SAAS;EACT,SAAS,EAAE,SAAS,GAAG;EACvB,YAAY,EAAO;YAEnB,kBAAC,OAAD;GAAK,WAAW,EAAG,qBAAqB,EAAU;GAAG;GAAe,CAAA;EACzD,CAAA;CACc,CAAA,CAC7B;AACF,EAAiB,cAAA,EAAyC"}
1
+ {"version":3,"file":"accordion.js","names":[],"sources":["../../src/ui/accordion.tsx"],"sourcesContent":["'use client'\n\nimport * as AccordionPrimitive from '@primitives/react-accordion'\nimport { IconChevronDown } from '@tabler/icons-react'\nimport { motion } from 'framer-motion'\nimport * as React from 'react'\n\nimport { Icon } from './icon'\nimport { tweens } from './lib/motion'\nimport { cn } from './lib/utils'\n\n/**\n * Accordion compound component — vertically stacked, collapsible content sections.\n *\n * **Parts (in composition order):**\n * - `Accordion` — root; controls single vs. multiple open panels (this root)\n * - `AccordionItem` — individual collapsible section (requires `value` prop)\n * - `AccordionTrigger` — the clickable header row (chevron icon auto-renders and rotates)\n * - `AccordionContent` — the collapsible body revealed when the item is open\n *\n * **`type` prop (required on root):**\n * - `\"single\"` — only one panel open at a time; supports `collapsible` prop to re-close the active item\n * - `\"multiple\"` — multiple panels open simultaneously (value is `string[]`); `collapsible` is NOT valid here\n *\n * @compound\n * @example\n * // Single-open FAQ accordion:\n * <Accordion type=\"single\" defaultValue=\"item-1\" collapsible>\n * <AccordionItem value=\"item-1\">\n * <AccordionTrigger>What is Shilp Sutra?</AccordionTrigger>\n * <AccordionContent>\n * A React design system built for Next.js App Router, with full accessibility baked in.\n * </AccordionContent>\n * </AccordionItem>\n * <AccordionItem value=\"item-2\">\n * <AccordionTrigger>Is dark mode supported?</AccordionTrigger>\n * <AccordionContent>\n * Yes — add the <code>.dark</code> class to the root element to activate it.\n * </AccordionContent>\n * </AccordionItem>\n * </Accordion>\n *\n * @example\n * // Multiple-open controlled accordion:\n * const [open, setOpen] = useState<string[]>(['billing'])\n * <Accordion type=\"multiple\" value={open} onValueChange={setOpen}>\n * <AccordionItem value=\"billing\">\n * <AccordionTrigger>Billing</AccordionTrigger>\n * <AccordionContent>Your billing details here.</AccordionContent>\n * </AccordionItem>\n * <AccordionItem value=\"security\">\n * <AccordionTrigger>Security</AccordionTrigger>\n * <AccordionContent>Security settings here.</AccordionContent>\n * </AccordionItem>\n * </Accordion>\n */\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn('border-b border-surface-border', className)}\n {...props}\n />\n))\nAccordionItem.displayName = 'AccordionItem'\n\ninterface AccordionTriggerExtendedProps extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {\n chevronPosition?: 'left' | 'right'\n}\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n AccordionTriggerExtendedProps\n>(({ className, children, chevronPosition = 'right', ...props }, ref) => {\n const chevron = (\n <Icon icon={IconChevronDown} size=\"sm\" className=\"shrink-0 text-surface-fg-muted transition-transform duration-moderate-02 ease-productive-standard group-data-[state=open]:rotate-180\" />\n )\n\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n 'group flex flex-1 items-center justify-between py-ds-05 text-left text-ds-md font-medium hover:bg-surface-raised rounded-ds-md data-[state=open]:bg-surface-raised focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-accent-9',\n className,\n )}\n {...props}\n >\n {chevronPosition === 'left' && chevron}\n {children}\n {chevronPosition === 'right' && chevron}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n})\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"w-full overflow-hidden text-ds-md data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up\"\n {...props}\n >\n <motion.div\n initial={false}\n animate={{ opacity: 1 }}\n transition={tweens.fade}\n >\n <div className={cn('pb-ds-05 pt-ds-02', className)}>{children}</div>\n </motion.div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\nexport type AccordionTriggerProps = AccordionTriggerExtendedProps\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n\nexport { Accordion, AccordionContent,AccordionItem, AccordionTrigger }\n"],"mappings":";;;;;;;;;;AAwDA,IAAM,IAAY,GAEZ,IAAgB,EAAM,YAGzB,EAAE,cAAW,GAAG,KAAS,MAC1B,kBAAC,GAAD;CACO;CACL,WAAW,EAAG,kCAAkC,EAAU;CAC1D,GAAI;CACJ,CAAA,CACF;AACF,EAAc,cAAc;AAM5B,IAAM,IAAmB,EAAM,YAG5B,EAAE,cAAW,aAAU,qBAAkB,SAAS,GAAG,KAAS,MAAQ;CACvE,IAAM,IACJ,kBAAC,GAAD;EAAM,MAAM;EAAiB,MAAK;EAAK,WAAU;EAAyI,CAAA;AAG5L,QACE,kBAAC,GAAD;EAA2B,WAAU;YACnC,kBAAC,GAAD;GACO;GACL,WAAW,EACT,oPACA,EACD;GACD,GAAI;aANN;IAQG,MAAoB,UAAU;IAC9B;IACA,MAAoB,WAAW;IACL;;EACH,CAAA;EAE9B;AACF,EAAiB,cAAA,EAAyC;AAE1D,IAAM,IAAmB,EAAM,YAG5B,EAAE,cAAW,aAAU,GAAG,KAAS,MACpC,kBAAC,GAAD;CACO;CACL,WAAU;CACV,GAAI;WAEJ,kBAAC,EAAO,KAAR;EACE,SAAS;EACT,SAAS,EAAE,SAAS,GAAG;EACvB,YAAY,EAAO;YAEnB,kBAAC,OAAD;GAAK,WAAW,EAAG,qBAAqB,EAAU;GAAG;GAAe,CAAA;EACzD,CAAA;CACc,CAAA,CAC7B;AACF,EAAiB,cAAA,EAAyC"}
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import * as React from 'react';
3
2
  import * as AlertDialogPrimitive from '../primitives/react-alert-dialog';
3
+ import * as React from 'react';
4
4
  declare const AlertDialog: React.FC<React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Root>>;
5
5
  declare const AlertDialogTrigger: React.ForwardRefExoticComponent<AlertDialogPrimitive.AlertDialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
6
  declare const AlertDialogPortal: React.FC<AlertDialogPrimitive.AlertDialogPortalProps>;
@@ -19,5 +19,5 @@ declare const AlertDialogCancel: React.ForwardRefExoticComponent<Omit<AlertDialo
19
19
  export type { AlertDialogContentProps };
20
20
  export type AlertDialogActionProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>;
21
21
  export type AlertDialogCancelProps = React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>;
22
- export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
22
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, };
23
23
  //# sourceMappingURL=alert-dialog.d.ts.map