@luxfi/core 5.2.11 → 5.2.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. package/commerce/ui/store.ts +0 -2
  2. package/components/back-button.tsx +1 -8
  3. package/components/commerce/checkout-panel/dt-checkout-panel.tsx +85 -0
  4. package/components/commerce/checkout-panel/index.tsx +19 -16
  5. package/components/commerce/checkout-panel/links-row.tsx +21 -0
  6. package/components/commerce/checkout-panel/mb-checkout-panel.tsx +55 -0
  7. package/components/commerce/desktop-nav-menu.tsx +71 -71
  8. package/components/commerce/drawer/micro.tsx +4 -4
  9. package/components/commerce/mobile-nav-menu-ai.tsx +1 -0
  10. package/components/copyright.tsx +3 -3
  11. package/components/icons/ai-chat-act.tsx +47 -0
  12. package/components/icons/blog-act.tsx +14 -0
  13. package/components/icons/bridge-act.tsx +18 -0
  14. package/components/icons/changelog-act.tsx +15 -0
  15. package/components/icons/coins-act.tsx +29 -0
  16. package/components/icons/compare-cards-act.tsx +30 -0
  17. package/components/icons/credit-act.tsx +29 -0
  18. package/components/icons/customer-support-act.tsx +27 -0
  19. package/components/icons/customers-act.tsx +65 -0
  20. package/components/icons/developer-docs-act.tsx +26 -0
  21. package/components/icons/exchange-act.tsx +27 -0
  22. package/components/icons/explorer-act.tsx +27 -0
  23. package/components/icons/faqs-act.tsx +27 -0
  24. package/components/icons/guides-act.tsx +26 -0
  25. package/components/icons/integrations-act.tsx +41 -0
  26. package/components/icons/launchsubnet-act.tsx +29 -0
  27. package/components/icons/lux-finance-act.tsx +34 -0
  28. package/components/icons/lux-pass-act.tsx +41 -0
  29. package/components/icons/lux-quests-act.tsx +15 -0
  30. package/components/icons/market-act.tsx +39 -0
  31. package/components/icons/more-benefits-act.tsx +29 -0
  32. package/components/icons/open-source-act.tsx +41 -0
  33. package/components/icons/safe-act.tsx +77 -0
  34. package/components/icons/shop-act.tsx +29 -0
  35. package/components/icons/templates-act.tsx +29 -0
  36. package/components/icons/validators-act.tsx +42 -0
  37. package/components/icons/view-all-card-act.tsx +28 -0
  38. package/components/icons/wallet-act.tsx +29 -0
  39. package/package.json +1 -1
  40. package/site-def/main-nav.tsx +96 -30
  41. package/style/lux-global.css +17 -0
  42. package/components/commerce/checkout-panel/cart-accordian.tsx +0 -66
  43. package/components/commerce/checkout-panel/checkout-panel-props.ts +0 -10
  44. package/components/commerce/checkout-panel/desktop-cp.tsx +0 -83
  45. package/components/commerce/checkout-panel/mobile-cp.tsx +0 -67
  46. package/components/commerce/checkout-panel/policy-links.tsx +0 -29
  47. /package/components/commerce/checkout-panel/{desktop-bag-carousel.tsx → dt-bag-carousel.tsx} +0 -0
@@ -138,7 +138,6 @@ class CommerceUIStore implements
138
138
  }
139
139
  }
140
140
  ))
141
- /*
142
141
  this._reactionDisposers.push(autorun(() => {
143
142
  log('AUTORUN: OPEN: ' + this.open)
144
143
  log('AUTORUN:' + // ===============
@@ -149,7 +148,6 @@ class CommerceUIStore implements
149
148
  '], [checkingOut: ' + this._checkingOut + ']'
150
149
  ) // ===========
151
150
  }))
152
- */
153
151
  }
154
152
 
