@b3-crow/ui-kit 0.0.34-pr30.4 → 0.0.35-pr30.5

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 (208) hide show
  1. package/dist/components/cards/TipCard.d.ts +5 -0
  2. package/dist/components/cards/TipCard.d.ts.map +1 -0
  3. package/dist/components/{dashboard → cards}/TipCard.js +0 -7
  4. package/dist/components/cards/TipCard.js.map +1 -0
  5. package/dist/components/chat/MessageBubble.d.ts +13 -0
  6. package/dist/components/chat/MessageBubble.d.ts.map +1 -0
  7. package/dist/components/chat/MessageBubble.js +19 -0
  8. package/dist/components/chat/MessageBubble.js.map +1 -0
  9. package/dist/components/dashboard/ChatHistorySection.d.ts.map +1 -1
  10. package/dist/components/dashboard/ChatHistorySection.js +31 -29
  11. package/dist/components/dashboard/ChatHistorySection.js.map +1 -1
  12. package/dist/components/dashboard/CollapseToggleButton.d.ts +7 -0
  13. package/dist/components/dashboard/CollapseToggleButton.d.ts.map +1 -0
  14. package/dist/components/dashboard/CollapseToggleButton.js +7 -0
  15. package/dist/components/dashboard/CollapseToggleButton.js.map +1 -0
  16. package/dist/components/dashboard/DashboardBackground.d.ts.map +1 -1
  17. package/dist/components/dashboard/DashboardBackground.js +13 -9
  18. package/dist/components/dashboard/DashboardBackground.js.map +1 -1
  19. package/dist/components/dashboard/Header.d.ts.map +1 -1
  20. package/dist/components/dashboard/Header.js +62 -58
  21. package/dist/components/dashboard/Header.js.map +1 -1
  22. package/dist/components/dashboard/MetricsCard.d.ts.map +1 -1
  23. package/dist/components/dashboard/MetricsCard.js +12 -26
  24. package/dist/components/dashboard/MetricsCard.js.map +1 -1
  25. package/dist/components/dashboard/MobileSidebar.d.ts.map +1 -1
  26. package/dist/components/dashboard/MobileSidebar.js +8 -20
  27. package/dist/components/dashboard/MobileSidebar.js.map +1 -1
  28. package/dist/components/dashboard/NavMenu.d.ts +3 -1
  29. package/dist/components/dashboard/NavMenu.d.ts.map +1 -1
  30. package/dist/components/dashboard/NavMenu.js +44 -42
  31. package/dist/components/dashboard/NavMenu.js.map +1 -1
  32. package/dist/components/dashboard/NavTooltip.d.ts +10 -0
  33. package/dist/components/dashboard/NavTooltip.d.ts.map +1 -0
  34. package/dist/components/dashboard/NavTooltip.js +36 -0
  35. package/dist/components/dashboard/NavTooltip.js.map +1 -0
  36. package/dist/components/dashboard/PatternCard.d.ts +1 -1
  37. package/dist/components/dashboard/PatternCard.d.ts.map +1 -1
  38. package/dist/components/dashboard/PatternCard.js +22 -13
  39. package/dist/components/dashboard/PatternCard.js.map +1 -1
  40. package/dist/components/dashboard/SettingsDropup.d.ts +2 -1
  41. package/dist/components/dashboard/SettingsDropup.d.ts.map +1 -1
  42. package/dist/components/dashboard/SettingsDropup.js +9 -13
  43. package/dist/components/dashboard/SettingsDropup.js.map +1 -1
  44. package/dist/components/dashboard/SettingsModal.js +3 -3
  45. package/dist/components/dashboard/SettingsModal.js.map +1 -1
  46. package/dist/components/dashboard/SidePanel.d.ts.map +1 -1
  47. package/dist/components/dashboard/SidePanel.js +1 -1
  48. package/dist/components/dashboard/SidePanel.js.map +1 -1
  49. package/dist/components/dashboard/Sidebar.d.ts +1 -1
  50. package/dist/components/dashboard/Sidebar.d.ts.map +1 -1
  51. package/dist/components/dashboard/Sidebar.js +7 -20
  52. package/dist/components/dashboard/Sidebar.js.map +1 -1
  53. package/dist/components/dashboard/SidebarLogo.d.ts +3 -1
  54. package/dist/components/dashboard/SidebarLogo.d.ts.map +1 -1
  55. package/dist/components/dashboard/SidebarLogo.js +6 -2
  56. package/dist/components/dashboard/SidebarLogo.js.map +1 -1
  57. package/dist/components/dashboard/constants/accessibility.d.ts +24 -0
  58. package/dist/components/dashboard/constants/accessibility.d.ts.map +1 -0
  59. package/dist/components/dashboard/constants/accessibility.js +26 -0
  60. package/dist/components/dashboard/constants/accessibility.js.map +1 -0
  61. package/dist/components/dashboard/constants/animations.d.ts +73 -0
  62. package/dist/components/dashboard/constants/animations.d.ts.map +1 -0
  63. package/dist/components/dashboard/constants/animations.js +48 -0
  64. package/dist/components/dashboard/constants/animations.js.map +1 -0
  65. package/dist/components/dashboard/constants/colors.d.ts +55 -0
  66. package/dist/components/dashboard/constants/colors.d.ts.map +1 -0
  67. package/dist/components/dashboard/constants/colors.js +55 -0
  68. package/dist/components/dashboard/constants/colors.js.map +1 -0
  69. package/dist/components/dashboard/constants/gradients.d.ts +29 -0
  70. package/dist/components/dashboard/constants/gradients.d.ts.map +1 -0
  71. package/dist/components/dashboard/constants/gradients.js +29 -0
  72. package/dist/components/dashboard/constants/gradients.js.map +1 -0
  73. package/dist/components/dashboard/constants/icons.d.ts +4 -0
  74. package/dist/components/dashboard/constants/icons.d.ts.map +1 -0
  75. package/dist/components/dashboard/constants/icons.js +23 -0
  76. package/dist/components/dashboard/constants/icons.js.map +1 -0
  77. package/dist/components/dashboard/constants/navigation.d.ts +3 -0
  78. package/dist/components/dashboard/constants/navigation.d.ts.map +1 -0
  79. package/dist/components/dashboard/constants/navigation.js +35 -0
  80. package/dist/components/dashboard/constants/navigation.js.map +1 -0
  81. package/dist/components/dashboard/constants/sizing.d.ts +61 -0
  82. package/dist/components/dashboard/constants/sizing.d.ts.map +1 -0
  83. package/dist/components/dashboard/constants/sizing.js +49 -0
  84. package/dist/components/dashboard/constants/sizing.js.map +1 -0
  85. package/dist/components/dashboard/constants/styles.d.ts +44 -0
  86. package/dist/components/dashboard/constants/styles.d.ts.map +1 -0
  87. package/dist/components/dashboard/constants/styles.js +44 -0
  88. package/dist/components/dashboard/constants/styles.js.map +1 -0
  89. package/dist/components/dashboard/constants.d.ts +10 -6
  90. package/dist/components/dashboard/constants.d.ts.map +1 -1
  91. package/dist/components/dashboard/constants.js +8 -7
  92. package/dist/components/dashboard/constants.js.map +1 -1
  93. package/dist/components/dashboard/index.d.ts +23 -13
  94. package/dist/components/dashboard/index.d.ts.map +1 -1
  95. package/dist/components/dashboard/index.js +23 -13
  96. package/dist/components/dashboard/index.js.map +1 -1
  97. package/dist/components/dashboard/types.d.ts +2 -23
  98. package/dist/components/dashboard/types.d.ts.map +1 -1
  99. package/dist/components/dashboard/utils/accessibilityUtils.d.ts +9 -0
  100. package/dist/components/dashboard/utils/accessibilityUtils.d.ts.map +1 -0
  101. package/dist/components/dashboard/utils/accessibilityUtils.js +56 -0
  102. package/dist/components/dashboard/utils/accessibilityUtils.js.map +1 -0
  103. package/dist/components/dashboard/utils/pathUtils.d.ts +4 -0
  104. package/dist/components/dashboard/utils/pathUtils.d.ts.map +1 -0
  105. package/dist/components/dashboard/utils/pathUtils.js +16 -0
  106. package/dist/components/dashboard/utils/pathUtils.js.map +1 -0
  107. package/dist/components/display/IconBadge.d.ts +12 -0
  108. package/dist/components/display/IconBadge.d.ts.map +1 -0
  109. package/dist/components/display/IconBadge.js +26 -0
  110. package/dist/components/display/IconBadge.js.map +1 -0
  111. package/dist/components/display/SourceIcon.d.ts +7 -0
  112. package/dist/components/display/SourceIcon.d.ts.map +1 -0
  113. package/dist/components/display/SourceIcon.js +23 -0
  114. package/dist/components/display/SourceIcon.js.map +1 -0
  115. package/dist/components/display/StatusBadge.d.ts +14 -0
  116. package/dist/components/display/StatusBadge.d.ts.map +1 -0
  117. package/dist/components/{dashboard → display}/StatusBadge.js +0 -12
  118. package/dist/components/display/StatusBadge.js.map +1 -0
  119. package/dist/components/display/StatusIndicator.d.ts +7 -0
  120. package/dist/components/display/StatusIndicator.d.ts.map +1 -0
  121. package/dist/components/{dashboard → display}/StatusIndicator.js +0 -9
  122. package/dist/components/display/StatusIndicator.js.map +1 -0
  123. package/dist/components/display/Tag.d.ts +7 -0
  124. package/dist/components/display/Tag.d.ts.map +1 -0
  125. package/dist/components/display/Tag.js +12 -0
  126. package/dist/components/display/Tag.js.map +1 -0
  127. package/dist/components/feedback/GeneratingState.d.ts +12 -0
  128. package/dist/components/feedback/GeneratingState.d.ts.map +1 -0
  129. package/dist/components/feedback/GeneratingState.js +19 -0
  130. package/dist/components/feedback/GeneratingState.js.map +1 -0
  131. package/dist/components/index.d.ts +16 -0
  132. package/dist/components/index.d.ts.map +1 -1
  133. package/dist/components/index.js +16 -0
  134. package/dist/components/index.js.map +1 -1
  135. package/dist/components/inputs/FilterDropdown.d.ts.map +1 -0
  136. package/dist/components/{dashboard → inputs}/FilterDropdown.js +14 -16
  137. package/dist/components/inputs/FilterDropdown.js.map +1 -0
  138. package/dist/components/inputs/SearchInput.d.ts +14 -0
  139. package/dist/components/inputs/SearchInput.d.ts.map +1 -0
  140. package/dist/components/{dashboard → inputs}/SearchInput.js +11 -25
  141. package/dist/components/inputs/SearchInput.js.map +1 -0
  142. package/dist/components/inputs/SuggestionChip.d.ts +10 -0
  143. package/dist/components/inputs/SuggestionChip.d.ts.map +1 -0
  144. package/dist/components/inputs/SuggestionChip.js +12 -0
  145. package/dist/components/inputs/SuggestionChip.js.map +1 -0
  146. package/dist/components/inputs/ToggleSwitch.d.ts +8 -0
  147. package/dist/components/inputs/ToggleSwitch.d.ts.map +1 -0
  148. package/dist/components/inputs/ToggleSwitch.js +29 -0
  149. package/dist/components/inputs/ToggleSwitch.js.map +1 -0
  150. package/dist/components/layout/GlassPanel.d.ts +4 -0
  151. package/dist/components/layout/GlassPanel.d.ts.map +1 -0
  152. package/dist/components/layout/GlassPanel.js +11 -0
  153. package/dist/components/layout/GlassPanel.js.map +1 -0
  154. package/dist/components/layout/ListItem.d.ts +10 -0
  155. package/dist/components/layout/ListItem.d.ts.map +1 -0
  156. package/dist/components/layout/ListItem.js +14 -0
  157. package/dist/components/layout/ListItem.js.map +1 -0
  158. package/dist/components/layout/SectionHeader.d.ts.map +1 -0
  159. package/dist/components/{dashboard → layout}/SectionHeader.js +12 -9
  160. package/dist/components/layout/SectionHeader.js.map +1 -0
  161. package/dist/components/providers/LenisProvider.d.ts +22 -0
  162. package/dist/components/providers/LenisProvider.d.ts.map +1 -0
  163. package/dist/components/providers/LenisProvider.js +45 -0
  164. package/dist/components/providers/LenisProvider.js.map +1 -0
  165. package/dist/styles.css +1 -1
  166. package/package.json +4 -2
  167. package/dist/components/dashboard/FilterDropdown.d.ts.map +0 -1
  168. package/dist/components/dashboard/FilterDropdown.js.map +0 -1
  169. package/dist/components/dashboard/GlassPanel.d.ts +0 -13
  170. package/dist/components/dashboard/GlassPanel.d.ts.map +0 -1
  171. package/dist/components/dashboard/GlassPanel.js +0 -20
  172. package/dist/components/dashboard/GlassPanel.js.map +0 -1
  173. package/dist/components/dashboard/IconBadge.d.ts +0 -22
  174. package/dist/components/dashboard/IconBadge.d.ts.map +0 -1
  175. package/dist/components/dashboard/IconBadge.js +0 -44
  176. package/dist/components/dashboard/IconBadge.js.map +0 -1
  177. package/dist/components/dashboard/ListItem.d.ts +0 -22
  178. package/dist/components/dashboard/ListItem.d.ts.map +0 -1
  179. package/dist/components/dashboard/ListItem.js +0 -25
  180. package/dist/components/dashboard/ListItem.js.map +0 -1
  181. package/dist/components/dashboard/SearchInput.d.ts +0 -30
  182. package/dist/components/dashboard/SearchInput.d.ts.map +0 -1
  183. package/dist/components/dashboard/SearchInput.js.map +0 -1
  184. package/dist/components/dashboard/SectionHeader.d.ts.map +0 -1
  185. package/dist/components/dashboard/SectionHeader.js.map +0 -1
  186. package/dist/components/dashboard/SourceIcon.d.ts +0 -15
  187. package/dist/components/dashboard/SourceIcon.d.ts.map +0 -1
  188. package/dist/components/dashboard/SourceIcon.js +0 -28
  189. package/dist/components/dashboard/SourceIcon.js.map +0 -1
  190. package/dist/components/dashboard/StatusBadge.d.ts +0 -26
  191. package/dist/components/dashboard/StatusBadge.d.ts.map +0 -1
  192. package/dist/components/dashboard/StatusBadge.js.map +0 -1
  193. package/dist/components/dashboard/StatusIndicator.d.ts +0 -16
  194. package/dist/components/dashboard/StatusIndicator.d.ts.map +0 -1
  195. package/dist/components/dashboard/StatusIndicator.js.map +0 -1
  196. package/dist/components/dashboard/Tag.d.ts +0 -16
  197. package/dist/components/dashboard/Tag.d.ts.map +0 -1
  198. package/dist/components/dashboard/Tag.js +0 -18
  199. package/dist/components/dashboard/Tag.js.map +0 -1
  200. package/dist/components/dashboard/TipCard.d.ts +0 -12
  201. package/dist/components/dashboard/TipCard.d.ts.map +0 -1
  202. package/dist/components/dashboard/TipCard.js.map +0 -1
  203. package/dist/components/dashboard/ToggleSwitch.d.ts +0 -17
  204. package/dist/components/dashboard/ToggleSwitch.d.ts.map +0 -1
  205. package/dist/components/dashboard/ToggleSwitch.js +0 -27
  206. package/dist/components/dashboard/ToggleSwitch.js.map +0 -1
  207. /package/dist/components/{dashboard → inputs}/FilterDropdown.d.ts +0 -0
  208. /package/dist/components/{dashboard → layout}/SectionHeader.d.ts +0 -0
