@ada-cx/lovelace 1.0.0-setup.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 (451) hide show
  1. package/README.md +113 -0
  2. package/dist/components/AgentMessage/AgentMessage.css.d.ts +2 -0
  3. package/dist/components/AgentMessage/AgentMessage.css.js +7 -0
  4. package/dist/components/AgentMessage/AgentMessage.css.js.map +1 -0
  5. package/dist/components/AgentMessage/AgentMessage.d.ts +21 -0
  6. package/dist/components/AgentMessage/AgentMessage.js +24 -0
  7. package/dist/components/AgentMessage/AgentMessage.js.map +1 -0
  8. package/dist/components/AgentMessage/index.d.ts +2 -0
  9. package/dist/components/Avatar/Avatar.css.d.ts +48 -0
  10. package/dist/components/Avatar/Avatar.css.js +28 -0
  11. package/dist/components/Avatar/Avatar.css.js.map +1 -0
  12. package/dist/components/Avatar/Avatar.d.ts +35 -0
  13. package/dist/components/Avatar/Avatar.js +26 -0
  14. package/dist/components/Avatar/Avatar.js.map +1 -0
  15. package/dist/components/Avatar/AvatarPlaceholder.d.ts +14 -0
  16. package/dist/components/Avatar/AvatarPlaceholder.js +18 -0
  17. package/dist/components/Avatar/AvatarPlaceholder.js.map +1 -0
  18. package/dist/components/Avatar/index.d.ts +4 -0
  19. package/dist/components/BubbleOverlay/BubbleOverlay.css.d.ts +3 -0
  20. package/dist/components/BubbleOverlay/BubbleOverlay.css.js +8 -0
  21. package/dist/components/BubbleOverlay/BubbleOverlay.css.js.map +1 -0
  22. package/dist/components/BubbleOverlay/BubbleOverlay.d.ts +24 -0
  23. package/dist/components/BubbleOverlay/BubbleOverlay.js +28 -0
  24. package/dist/components/BubbleOverlay/BubbleOverlay.js.map +1 -0
  25. package/dist/components/BubbleOverlay/index.d.ts +1 -0
  26. package/dist/components/Button/Button.css.d.ts +48 -0
  27. package/dist/components/Button/Button.css.js +29 -0
  28. package/dist/components/Button/Button.css.js.map +1 -0
  29. package/dist/components/Button/Button.d.ts +14 -0
  30. package/dist/components/Button/Button.js +24 -0
  31. package/dist/components/Button/Button.js.map +1 -0
  32. package/dist/components/Button/index.d.ts +2 -0
  33. package/dist/components/Checkbox/Checkbox.css.d.ts +19 -0
  34. package/dist/components/Checkbox/Checkbox.css.js +7 -0
  35. package/dist/components/Checkbox/Checkbox.css.js.map +1 -0
  36. package/dist/components/Checkbox/Checkbox.d.ts +22 -0
  37. package/dist/components/Checkbox/Checkbox.js +42 -0
  38. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  39. package/dist/components/Checkbox/index.d.ts +1 -0
  40. package/dist/components/Chip/Chip.css.d.ts +19 -0
  41. package/dist/components/Chip/Chip.css.js +51 -0
  42. package/dist/components/Chip/Chip.css.js.map +1 -0
  43. package/dist/components/Chip/Chip.d.ts +23 -0
  44. package/dist/components/Chip/Chip.js +21 -0
  45. package/dist/components/Chip/Chip.js.map +1 -0
  46. package/dist/components/Chip/index.d.ts +2 -0
  47. package/dist/components/Dialog/Dialog.css.d.ts +15 -0
  48. package/dist/components/Dialog/Dialog.css.js +16 -0
  49. package/dist/components/Dialog/Dialog.css.js.map +1 -0
  50. package/dist/components/Dialog/Dialog.d.ts +15 -0
  51. package/dist/components/Dialog/Dialog.js +18 -0
  52. package/dist/components/Dialog/Dialog.js.map +1 -0
  53. package/dist/components/Dialog/DialogActions.d.ts +8 -0
  54. package/dist/components/Dialog/DialogActions.js +14 -0
  55. package/dist/components/Dialog/DialogActions.js.map +1 -0
  56. package/dist/components/Dialog/DialogBody.d.ts +7 -0
  57. package/dist/components/Dialog/DialogBody.js +14 -0
  58. package/dist/components/Dialog/DialogBody.js.map +1 -0
  59. package/dist/components/Dialog/DialogContent.d.ts +8 -0
  60. package/dist/components/Dialog/DialogContent.js +14 -0
  61. package/dist/components/Dialog/DialogContent.js.map +1 -0
  62. package/dist/components/Dialog/DialogIcon.d.ts +11 -0
  63. package/dist/components/Dialog/DialogIcon.js +18 -0
  64. package/dist/components/Dialog/DialogIcon.js.map +1 -0
  65. package/dist/components/Dialog/DialogRoot.d.ts +15 -0
  66. package/dist/components/Dialog/DialogRoot.js +14 -0
  67. package/dist/components/Dialog/DialogRoot.js.map +1 -0
  68. package/dist/components/Dialog/DialogTitle.d.ts +7 -0
  69. package/dist/components/Dialog/DialogTitle.js +16 -0
  70. package/dist/components/Dialog/DialogTitle.js.map +1 -0
  71. package/dist/components/Dialog/index.d.ts +6 -0
  72. package/dist/components/DialogOverlay/DialogOverlay.css.d.ts +3 -0
  73. package/dist/components/DialogOverlay/DialogOverlay.css.js +8 -0
  74. package/dist/components/DialogOverlay/DialogOverlay.css.js.map +1 -0
  75. package/dist/components/DialogOverlay/DialogOverlay.d.ts +30 -0
  76. package/dist/components/DialogOverlay/DialogOverlay.js +29 -0
  77. package/dist/components/DialogOverlay/DialogOverlay.js.map +1 -0
  78. package/dist/components/DialogOverlay/index.d.ts +1 -0
  79. package/dist/components/Divider/Divider.css.d.ts +27 -0
  80. package/dist/components/Divider/Divider.css.js +17 -0
  81. package/dist/components/Divider/Divider.css.js.map +1 -0
  82. package/dist/components/Divider/Divider.d.ts +27 -0
  83. package/dist/components/Divider/Divider.js +35 -0
  84. package/dist/components/Divider/Divider.js.map +1 -0
  85. package/dist/components/Divider/index.d.ts +1 -0
  86. package/dist/components/FullscreenOverlay/FullscreenOverlay.css.d.ts +3 -0
  87. package/dist/components/FullscreenOverlay/FullscreenOverlay.css.js +8 -0
  88. package/dist/components/FullscreenOverlay/FullscreenOverlay.css.js.map +1 -0
  89. package/dist/components/FullscreenOverlay/FullscreenOverlay.d.ts +22 -0
  90. package/dist/components/FullscreenOverlay/FullscreenOverlay.js +28 -0
  91. package/dist/components/FullscreenOverlay/FullscreenOverlay.js.map +1 -0
  92. package/dist/components/FullscreenOverlay/index.d.ts +1 -0
  93. package/dist/components/Header/Header.css.d.ts +2 -0
  94. package/dist/components/Header/Header.css.js +7 -0
  95. package/dist/components/Header/Header.css.js.map +1 -0
  96. package/dist/components/Header/Header.d.ts +6 -0
  97. package/dist/components/Header/Header.js +8 -0
  98. package/dist/components/Header/Header.js.map +1 -0
  99. package/dist/components/Header/HeaderRoot.d.ts +11 -0
  100. package/dist/components/Header/HeaderRoot.js +16 -0
  101. package/dist/components/Header/HeaderRoot.js.map +1 -0
  102. package/dist/components/Header/HeaderTitle.d.ts +10 -0
  103. package/dist/components/Header/HeaderTitle.js +16 -0
  104. package/dist/components/Header/HeaderTitle.js.map +1 -0
  105. package/dist/components/Header/index.d.ts +2 -0
  106. package/dist/components/Icon/Icon.css.d.ts +1 -0
  107. package/dist/components/Icon/Icon.css.js +7 -0
  108. package/dist/components/Icon/Icon.css.js.map +1 -0
  109. package/dist/components/Icon/Icon.d.ts +7 -0
  110. package/dist/components/Icon/Icon.js +22 -0
  111. package/dist/components/Icon/Icon.js.map +1 -0
  112. package/dist/components/Icon/icons/AdaLogo.css.d.ts +1 -0
  113. package/dist/components/Icon/icons/AdaLogo.css.js +7 -0
  114. package/dist/components/Icon/icons/AdaLogo.css.js.map +1 -0
  115. package/dist/components/Icon/icons/AdaLogo.d.ts +6 -0
  116. package/dist/components/Icon/icons/AdaLogo.js +27 -0
  117. package/dist/components/Icon/icons/AdaLogo.js.map +1 -0
  118. package/dist/components/Icon/icons/ArrowDown.d.ts +2 -0
  119. package/dist/components/Icon/icons/ArrowDown.js +17 -0
  120. package/dist/components/Icon/icons/ArrowDown.js.map +1 -0
  121. package/dist/components/Icon/icons/ArrowLeft.d.ts +8 -0
  122. package/dist/components/Icon/icons/ArrowLeft.js +18 -0
  123. package/dist/components/Icon/icons/ArrowLeft.js.map +1 -0
  124. package/dist/components/Icon/icons/ArrowNortheast.d.ts +2 -0
  125. package/dist/components/Icon/icons/ArrowNortheast.js +14 -0
  126. package/dist/components/Icon/icons/ArrowNortheast.js.map +1 -0
  127. package/dist/components/Icon/icons/ArrowNorthwest.d.ts +2 -0
  128. package/dist/components/Icon/icons/ArrowNorthwest.js +14 -0
  129. package/dist/components/Icon/icons/ArrowNorthwest.js.map +1 -0
  130. package/dist/components/Icon/icons/ArrowRight.d.ts +8 -0
  131. package/dist/components/Icon/icons/ArrowRight.js +18 -0
  132. package/dist/components/Icon/icons/ArrowRight.js.map +1 -0
  133. package/dist/components/Icon/icons/Bell.d.ts +2 -0
  134. package/dist/components/Icon/icons/Bell.js +14 -0
  135. package/dist/components/Icon/icons/Bell.js.map +1 -0
  136. package/dist/components/Icon/icons/BellSlash.d.ts +2 -0
  137. package/dist/components/Icon/icons/BellSlash.js +14 -0
  138. package/dist/components/Icon/icons/BellSlash.js.map +1 -0
  139. package/dist/components/Icon/icons/Checkmark.d.ts +2 -0
  140. package/dist/components/Icon/icons/Checkmark.js +14 -0
  141. package/dist/components/Icon/icons/Checkmark.js.map +1 -0
  142. package/dist/components/Icon/icons/ChevronLeft.d.ts +2 -0
  143. package/dist/components/Icon/icons/ChevronLeft.js +14 -0
  144. package/dist/components/Icon/icons/ChevronLeft.js.map +1 -0
  145. package/dist/components/Icon/icons/ChevronRight.d.ts +2 -0
  146. package/dist/components/Icon/icons/ChevronRight.js +14 -0
  147. package/dist/components/Icon/icons/ChevronRight.js.map +1 -0
  148. package/dist/components/Icon/icons/CloudUpload.d.ts +2 -0
  149. package/dist/components/Icon/icons/CloudUpload.js +14 -0
  150. package/dist/components/Icon/icons/CloudUpload.js.map +1 -0
  151. package/dist/components/Icon/icons/Download.d.ts +2 -0
  152. package/dist/components/Icon/icons/Download.js +14 -0
  153. package/dist/components/Icon/icons/Download.js.map +1 -0
  154. package/dist/components/Icon/icons/Ellipses.d.ts +2 -0
  155. package/dist/components/Icon/icons/Ellipses.js +14 -0
  156. package/dist/components/Icon/icons/Ellipses.js.map +1 -0
  157. package/dist/components/Icon/icons/Email.d.ts +2 -0
  158. package/dist/components/Icon/icons/Email.js +14 -0
  159. package/dist/components/Icon/icons/Email.js.map +1 -0
  160. package/dist/components/Icon/icons/ExclamationSync.d.ts +2 -0
  161. package/dist/components/Icon/icons/ExclamationSync.js +14 -0
  162. package/dist/components/Icon/icons/ExclamationSync.js.map +1 -0
  163. package/dist/components/Icon/icons/ExclamationTriangle.d.ts +2 -0
  164. package/dist/components/Icon/icons/ExclamationTriangle.js +18 -0
  165. package/dist/components/Icon/icons/ExclamationTriangle.js.map +1 -0
  166. package/dist/components/Icon/icons/Eye.d.ts +2 -0
  167. package/dist/components/Icon/icons/Eye.js +14 -0
  168. package/dist/components/Icon/icons/Eye.js.map +1 -0
  169. package/dist/components/Icon/icons/EyeSlash.d.ts +2 -0
  170. package/dist/components/Icon/icons/EyeSlash.js +14 -0
  171. package/dist/components/Icon/icons/EyeSlash.js.map +1 -0
  172. package/dist/components/Icon/icons/Glyph.d.ts +16 -0
  173. package/dist/components/Icon/icons/Glyph.js +24 -0
  174. package/dist/components/Icon/icons/Glyph.js.map +1 -0
  175. package/dist/components/Icon/icons/Language.d.ts +2 -0
  176. package/dist/components/Icon/icons/Language.js +14 -0
  177. package/dist/components/Icon/icons/Language.js.map +1 -0
  178. package/dist/components/Icon/icons/MediaSlash.d.ts +2 -0
  179. package/dist/components/Icon/icons/MediaSlash.js +14 -0
  180. package/dist/components/Icon/icons/MediaSlash.js.map +1 -0
  181. package/dist/components/Icon/icons/MessagingFill.d.ts +2 -0
  182. package/dist/components/Icon/icons/MessagingFill.js +18 -0
  183. package/dist/components/Icon/icons/MessagingFill.js.map +1 -0
  184. package/dist/components/Icon/icons/Minimize.d.ts +2 -0
  185. package/dist/components/Icon/icons/Minimize.js +14 -0
  186. package/dist/components/Icon/icons/Minimize.js.map +1 -0
  187. package/dist/components/Icon/icons/Mute.d.ts +2 -0
  188. package/dist/components/Icon/icons/Mute.js +14 -0
  189. package/dist/components/Icon/icons/Mute.js.map +1 -0
  190. package/dist/components/Icon/icons/Paperclip.d.ts +2 -0
  191. package/dist/components/Icon/icons/Paperclip.js +14 -0
  192. package/dist/components/Icon/icons/Paperclip.js.map +1 -0
  193. package/dist/components/Icon/icons/PersonFill.d.ts +2 -0
  194. package/dist/components/Icon/icons/PersonFill.js +14 -0
  195. package/dist/components/Icon/icons/PersonFill.js.map +1 -0
  196. package/dist/components/Icon/icons/PlayFill.d.ts +2 -0
  197. package/dist/components/Icon/icons/PlayFill.js +14 -0
  198. package/dist/components/Icon/icons/PlayFill.js.map +1 -0
  199. package/dist/components/Icon/icons/SendFill.d.ts +2 -0
  200. package/dist/components/Icon/icons/SendFill.js +14 -0
  201. package/dist/components/Icon/icons/SendFill.js.map +1 -0
  202. package/dist/components/Icon/icons/StarBadgeFill.d.ts +2 -0
  203. package/dist/components/Icon/icons/StarBadgeFill.js +18 -0
  204. package/dist/components/Icon/icons/StarBadgeFill.js.map +1 -0
  205. package/dist/components/Icon/icons/ThumbsDown.d.ts +2 -0
  206. package/dist/components/Icon/icons/ThumbsDown.js +14 -0
  207. package/dist/components/Icon/icons/ThumbsDown.js.map +1 -0
  208. package/dist/components/Icon/icons/ThumbsUp.d.ts +2 -0
  209. package/dist/components/Icon/icons/ThumbsUp.js +14 -0
  210. package/dist/components/Icon/icons/ThumbsUp.js.map +1 -0
  211. package/dist/components/Icon/icons/Volume.d.ts +2 -0
  212. package/dist/components/Icon/icons/Volume.js +14 -0
  213. package/dist/components/Icon/icons/Volume.js.map +1 -0
  214. package/dist/components/Icon/icons/Xmark.d.ts +2 -0
  215. package/dist/components/Icon/icons/Xmark.js +14 -0
  216. package/dist/components/Icon/icons/Xmark.js.map +1 -0
  217. package/dist/components/Icon/icons/XmarkCircle.d.ts +2 -0
  218. package/dist/components/Icon/icons/XmarkCircle.js +14 -0
  219. package/dist/components/Icon/icons/XmarkCircle.js.map +1 -0
  220. package/dist/components/Icon/icons/index.d.ts +34 -0
  221. package/dist/components/Icon/index.d.ts +3 -0
  222. package/dist/components/IconButton/IconButton.css.d.ts +54 -0
  223. package/dist/components/IconButton/IconButton.css.js +30 -0
  224. package/dist/components/IconButton/IconButton.css.js.map +1 -0
  225. package/dist/components/IconButton/IconButton.d.ts +18 -0
  226. package/dist/components/IconButton/IconButton.js +25 -0
  227. package/dist/components/IconButton/IconButton.js.map +1 -0
  228. package/dist/components/IconButton/index.d.ts +2 -0
  229. package/dist/components/Image/Image.css.d.ts +1 -0
  230. package/dist/components/Image/Image.css.js +7 -0
  231. package/dist/components/Image/Image.css.js.map +1 -0
  232. package/dist/components/Image/Image.d.ts +16 -0
  233. package/dist/components/Image/Image.js +44 -0
  234. package/dist/components/Image/Image.js.map +1 -0
  235. package/dist/components/Image/index.d.ts +2 -0
  236. package/dist/components/Input/Input.context.d.ts +12 -0
  237. package/dist/components/Input/Input.context.js +11 -0
  238. package/dist/components/Input/Input.context.js.map +1 -0
  239. package/dist/components/Input/Input.css.d.ts +11 -0
  240. package/dist/components/Input/Input.css.js +16 -0
  241. package/dist/components/Input/Input.css.js.map +1 -0
  242. package/dist/components/Input/Input.d.ts +22 -0
  243. package/dist/components/Input/Input.js +20 -0
  244. package/dist/components/Input/Input.js.map +1 -0
  245. package/dist/components/Input/InputButton.d.ts +12 -0
  246. package/dist/components/Input/InputButton.js +21 -0
  247. package/dist/components/Input/InputButton.js.map +1 -0
  248. package/dist/components/Input/InputControl.d.ts +8 -0
  249. package/dist/components/Input/InputControl.js +15 -0
  250. package/dist/components/Input/InputControl.js.map +1 -0
  251. package/dist/components/Input/InputField.d.ts +9 -0
  252. package/dist/components/Input/InputField.js +23 -0
  253. package/dist/components/Input/InputField.js.map +1 -0
  254. package/dist/components/Input/InputHelperText.d.ts +8 -0
  255. package/dist/components/Input/InputHelperText.js +20 -0
  256. package/dist/components/Input/InputHelperText.js.map +1 -0
  257. package/dist/components/Input/InputLabel.d.ts +8 -0
  258. package/dist/components/Input/InputLabel.js +16 -0
  259. package/dist/components/Input/InputLabel.js.map +1 -0
  260. package/dist/components/Input/InputRoot.d.ts +11 -0
  261. package/dist/components/Input/InputRoot.js +30 -0
  262. package/dist/components/Input/InputRoot.js.map +1 -0
  263. package/dist/components/Input/InputTextArea.d.ts +15 -0
  264. package/dist/components/Input/InputTextArea.js +39 -0
  265. package/dist/components/Input/InputTextArea.js.map +1 -0
  266. package/dist/components/Input/index.d.ts +2 -0
  267. package/dist/components/Link/Link.css.d.ts +8 -0
  268. package/dist/components/Link/Link.css.js +16 -0
  269. package/dist/components/Link/Link.css.js.map +1 -0
  270. package/dist/components/Link/Link.d.ts +12 -0
  271. package/dist/components/Link/Link.js +24 -0
  272. package/dist/components/Link/Link.js.map +1 -0
  273. package/dist/components/Link/index.d.ts +2 -0
  274. package/dist/components/MenuItem/Menu.d.ts +14 -0
  275. package/dist/components/MenuItem/Menu.js +15 -0
  276. package/dist/components/MenuItem/Menu.js.map +1 -0
  277. package/dist/components/MenuItem/MenuItem.css.d.ts +4 -0
  278. package/dist/components/MenuItem/MenuItem.css.js +7 -0
  279. package/dist/components/MenuItem/MenuItem.css.js.map +1 -0
  280. package/dist/components/MenuItem/MenuItem.d.ts +10 -0
  281. package/dist/components/MenuItem/MenuItem.js +12 -0
  282. package/dist/components/MenuItem/MenuItem.js.map +1 -0
  283. package/dist/components/MenuItem/MenuItemLeading.d.ts +11 -0
  284. package/dist/components/MenuItem/MenuItemLeading.js +17 -0
  285. package/dist/components/MenuItem/MenuItemLeading.js.map +1 -0
  286. package/dist/components/MenuItem/MenuItemRoot.d.ts +18 -0
  287. package/dist/components/MenuItem/MenuItemRoot.js +15 -0
  288. package/dist/components/MenuItem/MenuItemRoot.js.map +1 -0
  289. package/dist/components/MenuItem/MenuItemTrailing.d.ts +14 -0
  290. package/dist/components/MenuItem/MenuItemTrailing.js +17 -0
  291. package/dist/components/MenuItem/MenuItemTrailing.js.map +1 -0
  292. package/dist/components/MenuItem/index.d.ts +4 -0
  293. package/dist/components/Overlay/overlay.css.d.ts +2 -0
  294. package/dist/components/PictureMessage/PictureMessage.css.d.ts +27 -0
  295. package/dist/components/PictureMessage/PictureMessage.css.js +25 -0
  296. package/dist/components/PictureMessage/PictureMessage.css.js.map +1 -0
  297. package/dist/components/PictureMessage/PictureMessage.d.ts +37 -0
  298. package/dist/components/PictureMessage/PictureMessage.js +34 -0
  299. package/dist/components/PictureMessage/PictureMessage.js.map +1 -0
  300. package/dist/components/PictureMessage/index.d.ts +1 -0
  301. package/dist/components/PillButton/PillButton.css.d.ts +10 -0
  302. package/dist/components/PillButton/PillButton.css.js +16 -0
  303. package/dist/components/PillButton/PillButton.css.js.map +1 -0
  304. package/dist/components/PillButton/PillButton.d.ts +16 -0
  305. package/dist/components/PillButton/PillButton.js +18 -0
  306. package/dist/components/PillButton/PillButton.js.map +1 -0
  307. package/dist/components/PillButton/index.d.ts +2 -0
  308. package/dist/components/ProactiveMessage/ProactiveMessage.css.d.ts +1 -0
  309. package/dist/components/ProactiveMessage/ProactiveMessage.css.js +7 -0
  310. package/dist/components/ProactiveMessage/ProactiveMessage.css.js.map +1 -0
  311. package/dist/components/ProactiveMessage/ProactiveMessage.d.ts +19 -0
  312. package/dist/components/ProactiveMessage/ProactiveMessage.js +16 -0
  313. package/dist/components/ProactiveMessage/ProactiveMessage.js.map +1 -0
  314. package/dist/components/ProactiveMessage/index.d.ts +2 -0
  315. package/dist/components/Radio/Radio.css.d.ts +5 -0
  316. package/dist/components/Radio/Radio.css.js +7 -0
  317. package/dist/components/Radio/Radio.css.js.map +1 -0
  318. package/dist/components/Radio/Radio.d.ts +15 -0
  319. package/dist/components/Radio/Radio.js +23 -0
  320. package/dist/components/Radio/Radio.js.map +1 -0
  321. package/dist/components/Radio/RadioGroup.d.ts +15 -0
  322. package/dist/components/Radio/RadioGroup.js +16 -0
  323. package/dist/components/Radio/RadioGroup.js.map +1 -0
  324. package/dist/components/Radio/index.d.ts +4 -0
  325. package/dist/components/ScrollMarker/ScrollMarker.css.d.ts +24 -0
  326. package/dist/components/ScrollMarker/ScrollMarker.css.js +25 -0
  327. package/dist/components/ScrollMarker/ScrollMarker.css.js.map +1 -0
  328. package/dist/components/ScrollMarker/ScrollMarker.d.ts +26 -0
  329. package/dist/components/ScrollMarker/ScrollMarker.js +29 -0
  330. package/dist/components/ScrollMarker/ScrollMarker.js.map +1 -0
  331. package/dist/components/ScrollMarker/index.d.ts +1 -0
  332. package/dist/components/Sheet/Sheet.css.d.ts +8 -0
  333. package/dist/components/Sheet/Sheet.css.js +7 -0
  334. package/dist/components/Sheet/Sheet.css.js.map +1 -0
  335. package/dist/components/Sheet/Sheet.d.ts +14 -0
  336. package/dist/components/Sheet/Sheet.js +14 -0
  337. package/dist/components/Sheet/Sheet.js.map +1 -0
  338. package/dist/components/Sheet/SheetActions.d.ts +7 -0
  339. package/dist/components/Sheet/SheetActions.js +14 -0
  340. package/dist/components/Sheet/SheetActions.js.map +1 -0
  341. package/dist/components/Sheet/SheetBody.d.ts +11 -0
  342. package/dist/components/Sheet/SheetBody.js +20 -0
  343. package/dist/components/Sheet/SheetBody.js.map +1 -0
  344. package/dist/components/Sheet/SheetHeader.d.ts +17 -0
  345. package/dist/components/Sheet/SheetHeader.js +44 -0
  346. package/dist/components/Sheet/SheetHeader.js.map +1 -0
  347. package/dist/components/Sheet/SheetRoot.d.ts +9 -0
  348. package/dist/components/Sheet/SheetRoot.js +16 -0
  349. package/dist/components/Sheet/SheetRoot.js.map +1 -0
  350. package/dist/components/Sheet/index.d.ts +4 -0
  351. package/dist/components/SheetOverlay/SheetOverlay.css.d.ts +3 -0
  352. package/dist/components/SheetOverlay/SheetOverlay.css.js +8 -0
  353. package/dist/components/SheetOverlay/SheetOverlay.css.js.map +1 -0
  354. package/dist/components/SheetOverlay/SheetOverlay.d.ts +24 -0
  355. package/dist/components/SheetOverlay/SheetOverlay.js +28 -0
  356. package/dist/components/SheetOverlay/SheetOverlay.js.map +1 -0
  357. package/dist/components/SheetOverlay/index.d.ts +1 -0
  358. package/dist/components/Spinner/Spinner.css.d.ts +22 -0
  359. package/dist/components/Spinner/Spinner.css.js +25 -0
  360. package/dist/components/Spinner/Spinner.css.js.map +1 -0
  361. package/dist/components/Spinner/Spinner.d.ts +19 -0
  362. package/dist/components/Spinner/Spinner.js +24 -0
  363. package/dist/components/Spinner/Spinner.js.map +1 -0
  364. package/dist/components/Spinner/index.d.ts +2 -0
  365. package/dist/components/Survey/SurveyRating/SurveyRating.css.d.ts +3 -0
  366. package/dist/components/Survey/SurveyRating/SurveyRating.css.js +7 -0
  367. package/dist/components/Survey/SurveyRating/SurveyRating.css.js.map +1 -0
  368. package/dist/components/Survey/SurveyRating/SurveyRating.d.ts +39 -0
  369. package/dist/components/Survey/SurveyRating/SurveyRating.js +51 -0
  370. package/dist/components/Survey/SurveyRating/SurveyRating.js.map +1 -0
  371. package/dist/components/Survey/SurveyRating/index.d.ts +1 -0
  372. package/dist/components/Survey/SurveySelect/SurveySelect.css.d.ts +1 -0
  373. package/dist/components/Survey/SurveySelect/SurveySelect.css.js +7 -0
  374. package/dist/components/Survey/SurveySelect/SurveySelect.css.js.map +1 -0
  375. package/dist/components/Survey/SurveySelect/SurveySelect.d.ts +40 -0
  376. package/dist/components/Survey/SurveySelect/SurveySelect.js +38 -0
  377. package/dist/components/Survey/SurveySelect/SurveySelect.js.map +1 -0
  378. package/dist/components/Survey/SurveySelect/index.d.ts +1 -0
  379. package/dist/components/Survey/index.d.ts +2 -0
  380. package/dist/components/ThinkingShimmer/ThinkingShimmer.css.d.ts +6 -0
  381. package/dist/components/ThinkingShimmer/ThinkingShimmer.css.js +7 -0
  382. package/dist/components/ThinkingShimmer/ThinkingShimmer.css.js.map +1 -0
  383. package/dist/components/ThinkingShimmer/ThinkingShimmer.d.ts +36 -0
  384. package/dist/components/ThinkingShimmer/ThinkingShimmer.js +44 -0
  385. package/dist/components/ThinkingShimmer/ThinkingShimmer.js.map +1 -0
  386. package/dist/components/ThinkingShimmer/index.d.ts +2 -0
  387. package/dist/components/ToastNotification/ToastNotification.css.d.ts +30 -0
  388. package/dist/components/ToastNotification/ToastNotification.css.js +25 -0
  389. package/dist/components/ToastNotification/ToastNotification.css.js.map +1 -0
  390. package/dist/components/ToastNotification/ToastNotification.d.ts +36 -0
  391. package/dist/components/ToastNotification/ToastNotification.js +31 -0
  392. package/dist/components/ToastNotification/ToastNotification.js.map +1 -0
  393. package/dist/components/ToastNotification/index.d.ts +2 -0
  394. package/dist/components/Toggle/Toggle.css.d.ts +14 -0
  395. package/dist/components/Toggle/Toggle.css.js +7 -0
  396. package/dist/components/Toggle/Toggle.css.js.map +1 -0
  397. package/dist/components/Toggle/Toggle.d.ts +18 -0
  398. package/dist/components/Toggle/Toggle.js +19 -0
  399. package/dist/components/Toggle/Toggle.js.map +1 -0
  400. package/dist/components/Toggle/index.d.ts +2 -0
  401. package/dist/components/Tooltip/Tooltip.css.d.ts +3 -0
  402. package/dist/components/Tooltip/Tooltip.css.js +7 -0
  403. package/dist/components/Tooltip/Tooltip.css.js.map +1 -0
  404. package/dist/components/Tooltip/Tooltip.d.ts +19 -0
  405. package/dist/components/Tooltip/Tooltip.js +32 -0
  406. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  407. package/dist/components/Tooltip/index.d.ts +2 -0
  408. package/dist/components/TypingIndicator/TypingIndicator.css.d.ts +3 -0
  409. package/dist/components/TypingIndicator/TypingIndicator.css.js +7 -0
  410. package/dist/components/TypingIndicator/TypingIndicator.css.js.map +1 -0
  411. package/dist/components/TypingIndicator/TypingIndicator.d.ts +27 -0
  412. package/dist/components/TypingIndicator/TypingIndicator.js +34 -0
  413. package/dist/components/TypingIndicator/TypingIndicator.js.map +1 -0
  414. package/dist/components/TypingIndicator/index.d.ts +2 -0
  415. package/dist/components/UserMessage/UserMessage.css.d.ts +7 -0
  416. package/dist/components/UserMessage/UserMessage.css.js +7 -0
  417. package/dist/components/UserMessage/UserMessage.css.js.map +1 -0
  418. package/dist/components/UserMessage/UserMessage.d.ts +22 -0
  419. package/dist/components/UserMessage/UserMessage.js +45 -0
  420. package/dist/components/UserMessage/UserMessage.js.map +1 -0
  421. package/dist/components/UserMessage/index.d.ts +1 -0
  422. package/dist/hooks/index.d.ts +2 -0
  423. package/dist/hooks/usePrefersReducedMotion.d.ts +3 -0
  424. package/dist/hooks/usePrefersReducedMotion.js +20 -0
  425. package/dist/hooks/usePrefersReducedMotion.js.map +1 -0
  426. package/dist/hooks/useSubmitOnEnter.d.ts +7 -0
  427. package/dist/hooks/useSubmitOnEnter.js +11 -0
  428. package/dist/hooks/useSubmitOnEnter.js.map +1 -0
  429. package/dist/index.d.ts +34 -0
  430. package/dist/index.js +75 -0
  431. package/dist/runtime/LovelaceProvider.d.ts +24 -0
  432. package/dist/runtime/LovelaceProvider.js +45 -0
  433. package/dist/runtime/LovelaceProvider.js.map +1 -0
  434. package/dist/runtime/branding.d.ts +133 -0
  435. package/dist/runtime/branding.js +92 -0
  436. package/dist/runtime/branding.js.map +1 -0
  437. package/dist/runtime/index.d.ts +2 -0
  438. package/dist/style.css +2 -0
  439. package/dist/tokens/generated/tokens.d.ts +4 -0
  440. package/dist/tokens/index.d.ts +2 -0
  441. package/dist/tokens/index.js +2 -0
  442. package/dist/tokens/tokens.d.ts +8 -0
  443. package/dist/tokens/tokens.js +6 -0
  444. package/dist/tokens/tokens.js.map +1 -0
  445. package/dist/tokens.css +316 -0
  446. package/dist/utils/cx.d.ts +2 -0
  447. package/dist/utils/cx.js +6 -0
  448. package/dist/utils/cx.js.map +1 -0
  449. package/dist/vendor/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js +80 -0
  450. package/dist/vendor/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js.map +1 -0
  451. package/package.json +74 -0