155
153
  reset = () => {
@@ -15,7 +15,6 @@ import type { VariantProps } from '@hanzo/ui/util'
15
15
  const BackButton: React.FC<{
16
16
  variant?: VariantProps<typeof buttonVariants>['variant']
17
17
  size?: VariantProps<typeof buttonVariants>['size']
18
- onBack?: () => void
19
18
  clx?: string
20
19
  iconClx?: string
21
20
  }> = ({
@@ -23,16 +22,10 @@ const BackButton: React.FC<{
23
22
  size='default',
24
23
  clx='',
25
24
  iconClx='',
26
- onBack
27
25
  }) => {
28
26
 
29
27
  const router = useRouter()
30
- const back = () => {
31
- if (onBack) {
32
- onBack()
33
- }
34
- router.back()
35
- }
28
+ const back = () => {router.back()}
36
29
 
37
30
  return (
38
31
  <Button
@@ -0,0 +1,85 @@
1
+ 'use client'
2
+ import React, { type PropsWithChildren } from 'react'
3
+ import { observer } from 'mobx-react-lite'
4
+
5
+ import { ScrollArea, StepIndicator } from '@hanzo/ui/primitives'
6
+ import { AuthWidget } from '@hanzo/auth/components'
7
+ import { CartPanel, useCommerce } from '@hanzo/commerce'
8
+ import { cn } from '@hanzo/ui/util'
9
+
10
+ import { BackButton, Logo, Tooltip } from '../..'
11
+ import DesktopBagCarousel from './dt-bag-carousel'
12
+ import LinksRow from './links-row'
13
+
14
+ const DesktopCheckoutPanel: React.FC<PropsWithChildren & {
15
+ index: number
16
+ stepNames: string[]
17
+ close: () => void
18
+ className?: string
19
+ }> = observer(({
20
+ index,
21
+ stepNames,
22
+ close,
23
+ className='',
24
+ children
25
+ }) => {
26
+
27
+ const cmmc = useCommerce()
28
+
29
+ return (
30
+ <div /* id='CHECKOUT_PANEL' */ className={cn('grid grid-cols-2', className)}>
31
+ <div key={1} className='w-full h-full bg-background flex flex-row items-start justify-end'>
32
+ <div className='w-full h-full max-w-[750px] relative flex flex-col items-stretch justify-start px-8 pb-8'>
33
+ <div key={1} className='h-[80px] grow-0 flex flex-row items-center z-10' >
34
+ <Logo onClick={close} size='md' href='/' variant='text-only' outerClx='logo-outer-tooltip-class' />
35
+ <Tooltip select='.logo-outer-tooltip-class' text='home' position='right' offset={6}/>
36
+ </div>
37
+ <BackButton size='sm' clx={
38
+ 'z-10 absolute top-14 left-6 !px-0 aspect-square ' +
39
+ 'rounded-full hover:!bg-level-3 ' +
40
+ //'border border-transparent hover:border-muted-2 ' +
41
+ 'back-button-tooltip-class '
42
+ }/>
43
+ <Tooltip select='.back-button-tooltip-class' text='back' position='right' offset={5}/>
44
+ <div key={2} className={cn(
45
+ 'w-full grow min-h-0 max-w-[550px] mx-auto flex flex-col gap-3',
46
+ (cmmc.cartItems.length > 4 ? 'justify-between' : 'justify-start gap-10 pt-10')
47
+ )}>
48
+ <DesktopBagCarousel className='grow-0 h-[260px] w-[360px] lg:w-[420px] mx-auto -mt-8' constrainTo={{w: 250, h: 250}}/>
49
+ <CartPanel
50
+ className='w-full border-none p-0'
51
+ itemClx='mb-2'
52
+ totalClx='sticky bottom-0 bg-background'
53
+ listClx='pr-3'
54
+ scrollAfter={5}
55
+ scrollHeightClx='min-h-[50vh] grow'
56
+ showPromoCode
57
+ showShipping
58
+ selectItems
59
+ />
60
+ </div>
61
+ </div>
62
+ </div>
63
+ <div key={2} className='w-full h-full flex flex-col bg-level-1 min-h-screen justify-between'>
64
+ <ScrollArea className='w-full flex flex-row items-start justify-start overflow-y-auto'>
65
+ <div className='h-full w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
66
+ <div key={1} className='bg-level-1 sticky h-30 pb-8 w-full top-0 flex justify-center items-end'>
67
+ <AuthWidget noLogin className='hidden md:flex absolute top-4 right-4 '/>
68
+ <StepIndicator dotSizeRem={1.5} steps={stepNames} currentStep={index} className='gap-2 text-base w-pr-70' />
69
+ </div>
70
+ <div key={2} className='w-full max-w-[550px] mx-auto pb-10'>
71
+ {children}
72
+ </div>
73
+ </div>
74
+ </ScrollArea>
75
+ <div className='w-full max-w-[750px] relative flex flex-col items-center px-8 pt-0'>
76
+ <div className='w-full max-w-[550px] mx-auto flex flex-col items-center'>
77
+ <LinksRow className='w-full' />
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ )
83
+ })
84
+
85
+ export default DesktopCheckoutPanel
@@ -26,13 +26,15 @@ const STEPS = [
26
26
 
27
27
  const STEP_NAMES = STEPS.map((s) => (s.label ? s.label : capitalize(s.name)))
28
28
 
29
- import DesktopCP from './desktop-cp'
30
- import MobileCP from './mobile-cp'
29
+ import DesktopCP from './dt-checkout-panel'
30
+ import MobileCP from './mb-checkout-panel'
31
31
 
32
32
  const CheckoutPanel: React.FC<{
33
- clx?: string
33
+ close: () => void
34
+ className?: string
34
35
  }> = ({
35
- clx=''
36
+ close,
37
+ className=''
36
38
  }) => {
37
39
 
38
40
  const cmmc = useCommerce()
@@ -76,15 +78,16 @@ const CheckoutPanel: React.FC<{
76
78
 
77
79
  const _close = () => {
78
80
  setStep('first')
81
+ close()
79
82
  }
80
83
 
81
- // Determine if mobile or desktop layout based on visibility of desktopElement
82
- // This prevents issues with multiple instances of 3rd party e-commerce widgets
83
- // from ever being in the DOM.
84
- // https://stackoverflow.com/a/21696585/11378853
84
+ // Determine if mobile or desktop based on visibility of desktopElement
85
+ // https://stackoverflow.com/a/21696585/11378853
85
86
  const desktopElement = useRef<HTMLDivElement | null>(null)
86
- const [layout, setLayout] = useState<'mobile' | 'desktop' | undefined>(undefined)
87
+ const [layout, setLayout] = useState<'mobile' | 'desktop' | undefined>()
87
88
 
89
+ // TODO :aa I assume it's becase we don't want two instance of the Square plugin....
90
+ // ... wondering if there is a simpler way.
88
91
  useLayoutEffect(() => {
89
92
  const checkLayout = () => {
90
93
  setLayout(!!desktopElement.current?.offsetParent ? 'desktop' : 'mobile')
@@ -103,19 +106,19 @@ const CheckoutPanel: React.FC<{
103
106
 
104
107
  return (<>
105
108
  <DesktopCP
106
- clx={cn('h-full', clx, 'hidden md:flex')}
107
- onLeave={_close}
108
- step={stepIndex}
109
+ className={cn('h-full', className, 'hidden md:flex')}
110
+ close={_close}
111
+ index={stepIndex}
109
112
  stepNames={STEP_NAMES}
110
113
  >
111
- {/* Element required to determine if DesktopCP is visible. See above. */}
114
+ {/* Element required to determine if DesktopCP is visible */}
112
115
  <div ref={desktopElement}/>
113
116
  {layout === 'desktop' && <StepToRender onDone={() => {setStep('next')}} orderId={orderId} setOrderId={setOrderId}/>}
114
117
  </DesktopCP>
115
118
  <MobileCP
116
- clx={cn('w-full h-full overflow-y-auto', clx, 'md:hidden' )}
117
- onLeave={_close}
118
- step={stepIndex}
119
+ className={cn('h-full overflow-y-auto', className, 'md:hidden' )}
120
+ close={_close}
121
+ index={stepIndex}
119
122
  stepNames={STEP_NAMES}
120
123
  >
121
124
  {layout === 'mobile' && <StepToRender onDone={() => {setStep('next')}} orderId={orderId} setOrderId={setOrderId}/>}
@@ -0,0 +1,21 @@
1
+ import Link from 'next/link'
2
+
3
+ import { Separator } from '@hanzo/ui/primitives'
4
+ import { cn } from '@hanzo/ui/util'
5
+
6
+ const LinksRow: React.FC<{
7
+ className?: string
8
+ }> = ({
9
+ className=''
10
+ }) => (
11
+ <div className={cn('flex flex-col', className)}>
12
+ <Separator/>
13
+ <div className='flex gap-4 text-sm py-2'>
14
+ {/* TODO: add Refund policy and Privacy policy links */}
15
+ <Link href=''>Refund policy</Link>
16
+ <Link href=''>Privacy policy</Link>
17
+ </div>
18
+ </div>
19
+ )
20
+
21
+ export default LinksRow
@@ -0,0 +1,55 @@
1
+ 'use client'
2
+ import React, { type PropsWithChildren } from 'react'
3
+
4
+ import { StepIndicator } from '@hanzo/ui/primitives'
5
+ import { cn } from '@hanzo/ui/util'
6
+ import { AuthWidget } from '@hanzo/auth/components'
7
+ import { CartAccordian } from '@hanzo/commerce'
8
+
9
+ import { Logo } from '../..'
10
+ import BagButton from '../bag-button'
11
+ import LinksRow from './links-row'
12
+
13
+ const MobileCheckoutPanel: React.FC<PropsWithChildren & {
14
+ index: number
15
+ stepNames: string[]
16
+ close:() => void
17
+ className?: string
18
+ }> = ({
19
+ index,
20
+ stepNames,
21
+ close,
22
+ className='',
23
+ children
24
+ }) => (
25
+
26
+ <div /* id='MOBILE_GRID' */ className={cn('bg-background flex flex-col justify-start px-4', className)}>
27
+ <div className='sticky top-0 w-full flex flex-row justify-between items-center bg-background'>
28
+ <Logo onClick={close} size='xs' href='/' />
29
+ {/* Need wrapper div since 'noLogin' returns null if no logged in user */}
30
+ <div className='w-10 h-10 flex items-center justify-center'><AuthWidget noLogin className=''/></div>
31
+ </div>
32
+ <CartAccordian
33
+ icon={
34
+ <BagButton
35
+ animateOnHover={false}
36
+ showIfEmpty
37
+ size='sm'
38
+ className='mr-1 relative w-5 h-6 sm:w-6 sm:h-7'
39
+ iconClx='fill-foreground'
40
+ />
41
+ }
42
+ className='flex items-center justify-center w-full'
43
+ />
44
+ <StepIndicator
45
+ dotSizeRem={1}
46
+ steps={stepNames}
47
+ currentStep={index}
48
+ className='text-xs font-semibold w-full pb-3'
49
+ />
50
+ {children}
51
+ <LinksRow className='mt-auto mb-3 pt-2' />
52
+ </div>
53
+ )
54
+
55
+ export default MobileCheckoutPanel
@@ -1,7 +1,6 @@
1
1
  "use client"
2
2
 
3
3
  import * as React from "react"
4
-
5
4
  import Link from "next/link"
6
5
  import { cn } from '@hanzo/ui/util'
7
6
  import type { LinkDef } from '@hanzo/ui/types'
@@ -17,64 +16,57 @@ import {
17
16
  } from '@hanzo/ui/primitives'
18
17
  import Warpcast from "../icons/warpcast"
19
18
 
20
- const DesktopNav: React.FC<{
21
- links: LinkDefExtended[],
22
- }> = ({
23
- links
24
-
25
- }) => (
26
- links.length > 0 ? (
27
- <NavigationMenu>
28
- <NavigationMenuList>
29
- {links.map((el, index) => {
30
-
31
- if (el.isAIMenu) {
32
- return (
33
- <NavigationMenuItem key={index}>
34
- <Link href={el.href} legacyBehavior passHref>
35
- <NavigationMenuLink className={navigationMenuTriggerStyle()}>
36
- {el.title}
37
- </NavigationMenuLink>
38
- </Link>
39
- </NavigationMenuItem>
40
- )
41
- } else if (el.title == "Credit") {
42
- return (
43
- <NavigationMenuItem key={index}>
44
- <NavigationMenuTrigger>{el.title}</NavigationMenuTrigger>
45
- <NavigationMenuContent className="!left-0">
46
- <div className="grid grid-cols-3 w-[846px]">
47
- {GroupChildMenu(el.childMenu)}
48
- </div>
49
- </NavigationMenuContent>
50
- </NavigationMenuItem>
51
- )
52
- } else {
53
- return (
54
- <NavigationMenuItem key={index}>
55
- <NavigationMenuTrigger className=" !rounded-2xl">{el.title}</NavigationMenuTrigger>
56
- <NavigationMenuContent className="!left-0">
57
- <div className="flex flex-row">
58
- {GroupChildMenu(el.childMenu)}
59
- </div>
60
- </NavigationMenuContent>
61
- </NavigationMenuItem>
62
- )
63
- }
64
-
65
- })}
66
- </NavigationMenuList>
67
- </NavigationMenu>
68
- ) : null
69
- )
19
+ const DesktopNav: React.FC<{ links: LinkDefExtended[] }> = ({ links }) => (
20
+ links.length > 0 ? (
21
+ <NavigationMenu>
22
+ <NavigationMenuList>
23
+ {links.map((el, index) => {
24
+ if (el.isAIMenu) {
25
+ return (
26
+ <NavigationMenuItem key={index}>
27
+ <Link href={el.href} legacyBehavior passHref >
28
+ <NavigationMenuLink className={cn('!rounded-2xl ', navigationMenuTriggerStyle())}>
29
+ {el.title}
30
+ </NavigationMenuLink>
31
+ </Link>
32
+ </NavigationMenuItem>
33
+ )
34
+ } else if (el.title === "Cards") {
35
+ return (
36
+ <NavigationMenuItem key={index}>
37
+ <NavigationMenuTrigger className="!rounded-2xl">{el.title}</NavigationMenuTrigger>
38
+ <NavigationMenuContent className="!left-0">
39
+ <div className="grid grid-cols-3 w-[846px]">
40
+ <GroupChildMenu childs={el.childMenu} />
41
+ </div>
42
+ </NavigationMenuContent>
43
+ </NavigationMenuItem>
44
+ )
45
+ } else {
46
+ return (
47
+ <NavigationMenuItem key={index}>
48
+ <NavigationMenuTrigger className="!rounded-2xl">{el.title}</NavigationMenuTrigger>
49
+ <NavigationMenuContent className="!left-0">
50
+ <div className="flex flex-row">
51
+ <GroupChildMenu childs={el.childMenu} />
52
+ </div>
53
+ </NavigationMenuContent>
54
+ </NavigationMenuItem>
55
+ )
56
+ }
57
+ })}
58
+ </NavigationMenuList>
59
+ </NavigationMenu>
60
+ ) : null
61
+ )
70
62
  export default DesktopNav
71
63
 
72
64
  const ListItem = React.forwardRef<
73
65
  React.ElementRef<"a">,
74
66
  React.ComponentPropsWithoutRef<"a">
75
- >(({ className, title, children, key, ...props }, ref) => {
67
+ >(({ className, title, children, ...props }, ref) => {
76
68
  return (
77
- <li key={key}>
69
+ <li>
78
70
  <NavigationMenuLink asChild>
79
71
  <a
80
72
  ref={ref}
@@ -95,11 +87,11 @@ const ListItem = React.forwardRef<
95
87
  })
96
88
  ListItem.displayName = "ListItem"
97
89
 
98
- const GroupChildMenu = (childs: ChildMenu[] | undefined) => {
99
- // Initialize groupedChildMenus with the type specification
90
+ const GroupChildMenu: React.FC<{ childs: ChildMenu[] | undefined }> = ({ childs }) => {
100
91
  if (!childs) {
101
92
  return null
102
93
  }
94
+
103
95
  let groupedChildMenus = childs.reduce((grouped: Record<string, ChildMenu[]>, childLink) => {
104
96
  if (childLink.groupName) {
105
97
  if (!grouped[childLink.groupName]) {
@@ -108,24 +100,32 @@ const GroupChildMenu = (childs: ChildMenu[] | undefined) => {
108
100
  grouped[childLink.groupName].push(childLink)
109
101
  }
110
102
  return grouped
111
- }, {} as Record<string, ChildMenu[]>) // added explicit type here
103
+ }, {} as Record<string, ChildMenu[]>)
112
104
 
113
- // Convert groups object to array
114
- return Object.entries(groupedChildMenus).map(([groupName, childLinks]: [string, ChildMenu[]]) => { // added type specification here
115
- return (
116
- <div key={groupName} className={` py-4 px-4 ${groupName === "Elite Card" || groupName === "Sovereign Card" ? " -mt-34" : ""}` }>
117
- <h2 className="text-muted-1">{groupName}</h2>
118
- <ul className=" w-[200px] gap-3 md:w-[250px] lg:w-[250px]">
119
- {childLinks.map((link) => (
120
- <div className={"flex items-center"} key={link.title}>
121
- {link.icon}
122
- <ListItem key={link.title} title={link.title} href={link.href} className="text-muted-1 hover:text-primary hover:bg-transparent">
105
+ return Object.entries(groupedChildMenus).map(([groupName, childLinks]: [string, ChildMenu[]]) => (
106
+ <div key={groupName} className={`py-4 px-4 ${groupName === "Elite Card" || groupName === "Sovereign Card" ? "-mt-34" : ""}`}>
107
+ <h2 className="text-muted-1">{groupName}</h2>
108
+ <ul className="w-[200px] gap-3 md:w-[250px] lg:w-[250px]">
109
+ {childLinks.map((link) => (
110
+ <div className="flex items-center element-container text-muted-1 hover:text-primary" key={link.title}>
111
+ {
112
+ link.icon_act ? (
113
+ <>
114
+ <div className="icon-container-nor">{link.icon}</div>
115
+ <div className="icon-container-hov">{link.icon_act}</div>
116
+ </>
117
+ ):(
118
+ <div>{link.icon}</div>
119
+ )
120
+ }
121
+ <div className="text-container">
122
+ <ListItem key={link.title} title={link.title} href={link.href} className="hover:bg-transparent">
123
123
  {link.contents}
124
124
  </ListItem>
125
125
  </div>
126
- ))}
127
- </ul>
128
- </div>
129
- )
130
- })
126
+ </div>
127
+ ))}
128
+ </ul>
129
+ </div>
130
+ ))
131
131
  }
@@ -68,6 +68,7 @@ const Micro: React.FC<{
68
68
 
69
69
  const drawer = useCommerceDrawer()
70
70
  const recent = useRecentActivity()
71
+ const mobile = drawer.isMobile
71
72
 
72
73
  return (
73
74
  <div className={cn(
@@ -90,7 +91,7 @@ const Micro: React.FC<{
90
91
  <Button
91
92
  variant='ghost'
92
93
  rounded={drawer.isMobile ? 'md' : 'lg'}
93
- size={drawer.isMobile ? 'sm' : 'lg'}
94
+ size={drawer.isMobile ? 'default' : 'lg'}
94
95
  onClick={handleItemClicked}
95
96
  className={cn(
96
97
  'box-content',
@@ -125,14 +126,13 @@ const Micro: React.FC<{
125
126
  <CheckoutButton
126
127
  handleCheckout={handleCheckout}
127
128
  variant='primary'
128
- size={drawer.isMobile ? 'xs' : 'lg'}
129
+ size={drawer.isMobile ? 'default' : 'lg'}
129
130
  rounded={drawer.isMobile ? 'md' : 'lg'}
130
131
  centerText={drawer.isMobile ? !drawer.showAdded : true}
131
132
  className={cn(drawer.isMobile ?
132
133
  (drawer.showAdded ? 'pl-3.5 pr-2.5' : 'min-w-[320px]')
133
134
  :
134
- (drawer.showAdded ? '' : 'w-[320px]'),
135
- 'text-sm font-semibold'
135
+ (drawer.showAdded ? '' : 'w-[320px]')
136
136
  )}
137
137
  />
138
138
  </div>
@@ -1,6 +1,7 @@
1
1
  'use client'
2
2
  import React, { useState } from 'react'
3
3
  import { ArrowRight, Plus } from 'lucide-react'
4
+ import { Search } from '../icons'
4
5
  import { Button, Card } from '@hanzo/ui/primitives'
5
6
  import { Logo } from '..'
6
7
 
@@ -5,7 +5,7 @@ const FIRST = 2020
5
5
  const Copyright: React.FC<{
6
6
  className?: string
7
7
  }> = ({
8
- className=''
8
+ className=''
9
9
  }) => {
10
10
 
11
11
  const year = new Date().getFullYear()
@@ -13,8 +13,8 @@ const Copyright: React.FC<{
13
13
 
14
14
  return (
15
15
  <div className={className}>
16
- {`Copyright © ${yearString}`}&nbsp;<br className='sm:hidden'/>Lux Partners Ltd.&nbsp;<br className='md:hidden'/>&nbsp;All rights reserved.
17
- </div>
16
+ {`Copyright © ${yearString}`}&nbsp;<br className='sm:hidden'/>Lux Partners Ltd (Isle of Man) and Lux Industries Inc (Delaware, USA).&nbsp;<br className='md:hidden'/>&nbsp;All rights reserved.
17
+ </div>
18
18
  )
19
19
  }
20
20
 
@@ -0,0 +1,47 @@
1
+ import React from 'react'
2
+ import { type LucideProps } from 'lucide-react'
3
+
4
+ const AIChatAct: React.FC<LucideProps> = (props: LucideProps) => (
5
+ <svg
6
+ width={13}
7
+ height={13}
8
+ viewBox="0 0 13 13"
9
+ fill="none"
10
+ xmlns="http://www.w3.org/2000/svg"
11
+ {...props}
12
+ >
13
+ <mask id="path-1-inside-1_1372_16" fill="white">
14
+ <path d="M6.74887 6.85454C6.89131 5.94716 7.03374 5.05404 7.17618 4.14669C7.17618 3.8248 6.90578 3.6344 6.53522 3.6344C6.2075 3.6344 5.80857 3.79564 5.46695 4.14669C5.66613 4.08837 5.85141 4.05864 6.02222 4.04435C6.19303 4.02948 6.33547 4.19072 6.30709 4.38112C6.16466 5.2885 6.02222 6.18162 5.87979 7.08896C5.87979 7.41086 6.15019 7.60126 6.52075 7.60126C6.84846 7.60126 7.2474 7.44002 7.58901 7.08896C7.38983 7.14728 7.20455 7.17702 7.03374 7.19131C6.86293 7.20618 6.7205 7.04494 6.74887 6.85454Z" />
15
+ </mask>
16
+ <path
17
+ d="M6.74887 6.85454C6.89131 5.94716 7.03374 5.05404 7.17618 4.14669C7.17618 3.8248 6.90578 3.6344 6.53522 3.6344C6.2075 3.6344 5.80857 3.79564 5.46695 4.14669C5.66613 4.08837 5.85141 4.05864 6.02222 4.04435C6.19303 4.02948 6.33547 4.19072 6.30709 4.38112C6.16466 5.2885 6.02222 6.18162 5.87979 7.08896C5.87979 7.41086 6.15019 7.60126 6.52075 7.60126C6.84846 7.60126 7.2474 7.44002 7.58901 7.08896C7.38983 7.14728 7.20455 7.17702 7.03374 7.19131C6.86293 7.20618 6.7205 7.04494 6.74887 6.85454Z"
18
+ fill="#949494"
19
+ />
20
+ <path
21
+ d="M6.74887 6.85454L5.43163 6.64777L5.4301 6.65802L6.74887 6.85454ZM7.17618 4.14669L8.49338 4.35347L8.50951 4.25071V4.14669H7.17618ZM5.46695 4.14669L4.51139 3.21682L0.974529 6.85137L5.84161 5.42631L5.46695 4.14669ZM6.02222 4.04435L6.13342 5.37305L6.13782 5.37266L6.02222 4.04435ZM6.30709 4.38112L7.62434 4.58789L7.62586 4.57764L6.30709 4.38112ZM5.87979 7.08896L4.56258 6.88219L4.54645 6.98495V7.08896H5.87979ZM7.58901 7.08896L8.54458 8.01884L12.0814 4.38429L7.21435 5.80935L7.58901 7.08896ZM7.03374 7.19131L6.92255 5.86261L6.91814 5.863L7.03374 7.19131ZM8.06607 7.06131C8.13715 6.60855 8.20824 6.15922 8.27948 5.70897C8.35067 5.25898 8.42202 4.80807 8.49338 4.35347L5.85898 3.93992C5.7879 4.39267 5.71681 4.84199 5.64557 5.29224C5.57437 5.74223 5.50303 6.19315 5.43167 6.64777L8.06607 7.06131ZM8.50951 4.14669C8.50951 3.56965 8.24801 3.05257 7.8088 2.71393C7.40403 2.40183 6.93302 2.30107 6.53522 2.30107V4.96773C6.50798 4.96773 6.35745 4.96217 6.18051 4.82574C6.08782 4.75428 5.99743 4.65256 5.93242 4.52078C5.8671 4.38839 5.84284 4.25697 5.84284 4.14669H8.50951ZM6.53522 2.30107C5.79023 2.30107 5.06098 2.65204 4.51139 3.21682L6.42251 5.07657C6.48392 5.01347 6.53512 4.98325 6.56257 4.97065C6.59312 4.95663 6.58586 4.96773 6.53522 4.96773V2.30107ZM5.84161 5.42631C5.94219 5.39686 6.03768 5.38105 6.13342 5.37304L5.91103 2.71566C5.66515 2.73624 5.39008 2.77989 5.09228 2.86708L5.84161 5.42631ZM6.13782 5.37266C5.32183 5.44368 4.90934 4.71458 4.98832 4.18459L7.62586 4.57764C7.76159 3.66686 7.06423 2.61529 5.90662 2.71604L6.13782 5.37266ZM4.98989 4.17435C4.91882 4.62711 4.84773 5.07644 4.77649 5.52669C4.70529 5.97668 4.63395 6.42759 4.56258 6.88219L7.19699 7.29574C7.26806 6.84299 7.33915 6.39367 7.41039 5.94342C7.48159 5.49343 7.55293 5.04251 7.6243 4.58789L4.98989 4.17435ZM4.54645 7.08896C4.54645 7.66601 4.80795 8.18309 5.24716 8.52173C5.65194 8.83383 6.12295 8.93459 6.52075 8.93459V6.26793C6.54799 6.26793 6.69852 6.27349 6.87545 6.40991C6.96814 6.48138 7.05853 6.5831 7.12355 6.71487C7.18887 6.84727 7.21312 6.97868 7.21312 7.08896H4.54645ZM6.52075 8.93459C7.26574 8.93459 7.99498 8.58362 8.54458 8.01884L6.63345 6.15909C6.57204 6.22219 6.52085 6.2524 6.4934 6.26501C6.46284 6.27903 6.4701 6.26793 6.52075 6.26793V8.93459ZM7.21435 5.80935C7.11378 5.8388 7.01829 5.85461 6.92255 5.86262L7.14494 8.52C7.39081 8.49942 7.66589 8.45577 7.96368 8.36858L7.21435 5.80935ZM6.91814 5.863C7.73414 5.79198 8.14662 6.52108 8.06764 7.05106L5.4301 6.65802C5.29437 7.5688 5.99173 8.62037 7.14934 8.51962L6.91814 5.863Z"
22
+ fill="white"
23
+ mask="url(#path-1-inside-1_1372_16)"
24
+ />
25
+ <path
26
+ d="M6.87622 2.78449L6.72255 2.78479C6.72296 2.72663 6.77628 2.64597 6.87622 2.64597C6.97721 2.64597 7.02978 2.72825 7.02989 2.7842L6.87622 2.78449ZM6.87622 2.92497C6.77589 2.92497 6.72255 2.84368 6.72255 2.78547H6.87622H7.02989C7.02989 2.84368 6.97654 2.92497 6.87622 2.92497Z"
27
+ fill="#949494"
28
+ stroke="white"
29
+ strokeWidth="1.33333"
30
+ />
31
+ <mask id="path-4-inside-2_1372_16" fill="white">
32
+ <path d="M10.8647 0.429223H2.40426C1.59249 0.429223 0.937027 1.10276 0.937027 1.93698V7.90903C0.937027 8.74322 1.59246 9.41679 2.40426 9.41679H2.7036L2.20507 11.9051C2.19061 11.9783 2.21954 12.0663 2.29076 12.1098C2.31913 12.1246 2.34751 12.1389 2.39035 12.1389C2.43319 12.1389 2.46157 12.1241 2.50441 12.0949L5.95121 9.41618H10.8652C11.677 9.41618 12.3325 8.74264 12.3325 7.90842L12.3319 1.93696C12.3319 1.10277 11.6764 0.429223 10.8647 0.429223ZM11.9613 7.90903C11.9613 8.53854 11.4628 9.03596 10.8647 9.03596H5.8794C5.83656 9.03596 5.79372 9.05083 5.76534 9.07999L2.66067 11.4951L3.10245 9.27041C3.11692 9.21209 3.10245 9.1532 3.05961 9.10917C3.03123 9.06515 2.97393 9.03599 2.91717 9.03599H2.39028C1.77769 9.03599 1.29363 8.52369 1.29363 7.90905L1.29308 1.93701C1.29308 1.3075 1.7916 0.810075 2.38972 0.810075H10.8501C11.4627 0.810075 11.9468 1.32237 11.9468 1.93701L11.9473 7.90905L11.9613 7.90903Z" />
33
+ </mask>
34
+ <path
35
+ d="M10.8647 0.429223H2.40426C1.59249 0.429223 0.937027 1.10276 0.937027 1.93698V7.90903C0.937027 8.74322 1.59246 9.41679 2.40426 9.41679H2.7036L2.20507 11.9051C2.19061 11.9783 2.21954 12.0663 2.29076 12.1098C2.31913 12.1246 2.34751 12.1389 2.39035 12.1389C2.43319 12.1389 2.46157 12.1241 2.50441 12.0949L5.95121 9.41618H10.8652C11.677 9.41618 12.3325 8.74264 12.3325 7.90842L12.3319 1.93696C12.3319 1.10277 11.6764 0.429223 10.8647 0.429223ZM11.9613 7.90903C11.9613 8.53854 11.4628 9.03596 10.8647 9.03596H5.8794C5.83656 9.03596 5.79372 9.05083 5.76534 9.07999L2.66067 11.4951L3.10245 9.27041C3.11692 9.21209 3.10245 9.1532 3.05961 9.10917C3.03123 9.06515 2.97393 9.03599 2.91717 9.03599H2.39028C1.77769 9.03599 1.29363 8.52369 1.29363 7.90905L1.29308 1.93701C1.29308 1.3075 1.7916 0.810075 2.38972 0.810075H10.8501C11.4627 0.810075 11.9468 1.32237 11.9468 1.93701L11.9473 7.90905L11.9613 7.90903Z"
36
+ fill="#949494"
37
+ />
38
+ <path
39
+ d="M2.7036 9.41679L4.01095 9.67871L4.33056 8.08345H2.7036V9.41679ZM2.20507 11.9051L0.897717 11.6432L0.897049 11.6465L2.20507 11.9051ZM2.29076 12.1098L1.59642 13.248L1.63352 13.2707L1.67203 13.2908L2.29076 12.1098ZM2.50441 12.0949L3.25464 13.1971L3.2894 13.1735L3.32259 13.1477L2.50441 12.0949ZM5.95121 9.41618V8.08284H5.49402L5.13303 8.36339L5.95121 9.41618ZM12.3325 7.90842H13.6658V7.90829L12.3325 7.90842ZM12.3319 1.93696H10.9986V1.93708L12.3319 1.93696ZM11.9613 7.90903H13.2946V6.57319L11.9588 6.5757L11.9613 7.90903ZM5.76534 9.07999L6.58401 10.1324L6.65669 10.0759L6.72091 10.0099L5.76534 9.07999ZM2.66067 11.4951L1.35288 11.2354L0.656214 14.7436L3.47934 12.5475L2.66067 11.4951ZM3.10245 9.27041L1.80833 8.94942L1.80077 8.9799L1.79465 9.01071L3.10245 9.27041ZM3.05961 9.10917L1.9389 9.83152L2.01107 9.9435L2.10398 10.039L3.05961 9.10917ZM1.29363 7.90905H2.62697V7.90893L1.29363 7.90905ZM1.29308 1.93701H-0.0402551V1.93713L1.29308 1.93701ZM11.9468 1.93701H10.6134V1.93713L11.9468 1.93701ZM11.9473 7.90905L10.614 7.90918L10.6141 9.24489L11.9498 9.24238L11.9473 7.90905ZM10.8647 -0.904111H2.40426V1.76256H10.8647V-0.904111ZM2.40426 -0.904111C0.82211 -0.904111 -0.396306 0.400843 -0.396306 1.93698H2.27036C2.27036 1.87465 2.29344 1.82928 2.32179 1.80015C2.34946 1.77172 2.37698 1.76256 2.40426 1.76256V-0.904111ZM-0.396306 1.93698V7.90903H2.27036V1.93698H-0.396306ZM-0.396306 7.90903C-0.396306 9.4451 0.822049 10.7501 2.40426 10.7501V8.08345C2.37698 8.08345 2.34945 8.07429 2.32179 8.04586C2.29344 8.01673 2.27036 7.97135 2.27036 7.90903H-0.396306ZM2.40426 10.7501H2.7036V8.08345H2.40426V10.7501ZM1.39625 9.15486L0.897721 11.6432L3.51243 12.167L4.01095 9.67871L1.39625 9.15486ZM0.897049 11.6465C0.791861 12.1787 0.974909 12.8689 1.59642 13.248L2.9851 10.9715C3.46417 11.2637 3.58936 11.7778 3.5131 12.1636L0.897049 11.6465ZM1.67203 13.2908C1.72751 13.3199 2.00215 13.4723 2.39035 13.4723V10.8056C2.52693 10.8056 2.65379 10.83 2.76384 10.8674C2.85738 10.8991 2.92639 10.9375 2.90949 10.9287L1.67203 13.2908ZM2.39035 13.4723C2.84776 13.4723 3.15545 13.2646 3.25464 13.1971L1.75418 10.9927C1.75429 10.9926 1.77203 10.9804 1.79927 10.9644C1.82789 10.9476 1.87536 10.9215 1.93793 10.8957C2.08309 10.8357 2.23851 10.8056 2.39035 10.8056V13.4723ZM3.32259 13.1477L6.7694 10.469L5.13303 8.36339L1.68623 11.0421L3.32259 13.1477ZM5.95121 10.7495H10.8652V8.08284H5.95121V10.7495ZM10.8652 10.7495C12.4474 10.7495 13.6658 9.44456 13.6658 7.90842H10.9991C10.9991 7.97075 10.9761 8.01612 10.9477 8.04525C10.92 8.07368 10.8925 8.08284 10.8652 8.08284V10.7495ZM13.6658 7.90829L13.6653 1.93683L10.9986 1.93708L10.9991 7.90854L13.6658 7.90829ZM13.6653 1.93696C13.6653 0.400812 12.4468 -0.904111 10.8647 -0.904111V1.76256C10.892 1.76256 10.9195 1.77173 10.9472 1.80017C10.9755 1.8293 10.9986 1.87466 10.9986 1.93696H13.6653ZM10.628 7.90903C10.628 7.82505 10.7037 7.70263 10.8647 7.70263V10.3693C12.2218 10.3693 13.2946 9.25202 13.2946 7.90903H10.628ZM10.8647 7.70263H5.8794V10.3693H10.8647V7.70263ZM5.8794 7.70263C5.55841 7.70263 5.14098 7.80976 4.80978 8.15011L6.72091 10.0099C6.44646 10.2919 6.11472 10.3693 5.8794 10.3693V7.70263ZM4.94668 8.02758L1.84201 10.4427L3.47934 12.5475L6.58401 10.1324L4.94668 8.02758ZM3.96847 11.7548L4.41025 9.53012L1.79465 9.01071L1.35288 11.2354L3.96847 11.7548ZM4.39657 9.59141C4.51727 9.1048 4.39305 8.56766 4.01524 8.17936L2.10398 10.039C1.81185 9.73874 1.71657 9.31938 1.80833 8.94942L4.39657 9.59141ZM4.18032 8.38683C3.87901 7.91935 3.37394 7.70265 2.91717 7.70265V10.3693C2.72266 10.3693 2.54376 10.321 2.39102 10.2427C2.24029 10.1655 2.07051 10.0357 1.9389 9.83152L4.18032 8.38683ZM2.91717 7.70265H2.39028V10.3693H2.91717V7.70265ZM2.39028 7.70265C2.46734 7.70265 2.53352 7.73756 2.57202 7.77749C2.60825 7.81506 2.62697 7.86283 2.62697 7.90905H-0.0396987C-0.0396987 9.21396 0.996029 10.3693 2.39028 10.3693V7.70265ZM2.62697 7.90893L2.62641 1.93688L-0.0402551 1.93713L-0.0396987 7.90918L2.62697 7.90893ZM2.62641 1.93701C2.62641 2.02098 2.55067 2.14341 2.38972 2.14341V-0.523259C1.03253 -0.523259 -0.0402551 0.594017 -0.0402551 1.93701H2.62641ZM2.38972 2.14341H10.8501V-0.523259H2.38972V2.14341ZM10.8501 2.14341C10.773 2.14341 10.7069 2.1085 10.6684 2.06857C10.6321 2.03101 10.6134 1.98323 10.6134 1.93701H13.2801C13.2801 0.632101 12.2444 -0.523259 10.8501 -0.523259V2.14341ZM10.6134 1.93713L10.614 7.90918L13.2806 7.90893L13.2801 1.93688L10.6134 1.93713ZM11.9498 9.24238L11.9638 9.24236L11.9588 6.5757L11.9448 6.57572L11.9498 9.24238Z"
40
+ fill="white"
41
+ mask="url(#path-4-inside-2_1372_16)"
42
+ />
43
+ </svg>
44
+
45
+ )
46
+
47
+ export default AIChatAct
@@ -0,0 +1,14 @@
1
+ import React from 'react'
2
+ import { type LucideProps } from 'lucide-react'
3
+
4
+ const BlogAct: React.FC<LucideProps> = (props: LucideProps) => (
5
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
6
+ <mask id="path-1-inside-1_1372_75" fill="white">
7
+ <path d="M2.56691 9.74913H0.461799C0.34627 9.74913 0.240985 9.70208 0.165055 9.62615C0.0891218 9.55022 0.0420777 9.44494 0.0420777 9.3294V5.03476C0.0420777 4.936 0.122203 4.85587 0.220962 4.85587C0.31972 4.85587 0.399846 4.936 0.399846 5.03476V9.3294C0.399846 9.34618 0.406833 9.36201 0.418013 9.37319C0.429193 9.38437 0.445032 9.39136 0.461803 9.39136H2.38337V2.60403H0.461803C0.445033 2.60403 0.429193 2.61101 0.418013 2.62219C0.406833 2.63291 0.399846 2.64875 0.399846 2.66598V3.50171C0.399846 3.60046 0.31972 3.68059 0.220962 3.68059C0.122203 3.68059 0.0420777 3.60046 0.0420777 3.50171V2.66598C0.0420777 2.55092 0.0891278 2.4461 0.165055 2.3697C0.240981 2.29331 0.346264 2.24579 0.461799 2.24579H2.38337V0.564992C2.38337 0.466234 2.4635 0.386108 2.56225 0.386108H7.77732C7.83136 0.386108 7.8798 0.410332 7.91288 0.448065L8.85808 1.39326C8.89255 1.4282 8.90978 1.47339 8.90978 1.51904V2.24577H10.8318C10.9469 2.24577 11.0522 2.29328 11.1281 2.36922C11.2045 2.44469 11.2516 2.54996 11.2516 2.6655V9.32845C11.2516 9.44398 11.2045 9.54926 11.1286 9.62519C11.0527 9.70113 10.9474 9.74817 10.8318 9.74817H6.73707V10.1819H7.59889C7.67994 10.1819 7.74889 10.2359 7.77032 10.31L8.06985 11.0879C8.10526 11.1797 8.0596 11.2831 7.96783 11.3185C7.94687 11.3269 7.92497 11.3306 7.90355 11.3306L2.94047 11.3311C2.84171 11.3311 2.76159 11.251 2.76159 11.1522C2.76159 11.1243 2.76811 11.0982 2.77929 11.0744L3.07882 10.2965C3.10584 10.2257 3.17339 10.1823 3.24513 10.1819H4.10694V9.7477H2.56592L2.56691 9.74913ZM9.61469 3.03168L10.4802 3.69736C10.558 3.75746 10.5725 3.86972 10.5124 3.94753L8.91029 6.03081V9.39192H10.8319C10.8486 9.39192 10.8645 9.38493 10.8757 9.37375C10.8868 9.36257 10.8938 9.34673 10.8938 9.32996V2.66701C10.8938 2.65024 10.8868 2.6344 10.8757 2.62322C10.8649 2.61158 10.8491 2.60459 10.8319 2.60459H8.90981V3.65507L9.36448 3.06438C9.42457 2.98658 9.53684 2.97214 9.61464 3.03224L9.61469 3.03168ZM8.55258 6.4957L7.25519 8.18294C7.23423 8.20996 7.20721 8.22906 7.1774 8.2407L6.20145 8.61524C6.10922 8.65018 6.0058 8.60406 5.97086 8.51182C5.95921 8.48154 5.95642 8.44986 5.96154 8.41958L6.07148 7.3896C6.07521 7.35373 6.08965 7.32159 6.11108 7.2955L8.55308 4.11984V1.80556L7.77792 1.81254C7.67916 1.81254 7.59904 1.73242 7.59904 1.63366V0.744368H2.74174V9.39138H8.55308V6.49573L8.55258 6.4957ZM10.121 3.87064L9.53826 3.4225L6.42032 7.47673L6.34578 8.17643L7.00355 7.9244L10.121 3.87064ZM3.48229 4.97608C3.38353 4.97608 3.30341 4.89596 3.30341 4.7972C3.30341 4.69844 3.38353 4.61832 3.48229 4.61832H6.80929C6.90805 4.61832 6.98818 4.69844 6.98818 4.7972C6.98818 4.89596 6.90805 4.97608 6.80929 4.97608H3.48229ZM3.48229 2.78798C3.38353 2.78798 3.30341 2.70785 3.30341 2.60909C3.30341 2.51033 3.38353 2.43021 3.48229 2.43021H7.81092C7.90968 2.43021 7.98981 2.51033 7.98981 2.60909C7.98981 2.70785 7.90968 2.78798 7.81092 2.78798H3.48229ZM3.48229 3.88178C3.38353 3.88178 3.30341 3.80165 3.30341 3.7029C3.30341 3.60414 3.38353 3.52401 3.48229 3.52401H7.81092C7.90968 3.52401 7.98981 3.60414 7.98981 3.7029C7.98981 3.80165 7.90968 3.88178 7.81092 3.88178H3.48229ZM7.9563 0.996382V1.45337L8.40956 1.44964L7.9563 0.996382ZM7.47695 10.5401H3.36822L3.20099 10.9738H7.64375L7.47652 10.5401H7.47695ZM6.37942 9.74861H4.46572V10.1823H6.37942V9.74861ZM0.399333 4.28049C0.399333 4.37925 0.319207 4.45937 0.220449 4.45937C0.121691 4.45937 0.0415649 4.37925 0.0415649 4.28049V4.25533C0.0415649 4.15657 0.121691 4.07645 0.220449 4.07645C0.319207 4.07645 0.399333 4.15657 0.399333 4.25533V4.28049Z"/>
8
+ </mask>
9
+ <path d="M2.56691 9.74913H0.461799C0.34627 9.74913 0.240985 9.70208 0.165055 9.62615C0.0891218 9.55022 0.0420777 9.44494 0.0420777 9.3294V5.03476C0.0420777 4.936 0.122203 4.85587 0.220962 4.85587C0.31972 4.85587 0.399846 4.936 0.399846 5.03476V9.3294C0.399846 9.34618 0.406833 9.36201 0.418013 9.37319C0.429193 9.38437 0.445032 9.39136 0.461803 9.39136H2.38337V2.60403H0.461803C0.445033 2.60403 0.429193 2.61101 0.418013 2.62219C0.406833 2.63291 0.399846 2.64875 0.399846 2.66598V3.50171C0.399846 3.60046 0.31972 3.68059 0.220962 3.68059C0.122203 3.68059 0.0420777 3.60046 0.0420777 3.50171V2.66598C0.0420777 2.55092 0.0891278 2.4461 0.165055 2.3697C0.240981 2.29331 0.346264 2.24579 0.461799 2.24579H2.38337V0.564992C2.38337 0.466234 2.4635 0.386108 2.56225 0.386108H7.77732C7.83136 0.386108 7.8798 0.410332 7.91288 0.448065L8.85808 1.39326C8.89255 1.4282 8.90978 1.47339 8.90978 1.51904V2.24577H10.8318C10.9469 2.24577 11.0522 2.29328 11.1281 2.36922C11.2045 2.44469 11.2516 2.54996 11.2516 2.6655V9.32845C11.2516 9.44398 11.2045 9.54926 11.1286 9.62519C11.0527 9.70113 10.9474 9.74817 10.8318 9.74817H6.73707V10.1819H7.59889C7.67994 10.1819 7.74889 10.2359 7.77032 10.31L8.06985 11.0879C8.10526 11.1797 8.0596 11.2831 7.96783 11.3185C7.94687 11.3269 7.92497 11.3306 7.90355 11.3306L2.94047 11.3311C2.84171 11.3311 2.76159 11.251 2.76159 11.1522C2.76159 11.1243 2.76811 11.0982 2.77929 11.0744L3.07882 10.2965C3.10584 10.2257 3.17339 10.1823 3.24513 10.1819H4.10694V9.7477H2.56592L2.56691 9.74913ZM9.61469 3.03168L10.4802 3.69736C10.558 3.75746 10.5725 3.86972 10.5124 3.94753L8.91029 6.03081V9.39192H10.8319C10.8486 9.39192 10.8645 9.38493 10.8757 9.37375C10.8868 9.36257 10.8938 9.34673 10.8938 9.32996V2.66701C10.8938 2.65024 10.8868 2.6344 10.8757 2.62322C10.8649 2.61158 10.8491 2.60459 10.8319 2.60459H8.90981V3.65507L9.36448 3.06438C9.42457 2.98658 9.53684 2.97214 9.61464 3.03224L9.61469 3.03168ZM8.55258 6.4957L7.25519 8.18294C7.23423 8.20996 7.20721 8.22906 7.1774 8.2407L6.20145 8.61524C6.10922 8.65018 6.0058 8.60406 5.97086 8.51182C5.95921 8.48154 5.95642 8.44986 5.96154 8.41958L6.07148 7.3896C6.07521 7.35373 6.08965 7.32159 6.11108 7.2955L8.55308 4.11984V1.80556L7.77792 1.81254C7.67916 1.81254 7.59904 1.73242 7.59904 1.63366V0.744368H2.74174V9.39138H8.55308V6.49573L8.55258 6.4957ZM10.121 3.87064L9.53826 3.4225L6.42032 7.47673L6.34578 8.17643L7.00355 7.9244L10.121 3.87064ZM3.48229 4.97608C3.38353 4.97608 3.30341 4.89596 3.30341 4.7972C3.30341 4.69844 3.38353 4.61832 3.48229 4.61832H6.80929C6.90805 4.61832 6.98818 4.69844 6.98818 4.7972C6.98818 4.89596 6.90805 4.97608 6.80929 4.97608H3.48229ZM3.48229 2.78798C3.38353 2.78798 3.30341 2.70785 3.30341 2.60909C3.30341 2.51033 3.38353 2.43021 3.48229 2.43021H7.81092C7.90968 2.43021 7.98981 2.51033 7.98981 2.60909C7.98981 2.70785 7.90968 2.78798 7.81092 2.78798H3.48229ZM3.48229 3.88178C3.38353 3.88178 3.30341 3.80165 3.30341 3.7029C3.30341 3.60414 3.38353 3.52401 3.48229 3.52401H7.81092C7.90968 3.52401 7.98981 3.60414 7.98981 3.7029C7.98981 3.80165 7.90968 3.88178 7.81092 3.88178H3.48229ZM7.9563 0.996382V1.45337L8.40956 1.44964L7.9563 0.996382ZM7.47695 10.5401H3.36822L3.20099 10.9738H7.64375L7.47652 10.5401H7.47695ZM6.37942 9.74861H4.46572V10.1823H6.37942V9.74861ZM0.399333 4.28049C0.399333 4.37925 0.319207 4.45937 0.220449 4.45937C0.121691 4.45937 0.0415649 4.37925 0.0415649 4.28049V4.25533C0.0415649 4.15657 0.121691 4.07645 0.220449 4.07645C0.319207 4.07645 0.399333 4.15657 0.399333 4.25533V4.28049Z" fill="#949494" stroke="white" stroke-width="2.66667" mask="url(#path-1-inside-1_1372_75)"/>
10
+ </svg>
11
+
12
+ )
13
+
14
+ export default BlogAct
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import { type LucideProps } from 'lucide-react'
3
+
4
+ const BridgeAct: React.FC<LucideProps> = (props: LucideProps) => (
5
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
6
+ <circle cx="14.8468" cy="8.04857" r="0.324812" stroke="white" stroke-width="0.5"/>
7
+ <circle cx="14.4936" cy="8.04852" r="1.15655" stroke="white" stroke-width="0.5"/>
8
+ <circle cx="13.4998" cy="8.04871" r="2.15027" stroke="white" stroke-width="0.5"/>
9
+ <circle cx="12.4576" cy="7.92913" r="3.19256" stroke="white" stroke-width="0.5"/>
10
+ <circle cx="11.3852" cy="7.92914" r="4.26496" stroke="white" stroke-width="0.5"/>
11
+ <circle cx="10.0415" cy="7.92917" r="5.60862" stroke="white" stroke-width="0.5"/>
12
+ <circle cx="8.4001" cy="7.9292" r="7.25" stroke="white" stroke-width="0.5"/>
13
+ </svg>
14
+
15
+
16
+ )
17
+
18
+ export default BridgeAct