@@ -0,0 +1,16 @@
1
+ export const normalizePath = (path) => {
2
+ if (!path)
3
+ return '/';
4
+ return path.replace(/\/$/, '') || '/';
5
+ };
6
+ export const isActivePath = (currentPath, targetPath) => {
7
+ const normalized = normalizePath(currentPath);
8
+ const target = normalizePath(targetPath);
9
+ return normalized === target;
10
+ };
11
+ export const isActivePathPrefix = (currentPath, prefix) => {
12
+ const normalized = normalizePath(currentPath);
13
+ const normalizedPrefix = normalizePath(prefix);
14
+ return normalized.startsWith(normalizedPrefix);
15
+ };
16
+ //# sourceMappingURL=pathUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../../../../src/components/dashboard/utils/pathUtils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IACtB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,WAAmB,EACnB,UAAkB,EACT,EAAE;IACX,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,OAAO,UAAU,KAAK,MAAM,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAAmB,EACnB,MAAc,EACL,EAAE;IACX,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACjD,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { VariantProps } from 'class-variance-authority';
2
+ declare const iconBadgeVariants: (props?: ({
3
+ variant?: "blue" | "gray" | "violet" | "emerald" | "rose" | null | undefined;
4
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
5
+ export interface IconBadgeProps extends VariantProps<typeof iconBadgeVariants> {
6
+ icon: string;
7
+ className?: string;
8
+ iconClassName?: string;
9
+ }
10
+ export declare function IconBadge({ icon, variant, className, iconClassName, }: IconBadgeProps): import("react/jsx-runtime").JSX.Element;
11
+ export {};
12
+ //# sourceMappingURL=IconBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconBadge.d.ts","sourceRoot":"","sources":["../../../src/components/display/IconBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAK7D,QAAA,MAAM,iBAAiB;;mFAiBtB,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,YAAY,CAAC,OAAO,iBAAiB,CAAC;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAKD,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,OAAgB,EAChB,SAAc,EACd,aAAkB,GACnB,EAAE,cAAc,2CAmBhB"}
@@ -0,0 +1,26 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cva } from 'class-variance-authority';
4
+ import { cn } from '../../lib/utils';
5
+ import { ICON_REGISTRY } from '../dashboard/constants/icons';
6
+ const iconBadgeVariants = cva('w-8 h-8 rounded-lg flex items-center justify-center border', {
7
+ variants: {
8
+ variant: {
9
+ gray: 'bg-gray-800/50 border-white/5',
10
+ violet: 'bg-violet-600 border-violet-500/50 shadow-[0_0_15px_rgba(124,58,237,0.5)]',
11
+ blue: 'bg-blue-600/20 border-blue-500/20',
12
+ emerald: 'bg-emerald-600/20 border-emerald-500/20',
13
+ rose: 'bg-rose-600/20 border-rose-500/20',
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ variant: 'gray',
18
+ },
19
+ });
20
+ const getIconColor = (variant) => variant === 'gray' ? 'text-gray-400' : 'text-white';
21
+ export function IconBadge({ icon, variant = 'gray', className = '', iconClassName = '', }) {
22
+ const IconComponent = ICON_REGISTRY[icon];
23
+ const iconColor = getIconColor(variant);
24
+ return (_jsx("div", { className: cn(iconBadgeVariants({ variant }), className), children: IconComponent ? (_jsx(IconComponent, { size: 18, className: cn(iconColor, iconClassName), strokeWidth: 2 })) : (_jsx("span", { className: cn('text-[18px]', iconColor, iconClassName), children: icon })) }));
25
+ }
26
+ //# sourceMappingURL=IconBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconBadge.js","sourceRoot":"","sources":["../../../src/components/display/IconBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,iBAAiB,GAAG,GAAG,CAC3B,4DAA4D,EAC5D;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,IAAI,EAAE,+BAA+B;YACrC,MAAM,EACJ,2EAA2E;YAC7E,IAAI,EAAE,mCAAmC;YACzC,OAAO,EAAE,yCAAyC;YAClD,IAAI,EAAE,mCAAmC;SAC1C;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM;KAChB;CACF,CACF,CAAC;AAQF,MAAM,YAAY,GAAG,CAAC,OAAsB,EAAE,EAAE,CAC9C,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC;AAEtD,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,OAAO,GAAG,MAAM,EAChB,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,GACH;IACf,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAExC,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,YAC1D,aAAa,CAAC,CAAC,CAAC,CACf,KAAC,aAAa,IACZ,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,EACvC,WAAW,EAAE,CAAC,GACd,CACH,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,YACzD,IAAI,GACA,CACR,GACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type SourceType = 'web' | 'cctv' | 'social';
2
+ export interface SourceIconProps {
3
+ source: SourceType;
4
+ size?: 'sm' | 'md';
5
+ }
6
+ export declare function SourceIcon({ source, size }: SourceIconProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=SourceIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceIcon.d.ts","sourceRoot":"","sources":["../../../src/components/display/SourceIcon.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB;AAoBD,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,IAAW,EAAE,EAAE,eAAe,2CAalE"}
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Globe, MessageCircle, Video } from 'lucide-react';
4
+ const sourceConfig = {
5
+ web: { icon: Globe, color: '#60A5FA', bg: 'rgba(96, 165, 250, 0.15)' },
6
+ cctv: { icon: Video, color: '#F87171', bg: 'rgba(248, 113, 113, 0.15)' },
7
+ social: {
8
+ icon: MessageCircle,
9
+ color: '#A78BFA',
10
+ bg: 'rgba(167, 139, 250, 0.15)',
11
+ },
12
+ };
13
+ const sizeConfig = {
14
+ sm: { containerClass: 'w-8 h-8', iconSize: 16 },
15
+ md: { containerClass: 'w-10 h-10', iconSize: 20 },
16
+ };
17
+ export function SourceIcon({ source, size = 'sm' }) {
18
+ const sourceStyle = sourceConfig[source];
19
+ const IconComponent = sourceStyle.icon;
20
+ const { containerClass, iconSize } = sizeConfig[size];
21
+ return (_jsx("div", { className: `${containerClass} rounded-lg flex items-center justify-center`, style: { background: sourceStyle.bg }, children: _jsx(IconComponent, { size: iconSize, color: sourceStyle.color }) }));
22
+ }
23
+ //# sourceMappingURL=SourceIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceIcon.js","sourceRoot":"","sources":["../../../src/components/display/SourceIcon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAS3D,MAAM,YAAY,GAGd;IACF,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,0BAA0B,EAAE;IACtE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,2BAA2B,EAAE;IACxE,MAAM,EAAE;QACN,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,2BAA2B;KAChC;CACF,CAAC;AAEF,MAAM,UAAU,GAAG;IACjB,EAAE,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/C,EAAE,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;CACzC,CAAC;AAEX,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,EAAmB;IACjE,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC;IACvC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEtD,OAAO,CACL,cACE,SAAS,EAAE,GAAG,cAAc,8CAA8C,EAC1E,KAAK,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,YAErC,KAAC,aAAa,IAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,GAAI,GACvD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { VariantProps } from 'class-variance-authority';
2
+ declare const badgeVariants: (props?: ({
3
+ variant?: "medium" | "positive" | "negative" | "warning" | "neutral" | "info" | "high" | "low" | null | undefined;
4
+ size?: "default" | "sm" | null | undefined;
5
+ } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
6
+ export interface StatusBadgeProps extends VariantProps<typeof badgeVariants> {
7
+ children: React.ReactNode;
8
+ className?: string;
9
+ uppercase?: boolean;
10
+ tracking?: boolean;
11
+ }
12
+ export declare function StatusBadge({ children, variant, size, className, uppercase, tracking, }: StatusBadgeProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=StatusBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/display/StatusBadge.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,QAAA,MAAM,aAAa;;;mFAsBjB,CAAC;AAEH,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IAC1E,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAmB,EACnB,IAAgB,EAChB,SAAc,EACd,SAAiB,EACjB,QAAgB,GACjB,EAAE,gBAAgB,2CAalB"}
@@ -24,18 +24,6 @@ const badgeVariants = cva('inline-flex items-center rounded font-medium', {
24
24
  size: 'default',
25
25
  },
26
26
  });
27
- /**
28
- * A status badge component for displaying status information
29
- * Supports multiple semantic variants (positive, negative, warning, etc.)
30
- * @param {StatusBadgeProps} props - Component props
31
- * @param {React.ReactNode} props.children - Badge text content
32
- * @param {'positive' | 'negative' | 'warning' | 'neutral' | 'info' | 'high' | 'medium' | 'low'} [props.variant='neutral'] - Semantic variant
33
- * @param {'default' | 'sm'} [props.size='default'] - Badge size
34
- * @param {string} [props.className=''] - Additional CSS classes
35
- * @param {boolean} [props.uppercase=false] - Whether to uppercase the text
36
- * @param {boolean} [props.tracking=false] - Whether to add letter spacing
37
- * @returns {JSX.Element} The status badge component
38
- */
39
27
  export function StatusBadge({ children, variant = 'neutral', size = 'default', className = '', uppercase = false, tracking = false, }) {
40
28
  return (_jsx("span", { className: cn(badgeVariants({ variant, size }), uppercase && 'uppercase', tracking && 'tracking-wider', className), children: children }));
41
29
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBadge.js","sourceRoot":"","sources":["../../../src/components/display/StatusBadge.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,MAAM,aAAa,GAAG,GAAG,CAAC,8CAA8C,EAAE;IACxE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,QAAQ,EACN,iEAAiE;YACnE,QAAQ,EAAE,wDAAwD;YAClE,OAAO,EAAE,8DAA8D;YACvE,OAAO,EAAE,wDAAwD;YACjE,IAAI,EAAE,8DAA8D;YACpE,IAAI,EAAE,8DAA8D;YACpE,MAAM,EAAE,8DAA8D;YACtE,GAAG,EAAE,wDAAwD;SAC9D;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,yBAAyB;YAClC,EAAE,EAAE,0BAA0B;SAC/B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CAAC,CAAC;AASH,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,SAAS,GAAG,EAAE,EACd,SAAS,GAAG,KAAK,EACjB,QAAQ,GAAG,KAAK,GACC;IACjB,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAChC,SAAS,IAAI,WAAW,EACxB,QAAQ,IAAI,gBAAgB,EAC5B,SAAS,CACV,YAEA,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface StatusIndicatorProps {
2
+ status?: 'active' | 'inactive' | 'processing';
3
+ label?: string;
4
+ className?: string;
5
+ }
6
+ export declare function StatusIndicator({ status, label, className, }: StatusIndicatorProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=StatusIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusIndicator.d.ts","sourceRoot":"","sources":["../../../src/components/display/StatusIndicator.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,wBAAgB,eAAe,CAAC,EAC9B,MAAiB,EACjB,KAAK,EACL,SAAS,GACV,EAAE,oBAAoB,2CAuBtB"}
@@ -18,15 +18,6 @@ const statusConfig = {
18
18
  label: 'Processing',
19
19
  },
20
20
  };
21
- /**
22
- * A status indicator component that displays system status with a colored dot
23
- * Shows predefined labels for each status or custom labels
24
- * @param {StatusIndicatorProps} props - Component props
25
- * @param {'active' | 'inactive' | 'processing'} [props.status='active'] - Status type
26
- * @param {string} [props.label] - Custom label text (overrides default)
27
- * @param {string} [props.className] - Additional CSS classes
28
- * @returns {JSX.Element} The status indicator component
29
- */
30
21
  export function StatusIndicator({ status = 'active', label, className, }) {
31
22
  const config = statusConfig[status];
32
23
  const displayLabel = label ?? config.label;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusIndicator.js","sourceRoot":"","sources":["../../../src/components/display/StatusIndicator.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAQrC,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,SAAS,EAAE,iBAAiB;QAC5B,KAAK,EAAE,eAAe;KACvB;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,aAAa;QACvB,SAAS,EAAE,eAAe;QAC1B,KAAK,EAAE,gBAAgB;KACxB;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,cAAc;QACxB,SAAS,EAAE,gBAAgB;QAC3B,KAAK,EAAE,YAAY;KACpB;CACO,CAAC;AAEX,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,GAAG,QAAQ,EACjB,KAAK,EACL,SAAS,GACY;IACrB,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;IAE3C,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,yDAAyD,EACzD,+DAA+D,EAC/D,SAAS,CACV,aAED,cAAK,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAI,EACnE,eACE,SAAS,EAAE,EAAE,CACX,+DAA+D,EAC/D,MAAM,CAAC,SAAS,CACjB,YAEA,YAAY,GACR,IACH,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface TagProps {
2
+ children: React.ReactNode;
3
+ variant?: 'default' | 'active';
4
+ className?: string;
5
+ }
6
+ export declare function Tag({ children, variant, className }: TagProps): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=Tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.d.ts","sourceRoot":"","sources":["../../../src/components/display/Tag.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAmB,EAAE,SAAS,EAAE,EAAE,QAAQ,2CAczE"}
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from '../../lib/utils';
4
+ const tagStyles = {
5
+ default: { background: 'rgba(107, 114, 128, 0.20)', color: '#9CA3AF' },
6
+ active: { background: 'rgba(139, 92, 246, 0.20)', color: '#C4B5FD' },
7
+ };
8
+ export function Tag({ children, variant = 'default', className }) {
9
+ const style = tagStyles[variant];
10
+ return (_jsx("span", { className: cn('inline-flex items-center px-2 py-0.5 rounded text-[10px] font-medium', className), style: style, children: children }));
11
+ }
12
+ //# sourceMappingURL=Tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../../src/components/display/Tag.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAQrC,MAAM,SAAS,GAAG;IAChB,OAAO,EAAE,EAAE,UAAU,EAAE,2BAA2B,EAAE,KAAK,EAAE,SAAS,EAAE;IACtE,MAAM,EAAE,EAAE,UAAU,EAAE,0BAA0B,EAAE,KAAK,EAAE,SAAS,EAAE;CAC5D,CAAC;AAEX,MAAM,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,SAAS,EAAY;IACxE,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAEjC,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,sEAAsE,EACtE,SAAS,CACV,EACD,KAAK,EAAE,KAAK,YAEX,QAAQ,GACJ,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ export interface GeneratingStateProps {
2
+ label?: string;
3
+ subtitle?: string;
4
+ showDots?: boolean;
5
+ showOrbitals?: boolean;
6
+ avatarSrc?: string;
7
+ avatarAlt?: string;
8
+ orbitalDurationFast?: number;
9
+ orbitalDurationSlow?: number;
10
+ }
11
+ export declare function GeneratingState({ label, subtitle, showDots, showOrbitals, avatarSrc, avatarAlt, orbitalDurationFast, orbitalDurationSlow, }: GeneratingStateProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=GeneratingState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratingState.d.ts","sourceRoot":"","sources":["../../../src/components/feedback/GeneratingState.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AA6BD,wBAAgB,eAAe,CAAC,EAC9B,KAAiC,EACjC,QAAuB,EACvB,QAAe,EACf,YAAmB,EACnB,SAA2B,EAC3B,SAAwB,EACxB,mBAA0B,EAC1B,mBAA0B,GAC3B,EAAE,oBAAoB,2CA6DtB"}
@@ -0,0 +1,19 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import Image from 'next/image';
4
+ function AnimatedDot({ delay }) {
5
+ return (_jsx("div", { className: "w-1.5 h-1.5 rounded-full bg-purple-400 animate-pulse", style: { animationDelay: delay } }));
6
+ }
7
+ function OrbitalRing({ duration, direction = 'normal', }) {
8
+ return (_jsx("div", { className: "absolute rounded-full border border-purple-500/30 animate-spin", style: {
9
+ animationDuration: `${duration}ms`,
10
+ animationDirection: direction,
11
+ } }));
12
+ }
13
+ export function GeneratingState({ label = 'Processing your request', subtitle = 'Processing', showDots = true, showOrbitals = true, avatarSrc = '/favicon.webp', avatarAlt = 'Processing', orbitalDurationFast = 3000, orbitalDurationSlow = 5000, }) {
14
+ return (_jsx("div", { className: "flex justify-start animate-fadeIn", children: _jsx("div", { className: "border rounded-2xl px-5 py-4 max-w-[85%]", style: {
15
+ background: 'rgba(255, 255, 255, 0.03)',
16
+ borderColor: 'rgba(255, 255, 255, 0.1)',
17
+ }, children: _jsxs("div", { className: "flex items-center gap-4", children: [_jsxs("div", { className: "relative", children: [_jsx("div", { className: "w-10 h-10 rounded-full flex items-center justify-center ring-1 ring-purple-500/40", style: { background: 'rgba(0, 0, 0, 0.6)' }, children: _jsx(Image, { src: avatarSrc, alt: avatarAlt, width: 24, height: 24, className: "rounded-full animate-pulse" }) }), showOrbitals && (_jsxs(_Fragment, { children: [_jsx(OrbitalRing, { duration: orbitalDurationFast, direction: "normal" }), _jsx(OrbitalRing, { duration: orbitalDurationSlow, direction: "reverse" })] }))] }), _jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("span", { className: "text-[13px] font-medium text-white/90", children: label }), showDots && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "flex gap-[3px]", children: [_jsx(AnimatedDot, { delay: "0ms" }), _jsx(AnimatedDot, { delay: "200ms" }), _jsx(AnimatedDot, { delay: "400ms" })] }), _jsx("span", { className: "text-[11px] text-gray-500 uppercase tracking-wider", children: subtitle })] }))] })] }) }) }));
18
+ }
19
+ //# sourceMappingURL=GeneratingState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneratingState.js","sourceRoot":"","sources":["../../../src/components/feedback/GeneratingState.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,MAAM,YAAY,CAAC;AAa/B,SAAS,WAAW,CAAC,EAAE,KAAK,EAAqB;IAC/C,OAAO,CACL,cACE,SAAS,EAAC,sDAAsD,EAChE,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,GAChC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EACnB,QAAQ,EACR,SAAS,GAAG,QAAQ,GAIrB;IACC,OAAO,CACL,cACE,SAAS,EAAC,gEAAgE,EAC1E,KAAK,EAAE;YACL,iBAAiB,EAAE,GAAG,QAAQ,IAAI;YAClC,kBAAkB,EAAE,SAAS;SAC9B,GACD,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,KAAK,GAAG,yBAAyB,EACjC,QAAQ,GAAG,YAAY,EACvB,QAAQ,GAAG,IAAI,EACf,YAAY,GAAG,IAAI,EACnB,SAAS,GAAG,eAAe,EAC3B,SAAS,GAAG,YAAY,EACxB,mBAAmB,GAAG,IAAI,EAC1B,mBAAmB,GAAG,IAAI,GACL;IACrB,OAAO,CACL,cAAK,SAAS,EAAC,mCAAmC,YAChD,cACE,SAAS,EAAC,0CAA0C,EACpD,KAAK,EAAE;gBACL,UAAU,EAAE,2BAA2B;gBACvC,WAAW,EAAE,0BAA0B;aACxC,YAED,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,UAAU,aACvB,cACE,SAAS,EAAC,mFAAmF,EAC7F,KAAK,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,YAE3C,KAAC,KAAK,IACJ,GAAG,EAAE,SAAS,EACd,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,SAAS,EAAC,4BAA4B,GACtC,GACE,EAEL,YAAY,IAAI,CACf,8BACE,KAAC,WAAW,IACV,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAC,QAAQ,GAClB,EACF,KAAC,WAAW,IACV,QAAQ,EAAE,mBAAmB,EAC7B,SAAS,EAAC,SAAS,GACnB,IACD,CACJ,IACG,EAEN,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAM,SAAS,EAAC,uCAAuC,YACpD,KAAK,GACD,EAEN,QAAQ,IAAI,CACX,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,gBAAgB,aAC7B,KAAC,WAAW,IAAC,KAAK,EAAC,KAAK,GAAG,EAC3B,KAAC,WAAW,IAAC,KAAK,EAAC,OAAO,GAAG,EAC7B,KAAC,WAAW,IAAC,KAAK,EAAC,OAAO,GAAG,IACzB,EACN,eAAM,SAAS,EAAC,oDAAoD,YACjE,QAAQ,GACJ,IACH,CACP,IACG,IACF,GACF,GACF,CACP,CAAC;AACJ,CAAC"}
@@ -13,28 +13,44 @@ export * from './cards/PlanCard';
13
13
  export * from './cards/PricingCard';
