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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PaymentForm
|
|
3
|
+
*
|
|
4
|
+
* Trigger: type (plus focus and press). A white card for adding a payment
|
|
5
|
+
* card. Every field is a soft gray pill with a label that floats up on focus,
|
|
6
|
+
* and one ink focus ring glides from field to field as you move through the
|
|
7
|
+
* form; each field's icon gives the same quick pop and tilt when it takes
|
|
8
|
+
* focus. The card number groups itself as you type and the card network logo
|
|
9
|
+
* rolls in when the number is recognised. The expiry adds its own slash.
|
|
10
|
+
* Valid fields draw a light check; a field left wrong shakes once and rolls
|
|
11
|
+
* in a hint. A spring switch saves the card. The button stays muted until the
|
|
12
|
+
* form is complete, its lock shackle snapping shut when it is ready; a press
|
|
13
|
+
* runs a spinner, then the button turns green and draws a check. Then the
|
|
14
|
+
* whole card becomes a confirmation in the style of VerifyFlow: the green seal
|
|
15
|
+
* spins in, draws its check and bursts sparks, a pill shows the card's logo,
|
|
16
|
+
* last four and expiry, and Add another and Continue sit side by side. When
|
|
17
|
+
* the card scrolls into view, the title, fields, switch and button rise out of
|
|
18
|
+
* a soft blur one after another; Add another blurs the confirmation away and plays the
|
|
19
|
+
* same rise back into a fresh form with the cursor in the number field. Errors and results are announced, and reduced motion
|
|
20
|
+
* swaps the movement for fades.
|
|
21
|
+
*
|
|
22
|
+
* Engine: motion/react for the fields, focus ring, switch, button and
|
|
23
|
+
* confirmation layout; gsap + @gsap/react for the seal (scoped with
|
|
24
|
+
* useGSAP).
|
|
25
|
+
*/
|
|
26
|
+
import * as React from "react";
|
|
27
|
+
export interface PaymentDetails {
|
|
28
|
+
number: string;
|
|
29
|
+
name: string;
|
|
30
|
+
expiry: string;
|
|
31
|
+
cvc: string;
|
|
32
|
+
brand: string | null;
|
|
33
|
+
save: boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface PaymentFormProps {
|
|
36
|
+
/** Card title. Default `"Payment details"`. */
|
|
37
|
+
title?: string;
|
|
38
|
+
/** Line under the title. */
|
|
39
|
+
subtitle?: string;
|
|
40
|
+
/** Button label. Default `"Save card"`. */
|
|
41
|
+
cta?: string;
|
|
42
|
+
/** Button label once saved. Default `"Card saved"`. */
|
|
43
|
+
doneLabel?: string;
|
|
44
|
+
/** Whether the save switch starts on. Default `true`. */
|
|
45
|
+
defaultSave?: boolean;
|
|
46
|
+
/** Confirmation button label. Default `"Continue to checkout"`. */
|
|
47
|
+
continueLabel?: string;
|
|
48
|
+
/** Called by the confirmation's continue button. */
|
|
49
|
+
onContinue?: () => void;
|
|
50
|
+
/** Called on submit. Return a promise to hold the spinner until it settles; a rejection returns to the form. */
|
|
51
|
+
onSubmit?: (details: PaymentDetails) => void | Promise<unknown>;
|
|
52
|
+
className?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare const PaymentForm: React.ForwardRefExoticComponent<PaymentFormProps & React.RefAttributes<HTMLFormElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PillTabs, type PillTabsProps, type PillTab } from "./pill-tabs";
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PillTabs
|
|
3
|
+
*
|
|
4
|
+
* Trigger: press. Tabs on a tinted track with a white pill that slides to the
|
|
5
|
+
* active tab like a rubber band. The leading edge darts ahead; the trailing edge
|
|
6
|
+
* holds back, then follows on a looser spring, so the pill stretches long and
|
|
7
|
+
* thins, then settles with just a hint of give. A horizontal motion blur, scaled by its speed, smears it
|
|
8
|
+
* mid-travel and clears at rest. The rounded ends never distort: the pill is two
|
|
9
|
+
* caps and a flat middle that scales. Arrow keys, Home and End move between
|
|
10
|
+
* tabs. Reduced motion jumps the pill with no stretch or blur.
|
|
11
|
+
*
|
|
12
|
+
* Engine: motion/react (two spring-driven edge motion values, transform-only
|
|
13
|
+
* pill parts, useVelocity feeding an SVG horizontal blur).
|
|
14
|
+
*/
|
|
15
|
+
import * as React from "react";
|
|
16
|
+
export interface PillTab {
|
|
17
|
+
id: string;
|
|
18
|
+
label: string;
|
|
19
|
+
/** Small count shown after the label. */
|
|
20
|
+
badge?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface PillTabsProps {
|
|
23
|
+
/** Tabs, left to right. Default inbox, mentions, saved. */
|
|
24
|
+
tabs?: PillTab[];
|
|
25
|
+
/** Active tab id when uncontrolled. Default the first. */
|
|
26
|
+
defaultValue?: string;
|
|
27
|
+
/** Active tab id when controlled. */
|
|
28
|
+
value?: string;
|
|
29
|
+
/** Called with the new tab id. */
|
|
30
|
+
onValueChange?: (id: string) => void;
|
|
31
|
+
/** How rubbery the slide is, 0 (rigid) to 1 (very stretchy). Default `0.45`. */
|
|
32
|
+
stretch?: number;
|
|
33
|
+
/** Strongest horizontal blur mid-flight, in px. `0` turns it off. Default `7.5`. */
|
|
34
|
+
blur?: number;
|
|
35
|
+
/** Accessible name for the tab list. Default `"Sections"`. */
|
|
36
|
+
label?: string;
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare const PillTabs: React.ForwardRefExoticComponent<PillTabsProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PixelBlast, type PixelBlastProps, type PixelBlastShape } from "./pixel-blast";
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PixelBlast
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover and press (plus in view). A background of dithered pixel
|
|
5
|
+
* clouds. A few soft cloud bodies wander the whole area on slow looping
|
|
6
|
+
* paths, their edges torn by noise, drawn through an ordered (Bayer) dither as
|
|
7
|
+
* a grid of dots that grow and shrink in steps; every dot shimmers on its own
|
|
8
|
+
* beat, and an optional perspective floor of dots rolls toward you along the
|
|
9
|
+
* bottom. The pointer lights the pixels up around it, a press sends a ripple
|
|
10
|
+
* ring out through the field, and while the pointer is away a ripple rises on
|
|
11
|
+
* its own now and then. On the way in the pixels spread out from the centre
|
|
12
|
+
* behind a bright edge. Put anything on top as children. Reduced motion draws
|
|
13
|
+
* a single still frame.
|
|
14
|
+
*
|
|
15
|
+
* Engine: canvas 2D on one requestAnimationFrame loop that pauses off screen,
|
|
16
|
+
* with motion/react's useInView for the entrance.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
export type PixelBlastShape = "square" | "circle" | "diamond";
|
|
20
|
+
export interface PixelBlastProps {
|
|
21
|
+
/** Pixel colour. Default `"#252528"`. */
|
|
22
|
+
color?: string;
|
|
23
|
+
/** Grid cell in px; the largest dot fills most of a cell. Default `6`. */
|
|
24
|
+
cellSize?: number;
|
|
25
|
+
/** Dot shape. Default `"square"`. */
|
|
26
|
+
shape?: PixelBlastShape;
|
|
27
|
+
/** Drift and shimmer speed; `2` is twice as fast. Default `1`. */
|
|
28
|
+
speed?: number;
|
|
29
|
+
/** How much of the area the clouds cover; `2` makes each cloud twice as wide. Default `1.4`. */
|
|
30
|
+
coverage?: number;
|
|
31
|
+
/** How heavy the clouds are: higher fills them with bigger, bolder dots. Default `0.8`. */
|
|
32
|
+
density?: number;
|
|
33
|
+
/** Draw the perspective floor of dots along the bottom. Default `false`. */
|
|
34
|
+
floor?: boolean;
|
|
35
|
+
/** Light up under the pointer and ripple on press. Default `true`. */
|
|
36
|
+
interactive?: boolean;
|
|
37
|
+
/** Content laid over the field. */
|
|
38
|
+
children?: React.ReactNode;
|
|
39
|
+
className?: string;
|
|
40
|
+
}
|
|
41
|
+
export declare const PixelBlast: React.ForwardRefExoticComponent<PixelBlastProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PixelFeatureCard, type PixelFeatureCardProps, type PixelShape, } from "./pixel-feature-card";
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PixelFeatureCard
|
|
3
|
+
*
|
|
4
|
+
* Trigger: hover and press (plus in view). A product feature card: a phone
|
|
5
|
+
* with a small app screen stands in front of a field of dithered pixel clouds.
|
|
6
|
+
* The clouds are a few soft bodies that wander the whole card on slow looping
|
|
7
|
+
* paths, their edges torn by noise, drawn through an ordered (Bayer) dither as
|
|
8
|
+
* a grid of dots that grow and shrink in steps; every dot shimmers on
|
|
9
|
+
* its own beat, and a perspective floor of dots rolls toward you along the
|
|
10
|
+
* bottom. The pointer lights the pixels up around it, a press sends a ripple
|
|
11
|
+
* ring out through the field, and while the pointer is away a ripple rises on
|
|
12
|
+
* its own now and then. The phone floats in when the card scrolls into view
|
|
13
|
+
* and tilts toward the pointer on springs, and the screen inside builds itself
|
|
14
|
+
* up: the score counts, bars grow and rows slide in. On the way in the card
|
|
15
|
+
* rises and the pixels spread out from the centre behind a bright edge. Reduced motion draws a single still
|
|
16
|
+
* frame and keeps the phone flat.
|
|
17
|
+
*
|
|
18
|
+
* Engine: motion/react (springs for the phone tilt and entrance, staggered
|
|
19
|
+
* screen reveals, a counting motion value) with a canvas 2D field on one
|
|
20
|
+
* requestAnimationFrame loop that pauses off screen.
|
|
21
|
+
*/
|
|
22
|
+
import * as React from "react";
|
|
23
|
+
export type PixelShape = "square" | "circle" | "diamond";
|
|
24
|
+
export interface PixelFeatureCardProps {
|
|
25
|
+
/** Pixel colour, also the accent on the default screen. Default `"#252528"`. */
|
|
26
|
+
color?: string;
|
|
27
|
+
/** Grid cell in px; the largest dot fills most of a cell. Default `6`. */
|
|
28
|
+
cellSize?: number;
|
|
29
|
+
/** Dot shape. Default `"square"`. */
|
|
30
|
+
shape?: PixelShape;
|
|
31
|
+
/** Drift and shimmer speed; `2` is twice as fast. Default `1`. */
|
|
32
|
+
speed?: number;
|
|
33
|
+
/** How much of the card the clouds cover; `2` makes each cloud twice as wide. Default `1.4`. */
|
|
34
|
+
coverage?: number;
|
|
35
|
+
/** How heavy the clouds are: higher fills them with bigger, bolder dots. Default `0.8`. */
|
|
36
|
+
density?: number;
|
|
37
|
+
/** Draw the perspective floor of dots along the bottom. Default `false`. */
|
|
38
|
+
floor?: boolean;
|
|
39
|
+
/** What the phone shows. Default a small health app screen. */
|
|
40
|
+
children?: React.ReactNode;
|
|
41
|
+
className?: string;
|
|
42
|
+
}
|
|
43
|
+
export declare const PixelFeatureCard: React.ForwardRefExoticComponent<PixelFeatureCardProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PixelScroll, type PixelScrollProps, type PixelDirection, type PixelPattern, type PixelEasing } from "./pixel-scroll";
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PixelScroll
|
|
3
|
+
*
|
|
4
|
+
* Trigger: scroll. A scroll-driven pixel transition. A tall track scrolls past
|
|
5
|
+
* a sticky stage, and as it does a grid of pixels flips from state A to state
|
|
6
|
+
* B. Colors mode goes from one color to another, with optional accent pixels
|
|
7
|
+
* flickering in the moving band; two-layer mode goes from image A to image B.
|
|
8
|
+
* Direction sets where the flip starts (top, bottom, left, right, center out or
|
|
9
|
+
* in), pattern breaks up the front (random, checker, diagonal, wave, spiral,
|
|
10
|
+
* radial) and intensity sets how much the pattern wins over the direction.
|
|
11
|
+
* Easing shapes the timing and End At sets how far through the scroll the
|
|
12
|
+
* transition finishes. Pixels that have settled fill their gaps, so the result
|
|
13
|
+
* is seamless; the grid only shows along the moving front. Scrolling is the
|
|
14
|
+
* user's own input, so it runs under reduced motion too.
|
|
15
|
+
*
|
|
16
|
+
* Engine: motion/react (useScroll for progress; one canvas redrawn only when the
|
|
17
|
+
* progress changes).
|
|
18
|
+
*/
|
|
19
|
+
import * as React from "react";
|
|
20
|
+
export type PixelDirection = "top-bottom" | "bottom-top" | "left-right" | "right-left" | "center-out" | "center-in";
|
|
21
|
+
export type PixelPattern = "random" | "checker" | "diagonal" | "wave" | "spiral" | "radial";
|
|
22
|
+
export type PixelEasing = "linear" | "ease-in" | "ease-out" | "ease-in-out" | "expo-out";
|
|
23
|
+
export interface PixelScrollProps {
|
|
24
|
+
/** `"colors"` flips color A to color B; `"layers"` flips image A to image B. Default `"colors"`. */
|
|
25
|
+
mode?: "colors" | "layers";
|
|
26
|
+
/** Start color (colors mode). Default the light card gray. */
|
|
27
|
+
from?: string;
|
|
28
|
+
/** End color (colors mode). Default ink. */
|
|
29
|
+
to?: string;
|
|
30
|
+
/** Start image (layers mode). */
|
|
31
|
+
layerA?: string;
|
|
32
|
+
/** End image (layers mode). */
|
|
33
|
+
layerB?: string;
|
|
34
|
+
/** Pixel size, px. Default `16`. */
|
|
35
|
+
pixelSize?: number;
|
|
36
|
+
/** Gap between pixels along the moving front, px. Default `0`. */
|
|
37
|
+
gap?: number;
|
|
38
|
+
/** How much of the transition already shows before any scrolling, 0 to 0.5, so there is a hint of it at rest. Default `0.08`. */
|
|
39
|
+
startAt?: number;
|
|
40
|
+
/** How far through the scroll the transition finishes, 0.1 to 1. Default `0.8`. */
|
|
41
|
+
endAt?: number;
|
|
42
|
+
/** Where the flip starts. Default `"bottom-top"`. */
|
|
43
|
+
direction?: PixelDirection;
|
|
44
|
+
/** How the front is broken up. Default `"random"`. */
|
|
45
|
+
pattern?: PixelPattern;
|
|
46
|
+
/** How strongly the pattern shifts each pixel's timing, 0 to 1. Default `0.45`. */
|
|
47
|
+
intensity?: number;
|
|
48
|
+
/** Timing curve. Default `"ease-in-out"`. */
|
|
49
|
+
easing?: PixelEasing;
|
|
50
|
+
/** Share of pixels in the moving band that flash an accent, 0 to 1. Default `0.25`. */
|
|
51
|
+
accentShare?: number;
|
|
52
|
+
/** Up to four accent colors. */
|
|
53
|
+
accents?: string[];
|
|
54
|
+
/** Scroll length in screens (or container heights). Default `3`. */
|
|
55
|
+
length?: number;
|
|
56
|
+
/** Scroll inside this element instead of the page. */
|
|
57
|
+
container?: React.RefObject<HTMLElement | null>;
|
|
58
|
+
/** Content laid over the stage. */
|
|
59
|
+
children?: React.ReactNode;
|
|
60
|
+
/** Describes the visual for screen readers. Leave empty if it is decorative. */
|
|
61
|
+
label?: string;
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
64
|
+
export declare const PixelScroll: React.ForwardRefExoticComponent<PixelScrollProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PricingCard, type PricingCardProps, type PricingPlan, type PricingFeature, type PricingIcon } from "./pricing-card";
|
|
@@ -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";
|