@uisatin/ui 0.0.0-stage → 0.1.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 (329) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -2
  3. package/chunk-2HKBZFIK.js +339 -0
  4. package/chunk-2HKBZFIK.js.map +1 -0
  5. package/chunk-2YEWSJD7.js +95 -0
  6. package/chunk-2YEWSJD7.js.map +1 -0
  7. package/chunk-3DINAQLL.js +153 -0
  8. package/chunk-3DINAQLL.js.map +1 -0
  9. package/chunk-3ERGAHKA.js +179 -0
  10. package/chunk-3ERGAHKA.js.map +1 -0
  11. package/chunk-6C7CGJX2.js +86 -0
  12. package/chunk-6C7CGJX2.js.map +1 -0
  13. package/chunk-6YXUBP27.js +474 -0
  14. package/chunk-6YXUBP27.js.map +1 -0
  15. package/chunk-72OCFAPT.js +175 -0
  16. package/chunk-72OCFAPT.js.map +1 -0
  17. package/chunk-7TXHCRAG.js +51 -0
  18. package/chunk-7TXHCRAG.js.map +1 -0
  19. package/chunk-A5XEM3GF.js +260 -0
  20. package/chunk-A5XEM3GF.js.map +1 -0
  21. package/chunk-AN2RNJLR.js +79 -0
  22. package/chunk-AN2RNJLR.js.map +1 -0
  23. package/chunk-B2K45IUR.js +36 -0
  24. package/chunk-B2K45IUR.js.map +1 -0
  25. package/chunk-B6V4VSGH.js +82 -0
  26. package/chunk-B6V4VSGH.js.map +1 -0
  27. package/chunk-BKZBWPUH.js +59 -0
  28. package/chunk-BKZBWPUH.js.map +1 -0
  29. package/chunk-BNTPPZCK.js +220 -0
  30. package/chunk-BNTPPZCK.js.map +1 -0
  31. package/chunk-BNZVTLHV.js +98 -0
  32. package/chunk-BNZVTLHV.js.map +1 -0
  33. package/chunk-CL2II6BX.js +89 -0
  34. package/chunk-CL2II6BX.js.map +1 -0
  35. package/chunk-DETGJAIC.js +147 -0
  36. package/chunk-DETGJAIC.js.map +1 -0
  37. package/chunk-DO3TBNSC.js +130 -0
  38. package/chunk-DO3TBNSC.js.map +1 -0
  39. package/chunk-ESC5JCVQ.js +90 -0
  40. package/chunk-ESC5JCVQ.js.map +1 -0
  41. package/chunk-FDKIX4DC.js +55 -0
  42. package/chunk-FDKIX4DC.js.map +1 -0
  43. package/chunk-GICKPMJU.js +239 -0
  44. package/chunk-GICKPMJU.js.map +1 -0
  45. package/chunk-GQA24FYG.js +57 -0
  46. package/chunk-GQA24FYG.js.map +1 -0
  47. package/chunk-H4NU7NPO.js +264 -0
  48. package/chunk-H4NU7NPO.js.map +1 -0
  49. package/chunk-H63FYCMY.js +11 -0
  50. package/chunk-H63FYCMY.js.map +1 -0
  51. package/chunk-HL42K2NH.js +76 -0
  52. package/chunk-HL42K2NH.js.map +1 -0
  53. package/chunk-HNQUX43Z.js +109 -0
  54. package/chunk-HNQUX43Z.js.map +1 -0
  55. package/chunk-HRKPV66B.js +32 -0
  56. package/chunk-HRKPV66B.js.map +1 -0
  57. package/chunk-J3NSDRVH.js +83 -0
  58. package/chunk-J3NSDRVH.js.map +1 -0
  59. package/chunk-JPNWHWAQ.js +151 -0
  60. package/chunk-JPNWHWAQ.js.map +1 -0
  61. package/chunk-KNUWZNFV.js +240 -0
  62. package/chunk-KNUWZNFV.js.map +1 -0
  63. package/chunk-L6NCCSIP.js +213 -0
  64. package/chunk-L6NCCSIP.js.map +1 -0
  65. package/chunk-LLHTVIM3.js +50 -0
  66. package/chunk-LLHTVIM3.js.map +1 -0
  67. package/chunk-LW3TRU5W.js +131 -0
  68. package/chunk-LW3TRU5W.js.map +1 -0
  69. package/chunk-LZMKSFCF.js +79 -0
  70. package/chunk-LZMKSFCF.js.map +1 -0
  71. package/chunk-MR3JDI7E.js +122 -0
  72. package/chunk-MR3JDI7E.js.map +1 -0
  73. package/chunk-NN6PKJWS.js +44 -0
  74. package/chunk-NN6PKJWS.js.map +1 -0
  75. package/chunk-NSRTTYQ4.js +252 -0
  76. package/chunk-NSRTTYQ4.js.map +1 -0
  77. package/chunk-O7F3CIDV.js +45 -0
  78. package/chunk-O7F3CIDV.js.map +1 -0
  79. package/chunk-P4O6TGDR.js +166 -0
  80. package/chunk-P4O6TGDR.js.map +1 -0
  81. package/chunk-PF3YBUKT.js +81 -0
  82. package/chunk-PF3YBUKT.js.map +1 -0
  83. package/chunk-PVOLDO4G.js +47 -0
  84. package/chunk-PVOLDO4G.js.map +1 -0
  85. package/chunk-QS4N4MNP.js +215 -0
  86. package/chunk-QS4N4MNP.js.map +1 -0
  87. package/chunk-QUF2IPOZ.js +98 -0
  88. package/chunk-QUF2IPOZ.js.map +1 -0
  89. package/chunk-RTJ76X5U.js +126 -0
  90. package/chunk-RTJ76X5U.js.map +1 -0
  91. package/chunk-SH6NG6VN.js +40 -0
  92. package/chunk-SH6NG6VN.js.map +1 -0
  93. package/chunk-SHDFUXYV.js +195 -0
  94. package/chunk-SHDFUXYV.js.map +1 -0
  95. package/chunk-TKO44NDI.js +84 -0
  96. package/chunk-TKO44NDI.js.map +1 -0
  97. package/chunk-TOMSU4S4.js +149 -0
  98. package/chunk-TOMSU4S4.js.map +1 -0
  99. package/chunk-TVLGZGYN.js +59 -0
  100. package/chunk-TVLGZGYN.js.map +1 -0
  101. package/chunk-TX3H3QMA.js +520 -0
  102. package/chunk-TX3H3QMA.js.map +1 -0
  103. package/chunk-UBNHSZSE.js +88 -0
  104. package/chunk-UBNHSZSE.js.map +1 -0
  105. package/chunk-UC3ZJWOD.js +73 -0
  106. package/chunk-UC3ZJWOD.js.map +1 -0
  107. package/chunk-UGRSWP6U.js +69 -0
  108. package/chunk-UGRSWP6U.js.map +1 -0
  109. package/chunk-VAGIAREV.js +214 -0
  110. package/chunk-VAGIAREV.js.map +1 -0
  111. package/chunk-WTMZT3IT.js +105 -0
  112. package/chunk-WTMZT3IT.js.map +1 -0
  113. package/chunk-WX6BP5ZP.js +39 -0
  114. package/chunk-WX6BP5ZP.js.map +1 -0
  115. package/chunk-X3PQANZO.js +255 -0
  116. package/chunk-X3PQANZO.js.map +1 -0
  117. package/chunk-XILQ7GXE.js +66 -0
  118. package/chunk-XILQ7GXE.js.map +1 -0
  119. package/chunk-XL75JRUA.js +130 -0
  120. package/chunk-XL75JRUA.js.map +1 -0
  121. package/chunk-XZNHT6MO.js +348 -0
  122. package/chunk-XZNHT6MO.js.map +1 -0
  123. package/chunk-Y5AYU7PK.js +44 -0
  124. package/chunk-Y5AYU7PK.js.map +1 -0
  125. package/chunk-YG7JOOLJ.js +28 -0
  126. package/chunk-YG7JOOLJ.js.map +1 -0
  127. package/chunk-YPJYW624.js +195 -0
  128. package/chunk-YPJYW624.js.map +1 -0
  129. package/chunk-YPNKBE5X.js +104 -0
  130. package/chunk-YPNKBE5X.js.map +1 -0
  131. package/components/accordion.d.ts +27 -0
  132. package/components/accordion.js +4 -0
  133. package/components/accordion.js.map +1 -0
  134. package/components/agent-loading.d.ts +65 -0
  135. package/components/agent-loading.js +4 -0
  136. package/components/agent-loading.js.map +1 -0
  137. package/components/agent-picker.d.ts +82 -0
  138. package/components/agent-picker.js +5 -0
  139. package/components/agent-picker.js.map +1 -0
  140. package/components/agent-suggestion.d.ts +69 -0
  141. package/components/agent-suggestion.js +6 -0
  142. package/components/agent-suggestion.js.map +1 -0
  143. package/components/announcement-bar.d.ts +39 -0
  144. package/components/announcement-bar.js +6 -0
  145. package/components/announcement-bar.js.map +1 -0
  146. package/components/attachment.d.ts +73 -0
  147. package/components/attachment.js +5 -0
  148. package/components/attachment.js.map +1 -0
  149. package/components/avatar.d.ts +34 -0
  150. package/components/avatar.js +6 -0
  151. package/components/avatar.js.map +1 -0
  152. package/components/badge.d.ts +19 -0
  153. package/components/badge.js +4 -0
  154. package/components/badge.js.map +1 -0
  155. package/components/banner.d.ts +54 -0
  156. package/components/banner.js +5 -0
  157. package/components/banner.js.map +1 -0
  158. package/components/bar-chart.d.ts +32 -0
  159. package/components/bar-chart.js +11 -0
  160. package/components/bar-chart.js.map +1 -0
  161. package/components/breadcrumb.d.ts +32 -0
  162. package/components/breadcrumb.js +6 -0
  163. package/components/breadcrumb.js.map +1 -0
  164. package/components/button.d.ts +32 -0
  165. package/components/button.js +4 -0
  166. package/components/button.js.map +1 -0
  167. package/components/card.d.ts +28 -0
  168. package/components/card.js +5 -0
  169. package/components/card.js.map +1 -0
  170. package/components/channel-chart.d.ts +14 -0
  171. package/components/channel-chart.js +11 -0
  172. package/components/channel-chart.js.map +1 -0
  173. package/components/chart.d.ts +88 -0
  174. package/components/chart.js +10 -0
  175. package/components/chart.js.map +1 -0
  176. package/components/checkbox.d.ts +17 -0
  177. package/components/checkbox.js +4 -0
  178. package/components/checkbox.js.map +1 -0
  179. package/components/chip.d.ts +54 -0
  180. package/components/chip.js +4 -0
  181. package/components/chip.js.map +1 -0
  182. package/components/citations.d.ts +37 -0
  183. package/components/citations.js +5 -0
  184. package/components/citations.js.map +1 -0
  185. package/components/code-block.d.ts +13 -0
  186. package/components/code-block.js +5 -0
  187. package/components/code-block.js.map +1 -0
  188. package/components/combobox.d.ts +58 -0
  189. package/components/combobox.js +10 -0
  190. package/components/combobox.js.map +1 -0
  191. package/components/command-menu.d.ts +54 -0
  192. package/components/command-menu.js +6 -0
  193. package/components/command-menu.js.map +1 -0
  194. package/components/context-menu.d.ts +46 -0
  195. package/components/context-menu.js +6 -0
  196. package/components/context-menu.js.map +1 -0
  197. package/components/cookie-consent.d.ts +26 -0
  198. package/components/cookie-consent.js +5 -0
  199. package/components/cookie-consent.js.map +1 -0
  200. package/components/date-picker.d.ts +112 -0
  201. package/components/date-picker.js +9 -0
  202. package/components/date-picker.js.map +1 -0
  203. package/components/decision-card.d.ts +65 -0
  204. package/components/decision-card.js +7 -0
  205. package/components/decision-card.js.map +1 -0
  206. package/components/dialog.d.ts +68 -0
  207. package/components/dialog.js +5 -0
  208. package/components/dialog.js.map +1 -0
  209. package/components/donut-chart.d.ts +20 -0
  210. package/components/donut-chart.js +11 -0
  211. package/components/donut-chart.js.map +1 -0
  212. package/components/dot.d.ts +21 -0
  213. package/components/dot.js +4 -0
  214. package/components/dot.js.map +1 -0
  215. package/components/dropdown.d.ts +74 -0
  216. package/components/dropdown.js +5 -0
  217. package/components/dropdown.js.map +1 -0
  218. package/components/empty-state.d.ts +25 -0
  219. package/components/empty-state.js +4 -0
  220. package/components/empty-state.js.map +1 -0
  221. package/components/file-upload.d.ts +78 -0
  222. package/components/file-upload.js +7 -0
  223. package/components/file-upload.js.map +1 -0
  224. package/components/floating.d.ts +30 -0
  225. package/components/floating.js +3 -0
  226. package/components/floating.js.map +1 -0
  227. package/components/form-field.d.ts +35 -0
  228. package/components/form-field.js +4 -0
  229. package/components/form-field.js.map +1 -0
  230. package/components/hover-card.d.ts +30 -0
  231. package/components/hover-card.js +4 -0
  232. package/components/hover-card.js.map +1 -0
  233. package/components/input-otp.d.ts +49 -0
  234. package/components/input-otp.js +8 -0
  235. package/components/input-otp.js.map +1 -0
  236. package/components/input.d.ts +28 -0
  237. package/components/input.js +5 -0
  238. package/components/input.js.map +1 -0
  239. package/components/kbd.d.ts +37 -0
  240. package/components/kbd.js +4 -0
  241. package/components/kbd.js.map +1 -0
  242. package/components/line-chart.d.ts +29 -0
  243. package/components/line-chart.js +12 -0
  244. package/components/line-chart.js.map +1 -0
  245. package/components/message-actions.d.ts +24 -0
  246. package/components/message-actions.js +5 -0
  247. package/components/message-actions.js.map +1 -0
  248. package/components/message.d.ts +40 -0
  249. package/components/message.js +8 -0
  250. package/components/message.js.map +1 -0
  251. package/components/number-input.d.ts +33 -0
  252. package/components/number-input.js +8 -0
  253. package/components/number-input.js.map +1 -0
  254. package/components/pagination.d.ts +45 -0
  255. package/components/pagination.js +6 -0
  256. package/components/pagination.js.map +1 -0
  257. package/components/popover.d.ts +44 -0
  258. package/components/popover.js +4 -0
  259. package/components/popover.js.map +1 -0
  260. package/components/progress.d.ts +24 -0
  261. package/components/progress.js +4 -0
  262. package/components/progress.js.map +1 -0
  263. package/components/prompt-bar.d.ts +63 -0
  264. package/components/prompt-bar.js +6 -0
  265. package/components/prompt-bar.js.map +1 -0
  266. package/components/radio.d.ts +27 -0
  267. package/components/radio.js +4 -0
  268. package/components/radio.js.map +1 -0
  269. package/components/search-bar.d.ts +20 -0
  270. package/components/search-bar.js +5 -0
  271. package/components/search-bar.js.map +1 -0
  272. package/components/segmented-control.d.ts +32 -0
  273. package/components/segmented-control.js +5 -0
  274. package/components/segmented-control.js.map +1 -0
  275. package/components/select.d.ts +97 -0
  276. package/components/select.js +7 -0
  277. package/components/select.js.map +1 -0
  278. package/components/sheet.d.ts +37 -0
  279. package/components/sheet.js +6 -0
  280. package/components/sheet.js.map +1 -0
  281. package/components/sidebar.d.ts +52 -0
  282. package/components/sidebar.js +4 -0
  283. package/components/sidebar.js.map +1 -0
  284. package/components/skeleton.d.ts +18 -0
  285. package/components/skeleton.js +4 -0
  286. package/components/skeleton.js.map +1 -0
  287. package/components/slider.d.ts +57 -0
  288. package/components/slider.js +8 -0
  289. package/components/slider.js.map +1 -0
  290. package/components/sliding-indicator.d.ts +23 -0
  291. package/components/sliding-indicator.js +3 -0
  292. package/components/sliding-indicator.js.map +1 -0
  293. package/components/streaming-text.d.ts +33 -0
  294. package/components/streaming-text.js +4 -0
  295. package/components/streaming-text.js.map +1 -0
  296. package/components/switch.d.ts +15 -0
  297. package/components/switch.js +4 -0
  298. package/components/switch.js.map +1 -0
  299. package/components/table.d.ts +57 -0
  300. package/components/table.js +5 -0
  301. package/components/table.js.map +1 -0
  302. package/components/tabs.d.ts +45 -0
  303. package/components/tabs.js +5 -0
  304. package/components/tabs.js.map +1 -0
  305. package/components/textarea.d.ts +30 -0
  306. package/components/textarea.js +5 -0
  307. package/components/textarea.js.map +1 -0
  308. package/components/thinking.d.ts +64 -0
  309. package/components/thinking.js +5 -0
  310. package/components/thinking.js.map +1 -0
  311. package/components/toast.d.ts +71 -0
  312. package/components/toast.js +5 -0
  313. package/components/toast.js.map +1 -0
  314. package/components/toggle.d.ts +30 -0
  315. package/components/toggle.js +4 -0
  316. package/components/toggle.js.map +1 -0
  317. package/components/tooltip.d.ts +35 -0
  318. package/components/tooltip.js +5 -0
  319. package/components/tooltip.js.map +1 -0
  320. package/index.d.ts +64 -0
  321. package/index.js +230 -0
  322. package/index.js.map +1 -0
  323. package/lib/utils.d.ts +3 -0
  324. package/lib/utils.js +3 -0
  325. package/lib/utils.js.map +1 -0
  326. package/package.json +54 -4
  327. package/styles.css +2 -0
  328. package/theme/create-theme.d.ts +44 -0
  329. package/theme/index.d.ts +1 -0
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * MessageActions, 1:1 with uiKit `_chat/answerActions` (901:20164): the row under an assistant
4
+ * reply. Delivery status (16px icon in a 24px box) and time in text/muted medium 13, then like,
5
+ * dislike and copy as 24px tertiary icon buttons 2px apart, then Share (tertiary xs with a
6
+ * label). Groups sit 8px apart with 1 × 12 border/default dividers between them.
7
+ *
8
+ * Feedback: a clicked thumb stays pressed (border/input fill, icon text/subtle) until the other
9
+ * one is clicked or it is clicked again; `feedback` sets it, `onFeedback` reports it.
10
+ * The status and time show only when there is a `timestamp`.
11
+ */
12
+ export type MessageFeedback = 'like' | 'dislike' | null;
13
+ export interface MessageActionsProps extends React.ComponentProps<'div'> {
14
+ /** "20 minutes ago". Leave it out to drop the status and time. */
15
+ timestamp?: string;
16
+ status?: 'sending' | 'delivered';
17
+ /** The pressed thumb. Pass it with onFeedback to control it, or once to start from it. */
18
+ feedback?: MessageFeedback;
19
+ showShare?: boolean;
20
+ onFeedback?: (value: MessageFeedback) => void;
21
+ onCopy?: () => void;
22
+ onShare?: () => void;
23
+ }
24
+ export declare function MessageActions({ timestamp, status, feedback: feedbackProp, showShare, onFeedback, onCopy, onShare, className, ...props }: MessageActionsProps): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ 'use client';export { MessageActions } from '../chunk-AN2RNJLR.js';
2
+ import '../chunk-HNQUX43Z.js';
3
+ import '../chunk-H63FYCMY.js';
4
+ //# sourceMappingURL=message-actions.js.map
5
+ //# sourceMappingURL=message-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"message-actions.js"}
@@ -0,0 +1,40 @@
1
+ import * as React from 'react';
2
+ import { type MessageFeedback } from './message-actions';
3
+ import { type ThinkingStep } from './thinking';
4
+ /**
5
+ * Message, 1:1 with the uiKit Message docs view (3890:70165), composed from `_chat/userMessage`
6
+ * (901:20155), `_chat/source` and `_chat/answerActions` (901:20164, see MessageActions).
7
+ *
8
+ * user: a right-aligned action/inverse bubble (12px corners, 4px bottom-right), 12 × 8
9
+ * padding, text/on-inverse 13/19.5, wrapping at 256px of text. A source card sits 8px above
10
+ * it: bg/canvas, border/subtle, radius 10, 16px logo, title medium 13/18, url 12/12 muted.
11
+ *
12
+ * assistant: no bubble, so long answers read like a document — text/default 13/19.5, with
13
+ * the collapsed Thinking above and the actions below, 12px apart.
14
+ */
15
+ export interface MessageSource {
16
+ /** The page or message title, "Q3 pipeline review". */
17
+ title: React.ReactNode;
18
+ /** Shown under the title, "docs.sature.app/q3-review". */
19
+ url?: React.ReactNode;
20
+ /** A 16px logo or favicon. */
21
+ icon?: React.ReactNode;
22
+ /** Makes the card a link. */
23
+ href?: string;
24
+ }
25
+ export interface MessageProps extends React.ComponentProps<'div'> {
26
+ role?: 'user' | 'assistant';
27
+ /** The steps the agent ran; shows a collapsed Thinking above an assistant answer. */
28
+ thinking?: ThinkingStep[];
29
+ /** The summary on that Thinking header. */
30
+ thinkingLabel?: React.ReactNode;
31
+ /** A page or message the user brought in, shown as a card above their bubble. */
32
+ source?: MessageSource;
33
+ /** Feedback, copy and share under an assistant answer. Off while it streams. */
34
+ actions?: boolean;
35
+ timestamp?: string;
36
+ onFeedback?: (value: MessageFeedback) => void;
37
+ onCopy?: () => void;
38
+ onShare?: () => void;
39
+ }
40
+ export declare function Message({ role, thinking, thinkingLabel, source, actions, timestamp, onFeedback, onCopy, onShare, className, children, ...props }: MessageProps): React.JSX.Element;
@@ -0,0 +1,8 @@
1
+ 'use client';export { Message } from '../chunk-PVOLDO4G.js';
2
+ import '../chunk-ESC5JCVQ.js';
3
+ import '../chunk-AN2RNJLR.js';
4
+ import '../chunk-KNUWZNFV.js';
5
+ import '../chunk-HNQUX43Z.js';
6
+ import '../chunk-H63FYCMY.js';
7
+ //# sourceMappingURL=message.js.map
8
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"message.js"}
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * NumberInput, 1:1 with the uiKit design (🆕 input otp & number): Input's field skin and sizes
4
+ * (sm 28, md 32, lg 36) with − and + at its ends and the value centred, tabular. The buttons are
5
+ * 24px squares (radius-md, hover bg/hover, text/muted → text/default); at `min` or `max` the one
6
+ * that would cross it fades to 40% and stops.
7
+ *
8
+ * It's a spinbutton: ArrowUp / ArrowDown step, PageUp / PageDown step ten times, Home / End jump
9
+ * to `min` / `max`. Typing is free while focused; Enter or leaving the field clamps it, snaps it to
10
+ * `step` and commits; Escape puts the last value back.
11
+ */
12
+ export interface NumberInputProps {
13
+ value?: number;
14
+ defaultValue?: number;
15
+ onValueChange?: (value: number) => void;
16
+ min?: number;
17
+ max?: number;
18
+ step?: number;
19
+ size?: 'sm' | 'md' | 'lg';
20
+ /** How the value reads in the field and to screen readers. */
21
+ formatValue?: (value: number) => string;
22
+ label?: React.ReactNode;
23
+ hint?: React.ReactNode;
24
+ error?: React.ReactNode | boolean;
25
+ disabled?: boolean;
26
+ id?: string;
27
+ name?: string;
28
+ 'aria-label'?: string;
29
+ /** Classes for the outer wrapper (label + field + hint). `className` styles the field. */
30
+ wrapperClassName?: string;
31
+ className?: string;
32
+ }
33
+ export declare function NumberInput({ value: valueProp, defaultValue, onValueChange, min, max, step, size, formatValue, label, hint, error, disabled, id, name, wrapperClassName, className, ...props }: NumberInputProps): React.JSX.Element;
@@ -0,0 +1,8 @@
1
+ 'use client';export { NumberInput } from '../chunk-LW3TRU5W.js';
2
+ import '../chunk-72OCFAPT.js';
3
+ import '../chunk-UBNHSZSE.js';
4
+ import '../chunk-3DINAQLL.js';
5
+ import '../chunk-BKZBWPUH.js';
6
+ import '../chunk-H63FYCMY.js';
7
+ //# sourceMappingURL=number-input.js.map
8
+ //# sourceMappingURL=number-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"number-input.js"}
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Pagination, 1:1 with the uiKit `Pagination` set (4025:3807), two layouts:
4
+ * - full: Previous and Next (tertiary md buttons with their arrows) around the page numbers,
5
+ * 4px apart: the first and last page, the current one with `siblings` on each side, and an
6
+ * ellipsis where pages are skipped. Pages are 28px squares, radius 10, 13px text/muted;
7
+ * hover bg/hover and text/default; the current page bg/selected, text/default, medium.
8
+ * - compact: icon-only Previous and Next around "Page 5 of 12" (13px, text/muted), 8px apart.
9
+ *
10
+ * Moving between pages (`motion`), the pages keep their places and only their numbers change:
11
+ * - scroll (default): the pages are a strip. Each page slides from where it was to its new place,
12
+ * a page coming into view slides out from under the ellipsis on the side the reader pages
13
+ * towards, one leaving slides under the other and fades, and the pill under the current
14
+ * page moves on the same 300 ms curve (sliding-indicator.tsx, shared with Tabs and the
15
+ * Segmented control). Nothing is clipped and no number changes in place.
16
+ * - slide: the current page's bg/selected pill slides under the numbers to the new
17
+ * page, like the Segmented control's, 200 ms on ease-out; a number that changes in place
18
+ * fades out before the new one fades in.
19
+ * - none: no motion; the current page simply takes the pill.
20
+ *
21
+ * Previous and Next are disabled at the ends. With `getHref`, every page is a link (for pages
22
+ * the server renders); without it they are buttons that call `onPageChange`.
23
+ *
24
+ * A `nav` named "Pagination"; the current page has aria-current="page".
25
+ */
26
+ export interface PaginationProps extends Omit<React.ComponentProps<'nav'>, 'children'> {
27
+ /** How many pages there are. */
28
+ pageCount: number;
29
+ /** The current page, from 1. */
30
+ page?: number;
31
+ defaultPage?: number;
32
+ onPageChange?: (page: number) => void;
33
+ /** Each page's URL: pages become links. */
34
+ getHref?: (page: number) => string;
35
+ layout?: 'full' | 'compact';
36
+ /** Pages shown on each side of the current one (full layout). */
37
+ siblings?: number;
38
+ previousLabel?: string;
39
+ nextLabel?: string;
40
+ /** How the row moves when the page changes. */
41
+ motion?: 'slide' | 'scroll' | 'none';
42
+ }
43
+ /** The pages to show, with 'gap' where an ellipsis stands for skipped ones. Always 2 × siblings + 5 slots when there are enough pages, so the bar keeps its width. */
44
+ export declare function paginationRange(page: number, pageCount: number, siblings?: number): (number | 'gap')[];
45
+ export declare function Pagination({ pageCount, page: pageProp, defaultPage, onPageChange, getHref, layout, siblings, previousLabel, nextLabel, motion, className, 'aria-label': ariaLabel, ...props }: PaginationProps): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ 'use client';export { Pagination, paginationRange } from '../chunk-QS4N4MNP.js';
2
+ import '../chunk-J3NSDRVH.js';
3
+ import '../chunk-HNQUX43Z.js';
4
+ import '../chunk-H63FYCMY.js';
5
+ //# sourceMappingURL=pagination.js.map
6
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"pagination.js"}
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import { Popover as PopoverPrimitive } from 'radix-ui';
3
+ /**
4
+ * Popover, 1:1 with the uiKit `Popover` component (613:18781): a 320px popover surface,
5
+ * radius-xl, border/default, the shadcn `lg` shadow, 10px padding all round. A 13px medium
6
+ * title (18px line) over a 13px muted description, 2px apart; a 16px close glyph in text/subtle
7
+ * 10px from the top-right corner; an optional body slot 16px below the header. It opens 8px below its trigger, aligned to the trigger's start.
8
+ *
9
+ * Built on the Radix Popover. `children` is the trigger (rendered with `asChild`, so pass a
10
+ * Button); `body` fills the body slot. Pass `container` to portal it into the docs stage.
11
+ */
12
+ export interface PopoverProps {
13
+ title: React.ReactNode;
14
+ description?: React.ReactNode;
15
+ /** The trigger. Rendered with `asChild`. */
16
+ children?: React.ReactNode;
17
+ /** Figma's body slot: actions or a small form. Keep it to one task. */
18
+ body?: React.ReactNode;
19
+ open?: boolean;
20
+ defaultOpen?: boolean;
21
+ onOpenChange?: (open: boolean) => void;
22
+ side?: 'top' | 'right' | 'bottom' | 'left';
23
+ align?: 'start' | 'center' | 'end';
24
+ sideOffset?: number;
25
+ /** Show the close glyph in the corner. */
26
+ closeButton?: boolean;
27
+ /** Portal target. Defaults to `document.body`. */
28
+ container?: HTMLElement | null;
29
+ /** Called when focus moves into the popover on open; `preventDefault()` keeps it where it was. */
30
+ onOpenAutoFocus?: (event: Event) => void;
31
+ /** A press or focus outside the popover; `preventDefault()` keeps it open. */
32
+ onInteractOutside?: (event: Event) => void;
33
+ className?: string;
34
+ }
35
+ export declare function Popover({ title, description, children, body, open, defaultOpen, onOpenChange, side, align, sideOffset, closeButton, container, onOpenAutoFocus, onInteractOutside, className, }: PopoverProps): React.JSX.Element;
36
+ /**
37
+ * The popover's panel on its own, in place: no trigger, no positioning. For docs, previews
38
+ * and layers you anchor yourself. The close button calls `onClose`.
39
+ */
40
+ export declare function PopoverPanel({ title, description, body, closeButton, onClose, className, }: Pick<PopoverProps, 'title' | 'description' | 'body' | 'closeButton' | 'className'> & {
41
+ onClose?: () => void;
42
+ }): React.JSX.Element;
43
+ /** Wrap a body button in this to make it close the popover: `<PopoverClose asChild><Button…/></PopoverClose>`. */
44
+ export declare const PopoverClose: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,4 @@
1
+ 'use client';export { Popover, PopoverClose, PopoverPanel } from '../chunk-BNZVTLHV.js';
2
+ import '../chunk-H63FYCMY.js';
3
+ //# sourceMappingURL=popover.js.map
4
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"popover.js"}
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Progress, 1:1 with the uiKit `Progress` set (4025:3851): a bg/muted track, 4px (sm) or 8px
4
+ * (md), fully rounded, with the done part in action/primary/bg. Above it, optionally, a label
5
+ * row 8px up: the label (13px medium, text/default) on the left and the percentage (13px,
6
+ * text/muted) on the right.
7
+ *
8
+ * Leave `value` out while the amount is unknown: a third of the track then slides across.
9
+ * The bar moves to a new value over 300 ms on ease-out.
10
+ *
11
+ * A `progressbar` with aria-valuenow (and the label as its name) when there is a value.
12
+ */
13
+ export interface ProgressProps extends Omit<React.ComponentProps<'div'>, 'children'> {
14
+ /** 0 to `max`; left out, the bar is indeterminate. */
15
+ value?: number | null;
16
+ max?: number;
17
+ label?: React.ReactNode;
18
+ /** The percentage at the right of the label row. */
19
+ showValue?: boolean;
20
+ size?: 'sm' | 'md';
21
+ /** How the value reads on the right and to screen readers. Defaults to a whole percentage. */
22
+ formatValue?: (value: number, max: number) => string;
23
+ }
24
+ export declare function Progress({ value, max, label, showValue, size, formatValue, className, 'aria-label': ariaLabel, ...props }: ProgressProps): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ 'use client';export { Progress } from '../chunk-7TXHCRAG.js';
2
+ import '../chunk-H63FYCMY.js';
3
+ //# sourceMappingURL=progress.js.map
4
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"progress.js"}
@@ -0,0 +1,63 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * PromptBar, 1:1 with the uiKit `PromptBar` set (3158:21803), its input row
4
+ * `_prompterInteractions` (3157:23767), `_dictationButton` (3156:40589), the `Attachment` chips
5
+ * (3141:20409) and the two menus `_dropdowns/addToConversation` (3157:23548) and
6
+ * `dropdowns/models`.
7
+ *
8
+ * The bar: bg/field, 1px border/default, shadow/xs, 8px padding, rows 8px apart. shape
9
+ * default = radius 12 with Default buttons; pill = radius-full on one line, radius 20 once
10
+ * attachments or a second line of text add height, with Rounded buttons. The input row is
11
+ * add (+), the field (14/21, placeholder text/subtle), then 4px apart the model select, dictation
12
+ * and send — all 28px DS buttons. Once the text needs a second line the bar expands: the field
13
+ * takes its own row, with + and the model below on the left and dictation and send on the right. state inactive: border/default and send disabled; active (the
14
+ * field focused, or text to send): border/strong and send enabled.
15
+ *
16
+ * Menus open 8px above: + opens addToConversation across the full width of the bar, the model
17
+ * select opens the models list (241px, right-aligned); the trigger shows its pressed fill.
18
+ * Dictation toggles to the primary button with a three-bar wave that moves while it records.
19
+ * Enter sends, Shift+Enter adds a line.
20
+ */
21
+ export interface PromptBarModel {
22
+ value: string;
23
+ label: string;
24
+ /** 20px in the menu, 16px on the select. */
25
+ icon?: React.ReactNode;
26
+ }
27
+ export interface PromptBarAction {
28
+ id: string;
29
+ label: string;
30
+ description?: string;
31
+ /** 16px icon. */
32
+ icon?: React.ReactNode;
33
+ /** Without it, the `upload` action opens the file picker and adds the files as attachments. */
34
+ onSelect?: () => void;
35
+ }
36
+ export interface PromptBarProps extends Omit<React.ComponentProps<'form'>, 'onSubmit'> {
37
+ shape?: 'pill' | 'default';
38
+ /** The text. Pass it with onValueChange to control it. */
39
+ value?: string;
40
+ defaultValue?: string;
41
+ onValueChange?: (value: string) => void;
42
+ placeholder?: string;
43
+ /** Files shown as chips above the field; people can remove them before sending. */
44
+ attachments?: File[];
45
+ onAttachmentsChange?: (files: File[]) => void;
46
+ /** The selected model's value (or its label, when there is no `models` list). */
47
+ model?: string;
48
+ /** The models menu. Without it the select shows `model` and opens nothing. */
49
+ models?: PromptBarModel[];
50
+ onModelChange?: (value: string) => void;
51
+ /** Icon on the select when `models` doesn't give one. */
52
+ modelIcon?: React.ReactNode;
53
+ /** Rows of the + menu. Defaults to Upload a file and Web search. */
54
+ actions?: PromptBarAction[];
55
+ /** The + at the end of the menu's search row. */
56
+ onAddAgent?: () => void;
57
+ onDictationChange?: (recording: boolean) => void;
58
+ disabled?: boolean;
59
+ onSubmit?: (value: string, attachments: File[]) => void;
60
+ }
61
+ /** Upload a file and Web search: spread them into `actions` to add your own rows after them. */
62
+ export declare const defaultActions: PromptBarAction[];
63
+ export declare function PromptBar({ shape, value: valueProp, defaultValue, onValueChange, placeholder, attachments: attachmentsProp, onAttachmentsChange, model: modelProp, models, onModelChange, modelIcon, actions, onAddAgent, onDictationChange, disabled, onSubmit, className, ...props }: PromptBarProps): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ 'use client';export { PromptBar, defaultActions } from '../chunk-6YXUBP27.js';
2
+ import '../chunk-BKZBWPUH.js';
3
+ import '../chunk-HNQUX43Z.js';
4
+ import '../chunk-H63FYCMY.js';
5
+ //# sourceMappingURL=prompt-bar.js.map
6
+ //# sourceMappingURL=prompt-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"prompt-bar.js"}
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';
3
+ /**
4
+ * Radio, 1:1 with the uiKit `_radioBase` (852:22410) and `Radio` (852:22426) sets: a 16px
5
+ * circle, checked as a solid primary fill with a 6px dot, with an optional label (14/20 medium,
6
+ * text/default) and description (14/20 regular, muted) 2px apart, 8px from the circle, on either
7
+ * side. Disabled turns both texts text/subtle. The look of every state is
8
+ * styles/components/radio.css.
9
+ *
10
+ * A Radio lives in a RadioGroup (Radix): the group owns the value, so `checked` (Figma's
11
+ * property) follows from the group's `value` / `defaultValue`, and arrow keys move between
12
+ * options. With a label or description the whole field is a `<label>`, so a click anywhere on
13
+ * it (circle, label, description) picks the option, and hovering it hovers the circle; the label
14
+ * names the circle, the description is wired with `aria-describedby`.
15
+ */
16
+ export interface RadioGroupProps extends React.ComponentProps<typeof RadioGroupPrimitive.Root> {
17
+ }
18
+ export declare function RadioGroup({ className, ...props }: RadioGroupProps): React.JSX.Element;
19
+ export interface RadioProps extends React.ComponentProps<typeof RadioGroupPrimitive.Item> {
20
+ label?: React.ReactNode;
21
+ description?: React.ReactNode;
22
+ /** Which side of the text the circle sits on. */
23
+ placement?: 'left' | 'right';
24
+ /** Show a state without interacting, for state sheets. */
25
+ 'data-force'?: 'hover' | 'focus' | 'pressed';
26
+ }
27
+ export declare function Radio({ className, label, description, placement, id, disabled, ...props }: RadioProps): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ 'use client';export { Radio, RadioGroup } from '../chunk-LLHTVIM3.js';
2
+ import '../chunk-H63FYCMY.js';
3
+ //# sourceMappingURL=radio.js.map
4
+ //# sourceMappingURL=radio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"radio.js"}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * SearchBar, 1:1 with the uiKit `searchBar` (3233:18871): a 32px field for the sidebar that
4
+ * fills its container. A 16px search icon in text/muted, 13px text (placeholder text/subtle),
5
+ * 8px padding and gaps, radius-lg, border/default on bg/card with the xs shadow; hover takes
6
+ * border/strong, focus border/focus with the 2px focus ring. The ⌘K keys (Kbd sm) can be hidden
7
+ * with `shortcut={false}`.
8
+ *
9
+ * With `shortcut`, ⌘K or Ctrl+K anywhere on the page focuses it; Escape clears it.
10
+ */
11
+ export interface SearchBarProps extends Omit<React.ComponentProps<'input'>, 'size'> {
12
+ /** Show the ⌘K keycaps and listen for the shortcut. */
13
+ shortcut?: boolean;
14
+ /** Listen for ⌘K / Ctrl+K. Defaults to `shortcut`; turn it off when something else owns the
15
+ * shortcut (a Command menu this bar opens) but the keycaps should still show. */
16
+ hotkey?: boolean;
17
+ /** Classes for the outer field; `className` styles the input. */
18
+ wrapperClassName?: string;
19
+ }
20
+ export declare const SearchBar: React.ForwardRefExoticComponent<Omit<SearchBarProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,5 @@
1
+ 'use client';export { SearchBar } from '../chunk-UGRSWP6U.js';
2
+ import '../chunk-BKZBWPUH.js';
3
+ import '../chunk-H63FYCMY.js';
4
+ //# sourceMappingURL=search-bar.js.map
5
+ //# sourceMappingURL=search-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"search-bar.js"}
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * SegmentedControl, from the uiKit `segmented control` page: 2–5 segments that switch
4
+ * views or filters in place. One segment is always selected; the selected pill slides under
5
+ * the labels to the new segment, as in Tabs and Pagination (sliding-indicator.tsx: 300 ms,
6
+ * the leading edge first): a white card with Shadow/sm in Light. Arrow keys move between segments.
7
+ * Values 1:1 with the uiKit `_segmentedControl/item` (3080:20278) and `SegmentedControl` (3080:21247) sets.
8
+ */
9
+ type Size = 'xs' | 'md' | 'lg';
10
+ type Shape = 'default' | 'rounded';
11
+ export interface SegmentedControlItem {
12
+ value: string;
13
+ label: React.ReactNode;
14
+ icon?: React.ReactNode;
15
+ disabled?: boolean;
16
+ }
17
+ export interface SegmentedControlProps {
18
+ items: SegmentedControlItem[];
19
+ value?: string;
20
+ defaultValue?: string;
21
+ onValueChange?: (value: string) => void;
22
+ size?: Size;
23
+ shape?: Shape;
24
+ /** A 1px border-subtle outline around the track. */
25
+ border?: boolean;
26
+ fullWidth?: boolean;
27
+ /** Required when the segments have no visible text of their own. */
28
+ 'aria-label'?: string;
29
+ className?: string;
30
+ }
31
+ export declare function SegmentedControl({ items, value: valueProp, defaultValue, onValueChange, size, shape, border, fullWidth, className, ...aria }: SegmentedControlProps): React.JSX.Element;
32
+ export {};
@@ -0,0 +1,5 @@
1
+ 'use client';export { SegmentedControl } from '../chunk-WTMZT3IT.js';
2
+ import '../chunk-J3NSDRVH.js';
3
+ import '../chunk-H63FYCMY.js';
4
+ //# sourceMappingURL=segmented-control.js.map
5
+ //# sourceMappingURL=segmented-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"segmented-control.js"}
@@ -0,0 +1,97 @@
1
+ import * as React from 'react';
2
+ import { type MenuItemContentProps } from './dropdown';
3
+ /**
4
+ * Select, 1:1 with the uiKit `Select` set (4022:3531): the field around it is Input's (a 13px
5
+ * medium label 8px above, a 13px hint or error under it), the trigger is Input's skin with the
6
+ * value and a 16px chevron (sm 28, md 32, lg 36; 12px in, 8px gaps), an optional 16px leading
7
+ * icon (by default the picked option's own icon, when the options have icons). Placeholder is text/muted, a value text/default. While the list is open the trigger
8
+ * keeps the focus border and ring.
9
+ *
10
+ * The list is the Dropdown menu: the same surface, rows, groups and options, so every option
11
+ * takes what a `DropdownMenuItem` takes (icon, description, stacked or inline layout, 20px
12
+ * icons, a shortcut) and the current one is marked with the check. It opens 4px under the
13
+ * trigger, at least as wide.
14
+ *
15
+ * Built on the Radix Select: arrow keys, typeahead, Home/End, Escape, a native form value
16
+ * (`name`), and focus back on the trigger. Inside a FormField, leave out `label`, `hint` and
17
+ * `error`.
18
+ */
19
+ export interface SelectOption extends Omit<MenuItemContentProps, 'label' | 'selected' | 'renderLabel' | 'layout' | 'iconSize'> {
20
+ value: string;
21
+ label: string;
22
+ disabled?: boolean;
23
+ }
24
+ export interface SelectGroup {
25
+ label?: React.ReactNode;
26
+ options: SelectOption[];
27
+ }
28
+ export interface SelectProps {
29
+ /** Options, or titled groups of options. */
30
+ options: SelectOption[] | SelectGroup[];
31
+ value?: string;
32
+ defaultValue?: string;
33
+ onValueChange?: (value: string) => void;
34
+ placeholder?: string;
35
+ label?: React.ReactNode;
36
+ hint?: React.ReactNode;
37
+ /** An error message (replaces the hint), or `true` to mark the field invalid without one. */
38
+ error?: React.ReactNode | boolean;
39
+ size?: 'sm' | 'md' | 'lg';
40
+ /** A 16px icon before the value. Left out, the picked option's own icon shows there. */
41
+ leadingIcon?: React.ReactNode;
42
+ /** Row layout of every option: description under the label, or after it. */
43
+ layout?: MenuItemContentProps['layout'];
44
+ /** Option icon size; 20 suits stacked two-line options. */
45
+ iconSize?: MenuItemContentProps['iconSize'];
46
+ disabled?: boolean;
47
+ required?: boolean;
48
+ /** Form field name, for a native form submit. */
49
+ name?: string;
50
+ id?: string;
51
+ open?: boolean;
52
+ defaultOpen?: boolean;
53
+ onOpenChange?: (open: boolean) => void;
54
+ /** Portal target. Defaults to `document.body`. */
55
+ container?: HTMLElement | null;
56
+ 'aria-label'?: string;
57
+ /** Classes for the outer wrapper (label + field + hint). `className` styles the trigger. */
58
+ wrapperClassName?: string;
59
+ className?: string;
60
+ /** Show a state without interacting, for state sheets. */
61
+ 'data-force'?: 'hover' | 'focus';
62
+ }
63
+ export declare const isOptionGroups: <T>(o: T[] | {
64
+ options: T[];
65
+ }[]) => o is {
66
+ options: T[];
67
+ }[];
68
+ /** Ids and state for a field with a label, a hint or an error, inside or outside a FormField. */
69
+ export declare function useFieldChrome({ id, disabled, error, hint, }: {
70
+ id?: string;
71
+ disabled?: boolean;
72
+ error?: React.ReactNode | boolean;
73
+ hint?: React.ReactNode;
74
+ }): {
75
+ controlId: string;
76
+ disabled: boolean;
77
+ invalid: boolean;
78
+ required: boolean | undefined;
79
+ describedBy: string | undefined;
80
+ message: React.ReactNode;
81
+ messageId: string | undefined;
82
+ isError: boolean;
83
+ };
84
+ /** Label 8px above the control, hint or error 8px under it: Input's field, for Select and Combobox. */
85
+ export declare function FieldChrome({ label, action, chrome, className, children, }: {
86
+ label?: React.ReactNode;
87
+ /** On the label's line, at the field's right edge: the smallest button, e.g. Clear. */
88
+ action?: React.ReactNode;
89
+ chrome: ReturnType<typeof useFieldChrome>;
90
+ className?: string;
91
+ children: React.ReactNode;
92
+ }): React.JSX.Element;
93
+ /** The trigger's chevron, 16px in the icon colour. */
94
+ export declare function SelectChevron({ className }: {
95
+ className?: string;
96
+ }): React.JSX.Element;
97
+ export declare function Select({ options, value, defaultValue, onValueChange, placeholder, label, hint, error, size, leadingIcon, layout, iconSize, disabled, required, name, id, open, defaultOpen, onOpenChange, container, wrapperClassName, className, 'data-force': force, ...props }: SelectProps): React.JSX.Element;
@@ -0,0 +1,7 @@
1
+ 'use client';export { FieldChrome, Select, SelectChevron, isOptionGroups, useFieldChrome } from '../chunk-72OCFAPT.js';
2
+ import '../chunk-UBNHSZSE.js';
3
+ import '../chunk-3DINAQLL.js';
4
+ import '../chunk-BKZBWPUH.js';
5
+ import '../chunk-H63FYCMY.js';
6
+ //# sourceMappingURL=select.js.map
7
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"select.js"}
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { Dialog as DialogPrimitive } from 'radix-ui';
3
+ /**
4
+ * Sheet, 1:1 with the uiKit `Sheet` set (4025:3504): a panel that slides in from an edge and sits
5
+ * flush with it, square and borderless on that side. bottom for phones (full width, radius-2xl
6
+ * on the top corners, a 24px handle band with a 36 × 4 border/strong grip); right or left for
7
+ * wider screens (400px, full height, radius-2xl on the inner corners, the Dialog's 36px close
8
+ * button 7px from the top-right corner). Both are bg/card with a
9
+ * border/subtle edge on the open side and the shadcn `lg` shadow, 16px in and 16px between a
10
+ * header (14px medium title over a 13px muted description, 2px apart), the content and a
11
+ * right-aligned footer of buttons 8px apart (on the bottom sheet they share the width).
12
+ *
13
+ * Built on the Radix Dialog: focus moves in on open and back to the trigger on close; Escape,
14
+ * the backdrop or the handle closes it. It slides in over 250 ms on ease-out and out over 200.
15
+ */
16
+ export interface SheetProps {
17
+ open?: boolean;
18
+ defaultOpen?: boolean;
19
+ onOpenChange?: (open: boolean) => void;
20
+ /** Optional element that opens the sheet (rendered with `asChild`, so pass a Button). */
21
+ trigger?: React.ReactNode;
22
+ side?: 'bottom' | 'right' | 'left';
23
+ title: React.ReactNode;
24
+ description?: React.ReactNode;
25
+ /** The buttons at the bottom. Wrap one in `SheetClose` to make it close the sheet. */
26
+ footer?: React.ReactNode;
27
+ children?: React.ReactNode;
28
+ /** Modal blocks the page and shows the overlay; turn it off for inline previews. */
29
+ modal?: boolean;
30
+ /** Portal target. Defaults to `document.body`. */
31
+ container?: HTMLElement | null;
32
+ onOpenAutoFocus?: (event: Event) => void;
33
+ className?: string;
34
+ }
35
+ export declare function Sheet({ open, defaultOpen, onOpenChange, trigger, side, title, description, footer, children, modal, container, onOpenAutoFocus, className, }: SheetProps): React.JSX.Element;
36
+ /** Wrap a footer button in this to make it close the sheet: `<SheetClose asChild><Button…/></SheetClose>`. */
37
+ export declare const SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,6 @@
1
+ 'use client';export { Sheet, SheetClose } from '../chunk-TKO44NDI.js';
2
+ import '../chunk-JPNWHWAQ.js';
3
+ import '../chunk-HNQUX43Z.js';
4
+ import '../chunk-H63FYCMY.js';
5
+ //# sourceMappingURL=sheet.js.map
6
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"sheet.js"}