@@ -0,0 +1,12 @@
1
+ export type InputVariant = "default" | "composer";
2
+ /** State the root Input shares with descendants that RAC's TextField does not
3
+ * propagate to on its own — the custom Input.Button (isDisabled), the
4
+ * description Text (isInvalid), and the field styling variant. Extend as more
5
+ * shared state is needed. */
6
+ export interface InputContextValue {
7
+ isDisabled: boolean;
8
+ isInvalid: boolean;
9
+ variant: InputVariant;
10
+ }
11
+ export declare const InputContext: import("react").Context<InputContextValue>;
12
+ export declare const useInputContext: () => InputContextValue;
@@ -0,0 +1,11 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ //#region src/components/Input/Input.context.ts
3
+ var n = e({
4
+ isDisabled: !1,
5
+ isInvalid: !1,
6
+ variant: "default"
7
+ }), r = () => t(n);
8
+ //#endregion
9
+ export { n as InputContext, r as useInputContext };
10
+
11
+ //# sourceMappingURL=Input.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.context.js","names":[],"sources":["../../../src/components/Input/Input.context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type InputVariant = \"default\" | \"composer\";\n\n/** State the root Input shares with descendants that RAC's TextField does not\n * propagate to on its own — the custom Input.Button (isDisabled), the\n * description Text (isInvalid), and the field styling variant. Extend as more\n * shared state is needed. */\nexport interface InputContextValue {\n\tisDisabled: boolean;\n\tisInvalid: boolean;\n\tvariant: InputVariant;\n}\n\nexport const InputContext = createContext<InputContextValue>({\n\tisDisabled: false,\n\tisInvalid: false,\n\tvariant: \"default\",\n});\n\nexport const useInputContext = () => useContext(InputContext);\n"],"mappings":";;AAcA,IAAa,IAAe,EAAiC;CAC5D,YAAY;CACZ,WAAW;CACX,SAAS;CACT,CAAC,EAEW,UAAwB,EAAW,EAAa"}
@@ -0,0 +1,11 @@
1
+ import type { ComplexStyleRule } from "@vanilla-extract/css";
2
+ import type { RuntimeFn } from "@vanilla-extract/recipes";
3
+ export declare const inputRoot: string;
4
+ export declare const inputField: RuntimeFn<{
5
+ variant: Record<"default" | "composer", ComplexStyleRule>;
6
+ }>;
7
+ export declare const inputControl: string;
8
+ export declare const inputTextArea: string;
9
+ export declare const inputButton: string;
10
+ export declare const inputLabel: string;
11
+ export declare const inputHelperText: string;
@@ -0,0 +1,16 @@
1
+ import { createRuntimeFn as e } from "../../vendor/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js";
2
+ /* empty css */
3
+ //#region src/components/Input/Input.css.ts
4
+ var t = "ynzg8v0", n = e({
5
+ defaultClassName: "ynzg8v3 ynzg8v1",
6
+ variantClassNames: { variant: {
7
+ default: "ynzg8v4",
8
+ composer: "ynzg8v5 ynzg8v2"
9
+ } },
10
+ defaultVariants: { variant: "default" },
11
+ compoundVariants: []
12
+ }), r = "ynzg8v6", i = "ynzg8v7 ynzg8v6", a = "ynzg8v8", o = "ynzg8v9", s = "ynzg8va";
13
+ //#endregion
14
+ export { a as inputButton, r as inputControl, n as inputField, s as inputHelperText, o as inputLabel, t as inputRoot, i as inputTextArea };
15
+
16
+ //# sourceMappingURL=Input.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.css.js","names":[],"sources":["../../../src/components/Input/Input.css.ts"],"sourcesContent":["import type { ComplexStyleRule } from \"@vanilla-extract/css\";\nimport { globalStyle, style } from \"@vanilla-extract/css\";\nimport type { RuntimeFn } from \"@vanilla-extract/recipes\";\nimport { recipe } from \"@vanilla-extract/recipes\";\nimport { t } from \"../../tokens/index.js\";\n\n// Shared by the text control and the label so their typography stays in lockstep.\nconst bodyText = {\n\tfontFamily: t(\"font-family-body\"),\n\tfontWeight: t(\"font-weight-regular\"),\n\tfontSize: t(\"font-size-body\"),\n\tlineHeight: t(\"line-height-body\"),\n} as const;\n\n// Field and action-button icon glyphs share sizing.\nconst iconSlotSizing = {\n\tflexShrink: 0,\n\tfontSize: t(\"icon-size-control\"),\n} as const;\n\nexport const inputRoot = style({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\twidth: \"100%\",\n\tfontFamily: t(\"font-family-body\"),\n});\n\n// Empty style used purely as a stable selector anchor for the globalStyle rules\n// below — a recipe class isn't a usable selector string, so descendant styles\n// hang off this base class instead.\nconst inputFieldBase = style({});\n\n// Composer-variant anchor: composed into the `composer` variant so the control's\n// content/placeholder colors (a descendant, not the field) can be re-themed to\n// the composer-* tokens via globalStyle.\nconst inputFieldComposer = style({});\n\n// Explicit annotation: the inferred recipe type exceeds tsc's declaration\n// serialization limit (TS7056) under `tsc -p tsconfig.build.json`.\nexport const inputField: RuntimeFn<{\n\tvariant: Record<\"default\" | \"composer\", ComplexStyleRule>;\n}> = recipe({\n\tbase: [\n\t\tinputFieldBase,\n\t\t{\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"flex-end\",\n\t\t\tgap: t(\"gap-8\"),\n\t\t\twidth: \"100%\",\n\t\t\tminHeight: \"40px\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tpaddingInline: t(\"padding-12\"),\n\t\t\tpaddingBlock: t(\"padding-8\"),\n\t\t\tborder: `${t(\"border-width-default\")} solid ${t(\"color-border-default\")}`,\n\t\t\tbackgroundColor: t(\"color-background-default\"),\n\t\t\tborderRadius: t(\"border-radius-input\"),\n\t\t\tcursor: \"text\",\n\t\t\tselectors: {\n\t\t\t\t\"&[data-focus-within]\": {\n\t\t\t\t\tborderColor: t(\"color-border-accent\"),\n\t\t\t\t\tboxShadow: `0 0 0 ${t(\"border-width-focus\")} ${t(\"color-border-focus\")}`,\n\t\t\t\t},\n\t\t\t\t// After focus-within so an invalid field keeps its destructive border while focused.\n\t\t\t\t\"&[data-invalid]\": {\n\t\t\t\t\tborderColor: t(\"color-border-destructive\"),\n\t\t\t\t},\n\t\t\t\t\"&[data-disabled]\": {\n\t\t\t\t\tbackgroundColor: t(\"color-background-disabled\"),\n\t\t\t\t\tcursor: \"not-allowed\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"@media\": {\n\t\t\t\t\"(prefers-reduced-motion: no-preference)\": {\n\t\t\t\t\ttransitionProperty: \"border-color, box-shadow\",\n\t\t\t\t\ttransitionDuration: t(\"duration-fast\"),\n\t\t\t\t\ttransitionTimingFunction: t(\"easing-standard\"),\n\t\t\t\t},\n\t\t\t\t// Token-color focus ring flattens in forced-colors; redraw with a system color.\n\t\t\t\t\"(forced-colors: active)\": {\n\t\t\t\t\tselectors: {\n\t\t\t\t\t\t\"&[data-focus-within]\": {\n\t\t\t\t\t\t\toutline: \"2px solid Highlight\",\n\t\t\t\t\t\t\toutlineOffset: \"2px\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\t// Default field styling lives in `base`; this key exists so the variant\n\t\t\t// axis accepts \"default\" as an explicit no-op.\n\t\t\tdefault: {},\n\t\t\tcomposer: [\n\t\t\t\tinputFieldComposer,\n\t\t\t\t{\n\t\t\t\t\tborderRadius: t(\"border-radius-composer\"),\n\t\t\t\t\tborder: `${t(\"border-width-default\")} solid ${t(\"composer-border-default\")}`,\n\t\t\t\t\tbackgroundColor: t(\"composer-background\"),\n\t\t\t\t\tselectors: {\n\t\t\t\t\t\t\"&[data-focus-within]\": {\n\t\t\t\t\t\t\tborderColor: t(\"composer-border-active\"),\n\t\t\t\t\t\t\tboxShadow: `0 0 0 ${t(\"border-width-focus\")} ${t(\"composer-border-focus\")}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t// Re-declared after focus-within for the same reason the base does:\n\t\t\t\t\t\t// variant styles are emitted after base at equal specificity, so\n\t\t\t\t\t\t// without this the composer's focus colour would win and an invalid\n\t\t\t\t\t\t// composer would lose its destructive border while focused.\n\t\t\t\t\t\t\"&[data-invalid]\": {\n\t\t\t\t\t\t\tborderColor: t(\"color-border-destructive\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t},\n});\n\nexport const inputControl = style({\n\tflex: 1,\n\tminWidth: 0,\n\tmargin: 0,\n\tpadding: 0,\n\tborder: \"none\",\n\tbackgroundColor: \"transparent\",\n\toutline: \"none\",\n\tappearance: \"none\",\n\t...bodyText,\n\tcolor: t(\"color-content-default\"),\n\tselectors: {\n\t\t\"&::placeholder\": {\n\t\t\tcolor: t(\"color-content-secondary\"),\n\t\t\topacity: 1,\n\t\t},\n\t\t\"&[data-disabled]\": {\n\t\t\tcolor: t(\"color-content-disabled\"),\n\t\t\tcursor: \"not-allowed\",\n\t\t},\n\t\t\"&[data-disabled]::placeholder\": {\n\t\t\tcolor: t(\"color-content-disabled\"),\n\t\t},\n\t},\n});\n\n// Same control base as the single-line inputControl (typography, colors,\n// placeholder/disabled states), plus the multi-line-specific box behavior.\nexport const inputTextArea = style([\n\tinputControl,\n\t{\n\t\tdisplay: \"block\",\n\t\twidth: \"100%\",\n\t\tboxSizing: \"border-box\",\n\t\t// Height is driven by the auto-grow logic in InputTextArea; the user never drags it.\n\t\tresize: \"none\",\n\t\toverflowY: \"auto\",\n\t\toverflowWrap: \"anywhere\",\n\t\twordBreak: \"break-word\",\n\t\tscrollbarWidth: \"thin\",\n\t\tscrollbarColor: `${t(\"color-border-default\")} transparent`,\n\t},\n]);\n\nexport const inputButton = style({\n\tposition: \"relative\",\n\tisolation: \"isolate\",\n\tdisplay: \"inline-flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"center\",\n\tflexShrink: 0,\n\t// Circular send/action button — 22px square per Figma (matches the field's icon size).\n\twidth: \"22px\",\n\theight: \"22px\",\n\tpadding: 0,\n\tborder: \"none\",\n\tborderRadius: t(\"border-radius-full\"),\n\tbackgroundColor: t(\"button-primary-background\"),\n\tcolor: t(\"button-primary-content\"),\n\tcursor: \"pointer\",\n\tappearance: \"none\",\n\toutline: \"none\",\n\toverflow: \"hidden\",\n\t\"::after\": {\n\t\tcontent: '\"\"',\n\t\tposition: \"absolute\",\n\t\tinset: 0,\n\t\tborderRadius: \"inherit\",\n\t\tbackgroundColor: \"currentColor\",\n\t\topacity: 0,\n\t\tpointerEvents: \"none\",\n\t\tzIndex: -1,\n\t},\n\tselectors: {\n\t\t\"&[data-hovered]:not([data-disabled])::after\": {\n\t\t\topacity: t(\"opacity-state-hover\"),\n\t\t},\n\t\t\"&[data-focus-visible]:not([data-disabled])::after\": {\n\t\t\topacity: t(\"opacity-state-focus\"),\n\t\t},\n\t\t\"&[data-pressed]:not([data-disabled])::after\": {\n\t\t\topacity: t(\"opacity-state-pressed\"),\n\t\t},\n\t\t\"&[data-focus-visible]:not([data-disabled])\": {\n\t\t\tboxShadow: `0 0 0 ${t(\"border-width-focus\")} ${t(\"color-border-focus\")}`,\n\t\t},\n\t\t\"&[data-disabled]\": {\n\t\t\tcursor: \"not-allowed\",\n\t\t\tbackgroundColor: t(\"color-background-disabled\"),\n\t\t\tcolor: t(\"color-content-disabled\"),\n\t\t},\n\t},\n\t\"@media\": {\n\t\t\"(prefers-reduced-motion: no-preference)\": {\n\t\t\tselectors: {\n\t\t\t\t\"&::after\": {\n\t\t\t\t\ttransition: `opacity ${t(\"duration-fast\")} ${t(\"easing-standard\")}`,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\t// Token-color focus ring flattens in forced-colors; redraw with a system color.\n\t\t\"(forced-colors: active)\": {\n\t\t\tselectors: {\n\t\t\t\t\"&[data-focus-visible]:not([data-disabled])\": {\n\t\t\t\t\toutline: \"2px solid Highlight\",\n\t\t\t\t\toutlineOffset: \"2px\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n});\n\nexport const inputLabel = style({\n\t...bodyText,\n\tmarginBottom: t(\"gap-8\"),\n\tcolor: t(\"color-content-default\"),\n});\n\nexport const inputHelperText = style({\n\tmarginTop: t(\"gap-4\"),\n\tfontFamily: t(\"font-family-body\"),\n\tfontWeight: t(\"font-weight-regular\"),\n\tfontSize: t(\"font-size-caption\"),\n\tlineHeight: t(\"line-height-caption\"),\n\tcolor: t(\"color-content-secondary\"),\n\tselectors: {\n\t\t\"&[data-invalid]\": {\n\t\t\tcolor: t(\"color-content-destructive\"),\n\t\t},\n\t},\n});\n\nglobalStyle(`${inputFieldBase} [data-slot='icon']`, iconSlotSizing);\nglobalStyle(`${inputButton} [data-slot='icon']`, iconSlotSizing);\n\n// Direct child only: field-level icons follow content color. The send button's\n// icon is a deeper descendant, so it deliberately has no rule of its own — it\n// inherits the button's paired tokens (button-primary-content over\n// button-primary-background, or the disabled pair). Giving the icon its own\n// background re-pairs an accent foreground with a neutral backdrop, and those\n// two are unrelated tokens: a customer tint near the surface color then renders\n// the arrow at ~1:1.\nglobalStyle(`${inputFieldBase} > [data-slot='icon']`, {\n\tcolor: t(\"color-content-secondary\"),\n});\n\nglobalStyle(`${inputFieldBase}[data-disabled] > [data-slot='icon']`, {\n\tcolor: t(\"color-content-disabled\"),\n});\n\n// Composer variant re-themes the field's content colors to the composer-* tokens.\n// The control (input/textarea) and field-level icons are descendants of the field,\n// so these ride the composer anchor rather than the field recipe.\nglobalStyle(`${inputFieldComposer} ${inputControl}`, {\n\tcolor: t(\"composer-content-default\"),\n});\n\nglobalStyle(`${inputFieldComposer} ${inputControl}::placeholder`, {\n\tcolor: t(\"composer-content-secondary\"),\n});\n\nglobalStyle(`${inputFieldComposer} > [data-slot='icon']`, {\n\tcolor: t(\"composer-content-secondary\"),\n});\n\n// The composer rules above are descendant selectors, so they tie with the field\n// recipe's [data-disabled] rules on specificity and win on order. Re-assert the\n// disabled colors after them or a disabled control renders as if it were editable.\nglobalStyle(`${inputFieldComposer} ${inputControl}[data-disabled]`, {\n\tcolor: t(\"color-content-disabled\"),\n});\n\nglobalStyle(\n\t`${inputFieldComposer} ${inputControl}[data-disabled]::placeholder`,\n\t{\n\t\tcolor: t(\"color-content-disabled\"),\n\t},\n);\n"],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import { InputButton } from "./InputButton.js";
2
+ import { InputControl } from "./InputControl.js";
3
+ import { InputField } from "./InputField.js";
4
+ import { InputHelperText } from "./InputHelperText.js";
5
+ import { InputLabel } from "./InputLabel.js";
6
+ import { InputRoot } from "./InputRoot.js";
7
+ import { InputTextArea } from "./InputTextArea.js";
8
+ export type { InputButtonProps } from "./InputButton.js";
9
+ export type { InputControlProps } from "./InputControl.js";
10
+ export type { InputFieldProps } from "./InputField.js";
11
+ export type { InputHelperTextProps } from "./InputHelperText.js";
12
+ export type { InputLabelProps } from "./InputLabel.js";
13
+ export type { InputProps } from "./InputRoot.js";
14
+ export type { InputTextAreaProps } from "./InputTextArea.js";
15
+ export declare const Input: typeof InputRoot & {
16
+ Label: typeof InputLabel;
17
+ Field: typeof InputField;
18
+ Control: typeof InputControl;
19
+ TextArea: typeof InputTextArea;
20
+ HelperText: typeof InputHelperText;
21
+ Button: typeof InputButton;
22
+ };
@@ -0,0 +1,20 @@
1
+ import { InputButton as e } from "./InputButton.js";
2
+ import { InputControl as t } from "./InputControl.js";
3
+ import { InputField as n } from "./InputField.js";
4
+ import { InputHelperText as r } from "./InputHelperText.js";
5
+ import { InputLabel as i } from "./InputLabel.js";
6
+ import { InputRoot as a } from "./InputRoot.js";
7
+ import { InputTextArea as o } from "./InputTextArea.js";
8
+ //#region src/components/Input/Input.tsx
9
+ var s = Object.assign(a, {
10
+ Label: i,
11
+ Field: n,
12
+ Control: t,
13
+ TextArea: o,
14
+ HelperText: r,
15
+ Button: e
16
+ });
17
+ //#endregion
18
+ export { s as Input };
19
+
20
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","names":[],"sources":["../../../src/components/Input/Input.tsx"],"sourcesContent":["import { InputButton } from \"./InputButton.js\";\nimport { InputControl } from \"./InputControl.js\";\nimport { InputField } from \"./InputField.js\";\nimport { InputHelperText } from \"./InputHelperText.js\";\nimport { InputLabel } from \"./InputLabel.js\";\nimport { InputRoot } from \"./InputRoot.js\";\nimport { InputTextArea } from \"./InputTextArea.js\";\n\nexport type { InputButtonProps } from \"./InputButton.js\";\nexport type { InputControlProps } from \"./InputControl.js\";\nexport type { InputFieldProps } from \"./InputField.js\";\nexport type { InputHelperTextProps } from \"./InputHelperText.js\";\nexport type { InputLabelProps } from \"./InputLabel.js\";\nexport type { InputProps } from \"./InputRoot.js\";\nexport type { InputTextAreaProps } from \"./InputTextArea.js\";\n\nexport const Input = Object.assign(InputRoot, {\n\tLabel: InputLabel,\n\tField: InputField,\n\tControl: InputControl,\n\tTextArea: InputTextArea,\n\tHelperText: InputHelperText,\n\tButton: InputButton,\n});\n"],"mappings":";;;;;;;;AAgBA,IAAa,IAAQ,OAAO,OAAO,GAAW;CAC7C,OAAO;CACP,OAAO;CACP,SAAS;CACT,UAAU;CACV,YAAY;CACZ,QAAQ;CACR,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CSSProperties, ReactNode, Ref } from "react";
2
+ import type { ButtonProps as AriaButtonProps } from "react-aria-components";
3
+ export interface InputButtonProps extends Omit<AriaButtonProps, "children" | "className" | "style" | "aria-label"> {
4
+ /** Accessible name for the icon-only action; maps to `aria-label`. Required — there is no visible text. */
5
+ label: string;
6
+ className?: string;
7
+ style?: CSSProperties;
8
+ ref?: Ref<HTMLButtonElement>;
9
+ /** A single icon — compose with the shared `<Icon>` primitive (icon glyphs already wrap themselves). */
10
+ children: ReactNode;
11
+ }
12
+ export declare function InputButton({ label, className, children, isDisabled, ...rest }: InputButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { useInputContext as t } from "./Input.context.js";
3
+ import { inputButton as n } from "./Input.css.js";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ import { Button as i } from "react-aria-components";
6
+ //#region src/components/Input/InputButton.tsx
7
+ function a({ label: a, className: o, children: s, isDisabled: c, ...l }) {
8
+ let { isDisabled: u } = t();
9
+ return /* @__PURE__ */ r(i, {
10
+ ...l,
11
+ "data-slot": "button",
12
+ isDisabled: c || u,
13
+ "aria-label": a,
14
+ className: e(n, o),
15
+ children: s
16
+ });
17
+ }
18
+ //#endregion
19
+ export { a as InputButton };
20
+
21
+ //# sourceMappingURL=InputButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputButton.js","names":[],"sources":["../../../src/components/Input/InputButton.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode, Ref } from \"react\";\nimport type { ButtonProps as AriaButtonProps } from \"react-aria-components\";\nimport { Button as AriaButton } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { useInputContext } from \"./Input.context.js\";\nimport { inputButton } from \"./Input.css.js\";\n\nexport interface InputButtonProps\n\textends Omit<\n\t\tAriaButtonProps,\n\t\t\"children\" | \"className\" | \"style\" | \"aria-label\"\n\t> {\n\t/** Accessible name for the icon-only action; maps to `aria-label`. Required — there is no visible text. */\n\tlabel: string;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLButtonElement>;\n\t/** A single icon — compose with the shared `<Icon>` primitive (icon glyphs already wrap themselves). */\n\tchildren: ReactNode;\n}\n\nexport function InputButton({\n\tlabel,\n\tclassName,\n\tchildren,\n\tisDisabled,\n\t...rest\n}: InputButtonProps) {\n\tconst { isDisabled: fieldDisabled } = useInputContext();\n\treturn (\n\t\t<AriaButton\n\t\t\t{...rest}\n\t\t\tdata-slot=\"button\"\n\t\t\tisDisabled={isDisabled || fieldDisabled}\n\t\t\taria-label={label}\n\t\t\tclassName={cx(inputButton, className)}\n\t\t>\n\t\t\t{children}\n\t\t</AriaButton>\n\t);\n}\n"],"mappings":";;;;;;AAqBA,SAAgB,EAAY,EAC3B,UACA,cACA,aACA,eACA,GAAG,KACiB;CACpB,IAAM,EAAE,YAAY,MAAkB,GAAiB;AACvD,QACC,kBAAC,GAAD;EACC,GAAI;EACJ,aAAU;EACV,YAAY,KAAc;EAC1B,cAAY;EACZ,WAAW,EAAG,GAAa,EAAU;EAEpC;EACW,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { CSSProperties, Ref } from "react";
2
+ import type { InputProps as AriaInputProps } from "react-aria-components";
3
+ export interface InputControlProps extends Omit<AriaInputProps, "className" | "style"> {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ref?: Ref<HTMLInputElement>;
7
+ }
8
+ export declare function InputControl({ className, ...rest }: InputControlProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { inputControl as t } from "./Input.css.js";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ import { Input as r } from "react-aria-components";
5
+ //#region src/components/Input/InputControl.tsx
6
+ function i({ className: i, ...a }) {
7
+ return /* @__PURE__ */ n(r, {
8
+ ...a,
9
+ className: e(t, i)
10
+ });
11
+ }
12
+ //#endregion
13
+ export { i as InputControl };
14
+
15
+ //# sourceMappingURL=InputControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputControl.js","names":[],"sources":["../../../src/components/Input/InputControl.tsx"],"sourcesContent":["import type { CSSProperties, Ref } from \"react\";\nimport type { InputProps as AriaInputProps } from \"react-aria-components\";\nimport { Input as AriaInput } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { inputControl } from \"./Input.css.js\";\n\nexport interface InputControlProps\n\textends Omit<AriaInputProps, \"className\" | \"style\"> {\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLInputElement>;\n}\n\nexport function InputControl({ className, ...rest }: InputControlProps) {\n\treturn <AriaInput {...rest} className={cx(inputControl, className)} />;\n}\n"],"mappings":";;;;;AAaA,SAAgB,EAAa,EAAE,cAAW,GAAG,KAA2B;AACvE,QAAO,kBAAC,GAAD;EAAW,GAAI;EAAM,WAAW,EAAG,GAAc,EAAU;EAAI,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { CSSProperties, ReactNode, Ref } from "react";
2
+ import type { GroupProps as AriaGroupProps } from "react-aria-components";
3
+ export interface InputFieldProps extends Omit<AriaGroupProps, "className" | "style"> {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ref?: Ref<HTMLDivElement>;
7
+ children?: ReactNode;
8
+ }
9
+ export declare function InputField({ className, children, onPointerDown, ...rest }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { useInputContext as t } from "./Input.context.js";
3
+ import { inputField as n } from "./Input.css.js";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ import { Group as i } from "react-aria-components";
6
+ //#region src/components/Input/InputField.tsx
7
+ function a({ className: a, children: o, onPointerDown: s, ...c }) {
8
+ let { variant: l } = t(), u = (e) => {
9
+ if (s?.(e), e.defaultPrevented || e.target.closest("button, a, input, textarea, select, [tabindex]")) return;
10
+ let t = e.currentTarget.querySelector("input, textarea");
11
+ t && (e.preventDefault(), t.focus());
12
+ };
13
+ return /* @__PURE__ */ r(i, {
14
+ ...c,
15
+ onPointerDown: u,
16
+ className: e(n({ variant: l }), a),
17
+ children: o
18
+ });
19
+ }
20
+ //#endregion
21
+ export { a as InputField };
22
+
23
+ //# sourceMappingURL=InputField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputField.js","names":[],"sources":["../../../src/components/Input/InputField.tsx"],"sourcesContent":["import type { CSSProperties, PointerEvent, ReactNode, Ref } from \"react\";\nimport type { GroupProps as AriaGroupProps } from \"react-aria-components\";\nimport { Group as AriaGroup } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { useInputContext } from \"./Input.context.js\";\nimport { inputField } from \"./Input.css.js\";\n\nexport interface InputFieldProps\n\textends Omit<AriaGroupProps, \"className\" | \"style\"> {\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLDivElement>;\n\tchildren?: ReactNode;\n}\n\nexport function InputField({\n\tclassName,\n\tchildren,\n\tonPointerDown,\n\t...rest\n}: InputFieldProps) {\n\tconst { variant } = useInputContext();\n\tconst handlePointerDown = (event: PointerEvent<HTMLDivElement>) => {\n\t\tonPointerDown?.(event);\n\t\tif (event.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\t\tconst target = event.target as HTMLElement;\n\t\tif (target.closest(\"button, a, input, textarea, select, [tabindex]\")) {\n\t\t\treturn;\n\t\t}\n\t\tconst control =\n\t\t\tevent.currentTarget.querySelector<HTMLInputElement>(\"input, textarea\");\n\t\tif (control) {\n\t\t\tevent.preventDefault();\n\t\t\tcontrol.focus();\n\t\t}\n\t};\n\treturn (\n\t\t<AriaGroup\n\t\t\t{...rest}\n\t\t\tonPointerDown={handlePointerDown}\n\t\t\tclassName={cx(inputField({ variant }), className)}\n\t\t>\n\t\t\t{children}\n\t\t</AriaGroup>\n\t);\n}\n"],"mappings":";;;;;;AAeA,SAAgB,EAAW,EAC1B,cACA,aACA,kBACA,GAAG,KACgB;CACnB,IAAM,EAAE,eAAY,GAAiB,EAC/B,KAAqB,MAAwC;AAMlE,MALA,IAAgB,EAAM,EAClB,EAAM,oBAGK,EAAM,OACV,QAAQ,iDAAiD,CACnE;EAED,IAAM,IACL,EAAM,cAAc,cAAgC,kBAAkB;AACvE,EAAI,MACH,EAAM,gBAAgB,EACtB,EAAQ,OAAO;;AAGjB,QACC,kBAAC,GAAD;EACC,GAAI;EACJ,eAAe;EACf,WAAW,EAAG,EAAW,EAAE,YAAS,CAAC,EAAE,EAAU;EAEhD;EACU,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { CSSProperties, Ref } from "react";
2
+ import type { TextProps as AriaTextProps } from "react-aria-components";
3
+ export interface InputHelperTextProps extends Omit<AriaTextProps, "className" | "style" | "slot"> {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ref?: Ref<HTMLElement>;
7
+ }
8
+ export declare function InputHelperText({ className, children, ...rest }: InputHelperTextProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { useInputContext as t } from "./Input.context.js";
3
+ import { inputHelperText as n } from "./Input.css.js";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ import { Text as i } from "react-aria-components";
6
+ //#region src/components/Input/InputHelperText.tsx
7
+ function a({ className: a, children: o, ...s }) {
8
+ let { isInvalid: c } = t();
9
+ return /* @__PURE__ */ r(i, {
10
+ ...s,
11
+ slot: "description",
12
+ "data-invalid": c || void 0,
13
+ className: e(n, a),
14
+ children: o
15
+ });
16
+ }
17
+ //#endregion
18
+ export { a as InputHelperText };
19
+
20
+ //# sourceMappingURL=InputHelperText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputHelperText.js","names":[],"sources":["../../../src/components/Input/InputHelperText.tsx"],"sourcesContent":["import type { CSSProperties, Ref } from \"react\";\nimport type { TextProps as AriaTextProps } from \"react-aria-components\";\nimport { Text as AriaText } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { useInputContext } from \"./Input.context.js\";\nimport { inputHelperText } from \"./Input.css.js\";\n\nexport interface InputHelperTextProps\n\textends Omit<AriaTextProps, \"className\" | \"style\" | \"slot\"> {\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLElement>;\n}\n\nexport function InputHelperText({\n\tclassName,\n\tchildren,\n\t...rest\n}: InputHelperTextProps) {\n\tconst { isInvalid } = useInputContext();\n\treturn (\n\t\t<AriaText\n\t\t\t{...rest}\n\t\t\tslot=\"description\"\n\t\t\tdata-invalid={isInvalid || undefined}\n\t\t\tclassName={cx(inputHelperText, className)}\n\t\t>\n\t\t\t{children}\n\t\t</AriaText>\n\t);\n}\n"],"mappings":";;;;;;AAcA,SAAgB,EAAgB,EAC/B,cACA,aACA,GAAG,KACqB;CACxB,IAAM,EAAE,iBAAc,GAAiB;AACvC,QACC,kBAAC,GAAD;EACC,GAAI;EACJ,MAAK;EACL,gBAAc,KAAa,KAAA;EAC3B,WAAW,EAAG,GAAiB,EAAU;EAExC;EACS,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { CSSProperties, Ref } from "react";
2
+ import type { LabelProps as AriaLabelProps } from "react-aria-components";
3
+ export interface InputLabelProps extends Omit<AriaLabelProps, "className" | "style"> {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ref?: Ref<HTMLLabelElement>;
7
+ }
8
+ export declare function InputLabel({ className, children, ...rest }: InputLabelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { inputLabel as t } from "./Input.css.js";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ import { Label as r } from "react-aria-components";
5
+ //#region src/components/Input/InputLabel.tsx
6
+ function i({ className: i, children: a, ...o }) {
7
+ return /* @__PURE__ */ n(r, {
8
+ ...o,
9
+ className: e(t, i),
10
+ children: a
11
+ });
12
+ }
13
+ //#endregion
14
+ export { i as InputLabel };
15
+
16
+ //# sourceMappingURL=InputLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputLabel.js","names":[],"sources":["../../../src/components/Input/InputLabel.tsx"],"sourcesContent":["import type { CSSProperties, Ref } from \"react\";\nimport type { LabelProps as AriaLabelProps } from \"react-aria-components\";\nimport { Label as AriaLabel } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { inputLabel } from \"./Input.css.js\";\n\nexport interface InputLabelProps\n\textends Omit<AriaLabelProps, \"className\" | \"style\"> {\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLLabelElement>;\n}\n\nexport function InputLabel({ className, children, ...rest }: InputLabelProps) {\n\treturn (\n\t\t<AriaLabel {...rest} className={cx(inputLabel, className)}>\n\t\t\t{children}\n\t\t</AriaLabel>\n\t);\n}\n"],"mappings":";;;;;AAaA,SAAgB,EAAW,EAAE,cAAW,aAAU,GAAG,KAAyB;AAC7E,QACC,kBAAC,GAAD;EAAW,GAAI;EAAM,WAAW,EAAG,GAAY,EAAU;EACvD;EACU,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { CSSProperties, ReactNode, Ref } from "react";
2
+ import type { TextFieldProps as AriaTextFieldProps } from "react-aria-components";
3
+ import type { InputVariant } from "./Input.context.js";
4
+ export interface InputProps extends Omit<AriaTextFieldProps, "children" | "className" | "style"> {
5
+ variant?: InputVariant;
6
+ className?: string;
7
+ style?: CSSProperties;
8
+ ref?: Ref<HTMLDivElement>;
9
+ children?: ReactNode;
10
+ }
11
+ export declare function InputRoot({ className, children, variant, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { InputContext as t } from "./Input.context.js";
3
+ import { inputRoot as n } from "./Input.css.js";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ import { TextField as i } from "react-aria-components";
6
+ import { useMemo as a } from "react";
7
+ //#region src/components/Input/InputRoot.tsx
8
+ function o({ className: o, children: s, variant: c = "default", ...l }) {
9
+ let u = l.isDisabled ?? !1, d = l.isInvalid ?? !1, f = a(() => ({
10
+ isDisabled: u,
11
+ isInvalid: d,
12
+ variant: c
13
+ }), [
14
+ u,
15
+ d,
16
+ c
17
+ ]);
18
+ return /* @__PURE__ */ r(i, {
19
+ ...l,
20
+ className: e(n, o),
21
+ children: /* @__PURE__ */ r(t.Provider, {
22
+ value: f,
23
+ children: s
24
+ })
25
+ });
26
+ }
27
+ //#endregion
28
+ export { o as InputRoot };
29
+
30
+ //# sourceMappingURL=InputRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputRoot.js","names":[],"sources":["../../../src/components/Input/InputRoot.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode, Ref } from \"react\";\nimport { useMemo } from \"react\";\nimport type { TextFieldProps as AriaTextFieldProps } from \"react-aria-components\";\nimport { TextField as AriaTextField } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport type { InputVariant } from \"./Input.context.js\";\nimport { InputContext } from \"./Input.context.js\";\nimport { inputRoot } from \"./Input.css.js\";\n\nexport interface InputProps\n\textends Omit<AriaTextFieldProps, \"children\" | \"className\" | \"style\"> {\n\tvariant?: InputVariant;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLDivElement>;\n\tchildren?: ReactNode;\n}\n\nexport function InputRoot({\n\tclassName,\n\tchildren,\n\tvariant = \"default\",\n\t...rest\n}: InputProps) {\n\tconst isDisabled = rest.isDisabled ?? false;\n\tconst isInvalid = rest.isInvalid ?? false;\n\tconst context = useMemo(\n\t\t() => ({ isDisabled, isInvalid, variant }),\n\t\t[isDisabled, isInvalid, variant],\n\t);\n\treturn (\n\t\t<AriaTextField {...rest} className={cx(inputRoot, className)}>\n\t\t\t<InputContext.Provider value={context}>{children}</InputContext.Provider>\n\t\t</AriaTextField>\n\t);\n}\n"],"mappings":";;;;;;;AAkBA,SAAgB,EAAU,EACzB,cACA,aACA,aAAU,WACV,GAAG,KACW;CACd,IAAM,IAAa,EAAK,cAAc,IAChC,IAAY,EAAK,aAAa,IAC9B,IAAU,SACR;EAAE;EAAY;EAAW;EAAS,GACzC;EAAC;EAAY;EAAW;EAAQ,CAChC;AACD,QACC,kBAAC,GAAD;EAAe,GAAI;EAAM,WAAW,EAAG,GAAW,EAAU;YAC3D,kBAAC,EAAa,UAAd;GAAuB,OAAO;GAAU;GAAiC,CAAA;EAC1D,CAAA"}
@@ -0,0 +1,15 @@
1
+ import type { CSSProperties, Ref } from "react";
2
+ import type { TextAreaProps as AriaTextAreaProps } from "react-aria-components";
3
+ export interface InputTextAreaProps extends Omit<AriaTextAreaProps, "className" | "style"> {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ref?: Ref<HTMLTextAreaElement>;
7
+ /** Rows the textarea occupies before it starts growing. Default 1. */
8
+ minRows?: number;
9
+ /** Rows the textarea grows to before it scrolls instead. Default: uncapped. */
10
+ maxRows?: number;
11
+ }
12
+ /** Multi-line control for `Input`, wrapping RAC's `TextArea`. Auto-grows with its
13
+ * content between `minRows` and `maxRows`, then scrolls. Use in place of
14
+ * `Input.Control` when the field needs multiple lines (e.g. a message composer). */
15
+ export declare function InputTextArea({ className, ref, minRows, maxRows, rows, onInput, ...rest }: InputTextAreaProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,39 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { inputTextArea as t } from "./Input.css.js";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ import { TextArea as r } from "react-aria-components";
5
+ import { useCallback as i, useLayoutEffect as a } from "react";
6
+ import { useObjectRef as o } from "react-aria/useObjectRef";
7
+ //#region src/components/Input/InputTextArea.tsx
8
+ function s({ className: s, ref: c, minRows: l = 1, maxRows: u, rows: d, onInput: f, ...p }) {
9
+ let m = o(c), h = i(() => {
10
+ let e = m.current;
11
+ if (!e) return;
12
+ let t = Number.parseFloat(getComputedStyle(e).lineHeight);
13
+ if (!Number.isFinite(t)) return;
14
+ e.style.height = "auto";
15
+ let n = e.scrollHeight, r = l * t, i = u == null ? Infinity : u * t, a = Math.min(Math.max(n, r), i);
16
+ e.style.height = `${a}px`, e.style.overflowY = n > i ? "auto" : "hidden";
17
+ }, [
18
+ m,
19
+ l,
20
+ u
21
+ ]);
22
+ a(() => {
23
+ h();
24
+ });
25
+ let g = i((e) => {
26
+ h(), f?.(e);
27
+ }, [h, f]);
28
+ return /* @__PURE__ */ n(r, {
29
+ ...p,
30
+ ref: m,
31
+ rows: d ?? l,
32
+ onInput: g,
33
+ className: e(t, s)
34
+ });
35
+ }
36
+ //#endregion
37
+ export { s as InputTextArea };
38
+
39
+ //# sourceMappingURL=InputTextArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputTextArea.js","names":[],"sources":["../../../src/components/Input/InputTextArea.tsx"],"sourcesContent":["import type { CSSProperties, Ref } from \"react\";\nimport { useCallback, useLayoutEffect } from \"react\";\nimport { useObjectRef } from \"react-aria/useObjectRef\";\nimport type { TextAreaProps as AriaTextAreaProps } from \"react-aria-components\";\nimport { TextArea as AriaTextArea } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { inputTextArea } from \"./Input.css.js\";\n\nexport interface InputTextAreaProps\n\textends Omit<AriaTextAreaProps, \"className\" | \"style\"> {\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLTextAreaElement>;\n\t/** Rows the textarea occupies before it starts growing. Default 1. */\n\tminRows?: number;\n\t/** Rows the textarea grows to before it scrolls instead. Default: uncapped. */\n\tmaxRows?: number;\n}\n\n/** Multi-line control for `Input`, wrapping RAC's `TextArea`. Auto-grows with its\n * content between `minRows` and `maxRows`, then scrolls. Use in place of\n * `Input.Control` when the field needs multiple lines (e.g. a message composer). */\nexport function InputTextArea({\n\tclassName,\n\tref,\n\tminRows = 1,\n\tmaxRows,\n\trows,\n\tonInput,\n\t...rest\n}: InputTextAreaProps) {\n\t// useObjectRef gives us an object ref to read for measurement while still\n\t// forwarding to the caller's ref (object or callback).\n\tconst objRef = useObjectRef(ref);\n\n\tconst resize = useCallback(() => {\n\t\tconst el = objRef.current;\n\t\tif (!el) {\n\t\t\treturn;\n\t\t}\n\t\t// Measure the element's own line-height so the row→px math holds regardless\n\t\t// of token values; padding/border are 0 here, so height === content height.\n\t\tconst lineHeight = Number.parseFloat(getComputedStyle(el).lineHeight);\n\t\tif (!Number.isFinite(lineHeight)) {\n\t\t\treturn;\n\t\t}\n\t\tel.style.height = \"auto\";\n\t\tconst content = el.scrollHeight;\n\t\tconst min = minRows * lineHeight;\n\t\tconst max =\n\t\t\tmaxRows != null ? maxRows * lineHeight : Number.POSITIVE_INFINITY;\n\t\tconst next = Math.min(Math.max(content, min), max);\n\t\tel.style.height = `${next}px`;\n\t\tel.style.overflowY = content > max ? \"auto\" : \"hidden\";\n\t}, [objRef, minRows, maxRows]);\n\n\t// Re-measure after every commit: for a controlled field RAC re-renders on each\n\t// keystroke and on programmatic value changes (e.g. clear-on-send), so this\n\t// stays in sync without a value dependency. Setting inline height does not\n\t// schedule a render, so there is no loop. (Standard autosize-textarea pattern.)\n\tuseLayoutEffect(() => {\n\t\tresize();\n\t});\n\n\t// An uncontrolled field mutates the DOM without a React render, so the effect\n\t// above never re-fires while typing — resize off the native input event too.\n\tconst handleInput = useCallback(\n\t\t(event: Parameters<NonNullable<AriaTextAreaProps[\"onInput\"]>>[0]) => {\n\t\t\tresize();\n\t\t\tonInput?.(event);\n\t\t},\n\t\t[resize, onInput],\n\t);\n\n\treturn (\n\t\t<AriaTextArea\n\t\t\t{...rest}\n\t\t\tref={objRef}\n\t\t\trows={rows ?? minRows}\n\t\t\tonInput={handleInput}\n\t\t\tclassName={cx(inputTextArea, className)}\n\t\t/>\n\t);\n}\n"],"mappings":";;;;;;;AAsBA,SAAgB,EAAc,EAC7B,cACA,QACA,aAAU,GACV,YACA,SACA,YACA,GAAG,KACmB;CAGtB,IAAM,IAAS,EAAa,EAAI,EAE1B,IAAS,QAAkB;EAChC,IAAM,IAAK,EAAO;AAClB,MAAI,CAAC,EACJ;EAID,IAAM,IAAa,OAAO,WAAW,iBAAiB,EAAG,CAAC,WAAW;AACrE,MAAI,CAAC,OAAO,SAAS,EAAW,CAC/B;AAED,IAAG,MAAM,SAAS;EAClB,IAAM,IAAU,EAAG,cACb,IAAM,IAAU,GAChB,IACL,KAAW,OAA8B,WAAvB,IAAU,GACvB,IAAO,KAAK,IAAI,KAAK,IAAI,GAAS,EAAI,EAAE,EAAI;AAElD,EADA,EAAG,MAAM,SAAS,GAAG,EAAK,KAC1B,EAAG,MAAM,YAAY,IAAU,IAAM,SAAS;IAC5C;EAAC;EAAQ;EAAS;EAAQ,CAAC;AAM9B,SAAsB;AACrB,KAAQ;GACP;CAIF,IAAM,IAAc,GAClB,MAAoE;AAEpE,EADA,GAAQ,EACR,IAAU,EAAM;IAEjB,CAAC,GAAQ,EAAQ,CACjB;AAED,QACC,kBAAC,GAAD;EACC,GAAI;EACJ,KAAK;EACL,MAAM,KAAQ;EACd,SAAS;EACT,WAAW,EAAG,GAAe,EAAU;EACtC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export type { InputButtonProps, InputControlProps, InputFieldProps, InputHelperTextProps, InputLabelProps, InputProps, InputTextAreaProps, } from "./Input.js";
2
+ export { Input } from "./Input.js";
@@ -0,0 +1,8 @@
1
+ export declare const linkRoot: import("@vanilla-extract/recipes").RuntimeFn<{
2
+ underlined: {
3
+ true: {
4
+ textDecoration: "underline";
5
+ };
6
+ false: {};
7
+ };
8
+ }>;
@@ -0,0 +1,16 @@
1
+ import { createRuntimeFn as e } from "../../vendor/@vanilla-extract/recipes/dist/createRuntimeFn-62c9670f.esm.js";
2
+ /* empty css */
3
+ //#region src/components/Link/Link.css.ts
4
+ var t = e({
5
+ defaultClassName: "k107bi1 k107bi0",
6
+ variantClassNames: { underlined: {
7
+ true: "k107bi2",
8
+ false: "k107bi3"
9
+ } },
10
+ defaultVariants: { underlined: !1 },
11
+ compoundVariants: []
12
+ });
13
+ //#endregion
14
+ export { t as linkRoot };
15
+
16
+ //# sourceMappingURL=Link.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.css.js","names":[],"sources":["../../../src/components/Link/Link.css.ts"],"sourcesContent":["import { globalStyle, style } from \"@vanilla-extract/css\";\nimport { recipe } from \"@vanilla-extract/recipes\";\nimport { t } from \"../../tokens/index.js\";\n\nconst linkBase = style({});\n\nexport const linkRoot = recipe({\n\tbase: [\n\t\tlinkBase,\n\t\t{\n\t\t\tposition: \"relative\",\n\t\t\tisolation: \"isolate\",\n\t\t\tdisplay: \"inline-flex\",\n\t\t\talignItems: \"center\",\n\t\t\tgap: t(\"gap-4\"),\n\t\t\tcolor: t(\"color-content-link\"),\n\t\t\tfontFamily: t(\"font-family-body\"),\n\t\t\tfontWeight: t(\"font-weight-regular\"),\n\t\t\tfontSize: t(\"font-size-body\"),\n\t\t\tlineHeight: t(\"line-height-body\"),\n\t\t\twordBreak: \"break-word\",\n\t\t\ttextDecoration: \"none\",\n\t\t\tcursor: \"pointer\",\n\t\t\toutline: \"none\",\n\t\t\tborderRadius: t(\"border-radius-6\"),\n\t\t\t\"::after\": {\n\t\t\t\tcontent: '\"\"',\n\t\t\t\tposition: \"absolute\",\n\t\t\t\t// Horizontal breathing room lives on the decorative overlay, not the\n\t\t\t\t// element box, so the state layer balances against the icon's trailing\n\t\t\t\t// whitespace without altering the link's inline layout footprint.\n\t\t\t\tinsetBlock: 0,\n\t\t\t\tinsetInline: `calc(-1 * ${t(\"padding-4\")})`,\n\t\t\t\tborderRadius: \"inherit\",\n\t\t\t\tbackgroundColor: \"currentColor\",\n\t\t\t\topacity: 0,\n\t\t\t\tpointerEvents: \"none\",\n\t\t\t\tzIndex: -1,\n\t\t\t\ttransition: `opacity ${t(\"duration-fast\")} ${t(\"easing-standard\")}`,\n\t\t\t},\n\t\t\tselectors: {\n\t\t\t\t// Without the trailing icon, the underline is the only non-color\n\t\t\t\t// signal that this is a link, so it is mandatory when no icon shows.\n\t\t\t\t\"&:not([data-icon])\": {\n\t\t\t\t\ttextDecoration: \"underline\",\n\t\t\t\t},\n\t\t\t\t\"&[data-hovered]:not([data-disabled])::after\": {\n\t\t\t\t\topacity: t(\"opacity-state-hover\"),\n\t\t\t\t},\n\t\t\t\t\"&[data-focus-visible]:not([data-disabled])::after\": {\n\t\t\t\t\topacity: t(\"opacity-state-focus\"),\n\t\t\t\t},\n\t\t\t\t\"&[data-pressed]:not([data-disabled])::after\": {\n\t\t\t\t\topacity: t(\"opacity-state-pressed\"),\n\t\t\t\t},\n\t\t\t\t\"&[data-focus-visible]:not([data-disabled])\": {\n\t\t\t\t\tboxShadow: `0 0 0 ${t(\"border-width-focus\")} ${t(\"color-border-focus\")}`,\n\t\t\t\t},\n\t\t\t\t\"&[data-disabled]\": {\n\t\t\t\t\tcursor: \"not-allowed\",\n\t\t\t\t\tcolor: t(\"color-content-disabled\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"@media\": {\n\t\t\t\t\"(forced-colors: active)\": {\n\t\t\t\t\tselectors: {\n\t\t\t\t\t\t\"&[data-focus-visible]:not([data-disabled])\": {\n\t\t\t\t\t\t\toutline: \"2px solid Highlight\",\n\t\t\t\t\t\t\toutlineOffset: \"2px\",\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t],\n\tvariants: {\n\t\tunderlined: {\n\t\t\ttrue: { textDecoration: \"underline\" },\n\t\t\tfalse: {},\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tunderlined: false,\n\t},\n});\n\nglobalStyle(`${linkBase} [data-slot='icon']`, {\n\tflexShrink: 0,\n\tfontSize: t(\"icon-size-control\"),\n});\n\n// The external-link arrow points outward in the reading direction, so it mirrors\n// under RTL. The download glyph is direction-neutral and is left unmirrored.\nglobalStyle(`[dir=\"rtl\"] ${linkBase}:not([data-download]) [data-slot='icon']`, {\n\ttransform: \"scaleX(-1)\",\n});\n"],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { CSSProperties, ReactNode, Ref } from "react";
2
+ import type { LinkProps as AriaLinkProps } from "react-aria-components";
3
+ export interface LinkProps extends Omit<AriaLinkProps, "children" | "className" | "style"> {
4
+ underlined?: boolean;
5
+ showIcon?: boolean;
6
+ download?: boolean | string;
7
+ className?: string;
8
+ style?: CSSProperties;
9
+ ref?: Ref<HTMLAnchorElement>;
10
+ children?: ReactNode;
11
+ }
12
+ export declare function Link({ underlined, showIcon, download, className, children, ...rest }: LinkProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { ArrowNortheast as t } from "../Icon/icons/ArrowNortheast.js";
3
+ import { Download as n } from "../Icon/icons/Download.js";
4
+ import { linkRoot as r } from "./Link.css.js";
5
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
+ import { Link as o } from "react-aria-components";
7
+ //#region src/components/Link/Link.tsx
8
+ function s({ underlined: s = !1, showIcon: c = !0, download: l, className: u, children: d, ...f }) {
9
+ let p = l !== void 0 && l !== !1;
10
+ return /* @__PURE__ */ a(o, {
11
+ ...f,
12
+ download: l,
13
+ "data-slot": "link",
14
+ "data-icon": c || void 0,
15
+ "data-underlined": s || void 0,
16
+ "data-download": p || void 0,
17
+ className: e(r({ underlined: s }), u),
18
+ children: [d, c && i(p ? n : t, {})]
19
+ });
20
+ }
21
+ //#endregion
22
+ export { s as Link };
23
+
24
+ //# sourceMappingURL=Link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Link.js","names":[],"sources":["../../../src/components/Link/Link.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode, Ref } from \"react\";\nimport type { LinkProps as AriaLinkProps } from \"react-aria-components\";\nimport { Link as AriaLink } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { ArrowNortheast, Download } from \"../Icon/icons/index.js\";\nimport { linkRoot } from \"./Link.css.js\";\n\nexport interface LinkProps\n\textends Omit<AriaLinkProps, \"children\" | \"className\" | \"style\"> {\n\tunderlined?: boolean;\n\tshowIcon?: boolean;\n\tdownload?: boolean | string;\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLAnchorElement>;\n\tchildren?: ReactNode;\n}\n\nexport function Link({\n\tunderlined = false,\n\tshowIcon = true,\n\tdownload,\n\tclassName,\n\tchildren,\n\t...rest\n}: LinkProps) {\n\tconst isDownload = download !== undefined && download !== false;\n\treturn (\n\t\t<AriaLink\n\t\t\t{...rest}\n\t\t\tdownload={download}\n\t\t\tdata-slot=\"link\"\n\t\t\tdata-icon={showIcon || undefined}\n\t\t\tdata-underlined={underlined || undefined}\n\t\t\tdata-download={isDownload || undefined}\n\t\t\tclassName={cx(linkRoot({ underlined }), className)}\n\t\t>\n\t\t\t{children}\n\t\t\t{showIcon && (isDownload ? <Download /> : <ArrowNortheast />)}\n\t\t</AriaLink>\n\t);\n}\n"],"mappings":";;;;;;;AAkBA,SAAgB,EAAK,EACpB,gBAAa,IACb,cAAW,IACX,aACA,cACA,aACA,GAAG,KACU;CACb,IAAM,IAAa,MAAa,KAAA,KAAa,MAAa;AAC1D,QACC,kBAAC,GAAD;EACC,GAAI;EACM;EACV,aAAU;EACV,aAAW,KAAY,KAAA;EACvB,mBAAiB,KAAc,KAAA;EAC/B,iBAAe,KAAc,KAAA;EAC7B,WAAW,EAAG,EAAS,EAAE,eAAY,CAAC,EAAE,EAAU;YAPnD,CASE,GACA,KAA0B,EAAb,IAAc,IAAe,GAAhB,EAAY,CAAqB,CAClD"}
@@ -0,0 +1,2 @@
1
+ export type { LinkProps } from "./Link.js";
2
+ export { Link } from "./Link.js";
@@ -0,0 +1,14 @@
1
+ import type { CSSProperties, Ref } from "react";
2
+ import type { MenuProps as AriaMenuProps } from "react-aria-components";
3
+ export interface MenuProps<T extends object = object> extends Omit<AriaMenuProps<T>, "className" | "style"> {
4
+ className?: string;
5
+ style?: CSSProperties;
6
+ ref?: Ref<HTMLDivElement>;
7
+ }
8
+ /**
9
+ * A `role="menu"` collection container for `MenuItem` rows. Owns keyboard
10
+ * navigation (arrow keys, typeahead) and the menu's accessible name — supply
11
+ * `aria-label` or `aria-labelledby`. Render inside React Aria's `MenuTrigger` +
12
+ * `Popover` for a dropdown, or standalone for an inline menu.
13
+ */
14
+ export declare function Menu<T extends object>({ className, ...rest }: MenuProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,15 @@
1
+ import { cx as e } from "../../utils/cx.js";
2
+ import { menu as t } from "./MenuItem.css.js";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ import { Menu as r } from "react-aria-components";
5
+ //#region src/components/MenuItem/Menu.tsx
6
+ function i({ className: i, ...a }) {
7
+ return /* @__PURE__ */ n(r, {
8
+ ...a,
9
+ className: e(t, i)
10
+ });
11
+ }
12
+ //#endregion
13
+ export { i as Menu };
14
+
15
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","names":[],"sources":["../../../src/components/MenuItem/Menu.tsx"],"sourcesContent":["import type { CSSProperties, Ref } from \"react\";\nimport type { MenuProps as AriaMenuProps } from \"react-aria-components\";\nimport { Menu as AriaMenu } from \"react-aria-components\";\nimport { cx } from \"../../utils/cx.js\";\nimport { menu } from \"./MenuItem.css.js\";\n\nexport interface MenuProps<T extends object = object>\n\textends Omit<AriaMenuProps<T>, \"className\" | \"style\"> {\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tref?: Ref<HTMLDivElement>;\n}\n\n/**\n * A `role=\"menu\"` collection container for `MenuItem` rows. Owns keyboard\n * navigation (arrow keys, typeahead) and the menu's accessible name — supply\n * `aria-label` or `aria-labelledby`. Render inside React Aria's `MenuTrigger` +\n * `Popover` for a dropdown, or standalone for an inline menu.\n */\nexport function Menu<T extends object>({ className, ...rest }: MenuProps<T>) {\n\treturn <AriaMenu {...rest} className={cx(menu, className)} />;\n}\n"],"mappings":";;;;;AAmBA,SAAgB,EAAuB,EAAE,cAAW,GAAG,KAAsB;AAC5E,QAAO,kBAAC,GAAD;EAAU,GAAI;EAAM,WAAW,EAAG,GAAM,EAAU;EAAI,CAAA"}
@@ -0,0 +1,4 @@
1
+ export declare const menu: string;
2
+ export declare const menuItem: string;
3
+ export declare const menuItemLeading: string;
4
+ export declare const menuItemTrailing: string;
@@ -0,0 +1,7 @@
1
+ /* empty css */
2
+ //#region src/components/MenuItem/MenuItem.css.ts
3
+ var e = "fa1x5n0", t = "fa1x5n1", n = "fa1x5n2", r = "fa1x5n3";
4
+ //#endregion
5
+ export { e as menu, t as menuItem, n as menuItemLeading, r as menuItemTrailing };
6
+
7
+ //# sourceMappingURL=MenuItem.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItem.css.js","names":[],"sources":["../../../src/components/MenuItem/MenuItem.css.ts"],"sourcesContent":["import { style } from \"@vanilla-extract/css\";\nimport { t } from \"../../tokens/index.js\";\n\n// The row is a fixed 40px control frame and each slot a fixed 24px box — Figma\n// pins both as literals (no control-size token tier exists yet), the same\n// treatment as Chip's height and Radio's control size.\nconst ROW_HEIGHT = \"40px\";\nconst SLOT_SIZE = \"24px\";\n\n// Shared 24px slot box that centres an icon or a selection indicator. `fontSize`\n// drives a slotted `<Icon>`'s 1em glyph up to the slot size; `color: inherit`\n// lets the glyph track the row's content colour (and its disabled dim).\nconst slotBase = {\n\tdisplay: \"inline-flex\",\n\talignItems: \"center\",\n\tjustifyContent: \"center\",\n\tboxSizing: \"border-box\",\n\tflexShrink: 0,\n\twidth: SLOT_SIZE,\n\theight: SLOT_SIZE,\n\tfontSize: t(\"icon-size-lg\"),\n\tcolor: \"inherit\",\n} as const;\n\nexport const menu = style({\n\tdisplay: \"flex\",\n\tflexDirection: \"column\",\n\toutline: \"none\",\n});\n\nexport const menuItem = style({\n\tposition: \"relative\",\n\tisolation: \"isolate\",\n\tboxSizing: \"border-box\",\n\tdisplay: \"flex\",\n\talignItems: \"center\",\n\tgap: t(\"gap-12\"),\n\theight: ROW_HEIGHT,\n\tpaddingInline: t(\"padding-8\"),\n\tborderRadius: t(\"border-radius-button\"),\n\tborder: `${t(\"border-width-default\")} solid transparent`,\n\tbackgroundColor: t(\"color-background-default\"),\n\tcolor: t(\"color-content-default\"),\n\tfontFamily: t(\"font-family-body\"),\n\tfontSize: t(\"font-size-body\"),\n\tfontWeight: t(\"font-weight-regular\"),\n\tlineHeight: t(\"line-height-body\"),\n\ttextAlign: \"start\",\n\tcursor: \"pointer\",\n\tuserSelect: \"none\",\n\toutline: \"none\",\n\ttransitionProperty: \"background-color, border-color\",\n\ttransitionDuration: t(\"duration-fast\"),\n\ttransitionTimingFunction: t(\"easing-standard\"),\n\t\"::after\": {\n\t\tcontent: '\"\"',\n\t\tposition: \"absolute\",\n\t\tinset: 0,\n\t\tborderRadius: \"inherit\",\n\t\tbackgroundColor: \"currentColor\",\n\t\topacity: 0,\n\t\tpointerEvents: \"none\",\n\t\tzIndex: -1,\n\t\ttransition: `opacity ${t(\"duration-fast\")} ${t(\"easing-standard\")}`,\n\t},\n\tselectors: {\n\t\t\"&[data-hovered]:not([data-disabled])::after\": {\n\t\t\topacity: t(\"opacity-state-hover\"),\n\t\t},\n\t\t\"&[data-focus-visible]:not([data-disabled])::after\": {\n\t\t\topacity: t(\"opacity-state-focus\"),\n\t\t},\n\t\t\"&[data-pressed]:not([data-disabled])::after\": {\n\t\t\topacity: t(\"opacity-state-pressed\"),\n\t\t},\n\t\t// Focus: inner 1px accent border + outer 2px focus ring (Figma double ring).\n\t\t\"&[data-focus-visible]:not([data-disabled])\": {\n\t\t\tborderColor: t(\"color-border-accent\"),\n\t\t\tboxShadow: `0 0 0 ${t(\"border-width-focus\")} ${t(\"color-border-focus\")}`,\n\t\t},\n\t\t\"&[data-disabled]\": {\n\t\t\tcursor: \"not-allowed\",\n\t\t\tcolor: t(\"color-content-disabled\"),\n\t\t},\n\t},\n\t\"@media\": {\n\t\t// Custom colors flatten to system colors here, so the token focus ring is\n\t\t// lost — redraw it with a system color (matches Button/Chip/Radio).\n\t\t\"(forced-colors: active)\": {\n\t\t\tselectors: {\n\t\t\t\t\"&[data-focus-visible]:not([data-disabled])\": {\n\t\t\t\t\toutline: \"2px solid Highlight\",\n\t\t\t\t\toutlineOffset: \"2px\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t},\n});\n\nexport const menuItemLeading = style(slotBase);\n\n// A trailing slot pins to the row's end (auto inline-start margin, which mirrors\n// under `dir=\"rtl\"`), so the label between the slots takes the remaining space\n// without needing a wrapper element.\nexport const menuItemTrailing = style({\n\t...slotBase,\n\tmarginInlineStart: \"auto\",\n});\n"],"mappings":""}