14
14
  export * from './cards/RunAgentCard';
15
15
  export * from './cards/SyncStatusCard';
16
+ export * from './cards/TipCard';
17
+ export * from './chat/MessageBubble';
16
18
  export * from './dashboard';
17
19
  export * from './display/CodeBlock';
18
20
  export * from './display/ConnectionStatus';
21
+ export * from './display/IconBadge';
19
22
  export * from './display/Logo';
20
23
  export * from './display/PackageManagerSelector';
24
+ export * from './display/SourceIcon';
25
+ export * from './display/StatusBadge';
26
+ export * from './display/StatusIndicator';
27
+ export * from './display/Tag';
28
+ export * from './feedback/GeneratingState';
21
29
  export * from './inputs/ApiKeyInput';
22
30
  export * from './inputs/Checkbox';
23
31
  export * from './inputs/EmailTagInput';
32
+ export * from './inputs/FilterDropdown';
24
33
  export * from './inputs/Input';
25
34
  export * from './inputs/InputField';
26
35
  export * from './inputs/NumberStepper';
27
36
  export * from './inputs/PermissionToggle';
37
+ export * from './inputs/SearchInput';
28
38
  export * from './inputs/Select';
39
+ export * from './inputs/SuggestionChip';
29
40
  export * from './inputs/TagInput';
