@zyncat/ui 0.10.0 → 0.12.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 (597) hide show
  1. package/README.md +135 -40
  2. package/dist/alert.css +126 -121
  3. package/dist/alert.js +12 -14
  4. package/dist/alert.js.map +1 -1
  5. package/dist/avatar-group.js.map +1 -1
  6. package/dist/avatar.css +179 -174
  7. package/dist/avatar.js.map +1 -1
  8. package/dist/badge.css +166 -160
  9. package/dist/badge.js +1 -1
  10. package/dist/button.css +272 -246
  11. package/dist/button.js +1 -1
  12. package/dist/checkbox.css +158 -153
  13. package/dist/checkbox.js +2 -2
  14. package/dist/{chunk-UXONUUPI.js → chunk-227ZW4V7.js} +40 -32
  15. package/dist/chunk-227ZW4V7.js.map +1 -0
  16. package/dist/{chunk-2ERBBFZS.js → chunk-3MPF7FZV.js} +2 -2
  17. package/dist/chunk-3MPF7FZV.js.map +1 -0
  18. package/dist/{chunk-OMHQ4U4J.js → chunk-43M6GQ4Q.js} +86 -79
  19. package/dist/chunk-43M6GQ4Q.js.map +1 -0
  20. package/dist/{chunk-7SZCJ7WI.js → chunk-45R4Z5XN.js} +3 -3
  21. package/dist/chunk-45R4Z5XN.js.map +1 -0
  22. package/dist/{chunk-I4XQ4PV2.js → chunk-4BSHB7R3.js} +9 -7
  23. package/dist/chunk-4BSHB7R3.js.map +1 -0
  24. package/dist/{chunk-YGGCQNNU.js → chunk-4C5RZXBT.js} +33 -34
  25. package/dist/chunk-4C5RZXBT.js.map +1 -0
  26. package/dist/{chunk-2QWJ6FAX.js → chunk-5PZ43DCG.js} +31 -15
  27. package/dist/chunk-5PZ43DCG.js.map +1 -0
  28. package/dist/{chunk-S5ZTZANS.js → chunk-7IZJERGA.js} +35 -12
  29. package/dist/chunk-7IZJERGA.js.map +1 -0
  30. package/dist/{chunk-ZCOUPPTI.js → chunk-A5WTZACK.js} +22 -12
  31. package/dist/chunk-A5WTZACK.js.map +1 -0
  32. package/dist/{chunk-64UU4LGU.js → chunk-AADAJL7D.js} +3 -3
  33. package/dist/{chunk-64UU4LGU.js.map → chunk-AADAJL7D.js.map} +1 -1
  34. package/dist/{chunk-FTOAUJL5.js → chunk-CF4QHO4N.js} +21 -11
  35. package/dist/chunk-CF4QHO4N.js.map +1 -0
  36. package/dist/{chunk-WM5J5TDI.js → chunk-CNWTIMIP.js} +13 -17
  37. package/dist/chunk-CNWTIMIP.js.map +1 -0
  38. package/dist/{chunk-356HZMT4.js → chunk-DDRSMHN4.js} +31 -22
  39. package/dist/chunk-DDRSMHN4.js.map +1 -0
  40. package/dist/{chunk-VTJTGVZZ.js → chunk-DMX2F6B4.js} +2 -2
  41. package/dist/chunk-DMX2F6B4.js.map +1 -0
  42. package/dist/{chunk-3SBCBYB7.js → chunk-EAI4POPB.js} +2 -2
  43. package/dist/{chunk-3SBCBYB7.js.map → chunk-EAI4POPB.js.map} +1 -1
  44. package/dist/{chunk-Y7AJQVWJ.js → chunk-EF6RPXU7.js} +17 -15
  45. package/dist/chunk-EF6RPXU7.js.map +1 -0
  46. package/dist/{chunk-K5X2GCXU.js → chunk-FONOS5RN.js} +14 -15
  47. package/dist/chunk-FONOS5RN.js.map +1 -0
  48. package/dist/{chunk-PMECHR3A.js → chunk-FQEHSKEI.js} +2 -2
  49. package/dist/chunk-FQEHSKEI.js.map +1 -0
  50. package/dist/chunk-HDSFWZ7L.js +12 -0
  51. package/dist/chunk-HDSFWZ7L.js.map +1 -0
  52. package/dist/{chunk-2F5PITAO.js → chunk-HY5MPISE.js} +2 -2
  53. package/dist/chunk-HY5MPISE.js.map +1 -0
  54. package/dist/{chunk-QDK66S4G.js → chunk-I45AU6KH.js} +3 -3
  55. package/dist/chunk-I45AU6KH.js.map +1 -0
  56. package/dist/{chunk-YGCVWGUG.js → chunk-IJS7TPGV.js} +153 -46
  57. package/dist/chunk-IJS7TPGV.js.map +1 -0
  58. package/dist/{chunk-62P3KD57.js → chunk-IUQAUBVM.js} +18 -11
  59. package/dist/chunk-IUQAUBVM.js.map +1 -0
  60. package/dist/chunk-JY6A2ZJZ.js +44 -0
  61. package/dist/chunk-JY6A2ZJZ.js.map +1 -0
  62. package/dist/{chunk-XWUWYSCT.js → chunk-M43IOM5C.js} +20 -10
  63. package/dist/chunk-M43IOM5C.js.map +1 -0
  64. package/dist/{chunk-S7B34VGN.js → chunk-OWNMRMPN.js} +3 -3
  65. package/dist/{chunk-S7B34VGN.js.map → chunk-OWNMRMPN.js.map} +1 -1
  66. package/dist/chunk-RFRE4WKX.js +22 -0
  67. package/dist/chunk-RFRE4WKX.js.map +1 -0
  68. package/dist/{chunk-NNXJCLTV.js → chunk-RJFGWJ4W.js} +2 -2
  69. package/dist/chunk-RJFGWJ4W.js.map +1 -0
  70. package/dist/{chunk-NEF5XAHG.js → chunk-TUTXXC3W.js} +4 -4
  71. package/dist/chunk-TUTXXC3W.js.map +1 -0
  72. package/dist/chunk-TVYH4AN7.js +70 -0
  73. package/dist/chunk-TVYH4AN7.js.map +1 -0
  74. package/dist/{chunk-RCONNA7I.js → chunk-VAXCXZ53.js} +34 -22
  75. package/dist/chunk-VAXCXZ53.js.map +1 -0
  76. package/dist/chunk-XNIYSAMJ.js +52 -0
  77. package/dist/chunk-XNIYSAMJ.js.map +1 -0
  78. package/dist/{chunk-CONSWNIV.js → chunk-Y2YA7QRF.js} +6 -6
  79. package/dist/chunk-Y2YA7QRF.js.map +1 -0
  80. package/dist/cli.js +1809 -0
  81. package/dist/collapse.css +70 -61
  82. package/dist/collapse.js +2 -2
  83. package/dist/confetti.css +45 -0
  84. package/dist/confetti.js +540 -0
  85. package/dist/confetti.js.map +1 -0
  86. package/dist/count-badge.js +3 -3
  87. package/dist/count-badge.js.map +1 -1
  88. package/dist/date-field.js +24 -19
  89. package/dist/date-field.js.map +1 -1
  90. package/dist/date-picker.css +563 -559
  91. package/dist/date-range-field.js +58 -41
  92. package/dist/date-range-field.js.map +1 -1
  93. package/dist/datetime-field.js +24 -19
  94. package/dist/datetime-field.js.map +1 -1
  95. package/dist/dialog.css +176 -172
  96. package/dist/dialog.js +30 -19
  97. package/dist/dialog.js.map +1 -1
  98. package/dist/digit-strip.css +65 -0
  99. package/dist/dropdown.css +65 -0
  100. package/dist/dropdown.js +350 -0
  101. package/dist/dropdown.js.map +1 -0
  102. package/dist/emoji-picker.js +713 -0
  103. package/dist/emoji-picker.js.map +1 -0
  104. package/dist/facebook-feed.css +880 -0
  105. package/dist/facebook-feed.js +697 -0
  106. package/dist/facebook-feed.js.map +1 -0
  107. package/dist/flow-field.css +49 -0
  108. package/dist/flow-field.js +269 -0
  109. package/dist/flow-field.js.map +1 -0
  110. package/dist/glide.js +3 -3
  111. package/dist/icon.css +34 -30
  112. package/dist/input.css +296 -318
  113. package/dist/instagram-feed.css +378 -0
  114. package/dist/instagram-feed.js +272 -0
  115. package/dist/instagram-feed.js.map +1 -0
  116. package/dist/lens.css +119 -0
  117. package/dist/lens.js +307 -0
  118. package/dist/lens.js.map +1 -0
  119. package/dist/mcp.js +379 -184
  120. package/dist/menu-surface.css +127 -0
  121. package/dist/modal.css +11 -7
  122. package/dist/modal.js +24 -17
  123. package/dist/modal.js.map +1 -1
  124. package/dist/morphing-text.css +84 -0
  125. package/dist/morphing-text.js +256 -0
  126. package/dist/morphing-text.js.map +1 -0
  127. package/dist/motion-devtools.css +237 -233
  128. package/dist/motion-devtools.js +7 -6
  129. package/dist/motion-devtools.js.map +1 -1
  130. package/dist/motion-tokens.js +1 -1
  131. package/dist/multi-select.js +20 -17
  132. package/dist/multi-select.js.map +1 -1
  133. package/dist/number-field.js +11 -7
  134. package/dist/number-field.js.map +1 -1
  135. package/dist/odometer.css +58 -59
  136. package/dist/odometer.js +109 -0
  137. package/dist/odometer.js.map +1 -0
  138. package/dist/otp-field.js.map +1 -1
  139. package/dist/overlay.css +24 -20
  140. package/dist/pagination.css +42 -38
  141. package/dist/pagination.js +6 -12
  142. package/dist/pagination.js.map +1 -1
  143. package/dist/popover.css +69 -65
  144. package/dist/popover.js +12 -10
  145. package/dist/radio-group.css +275 -276
  146. package/dist/radio-group.js +70 -95
  147. package/dist/radio-group.js.map +1 -1
  148. package/dist/select.css +291 -386
  149. package/dist/select.js +18 -15
  150. package/dist/select.js.map +1 -1
  151. package/dist/sheet.css +47 -23
  152. package/dist/sheet.js +11 -10
  153. package/dist/status-badge.js +3 -3
  154. package/dist/status-badge.js.map +1 -1
  155. package/dist/styles.css +221 -0
  156. package/dist/support-rail.css +421 -0
  157. package/dist/support-rail.js +243 -0
  158. package/dist/support-rail.js.map +1 -0
  159. package/dist/table.css +333 -323
  160. package/dist/table.js +32 -21
  161. package/dist/table.js.map +1 -1
  162. package/dist/tabs.css +163 -156
  163. package/dist/tabs.js +26 -20
  164. package/dist/tabs.js.map +1 -1
  165. package/dist/tag.css +209 -231
  166. package/dist/tag.js +11 -10
  167. package/dist/tag.js.map +1 -1
  168. package/dist/text-field.js +7 -67
  169. package/dist/text-field.js.map +1 -1
  170. package/dist/textarea.css +205 -211
  171. package/dist/textarea.js +12 -12
  172. package/dist/textarea.js.map +1 -1
  173. package/dist/theme.js +69 -0
  174. package/dist/theme.js.map +1 -0
  175. package/dist/tiktok.css +662 -0
  176. package/dist/tiktok.js +494 -0
  177. package/dist/tiktok.js.map +1 -0
  178. package/dist/time-field.js +6 -6
  179. package/dist/time-field.js.map +1 -1
  180. package/dist/toast.css +237 -233
  181. package/dist/toast.js +43 -47
  182. package/dist/toast.js.map +1 -1
  183. package/dist/toggle-tag.js +1 -1
  184. package/dist/toggle-tag.js.map +1 -1
  185. package/dist/toggle.css +139 -135
  186. package/dist/toggle.js.map +1 -1
  187. package/dist/tooltip.css +79 -78
  188. package/dist/tooltip.js +50 -60
  189. package/dist/tooltip.js.map +1 -1
  190. package/dist/trigger.css +13 -0
  191. package/dist/{alert.d.ts → types/components/composites/alert/Alert.d.ts} +13 -15
  192. package/dist/{date-field.d.ts → types/components/composites/date-picker/DateField.d.ts} +4 -10
  193. package/dist/types/components/composites/date-picker/DateRangeField.d.ts +21 -0
  194. package/dist/{datetime-field.d.ts → types/components/composites/date-picker/DateTimeField.d.ts} +4 -10
  195. package/dist/{time-field.d.ts → types/components/composites/date-picker/TimeField.d.ts} +5 -11
  196. package/dist/types/components/composites/date-picker/calendar-panel.d.ts +16 -0
  197. package/dist/types/components/composites/date-picker/date-utils.d.ts +12 -0
  198. package/dist/types/components/composites/date-picker/field-shell.d.ts +46 -0
  199. package/dist/types/components/composites/date-picker/range-panel.d.ts +24 -0
  200. package/dist/types/components/composites/date-picker/time-core.d.ts +14 -0
  201. package/dist/types/components/composites/date-picker/use-day-focus.d.ts +2 -0
  202. package/dist/{dialog.d.ts → types/components/composites/dialog/Dialog.d.ts} +10 -11
  203. package/dist/types/components/composites/dropdown/Dropdown.d.ts +37 -0
  204. package/dist/types/components/composites/dropdown/menu-panel.d.ts +7 -0
  205. package/dist/types/components/composites/dropdown/types.d.ts +71 -0
  206. package/dist/types/components/composites/emoji-picker/EmojiPickerPanel.d.ts +45 -0
  207. package/dist/types/components/composites/emoji-picker/category-icons.d.ts +9 -0
  208. package/dist/types/components/composites/emoji-picker/data.d.ts +33 -0
  209. package/dist/types/components/composites/emoji-picker/dom.d.ts +19 -0
  210. package/dist/types/components/composites/emoji-picker/getEmojiUrl.d.ts +2 -0
  211. package/dist/types/components/composites/emoji-picker/navigation.d.ts +7 -0
  212. package/dist/types/components/composites/emoji-picker/picker.d.ts +20 -0
  213. package/dist/types/components/composites/emoji-picker/react/category-bar.d.ts +6 -0
  214. package/dist/types/components/composites/emoji-picker/react/useEmojiPicker.d.ts +50 -0
  215. package/dist/types/components/composites/emoji-picker/scaffold.d.ts +8 -0
  216. package/dist/types/components/composites/emoji-picker/search.d.ts +1 -0
  217. package/dist/types/components/composites/emoji-picker/types.d.ts +13 -0
  218. package/dist/{modal.d.ts → types/components/composites/modal/Modal.d.ts} +10 -11
  219. package/dist/{pagination.d.ts → types/components/composites/pagination/Pagination.d.ts} +5 -8
  220. package/dist/{popover.d.ts → types/components/composites/popover/Popover.d.ts} +11 -14
  221. package/dist/{multi-select.d.ts → types/components/composites/select/MultiSelect.d.ts} +12 -11
  222. package/dist/{select.d.ts → types/components/composites/select/Select.d.ts} +16 -14
  223. package/dist/types/components/composites/select/core/index.d.ts +4 -0
  224. package/dist/types/components/composites/select/core/menu.d.ts +13 -0
  225. package/dist/types/components/composites/select/core/panel.d.ts +18 -0
  226. package/dist/types/components/composites/select/core/trigger.d.ts +16 -0
  227. package/dist/{types-SGMShK7R.d.ts → types/components/composites/select/core/types.d.ts} +13 -6
  228. package/dist/types/components/composites/select/core/use-listbox.d.ts +42 -0
  229. package/dist/{sheet.d.ts → types/components/composites/sheet/Sheet.d.ts} +10 -11
  230. package/dist/types/components/composites/sheet/use-sheet-drag.d.ts +13 -0
  231. package/dist/{table.d.ts → types/components/composites/table/Table.d.ts} +12 -12
  232. package/dist/{tabs.d.ts → types/components/composites/tabs/Tabs.d.ts} +13 -13
  233. package/dist/types/components/composites/toast/Toast.d.ts +10 -0
  234. package/dist/{toast-store.d.ts → types/components/composites/toast/toast-store.d.ts} +12 -14
  235. package/dist/{tooltip.d.ts → types/components/composites/tooltip/Tooltip.d.ts} +6 -10
  236. package/dist/types/components/composites/tooltip/tooltip-host.d.ts +1 -0
  237. package/dist/types/components/composites/tooltip/tooltip-store.d.ts +29 -0
  238. package/dist/types/components/compound/support-rail/SupportRail.d.ts +41 -0
  239. package/dist/types/components/dev/MotionDevtools.d.ts +24 -0
  240. package/dist/types/components/dev/slowmo-engine.d.ts +27 -0
  241. package/dist/types/components/expressive/confetti/Confetti.d.ts +43 -0
  242. package/dist/types/components/expressive/facebook-feed/FacebookFeed.d.ts +73 -0
  243. package/dist/types/components/expressive/facebook-feed/chrome.d.ts +30 -0
  244. package/dist/types/components/expressive/facebook-feed/icons.d.ts +21 -0
  245. package/dist/types/components/expressive/facebook-feed/post.d.ts +25 -0
  246. package/dist/types/components/expressive/facebook-feed/reel.d.ts +26 -0
  247. package/dist/types/components/expressive/facebook-feed/story.d.ts +20 -0
  248. package/dist/types/components/expressive/flow-field/FlowField.d.ts +23 -0
  249. package/dist/types/components/expressive/instagram-feed/InstagramFeed.d.ts +59 -0
  250. package/dist/types/components/expressive/lens/Lens.d.ts +23 -0
  251. package/dist/types/components/expressive/morphing-text/MorphingText.d.ts +21 -0
  252. package/dist/types/components/expressive/odometer/Odometer.d.ts +21 -0
  253. package/dist/types/components/expressive/tiktok/TikTok.d.ts +85 -0
  254. package/dist/types/components/expressive/tiktok/glyphs.d.ts +40 -0
  255. package/dist/types/components/expressive/typing-lines/TypingLines.d.ts +25 -0
  256. package/dist/types/components/expressive/weight-field/WeightField.d.ts +19 -0
  257. package/dist/types/components/expressive/youtube/YouTube.d.ts +73 -0
  258. package/dist/types/components/expressive/youtube/format.d.ts +2 -0
  259. package/dist/types/components/expressive/youtube/glyphs.d.ts +16 -0
  260. package/dist/types/components/expressive/youtube/media.d.ts +8 -0
  261. package/dist/types/components/expressive/youtube/post.d.ts +19 -0
  262. package/dist/types/components/expressive/youtube/short.d.ts +18 -0
  263. package/dist/types/components/expressive/youtube/video.d.ts +14 -0
  264. package/dist/types/components/internal/collection/collection.d.ts +19 -0
  265. package/dist/types/components/internal/glass/glint.d.ts +1 -0
  266. package/dist/types/components/internal/hooks/use-controllable.d.ts +1 -0
  267. package/dist/types/components/internal/hooks/use-media-query.d.ts +1 -0
  268. package/dist/types/components/internal/hooks/use-scroll-edges.d.ts +10 -0
  269. package/dist/types/components/internal/hooks/use-typeahead.d.ts +5 -0
  270. package/dist/types/components/internal/icon/Icon.d.ts +33 -0
  271. package/dist/types/components/internal/icon/IconSlot.d.ts +7 -0
  272. package/dist/types/components/internal/menu/menu-row.d.ts +11 -0
  273. package/dist/types/components/internal/overlay/focus.d.ts +8 -0
  274. package/dist/types/components/internal/overlay/layer.d.ts +38 -0
  275. package/dist/types/components/internal/overlay/modal.d.ts +18 -0
  276. package/dist/types/components/internal/overlay/position.d.ts +14 -0
  277. package/dist/types/components/internal/support/types.d.ts +15 -0
  278. package/dist/types/components/internal/utils/activation.d.ts +23 -0
  279. package/dist/types/components/internal/utils/cx.d.ts +1 -0
  280. package/dist/types/components/internal/utils/token-px.d.ts +1 -0
  281. package/dist/{avatar.d.ts → types/components/primitives/avatar/Avatar.d.ts} +10 -12
  282. package/dist/{avatar-group.d.ts → types/components/primitives/avatar/AvatarGroup.d.ts} +7 -9
  283. package/dist/{badge.d.ts → types/components/primitives/badge/Badge.d.ts} +8 -10
  284. package/dist/types/components/primitives/badge/CountBadge.d.ts +8 -0
  285. package/dist/types/components/primitives/badge/StatusBadge.d.ts +15 -0
  286. package/dist/types/components/primitives/badge/digit-strip.d.ts +5 -0
  287. package/dist/{button.d.ts → types/components/primitives/button/Button.d.ts} +6 -8
  288. package/dist/{checkbox.d.ts → types/components/primitives/checkbox/Checkbox.d.ts} +6 -8
  289. package/dist/types/components/primitives/checkbox/check-glyph.d.ts +6 -0
  290. package/dist/{collapse.d.ts → types/components/primitives/collapse/Collapse.d.ts} +12 -13
  291. package/dist/types/components/primitives/collapse/collapse.typecheck.d.ts +2 -0
  292. package/dist/{number-field.d.ts → types/components/primitives/input/NumberField.d.ts} +7 -9
  293. package/dist/{otp-field.d.ts → types/components/primitives/input/OtpField.d.ts} +6 -8
  294. package/dist/{text-field.d.ts → types/components/primitives/input/TextField.d.ts} +7 -9
  295. package/dist/types/components/primitives/input/field-chrome.d.ts +45 -0
  296. package/dist/{radio-group.d.ts → types/components/primitives/radio-group/RadioGroup.d.ts} +8 -10
  297. package/dist/{tag.d.ts → types/components/primitives/tag/Tag.d.ts} +9 -12
  298. package/dist/{toggle-tag.d.ts → types/components/primitives/tag/ToggleTag.d.ts} +7 -8
  299. package/dist/{textarea.d.ts → types/components/primitives/textarea/Textarea.d.ts} +7 -9
  300. package/dist/{toggle.d.ts → types/components/primitives/toggle/Toggle.d.ts} +6 -8
  301. package/dist/{dom-props-C0jrllBw.d.ts → types/dom-props.d.ts} +1 -3
  302. package/dist/types/engine/animate.d.ts +30 -0
  303. package/dist/types/engine/drag.d.ts +17 -0
  304. package/dist/types/engine/ease.d.ts +15 -0
  305. package/dist/types/engine/flip.d.ts +18 -0
  306. package/dist/types/engine/index.d.ts +4 -0
  307. package/dist/types/engine/loop.d.ts +9 -0
  308. package/dist/types/motion/element.d.ts +17 -0
  309. package/dist/types/motion/flip.d.ts +4 -0
  310. package/dist/types/motion/glide.d.ts +11 -0
  311. package/dist/types/motion/motion-timing.d.ts +16 -0
  312. package/dist/types/motion/presence-context.d.ts +11 -0
  313. package/dist/types/motion/presence.d.ts +12 -0
  314. package/dist/types/motion/presets.d.ts +6 -0
  315. package/dist/{timing-7JA_zQHP.d.ts → types/motion/timing.d.ts} +9 -9
  316. package/dist/types/motion/use-motion.d.ts +17 -0
  317. package/dist/types/tokens/component-styles.generated.d.ts +262 -0
  318. package/dist/{motion-scale-Canq4stZ.d.ts → types/tokens/motion-scale.d.ts} +4 -4
  319. package/dist/{motion-tokens.d.ts → types/tokens/motion-tokens.d.ts} +9 -9
  320. package/dist/types/tokens/theme-tokens.generated.d.ts +1249 -0
  321. package/dist/types/tokens/theme.d.ts +12 -0
  322. package/dist/typing-lines.css +92 -0
  323. package/dist/typing-lines.js +139 -0
  324. package/dist/typing-lines.js.map +1 -0
  325. package/dist/weight-field.css +84 -0
  326. package/dist/weight-field.js +17 -0
  327. package/dist/weight-field.js.map +1 -0
  328. package/dist/youtube.css +611 -0
  329. package/dist/youtube.js +814 -0
  330. package/dist/youtube.js.map +1 -0
  331. package/package.json +155 -49
  332. package/skills/zyncat-ui/SKILL.md +95 -0
  333. package/skills/zyncat-ui/references/components.md +85 -0
  334. package/skills/zyncat-ui/references/recipes.md +171 -0
  335. package/skills/zyncat-ui/references/theming.md +83 -0
  336. package/src/components/composites/alert/Alert.tsx +13 -11
  337. package/src/components/composites/alert/Alert.usage.md +15 -0
  338. package/src/components/composites/alert/alert.css +126 -121
  339. package/src/components/composites/date-picker/DateField.tsx +7 -2
  340. package/src/components/composites/date-picker/DateField.usage.md +10 -0
  341. package/src/components/composites/date-picker/DateRangeField.tsx +18 -16
  342. package/src/components/composites/date-picker/DateRangeField.usage.md +10 -0
  343. package/src/components/composites/date-picker/DateTimeField.tsx +10 -5
  344. package/src/components/composites/date-picker/DateTimeField.usage.md +12 -0
  345. package/src/components/composites/date-picker/TimeField.tsx +3 -1
  346. package/src/components/composites/date-picker/TimeField.usage.md +12 -0
  347. package/src/components/composites/date-picker/calendar-panel.tsx +15 -10
  348. package/src/components/composites/date-picker/date-picker.css +563 -559
  349. package/src/components/composites/date-picker/field-shell.tsx +9 -3
  350. package/src/components/composites/date-picker/range-panel.tsx +23 -8
  351. package/src/components/composites/date-picker/time-core.tsx +2 -0
  352. package/src/components/composites/dialog/Dialog.tsx +30 -15
  353. package/src/components/composites/dialog/Dialog.usage.md +17 -0
  354. package/src/components/composites/dialog/dialog.css +176 -172
  355. package/src/components/composites/dropdown/Dropdown.tsx +184 -0
  356. package/src/components/composites/dropdown/Dropdown.usage.md +19 -0
  357. package/src/components/composites/dropdown/dropdown.css +65 -0
  358. package/src/components/composites/dropdown/menu-panel.tsx +255 -0
  359. package/src/components/composites/dropdown/types.ts +95 -0
  360. package/src/components/composites/emoji-picker/EmojiPickerPanel.tsx +153 -0
  361. package/src/components/composites/emoji-picker/EmojiPickerPanel.usage.md +26 -0
  362. package/src/components/composites/emoji-picker/category-icons.ts +29 -0
  363. package/src/components/composites/emoji-picker/data.ts +83 -0
  364. package/src/components/composites/emoji-picker/dom.ts +79 -0
  365. package/src/components/composites/emoji-picker/getEmojiUrl.ts +17 -0
  366. package/src/components/composites/emoji-picker/navigation.ts +86 -0
  367. package/src/components/composites/emoji-picker/picker.ts +169 -0
  368. package/src/components/composites/emoji-picker/react/category-bar.tsx +77 -0
  369. package/src/components/composites/emoji-picker/react/useEmojiPicker.ts +139 -0
  370. package/src/components/composites/emoji-picker/scaffold.ts +74 -0
  371. package/src/components/composites/emoji-picker/search.ts +79 -0
  372. package/src/components/composites/emoji-picker/styles.css +221 -0
  373. package/src/components/composites/emoji-picker/types.ts +14 -0
  374. package/src/components/composites/modal/Modal.tsx +24 -13
  375. package/src/components/composites/modal/Modal.usage.md +24 -0
  376. package/src/components/composites/modal/modal.css +11 -7
  377. package/src/components/composites/pagination/Pagination.tsx +6 -11
  378. package/src/components/composites/pagination/Pagination.usage.md +12 -0
  379. package/src/components/composites/pagination/pagination.css +42 -38
  380. package/src/components/composites/popover/Popover.tsx +22 -7
  381. package/src/components/composites/popover/Popover.usage.md +15 -0
  382. package/src/components/composites/popover/popover.css +69 -65
  383. package/src/components/composites/select/MultiSelect.tsx +13 -5
  384. package/src/components/composites/select/MultiSelect.usage.md +12 -0
  385. package/src/components/composites/select/Select.tsx +23 -7
  386. package/src/components/composites/select/Select.usage.md +20 -0
  387. package/src/components/composites/select/core/index.ts +1 -1
  388. package/src/components/composites/select/core/menu.tsx +8 -6
  389. package/src/components/composites/select/core/panel.tsx +25 -26
  390. package/src/components/composites/select/core/trigger.tsx +36 -24
  391. package/src/components/composites/select/core/types.ts +17 -15
  392. package/src/components/composites/select/core/use-listbox.ts +22 -21
  393. package/src/components/composites/select/select.css +291 -386
  394. package/src/components/composites/sheet/Sheet.tsx +28 -18
  395. package/src/components/composites/sheet/Sheet.usage.md +15 -0
  396. package/src/components/composites/sheet/sheet.css +47 -23
  397. package/src/components/composites/sheet/use-sheet-drag.ts +19 -15
  398. package/src/components/composites/table/Table.tsx +17 -6
  399. package/src/components/composites/table/Table.usage.md +19 -0
  400. package/src/components/composites/table/table.css +333 -323
  401. package/src/components/composites/tabs/Tabs.tsx +31 -23
  402. package/src/components/composites/tabs/Tabs.usage.md +13 -0
  403. package/src/components/composites/tabs/tabs.css +163 -156
  404. package/src/components/composites/toast/Toast.tsx +48 -51
  405. package/src/components/composites/toast/Toast.usage.md +23 -0
  406. package/src/components/composites/toast/toast-store.usage.md +16 -0
  407. package/src/components/composites/toast/toast.css +237 -233
  408. package/src/components/composites/tooltip/Tooltip.tsx +13 -8
  409. package/src/components/composites/tooltip/Tooltip.usage.md +14 -0
  410. package/src/components/composites/tooltip/tooltip-host.tsx +29 -61
  411. package/src/components/composites/tooltip/tooltip-store.ts +10 -0
  412. package/src/components/composites/tooltip/tooltip.css +79 -78
  413. package/src/components/compound/support-rail/SupportRail.tsx +343 -0
  414. package/src/components/compound/support-rail/SupportRail.usage.md +18 -0
  415. package/src/components/compound/support-rail/support-rail.css +421 -0
  416. package/src/components/dev/MotionDevtools.tsx +3 -1
  417. package/src/components/dev/MotionDevtools.usage.md +16 -0
  418. package/src/components/dev/motion-devtools.css +237 -233
  419. package/src/components/expressive/confetti/Confetti.tsx +727 -0
  420. package/src/components/expressive/confetti/Confetti.usage.md +18 -0
  421. package/src/components/expressive/confetti/confetti.css +45 -0
  422. package/src/components/expressive/facebook-feed/FacebookFeed.tsx +200 -0
  423. package/src/components/expressive/facebook-feed/FacebookFeed.usage.md +18 -0
  424. package/src/components/expressive/facebook-feed/chrome.tsx +120 -0
  425. package/src/components/expressive/facebook-feed/facebook-feed.css +880 -0
  426. package/src/components/expressive/facebook-feed/icons.tsx +145 -0
  427. package/src/components/expressive/facebook-feed/post.tsx +213 -0
  428. package/src/components/expressive/facebook-feed/reel.tsx +199 -0
  429. package/src/components/expressive/facebook-feed/story.tsx +132 -0
  430. package/src/components/expressive/flow-field/FlowField.tsx +348 -0
  431. package/src/components/expressive/flow-field/FlowField.usage.md +19 -0
  432. package/src/components/expressive/flow-field/flow-field.css +49 -0
  433. package/src/components/expressive/instagram-feed/InstagramFeed.tsx +374 -0
  434. package/src/components/expressive/instagram-feed/InstagramFeed.usage.md +18 -0
  435. package/src/components/expressive/instagram-feed/instagram-feed.css +378 -0
  436. package/src/components/expressive/lens/Lens.tsx +415 -0
  437. package/src/components/expressive/lens/Lens.usage.md +20 -0
  438. package/src/components/expressive/lens/lens.css +119 -0
  439. package/src/components/expressive/morphing-text/MorphingText.tsx +328 -0
  440. package/src/components/expressive/morphing-text/MorphingText.usage.md +19 -0
  441. package/src/components/expressive/morphing-text/morphing-text.css +84 -0
  442. package/src/components/expressive/odometer/Odometer.tsx +158 -0
  443. package/src/components/expressive/odometer/Odometer.usage.md +17 -0
  444. package/src/components/expressive/odometer/odometer.css +61 -0
  445. package/src/components/expressive/tiktok/TikTok.tsx +542 -0
  446. package/src/components/expressive/tiktok/TikTok.usage.md +17 -0
  447. package/src/components/expressive/tiktok/glyphs.tsx +163 -0
  448. package/src/components/expressive/tiktok/tiktok.css +662 -0
  449. package/src/components/expressive/typing-lines/TypingLines.tsx +0 -0
  450. package/src/components/expressive/typing-lines/TypingLines.usage.md +17 -0
  451. package/src/components/expressive/typing-lines/typing-lines.css +92 -0
  452. package/src/components/expressive/weight-field/WeightField.tsx +41 -0
  453. package/src/components/expressive/weight-field/WeightField.usage.md +20 -0
  454. package/src/components/expressive/weight-field/weight-field.css +84 -0
  455. package/src/components/expressive/youtube/YouTube.tsx +192 -0
  456. package/src/components/expressive/youtube/YouTube.usage.md +18 -0
  457. package/src/components/expressive/youtube/format.ts +22 -0
  458. package/src/components/expressive/youtube/glyphs.tsx +235 -0
  459. package/src/components/expressive/youtube/media.tsx +18 -0
  460. package/src/components/expressive/youtube/post.tsx +282 -0
  461. package/src/components/expressive/youtube/short.tsx +212 -0
  462. package/src/components/expressive/youtube/video.tsx +75 -0
  463. package/src/components/expressive/youtube/youtube.css +611 -0
  464. package/src/components/internal/collection/collection.ts +44 -0
  465. package/src/components/internal/glass/glass.css +88 -84
  466. package/src/components/internal/hooks/use-media-query.ts +20 -0
  467. package/src/components/internal/hooks/use-typeahead.ts +28 -0
  468. package/src/components/internal/icon/Icon.tsx +2 -0
  469. package/src/components/internal/icon/IconSlot.tsx +2 -0
  470. package/src/components/internal/icon/icon.css +34 -30
  471. package/src/components/internal/menu/menu-row.tsx +34 -0
  472. package/src/components/internal/menu/menu-surface.css +127 -0
  473. package/src/components/internal/overlay/focus.ts +26 -10
  474. package/src/components/internal/overlay/layer.tsx +50 -19
  475. package/src/components/internal/overlay/modal.tsx +14 -12
  476. package/src/components/internal/overlay/overlay.css +24 -20
  477. package/src/components/internal/overlay/position.ts +19 -9
  478. package/src/components/internal/overlay/trigger.css +13 -0
  479. package/src/components/internal/support/types.ts +16 -0
  480. package/src/components/internal/utils/activation.ts +78 -0
  481. package/src/components/primitives/avatar/Avatar.tsx +2 -0
  482. package/src/components/primitives/avatar/Avatar.usage.md +12 -0
  483. package/src/components/primitives/avatar/AvatarGroup.tsx +3 -1
  484. package/src/components/primitives/avatar/AvatarGroup.usage.md +15 -0
  485. package/src/components/primitives/avatar/avatar.css +179 -174
  486. package/src/components/primitives/badge/Badge.tsx +3 -1
  487. package/src/components/primitives/badge/Badge.usage.md +14 -0
  488. package/src/components/primitives/badge/CountBadge.tsx +2 -2
  489. package/src/components/primitives/badge/CountBadge.usage.md +13 -0
  490. package/src/components/primitives/badge/StatusBadge.tsx +3 -1
  491. package/src/components/primitives/badge/StatusBadge.usage.md +14 -0
  492. package/src/components/primitives/badge/badge.css +166 -160
  493. package/src/components/primitives/badge/digit-strip.css +65 -0
  494. package/src/components/primitives/badge/{odometer.tsx → digit-strip.tsx} +3 -3
  495. package/src/components/primitives/button/Button.tsx +2 -0
  496. package/src/components/primitives/button/Button.usage.md +14 -0
  497. package/src/components/primitives/button/button.css +272 -246
  498. package/src/components/primitives/checkbox/Checkbox.tsx +3 -1
  499. package/src/components/primitives/checkbox/Checkbox.usage.md +12 -0
  500. package/src/components/primitives/checkbox/check-glyph.tsx +1 -0
  501. package/src/components/primitives/checkbox/checkbox.css +158 -153
  502. package/src/components/primitives/collapse/Collapse.tsx +3 -1
  503. package/src/components/primitives/collapse/Collapse.usage.md +17 -0
  504. package/src/components/primitives/collapse/collapse.css +70 -61
  505. package/src/components/primitives/collapse/collapse.typecheck.tsx +2 -0
  506. package/src/components/primitives/input/NumberField.tsx +18 -5
  507. package/src/components/primitives/input/NumberField.usage.md +12 -0
  508. package/src/components/primitives/input/OtpField.tsx +2 -0
  509. package/src/components/primitives/input/OtpField.usage.md +12 -0
  510. package/src/components/primitives/input/TextField.tsx +16 -4
  511. package/src/components/primitives/input/TextField.usage.md +13 -0
  512. package/src/components/primitives/input/field-chrome.tsx +11 -2
  513. package/src/components/primitives/input/input.css +296 -318
  514. package/src/components/primitives/radio-group/RadioGroup.tsx +20 -44
  515. package/src/components/primitives/radio-group/RadioGroup.usage.md +13 -0
  516. package/src/components/primitives/radio-group/radio-group.css +275 -276
  517. package/src/components/primitives/tag/Tag.tsx +10 -6
  518. package/src/components/primitives/tag/Tag.usage.md +14 -0
  519. package/src/components/primitives/tag/ToggleTag.tsx +4 -2
  520. package/src/components/primitives/tag/ToggleTag.usage.md +14 -0
  521. package/src/components/primitives/tag/tag.css +209 -231
  522. package/src/components/primitives/textarea/Textarea.tsx +17 -7
  523. package/src/components/primitives/textarea/Textarea.usage.md +12 -0
  524. package/src/components/primitives/textarea/textarea.css +205 -211
  525. package/src/components/primitives/toggle/Toggle.tsx +3 -1
  526. package/src/components/primitives/toggle/Toggle.usage.md +12 -0
  527. package/src/components/primitives/toggle/toggle.css +139 -135
  528. package/src/engine/animate.ts +40 -13
  529. package/src/engine/ease.ts +1 -0
  530. package/src/engine/flip.ts +32 -15
  531. package/src/engine/index.ts +2 -1
  532. package/src/engine/loop.ts +97 -0
  533. package/src/mcp/server.ts +315 -221
  534. package/src/motion/element.tsx +1 -0
  535. package/src/motion/flip.ts +29 -10
  536. package/src/motion/glide.tsx +11 -14
  537. package/src/motion/glide.usage.md +15 -0
  538. package/src/motion/motion-timing.ts +3 -3
  539. package/src/motion/presence.tsx +38 -21
  540. package/src/motion/presets.ts +13 -0
  541. package/src/motion/timing.ts +1 -0
  542. package/src/motion/use-motion.ts +16 -3
  543. package/src/styles.css +5 -0
  544. package/src/tokens/avatar.css +20 -16
  545. package/src/tokens/color.css +67 -56
  546. package/src/tokens/component-styles.generated.ts +270 -0
  547. package/src/tokens/elevation.css +28 -17
  548. package/src/tokens/fonts.css +1 -1
  549. package/src/tokens/glass.css +19 -15
  550. package/src/tokens/icons.css +8 -4
  551. package/src/tokens/layers.css +9 -4
  552. package/src/tokens/motion-scale.ts +4 -0
  553. package/src/tokens/motion-tokens.ts +42 -12
  554. package/src/tokens/motion-tokens.usage.md +16 -0
  555. package/src/tokens/motion.css +63 -45
  556. package/src/tokens/radius.css +12 -8
  557. package/src/tokens/semantic.css +62 -54
  558. package/src/tokens/spacing.css +25 -21
  559. package/src/tokens/theme-tokens.generated.ts +1278 -0
  560. package/src/tokens/theme.tsx +83 -0
  561. package/src/tokens/theme.usage.md +36 -0
  562. package/src/tokens/typography.css +53 -49
  563. package/dist/chunk-2ERBBFZS.js.map +0 -1
  564. package/dist/chunk-2F5PITAO.js.map +0 -1
  565. package/dist/chunk-2QWJ6FAX.js.map +0 -1
  566. package/dist/chunk-356HZMT4.js.map +0 -1
  567. package/dist/chunk-62P3KD57.js.map +0 -1
  568. package/dist/chunk-7SZCJ7WI.js.map +0 -1
  569. package/dist/chunk-CONSWNIV.js.map +0 -1
  570. package/dist/chunk-FTOAUJL5.js.map +0 -1
  571. package/dist/chunk-I4XQ4PV2.js.map +0 -1
  572. package/dist/chunk-K5X2GCXU.js.map +0 -1
  573. package/dist/chunk-NEF5XAHG.js.map +0 -1
  574. package/dist/chunk-NNXJCLTV.js.map +0 -1
  575. package/dist/chunk-OMHQ4U4J.js.map +0 -1
  576. package/dist/chunk-PMECHR3A.js.map +0 -1
  577. package/dist/chunk-QDK66S4G.js.map +0 -1
  578. package/dist/chunk-RCONNA7I.js.map +0 -1
  579. package/dist/chunk-S5ZTZANS.js.map +0 -1
  580. package/dist/chunk-UXONUUPI.js.map +0 -1
  581. package/dist/chunk-VTJTGVZZ.js.map +0 -1
  582. package/dist/chunk-WM5J5TDI.js.map +0 -1
  583. package/dist/chunk-XWUWYSCT.js.map +0 -1
  584. package/dist/chunk-Y7AJQVWJ.js.map +0 -1
  585. package/dist/chunk-YGCVWGUG.js.map +0 -1
  586. package/dist/chunk-YGGCQNNU.js.map +0 -1
  587. package/dist/chunk-ZCOUPPTI.js.map +0 -1
  588. package/dist/count-badge.d.ts +0 -13
  589. package/dist/date-range-field.d.ts +0 -33
  590. package/dist/field-chrome-CMPOQSLs.d.ts +0 -28
  591. package/dist/field-shell-Cuda-feL.d.ts +0 -24
  592. package/dist/glide.d.ts +0 -15
  593. package/dist/motion-devtools.d.ts +0 -51
  594. package/dist/status-badge.d.ts +0 -19
  595. package/dist/toast.d.ts +0 -12
  596. package/llms.txt +0 -220
  597. package/src/components/primitives/badge/odometer.css +0 -62
