@refraction-ui/react 0.4.2 → 0.5.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 (288) hide show
  1. package/README.md +9 -1
  2. package/dist/chunk-ZWRGVWUY.js +120 -0
  3. package/dist/chunk-ZWRGVWUY.js.map +1 -0
  4. package/dist/form.cjs +315 -0
  5. package/dist/form.cjs.map +1 -0
  6. package/dist/form.d.cts +1 -0
  7. package/dist/form.d.ts +1 -0
  8. package/dist/form.js +196 -0
  9. package/dist/form.js.map +1 -0
  10. package/dist/index.cjs +0 -226
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +74 -76
  13. package/dist/index.d.ts +74 -76
  14. package/dist/index.js +2 -302
  15. package/dist/index.js.map +1 -1
  16. package/dist/internal/animated-text/index.d.cts +47 -0
  17. package/dist/internal/animated-text/index.d.ts +47 -0
  18. package/dist/internal/app-shell/index.d.cts +128 -0
  19. package/dist/internal/app-shell/index.d.ts +128 -0
  20. package/dist/internal/auth/index.d.cts +74 -0
  21. package/dist/internal/auth/index.d.ts +74 -0
  22. package/dist/internal/avatar/index.d.cts +53 -0
  23. package/dist/internal/avatar/index.d.ts +53 -0
  24. package/dist/internal/avatar-group/index.d.cts +70 -0
  25. package/dist/internal/avatar-group/index.d.ts +70 -0
  26. package/dist/internal/badge/index.d.cts +26 -0
  27. package/dist/internal/badge/index.d.ts +26 -0
  28. package/dist/internal/bottom-nav/index.d.cts +29 -0
  29. package/dist/internal/bottom-nav/index.d.ts +29 -0
  30. package/dist/internal/breadcrumbs/index.d.cts +38 -0
  31. package/dist/internal/breadcrumbs/index.d.ts +38 -0
  32. package/dist/internal/button/index.d.cts +34 -0
  33. package/dist/internal/button/index.d.ts +34 -0
  34. package/dist/internal/calendar/index.d.cts +73 -0
  35. package/dist/internal/calendar/index.d.ts +73 -0
  36. package/dist/internal/card/index.d.cts +62 -0
  37. package/dist/internal/card/index.d.ts +62 -0
  38. package/dist/internal/card-grid/index.d.cts +10 -0
  39. package/dist/internal/card-grid/index.d.ts +10 -0
  40. package/dist/internal/checkbox/index.d.cts +40 -0
  41. package/dist/internal/checkbox/index.d.ts +40 -0
  42. package/dist/internal/code-editor/index.d.cts +47 -0
  43. package/dist/internal/code-editor/index.d.ts +47 -0
  44. package/dist/internal/collapsible/index.d.cts +43 -0
  45. package/dist/internal/collapsible/index.d.ts +43 -0
  46. package/dist/internal/command/index.d.cts +80 -0
  47. package/dist/internal/command/index.d.ts +80 -0
  48. package/dist/internal/content-protection/index.d.cts +47 -0
  49. package/dist/internal/content-protection/index.d.ts +47 -0
  50. package/dist/internal/data-table/index.d.cts +73 -0
  51. package/dist/internal/data-table/index.d.ts +73 -0
  52. package/dist/internal/date-picker/index.d.cts +98 -0
  53. package/dist/internal/date-picker/index.d.ts +98 -0
  54. package/dist/internal/device-frame/index.d.cts +40 -0
  55. package/dist/internal/device-frame/index.d.ts +40 -0
  56. package/dist/internal/dialog/index.d.cts +54 -0
  57. package/dist/internal/dialog/index.d.ts +54 -0
  58. package/dist/internal/dropdown-menu/index.d.cts +55 -0
  59. package/dist/internal/dropdown-menu/index.d.ts +55 -0
  60. package/dist/internal/emoji-picker/index.d.cts +77 -0
  61. package/dist/internal/emoji-picker/index.d.ts +77 -0
  62. package/dist/internal/feedback-dialog/index.d.cts +55 -0
  63. package/dist/internal/feedback-dialog/index.d.ts +55 -0
  64. package/dist/internal/file-upload/index.d.cts +91 -0
  65. package/dist/internal/file-upload/index.d.ts +91 -0
  66. package/dist/internal/footer/index.d.cts +30 -0
  67. package/dist/internal/footer/index.d.ts +30 -0
  68. package/dist/internal/inline-editor/index.d.cts +52 -0
  69. package/dist/internal/inline-editor/index.d.ts +52 -0
  70. package/dist/internal/input/index.d.cts +38 -0
  71. package/dist/internal/input/index.d.ts +38 -0
  72. package/dist/internal/input-group/index.d.cts +35 -0
  73. package/dist/internal/input-group/index.d.ts +35 -0
  74. package/dist/internal/install-prompt/index.d.cts +36 -0
  75. package/dist/internal/install-prompt/index.d.ts +36 -0
  76. package/dist/internal/keyboard-shortcut/index.d.cts +49 -0
  77. package/dist/internal/keyboard-shortcut/index.d.ts +49 -0
  78. package/dist/internal/language-selector/index.d.cts +63 -0
  79. package/dist/internal/language-selector/index.d.ts +63 -0
  80. package/dist/internal/markdown-renderer/index.d.cts +40 -0
  81. package/dist/internal/markdown-renderer/index.d.ts +40 -0
  82. package/dist/internal/mobile-nav/index.d.cts +45 -0
  83. package/dist/internal/mobile-nav/index.d.ts +45 -0
  84. package/dist/internal/navbar/index.d.cts +30 -0
  85. package/dist/internal/navbar/index.d.ts +30 -0
  86. package/dist/internal/otp-input/index.d.cts +66 -0
  87. package/dist/internal/otp-input/index.d.ts +66 -0
  88. package/dist/internal/payment/index.d.cts +9 -0
  89. package/dist/internal/payment/index.d.ts +9 -0
  90. package/dist/internal/popover/index.d.cts +46 -0
  91. package/dist/internal/popover/index.d.ts +46 -0
  92. package/dist/internal/presence-indicator/index.d.cts +38 -0
  93. package/dist/internal/presence-indicator/index.d.ts +38 -0
  94. package/dist/internal/progress-display/index.d.cts +60 -0
  95. package/dist/internal/progress-display/index.d.ts +60 -0
  96. package/dist/internal/radio/index.d.ts +43 -0
  97. package/dist/internal/react-accordion/index.d.ts +22 -0
  98. package/dist/internal/react-animated-text/index.d.cts +12 -0
  99. package/dist/internal/react-animated-text/index.d.ts +12 -0
  100. package/dist/internal/react-app-shell/index.d.cts +169 -0
  101. package/dist/internal/react-app-shell/index.d.ts +169 -0
  102. package/dist/internal/react-auth/index.d.cts +59 -0
  103. package/dist/internal/react-auth/index.d.ts +59 -0
  104. package/dist/internal/react-avatar/index.d.cts +20 -0
  105. package/dist/internal/react-avatar/index.d.ts +20 -0
  106. package/dist/internal/react-avatar-group/index.d.cts +33 -0
  107. package/dist/internal/react-avatar-group/index.d.ts +33 -0
  108. package/dist/internal/react-badge/index.d.cts +17 -0
  109. package/dist/internal/react-badge/index.d.ts +17 -0
  110. package/dist/internal/react-bottom-nav/index.d.cts +19 -0
  111. package/dist/internal/react-bottom-nav/index.d.ts +19 -0
  112. package/dist/internal/react-breadcrumbs/index.d.cts +24 -0
  113. package/dist/internal/react-breadcrumbs/index.d.ts +24 -0
  114. package/dist/internal/react-button/index.d.cts +21 -0
  115. package/dist/internal/react-button/index.d.ts +21 -0
  116. package/dist/internal/react-calendar/index.d.cts +44 -0
  117. package/dist/internal/react-calendar/index.d.ts +44 -0
  118. package/dist/internal/react-callout/index.d.cts +12 -0
  119. package/dist/internal/react-callout/index.d.ts +12 -0
  120. package/dist/internal/react-card/index.d.cts +29 -0
  121. package/dist/internal/react-card/index.d.ts +29 -0
  122. package/dist/internal/react-card-grid/index.d.cts +8 -0
  123. package/dist/internal/react-card-grid/index.d.ts +8 -0
  124. package/dist/internal/react-carousel/index.d.ts +22 -0
  125. package/dist/internal/react-checkbox/index.d.cts +18 -0
  126. package/dist/internal/react-checkbox/index.d.ts +18 -0
  127. package/dist/internal/react-code-block/index.d.cts +7 -0
  128. package/dist/internal/react-code-block/index.d.ts +7 -0
  129. package/dist/internal/react-code-editor/index.d.cts +28 -0
  130. package/dist/internal/react-code-editor/index.d.ts +28 -0
  131. package/dist/internal/react-collapsible/index.d.cts +29 -0
  132. package/dist/internal/react-collapsible/index.d.ts +29 -0
  133. package/dist/internal/react-combobox/index.d.cts +94 -0
  134. package/dist/internal/react-combobox/index.d.ts +94 -0
  135. package/dist/internal/react-command/index.d.cts +51 -0
  136. package/dist/internal/react-command/index.d.ts +51 -0
  137. package/dist/internal/react-content-protection/index.d.cts +22 -0
  138. package/dist/internal/react-content-protection/index.d.ts +22 -0
  139. package/dist/internal/react-data-table/index.d.cts +22 -0
  140. package/dist/internal/react-data-table/index.d.ts +22 -0
  141. package/dist/internal/react-date-picker/index.d.cts +23 -0
  142. package/dist/internal/react-date-picker/index.d.ts +23 -0
  143. package/dist/internal/react-device-frame/index.d.cts +37 -0
  144. package/dist/internal/react-device-frame/index.d.ts +37 -0
  145. package/dist/internal/react-dialog/index.d.cts +49 -0
  146. package/dist/internal/react-dialog/index.d.ts +49 -0
  147. package/dist/internal/react-dropdown-menu/index.d.cts +37 -0
  148. package/dist/internal/react-dropdown-menu/index.d.ts +37 -0
  149. package/dist/internal/react-emoji-picker/index.d.cts +32 -0
  150. package/dist/internal/react-emoji-picker/index.d.ts +32 -0
  151. package/dist/internal/react-feedback-dialog/index.d.cts +40 -0
  152. package/dist/internal/react-feedback-dialog/index.d.ts +40 -0
  153. package/dist/internal/react-file-tree/index.d.cts +5 -0
  154. package/dist/internal/react-file-tree/index.d.ts +5 -0
  155. package/dist/internal/react-file-upload/index.d.cts +22 -0
  156. package/dist/internal/react-file-upload/index.d.ts +22 -0
  157. package/dist/internal/react-footer/index.d.cts +20 -0
  158. package/dist/internal/react-footer/index.d.ts +20 -0
  159. package/dist/internal/react-form/index.d.cts +85 -0
  160. package/dist/internal/react-form/index.d.ts +85 -0
  161. package/dist/internal/react-icon-system/index.d.cts +5 -0
  162. package/dist/internal/react-icon-system/index.d.ts +5 -0
  163. package/dist/internal/react-inline-editor/index.d.cts +17 -0
  164. package/dist/internal/react-inline-editor/index.d.ts +17 -0
  165. package/dist/internal/react-input/index.d.cts +31 -0
  166. package/dist/internal/react-input/index.d.ts +31 -0
  167. package/dist/internal/react-input-group/index.d.cts +34 -0
  168. package/dist/internal/react-input-group/index.d.ts +34 -0
  169. package/dist/internal/react-install-prompt/index.d.cts +24 -0
  170. package/dist/internal/react-install-prompt/index.d.ts +24 -0
  171. package/dist/internal/react-keyboard-shortcut/index.d.cts +57 -0
  172. package/dist/internal/react-keyboard-shortcut/index.d.ts +57 -0
  173. package/dist/internal/react-language-selector/index.d.cts +26 -0
  174. package/dist/internal/react-language-selector/index.d.ts +26 -0
  175. package/dist/internal/react-link-card/index.d.cts +5 -0
  176. package/dist/internal/react-link-card/index.d.ts +5 -0
  177. package/dist/internal/react-markdown-renderer/index.d.cts +20 -0
  178. package/dist/internal/react-markdown-renderer/index.d.ts +20 -0
  179. package/dist/internal/react-mobile-nav/index.d.cts +33 -0
  180. package/dist/internal/react-mobile-nav/index.d.ts +33 -0
  181. package/dist/internal/react-navbar/index.d.cts +25 -0
  182. package/dist/internal/react-navbar/index.d.ts +25 -0
  183. package/dist/internal/react-otp-input/index.d.cts +21 -0
  184. package/dist/internal/react-otp-input/index.d.ts +21 -0
  185. package/dist/internal/react-pagination/index.d.ts +7 -0
  186. package/dist/internal/react-payment/index.d.cts +9 -0
  187. package/dist/internal/react-payment/index.d.ts +9 -0
  188. package/dist/internal/react-popover/index.d.cts +33 -0
  189. package/dist/internal/react-popover/index.d.ts +33 -0
  190. package/dist/internal/react-presence-indicator/index.d.cts +34 -0
  191. package/dist/internal/react-presence-indicator/index.d.ts +34 -0
  192. package/dist/internal/react-progress-display/index.d.cts +21 -0
  193. package/dist/internal/react-progress-display/index.d.ts +21 -0
  194. package/dist/internal/react-radio/index.d.ts +33 -0
  195. package/dist/internal/react-reaction-bar/index.d.cts +34 -0
  196. package/dist/internal/react-reaction-bar/index.d.ts +34 -0
  197. package/dist/internal/react-resizable-layout/index.d.cts +36 -0
  198. package/dist/internal/react-resizable-layout/index.d.ts +36 -0
  199. package/dist/internal/react-rich-editor/index.d.cts +2 -0
  200. package/dist/internal/react-rich-editor/index.d.ts +2 -0
  201. package/dist/internal/react-search-bar/index.d.cts +32 -0
  202. package/dist/internal/react-search-bar/index.d.ts +32 -0
  203. package/dist/internal/react-select/index.d.cts +30 -0
  204. package/dist/internal/react-select/index.d.ts +30 -0
  205. package/dist/internal/react-sheet/index.d.cts +67 -0
  206. package/dist/internal/react-sheet/index.d.ts +67 -0
  207. package/dist/internal/react-sidebar/index.d.cts +23 -0
  208. package/dist/internal/react-sidebar/index.d.ts +23 -0
  209. package/dist/internal/react-skeleton/index.d.cts +31 -0
  210. package/dist/internal/react-skeleton/index.d.ts +31 -0
  211. package/dist/internal/react-skip-to-content/index.d.cts +9 -0
  212. package/dist/internal/react-skip-to-content/index.d.ts +9 -0
  213. package/dist/internal/react-slide-viewer/index.d.cts +23 -0
  214. package/dist/internal/react-slide-viewer/index.d.ts +23 -0
  215. package/dist/internal/react-slider/index.d.cts +1 -0
  216. package/dist/internal/react-slider/index.d.ts +1 -0
  217. package/dist/internal/react-status-indicator/index.d.cts +34 -0
  218. package/dist/internal/react-status-indicator/index.d.ts +34 -0
  219. package/dist/internal/react-steps/index.d.cts +19 -0
  220. package/dist/internal/react-steps/index.d.ts +19 -0
  221. package/dist/internal/react-switch/index.d.cts +17 -0
  222. package/dist/internal/react-switch/index.d.ts +17 -0
  223. package/dist/internal/react-table-of-contents/index.d.ts +10 -0
  224. package/dist/internal/react-tabs/index.d.cts +31 -0
  225. package/dist/internal/react-tabs/index.d.ts +31 -0
  226. package/dist/internal/react-textarea/index.d.cts +16 -0
  227. package/dist/internal/react-textarea/index.d.ts +16 -0
  228. package/dist/internal/react-theme/index.d.cts +44 -0
  229. package/dist/internal/react-theme/index.d.ts +44 -0
  230. package/dist/internal/react-thread-view/index.d.cts +34 -0
  231. package/dist/internal/react-thread-view/index.d.ts +34 -0
  232. package/dist/internal/react-toast/index.d.cts +36 -0
  233. package/dist/internal/react-toast/index.d.ts +36 -0
  234. package/dist/internal/react-tooltip/index.d.cts +33 -0
  235. package/dist/internal/react-tooltip/index.d.ts +33 -0
  236. package/dist/internal/react-version-selector/index.d.cts +24 -0
  237. package/dist/internal/react-version-selector/index.d.ts +24 -0
  238. package/dist/internal/react-video-player/index.d.cts +9 -0
  239. package/dist/internal/react-video-player/index.d.ts +9 -0
  240. package/dist/internal/react-voice-pill/index.d.cts +10 -0
  241. package/dist/internal/react-voice-pill/index.d.ts +10 -0
  242. package/dist/internal/react-waveform/index.d.cts +9 -0
  243. package/dist/internal/react-waveform/index.d.ts +9 -0
  244. package/dist/internal/reaction-bar/index.d.cts +50 -0
  245. package/dist/internal/reaction-bar/index.d.ts +50 -0
  246. package/dist/internal/resizable-layout/index.d.cts +47 -0
  247. package/dist/internal/resizable-layout/index.d.ts +47 -0
  248. package/dist/internal/search-bar/index.d.cts +51 -0
  249. package/dist/internal/search-bar/index.d.ts +51 -0
  250. package/dist/internal/select/index.d.cts +69 -0
  251. package/dist/internal/select/index.d.ts +69 -0
  252. package/dist/internal/shared/index.d.cts +249 -0
  253. package/dist/internal/shared/index.d.ts +249 -0
  254. package/dist/internal/sidebar/index.d.cts +40 -0
  255. package/dist/internal/sidebar/index.d.ts +40 -0
  256. package/dist/internal/skeleton/index.d.cts +27 -0
  257. package/dist/internal/skeleton/index.d.ts +27 -0
  258. package/dist/internal/slide-viewer/index.d.cts +72 -0
  259. package/dist/internal/slide-viewer/index.d.ts +72 -0
  260. package/dist/internal/slider/index.d.cts +4 -0
  261. package/dist/internal/slider/index.d.ts +4 -0
  262. package/dist/internal/status-indicator/index.d.cts +42 -0
  263. package/dist/internal/status-indicator/index.d.ts +42 -0
  264. package/dist/internal/switch/index.d.cts +41 -0
  265. package/dist/internal/switch/index.d.ts +41 -0
  266. package/dist/internal/tabs/index.d.cts +45 -0
  267. package/dist/internal/tabs/index.d.ts +45 -0
  268. package/dist/internal/textarea/index.d.cts +28 -0
  269. package/dist/internal/textarea/index.d.ts +28 -0
  270. package/dist/internal/theme/index.d.cts +60 -0
  271. package/dist/internal/theme/index.d.ts +60 -0
  272. package/dist/internal/thread-view/index.d.cts +95 -0
  273. package/dist/internal/thread-view/index.d.ts +95 -0
  274. package/dist/internal/toast/index.d.cts +64 -0
  275. package/dist/internal/toast/index.d.ts +64 -0
  276. package/dist/internal/tooltip/index.d.cts +45 -0
  277. package/dist/internal/tooltip/index.d.ts +45 -0
  278. package/dist/internal/version-selector/index.d.cts +68 -0
  279. package/dist/internal/version-selector/index.d.ts +68 -0
  280. package/dist/internal/video-player/index.d.cts +50 -0
  281. package/dist/internal/video-player/index.d.ts +50 -0
  282. package/dist/internal/voice-pill/index.d.cts +86 -0
  283. package/dist/internal/voice-pill/index.d.ts +86 -0
  284. package/dist/internal/waveform/index.d.cts +83 -0
  285. package/dist/internal/waveform/index.d.ts +83 -0
  286. package/dist/theme.d.cts +1 -1
  287. package/dist/theme.d.ts +1 -1
  288. package/package.json +7 -6