30
41
  export * from './inputs/ToggleOption';
42
+ export * from './inputs/ToggleSwitch';
31
43
  export * from './layout/Divider';
32
44
  export * from './layout/Footer';
33
45
  export * from './layout/FormSection';
46
+ export * from './layout/GlassPanel';
34
47
  export * from './layout/LinkGroup';
48
+ export * from './layout/ListItem';
35
49
  export * from './layout/Navbar';
36
50
  export * from './layout/PageHeader';
51
+ export * from './layout/SectionHeader';
37
52
  export * from './layout/SegmentedControl';
53
+ export * from './providers/LenisProvider';
38
54
  export * from './typography/HeroText';
39
55
  export * from './typography/SectionLabel';
40
56
  export * from './typography/Subtitle';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,6BAA6B,CAAC"}
@@ -13,28 +13,44 @@ export * from './cards/PlanCard';
13
13
  export * from './cards/PricingCard';
14
14
  export * from './cards/RunAgentCard';
15
15
  export * from './cards/SyncStatusCard';
16
+ export * from './cards/TipCard';
17
+ export * from './chat/MessageBubble';
16
18
  export * from './dashboard';
17
19
  export * from './display/CodeBlock';
18
20
  export * from './display/ConnectionStatus';
21
+ export * from './display/IconBadge';
19
22
  export * from './display/Logo';
