@vite-mf-monorepo/ui 0.5.8 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/dist/Avatar/Avatar.d.ts +6 -8
  2. package/dist/Avatar/Avatar.d.ts.map +1 -0
  3. package/dist/Avatar/index.d.ts +3 -3
  4. package/dist/Avatar/index.d.ts.map +1 -0
  5. package/dist/Badge/Badge.d.ts +8 -10
  6. package/dist/Badge/Badge.d.ts.map +1 -0
  7. package/dist/Badge/index.d.ts +3 -4
  8. package/dist/Badge/index.d.ts.map +1 -0
  9. package/dist/Button/Button.utils.d.ts +9 -12
  10. package/dist/Button/Button.utils.d.ts.map +1 -0
  11. package/dist/Button/index.d.ts +3 -6
  12. package/dist/Button/index.d.ts.map +1 -0
  13. package/dist/Card/Card.d.ts +6 -8
  14. package/dist/Card/Card.d.ts.map +1 -0
  15. package/dist/Card/index.d.ts +3 -3
  16. package/dist/Card/index.d.ts.map +1 -0
  17. package/dist/Carousel/Carousel.d.ts +7 -9
  18. package/dist/Carousel/Carousel.d.ts.map +1 -0
  19. package/dist/Carousel/CarouselCounter.d.ts +4 -6
  20. package/dist/Carousel/CarouselCounter.d.ts.map +1 -0
  21. package/dist/Carousel/CarouselError.d.ts +4 -6
  22. package/dist/Carousel/CarouselError.d.ts.map +1 -0
  23. package/dist/Carousel/CarouselItem.d.ts +5 -7
  24. package/dist/Carousel/CarouselItem.d.ts.map +1 -0
  25. package/dist/Carousel/CarouselLoading.d.ts +4 -6
  26. package/dist/Carousel/CarouselLoading.d.ts.map +1 -0
  27. package/dist/Carousel/CarouselNavigation.d.ts +5 -7
  28. package/dist/Carousel/CarouselNavigation.d.ts.map +1 -0
  29. package/dist/Carousel/CarouselPagination.d.ts +4 -6
  30. package/dist/Carousel/CarouselPagination.d.ts.map +1 -0
  31. package/dist/Carousel/index.d.ts +13 -8
  32. package/dist/Carousel/index.d.ts.map +1 -0
  33. package/dist/HeroImage/HeroImage.d.ts +4 -6
  34. package/dist/HeroImage/HeroImage.d.ts.map +1 -0
  35. package/dist/HeroImage/index.d.ts +3 -2
  36. package/dist/HeroImage/index.d.ts.map +1 -0
  37. package/dist/Icon/Icon.d.ts +7 -9
  38. package/dist/Icon/Icon.d.ts.map +1 -0
  39. package/dist/Icon/index.d.ts +3 -3
  40. package/dist/Icon/index.d.ts.map +1 -0
  41. package/dist/IconButton/IconButton.d.ts +6 -8
  42. package/dist/IconButton/IconButton.d.ts.map +1 -0
  43. package/dist/IconButton/index.d.ts +3 -4
  44. package/dist/IconButton/index.d.ts.map +1 -0
  45. package/dist/Image/Image.d.ts +8 -10
  46. package/dist/Image/Image.d.ts.map +1 -0
  47. package/dist/Image/index.d.ts +3 -3
  48. package/dist/Image/index.d.ts.map +1 -0
  49. package/dist/Input/Input.d.ts +14 -0
  50. package/dist/Input/Input.d.ts.map +1 -0
  51. package/dist/Input/Input.js +2 -0
  52. package/dist/Input/Input.js.map +1 -0
  53. package/dist/Input/index.d.ts +3 -0
  54. package/dist/Input/index.d.ts.map +1 -0
  55. package/dist/Input/index.js +2 -0
  56. package/dist/Input/index.js.map +1 -0
  57. package/dist/Listbox/ListboxItem.d.ts +26 -0
  58. package/dist/Listbox/ListboxItem.d.ts.map +1 -0
  59. package/dist/Listbox/ListboxItem.js +2 -0
  60. package/dist/Listbox/ListboxItem.js.map +1 -0
  61. package/dist/Listbox/ListboxList.d.ts +16 -0
  62. package/dist/Listbox/ListboxList.d.ts.map +1 -0
  63. package/dist/Listbox/ListboxList.js +2 -0
  64. package/dist/Listbox/ListboxList.js.map +1 -0
  65. package/dist/Listbox/index.d.ts +5 -0
  66. package/dist/Listbox/index.d.ts.map +1 -0
  67. package/dist/Listbox/index.js +2 -0
  68. package/dist/Listbox/index.js.map +1 -0
  69. package/dist/Menu/Menu.d.ts +19 -0
  70. package/dist/Menu/Menu.d.ts.map +1 -0
  71. package/dist/Menu/Menu.js +2 -0
  72. package/dist/Menu/Menu.js.map +1 -0
  73. package/dist/Menu/MenuContext.d.ts +14 -0
  74. package/dist/Menu/MenuContext.d.ts.map +1 -0
  75. package/dist/Menu/MenuContext.js +2 -0
  76. package/dist/Menu/MenuContext.js.map +1 -0
  77. package/dist/Menu/MenuItem.d.ts +11 -0
  78. package/dist/Menu/MenuItem.d.ts.map +1 -0
  79. package/dist/Menu/MenuItem.js +2 -0
  80. package/dist/Menu/MenuItem.js.map +1 -0
  81. package/dist/Menu/index.d.ts +5 -0
  82. package/dist/Menu/index.d.ts.map +1 -0
  83. package/dist/Menu/index.js +2 -0
  84. package/dist/Menu/index.js.map +1 -0
  85. package/dist/Modal/Modal.d.ts +5 -7
  86. package/dist/Modal/Modal.d.ts.map +1 -0
  87. package/dist/Modal/index.d.ts +3 -3
  88. package/dist/Modal/index.d.ts.map +1 -0
  89. package/dist/MovieCard/MovieCard.utils.d.ts +7 -11
  90. package/dist/MovieCard/MovieCard.utils.d.ts.map +1 -0
  91. package/dist/MovieCard/MovieCardContent.d.ts +5 -7
  92. package/dist/MovieCard/MovieCardContent.d.ts.map +1 -0
  93. package/dist/MovieCard/index.d.ts +3 -6
  94. package/dist/MovieCard/index.d.ts.map +1 -0
  95. package/dist/Portal/Portal.d.ts +8 -0
  96. package/dist/Portal/Portal.d.ts.map +1 -0
  97. package/dist/Portal/Portal.js +2 -0
  98. package/dist/Portal/Portal.js.map +1 -0
  99. package/dist/Portal/index.d.ts +3 -0
  100. package/dist/Portal/index.d.ts.map +1 -0
  101. package/dist/Portal/index.js +2 -0
  102. package/dist/Portal/index.js.map +1 -0
  103. package/dist/Rating/CircleRating.d.ts +5 -7
  104. package/dist/Rating/CircleRating.d.ts.map +1 -0
  105. package/dist/Rating/Rating.d.ts +6 -8
  106. package/dist/Rating/Rating.d.ts.map +1 -0
  107. package/dist/Rating/StarsRating.d.ts +5 -7
  108. package/dist/Rating/StarsRating.d.ts.map +1 -0
  109. package/dist/Rating/index.d.ts +3 -2
  110. package/dist/Rating/index.d.ts.map +1 -0
  111. package/dist/Skeleton/Skeleton.d.ts +5 -7
  112. package/dist/Skeleton/Skeleton.d.ts.map +1 -0
  113. package/dist/Skeleton/index.d.ts +3 -3
  114. package/dist/Skeleton/index.d.ts.map +1 -0
  115. package/dist/Spinner/Spinner.d.ts +4 -6
  116. package/dist/Spinner/Spinner.d.ts.map +1 -0
  117. package/dist/Spinner/index.d.ts +3 -2
  118. package/dist/Spinner/index.d.ts.map +1 -0
  119. package/dist/Tabs/Tabs.d.ts +9 -11
  120. package/dist/Tabs/Tabs.d.ts.map +1 -0
  121. package/dist/Tabs/TabsContext.d.ts +5 -11
  122. package/dist/Tabs/TabsContext.d.ts.map +1 -0
  123. package/dist/Tabs/TabsList.d.ts +5 -7
  124. package/dist/Tabs/TabsList.d.ts.map +1 -0
  125. package/dist/Tabs/TabsListContext.d.ts +4 -6
  126. package/dist/Tabs/TabsListContext.d.ts.map +1 -0
  127. package/dist/Tabs/TabsPanel.d.ts +5 -7
  128. package/dist/Tabs/TabsPanel.d.ts.map +1 -0
  129. package/dist/Tabs/TabsTrigger.d.ts +5 -7
  130. package/dist/Tabs/TabsTrigger.d.ts.map +1 -0
  131. package/dist/Tabs/index.d.ts +6 -6
  132. package/dist/Tabs/index.d.ts.map +1 -0
  133. package/dist/Talent/Talent.d.ts +6 -8
  134. package/dist/Talent/Talent.d.ts.map +1 -0
  135. package/dist/Talent/index.d.ts +3 -4
  136. package/dist/Talent/index.d.ts.map +1 -0
  137. package/dist/TrailerCard/TrailerCard.d.ts +4 -6
  138. package/dist/TrailerCard/TrailerCard.d.ts.map +1 -0
  139. package/dist/TrailerCard/index.d.ts +3 -2
  140. package/dist/TrailerCard/index.d.ts.map +1 -0
  141. package/dist/Typeahead/Typeahead.d.ts +58 -0
  142. package/dist/Typeahead/Typeahead.d.ts.map +1 -0
  143. package/dist/Typeahead/Typeahead.js +2 -0
  144. package/dist/Typeahead/Typeahead.js.map +1 -0
  145. package/dist/Typeahead/TypeaheadContext.d.ts +45 -0
  146. package/dist/Typeahead/TypeaheadContext.d.ts.map +1 -0
  147. package/dist/Typeahead/TypeaheadContext.js +2 -0
  148. package/dist/Typeahead/TypeaheadContext.js.map +1 -0
  149. package/dist/Typeahead/TypeaheadEmpty.d.ts +18 -0
  150. package/dist/Typeahead/TypeaheadEmpty.d.ts.map +1 -0
  151. package/dist/Typeahead/TypeaheadEmpty.js +2 -0
  152. package/dist/Typeahead/TypeaheadEmpty.js.map +1 -0
  153. package/dist/Typeahead/TypeaheadHighlight.d.ts +19 -0
  154. package/dist/Typeahead/TypeaheadHighlight.d.ts.map +1 -0
  155. package/dist/Typeahead/TypeaheadHighlight.js +2 -0
  156. package/dist/Typeahead/TypeaheadHighlight.js.map +1 -0
  157. package/dist/Typeahead/TypeaheadInput.d.ts +21 -0
  158. package/dist/Typeahead/TypeaheadInput.d.ts.map +1 -0
  159. package/dist/Typeahead/TypeaheadInput.js +2 -0
  160. package/dist/Typeahead/TypeaheadInput.js.map +1 -0
  161. package/dist/Typeahead/TypeaheadItem.d.ts +26 -0
  162. package/dist/Typeahead/TypeaheadItem.d.ts.map +1 -0
  163. package/dist/Typeahead/TypeaheadItem.js +2 -0
  164. package/dist/Typeahead/TypeaheadItem.js.map +1 -0
  165. package/dist/Typeahead/TypeaheadMenu.d.ts +17 -0
  166. package/dist/Typeahead/TypeaheadMenu.d.ts.map +1 -0
  167. package/dist/Typeahead/TypeaheadMenu.js +2 -0
  168. package/dist/Typeahead/TypeaheadMenu.js.map +1 -0
  169. package/dist/Typeahead/index.d.ts +8 -0
  170. package/dist/Typeahead/index.d.ts.map +1 -0
  171. package/dist/Typeahead/index.js +2 -0
  172. package/dist/Typeahead/index.js.map +1 -0
  173. package/dist/Typography/Typography.d.ts +6 -8
  174. package/dist/Typography/Typography.d.ts.map +1 -0
  175. package/dist/Typography/index.d.ts +3 -2
  176. package/dist/Typography/index.d.ts.map +1 -0
  177. package/dist/index.d.ts +46 -32
  178. package/dist/index.d.ts.map +1 -0
  179. package/dist/index.js +1 -1
  180. package/dist/index.js.map +1 -1
  181. package/dist/next/Button/Button.d.ts +4 -9
  182. package/dist/next/Button/Button.d.ts.map +1 -0
  183. package/dist/next/Button/Button.types.d.ts +9 -11
  184. package/dist/next/Button/Button.types.d.ts.map +1 -0
  185. package/dist/next/Button/index.d.ts +3 -6
  186. package/dist/next/Button/index.d.ts.map +1 -0
  187. package/dist/next/HeroImage/HeroImage.d.ts +4 -6
  188. package/dist/next/HeroImage/HeroImage.d.ts.map +1 -0
  189. package/dist/next/HeroImage/index.d.ts +3 -2
  190. package/dist/next/HeroImage/index.d.ts.map +1 -0
  191. package/dist/next/Image/NextImage.d.ts +4 -8
  192. package/dist/next/Image/NextImage.d.ts.map +1 -0
  193. package/dist/next/Image/NextImage.types.d.ts +4 -6
  194. package/dist/next/Image/NextImage.types.d.ts.map +1 -0
  195. package/dist/next/Image/NextImageClient.d.ts +4 -8
  196. package/dist/next/Image/NextImageClient.d.ts.map +1 -0
  197. package/dist/next/Image/NextImageClient.types.d.ts +4 -6
  198. package/dist/next/Image/NextImageClient.types.d.ts.map +1 -0
  199. package/dist/next/Image/index.d.ts +5 -7
  200. package/dist/next/Image/index.d.ts.map +1 -0
  201. package/dist/next/MovieCard/MovieCard.d.ts +4 -9
  202. package/dist/next/MovieCard/MovieCard.d.ts.map +1 -0
  203. package/dist/next/MovieCard/MovieCard.types.d.ts +6 -10
  204. package/dist/next/MovieCard/MovieCard.types.d.ts.map +1 -0
  205. package/dist/next/MovieCard/MovieCardContent.d.ts +5 -7
  206. package/dist/next/MovieCard/MovieCardContent.d.ts.map +1 -0
  207. package/dist/next/MovieCard/index.d.ts +3 -6
  208. package/dist/next/MovieCard/index.d.ts.map +1 -0
  209. package/dist/next/index.d.ts +9 -16
  210. package/dist/next/index.d.ts.map +1 -0
  211. package/dist/react-router/Button/Button.d.ts +4 -9
  212. package/dist/react-router/Button/Button.d.ts.map +1 -0
  213. package/dist/react-router/Button/Button.types.d.ts +8 -10
  214. package/dist/react-router/Button/Button.types.d.ts.map +1 -0
  215. package/dist/react-router/Button/index.d.ts +3 -6
  216. package/dist/react-router/Button/index.d.ts.map +1 -0
  217. package/dist/react-router/MovieCard/MovieCard.d.ts +4 -9
  218. package/dist/react-router/MovieCard/MovieCard.d.ts.map +1 -0
  219. package/dist/react-router/MovieCard/MovieCard.types.d.ts +5 -9
  220. package/dist/react-router/MovieCard/MovieCard.types.d.ts.map +1 -0
  221. package/dist/react-router/MovieCard/index.d.ts +3 -6
  222. package/dist/react-router/MovieCard/index.d.ts.map +1 -0
  223. package/dist/react-router/index.d.ts +5 -10
  224. package/dist/react-router/index.d.ts.map +1 -0
  225. package/dist/styles.css +1 -1
  226. package/package.json +2 -2
