@forgedevstack/bear 1.3.2 → 1.3.4

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 (404) hide show
  1. package/README.md +145 -288
  2. package/dist/components/AlertDialog/AlertDialog.cjs +1 -1
  3. package/dist/components/AlertDialog/AlertDialog.js +67 -84
  4. package/dist/components/ApprovalCard/ApprovalCard.cjs +1 -0
  5. package/dist/components/ApprovalCard/ApprovalCard.const.cjs +1 -0
  6. package/dist/components/ApprovalCard/ApprovalCard.const.d.ts +2 -0
  7. package/dist/components/ApprovalCard/ApprovalCard.const.js +8 -0
  8. package/dist/components/ApprovalCard/ApprovalCard.d.ts +2 -0
  9. package/dist/components/ApprovalCard/ApprovalCard.js +25 -0
  10. package/dist/components/ApprovalCard/ApprovalCard.types.d.ts +15 -0
  11. package/dist/components/ApprovalCard/index.d.ts +2 -0
  12. package/dist/components/ArtifactCard/ArtifactCard.cjs +1 -0
  13. package/dist/components/ArtifactCard/ArtifactCard.const.cjs +1 -0
  14. package/dist/components/ArtifactCard/ArtifactCard.const.d.ts +3 -0
  15. package/dist/components/ArtifactCard/ArtifactCard.const.js +8 -0
  16. package/dist/components/ArtifactCard/ArtifactCard.d.ts +2 -0
  17. package/dist/components/ArtifactCard/ArtifactCard.js +43 -0
  18. package/dist/components/ArtifactCard/ArtifactCard.types.d.ts +15 -0
  19. package/dist/components/ArtifactCard/index.d.ts +2 -0
  20. package/dist/components/Banner/Banner.const.cjs +1 -1
  21. package/dist/components/Banner/Banner.const.js +9 -8
  22. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  23. package/dist/components/BottomSheet/BottomSheet.js +72 -64
  24. package/dist/components/Chart/BarChart.cjs +1 -1
  25. package/dist/components/Chart/BarChart.js +65 -72
  26. package/dist/components/Chart/Chart.cjs +1 -1
  27. package/dist/components/Chart/Chart.js +21 -18
  28. package/dist/components/Chart/Chart.types.d.ts +1 -1
  29. package/dist/components/Chart/FunnelChart.cjs +1 -1
  30. package/dist/components/Chart/FunnelChart.js +38 -36
  31. package/dist/components/Chart/LineChart.cjs +1 -1
  32. package/dist/components/Chart/LineChart.js +74 -60
  33. package/dist/components/Chart/PieChart.cjs +1 -1
  34. package/dist/components/Chart/PieChart.js +102 -82
  35. package/dist/components/Chart/RadarChart.cjs +1 -1
  36. package/dist/components/Chart/RadarChart.d.ts +1 -1
  37. package/dist/components/Chart/RadarChart.js +116 -93
  38. package/dist/components/Chat/Chat.cjs +1 -1
  39. package/dist/components/Chat/Chat.const.cjs +1 -1
  40. package/dist/components/Chat/Chat.const.d.ts +9 -22
  41. package/dist/components/Chat/Chat.const.js +18 -26
  42. package/dist/components/Chat/Chat.d.ts +1 -20
  43. package/dist/components/Chat/Chat.js +107 -162
  44. package/dist/components/Chat/Chat.types.d.ts +20 -27
  45. package/dist/components/Chat/Chat.utils.cjs +1 -0
  46. package/dist/components/Chat/Chat.utils.d.ts +2 -0
  47. package/dist/components/Chat/Chat.utils.js +10 -0
  48. package/dist/components/Chat/helpers/ChatTypingIndicator.cjs +1 -0
  49. package/dist/components/Chat/helpers/ChatTypingIndicator.d.ts +3 -0
  50. package/dist/components/Chat/helpers/ChatTypingIndicator.js +14 -0
  51. package/dist/components/Chat/index.d.ts +2 -1
  52. package/dist/components/ChatBubble/ChatBubble.cjs +1 -0
  53. package/dist/components/ChatBubble/ChatBubble.const.cjs +1 -0
  54. package/dist/components/ChatBubble/ChatBubble.const.d.ts +13 -0
  55. package/dist/components/ChatBubble/ChatBubble.const.js +17 -0
  56. package/dist/components/ChatBubble/ChatBubble.d.ts +2 -0
  57. package/dist/components/ChatBubble/ChatBubble.js +32 -0
  58. package/dist/components/ChatBubble/ChatBubble.types.d.ts +12 -0
  59. package/dist/components/ChatBubble/ChatBubble.utils.cjs +1 -0
  60. package/dist/components/ChatBubble/ChatBubble.utils.d.ts +6 -0
  61. package/dist/components/ChatBubble/ChatBubble.utils.js +15 -0
  62. package/dist/components/ChatBubble/helpers/ChatBubbleSystem.cjs +1 -0
  63. package/dist/components/ChatBubble/helpers/ChatBubbleSystem.d.ts +2 -0
  64. package/dist/components/ChatBubble/helpers/ChatBubbleSystem.js +21 -0
  65. package/dist/components/ChatBubble/helpers/ChatBubbleThread.cjs +1 -0
  66. package/dist/components/ChatBubble/helpers/ChatBubbleThread.d.ts +4 -0
  67. package/dist/components/ChatBubble/helpers/ChatBubbleThread.js +63 -0
  68. package/dist/components/ChatBubble/index.d.ts +2 -0
  69. package/dist/components/ChatError/ChatError.cjs +1 -0
  70. package/dist/components/ChatError/ChatError.const.cjs +1 -0
  71. package/dist/components/ChatError/ChatError.const.d.ts +2 -0
  72. package/dist/components/ChatError/ChatError.const.js +8 -0
  73. package/dist/components/ChatError/ChatError.d.ts +2 -0
  74. package/dist/components/ChatError/ChatError.js +32 -0
  75. package/dist/components/ChatError/ChatError.types.d.ts +14 -0
  76. package/dist/components/ChatError/index.d.ts +2 -0
  77. package/dist/components/ChipGroup/ChipGroup.cjs +1 -1
  78. package/dist/components/ChipGroup/ChipGroup.const.cjs +1 -1
  79. package/dist/components/ChipGroup/ChipGroup.const.d.ts +2 -0
  80. package/dist/components/ChipGroup/ChipGroup.const.js +6 -4
  81. package/dist/components/ChipGroup/ChipGroup.js +52 -48
  82. package/dist/components/CitationList/CitationList.cjs +1 -0
  83. package/dist/components/CitationList/CitationList.d.ts +2 -0
  84. package/dist/components/CitationList/CitationList.js +30 -0
  85. package/dist/components/CitationList/CitationList.types.d.ts +15 -0
  86. package/dist/components/CitationList/helpers/CitationListTitle.cjs +1 -0
  87. package/dist/components/CitationList/helpers/CitationListTitle.d.ts +2 -0
  88. package/dist/components/CitationList/helpers/CitationListTitle.js +10 -0
  89. package/dist/components/CitationList/helpers/index.d.ts +1 -0
  90. package/dist/components/CitationList/index.d.ts +2 -0
  91. package/dist/components/CommandPalette/CommandItem.cjs +1 -0
  92. package/dist/components/CommandPalette/CommandItem.d.ts +6 -0
  93. package/dist/components/CommandPalette/CommandItem.js +39 -0
  94. package/dist/components/CommandPalette/CommandPalette.cjs +1 -1
  95. package/dist/components/CommandPalette/CommandPalette.js +129 -144
  96. package/dist/components/ContextMeter/ContextMeter.cjs +1 -0
  97. package/dist/components/ContextMeter/ContextMeter.const.cjs +1 -0
  98. package/dist/components/ContextMeter/ContextMeter.const.d.ts +6 -0
  99. package/dist/components/ContextMeter/ContextMeter.const.js +11 -0
  100. package/dist/components/ContextMeter/ContextMeter.d.ts +2 -0
  101. package/dist/components/ContextMeter/ContextMeter.js +49 -0
  102. package/dist/components/ContextMeter/ContextMeter.types.d.ts +11 -0
  103. package/dist/components/ContextMeter/ContextMeter.utils.cjs +1 -0
  104. package/dist/components/ContextMeter/ContextMeter.utils.d.ts +2 -0
  105. package/dist/components/ContextMeter/ContextMeter.utils.js +12 -0
  106. package/dist/components/ContextMeter/index.d.ts +2 -0
  107. package/dist/components/Drawer/Drawer.cjs +1 -1
  108. package/dist/components/Drawer/Drawer.const.cjs +1 -1
  109. package/dist/components/Drawer/Drawer.const.d.ts +2 -1
  110. package/dist/components/Drawer/Drawer.const.js +7 -6
  111. package/dist/components/Drawer/Drawer.d.ts +1 -1
  112. package/dist/components/Drawer/Drawer.js +101 -85
  113. package/dist/components/Drawer/Drawer.types.d.ts +4 -1
  114. package/dist/components/Drawer/hooks/useDrawer.cjs +1 -1
  115. package/dist/components/Drawer/hooks/useDrawer.js +33 -34
  116. package/dist/components/Drawer/index.d.ts +1 -1
  117. package/dist/components/EmptyState/EmptyState.cjs +1 -1
  118. package/dist/components/EmptyState/EmptyState.const.cjs +1 -1
  119. package/dist/components/EmptyState/EmptyState.const.d.ts +13 -6
  120. package/dist/components/EmptyState/EmptyState.const.js +30 -8
  121. package/dist/components/EmptyState/EmptyState.d.ts +1 -2
  122. package/dist/components/EmptyState/EmptyState.js +37 -41
  123. package/dist/components/EmptyState/EmptyState.types.d.ts +3 -1
  124. package/dist/components/EmptyState/helpers/EmptyStateErrorSvg.cjs +1 -0
  125. package/dist/components/EmptyState/helpers/EmptyStateErrorSvg.d.ts +3 -0
  126. package/dist/components/EmptyState/helpers/EmptyStateErrorSvg.js +8 -0
  127. package/dist/components/EmptyState/helpers/EmptyStateInboxSvg.cjs +1 -0
  128. package/dist/components/EmptyState/helpers/EmptyStateInboxSvg.d.ts +3 -0
  129. package/dist/components/EmptyState/helpers/EmptyStateInboxSvg.js +8 -0
  130. package/dist/components/EmptyState/helpers/EmptyStateSearchSvg.cjs +1 -0
  131. package/dist/components/EmptyState/helpers/EmptyStateSearchSvg.d.ts +3 -0
  132. package/dist/components/EmptyState/helpers/EmptyStateSearchSvg.js +8 -0
  133. package/dist/components/EmptyState/helpers/index.d.ts +3 -0
  134. package/dist/components/EmptyState/index.d.ts +1 -1
  135. package/dist/components/FloatingChat/FloatingChat.cjs +1 -1
  136. package/dist/components/FloatingChat/FloatingChat.const.cjs +1 -1
  137. package/dist/components/FloatingChat/FloatingChat.const.d.ts +12 -1
  138. package/dist/components/FloatingChat/FloatingChat.const.js +25 -7
  139. package/dist/components/FloatingChat/FloatingChat.d.ts +1 -18
  140. package/dist/components/FloatingChat/FloatingChat.js +93 -124
  141. package/dist/components/FloatingChat/FloatingChat.types.d.ts +11 -22
  142. package/dist/components/FloatingChat/FloatingChat.utils.cjs +1 -0
  143. package/dist/components/FloatingChat/FloatingChat.utils.d.ts +2 -0
  144. package/dist/components/FloatingChat/FloatingChat.utils.js +12 -0
  145. package/dist/components/FloatingChat/helpers/FloatingChatHeader.cjs +1 -0
  146. package/dist/components/FloatingChat/helpers/FloatingChatHeader.d.ts +9 -0
  147. package/dist/components/FloatingChat/helpers/FloatingChatHeader.js +21 -0
  148. package/dist/components/FloatingChat/helpers/FloatingChatTrigger.cjs +1 -0
  149. package/dist/components/FloatingChat/helpers/FloatingChatTrigger.d.ts +9 -0
  150. package/dist/components/FloatingChat/helpers/FloatingChatTrigger.js +17 -0
  151. package/dist/components/FloatingChat/index.d.ts +1 -1
  152. package/dist/components/FormSkeleton/FormSkeleton.cjs +1 -1
  153. package/dist/components/FormSkeleton/FormSkeleton.d.ts +1 -1
  154. package/dist/components/FormSkeleton/FormSkeleton.js +35 -24
  155. package/dist/components/HoverCard/HoverCard.cjs +4 -3
  156. package/dist/components/HoverCard/HoverCard.const.cjs +1 -0
  157. package/dist/components/HoverCard/HoverCard.const.d.ts +1 -0
  158. package/dist/components/HoverCard/HoverCard.const.js +10 -0
  159. package/dist/components/HoverCard/HoverCard.js +62 -56
  160. package/dist/components/HoverCard/HoverCard.types.d.ts +7 -0
  161. package/dist/components/Icon/index.d.ts +1 -0
  162. package/dist/components/Icon/productIcons.cjs +1 -0
  163. package/dist/components/Icon/productIcons.d.ts +7 -0
  164. package/dist/components/Icon/productIcons.js +25 -0
  165. package/dist/components/Menu/Menu.cjs +1 -1
  166. package/dist/components/Menu/Menu.const.cjs +1 -0
  167. package/dist/components/Menu/Menu.const.d.ts +2 -0
  168. package/dist/components/Menu/Menu.const.js +12 -0
  169. package/dist/components/Menu/Menu.d.ts +3 -9
  170. package/dist/components/Menu/Menu.js +57 -89
  171. package/dist/components/Menu/Menu.types.d.ts +8 -1
  172. package/dist/components/Menu/MenuDivider.cjs +1 -0
  173. package/dist/components/Menu/MenuDivider.d.ts +6 -0
  174. package/dist/components/Menu/MenuDivider.js +7 -0
  175. package/dist/components/Menu/MenuItem.cjs +1 -0
  176. package/dist/components/Menu/MenuItem.d.ts +6 -0
  177. package/dist/components/Menu/MenuItem.js +46 -0
  178. package/dist/components/MessageActions/MessageActions.cjs +1 -0
  179. package/dist/components/MessageActions/MessageActions.const.cjs +1 -0
  180. package/dist/components/MessageActions/MessageActions.const.d.ts +2 -0
  181. package/dist/components/MessageActions/MessageActions.const.js +10 -0
  182. package/dist/components/MessageActions/MessageActions.d.ts +2 -0
  183. package/dist/components/MessageActions/MessageActions.js +31 -0
  184. package/dist/components/MessageActions/MessageActions.types.d.ts +16 -0
  185. package/dist/components/MessageActions/index.d.ts +2 -0
  186. package/dist/components/Modal/Modal.cjs +1 -1
  187. package/dist/components/Modal/Modal.const.cjs +1 -1
  188. package/dist/components/Modal/Modal.const.d.ts +1 -0
  189. package/dist/components/Modal/Modal.const.js +20 -12
  190. package/dist/components/Modal/Modal.js +62 -59
  191. package/dist/components/Modal/Modal.types.d.ts +7 -0
  192. package/dist/components/ModelSelect/ModelSelect.cjs +1 -0
  193. package/dist/components/ModelSelect/ModelSelect.const.cjs +1 -0
  194. package/dist/components/ModelSelect/ModelSelect.const.d.ts +1 -0
  195. package/dist/components/ModelSelect/ModelSelect.const.js +4 -0
  196. package/dist/components/ModelSelect/ModelSelect.d.ts +2 -0
  197. package/dist/components/ModelSelect/ModelSelect.js +41 -0
  198. package/dist/components/ModelSelect/ModelSelect.types.d.ts +16 -0
  199. package/dist/components/ModelSelect/index.d.ts +2 -0
  200. package/dist/components/OverlayPortal/OverlayPortal.const.cjs +1 -1
  201. package/dist/components/OverlayPortal/OverlayPortal.const.js +6 -5
  202. package/dist/components/PasswordInput/PasswordInput.cjs +1 -1
  203. package/dist/components/PasswordInput/PasswordInput.js +5 -5
  204. package/dist/components/Popover/Popover.cjs +1 -1
  205. package/dist/components/Popover/Popover.const.cjs +1 -0
  206. package/dist/components/Popover/Popover.const.d.ts +15 -1
  207. package/dist/components/Popover/Popover.const.js +29 -0
  208. package/dist/components/Popover/Popover.js +77 -73
  209. package/dist/components/Popover/Popover.types.d.ts +7 -0
  210. package/dist/components/PromptComposer/PromptComposer.cjs +1 -0
  211. package/dist/components/PromptComposer/PromptComposer.const.cjs +1 -0
  212. package/dist/components/PromptComposer/PromptComposer.const.d.ts +6 -0
  213. package/dist/components/PromptComposer/PromptComposer.const.js +14 -0
  214. package/dist/components/PromptComposer/PromptComposer.d.ts +2 -0
  215. package/dist/components/PromptComposer/PromptComposer.js +132 -0
  216. package/dist/components/PromptComposer/PromptComposer.types.d.ts +45 -0
  217. package/dist/components/PromptComposer/PromptComposer.utils.cjs +1 -0
  218. package/dist/components/PromptComposer/PromptComposer.utils.d.ts +5 -0
  219. package/dist/components/PromptComposer/PromptComposer.utils.js +16 -0
  220. package/dist/components/PromptComposer/helpers/PromptComposerAttachSvg.cjs +1 -0
  221. package/dist/components/PromptComposer/helpers/PromptComposerAttachSvg.d.ts +1 -0
  222. package/dist/components/PromptComposer/helpers/PromptComposerAttachSvg.js +6 -0
  223. package/dist/components/PromptComposer/helpers/PromptComposerFileChip.cjs +1 -0
  224. package/dist/components/PromptComposer/helpers/PromptComposerFileChip.d.ts +2 -0
  225. package/dist/components/PromptComposer/helpers/PromptComposerFileChip.js +18 -0
  226. package/dist/components/PromptComposer/helpers/PromptComposerSendSvg.cjs +1 -0
  227. package/dist/components/PromptComposer/helpers/PromptComposerSendSvg.d.ts +1 -0
  228. package/dist/components/PromptComposer/helpers/PromptComposerSendSvg.js +9 -0
  229. package/dist/components/PromptComposer/helpers/PromptComposerStopSvg.cjs +1 -0
  230. package/dist/components/PromptComposer/helpers/PromptComposerStopSvg.d.ts +1 -0
  231. package/dist/components/PromptComposer/helpers/PromptComposerStopSvg.js +6 -0
  232. package/dist/components/PromptComposer/helpers/index.d.ts +4 -0
  233. package/dist/components/PromptComposer/index.d.ts +2 -0
  234. package/dist/components/PromptSuggestions/PromptSuggestions.cjs +1 -0
  235. package/dist/components/PromptSuggestions/PromptSuggestions.d.ts +2 -0
  236. package/dist/components/PromptSuggestions/PromptSuggestions.js +39 -0
  237. package/dist/components/PromptSuggestions/PromptSuggestions.types.d.ts +13 -0
  238. package/dist/components/PromptSuggestions/index.d.ts +2 -0
  239. package/dist/components/RichEditor/helpers/IconRender.cjs +1 -1
  240. package/dist/components/RichEditor/helpers/IconRender.js +16 -16
  241. package/dist/components/RichEditor/helpers/toolbarItemRender.cjs +1 -1
  242. package/dist/components/RichEditor/helpers/toolbarItemRender.js +23 -23
  243. package/dist/components/Select/Select.cjs +1 -1
  244. package/dist/components/Select/Select.const.cjs +1 -1
  245. package/dist/components/Select/Select.const.d.ts +1 -0
  246. package/dist/components/Select/Select.const.js +7 -6
  247. package/dist/components/Select/Select.js +110 -105
  248. package/dist/components/Select/helpers/SelectCheckSvg.cjs +1 -0
  249. package/dist/components/Select/helpers/SelectCheckSvg.d.ts +3 -0
  250. package/dist/components/Select/helpers/SelectCheckSvg.js +8 -0
  251. package/dist/components/Select/helpers/SelectChevronDownSvg.cjs +1 -0
  252. package/dist/components/Select/helpers/SelectChevronDownSvg.d.ts +3 -0
  253. package/dist/components/Select/helpers/SelectChevronDownSvg.js +8 -0
  254. package/dist/components/Select/helpers/index.d.ts +2 -0
  255. package/dist/components/Skeleton/Skeleton.cjs +1 -1
  256. package/dist/components/Skeleton/Skeleton.const.cjs +2 -2
  257. package/dist/components/Skeleton/Skeleton.const.js +5 -6
  258. package/dist/components/Skeleton/Skeleton.js +59 -59
  259. package/dist/components/StatCard/StatCard.cjs +1 -1
  260. package/dist/components/StatCard/StatCard.const.cjs +1 -1
  261. package/dist/components/StatCard/StatCard.const.d.ts +0 -7
  262. package/dist/components/StatCard/StatCard.const.js +5 -12
  263. package/dist/components/StatCard/StatCard.d.ts +1 -2
  264. package/dist/components/StatCard/StatCard.js +48 -37
  265. package/dist/components/StatCard/StatCard.utils.cjs +1 -0
  266. package/dist/components/StatCard/StatCard.utils.d.ts +2 -0
  267. package/dist/components/StatCard/StatCard.utils.js +7 -0
  268. package/dist/components/StreamingMessage/StreamingMessage.cjs +1 -0
  269. package/dist/components/StreamingMessage/StreamingMessage.const.cjs +1 -0
  270. package/dist/components/StreamingMessage/StreamingMessage.const.d.ts +5 -0
  271. package/dist/components/StreamingMessage/StreamingMessage.const.js +10 -0
  272. package/dist/components/StreamingMessage/StreamingMessage.d.ts +2 -0
  273. package/dist/components/StreamingMessage/StreamingMessage.js +48 -0
  274. package/dist/components/StreamingMessage/StreamingMessage.types.d.ts +15 -0
  275. package/dist/components/StreamingMessage/index.d.ts +2 -0
  276. package/dist/components/ThemeSwitcher/ThemeSwitcher.cjs +1 -0
  277. package/dist/components/ThemeSwitcher/ThemeSwitcher.const.cjs +1 -0
  278. package/dist/components/ThemeSwitcher/ThemeSwitcher.const.d.ts +7 -0
  279. package/dist/components/ThemeSwitcher/ThemeSwitcher.const.js +14 -0
  280. package/dist/components/ThemeSwitcher/ThemeSwitcher.d.ts +2 -0
  281. package/dist/components/ThemeSwitcher/ThemeSwitcher.js +39 -0
  282. package/dist/components/ThemeSwitcher/ThemeSwitcher.types.d.ts +14 -0
  283. package/dist/components/ThemeSwitcher/index.d.ts +2 -0
  284. package/dist/components/ThinkingBlock/ThinkingBlock.cjs +1 -0
  285. package/dist/components/ThinkingBlock/ThinkingBlock.const.cjs +1 -0
  286. package/dist/components/ThinkingBlock/ThinkingBlock.const.d.ts +4 -0
  287. package/dist/components/ThinkingBlock/ThinkingBlock.const.js +9 -0
  288. package/dist/components/ThinkingBlock/ThinkingBlock.d.ts +2 -0
  289. package/dist/components/ThinkingBlock/ThinkingBlock.js +45 -0
  290. package/dist/components/ThinkingBlock/ThinkingBlock.types.d.ts +16 -0
  291. package/dist/components/ThinkingBlock/index.d.ts +2 -0
  292. package/dist/components/Toast/Toast.cjs +1 -1
  293. package/dist/components/Toast/Toast.const.cjs +1 -1
  294. package/dist/components/Toast/Toast.const.d.ts +2 -0
  295. package/dist/components/Toast/Toast.const.js +11 -8
  296. package/dist/components/Toast/Toast.context.cjs +1 -0
  297. package/dist/components/Toast/Toast.context.d.ts +3 -0
  298. package/dist/components/Toast/Toast.context.js +11 -0
  299. package/dist/components/Toast/Toast.d.ts +4 -3
  300. package/dist/components/Toast/Toast.icons.cjs +1 -0
  301. package/dist/components/Toast/Toast.icons.d.ts +4 -0
  302. package/dist/components/Toast/Toast.icons.js +29 -0
  303. package/dist/components/Toast/Toast.js +32 -160
  304. package/dist/components/Toast/ToastContainer.cjs +1 -0
  305. package/dist/components/Toast/ToastContainer.d.ts +3 -0
  306. package/dist/components/Toast/ToastContainer.js +39 -0
  307. package/dist/components/Toast/ToastItem.cjs +1 -0
  308. package/dist/components/Toast/ToastItem.d.ts +5 -0
  309. package/dist/components/Toast/ToastItem.js +86 -0
  310. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -0
  311. package/dist/components/ToggleGroup/ToggleGroup.const.cjs +1 -0
  312. package/dist/components/ToggleGroup/ToggleGroup.const.d.ts +15 -0
  313. package/dist/components/ToggleGroup/ToggleGroup.const.js +33 -0
  314. package/dist/components/ToggleGroup/ToggleGroup.context.cjs +1 -0
  315. package/dist/components/ToggleGroup/ToggleGroup.context.d.ts +2 -0
  316. package/dist/components/ToggleGroup/ToggleGroup.context.js +5 -0
  317. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -0
  318. package/dist/components/ToggleGroup/ToggleGroup.js +86 -0
  319. package/dist/components/ToggleGroup/ToggleGroup.types.d.ts +48 -0
  320. package/dist/components/ToggleGroup/ToggleGroupItem.cjs +1 -0
  321. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +2 -0
  322. package/dist/components/ToggleGroup/ToggleGroupItem.js +50 -0
  323. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.cjs +1 -0
  324. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.d.ts +1 -0
  325. package/dist/components/ToggleGroup/hooks/useToggleGroupContext.js +6 -0
  326. package/dist/components/ToggleGroup/index.d.ts +4 -0
  327. package/dist/components/ToolCall/ToolCall.cjs +1 -0
  328. package/dist/components/ToolCall/ToolCall.const.cjs +1 -0
  329. package/dist/components/ToolCall/ToolCall.const.d.ts +5 -0
  330. package/dist/components/ToolCall/ToolCall.const.js +17 -0
  331. package/dist/components/ToolCall/ToolCall.d.ts +2 -0
  332. package/dist/components/ToolCall/ToolCall.js +43 -0
  333. package/dist/components/ToolCall/ToolCall.types.d.ts +20 -0
  334. package/dist/components/ToolCall/index.d.ts +2 -0
  335. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  336. package/dist/components/Tooltip/Tooltip.const.cjs +1 -0
  337. package/dist/components/Tooltip/Tooltip.const.d.ts +8 -0
  338. package/dist/components/Tooltip/Tooltip.const.js +18 -0
  339. package/dist/components/Tooltip/Tooltip.js +59 -61
  340. package/dist/components/Tooltip/Tooltip.types.d.ts +7 -0
  341. package/dist/components/Transition/Transition.const.cjs +1 -1
  342. package/dist/components/Transition/Transition.const.js +12 -6
  343. package/dist/components/Transition/Transition.types.d.ts +1 -1
  344. package/dist/components/index.cjs +1 -1
  345. package/dist/components/index.d.ts +39 -9
  346. package/dist/components/index.js +335 -293
  347. package/dist/constants/generals.const.cjs +1 -1
  348. package/dist/constants/generals.const.d.ts +46 -0
  349. package/dist/constants/generals.const.js +158 -115
  350. package/dist/constants/keys.const.cjs +1 -1
  351. package/dist/constants/keys.const.js +2 -1
  352. package/dist/constants/numbers.const.cjs +1 -1
  353. package/dist/constants/numbers.const.d.ts +10 -0
  354. package/dist/constants/numbers.const.js +64 -53
  355. package/dist/context/BearProvider.cjs +1 -1
  356. package/dist/context/BearProvider.d.ts +19 -44
  357. package/dist/context/BearProvider.js +223 -208
  358. package/dist/context/bearProvider.types.d.ts +4 -0
  359. package/dist/context/index.d.ts +1 -1
  360. package/dist/hooks/index.cjs +1 -1
  361. package/dist/hooks/index.d.ts +2 -0
  362. package/dist/hooks/index.js +6 -4
  363. package/dist/hooks/useFixedAnchorPosition/index.d.ts +1 -1
  364. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.cjs +1 -1
  365. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.d.ts +2 -1
  366. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.const.js +12 -11
  367. package/dist/hooks/useFixedAnchorPosition/useFixedAnchorPosition.types.d.ts +1 -1
  368. package/dist/hooks/useFocusTrap/index.d.ts +2 -0
  369. package/dist/hooks/useFocusTrap/useFocusTrap.cjs +1 -0
  370. package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +3 -0
  371. package/dist/hooks/useFocusTrap/useFocusTrap.js +41 -0
  372. package/dist/hooks/useFocusTrap/useFocusTrap.types.d.ts +8 -0
  373. package/dist/hooks/useFocusTrap/useFocusTrap.utils.cjs +1 -0
  374. package/dist/hooks/useFocusTrap/useFocusTrap.utils.d.ts +1 -0
  375. package/dist/hooks/useFocusTrap/useFocusTrap.utils.js +23 -0
  376. package/dist/index.cjs +1 -1
  377. package/dist/index.js +483 -439
  378. package/dist/styles/_ai-chat.css +487 -0
  379. package/dist/styles/_base.css +2 -0
  380. package/dist/styles/_chart.css +144 -0
  381. package/dist/styles/_effects.css +8 -4
  382. package/dist/styles/_skeleton.css +90 -0
  383. package/dist/styles/main.css +3 -0
  384. package/dist/styles.css +953 -199
  385. package/package.json +1 -1
  386. package/dist/components/FormSkeleton/FormSkeleton.const.cjs +0 -1
  387. package/dist/components/FormSkeleton/FormSkeleton.const.d.ts +0 -5
  388. package/dist/components/FormSkeleton/FormSkeleton.const.js +0 -8
  389. package/dist/node_modules/@forgedevstack/bear-icons/dist/Icon.cjs +0 -1
  390. package/dist/node_modules/@forgedevstack/bear-icons/dist/Icon.const.cjs +0 -1
  391. package/dist/node_modules/@forgedevstack/bear-icons/dist/Icon.const.js +0 -14
  392. package/dist/node_modules/@forgedevstack/bear-icons/dist/Icon.js +0 -35
  393. package/dist/node_modules/@forgedevstack/bear-icons/dist/action.cjs +0 -1
  394. package/dist/node_modules/@forgedevstack/bear-icons/dist/action.js +0 -26
  395. package/dist/node_modules/@forgedevstack/bear-icons/dist/cn.utils.cjs +0 -1
  396. package/dist/node_modules/@forgedevstack/bear-icons/dist/cn.utils.js +0 -4
  397. package/dist/node_modules/@forgedevstack/bear-icons/dist/editor.cjs +0 -1
  398. package/dist/node_modules/@forgedevstack/bear-icons/dist/editor.js +0 -130
  399. package/dist/node_modules/@forgedevstack/bear-icons/dist/misc.cjs +0 -1
  400. package/dist/node_modules/@forgedevstack/bear-icons/dist/misc.js +0 -12
  401. package/dist/node_modules/@forgedevstack/bear-icons/dist/navigation.cjs +0 -1
  402. package/dist/node_modules/@forgedevstack/bear-icons/dist/navigation.js +0 -18
  403. package/dist/node_modules/@forgedevstack/bear-icons/dist/status.cjs +0 -1
  404. package/dist/node_modules/@forgedevstack/bear-icons/dist/status.js +0 -6