20
23
  export * from './display/PackageManagerSelector';
24
+ export * from './display/SourceIcon';
25
+ export * from './display/StatusBadge';
26
+ export * from './display/StatusIndicator';
27
+ export * from './display/Tag';
28
+ export * from './feedback/GeneratingState';
21
29
  export * from './inputs/ApiKeyInput';
22
30
  export * from './inputs/Checkbox';
23
31
  export * from './inputs/EmailTagInput';
32
+ export * from './inputs/FilterDropdown';
24
33
  export * from './inputs/Input';
25
34
  export * from './inputs/InputField';
26
35
  export * from './inputs/NumberStepper';
27
36
  export * from './inputs/PermissionToggle';
37
+ export * from './inputs/SearchInput';
28
38
  export * from './inputs/Select';
39
+ export * from './inputs/SuggestionChip';
29
40
  export * from './inputs/TagInput';
30
41
  export * from './inputs/ToggleOption';
42
+ export * from './inputs/ToggleSwitch';
31
43
  export * from './layout/Divider';
32
44
  export * from './layout/Footer';
33
45
  export * from './layout/FormSection';
46
+ export * from './layout/GlassPanel';
34
47
  export * from './layout/LinkGroup';
48
+ export * from './layout/ListItem';
35
49
  export * from './layout/Navbar';