@@ -0,0 +1,43 @@
1
+ import './confetti.css';
2
+ import { type HTMLAttributes, type Ref } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { ConfettiStyle } from '../../../tokens/component-styles.generated';
5
+ export type ConfettiEmitter = 'sides' | 'top' | 'corners';
6
+ export type ConfettiField = 'container' | 'viewport';
7
+ export interface ConfettiFireOptions {
8
+ /** Pieces this burst sends, clamped to 1-520. Falls back to the `count` prop. */
9
+ count?: number;
10
+ /** Seconds this burst's emitter stays open, clamped to 0-10. Falls back to the `duration` prop. */
11
+ duration?: number;
12
+ /** Emitter geometry for this burst. Falls back to the `emitter` prop. */
13
+ emitter?: ConfettiEmitter;
14
+ }
15
+ export interface ConfettiHandle {
16
+ /** Sends one burst. Bursts coexist - firing again while pieces are still airborne adds to the field rather than replacing it. */
17
+ fire: (options?: ConfettiFireOptions) => void;
18
+ /** Empties the field and stops the simulation immediately. */
19
+ clear: () => void;
20
+ }
21
+ export interface ConfettiOwnProps {
22
+ /** Where pieces are launched from: two side cannons, a full-width fall, or two floor-corner cannons. @default 'sides' */
23
+ emitter?: ConfettiEmitter;
24
+ /** Pieces one fire sends, clamped to 1-520. The field itself holds 520; beyond that the oldest piece is retired. @default 170 */
25
+ count?: number;
26
+ /** Seconds the emitter stays open, clamped to 0-10. Pieces leave front-loaded inside that window, so 0.15 reads as one shove and 2.5 as a burst that tapers into a fall. @default 0.15 */
27
+ duration?: number;
28
+ /** Multiplies the simulation rate; sampled live on every frame. @default 1 */
29
+ speed?: number;
30
+ /** `container` fills the nearest positioned ancestor; `viewport` portals the canvas to the body and pins it to the window above the toast layer, so a transformed ancestor cannot trap it. Switching field remounts the canvas and drops pieces in flight. @default 'container' */
31
+ field?: ConfettiField;
32
+ /** Imperative handle - call `fire()` on it to send a burst, `clear()` to empty the field. */
33
+ ref?: Ref<ConfettiHandle>;
34
+ /** Extra class(es) merged onto the canvas. */
35
+ className?: string;
36
+ /** Inline styles merged onto the canvas. */
37
+ style?: ConfettiStyle;
38
+ }
39
+ export interface ConfettiProps extends ConfettiOwnProps {
40
+ /** Standard <canvas> attributes (aria-*, data-*, title, ...) forwarded to the canvas. */
41
+ htmlProps?: Omit<HTMLAttributes<HTMLCanvasElement>, keyof ConfettiOwnProps> & DataAttributes;
42
+ }
43
+ export declare function Confetti({ emitter, count, duration, speed, field, ref, className, style, htmlProps, }: ConfettiProps): import("react").JSX.Element;
@@ -0,0 +1,73 @@
1
+ import './facebook-feed.css';
2
+ import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { FacebookFeedAction, FacebookMediaType, FacebookRatio } from './chrome';
5
+ import { type FacebookPostWidth } from './post';
6
+ import { type FacebookReelStage } from './reel';
7
+ export type { FacebookFeedAction, FacebookMediaType, FacebookRatio } from './chrome';
8
+ export type { FacebookPostWidth } from './post';
9
+ export type { FacebookReelStage } from './reel';
10
+ export type FacebookSurface = 'post' | 'reel' | 'story';
11
+ export interface FacebookFeedOwnProps {
12
+ /** Which Facebook surface to reproduce: the feed card, the reels stage, or the story stage. @default 'post' */
13
+ surface?: FacebookSurface;
14
+ /** Feed card width. `mobile` is the 390px square-cornered card, `web` the 680px rounded one. @default 'web' */
15
+ width?: FacebookPostWidth;
16
+ /** Reels stage. `narrow` is 557x878 around a 9:16 video, `wide` is 1601x886 around a 16:9 one. @default 'narrow' */
17
+ stage?: FacebookReelStage;
18
+ /** Whether `media` is a still or a clip. A still is echoed into the feed's blurred letterbox backdrop; a clip is not, so it is never fetched twice. @default 'image' */
19
+ type?: FacebookMediaType;
20
+ /** Poster or page name in the header. @default 'Swiss Nature' */
21
+ name?: string;
22
+ /** Post body. The feed cuts it at 250 characters with `See more`; reels take one ellipsised line. Hashtags and @mentions render in link blue. */
23
+ caption?: string;
24
+ /** Frame aspect for the feed card and the story card. Reels stages are fixed. @default '4:5' */
25
+ ratio?: FacebookRatio;
26
+ /** A URL string, or your own node (`<img>`, `<video>`, `next/image`). Omit for a CSS-only placeholder. Nothing is ever autoplayed and no request is ever made for you. */
27
+ media?: ReactNode;
28
+ /** A URL string, or your own node, for the header portrait. Omit for the platform's grey. */
29
+ avatar?: ReactNode;
30
+ /** Show the `· Follow` affordance. Blue in the feed, white on reels. @default true */
31
+ follow?: boolean;
32
+ /** Blue active-story ring around the feed avatar. @default true */
33
+ ring?: boolean;
34
+ /** Relative timestamp in the meta line. @default '31m' */
35
+ stamp?: string;
36
+ /** Blue verified badge after the reels name. @default true */
37
+ verified?: boolean;
38
+ /** Track name on the reels and story audio line. @default 'Original audio' */
39
+ audio?: string;
40
+ /** Reaction count. Exact below 1,000, then `1.2K` / `48K` / `1.4M`. @default 267 */
41
+ likes?: number;
42
+ /** Comment count, formatted like `likes`. @default 12 */
43
+ comments?: number;
44
+ /** Share count, formatted like `likes`. @default 4 */
45
+ shares?: number;
46
+ /** How many story progress segments to draw. @default 2 */
47
+ segments?: number;
48
+ /** Index of the newest filled story segment; every earlier one fills too. @default 0 */
49
+ segment?: number;
50
+ /** Controlled mute state for the reels and story sound button. */
51
+ muted?: boolean;
52
+ /** Uncontrolled initial mute state. @default true on reels, false on the story */
53
+ defaultMuted?: boolean;
54
+ /** Fires when the sound button is pressed. You own the actual `<video>`, so wire it to your own element. */
55
+ onMutedChange?: (muted: boolean) => void;
56
+ /** Controlled like state for the thumb on the feed card and the reels rail. The displayed reaction count adds one while this is on. */
57
+ liked?: boolean;
58
+ /** Uncontrolled initial like state. @default false */
59
+ defaultLiked?: boolean;
60
+ /** Fires when the thumb toggles the like. */
61
+ onLikedChange?: (liked: boolean) => void;
62
+ /** Fires for the actions that carry no state: comment, share, follow, menu, dismiss, more, search, play. */
63
+ onAction?: (action: FacebookFeedAction) => void;
64
+ /** Extra class(es) merged onto the surface root. */
65
+ className?: string;
66
+ /** Inline styles merged onto the surface root. */
67
+ style?: CSSProperties;
68
+ }
69
+ export interface FacebookFeedProps extends FacebookFeedOwnProps {
70
+ /** Standard element attributes (aria-*, data-*, title, ...) forwarded to the surface root. */
71
+ htmlProps?: Omit<HTMLAttributes<HTMLElement>, keyof FacebookFeedOwnProps> & DataAttributes;
72
+ }
73
+ export declare function FacebookFeed({ surface, width, stage, type, name, caption, ratio, media, avatar, follow, ring, stamp, verified, audio, likes, comments, shares, segments, segment, muted, defaultMuted, onMutedChange, liked, defaultLiked, onLikedChange, onAction, className, style, htmlProps, }: FacebookFeedProps): import("react").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import type { ReactNode } from 'react';
2
+ export type FacebookRatio = '4:5' | '1.1:1' | '1:1' | '3:4' | '16:9';
3
+ export type FacebookMediaType = 'image' | 'video';
4
+ /** The actions a surface reports that carry no state of their own. */
5
+ export type FacebookFeedAction = 'comment' | 'share' | 'follow' | 'menu' | 'dismiss' | 'more' | 'search' | 'play';
6
+ export declare function countValue(value: number): number;
7
+ export declare function compactCount(value: number): string;
8
+ export interface CaptionCut {
9
+ head: string;
10
+ cut: boolean;
11
+ }
12
+ export declare function cutCaption(text: string): CaptionCut;
13
+ export interface CaptionRun {
14
+ text: string;
15
+ link: boolean;
16
+ }
17
+ export declare function splitCaption(text: string): CaptionRun[];
18
+ export interface MediaSurfaceProps {
19
+ media?: ReactNode;
20
+ type: FacebookMediaType;
21
+ frontClassName: string;
22
+ backClassName?: string;
23
+ frontRatio?: FacebookRatio;
24
+ }
25
+ export declare function MediaSurface({ media, type, frontClassName, backClassName, frontRatio }: MediaSurfaceProps): import("react").JSX.Element;
26
+ export interface PortraitProps {
27
+ avatar?: ReactNode;
28
+ className: string;
29
+ }
30
+ export declare function Portrait({ avatar, className }: PortraitProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ export interface GlyphProps {
2
+ className: string;
3
+ }
4
+ export declare function PrivacyGlobe({ className }: GlyphProps): import("react").JSX.Element;
5
+ export declare function Dismiss({ className }: GlyphProps): import("react").JSX.Element;
6
+ export declare function ThumbOutline({ className }: GlyphProps): import("react").JSX.Element;
7
+ export declare function CommentOutline({ className }: GlyphProps): import("react").JSX.Element;
8
+ export declare function ShareOutline({ className }: GlyphProps): import("react").JSX.Element;
9
+ export declare function ThumbSolid(): import("react").JSX.Element;
10
+ export declare function HeartSolid(): import("react").JSX.Element;
11
+ export declare function VerifiedBadge({ className }: GlyphProps): import("react").JSX.Element;
12
+ export declare function Magnifier({ className }: GlyphProps): import("react").JSX.Element;
13
+ export declare function SpeakerOutlineOff({ className }: GlyphProps): import("react").JSX.Element;
14
+ export declare function SpeakerOutlineOn({ className }: GlyphProps): import("react").JSX.Element;
15
+ export declare function SpeakerSolidOn({ className }: GlyphProps): import("react").JSX.Element;
16
+ export declare function SpeakerSolidOff({ className, crossClassName }: GlyphProps & {
17
+ crossClassName: string;
18
+ }): import("react").JSX.Element;
19
+ export declare function PlaySolid({ className }: GlyphProps): import("react").JSX.Element;
20
+ export declare function AudienceFriends({ className }: GlyphProps): import("react").JSX.Element;
21
+ export declare function ChevronRight({ className }: GlyphProps): import("react").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';
2
+ import { type FacebookFeedAction, type FacebookMediaType, type FacebookRatio } from './chrome';
3
+ export type FacebookPostWidth = 'mobile' | 'web';
4
+ export interface FacebookPostProps {
5
+ name: string;
6
+ caption: string;
7
+ stamp: string;
8
+ follow: boolean;
9
+ ring: boolean;
10
+ ratio: FacebookRatio;
11
+ media?: ReactNode;
12
+ avatar?: ReactNode;
13
+ type: FacebookMediaType;
14
+ likes: number;
15
+ comments: number;
16
+ shares: number;
17
+ width: FacebookPostWidth;
18
+ liked: boolean;
19
+ onLikedChange: (liked: boolean) => void;
20
+ onAction?: (action: FacebookFeedAction) => void;
21
+ className: string;
22
+ style?: CSSProperties;
23
+ htmlProps?: HTMLAttributes<HTMLElement>;
24
+ }
25
+ export declare function FacebookPost({ name, caption, stamp, follow, ring, ratio, media, avatar, type, likes, comments, shares, width, liked, onLikedChange, onAction, className, style, htmlProps, }: FacebookPostProps): import("react").JSX.Element;
@@ -0,0 +1,26 @@
1
+ import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';
2
+ import { type FacebookFeedAction, type FacebookMediaType } from './chrome';
3
+ export type FacebookReelStage = 'narrow' | 'wide';
4
+ export interface FacebookReelProps {
5
+ name: string;
6
+ caption: string;
7
+ stage: FacebookReelStage;
8
+ follow: boolean;
9
+ verified: boolean;
10
+ audio: string;
11
+ media?: ReactNode;
12
+ avatar?: ReactNode;
13
+ type: FacebookMediaType;
14
+ likes: number;
15
+ comments: number;
16
+ shares: number;
17
+ muted: boolean;
18
+ onMutedChange: (muted: boolean) => void;
19
+ liked: boolean;
20
+ onLikedChange: (liked: boolean) => void;
21
+ onAction?: (action: FacebookFeedAction) => void;
22
+ className: string;
23
+ style?: CSSProperties;
24
+ htmlProps?: HTMLAttributes<HTMLElement>;
25
+ }
26
+ export declare function FacebookReel({ name, caption, stage, follow, verified, audio, media, avatar, type, likes, comments, shares, muted, onMutedChange, liked, onLikedChange, onAction, className, style, htmlProps, }: FacebookReelProps): import("react").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';
2
+ import { type FacebookFeedAction, type FacebookMediaType, type FacebookRatio } from './chrome';
3
+ export interface FacebookStoryProps {
4
+ name: string;
5
+ stamp: string;
6
+ audio: string;
7
+ ratio: FacebookRatio;
8
+ media?: ReactNode;
9
+ avatar?: ReactNode;
10
+ type: FacebookMediaType;
11
+ segments: number;
12
+ segment: number;
13
+ muted: boolean;
14
+ onMutedChange: (muted: boolean) => void;
15
+ onAction?: (action: FacebookFeedAction) => void;
16
+ className: string;
17
+ style?: CSSProperties;
18
+ htmlProps?: HTMLAttributes<HTMLElement>;
19
+ }
20
+ export declare function FacebookStory({ name, stamp, audio, ratio, media, avatar, type, segments, segment, muted, onMutedChange, onAction, className, style, htmlProps, }: FacebookStoryProps): import("react").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import './flow-field.css';
2
+ import { type HTMLAttributes, type ReactNode } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { FlowFieldStyle } from '../../../tokens/component-styles.generated';
5
+ export interface FlowFieldOwnProps {
6
+ /** Content layered over the field. It stays in the accessibility tree; only the canvas is aria-hidden. */
7
+ children?: ReactNode;
8
+ /** Multiplies the simulation rate; sampled live on every frame. @default 1 */
9
+ speed?: number;
10
+ /** Distance in pixels between neighbouring needles, clamped to 12-72. Widened automatically on large surfaces so the field never exceeds 1600 needles. @default 26 */
11
+ spacing?: number;
12
+ /** Radius in pixels of the pointer's steering influence, clamped to 40-640. @default 210 */
13
+ radius?: number;
14
+ /** Extra class(es) merged onto the root. */
15
+ className?: string;
16
+ /** Inline styles merged onto the root. */
17
+ style?: FlowFieldStyle;
18
+ }
19
+ export interface FlowFieldProps extends FlowFieldOwnProps {
20
+ /** Standard <div> attributes (aria-*, data-*, title, ...) forwarded to the root. */
21
+ htmlProps?: Omit<HTMLAttributes<HTMLDivElement>, keyof FlowFieldOwnProps> & DataAttributes;
22
+ }
23
+ export declare function FlowField({ children, speed, spacing, radius, className, style, htmlProps, }: FlowFieldProps): import("react").JSX.Element;
@@ -0,0 +1,59 @@
1
+ import './instagram-feed.css';
2
+ import { type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ export type InstagramFeedAction = 'comment' | 'repost' | 'send' | 'menu' | 'follow';
5
+ export interface InstagramFeedOwnProps {
6
+ /** Post kind. `video` runs the black media frame full-bleed and floats the header on it in white. @default 'image' */
7
+ type?: 'image' | 'video';
8
+ /** Which column to reproduce: the 390px mobile viewport, or the 470px web column that also carries Follow. @default 'web' */
9
+ width?: 'mobile' | 'web';
10
+ /** Account name shown in the header and again in front of the caption. */
11
+ handle: string;
12
+ /** Caption body. Clipped at 125 characters with a trailing "... more"; #tags and @mentions take the link colour. */
13
+ caption?: string;
14
+ /** Media frame proportion. @default '4:5' */
15
+ ratio?: '4:5' | '1:1';
16
+ /** Post media. A string is read as an image URL; a node (`<img>`, `<video>`, `next/image`) is rendered as given and gets `alt` from you. Empty leaves the platform's flat placeholder. */
17
+ media?: ReactNode;
18
+ /** Avatar inside the story ring. A string is read as an image URL; a node is rendered as given. */
19
+ avatar?: ReactNode;
20
+ /** Audio credit on the second header line, video posts only. @default 'Original audio' */
21
+ audio?: string;
22
+ /** Relative time in the header, e.g. `1d`. Omitted entirely when unset. */
23
+ stamp?: string;
24
+ /** Likes excluding you; the displayed count adds one while `liked` is on. @default 0 */
25
+ likes?: number;
26
+ /** Comment count beside the speech glyph. @default 0 */
27
+ comments?: number;
28
+ /** Repost count beside the repost glyph. @default 0 */
29
+ reposts?: number;
30
+ /** Controlled like state. */
31
+ liked?: boolean;
32
+ /** Uncontrolled initial like state. @default false */
33
+ defaultLiked?: boolean;
34
+ /** Fires when the heart or a double-tap on the media toggles the like. */
35
+ onLikedChange?: (liked: boolean) => void;
36
+ /** Controlled bookmark state. */
37
+ saved?: boolean;
38
+ /** Uncontrolled initial bookmark state. @default false */
39
+ defaultSaved?: boolean;
40
+ /** Fires when the bookmark toggles. */
41
+ onSavedChange?: (saved: boolean) => void;
42
+ /** Controlled mute state for the video mute chip. */
43
+ muted?: boolean;
44
+ /** Uncontrolled initial mute state. @default true */
45
+ defaultMuted?: boolean;
46
+ /** Fires when the mute chip toggles. The component never touches a media element you supplied. */
47
+ onMutedChange?: (muted: boolean) => void;
48
+ /** Fires for the actions that carry no state: comment, repost, send, menu, follow. */
49
+ onAction?: (action: InstagramFeedAction) => void;
50
+ /** Extra class(es) merged onto the card. */
51
+ className?: string;
52
+ /** Inline styles merged onto the card. */
53
+ style?: CSSProperties;
54
+ }
55
+ export interface InstagramFeedProps extends InstagramFeedOwnProps {
56
+ /** Standard <article> attributes (aria-*, data-*, title, ...) forwarded to the card. */
57
+ htmlProps?: Omit<HTMLAttributes<HTMLElement>, keyof InstagramFeedOwnProps> & DataAttributes;
58
+ }
59
+ export declare function InstagramFeed({ type, width, handle, caption, ratio, media, avatar, audio, stamp, likes, comments, reposts, liked, defaultLiked, onLikedChange, saved, defaultSaved, onSavedChange, muted, defaultMuted, onMutedChange, onAction, className, style, htmlProps, }: InstagramFeedProps): import("react").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import './lens.css';
2
+ import { type HTMLAttributes, type ReactNode } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { LensStyle } from '../../../tokens/component-styles.generated';
5
+ export interface LensOwnProps {
6
+ /** The specimen the glass magnifies. It stays in the accessibility tree; the magnified copy is aria-hidden. */
7
+ children: ReactNode;
8
+ /** How much the glass magnifies, clamped to 1.2-6. @default 2.6 */
9
+ magnification?: number;
10
+ /** Glass radius in pixels, clamped to 60-260. @default 132 */
11
+ radius?: number;
12
+ /** Chromatic fringing at the rim, which strengthens with travel speed. @default true */
13
+ chromatic?: boolean;
14
+ /** Extra class(es) merged onto the stage. */
15
+ className?: string;
16
+ /** Inline styles merged onto the stage. */
17
+ style?: LensStyle;
18
+ }
19
+ export interface LensProps extends LensOwnProps {
20
+ /** Standard <div> attributes (aria-*, data-*, title, ...) forwarded to the stage. */
21
+ htmlProps?: Omit<HTMLAttributes<HTMLDivElement>, keyof LensOwnProps> & DataAttributes;
22
+ }
23
+ export declare function Lens({ children, magnification, radius, chromatic, className, style, htmlProps, }: LensProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import './morphing-text.css';
2
+ import { type HTMLAttributes } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { MorphingTextStyle } from '../../../tokens/component-styles.generated';
5
+ export interface MorphingTextOwnProps {
6
+ /** The words to cycle through, in order; the last one morphs back into the first. Fewer than two words renders as still type. */
7
+ words: string[];
8
+ /** How long a word rests fully legible before the next morph starts, in milliseconds; sampled live. @default 1500 */
9
+ hold?: number;
10
+ /** Multiplies the simulation rate; sampled live on every frame. @default 1 */
11
+ speed?: number;
12
+ /** Extra class(es) merged onto the root. */
13
+ className?: string;
14
+ /** Inline styles merged onto the root. */
15
+ style?: MorphingTextStyle;
16
+ }
17
+ export interface MorphingTextProps extends MorphingTextOwnProps {
18
+ /** Standard <span> attributes (aria-*, data-*, title, ...) forwarded to the root. */
19
+ htmlProps?: Omit<HTMLAttributes<HTMLSpanElement>, keyof MorphingTextOwnProps> & DataAttributes;
20
+ }
21
+ export declare function MorphingText({ words, hold, speed, className, style, htmlProps, }: MorphingTextProps): import("react").JSX.Element;
@@ -0,0 +1,21 @@
1
+ import './odometer.css';
2
+ import { type HTMLAttributes } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { OdometerStyle } from '../../../tokens/component-styles.generated';
5
+ export interface OdometerOwnProps {
6
+ /** The number to roll to. Every digit column carries its own spring, so digits arrive out of sync. */
7
+ value: number;
8
+ /** Renders the value into the displayed string; digits become rolling columns, everything else becomes a static separator. @default String(Math.trunc(value)) */
9
+ format?: (value: number) => string;
10
+ /** Multiplies the simulation rate; sampled live on every frame. @default 1 */
11
+ speed?: number;
12
+ /** Extra class(es) merged onto the root. */
13
+ className?: string;
14
+ /** Inline styles merged onto the root. */
15
+ style?: OdometerStyle;
16
+ }
17
+ export interface OdometerProps extends OdometerOwnProps {
18
+ /** Standard <span> attributes (aria-*, data-*, title, ...) forwarded to the root. */
19
+ htmlProps?: Omit<HTMLAttributes<HTMLSpanElement>, keyof OdometerOwnProps> & DataAttributes;
20
+ }
21
+ export declare function Odometer({ value, format, speed, className, style, htmlProps }: OdometerProps): import("react").JSX.Element;
@@ -0,0 +1,85 @@
1
+ import './tiktok.css';
2
+ import { type CSSProperties, type HTMLAttributes, type ReactNode } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ /** The surface of the platform being reproduced. */
5
+ export type TikTokSurface = 'desktop' | 'mobile';
6
+ /** Aspect ratio of the post media inside the stage. */
7
+ export type TikTokRatio = '3:2' | '4:3' | '1:1' | '16:9' | '9:16' | '3:4';
8
+ /** The rail and chrome actions that carry no state of their own. */
9
+ export type TikTokAction = 'comment' | 'share' | 'menu' | 'search';
10
+ export interface TikTokOwnProps {
11
+ /** Which platform surface to reproduce. Desktop is the 1584x912 web player with the photo carousel; mobile is the 452x822 mobile-web viewport. */
12
+ surface?: TikTokSurface;
13
+ /** Aspect ratio of the media inside the frame. Defaults to 3:2 on desktop and 4:3 on mobile. */
14
+ ratio?: TikTokRatio;
15
+ /** Creator name shown over the media. */
16
+ name?: string;
17
+ /** Post caption. Ellipsised to one line on desktop and two on mobile until "more" is pressed. */
18
+ caption?: string;
19
+ /** Desktop only. Place name in the pin chip above the creator name. */
20
+ location?: string;
21
+ /** Mobile only. Music attribution shown first on the sound line. */
22
+ music?: string;
23
+ /** Mobile only. Sound title shown after the music attribution. */
24
+ sound?: string;
25
+ /** Like count. Printed exactly below 10,000, then abbreviated as the platform does. */
26
+ likes?: number;
27
+ /** Comment count. */
28
+ comments?: number;
29
+ /** Desktop only. Save count - the mobile rail has no save action. */
30
+ saves?: number;
31
+ /** Share count. */
32
+ shares?: number;
33
+ /** Post media: a URL string rendered as a decorative image, or a node you render yourself. On desktop an array supplies one entry per carousel slide. */
34
+ media?: ReactNode;
35
+ /** Creator avatar: a URL string, or a node you render yourself. */
36
+ avatar?: ReactNode;
37
+ /** Sound artwork on the disc at the foot of the rail: a URL string, or a node you render yourself. */
38
+ sticker?: ReactNode;
39
+ /** Desktop only. Number of carousel slides. Raised to the length of `media` when that is an array. */
40
+ slides?: number;
41
+ /** Desktop only. Controlled 1-based carousel position. */
42
+ slide?: number;
43
+ /** Desktop only. Uncontrolled starting carousel position. */
44
+ defaultSlide?: number;
45
+ /** Desktop only. Fires with the new 1-based position when the carousel pages. */
46
+ onSlideChange?: (slide: number) => void;
47
+ /** Desktop only. Controlled state of the mute control. The component never plays or pauses media - wire this to your own player. */
48
+ muted?: boolean;
49
+ /** Desktop only. Uncontrolled starting state of the mute control. */
50
+ defaultMuted?: boolean;
51
+ /** Desktop only. Fires when the mute control is pressed. */
52
+ onMutedChange?: (muted: boolean) => void;
53
+ /** Desktop only. Renders the platform's "See translation" line under the frame. */
54
+ translation?: boolean;
55
+ /** Controlled like state. The displayed like count adds one while this is on. */
56
+ liked?: boolean;
57
+ /** Uncontrolled initial like state. @default false */
58
+ defaultLiked?: boolean;
59
+ /** Fires when the heart toggles the like. */
60
+ onLikedChange?: (liked: boolean) => void;
61
+ /** Desktop only. Controlled save state for the bookmark on the rail. */
62
+ saved?: boolean;
63
+ /** Uncontrolled initial save state. @default false */
64
+ defaultSaved?: boolean;
65
+ /** Fires when the bookmark toggles. */
66
+ onSavedChange?: (saved: boolean) => void;
67
+ /** Controlled follow state for the plus badge on the creator avatar. */
68
+ followed?: boolean;
69
+ /** Uncontrolled initial follow state. @default false */
70
+ defaultFollowed?: boolean;
71
+ /** Fires when the follow badge toggles. */
72
+ onFollowedChange?: (followed: boolean) => void;
73
+ /** Fires for the actions that carry no state: comment, share, menu, search. */
74
+ onAction?: (action: TikTokAction) => void;
75
+ /** Extra class(es) merged onto the root. */
76
+ className?: string;
77
+ /** Inline styles merged onto the root. */
78
+ style?: CSSProperties;
79
+ }
80
+ export interface TikTokProps extends TikTokOwnProps {
81
+ /** Standard element attributes (aria-*, data-*, id, ...) forwarded to the root. */
82
+ htmlProps?: Omit<HTMLAttributes<HTMLDivElement>, keyof TikTokOwnProps> & DataAttributes;
83
+ }
84
+ export declare function TikTok({ surface, ratio, name, caption, location, music, sound, likes, comments, saves, shares, media, avatar, sticker, slides, slide, defaultSlide, onSlideChange, muted, defaultMuted, onMutedChange, translation, liked, defaultLiked, onLikedChange, saved, defaultSaved, onSavedChange, followed, defaultFollowed, onFollowedChange, onAction, className, style, htmlProps, }: TikTokProps): import("react").JSX.Element;
85
+ export default TikTok;
@@ -0,0 +1,40 @@
1
+ export declare function MutedGlyph({ className }: {
2
+ className?: string;
3
+ }): import("react").JSX.Element;
4
+ export declare function AudibleGlyph({ className }: {
5
+ className?: string;
6
+ }): import("react").JSX.Element;
7
+ export declare function PreviousGlyph({ className }: {
8
+ className?: string;
9
+ }): import("react").JSX.Element;
10
+ export declare function NextGlyph({ className }: {
11
+ className?: string;
12
+ }): import("react").JSX.Element;
13
+ export declare function PinGlyph({ className }: {
14
+ className?: string;
15
+ }): import("react").JSX.Element;
16
+ export declare function HeartGlyph({ className }: {
17
+ className?: string;
18
+ }): import("react").JSX.Element;
19
+ export declare function CommentGlyph({ className, holeClassName }: {
20
+ className?: string;
21
+ holeClassName: string;
22
+ }): import("react").JSX.Element;
23
+ export declare function BookmarkGlyph({ className }: {
24
+ className?: string;
25
+ }): import("react").JSX.Element;
26
+ export declare function ShareGlyph({ className }: {
27
+ className?: string;
28
+ }): import("react").JSX.Element;
29
+ export declare function PlusGlyph({ className }: {
30
+ className?: string;
31
+ }): import("react").JSX.Element;
32
+ export declare function MenuGlyph({ className }: {
33
+ className?: string;
34
+ }): import("react").JSX.Element;
35
+ export declare function SearchGlyph({ className }: {
36
+ className?: string;
37
+ }): import("react").JSX.Element;
38
+ export declare function NoteGlyph({ className }: {
39
+ className?: string;
40
+ }): import("react").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import './typing-lines.css';
2
+ import { type HTMLAttributes } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { TypingLinesStyle } from '../../../tokens/component-styles.generated';
5
+ export type TypingUnit = 'character' | 'word';
6
+ export type TypingCaret = 'line' | 'block' | 'underscore' | 'none';
7
+ export interface TypingLinesOwnProps {
8
+ /** The lines to type, in order; the sequence restarts once the last one has been deleted. */
9
+ lines: string[];
10
+ /** Whether the line arrives one character or one whole word at a time. @default 'character' */
11
+ unit?: TypingUnit;
12
+ /** Caret shape. It holds solid while characters land and blinks only once the line is idle. @default 'line' */
13
+ caret?: TypingCaret;
14
+ /** Multiplies the typing rate; sampled live on every frame. @default 1 */
15
+ speed?: number;
16
+ /** Extra class(es) merged onto the root. */
17
+ className?: string;
18
+ /** Inline styles merged onto the root. */
19
+ style?: TypingLinesStyle;
20
+ }
21
+ export interface TypingLinesProps extends TypingLinesOwnProps {
22
+ /** Standard <span> attributes (aria-*, data-*, title, ...) forwarded to the root. */
23
+ htmlProps?: Omit<HTMLAttributes<HTMLSpanElement>, keyof TypingLinesOwnProps> & DataAttributes;
24
+ }
25
+ export declare function TypingLines({ lines, unit, caret, speed, className, style, htmlProps, }: TypingLinesProps): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import './weight-field.css';
2
+ import type { HTMLAttributes } from 'react';
3
+ import type { DataAttributes } from '../../../dom-props';
4
+ import type { WeightFieldStyle } from '../../../tokens/component-styles.generated';
5
+ export interface WeightFieldOwnProps {
6
+ /** The headline the field is built from. Every character becomes its own hover unit, spaces included. */
7
+ text: string;
8
+ /** Multiplies the ramp rate - 2 halves the settle, 0.5 doubles it. @default 1 */
9
+ speed?: number;
10
+ /** Extra class(es) merged onto the root. */
11
+ className?: string;
12
+ /** Inline styles merged onto the root. */
13
+ style?: WeightFieldStyle;
14
+ }
15
+ export interface WeightFieldProps extends WeightFieldOwnProps {
16
+ /** Standard <span> attributes (aria-*, data-*, title, ...) forwarded to the root. */
17
+ htmlProps?: Omit<HTMLAttributes<HTMLSpanElement>, keyof WeightFieldOwnProps> & DataAttributes;
18
+ }
19
+ export declare function WeightField({ text, speed, className, style, htmlProps }: WeightFieldProps): import("react").JSX.Element;