motion-brew 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-5IAO5YQA.js +373 -0
- package/dist/chunk-5MP5QNFG.js +560 -0
- package/dist/chunk-62RBYLIN.js +128 -0
- package/dist/chunk-6FTC5OQF.js +384 -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-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-H2JOCJWM.js +125 -0
- package/dist/chunk-H7XKIWHA.js +135 -0
- package/dist/chunk-HHXK3NAH.js +1382 -0
- package/dist/chunk-HJINEW5T.js +3289 -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-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-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-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-SVK4MQMV.js +267 -0
- package/dist/chunk-SZAHSOSQ.js +932 -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-W46CBUFX.js +425 -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-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 +14 -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,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GlobeCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag (plus hover and in view). A feature card, for a team or about
|
|
5
|
+
* page or anywhere else, with a dotted 3D globe rising from its bottom edge
|
|
6
|
+
* over a soft colored glow. People sit in cities around the world; arcs draw
|
|
7
|
+
* between them with a small glowing comet at the head, and each landing pops
|
|
8
|
+
* that person's avatar with a ripple. The globe turns slowly, leans toward the
|
|
9
|
+
* cursor on hover and spins and tips under a drag with momentum. When the card
|
|
10
|
+
* scrolls into view the title and body rise out of a soft blur, followed by a
|
|
11
|
+
* gray ghost button whose arrow slides through on hover. Rendering pauses off
|
|
12
|
+
* screen. The globe is decorative; the text stays real content. Reduced motion
|
|
13
|
+
* shows a still globe with its arcs already drawn.
|
|
14
|
+
*
|
|
15
|
+
* Engine: three.js for the globe, dots, arcs and avatars (one WebGL canvas),
|
|
16
|
+
* with motion/react for the text reveal.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
export interface GlobeMember {
|
|
20
|
+
name: string;
|
|
21
|
+
city: string;
|
|
22
|
+
lat: number;
|
|
23
|
+
lon: number;
|
|
24
|
+
/** Avatar color. Default from the palette. */
|
|
25
|
+
color?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface GlobeCardProps {
|
|
28
|
+
/** Card title. Default `"Global team"`. */
|
|
29
|
+
title?: string;
|
|
30
|
+
/** Line under the title. */
|
|
31
|
+
subtitle?: string;
|
|
32
|
+
/** Button label. Default `"Meet the team"`. */
|
|
33
|
+
cta?: string;
|
|
34
|
+
/** Where the button goes. Without it the button calls `onCta`. */
|
|
35
|
+
href?: string;
|
|
36
|
+
/** Teammates and where they are. Default ten people around the world. */
|
|
37
|
+
members?: GlobeMember[];
|
|
38
|
+
/** Arcs in flight at once. Default `6`. */
|
|
39
|
+
arcs?: number;
|
|
40
|
+
/** Seconds per full turn. `0` holds the globe still. Default `70`. */
|
|
41
|
+
turn?: number;
|
|
42
|
+
/** Called by the button when there is no `href`. */
|
|
43
|
+
onCta?: () => void;
|
|
44
|
+
className?: string;
|
|
45
|
+
}
|
|
46
|
+
export declare const GlobeCard: React.ForwardRefExoticComponent<GlobeCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GlobeCard, type GlobeCardProps, type GlobeMember } from "./globe-card";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GoalGauge
|
|
3
|
+
*
|
|
4
|
+
* Trigger: in view, then hover. A half-ring meter for progress toward a goal.
|
|
5
|
+
* When the card scrolls into view the arc sweeps up to the value while the
|
|
6
|
+
* amount counts up from zero on odometer wheels, driven by the same motion value. Hovering the arc
|
|
7
|
+
* (or focusing the meter) shows the percent and what is left in a tooltip at
|
|
8
|
+
* the arc's end. New values glide from the old one, and reaching the goal
|
|
9
|
+
* swaps the caption for "Goal reached". Reduced motion shows the final state
|
|
10
|
+
* at once.
|
|
11
|
+
*
|
|
12
|
+
* Engine: motion/react (animate on a motion value, pathLength for the arc,
|
|
13
|
+
* transforms for the tooltip, AnimatePresence for the swaps).
|
|
14
|
+
*/
|
|
15
|
+
import * as React from "react";
|
|
16
|
+
export interface GaugeSegment {
|
|
17
|
+
label: string;
|
|
18
|
+
value: number;
|
|
19
|
+
/** Segment color. Defaults to the next color in the built-in palette. */
|
|
20
|
+
color?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface GoalGaugeProps {
|
|
23
|
+
/** Breakdown of the amount saved. The total is their sum. Default five sources. */
|
|
24
|
+
segments?: GaugeSegment[];
|
|
25
|
+
/** A single amount, used when `segments` is not set. */
|
|
26
|
+
value?: number;
|
|
27
|
+
/** Color for the single-amount arc. */
|
|
28
|
+
color?: string;
|
|
29
|
+
/** Target amount. Default `1200`. */
|
|
30
|
+
goal?: number;
|
|
31
|
+
/** Card title. Default `"Saving goal"`. */
|
|
32
|
+
title?: React.ReactNode;
|
|
33
|
+
/** Line under the title. Default `"1 to 12 Apr, 2026"`. */
|
|
34
|
+
subtitle?: React.ReactNode;
|
|
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 sweep, in seconds. Default `1.4`. */
|
|
40
|
+
duration?: number;
|
|
41
|
+
/** Label for the header button. Pass `null` to hide it. Default `"View report"`. */
|
|
42
|
+
actionLabel?: React.ReactNode;
|
|
43
|
+
/** Called when the header button is pressed. */
|
|
44
|
+
onAction?: () => void;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare const GoalGauge: React.ForwardRefExoticComponent<GoalGaugeProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GoalGauge, type GoalGaugeProps, type GaugeSegment } from "./goal-gauge";
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GradientCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag (plus press, hover, wheel, keys and in view). A metric card on
|
|
5
|
+
* a live mesh gradient: soft colour blobs drift on their own under a fine
|
|
6
|
+
* grain, and one of them leans toward the pointer. The colours follow the
|
|
7
|
+
* value: bright and playful below the reference, warm orange at it, deep reds
|
|
8
|
+
* above it. A glass chip shows the reference. The number is set in a dot
|
|
9
|
+
* matrix, and when it changes each dot fades and swells on or off on a
|
|
10
|
+
* spring, so digits morph into each other. At the bottom a frosted panel holds
|
|
11
|
+
* a thermostat style dial: the rim of a wheel of ticks turns under a fixed
|
|
12
|
+
* needle, with a round minus and plus button either side. Drag or flick it
|
|
13
|
+
* (or scroll, or use the keys) and it turns with momentum, the ticks near the
|
|
14
|
+
* needle grow, the number, caption and colours follow, then it springs onto
|
|
15
|
+
* the nearest whole step. When it scrolls into view the card rises in and the
|
|
16
|
+
* dial turns up to the value while the number counts with it. Reduced motion
|
|
17
|
+
* keeps the gradient still and swaps glides for jumps.
|
|
18
|
+
*
|
|
19
|
+
* Engine: motion/react (a motion value for the dial position with inertia
|
|
20
|
+
* and spring snaps, colour blends driven by it, looping keyframes for the
|
|
21
|
+
* blobs, springs for every dot).
|
|
22
|
+
*/
|
|
23
|
+
import * as React from "react";
|
|
24
|
+
export interface GradientCardProps {
|
|
25
|
+
/** Label at the top. Default `"Body age"`. */
|
|
26
|
+
label?: string;
|
|
27
|
+
/** Starting value. Default `25`. */
|
|
28
|
+
value?: number;
|
|
29
|
+
/** Reference the caption compares against, like a calendar age. Default `27.5`. */
|
|
30
|
+
reference?: number;
|
|
31
|
+
/** Lowest value on the dial. Default `18`. */
|
|
32
|
+
min?: number;
|
|
33
|
+
/** Highest value on the dial. Default `90`. */
|
|
34
|
+
max?: number;
|
|
35
|
+
/** Caption for the value; gets the gap to `reference` (negative is below). */
|
|
36
|
+
caption?: (value: number, gap: number) => string;
|
|
37
|
+
/**
|
|
38
|
+
* Gradient colours, four each (core, glow, accent, edge), for a value well
|
|
39
|
+
* below the reference, at it, and well above it. The card blends between
|
|
40
|
+
* them as the value moves. Default bright and playful when younger, warm
|
|
41
|
+
* at the reference, deep reds when older.
|
|
42
|
+
*/
|
|
43
|
+
palette?: {
|
|
44
|
+
young: Palette;
|
|
45
|
+
even: Palette;
|
|
46
|
+
old: Palette;
|
|
47
|
+
};
|
|
48
|
+
/** Drift speed of the gradient; `2` is twice as fast. Default `1`. */
|
|
49
|
+
speed?: number;
|
|
50
|
+
/** Called when the value settles on a new step. */
|
|
51
|
+
onChange?: (value: number) => void;
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
type Palette = [string, string, string, string];
|
|
55
|
+
export declare const GradientCard: React.ForwardRefExoticComponent<GradientCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
56
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GradientCard, type GradientCardProps } from "./gradient-card";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GradientText
|
|
3
|
+
*
|
|
4
|
+
* Trigger: timeline. A slow gradient flows through the letters on a seamless
|
|
5
|
+
* loop, clipped to the glyphs. The text stays real, selectable text. Reduced
|
|
6
|
+
* motion holds the gradient still.
|
|
7
|
+
*
|
|
8
|
+
* Engine: motion/react (a looping background-position animation on clipped text).
|
|
9
|
+
*/
|
|
10
|
+
import * as React from "react";
|
|
11
|
+
export interface GradientTextProps {
|
|
12
|
+
/** The text. Default `"Color in motion"`. */
|
|
13
|
+
text?: string;
|
|
14
|
+
/** Element to render. Default `"h2"`. */
|
|
15
|
+
as?: "h1" | "h2" | "h3" | "p" | "span";
|
|
16
|
+
/** Gradient stops; the first repeats at the end so the loop is seamless. Default violet, pink, amber. */
|
|
17
|
+
colors?: string[];
|
|
18
|
+
/** Seconds per full loop. Default `6`. */
|
|
19
|
+
speed?: number;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const GradientText: React.ForwardRefExoticComponent<GradientTextProps & React.RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GradientText, type GradientTextProps } from "./gradient-text";
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GravityTagPile
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag. Tags drop into the box, bounce, spin and pile up under real
|
|
5
|
+
* physics, right on the card's own background. Grab any tag to drag it and fling it; sweep the cursor through the
|
|
6
|
+
* pile to nudge tags aside; click a tag for a little pop (or to follow its
|
|
7
|
+
* link). Tags squash on hard landings and wobble back. A reset button drops
|
|
8
|
+
* them again. Every tag is a real button or link, so keyboard and screen
|
|
9
|
+
* reader users get the plain list. Reduced motion settles the pile instantly.
|
|
10
|
+
*
|
|
11
|
+
* Engine: motion/react (useAnimationFrame drives a small built-in capsule
|
|
12
|
+
* physics solver: each pill is a line segment with a radius, so collisions are
|
|
13
|
+
* exact and cheap, with no physics library).
|
|
14
|
+
*/
|
|
15
|
+
import * as React from "react";
|
|
16
|
+
export type GravityTagTheme = "studio" | "pastel" | "candy" | "mono" | "earth";
|
|
17
|
+
export interface GravityTag {
|
|
18
|
+
label: string;
|
|
19
|
+
/** Background color. Default from the theme. */
|
|
20
|
+
color?: string;
|
|
21
|
+
/** Text color. Default from the theme. */
|
|
22
|
+
textColor?: string;
|
|
23
|
+
/** Small round image before the label. */
|
|
24
|
+
image?: string;
|
|
25
|
+
/** Turns the tag into a link. */
|
|
26
|
+
href?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface GravityTagPileProps {
|
|
29
|
+
/** Tags, as labels or objects. Default a set of design skills. */
|
|
30
|
+
tags?: (string | GravityTag)[];
|
|
31
|
+
/** Tag color preset. The pile itself is transparent, so it sits on whatever card it is in. Default `"studio"`. */
|
|
32
|
+
theme?: GravityTagTheme;
|
|
33
|
+
/** Background pattern. Default `"none"`. */
|
|
34
|
+
pattern?: "dots" | "grid" | "none";
|
|
35
|
+
/** How tags arrive: `"random"`, in `"sequence"` or all `"together"`. Default `"random"`. */
|
|
36
|
+
entrance?: "random" | "sequence" | "together";
|
|
37
|
+
/** Downward pull, px/s². Default `2200`. */
|
|
38
|
+
gravity?: number;
|
|
39
|
+
/** Bounciness, 0 to 1. Default `0.3`. */
|
|
40
|
+
bounce?: number;
|
|
41
|
+
/** Grip between tags and walls, 0 to 1. Default `0.6`. */
|
|
42
|
+
friction?: number;
|
|
43
|
+
/** Multiplies the speed a tag keeps when you let go. Default `1`. */
|
|
44
|
+
throwStrength?: number;
|
|
45
|
+
/** How much tags squash on impact, 0 to 1. Default `0.6`. */
|
|
46
|
+
squash?: number;
|
|
47
|
+
/** Moving the cursor through the pile nudges tags. Default `true`. */
|
|
48
|
+
cursorPush?: boolean;
|
|
49
|
+
/** Hairline border on each tag. Default `true`. */
|
|
50
|
+
border?: boolean;
|
|
51
|
+
/** Drop shadow under each tag. Default `true`. */
|
|
52
|
+
shadow?: boolean;
|
|
53
|
+
/** Image size in px. Default `26`. */
|
|
54
|
+
imageSize?: number;
|
|
55
|
+
/** Optional heading behind the pile. None by default. */
|
|
56
|
+
title?: string;
|
|
57
|
+
/** Optional line under the heading. */
|
|
58
|
+
description?: string;
|
|
59
|
+
titleClassName?: string;
|
|
60
|
+
descriptionClassName?: string;
|
|
61
|
+
/** Classes for every tag (padding, font, size). */
|
|
62
|
+
tagClassName?: string;
|
|
63
|
+
/** Show a drop-again button in the corner. Default `false`. */
|
|
64
|
+
showReset?: boolean;
|
|
65
|
+
/** Called when a tag is clicked (not dragged). */
|
|
66
|
+
onTagClick?: (tag: GravityTag, index: number) => void;
|
|
67
|
+
className?: string;
|
|
68
|
+
}
|
|
69
|
+
export declare const GravityTagPile: React.ForwardRefExoticComponent<GravityTagPileProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { GravityTagPile, type GravityTag, type GravityTagPileProps, type GravityTagTheme } from "./gravity-tag-pile";
|
|
@@ -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";
|