36
50
  export * from './layout/PageHeader';
51
+ export * from './layout/SectionHeader';
37
52
  export * from './layout/SegmentedControl';
53
+ export * from './providers/LenisProvider';
38
54
  export * from './typography/HeroText';
39
55
  export * from './typography/SectionLabel';
40
56
  export * from './typography/Subtitle';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AAEvC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gBAAgB,CAAC;AAE/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC;AAEjD,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,cAAc,CAAC;AAC7B,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAElC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AAEtC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterDropdown.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/FilterDropdown.tsx"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAkB,GACnB,EAAE,mBAAmB,2CAuLrB"}
@@ -42,29 +42,27 @@ export function FilterDropdown({ label, options, value, onChange, className, sho
42
42
  return () => document.removeEventListener('mousedown', handleClickOutside);
43
43
  }, []);
44
44
  useEffect(() => {
45
- if (isOpen) {
46
- updatePosition();
47
- // Only listen for resize, not scroll (Lenis handles scroll smoothly)
48
- window.addEventListener('resize', updatePosition);
49
- return () => {
50
- window.removeEventListener('resize', updatePosition);
51
- };
52
- }
45
+ if (!isOpen)
46
+ return;
47
+ updatePosition();
48
+ window.addEventListener('resize', updatePosition);
49
+ return () => window.removeEventListener('resize', updatePosition);
53
50
  }, [isOpen, updatePosition]);