package/README.md CHANGED
@@ -1,353 +1,210 @@
1
- # @forgedevstack/bear
1
+ <p align="center">
2
+ <img src="portal/public/bear-icon.svg" width="100" height="110" alt="Bear UI Mascot - Lotso Bear" />
3
+ </p>
2
4
 
3
- Strong, reliable React UI components. AeroCraft-powered, zero config required. The protective force of ForgeStack.
5
+ <h1 align="center">@forgedevstack/bear</h1>
4
6
 
5
- ## Portal
7
+ <p align="center">
8
+ <strong>The Foundation for your React UI.</strong><br />
9
+ 190+ accessible, customizable React components with TypeScript, AeroCraft CSS tokens, responsive hooks, and signature Lotso bear aesthetics.
10
+ </p>
6
11
 
7
- Visit the [Bear UI Portal](https://bearui.com/) to explore all components, view live examples, and browse the documentation.
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/@forgedevstack/bear"><img src="https://img.shields.io/npm/v/@forgedevstack/bear.svg?color=db2777" alt="npm version" /></a>
14
+ <a href="https://github.com/yaghobieh/bear/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License: MIT" /></a>
15
+ <img src="https://img.shields.io/badge/components-190+-db2777.svg" alt="Components: 190+" />
16
+ <img src="https://img.shields.io/badge/icons-550+-purple.svg" alt="Icons: 550+" />
17
+ <img src="https://img.shields.io/badge/hooks-25+-blue.svg" alt="Hooks: 25+" />
18
+ <img src="https://img.shields.io/badge/TypeScript-Strict-3178c6.svg" alt="TypeScript Strict" />
19
+ <a href="https://bearui.com"><img src="https://img.shields.io/badge/docs-bearui.com-db2777.svg" alt="Docs Portal" /></a>
20
+ </p>
8
21
 
9
- ## Sanity / Playwright
22
+ ---
10
23
 
11
- ```bash
12
- # Install browsers once (required — missing Chromium yields 0 passes)
13
- cd portal && npx playwright install chromium
14
-
15
- # Critical-path smoke (recommended before release)
16
- cd portal && npm run test:e2e:smoke
17
-
18
- # Full portal suite
19
- cd portal && npm run test:e2e
20
- ```
21
-
22
- `BEAR_E2E_SMOKE=1` runs `e2e/specs/smoke.spec.ts` only (includes RTL direction + Toast aria-live checks). The e2e webServer builds Bear, then starts the portal on port `5174`.
23
-
24
- ### Auto DOM ids
25
-
26
- Public components generate root `id` values as `Bear-{Component}-{alphanumeric}` (e.g. `Bear-Button-a48293100123`). Pass `id` to override; keep `testId` on `data-testid`.
24
+ ## 🌟 Highlights & What's New in v1.3.4
27
25
 
28
- ## Features
26
+ - 🔘 **ToggleGroup & ToggleGroupItem**: Modern segmented controls supporting single (`type="single"`) and multiple (`type="multiple"`) selections with full WAI-ARIA roving tabindex keyboard navigation.
27
+ - 🎯 **Standardized `useFocusTrap`**: Centralized, robust focus trap & focus restore across all overlay components (`Modal`, `Drawer`, `AlertDialog`, `CommandPalette`, `BottomSheet`).
28
+ - 🎬 **Overlay Motion Parity**: Unified `openEffect`, `closeEffect`, and compound `effect={{ open, close }}` across `Modal`, `Menu`, `Popover`, `Tooltip`, and `HoverCard`.
29
+ - 📐 **Density Parity**: First-class support for `compact`, `normal`, and `comfortable` densities across `Select`, `ChipGroup`, and `AppBar`.
30
+ - 🐻 **Lotso Bear Visual Identity**: High-fidelity mascot vectors, dark/light theme integration, and brand new `@bear-icons` (`BearIcon`, `LotsoIcon`, `BearFaceIcon`, `PawIcon`).
31
+ - 🤖 **AI Chat Primitives**: Complete streaming chat suite including `PromptComposer`, `StreamingMessage`, `ThinkingBlock`, `PromptSuggestions`, `ToolCall`, and `ContextMeter`.
29
32
 
30
- - **Tailwind-Powered**: Built with Tailwind CSS, zero config required
31
- - **React 18+**: Works with React 18 and above
32
- - **TypeScript**: Full type safety with comprehensive TypeScript definitions
33
- - **Comprehensive Component Library**: 50+ production-ready components
34
- - **Accessible**: ARIA attributes and keyboard navigation support
35
- - **Customizable**: Flexible theming and styling options
36
- - **Tree-Shakeable**: Import only what you need
37
- - **Zero Config**: Works out of the box with minimal setup
33
+ ---
38
34
 
39
- ## Installation
40
-
41
- Bear installs `@forgedevstack/bear-icons` as an **optional dependency**. The default install includes components, theme, and icons.
35
+ ## 📦 Installation
42
36
 
43
37
  ```bash
38
+ # Recommended default installation (includes components, themes & icons)
44
39
  npm install @forgedevstack/bear
45
- # or
40
+
41
+ # Or with your preferred package manager
46
42
  pnpm add @forgedevstack/bear
47
- # or
48
43
  yarn add @forgedevstack/bear
44
+ bun add @forgedevstack/bear
49
45
  ```
50
46
 
51
- ### Install without icons
52
-
53
- npm has no `--no-icons` flag. Skip the icon package with `--omit=optional`:
47
+ ### Quick Scaffolding with Forge CLI
54
48
 
55
49
  ```bash
56
- npm install @forgedevstack/bear --omit=optional
57
- # yarn
58
- yarn add @forgedevstack/bear --ignore-optional
59
- # pnpm
60
- pnpm add @forgedevstack/bear --no-optional
50
+ npx @forgedevstack/bear init
61
51
  ```
62
52
 
63
- Do not import icons from `@forgedevstack/bear` after a no-icons install.
53
+ ### Lightweight Install (Without Icons)
64
54
 
65
- ### Icons only
55
+ If you only need core components and wish to omit the icon library, pass the optional omission flag:
66
56
 
67
57
  ```bash
68
- npm install @forgedevstack/bear-icons
69
- ```
70
-
71
- ```tsx
72
- import { SearchIcon, BearIcons } from '@forgedevstack/bear-icons';
73
- ```
74
-
75
- ### Import CSS (Required)
58
+ # npm
59
+ npm install @forgedevstack/bear --omit=optional
76
60
 
77
- Import the compiled CSS file once in your app:
61
+ # pnpm
62
+ pnpm add @forgedevstack/bear --no-optional
78
63
 
79
- ```tsx
80
- // In your main entry file (e.g., main.tsx, App.tsx, or index.css)
81
- import '@forgedevstack/bear/styles.css';
64
+ # yarn
65
+ yarn add @forgedevstack/bear --ignore-optional
82
66
  ```
83
67
 
84
- ## Quick Start
68
+ ### Standalone Icons
85
69
 
86
- ```tsx
87
- import { Button, Card, CardHeader, CardBody } from '@forgedevstack/bear';
88
-
89
- function App() {
90
- return (
91
- <Card>
92
- <CardHeader>
93
- <h2>Welcome to Bear</h2>
94
- </CardHeader>
95
- <CardBody>
96
- <Button variant="primary">Get Started</Button>
97
- </CardBody>
98
- </Card>
99
- );
100
- }
70
+ ```bash
71
+ npm install @forgedevstack/bear-icons
101
72
  ```
102
73
 
103
- ## Component Categories
104
-
105
- ### Layout Components
106
-
107
- - `Container` - Responsive container with max-width constraints
108
- - `Flex` - Flexible box layout component
109
- - `Grid` / `GridItem` - CSS Grid layout system
110
- - `ResizablePanel` - Two-pane resizable layout with draggable divider (horizontal/vertical)
111
-
112
- ### UI Components
113
-
114
- - `Button` / `ButtonGroup` - Interactive button components
115
- - `Card` - Container for content with header, body, and footer
116
- - `Badge` - Status indicators and labels
117
- - `Paper` - Elevated surface component
118
- - `Divider` - Visual separator
119
- - `Typography` - Text styling with gradient text and typewriter effect
120
- - `Link` - Styled link component
121
-
122
- ### Form Components
123
-
124
- - `Input` / `TextField` - Text input with optional `InputProps.startAdornment` / `endAdornment` for start/end slots
125
- - `Select` / `MultiSelect` - Dropdown selection components
126
- - `Checkbox` - Checkbox input
127
- - `Radio` / `RadioGroup` - Radio button inputs
128
- - `Switch` - Toggle switch
129
- - `Autocomplete` - Autocomplete input
130
- - `TransferList` - Transfer items between lists
131
- - `FileUpload` - File upload component
132
- - `NumberInput` - Numeric input with controls
133
- - `OTPInput` - One-time password input
134
- - `ColorPicker` - Color selection component
135
- - `DatePicker` - Date selection component
136
- - `TimePicker` - Time selection component
137
- - `Slider` - Range slider input
138
-
139
- ### Feedback Components
140
-
141
- - `Alert` - Alert messages
142
- - `Spinner` - Loading spinner
143
- - `Rating` - Star rating component
144
- - `Progress` - Progress indicator
145
- - `Skeleton` - Loading skeleton states
146
- - `Toast` / `useToast` - Toast notifications
147
- - `BearLoader` - Custom bear-themed loader
148
-
149
- ### Overlay Components
150
-
151
- - `Modal` - Modal dialog
152
- - `Drawer` - Slide-out drawer
153
- - `Tooltip` - Tooltip component
154
- - `Popover` - Popover component
155
- - `Menu` / `MenuItem` - Context menu
156
- - `Dropdown` - Dropdown menu
157
- - `SpeedDial` - Floating action speed dial
158
-
159
- ### Data Display
160
-
161
- - `DataTable` - Advanced data table with sorting, filtering, and pagination
162
- - `Carousel` - Image/content carousel
163
- - `Accordion` - Collapsible content sections
164
- - `Tabs` / `TabList` / `Tab` / `TabPanel` - Tabbed interface; `TabList` supports `maxVisibleTabs` (overflow dropdown) and `wrap` (auto-break)
165
- - `List` - List component with various item types
166
- - `Avatar` / `AvatarGroup` - User avatar display
167
- - `Chip` - Compact element for input, attribute, or action
168
- - `TreeView` - Hierarchical tree structure
169
- - `FileTree` - File/folder tree with selection and expand/collapse
170
- - `Timeline` - Timeline component
171
- - `Statistic` - Statistical display
172
- - `EmptyState` - Empty state placeholder
173
- - `Image` - Enhanced image component
174
-
175
- ### Navigation Components
176
-
177
- - `Breadcrumbs` - Navigation breadcrumbs
178
- - `Stepper` - Step-by-step navigation
179
- - `BottomNavigation` - Bottom navigation bar
180
- - `AppBar` - Application bar/header
181
- - `Pagination` - Page navigation
182
-
183
- ### Utility Components
184
-
185
- - `ScrollArea` - Custom scrollable area
186
- - `Collapsible` - Collapsible content wrapper
187
- - `Kbd` - Keyboard key display
188
- - `CopyButton` - Copy to clipboard button
189
- - `Icon` / `BearIcons` - Icon component library
190
- - `BearLogo` - Bear logo component
191
-
192
- ## Examples
193
-
194
- ### Button
74
+ ---
195
75
 
196
- ```tsx
197
- import { Button } from '@forgedevstack/bear';
76
+ ## 🚀 Quick Start
198
77
 
199
- <Button variant="primary">Primary</Button>
200
- <Button variant="secondary">Secondary</Button>
201
- <Button variant="outline">Outline</Button>
202
- <Button variant="ghost">Ghost</Button>
78
+ ### 1. Import Compiled CSS
203
79
 
204
- // With icon (icon size matches text)
205
- <Button variant="primary" leftIcon={<PlayIcon />}>View Demos</Button>
206
-
207
- // Button label using Typography variant (h1, h2, body1, etc.)
208
- <Button variant="primary" textVariant="subtitle1">Heading-style label</Button>
209
- ```
210
-
211
- **Custom variants** (via `BearProvider`): pass `customVariants={{ myBrand: { bg: '#...', text: '#fff' } }}` and use `<Button variant="myBrand">`. Use `customTypography` for custom text styles and set `textVariant` on Button to use them.
212
-
213
- ### Card
80
+ Include Bear's compiled stylesheet once in your application entry file (`main.tsx`, `App.tsx`, or `index.css`):
214
81
 
215
82
  ```tsx
216
- import { Card, CardHeader, CardBody, CardFooter } from '@forgedevstack/bear';
217
-
218
- <Card>
219
- <CardHeader>Title</CardHeader>
220
- <CardBody>Content goes here</CardBody>
221
- <CardFooter>Footer content</CardFooter>
222
- </Card>
83
+ import '@forgedevstack/bear/styles.css';
223
84
  ```
224
85
 
225
- ### Form
86
+ ### 2. Wrap with BearProvider & Start Building
226
87
 
227
88
  ```tsx
228
- import { Input, Select, Checkbox, Button } from '@forgedevstack/bear';
89
+ import React, { useState } from 'react';
90
+ import {
91
+ BearProvider,
92
+ Button,
93
+ Card,
94
+ CardHeader,
95
+ CardBody,
96
+ ToggleGroup,
97
+ ToggleGroupItem,
98
+ Typography,
99
+ } from '@forgedevstack/bear';
100
+
101
+ export function App() {
102
+ const [alignment, setAlignment] = useState('center');
229
103
 
230
- function LoginForm() {
231
104
  return (
232
- <form>
233
- <Input label="Email" type="email" required />
234
- <Input label="Password" type="password" required />
235
- <Select
236
- label="Country"
237
- options={[
238
- { value: 'us', label: 'United States' },
239
- { value: 'uk', label: 'United Kingdom' },
240
- ]}
241
- />
242
- <Checkbox label="Remember me" />
243
- <Button type="submit">Submit</Button>
244
- </form>
105
+ <BearProvider>
106
+ <Card className="max-w-md mx-auto p-6 shadow-xl">
107
+ <CardHeader>
108
+ <Typography variant="h4">Bear UI 1.3.4</Typography>
109
+ </CardHeader>
110
+ <CardBody className="space-y-4">
111
+ <Typography variant="body1">
112
+ Choose your layout alignment:
113
+ </Typography>
114
+
115
+ <ToggleGroup
116
+ type="single"
117
+ value={alignment}
118
+ onValueChange={(val) => val && setAlignment(val)}
119
+ >
120
+ <ToggleGroupItem value="left">Left</ToggleGroupItem>
121
+ <ToggleGroupItem value="center">Center</ToggleGroupItem>
122
+ <ToggleGroupItem value="right">Right</ToggleGroupItem>
123
+ </ToggleGroup>
124
+
125
+ <Button variant="primary" fullWidth>
126
+ Confirm Selection ({alignment})
127
+ </Button>
128
+ </CardBody>
129
+ </Card>
130
+ </BearProvider>
245
131
  );
246
132
  }
247
133
  ```
248
134
 
249
- ### DataTable
250
-
251
- ```tsx
252
- import { DataTable, createColumns } from '@forgedevstack/bear';
253
-
254
- interface User {
255
- id: number;
256
- name: string;
257
- email: string;
258
- role: string;
259
- }
135
+ ---
260
136
 
261
- const columns = createColumns<User>([
262
- { key: 'name', header: 'Name' },
263
- { key: 'email', header: 'Email' },
264
- { key: 'role', header: 'Role' },
265
- ]);
137
+ ## 🎨 Theming & Lotso Color Palette
266
138
 
267
- const data: User[] = [
268
- { id: 1, name: 'John Doe', email: 'john@example.com', role: 'admin' },
269
- { id: 2, name: 'Jane Smith', email: 'jane@example.com', role: 'user' },
270
- ];
139
+ Bear UI features a built-in strawberry magenta theme inspired by Lotso Bear, with deep contrast and native dark mode support.
271
140
 
272
- <DataTable data={data} columns={columns} />
141
+ ```tsx
142
+ import { BearProvider } from '@forgedevstack/bear';
143
+
144
+ <BearProvider
145
+ colorScheme="system" // 'light' | 'dark' | 'system'
146
+ theme={{
147
+ colors: {
148
+ primary: '#db2777', // Lotso Magenta
149
+ accent: '#fed7aa', // Strawberry Cream
150
+ },
151
+ }}
152
+ >
153
+ <App />
154
+ </BearProvider>
273
155
  ```
274
156
 
275
- ### Toast Notifications
157
+ ---
276
158
 
277
- ```tsx
278
- import { ToastProvider, useToast, Button } from '@forgedevstack/bear';
159
+ ## 🧩 Component Suite (190+ Primitives)
279
160
 
280
- function App() {
281
- return (
282
- <ToastProvider>
283
- <MyComponent />
284
- </ToastProvider>
285
- );
286
- }
287
-
288
- function MyComponent() {
289
- const toast = useToast();
290
-
291
- return (
292
- <Button onClick={() => toast.success('Operation successful!')}>
293
- Show Toast
294
- </Button>
295
- );
296
- }
297
- ```
161
+ | Category | Key Components |
162
+ |---|---|
163
+ | **Buttons & Action** | `Button`, `ButtonGroup`, `ToggleButton`, `ToggleGroup`, `FAB`, `SpeedDial`, `CopyButton`, `CloseButton`, `SplitButton`, `ActionIcon` |
164
+ | **Forms & Input** | `Input`, `Select`, `MultiSelect`, `Autocomplete`, `Checkbox`, `Radio`, `Switch`, `Slider`, `TransferList`, `OTPInput`, `DatePicker`, `TimePicker`, `ColorPicker` |
165
+ | **AI & Conversational** | `PromptComposer`, `StreamingMessage`, `ThinkingBlock`, `PromptSuggestions`, `MessageActions`, `ChatError`, `ToolCall`, `CitationList`, `ApprovalCard`, `ContextMeter` |
166
+ | **Layout & Grid** | `Container`, `Flex`, `Grid`, `Paper`, `Divider`, `ResizablePanel`, `ScrollArea`, `Masonry`, `Dock` |
167
+ | **Overlays & Dialogs** | `Modal`, `Drawer`, `AlertDialog`, `Popover`, `Tooltip`, `HoverCard`, `Menu`, `Dropdown`, `BottomSheet`, `CommandPalette` |
168
+ | **Data Display** | `DataTable`, `Chart` (Bar/Line/Pie/Radar/Funnel), `Kanban`, `TreeSelect`, `Calendar`, `Timeline`, `DiffViewer`, `JsonViewer`, `CodeEditor` |
169
+ | **Feedback & Status** | `Alert`, `Toast`, `BearLoader`, `Spinner`, `Progress`, `Skeleton`, `EmptyState`, `Badge`, `Rating` |
298
170
 
299
- ## Theming
171
+ ---
300
172
 
301
- Bear components support customization through Tailwind CSS. You can override default styles by configuring your Tailwind theme:
173
+ ## ⚡ Performance & Comparison
302
174
 
303
- ```js
304
- // tailwind.config.js
305
- module.exports = {
306
- theme: {
307
- extend: {
308
- colors: {
309
- // Your custom colors
310
- },
311
- },
312
- },
313
- }
314
- ```
175
+ | Feature | Bear UI | Material UI | Shadcn / Radix | Chakra UI |
176
+ |---|---|---|---|---|
177
+ | **Bundle Size (tree-shaken)** | **~18 kB** | ~85 kB | Modular | ~45 kB |
178
+ | **Component Count** | **190+** | ~60 | ~45 | ~35 |
179
+ | **Included Icons** | **550+** | Addon | Addon (Lucide) | Addon |
180
+ | **AI Chat Primitives** | **Built-in** | No | Community | No |
181
+ | **Zero Runtime CSS-in-JS** | **Yes (AeroCraft)**| No (Emotion) | Yes (Tailwind) | No (Emotion) |
182
+ | **Density Parity** | **Compact / Normal / Comfortable** | Limited | Manual | Limited |
183
+ | **TypeScript Strict** | **100%** | 100% | 100% | 100% |
315
184
 
316
- ## TypeScript Support
185
+ ---
317
186
 
318
- All components are fully typed with TypeScript:
187
+ ## 🛠️ Testing & Verification
319
188
 
320
- ```tsx
321
- import { Button, ButtonProps } from '@forgedevstack/bear';
189
+ ```bash
190
+ # Run unit & component build
191
+ npm run build
322
192
 
323
- const buttonProps: ButtonProps = {
324
- variant: 'primary',
325
- size: 'md',
326
- children: 'Click me',
327
- };
193
+ # Portal E2E Smoke Tests
194
+ cd portal && npm run test:e2e:smoke
328
195
 
329
- <Button {...buttonProps} />
196
+ # Full Playwright Suite
197
+ cd portal && npm run test:e2e
330
198
  ```
331
199
 
332
- ## How Bear Compares
333
-
334
- | Feature | Bear UI | Material UI | Ant Design | Chakra UI |
335
- |---------|---------|-----|------------|-----------|
336
- | **Tailwind CSS native** | Yes | No | No | Partial (v3) |
337
- | **Bundle (tree-shaken)** | ~18 kB | ~80 kB | ~120 kB | ~45 kB |
338
- | **Dark mode** | `dark:` variants, zero JS | Runtime theme swap | CSS vars + config | ColorMode context |
339
- | **TypeScript** | 100 % | 100 % | 100 % | 100 % |
340
- | **Components** | 60+ | 50+ | 60+ | 30+ |
341
- | **Theming** | BearProvider + Tailwind | Emotion/styled | Less/CSS vars | Styled System |
342
- | **Modular CSS** | `@BearInclude` PostCSS | N/A | N/A | N/A |
343
- | **React 18 / 19** | Yes | Yes | Yes | Yes |
344
- | **Zero runtime CSS-in-JS** | Yes | No (Emotion) | No (Less) | No (Emotion) |
345
- | **Built-in i18n** | Portal (en/es) | X (add-on) | ConfigProvider | N/A |
200
+ ---
346
201
 
347
- ## Contributing
202
+ ## 🤝 Community & Contributing
348
203
 
349
- See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines on adding components, coding rules, and the portal development workflow.
204
+ - **Live Documentation**: [https://bearui.com](https://bearui.com)
205
+ - **Storybook**: Run `npm run storybook` in `/portal` or explore [bearui.com/storybook](https://bearui.com/storybook/)
206
+ - **Contributing**: Please read [CONTRIBUTING.md](./CONTRIBUTING.md) before opening pull requests.
350
207
 
351
- ## License
208
+ ## 📄 License
352
209
 
353
- MIT
210
+ Bear UI is open-source software licensed under the [MIT License](./LICENSE). Built with 💖 by John Yaghobieh & the ForgeStack Team.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),a=require("react"),w=require("react-dom"),h=require("../../constants/numbers.const.cjs"),t=require("../../constants/generals.const.cjs"),p=require("../../constants/keys.const.cjs"),m=require("../../utils/cn.cjs"),v=require("../Button/Button.cjs"),k=require("../Typography/Typography.cjs"),F=B=>{const{isOpen:c,onClose:o,onConfirm:L,title:D,description:d,confirmText:R=t.LABEL_CONFIRM,cancelText:N=t.LABEL_CANCEL,confirmVariant:T=t.VARIANT_DANGER,loading:n=t.BOOLEAN_FALSE,loadingText:j,closeOnBackdrop:C=t.BOOLEAN_FALSE,closeOnEscape:f=t.BOOLEAN_TRUE,icon:i,className:O,testId:I}=B,y=a.useId(),g=`${t.ALERT_TITLE_ID_PREFIX}${y}`,x=`${t.ALERT_DESC_ID_PREFIX}${y}`,s=a.useRef(null),E=a.useRef(null),b=a.useCallback(e=>{f&&e.key===p.KEY_ESCAPE&&!n&&o()},[f,o,n]),u=a.useCallback(e=>{if(e.key!==p.KEY_TAB||!s.current)return;const l=s.current.querySelectorAll('button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])');if(l.length===h.ZERO)return;const _=l[h.ZERO],A=l[l.length-1];e.shiftKey&&document.activeElement===_?(e.preventDefault(),A.focus()):!e.shiftKey&&document.activeElement===A&&(e.preventDefault(),_.focus())},[]);if(a.useEffect(()=>(c&&(E.current=document.activeElement,document.addEventListener("keydown",b),document.addEventListener("keydown",u),document.body.style.overflow="hidden",requestAnimationFrame(()=>{var e;return(e=s.current)==null?void 0:e.focus()})),()=>{var e;document.removeEventListener("keydown",b),document.removeEventListener("keydown",u),document.body.style.overflow="",(e=E.current)==null||e.focus()}),[c,b,u]),!c)return null;const q=r.jsxs("div",{className:"Bear-AlertDialog bear-fixed bear-inset-0 bear-z-50 bear-flex bear-items-center bear-justify-center bear-p-4","data-testid":I,children:[r.jsx("div",{className:"Bear-AlertDialog__backdrop bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm bear-transition-opacity animate-fade-in",onClick:C&&!n?o:void 0,"aria-hidden":"true"}),r.jsxs("div",{ref:s,role:"alertdialog","aria-modal":"true","aria-labelledby":g,"aria-describedby":d?x:void 0,tabIndex:-1,className:m.cn("Bear-AlertDialog__container bear-relative bear-w-full bear-max-w-md bear-bg-white dark:bear-bg-zinc-900 bear-rounded-xl bear-shadow-2xl bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-transform bear-transition-all animate-alert-dialog-in bear-p-6",O),children:[i&&r.jsx("div",{className:"Bear-AlertDialog__icon bear-mb-4 bear-flex bear-justify-center",children:i}),r.jsx(k.Typography,{variant:"h6",id:g,className:m.cn("Bear-AlertDialog__title bear-text-lg bear-font-semibold bear-text-gray-900 dark:bear-text-white",i&&"bear-text-center"),children:D}),d&&r.jsx(k.Typography,{variant:"body2",id:x,className:m.cn("Bear-AlertDialog__description bear-text-sm bear-text-gray-600 dark:bear-text-gray-400 bear-mt-2",i&&"bear-text-center"),children:d}),r.jsxs("div",{className:"Bear-AlertDialog__footer bear-flex bear-items-center bear-justify-end bear-gap-3 bear-pt-6",children:[r.jsx(v.Button,{variant:"ghost",onClick:o,disabled:n,children:N}),r.jsx(v.Button,{variant:T,onClick:L,loading:n,loadingText:j,children:R})]})]})]});return w.createPortal(q,document.body)};exports.AlertDialog=F;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),j=require("react-dom"),r=require("../../constants/generals.const.cjs"),s=require("../../utils/cn.cjs"),D=require("../../hooks/useFocusTrap/useFocusTrap.cjs"),g=require("../Button/Button.cjs"),m=require("../Typography/Typography.cjs"),L=x=>{const{isOpen:a,onClose:n,onConfirm:f,title:_,description:o,confirmText:y=r.LABEL_CONFIRM,cancelText:p=r.LABEL_CANCEL,confirmVariant:A=r.VARIANT_DANGER,loading:t=r.BOOLEAN_FALSE,loadingText:E,closeOnBackdrop:h=r.BOOLEAN_FALSE,closeOnEscape:v=r.BOOLEAN_TRUE,icon:i,className:B,testId:N}=x,c=l.useId(),d=`${r.ALERT_TITLE_ID_PREFIX}${c}`,b=`${r.ALERT_DESC_ID_PREFIX}${c}`,u=l.useRef(null);if(D.useFocusTrap(u,{enabled:a,onEscape:v&&!t?n:void 0}),l.useEffect(()=>(a&&(document.body.style.overflow="hidden"),()=>{document.body.style.overflow=""}),[a]),!a)return null;const T=e.jsxs("div",{className:"Bear-AlertDialog bear-fixed bear-inset-0 bear-z-50 bear-flex bear-items-center bear-justify-center bear-p-4","data-testid":N,children:[e.jsx("div",{className:"Bear-AlertDialog__backdrop bear-absolute bear-inset-0 bear-bg-black/60 bear-backdrop-blur-sm bear-transition-opacity animate-fade-in",onClick:h&&!t?n:void 0,"aria-hidden":"true"}),e.jsxs("div",{ref:u,role:"alertdialog","aria-modal":"true","aria-labelledby":d,"aria-describedby":o?b:void 0,tabIndex:-1,className:s.cn("Bear-AlertDialog__container bear-relative bear-w-full bear-max-w-md bear-bg-white dark:bear-bg-zinc-900 bear-rounded-xl bear-shadow-2xl bear-border bear-border-gray-200 dark:bear-border-zinc-700 bear-transform bear-transition-all animate-alert-dialog-in bear-p-6",B),children:[i&&e.jsx("div",{className:"Bear-AlertDialog__icon bear-mb-4 bear-flex bear-justify-center",children:i}),e.jsx(m.Typography,{variant:"h6",id:d,className:s.cn("Bear-AlertDialog__title bear-text-lg bear-font-semibold bear-text-gray-900 dark:bear-text-white",i&&"bear-text-center"),children:_}),o&&e.jsx(m.Typography,{variant:"body2",id:b,className:s.cn("Bear-AlertDialog__description bear-text-sm bear-text-gray-600 dark:bear-text-gray-400 bear-mt-2",i&&"bear-text-center"),children:o}),e.jsxs("div",{className:"Bear-AlertDialog__footer bear-flex bear-items-center bear-justify-end bear-gap-3 bear-pt-6",children:[e.jsx(g.Button,{variant:"ghost",onClick:n,disabled:t,children:p}),e.jsx(g.Button,{variant:A,onClick:f,loading:t,loadingText:E,children:y})]})]})]});return j.createPortal(T,document.body)};exports.AlertDialog=L;