@@ -0,0 +1,49 @@
1
+ interface ShortcutProps {
2
+ /** Key combination (e.g., ['Ctrl', 'K'] or ['Meta', 'Shift', 'P']) */
3
+ keys: string[];
4
+ /** Callback when the shortcut is triggered */
5
+ onTrigger: () => void;
6
+ /** Whether the shortcut is enabled */
7
+ enabled?: boolean;
8
+ /** Prevent default browser behavior */
9
+ preventDefault?: boolean;
10
+ }
11
+ interface KeyboardShortcutAPI {
12
+ /** Handle a keyboard event (returns true if it matched) */
13
+ handler(event: KeyboardEvent): boolean;
14
+ /** Human-readable display of the shortcut */
15
+ display: string;
16
+ /** Platform-aware display (uses command symbol on Mac) */
17
+ platformDisplay: string;
18
+ /** Whether the shortcut is currently enabled */
19
+ enabled: boolean;
20
+ /** The key combination */
21
+ keys: string[];
22
+ /** ARIA props for a visual shortcut badge */
23
+ badgeAriaProps: Record<string, unknown>;
24
+ }
25
+ declare function formatShortcut(keys: string[], mac?: boolean): string;
26
+ declare function createKeyboardShortcut(props: ShortcutProps): KeyboardShortcutAPI;
27
+ declare const SANE_DEFAULTS: Record<string, string[]>;
28
+ declare class ShortcutRegistry {
29
+ private shortcuts;
30
+ register(keys: string[], handler: () => void): void;
31
+ unregister(keys: string[]): void;
32
+ }
33
+ declare const globalShortcutRegistry: ShortcutRegistry;
34
+ declare class AltHintState {
35
+ private showHints;
36
+ private listeners;
37
+ private initialized;
38
+ init(): void;
39
+ private setShowHints;
40
+ subscribe(listener: (show: boolean) => void): () => void;
41
+ get snapshot(): boolean;
42
+ }
43
+ declare const altHintState: AltHintState;
44
+
45
+ declare const shortcutBadgeStyles = "inline-flex items-center gap-0.5 rounded border bg-muted px-1.5 py-0.5 text-xs font-mono text-muted-foreground";
46
+ declare const shortcutKeyStyles = "inline-flex items-center justify-center min-w-[1.25rem] rounded bg-background px-1 py-0.5 text-xs font-mono border shadow-sm";
47
+ declare const shortcutSeparatorStyles = "text-muted-foreground text-xs";
48
+
49
+ export { AltHintState, type KeyboardShortcutAPI, SANE_DEFAULTS, type ShortcutProps, ShortcutRegistry, altHintState, createKeyboardShortcut, formatShortcut, globalShortcutRegistry, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles };
@@ -0,0 +1,49 @@
1
+ interface ShortcutProps {
2
+ /** Key combination (e.g., ['Ctrl', 'K'] or ['Meta', 'Shift', 'P']) */
3
+ keys: string[];
4
+ /** Callback when the shortcut is triggered */
5
+ onTrigger: () => void;
6
+ /** Whether the shortcut is enabled */
7
+ enabled?: boolean;
8
+ /** Prevent default browser behavior */
9
+ preventDefault?: boolean;
10
+ }
11
+ interface KeyboardShortcutAPI {
12
+ /** Handle a keyboard event (returns true if it matched) */
13
+ handler(event: KeyboardEvent): boolean;
14
+ /** Human-readable display of the shortcut */
15
+ display: string;
16
+ /** Platform-aware display (uses command symbol on Mac) */
17
+ platformDisplay: string;
18
+ /** Whether the shortcut is currently enabled */
19
+ enabled: boolean;
20
+ /** The key combination */
21
+ keys: string[];
22
+ /** ARIA props for a visual shortcut badge */
23
+ badgeAriaProps: Record<string, unknown>;
24
+ }
25
+ declare function formatShortcut(keys: string[], mac?: boolean): string;
26
+ declare function createKeyboardShortcut(props: ShortcutProps): KeyboardShortcutAPI;
27
+ declare const SANE_DEFAULTS: Record<string, string[]>;
28
+ declare class ShortcutRegistry {
29
+ private shortcuts;
30
+ register(keys: string[], handler: () => void): void;
31
+ unregister(keys: string[]): void;
32
+ }
33
+ declare const globalShortcutRegistry: ShortcutRegistry;
34
+ declare class AltHintState {
35
+ private showHints;
36
+ private listeners;
37
+ private initialized;
38
+ init(): void;
39
+ private setShowHints;
40
+ subscribe(listener: (show: boolean) => void): () => void;
41
+ get snapshot(): boolean;
42
+ }
43
+ declare const altHintState: AltHintState;
44
+
45
+ declare const shortcutBadgeStyles = "inline-flex items-center gap-0.5 rounded border bg-muted px-1.5 py-0.5 text-xs font-mono text-muted-foreground";
46
+ declare const shortcutKeyStyles = "inline-flex items-center justify-center min-w-[1.25rem] rounded bg-background px-1 py-0.5 text-xs font-mono border shadow-sm";
47
+ declare const shortcutSeparatorStyles = "text-muted-foreground text-xs";
48
+
49
+ export { AltHintState, type KeyboardShortcutAPI, SANE_DEFAULTS, type ShortcutProps, ShortcutRegistry, altHintState, createKeyboardShortcut, formatShortcut, globalShortcutRegistry, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles };
@@ -0,0 +1,63 @@
1
+ import { KeyboardHandlerMap } from '../shared/index.cjs';
2
+
3
+ interface LanguageOption {
4
+ value: string;
5
+ label: string;
6
+ group?: string;
7
+ }
8
+ interface LanguageSelectorProps {
9
+ value?: string | string[];
10
+ onValueChange?: (value: string | string[]) => void;
11
+ options: LanguageOption[];
12
+ multiple?: boolean;
13
+ }
14
+ interface LanguageSelectorAPI {
15
+ /** Current state */
16
+ state: {
17
+ selectedValues: string[];
18
+ isOpen: boolean;
19
+ };
20
+ /** Props to spread on the trigger element */
21
+ triggerProps: {
22
+ 'aria-expanded': boolean;
23
+ 'aria-controls': string;
24
+ 'aria-haspopup': 'listbox';
25
+ role: 'combobox';
26
+ };
27
+ /** Props to spread on the content/dropdown element */
28
+ contentProps: {
29
+ role: 'listbox';
30
+ id: string;
31
+ 'aria-multiselectable'?: boolean;
32
+ };
33
+ /** Get props for an individual option */
34
+ getOptionProps: (value: string) => {
35
+ role: 'option';
36
+ 'aria-selected': boolean;
37
+ 'data-value': string;
38
+ };
39
+ /** Toggle an option's selection */
40
+ toggle: (value: string) => void;
41
+ /** Open the dropdown */
42
+ open: () => void;
43
+ /** Close the dropdown */
44
+ close: () => void;
45
+ /** Keyboard handler map */
46
+ keyboardHandlers: KeyboardHandlerMap;
47
+ /** Pre-built keyboard event handler */
48
+ handleKeyDown: (event: KeyboardEvent) => void;
49
+ }
50
+ declare function createLanguageSelector(props: LanguageSelectorProps): LanguageSelectorAPI;
51
+
52
+ declare const selectorVariants: (props?: ({
53
+ size?: "sm" | "md" | "lg" | undefined;
54
+ } & {
55
+ className?: string;
56
+ }) | undefined) => string;
57
+ declare const optionVariants: (props?: ({
58
+ selected?: "true" | "false" | undefined;
59
+ } & {
60
+ className?: string;
61
+ }) | undefined) => string;
62
+
63
+ export { type LanguageOption, type LanguageSelectorAPI, type LanguageSelectorProps, createLanguageSelector, optionVariants, selectorVariants };
@@ -0,0 +1,63 @@
1
+ import { KeyboardHandlerMap } from '../shared/index.js';
2
+
3
+ interface LanguageOption {
4
+ value: string;
5
+ label: string;
6
+ group?: string;
7
+ }
8
+ interface LanguageSelectorProps {
9
+ value?: string | string[];
10
+ onValueChange?: (value: string | string[]) => void;
11
+ options: LanguageOption[];
12
+ multiple?: boolean;
13
+ }
14
+ interface LanguageSelectorAPI {
15
+ /** Current state */
16
+ state: {
17
+ selectedValues: string[];
18
+ isOpen: boolean;
19
+ };
20
+ /** Props to spread on the trigger element */
21
+ triggerProps: {
22
+ 'aria-expanded': boolean;
23
+ 'aria-controls': string;
24
+ 'aria-haspopup': 'listbox';
25
+ role: 'combobox';
26
+ };
27
+ /** Props to spread on the content/dropdown element */
28
+ contentProps: {
29
+ role: 'listbox';
30
+ id: string;
31
+ 'aria-multiselectable'?: boolean;
32
+ };
33
+ /** Get props for an individual option */
34
+ getOptionProps: (value: string) => {
35
+ role: 'option';
36
+ 'aria-selected': boolean;
37
+ 'data-value': string;
38
+ };
39
+ /** Toggle an option's selection */
40
+ toggle: (value: string) => void;
41
+ /** Open the dropdown */
42
+ open: () => void;
43
+ /** Close the dropdown */
44
+ close: () => void;
45
+ /** Keyboard handler map */
46
+ keyboardHandlers: KeyboardHandlerMap;
47
+ /** Pre-built keyboard event handler */
48
+ handleKeyDown: (event: KeyboardEvent) => void;
49
+ }
50
+ declare function createLanguageSelector(props: LanguageSelectorProps): LanguageSelectorAPI;
51
+
52
+ declare const selectorVariants: (props?: ({
53
+ size?: "sm" | "md" | "lg" | undefined;
54
+ } & {
55
+ className?: string;
56
+ }) | undefined) => string;
57
+ declare const optionVariants: (props?: ({
58
+ selected?: "true" | "false" | undefined;
59
+ } & {
60
+ className?: string;
61
+ }) | undefined) => string;
62
+
63
+ export { type LanguageOption, type LanguageSelectorAPI, type LanguageSelectorProps, createLanguageSelector, optionVariants, selectorVariants };
@@ -0,0 +1,40 @@
1
+ import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
2
+
3
+ interface ComponentDef {
4
+ type: string;
5
+ pattern: RegExp;
6
+ props: Record<string, string>;
7
+ }
8
+ interface MarkdownRendererProps {
9
+ content: string;
10
+ components?: Record<string, ComponentDef>;
11
+ linkResolver?: (url: string) => string;
12
+ }
13
+ interface MarkdownRendererAPI {
14
+ /** Rendered HTML string */
15
+ html: string;
16
+ /** Extracted component slots from custom component definitions */
17
+ components: Array<{
18
+ name: string;
19
+ props: Record<string, string>;
20
+ }>;
21
+ /** ARIA attributes for the rendered content container */
22
+ ariaProps: Partial<AccessibilityProps>;
23
+ }
24
+ /**
25
+ * Create a headless markdown renderer.
26
+ *
27
+ * Uses the headless pattern — returns an API object with rendered HTML,
28
+ * extracted component slots, and ARIA props for the container.
29
+ */
30
+ declare function createMarkdownRenderer(props: MarkdownRendererProps): MarkdownRendererAPI;
31
+
32
+ declare const markdownRendererTokens: TokenContract;
33
+ declare const proseVariants: (props?: ({
34
+ size?: "sm" | "default" | "lg" | undefined;
35
+ theme?: "light" | "dark" | undefined;
36
+ } & {
37
+ className?: string;
38
+ }) | undefined) => string;
39
+
40
+ export { type ComponentDef, type MarkdownRendererAPI, type MarkdownRendererProps, createMarkdownRenderer, markdownRendererTokens, proseVariants };
@@ -0,0 +1,40 @@
1
+ import { AccessibilityProps, TokenContract } from '../shared/index.js';
2
+
3
+ interface ComponentDef {
4
+ type: string;
5
+ pattern: RegExp;
6
+ props: Record<string, string>;
7
+ }
8
+ interface MarkdownRendererProps {
9
+ content: string;
10
+ components?: Record<string, ComponentDef>;
11
+ linkResolver?: (url: string) => string;
12
+ }
13
+ interface MarkdownRendererAPI {
14
+ /** Rendered HTML string */
15
+ html: string;
16
+ /** Extracted component slots from custom component definitions */
17
+ components: Array<{
18
+ name: string;
19
+ props: Record<string, string>;
20
+ }>;
21
+ /** ARIA attributes for the rendered content container */
22
+ ariaProps: Partial<AccessibilityProps>;
23
+ }
24
+ /**
25
+ * Create a headless markdown renderer.
26
+ *
27
+ * Uses the headless pattern — returns an API object with rendered HTML,
28
+ * extracted component slots, and ARIA props for the container.
29
+ */
30
+ declare function createMarkdownRenderer(props: MarkdownRendererProps): MarkdownRendererAPI;
31
+
32
+ declare const markdownRendererTokens: TokenContract;
33
+ declare const proseVariants: (props?: ({
34
+ size?: "sm" | "default" | "lg" | undefined;
35
+ theme?: "light" | "dark" | undefined;
36
+ } & {
37
+ className?: string;
38
+ }) | undefined) => string;
39
+
40
+ export { type ComponentDef, type MarkdownRendererAPI, type MarkdownRendererProps, createMarkdownRenderer, markdownRendererTokens, proseVariants };
@@ -0,0 +1,45 @@
1
+ import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.cjs';
2
+
3
+ interface MobileNavProps {
4
+ open?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ id?: string;
7
+ }
8
+ interface MobileNavState {
9
+ open: boolean;
10
+ }
11
+ interface MobileNavAPI {
12
+ /** Current state */
13
+ state: MobileNavState;
14
+ /** ARIA and interaction props for the trigger button */
15
+ triggerProps: Partial<AccessibilityProps> & Record<string, string | boolean | undefined>;
16
+ /** ARIA and data attributes for the content panel */
17
+ contentProps: Partial<AccessibilityProps> & Record<string, string | boolean | undefined>;
18
+ /** Toggle open state */
19
+ toggle: () => void;
20
+ /** Open the nav */
21
+ open: () => void;
22
+ /** Close the nav */
23
+ close: () => void;
24
+ /** Keyboard handlers (Escape closes) */
25
+ keyboardHandlers: KeyboardHandlerMap;
26
+ }
27
+ declare function createMobileNav(props?: MobileNavProps): MobileNavAPI;
28
+
29
+ declare const mobileNavTokens: TokenContract;
30
+ declare const mobileNavVariants: (props?: ({} & {
31
+ className?: string;
32
+ }) | undefined) => string;
33
+ declare const mobileNavContentVariants: (props?: ({
34
+ state?: "open" | "closed" | undefined;
35
+ } & {
36
+ className?: string;
37
+ }) | undefined) => string;
38
+ declare const mobileNavTriggerVariants: (props?: ({} & {
39
+ className?: string;
40
+ }) | undefined) => string;
41
+ declare const mobileNavLinkVariants: (props?: ({} & {
42
+ className?: string;
43
+ }) | undefined) => string;
44
+
45
+ export { type MobileNavAPI, type MobileNavProps, type MobileNavState, createMobileNav, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants };
@@ -0,0 +1,45 @@
1
+ import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.js';
2
+
3
+ interface MobileNavProps {
4
+ open?: boolean;
5
+ onOpenChange?: (open: boolean) => void;
6
+ id?: string;
7
+ }
8
+ interface MobileNavState {
9
+ open: boolean;
10
+ }
11
+ interface MobileNavAPI {
12
+ /** Current state */
13
+ state: MobileNavState;
14
+ /** ARIA and interaction props for the trigger button */
15
+ triggerProps: Partial<AccessibilityProps> & Record<string, string | boolean | undefined>;
16
+ /** ARIA and data attributes for the content panel */
17
+ contentProps: Partial<AccessibilityProps> & Record<string, string | boolean | undefined>;
18
+ /** Toggle open state */
19
+ toggle: () => void;
20
+ /** Open the nav */
21
+ open: () => void;
22
+ /** Close the nav */
23
+ close: () => void;
24
+ /** Keyboard handlers (Escape closes) */
25
+ keyboardHandlers: KeyboardHandlerMap;
26
+ }
27
+ declare function createMobileNav(props?: MobileNavProps): MobileNavAPI;
28
+
29
+ declare const mobileNavTokens: TokenContract;
30
+ declare const mobileNavVariants: (props?: ({} & {
31
+ className?: string;
32
+ }) | undefined) => string;
33
+ declare const mobileNavContentVariants: (props?: ({
34
+ state?: "open" | "closed" | undefined;
35
+ } & {
36
+ className?: string;
37
+ }) | undefined) => string;
38
+ declare const mobileNavTriggerVariants: (props?: ({} & {
39
+ className?: string;
40
+ }) | undefined) => string;
41
+ declare const mobileNavLinkVariants: (props?: ({} & {
42
+ className?: string;
43
+ }) | undefined) => string;
44
+
45
+ export { type MobileNavAPI, type MobileNavProps, type MobileNavState, createMobileNav, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants };
@@ -0,0 +1,30 @@
1
+ interface NavLink {
2
+ label: string;
3
+ href: string;
4
+ icon?: string;
5
+ }
6
+ type NavbarVariant = 'solid' | 'blur' | 'gradient' | 'transparent';
7
+ interface NavbarProps {
8
+ links?: NavLink[];
9
+ currentPath?: string;
10
+ variant?: NavbarVariant;
11
+ }
12
+ interface NavbarAPI {
13
+ ariaProps: Record<string, string>;
14
+ isActive: (href: string) => boolean;
15
+ linkAriaProps: (href: string) => Record<string, string>;
16
+ }
17
+ declare function createNavbar(props?: NavbarProps): NavbarAPI;
18
+
19
+ declare const navbarVariants: (props?: ({
20
+ variant?: "solid" | "blur" | "gradient" | "transparent" | undefined;
21
+ } & {
22
+ className?: string;
23
+ }) | undefined) => string;
24
+ declare const navLinkVariants: (props?: ({
25
+ active?: "true" | "false" | undefined;
26
+ } & {
27
+ className?: string;
28
+ }) | undefined) => string;
29
+
30
+ export { type NavLink, type NavbarAPI, type NavbarProps, type NavbarVariant, createNavbar, navLinkVariants, navbarVariants };
@@ -0,0 +1,30 @@
1
+ interface NavLink {
2
+ label: string;
3
+ href: string;
4
+ icon?: string;
5
+ }
6
+ type NavbarVariant = 'solid' | 'blur' | 'gradient' | 'transparent';
7
+ interface NavbarProps {
8
+ links?: NavLink[];
9
+ currentPath?: string;
10
+ variant?: NavbarVariant;
11
+ }
12
+ interface NavbarAPI {
13
+ ariaProps: Record<string, string>;
14
+ isActive: (href: string) => boolean;
15
+ linkAriaProps: (href: string) => Record<string, string>;
16
+ }
17
+ declare function createNavbar(props?: NavbarProps): NavbarAPI;
18
+
19
+ declare const navbarVariants: (props?: ({
20
+ variant?: "solid" | "blur" | "gradient" | "transparent" | undefined;
21
+ } & {
22
+ className?: string;
23
+ }) | undefined) => string;
24
+ declare const navLinkVariants: (props?: ({
25
+ active?: "true" | "false" | undefined;
26
+ } & {
27
+ className?: string;
28
+ }) | undefined) => string;
29
+
30
+ export { type NavLink, type NavbarAPI, type NavbarProps, type NavbarVariant, createNavbar, navLinkVariants, navbarVariants };
@@ -0,0 +1,66 @@
1
+ import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.cjs';
2
+
3
+ type OtpInputType = 'number' | 'text';
4
+ interface OtpInputProps {
5
+ length?: number;
6
+ value?: string;
7
+ autoFocus?: boolean;
8
+ type?: OtpInputType;
9
+ disabled?: boolean;
10
+ }
11
+ interface OtpSlotProps {
12
+ ariaProps: Partial<AccessibilityProps>;
13
+ dataAttributes: Record<string, string>;
14
+ inputProps: {
15
+ maxLength: number;
16
+ inputMode: string;
17
+ pattern?: string;
18
+ autoComplete: string;
19
+ disabled: boolean;
20
+ };
21
+ }
22
+ interface OtpInputAPI {
23
+ /** Current state */
24
+ state: {
25
+ values: string[];
26
+ focusedIndex: number;
27
+ length: number;
28
+ disabled: boolean;
29
+ };
30
+ /** Set the value at a specific index */
31
+ setValue: (index: number, char: string) => string[];
32
+ /** Get the combined OTP string */
33
+ getValue: () => string;
34
+ /** Move focus in a direction, returns new index */
35
+ moveFocus: (direction: 'left' | 'right') => number;
36
+ /** Get aria/input props for a specific slot */
37
+ getSlotProps: (index: number) => OtpSlotProps;
38
+ /** Keyboard handlers factory for a specific slot */
39
+ getKeyboardHandlers: (index: number, callbacks?: {
40
+ onMoveFocus?: (index: number) => void;
41
+ onSetValue?: (index: number, values: string[]) => void;
42
+ }) => KeyboardHandlerMap;
43
+ /** Parse a paste string into values array */
44
+ parsePaste: (text: string) => string[];
45
+ /** Root container ARIA props */
46
+ rootAriaProps: Partial<AccessibilityProps>;
47
+ /** Whether interaction should be blocked */
48
+ isInteractive: boolean;
49
+ }
50
+ declare function createOtpInput(props?: OtpInputProps): OtpInputAPI;
51
+
52
+ declare const otpInputTokens: TokenContract;
53
+ declare const otpInputContainerVariants: (props?: ({
54
+ size?: "sm" | "default" | "lg" | undefined;
55
+ } & {
56
+ className?: string;
57
+ }) | undefined) => string;
58
+ declare const otpInputSlotVariants: (props?: ({
59
+ size?: "sm" | "default" | "lg" | undefined;
60
+ focused?: "true" | "false" | undefined;
61
+ filled?: "true" | "false" | undefined;
62
+ } & {
63
+ className?: string;
64
+ }) | undefined) => string;
65
+
66
+ export { type OtpInputAPI, type OtpInputProps, type OtpInputType, type OtpSlotProps, createOtpInput, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens };
@@ -0,0 +1,66 @@
1
+ import { AccessibilityProps, KeyboardHandlerMap, TokenContract } from '../shared/index.js';
2
+
3
+ type OtpInputType = 'number' | 'text';
4
+ interface OtpInputProps {
5
+ length?: number;
6
+ value?: string;
7
+ autoFocus?: boolean;
8
+ type?: OtpInputType;
9
+ disabled?: boolean;
10
+ }
11
+ interface OtpSlotProps {
12
+ ariaProps: Partial<AccessibilityProps>;
13
+ dataAttributes: Record<string, string>;
14
+ inputProps: {
15
+ maxLength: number;
16
+ inputMode: string;
17
+ pattern?: string;
18
+ autoComplete: string;
19
+ disabled: boolean;
20
+ };
21
+ }
22
+ interface OtpInputAPI {
23
+ /** Current state */
24
+ state: {
25
+ values: string[];
26
+ focusedIndex: number;
27
+ length: number;
28
+ disabled: boolean;
29
+ };
30
+ /** Set the value at a specific index */
31
+ setValue: (index: number, char: string) => string[];
32
+ /** Get the combined OTP string */
33
+ getValue: () => string;
34
+ /** Move focus in a direction, returns new index */
35
+ moveFocus: (direction: 'left' | 'right') => number;
36
+ /** Get aria/input props for a specific slot */
37
+ getSlotProps: (index: number) => OtpSlotProps;
38
+ /** Keyboard handlers factory for a specific slot */
39
+ getKeyboardHandlers: (index: number, callbacks?: {
40
+ onMoveFocus?: (index: number) => void;
41
+ onSetValue?: (index: number, values: string[]) => void;
42
+ }) => KeyboardHandlerMap;
43
+ /** Parse a paste string into values array */
44
+ parsePaste: (text: string) => string[];
45
+ /** Root container ARIA props */
46
+ rootAriaProps: Partial<AccessibilityProps>;
47
+ /** Whether interaction should be blocked */
48
+ isInteractive: boolean;
49
+ }
50
+ declare function createOtpInput(props?: OtpInputProps): OtpInputAPI;
51
+
52
+ declare const otpInputTokens: TokenContract;
53
+ declare const otpInputContainerVariants: (props?: ({
54
+ size?: "sm" | "default" | "lg" | undefined;
55
+ } & {
56
+ className?: string;
57
+ }) | undefined) => string;
58
+ declare const otpInputSlotVariants: (props?: ({
59
+ size?: "sm" | "default" | "lg" | undefined;
60
+ focused?: "true" | "false" | undefined;
61
+ filled?: "true" | "false" | undefined;
62
+ } & {
63
+ className?: string;
64
+ }) | undefined) => string;
65
+
66
+ export { type OtpInputAPI, type OtpInputProps, type OtpInputType, type OtpSlotProps, createOtpInput, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens };
@@ -0,0 +1,9 @@
1
+ interface PaymentProps {
2
+ disabled?: boolean;
3
+ }
4
+ interface PaymentAPI {
5
+ props: PaymentProps;
6
+ }
7
+ declare function createPayment(props?: PaymentProps): PaymentAPI;
8
+
9
+ export { type PaymentAPI, type PaymentProps, createPayment };
@@ -0,0 +1,9 @@
1
+ interface PaymentProps {
2
+ disabled?: boolean;
3
+ }
4
+ interface PaymentAPI {
5
+ props: PaymentProps;
6
+ }
7
+ declare function createPayment(props?: PaymentProps): PaymentAPI;
8
+
9
+ export { type PaymentAPI, type PaymentProps, createPayment };
@@ -0,0 +1,46 @@
1
+ import { AccessibilityProps, Side, KeyboardHandlerMap } from '../shared/index.cjs';
2
+
3
+ interface PopoverProps {
4
+ open?: boolean;
5
+ defaultOpen?: boolean;
6
+ onOpenChange?: (open: boolean) => void;
7
+ placement?: Side;
8
+ }
9
+ interface PopoverAPI {
10
+ /** Current open state */
11
+ state: {
12
+ open: boolean;
13
+ };
14
+ /** Props to spread on the trigger element */
15
+ triggerProps: Partial<AccessibilityProps> & {
16
+ 'aria-expanded': boolean;
17
+ 'aria-controls': string;
18
+ 'aria-haspopup': 'dialog';
19
+ };
20
+ /** Props to spread on the content element */
21
+ contentProps: {
22
+ role: 'dialog';
23
+ id: string;
24
+ };
25
+ /** Resolved placement */
26
+ placement: Side;
27
+ /** Open the popover */
28
+ open: () => void;
29
+ /** Close the popover */
30
+ close: () => void;
31
+ /** Toggle the popover */
32
+ toggle: () => void;
33
+ /** Keyboard handler map (Escape to close) */
34
+ keyboardHandlers: KeyboardHandlerMap;
35
+ /** Pre-built keyboard event handler */
36
+ handleKeyDown: (event: KeyboardEvent) => void;
37
+ }
38
+ declare function createPopover(props?: PopoverProps): PopoverAPI;
39
+
40
+ declare const popoverContentVariants: (props?: ({
41
+ side?: "top" | "right" | "bottom" | "left" | undefined;
42
+ } & {
43
+ className?: string;
44
+ }) | undefined) => string;
45
+
46
+ export { type PopoverAPI, type PopoverProps, createPopover, popoverContentVariants };