@flamingo-stack/openframe-frontend-core 0.0.730 → 0.0.732
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/aicpa-soc2-logo-icon-MLDYZA5S.cjs +7 -0
- package/dist/build/export-map.json +1 -1
- package/dist/{chunk-SKDQ2SLJ.cjs → chunk-22ZK7BA3.cjs} +1345 -1127
- package/dist/{chunk-5RMCAY6Y.cjs → chunk-27TMRMOM.cjs} +6 -4
- package/dist/{chunk-P4YHBHP4.cjs → chunk-3BLBWZ6A.cjs} +7 -7
- package/dist/{chunk-2T2TH5DF.cjs → chunk-52HFGZCI.cjs} +14 -12
- package/dist/{chunk-L7Y7KDTM.cjs → chunk-5HMGK3N6.cjs} +20 -20
- package/dist/{chunk-66QTEDJL.cjs → chunk-5HSMTSHU.cjs} +28 -28
- package/dist/{chunk-WTURHKM2.cjs → chunk-6HHUU56Y.cjs} +16 -16
- package/dist/{chunk-AIW4KZQT.cjs → chunk-6KDGIOLP.cjs} +89 -89
- package/dist/{chunk-4XQXTQUK.cjs → chunk-6N5NQRQA.cjs} +8 -6
- package/dist/{chunk-5KLNEFZZ.cjs → chunk-7DUXR4HL.cjs} +3 -3
- package/dist/chunk-AEVGCB3Y.cjs +417 -0
- package/dist/{chunk-A7T3P5Q5.cjs → chunk-BDTX2OEE.cjs} +32 -32
- package/dist/{chunk-Q5GR7LKV.cjs → chunk-BS4EZZCN.cjs} +15 -15
- package/dist/{chunk-JNDR5N3T.cjs → chunk-C5NERNE6.cjs} +93 -93
- package/dist/{chunk-UHJG2BDI.cjs → chunk-CC3LINHF.cjs} +98 -50
- package/dist/{chunk-FRET5WH3.cjs → chunk-CKR42OBK.cjs} +4 -2
- package/dist/{chunk-GJPAS4RJ.cjs → chunk-CT342EJU.cjs} +6 -4
- package/dist/{chunk-PGFR4CDB.cjs → chunk-CUF3IYIB.cjs} +40 -40
- package/dist/{chunk-YHFXQ5OR.cjs → chunk-E3N24573.cjs} +9 -9
- package/dist/{chunk-24KWUFWA.cjs → chunk-G37LT2ID.cjs} +43 -39
- package/dist/{chunk-UG7Q3HQH.cjs → chunk-GID62YEN.cjs} +3 -3
- package/dist/{chunk-NDHQ7JLZ.cjs → chunk-GKHWXI25.cjs} +11 -15
- package/dist/chunk-HELVKMRG.cjs +28 -0
- package/dist/{chunk-KMMV562E.cjs → chunk-HH4BMYDX.cjs} +32 -379
- package/dist/{chunk-FGA6T2XT.cjs → chunk-I46MQ4R5.cjs} +82 -82
- package/dist/{chunk-YJXUJWHN.cjs → chunk-J7SZOZOS.cjs} +28 -26
- package/dist/{chunk-NXCV35RR.cjs → chunk-KLXHCNDC.cjs} +3 -3
- package/dist/{chunk-6KD2XUQZ.cjs → chunk-LRQITIEC.cjs} +28 -26
- package/dist/chunk-MANNIJ42.cjs +967 -0
- package/dist/{chunk-2V62Y67F.cjs → chunk-MEDDKM3A.cjs} +4 -4
- package/dist/{chunk-CLA3UGKT.cjs → chunk-MVZ6XFPK.cjs} +12 -12
- package/dist/{chunk-TI2IFCZG.cjs → chunk-N466AJGN.cjs} +17 -17
- package/dist/{chunk-TW2SES5W.cjs → chunk-NCGAP3U4.cjs} +4 -2
- package/dist/{chunk-DINGZJ37.cjs → chunk-NYY25425.cjs} +2 -2
- package/dist/{chunk-HVZBIXCZ.cjs → chunk-O2RPIGSG.cjs} +6 -4
- package/dist/{chunk-YRZB4BMZ.cjs → chunk-OI7VCXYU.cjs} +48 -50
- package/dist/{chunk-XA436AER.cjs → chunk-OJ3XU3YZ.cjs} +4 -4
- package/dist/{chunk-UYKL2AXE.cjs → chunk-OKW5OAFJ.cjs} +8 -6
- package/dist/{chunk-6NKLR5QN.cjs → chunk-PRWBVIWW.cjs} +59 -59
- package/dist/chunk-PX7FY655.cjs +114 -0
- package/dist/{chunk-CD5YBUJK.cjs → chunk-QMTC3BK3.cjs} +23 -21
- package/dist/{chunk-VQMWBQUJ.cjs → chunk-R4QMR6S4.cjs} +14 -12
- package/dist/{chunk-NB5BYOTM.cjs → chunk-RC32WBPL.cjs} +6 -4
- package/dist/{chunk-CDLDAQBA.cjs → chunk-RIXGLS5Y.cjs} +7 -7
- package/dist/{chunk-2I3XU2IB.cjs → chunk-SJRR745G.cjs} +63 -60
- package/dist/{chunk-XSPL7RXL.cjs → chunk-TLDCSTTQ.cjs} +12 -12
- package/dist/{chunk-3YHVQ34L.cjs → chunk-XOQ2UUVS.cjs} +93 -95
- package/dist/{chunk-YPM3ALIW.cjs → chunk-YGKVHSNQ.cjs} +42 -42
- package/dist/{chunk-4NFVFTD6.cjs → chunk-ZWMPAFGB.cjs} +238 -238
- package/dist/{chunk-GVTCHXW2.cjs → chunk-ZWUIRQNY.cjs} +28 -26
- package/dist/clickup-icon-3SETH2MM.cjs +7 -0
- package/dist/clickup-logo-icon-DJKBEFMR.cjs +7 -0
- package/dist/{cloud-tenants-VV6UQE7J.cjs → cloud-tenants-ILRE74JY.cjs} +36 -36
- package/dist/components/agent-identity.d.ts +8 -0
- package/dist/components/agent-identity.d.ts.map +1 -1
- package/dist/components/agent-identity.js +13 -1
- package/dist/components/case-studies/index.cjs +49 -49
- package/dist/components/chat/entity-cards/entity-portrait-card.js +1 -1
- package/dist/components/chat/index.cjs +30 -30
- package/dist/components/chat/types/entities/program-types.d.ts +1 -23
- package/dist/components/chat/types/entities/program-types.d.ts.map +1 -1
- package/dist/components/chat/types/entities/program-types.js +1 -9
- package/dist/components/chat/utils/icon-loading.d.ts +35 -2
- package/dist/components/chat/utils/icon-loading.d.ts.map +1 -1
- package/dist/components/chat/utils/icon-loading.js +31 -9
- package/dist/components/contact/index.cjs +37 -37
- package/dist/components/docs/index.cjs +40 -40
- package/dist/components/embeds/index.cjs +37 -37
- package/dist/components/faq/index.cjs +37 -37
- package/dist/components/features/index.cjs +38 -36
- package/dist/components/features/video-bites-shared.cjs +8 -0
- package/dist/components/features/video-bites-shared.d.ts +25 -0
- package/dist/components/features/video-bites-shared.d.ts.map +1 -1
- package/dist/components/features/video-bites-shared.js +8 -0
- package/dist/components/help-center-pages/index.cjs +152 -152
- package/dist/components/icons-v2-generated/brand-logos/clickup-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/clickup-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/clickup-icon.js +6 -4
- package/dist/components/icons-v2-generated/brand-logos/clickup-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/clickup-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/clickup-logo-icon.js +6 -4
- package/dist/components/icons-v2-generated/brand-logos/elestio-logo-grey-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/elestio-logo-grey-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/elestio-logo-grey-icon.js +4 -2
- package/dist/components/icons-v2-generated/brand-logos/elestio-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/elestio-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/elestio-logo-icon.js +14 -12
- package/dist/components/icons-v2-generated/brand-logos/gemini-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/gemini-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/gemini-logo-icon.js +28 -26
- package/dist/components/icons-v2-generated/brand-logos/google-gemini-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/google-gemini-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/google-gemini-icon.js +28 -26
- package/dist/components/icons-v2-generated/brand-logos/google-gemini-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/google-gemini-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/google-gemini-logo-icon.js +28 -26
- package/dist/components/icons-v2-generated/brand-logos/google-sheets-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/google-sheets-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/google-sheets-icon.js +4 -2
- package/dist/components/icons-v2-generated/brand-logos/meshcentral-logo-grey-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/meshcentral-logo-grey-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/meshcentral-logo-grey-icon.js +8 -6
- package/dist/components/icons-v2-generated/brand-logos/meshcentral-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/meshcentral-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/meshcentral-logo-icon.js +8 -6
- package/dist/components/icons-v2-generated/brand-logos/winget-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/brand-logos/winget-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/brand-logos/winget-logo-icon.js +14 -12
- package/dist/components/icons-v2-generated/compliance-logos/aicpa-soc2-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/compliance-logos/aicpa-soc2-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/compliance-logos/aicpa-soc2-logo-icon.js +6 -4
- package/dist/components/icons-v2-generated/compliance-logos/eu-logo-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/compliance-logos/eu-logo-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/compliance-logos/eu-logo-icon.js +11 -15
- package/dist/components/icons-v2-generated/icon-names.d.ts +5 -0
- package/dist/components/icons-v2-generated/icon-names.d.ts.map +1 -0
- package/dist/components/icons-v2-generated/icon-names.js +10 -0
- package/dist/components/icons-v2-generated/index.cjs +15 -15
- package/dist/components/icons-v2-generated/interface/empty-vendor-icon.d.ts +1 -1
- package/dist/components/icons-v2-generated/interface/empty-vendor-icon.d.ts.map +1 -1
- package/dist/components/icons-v2-generated/interface/empty-vendor-icon.js +6 -4
- package/dist/components/index.cjs +103 -96
- package/dist/components/meeting-scheduler/index.cjs +98 -98
- package/dist/components/navigation/index.cjs +39 -39
- package/dist/components/onboarding-guides/index.cjs +39 -39
- package/dist/components/product-demo/index.cjs +8 -8
- package/dist/components/product-demo/screens/remote-desktop-picture.d.ts.map +1 -1
- package/dist/components/product-demo/screens/remote-desktop-picture.js +2 -1
- package/dist/components/related-content/index.cjs +10 -10
- package/dist/components/shared/product-release/product-release-card.js +1 -1
- package/dist/components/tickets/index.cjs +40 -40
- package/dist/components/ui/device-wallpaper.d.ts +7 -0
- package/dist/components/ui/device-wallpaper.d.ts.map +1 -0
- package/dist/components/ui/device-wallpaper.js +5 -0
- package/dist/components/ui/feature-list.d.ts +9 -4
- package/dist/components/ui/feature-list.d.ts.map +1 -1
- package/dist/components/ui/feature-list.js +26 -35
- package/dist/components/ui/index.cjs +42 -36
- package/dist/components/ui/index.d.ts +3 -1
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +3 -1
- package/dist/components/ui/notification-stack.d.ts +33 -0
- package/dist/components/ui/notification-stack.d.ts.map +1 -0
- package/dist/components/ui/notification-stack.js +78 -0
- package/dist/components/ui/numbered-step.d.ts +29 -0
- package/dist/components/ui/numbered-step.d.ts.map +1 -0
- package/dist/components/ui/numbered-step.js +57 -0
- package/dist/components/ui/phone-frame.d.ts +14 -9
- package/dist/components/ui/phone-frame.d.ts.map +1 -1
- package/dist/components/ui/phone-frame.js +50 -6
- package/dist/components/ui/phone-glyphs/lock-camera-glyph.d.ts +5 -0
- package/dist/components/ui/phone-glyphs/lock-camera-glyph.d.ts.map +1 -0
- package/dist/components/ui/phone-glyphs/lock-camera-glyph.js +14 -0
- package/dist/components/ui/phone-glyphs/lock-flashlight-glyph.d.ts +5 -0
- package/dist/components/ui/phone-glyphs/lock-flashlight-glyph.d.ts.map +1 -0
- package/dist/components/ui/phone-glyphs/lock-flashlight-glyph.js +14 -0
- package/dist/components/ui/phone-glyphs/status-bar-glyphs.d.ts +5 -0
- package/dist/components/ui/phone-glyphs/status-bar-glyphs.d.ts.map +1 -0
- package/dist/components/ui/phone-glyphs/status-bar-glyphs.js +68 -0
- package/dist/components/ui/photo-wall.d.ts.map +1 -1
- package/dist/components/ui/photo-wall.js +4 -1
- package/dist/components/ui/snap-carousel.d.ts +5 -8
- package/dist/components/ui/snap-carousel.d.ts.map +1 -1
- package/dist/components/ui/snap-carousel.js +2 -27
- package/dist/components/ui/tab-navigation.d.ts +8 -1
- package/dist/components/ui/tab-navigation.d.ts.map +1 -1
- package/dist/components/ui/tab-navigation.js +30 -20
- package/dist/{devices-X72Z4QMT.cjs → devices-A6SFNGE4.cjs} +37 -37
- package/dist/elestio-logo-grey-icon-DV7P3JLT.cjs +7 -0
- package/dist/elestio-logo-icon-34ILAIDI.cjs +7 -0
- package/dist/{embeddable-chat-TETIRLQD.cjs → embeddable-chat-BKPYNOIM.cjs} +105 -105
- package/dist/empty-vendor-icon-XZYOZ4EP.cjs +7 -0
- package/dist/eu-logo-icon-EYOX3UC7.cjs +7 -0
- package/dist/gemini-logo-icon-DNACTHIK.cjs +7 -0
- package/dist/google-gemini-icon-TZHJZ4IQ.cjs +7 -0
- package/dist/google-gemini-logo-icon-4XQVV5NN.cjs +7 -0
- package/dist/google-sheets-icon-UAAEBTR7.cjs +7 -0
- package/dist/hooks/index.cjs +9 -9
- package/dist/hooks/ui/use-autoplay.d.ts +50 -13
- package/dist/hooks/ui/use-autoplay.d.ts.map +1 -1
- package/dist/hooks/ui/use-autoplay.js +76 -13
- package/dist/hooks/ui/use-in-view.d.ts +8 -0
- package/dist/hooks/ui/use-in-view.d.ts.map +1 -1
- package/dist/hooks/ui/use-in-view.js +21 -36
- package/dist/hooks/use-agent-identities.d.ts +6 -0
- package/dist/hooks/use-agent-identities.d.ts.map +1 -1
- package/dist/hooks/use-scenario-player.d.ts +26 -9
- package/dist/hooks/use-scenario-player.d.ts.map +1 -1
- package/dist/hooks/use-scenario-player.js +12 -9
- package/dist/{chunk-SI24RMI5.cjs → icon-loaders-OLGJZGRP.cjs} +16 -950
- package/dist/index.cjs +72 -65
- package/dist/{knowledge-HWBSPQ7M.cjs → knowledge-5ZCVKUYV.cjs} +37 -37
- package/dist/{logs-IZ4QTHPI.cjs → logs-CL4OJASB.cjs} +44 -44
- package/dist/meshcentral-logo-grey-icon-UCRYV3IC.cjs +7 -0
- package/dist/meshcentral-logo-icon-76NSLOXF.cjs +7 -0
- package/dist/{policies-VHQR7JR5.cjs → policies-7D44ZVS5.cjs} +40 -40
- package/dist/{remote-session-IR3YCXSR.cjs → remote-session-QB3CIZRM.cjs} +24 -23
- package/dist/schemas/contact-schema.cjs +31 -11
- package/dist/schemas/contact-schema.d.ts +1 -1
- package/dist/schemas/contact-schema.d.ts.map +1 -1
- package/dist/schemas/contact-schema.js +1 -1
- package/dist/schemas/meeting-booking-schema.cjs +34 -14
- package/dist/schemas/meeting-booking-schema.d.ts +1 -1
- package/dist/schemas/meeting-booking-schema.d.ts.map +1 -1
- package/dist/schemas/meeting-booking-schema.js +1 -1
- package/dist/{software-update-QLOVC6EX.cjs → software-update-AX6TZL26.cjs} +40 -40
- package/dist/{tickets-board-YONLQB6F.cjs → tickets-board-7FAV2YWF.cjs} +27 -27
- package/dist/utils/index.cjs +2004 -1959
- package/dist/winget-logo-icon-GBS342G4.cjs +7 -0
- package/package.json +1 -1
- package/src/components/agent-identity.tsx +20 -1
- package/src/components/chat/entity-cards/entity-portrait-card.tsx +1 -1
- package/src/components/chat/types/entities/program-types.ts +4 -30
- package/src/components/chat/utils/icon-loading.tsx +50 -9
- package/src/components/features/video-bites-shared.ts +30 -0
- package/src/components/icons-v2-generated/brand-logos/clickup-icon.tsx +7 -5
- package/src/components/icons-v2-generated/brand-logos/clickup-logo-icon.tsx +7 -5
- package/src/components/icons-v2-generated/brand-logos/elestio-logo-grey-icon.tsx +5 -3
- package/src/components/icons-v2-generated/brand-logos/elestio-logo-icon.tsx +15 -13
- package/src/components/icons-v2-generated/brand-logos/gemini-logo-icon.tsx +29 -27
- package/src/components/icons-v2-generated/brand-logos/google-gemini-icon.tsx +29 -27
- package/src/components/icons-v2-generated/brand-logos/google-gemini-logo-icon.tsx +29 -27
- package/src/components/icons-v2-generated/brand-logos/google-sheets-icon.tsx +5 -3
- package/src/components/icons-v2-generated/brand-logos/meshcentral-logo-grey-icon.tsx +9 -7
- package/src/components/icons-v2-generated/brand-logos/meshcentral-logo-icon.tsx +9 -7
- package/src/components/icons-v2-generated/brand-logos/winget-logo-icon.tsx +15 -13
- package/src/components/icons-v2-generated/compliance-logos/aicpa-soc2-logo-icon.tsx +92 -90
- package/src/components/icons-v2-generated/compliance-logos/eu-logo-icon.tsx +51 -52
- package/src/components/icons-v2-generated/icon-names.ts +11 -0
- package/src/components/icons-v2-generated/interface/empty-vendor-icon.tsx +7 -5
- package/src/components/product-demo/screens/remote-desktop-picture.tsx +2 -1
- package/src/components/shared/product-release/product-release-card.tsx +1 -1
- package/src/components/ui/device-wallpaper.ts +7 -0
- package/src/components/ui/feature-list.tsx +24 -30
- package/src/components/ui/index.ts +3 -1
- package/src/components/ui/notification-stack.tsx +133 -0
- package/src/components/ui/numbered-step.tsx +81 -0
- package/src/components/ui/phone-frame.tsx +83 -19
- package/src/components/ui/phone-glyphs/lock-camera-glyph.tsx +14 -0
- package/src/components/ui/phone-glyphs/lock-flashlight-glyph.tsx +14 -0
- package/src/components/ui/phone-glyphs/status-bar-glyphs.tsx +45 -0
- package/src/components/ui/photo-wall.tsx +6 -0
- package/src/components/ui/snap-carousel.tsx +6 -38
- package/src/components/ui/tab-navigation.tsx +49 -21
- package/src/hooks/ui/use-autoplay.ts +144 -27
- package/src/hooks/ui/use-in-view.ts +31 -38
- package/src/hooks/use-agent-identities.ts +6 -0
- package/src/hooks/use-scenario-player.ts +44 -20
- package/src/schemas/contact-schema.ts +1 -1
- package/src/schemas/meeting-booking-schema.ts +1 -1
- package/src/styles/fonts.css +26 -0
- package/src/styles/ods-design-tokens.css +4 -2
- package/dist/aicpa-soc2-logo-icon-CJ5JRV6J.cjs +0 -7
- package/dist/chunk-73MDSN5A.cjs +0 -99
- package/dist/chunk-BE2WAMG5.cjs +0 -54
- package/dist/chunk-LCTDHLDL.cjs +0 -43
- package/dist/clickup-icon-CBBUZUVQ.cjs +0 -7
- package/dist/clickup-logo-icon-CGDKKISS.cjs +0 -7
- package/dist/components/ui/playback-toggle.d.ts +0 -24
- package/dist/components/ui/playback-toggle.d.ts.map +0 -1
- package/dist/components/ui/playback-toggle.js +0 -32
- package/dist/elestio-logo-grey-icon-Y5OFW4OO.cjs +0 -7
- package/dist/elestio-logo-icon-X7TTQAYP.cjs +0 -7
- package/dist/empty-vendor-icon-3RKCZUUR.cjs +0 -7
- package/dist/eu-logo-icon-N7QVPGG3.cjs +0 -7
- package/dist/gemini-logo-icon-QOPGATSZ.cjs +0 -7
- package/dist/google-gemini-icon-7GWWF6O6.cjs +0 -7
- package/dist/google-gemini-logo-icon-Z3GHPMVN.cjs +0 -7
- package/dist/google-sheets-icon-7MJ3LV4P.cjs +0 -7
- package/dist/meshcentral-logo-grey-icon-3VFJQMV2.cjs +0 -7
- package/dist/meshcentral-logo-icon-MDVBWMP5.cjs +0 -7
- package/dist/winget-logo-icon-XVZJ4QDM.cjs +0 -7
- package/src/components/ui/playback-toggle.tsx +0 -53
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { createContext, useContext, useEffect, useMemo, type ReactNode } from 'react';
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, type ReactNode } from 'react';
|
|
4
4
|
import {
|
|
5
5
|
AGENT_IDENTITIES_API_PATH,
|
|
6
6
|
useAgentIdentities,
|
|
7
7
|
type AgentIdentityIcon,
|
|
8
8
|
type AgentIdentityIcons,
|
|
9
9
|
} from '../hooks/use-agent-identities';
|
|
10
|
+
import { HEX_PATTERN } from '../utils/ods-color-utils';
|
|
10
11
|
|
|
11
12
|
export { AGENT_IDENTITIES_API_PATH, type AgentIdentityIcon, type AgentIdentityIcons };
|
|
12
13
|
|
|
@@ -107,3 +108,21 @@ export function useAgentIdentityIcon(slug: string | null | undefined): AgentIden
|
|
|
107
108
|
}, [unprovided, slug]);
|
|
108
109
|
return identities?.get(slug ?? '');
|
|
109
110
|
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Each agent identity's accent, as a lookup by slug: the hex colour its
|
|
114
|
+
* identity stores, or undefined when it names none (the caller then draws the platform's
|
|
115
|
+
* accent). THE way anything is drawn in an agent's colour: never a colour
|
|
116
|
+
* chosen per agent in a component. A lookup, not one value, because a row of
|
|
117
|
+
* agents (a tab per agent) needs every one of them.
|
|
118
|
+
*/
|
|
119
|
+
export function useAgentAccents(): (slug: string | null | undefined) => string | undefined {
|
|
120
|
+
const identities = useContext(AgentIdentityContext);
|
|
121
|
+
return useCallback(
|
|
122
|
+
slug => {
|
|
123
|
+
const accent = identities?.get(slug ?? '')?.accent;
|
|
124
|
+
return typeof accent === 'string' && HEX_PATTERN.test(accent) ? accent : undefined;
|
|
125
|
+
},
|
|
126
|
+
[identities],
|
|
127
|
+
);
|
|
128
|
+
}
|
|
@@ -108,7 +108,7 @@ export function EntityPortraitCard({
|
|
|
108
108
|
const edgeColor = useImageEdgeColor(isWide === false ? src : null, 'var(--color-bg-surface)');
|
|
109
109
|
|
|
110
110
|
return (
|
|
111
|
-
<Link href={href} target={target} rel={rel} className={cn('block h-full', className)}
|
|
111
|
+
<Link href={href} target={target} rel={rel} className={cn('block h-full', className)}>
|
|
112
112
|
<Card className={cn(CONTENT_CARD_FRAME_CLASS, 'flex h-full flex-col gap-6 p-6')}>
|
|
113
113
|
{/* Media zone — the real cover always wins: wide → cover-fill;
|
|
114
114
|
non-wide → contained on the edge-color fill (news-card treatment). */}
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
*/
|
|
19
19
|
|
|
20
20
|
import type { ReactNode } from 'react';
|
|
21
|
-
import { toStripProfile, type VideoBiteStripProfile } from '../../../features/video-bites-shared';
|
|
22
21
|
|
|
23
22
|
// ============================================================================
|
|
24
23
|
// HOST TYPES
|
|
@@ -36,35 +35,10 @@ export interface ProgramHost {
|
|
|
36
35
|
role?: string; // e.g., "Host", "Speaker", "Guest"
|
|
37
36
|
}
|
|
38
37
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*/
|
|
44
|
-
export interface ProgramAuthorRef {
|
|
45
|
-
id?: string | null;
|
|
46
|
-
full_name?: string | null;
|
|
47
|
-
avatar_url?: string | null;
|
|
48
|
-
job_title?: string | null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Video-bites overlay profile for a program item: internal author first
|
|
53
|
-
* (`author_id → profiles`), then the provider-synced primary host (Livestorm
|
|
54
|
-
* speakers / Podbean hosts). Host `role` is a raw provider enum (e.g.
|
|
55
|
-
* `team_member`) — never display copy, so it is not used as the subtitle.
|
|
56
|
-
* Routes through `toStripProfile` (the SSoT — null on missing names).
|
|
57
|
-
*/
|
|
58
|
-
export function programItemToStripProfile(item: {
|
|
59
|
-
author?: ProgramAuthorRef | null;
|
|
60
|
-
hosts?: ProgramHost[] | null;
|
|
61
|
-
}): VideoBiteStripProfile | null {
|
|
62
|
-
const fromAuthor = toStripProfile(item.author);
|
|
63
|
-
if (fromAuthor) return fromAuthor;
|
|
64
|
-
const host = Array.isArray(item.hosts) ? item.hosts[0] : null;
|
|
65
|
-
if (!host?.name) return null;
|
|
66
|
-
return toStripProfile({ full_name: host.name, avatar_url: host.avatar_url ?? null });
|
|
67
|
-
}
|
|
38
|
+
// The author ref and its strip-profile adapter live in the server-safe leaf
|
|
39
|
+
// (`features/video-bites-shared`): a server module that imports them from this
|
|
40
|
+
// chat tree makes the whole chat a client reference of its page.
|
|
41
|
+
export { programItemToStripProfile, type ProgramAuthorRef } from '../../../features/video-bites-shared';
|
|
68
42
|
|
|
69
43
|
// ============================================================================
|
|
70
44
|
// DATABASE ROW TYPES
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
* `<NamedIcon>`, and never calls these functions itself.
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
import dynamicIconImports from 'lucide-react/dynamicIconImports';
|
|
22
21
|
import { createElement, lazy, useEffect, useRef, useSyncExternalStore, type ComponentType, type SVGProps } from 'react';
|
|
23
|
-
import {
|
|
22
|
+
import type { LoadedIconProps } from '../../icons-v2-generated/icon-loaders';
|
|
23
|
+
import { ICON_SET_NAMES, LUCIDE_ICON_NAMES } from '../../icons-v2-generated/icon-names';
|
|
24
24
|
|
|
25
25
|
/** Every icon loaded here is a component of the generated set's own props (`icons-v2-generated`). */
|
|
26
26
|
export type IconComponent = ComponentType<LoadedIconProps>;
|
|
@@ -157,10 +157,53 @@ function loadedOnDemand(key: string, displayName: string, loader: IconLoader): I
|
|
|
157
157
|
return OnDemandIcon as IconComponent;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
// The two loader tables are NOT imported with this module. Bundled, they are the
|
|
161
|
+
// largest script a page would load (each `import()` is written out as the files it
|
|
162
|
+
// needs: about 340 KB for 3,300 icons), and a page whose icons the server drew
|
|
163
|
+
// never reads them. Whether a name exists is answered by `icon-names` (the names
|
|
164
|
+
// alone); a table is fetched the first time an icon is loaded by name.
|
|
165
|
+
type LoaderTable = Readonly<Record<string, IconLoader | undefined>>;
|
|
166
|
+
|
|
167
|
+
/** What a name draws when its table has lost it (a consumer's lucide older than the list of names): nothing. */
|
|
168
|
+
const NO_ICON: IconModule = { default: () => null };
|
|
169
|
+
|
|
170
|
+
function fromTable(table: () => Promise<LoaderTable>, name: string): IconLoader {
|
|
171
|
+
return () => table().then(loaders => loaders[name]?.() ?? NO_ICON);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* A loader table, fetched once and shared by every icon that reads it. A fetch
|
|
176
|
+
* that FAILS is forgotten, so the next icon asks again: kept, one dropped
|
|
177
|
+
* request would fail every icon of that table until the page is reloaded (an
|
|
178
|
+
* icon's own retry calls its loader again, which would get the same rejection).
|
|
179
|
+
* Exported for its test.
|
|
180
|
+
*/
|
|
181
|
+
export function sharedTable(fetchTable: () => Promise<LoaderTable>): () => Promise<LoaderTable> {
|
|
182
|
+
let table: Promise<LoaderTable> | undefined;
|
|
183
|
+
return () => {
|
|
184
|
+
if (!table) {
|
|
185
|
+
const attempt = fetchTable();
|
|
186
|
+
table = attempt;
|
|
187
|
+
attempt.catch(() => {
|
|
188
|
+
if (table === attempt) table = undefined;
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return table;
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const setLoaders = sharedTable(() =>
|
|
196
|
+
import('../../icons-v2-generated/icon-loaders').then(module => module.ICON_LOADERS as LoaderTable),
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
const lucideLoaders = sharedTable(() =>
|
|
200
|
+
import('lucide-react/dynamicIconImports').then(module => (module.default ?? module) as unknown as LoaderTable),
|
|
201
|
+
);
|
|
202
|
+
|
|
160
203
|
/** An icon of the generated set by its EXPORT name (`ChartPieIcon`), or `undefined` when the set has none by that name. */
|
|
161
204
|
export function iconFromSet(exportName: string): IconComponent | undefined {
|
|
162
|
-
if (!
|
|
163
|
-
return loadedOnDemand(`set:${exportName}`, exportName,
|
|
205
|
+
if (!ICON_SET_NAMES.has(exportName)) return undefined;
|
|
206
|
+
return loadedOnDemand(`set:${exportName}`, exportName, fromTable(setLoaders, exportName));
|
|
164
207
|
}
|
|
165
208
|
|
|
166
209
|
/** An icon the generated set is known to hold, by its export name. A name the set lost fails where it is asked for. */
|
|
@@ -170,12 +213,10 @@ export function setIcon(exportName: string): IconComponent {
|
|
|
170
213
|
return icon;
|
|
171
214
|
}
|
|
172
215
|
|
|
173
|
-
const lucideLoaders = dynamicIconImports as unknown as Readonly<Record<string, IconLoader>>;
|
|
174
|
-
|
|
175
216
|
/** A lucide icon by its kebab-case name (`message-circle`), or `undefined` when lucide has none by that name. */
|
|
176
217
|
export function lucideIcon(name: string): IconComponent | undefined {
|
|
177
|
-
if (!
|
|
178
|
-
return loadedOnDemand(`lucide:${name}`, `Lucide(${name})`, lucideLoaders
|
|
218
|
+
if (!LUCIDE_ICON_NAMES.has(name)) return undefined;
|
|
219
|
+
return loadedOnDemand(`lucide:${name}`, `Lucide(${name})`, fromTable(lucideLoaders, name));
|
|
179
220
|
}
|
|
180
221
|
|
|
181
222
|
/**
|
|
@@ -275,7 +316,7 @@ export function platformMarkRef(platform: string): IconRef {
|
|
|
275
316
|
if (platform === EVERY_PLATFORM) return EVERY_PLATFORM_MARK;
|
|
276
317
|
const stem = setStem(platform);
|
|
277
318
|
for (const exportName of [`${stem}MarkIcon`, `${stem}LogoIcon`]) {
|
|
278
|
-
if (
|
|
319
|
+
if (ICON_SET_NAMES.has(exportName)) return { set: exportName };
|
|
279
320
|
}
|
|
280
321
|
return HOUSE_MARK;
|
|
281
322
|
}
|
|
@@ -76,3 +76,33 @@ export function sortBitesByFeaturedAtDesc(a: VideoTeaser, b: VideoTeaser): numbe
|
|
|
76
76
|
if (!b.featured_at) return -1;
|
|
77
77
|
return new Date(b.featured_at).getTime() - new Date(a.featured_at).getTime();
|
|
78
78
|
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Client-safe author subset hydrated onto program items from the entity's
|
|
82
|
+
* `author_id → profiles` FK join (podcast episodes / webinars). Deliberately
|
|
83
|
+
* excludes `email` — this shape is serialized into public payloads.
|
|
84
|
+
*/
|
|
85
|
+
export interface ProgramAuthorRef {
|
|
86
|
+
id?: string | null;
|
|
87
|
+
full_name?: string | null;
|
|
88
|
+
avatar_url?: string | null;
|
|
89
|
+
job_title?: string | null;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Video-bites overlay profile for a program item: internal author first
|
|
94
|
+
* (`author_id → profiles`), then the provider-synced primary host (Livestorm
|
|
95
|
+
* speakers / Podbean hosts). Host `role` is a raw provider enum (e.g.
|
|
96
|
+
* `team_member`) — never display copy, so it is not used as the subtitle.
|
|
97
|
+
* Routes through `toStripProfile` (the SSoT — null on missing names).
|
|
98
|
+
*/
|
|
99
|
+
export function programItemToStripProfile(item: {
|
|
100
|
+
author?: ProgramAuthorRef | null;
|
|
101
|
+
hosts?: ReadonlyArray<{ name?: string | null; avatar_url?: string | null }> | null;
|
|
102
|
+
}): VideoBiteStripProfile | null {
|
|
103
|
+
const fromAuthor = toStripProfile(item.author);
|
|
104
|
+
if (fromAuthor) return fromAuthor;
|
|
105
|
+
const host = item.hosts?.[0] ?? null;
|
|
106
|
+
if (!host?.name) return null;
|
|
107
|
+
return toStripProfile({ full_name: host.name, avatar_url: host.avatar_url ?? null });
|
|
108
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { useId, type SVGProps } from "react";
|
|
2
2
|
export interface ClickupIconProps
|
|
3
3
|
extends Omit<SVGProps<SVGSVGElement>, "width" | "height"> {
|
|
4
4
|
className?: string;
|
|
@@ -11,6 +11,8 @@ export function ClickupIcon({
|
|
|
11
11
|
color = "currentColor",
|
|
12
12
|
...props
|
|
13
13
|
}: ClickupIconProps) {
|
|
14
|
+
// Per-instance ids: see scopeIds in scripts/generate-icons.mjs.
|
|
15
|
+
const uid = useId().replace(/[^a-zA-Z0-9_-]/g, '');
|
|
14
16
|
return (
|
|
15
17
|
<svg
|
|
16
18
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -23,7 +25,7 @@ export function ClickupIcon({
|
|
|
23
25
|
>
|
|
24
26
|
<defs>
|
|
25
27
|
<linearGradient
|
|
26
|
-
id=
|
|
28
|
+
id={`${uid}clickup_svg__a`}
|
|
27
29
|
x1={0}
|
|
28
30
|
x2={54.845}
|
|
29
31
|
y1={15.049}
|
|
@@ -35,7 +37,7 @@ export function ClickupIcon({
|
|
|
35
37
|
<stop offset={1} stopColor="#49CCF9" />
|
|
36
38
|
</linearGradient>
|
|
37
39
|
<linearGradient
|
|
38
|
-
id=
|
|
40
|
+
id={`${uid}clickup_svg__b`}
|
|
39
41
|
x1={1.195}
|
|
40
42
|
x2={53.745}
|
|
41
43
|
y1={53.166}
|
|
@@ -48,13 +50,13 @@ export function ClickupIcon({
|
|
|
48
50
|
</linearGradient>
|
|
49
51
|
</defs>
|
|
50
52
|
<path
|
|
51
|
-
fill=
|
|
53
|
+
fill={`url(#${uid}clickup_svg__a)`}
|
|
52
54
|
fillRule="evenodd"
|
|
53
55
|
d="m0 50.6 10.1-7.8c5.4 7 11.1 10.3 17.4 10.3s11.9-3.2 17-10.2l10.3 7.6c-7.4 10-16.6 15.3-27.3 15.3-10.6 0-19.9-5.3-27.5-15.2"
|
|
54
56
|
clipRule="evenodd"
|
|
55
57
|
/>
|
|
56
58
|
<path
|
|
57
|
-
fill=
|
|
59
|
+
fill={`url(#${uid}clickup_svg__b)`}
|
|
58
60
|
fillRule="evenodd"
|
|
59
61
|
d="m27.5 16.9-18 15.5-8.3-9.7L27.6 0l26.2 22.7-8.4 9.6z"
|
|
60
62
|
clipRule="evenodd"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { useId, type SVGProps } from "react";
|
|
2
2
|
export interface ClickupLogoIconProps
|
|
3
3
|
extends Omit<SVGProps<SVGSVGElement>, "width" | "height"> {
|
|
4
4
|
className?: string;
|
|
@@ -11,6 +11,8 @@ export function ClickupLogoIcon({
|
|
|
11
11
|
color = "currentColor",
|
|
12
12
|
...props
|
|
13
13
|
}: ClickupLogoIconProps) {
|
|
14
|
+
// Per-instance ids: see scopeIds in scripts/generate-icons.mjs.
|
|
15
|
+
const uid = useId().replace(/[^a-zA-Z0-9_-]/g, '');
|
|
14
16
|
return (
|
|
15
17
|
<svg
|
|
16
18
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -22,20 +24,20 @@ export function ClickupLogoIcon({
|
|
|
22
24
|
{...props}
|
|
23
25
|
>
|
|
24
26
|
<path
|
|
25
|
-
fill=
|
|
27
|
+
fill={`url(#${uid}clickup-logo_svg__a)`}
|
|
26
28
|
fillRule="evenodd"
|
|
27
29
|
d="m4 17.366 3.069-2.356c1.63 2.132 3.361 3.116 5.29 3.116 1.917 0 3.6-.972 5.156-3.088l3.112 2.3C18.38 20.388 15.59 22 12.358 22 9.137 22 6.318 20.4 4 17.366"
|
|
28
30
|
clipRule="evenodd"
|
|
29
31
|
/>
|
|
30
32
|
<path
|
|
31
|
-
fill=
|
|
33
|
+
fill={`url(#${uid}clickup-logo_svg__b)`}
|
|
32
34
|
fillRule="evenodd"
|
|
33
35
|
d="m12.185 7.126-5.46 4.717L4.2 8.908 12.197 2l7.934 6.913-2.536 2.925z"
|
|
34
36
|
clipRule="evenodd"
|
|
35
37
|
/>
|
|
36
38
|
<defs>
|
|
37
39
|
<linearGradient
|
|
38
|
-
id=
|
|
40
|
+
id={`${uid}clickup-logo_svg__a`}
|
|
39
41
|
x1={4}
|
|
40
42
|
x2={20.627}
|
|
41
43
|
y1={19.764}
|
|
@@ -46,7 +48,7 @@ export function ClickupLogoIcon({
|
|
|
46
48
|
<stop offset={1} stopColor="#49CCF9" />
|
|
47
49
|
</linearGradient>
|
|
48
50
|
<linearGradient
|
|
49
|
-
id=
|
|
51
|
+
id={`${uid}clickup-logo_svg__b`}
|
|
50
52
|
x1={4.2}
|
|
51
53
|
x2={20.131}
|
|
52
54
|
y1={8.694}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { useId, type SVGProps } from "react";
|
|
2
2
|
export interface ElestioLogoGreyIconProps
|
|
3
3
|
extends Omit<SVGProps<SVGSVGElement>, "width" | "height"> {
|
|
4
4
|
className?: string;
|
|
@@ -11,6 +11,8 @@ export function ElestioLogoGreyIcon({
|
|
|
11
11
|
color = "currentColor",
|
|
12
12
|
...props
|
|
13
13
|
}: ElestioLogoGreyIconProps) {
|
|
14
|
+
// Per-instance ids: see scopeIds in scripts/generate-icons.mjs.
|
|
15
|
+
const uid = useId().replace(/[^a-zA-Z0-9_-]/g, '');
|
|
14
16
|
return (
|
|
15
17
|
<svg
|
|
16
18
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -22,7 +24,7 @@ export function ElestioLogoGreyIcon({
|
|
|
22
24
|
{...props}
|
|
23
25
|
>
|
|
24
26
|
<mask
|
|
25
|
-
id=
|
|
27
|
+
id={`${uid}elestio-logo-grey_svg__a`}
|
|
26
28
|
width={20}
|
|
27
29
|
height={20}
|
|
28
30
|
x={2}
|
|
@@ -37,7 +39,7 @@ export function ElestioLogoGreyIcon({
|
|
|
37
39
|
d="M14.543 16.983a6.8 6.8 0 0 1-2.818.618c-2.268 0-4.261-1.409-4.948-3.608h14.57c.103-.722.24-1.409.24-2.13 0-5.258-4.26-9.863-9.621-9.863C6.33 2 2 6.57 2 12.138 2 17.6 6.433 22 11.897 22c2.44 0 4.845-.997 6.598-2.577zM11.93 6.433c2.303 0 4.365 1.34 5.12 3.608H6.709c.687-2.2 2.99-3.608 5.223-3.608"
|
|
38
40
|
/>
|
|
39
41
|
</mask>
|
|
40
|
-
<g fill={color} mask=
|
|
42
|
+
<g fill={color} mask={`url(#${uid}elestio-logo-grey_svg__a)`}>
|
|
41
43
|
<path d="M18.495 8.736H6.124v6.185h12.37z" />
|
|
42
44
|
<path d="M11.921 6.444c.141 0 .282 0 .388.035L7.37 2.893a8 8 0 0 0-1.481.914c-3.175 2.32-4.657 6.083-4.128 9.74l5.394-3.78C8 7.691 9.558 6.443 11.92 6.443" />
|
|
43
45
|
<path d="M6.461 12.031c0-.793.221-1.547.522-2.264-1.615 1.17-3.712 2.68-5.327 3.85.075.603.226 1.207.413 1.81 1.277 4.001 4.655 6.756 8.522 7.398a459 459 0 0 1-1.99-6.227c-1.314-1.057-2.14-2.718-2.14-4.567" />
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { useId, type SVGProps } from "react";
|
|
2
2
|
export interface ElestioLogoIconProps
|
|
3
3
|
extends Omit<SVGProps<SVGSVGElement>, "width" | "height"> {
|
|
4
4
|
className?: string;
|
|
@@ -11,6 +11,8 @@ export function ElestioLogoIcon({
|
|
|
11
11
|
color = "currentColor",
|
|
12
12
|
...props
|
|
13
13
|
}: ElestioLogoIconProps) {
|
|
14
|
+
// Per-instance ids: see scopeIds in scripts/generate-icons.mjs.
|
|
15
|
+
const uid = useId().replace(/[^a-zA-Z0-9_-]/g, '');
|
|
14
16
|
return (
|
|
15
17
|
<svg
|
|
16
18
|
xmlns="http://www.w3.org/2000/svg"
|
|
@@ -22,7 +24,7 @@ export function ElestioLogoIcon({
|
|
|
22
24
|
{...props}
|
|
23
25
|
>
|
|
24
26
|
<mask
|
|
25
|
-
id=
|
|
27
|
+
id={`${uid}elestio-logo_svg__a`}
|
|
26
28
|
width={20}
|
|
27
29
|
height={20}
|
|
28
30
|
x={2}
|
|
@@ -37,32 +39,32 @@ export function ElestioLogoIcon({
|
|
|
37
39
|
d="M14.543 16.983a6.8 6.8 0 0 1-2.818.618c-2.268 0-4.261-1.409-4.948-3.608h14.57c.103-.722.24-1.409.24-2.13 0-5.258-4.26-9.863-9.621-9.863C6.33 2 2 6.57 2 12.138 2 17.6 6.433 22 11.897 22c2.44 0 4.845-.997 6.598-2.577zM11.93 6.433c2.303 0 4.365 1.34 5.12 3.608H6.709c.687-2.2 2.99-3.608 5.223-3.608"
|
|
38
40
|
/>
|
|
39
41
|
</mask>
|
|
40
|
-
<g mask=
|
|
42
|
+
<g mask={`url(#${uid}elestio-logo_svg__a)`}>
|
|
41
43
|
<path fill="#A91A1F" d="M18.495 8.736H6.124v6.185h12.37z" />
|
|
42
44
|
<path
|
|
43
|
-
fill=
|
|
45
|
+
fill={`url(#${uid}elestio-logo_svg__b)`}
|
|
44
46
|
d="M11.921 6.444c.141 0 .282 0 .388.035L7.37 2.893a8 8 0 0 0-1.481.914c-3.175 2.32-4.657 6.083-4.128 9.74l5.394-3.78C8 7.691 9.558 6.443 11.92 6.443"
|
|
45
47
|
/>
|
|
46
48
|
<path
|
|
47
|
-
fill=
|
|
49
|
+
fill={`url(#${uid}elestio-logo_svg__c)`}
|
|
48
50
|
d="M6.461 12.031c0-.793.221-1.547.522-2.264-1.615 1.17-3.712 2.68-5.327 3.85.075.603.226 1.207.413 1.81 1.277 4.001 4.655 6.756 8.522 7.398a459 459 0 0 1-1.99-6.227c-1.314-1.057-2.14-2.718-2.14-4.567"
|
|
49
51
|
/>
|
|
50
52
|
<path
|
|
51
|
-
fill=
|
|
53
|
+
fill={`url(#${uid}elestio-logo_svg__d)`}
|
|
52
54
|
d="M14.809 16.783a5.7 5.7 0 0 1-2.975.834 5.64 5.64 0 0 1-3.648-1.321l1.877 5.703a9.5 9.5 0 0 0 1.735.139c3.967 0 7.367-2.191 9.102-5.39H14.81z"
|
|
53
55
|
/>
|
|
54
56
|
<path
|
|
55
|
-
fill=
|
|
57
|
+
fill={`url(#${uid}elestio-logo_svg__e)`}
|
|
56
58
|
d="m17.116 10.587 1.822-5.67c-.378-.412-.825-.756-1.272-1.1a9.94 9.94 0 0 0-10.275-.893l4.811 3.505c2.406.206 4.364 1.89 4.914 4.158"
|
|
57
59
|
/>
|
|
58
60
|
<path
|
|
59
|
-
fill=
|
|
61
|
+
fill={`url(#${uid}elestio-logo_svg__f)`}
|
|
60
62
|
d="m19.393 3.378-2.547 6.233c.144.454.24.945.24 1.436 0 2.153-1.442 4.042-3.605 5.1h8.316c.384-.53.672-1.134.913-1.7 1.586-4.042.144-8.273-3.317-11.069"
|
|
61
63
|
/>
|
|
62
64
|
</g>
|
|
63
65
|
<defs>
|
|
64
66
|
<linearGradient
|
|
65
|
-
id=
|
|
67
|
+
id={`${uid}elestio-logo_svg__b`}
|
|
66
68
|
x1={6.985}
|
|
67
69
|
x2={6.985}
|
|
68
70
|
y1={13.507}
|
|
@@ -73,7 +75,7 @@ export function ElestioLogoIcon({
|
|
|
73
75
|
<stop offset={1} stopColor="#F5A11A" />
|
|
74
76
|
</linearGradient>
|
|
75
77
|
<linearGradient
|
|
76
|
-
id=
|
|
78
|
+
id={`${uid}elestio-logo_svg__c`}
|
|
77
79
|
x1={6.133}
|
|
78
80
|
x2={6.133}
|
|
79
81
|
y1={22.84}
|
|
@@ -84,7 +86,7 @@ export function ElestioLogoIcon({
|
|
|
84
86
|
<stop offset={1} stopColor="#E81C24" />
|
|
85
87
|
</linearGradient>
|
|
86
88
|
<linearGradient
|
|
87
|
-
id=
|
|
89
|
+
id={`${uid}elestio-logo_svg__d`}
|
|
88
90
|
x1={14.586}
|
|
89
91
|
x2={14.586}
|
|
90
92
|
y1={22.191}
|
|
@@ -95,7 +97,7 @@ export function ElestioLogoIcon({
|
|
|
95
97
|
<stop offset={1} stopColor="#A567A5" />
|
|
96
98
|
</linearGradient>
|
|
97
99
|
<linearGradient
|
|
98
|
-
id=
|
|
100
|
+
id={`${uid}elestio-logo_svg__e`}
|
|
99
101
|
x1={13.174}
|
|
100
102
|
x2={13.174}
|
|
101
103
|
y1={10.598}
|
|
@@ -106,7 +108,7 @@ export function ElestioLogoIcon({
|
|
|
106
108
|
<stop offset={1} stopColor="#FFC605" />
|
|
107
109
|
</linearGradient>
|
|
108
110
|
<linearGradient
|
|
109
|
-
id=
|
|
111
|
+
id={`${uid}elestio-logo_svg__f`}
|
|
110
112
|
x1={18.365}
|
|
111
113
|
x2={18.365}
|
|
112
114
|
y1={16.125}
|