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,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PricingCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover (plus press and in view). One plan as a white card resting in
|
|
5
|
+
* a soft grey shell, like a print in a mount, with a label strip along the top
|
|
6
|
+
* of the shell. Hover or focus the card and the shell warms with a slowly
|
|
7
|
+
* drifting pastel gradient, the card lifts, the strip rolls up from below to a
|
|
8
|
+
* quiet "Recommended for you" with a sparkle, the plan icon plays and the
|
|
9
|
+
* button turns ink; leaving lets it all settle back. A small Yearly switch sits
|
|
10
|
+
* beside the price: flip it and the knob slides, a saving chip pops in, the
|
|
11
|
+
* price rolls like an odometer and the billing line blurs to match. Each
|
|
12
|
+
* feature's icon plays when you point at its row. When the card scrolls into
|
|
13
|
+
* view the shell rises in, the white card settles into it, the plan icon plays
|
|
14
|
+
* once and the features follow in a short cascade. Reduced motion keeps every
|
|
15
|
+
* state without movement.
|
|
16
|
+
*
|
|
17
|
+
* Engine: motion/react (springs for the lift, knob and digit columns, a
|
|
18
|
+
* looping gradient drift, AnimatePresence for the rolling strip and billing
|
|
19
|
+
* line, staggered in view entrances).
|
|
20
|
+
*/
|
|
21
|
+
import * as React from "react";
|
|
22
|
+
/** An icon that takes className, strokeWidth and an `active` flag, like the animated icons. */
|
|
23
|
+
export type PricingIcon = React.ComponentType<{
|
|
24
|
+
className?: string;
|
|
25
|
+
strokeWidth?: number;
|
|
26
|
+
active?: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
export interface PricingFeature {
|
|
29
|
+
title: string;
|
|
30
|
+
/** A short line under the title. */
|
|
31
|
+
detail?: string;
|
|
32
|
+
icon?: PricingIcon;
|
|
33
|
+
}
|
|
34
|
+
export interface PricingPlan {
|
|
35
|
+
name: string;
|
|
36
|
+
/** The label strip along the top of the shell. */
|
|
37
|
+
label: string;
|
|
38
|
+
/** One line under the name. */
|
|
39
|
+
blurb: string;
|
|
40
|
+
/** Price per month when billed monthly. */
|
|
41
|
+
monthly: number;
|
|
42
|
+
/** Price per month when billed yearly. */
|
|
43
|
+
yearly: number;
|
|
44
|
+
features: PricingFeature[];
|
|
45
|
+
cta: string;
|
|
46
|
+
/** A small line under the button. */
|
|
47
|
+
footnote?: string;
|
|
48
|
+
icon?: PricingIcon;
|
|
49
|
+
}
|
|
50
|
+
export interface PricingCardProps {
|
|
51
|
+
plan?: PricingPlan;
|
|
52
|
+
/** Billing shown first. Default `"monthly"`. */
|
|
53
|
+
defaultBilling?: "monthly" | "yearly";
|
|
54
|
+
/** What the strip rolls to on hover. Default `"Recommended for you"`. */
|
|
55
|
+
note?: string;
|
|
56
|
+
/** Called by the button. */
|
|
57
|
+
onSelect?: (billing: "monthly" | "yearly") => void;
|
|
58
|
+
className?: string;
|
|
59
|
+
}
|
|
60
|
+
export declare const PricingCard: React.ForwardRefExoticComponent<PricingCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PrismCarousel, type PrismCarouselProps, type PrismCard } from "./prism-carousel";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrismCarousel
|
|
3
|
+
*
|
|
4
|
+
* Trigger: drag (plus press, wheel and keys). An endless loop of cards (images,
|
|
5
|
+
* or metric cards) circling slowly through a soft stage that fills its
|
|
6
|
+
* container, with a liquid glass lens at each edge. The lenses are frosted,
|
|
7
|
+
* magnifying strips that blur and over saturate whatever passes beneath them,
|
|
8
|
+
* so a card's colours bloom as it slides into the glass. They behave like a
|
|
9
|
+
* magnetic field: as a card nears an edge the lens swells out to meet it.
|
|
10
|
+
* Inside the glass a card pivots on its inner edge so its outer top and bottom
|
|
11
|
+
* corners flare out, stretched toward the edge, and it eases back to its
|
|
12
|
+
* perfect flat shape before it comes out; the same on both sides. An optional
|
|
13
|
+
* flip turns each card over as it leaves the right glass and enters the left. The row
|
|
14
|
+
* drifts on its own at a set speed; hover slows it to a crawl, and dragging,
|
|
15
|
+
* scrolling sideways, tapping a side card, the arrow keys or the dots take
|
|
16
|
+
* over, snapping to a card, until it eases back in a couple of seconds later.
|
|
17
|
+
* Reduced motion keeps the layout without the movement.
|
|
18
|
+
*
|
|
19
|
+
* Engine: motion/react (one track motion value that the drift, drag and
|
|
20
|
+
* springs all move, and that every card and both lenses derive their bend,
|
|
21
|
+
* stretch, colour, swell and turns from).
|
|
22
|
+
*/
|
|
23
|
+
import * as React from "react";
|
|
24
|
+
export interface PrismCard {
|
|
25
|
+
label: string;
|
|
26
|
+
/** An image fills the card; without one it shows the metric below. */
|
|
27
|
+
image?: string;
|
|
28
|
+
/** The headline number, for metric cards. */
|
|
29
|
+
value?: number;
|
|
30
|
+
/** Text after the number, like "%" or " ms". */
|
|
31
|
+
suffix?: string;
|
|
32
|
+
/** Decimal places for the number. */
|
|
33
|
+
decimals?: number;
|
|
34
|
+
caption?: string;
|
|
35
|
+
/** Two colours for a metric card's glowing orb. */
|
|
36
|
+
hues?: [string, string];
|
|
37
|
+
}
|
|
38
|
+
export interface PrismCarouselProps {
|
|
39
|
+
cards?: PrismCard[];
|
|
40
|
+
/** Card shown first. Default the second. */
|
|
41
|
+
defaultIndex?: number;
|
|
42
|
+
/** Flip each card over as it leaves the right glass and enters the left. Default `false`. */
|
|
43
|
+
flip?: boolean;
|
|
44
|
+
/** Circle slowly on its own, resting after a touch. Default `true`. */
|
|
45
|
+
autoplay?: boolean;
|
|
46
|
+
/** How fast the row circles on its own, in px per second. Default `80`. */
|
|
47
|
+
speed?: number;
|
|
48
|
+
/** Blur of the edge glass in px. Default `26`. */
|
|
49
|
+
blur?: number;
|
|
50
|
+
/** How much the edge glass saturates what passes under it. Default `2.9`. */
|
|
51
|
+
saturation?: number;
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare const PrismCarousel: React.ForwardRefExoticComponent<PrismCarouselProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PrismFlow, type PrismFlowProps } from "./prism-flow";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrismFlow
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover (plus a timeline). A dark background crossed by a soft band
|
|
5
|
+
* of light that bends and drifts like a ribbon caught in slow air. Its edges
|
|
6
|
+
* split into colour the way light does through a prism: a bright near white
|
|
7
|
+
* core fades out through your four colours on either side, under a wide glow.
|
|
8
|
+
* A fainter echo band trails behind it. The ribbon leans toward the pointer
|
|
9
|
+
* and settles back when it leaves. Fine film grain keeps the gradients smooth.
|
|
10
|
+
* Anything you place inside sits on top. It pauses off screen and in a hidden
|
|
11
|
+
* tab, and reduced motion holds one still frame.
|
|
12
|
+
*
|
|
13
|
+
* Engine: a WebGL fragment shader (a domain warped curve, a spectral spread of
|
|
14
|
+
* gaussian bands and a filmic tone curve) on requestAnimationFrame.
|
|
15
|
+
*/
|
|
16
|
+
import * as React from "react";
|
|
17
|
+
export interface PrismFlowProps {
|
|
18
|
+
/** Four colours from one edge of the band to the other; the core between them is near white. Default an ember ramp. */
|
|
19
|
+
colors?: [string, string, string, string];
|
|
20
|
+
/** The background the light sits on. Default `"#050507"`. */
|
|
21
|
+
background?: string;
|
|
22
|
+
/** Drift speed, 0 (still) to 5. Default `2.7`. */
|
|
23
|
+
speed?: number;
|
|
24
|
+
/** Width of the band, 0.2 to 5. Default `2.75`. */
|
|
25
|
+
width?: number;
|
|
26
|
+
/** How far the colours fan out from the core, 0 to 4. Default `1.45`. */
|
|
27
|
+
spread?: number;
|
|
28
|
+
/** How much the band curls and folds, 0 to 2.5. Default `1`. */
|
|
29
|
+
warp?: number;
|
|
30
|
+
/** Overall brightness, 0.2 to 4. Default `2.25`. */
|
|
31
|
+
intensity?: number;
|
|
32
|
+
/** Film grain, 0 to 2.5. Default `1.75`. */
|
|
33
|
+
grain?: number;
|
|
34
|
+
/** Show the fainter echo band. Default `true`. */
|
|
35
|
+
echo?: boolean;
|
|
36
|
+
/** The light leans toward the pointer. Default `true`. */
|
|
37
|
+
interactive?: boolean;
|
|
38
|
+
children?: React.ReactNode;
|
|
39
|
+
className?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const PrismFlow: React.ForwardRefExoticComponent<PrismFlowProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PrivacyBanner, type PrivacyBannerProps, type CookieKind, type CookieChoices, } from "./privacy-banner";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PrivacyBanner
|
|
3
|
+
*
|
|
4
|
+
* Trigger: press (plus hover and in view). A white cookie consent card. It
|
|
5
|
+
* rises in from below while its outline cookie rolls in and settles; hovering
|
|
6
|
+
* the cookie makes its chips hop and takes a bite out of it. Three actions sit
|
|
7
|
+
* at the bottom: Customize, Reject all and an ink Accept all whose arrow slides
|
|
8
|
+
* through on hover. Customize grows the card on a spring to show a switch for
|
|
9
|
+
* each kind of cookie (essential stays on), and its button becomes Save
|
|
10
|
+
* choices. Any choice turns the whole card into a short confirmation: a check
|
|
11
|
+
* draws itself in a circle, the title rolls to what was chosen, and a small
|
|
12
|
+
* link opens the settings again. Reduced motion keeps the states without
|
|
13
|
+
* movement.
|
|
14
|
+
*
|
|
15
|
+
* Engine: motion/react (a layout animation for the card's height,
|
|
16
|
+
* AnimatePresence for the panel and the confirmation, springs for the
|
|
17
|
+
* switches, pathLength for the check, variants on the cookie's SVG parts).
|
|
18
|
+
*/
|
|
19
|
+
import * as React from "react";
|
|
20
|
+
export interface CookieKind {
|
|
21
|
+
id: string;
|
|
22
|
+
label: string;
|
|
23
|
+
description: string;
|
|
24
|
+
/** Always on and cannot be switched off. */
|
|
25
|
+
required?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export type CookieChoices = Record<string, boolean>;
|
|
28
|
+
export interface PrivacyBannerProps {
|
|
29
|
+
title?: string;
|
|
30
|
+
description?: React.ReactNode;
|
|
31
|
+
/** The kinds of cookie shown under Customize. Default essential, analytics, marketing. */
|
|
32
|
+
kinds?: CookieKind[];
|
|
33
|
+
/** Called with every kind switched on. */
|
|
34
|
+
onAccept?: (choices: CookieChoices) => void;
|
|
35
|
+
/** Called with only the required kinds on. */
|
|
36
|
+
onReject?: (choices: CookieChoices) => void;
|
|
37
|
+
/** Called with the switches as set under Customize. */
|
|
38
|
+
onSave?: (choices: CookieChoices) => void;
|
|
39
|
+
className?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const PrivacyBanner: React.ForwardRefExoticComponent<PrivacyBannerProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ProfileCard, type ProfileCardProps, type ProfileStat } from "./profile-card";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProfileCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: in view, then hover, press and keys. A white profile card for a
|
|
5
|
+
* creator. Its cover is a soft aurora of pastel colour that drifts on its own
|
|
6
|
+
* and, on hover, flows toward the pointer like liquid. When the card scrolls into view it rises in, the avatar
|
|
7
|
+
* pops over the cover with a breathing online dot, the name, role and skill
|
|
8
|
+
* chips follow one after another and the stats count up. Press "+3" and more
|
|
9
|
+
* skills spring open. Follow morphs into Following with a check and the
|
|
10
|
+
* follower count ticks up; the round buttons play their icons on hover and
|
|
11
|
+
* the bookmark fills with a pop when saved. Reduced motion keeps everything
|
|
12
|
+
* still and shows every state at once.
|
|
13
|
+
*
|
|
14
|
+
* Engine: motion/react (springs on motion values for the flowing cover, looping keyframes for the drift, layout animations for the chips and
|
|
15
|
+
* the follow button, motion values counting the stats) with animated icons
|
|
16
|
+
* from lucide-animated (MIT), vendored in src/icons.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
export interface ProfileStat {
|
|
20
|
+
label: string;
|
|
21
|
+
value: number;
|
|
22
|
+
/** Decimal places. Default `0`. */
|
|
23
|
+
decimals?: number;
|
|
24
|
+
/** Shorten thousands to "12.4k". Default `false`. */
|
|
25
|
+
compact?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface ProfileCardProps {
|
|
28
|
+
name?: string;
|
|
29
|
+
role?: string;
|
|
30
|
+
/** City or place, shown with a pin. Pass `null` to hide it. */
|
|
31
|
+
location?: string | null;
|
|
32
|
+
bio?: string;
|
|
33
|
+
/** Portrait URL. */
|
|
34
|
+
avatar?: string;
|
|
35
|
+
/** Shows a verified badge by the name. Default `true`. */
|
|
36
|
+
verified?: boolean;
|
|
37
|
+
/** The status on the cover, as in `"Available"`. Pass `null` to hide it. */
|
|
38
|
+
status?: string | null;
|
|
39
|
+
/** Skill chips; the first three show, the rest open from a "+n" chip. */
|
|
40
|
+
skills?: string[];
|
|
41
|
+
/** Three numbers. The first one counts followers and ticks up on Follow. */
|
|
42
|
+
stats?: ProfileStat[];
|
|
43
|
+
/** Pastel colours for the cover's aurora, three of them. */
|
|
44
|
+
cover?: [string, string, string];
|
|
45
|
+
/** Following at first. Default `false`. */
|
|
46
|
+
defaultFollowing?: boolean;
|
|
47
|
+
onFollowChange?: (following: boolean) => void;
|
|
48
|
+
onMessage?: () => void;
|
|
49
|
+
onSaveChange?: (saved: boolean) => void;
|
|
50
|
+
className?: string;
|
|
51
|
+
}
|
|
52
|
+
export declare const ProfileCard: React.ForwardRefExoticComponent<ProfileCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ProfileMenu, type ProfileMenuProps, type ProfileMenuItem, type ProfileIcon, type ProfileTheme, } from "./profile-menu";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProfileMenu
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover and press (plus keys and in view). A white profile menu card:
|
|
5
|
+
* a header with avatar, name and email, groups of rows, an appearance switch and
|
|
6
|
+
* log out. When it scrolls into view the card rises in and its rows follow
|
|
7
|
+
* one after another. A soft gray pill glides between rows under the pointer,
|
|
8
|
+
* and every row's animated icon plays while its row is hovered: the house,
|
|
9
|
+
* the folder, the people, the envelope, the card and the pulse line each have
|
|
10
|
+
* their own move. Thin lines run edge to edge between the groups. In the
|
|
11
|
+
* Appearance switch a white pill slides to the choice and the chosen icon
|
|
12
|
+
* plays, and the card itself turns dark for Dark, or follows the device for
|
|
13
|
+
* System, fading between the two. Log out plays its door. The arrow keys move through the rows.
|
|
14
|
+
* Reduced motion keeps the states without movement.
|
|
15
|
+
*
|
|
16
|
+
* Engine: motion/react (staggered variants for the entrance, layoutId pills
|
|
17
|
+
* for the hover and the theme switch) with animated icons from
|
|
18
|
+
* lucide-animated (MIT), vendored in src/icons.
|
|
19
|
+
*/
|
|
20
|
+
import * as React from "react";
|
|
21
|
+
export type ProfileTheme = "light" | "dark" | "system";
|
|
22
|
+
export type ProfileIcon = "home" | "folder" | "users" | "mail" | "card" | "activity" | "palette" | "heart" | "pin" | "bell" | "clock";
|
|
23
|
+
export interface ProfileMenuItem {
|
|
24
|
+
label: string;
|
|
25
|
+
/** One of the built in animated icons. */
|
|
26
|
+
icon: ProfileIcon;
|
|
27
|
+
/** A small count on the right, like unread messages. */
|
|
28
|
+
badge?: number;
|
|
29
|
+
onSelect?: () => void;
|
|
30
|
+
}
|
|
31
|
+
export interface ProfileMenuProps {
|
|
32
|
+
name?: string;
|
|
33
|
+
email?: string;
|
|
34
|
+
avatar?: string;
|
|
35
|
+
/** Groups of rows, split by a thin line. Default two groups of three. */
|
|
36
|
+
groups?: ProfileMenuItem[][];
|
|
37
|
+
theme?: ProfileTheme;
|
|
38
|
+
defaultTheme?: ProfileTheme;
|
|
39
|
+
onThemeChange?: (theme: ProfileTheme) => void;
|
|
40
|
+
onSignOut?: () => void;
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare const ProfileMenu: React.ForwardRefExoticComponent<ProfileMenuProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ProjectIndex, type ProjectIndexProps, type ProjectItem, type ProjectEffect, } from "./project-index";
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ProjectIndex
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover or press (plus keys, in view and an optional timeline). An
|
|
5
|
+
* editorial project index: a numbered list of projects beside a large image
|
|
6
|
+
* panel. Pointing at a project (or selecting it, or arrowing to it) brings
|
|
7
|
+
* its photograph into focus through a WebGL transition you choose: Pixel
|
|
8
|
+
* (the image breaks into blocks and resolves into the next), Grain (a
|
|
9
|
+
* speckled dissolve through film grain), Gradient (a soft diagonal wipe
|
|
10
|
+
* with a band of light) or Mirror (the next image opens from the centre
|
|
11
|
+
* while the last one folds outward over a bright seam). The active row
|
|
12
|
+
* gets a gliding soft highlight, its title slides in a touch and an arrow
|
|
13
|
+
* springs in; the panel's caption and title roll to match, and the photo
|
|
14
|
+
* leans gently with the pointer. One press on a row or on the panel's
|
|
15
|
+
* button opens the project. Autoplay can cycle through the list with a thin
|
|
16
|
+
* progress line, pausing while you are on it. Reduced motion swaps the
|
|
17
|
+
* images with a quick fade.
|
|
18
|
+
*
|
|
19
|
+
* Engine: a WebGL fragment shader for the transitions (a GSAP tween drives
|
|
20
|
+
* the progress, the GSAP ticker draws), motion/react for the list and
|
|
21
|
+
* caption.
|
|
22
|
+
*/
|
|
23
|
+
import * as React from "react";
|
|
24
|
+
export interface ProjectItem {
|
|
25
|
+
title: string;
|
|
26
|
+
/** A short line under the title, like "Residential, 2026". */
|
|
27
|
+
meta?: string;
|
|
28
|
+
/** Image URL. Must allow cross origin use (CORS) to be drawn in WebGL. */
|
|
29
|
+
image: string;
|
|
30
|
+
/** Describes the image for screen readers. Defaults to the title. */
|
|
31
|
+
alt?: string;
|
|
32
|
+
/** Opens on a single press. */
|
|
33
|
+
href?: string;
|
|
34
|
+
}
|
|
35
|
+
export type ProjectEffect = "pixel" | "grain" | "gradient" | "mirror";
|
|
36
|
+
export interface ProjectIndexProps {
|
|
37
|
+
projects?: ProjectItem[];
|
|
38
|
+
/** The small heading above the list. Default `"Selected projects"`. */
|
|
39
|
+
eyebrow?: string;
|
|
40
|
+
/** The image transition. Default `"pixel"`. */
|
|
41
|
+
effect?: ProjectEffect;
|
|
42
|
+
/** Transition length in seconds. Default `0.9`. */
|
|
43
|
+
duration?: number;
|
|
44
|
+
/** How strong the effect is, 0 to 1. Default `0.6`. */
|
|
45
|
+
intensity?: number;
|
|
46
|
+
/** Bring a project into focus on hover, or only when it is pressed. Default `"hover"`. */
|
|
47
|
+
select?: "hover" | "click";
|
|
48
|
+
/** Which side the image sits on (on wide cards). Default `"right"`. */
|
|
49
|
+
imageSide?: "left" | "right";
|
|
50
|
+
/** Show the 01, 02 numbers. Default `true`. */
|
|
51
|
+
numbers?: boolean;
|
|
52
|
+
/** Show each project's meta line. Default `true`. */
|
|
53
|
+
meta?: boolean;
|
|
54
|
+
/** Cycle through the projects on its own, pausing while you are on it. Default `false`. */
|
|
55
|
+
autoplay?: boolean;
|
|
56
|
+
/** Seconds per project while autoplaying. Default `4`. */
|
|
57
|
+
interval?: number;
|
|
58
|
+
/** How far the photo leans with the pointer, 0 to 1. Default `0.5`. */
|
|
59
|
+
parallax?: number;
|
|
60
|
+
defaultIndex?: number;
|
|
61
|
+
/** Called when a project is opened (a press on its row or the panel's button). */
|
|
62
|
+
onOpen?: (project: ProjectItem, index: number) => void;
|
|
63
|
+
className?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare const ProjectIndex: React.ForwardRefExoticComponent<ProjectIndexProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PromptInput, type PromptInputProps, type PromptModel, type PromptSubmit, } from "./prompt-input";
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PromptInput
|
|
3
|
+
*
|
|
4
|
+
* Trigger: type (plus press). A white composer for an AI assistant. The field
|
|
5
|
+
* grows smoothly as you write, and while it is empty its placeholder rolls
|
|
6
|
+
* through example prompts. Underneath sits a row of tools: an attach icon that
|
|
7
|
+
* plays on hover and adds file chips that pop in (and shrink away when
|
|
8
|
+
* removed), a model picker that opens upward with a sliding highlight, a web
|
|
9
|
+
* search toggle with an earth that turns on hover, and a mic that turns into
|
|
10
|
+
* live sound bars while a ring of fine particles in the field ripples and
|
|
11
|
+
* brightens with the voice beside a running timer, then types out what it
|
|
12
|
+
* heard. The send
|
|
13
|
+
* button stays quiet until there is something to send, then wakes into ink;
|
|
14
|
+
* pressing it (or Enter) launches the arrow upward and turns the button into a
|
|
15
|
+
* stop square while a soft neutral glow breathes around the card and a light
|
|
16
|
+
* shimmer travels round its edge until the reply is done.
|
|
17
|
+
* Shift and Enter make a new line. Reduced motion keeps every state but drops
|
|
18
|
+
* the movement.
|
|
19
|
+
*
|
|
20
|
+
* Engine: motion/react (height glide, rolling placeholder, spring chips, a
|
|
21
|
+
* layoutId menu highlight, and a breathing neutral glow with a travelling
|
|
22
|
+
* edge shimmer while it works), with a GSAP ticker drawing the listening
|
|
23
|
+
* particle ring.
|
|
24
|
+
*/
|
|
25
|
+
import * as React from "react";
|
|
26
|
+
export interface PromptModel {
|
|
27
|
+
id: string;
|
|
28
|
+
label: string;
|
|
29
|
+
/** A short line under the name in the menu. */
|
|
30
|
+
hint: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PromptSubmit {
|
|
33
|
+
text: string;
|
|
34
|
+
model: string;
|
|
35
|
+
web: boolean;
|
|
36
|
+
files: string[];
|
|
37
|
+
}
|
|
38
|
+
export interface PromptInputProps {
|
|
39
|
+
/** Placeholders the empty field rolls through. */
|
|
40
|
+
placeholders?: string[];
|
|
41
|
+
/** Models in the picker. Default three. */
|
|
42
|
+
models?: PromptModel[];
|
|
43
|
+
/** Called on send. Return a promise to keep the working state until it settles. */
|
|
44
|
+
onSubmit?: (prompt: PromptSubmit) => void | Promise<unknown>;
|
|
45
|
+
/** Called by the attach button. Default adds a sample file chip. */
|
|
46
|
+
onAttach?: () => void;
|
|
47
|
+
className?: string;
|
|
48
|
+
}
|
|
49
|
+
export declare const PromptInput: React.ForwardRefExoticComponent<PromptInputProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QuotaGauge, type QuotaGaugeProps } from "./quota-gauge";
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QuotaGauge
|
|
3
|
+
*
|
|
4
|
+
* Trigger: in view, then hover. A white card for a plan's credit quota: a
|
|
5
|
+
* three quarter gauge made of radial ticks, like a speedometer, around a
|
|
6
|
+
* bolt. When it scrolls into view the ticks light up one by one up to the
|
|
7
|
+
* amount used, the lit ones growing a little longer, while the credits count
|
|
8
|
+
* up on odometer wheels beneath the bolt and the share of the plan rolls in.
|
|
9
|
+
* The tick at the tip glows. Hovering the card plays the bolt and swaps the
|
|
10
|
+
* caption to what is left. Reduced motion shows the final state at once.
|
|
11
|
+
*
|
|
12
|
+
* Engine: motion/react (a counting motion value drives the ticks and the
|
|
13
|
+
* numbers, springs for the ticks, AnimatePresence for the caption) with an
|
|
14
|
+
* animated bolt from lucide-animated (MIT), vendored in src/icons.
|
|
15
|
+
*/
|
|
16
|
+
import * as React from "react";
|
|
17
|
+
export interface QuotaGaugeProps {
|
|
18
|
+
/** Credits used so far. Default `2022`. */
|
|
19
|
+
value?: number;
|
|
20
|
+
/** The plan limit. Default `2500`. */
|
|
21
|
+
goal?: number;
|
|
22
|
+
/** Unit after the amount. Default `"credits used"`. */
|
|
23
|
+
unit?: string;
|
|
24
|
+
/** Ticks on the gauge. Default `44`. */
|
|
25
|
+
ticks?: number;
|
|
26
|
+
/** Colour of lit ticks. Default ink. */
|
|
27
|
+
color?: string;
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
export declare const QuotaGauge: React.ForwardRefExoticComponent<QuotaGaugeProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RangeChart, type RangeChartProps, type RangeDay } from "./range-chart";
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RangeChart
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover and press (plus keys and in view). A white card that charts a
|
|
5
|
+
* range for each day, like heart rate: a pill from each day's low to high on
|
|
6
|
+
* a soft column track, separate bubbles for outlying readings, and a dashed
|
|
7
|
+
* average line. A 7D, 15D or 30D switch picks how many days to show: an ink
|
|
8
|
+
* pill slides to it, the bars slim down or widen to fit and grow back in, and
|
|
9
|
+
* the labels change from weekdays to dates. When the card scrolls into view
|
|
10
|
+
* it rises, the pills grow out from the average one after another and the
|
|
11
|
+
* average tag slides in. Hovering a day (or focusing it, or stepping with the
|
|
12
|
+
* arrow keys) widens its pills, marks their ends with white dots and fades
|
|
13
|
+
* the other days, while the big range in the header rolls to that day like
|
|
14
|
+
* an odometer, the caption names it, and the Lowest, Average and Peak tiles
|
|
15
|
+
* roll to match; leaving rolls it all back. The Full stats button slides its
|
|
16
|
+
* arrow through on hover. Reduced motion keeps the states without movement.
|
|
17
|
+
*
|
|
18
|
+
* Engine: motion/react (staggered springs for the bars, odometer digit
|
|
19
|
+
* columns for the numbers, layoutId pills for the switch and the hovered
|
|
20
|
+
* column, AnimatePresence for the captions).
|
|
21
|
+
*/
|
|
22
|
+
import * as React from "react";
|
|
23
|
+
export interface RangeDay {
|
|
24
|
+
/** The day, used for labels and the header. */
|
|
25
|
+
date: Date;
|
|
26
|
+
/** One or more [low, high] ranges; a short one reads as a single bubble. */
|
|
27
|
+
ranges: [number, number][];
|
|
28
|
+
}
|
|
29
|
+
export interface RangeChartProps {
|
|
30
|
+
title?: string;
|
|
31
|
+
/** Unit after the numbers. Default `"bpm"`. */
|
|
32
|
+
unit?: string;
|
|
33
|
+
/** Every day you have, oldest first. The chart shows the most recent ones. Default 30 days. */
|
|
34
|
+
data?: RangeDay[];
|
|
35
|
+
/** Spans the switch offers, in days. Default `[7, 15, 30]`. */
|
|
36
|
+
spans?: number[];
|
|
37
|
+
/** Span shown first. Default `7`. */
|
|
38
|
+
defaultSpan?: number;
|
|
39
|
+
/** Value of the dashed average line. Default the mean of the shown readings. */
|
|
40
|
+
average?: number;
|
|
41
|
+
/** Range colour. Default a warm red. */
|
|
42
|
+
color?: string;
|
|
43
|
+
/** Called by the Full stats button. */
|
|
44
|
+
onFullStats?: () => void;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare const RangeChart: React.ForwardRefExoticComponent<RangeChartProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ReactionCard, type ReactionCardProps, type Reaction, } from "./reaction-card";
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReactionCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover and press (long press on touch). A white post card with
|
|
5
|
+
* three reaction buttons, each with its own pop-up of choices in the spirit
|
|
6
|
+
* of a social feed. React opens a row of faces, Love a row of coloured
|
|
7
|
+
* hearts, and Boost a row of numbers to add. Hovering a button for a moment,
|
|
8
|
+
* or holding it on touch, springs the pop-up open with each choice rising in
|
|
9
|
+
* turn; the choice under the pointer swells and lifts with its name above
|
|
10
|
+
* it. Picking one closes the pop-up, pops the choice into the button with a
|
|
11
|
+
* small burst of copies flying out, and rolls the count. A quick press
|
|
12
|
+
* without opening the pop-up toggles the first choice, and Boost adds one
|
|
13
|
+
* each time with a +1 that floats up. The summary line above the buttons
|
|
14
|
+
* stacks the faces picked so far. With the keyboard, Arrow Up opens a
|
|
15
|
+
* pop-up, arrows move through it, Enter picks and Escape closes. Reduced
|
|
16
|
+
* motion swaps the springs and bursts for fades.
|
|
17
|
+
*
|
|
18
|
+
* Engine: motion/react (spring pop-ups, staggered choices, bursts and
|
|
19
|
+
* rolling counts).
|
|
20
|
+
*/
|
|
21
|
+
import * as React from "react";
|
|
22
|
+
export interface Reaction {
|
|
23
|
+
key: string;
|
|
24
|
+
/** What shows in the pop-up and on the button. */
|
|
25
|
+
emoji: string;
|
|
26
|
+
/** Name shown above it in the pop-up and on the button once picked. */
|
|
27
|
+
label: string;
|
|
28
|
+
/** For Boost style buttons, how much a pick adds. */
|
|
29
|
+
amount?: number;
|
|
30
|
+
}
|
|
31
|
+
export interface ReactionCardProps {
|
|
32
|
+
/** Who posted. Default `"Maya Lindqvist"`. */
|
|
33
|
+
author?: string;
|
|
34
|
+
/** Their photo. */
|
|
35
|
+
avatar?: string;
|
|
36
|
+
/** When they posted. Default `"2h"`. */
|
|
37
|
+
time?: string;
|
|
38
|
+
/** The post itself. */
|
|
39
|
+
text?: string;
|
|
40
|
+
/** Faces for the React button. */
|
|
41
|
+
faces?: Reaction[];
|
|
42
|
+
/** Hearts for the Love button. */
|
|
43
|
+
hearts?: Reaction[];
|
|
44
|
+
/** Amounts for the Boost button. */
|
|
45
|
+
boosts?: Reaction[];
|
|
46
|
+
/** Reactions before yours. Default `128`. */
|
|
47
|
+
reactions?: number;
|
|
48
|
+
/** Loves before yours. Default `64`. */
|
|
49
|
+
loves?: number;
|
|
50
|
+
/** Boost total before yours. Default `320`. */
|
|
51
|
+
boosted?: number;
|
|
52
|
+
/** Called whenever any button changes, with all three values. */
|
|
53
|
+
onChange?: (state: {
|
|
54
|
+
face: string | null;
|
|
55
|
+
heart: string | null;
|
|
56
|
+
boost: number;
|
|
57
|
+
}) => void;
|
|
58
|
+
className?: string;
|
|
59
|
+
}
|
|
60
|
+
export declare const ReactionCard: React.ForwardRefExoticComponent<ReactionCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { RecapCard, type RecapCardProps, type RecapStat, type RecapPart, type RecapBadge, type RecapIconName, } from "./recap-card";
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RecapCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: in view, then hover, focus and press. A white summary card that
|
|
5
|
+
* reads like a sentence: the period's numbers sit inline in soft gray chips,
|
|
6
|
+
* each with an animated icon, and count up from zero when the card scrolls
|
|
7
|
+
* into view while their icons play once. Below, a row of round milestone
|
|
8
|
+
* badges pops in one after another on a spring. Earned badges carry their icon
|
|
9
|
+
* in ink with a small check; a badge still in reach shows a ring filling to
|
|
10
|
+
* how close it is. Hovering or focusing a badge lifts it, turns its disc to
|
|
11
|
+
* ink and plays its icon, and a dark note on how it was earned grows up out of
|
|
12
|
+
* the disc like liquid: a column shoots up, spreads into the note and stays
|
|
13
|
+
* joined to the disc by soft inward curves, then drains back on leave. A full width button at the bottom
|
|
14
|
+
* slides its arrow on hover and dips on press. Reduced motion shows the final
|
|
15
|
+
* state at once.
|
|
16
|
+
*
|
|
17
|
+
* Engine: motion/react (useInView, animate on motion values for the counts,
|
|
18
|
+
* staggered spring variants for the badges, a pathLength ring for progress,
|
|
19
|
+
* and two springs feeding one SVG path for the liquid note, as in LiquidTabs).
|
|
20
|
+
*/
|
|
21
|
+
import * as React from "react";
|
|
22
|
+
/** The animated icons a stat or a badge can carry. */
|
|
23
|
+
export type RecapIconName = "words" | "trend" | "streak" | "time" | "spark" | "sun" | "moon" | "feather";
|
|
24
|
+
/** A number inside the sentence, set in a chip that counts up. */
|
|
25
|
+
export interface RecapStat {
|
|
26
|
+
value: number;
|
|
27
|
+
/** Decimal places. Default `0`. */
|
|
28
|
+
decimals?: number;
|
|
29
|
+
/** Text before the number, as in `"$"`. */
|
|
30
|
+
prefix?: string;
|
|
31
|
+
/** Text after the number, as in `" words"` or `"%"`. */
|
|
32
|
+
suffix?: string;
|
|
33
|
+
icon?: RecapIconName;
|
|
34
|
+
}
|
|
35
|
+
/** The sentence, as plain text and stats in reading order. */
|
|
36
|
+
export type RecapPart = string | RecapStat;
|
|
37
|
+
export interface RecapBadge {
|
|
38
|
+
label: string;
|
|
39
|
+
icon: RecapIconName;
|
|
40
|
+
/** How it was earned, or how close it is, shown on hover and focus. */
|
|
41
|
+
note: string;
|
|
42
|
+
/** Share of the way there, 0 to 1. Below 1 the badge is still in reach and shows a ring. Default `1`. */
|
|
43
|
+
progress?: number;
|
|
44
|
+
}
|
|
45
|
+
export interface RecapCardProps {
|
|
46
|
+
/** Card title. Default `"Your month in words"`. */
|
|
47
|
+
title?: string;
|
|
48
|
+
/** Period shown in a chip by the title. Pass `null` to hide it. Default `"November"`. */
|
|
49
|
+
period?: string | null;
|
|
50
|
+
/** The summary sentence. Default a writing recap. */
|
|
51
|
+
parts?: RecapPart[];
|
|
52
|
+
/** The badges, left to right. Default four writing milestones. */
|
|
53
|
+
badges?: RecapBadge[];
|
|
54
|
+
/** Button label. Pass `null` to hide the button. Default `"View full recap"`. */
|
|
55
|
+
actionLabel?: string | null;
|
|
56
|
+
/** Makes the button a link. */
|
|
57
|
+
href?: string;
|
|
58
|
+
onAction?: () => void;
|
|
59
|
+
className?: string;
|
|
60
|
+
}
|
|
61
|
+
export declare const RecapCard: React.ForwardRefExoticComponent<RecapCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ReceiptButton, type ReceiptButtonProps, type ReceiptItem } from "./receipt-button";
|