@flamingo-stack/openframe-frontend-core 0.0.518-1660.4292.1 → 0.0.518
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/dist/{chunk-3LMOLDFT.cjs → chunk-262OTU4W.cjs} +14 -14
- package/dist/{chunk-3LMOLDFT.cjs.map → chunk-262OTU4W.cjs.map} +1 -1
- package/dist/{chunk-XURCARSX.cjs → chunk-2AHSX63M.cjs} +5 -5
- package/dist/{chunk-XURCARSX.cjs.map → chunk-2AHSX63M.cjs.map} +1 -1
- package/dist/{chunk-DPFQWIZJ.cjs → chunk-2EU3TWCW.cjs} +32 -32
- package/dist/{chunk-DPFQWIZJ.cjs.map → chunk-2EU3TWCW.cjs.map} +1 -1
- package/dist/{chunk-MIFJLUZK.js → chunk-2ZHVOTSA.js} +2 -2
- package/dist/{chunk-NJADHL2G.cjs → chunk-3M2MFP2Y.cjs} +30 -2
- package/dist/chunk-3M2MFP2Y.cjs.map +1 -0
- package/dist/{chunk-UBTOOE55.js → chunk-5OGHZNY5.js} +10 -1
- package/dist/chunk-5OGHZNY5.js.map +1 -0
- package/dist/{chunk-5KBQECAY.js → chunk-6EAACE7G.js} +2 -2
- package/dist/{chunk-IIPBTWQR.cjs → chunk-7INXXQVK.cjs} +10 -1
- package/dist/{chunk-IIPBTWQR.cjs.map → chunk-7INXXQVK.cjs.map} +1 -1
- package/dist/{chunk-IVTENGMF.js → chunk-7J4DGFHZ.js} +2 -2
- package/dist/{chunk-JLO2O5R4.js → chunk-7SPVAAWE.js} +5257 -5143
- package/dist/chunk-7SPVAAWE.js.map +1 -0
- package/dist/{chunk-FXT2OZ5Q.js → chunk-BBI7GD2Q.js} +3 -3
- package/dist/{chunk-MEXZZOBO.js → chunk-CV624KM6.js} +9 -9
- package/dist/{chunk-WSRPNLTY.cjs → chunk-FAOL7EI2.cjs} +18 -18
- package/dist/{chunk-WSRPNLTY.cjs.map → chunk-FAOL7EI2.cjs.map} +1 -1
- package/dist/{chunk-P63LOLTB.js → chunk-FISSR67K.js} +7 -7
- package/dist/{chunk-XURRAFIB.js → chunk-GJAHN7LH.js} +404 -376
- package/dist/chunk-GJAHN7LH.js.map +1 -0
- package/dist/{chunk-FS3YSNSU.js → chunk-GS4HJA2G.js} +2 -2
- package/dist/{chunk-HIV2GIFP.cjs → chunk-GYONSC3U.cjs} +3 -3
- package/dist/{chunk-HIV2GIFP.cjs.map → chunk-GYONSC3U.cjs.map} +1 -1
- package/dist/{chunk-QXUMLLYV.cjs → chunk-IPHH3GKC.cjs} +3 -3
- package/dist/{chunk-QXUMLLYV.cjs.map → chunk-IPHH3GKC.cjs.map} +1 -1
- package/dist/{chunk-NBJ7L65H.js → chunk-J2JLAW2J.js} +3 -3
- package/dist/{chunk-GA7BHFXD.cjs → chunk-J3DRYWFP.cjs} +77 -77
- package/dist/{chunk-GA7BHFXD.cjs.map → chunk-J3DRYWFP.cjs.map} +1 -1
- package/dist/{chunk-O7L2VJDW.cjs → chunk-LY7IT5QX.cjs} +12 -12
- package/dist/{chunk-O7L2VJDW.cjs.map → chunk-LY7IT5QX.cjs.map} +1 -1
- package/dist/{chunk-K26W23C2.cjs → chunk-MKPJYEOR.cjs} +6 -6
- package/dist/{chunk-K26W23C2.cjs.map → chunk-MKPJYEOR.cjs.map} +1 -1
- package/dist/{chunk-ZKVARGSO.js → chunk-MY7663CW.js} +3 -3
- package/dist/{chunk-J7ZJ4KM2.cjs → chunk-PJ4WHNJH.cjs} +9 -9
- package/dist/{chunk-J7ZJ4KM2.cjs.map → chunk-PJ4WHNJH.cjs.map} +1 -1
- package/dist/{chunk-66GH54DV.cjs → chunk-QNJCZGHH.cjs} +40 -40
- package/dist/{chunk-66GH54DV.cjs.map → chunk-QNJCZGHH.cjs.map} +1 -1
- package/dist/{chunk-WI4XHZ2B.js → chunk-QOUKB6OJ.js} +4 -4
- package/dist/{chunk-AI7WIW4E.js → chunk-QPCPYCU2.js} +4 -4
- package/dist/{chunk-Z3ADCYC5.js → chunk-RCBRCZUF.js} +2 -2
- package/dist/{chunk-RWYNJC2F.cjs → chunk-S3C4RT4O.cjs} +109 -109
- package/dist/{chunk-RWYNJC2F.cjs.map → chunk-S3C4RT4O.cjs.map} +1 -1
- package/dist/{chunk-OGVIGAMZ.cjs → chunk-SXLEPNY2.cjs} +31 -31
- package/dist/{chunk-OGVIGAMZ.cjs.map → chunk-SXLEPNY2.cjs.map} +1 -1
- package/dist/{chunk-BXRB4MQI.cjs → chunk-SYQ4KUXW.cjs} +599 -485
- package/dist/chunk-SYQ4KUXW.cjs.map +1 -0
- package/dist/{chunk-HPPCPGBR.cjs → chunk-U6NODSTY.cjs} +31 -31
- package/dist/{chunk-HPPCPGBR.cjs.map → chunk-U6NODSTY.cjs.map} +1 -1
- package/dist/{chunk-KP4JRPUE.js → chunk-V3K5H4I2.js} +2 -2
- package/dist/{chunk-43ZZYJ3M.js → chunk-V76TAQ3O.js} +5 -5
- package/dist/{chunk-XZ6WTSVQ.js → chunk-VCA3HNJ2.js} +6 -6
- package/dist/{chunk-7EFJJMNH.cjs → chunk-WBEF37M5.cjs} +12 -12
- package/dist/{chunk-7EFJJMNH.cjs.map → chunk-WBEF37M5.cjs.map} +1 -1
- package/dist/{chunk-H6K73RK2.cjs → chunk-XDADNUC5.cjs} +40 -40
- package/dist/{chunk-H6K73RK2.cjs.map → chunk-XDADNUC5.cjs.map} +1 -1
- package/dist/{chunk-56OUH3UF.js → chunk-YHAYMOXR.js} +3 -3
- package/dist/components/about-icon.d.ts +9 -0
- package/dist/components/about-icon.d.ts.map +1 -0
- package/dist/components/aspect-ratio.d.ts +4 -0
- package/dist/components/aspect-ratio.d.ts.map +1 -0
- package/dist/components/avatar.d.ts +7 -0
- package/dist/components/avatar.d.ts.map +1 -0
- package/dist/components/calendar.cjs +3 -3
- package/dist/components/calendar.js +2 -2
- package/dist/components/case-studies/index.cjs +15 -15
- package/dist/components/case-studies/index.js +5 -5
- package/dist/components/chart.d.ts +72 -0
- package/dist/components/chart.d.ts.map +1 -0
- package/dist/components/chat/index.cjs +5 -5
- package/dist/components/chat/index.js +4 -4
- package/dist/components/check-circle-icon.d.ts +7 -0
- package/dist/components/check-circle-icon.d.ts.map +1 -0
- package/dist/components/checkbox.d.ts +5 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/claude-icon.d.ts +6 -0
- package/dist/components/claude-icon.d.ts.map +1 -0
- package/dist/components/coins-icon.d.ts +9 -0
- package/dist/components/coins-icon.d.ts.map +1 -0
- package/dist/components/command.d.ts +81 -0
- package/dist/components/command.d.ts.map +1 -0
- package/dist/components/community-hub-icon.d.ts +9 -0
- package/dist/components/community-hub-icon.d.ts.map +1 -0
- package/dist/components/community-icon.d.ts +9 -0
- package/dist/components/community-icon.d.ts.map +1 -0
- package/dist/components/compare-icon.d.ts +9 -0
- package/dist/components/compare-icon.d.ts.map +1 -0
- package/dist/components/contact/index.cjs +6 -6
- package/dist/components/contact/index.js +5 -5
- package/dist/components/context-menu.d.ts +28 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/custom-external-link-icon.d.ts +9 -0
- package/dist/components/custom-external-link-icon.d.ts.map +1 -0
- package/dist/components/custom-fork-icon.d.ts +9 -0
- package/dist/components/custom-fork-icon.d.ts.map +1 -0
- package/dist/components/custom-icons.d.ts +8 -0
- package/dist/components/custom-icons.d.ts.map +1 -0
- package/dist/components/custom-license-icon.d.ts +9 -0
- package/dist/components/custom-license-icon.d.ts.map +1 -0
- package/dist/components/custom-star-icon.d.ts +9 -0
- package/dist/components/custom-star-icon.d.ts.map +1 -0
- package/dist/components/custom-time-icon.d.ts +9 -0
- package/dist/components/custom-time-icon.d.ts.map +1 -0
- package/dist/components/docs/index.cjs +8 -8
- package/dist/components/docs/index.js +7 -7
- package/dist/components/donut-icon.d.ts +4 -0
- package/dist/components/donut-icon.d.ts.map +1 -0
- package/dist/components/edit-profile-icon.d.ts +7 -0
- package/dist/components/edit-profile-icon.d.ts.map +1 -0
- package/dist/components/elestio-logo.d.ts +9 -0
- package/dist/components/elestio-logo.d.ts.map +1 -0
- package/dist/components/embeds/index.cjs +6 -6
- package/dist/components/embeds/index.js +5 -5
- package/dist/components/empty-vendor-icon.d.ts +7 -0
- package/dist/components/empty-vendor-icon.d.ts.map +1 -0
- package/dist/components/faq/index.cjs +7 -7
- package/dist/components/faq/index.js +6 -6
- package/dist/components/features/index.cjs +5 -5
- package/dist/components/features/index.js +4 -4
- package/dist/components/features/provider-button.d.ts +1 -1
- package/dist/components/features/provider-button.d.ts.map +1 -1
- package/dist/components/flamingo-logo.d.ts +9 -0
- package/dist/components/flamingo-logo.d.ts.map +1 -0
- package/dist/components/form.d.ts +26 -0
- package/dist/components/form.d.ts.map +1 -0
- package/dist/components/github-icon.d.ts +9 -0
- package/dist/components/github-icon.d.ts.map +1 -0
- package/dist/components/google-logo.d.ts +5 -0
- package/dist/components/google-logo.d.ts.map +1 -0
- package/dist/components/hamburger-icon.d.ts +9 -0
- package/dist/components/hamburger-icon.d.ts.map +1 -0
- package/dist/components/help-center-pages/index.cjs +26 -26
- package/dist/components/help-center-pages/index.js +17 -17
- package/dist/components/hubspot-icon.d.ts +7 -0
- package/dist/components/hubspot-icon.d.ts.map +1 -0
- package/dist/components/icon-utils.d.ts +7 -0
- package/dist/components/icon-utils.d.ts.map +1 -0
- package/dist/components/icons/apple-icon.d.ts +10 -0
- package/dist/components/icons/apple-icon.d.ts.map +1 -0
- package/dist/components/icons/index.cjs +4 -2
- package/dist/components/icons/index.cjs.map +1 -1
- package/dist/components/icons/index.d.ts +1 -0
- package/dist/components/icons/index.d.ts.map +1 -1
- package/dist/components/icons/index.js +3 -1
- package/dist/components/index.cjs +239 -285
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +373 -419
- package/dist/components/index.js.map +1 -1
- package/dist/components/interactive-wrapper.d.ts +84 -0
- package/dist/components/interactive-wrapper.d.ts.map +1 -0
- package/dist/components/join-waitlist-button-stub.d.ts +10 -0
- package/dist/components/join-waitlist-button-stub.d.ts.map +1 -0
- package/dist/components/made-with-love.d.ts.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +48 -48
- package/dist/components/meeting-scheduler/index.js +7 -7
- package/dist/components/menu-icon.d.ts +9 -0
- package/dist/components/menu-icon.d.ts.map +1 -0
- package/dist/components/minus-circle-icon.d.ts +7 -0
- package/dist/components/minus-circle-icon.d.ts.map +1 -0
- package/dist/components/moon-icon.d.ts +9 -0
- package/dist/components/moon-icon.d.ts.map +1 -0
- package/dist/components/ms-icon.d.ts +9 -0
- package/dist/components/ms-icon.d.ts.map +1 -0
- package/dist/components/navigation/index.cjs +5 -5
- package/dist/components/navigation/index.js +4 -4
- package/dist/components/onboarding-guides/index.cjs +9 -9
- package/dist/components/onboarding-guides/index.js +8 -8
- package/dist/components/open-source-features.d.ts +1 -1
- package/dist/components/open-source-features.d.ts.map +1 -1
- package/dist/components/open-source-icon.d.ts +9 -0
- package/dist/components/open-source-icon.d.ts.map +1 -0
- package/dist/components/openframe-logo.d.ts +7 -0
- package/dist/components/openframe-logo.d.ts.map +1 -0
- package/dist/components/openmsp-logo.d.ts +11 -0
- package/dist/components/openmsp-logo.d.ts.map +1 -0
- package/dist/components/plus-circle-icon.d.ts +9 -0
- package/dist/components/plus-circle-icon.d.ts.map +1 -0
- package/dist/components/progress.d.ts +7 -0
- package/dist/components/progress.d.ts.map +1 -0
- package/dist/components/provider-button.d.ts +10 -0
- package/dist/components/provider-button.d.ts.map +1 -0
- package/dist/components/reddit-icon.d.ts +10 -0
- package/dist/components/reddit-icon.d.ts.map +1 -0
- package/dist/components/related-content/index.cjs +7 -7
- package/dist/components/related-content/index.js +6 -6
- package/dist/components/resizable.d.ts +24 -0
- package/dist/components/resizable.d.ts.map +1 -0
- package/dist/components/scroll-area.d.ts +13 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/send-icon.d.ts +7 -0
- package/dist/components/send-icon.d.ts.map +1 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/skeleton.d.ts +4 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/slack-icon.d.ts +9 -0
- package/dist/components/slack-icon.d.ts.map +1 -0
- package/dist/components/slider.d.ts +5 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/smooth-accordion.d.ts +12 -0
- package/dist/components/smooth-accordion.d.ts.map +1 -0
- package/dist/components/steps.d.ts +17 -0
- package/dist/components/steps.d.ts.map +1 -0
- package/dist/components/sun-icon.d.ts +9 -0
- package/dist/components/sun-icon.d.ts.map +1 -0
- package/dist/components/switch.d.ts +5 -0
- package/dist/components/switch.d.ts.map +1 -0
- package/dist/components/textarea.d.ts +6 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/tickets/index.cjs +9 -9
- package/dist/components/tickets/index.js +8 -8
- package/dist/components/ui/button/button.d.ts +1 -1
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +15 -15
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +5 -5
- package/dist/components/ui/index.js +4 -4
- package/dist/components/ui/pagination-stub.d.ts +6 -0
- package/dist/components/ui/pagination-stub.d.ts.map +1 -0
- package/dist/components/ui/responsive-icons-block-stub.d.ts +7 -0
- package/dist/components/ui/responsive-icons-block-stub.d.ts.map +1 -0
- package/dist/components/user-icon.d.ts +9 -0
- package/dist/components/user-icon.d.ts.map +1 -0
- package/dist/components/vendor-directory-icon.d.ts +9 -0
- package/dist/components/vendor-directory-icon.d.ts.map +1 -0
- package/dist/components/vendors-icon.d.ts +9 -0
- package/dist/components/vendors-icon.d.ts.map +1 -0
- package/dist/components/why-it-matters.d.ts +1 -1
- package/dist/components/why-it-matters.d.ts.map +1 -1
- package/dist/components/x-icon.d.ts +9 -0
- package/dist/components/x-icon.d.ts.map +1 -0
- package/dist/components/x-logo.d.ts +7 -0
- package/dist/components/x-logo.d.ts.map +1 -0
- package/dist/hooks/index.cjs +3 -3
- package/dist/hooks/index.js +2 -2
- package/dist/index.cjs +7 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +6 -4
- package/package.json +1 -1
- package/src/components/about-icon.tsx +29 -0
- package/src/components/aspect-ratio.tsx +7 -0
- package/src/components/avatar.tsx +40 -0
- package/src/components/chart.tsx +364 -0
- package/src/components/chat/chat-container.tsx +1 -1
- package/src/components/check-circle-icon.tsx +29 -0
- package/src/components/checkbox.tsx +30 -0
- package/src/components/claude-icon.tsx +24 -0
- package/src/components/coins-icon.tsx +29 -0
- package/src/components/command.tsx +153 -0
- package/src/components/community-hub-icon.tsx +27 -0
- package/src/components/community-icon.tsx +27 -0
- package/src/components/compare-icon.tsx +27 -0
- package/src/components/context-menu.tsx +200 -0
- package/src/components/custom-external-link-icon.tsx +33 -0
- package/src/components/custom-fork-icon.tsx +33 -0
- package/src/components/custom-icons.tsx +47 -0
- package/src/components/custom-license-icon.tsx +33 -0
- package/src/components/custom-star-icon.tsx +29 -0
- package/src/components/custom-time-icon.tsx +33 -0
- package/src/components/donut-icon.tsx +21 -0
- package/src/components/edit-profile-icon.tsx +23 -0
- package/src/components/elestio-logo.tsx +67 -0
- package/src/components/empty-vendor-icon.tsx +44 -0
- package/src/components/features/auth-providers-list.tsx +1 -1
- package/src/components/features/platform-badge.tsx +2 -2
- package/src/components/features/provider-button.tsx +6 -2
- package/src/components/flamingo-logo.tsx +27 -0
- package/src/components/form.tsx +138 -0
- package/src/components/github-icon.tsx +26 -0
- package/src/components/google-logo.tsx +32 -0
- package/src/components/hamburger-icon.tsx +29 -0
- package/src/components/hubspot-icon.tsx +20 -0
- package/src/components/icon-utils.tsx +36 -0
- package/src/components/icons/apple-icon.tsx +30 -0
- package/src/components/icons/index.ts +1 -0
- package/src/components/interactive-wrapper.tsx +336 -0
- package/src/components/join-waitlist-button-stub.tsx +30 -0
- package/src/components/loading/openmsp-heartbeat.tsx +1 -1
- package/src/components/made-with-love.tsx +3 -4
- package/src/components/menu-icon.tsx +22 -0
- package/src/components/minus-circle-icon.tsx +28 -0
- package/src/components/moon-icon.tsx +26 -0
- package/src/components/ms-icon.tsx +31 -0
- package/src/components/open-source-features.tsx +1 -1
- package/src/components/open-source-icon.tsx +27 -0
- package/src/components/openframe-logo.tsx +46 -0
- package/src/components/openmsp-logo.tsx +36 -0
- package/src/components/plus-circle-icon.tsx +30 -0
- package/src/components/progress.tsx +27 -0
- package/src/components/provider-button.tsx +40 -0
- package/src/components/reddit-icon.tsx +50 -0
- package/src/components/resizable.tsx +45 -0
- package/src/components/scroll-area.tsx +49 -0
- package/src/components/send-icon.tsx +26 -0
- package/src/components/separator.tsx +22 -0
- package/src/components/skeleton.tsx +8 -0
- package/src/components/slack-icon.tsx +43 -0
- package/src/components/slider.tsx +28 -0
- package/src/components/smooth-accordion.tsx +124 -0
- package/src/components/steps.tsx +98 -0
- package/src/components/sun-icon.tsx +27 -0
- package/src/components/switch.tsx +29 -0
- package/src/components/textarea.tsx +22 -0
- package/src/components/ui/button/button.tsx +9 -0
- package/src/components/ui/pagination-stub.tsx +38 -0
- package/src/components/ui/responsive-icons-block-stub.tsx +14 -0
- package/src/components/user-icon.tsx +33 -0
- package/src/components/vendor-directory-icon.tsx +27 -0
- package/src/components/vendor-tag.tsx +1 -1
- package/src/components/vendors-icon.tsx +27 -0
- package/src/components/why-it-matters.tsx +1 -1
- package/src/components/x-icon.tsx +29 -0
- package/src/components/x-logo.tsx +22 -0
- package/dist/chunk-BXRB4MQI.cjs.map +0 -1
- package/dist/chunk-JLO2O5R4.js.map +0 -1
- package/dist/chunk-NJADHL2G.cjs.map +0 -1
- package/dist/chunk-UBTOOE55.js.map +0 -1
- package/dist/chunk-XURRAFIB.js.map +0 -1
- /package/dist/{chunk-MIFJLUZK.js.map → chunk-2ZHVOTSA.js.map} +0 -0
- /package/dist/{chunk-5KBQECAY.js.map → chunk-6EAACE7G.js.map} +0 -0
- /package/dist/{chunk-IVTENGMF.js.map → chunk-7J4DGFHZ.js.map} +0 -0
- /package/dist/{chunk-FXT2OZ5Q.js.map → chunk-BBI7GD2Q.js.map} +0 -0
- /package/dist/{chunk-MEXZZOBO.js.map → chunk-CV624KM6.js.map} +0 -0
- /package/dist/{chunk-P63LOLTB.js.map → chunk-FISSR67K.js.map} +0 -0
- /package/dist/{chunk-FS3YSNSU.js.map → chunk-GS4HJA2G.js.map} +0 -0
- /package/dist/{chunk-NBJ7L65H.js.map → chunk-J2JLAW2J.js.map} +0 -0
- /package/dist/{chunk-ZKVARGSO.js.map → chunk-MY7663CW.js.map} +0 -0
- /package/dist/{chunk-WI4XHZ2B.js.map → chunk-QOUKB6OJ.js.map} +0 -0
- /package/dist/{chunk-AI7WIW4E.js.map → chunk-QPCPYCU2.js.map} +0 -0
- /package/dist/{chunk-Z3ADCYC5.js.map → chunk-RCBRCZUF.js.map} +0 -0
- /package/dist/{chunk-KP4JRPUE.js.map → chunk-V3K5H4I2.js.map} +0 -0
- /package/dist/{chunk-43ZZYJ3M.js.map → chunk-V76TAQ3O.js.map} +0 -0
- /package/dist/{chunk-XZ6WTSVQ.js.map → chunk-VCA3HNJ2.js.map} +0 -0
- /package/dist/{chunk-56OUH3UF.js.map → chunk-YHAYMOXR.js.map} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface EmptyVendorIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export function EmptyVendorIcon({ className }: EmptyVendorIconProps) {
|
|
8
|
+
return (
|
|
9
|
+
<svg
|
|
10
|
+
width="24"
|
|
11
|
+
height="24"
|
|
12
|
+
viewBox="0 0 24 24"
|
|
13
|
+
fill="none"
|
|
14
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
15
|
+
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
16
|
+
className={className}
|
|
17
|
+
>
|
|
18
|
+
<path
|
|
19
|
+
d="M0 4C0 1.79086 1.79086 0 4 0H20C22.2091 0 24 1.79086 24 4V20C24 22.2091 22.2091 24 20 24H4C1.79086 24 0 22.2091 0 20V4Z"
|
|
20
|
+
fill="url(#pattern0_1643_33816)"
|
|
21
|
+
/>
|
|
22
|
+
<defs>
|
|
23
|
+
<pattern
|
|
24
|
+
id="pattern0_1643_33816"
|
|
25
|
+
patternContentUnits="objectBoundingBox"
|
|
26
|
+
width="1"
|
|
27
|
+
height="1"
|
|
28
|
+
>
|
|
29
|
+
<use
|
|
30
|
+
xlinkHref="#image0_1643_33816"
|
|
31
|
+
transform="scale(0.0104167)"
|
|
32
|
+
/>
|
|
33
|
+
</pattern>
|
|
34
|
+
<image
|
|
35
|
+
id="image0_1643_33816"
|
|
36
|
+
width="96"
|
|
37
|
+
height="96"
|
|
38
|
+
preserveAspectRatio="none"
|
|
39
|
+
xlinkHref="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAANKSURBVHgB7Z2JbiIxEETNfSPB/38j4hI37G5FQjuJGBjwUe5JPWkUKaCI+Hna7XZP0vjzDydoNJ2gIgFkJICMBJCRADISQEYCyEgAGQkgIwFkJICMBJCRADISQEYCyLSdJ+fz2S0WC2f5WKHRaLjRaOTG47FLjfcdsFwuTQ8+wOffbreU38NbwPV6dXUBd3NqtAaQkQAyEkDGOwsqYzAYULKKVxwOB7fZbFwuRBPQarW+rtxoNvO66RWCyEgAGQkgIwFkoi3Cr8AOmrGLvlwuH732k1BJBkXAer12u93O5QY+1ztMp1M3HA6dD8lDEOotOQ7+J6CA50tyAXXqhr/dbs4XLcJkJICMBJChpaGPmEwmrtPpuNxAAS9W4pCVAAx+t9t1uRFzv6IQREYCyEgAGQkgk9UiXAUUzFDOwMlWu93O8tTtHcwIQAkDTWDH4/Hb93HunOPZc1XMhCBUKn8OPkBBzHJxz4QA5OH7/b709RBVSRYmBJxOp6evoypptUWyNllQbu0mVTHxqXu93lcLeRkoYTx7PWeiZUGI2Y9CxycHMpjdyHTKOtpwNGiVaAJCH7rjAQqIwIJ7/7ko3EFMjhXUqpjaiKHfFBcEQIbVsFPE3E4YWN/9FvFehOswC5l4C0BIEJ/jHYKQgWAxrJrd1KkvKARB1oB+v1/5vYjfEvAfnQeQkQAyEkBGAshIABkJIJNVKQKFtnfKDKgHoZ3RMlkJeHXy9YgUAkI8B1CGyWJcCrCzx4YRO/dHzQChkIACuAOLVwqSC8ipeopZjtZzDDa+Mh6fSi4AiywksJ4VQ2cdQgquVLP8GckFIHOZzWZv9fL4HG9C9D2OI6aHFB+iI4+yBqB8PZ/PK78fB/yr1ary+yELIQWDjsEPOejoR0WXBq4QD5PUZhFGOMGAY+BDNgMgXOLQHwOOh7JDr2HmBeBPZoae5VincMaBQY/dc2ReQKiFFOEEA46BT3no/2v3AZjVCCn38MJKj3+VAMzy4pUDtRaAWY2QgsHG1xxbaGonIHSaGBvzAmKnibEx25qYKk2MjQkBGGBWmhibhv6fMBedCZORADISQEYCyEgAGQkgIwFkJICMBJCRADISQEYCyEgAGQkgIwFk/gLUSDIjX8qP4wAAAABJRU5ErkJggg=="
|
|
40
|
+
/>
|
|
41
|
+
</defs>
|
|
42
|
+
</svg>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -62,7 +62,7 @@ export function AuthProvidersList({
|
|
|
62
62
|
.map((provider) => (
|
|
63
63
|
<ProviderButton
|
|
64
64
|
key={provider.provider}
|
|
65
|
-
provider={provider.provider as 'microsoft' | 'google' | 'slack' | 'github'}
|
|
65
|
+
provider={provider.provider as 'microsoft' | 'google' | 'slack' | 'github' | 'apple'}
|
|
66
66
|
onClick={() => handleProviderClick(provider.provider)}
|
|
67
67
|
disabled={loading}
|
|
68
68
|
loading={loading}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { cn } from '../../utils/cn';
|
|
5
|
-
import { FlamingoLogo } from '../
|
|
6
|
-
import { OpenmspLogo } from '../
|
|
5
|
+
import { FlamingoLogo } from '../flamingo-logo';
|
|
6
|
+
import { OpenmspLogo } from '../openmsp-logo';
|
|
7
7
|
import { OpenFrameLogo } from '../icons/openframe-logo';
|
|
8
8
|
import { MiamiCyberGangLogoFaceOnly } from '../icons/miami-cyber-gang-logo-face-only';
|
|
9
9
|
import { Globe } from 'lucide-react';
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
import { Button } from "../ui/button";
|
|
5
|
-
import { MicrosoftIcon, GoogleLogo, SlackIcon, GitHubIcon } from "../icons";
|
|
5
|
+
import { MicrosoftIcon, GoogleLogo, SlackIcon, GitHubIcon, AppleIcon } from "../icons";
|
|
6
6
|
|
|
7
7
|
interface ProviderButtonProps {
|
|
8
|
-
provider: 'microsoft' | 'google' | 'slack' | 'github';
|
|
8
|
+
provider: 'microsoft' | 'google' | 'slack' | 'github' | 'apple';
|
|
9
9
|
onClick: () => Promise<void> | void;
|
|
10
10
|
disabled?: boolean;
|
|
11
11
|
loading?: boolean;
|
|
@@ -28,6 +28,10 @@ const PROVIDER_CONFIG = {
|
|
|
28
28
|
displayName: 'Continue with GitHub',
|
|
29
29
|
icon: GitHubIcon,
|
|
30
30
|
},
|
|
31
|
+
apple: {
|
|
32
|
+
displayName: 'Continue with Apple',
|
|
33
|
+
icon: AppleIcon,
|
|
34
|
+
},
|
|
31
35
|
};
|
|
32
36
|
|
|
33
37
|
export function ProviderButton({ provider, onClick, disabled = false, loading = false }: ProviderButtonProps) {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface FlamingoLogoProps extends React.SVGProps<SVGSVGElement> {
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function FlamingoLogo({ className = '', color="var(--ods-flamingo-pink-base)" ,size=120, ...props }: FlamingoLogoProps) {
|
|
10
|
+
return (
|
|
11
|
+
<svg
|
|
12
|
+
width={size}
|
|
13
|
+
height={size}
|
|
14
|
+
viewBox="0 0 121 120"
|
|
15
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
16
|
+
className={className}
|
|
17
|
+
{...props}
|
|
18
|
+
>
|
|
19
|
+
<path
|
|
20
|
+
fillRule="evenodd"
|
|
21
|
+
clipRule="evenodd"
|
|
22
|
+
d="M20.8645 77.9756C20.6306 78.095 20.3452 77.9582 20.3369 77.7002C20.2055 73.6173 23.4398 62.2314 27.7657 59.0452C31.477 45.9806 61.8811 24.0208 81.7715 48.2044C83.1662 49.7884 84.0264 52.0978 84.7512 54.0436C86.0615 57.5613 86.9291 59.8908 89.7117 54.5977C92.4782 49.335 87.2725 42.2381 81.701 34.6426C75.7955 26.5918 69.4791 17.9808 71.8102 10.4001C75.4609 -1.47146 91.9849 -4.33245 94.5422 7.89834C98.4226 10.7002 104.422 17.0815 96.2751 25.8554C96.0466 26.1014 95.6263 25.9453 95.6104 25.6132C95.417 21.5769 93.9498 16.1177 90.5641 14.5697C89.0187 13.8632 88.0307 13.6723 87.1405 13.5003C85.585 13.1998 84.3282 12.9569 80.919 10.1221C75.236 5.39658 75.236 20.1291 87.7386 32.3599C97.1156 41.533 106.493 66.2324 84.0287 70.9981C74.9174 72.9311 68.0892 72.0015 61.3076 71.0782C61.0953 71.0493 60.8831 71.0204 60.6708 70.9916V89.3274L66.3745 91.8104C67.0914 92.1225 67.4139 92.944 67.0949 93.6453C66.7759 94.3466 65.9362 94.6621 65.2193 94.35L60.6708 92.37V118.61C60.6708 119.378 60.0347 120 59.2501 120C58.4654 120 57.8293 119.378 57.8293 118.61V91.133L42.4873 84.4542C42.0611 84.2686 41.7551 83.8902 41.6687 83.4417C41.5824 82.9931 41.7266 82.5317 42.0546 82.2072L54.1527 70.2377C45.537 69.536 35.8193 70.3474 20.8645 77.9756ZM57.7692 70.613L45.5202 82.732L57.8293 88.0905V70.6204C57.8093 70.618 57.7893 70.6155 57.7692 70.613Z"
|
|
23
|
+
fill={color}
|
|
24
|
+
/>
|
|
25
|
+
</svg>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import type * as LabelPrimitive from "@radix-ui/react-label"
|
|
5
|
+
import { Slot } from "@radix-ui/react-slot"
|
|
6
|
+
import {
|
|
7
|
+
Controller,
|
|
8
|
+
type ControllerProps,
|
|
9
|
+
type FieldPath,
|
|
10
|
+
type FieldValues,
|
|
11
|
+
FormProvider,
|
|
12
|
+
useFormContext,
|
|
13
|
+
} from "react-hook-form"
|
|
14
|
+
|
|
15
|
+
import { cn } from "../utils/cn"
|
|
16
|
+
import { Label } from "./ui/label"
|
|
17
|
+
|
|
18
|
+
const Form = FormProvider
|
|
19
|
+
|
|
20
|
+
type FormFieldContextValue<
|
|
21
|
+
TFieldValues extends FieldValues = FieldValues,
|
|
22
|
+
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
|
|
23
|
+
> = {
|
|
24
|
+
name: TName
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue)
|
|
28
|
+
|
|
29
|
+
const FormField = <
|
|
30
|
+
TFieldValues extends FieldValues = FieldValues,
|
|
31
|
+
TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,
|
|
32
|
+
>({
|
|
33
|
+
...props
|
|
34
|
+
}: ControllerProps<TFieldValues, TName>) => {
|
|
35
|
+
return (
|
|
36
|
+
<FormFieldContext.Provider value={{ name: props.name }}>
|
|
37
|
+
<Controller {...props} />
|
|
38
|
+
</FormFieldContext.Provider>
|
|
39
|
+
)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const useFormField = () => {
|
|
43
|
+
const fieldContext = React.useContext(FormFieldContext)
|
|
44
|
+
const itemContext = React.useContext(FormItemContext)
|
|
45
|
+
const { getFieldState, formState } = useFormContext()
|
|
46
|
+
|
|
47
|
+
const fieldState = getFieldState(fieldContext.name, formState)
|
|
48
|
+
|
|
49
|
+
if (!fieldContext) {
|
|
50
|
+
throw new Error("useFormField should be used within <FormField>")
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const { id } = itemContext
|
|
54
|
+
|
|
55
|
+
return {
|
|
56
|
+
id,
|
|
57
|
+
name: fieldContext.name,
|
|
58
|
+
formItemId: `${id}-form-item`,
|
|
59
|
+
formDescriptionId: `${id}-form-item-description`,
|
|
60
|
+
formMessageId: `${id}-form-item-message`,
|
|
61
|
+
...fieldState,
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
type FormItemContextValue = {
|
|
66
|
+
id: string
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue)
|
|
70
|
+
|
|
71
|
+
const FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(
|
|
72
|
+
({ className, ...props }, ref) => {
|
|
73
|
+
const id = React.useId()
|
|
74
|
+
|
|
75
|
+
return (
|
|
76
|
+
<FormItemContext.Provider value={{ id }}>
|
|
77
|
+
<div ref={ref} className={cn("space-y-2", className)} {...props} />
|
|
78
|
+
</FormItemContext.Provider>
|
|
79
|
+
)
|
|
80
|
+
},
|
|
81
|
+
)
|
|
82
|
+
FormItem.displayName = "FormItem"
|
|
83
|
+
|
|
84
|
+
const FormLabel = React.forwardRef<
|
|
85
|
+
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
86
|
+
React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>
|
|
87
|
+
>(({ className, ...props }, ref) => {
|
|
88
|
+
const { error, formItemId } = useFormField()
|
|
89
|
+
|
|
90
|
+
return <Label ref={ref} className={cn(error && "text-destructive", className)} htmlFor={formItemId} {...props} />
|
|
91
|
+
})
|
|
92
|
+
FormLabel.displayName = "FormLabel"
|
|
93
|
+
|
|
94
|
+
const FormControl = React.forwardRef<React.ElementRef<typeof Slot>, React.ComponentPropsWithoutRef<typeof Slot>>(
|
|
95
|
+
({ ...props }, ref) => {
|
|
96
|
+
const { error, formItemId, formDescriptionId, formMessageId } = useFormField()
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<Slot
|
|
100
|
+
ref={ref}
|
|
101
|
+
id={formItemId}
|
|
102
|
+
aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}
|
|
103
|
+
aria-invalid={!!error}
|
|
104
|
+
{...props}
|
|
105
|
+
/>
|
|
106
|
+
)
|
|
107
|
+
},
|
|
108
|
+
)
|
|
109
|
+
FormControl.displayName = "FormControl"
|
|
110
|
+
|
|
111
|
+
const FormDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(
|
|
112
|
+
({ className, ...props }, ref) => {
|
|
113
|
+
const { formDescriptionId } = useFormField()
|
|
114
|
+
|
|
115
|
+
return <p ref={ref} id={formDescriptionId} className={cn("text-h6 text-muted-foreground", className)} {...props} />
|
|
116
|
+
},
|
|
117
|
+
)
|
|
118
|
+
FormDescription.displayName = "FormDescription"
|
|
119
|
+
|
|
120
|
+
const FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(
|
|
121
|
+
({ className, children, ...props }, ref) => {
|
|
122
|
+
const { error, formMessageId } = useFormField()
|
|
123
|
+
const body = error ? String(error?.message) : children
|
|
124
|
+
|
|
125
|
+
if (!body) {
|
|
126
|
+
return null
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return (
|
|
130
|
+
<p ref={ref} id={formMessageId} className={cn("text-h6 text-destructive", className)} {...props}>
|
|
131
|
+
{body}
|
|
132
|
+
</p>
|
|
133
|
+
)
|
|
134
|
+
},
|
|
135
|
+
)
|
|
136
|
+
FormMessage.displayName = "FormMessage"
|
|
137
|
+
|
|
138
|
+
export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField }
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface GitHubIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const GitHubIcon: React.FC<GitHubIconProps> = ({
|
|
10
|
+
className = "",
|
|
11
|
+
width = 15,
|
|
12
|
+
height = 14
|
|
13
|
+
}) => {
|
|
14
|
+
return (
|
|
15
|
+
<svg
|
|
16
|
+
width={width}
|
|
17
|
+
height={height}
|
|
18
|
+
viewBox="0 0 15 14"
|
|
19
|
+
fill="none"
|
|
20
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
21
|
+
className={className}
|
|
22
|
+
>
|
|
23
|
+
<path d="M7.18173 0.333008C3.40523 0.333008 0.346436 3.3918 0.346436 7.1683C0.346436 10.1929 2.30304 12.7476 5.02007 13.6533C5.36183 13.7131 5.48999 13.508 5.48999 13.3286C5.48999 13.1663 5.48145 12.628 5.48145 12.0555C3.76408 12.3717 3.31979 11.6369 3.18308 11.2524C3.10618 11.0559 2.77296 10.4492 2.48246 10.2869C2.24323 10.1587 1.90146 9.84261 2.47392 9.83406C3.0122 9.82552 3.39668 10.3296 3.52485 10.5347C4.14002 11.5685 5.1226 11.278 5.51563 11.0986C5.57543 10.6543 5.75486 10.3553 5.95137 10.1844C4.43052 10.0135 2.84132 9.42395 2.84132 6.80945C2.84132 6.06611 3.10618 5.45093 3.54193 4.97246C3.47358 4.80158 3.23435 4.10096 3.61029 3.16111C3.61029 3.16111 4.18274 2.98168 5.48999 3.86173C6.03682 3.70793 6.61782 3.63104 7.19882 3.63104C7.77982 3.63104 8.36082 3.70793 8.90764 3.86173C10.2149 2.97314 10.7873 3.16111 10.7873 3.16111C11.1633 4.10096 10.9241 4.80158 10.8557 4.97246C11.2914 5.45093 11.5563 6.05757 11.5563 6.80945C11.5563 9.43249 9.95856 10.0135 8.43771 10.1844C8.68549 10.398 8.8991 10.8081 8.8991 11.4489C8.8991 12.3631 8.89055 13.0979 8.89055 13.3286C8.89055 13.508 9.01871 13.7216 9.36048 13.6533C10.7174 13.1952 11.8965 12.3231 12.7318 11.1597C13.5671 9.99643 14.0166 8.60046 14.017 7.1683C14.017 3.3918 10.9582 0.333008 7.18173 0.333008Z" fill="currentColor"/>
|
|
24
|
+
</svg>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
export const GoogleLogo = ({ className, ...props }: { className?: string } & React.SVGProps<SVGSVGElement>) => (
|
|
4
|
+
<svg
|
|
5
|
+
{...props}
|
|
6
|
+
className={className}
|
|
7
|
+
width="24"
|
|
8
|
+
height="24"
|
|
9
|
+
viewBox="0 0 24 24"
|
|
10
|
+
fill="none"
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
>
|
|
13
|
+
<g>
|
|
14
|
+
<path
|
|
15
|
+
d="M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
|
|
16
|
+
fill="#4285F4"
|
|
17
|
+
/>
|
|
18
|
+
<path
|
|
19
|
+
d="M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
|
|
20
|
+
fill="#34A853"
|
|
21
|
+
/>
|
|
22
|
+
<path
|
|
23
|
+
d="M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
|
|
24
|
+
fill="#FBBC05"
|
|
25
|
+
/>
|
|
26
|
+
<path
|
|
27
|
+
d="M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
|
|
28
|
+
fill="#EB4335"
|
|
29
|
+
/>
|
|
30
|
+
</g>
|
|
31
|
+
</svg>
|
|
32
|
+
);
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
interface HamburgerIconProps {
|
|
4
|
+
width?: number;
|
|
5
|
+
height?: number;
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function HamburgerIcon({ width = 16, height = 16, className = '' }: HamburgerIconProps) {
|
|
10
|
+
return (
|
|
11
|
+
<svg
|
|
12
|
+
width={width}
|
|
13
|
+
height={height}
|
|
14
|
+
viewBox="0 0 16 16"
|
|
15
|
+
fill="none"
|
|
16
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
17
|
+
className={className}
|
|
18
|
+
>
|
|
19
|
+
<path
|
|
20
|
+
d="M14 11.25C14.4142 11.25 14.75 11.5858 14.75 12C14.75 12.4142 14.4142 12.75 14 12.75H2C1.58579 12.75 1.25 12.4142 1.25 12C1.25 11.5858 1.58579 11.25 2 11.25H14Z"
|
|
21
|
+
fill="#FAFAFA"
|
|
22
|
+
/>
|
|
23
|
+
<path
|
|
24
|
+
d="M14 7.25C14.4142 7.25 14.75 7.58579 14.75 8C14.75 8.41421 14.4142 8.75 14 8.75H2C1.58579 8.75 1.25 8.41421 1.25 8C1.25 7.58579 1.58579 7.25 2 7.25H14ZM14 3.25C14.4142 3.25 14.75 3.58579 14.75 4C14.75 4.41421 14.4142 4.75 14 4.75H2C1.58579 4.75 1.25 4.41421 1.25 4C1.25 3.58579 1.58579 3.25 2 3.25H14Z"
|
|
25
|
+
fill="#FAFAFA"
|
|
26
|
+
/>
|
|
27
|
+
</svg>
|
|
28
|
+
);
|
|
29
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { cn } from "../utils/cn";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* HubSpot brand logo (solid orange)
|
|
6
|
+
* Usage: <HubspotIcon className="h-4 w-4" />
|
|
7
|
+
*/
|
|
8
|
+
export function HubspotIcon({ className, fill = '#FF7A59', ...props }: React.SVGProps<SVGSVGElement>) {
|
|
9
|
+
return (
|
|
10
|
+
<svg
|
|
11
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
12
|
+
viewBox="0 0 512 512"
|
|
13
|
+
fill={fill}
|
|
14
|
+
className={cn('inline-block', className)}
|
|
15
|
+
{...props}
|
|
16
|
+
>
|
|
17
|
+
<path d="M266.197 216.109c-22.551 21.293-36.655 51.48-36.655 84.991 0 26.326 8.714 50.582 23.359 70.08l-44.473 44.74c-3.953-1.438-8.176-2.245-12.579-2.245-9.702 0-18.776 3.774-25.605 10.602-6.828 6.827-10.602 15.989-10.602 25.696 0 9.701 3.773 18.775 10.602 25.605 6.829 6.826 15.993 10.42 25.605 10.42 9.703 0 18.777-3.505 25.695-10.42 6.829-6.83 10.602-15.994 10.602-25.605 0-3.774-.538-7.369-1.707-10.873l44.923-45.102c19.765 15.183 44.381 24.169 71.244 24.169 64.599 0 116.797-52.38 116.797-116.977 0-58.578-42.854-107.093-99.007-115.628v-55.343c15.723-6.65 25.335-21.384 25.335-38.545 0-23.449-18.777-43.034-42.227-43.034-23.448 0-41.956 19.585-41.956 43.034 0 17.161 9.613 31.895 25.335 38.545v54.983c-13.655 1.887-26.593 6.019-38.362 12.219-24.796-18.778-105.565-76.997-151.746-112.126 1.078-3.953 1.798-8.085 1.798-12.397 0-25.875-21.113-46.898-47.078-46.898-25.875 0-46.898 21.023-46.898 46.898 0 25.965 21.023 46.988 46.898 46.988 8.805 0 16.98-2.606 24.078-6.828L266.197 216.109zM346.606 363.095c-34.229 0-61.991-27.763-61.991-61.994 0-34.229 27.762-61.99 61.991-61.99 34.23 0 61.992 27.761 61.992 61.99 0 34.231-27.762 61.994-61.992 61.994z" />
|
|
18
|
+
</svg>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {
|
|
3
|
+
Megaphone,
|
|
4
|
+
Bell,
|
|
5
|
+
Info,
|
|
6
|
+
Star,
|
|
7
|
+
Rocket,
|
|
8
|
+
Package,
|
|
9
|
+
} from 'lucide-react';
|
|
10
|
+
import { OpenFrameLogo } from './openframe-logo';
|
|
11
|
+
import { OpenmspLogo } from './openmsp-logo';
|
|
12
|
+
import { FlamingoLogo } from './flamingo-logo';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Returns a JSX element for a known icon name, spreading any extra props.
|
|
16
|
+
* Falls back to Megaphone if the name is not recognised.
|
|
17
|
+
*/
|
|
18
|
+
export function renderSvgIcon(
|
|
19
|
+
name: string,
|
|
20
|
+
props: React.SVGProps<SVGSVGElement | SVGElement> = {}
|
|
21
|
+
): React.ReactElement {
|
|
22
|
+
const map: Record<string, (p: any) => React.ReactElement> = {
|
|
23
|
+
megaphone: (p) => <Megaphone {...p} />,
|
|
24
|
+
bell: (p) => <Bell {...p} />,
|
|
25
|
+
info: (p) => <Info {...p} />,
|
|
26
|
+
star: (p) => <Star {...p} />,
|
|
27
|
+
rocket: (p) => <Rocket {...p} />,
|
|
28
|
+
package: (p) => <Package {...p} />,
|
|
29
|
+
'openframe-logo': (p) => <OpenFrameLogo {...p} />,
|
|
30
|
+
'openmsp-logo': (p) => <OpenmspLogo {...p} />,
|
|
31
|
+
'flamingo': (p)=> <FlamingoLogo {...p} />,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const renderer = map[name] || map['megaphone'];
|
|
35
|
+
return renderer(props);
|
|
36
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
interface AppleIconProps {
|
|
4
|
+
width?: number | string
|
|
5
|
+
height?: number | string
|
|
6
|
+
className?: string
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** @deprecated Use icons from icons-v2-generated instead. */
|
|
10
|
+
export function AppleIcon({
|
|
11
|
+
width = 24,
|
|
12
|
+
height = 24,
|
|
13
|
+
className = "text-current"
|
|
14
|
+
}: AppleIconProps) {
|
|
15
|
+
return (
|
|
16
|
+
<svg
|
|
17
|
+
width={width}
|
|
18
|
+
height={height}
|
|
19
|
+
viewBox="0 0 24 24"
|
|
20
|
+
fill="none"
|
|
21
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
22
|
+
className={className}
|
|
23
|
+
>
|
|
24
|
+
<path
|
|
25
|
+
d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.56-1.702"
|
|
26
|
+
fill="currentColor"
|
|
27
|
+
/>
|
|
28
|
+
</svg>
|
|
29
|
+
)
|
|
30
|
+
}
|
|
@@ -81,6 +81,7 @@ export { GitHubIcon } from './github-icon';
|
|
|
81
81
|
export { SlackIcon } from './slack-icon';
|
|
82
82
|
export { ClickUpIcon } from './clickup-icon';
|
|
83
83
|
export { MicrosoftIcon } from './ms-icon';
|
|
84
|
+
export { AppleIcon } from './apple-icon';
|
|
84
85
|
export { GoogleLogo } from './google-logo';
|
|
85
86
|
export { RedditIcon } from './reddit-icon';
|
|
86
87
|
export { XLogo } from './x-logo';
|