motion-brew 0.0.0-stage → 0.1.1
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.
- package/LICENSE +21 -0
- package/README.md +106 -2
- package/dist/account-menu.d.ts +1 -0
- package/dist/account-menu.js +16 -0
- package/dist/action-menu.d.ts +1 -0
- package/dist/action-menu.js +10 -0
- package/dist/activity-grid.d.ts +1 -0
- package/dist/activity-grid.js +14 -0
- package/dist/add-card.d.ts +1 -0
- package/dist/add-card.js +11 -0
- package/dist/amount-slider.d.ts +1 -0
- package/dist/amount-slider.js +10 -0
- package/dist/annotation-text.d.ts +1 -0
- package/dist/annotation-text.js +8 -0
- package/dist/aura-card.d.ts +1 -0
- package/dist/aura-card.js +19 -0
- package/dist/auth-card.d.ts +1 -0
- package/dist/auth-card.js +15 -0
- package/dist/avatar-testimonial.d.ts +1 -0
- package/dist/avatar-testimonial.js +8 -0
- package/dist/backspace-text.d.ts +1 -0
- package/dist/backspace-text.js +8 -0
- package/dist/bell-toggle.d.ts +1 -0
- package/dist/bell-toggle.js +8 -0
- package/dist/bill-list.d.ts +1 -0
- package/dist/bill-list.js +15 -0
- package/dist/binary-text.d.ts +1 -0
- package/dist/binary-text.js +8 -0
- package/dist/blur-accordion.d.ts +1 -0
- package/dist/blur-accordion.js +8 -0
- package/dist/blur-text.d.ts +1 -0
- package/dist/blur-text.js +8 -0
- package/dist/booking-card.d.ts +1 -0
- package/dist/booking-card.js +11 -0
- package/dist/brand-bridge.d.ts +1 -0
- package/dist/brand-bridge.js +12 -0
- package/dist/calendar-agenda.d.ts +1 -0
- package/dist/calendar-agenda.js +12 -0
- package/dist/channel-mix.d.ts +1 -0
- package/dist/channel-mix.js +11 -0
- package/dist/chunk-25254AZA.js +141 -0
- package/dist/chunk-2CIJ5TVW.js +59 -0
- package/dist/chunk-2GXY54MP.js +247 -0
- package/dist/chunk-2IMPUH4H.js +135 -0
- package/dist/chunk-2NRXP4HM.js +371 -0
- package/dist/chunk-2QCWELWT.js +120 -0
- package/dist/chunk-2TQSHVXA.js +12 -0
- package/dist/chunk-327TGRS5.js +75 -0
- package/dist/chunk-3B2RYSTL.js +867 -0
- package/dist/chunk-3RKCLFY5.js +634 -0
- package/dist/chunk-4BVCRIR4.js +51 -0
- package/dist/chunk-4CKKTOJK.js +366 -0
- package/dist/chunk-4IGMH34C.js +319 -0
- package/dist/chunk-4PI6UNIZ.js +464 -0
- package/dist/chunk-4RHQKP2P.js +664 -0
- package/dist/chunk-5MP5QNFG.js +560 -0
- package/dist/chunk-62RBYLIN.js +128 -0
- package/dist/chunk-6GAKTS3D.js +329 -0
- package/dist/chunk-6GRDT3OE.js +124 -0
- package/dist/chunk-6JQY7AX5.js +307 -0
- package/dist/chunk-6LOUA6XB.js +237 -0
- package/dist/chunk-6V6OTHNE.js +299 -0
- package/dist/chunk-6VZIT62Q.js +142 -0
- package/dist/chunk-6WSY725U.js +387 -0
- package/dist/chunk-6XSJC7M7.js +764 -0
- package/dist/chunk-75DEIDBX.js +129 -0
- package/dist/chunk-7FQ4XU7E.js +127 -0
- package/dist/chunk-7IL5WRJR.js +615 -0
- package/dist/chunk-7MPC3RUE.js +1462 -0
- package/dist/chunk-7PS2W7PU.js +112 -0
- package/dist/chunk-AATJOPNH.js +86 -0
- package/dist/chunk-ADXWPWJR.js +209 -0
- package/dist/chunk-ANNDITUM.js +47 -0
- package/dist/chunk-AQN6BHWC.js +325 -0
- package/dist/chunk-AVOS73MR.js +537 -0
- package/dist/chunk-B4LNE6YK.js +473 -0
- package/dist/chunk-BHUNLG6S.js +142 -0
- package/dist/chunk-BN4MA5UY.js +127 -0
- package/dist/chunk-BPE43MTT.js +183 -0
- package/dist/chunk-BPF3FQRS.js +590 -0
- package/dist/chunk-BRTZFUFR.js +503 -0
- package/dist/chunk-BS4ZFJKW.js +121 -0
- package/dist/chunk-BXAKCY6X.js +86 -0
- package/dist/chunk-CEQ56RF6.js +129 -0
- package/dist/chunk-CGDKH6BB.js +902 -0
- package/dist/chunk-CMTGYFT7.js +395 -0
- package/dist/chunk-COKBF5PG.js +3291 -0
- package/dist/chunk-DD55JZOI.js +257 -0
- package/dist/chunk-DQUXBNSH.js +412 -0
- package/dist/chunk-DR4DUSNF.js +265 -0
- package/dist/chunk-EDPCK6VU.js +419 -0
- package/dist/chunk-EEQ2WHTN.js +142 -0
- package/dist/chunk-ERVE5RSN.js +793 -0
- package/dist/chunk-FFUBTMDC.js +303 -0
- package/dist/chunk-FK4TZ5OW.js +29 -0
- package/dist/chunk-FXI6NHNR.js +1033 -0
- package/dist/chunk-G3XH7YT2.js +122 -0
- package/dist/chunk-G7KDH7ME.js +559 -0
- package/dist/chunk-GRUDTDLX.js +534 -0
- package/dist/chunk-GUQINNWS.js +770 -0
- package/dist/chunk-GV3Q4D2N.js +320 -0
- package/dist/chunk-GVWOJJ3T.js +129 -0
- package/dist/chunk-GYDTIVOY.js +934 -0
- package/dist/chunk-H2JOCJWM.js +125 -0
- package/dist/chunk-H7XKIWHA.js +135 -0
- package/dist/chunk-HHXK3NAH.js +1382 -0
- package/dist/chunk-HK34LPY6.js +112 -0
- package/dist/chunk-HLJXNSMM.js +320 -0
- package/dist/chunk-HPJJAQ5L.js +406 -0
- package/dist/chunk-HYSXVKZB.js +213 -0
- package/dist/chunk-I45D4XV4.js +124 -0
- package/dist/chunk-I7KTTOOJ.js +113 -0
- package/dist/chunk-IDJOKV6S.js +67 -0
- package/dist/chunk-IGI6OLRX.js +138 -0
- package/dist/chunk-IKM7EEYN.js +117 -0
- package/dist/chunk-INV5FI6O.js +394 -0
- package/dist/chunk-IUBUAIQZ.js +321 -0
- package/dist/chunk-IYZOANPX.js +159 -0
- package/dist/chunk-JFTD3YAL.js +163 -0
- package/dist/chunk-JGEV462J.js +235 -0
- package/dist/chunk-JHT6RCGY.js +127 -0
- package/dist/chunk-JJEWOQYQ.js +141 -0
- package/dist/chunk-JT2EIO5M.js +129 -0
- package/dist/chunk-K3HQEHJ6.js +663 -0
- package/dist/chunk-K6ET254T.js +398 -0
- package/dist/chunk-KE563QS4.js +425 -0
- package/dist/chunk-LBRMNY72.js +159 -0
- package/dist/chunk-LNBTWX4J.js +114 -0
- package/dist/chunk-LS4FP6SI.js +37 -0
- package/dist/chunk-M22UY764.js +135 -0
- package/dist/chunk-M4YMNHPI.js +204 -0
- package/dist/chunk-MGBS5LRY.js +412 -0
- package/dist/chunk-MKJOBHPQ.js +215 -0
- package/dist/chunk-MQDOFNKI.js +818 -0
- package/dist/chunk-MUDKP3LK.js +120 -0
- package/dist/chunk-N4ZNBWKO.js +118 -0
- package/dist/chunk-NB5CB65C.js +137 -0
- package/dist/chunk-NCEAUODT.js +172 -0
- package/dist/chunk-NGX34WJO.js +335 -0
- package/dist/chunk-NIQFSLPC.js +114 -0
- package/dist/chunk-NJWTPRGJ.js +806 -0
- package/dist/chunk-NNKC6NEH.js +128 -0
- package/dist/chunk-NY7M42KC.js +112 -0
- package/dist/chunk-O7G4ISAC.js +277 -0
- package/dist/chunk-O7QYPA6X.js +700 -0
- package/dist/chunk-OEDHLZ4T.js +651 -0
- package/dist/chunk-OGQQ2FZZ.js +114 -0
- package/dist/chunk-OINRQUYT.js +186 -0
- package/dist/chunk-OMJBDFEW.js +506 -0
- package/dist/chunk-ONUWTWKP.js +345 -0
- package/dist/chunk-OS6REIBR.js +154 -0
- package/dist/chunk-OUVP5VKH.js +702 -0
- package/dist/chunk-OVEBMZHA.js +573 -0
- package/dist/chunk-PFEHD3A2.js +409 -0
- package/dist/chunk-PJ5EVDNN.js +157 -0
- package/dist/chunk-PKM6B4JJ.js +108 -0
- package/dist/chunk-PV3OYTMT.js +596 -0
- package/dist/chunk-RBSLSNMW.js +444 -0
- package/dist/chunk-RE74K7KI.js +370 -0
- package/dist/chunk-RP22J4NX.js +247 -0
- package/dist/chunk-RU2Q2XVP.js +287 -0
- package/dist/chunk-RWUARRFZ.js +267 -0
- package/dist/chunk-RZ2UCZ3C.js +212 -0
- package/dist/chunk-SBDTC4UY.js +367 -0
- package/dist/chunk-SKEE23KW.js +137 -0
- package/dist/chunk-SOW7S7ET.js +1103 -0
- package/dist/chunk-SQ7F3VBU.js +1069 -0
- package/dist/chunk-SSWKGVRI.js +172 -0
- package/dist/chunk-T2TSMDP3.js +1022 -0
- package/dist/chunk-TAFVHTWV.js +607 -0
- package/dist/chunk-TNLY4CSA.js +523 -0
- package/dist/chunk-TP3XIHL5.js +787 -0
- package/dist/chunk-TQ6KSDDE.js +682 -0
- package/dist/chunk-TRWXLGL7.js +885 -0
- package/dist/chunk-TTNORJF5.js +908 -0
- package/dist/chunk-UD5OQ2T3.js +117 -0
- package/dist/chunk-UDFBQWUH.js +333 -0
- package/dist/chunk-USRMXCZD.js +625 -0
- package/dist/chunk-VAPHE4G4.js +442 -0
- package/dist/chunk-VEC5QAOY.js +104 -0
- package/dist/chunk-VIR5NV5W.js +118 -0
- package/dist/chunk-VT2FNWQF.js +240 -0
- package/dist/chunk-VX4XEYQN.js +837 -0
- package/dist/chunk-WE7VCUOA.js +130 -0
- package/dist/chunk-WFWO2EIW.js +120 -0
- package/dist/chunk-WGIT4MMH.js +350 -0
- package/dist/chunk-WOR2GMMN.js +114 -0
- package/dist/chunk-WTTDB475.js +54 -0
- package/dist/chunk-WWWKMU4Y.js +184 -0
- package/dist/chunk-XDR4FO6Q.js +124 -0
- package/dist/chunk-XH6YNONO.js +112 -0
- package/dist/chunk-XL4L2J6N.js +129 -0
- package/dist/chunk-Y6MTC46Q.js +684 -0
- package/dist/chunk-YFLQ4HPJ.js +119 -0
- package/dist/chunk-YGONLKWH.js +180 -0
- package/dist/chunk-YLSWBUDC.js +373 -0
- package/dist/chunk-YU6B7YRO.js +128 -0
- package/dist/chunk-YURGXJSP.js +102 -0
- package/dist/chunk-YVYYDPE2.js +124 -0
- package/dist/chunk-ZPGAMYOQ.js +1 -0
- package/dist/chunk-ZWGOAY27.js +234 -0
- package/dist/column-card.d.ts +1 -0
- package/dist/column-card.js +8 -0
- package/dist/components/account-menu/account-menu.d.ts +56 -0
- package/dist/components/account-menu/index.d.ts +1 -0
- package/dist/components/action-menu/action-menu.d.ts +45 -0
- package/dist/components/action-menu/index.d.ts +1 -0
- package/dist/components/activity-grid/activity-grid.d.ts +54 -0
- package/dist/components/activity-grid/index.d.ts +1 -0
- package/dist/components/add-card/add-card.d.ts +41 -0
- package/dist/components/add-card/index.d.ts +1 -0
- package/dist/components/amount-slider/amount-slider.d.ts +43 -0
- package/dist/components/amount-slider/index.d.ts +1 -0
- package/dist/components/annotation-text/annotation-text.d.ts +27 -0
- package/dist/components/annotation-text/index.d.ts +1 -0
- package/dist/components/aura-card/aura-card.d.ts +63 -0
- package/dist/components/aura-card/index.d.ts +1 -0
- package/dist/components/auth-card/auth-card.d.ts +51 -0
- package/dist/components/auth-card/index.d.ts +1 -0
- package/dist/components/avatar-testimonial/avatar-testimonial.d.ts +39 -0
- package/dist/components/avatar-testimonial/index.d.ts +1 -0
- package/dist/components/backspace-text/backspace-text.d.ts +27 -0
- package/dist/components/backspace-text/index.d.ts +1 -0
- package/dist/components/bell-toggle/bell-toggle.d.ts +33 -0
- package/dist/components/bell-toggle/index.d.ts +1 -0
- package/dist/components/bill-list/bill-list.d.ts +49 -0
- package/dist/components/bill-list/index.d.ts +1 -0
- package/dist/components/binary-text/binary-text.d.ts +24 -0
- package/dist/components/binary-text/index.d.ts +1 -0
- package/dist/components/blur-accordion/blur-accordion.d.ts +35 -0
- package/dist/components/blur-accordion/index.d.ts +1 -0
- package/dist/components/blur-text/blur-text.d.ts +33 -0
- package/dist/components/blur-text/index.d.ts +1 -0
- package/dist/components/booking-card/booking-card.d.ts +56 -0
- package/dist/components/booking-card/index.d.ts +1 -0
- package/dist/components/brand-bridge/brand-bridge.d.ts +63 -0
- package/dist/components/brand-bridge/index.d.ts +1 -0
- package/dist/components/calendar-agenda/calendar-agenda.d.ts +64 -0
- package/dist/components/calendar-agenda/index.d.ts +1 -0
- package/dist/components/channel-mix/channel-mix.d.ts +63 -0
- package/dist/components/channel-mix/index.d.ts +1 -0
- package/dist/components/column-card/column-card.d.ts +39 -0
- package/dist/components/column-card/index.d.ts +1 -0
- package/dist/components/contact-card/contact-card.d.ts +44 -0
- package/dist/components/contact-card/index.d.ts +1 -0
- package/dist/components/context-menu/context-menu.d.ts +59 -0
- package/dist/components/context-menu/index.d.ts +1 -0
- package/dist/components/contour-feature-card/contour-feature-card.d.ts +36 -0
- package/dist/components/contour-feature-card/index.d.ts +1 -0
- package/dist/components/contour-lines/contour-lines.d.ts +34 -0
- package/dist/components/contour-lines/index.d.ts +1 -0
- package/dist/components/decay-card/decay-card.d.ts +44 -0
- package/dist/components/decay-card/index.d.ts +1 -0
- package/dist/components/deploy-streak/deploy-streak.d.ts +30 -0
- package/dist/components/deploy-streak/index.d.ts +1 -0
- package/dist/components/depth-carousel/depth-carousel.d.ts +42 -0
- package/dist/components/depth-carousel/index.d.ts +1 -0
- package/dist/components/device-traffic/device-traffic.d.ts +59 -0
- package/dist/components/device-traffic/index.d.ts +1 -0
- package/dist/components/download-button/download-button.d.ts +36 -0
- package/dist/components/download-button/index.d.ts +1 -0
- package/dist/components/event-card/event-card.d.ts +55 -0
- package/dist/components/event-card/index.d.ts +1 -0
- package/dist/components/file-drop/file-drop.d.ts +46 -0
- package/dist/components/file-drop/index.d.ts +1 -0
- package/dist/components/flip-words/flip-words.d.ts +26 -0
- package/dist/components/flip-words/index.d.ts +1 -0
- package/dist/components/flux-card/flux-card.d.ts +56 -0
- package/dist/components/flux-card/index.d.ts +1 -0
- package/dist/components/fuse-button/fuse-button.d.ts +75 -0
- package/dist/components/fuse-button/index.d.ts +1 -0
- package/dist/components/globe-card/globe-card.d.ts +46 -0
- package/dist/components/globe-card/index.d.ts +1 -0
- package/dist/components/goal-gauge/goal-gauge.d.ts +47 -0
- package/dist/components/goal-gauge/index.d.ts +1 -0
- package/dist/components/gradient-card/gradient-card.d.ts +56 -0
- package/dist/components/gradient-card/index.d.ts +1 -0
- package/dist/components/gradient-text/gradient-text.d.ts +22 -0
- package/dist/components/gradient-text/index.d.ts +1 -0
- package/dist/components/gravity-tag-pile/gravity-tag-pile.d.ts +69 -0
- package/dist/components/gravity-tag-pile/index.d.ts +1 -0
- package/dist/components/growth-stream/growth-stream.d.ts +47 -0
- package/dist/components/growth-stream/index.d.ts +1 -0
- package/dist/components/highlight-text/highlight-text.d.ts +22 -0
- package/dist/components/highlight-text/index.d.ts +1 -0
- package/dist/components/hold-to-confirm/hold-to-confirm.d.ts +32 -0
- package/dist/components/hold-to-confirm/index.d.ts +1 -0
- package/dist/components/infinite-gallery/index.d.ts +1 -0
- package/dist/components/infinite-gallery/infinite-gallery.d.ts +73 -0
- package/dist/components/integration-hub/index.d.ts +1 -0
- package/dist/components/integration-hub/integration-hub.d.ts +40 -0
- package/dist/components/liquid-card/index.d.ts +1 -0
- package/dist/components/liquid-card/liquid-card.d.ts +66 -0
- package/dist/components/liquid-metal-card/index.d.ts +1 -0
- package/dist/components/liquid-metal-card/liquid-metal-card.d.ts +45 -0
- package/dist/components/liquid-tabs/index.d.ts +1 -0
- package/dist/components/liquid-tabs/liquid-tabs.d.ts +47 -0
- package/dist/components/magnetic-button/index.d.ts +1 -0
- package/dist/components/magnetic-button/magnetic-button.d.ts +46 -0
- package/dist/components/magnetic-flow/index.d.ts +1 -0
- package/dist/components/magnetic-flow/magnetic-flow.d.ts +35 -0
- package/dist/components/message-composer/index.d.ts +1 -0
- package/dist/components/message-composer/message-composer.d.ts +79 -0
- package/dist/components/metal-card-stack/index.d.ts +1 -0
- package/dist/components/metal-card-stack/metal-card-stack.d.ts +49 -0
- package/dist/components/metric-split/index.d.ts +1 -0
- package/dist/components/metric-split/metric-split.d.ts +45 -0
- package/dist/components/mix-chart/index.d.ts +1 -0
- package/dist/components/mix-chart/mix-chart.d.ts +59 -0
- package/dist/components/month-calendar/index.d.ts +1 -0
- package/dist/components/month-calendar/month-calendar.d.ts +34 -0
- package/dist/components/morph-search/index.d.ts +1 -0
- package/dist/components/morph-search/morph-search.d.ts +33 -0
- package/dist/components/orbit-card/index.d.ts +1 -0
- package/dist/components/orbit-card/orbit-card.d.ts +50 -0
- package/dist/components/otp-code/index.d.ts +1 -0
- package/dist/components/otp-code/otp-code.d.ts +61 -0
- package/dist/components/particle-card/index.d.ts +1 -0
- package/dist/components/particle-card/particle-card.d.ts +57 -0
- package/dist/components/payment-form/index.d.ts +1 -0
- package/dist/components/payment-form/payment-form.d.ts +54 -0
- package/dist/components/pill-tabs/index.d.ts +1 -0
- package/dist/components/pill-tabs/pill-tabs.d.ts +39 -0
- package/dist/components/pixel-blast/index.d.ts +1 -0
- package/dist/components/pixel-blast/pixel-blast.d.ts +41 -0
- package/dist/components/pixel-feature-card/index.d.ts +1 -0
- package/dist/components/pixel-feature-card/pixel-feature-card.d.ts +43 -0
- package/dist/components/pixel-scroll/index.d.ts +1 -0
- package/dist/components/pixel-scroll/pixel-scroll.d.ts +64 -0
- package/dist/components/pricing-card/index.d.ts +1 -0
- package/dist/components/pricing-card/pricing-card.d.ts +60 -0
- package/dist/components/prism-carousel/index.d.ts +1 -0
- package/dist/components/prism-carousel/prism-carousel.d.ts +54 -0
- package/dist/components/prism-flow/index.d.ts +1 -0
- package/dist/components/prism-flow/prism-flow.d.ts +41 -0
- package/dist/components/privacy-banner/index.d.ts +1 -0
- package/dist/components/privacy-banner/privacy-banner.d.ts +41 -0
- package/dist/components/profile-card/index.d.ts +1 -0
- package/dist/components/profile-card/profile-card.d.ts +52 -0
- package/dist/components/profile-menu/index.d.ts +1 -0
- package/dist/components/profile-menu/profile-menu.d.ts +43 -0
- package/dist/components/project-index/index.d.ts +1 -0
- package/dist/components/project-index/project-index.d.ts +65 -0
- package/dist/components/prompt-input/index.d.ts +1 -0
- package/dist/components/prompt-input/prompt-input.d.ts +49 -0
- package/dist/components/quota-gauge/index.d.ts +1 -0
- package/dist/components/quota-gauge/quota-gauge.d.ts +30 -0
- package/dist/components/range-chart/index.d.ts +1 -0
- package/dist/components/range-chart/range-chart.d.ts +47 -0
- package/dist/components/reaction-card/index.d.ts +1 -0
- package/dist/components/reaction-card/reaction-card.d.ts +60 -0
- package/dist/components/recap-card/index.d.ts +1 -0
- package/dist/components/recap-card/recap-card.d.ts +61 -0
- package/dist/components/receipt-button/index.d.ts +1 -0
- package/dist/components/receipt-button/receipt-button.d.ts +53 -0
- package/dist/components/ribbon-gallery/index.d.ts +1 -0
- package/dist/components/ribbon-gallery/ribbon-gallery.d.ts +61 -0
- package/dist/components/roadmap-card/index.d.ts +1 -0
- package/dist/components/roadmap-card/roadmap-card.d.ts +38 -0
- package/dist/components/rolling-card-stack/index.d.ts +1 -0
- package/dist/components/rolling-card-stack/rolling-card-stack.d.ts +53 -0
- package/dist/components/rolling-stepper/index.d.ts +1 -0
- package/dist/components/rolling-stepper/rolling-stepper.d.ts +33 -0
- package/dist/components/rotating-text/index.d.ts +1 -0
- package/dist/components/rotating-text/rotating-text.d.ts +25 -0
- package/dist/components/score-card/index.d.ts +1 -0
- package/dist/components/score-card/score-card.d.ts +40 -0
- package/dist/components/search-modal/index.d.ts +1 -0
- package/dist/components/search-modal/search-modal.d.ts +62 -0
- package/dist/components/shimmer-text/index.d.ts +1 -0
- package/dist/components/shimmer-text/shimmer-text.d.ts +22 -0
- package/dist/components/sidebar-nav/index.d.ts +1 -0
- package/dist/components/sidebar-nav/sidebar-nav.d.ts +71 -0
- package/dist/components/slide-commit/index.d.ts +1 -0
- package/dist/components/slide-commit/slide-commit.d.ts +39 -0
- package/dist/components/spatial-gallery/index.d.ts +1 -0
- package/dist/components/spatial-gallery/spatial-gallery.d.ts +88 -0
- package/dist/components/spending-meter/index.d.ts +1 -0
- package/dist/components/spending-meter/spending-meter.d.ts +41 -0
- package/dist/components/tab-bar/index.d.ts +1 -0
- package/dist/components/tab-bar/tab-bar.d.ts +44 -0
- package/dist/components/team-member-card/index.d.ts +1 -0
- package/dist/components/team-member-card/team-member-card.d.ts +66 -0
- package/dist/components/team-morph/index.d.ts +1 -0
- package/dist/components/team-morph/team-morph.d.ts +38 -0
- package/dist/components/tilt-card/index.d.ts +1 -0
- package/dist/components/tilt-card/tilt-card.d.ts +27 -0
- package/dist/components/tilt-carousel/index.d.ts +1 -0
- package/dist/components/tilt-carousel/tilt-carousel.d.ts +43 -0
- package/dist/components/toast-stack/index.d.ts +1 -0
- package/dist/components/toast-stack/toast-stack.d.ts +57 -0
- package/dist/components/usage-ring/index.d.ts +1 -0
- package/dist/components/usage-ring/usage-ring.d.ts +40 -0
- package/dist/components/verify-flow/index.d.ts +1 -0
- package/dist/components/verify-flow/verify-flow.d.ts +49 -0
- package/dist/components/voice-prompt/index.d.ts +1 -0
- package/dist/components/voice-prompt/voice-prompt.d.ts +55 -0
- package/dist/components/wallet-card/index.d.ts +1 -0
- package/dist/components/wallet-card/wallet-card.d.ts +54 -0
- package/dist/components/wave-text/index.d.ts +1 -0
- package/dist/components/wave-text/wave-text.d.ts +27 -0
- package/dist/contact-card.d.ts +1 -0
- package/dist/contact-card.js +12 -0
- package/dist/context-menu.d.ts +1 -0
- package/dist/context-menu.js +17 -0
- package/dist/contour-feature-card.d.ts +1 -0
- package/dist/contour-feature-card.js +9 -0
- package/dist/contour-lines.d.ts +1 -0
- package/dist/contour-lines.js +8 -0
- package/dist/decay-card.d.ts +1 -0
- package/dist/decay-card.js +8 -0
- package/dist/deploy-streak.d.ts +1 -0
- package/dist/deploy-streak.js +9 -0
- package/dist/depth-carousel.d.ts +1 -0
- package/dist/depth-carousel.js +8 -0
- package/dist/device-traffic.d.ts +1 -0
- package/dist/device-traffic.js +12 -0
- package/dist/download-button.d.ts +1 -0
- package/dist/download-button.js +8 -0
- package/dist/event-card.d.ts +1 -0
- package/dist/event-card.js +12 -0
- package/dist/file-drop.d.ts +1 -0
- package/dist/file-drop.js +12 -0
- package/dist/flip-words.d.ts +1 -0
- package/dist/flip-words.js +8 -0
- package/dist/flux-card.d.ts +1 -0
- package/dist/flux-card.js +13 -0
- package/dist/fuse-button.d.ts +1 -0
- package/dist/fuse-button.js +9 -0
- package/dist/globe-card.d.ts +1 -0
- package/dist/globe-card.js +8 -0
- package/dist/goal-gauge.d.ts +1 -0
- package/dist/goal-gauge.js +9 -0
- package/dist/gradient-card.d.ts +1 -0
- package/dist/gradient-card.js +8 -0
- package/dist/gradient-text.d.ts +1 -0
- package/dist/gradient-text.js +8 -0
- package/dist/gravity-tag-pile.d.ts +1 -0
- package/dist/gravity-tag-pile.js +9 -0
- package/dist/growth-stream.d.ts +1 -0
- package/dist/growth-stream.js +10 -0
- package/dist/highlight-text.d.ts +1 -0
- package/dist/highlight-text.js +8 -0
- package/dist/hold-to-confirm.d.ts +1 -0
- package/dist/hold-to-confirm.js +8 -0
- package/dist/icons/activity.d.ts +15 -0
- package/dist/icons/archive.d.ts +15 -0
- package/dist/icons/arrow-down-right.d.ts +15 -0
- package/dist/icons/arrow-down.d.ts +15 -0
- package/dist/icons/arrow-right.d.ts +15 -0
- package/dist/icons/arrow-up-right.d.ts +15 -0
- package/dist/icons/arrow-up.d.ts +15 -0
- package/dist/icons/at-sign.d.ts +15 -0
- package/dist/icons/attach-file.d.ts +15 -0
- package/dist/icons/badge-alert.d.ts +15 -0
- package/dist/icons/bell.d.ts +15 -0
- package/dist/icons/bold.d.ts +15 -0
- package/dist/icons/bookmark.d.ts +15 -0
- package/dist/icons/bot.d.ts +15 -0
- package/dist/icons/calendar-check-2.d.ts +15 -0
- package/dist/icons/calendar-check.d.ts +15 -0
- package/dist/icons/calendar-days.d.ts +15 -0
- package/dist/icons/chart-line.d.ts +15 -0
- package/dist/icons/chart-pie.d.ts +15 -0
- package/dist/icons/check.d.ts +15 -0
- package/dist/icons/chevron-down.d.ts +15 -0
- package/dist/icons/chevron-left.d.ts +15 -0
- package/dist/icons/chevron-right.d.ts +15 -0
- package/dist/icons/circle-check.d.ts +15 -0
- package/dist/icons/circle-dollar-sign.d.ts +15 -0
- package/dist/icons/clipboard-check.d.ts +15 -0
- package/dist/icons/clock.d.ts +15 -0
- package/dist/icons/cloud-upload.d.ts +15 -0
- package/dist/icons/compass.d.ts +15 -0
- package/dist/icons/contrast.d.ts +15 -0
- package/dist/icons/copy.d.ts +15 -0
- package/dist/icons/credit-card.d.ts +15 -0
- package/dist/icons/delete.d.ts +15 -0
- package/dist/icons/download.d.ts +15 -0
- package/dist/icons/dribbble.d.ts +15 -0
- package/dist/icons/earth.d.ts +15 -0
- package/dist/icons/eye-off.d.ts +15 -0
- package/dist/icons/eye.d.ts +15 -0
- package/dist/icons/feather.d.ts +15 -0
- package/dist/icons/figma.d.ts +15 -0
- package/dist/icons/file-text.d.ts +16 -0
- package/dist/icons/flame.d.ts +15 -0
- package/dist/icons/folder-input.d.ts +15 -0
- package/dist/icons/folder-open.d.ts +15 -0
- package/dist/icons/folders.d.ts +15 -0
- package/dist/icons/github.d.ts +15 -0
- package/dist/icons/hand-coins.d.ts +15 -0
- package/dist/icons/heart.d.ts +15 -0
- package/dist/icons/history.d.ts +15 -0
- package/dist/icons/home.d.ts +15 -0
- package/dist/icons/hourglass.d.ts +15 -0
- package/dist/icons/instagram.d.ts +15 -0
- package/dist/icons/italic.d.ts +15 -0
- package/dist/icons/layout-grid.d.ts +15 -0
- package/dist/icons/link.d.ts +15 -0
- package/dist/icons/linkedin.d.ts +15 -0
- package/dist/icons/loader-circle.d.ts +15 -0
- package/dist/icons/lock-keyhole-open.d.ts +15 -0
- package/dist/icons/lock-keyhole.d.ts +15 -0
- package/dist/icons/lock.d.ts +15 -0
- package/dist/icons/logout.d.ts +15 -0
- package/dist/icons/mail-check.d.ts +15 -0
- package/dist/icons/map-pin.d.ts +15 -0
- package/dist/icons/message-circle.d.ts +15 -0
- package/dist/icons/mic.d.ts +15 -0
- package/dist/icons/monitor-check.d.ts +15 -0
- package/dist/icons/moon.d.ts +15 -0
- package/dist/icons/palette.d.ts +15 -0
- package/dist/icons/panel-left-close.d.ts +15 -0
- package/dist/icons/panel-left-open.d.ts +15 -0
- package/dist/icons/plug-zap.d.ts +15 -0
- package/dist/icons/plus.d.ts +15 -0
- package/dist/icons/radio.d.ts +15 -0
- package/dist/icons/receipt.d.ts +15 -0
- package/dist/icons/refresh-cw.d.ts +15 -0
- package/dist/icons/rotate-ccw.d.ts +15 -0
- package/dist/icons/search.d.ts +15 -0
- package/dist/icons/send.d.ts +15 -0
- package/dist/icons/settings.d.ts +15 -0
- package/dist/icons/shield-check.d.ts +15 -0
- package/dist/icons/smartphone-nfc.d.ts +15 -0
- package/dist/icons/smile.d.ts +15 -0
- package/dist/icons/sparkles.d.ts +15 -0
- package/dist/icons/square-pen.d.ts +15 -0
- package/dist/icons/sun.d.ts +15 -0
- package/dist/icons/terminal.d.ts +15 -0
- package/dist/icons/timer.d.ts +15 -0
- package/dist/icons/trending-up.d.ts +15 -0
- package/dist/icons/twitter.d.ts +15 -0
- package/dist/icons/underline.d.ts +15 -0
- package/dist/icons/undo.d.ts +15 -0
- package/dist/icons/user-check.d.ts +15 -0
- package/dist/icons/user-plus.d.ts +15 -0
- package/dist/icons/user-round-plus.d.ts +15 -0
- package/dist/icons/user.d.ts +15 -0
- package/dist/icons/users.d.ts +15 -0
- package/dist/icons/wifi.d.ts +15 -0
- package/dist/icons/workflow.d.ts +15 -0
- package/dist/icons/x.d.ts +15 -0
- package/dist/icons/zap.d.ts +15 -0
- package/dist/index.d.ts +100 -0
- package/dist/index.js +472 -0
- package/dist/infinite-gallery.d.ts +1 -0
- package/dist/infinite-gallery.js +9 -0
- package/dist/integration-hub.d.ts +1 -0
- package/dist/integration-hub.js +8 -0
- package/dist/lib/cn.d.ts +3 -0
- package/dist/liquid-card.d.ts +1 -0
- package/dist/liquid-card.js +10 -0
- package/dist/liquid-metal-card.d.ts +1 -0
- package/dist/liquid-metal-card.js +8 -0
- package/dist/liquid-tabs.d.ts +1 -0
- package/dist/liquid-tabs.js +14 -0
- package/dist/magnetic-button.d.ts +1 -0
- package/dist/magnetic-button.js +8 -0
- package/dist/magnetic-flow.d.ts +1 -0
- package/dist/magnetic-flow.js +8 -0
- package/dist/message-composer.d.ts +1 -0
- package/dist/message-composer.js +20 -0
- package/dist/metal-card-stack.d.ts +1 -0
- package/dist/metal-card-stack.js +8 -0
- package/dist/metric-split.d.ts +1 -0
- package/dist/metric-split.js +9 -0
- package/dist/mix-chart.d.ts +1 -0
- package/dist/mix-chart.js +9 -0
- package/dist/month-calendar.d.ts +1 -0
- package/dist/month-calendar.js +10 -0
- package/dist/morph-search.d.ts +1 -0
- package/dist/morph-search.js +10 -0
- package/dist/orbit-card.d.ts +1 -0
- package/dist/orbit-card.js +8 -0
- package/dist/otp-code.d.ts +1 -0
- package/dist/otp-code.js +17 -0
- package/dist/particle-card.d.ts +1 -0
- package/dist/particle-card.js +8 -0
- package/dist/payment-form.d.ts +1 -0
- package/dist/payment-form.js +8 -0
- package/dist/pill-tabs.d.ts +1 -0
- package/dist/pill-tabs.js +9 -0
- package/dist/pixel-blast.d.ts +1 -0
- package/dist/pixel-blast.js +8 -0
- package/dist/pixel-feature-card.d.ts +1 -0
- package/dist/pixel-feature-card.js +9 -0
- package/dist/pixel-scroll.d.ts +1 -0
- package/dist/pixel-scroll.js +8 -0
- package/dist/pricing-card.d.ts +1 -0
- package/dist/pricing-card.js +14 -0
- package/dist/prism-carousel.d.ts +1 -0
- package/dist/prism-carousel.js +8 -0
- package/dist/prism-flow.d.ts +1 -0
- package/dist/prism-flow.js +8 -0
- package/dist/privacy-banner.d.ts +1 -0
- package/dist/privacy-banner.js +8 -0
- package/dist/profile-card.d.ts +1 -0
- package/dist/profile-card.js +13 -0
- package/dist/profile-menu.d.ts +1 -0
- package/dist/profile-menu.js +21 -0
- package/dist/project-index.d.ts +1 -0
- package/dist/project-index.js +9 -0
- package/dist/prompt-input.d.ts +1 -0
- package/dist/prompt-input.js +14 -0
- package/dist/quota-gauge.d.ts +1 -0
- package/dist/quota-gauge.js +9 -0
- package/dist/range-chart.d.ts +1 -0
- package/dist/range-chart.js +8 -0
- package/dist/reaction-card.d.ts +1 -0
- package/dist/reaction-card.js +8 -0
- package/dist/recap-card.d.ts +1 -0
- package/dist/recap-card.js +15 -0
- package/dist/receipt-button.d.ts +1 -0
- package/dist/receipt-button.js +8 -0
- package/dist/ribbon-gallery.d.ts +1 -0
- package/dist/ribbon-gallery.js +8 -0
- package/dist/roadmap-card.d.ts +1 -0
- package/dist/roadmap-card.js +11 -0
- package/dist/rolling-card-stack.d.ts +1 -0
- package/dist/rolling-card-stack.js +8 -0
- package/dist/rolling-stepper.d.ts +1 -0
- package/dist/rolling-stepper.js +8 -0
- package/dist/rotating-text.d.ts +1 -0
- package/dist/rotating-text.js +9 -0
- package/dist/score-card.d.ts +1 -0
- package/dist/score-card.js +10 -0
- package/dist/search-modal.d.ts +1 -0
- package/dist/search-modal.js +16 -0
- package/dist/shimmer-text.d.ts +1 -0
- package/dist/shimmer-text.js +8 -0
- package/dist/sidebar-nav.d.ts +1 -0
- package/dist/sidebar-nav.js +19 -0
- package/dist/slide-commit.d.ts +1 -0
- package/dist/slide-commit.js +9 -0
- package/dist/spatial-gallery.d.ts +1 -0
- package/dist/spatial-gallery.js +8 -0
- package/dist/spending-meter.d.ts +1 -0
- package/dist/spending-meter.js +9 -0
- package/dist/tab-bar.d.ts +1 -0
- package/dist/tab-bar.js +18 -0
- package/dist/team-member-card.d.ts +1 -0
- package/dist/team-member-card.js +14 -0
- package/dist/team-morph.d.ts +1 -0
- package/dist/team-morph.js +11 -0
- package/dist/tilt-card.d.ts +1 -0
- package/dist/tilt-card.js +8 -0
- package/dist/tilt-carousel.d.ts +1 -0
- package/dist/tilt-carousel.js +8 -0
- package/dist/toast-stack.d.ts +1 -0
- package/dist/toast-stack.js +13 -0
- package/dist/usage-ring.d.ts +1 -0
- package/dist/usage-ring.js +9 -0
- package/dist/verify-flow.d.ts +1 -0
- package/dist/verify-flow.js +10 -0
- package/dist/voice-prompt.d.ts +1 -0
- package/dist/voice-prompt.js +14 -0
- package/dist/wallet-card.d.ts +1 -0
- package/dist/wallet-card.js +15 -0
- package/dist/wave-text.d.ts +1 -0
- package/dist/wave-text.js +8 -0
- package/package.json +111 -4
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GrowthStream
|
|
3
|
+
*
|
|
4
|
+
* Trigger: in view, then hover. A total built up over time, drawn as nested
|
|
5
|
+
* bands that step wider before each checkpoint. When the card scrolls into view
|
|
6
|
+
* the stream reveals left to right while the headline counts up on odometer
|
|
7
|
+
* wheels, both from one motion value, and each checkpoint pill pops in exactly
|
|
8
|
+
* as the reveal reaches it. Hovering or focusing a checkpoint rolls the headline
|
|
9
|
+
* to the running total there, swaps the caption and hides the other pills.
|
|
10
|
+
* Reduced motion shows the final state at once.
|
|
11
|
+
*
|
|
12
|
+
* Engine: motion/react (one motion value drives the clip-path reveal, the count
|
|
13
|
+
* and the pill timing; odometer wheels; AnimatePresence for pills and captions).
|
|
14
|
+
*/
|
|
15
|
+
import * as React from "react";
|
|
16
|
+
export interface StreamCheckpoint {
|
|
17
|
+
/** Name shown in the caption on hover, e.g. "Week 2". */
|
|
18
|
+
label: string;
|
|
19
|
+
/** Running total at this checkpoint. */
|
|
20
|
+
value: number;
|
|
21
|
+
}
|
|
22
|
+
export interface GrowthStreamProps {
|
|
23
|
+
/** Running totals, left to right. The last one is the headline. Default three weeks. */
|
|
24
|
+
checkpoints?: StreamCheckpoint[];
|
|
25
|
+
/** Total for the previous period, for the change badge and caption. Default `31350`. */
|
|
26
|
+
previous?: number;
|
|
27
|
+
/** Small label above the number. Default `"Income"`. */
|
|
28
|
+
title?: React.ReactNode;
|
|
29
|
+
/** Name of the previous period in the caption. Default `"last month"`. */
|
|
30
|
+
previousLabel?: string;
|
|
31
|
+
/** Name of the whole period in the hover caption. Default `"the month"`. */
|
|
32
|
+
periodLabel?: string;
|
|
33
|
+
/** Band color. Default `"#8b5cf6"`. */
|
|
34
|
+
color?: string;
|
|
35
|
+
/** Currency for the amounts (ISO code). Default `"USD"`. */
|
|
36
|
+
currency?: string;
|
|
37
|
+
/** Locale for number formatting. Default `"en-US"`. */
|
|
38
|
+
locale?: string;
|
|
39
|
+
/** Length of the reveal and count, in seconds. Default `1.6`. */
|
|
40
|
+
duration?: number;
|
|
41
|
+
/** Called when the round header button is pressed. Leave out to hide it. */
|
|
42
|
+
onAction?: () => void;
|
|
43
|
+
/** Accessible label for the round header button. Default `"View report"`. */
|
|
44
|
+
actionLabel?: string;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare const GrowthStream: React.ForwardRefExoticComponent<GrowthStreamProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GrowthStream, type GrowthStreamProps, type StreamCheckpoint } from "./growth-stream";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HighlightText
|
|
3
|
+
*
|
|
4
|
+
* Trigger: in view. A marker sweeps behind chosen phrases one after another as
|
|
5
|
+
* the paragraph scrolls into view, with a slight hand-held skew. The text stays
|
|
6
|
+
* plain and readable. Reduced motion shows the highlights already drawn.
|
|
7
|
+
*
|
|
8
|
+
* Engine: motion/react (useInView plus a staggered scaleX sweep behind each phrase).
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
export interface HighlightTextProps {
|
|
12
|
+
/** The paragraph. Default a short line about motion. */
|
|
13
|
+
text?: string;
|
|
14
|
+
/** Phrases to highlight, in reading order. Each must appear in `text`. */
|
|
15
|
+
highlights?: string[];
|
|
16
|
+
/** Marker color. Default a soft yellow. */
|
|
17
|
+
color?: string;
|
|
18
|
+
/** Seconds each sweep takes. Default `0.6`. */
|
|
19
|
+
duration?: number;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const HighlightText: React.ForwardRefExoticComponent<HighlightTextProps & React.RefAttributes<HTMLParagraphElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HighlightText, type HighlightTextProps } from "./highlight-text";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HoldToConfirm
|
|
3
|
+
*
|
|
4
|
+
* Trigger: press and hold. Holding the button (pointer, or Space / Enter)
|
|
5
|
+
* fills it left to right. Let go early and the fill springs back. Hold to the
|
|
6
|
+
* end and the label lifts away while a check draws itself and the confirmed
|
|
7
|
+
* label rises in letter by letter, at the same button size. `onConfirm` fires,
|
|
8
|
+
* then it resets.
|
|
9
|
+
* Built for destructive or deliberate actions where a plain click is too easy.
|
|
10
|
+
*
|
|
11
|
+
* Engine: motion/react (`animate` on a motion value, pathLength for the check,
|
|
12
|
+
* AnimatePresence for the label swap). Transform and opacity only.
|
|
13
|
+
*/
|
|
14
|
+
import * as React from "react";
|
|
15
|
+
import { type HTMLMotionProps } from "motion/react";
|
|
16
|
+
export interface HoldToConfirmProps extends Omit<HTMLMotionProps<"button">, "children" | "onPointerDown" | "onPointerUp"> {
|
|
17
|
+
/** Label shown before and during the hold. Default `"Hold to delete"`. */
|
|
18
|
+
children?: React.ReactNode;
|
|
19
|
+
/** Icon before the label. Default a trash icon. Pass `null` for none. */
|
|
20
|
+
icon?: React.ReactNode;
|
|
21
|
+
/** Label shown after the hold completes. Default `"Deleted"`. */
|
|
22
|
+
confirmedLabel?: React.ReactNode;
|
|
23
|
+
/** How long the hold takes, in ms. Default `1200`. */
|
|
24
|
+
duration?: number;
|
|
25
|
+
/** How long the confirmed state shows before the button resets, in ms. Default `1600`. */
|
|
26
|
+
resetAfter?: number;
|
|
27
|
+
/** Called once when the hold completes. */
|
|
28
|
+
onConfirm?: () => void;
|
|
29
|
+
/** Fill color class. Default near-black (near-white in dark mode). */
|
|
30
|
+
fillClassName?: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const HoldToConfirm: React.ForwardRefExoticComponent<Omit<HoldToConfirmProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { HoldToConfirm, type HoldToConfirmProps } from "./hold-to-confirm";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { InfiniteGallery, type InfiniteGalleryItem, type InfiniteGalleryProps } from "./infinite-gallery";
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* InfiniteGallery
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag (plus wheel and touch). An endless wall of work that you can
|
|
5
|
+
* move in any direction and never reach the edge of: cards wrap around
|
|
6
|
+
* seamlessly, so there is no visible reset. Drag to pan with momentum, scroll
|
|
7
|
+
* the wheel or trackpad to glide, or leave it alone and it drifts slowly.
|
|
8
|
+
* Cards shrink a touch while the wall moves fast, cards near the edges sit
|
|
9
|
+
* slightly smaller than the center for depth, and each image shifts inside its
|
|
10
|
+
* frame for parallax. While you drag or flick, the cards stretch like rubber
|
|
11
|
+
* along the direction of travel and smear with a matching motion blur, then
|
|
12
|
+
* snap back with a little overshoot when the wall stops. Hovering a card breaks its image into big pixels that
|
|
13
|
+
* resolve back to sharp in a few quick steps, zooms it in and slides up a title
|
|
14
|
+
* pill on that card only. Cards can be images or muted looping videos, with alt text and links.
|
|
15
|
+
* On first view the wall blooms in from the center outward: each card rises,
|
|
16
|
+
* scales up and fades in while its image resolves out of pixels.
|
|
17
|
+
* Reduced motion turns off drift, momentum and the depth effects.
|
|
18
|
+
*
|
|
19
|
+
* Engine: motion/react (useAnimationFrame runs the camera; every card's
|
|
20
|
+
* transform is written straight to the DOM, so panning never re-renders React).
|
|
21
|
+
*/
|
|
22
|
+
import * as React from "react";
|
|
23
|
+
export interface InfiniteGalleryItem {
|
|
24
|
+
/** Image URL (also the poster for a video). */
|
|
25
|
+
src: string;
|
|
26
|
+
/** Optional video URL; plays muted and looped. */
|
|
27
|
+
video?: string;
|
|
28
|
+
title: string;
|
|
29
|
+
/** Alt text. Default the title. */
|
|
30
|
+
alt?: string;
|
|
31
|
+
/** Where the card goes when clicked. */
|
|
32
|
+
href?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface InfiniteGalleryProps {
|
|
35
|
+
/** Cards to tile endlessly. Default a set of sample photos. */
|
|
36
|
+
items?: InfiniteGalleryItem[];
|
|
37
|
+
/** Card width, px. Default `220`. */
|
|
38
|
+
cardWidth?: number;
|
|
39
|
+
/** Card height, px. Default `280`. */
|
|
40
|
+
cardHeight?: number;
|
|
41
|
+
/** Space between cards, px. Default `20`. */
|
|
42
|
+
gap?: number;
|
|
43
|
+
/** Offset every other column for a staggered wall. Default `true`. */
|
|
44
|
+
stagger?: boolean;
|
|
45
|
+
/** Idle drift speed, px/s. `0` stops it. Default `24`. */
|
|
46
|
+
drift?: number;
|
|
47
|
+
/** How far momentum carries a flick, 0 to 1. Default `0.6`. */
|
|
48
|
+
momentum?: number;
|
|
49
|
+
/** Cards near the edges sit smaller than the center, 0 to 1. Default `0.35`. */
|
|
50
|
+
depth?: number;
|
|
51
|
+
/** Images shift inside their frames as they move, 0 to 1. Default `0.5`. */
|
|
52
|
+
parallax?: number;
|
|
53
|
+
/** The mouse wheel and trackpad pan the gallery while the pointer is over it. Default `true`. */
|
|
54
|
+
wheel?: boolean;
|
|
55
|
+
/** Rubbery stretch along the direction of travel while the wall moves, 0 to 1. Default `0.6`. */
|
|
56
|
+
stretch?: number;
|
|
57
|
+
/** Strongest directional motion blur while the wall moves, px. `0` turns it off. Default `6`. */
|
|
58
|
+
blur?: number;
|
|
59
|
+
/** Bloom the cards in from the center the first time the gallery scrolls into view. Default `true`. */
|
|
60
|
+
intro?: boolean;
|
|
61
|
+
/** Hovering a card pixelates its image, then resolves it back to sharp. Default `true`. */
|
|
62
|
+
pixelate?: boolean;
|
|
63
|
+
/** Starting pixel size for the hover resolve, px. Default `12`. */
|
|
64
|
+
pixelSize?: number;
|
|
65
|
+
/** Show the title pill on hover. Default `true`. */
|
|
66
|
+
showTitles?: boolean;
|
|
67
|
+
/** Open links in a new tab. Default `false`. */
|
|
68
|
+
newTab?: boolean;
|
|
69
|
+
/** Accessible name. Default `"Project gallery"`. */
|
|
70
|
+
label?: string;
|
|
71
|
+
className?: string;
|
|
72
|
+
}
|
|
73
|
+
export declare const InfiniteGallery: React.ForwardRefExoticComponent<InfiniteGalleryProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { IntegrationHub, type IntegrationHubProps, type HubApp, } from "./integration-hub";
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IntegrationHub
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover (plus in view). A ring of app tiles wired into one hub in the
|
|
5
|
+
* middle. When it scrolls into view the hub springs in out of a blur and
|
|
6
|
+
* gives off a pulse, two faint rings open around it, then the curved wires
|
|
7
|
+
* grow out from it one by one, clockwise, and each tile springs in from the
|
|
8
|
+
* hub's side just as its wire reaches it. Then dots (one by default, or
|
|
9
|
+
* packets with a fading trail) flow along every wire into the hub, which
|
|
10
|
+
* pulses softly as they land. Hovering a tile or its wire (or focusing a
|
|
11
|
+
* tile) lifts the tile, turns its wire solid ink, speeds up and enlarges its
|
|
12
|
+
* dots, dims the rest and names the app in a pill under the hub. Reduced
|
|
13
|
+
* motion skips the entrance and keeps the dots still.
|
|
14
|
+
*
|
|
15
|
+
* Engine: motion/react (springs for the hub and tiles, pathLength for the
|
|
16
|
+
* wires) with one requestAnimationFrame loop that moves the packets along the
|
|
17
|
+
* SVG paths and pauses off screen.
|
|
18
|
+
*/
|
|
19
|
+
import * as React from "react";
|
|
20
|
+
import { type LucideIcon } from "lucide-react";
|
|
21
|
+
export interface HubApp {
|
|
22
|
+
/** App name, shown on hover and read to screen readers. */
|
|
23
|
+
label: string;
|
|
24
|
+
/** Icon inside the tile: a lucide icon or any node, like an `<img>` logo. */
|
|
25
|
+
icon: LucideIcon | React.ReactNode;
|
|
26
|
+
}
|
|
27
|
+
export interface IntegrationHubProps {
|
|
28
|
+
/** Apps around the ring, clockwise from the top. Default fourteen. */
|
|
29
|
+
apps?: HubApp[];
|
|
30
|
+
/** What sits in the hub. Default a small orbit mark. */
|
|
31
|
+
hub?: React.ReactNode;
|
|
32
|
+
/** Name of the hub, read to screen readers. Default `"Your workspace"`. */
|
|
33
|
+
label?: string;
|
|
34
|
+
/** Packet speed; `2` is twice as fast. Default `1`. */
|
|
35
|
+
speed?: number;
|
|
36
|
+
/** Dots in each packet, head included; `1` is a single dot. Default `1`. */
|
|
37
|
+
trail?: number;
|
|
38
|
+
className?: string;
|
|
39
|
+
}
|
|
40
|
+
export declare const IntegrationHub: React.ForwardRefExoticComponent<IntegrationHubProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LiquidCard, LiquidCarousel, type LiquidCardProps, type LiquidCarouselProps, type LiquidIcon, } from "./liquid-card";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiquidCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag (plus hover, keys and in view). A tall card with a huge icon
|
|
5
|
+
* bleeding off its right edge, used as a glass container: the empty part is a
|
|
6
|
+
* soft tint and a coloured liquid fills it to the value, glowing. When the
|
|
7
|
+
* card scrolls into view the liquid pours in from empty and settles with a
|
|
8
|
+
* little spring while the number counts up. Its surface rolls with two offset
|
|
9
|
+
* waves and bubbles rise through it. Moving the pointer quickly sloshes the
|
|
10
|
+
* liquid, tilting its surface against the motion before it wobbles level
|
|
11
|
+
* again. Drag up or down on the icon (or use the arrow keys) to set the level;
|
|
12
|
+
* the number follows. A blurred copy of the icon glows behind it and a faint
|
|
13
|
+
* glow rises from the bottom edge, softer on the white card. On hover a soft glow in the liquid's colour follows the
|
|
14
|
+
* pointer and a thin line of the colour runs round the outline, all inside
|
|
15
|
+
* the card. Four icons ship: a bolt, a
|
|
16
|
+
* cloud, a shield and a drop, and LiquidCarousel shows them one at a time.
|
|
17
|
+
* Reduced motion shows the level still, with no waves or bubbles.
|
|
18
|
+
*
|
|
19
|
+
* Engine: gsap + @gsap/react (an elastic pour, endless wave tweens, bubble
|
|
20
|
+
* timelines, a counting tween, svgOrigin rotation for the slosh, quickTo for
|
|
21
|
+
* dragging the level), scoped with useGSAP; motion/react springs for the
|
|
22
|
+
* carousel slide.
|
|
23
|
+
*/
|
|
24
|
+
import * as React from "react";
|
|
25
|
+
export type LiquidIcon = "bolt" | "cloud" | "shield" | "drop";
|
|
26
|
+
export interface LiquidCardProps {
|
|
27
|
+
/** Which icon holds the liquid. Default `"bolt"`. */
|
|
28
|
+
icon?: LiquidIcon;
|
|
29
|
+
/** Fill level, 0 to 100. Default per icon. */
|
|
30
|
+
value?: number;
|
|
31
|
+
/** Small label at the top. Default per icon. */
|
|
32
|
+
label?: string;
|
|
33
|
+
/** Word under the number. Default per icon. */
|
|
34
|
+
caption?: string;
|
|
35
|
+
/** Two line message at the bottom. Default per icon. */
|
|
36
|
+
message?: [string, string];
|
|
37
|
+
/** Liquid colour. Default per icon. */
|
|
38
|
+
color?: string;
|
|
39
|
+
/** Light (white card) or dark. Default `"light"`. */
|
|
40
|
+
theme?: "light" | "dark";
|
|
41
|
+
/** Let people drag the level. Default `true`. */
|
|
42
|
+
interactive?: boolean;
|
|
43
|
+
onChange?: (value: number) => void;
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare const LiquidCard: React.ForwardRefExoticComponent<LiquidCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
47
|
+
export interface LiquidCarouselProps {
|
|
48
|
+
/** The cards, in order. Default one of each icon. */
|
|
49
|
+
cards?: LiquidCardProps[];
|
|
50
|
+
/** Theme for every card. Default `"light"`. */
|
|
51
|
+
theme?: "light" | "dark";
|
|
52
|
+
/** Card shown, when you control it. */
|
|
53
|
+
index?: number;
|
|
54
|
+
/** Card shown first, when it keeps its own. Default `0`. */
|
|
55
|
+
defaultIndex?: number;
|
|
56
|
+
onIndexChange?: (index: number) => void;
|
|
57
|
+
className?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* A carousel of LiquidCards laid out side by side in one row. Drag or swipe
|
|
61
|
+
* the row left and right (it carries on a little and eases to a stop, with a
|
|
62
|
+
* soft give at the ends), or use the Left and Right keys to move one card at
|
|
63
|
+
* a time. The row is not clipped, so the cards run on past its edges. Dragging inside a card's icon still sets
|
|
64
|
+
* its level rather than moving the row.
|
|
65
|
+
*/
|
|
66
|
+
export declare const LiquidCarousel: React.ForwardRefExoticComponent<LiquidCarouselProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LiquidMetalCard, type LiquidMetalCardProps, } from "./liquid-metal-card";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiquidMetalCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover (or press). A white image card that melts into a second
|
|
5
|
+
* picture under a flood of black liquid metal. The moment the pointer comes
|
|
6
|
+
* onto it, the metal pours in from the corner nearest the pointer: rivulets
|
|
7
|
+
* run ahead toward the middle, each led by a heavy bead riding its tip, then
|
|
8
|
+
* the pool surges after them and slows as it thickens, its front bulging
|
|
9
|
+
* unevenly. It is lit like polished black chrome, shaded round its edges
|
|
10
|
+
* with a hot highlight on top and a cool rim light below, and while it moves
|
|
11
|
+
* its surface ripples and the reflections slide across it. A beat behind the
|
|
12
|
+
* metal front the second picture surfaces from inside it, settling in from a
|
|
13
|
+
* slight zoom, so the change always arrives through the metal. Leaving drains
|
|
14
|
+
* it back into the same corner: the picture sinks, the rivulets pull in, then
|
|
15
|
+
* the pool. A press or tap pours from the nearest corner too, and Enter and
|
|
16
|
+
* Space from the bottom right. The title under the image rolls to the second
|
|
17
|
+
* picture's name while it shows. `speed` runs the pour and the drain faster
|
|
18
|
+
* or slower. Reduced motion swaps the metal for a crossfade.
|
|
19
|
+
*
|
|
20
|
+
* Engine: gsap + @gsap/react. SVG circles and stroked limb paths filled with
|
|
21
|
+
* a reflection gradient run through a filter chain (gentle turbulence for a
|
|
22
|
+
* living edge, blur and an alpha threshold to melt them together, then
|
|
23
|
+
* diffuse and specular lighting on the alpha for the chrome); a second,
|
|
24
|
+
* lagging shape masks the revealed picture. Timelines and the turning
|
|
25
|
+
* reflections are scoped with useGSAP, and motion/react rolls the title.
|
|
26
|
+
*/
|
|
27
|
+
import * as React from "react";
|
|
28
|
+
export interface LiquidMetalCardProps {
|
|
29
|
+
/** The picture on show. */
|
|
30
|
+
src?: string;
|
|
31
|
+
/** The picture the liquid reveals. */
|
|
32
|
+
revealSrc?: string;
|
|
33
|
+
/** Title for the first picture. Default `"Daylight"`. */
|
|
34
|
+
title?: string;
|
|
35
|
+
/** Title while the second picture shows. Default `"Golden hour"`. */
|
|
36
|
+
revealTitle?: string;
|
|
37
|
+
/** Line under the title. */
|
|
38
|
+
subtitle?: string;
|
|
39
|
+
/** Limbs that race out ahead of the metal. Default `9`. */
|
|
40
|
+
tendrils?: number;
|
|
41
|
+
/** Speed of the pour and the drain. `1` is the slow, heavy pour; higher is faster. Default `2`. */
|
|
42
|
+
speed?: number;
|
|
43
|
+
className?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare const LiquidMetalCard: React.ForwardRefExoticComponent<LiquidMetalCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LiquidTabs, type LiquidTabsProps, type LiquidTab } from "./liquid-tabs";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LiquidTabs
|
|
3
|
+
*
|
|
4
|
+
* Trigger: press (plus hover, keys and in view). Icon tabs over a white
|
|
5
|
+
* panel. The chosen tab is a white bump that grows out of the panel's top
|
|
6
|
+
* edge, joined to it by soft inward curves, so the tab and the panel read as
|
|
7
|
+
* one piece. Choose another tab and the bump flows there like liquid: its
|
|
8
|
+
* leading edge shoots ahead on a quick spring while the trailing edge follows
|
|
9
|
+
* on a slower one, so the shape stretches into a long blob, its top sags and
|
|
10
|
+
* its curves widen, then it snaps back into a round tab under the new icon.
|
|
11
|
+
* The icon on the bump plays. The content slides in from the side you moved
|
|
12
|
+
* toward through a blur while the panel eases to the new height. The demo is
|
|
13
|
+
* a profile settings screen: a profile with a status picker, notification
|
|
14
|
+
* switches, security with your signed in devices, and usage with a rolling
|
|
15
|
+
* number and growing bars. The arrow keys, Home and End move
|
|
16
|
+
* between tabs. Reduced motion jumps the bump and swaps content without
|
|
17
|
+
* movement.
|
|
18
|
+
*
|
|
19
|
+
* Engine: motion/react (two springs for the bump's edges feeding one SVG
|
|
20
|
+
* path, AnimatePresence for the content, a measured height tween) with
|
|
21
|
+
* animated icons from lucide-animated (MIT), vendored in src/icons.
|
|
22
|
+
*/
|
|
23
|
+
import * as React from "react";
|
|
24
|
+
export interface LiquidTab {
|
|
25
|
+
id: string;
|
|
26
|
+
/** Read by screen readers and shown in the tooltip. */
|
|
27
|
+
label: string;
|
|
28
|
+
/** An icon component; animated icons play while their tab is chosen. */
|
|
29
|
+
icon: React.ComponentType<{
|
|
30
|
+
active?: boolean;
|
|
31
|
+
className?: string;
|
|
32
|
+
}>;
|
|
33
|
+
content: React.ReactNode;
|
|
34
|
+
}
|
|
35
|
+
export interface LiquidTabsProps {
|
|
36
|
+
/** Tabs, left to right. Defaults to four demo tabs. */
|
|
37
|
+
tabs?: LiquidTab[];
|
|
38
|
+
/** Tab chosen first, by id. */
|
|
39
|
+
defaultValue?: string;
|
|
40
|
+
/** Chosen tab (controlled). */
|
|
41
|
+
value?: string;
|
|
42
|
+
onValueChange?: (id: string) => void;
|
|
43
|
+
/** How far the liquid stretches between tabs: 0 is firm, 1 is very stretchy. Default `0.6`. */
|
|
44
|
+
stretch?: number;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare const LiquidTabs: React.ForwardRefExoticComponent<LiquidTabsProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MagneticButton, type MagneticButtonProps } from "./magnetic-button";
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MagneticButton
|
|
3
|
+
*
|
|
4
|
+
* Trigger: magnetic cursor. While a mouse hovers the button, the button leans
|
|
5
|
+
* toward the cursor on a spring and its label leans a little further, giving a
|
|
6
|
+
* parallax pull. A soft spotlight follows the cursor across the surface.
|
|
7
|
+
* Press gives a quick squash (scale 0.96). Touch and reduced-motion users get a
|
|
8
|
+
* still button with press feedback only.
|
|
9
|
+
*
|
|
10
|
+
* Engine: motion/react (springs + motion values, no re-renders on move).
|
|
11
|
+
*/
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import { type HTMLMotionProps, type SpringOptions } from "motion/react";
|
|
14
|
+
declare const VARIANTS: {
|
|
15
|
+
readonly solid: "bg-zinc-900 text-white shadow-[0_1px_0_0_rgba(255,255,255,0.12)_inset,0_8px_24px_-8px_rgba(0,0,0,0.5)] dark:bg-white dark:text-zinc-900";
|
|
16
|
+
readonly outline: "border border-zinc-300 bg-white/60 text-zinc-900 backdrop-blur dark:border-zinc-700 dark:bg-zinc-900/60 dark:text-zinc-100";
|
|
17
|
+
readonly ghost: "bg-transparent text-zinc-900 hover:bg-zinc-900/5 dark:text-zinc-100 dark:hover:bg-white/10";
|
|
18
|
+
};
|
|
19
|
+
declare const SIZES: {
|
|
20
|
+
readonly sm: "h-9 px-4 text-sm";
|
|
21
|
+
readonly md: "h-11 px-6 text-sm";
|
|
22
|
+
readonly lg: "h-14 px-8 text-base";
|
|
23
|
+
};
|
|
24
|
+
export interface MagneticButtonProps extends Omit<HTMLMotionProps<"button">, "children"> {
|
|
25
|
+
children?: React.ReactNode;
|
|
26
|
+
/** Visual style. Default `"solid"`. */
|
|
27
|
+
variant?: keyof typeof VARIANTS;
|
|
28
|
+
/** Height and padding preset. Default `"md"`. */
|
|
29
|
+
size?: keyof typeof SIZES;
|
|
30
|
+
/** How far the button follows the cursor, as a fraction of the cursor's offset from center. Default `0.3`. */
|
|
31
|
+
strength?: number;
|
|
32
|
+
/** Extra pull on the label, on top of the button's own movement. Default `0.15`. */
|
|
33
|
+
labelStrength?: number;
|
|
34
|
+
/** Spring used for the pull and the snap back. Default `{ stiffness: 400, damping: 25, mass: 0.6 }`. */
|
|
35
|
+
spring?: SpringOptions;
|
|
36
|
+
/** Show the cursor spotlight on the surface. Default `true`. */
|
|
37
|
+
spotlight?: boolean;
|
|
38
|
+
/** Render as a link to this address instead of a button. */
|
|
39
|
+
href?: string;
|
|
40
|
+
/** With `href`, where the link opens, like `"_blank"`. */
|
|
41
|
+
target?: string;
|
|
42
|
+
/** With `href`. Defaults to `"noopener noreferrer"` for a new tab. */
|
|
43
|
+
rel?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare const MagneticButton: React.ForwardRefExoticComponent<Omit<MagneticButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MagneticFlow, type MagneticFlowProps } from "./magnetic-flow";
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MagneticFlow
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover, then press. A stack of cards travels as a chain: the front
|
|
5
|
+
* card follows the pointer and every card behind it chases the one ahead, so
|
|
6
|
+
* the stack slithers like a snake and tilts with its speed. With no pointer the
|
|
7
|
+
* stack floats gently at the center. Click (or Enter / Space) and the cards burst
|
|
8
|
+
* open around the center like rays of a sun; click again, or wait, and they
|
|
9
|
+
* fold back into the stack and flow on. Reduced motion keeps a still stack and
|
|
10
|
+
* a plain burst.
|
|
11
|
+
*
|
|
12
|
+
* Engine: gsap + @gsap/react (a gsap.ticker loop with quickSetter for the chase,
|
|
13
|
+
* staggered elastic tweens for the burst, all scoped with useGSAP).
|
|
14
|
+
*/
|
|
15
|
+
import * as React from "react";
|
|
16
|
+
export interface MagneticFlowProps {
|
|
17
|
+
/** Card faces, back to front. The last one leads. Default eight graphic cards. */
|
|
18
|
+
cards?: React.ReactNode[];
|
|
19
|
+
/** Card edge length in px. Default `140`. */
|
|
20
|
+
cardSize?: number;
|
|
21
|
+
/** How tightly each card chases the one ahead, 0 to 1. Higher is snappier. Default `0.16`. */
|
|
22
|
+
follow?: number;
|
|
23
|
+
/** Stack offset between cards at rest, in px. Default `7`. */
|
|
24
|
+
spacing?: number;
|
|
25
|
+
/** Distance of the burst rays from the center, in px. Shrinks to fit. Default `150`. */
|
|
26
|
+
burstRadius?: number;
|
|
27
|
+
/** Fold back this many ms after a burst. `null` waits for a click. Default `2400`. */
|
|
28
|
+
burstHold?: number | null;
|
|
29
|
+
/** Float gently around the center when no pointer is over it. Default `true`. */
|
|
30
|
+
autoplay?: boolean;
|
|
31
|
+
/** Called when the cards burst open. */
|
|
32
|
+
onBurst?: () => void;
|
|
33
|
+
className?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare const MagneticFlow: React.ForwardRefExoticComponent<MagneticFlowProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MessageComposer, type MessageComposerProps, type ComposerMessage, type ComposerAttachment, type ComposerAttachmentKind, type ComposerPerson, type SendMode, } from "./message-composer";
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MessageComposer
|
|
3
|
+
*
|
|
4
|
+
* Trigger: type (plus press). A white rich text composer for a chat or a
|
|
5
|
+
* comment thread. A toolbar sits on top: a text style menu that pours open
|
|
6
|
+
* with its rows sliding in one after another and a pill gliding under the
|
|
7
|
+
* pointer, bold, italic and underline, bullet and numbered lists, a quote and
|
|
8
|
+
* a code block, each lighting up while the caret is inside that style, and a
|
|
9
|
+
* red bin that clears the message through a blur. The writing area grows with
|
|
10
|
+
* a spring as you write. Typing @ opens a list of people that inserts a
|
|
11
|
+
* mention chip, and an emoji button opens a small picker. Attachments sit in
|
|
12
|
+
* a row of thumbnails, each with an upload ring that turns into a check. The
|
|
13
|
+
* bottom bar holds attach, voice (a live timer with sound bars), video, an AI
|
|
14
|
+
* polish that sweeps a shimmer over the text and rewrites it, a button that
|
|
15
|
+
* hides the toolbar, and a split send button: the plane flies off as the
|
|
16
|
+
* message clears, and the chevron opens send now, schedule and send quietly.
|
|
17
|
+
* Reduced motion keeps every state but drops the movement.
|
|
18
|
+
*
|
|
19
|
+
* Engine: motion/react (a spring height glide for the writing area, clip
|
|
20
|
+
* path menus with staggered rows, layoutId highlights, spring chips, and a
|
|
21
|
+
* blur clear), on top of a contentEditable editor driven by execCommand.
|
|
22
|
+
*/
|
|
23
|
+
import * as React from "react";
|
|
24
|
+
export interface ComposerPerson {
|
|
25
|
+
/** Used in the text as @id. */
|
|
26
|
+
id: string;
|
|
27
|
+
name: string;
|
|
28
|
+
/** A short line next to the name, like a role. */
|
|
29
|
+
title?: string;
|
|
30
|
+
avatar?: string;
|
|
31
|
+
}
|
|
32
|
+
export type ComposerAttachmentKind = "image" | "video" | "voice" | "file";
|
|
33
|
+
export interface ComposerAttachment {
|
|
34
|
+
id: string;
|
|
35
|
+
name: string;
|
|
36
|
+
kind: ComposerAttachmentKind;
|
|
37
|
+
/** A preview image for images and videos. */
|
|
38
|
+
src?: string;
|
|
39
|
+
/** Shown on videos and voice notes, like 0:12. */
|
|
40
|
+
duration?: string;
|
|
41
|
+
/** The picked file, when it came from the attach button. */
|
|
42
|
+
file?: File;
|
|
43
|
+
}
|
|
44
|
+
export type SendMode = "now" | "schedule" | "silent";
|
|
45
|
+
export interface ComposerMessage {
|
|
46
|
+
/** The message as HTML, with mentions as `<span data-mention="id">`. */
|
|
47
|
+
html: string;
|
|
48
|
+
/** The message as plain text, with mentions as `@id`. */
|
|
49
|
+
text: string;
|
|
50
|
+
mentions: string[];
|
|
51
|
+
attachments: ComposerAttachment[];
|
|
52
|
+
mode: SendMode;
|
|
53
|
+
/** When a scheduled message should go out. */
|
|
54
|
+
sendAt?: Date;
|
|
55
|
+
}
|
|
56
|
+
export interface MessageComposerProps {
|
|
57
|
+
/** Starting text. Lines become paragraphs and `@id` of a known person becomes a chip. */
|
|
58
|
+
defaultValue?: string;
|
|
59
|
+
placeholder?: string;
|
|
60
|
+
/** People offered after typing @. */
|
|
61
|
+
people?: ComposerPerson[];
|
|
62
|
+
/** Attachments already in the message; they upload when the composer comes into view. */
|
|
63
|
+
defaultAttachments?: ComposerAttachment[];
|
|
64
|
+
/** Show the formatting toolbar at first. Default `true`. */
|
|
65
|
+
toolbar?: boolean;
|
|
66
|
+
/** The writing area grows up to this height in px, then scrolls. Default `240`. */
|
|
67
|
+
maxHeight?: number;
|
|
68
|
+
/** Called on send. Return a promise to hold the sending state until it settles. */
|
|
69
|
+
onSend?: (message: ComposerMessage) => void | Promise<unknown>;
|
|
70
|
+
/** Uploads a picked file, reporting progress from 0 to 1. Default pretends to upload. */
|
|
71
|
+
onUpload?: (file: File, progress: (value: number) => void) => Promise<void>;
|
|
72
|
+
/** The AI button: gets the text, returns a better one. Default tidies it, or drafts one when empty. */
|
|
73
|
+
onEnhance?: (text: string) => string | Promise<string>;
|
|
74
|
+
/** The video button. Default adds a sample clip. */
|
|
75
|
+
onVideo?: () => void;
|
|
76
|
+
onChange?: (text: string) => void;
|
|
77
|
+
className?: string;
|
|
78
|
+
}
|
|
79
|
+
export declare const MessageComposer: React.ForwardRefExoticComponent<MessageComposerProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MetalCardStack, type MetalCardStackProps, type MetalCard, } from "./metal-card-stack";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetalCardStack
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag (plus hover and keys). A stack of metal payment cards that
|
|
5
|
+
* feel like the real thing: brushed metal with a fine grain, bevelled edges
|
|
6
|
+
* that catch the light, a visible card edge underneath, an embossed number
|
|
7
|
+
* and a light sheen that slides across the surface as the front card tilts
|
|
8
|
+
* toward the pointer. Grab the front card and it follows your hand, leaning
|
|
9
|
+
* into the drag. Throw it any way, left, right, up or down, and it flies off
|
|
10
|
+
* that way and tucks in at the back of the stack. Click the front card (or press Enter) and
|
|
11
|
+
* it turns over in 3D to show its back: the magnetic stripe, the signature
|
|
12
|
+
* panel with the security code and the small print; click again to turn it
|
|
13
|
+
* back. A short drag springs back. The rest of the
|
|
14
|
+
* stack slides up or down a step each time, smaller and dimmer the deeper it
|
|
15
|
+
* sits. The arrow keys do the same. Reduced motion swaps the throws for quick
|
|
16
|
+
* fades.
|
|
17
|
+
*
|
|
18
|
+
* Engine: gsap + @gsap/react (quickTo for the drag and tilt, timelines for the
|
|
19
|
+
* throw, scoped with useGSAP).
|
|
20
|
+
*/
|
|
21
|
+
import * as React from "react";
|
|
22
|
+
export interface MetalCard {
|
|
23
|
+
/** Name on the card. */
|
|
24
|
+
holder: string;
|
|
25
|
+
/** The full card number, digits only. Grouped the way its network prints it. */
|
|
26
|
+
number: string;
|
|
27
|
+
/** The card network, shown as its mark in the corner. */
|
|
28
|
+
network: "visa" | "mastercard" | "amex" | "discover";
|
|
29
|
+
/** The issuer's name, top left. */
|
|
30
|
+
bank?: string;
|
|
31
|
+
/** Security code shown on the back. Default `"123"`. */
|
|
32
|
+
cvv?: string;
|
|
33
|
+
/** Expiry, MM/YY. */
|
|
34
|
+
expiry: string;
|
|
35
|
+
/** The metal. */
|
|
36
|
+
finish: "graphite" | "gold" | "titanium" | "obsidian";
|
|
37
|
+
/** Small label in the corner, like the plan name. */
|
|
38
|
+
tier?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface MetalCardStackProps {
|
|
41
|
+
/** Cards in the stack, front first. Default four. */
|
|
42
|
+
cards?: MetalCard[];
|
|
43
|
+
/** Card width in px. Height follows the real card ratio. Default `320`. */
|
|
44
|
+
width?: number;
|
|
45
|
+
/** Called with the card now at the front. */
|
|
46
|
+
onChange?: (card: MetalCard, index: number) => void;
|
|
47
|
+
className?: string;
|
|
48
|
+
}
|
|
49
|
+
export declare const MetalCardStack: React.ForwardRefExoticComponent<MetalCardStackProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { MetricSplit, type MetricSplitProps, type MetricSplitPeriod } from "./metric-split";
|