54
- const handleSelect = (optionValue) => {
51
+ const selectOption = (optionValue) => {
55
52
  setSelectedValue(optionValue);
56
53
  onChange?.(optionValue);
57
54
  setIsOpen(false);
58
55
  setFocusedIndex(-1);
59
56
  };
60
- const handleToggle = () => {
61
- if (!isOpen) {
57
+ const toggleDropdown = () => {
58
+ const newIsOpen = !isOpen;
59
+ if (newIsOpen) {
62
60
  updatePosition();
63
61
  setFocusedIndex(0);
64
62
  }
65
- setIsOpen(!isOpen);
63
+ setIsOpen(newIsOpen);
66
64
  };
67
- const handleKeyDown = (e) => {
65
+ const handleFilterKeyDown = (e) => {
68
66
  if (!isOpen) {
69
67
  if (e.key === 'Enter' || e.key === ' ' || e.key === 'ArrowDown') {
70
68
  e.preventDefault();
@@ -93,7 +91,7 @@ export function FilterDropdown({ label, options, value, onChange, className, sho
93
91
  case ' ':
94
92
  e.preventDefault();
95
93
  if (focusedIndex >= 0 && focusedIndex < options.length) {
96
- handleSelect(options[focusedIndex].value);
94
+ selectOption(options[focusedIndex].value);
97
95
  }
98
96
  break;
99
97
  case 'Tab':
@@ -102,12 +100,12 @@ export function FilterDropdown({ label, options, value, onChange, className, sho
102
100
  break;
103
101
  }
104
102
  };
105
- return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("button", { ref: buttonRef, type: "button", onClick: handleToggle, onKeyDown: handleKeyDown, "aria-expanded": isOpen, "aria-haspopup": "listbox", "aria-label": `${label} filter`, className: cn('h-[34px] px-3 flex items-center gap-2 rounded-lg transition-colors hover:bg-white/5', showBorder && 'border-r border-white/10 rounded-r-none pr-4', isOpen ? 'bg-white/5' : 'bg-transparent'), children: [_jsx("span", { className: "text-xs font-medium text-gray-300", children: selectedOption?.label || label }), _jsx(ChevronDown, { size: 12, className: cn('text-gray-500 transition-transform', isOpen && 'rotate-180') })] }), isOpen &&
103
+ return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("button", { ref: buttonRef, type: "button", onClick: toggleDropdown, onKeyDown: handleFilterKeyDown, "aria-expanded": isOpen, "aria-haspopup": "listbox", "aria-label": `${label} filter`, className: cn('h-[34px] px-3 flex items-center gap-2 rounded-lg transition-colors hover:bg-white/5', showBorder && 'border-r border-white/10 rounded-r-none pr-4', isOpen ? 'bg-white/5' : 'bg-transparent'), children: [_jsx("span", { className: "text-xs font-medium text-gray-300", children: selectedOption?.label || label }), _jsx(ChevronDown, { size: 12, className: cn('text-gray-500 transition-transform', isOpen && 'rotate-180') })] }), isOpen &&
106
104
  typeof document !== 'undefined' &&
107
105
  createPortal(_jsx("div", { ref: dropdownRef, role: "listbox", "aria-label": `${label} options`, className: "fixed min-w-[160px] py-1 rounded-lg z-[9999] bg-[rgba(20,10,35,0.98)] border border-white/10 shadow-[0_10px_40px_rgba(0,0,0,0.5)]", style: {
108
106
  top: dropdownPosition.top,
109
107
  left: dropdownPosition.left,
110
- }, children: options.map((option, index) => (_jsxs("button", { type: "button", role: "option", "aria-selected": selectedValue === option.value, onClick: () => handleSelect(option.value), className: cn('w-full px-3 py-2 flex items-center justify-between text-left transition-colors', focusedIndex === index && 'bg-white/5', focusedIndex !== index && 'hover:bg-white/5'), children: [_jsx("span", { className: cn('text-xs', selectedValue === option.value
108
+ }, children: options.map((option, index) => (_jsxs("button", { type: "button", role: "option", "aria-selected": selectedValue === option.value, onClick: () => selectOption(option.value), className: cn('w-full px-3 py-2 flex items-center justify-between text-left transition-colors', focusedIndex === index && 'bg-white/5', focusedIndex !== index && 'hover:bg-white/5'), children: [_jsx("span", { className: cn('text-xs', selectedValue === option.value
111
109
  ? 'text-white'
112
110
  : 'text-gray-400'), children: option.label }), selectedValue === option.value && (_jsx(Check, { size: 12, className: "text-purple-400" }))] }, option.value))) }), document.body)] }));
113
111
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterDropdown.js","sourceRoot":"","sources":["../../../src/components/inputs/FilterDropdown.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface SearchInputProps {
2
+ placeholder?: string;
3
+ value?: string;
4
+ defaultValue?: string;
5
+ onChange?: (value: string) => void;
6
+ onSubmit?: (value: string) => void;
7
+ showMicButton?: boolean;
8
+ disabled?: boolean;
9
+ className?: string;
10
+ helperText?: string;
11
+ variant?: 'default' | 'transparent';
12
+ }
13
+ export declare function SearchInput({ placeholder, value: controlledValue, defaultValue, onChange, onSubmit, showMicButton, disabled, className, helperText, variant, }: SearchInputProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=SearchInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SearchInput.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;CACrC;AA6DD,wBAAgB,WAAW,CAAC,EAC1B,WAAyB,EACzB,KAAK,EAAE,eAAe,EACtB,YAAiB,EACjB,QAAQ,EACR,QAAQ,EACR,aAAoB,EACpB,QAAgB,EAChB,SAAS,EACT,UAAU,EACV,OAAmB,GACpB,EAAE,gBAAgB,2CAgElB"}
@@ -3,22 +3,16 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { ArrowRight, Mic, Search } from 'lucide-react';
4
4
  import { useState } from 'react';
5
5
  import { cn } from '../../lib/utils';
6
- /**
7
- * A search input component with optional microphone and submit button
8
- * Supports controlled and uncontrolled input patterns
9
- * @param {SearchInputProps} props - Component props
10
- * @param {string} [props.placeholder='Search...'] - Input placeholder text
11
- * @param {string} [props.value] - Controlled value for the input
12
- * @param {string} [props.defaultValue=''] - Default value for uncontrolled input
13
- * @param {(value: string) => void} [props.onChange] - Change event handler
14
- * @param {(value: string) => void} [props.onSubmit] - Submit handler (Enter or button click)
15
- * @param {boolean} [props.showMicButton=true] - Whether to show microphone button
16
- * @param {boolean} [props.disabled=false] - Whether input is disabled
17
- * @param {string} [props.className] - Additional CSS classes
18
- * @param {string} [props.helperText] - Helper text displayed below input
19
- * @param {'default' | 'transparent'} [props.variant='default'] - Visual variant
20
- * @returns {JSX.Element} The search input component
21
- */
6
+ const containerVariantStyles = {
7
+ default: 'bg-[#0E0A15]',
8
+ transparent: 'bg-[rgba(14,10,21,0.6)]',
9
+ };
10
+ function SearchIcon() {
11
+ return (_jsx("div", { className: "absolute left-4 flex items-center justify-center", children: _jsx(Search, { size: 24, className: "text-gray-500", strokeWidth: 2 }) }));
12
+ }
13
+ function ActionButtons({ showMicButton, disabled, onSubmit, }) {
14
+ return (_jsxs("div", { className: "absolute right-2 sm:right-3 flex items-center gap-1 sm:gap-2", children: [showMicButton && (_jsx("button", { type: "button", disabled: disabled, className: cn('w-9 h-9 flex items-center justify-center rounded-full', 'hover:bg-white/5 transition-colors', 'disabled:cursor-not-allowed'), "aria-label": "Voice input", children: _jsx(Mic, { size: 20, className: "text-gray-500", strokeWidth: 2 }) })), _jsx("button", { type: "button", onClick: onSubmit, disabled: disabled, className: cn('w-9 h-9 flex items-center justify-center rounded-full', 'bg-violet-600 shadow-[0px_0px_10px_rgba(124,58,237,0.30)]', 'transition-colors', 'disabled:cursor-not-allowed disabled:opacity-50'), "aria-label": "Submit", children: _jsx(ArrowRight, { size: 18, className: "text-white", strokeWidth: 2 }) })] }));
15
+ }
22
16
  export function SearchInput({ placeholder = 'Search...', value: controlledValue, defaultValue = '', onChange, onSubmit, showMicButton = true, disabled = false, className, helperText, variant = 'default', }) {
23
17
  const [internalValue, setInternalValue] = useState(defaultValue);
24
18
  const value = controlledValue ?? internalValue;
@@ -39,14 +33,6 @@ export function SearchInput({ placeholder = 'Search...', value: controlledValue,
39
33
  handleSubmit();
40
34
  }
41
35
  };
42
- return (_jsxs("div", { className: cn('w-full', className), children: [_jsxs("div", { className: cn('relative flex items-center rounded-full overflow-hidden h-12 sm:h-[54px]', 'border border-white/10 shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.10)]', variant === 'transparent'
43
- ? 'bg-[rgba(14,10,21,0.6)]'
44
- : 'bg-[#0E0A15]', disabled && 'opacity-50 cursor-not-allowed'), children: [_jsx(SearchIcon, {}), _jsx("input", { type: "text", placeholder: placeholder, value: value, onChange: handleChange, onKeyDown: handleKeyDown, disabled: disabled, className: cn('w-full h-full pl-[53px] bg-transparent', 'text-white text-sm placeholder:text-gray-500', 'focus:outline-none', 'disabled:cursor-not-allowed', showMicButton ? 'pr-24' : 'pr-14') }), _jsx(ActionButtons, { showMicButton: showMicButton, disabled: disabled, onSubmit: handleSubmit })] }), helperText && (_jsx("p", { className: "text-[10px] text-gray-600 mt-2 sm:mt-3 text-center", children: helperText }))] }));
45
- }
46
- function SearchIcon() {
47
- return (_jsx("div", { className: "absolute left-4 flex items-center justify-center", children: _jsx(Search, { size: 24, className: "text-gray-500", strokeWidth: 2 }) }));
48
- }
49
- function ActionButtons({ showMicButton, disabled, onSubmit, }) {
50
- return (_jsxs("div", { className: "absolute right-2 sm:right-3 flex items-center gap-1 sm:gap-2", children: [showMicButton && (_jsx("button", { type: "button", disabled: disabled, className: cn('w-9 h-9 flex items-center justify-center rounded-full', 'hover:bg-white/5 transition-colors', 'disabled:cursor-not-allowed'), "aria-label": "Voice input", children: _jsx(Mic, { size: 20, className: "text-gray-500", strokeWidth: 2 }) })), _jsx("button", { type: "button", onClick: onSubmit, disabled: disabled, className: cn('w-9 h-9 flex items-center justify-center rounded-full', 'bg-violet-600 shadow-[0px_0px_10px_rgba(124,58,237,0.30)]', 'transition-colors', 'disabled:cursor-not-allowed disabled:opacity-50'), "aria-label": "Submit", children: _jsx(ArrowRight, { size: 18, className: "text-white", strokeWidth: 2 }) })] }));
36
+ return (_jsxs("div", { className: cn('w-full', className), children: [_jsxs("div", { className: cn('relative flex items-center rounded-full overflow-hidden h-12 sm:h-[54px]', 'border border-white/10 shadow-[0px_4px_6px_-4px_rgba(0,0,0,0.10)]', containerVariantStyles[variant], disabled && 'opacity-50 cursor-not-allowed'), children: [_jsx(SearchIcon, {}), _jsx("input", { type: "text", placeholder: placeholder, value: value, onChange: handleChange, onKeyDown: handleKeyDown, disabled: disabled, className: cn('w-full h-full pl-[53px] bg-transparent', 'text-white text-sm placeholder:text-gray-500', 'focus:outline-none', 'disabled:cursor-not-allowed', showMicButton ? 'pr-24' : 'pr-14') }), _jsx(ActionButtons, { showMicButton: showMicButton, disabled: disabled, onSubmit: handleSubmit })] }), helperText && (_jsx("p", { className: "text-[10px] text-gray-600 mt-2 sm:mt-3 text-center", children: helperText }))] }));
51
37
  }
52
38
  //# sourceMappingURL=SearchInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/inputs/SearchInput.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface SuggestionChipProps {
2
+ suggestions: string[];
3
+ onSuggestionClick?: (suggestion: string) => void;
4
+ className?: string;
5
+ buttonSize?: string;
6
+ textSize?: string;
7
+ ariaLabelPrefix?: string;
8
+ }
9
+ export declare function SuggestionChip({ suggestions, onSuggestionClick, className, buttonSize, textSize, ariaLabelPrefix, }: SuggestionChipProps): import("react/jsx-runtime").JSX.Element | null;
10
+ //# sourceMappingURL=SuggestionChip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuggestionChip.d.ts","sourceRoot":"","sources":["../../../src/components/inputs/SuggestionChip.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAoCD,wBAAgB,cAAc,CAAC,EAC7B,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAA8B,GAC/B,EAAE,mBAAmB,kDAmBrB"}
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { cn } from '../../lib/utils';
4
+ function Chip({ text, onClick, buttonSize, textSize, ariaLabel, }) {
5
+ return (_jsx("button", { type: "button", onClick: onClick, "aria-label": ariaLabel, className: cn(buttonSize || 'h-7 sm:h-[30px] px-2.5 sm:px-3', 'rounded-lg', 'bg-white/[0.03] border border-white/5', 'hover:bg-white/[0.05] transition-colors'), children: _jsx("span", { className: cn(textSize || 'text-[10px] sm:text-xs', 'text-gray-300'), children: text }) }));
6
+ }
7
+ export function SuggestionChip({ suggestions, onSuggestionClick, className, buttonSize, textSize, ariaLabelPrefix = 'Suggestion', }) {
8
+ if (suggestions.length === 0)
9
+ return null;
10
+ return (_jsx("div", { className: cn('flex items-center gap-1.5 sm:gap-2 flex-wrap', className), children: suggestions.map(suggestion => (_jsx(Chip, { text: suggestion, onClick: () => onSuggestionClick?.(suggestion), buttonSize: buttonSize, textSize: textSize, ariaLabel: `${ariaLabelPrefix}: ${suggestion}` }, suggestion))) }));
11
+ }
12
+ //# sourceMappingURL=SuggestionChip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SuggestionChip.js","sourceRoot":"","sources":["../../../src/components/inputs/SuggestionChip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAWrC,SAAS,IAAI,CAAC,EACZ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,QAAQ,EACR,SAAS,GAOV;IACC,OAAO,CACL,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACJ,SAAS,EACrB,SAAS,EAAE,EAAE,CACX,UAAU,IAAI,gCAAgC,EAC9C,YAAY,EACZ,uCAAuC,EACvC,yCAAyC,CAC1C,YAED,eACE,SAAS,EAAE,EAAE,CAAC,QAAQ,IAAI,wBAAwB,EAAE,eAAe,CAAC,YAEnE,IAAI,GACA,GACA,CACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,QAAQ,EACR,eAAe,GAAG,YAAY,GACV;IACpB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CAAC,8CAA8C,EAAE,SAAS,CAAC,YAEvE,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC7B,KAAC,IAAI,IAEH,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,EAC9C,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,GAAG,eAAe,KAAK,UAAU,EAAE,IALzC,UAAU,CAMf,CACH,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}