@@ -1,12 +1,10 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import TabsList from './TabsList.js';
3
- import TabsPanel from './TabsPanel.js';
4
- import TabsTrigger from './TabsTrigger.js';
5
- import { HTMLAttributes } from 'react';
6
-
1
+ import TabsList from './TabsList';
2
+ import TabsPanel from './TabsPanel';
3
+ import TabsTrigger from './TabsTrigger';
4
+ import type { HTMLAttributes } from 'react';
7
5
  /** Tabs visual variant */
8
- type TabsVariant = 'underline' | 'pills';
9
- interface TabsProps extends HTMLAttributes<HTMLDivElement> {
6
+ export type TabsVariant = 'underline' | 'pills';
7
+ export interface TabsProps extends HTMLAttributes<HTMLDivElement> {
10
8
  /** Default active tab value (uncontrolled) */
11
9
  defaultValue?: string;
12
10
  /** Controlled active tab value */
@@ -24,11 +22,11 @@ interface TabsProps extends HTMLAttributes<HTMLDivElement> {
24
22
  * Supports underline and pills variants.
25
23
  * Uses Compound Component pattern.
26
24
  */
27
- declare function Tabs({ defaultValue, value, onValueChange, variant, prefix, className, children, ...rest }: Readonly<TabsProps>): react_jsx_runtime.JSX.Element;
25
+ declare function Tabs({ defaultValue, value, onValueChange, variant, prefix, className, children, ...rest }: Readonly<TabsProps>): import("react/jsx-runtime").JSX.Element;
28
26
  declare namespace Tabs {
29
27
  var List: typeof TabsList;
30
28
  var Trigger: typeof TabsTrigger;
31
29
  var Panel: typeof TabsPanel;
32
30
  }
33
-
34
- export { type TabsProps, type TabsVariant, Tabs as default };
31
+ export default Tabs;
32
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/Tabs/Tabs.tsx"],"names":[],"mappings":"AAIA,OAAO,QAAQ,MAAM,YAAY,CAAA;AACjC,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,OAAO,CAAA;AAE/C,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC/D,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gCAAgC;IAChC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,qBAAqB;IACrB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,iBAAS,IAAI,CAAC,EACZ,YAAiB,EACjB,KAAK,EACL,aAAa,EACb,OAAqB,EACrB,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,QAAQ,CAAC,SAAS,CAAC,2CA2BrB;kBApCQ,IAAI;;;;;AA0Cb,eAAe,IAAI,CAAA"}
@@ -1,10 +1,4 @@
1
- import * as react from 'react';
2
- import { TabsVariant } from './Tabs.js';
3
- import 'react/jsx-runtime';
4
- import './TabsList.js';
5
- import './TabsPanel.js';
6
- import './TabsTrigger.js';
7
-
1
+ import type { TabsVariant } from './Tabs';
8
2
  interface TabsContextValue {
9
3
  /** Currently active tab value */
10
4
  value: string;
@@ -15,7 +9,7 @@ interface TabsContextValue {
15
9
  /** Optional prefix for ID generation */
16
10
  prefix?: string;
17
11
  }
18
- declare const TabsContext: react.Context<TabsContextValue | undefined>;
19
- declare const useTabsContext: () => TabsContextValue;
20
-
21
- export { TabsContext, useTabsContext };
12
+ export declare const TabsContext: import("react").Context<TabsContextValue | undefined>;
13
+ export declare const useTabsContext: () => TabsContextValue;
14
+ export {};
15
+ //# sourceMappingURL=TabsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsContext.d.ts","sourceRoot":"","sources":["../../src/Tabs/TabsContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,UAAU,gBAAgB;IACxB,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,wBAAwB;IACxB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,qBAAqB;IACrB,OAAO,EAAE,WAAW,CAAA;IACpB,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,WAAW,uDAEvB,CAAA;AAED,eAAO,MAAM,cAAc,wBAM1B,CAAA"}
@@ -1,7 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { HTMLAttributes } from 'react';
3
-
4
- type TabsListProps = HTMLAttributes<HTMLDivElement>;
5
- declare function TabsList({ className, children, ...rest }: Readonly<TabsListProps>): react_jsx_runtime.JSX.Element;
6
-
7
- export { type TabsListProps, TabsList as default };
1
+ import type { HTMLAttributes } from 'react';
2
+ export type TabsListProps = HTMLAttributes<HTMLDivElement>;
3
+ declare function TabsList({ className, children, ...rest }: Readonly<TabsListProps>): import("react/jsx-runtime").JSX.Element;
4
+ export default TabsList;
5
+ //# sourceMappingURL=TabsList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsList.d.ts","sourceRoot":"","sources":["../../src/Tabs/TabsList.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC,cAAc,CAAC,CAAA;AAE1D,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,QAAQ,CAAC,aAAa,CAAC,2CA2C1E;AAED,eAAe,QAAQ,CAAA"}
@@ -1,5 +1,3 @@
1
- import * as react from 'react';
2
-
3
1
  interface TabsListContextValue {
4
2
  /** Register a trigger with its value and disabled state */
5
3
  registerTrigger: (value: string, disabled?: boolean) => void;
@@ -10,7 +8,7 @@ interface TabsListContextValue {
10
8
  /** Check if a trigger is disabled */
11
9
  isDisabled: (value: string) => boolean;
12
10
  }
13
- declare const TabsListContext: react.Context<TabsListContextValue | undefined>;
14
- declare const useTabsListContext: () => TabsListContextValue;
15
-
16
- export { TabsListContext, useTabsListContext };
11
+ export declare const TabsListContext: import("react").Context<TabsListContextValue | undefined>;
12
+ export declare const useTabsListContext: () => TabsListContextValue;
13
+ export {};
14
+ //# sourceMappingURL=TabsListContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsListContext.d.ts","sourceRoot":"","sources":["../../src/Tabs/TabsListContext.tsx"],"names":[],"mappings":"AAEA,UAAU,oBAAoB;IAC5B,2DAA2D;IAC3D,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5D,2BAA2B;IAC3B,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,wCAAwC;IACxC,WAAW,EAAE,MAAM,MAAM,EAAE,CAAA;IAC3B,qCAAqC;IACrC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CACvC;AAED,eAAO,MAAM,eAAe,2DAE3B,CAAA;AAED,eAAO,MAAM,kBAAkB,4BAM9B,CAAA"}
@@ -1,7 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { HTMLAttributes, ReactNode } from 'react';
3
-
4
- interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ export interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {
5
3
  /** Value that identifies this panel (must match a Tabs.Trigger value) */
6
4
  value: string;
7
5
  /** Panel content */
@@ -12,6 +10,6 @@ interface TabsPanelProps extends HTMLAttributes<HTMLDivElement> {
12
10
  * Automatically hidden/shown based on active tab value.
13
11
  * Provides proper ARIA attributes for accessibility.
14
12
  */
15
- declare function TabsPanel({ value, children, ...rest }: Readonly<TabsPanelProps>): react_jsx_runtime.JSX.Element;
16
-
17
- export { type TabsPanelProps, TabsPanel as default };
13
+ declare function TabsPanel({ value, children, ...rest }: Readonly<TabsPanelProps>): import("react/jsx-runtime").JSX.Element;
14
+ export default TabsPanel;
15
+ //# sourceMappingURL=TabsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsPanel.d.ts","sourceRoot":"","sources":["../../src/Tabs/TabsPanel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtD,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,cAAc,CAAC;IACpE,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,iBAAS,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,QAAQ,CAAC,cAAc,CAAC,2CAqBxE;AAED,eAAe,SAAS,CAAA"}
@@ -1,12 +1,10 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ButtonHTMLAttributes, ReactNode } from 'react';
3
-
4
- interface TabsTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
1
+ import type { ButtonHTMLAttributes, ReactNode } from 'react';
2
+ export interface TabsTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
3
  /** Value that identifies this tab */
6
4
  value: string;
7
5
  /** Optional icon component */
8
6
  icon?: ReactNode;
9
7
  }
10
- declare function TabsTrigger({ value, icon, disabled, className, children, ...rest }: Readonly<TabsTriggerProps>): react_jsx_runtime.JSX.Element;
11
-
12
- export { type TabsTriggerProps, TabsTrigger as default };
8
+ declare function TabsTrigger({ value, icon, disabled, className, children, ...rest }: Readonly<TabsTriggerProps>): import("react/jsx-runtime").JSX.Element;
9
+ export default TabsTrigger;
10
+ //# sourceMappingURL=TabsTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsTrigger.d.ts","sourceRoot":"","sources":["../../src/Tabs/TabsTrigger.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAE3E,MAAM,WAAW,gBACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC/C,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,8BAA8B;IAC9B,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAgI5B;AAED,eAAe,WAAW,CAAA"}
@@ -1,6 +1,6 @@
1
- export { default as Tabs, TabsProps, TabsVariant } from './Tabs.js';
2
- export { TabsListProps } from './TabsList.js';
3
- export { TabsTriggerProps } from './TabsTrigger.js';
4
- export { TabsPanelProps } from './TabsPanel.js';
5
- import 'react/jsx-runtime';
6
- import 'react';
1
+ export { default as Tabs } from './Tabs';
2
+ export type { TabsProps, TabsVariant } from './Tabs';
3
+ export type { TabsListProps } from './TabsList';
4
+ export type { TabsTriggerProps } from './TabsTrigger';
5
+ export type { TabsPanelProps } from './TabsPanel';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACpD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
@@ -1,8 +1,6 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { AvatarSize } from '../Avatar/Avatar.js';
3
- import { HTMLAttributes } from 'react';
4
-
5
- interface TalentProps extends HTMLAttributes<HTMLDivElement> {
1
+ import type { AvatarSize } from '../Avatar';
2
+ import type { HTMLAttributes } from 'react';
3
+ export interface TalentProps extends HTMLAttributes<HTMLDivElement> {
6
4
  /** Full name of the talent (actor, director, writer, etc.) */
7
5
  name?: string;
8
6
  /** Role or job title (e.g., "Director", "Screenplay", "Character Name") */
@@ -14,6 +12,6 @@ interface TalentProps extends HTMLAttributes<HTMLDivElement> {
14
12
  /** Avatar size */
15
13
  size?: AvatarSize;
16
14
  }
17
- declare function Talent({ name, role, imageSrc, variant, size, className, ...rest }: Readonly<TalentProps>): react_jsx_runtime.JSX.Element;
18
-
19
- export { type TalentProps, Talent as default };
15
+ declare function Talent({ name, role, imageSrc, variant, size, className, ...rest }: Readonly<TalentProps>): import("react/jsx-runtime").JSX.Element;
16
+ export default Talent;
17
+ //# sourceMappingURL=Talent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Talent.d.ts","sourceRoot":"","sources":["../../src/Talent/Talent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,cAAc,CAAC;IACjE,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IACnC,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAA;CAClB;AAED,iBAAS,MAAM,CAAC,EACd,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,OAAoB,EACpB,IAAW,EACX,SAAS,EACT,GAAG,IAAI,EACR,EAAE,QAAQ,CAAC,WAAW,CAAC,2CAsCvB;AAED,eAAe,MAAM,CAAA"}
@@ -1,4 +1,3 @@
1
- export { default as Talent, TalentProps } from './Talent.js';
2
- import 'react/jsx-runtime';
3
- import '../Avatar/Avatar.js';
4
- import 'react';
1
+ export { default as Talent } from './Talent';
2
+ export type { TalentProps } from './Talent';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Talent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA"}
@@ -1,6 +1,4 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface TrailerCardProps {
1
+ export interface TrailerCardProps {
4
2
  /** YouTube video ID */
5
3
  videoKey: string;
6
4
  /** Trailer title/name */
@@ -10,6 +8,6 @@ interface TrailerCardProps {
10
8
  /** Additional className for the card */
11
9
  className?: string;
12
10
  }
13
- declare function TrailerCard({ videoKey, title, type, className, }: Readonly<TrailerCardProps>): react_jsx_runtime.JSX.Element;
14
-
15
- export { type TrailerCardProps, TrailerCard as default };
11
+ declare function TrailerCard({ videoKey, title, type, className, }: Readonly<TrailerCardProps>): import("react/jsx-runtime").JSX.Element;
12
+ export default TrailerCard;
13
+ //# sourceMappingURL=TrailerCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrailerCard.d.ts","sourceRoot":"","sources":["../../src/TrailerCard/TrailerCard.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,iBAAS,WAAW,CAAC,EACnB,QAAQ,EACR,KAAK,EACL,IAAgB,EAChB,SAAS,GACV,EAAE,QAAQ,CAAC,gBAAgB,CAAC,2CAkF5B;AAED,eAAe,WAAW,CAAA"}
@@ -1,2 +1,3 @@
1
- export { default as TrailerCard, TrailerCardProps } from './TrailerCard.js';
2
- import 'react/jsx-runtime';
1
+ export { default as TrailerCard } from './TrailerCard';
2
+ export type { TrailerCardProps } from './TrailerCard';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/TrailerCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA"}
@@ -0,0 +1,58 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ /**
3
+ * Props for the Typeahead root component.
4
+ *
5
+ * Extends standard div attributes (except `onSelect` which is repurposed
6
+ * for item selection).
7
+ */
8
+ export interface TypeaheadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {
9
+ /** Called with the search value (debounced if debounceMs is set) */
10
+ onSearch?: (value: string) => void;
11
+ /** Called when an item is selected via click or keyboard */
12
+ onSelect?: (value: string) => void;
13
+ /** Debounce delay in ms for onSearch (default: 0, no debounce) */
14
+ debounceMs?: number;
15
+ /** Minimum characters before triggering search and opening menu (default: 2) */
16
+ minChars?: number;
17
+ /** Whether to clear the input after selecting an item (default: true) */
18
+ clearOnSelect?: boolean;
19
+ /** Render the dropdown in a Portal to avoid overflow clipping (default: false) */
20
+ portal?: boolean;
21
+ /** Color scheme for the dropdown menu and items */
22
+ variant?: 'light' | 'dark';
23
+ /** Compound children: Typeahead.Input, Typeahead.Menu, etc. */
24
+ children: ReactNode;
25
+ }
26
+ /**
27
+ * Typeahead compound component — search input with dropdown suggestions.
28
+ *
29
+ * Composes `Typeahead.Input`, `Typeahead.Menu`, `Typeahead.Item`, and
30
+ * `Typeahead.Empty` via shared context. Implements the ARIA combobox
31
+ * pattern with full keyboard navigation (ArrowUp/Down, Home/End,
32
+ * Enter, Escape) and click-outside dismissal.
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * <Typeahead onSearch={handleSearch} onSelect={handleSelect} debounceMs={300}>
37
+ * <Typeahead.Input placeholder="Search..." icon="MagnifyingGlass" />
38
+ * <Typeahead.Menu>
39
+ * {results.map((item, i) => (
40
+ * <Typeahead.Item key={item.id} value={item.id} index={i}>
41
+ * {item.label}
42
+ * </Typeahead.Item>
43
+ * ))}
44
+ * {results.length === 0 && <Typeahead.Empty>No results</Typeahead.Empty>}
45
+ * </Typeahead.Menu>
46
+ * </Typeahead>
47
+ * ```
48
+ */
49
+ declare function Typeahead({ onSearch, onSelect, debounceMs, minChars, clearOnSelect, portal, variant, className, children, ...rest }: Readonly<TypeaheadProps>): import("react/jsx-runtime").JSX.Element;
50
+ declare namespace Typeahead {
51
+ var Input: import("react").FC<import("./TypeaheadInput").TypeaheadInputProps>;
52
+ var Menu: import("react").FC<import("./TypeaheadMenu").TypeaheadMenuProps>;
53
+ var Item: import("react").FC<import("./TypeaheadItem").TypeaheadItemProps>;
54
+ var Empty: import("react").FC<import("react").PropsWithChildren<import("./TypeaheadEmpty").TypeaheadEmptyProps>>;
55
+ var Highlight: import("react").FC<import("./TypeaheadHighlight").TypeaheadHighlightProps>;
56
+ }
57
+ export default Typeahead;
58
+ //# sourceMappingURL=Typeahead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Typeahead.d.ts","sourceRoot":"","sources":["../../src/Typeahead/Typeahead.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAQtD;;;;;GAKG;AACH,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IACxD,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,kFAAkF;IAClF,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,iBAAS,SAAS,CAAC,EACjB,QAAQ,EACR,QAAQ,EACR,UAAc,EACd,QAAY,EACZ,aAAoB,EACpB,MAAc,EACd,OAAiB,EACjB,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,QAAQ,CAAC,cAAc,CAAC,2CAkM1B;kBA7MQ,SAAS;;;;;;;AAqNlB,eAAe,SAAS,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{jsx as C}from"react/jsx-runtime";import z from"clsx";import{useCallback as r,useEffect as V,useId as F,useMemo as G,useRef as f,useState as I}from"react";import{TypeaheadContext as J}from"./TypeaheadContext";import K from"./TypeaheadEmpty";import Q from"./TypeaheadHighlight";import U from"./TypeaheadInput";import W from"./TypeaheadItem";import X from"./TypeaheadMenu";function i({onSearch:a,onSelect:y,debounceMs:g=0,minChars:c=2,clearOnSelect:h=!0,portal:T=!1,variant:v="light",className:D,children:$,...B}){const[E,u]=I(!1),[M,x]=I(""),[l,o]=I(-1),m=f(new Map),b=f(void 0),d=f(null),S=f(null),s=F(),R=r(e=>{clearTimeout(b.current),g>0?b.current=setTimeout(()=>{a?.(e)},g):a?.(e)},[a,g]);V(()=>()=>{clearTimeout(b.current)},[]),V(()=>{const e=t=>{const n=t.target;if(d.current&&!d.current.contains(n)){if(document.getElementById(s)?.contains(n))return;u(!1),o(-1)}};return document.addEventListener("mousedown",e),()=>{document.removeEventListener("mousedown",e)}},[s]);const w=r((e,t,n)=>{m.current.set(e,{value:t,disabled:n})},[]),k=r(e=>{m.current.delete(e)},[]),H=r(e=>`${s}-item-${String(e)}`,[s]),L=r(e=>{x(e),o(-1),e.trim().length>=c?(u(!0),R(e)):(u(!1),a?.(""))},[R,a,c]),A=r(e=>{y?.(e),u(!1),o(-1),h&&x("")},[y,h]),O=r(()=>Array.from(m.current.entries()).sort(([t],[n])=>t-n).filter(([,t])=>!t.disabled).map(([t])=>t),[]),P=r(e=>{const t=O();if(t.length===0)return;const n=t.indexOf(l);switch(e){case"down":{const p=n<t.length-1?t[n+1]:t[0];o(p);break}case"up":{const p=n>0?t[n-1]:t[t.length-1];o(p);break}case"first":o(t[0]);break;case"last":o(t[t.length-1]);break}},[O,l]),N=r(e=>m.current.get(e),[]),q=G(()=>({isOpen:E,inputValue:M,activeIndex:l,variant:v,minChars:c,menuId:s,setIsOpen:u,setInputValue:L,setActiveIndex:o,registerItem:w,unregisterItem:k,getItemId:H,selectItem:A,navigateItems:P,getActiveEntry:N,portal:T,rootRef:d,inputRef:S}),[E,M,l,v,c,s,T,L,w,k,H,A,P,N]);return C(J.Provider,{value:q,children:C("div",{ref:d,className:z("ui:relative ui:w-full",D),...B,children:$})})}i.Input=U,i.Menu=X,i.Item=W,i.Empty=K,i.Highlight=Q;var oe=i;export{oe as default};
2
+ //# sourceMappingURL=Typeahead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Typeahead/Typeahead.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react'\n\nimport { TypeaheadContext } from './TypeaheadContext'\nimport TypeaheadEmpty from './TypeaheadEmpty'\nimport TypeaheadHighlight from './TypeaheadHighlight'\nimport TypeaheadInput from './TypeaheadInput'\nimport TypeaheadItem from './TypeaheadItem'\nimport TypeaheadMenu from './TypeaheadMenu'\n\nimport type { HTMLAttributes, ReactNode } from 'react'\n\n/** Internal registry entry for a single Typeahead.Item */\ninterface ItemEntry {\n value: string\n disabled: boolean\n}\n\n/**\n * Props for the Typeahead root component.\n *\n * Extends standard div attributes (except `onSelect` which is repurposed\n * for item selection).\n */\nexport interface TypeaheadProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** Called with the search value (debounced if debounceMs is set) */\n onSearch?: (value: string) => void\n /** Called when an item is selected via click or keyboard */\n onSelect?: (value: string) => void\n /** Debounce delay in ms for onSearch (default: 0, no debounce) */\n debounceMs?: number\n /** Minimum characters before triggering search and opening menu (default: 2) */\n minChars?: number\n /** Whether to clear the input after selecting an item (default: true) */\n clearOnSelect?: boolean\n /** Render the dropdown in a Portal to avoid overflow clipping (default: false) */\n portal?: boolean\n /** Color scheme for the dropdown menu and items */\n variant?: 'light' | 'dark'\n /** Compound children: Typeahead.Input, Typeahead.Menu, etc. */\n children: ReactNode\n}\n\n/**\n * Typeahead compound component — search input with dropdown suggestions.\n *\n * Composes `Typeahead.Input`, `Typeahead.Menu`, `Typeahead.Item`, and\n * `Typeahead.Empty` via shared context. Implements the ARIA combobox\n * pattern with full keyboard navigation (ArrowUp/Down, Home/End,\n * Enter, Escape) and click-outside dismissal.\n *\n * @example\n * ```tsx\n * <Typeahead onSearch={handleSearch} onSelect={handleSelect} debounceMs={300}>\n * <Typeahead.Input placeholder=\"Search...\" icon=\"MagnifyingGlass\" />\n * <Typeahead.Menu>\n * {results.map((item, i) => (\n * <Typeahead.Item key={item.id} value={item.id} index={i}>\n * {item.label}\n * </Typeahead.Item>\n * ))}\n * {results.length === 0 && <Typeahead.Empty>No results</Typeahead.Empty>}\n * </Typeahead.Menu>\n * </Typeahead>\n * ```\n */\nfunction Typeahead({\n onSearch,\n onSelect,\n debounceMs = 0,\n minChars = 2,\n clearOnSelect = true,\n portal = false,\n variant = 'light',\n className,\n children,\n ...rest\n}: Readonly<TypeaheadProps>) {\n const [isOpen, setIsOpen] = useState(false)\n const [inputValue, setInputValueRaw] = useState('')\n const [activeIndex, setActiveIndex] = useState(-1)\n const itemsRef = useRef<Map<number, ItemEntry>>(new Map())\n const timerRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined)\n const rootRef = useRef<HTMLDivElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n const menuId = useId()\n\n /** Invokes onSearch with optional debounce, cancelling any pending call */\n const debouncedSearch = useCallback(\n (value: string) => {\n clearTimeout(timerRef.current)\n if (debounceMs > 0) {\n timerRef.current = setTimeout(() => {\n onSearch?.(value)\n }, debounceMs)\n } else {\n onSearch?.(value)\n }\n },\n [onSearch, debounceMs]\n )\n\n /** Cleans up the debounce timer on unmount */\n useEffect(() => {\n return () => {\n clearTimeout(timerRef.current)\n }\n }, [])\n\n /** Closes the menu when clicking outside the root wrapper (and portal menu if portaled) */\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n const target = e.target as Node\n if (rootRef.current && !rootRef.current.contains(target)) {\n const portalMenu = document.getElementById(menuId)\n if (portalMenu?.contains(target)) return\n setIsOpen(false)\n setActiveIndex(-1)\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [menuId])\n\n /** Registers a Typeahead.Item in the internal registry for keyboard navigation */\n const registerItem = useCallback(\n (index: number, value: string, disabled: boolean) => {\n itemsRef.current.set(index, { value, disabled })\n },\n []\n )\n\n /** Removes a Typeahead.Item from the registry on unmount */\n const unregisterItem = useCallback((index: number) => {\n itemsRef.current.delete(index)\n }, [])\n\n /** Generates a unique DOM id for a Typeahead.Item (used by aria-activedescendant) */\n const getItemId = useCallback(\n (index: number) => `${menuId}-item-${String(index)}`,\n [menuId]\n )\n\n /** Updates the input value, resets active index, opens/closes menu, and triggers search */\n const setInputValue = useCallback(\n (value: string) => {\n setInputValueRaw(value)\n setActiveIndex(-1)\n if (value.trim().length >= minChars) {\n setIsOpen(true)\n debouncedSearch(value)\n } else {\n setIsOpen(false)\n onSearch?.('')\n }\n },\n [debouncedSearch, onSearch, minChars]\n )\n\n /** Forwards item selection to the consumer, closes menu, and optionally clears input */\n const selectItem = useCallback(\n (value: string) => {\n onSelect?.(value)\n setIsOpen(false)\n setActiveIndex(-1)\n if (clearOnSelect) setInputValueRaw('')\n },\n [onSelect, clearOnSelect]\n )\n\n /** Returns sorted indices of non-disabled items for keyboard traversal */\n const getEnabledIndices = useCallback(() => {\n const entries = Array.from(itemsRef.current.entries()).sort(\n ([a], [b]) => a - b\n )\n return entries.filter(([, entry]) => !entry.disabled).map(([idx]) => idx)\n }, [])\n\n /** Moves the active index in the given direction, wrapping at boundaries and skipping disabled items */\n const navigateItems = useCallback(\n (direction: 'down' | 'up' | 'first' | 'last') => {\n const enabled = getEnabledIndices()\n if (enabled.length === 0) return\n\n const currentPos = enabled.indexOf(activeIndex)\n\n switch (direction) {\n case 'down': {\n const next =\n currentPos < enabled.length - 1\n ? enabled[currentPos + 1]\n : enabled[0]\n setActiveIndex(next)\n break\n }\n case 'up': {\n const prev =\n currentPos > 0\n ? enabled[currentPos - 1]\n : enabled[enabled.length - 1]\n setActiveIndex(prev)\n break\n }\n case 'first':\n setActiveIndex(enabled[0])\n break\n case 'last':\n setActiveIndex(enabled[enabled.length - 1])\n break\n }\n },\n [getEnabledIndices, activeIndex]\n )\n\n /** Returns the item entry at the given index, or undefined if not registered */\n const getActiveEntry = useCallback((index: number) => {\n return itemsRef.current.get(index)\n }, [])\n\n const contextValue = useMemo(\n () => ({\n isOpen,\n inputValue,\n activeIndex,\n variant,\n minChars,\n menuId,\n setIsOpen,\n setInputValue,\n setActiveIndex,\n registerItem,\n unregisterItem,\n getItemId,\n selectItem,\n navigateItems,\n getActiveEntry,\n portal,\n rootRef,\n inputRef,\n }),\n [\n isOpen,\n inputValue,\n activeIndex,\n variant,\n minChars,\n menuId,\n portal,\n setInputValue,\n registerItem,\n unregisterItem,\n getItemId,\n selectItem,\n navigateItems,\n getActiveEntry,\n ]\n )\n\n return (\n <TypeaheadContext.Provider value={contextValue}>\n <div\n ref={rootRef}\n className={clsx('ui:relative ui:w-full', className)}\n {...rest}\n >\n {children}\n </div>\n </TypeaheadContext.Provider>\n )\n}\n\nTypeahead.Input = TypeaheadInput\nTypeahead.Menu = TypeaheadMenu\nTypeahead.Item = TypeaheadItem\nTypeahead.Empty = TypeaheadEmpty\nTypeahead.Highlight = TypeaheadHighlight\n\nexport default Typeahead\n"],"mappings":"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","names":["jsx","clsx","useCallback","useEffect","useId","useMemo","useRef","useState","TypeaheadContext","TypeaheadEmpty","TypeaheadHighlight","TypeaheadInput","TypeaheadItem","TypeaheadMenu","Typeahead","onSearch","onSelect","debounceMs","minChars","clearOnSelect","portal","variant","className","children","rest","isOpen","setIsOpen","inputValue","setInputValueRaw","activeIndex","setActiveIndex","itemsRef","timerRef","rootRef","inputRef","menuId","debouncedSearch","value","handleClickOutside","e","target","registerItem","index","disabled","unregisterItem","getItemId","setInputValue","selectItem","getEnabledIndices","a","b","entry","idx","navigateItems","direction","enabled","currentPos","next","prev","getActiveEntry","contextValue","Typeahead_default"]}
@@ -0,0 +1,45 @@
1
+ import type { RefObject } from 'react';
2
+ /** Shared state and actions for the Typeahead compound component */
3
+ export interface TypeaheadContextValue {
4
+ /** Whether the dropdown menu is currently visible */
5
+ isOpen: boolean;
6
+ /** Current value of the search input */
7
+ inputValue: string;
8
+ /** Index of the keyboard-active item (-1 when none) */
9
+ activeIndex: number;
10
+ /** Color scheme applied to the dropdown */
11
+ variant: 'light' | 'dark';
12
+ /** Minimum characters before triggering search and opening menu */
13
+ minChars: number;
14
+ /** Auto-generated DOM id linking the input to the listbox via aria-controls */
15
+ menuId: string;
16
+ /** Opens or closes the dropdown menu */
17
+ setIsOpen: (open: boolean) => void;
18
+ /** Updates the input value, triggers debounced search, and manages open state */
19
+ setInputValue: (value: string) => void;
20
+ /** Sets the keyboard-active item index (-1 to clear) */
21
+ setActiveIndex: (index: number) => void;
22
+ /** Registers a Typeahead.Item in the internal registry for keyboard navigation */
23
+ registerItem: (index: number, value: string, disabled: boolean) => void;
24
+ /** Removes a Typeahead.Item from the registry on unmount */
25
+ unregisterItem: (index: number) => void;
26
+ /** Generates a unique DOM id for a Typeahead.Item (used by aria-activedescendant) */
27
+ getItemId: (index: number) => string;
28
+ /** Selects an item by value, closes the menu, and optionally clears the input */
29
+ selectItem: (value: string) => void;
30
+ /** Moves the active index in the given direction, skipping disabled items */
31
+ navigateItems: (direction: 'down' | 'up' | 'first' | 'last') => void;
32
+ /** Returns the item entry at the given index, or undefined if not registered */
33
+ getActiveEntry: (index: number) => {
34
+ value: string;
35
+ disabled: boolean;
36
+ } | undefined;
37
+ /** Whether the dropdown renders in a Portal (avoids overflow clipping) */
38
+ portal: boolean;
39
+ /** Ref to the root wrapper div (used for click-outside detection) */
40
+ rootRef: RefObject<HTMLDivElement | null>;
41
+ /** Ref to the input element (used for portal menu positioning) */
42
+ inputRef: RefObject<HTMLInputElement | null>;
43
+ }
44
+ export declare const TypeaheadContext: import("react").Context<TypeaheadContextValue | null>;
45
+ //# sourceMappingURL=TypeaheadContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeaheadContext.d.ts","sourceRoot":"","sources":["../../src/Typeahead/TypeaheadContext.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,oEAAoE;AACpE,MAAM,WAAW,qBAAqB;IACpC,qDAAqD;IACrD,MAAM,EAAE,OAAO,CAAA;IACf,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uDAAuD;IACvD,WAAW,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,OAAO,EAAE,OAAO,GAAG,MAAM,CAAA;IACzB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAA;IACd,wCAAwC;IACxC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,iFAAiF;IACjF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,wDAAwD;IACxD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,kFAAkF;IAClF,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IACvE,4DAA4D;IAC5D,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,qFAAqF;IACrF,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACpC,iFAAiF;IACjF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,6EAA6E;IAC7E,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,GAAG,MAAM,KAAK,IAAI,CAAA;IACpE,gFAAgF;IAChF,cAAc,EAAE,CACd,KAAK,EAAE,MAAM,KACV;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAA;IACrD,0EAA0E;IAC1E,MAAM,EAAE,OAAO,CAAA;IACf,qEAAqE;IACrE,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACzC,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;CAC7C;AAED,eAAO,MAAM,gBAAgB,uDAE5B,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{createContext as e}from"react";const n=e(null);export{n as TypeaheadContext};
2
+ //# sourceMappingURL=TypeaheadContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Typeahead/TypeaheadContext.ts"],"sourcesContent":["import { createContext } from 'react'\n\nimport type { RefObject } from 'react'\n\n/** Shared state and actions for the Typeahead compound component */\nexport interface TypeaheadContextValue {\n /** Whether the dropdown menu is currently visible */\n isOpen: boolean\n /** Current value of the search input */\n inputValue: string\n /** Index of the keyboard-active item (-1 when none) */\n activeIndex: number\n /** Color scheme applied to the dropdown */\n variant: 'light' | 'dark'\n /** Minimum characters before triggering search and opening menu */\n minChars: number\n /** Auto-generated DOM id linking the input to the listbox via aria-controls */\n menuId: string\n /** Opens or closes the dropdown menu */\n setIsOpen: (open: boolean) => void\n /** Updates the input value, triggers debounced search, and manages open state */\n setInputValue: (value: string) => void\n /** Sets the keyboard-active item index (-1 to clear) */\n setActiveIndex: (index: number) => void\n /** Registers a Typeahead.Item in the internal registry for keyboard navigation */\n registerItem: (index: number, value: string, disabled: boolean) => void\n /** Removes a Typeahead.Item from the registry on unmount */\n unregisterItem: (index: number) => void\n /** Generates a unique DOM id for a Typeahead.Item (used by aria-activedescendant) */\n getItemId: (index: number) => string\n /** Selects an item by value, closes the menu, and optionally clears the input */\n selectItem: (value: string) => void\n /** Moves the active index in the given direction, skipping disabled items */\n navigateItems: (direction: 'down' | 'up' | 'first' | 'last') => void\n /** Returns the item entry at the given index, or undefined if not registered */\n getActiveEntry: (\n index: number\n ) => { value: string; disabled: boolean } | undefined\n /** Whether the dropdown renders in a Portal (avoids overflow clipping) */\n portal: boolean\n /** Ref to the root wrapper div (used for click-outside detection) */\n rootRef: RefObject<HTMLDivElement | null>\n /** Ref to the input element (used for portal menu positioning) */\n inputRef: RefObject<HTMLInputElement | null>\n}\n\nexport const TypeaheadContext = createContext<TypeaheadContextValue | null>(\n null\n)\n"],"mappings":"AAAA,OAAS,iBAAAA,MAAqB,QA8CvB,MAAMC,EAAmBD,EAC9B,IACF","names":["createContext","TypeaheadContext"]}
@@ -0,0 +1,18 @@
1
+ import type { FC, PropsWithChildren } from 'react';
2
+ /** Props for Typeahead.Empty */
3
+ export interface TypeaheadEmptyProps {
4
+ /** Additional CSS class names */
5
+ className?: string;
6
+ }
7
+ /**
8
+ * Empty state placeholder for the Typeahead dropdown.
9
+ *
10
+ * Renders a disabled `<li role="option">` with centered text, used when
11
+ * no search results match the query. Styled with light/dark variant
12
+ * from context.
13
+ *
14
+ * Must be used within a `<Typeahead>` provider (inside `Typeahead.Menu`).
15
+ */
16
+ declare const TypeaheadEmpty: FC<PropsWithChildren<TypeaheadEmptyProps>>;
17
+ export default TypeaheadEmpty;
18
+ //# sourceMappingURL=TypeaheadEmpty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeaheadEmpty.d.ts","sourceRoot":"","sources":["../../src/Typeahead/TypeaheadEmpty.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAElD,gCAAgC;AAChC,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAsB9D,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{jsx as s}from"react/jsx-runtime";import i from"clsx";import{useContext as a}from"react";import{TypeaheadContext as p}from"./TypeaheadContext";const n=({children:e,className:r})=>{const t=a(p);if(!t)throw new Error("Typeahead.Empty must be used within Typeahead");const o=t.variant==="dark";return s("li",{role:"option","aria-disabled":"true",className:i("ui:select-none ui:px-3 ui:py-2 ui:text-center ui:text-sm ui:font-roboto",o?"ui:text-neutral-400":"ui:text-muted-foreground",r),children:e})};var h=n;export{h as default};
2
+ //# sourceMappingURL=TypeaheadEmpty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Typeahead/TypeaheadEmpty.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useContext } from 'react'\n\nimport { TypeaheadContext } from './TypeaheadContext'\n\nimport type { FC, PropsWithChildren } from 'react'\n\n/** Props for Typeahead.Empty */\nexport interface TypeaheadEmptyProps {\n /** Additional CSS class names */\n className?: string\n}\n\n/**\n * Empty state placeholder for the Typeahead dropdown.\n *\n * Renders a disabled `<li role=\"option\">` with centered text, used when\n * no search results match the query. Styled with light/dark variant\n * from context.\n *\n * Must be used within a `<Typeahead>` provider (inside `Typeahead.Menu`).\n */\nconst TypeaheadEmpty: FC<PropsWithChildren<TypeaheadEmptyProps>> = ({\n children,\n className,\n}) => {\n const context = useContext(TypeaheadContext)\n if (!context) throw new Error('Typeahead.Empty must be used within Typeahead')\n\n const isDark = context.variant === 'dark'\n\n return (\n <li\n role=\"option\"\n aria-disabled=\"true\"\n className={clsx(\n 'ui:select-none ui:px-3 ui:py-2 ui:text-center ui:text-sm ui:font-roboto',\n isDark ? 'ui:text-neutral-400' : 'ui:text-muted-foreground',\n className\n )}\n >\n {children}\n </li>\n )\n}\n\nexport default TypeaheadEmpty\n"],"mappings":"AAgCI,cAAAA,MAAA,oBAhCJ,OAAOC,MAAU,OACjB,OAAS,cAAAC,MAAkB,QAE3B,OAAS,oBAAAC,MAAwB,qBAmBjC,MAAMC,EAA6D,CAAC,CAClE,SAAAC,EACA,UAAAC,CACF,IAAM,CACJ,MAAMC,EAAUL,EAAWC,CAAgB,EAC3C,GAAI,CAACI,EAAS,MAAM,IAAI,MAAM,+CAA+C,EAE7E,MAAMC,EAASD,EAAQ,UAAY,OAEnC,OACEP,EAAC,MACC,KAAK,SACL,gBAAc,OACd,UAAWC,EACT,0EACAO,EAAS,sBAAwB,2BACjCF,CACF,EAEC,SAAAD,EACH,CAEJ,EAEA,IAAOI,EAAQL","names":["jsx","clsx","useContext","TypeaheadContext","TypeaheadEmpty","children","className","context","isDark","TypeaheadEmpty_default"]}
@@ -0,0 +1,19 @@
1
+ import type { FC } from 'react';
2
+ /** Props for Typeahead.Highlight */
3
+ export interface TypeaheadHighlightProps {
4
+ /** The text to highlight matching characters in */
5
+ children: string;
6
+ /** Additional CSS class names */
7
+ className?: string;
8
+ }
9
+ /**
10
+ * Highlights the portion of text matching the current search query.
11
+ *
12
+ * Splits the text on the query (case-insensitive) and wraps matched
13
+ * segments in `<mark>` with bold styling. Preserves original casing.
14
+ *
15
+ * Must be used within a `<Typeahead>` provider.
16
+ */
17
+ declare const TypeaheadHighlight: FC<TypeaheadHighlightProps>;
18
+ export default TypeaheadHighlight;
19
+ //# sourceMappingURL=TypeaheadHighlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeaheadHighlight.d.ts","sourceRoot":"","sources":["../../src/Typeahead/TypeaheadHighlight.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAE/B,oCAAoC;AACpC,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAA;IAChB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAKD;;;;;;;GAOG;AACH,QAAA,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAkCnD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import g from"clsx";import{useContext as h,useMemo as m}from"react";import{TypeaheadContext as c}from"./TypeaheadContext";const u=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),l=({children:e,className:s})=>{const a=h(c);if(!a)throw new Error("Typeahead.Highlight must be used within Typeahead");const{inputValue:i}=a,t=i.trim(),n=m(()=>t?e.split(new RegExp(`(${u(t)})`,"gi")):[e],[e,t]);return o("span",{className:s,children:n.map((r,p)=>r.toLowerCase()===t.toLowerCase()?o("mark",{className:g("ui:bg-transparent ui:font-extrabold ui:text-inherit"),children:r},p):r)})};var d=l;export{d as default};
2
+ //# sourceMappingURL=TypeaheadHighlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Typeahead/TypeaheadHighlight.tsx"],"sourcesContent":["import clsx from 'clsx'\nimport { useContext, useMemo } from 'react'\n\nimport { TypeaheadContext } from './TypeaheadContext'\n\nimport type { FC } from 'react'\n\n/** Props for Typeahead.Highlight */\nexport interface TypeaheadHighlightProps {\n /** The text to highlight matching characters in */\n children: string\n /** Additional CSS class names */\n className?: string\n}\n\n/** Escapes special regex characters in a string */\nconst escapeRegex = (str: string) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n/**\n * Highlights the portion of text matching the current search query.\n *\n * Splits the text on the query (case-insensitive) and wraps matched\n * segments in `<mark>` with bold styling. Preserves original casing.\n *\n * Must be used within a `<Typeahead>` provider.\n */\nconst TypeaheadHighlight: FC<TypeaheadHighlightProps> = ({\n children,\n className,\n}) => {\n const context = useContext(TypeaheadContext)\n if (!context)\n throw new Error('Typeahead.Highlight must be used within Typeahead')\n\n const { inputValue } = context\n const query = inputValue.trim()\n\n const parts = useMemo(() => {\n if (!query) return [children]\n return children.split(new RegExp(`(${escapeRegex(query)})`, 'gi'))\n }, [children, query])\n\n return (\n <span className={className}>\n {parts.map((part, i) =>\n part.toLowerCase() === query.toLowerCase() ? (\n <mark\n key={i}\n className={clsx(\n 'ui:bg-transparent ui:font-extrabold ui:text-inherit'\n )}\n >\n {part}\n </mark>\n ) : (\n part\n )\n )}\n </span>\n )\n}\n\nexport default TypeaheadHighlight\n"],"mappings":"AA8CU,cAAAA,MAAA,oBA9CV,OAAOC,MAAU,OACjB,OAAS,cAAAC,EAAY,WAAAC,MAAe,QAEpC,OAAS,oBAAAC,MAAwB,qBAajC,MAAMC,EAAeC,GAAgBA,EAAI,QAAQ,sBAAuB,MAAM,EAUxEC,EAAkD,CAAC,CACvD,SAAAC,EACA,UAAAC,CACF,IAAM,CACJ,MAAMC,EAAUR,EAAWE,CAAgB,EAC3C,GAAI,CAACM,EACH,MAAM,IAAI,MAAM,mDAAmD,EAErE,KAAM,CAAE,WAAAC,CAAW,EAAID,EACjBE,EAAQD,EAAW,KAAK,EAExBE,EAAQV,EAAQ,IACfS,EACEJ,EAAS,MAAM,IAAI,OAAO,IAAIH,EAAYO,CAAK,CAAC,IAAK,IAAI,CAAC,EAD9C,CAACJ,CAAQ,EAE3B,CAACA,EAAUI,CAAK,CAAC,EAEpB,OACEZ,EAAC,QAAK,UAAWS,EACd,SAAAI,EAAM,IAAI,CAACC,EAAMC,IAChBD,EAAK,YAAY,IAAMF,EAAM,YAAY,EACvCZ,EAAC,QAEC,UAAWC,EACT,qDACF,EAEC,SAAAa,GALIC,CAMP,EAEAD,CAEJ,EACF,CAEJ,EAEA,IAAOE,EAAQT","names":["jsx","clsx","useContext","useMemo","TypeaheadContext","escapeRegex","str","TypeaheadHighlight","children","className","context","inputValue","query","parts","part","i","TypeaheadHighlight_default"]}
@@ -0,0 +1,21 @@
1
+ import { Input } from '../Input';
2
+ import type { ComponentProps, FC } from 'react';
3
+ /**
4
+ * Props for Typeahead.Input.
5
+ *
6
+ * Derives from Input, omitting props managed by Typeahead context.
7
+ */
8
+ export type TypeaheadInputProps = Omit<ComponentProps<typeof Input>, 'value' | 'onChange' | 'role'>;
9
+ /**
10
+ * Combobox input for the Typeahead compound component.
11
+ *
12
+ * Wraps the base Input component, wiring it to Typeahead context for
13
+ * controlled value, keyboard navigation (ArrowUp/Down, Home/End, Enter,
14
+ * Escape), and ARIA combobox attributes. Opens the menu on focus/click
15
+ * when the input has a value.
16
+ *
17
+ * Must be used within a `<Typeahead>` provider.
18
+ */
19
+ declare const TypeaheadInput: FC<TypeaheadInputProps>;
20
+ export default TypeaheadInput;
21
+ //# sourceMappingURL=TypeaheadInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeaheadInput.d.ts","sourceRoot":"","sources":["../../src/Typeahead/TypeaheadInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIhC,OAAO,KAAK,EAAe,cAAc,EAAE,EAAE,EAAiB,MAAM,OAAO,CAAA;AAE3E;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,cAAc,CAAC,OAAO,KAAK,CAAC,EAC5B,OAAO,GAAG,UAAU,GAAG,MAAM,CAC9B,CAAA;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CA4G3C,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{jsx as k}from"react/jsx-runtime";import{useContext as E}from"react";import{Input as g}from"../Input";import{TypeaheadContext as w}from"./TypeaheadContext";const D=u=>{const p=E(w);if(!p)throw new Error("Typeahead.Input must be used within Typeahead");const{isOpen:t,inputValue:s,activeIndex:a,minChars:l,menuId:c,setIsOpen:o,setInputValue:d,setActiveIndex:f,navigateItems:n,getActiveEntry:m,selectItem:v,getItemId:h,inputRef:I}=p,y=a>=0?h(a):void 0,C=e=>{d(e.target.value)},b=e=>{switch(e.key){case"ArrowDown":{e.preventDefault(),t?n("down"):(o(!0),n("first"));break}case"ArrowUp":{e.preventDefault(),t&&n("up");break}case"Home":{t&&(e.preventDefault(),n("first"));break}case"End":{t&&(e.preventDefault(),n("last"));break}case"Enter":{if(t&&a>=0){e.preventDefault();const r=m(a);r&&!r.disabled&&v(r.value)}break}case"Escape":{t&&(e.preventDefault(),o(!1),f(-1));break}}},i=()=>{s.trim().length>=l&&o(!0)};return k(g,{...u,ref:I,value:s,onChange:C,onKeyDown:b,onFocus:i,onClick:i,role:"combobox","aria-expanded":t,"aria-controls":t?c:void 0,"aria-activedescendant":y,"aria-autocomplete":"list",autoComplete:"off"})};var K=D;export{K as default};
2
+ //# sourceMappingURL=TypeaheadInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Typeahead/TypeaheadInput.tsx"],"sourcesContent":["import { useContext } from 'react'\n\nimport { Input } from '../Input'\n\nimport { TypeaheadContext } from './TypeaheadContext'\n\nimport type { ChangeEvent, ComponentProps, FC, KeyboardEvent } from 'react'\n\n/**\n * Props for Typeahead.Input.\n *\n * Derives from Input, omitting props managed by Typeahead context.\n */\nexport type TypeaheadInputProps = Omit<\n ComponentProps<typeof Input>,\n 'value' | 'onChange' | 'role'\n>\n\n/**\n * Combobox input for the Typeahead compound component.\n *\n * Wraps the base Input component, wiring it to Typeahead context for\n * controlled value, keyboard navigation (ArrowUp/Down, Home/End, Enter,\n * Escape), and ARIA combobox attributes. Opens the menu on focus/click\n * when the input has a value.\n *\n * Must be used within a `<Typeahead>` provider.\n */\nconst TypeaheadInput: FC<TypeaheadInputProps> = (props) => {\n const context = useContext(TypeaheadContext)\n if (!context) throw new Error('Typeahead.Input must be used within Typeahead')\n\n const {\n isOpen,\n inputValue,\n activeIndex,\n minChars,\n menuId,\n setIsOpen,\n setInputValue,\n setActiveIndex,\n navigateItems,\n getActiveEntry,\n selectItem,\n getItemId,\n inputRef,\n } = context\n\n const activeDescendant = activeIndex >= 0 ? getItemId(activeIndex) : undefined\n\n /** Forwards input changes to the Typeahead context (triggers search + open/close) */\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n }\n\n /**\n * Handles keyboard navigation within the combobox.\n *\n * - ArrowDown: opens menu if closed, moves active index down (wraps)\n * - ArrowUp: moves active index up (wraps)\n * - Home/End: jumps to first/last enabled item\n * - Enter: selects the active item\n * - Escape: closes the menu and resets active index\n */\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n switch (e.key) {\n case 'ArrowDown': {\n e.preventDefault()\n if (!isOpen) {\n setIsOpen(true)\n navigateItems('first')\n } else {\n navigateItems('down')\n }\n break\n }\n case 'ArrowUp': {\n e.preventDefault()\n if (isOpen) navigateItems('up')\n break\n }\n case 'Home': {\n if (isOpen) {\n e.preventDefault()\n navigateItems('first')\n }\n break\n }\n case 'End': {\n if (isOpen) {\n e.preventDefault()\n navigateItems('last')\n }\n break\n }\n case 'Enter': {\n if (isOpen && activeIndex >= 0) {\n e.preventDefault()\n const entry = getActiveEntry(activeIndex)\n if (entry && !entry.disabled) selectItem(entry.value)\n }\n break\n }\n case 'Escape': {\n if (isOpen) {\n e.preventDefault()\n setIsOpen(false)\n setActiveIndex(-1)\n }\n break\n }\n }\n }\n\n /** Reopens the dropdown on focus or click when the input contains text */\n const handleOpen = () => {\n if (inputValue.trim().length >= minChars) setIsOpen(true)\n }\n\n return (\n <Input\n {...props}\n ref={inputRef}\n value={inputValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onFocus={handleOpen}\n onClick={handleOpen}\n role=\"combobox\"\n aria-expanded={isOpen}\n aria-controls={isOpen ? menuId : undefined}\n aria-activedescendant={activeDescendant}\n aria-autocomplete=\"list\"\n autoComplete=\"off\"\n />\n )\n}\n\nexport default TypeaheadInput\n"],"mappings":"AAwHI,cAAAA,MAAA,oBAxHJ,OAAS,cAAAC,MAAkB,QAE3B,OAAS,SAAAC,MAAa,WAEtB,OAAS,oBAAAC,MAAwB,qBAwBjC,MAAMC,EAA2CC,GAAU,CACzD,MAAMC,EAAUL,EAAWE,CAAgB,EAC3C,GAAI,CAACG,EAAS,MAAM,IAAI,MAAM,+CAA+C,EAE7E,KAAM,CACJ,OAAAC,EACA,WAAAC,EACA,YAAAC,EACA,SAAAC,EACA,OAAAC,EACA,UAAAC,EACA,cAAAC,EACA,eAAAC,EACA,cAAAC,EACA,eAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CACF,EAAIb,EAEEc,EAAmBX,GAAe,EAAIS,EAAUT,CAAW,EAAI,OAG/DY,EAAgB,GAAqC,CACzDR,EAAc,EAAE,OAAO,KAAK,CAC9B,EAWMS,EAAiB,GAAuC,CAC5D,OAAQ,EAAE,IAAK,CACb,IAAK,YAAa,CAChB,EAAE,eAAe,EACZf,EAIHQ,EAAc,MAAM,GAHpBH,EAAU,EAAI,EACdG,EAAc,OAAO,GAIvB,KACF,CACA,IAAK,UAAW,CACd,EAAE,eAAe,EACbR,GAAQQ,EAAc,IAAI,EAC9B,KACF,CACA,IAAK,OAAQ,CACPR,IACF,EAAE,eAAe,EACjBQ,EAAc,OAAO,GAEvB,KACF,CACA,IAAK,MAAO,CACNR,IACF,EAAE,eAAe,EACjBQ,EAAc,MAAM,GAEtB,KACF,CACA,IAAK,QAAS,CACZ,GAAIR,GAAUE,GAAe,EAAG,CAC9B,EAAE,eAAe,EACjB,MAAMc,EAAQP,EAAeP,CAAW,EACpCc,GAAS,CAACA,EAAM,UAAUN,EAAWM,EAAM,KAAK,CACtD,CACA,KACF,CACA,IAAK,SAAU,CACThB,IACF,EAAE,eAAe,EACjBK,EAAU,EAAK,EACfE,EAAe,EAAE,GAEnB,KACF,CACF,CACF,EAGMU,EAAa,IAAM,CACnBhB,EAAW,KAAK,EAAE,QAAUE,GAAUE,EAAU,EAAI,CAC1D,EAEA,OACEZ,EAACE,EAAA,CACE,GAAGG,EACJ,IAAKc,EACL,MAAOX,EACP,SAAUa,EACV,UAAWC,EACX,QAASE,EACT,QAASA,EACT,KAAK,WACL,gBAAejB,EACf,gBAAeA,EAASI,EAAS,OACjC,wBAAuBS,EACvB,oBAAkB,OAClB,aAAa,MACf,CAEJ,EAEA,IAAOK,EAAQrB","names":["jsx","useContext","Input","TypeaheadContext","TypeaheadInput","props","context","isOpen","inputValue","activeIndex","minChars","menuId","setIsOpen","setInputValue","setActiveIndex","navigateItems","getActiveEntry","selectItem","getItemId","inputRef","activeDescendant","handleChange","handleKeyDown","entry","handleOpen","TypeaheadInput_default"]}
@@ -0,0 +1,26 @@
1
+ import { ListboxItem } from '../Listbox';
2
+ import type { ComponentProps, FC } from 'react';
3
+ /**
4
+ * Props for Typeahead.Item.
5
+ *
6
+ * Derives from ListboxItem, omitting props managed by Typeahead context.
7
+ */
8
+ export interface TypeaheadItemProps extends Omit<ComponentProps<typeof ListboxItem>, 'variant' | 'isActive' | 'isSelected' | 'ref'> {
9
+ /** Unique value identifying this item, passed to onSelect */
10
+ value: string;
11
+ /** Position index for keyboard navigation ordering (must be unique per item) */
12
+ index: number;
13
+ }
14
+ /**
15
+ * Individual option within the Typeahead dropdown.
16
+ *
17
+ * Composes `ListboxItem` for shared visual styling and registers itself in
18
+ * the Typeahead item registry on mount. Supports keyboard activation (via
19
+ * context activeIndex), mouse hover highlighting, click selection, and
20
+ * auto-scrolling when navigated to.
21
+ *
22
+ * Must be used within a `<Typeahead>` provider (inside `Typeahead.Menu`).
23
+ */
24
+ declare const TypeaheadItem: FC<TypeaheadItemProps>;
25
+ export default TypeaheadItem;
26
+ //# sourceMappingURL=TypeaheadItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypeaheadItem.d.ts","sourceRoot":"","sources":["../../src/Typeahead/TypeaheadItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAIxC,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAE/C;;;;GAIG;AACH,MAAM,WAAW,kBACf,SAAQ,IAAI,CACV,cAAc,CAAC,OAAO,WAAW,CAAC,EAClC,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,KAAK,CAC9C;IACD,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;GASG;AACH,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAiEzC,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{jsx as w}from"react/jsx-runtime";import{useContext as y,useEffect as a,useRef as v}from"react";import{ListboxItem as T}from"../Listbox";import{TypeaheadContext as x}from"./TypeaheadContext";const E=({value:n,disabled:t=!1,children:m,index:e,className:p,...f})=>{const s=y(x);if(!s)throw new Error("Typeahead.Item must be used within Typeahead");const{activeIndex:I,variant:l,selectItem:u,registerItem:i,unregisterItem:c,getItemId:h,setActiveIndex:d}=s,r=I===e,C=h(e),o=v(null);return a(()=>(i(e,n,t),()=>{c(e)}),[e,n,t,i,c]),a(()=>{r&&o.current&&"scrollIntoView"in o.current&&o.current.scrollIntoView({block:"nearest"})},[r]),w(T,{ref:o,id:C,variant:l,isActive:r,disabled:t,"aria-selected":r,className:p,onClick:()=>{t||u(n)},onMouseEnter:()=>{t||d(e)},...f,children:m})};var P=E;export{P as default};
2
+ //# sourceMappingURL=TypeaheadItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/Typeahead/TypeaheadItem.tsx"],"sourcesContent":["import { useContext, useEffect, useRef } from 'react'\n\nimport { ListboxItem } from '../Listbox'\n\nimport { TypeaheadContext } from './TypeaheadContext'\n\nimport type { ComponentProps, FC } from 'react'\n\n/**\n * Props for Typeahead.Item.\n *\n * Derives from ListboxItem, omitting props managed by Typeahead context.\n */\nexport interface TypeaheadItemProps\n extends Omit<\n ComponentProps<typeof ListboxItem>,\n 'variant' | 'isActive' | 'isSelected' | 'ref'\n > {\n /** Unique value identifying this item, passed to onSelect */\n value: string\n /** Position index for keyboard navigation ordering (must be unique per item) */\n index: number\n}\n\n/**\n * Individual option within the Typeahead dropdown.\n *\n * Composes `ListboxItem` for shared visual styling and registers itself in\n * the Typeahead item registry on mount. Supports keyboard activation (via\n * context activeIndex), mouse hover highlighting, click selection, and\n * auto-scrolling when navigated to.\n *\n * Must be used within a `<Typeahead>` provider (inside `Typeahead.Menu`).\n */\nconst TypeaheadItem: FC<TypeaheadItemProps> = ({\n value,\n disabled = false,\n children,\n index,\n className,\n ...rest\n}) => {\n const context = useContext(TypeaheadContext)\n if (!context) throw new Error('Typeahead.Item must be used within Typeahead')\n\n const {\n activeIndex,\n variant,\n selectItem,\n registerItem,\n unregisterItem,\n getItemId,\n setActiveIndex,\n } = context\n const isActive = activeIndex === index\n const itemId = getItemId(index)\n const ref = useRef<HTMLLIElement>(null)\n\n /** Registers this item in the Typeahead registry; unregisters on unmount */\n useEffect(() => {\n registerItem(index, value, disabled)\n return () => {\n unregisterItem(index)\n }\n }, [index, value, disabled, registerItem, unregisterItem])\n\n /** Scrolls the active item into view when navigated to via keyboard */\n useEffect(() => {\n if (isActive && ref.current && 'scrollIntoView' in ref.current) {\n ref.current.scrollIntoView({ block: 'nearest' })\n }\n }, [isActive])\n\n /** Selects this item on click (no-op when disabled) */\n const handleClick = () => {\n if (!disabled) selectItem(value)\n }\n\n /** Highlights this item on mouse enter (no-op when disabled) */\n const handleMouseEnter = () => {\n if (!disabled) setActiveIndex(index)\n }\n\n return (\n <ListboxItem\n ref={ref}\n id={itemId}\n variant={variant}\n isActive={isActive}\n disabled={disabled}\n aria-selected={isActive}\n className={className}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n {...rest}\n >\n {children}\n </ListboxItem>\n )\n}\n\nexport default TypeaheadItem\n"],"mappings":"AAoFI,cAAAA,MAAA,oBApFJ,OAAS,cAAAC,EAAY,aAAAC,EAAW,UAAAC,MAAc,QAE9C,OAAS,eAAAC,MAAmB,aAE5B,OAAS,oBAAAC,MAAwB,qBA8BjC,MAAMC,EAAwC,CAAC,CAC7C,MAAAC,EACA,SAAAC,EAAW,GACX,SAAAC,EACA,MAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,EAAUZ,EAAWI,CAAgB,EAC3C,GAAI,CAACQ,EAAS,MAAM,IAAI,MAAM,8CAA8C,EAE5E,KAAM,CACJ,YAAAC,EACA,QAAAC,EACA,WAAAC,EACA,aAAAC,EACA,eAAAC,EACA,UAAAC,EACA,eAAAC,CACF,EAAIP,EACEQ,EAAWP,IAAgBJ,EAC3BY,EAASH,EAAUT,CAAK,EACxBa,EAAMpB,EAAsB,IAAI,EAGtC,OAAAD,EAAU,KACRe,EAAaP,EAAOH,EAAOC,CAAQ,EAC5B,IAAM,CACXU,EAAeR,CAAK,CACtB,GACC,CAACA,EAAOH,EAAOC,EAAUS,EAAcC,CAAc,CAAC,EAGzDhB,EAAU,IAAM,CACVmB,GAAYE,EAAI,SAAW,mBAAoBA,EAAI,SACrDA,EAAI,QAAQ,eAAe,CAAE,MAAO,SAAU,CAAC,CAEnD,EAAG,CAACF,CAAQ,CAAC,EAaXrB,EAACI,EAAA,CACC,IAAKmB,EACL,GAAID,EACJ,QAASP,EACT,SAAUM,EACV,SAAUb,EACV,gBAAea,EACf,UAAWV,EACX,QAlBgB,IAAM,CACnBH,GAAUQ,EAAWT,CAAK,CACjC,EAiBI,aAdqB,IAAM,CACxBC,GAAUY,EAAeV,CAAK,CACrC,EAaK,GAAGE,EAEH,SAAAH,EACH,CAEJ,EAEA,IAAOe,EAAQlB","names":["jsx","useContext","useEffect","useRef","ListboxItem","TypeaheadContext","TypeaheadItem","value","disabled","children","index","className","rest","context","activeIndex","variant","selectItem","registerItem","unregisterItem","getItemId","setActiveIndex","isActive","itemId","ref","TypeaheadItem_default"]}