mirror of
https://github.com/simstudioai/sim.git
synced 2026-01-09 15:07:55 -05:00
feat(tools): added apify block/tools (#2136)
* feat(tools): added apify * cleanup
This commit is contained in:
@@ -1,47 +1,5 @@
|
||||
import type { SVGProps } from 'react'
|
||||
|
||||
export function UsersIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='24'
|
||||
height='24'
|
||||
viewBox='0 0 24 24'
|
||||
fill='none'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
>
|
||||
<path d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' />
|
||||
<circle cx='9' cy='7' r='4' />
|
||||
<path d='M22 21v-2a4 4 0 0 0-3-3.87' />
|
||||
<path d='M16 3.13a4 4 0 0 1 0 7.75' />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function SettingsIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='24'
|
||||
height='24'
|
||||
viewBox='0 0 24 24'
|
||||
fill='none'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
>
|
||||
<path d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z' />
|
||||
<circle cx='12' cy='12' r='3' />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function SearchIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -62,33 +20,6 @@ export function SearchIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function Spinner() {
|
||||
return (
|
||||
<div className='absolute top-0 right-0 bottom-0 flex items-center justify-center'>
|
||||
<svg
|
||||
className='-ml-1 mr-3 h-5 w-5 animate-spin text-gray-700'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
fill='none'
|
||||
viewBox='0 0 24 24'
|
||||
>
|
||||
<circle
|
||||
className='opacity-25'
|
||||
cx='12'
|
||||
cy='12'
|
||||
r='10'
|
||||
stroke='currentColor'
|
||||
strokeWidth='4'
|
||||
/>
|
||||
<path
|
||||
className='opacity-75'
|
||||
fill='currentColor'
|
||||
d='M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z'
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export function AgentIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -192,55 +123,6 @@ export function NoteIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function AirplaneIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M18.0925 7.76479L23.0009 2.85494C23.5535 2.31133 24.2985 2.00809 25.0736 2.01126C25.8488 2.01443 26.5913 2.32375 27.1394 2.87187C27.6875 3.41998 27.9968 4.16247 28 4.93761C28.0031 5.71275 27.6999 6.45774 27.1563 7.01032L22.2464 11.9187L24.903 25.1364C25.2426 26.8275 21.9632 29.1834 21.0902 26.9431L17.2022 16.9644L12.1536 22.013C12.3993 24.963 12.4528 25.9444 10.3845 28.0112L7.24083 22.7704L2 19.6268C4.06685 17.5585 5.04824 17.6105 7.9982 17.8577L13.0468 12.8105L3.06811 8.92107C0.827823 8.04808 3.18374 4.76714 4.8748 5.10824L18.0925 7.76479Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function WorkIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M9.66689 7.20002V6.16002C9.66689 3.85901 9.66689 2 13.9338 2H16.0658C20.3327 2 20.3327 3.85901 20.3327 6.16002V7.20002M9.66689 28.0001H20.3327C25.6916 28.0001 26.6522 25.9056 26.9324 23.3591L27.932 12.959C28.2931 9.78703 27.3585 7.20002 21.6659 7.20002H8.33366C2.64109 7.20002 1.70797 9.78703 2.06764 12.959L3.0672 23.3591C3.34742 25.9056 4.30798 28.0001 9.66689 28.0001Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M11.8385 16.9227C8.45374 16.5494 5.20151 15.3969 2.33691 13.5557M18.2259 16.9227C21.6106 16.5494 24.8629 15.3969 27.7275 13.5557M17.8879 17.1668C17.8879 17.933 17.5835 18.6678 17.0417 19.2095C16.4999 19.7513 15.7651 20.0557 14.999 20.0557C14.2328 20.0557 13.498 19.7513 12.9562 19.2095C12.4144 18.6678 12.1101 17.933 12.1101 17.1668C12.1101 16.4006 12.4144 15.6658 12.9562 15.124C13.498 14.5823 14.2328 14.2779 14.999 14.2779C15.7651 14.2779 16.4999 14.5823 17.0417 15.124C17.5835 15.6658 17.8879 16.4006 17.8879 17.1668Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function WorkflowIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -308,104 +190,6 @@ export function WorkflowIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function WarnIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 9.3152V16.4654M15 20.6853V20.0353M2.91879 12.7837C2.62752 13.0747 2.39645 13.4202 2.2388 13.8005C2.08115 14.1809 2 14.5885 2 15.0002C2 15.412 2.08115 15.8196 2.2388 16.2C2.39645 16.5803 2.62752 16.9258 2.91879 17.2168L12.7834 27.0814C13.0744 27.3727 13.4199 27.6038 13.8003 27.7614C14.1806 27.9191 14.5883 28.0002 15 28.0002C15.4117 28.0002 15.8194 27.9191 16.1997 27.7614C16.58 27.6038 16.9256 27.3727 17.2166 27.0814L27.0812 17.2168C27.3725 16.9258 27.6035 16.5803 27.7612 16.2C27.9189 15.8196 28 15.412 28 15.0002C28 14.5885 27.9189 14.1809 27.7612 13.8005C27.6035 13.4202 27.3725 13.0747 27.0812 12.7837L17.2166 2.91904C16.9256 2.62776 16.58 2.3967 16.1997 2.23904C15.8194 2.08139 15.4117 2.00024 15 2.00024C14.5883 2.00024 14.1806 2.08139 13.8003 2.23904C13.4199 2.3967 13.0744 2.62776 12.7834 2.91904L2.91879 12.7837Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function UploadIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='25'
|
||||
viewBox='0 0 30 25'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15.1605 23.1773L15.1552 12.5569M25.5937 19.1946C31.5611 14.9996 26.2243 8.93265 20.6738 8.93265C16.9262 -5.67304 -5.05936 6.40766 4.68352 17.4183'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M19.3792 15.6341L15.1549 11.4098L10.9307 15.6341'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function TrashIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='29'
|
||||
height='35'
|
||||
viewBox='0 0 29 35'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M24.9 12.4L23.444 26.9565C23.2239 29.1631 23.1147 30.2655 22.612 31.0992C22.1711 31.8331 21.5227 32.42 20.7487 32.7857C19.8699 33.2 18.764 33.2 16.5453 33.2H12.4547C10.2377 33.2 9.13013 33.2 8.25133 32.784C7.47662 32.4185 6.8276 31.8316 6.38627 31.0975C5.88707 30.2655 5.77613 29.1631 5.55427 26.9565L4.1 12.4M17.1 23.6667V15M11.9 23.6667V15M1.5 8.06667H9.49933M9.49933 8.06667L10.1684 3.4352C10.3625 2.5928 11.0628 2 11.8671 2H17.1329C17.9372 2 18.6357 2.5928 18.8316 3.4352L19.5007 8.06667M9.49933 8.06667H19.5007M19.5007 8.06667H27.5'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function StudentIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='27'
|
||||
viewBox='0 0 30 27'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M28 9.1498V15.6498M17.8821 2.6498C16.9814 2.22228 15.997 2.00049 15 2.00049C14.003 2.00049 13.0186 2.22228 12.1179 2.6498L3.4196 6.7279C1.5268 7.6145 1.5268 10.6851 3.4196 11.5717L12.1166 15.6498C13.0174 16.0775 14.0021 16.2994 14.9993 16.2994C15.9966 16.2994 16.9813 16.0775 17.8821 15.6498L26.5804 11.5717C28.4732 10.6851 28.4732 7.6145 26.5804 6.7279L17.8821 2.6498Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M5.90039 13.0498V19.7123C5.90039 23.5057 12.0026 25.3998 15.0004 25.3998C17.9982 25.3998 24.1004 23.5057 24.1004 19.7123V13.0498'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function SignalIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -427,174 +211,6 @@ export function SignalIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function SectionIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M4.88889 22.2222V7.77778M4.88889 22.2222C4.31752 22.2222 3.75898 22.3917 3.28391 22.7091C2.80883 23.0265 2.43856 23.4777 2.2199 24.0056C2.00125 24.5335 1.94404 25.1143 2.05551 25.6747C2.16698 26.2351 2.44212 26.7498 2.84614 27.1539C3.25016 27.5579 3.76491 27.833 4.3253 27.9445C4.88569 28.056 5.46654 27.9987 5.99442 27.7801C6.5223 27.5614 6.97348 27.1912 7.29091 26.7161C7.60835 26.241 7.77778 25.6825 7.77778 25.1111M4.88889 22.2222C5.65507 22.2222 6.38987 22.5266 6.93164 23.0684C7.47341 23.6101 7.77778 24.3449 7.77778 25.1111M4.88889 7.77778C5.65507 7.77778 6.38987 7.47341 6.93164 6.93164C7.47341 6.38987 7.77778 5.65507 7.77778 4.88889M4.88889 7.77778C4.31752 7.77778 3.75898 7.60835 3.28391 7.29091C2.80883 6.97348 2.43856 6.5223 2.2199 5.99442C2.00125 5.46654 1.94404 4.88569 2.05551 4.3253C2.16698 3.76491 2.44212 3.25016 2.84614 2.84614C3.25016 2.44212 3.76491 2.16698 4.3253 2.05551C4.88569 1.94404 5.46654 2.00125 5.99442 2.2199C6.5223 2.43856 6.97348 2.80883 7.29091 3.28391C7.60835 3.75898 7.77778 4.31752 7.77778 4.88889M7.77778 25.1111H22.2222M7.77778 4.88889H22.2222M22.2222 4.88889C22.2222 5.65507 22.5266 6.38987 23.0684 6.93164C23.6101 7.47341 24.3449 7.77778 25.1111 7.77778M22.2222 4.88889C22.2222 4.31752 22.3917 3.75898 22.7091 3.28391C23.0265 2.80883 23.4777 2.43856 24.0056 2.2199C24.5335 2.00125 25.1143 1.94404 25.6747 2.05551C26.2351 2.16698 26.7498 2.44212 27.1539 2.84614C27.5579 3.25016 27.833 3.76491 27.9445 4.3253C28 4.88569 27.9987 5.46654 27.7801 5.99442C27.5614 6.5223 27.1912 6.97348 26.7161 7.29091C26.241 7.60835 25.6825 7.77778 25.1111 7.77778M25.1111 7.77778V22.2222M25.1111 22.2222C24.3449 22.2222 23.6101 22.5266 23.0684 23.0684C22.5266 23.6101 22.2222 24.3449 22.2222 25.1111M25.1111 22.2222C25.6825 22.2222 26.241 22.3917 26.7161 22.7091C27.1912 23.0265 27.5614 23.4777 27.7801 24.0056C27.9987 24.5335 28 25.1143 27.9445 25.6747C27.833 26.2351 27.5579 26.7498 27.1539 27.1539C26.7498 27.5579 26.2351 27.833 25.6747 27.9445C25.1143 28.056 24.5335 27.9987 24.0056 27.7801C23.4777 27.5614 23.0265 27.1912 22.7091 26.7161C22.3917 26.241 22.2222 25.6825 22.2222 25.1111'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ReminderIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M2 5.22256L6.55 2M28 5.22256L23.45 2M26.5556 16.4444C26.5556 19.5092 25.3381 22.4484 23.171 24.6155C21.0039 26.7825 18.0647 28 15 28C11.9353 28 8.99608 26.7825 6.82899 24.6155C4.6619 22.4484 3.44444 19.5092 3.44444 16.4444C3.44444 13.3797 4.6619 10.4405 6.82899 8.27343C8.99608 6.10635 11.9353 4.88889 15 4.88889C18.0647 4.88889 21.0039 6.10635 23.171 8.27343C25.3381 10.4405 26.5556 13.3797 26.5556 16.4444Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M15 9.94446V17.1667L19.3333 20.0556'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function DatabaseIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='33'
|
||||
viewBox='0 0 30 33'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M28 16.2188C28 23.8026 2 23.8026 2 16.2188M15 2C7.82075 2 2 4.09625 2 6.68C2 13.44 28 13.44 28 6.68C28 4.09625 22.1793 2 15 2Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M2 6.875V26.6431C2 32.7856 28 32.7856 28 26.6431V6.875'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CrateIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 28L26.7448 21.9218C27.2012 21.6849 27.4294 21.5679 27.5956 21.3931C27.7427 21.2398 27.8541 21.0558 27.922 20.8544C28 20.6247 28 20.369 28 19.8548V8.5477M15 28L3.25522 21.9218C2.79878 21.6849 2.57056 21.5679 2.40444 21.3931C2.25732 21.2398 2.14585 21.0558 2.078 20.8544C2 20.6247 2 20.3676 2 19.8519V8.5477M15 28V14.909M28 8.5477L15 14.909M28 8.5477L16.0544 2.36548C15.6688 2.16614 15.4767 2.06503 15.273 2.02603C15.0927 1.99132 14.9073 1.99132 14.727 2.02603C14.5248 2.06503 14.3312 2.16614 13.9441 2.36548L2 8.5477M2 8.5477L15 14.909'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CookieIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M19.3368 21.2951L19.8483 20.7836M12.1124 22.74L12.6239 22.2285M9.22264 9.73606L9.73269 9.22457M7.77776 16.9605L8.28781 16.449M15.0022 15.5156L15.5137 15.0041M15.0065 28.008C18.3701 28.0079 21.6029 26.7048 24.0264 24.3724C26.4499 22.0399 27.8758 18.8594 28.0047 15.4982C28.0133 15.2772 27.7735 15.137 27.5741 15.2367C23.9966 17.0385 21.7859 15.1255 22.1457 12.5579C22.1518 12.5083 22.1467 12.458 22.1306 12.4106C22.1146 12.3633 22.0881 12.3201 22.0531 12.2845C22.0181 12.2488 21.9755 12.2214 21.9285 12.2045C21.8815 12.1875 21.8313 12.1814 21.7815 12.1866C18.6447 12.6244 17.3226 10.7215 17.8168 8.13513C17.8241 8.09108 17.8223 8.04599 17.8115 8.00267C17.8006 7.95935 17.7809 7.91873 17.7537 7.88335C17.7264 7.84796 17.6922 7.81857 17.6531 7.79701C17.614 7.77545 17.5708 7.76218 17.5264 7.75802C14.5745 7.49505 14.3303 4.08802 14.8375 2.42641C14.8996 2.22123 14.7522 1.99294 14.5384 2.00017C11.1323 2.12457 7.91116 3.58078 5.56769 6.05559C3.22422 8.53041 1.94565 11.8261 2.00699 15.2339C2.06833 18.6416 3.46468 21.8892 5.89569 24.2781C8.32671 26.6669 11.5982 28.0063 15.0065 28.008Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ErrorIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 8.68344V16.6279M15 21.3166V20.5943M28 15C28 16.7072 27.6637 18.3977 27.0104 19.9749C26.3571 21.5521 25.3995 22.9852 24.1924 24.1924C22.9852 25.3995 21.5521 26.3571 19.9749 27.0104C18.3977 27.6637 16.7072 28 15 28C13.2928 28 11.6023 27.6637 10.0251 27.0104C8.44788 26.3571 7.01477 25.3995 5.80761 24.1924C4.60045 22.9852 3.64288 21.5521 2.98957 19.9749C2.33625 18.3977 2 16.7072 2 15C2 11.5522 3.36964 8.24558 5.80761 5.80761C8.24558 3.36964 11.5522 2 15 2C18.4478 2 21.7544 3.36964 24.1924 5.80761C26.6304 8.24558 28 11.5522 28 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ChromeIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M13.5442 27.9221L19.4982 17.6001M4.53516 7.27808L10.5022 17.6001M26.9212 9.80008H15.0002M15.0002 9.80008C16.3793 9.80008 17.7019 10.3479 18.6771 11.3231C19.6523 12.2983 20.2002 13.621 20.2002 15.0001C20.2002 16.3792 19.6523 17.7018 18.6771 18.677C17.7019 19.6522 16.3793 20.2001 15.0002 20.2001C13.621 20.2001 12.2984 19.6522 11.3232 18.677C10.348 17.7018 9.80016 16.3792 9.80016 15.0001C9.80016 13.621 10.348 12.2983 11.3232 11.3231C12.2984 10.3479 13.621 9.80008 15.0002 9.80008Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M15 28C16.7072 28 18.3977 27.6637 19.9749 27.0104C21.5521 26.3571 22.9852 25.3995 24.1924 24.1924C25.3995 22.9852 26.3571 21.5521 27.0104 19.9749C27.6637 18.3977 28 16.7072 28 15C28 13.2928 27.6637 11.6023 27.0104 10.0251C26.3571 8.44788 25.3995 7.01477 24.1924 5.80761C22.9852 4.60045 21.5521 3.64288 19.9749 2.98957C18.3977 2.33625 16.7072 2 15 2C11.5522 2 8.24558 3.36964 5.80761 5.80761C3.36964 8.24558 2 11.5522 2 15C2 18.4478 3.36964 21.7544 5.80761 24.1924C8.24558 26.6304 11.5522 28 15 28Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CalendarIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -718,250 +334,6 @@ export function ChartBarIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function AtomIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M19.9206 10.079C26.5651 16.7235 29.7457 24.3111 27.0273 27.0296C24.3117 29.7466 16.7212 26.5645 10.0782 19.9215C3.43516 13.2785 0.253045 5.68936 2.97149 2.97092C5.68705 0.253917 13.2762 3.43603 19.9206 10.079Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M14.6383 15.0001H15.3605M10.0796 10.0789C3.43514 16.7234 0.253025 24.311 2.97147 27.0295C5.68992 29.7479 13.2776 26.5644 19.9206 19.9214C26.5636 13.2783 29.7471 5.68923 27.0287 2.97079C24.3103 0.252343 16.7226 3.4359 10.0796 10.0789Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ElevatorIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='29'
|
||||
height='40'
|
||||
viewBox='0 0 29 40'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M14.5 12.588H23.5C24.5609 12.588 25.5783 13.0094 26.3284 13.7596C27.0786 14.5097 27.5 15.5271 27.5 16.588V34C27.5 35.0609 27.0786 36.0783 26.3284 36.8284C25.5783 37.5786 24.5609 38 23.5 38H14.5M14.5 12.588H5.5C4.43913 12.588 3.42172 13.0094 2.67157 13.7596C1.92143 14.5097 1.5 15.5271 1.5 16.588V34C1.5 35.0609 1.92143 36.0783 2.67157 36.8284C3.42172 37.5786 4.43913 38 5.5 38H14.5M14.5 12.588V38M4.75 5.176L8 2L11.25 5.176M17.75 2L21 5.176L24.25 2'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function DollarIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='43'
|
||||
viewBox='0 0 30 43'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M25.8333 6.33333H15M15 6.33333H9.58333C7.57211 6.33333 5.64326 7.13229 4.22111 8.55444C2.79896 9.97659 2 11.9054 2 13.9167C2 15.9279 2.79896 17.8567 4.22111 19.2789C5.64326 20.701 7.57211 21.5 9.58333 21.5H15M15 6.33333V2M15 6.33333V21.5M15 21.5H20.4167C21.4125 21.5 22.3986 21.6961 23.3187 22.0772C24.2387 22.4583 25.0747 23.0169 25.7789 23.7211C26.4831 24.4253 27.0417 25.2613 27.4228 26.1813C27.8039 27.1014 28 28.0875 28 29.0833C28 30.0792 27.8039 31.0653 27.4228 31.9853C27.0417 32.9054 26.4831 33.7414 25.7789 34.4456C25.0747 35.1497 24.2387 35.7083 23.3187 36.0894C22.3986 36.4705 21.4125 36.6667 20.4167 36.6667H15M15 21.5V36.6667M15 36.6667H2M15 36.6667V41'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CreditCardIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='24'
|
||||
viewBox='0 0 30 24'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M2 7.77778V6.62222C2 5.00444 2 4.19556 2.31489 3.57733C2.59222 3.03278 3.03278 2.59222 3.57733 2.31489C4.19556 2 5.00444 2 6.62222 2H23.3778C24.9956 2 25.8044 2 26.4212 2.31489C26.9658 2.59222 27.4078 3.03278 27.6851 3.57733C28 4.19411 28 5.003 28 6.61789V7.77778M2 7.77778H28M2 7.77778V17.6C2 19.2178 2 20.0267 2.31489 20.6449C2.59185 21.1884 3.03378 21.6304 3.57733 21.9073C4.19411 22.2222 5.003 22.2222 6.61789 22.2222H23.3821C24.997 22.2222 25.8044 22.2222 26.4212 21.9073C26.9658 21.63 27.4078 21.188 27.6851 20.6449C28 20.0267 28 19.2207 28 17.6058V7.77778M6.33333 16.4444H12.1111'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function BoatIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M4.6 22.5024L3.73767 17.6737C3.61597 16.9932 3.74231 16.2917 4.09374 15.6964C4.44517 15.1011 4.99841 14.6516 5.653 14.4294L5.89856 14.3457M5.89856 14.3457L14.0727 11.5723C14.6741 11.3685 15.3259 11.3685 15.9273 11.5723L24.1 14.3457M5.89856 14.3457L5.9 8.85678C5.9 8.0906 6.20436 7.3558 6.74614 6.81402C7.28791 6.27225 8.02271 5.96789 8.78889 5.96789H12.4M24.1 14.3457L24.3456 14.4294C25.0004 14.6513 25.554 15.1007 25.9057 15.696C26.2574 16.2913 26.384 16.993 26.2623 17.6737L25.4 22.501M24.1 14.3457V8.85678C24.1 8.0906 23.7956 7.3558 23.2539 6.81402C22.7121 6.27225 21.9773 5.96789 21.2111 5.96789H17.6M12.4 5.96789H17.6M12.4 5.96789V4.6C12.4 3.91044 12.6739 3.24912 13.1615 2.76152C13.6491 2.27393 14.3104 2 15 2C15.6896 2 16.3509 2.27393 16.8385 2.76152C17.3261 3.24912 17.6 3.91044 17.6 4.6V5.96789M2 27.1319C2.93456 28.0809 5.20956 28.3496 7.38056 27.4439C8.87122 26.8228 10.7548 26.8069 12.2787 27.3413C14.0429 27.9438 15.9571 27.9438 17.7213 27.3413C19.2452 26.8069 21.1288 26.8213 22.618 27.4424C24.7904 28.3496 27.0669 28.0809 28 27.1304'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CancelIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M28 15C28 16.7072 27.6637 18.3977 27.0104 19.9749C26.3571 21.5521 25.3995 22.9852 24.1924 24.1924C22.9852 25.3995 21.5521 26.3571 19.9749 27.0104C18.3977 27.6637 16.7072 28 15 28C13.2928 28 11.6023 27.6637 10.0251 27.0104C8.44788 26.3571 7.01477 25.3995 5.80761 24.1924C4.60045 22.9852 3.64288 21.5521 2.98957 19.9749C2.33625 18.3977 2 16.7072 2 15C2 11.5522 3.36964 8.24558 5.80761 5.80761C8.24558 3.36964 11.5522 2 15 2C18.4478 2 21.7544 3.36964 24.1924 5.80761C26.6304 8.24558 28 11.5522 28 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M23.6667 6.33333L6.33333 23.6667'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function BankIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 10.5797V23.6664M22.2222 10.5797V23.6664M7.77778 10.5797V23.6664M15.6457 2.15283L26.8603 7.79772C28.2239 8.48383 27.7386 10.5523 26.2147 10.5523H3.78533C2.26144 10.5523 1.77611 8.48383 3.13967 7.79772L14.3543 2.15283C14.5548 2.05264 14.7759 2.00049 15 2.00049C15.2241 2.00049 15.4452 2.05264 15.6457 2.15283ZM25.8333 27.9997H4.16667C3.59203 27.9997 3.04093 27.7714 2.6346 27.3651C2.22827 26.9588 2 26.4077 2 25.8331C2 25.2584 2.22827 24.7073 2.6346 24.301C3.04093 23.8947 3.59203 23.6664 4.16667 23.6664H25.8333C26.408 23.6664 26.9591 23.8947 27.3654 24.301C27.7717 24.7073 28 25.2584 28 25.8331C28 26.4077 27.7717 26.9588 27.3654 27.3651C26.9591 27.7714 26.408 27.9997 25.8333 27.9997Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function AmbulanceIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='24'
|
||||
viewBox='0 0 30 24'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M7.63333 9.22222H13.4111M10.5222 6.33333V12.1111M10.9657 18.5461C10.9657 20.5756 9.35944 22.2222 7.37911 22.2222C5.39878 22.2222 3.79256 20.5756 3.79256 18.5447M10.9657 18.5461C10.9657 16.5167 9.35944 14.8686 7.37911 14.8686C5.39878 14.8686 3.79256 16.5152 3.79256 18.5447M10.9657 18.5461L19.0343 18.5447M3.79256 18.5447H2V3.44444C2 3.06135 2.15218 2.69395 2.42307 2.42307C2.69395 2.15218 3.06135 2 3.44444 2H17.5899C17.973 2 18.3404 2.15218 18.6113 2.42307C18.8822 2.69395 19.0343 3.06135 19.0343 3.44444V6.59622M19.0343 18.5447H19.9313M19.0343 18.5447V6.59622M19.0343 6.59622H22.3002C22.6854 6.59626 23.0667 6.67334 23.4217 6.82292C23.7767 6.9725 24.0982 7.19157 24.3672 7.46722L28 11.1924V18.5447H27.103M27.103 18.5447C27.103 20.5756 25.4982 22.2222 23.5179 22.2222C21.5376 22.2222 19.9313 20.5756 19.9313 18.5447M27.103 18.5447C27.103 16.5152 25.4982 14.8686 23.5179 14.8686C21.5376 14.8686 19.9313 16.5152 19.9313 18.5447'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ComponentIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M10.45 6.55L15 2L19.55 6.55L15 11.1L10.45 6.55ZM18.9 15.65L23.45 11.1L28 15.65L23.45 20.2L18.9 15.65ZM10.45 23.45L15 18.9L19.55 23.45L15 28L10.45 23.45ZM2 15L6.55 10.45L11.1 15L6.55 19.55L2 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function BrightIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M2 15H6.33333M4.88889 4.88889L7.95256 7.95256M25.1111 4.88889L22.0474 7.95256M4.88889 25.1111L7.95256 22.0474M25.1111 25.1111L22.0474 22.0474M15 2V6.33333M15 28V23.6667M23.6667 15H28M19.3333 15C19.3333 16.1493 18.8768 17.2515 18.0641 18.0641C17.2515 18.8768 16.1493 19.3333 15 19.3333C13.8507 19.3333 12.7485 18.8768 11.9359 18.0641C11.1232 17.2515 10.6667 16.1493 10.6667 15C10.6667 13.8507 11.1232 12.7485 11.9359 11.9359C12.7485 11.1232 13.8507 10.6667 15 10.6667C16.1493 10.6667 17.2515 11.1232 18.0641 11.9359C18.8768 12.7485 19.3333 13.8507 19.3333 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CrewAIIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='24'
|
||||
height='26'
|
||||
viewBox='0 0 24 26'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M12.0566 1.18005C6.73561 2.31905 1.05261 10.0691 1.00061 16.3721C0.94961 21.8991 4.10061 25.0521 9.68061 24.9991C16.3966 24.9491 23.9396 18.1291 21.7706 14.0991C21.0986 12.8071 20.3746 12.7551 19.0836 13.8921C17.4816 15.2871 17.4296 14.2021 18.8766 10.9991C20.6336 7.01905 20.5816 5.67705 18.5666 3.45505C16.6046 1.38805 14.5366 0.61105 12.0566 1.18005ZM17.3786 3.24805C19.6516 5.26305 19.7546 7.48405 17.8436 11.6681C16.4486 14.7681 15.6736 15.1831 14.0196 13.5281C12.7796 12.2881 12.6766 10.0681 13.7616 7.48405C14.8986 4.84905 14.7436 4.38405 13.1936 5.83105C9.47361 9.18905 6.73561 15.596 7.76961 18.334C8.23361 19.523 8.59461 19.729 10.5066 19.729C13.2966 19.729 16.8096 18.0241 18.4636 15.8031C20.2196 13.5291 21.2536 13.5291 21.2536 15.7511C21.2536 19.6261 14.7946 24.378 9.62861 24.378C3.37761 24.378 0.27761 19.6261 2.13761 12.9081C3.01561 9.91305 6.58061 5.00405 9.21461 3.24805C12.4696 1.07805 14.8986 1.07805 17.3786 3.24805Z'
|
||||
stroke='currentColor'
|
||||
fill='currentColor'
|
||||
strokeWidth='1.25'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function HubspotIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -4428,3 +3800,36 @@ export function SmtpIcon(props: SVGProps<SVGSVGElement>) {
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ApifyIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='200'
|
||||
height='200'
|
||||
viewBox='0 0 200 200'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<g clipPath='url(#clip0_267_4154)'>
|
||||
<path
|
||||
d='M114.695 0H196.97C198.643 0 200 1.35671 200 3.03031V128.766C200 131.778 196.083 132.945 194.434 130.425L112.159 4.68953C110.841 2.67412 112.287 0 114.695 0Z'
|
||||
fill='#246DFF'
|
||||
/>
|
||||
<path
|
||||
d='M85.3048 0H3.0303C1.35671 0 0 1.35671 0 3.03031V128.766C0 131.778 3.91698 132.945 5.566 130.425L87.8405 4.68953C89.1593 2.67412 87.7134 0 85.3048 0Z'
|
||||
fill='#20A34E'
|
||||
/>
|
||||
<path
|
||||
d='M98.5909 100.668L5.12683 194.835C3.22886 196.747 4.58334 200 7.27759 200H192.8C195.483 200 196.842 196.77 194.967 194.852L102.908 100.685C101.726 99.4749 99.7824 99.4676 98.5909 100.668Z'
|
||||
fill='#F86606'
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id='clip0_267_4154'>
|
||||
<rect width='200' height='200' fill='white' />
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
import type { ComponentType, SVGProps } from 'react'
|
||||
import {
|
||||
AirtableIcon,
|
||||
ApifyIcon,
|
||||
ApolloIcon,
|
||||
ArxivIcon,
|
||||
AsanaIcon,
|
||||
@@ -187,5 +188,6 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
|
||||
asana: AsanaIcon,
|
||||
arxiv: ArxivIcon,
|
||||
apollo: ApolloIcon,
|
||||
apify: ApifyIcon,
|
||||
airtable: AirtableIcon,
|
||||
}
|
||||
|
||||
94
apps/docs/content/docs/en/tools/apify.mdx
Normal file
94
apps/docs/content/docs/en/tools/apify.mdx
Normal file
@@ -0,0 +1,94 @@
|
||||
---
|
||||
title: Apify
|
||||
description: Run Apify actors and retrieve results
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="apify"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Apify](https://apify.com/) is a powerful platform for building, deploying, and running web automation and web scraping actors at scale. Apify enables you to extract useful data from any website, automate workflows, and connect your data pipelines seamlessly.
|
||||
|
||||
With Apify, you can:
|
||||
|
||||
- **Run ready-made or custom actors**: Integrate public actors or develop your own, automating a wide range of web data extraction and browser tasks.
|
||||
- **Retrieve datasets**: Access and manage structured datasets collected by actors in real time.
|
||||
- **Scale web automation**: Leverage cloud infrastructure to run tasks reliably, asynchronously or synchronously, with robust error handling.
|
||||
|
||||
In Sim, the Apify integration allows your agents to perform core Apify operations programmatically:
|
||||
|
||||
- **Run Actor (Sync)**: Use `apify_run_actor_sync` to launch an Apify actor and wait for its completion, retrieving the results as soon as the run finishes.
|
||||
- **Run Actor (Async)**: Use `apify_run_actor_async` to start an actor in the background and periodically poll for results, suitable for longer or complex jobs.
|
||||
|
||||
These operations equip your agents to automate, scrape, and orchestrate data collection or browser automation tasks directly inside workflows — all with flexible configuration and result handling, without the need for manual runs or external tools. Integrate Apify as a dynamic automation and data-extraction engine that programmatically powers your agents' web-scale workflows.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
|
||||
## Usage Instructions
|
||||
|
||||
Integrate Apify into your workflow. Run any Apify actor with custom input and retrieve results. Supports both synchronous and asynchronous execution with automatic dataset fetching.
|
||||
|
||||
|
||||
|
||||
## Tools
|
||||
|
||||
### `apify_run_actor_sync`
|
||||
|
||||
Run an APIFY actor synchronously and get results (max 5 minutes)
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | APIFY API token from console.apify.com/account#/integrations |
|
||||
| `actorId` | string | Yes | Actor ID or username/actor-name \(e.g., "janedoe/my-actor" or actor ID\) |
|
||||
| `input` | string | No | Actor input as JSON string. See actor documentation for required fields. |
|
||||
| `timeout` | number | No | Timeout in seconds \(default: actor default\) |
|
||||
| `build` | string | No | Actor build to run \(e.g., "latest", "beta", or build tag/number\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the actor run succeeded |
|
||||
| `runId` | string | APIFY run ID |
|
||||
| `status` | string | Run status \(SUCCEEDED, FAILED, etc.\) |
|
||||
| `datasetId` | string | Dataset ID containing results |
|
||||
| `items` | array | Dataset items \(if completed\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
Run an APIFY actor asynchronously with polling for long-running tasks
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Yes | APIFY API token from console.apify.com/account#/integrations |
|
||||
| `actorId` | string | Yes | Actor ID or username/actor-name \(e.g., "janedoe/my-actor" or actor ID\) |
|
||||
| `input` | string | No | Actor input as JSON string |
|
||||
| `waitForFinish` | number | No | Initial wait time in seconds \(0-60\) before polling starts |
|
||||
| `itemLimit` | number | No | Max dataset items to fetch \(1-250000, default 100\) |
|
||||
| `timeout` | number | No | Timeout in seconds \(default: actor default\) |
|
||||
| `build` | string | No | Actor build to run \(e.g., "latest", "beta", or build tag/number\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Whether the actor run succeeded |
|
||||
| `runId` | string | APIFY run ID |
|
||||
| `status` | string | Run status \(SUCCEEDED, FAILED, etc.\) |
|
||||
| `datasetId` | string | Dataset ID containing results |
|
||||
| `items` | array | Dataset items \(if completed\) |
|
||||
|
||||
|
||||
|
||||
## Notes
|
||||
|
||||
- Category: `tools`
|
||||
- Type: `apify`
|
||||
@@ -2,6 +2,7 @@
|
||||
"pages": [
|
||||
"index",
|
||||
"airtable",
|
||||
"apify",
|
||||
"apollo",
|
||||
"arxiv",
|
||||
"asana",
|
||||
|
||||
142
apps/sim/blocks/blocks/apify.ts
Normal file
142
apps/sim/blocks/blocks/apify.ts
Normal file
@@ -0,0 +1,142 @@
|
||||
import { ApifyIcon } from '@/components/icons'
|
||||
import type { BlockConfig } from '@/blocks/types'
|
||||
import type { RunActorResult } from '@/tools/apify/types'
|
||||
|
||||
export const ApifyBlock: BlockConfig<RunActorResult> = {
|
||||
type: 'apify',
|
||||
name: 'Apify',
|
||||
description: 'Run Apify actors and retrieve results',
|
||||
longDescription:
|
||||
'Integrate Apify into your workflow. Run any Apify actor with custom input and retrieve results. Supports both synchronous and asynchronous execution with automatic dataset fetching.',
|
||||
docsLink: 'https://docs.sim.ai/tools/apify',
|
||||
category: 'tools',
|
||||
bgColor: '#E0E0E0',
|
||||
icon: ApifyIcon,
|
||||
|
||||
subBlocks: [
|
||||
{
|
||||
id: 'operation',
|
||||
title: 'Operation',
|
||||
type: 'dropdown',
|
||||
options: [
|
||||
{ label: 'Run Actor', id: 'apify_run_actor_sync' },
|
||||
{ label: 'Run Actor (Async)', id: 'apify_run_actor_async' },
|
||||
],
|
||||
value: () => 'apify_run_actor_sync',
|
||||
},
|
||||
{
|
||||
id: 'apiKey',
|
||||
title: 'Apify API Token',
|
||||
type: 'short-input',
|
||||
password: true,
|
||||
placeholder: 'Enter your Apify API token',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
id: 'actorId',
|
||||
title: 'Actor ID',
|
||||
type: 'short-input',
|
||||
placeholder: 'e.g., janedoe/my-actor or actor ID',
|
||||
required: true,
|
||||
},
|
||||
{
|
||||
id: 'input',
|
||||
title: 'Actor Input',
|
||||
type: 'code',
|
||||
language: 'json',
|
||||
placeholder: '{\n "startUrl": "https://example.com",\n "maxPages": 10\n}',
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
id: 'timeout',
|
||||
title: 'Timeout',
|
||||
type: 'short-input',
|
||||
placeholder: 'Actor timeout in seconds',
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
id: 'build',
|
||||
title: 'Build',
|
||||
type: 'short-input',
|
||||
placeholder: 'Actor build (e.g., "latest", "beta", or build tag)',
|
||||
required: false,
|
||||
},
|
||||
{
|
||||
id: 'waitForFinish',
|
||||
title: 'Wait For Finish',
|
||||
type: 'short-input',
|
||||
placeholder: 'Initial wait time in seconds (0-60)',
|
||||
required: false,
|
||||
condition: {
|
||||
field: 'operation',
|
||||
value: 'apify_run_actor_async',
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'itemLimit',
|
||||
title: 'Item Limit',
|
||||
type: 'short-input',
|
||||
placeholder: 'Max dataset items to fetch (1-250000)',
|
||||
required: false,
|
||||
condition: {
|
||||
field: 'operation',
|
||||
value: 'apify_run_actor_async',
|
||||
},
|
||||
},
|
||||
],
|
||||
|
||||
tools: {
|
||||
access: ['apify_run_actor_sync', 'apify_run_actor_async'],
|
||||
config: {
|
||||
tool: (params) => params.operation,
|
||||
params: (params: Record<string, any>) => {
|
||||
const { operation, ...rest } = params
|
||||
const result: Record<string, any> = {
|
||||
apiKey: rest.apiKey,
|
||||
actorId: rest.actorId,
|
||||
}
|
||||
|
||||
if (rest.input) {
|
||||
result.input = rest.input
|
||||
}
|
||||
|
||||
if (rest.timeout) {
|
||||
result.timeout = Number(rest.timeout)
|
||||
}
|
||||
|
||||
if (rest.build) {
|
||||
result.build = rest.build
|
||||
}
|
||||
|
||||
if (rest.waitForFinish) {
|
||||
result.waitForFinish = Number(rest.waitForFinish)
|
||||
}
|
||||
|
||||
if (rest.itemLimit) {
|
||||
result.itemLimit = Number(rest.itemLimit)
|
||||
}
|
||||
|
||||
return result
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
inputs: {
|
||||
operation: { type: 'string', description: 'Operation to perform' },
|
||||
apiKey: { type: 'string', description: 'Apify API token' },
|
||||
actorId: { type: 'string', description: 'Actor ID or username/actor-name' },
|
||||
input: { type: 'string', description: 'Actor input as JSON string' },
|
||||
timeout: { type: 'number', description: 'Timeout in seconds' },
|
||||
build: { type: 'string', description: 'Actor build version' },
|
||||
waitForFinish: { type: 'number', description: 'Initial wait time in seconds' },
|
||||
itemLimit: { type: 'number', description: 'Max dataset items to fetch' },
|
||||
},
|
||||
|
||||
outputs: {
|
||||
success: { type: 'boolean', description: 'Whether the actor run succeeded' },
|
||||
runId: { type: 'string', description: 'Apify run ID' },
|
||||
status: { type: 'string', description: 'Run status (SUCCEEDED, FAILED, etc.)' },
|
||||
datasetId: { type: 'string', description: 'Dataset ID containing results' },
|
||||
items: { type: 'json', description: 'Dataset items (if completed)' },
|
||||
},
|
||||
}
|
||||
@@ -2,6 +2,7 @@ import { AgentBlock } from '@/blocks/blocks/agent'
|
||||
import { AirtableBlock } from '@/blocks/blocks/airtable'
|
||||
import { ApiBlock } from '@/blocks/blocks/api'
|
||||
import { ApiTriggerBlock } from '@/blocks/blocks/api_trigger'
|
||||
import { ApifyBlock } from '@/blocks/blocks/apify'
|
||||
import { ApolloBlock } from '@/blocks/blocks/apollo'
|
||||
import { ArxivBlock } from '@/blocks/blocks/arxiv'
|
||||
import { AsanaBlock } from '@/blocks/blocks/asana'
|
||||
@@ -119,6 +120,7 @@ import type { BlockConfig } from '@/blocks/types'
|
||||
export const registry: Record<string, BlockConfig> = {
|
||||
agent: AgentBlock,
|
||||
airtable: AirtableBlock,
|
||||
apify: ApifyBlock,
|
||||
apollo: ApolloBlock,
|
||||
api: ApiBlock,
|
||||
arxiv: ArxivBlock,
|
||||
|
||||
@@ -1,47 +1,5 @@
|
||||
import type { SVGProps } from 'react'
|
||||
|
||||
export function UsersIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='24'
|
||||
height='24'
|
||||
viewBox='0 0 24 24'
|
||||
fill='none'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
>
|
||||
<path d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2' />
|
||||
<circle cx='9' cy='7' r='4' />
|
||||
<path d='M22 21v-2a4 4 0 0 0-3-3.87' />
|
||||
<path d='M16 3.13a4 4 0 0 1 0 7.75' />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function SettingsIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='24'
|
||||
height='24'
|
||||
viewBox='0 0 24 24'
|
||||
fill='none'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
>
|
||||
<path d='M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z' />
|
||||
<circle cx='12' cy='12' r='3' />
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function SearchIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -62,33 +20,6 @@ export function SearchIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function Spinner() {
|
||||
return (
|
||||
<div className='absolute top-0 right-0 bottom-0 flex items-center justify-center'>
|
||||
<svg
|
||||
className='-ml-1 mr-3 h-5 w-5 animate-spin text-gray-700'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
fill='none'
|
||||
viewBox='0 0 24 24'
|
||||
>
|
||||
<circle
|
||||
className='opacity-25'
|
||||
cx='12'
|
||||
cy='12'
|
||||
r='10'
|
||||
stroke='currentColor'
|
||||
strokeWidth='4'
|
||||
/>
|
||||
<path
|
||||
className='opacity-75'
|
||||
fill='currentColor'
|
||||
d='M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z'
|
||||
/>
|
||||
</svg>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export function AgentIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -192,55 +123,6 @@ export function NoteIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function AirplaneIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M18.0925 7.76479L23.0009 2.85494C23.5535 2.31133 24.2985 2.00809 25.0736 2.01126C25.8488 2.01443 26.5913 2.32375 27.1394 2.87187C27.6875 3.41998 27.9968 4.16247 28 4.93761C28.0031 5.71275 27.6999 6.45774 27.1563 7.01032L22.2464 11.9187L24.903 25.1364C25.2426 26.8275 21.9632 29.1834 21.0902 26.9431L17.2022 16.9644L12.1536 22.013C12.3993 24.963 12.4528 25.9444 10.3845 28.0112L7.24083 22.7704L2 19.6268C4.06685 17.5585 5.04824 17.6105 7.9982 17.8577L13.0468 12.8105L3.06811 8.92107C0.827823 8.04808 3.18374 4.76714 4.8748 5.10824L18.0925 7.76479Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function WorkIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M9.66689 7.20002V6.16002C9.66689 3.85901 9.66689 2 13.9338 2H16.0658C20.3327 2 20.3327 3.85901 20.3327 6.16002V7.20002M9.66689 28.0001H20.3327C25.6916 28.0001 26.6522 25.9056 26.9324 23.3591L27.932 12.959C28.2931 9.78703 27.3585 7.20002 21.6659 7.20002H8.33366C2.64109 7.20002 1.70797 9.78703 2.06764 12.959L3.0672 23.3591C3.34742 25.9056 4.30798 28.0001 9.66689 28.0001Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M11.8385 16.9227C8.45374 16.5494 5.20151 15.3969 2.33691 13.5557M18.2259 16.9227C21.6106 16.5494 24.8629 15.3969 27.7275 13.5557M17.8879 17.1668C17.8879 17.933 17.5835 18.6678 17.0417 19.2095C16.4999 19.7513 15.7651 20.0557 14.999 20.0557C14.2328 20.0557 13.498 19.7513 12.9562 19.2095C12.4144 18.6678 12.1101 17.933 12.1101 17.1668C12.1101 16.4006 12.4144 15.6658 12.9562 15.124C13.498 14.5823 14.2328 14.2779 14.999 14.2779C15.7651 14.2779 16.4999 14.5823 17.0417 15.124C17.5835 15.6658 17.8879 16.4006 17.8879 17.1668Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function WorkflowIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -308,104 +190,6 @@ export function WorkflowIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function WarnIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 9.3152V16.4654M15 20.6853V20.0353M2.91879 12.7837C2.62752 13.0747 2.39645 13.4202 2.2388 13.8005C2.08115 14.1809 2 14.5885 2 15.0002C2 15.412 2.08115 15.8196 2.2388 16.2C2.39645 16.5803 2.62752 16.9258 2.91879 17.2168L12.7834 27.0814C13.0744 27.3727 13.4199 27.6038 13.8003 27.7614C14.1806 27.9191 14.5883 28.0002 15 28.0002C15.4117 28.0002 15.8194 27.9191 16.1997 27.7614C16.58 27.6038 16.9256 27.3727 17.2166 27.0814L27.0812 17.2168C27.3725 16.9258 27.6035 16.5803 27.7612 16.2C27.9189 15.8196 28 15.412 28 15.0002C28 14.5885 27.9189 14.1809 27.7612 13.8005C27.6035 13.4202 27.3725 13.0747 27.0812 12.7837L17.2166 2.91904C16.9256 2.62776 16.58 2.3967 16.1997 2.23904C15.8194 2.08139 15.4117 2.00024 15 2.00024C14.5883 2.00024 14.1806 2.08139 13.8003 2.23904C13.4199 2.3967 13.0744 2.62776 12.7834 2.91904L2.91879 12.7837Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function UploadIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='25'
|
||||
viewBox='0 0 30 25'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15.1605 23.1773L15.1552 12.5569M25.5937 19.1946C31.5611 14.9996 26.2243 8.93265 20.6738 8.93265C16.9262 -5.67304 -5.05936 6.40766 4.68352 17.4183'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M19.3792 15.6341L15.1549 11.4098L10.9307 15.6341'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function TrashIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='29'
|
||||
height='35'
|
||||
viewBox='0 0 29 35'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M24.9 12.4L23.444 26.9565C23.2239 29.1631 23.1147 30.2655 22.612 31.0992C22.1711 31.8331 21.5227 32.42 20.7487 32.7857C19.8699 33.2 18.764 33.2 16.5453 33.2H12.4547C10.2377 33.2 9.13013 33.2 8.25133 32.784C7.47662 32.4185 6.8276 31.8316 6.38627 31.0975C5.88707 30.2655 5.77613 29.1631 5.55427 26.9565L4.1 12.4M17.1 23.6667V15M11.9 23.6667V15M1.5 8.06667H9.49933M9.49933 8.06667L10.1684 3.4352C10.3625 2.5928 11.0628 2 11.8671 2H17.1329C17.9372 2 18.6357 2.5928 18.8316 3.4352L19.5007 8.06667M9.49933 8.06667H19.5007M19.5007 8.06667H27.5'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function StudentIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='27'
|
||||
viewBox='0 0 30 27'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M28 9.1498V15.6498M17.8821 2.6498C16.9814 2.22228 15.997 2.00049 15 2.00049C14.003 2.00049 13.0186 2.22228 12.1179 2.6498L3.4196 6.7279C1.5268 7.6145 1.5268 10.6851 3.4196 11.5717L12.1166 15.6498C13.0174 16.0775 14.0021 16.2994 14.9993 16.2994C15.9966 16.2994 16.9813 16.0775 17.8821 15.6498L26.5804 11.5717C28.4732 10.6851 28.4732 7.6145 26.5804 6.7279L17.8821 2.6498Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M5.90039 13.0498V19.7123C5.90039 23.5057 12.0026 25.3998 15.0004 25.3998C17.9982 25.3998 24.1004 23.5057 24.1004 19.7123V13.0498'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function SignalIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -427,174 +211,6 @@ export function SignalIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function SectionIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M4.88889 22.2222V7.77778M4.88889 22.2222C4.31752 22.2222 3.75898 22.3917 3.28391 22.7091C2.80883 23.0265 2.43856 23.4777 2.2199 24.0056C2.00125 24.5335 1.94404 25.1143 2.05551 25.6747C2.16698 26.2351 2.44212 26.7498 2.84614 27.1539C3.25016 27.5579 3.76491 27.833 4.3253 27.9445C4.88569 28.056 5.46654 27.9987 5.99442 27.7801C6.5223 27.5614 6.97348 27.1912 7.29091 26.7161C7.60835 26.241 7.77778 25.6825 7.77778 25.1111M4.88889 22.2222C5.65507 22.2222 6.38987 22.5266 6.93164 23.0684C7.47341 23.6101 7.77778 24.3449 7.77778 25.1111M4.88889 7.77778C5.65507 7.77778 6.38987 7.47341 6.93164 6.93164C7.47341 6.38987 7.77778 5.65507 7.77778 4.88889M4.88889 7.77778C4.31752 7.77778 3.75898 7.60835 3.28391 7.29091C2.80883 6.97348 2.43856 6.5223 2.2199 5.99442C2.00125 5.46654 1.94404 4.88569 2.05551 4.3253C2.16698 3.76491 2.44212 3.25016 2.84614 2.84614C3.25016 2.44212 3.76491 2.16698 4.3253 2.05551C4.88569 1.94404 5.46654 2.00125 5.99442 2.2199C6.5223 2.43856 6.97348 2.80883 7.29091 3.28391C7.60835 3.75898 7.77778 4.31752 7.77778 4.88889M7.77778 25.1111H22.2222M7.77778 4.88889H22.2222M22.2222 4.88889C22.2222 5.65507 22.5266 6.38987 23.0684 6.93164C23.6101 7.47341 24.3449 7.77778 25.1111 7.77778M22.2222 4.88889C22.2222 4.31752 22.3917 3.75898 22.7091 3.28391C23.0265 2.80883 23.4777 2.43856 24.0056 2.2199C24.5335 2.00125 25.1143 1.94404 25.6747 2.05551C26.2351 2.16698 26.7498 2.44212 27.1539 2.84614C27.5579 3.25016 27.833 3.76491 27.9445 4.3253C28 4.88569 27.9987 5.46654 27.7801 5.99442C27.5614 6.5223 27.1912 6.97348 26.7161 7.29091C26.241 7.60835 25.6825 7.77778 25.1111 7.77778M25.1111 7.77778V22.2222M25.1111 22.2222C24.3449 22.2222 23.6101 22.5266 23.0684 23.0684C22.5266 23.6101 22.2222 24.3449 22.2222 25.1111M25.1111 22.2222C25.6825 22.2222 26.241 22.3917 26.7161 22.7091C27.1912 23.0265 27.5614 23.4777 27.7801 24.0056C27.9987 24.5335 28 25.1143 27.9445 25.6747C27.833 26.2351 27.5579 26.7498 27.1539 27.1539C26.7498 27.5579 26.2351 27.833 25.6747 27.9445C25.1143 28.056 24.5335 27.9987 24.0056 27.7801C23.4777 27.5614 23.0265 27.1912 22.7091 26.7161C22.3917 26.241 22.2222 25.6825 22.2222 25.1111'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ReminderIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M2 5.22256L6.55 2M28 5.22256L23.45 2M26.5556 16.4444C26.5556 19.5092 25.3381 22.4484 23.171 24.6155C21.0039 26.7825 18.0647 28 15 28C11.9353 28 8.99608 26.7825 6.82899 24.6155C4.6619 22.4484 3.44444 19.5092 3.44444 16.4444C3.44444 13.3797 4.6619 10.4405 6.82899 8.27343C8.99608 6.10635 11.9353 4.88889 15 4.88889C18.0647 4.88889 21.0039 6.10635 23.171 8.27343C25.3381 10.4405 26.5556 13.3797 26.5556 16.4444Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M15 9.94446V17.1667L19.3333 20.0556'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function DatabaseIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='33'
|
||||
viewBox='0 0 30 33'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M28 16.2188C28 23.8026 2 23.8026 2 16.2188M15 2C7.82075 2 2 4.09625 2 6.68C2 13.44 28 13.44 28 6.68C28 4.09625 22.1793 2 15 2Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M2 6.875V26.6431C2 32.7856 28 32.7856 28 26.6431V6.875'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CrateIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 28L26.7448 21.9218C27.2012 21.6849 27.4294 21.5679 27.5956 21.3931C27.7427 21.2398 27.8541 21.0558 27.922 20.8544C28 20.6247 28 20.369 28 19.8548V8.5477M15 28L3.25522 21.9218C2.79878 21.6849 2.57056 21.5679 2.40444 21.3931C2.25732 21.2398 2.14585 21.0558 2.078 20.8544C2 20.6247 2 20.3676 2 19.8519V8.5477M15 28V14.909M28 8.5477L15 14.909M28 8.5477L16.0544 2.36548C15.6688 2.16614 15.4767 2.06503 15.273 2.02603C15.0927 1.99132 14.9073 1.99132 14.727 2.02603C14.5248 2.06503 14.3312 2.16614 13.9441 2.36548L2 8.5477M2 8.5477L15 14.909'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CookieIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M19.3368 21.2951L19.8483 20.7836M12.1124 22.74L12.6239 22.2285M9.22264 9.73606L9.73269 9.22457M7.77776 16.9605L8.28781 16.449M15.0022 15.5156L15.5137 15.0041M15.0065 28.008C18.3701 28.0079 21.6029 26.7048 24.0264 24.3724C26.4499 22.0399 27.8758 18.8594 28.0047 15.4982C28.0133 15.2772 27.7735 15.137 27.5741 15.2367C23.9966 17.0385 21.7859 15.1255 22.1457 12.5579C22.1518 12.5083 22.1467 12.458 22.1306 12.4106C22.1146 12.3633 22.0881 12.3201 22.0531 12.2845C22.0181 12.2488 21.9755 12.2214 21.9285 12.2045C21.8815 12.1875 21.8313 12.1814 21.7815 12.1866C18.6447 12.6244 17.3226 10.7215 17.8168 8.13513C17.8241 8.09108 17.8223 8.04599 17.8115 8.00267C17.8006 7.95935 17.7809 7.91873 17.7537 7.88335C17.7264 7.84796 17.6922 7.81857 17.6531 7.79701C17.614 7.77545 17.5708 7.76218 17.5264 7.75802C14.5745 7.49505 14.3303 4.08802 14.8375 2.42641C14.8996 2.22123 14.7522 1.99294 14.5384 2.00017C11.1323 2.12457 7.91116 3.58078 5.56769 6.05559C3.22422 8.53041 1.94565 11.8261 2.00699 15.2339C2.06833 18.6416 3.46468 21.8892 5.89569 24.2781C8.32671 26.6669 11.5982 28.0063 15.0065 28.008Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ErrorIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 8.68344V16.6279M15 21.3166V20.5943M28 15C28 16.7072 27.6637 18.3977 27.0104 19.9749C26.3571 21.5521 25.3995 22.9852 24.1924 24.1924C22.9852 25.3995 21.5521 26.3571 19.9749 27.0104C18.3977 27.6637 16.7072 28 15 28C13.2928 28 11.6023 27.6637 10.0251 27.0104C8.44788 26.3571 7.01477 25.3995 5.80761 24.1924C4.60045 22.9852 3.64288 21.5521 2.98957 19.9749C2.33625 18.3977 2 16.7072 2 15C2 11.5522 3.36964 8.24558 5.80761 5.80761C8.24558 3.36964 11.5522 2 15 2C18.4478 2 21.7544 3.36964 24.1924 5.80761C26.6304 8.24558 28 11.5522 28 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ChromeIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M13.5442 27.9221L19.4982 17.6001M4.53516 7.27808L10.5022 17.6001M26.9212 9.80008H15.0002M15.0002 9.80008C16.3793 9.80008 17.7019 10.3479 18.6771 11.3231C19.6523 12.2983 20.2002 13.621 20.2002 15.0001C20.2002 16.3792 19.6523 17.7018 18.6771 18.677C17.7019 19.6522 16.3793 20.2001 15.0002 20.2001C13.621 20.2001 12.2984 19.6522 11.3232 18.677C10.348 17.7018 9.80016 16.3792 9.80016 15.0001C9.80016 13.621 10.348 12.2983 11.3232 11.3231C12.2984 10.3479 13.621 9.80008 15.0002 9.80008Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M15 28C16.7072 28 18.3977 27.6637 19.9749 27.0104C21.5521 26.3571 22.9852 25.3995 24.1924 24.1924C25.3995 22.9852 26.3571 21.5521 27.0104 19.9749C27.6637 18.3977 28 16.7072 28 15C28 13.2928 27.6637 11.6023 27.0104 10.0251C26.3571 8.44788 25.3995 7.01477 24.1924 5.80761C22.9852 4.60045 21.5521 3.64288 19.9749 2.98957C18.3977 2.33625 16.7072 2 15 2C11.5522 2 8.24558 3.36964 5.80761 5.80761C3.36964 8.24558 2 11.5522 2 15C2 18.4478 3.36964 21.7544 5.80761 24.1924C8.24558 26.6304 11.5522 28 15 28Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CalendarIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -718,250 +334,6 @@ export function ChartBarIcon(props: SVGProps<SVGSVGElement>) {
|
||||
)
|
||||
}
|
||||
|
||||
export function AtomIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M19.9206 10.079C26.5651 16.7235 29.7457 24.3111 27.0273 27.0296C24.3117 29.7466 16.7212 26.5645 10.0782 19.9215C3.43516 13.2785 0.253045 5.68936 2.97149 2.97092C5.68705 0.253917 13.2762 3.43603 19.9206 10.079Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M14.6383 15.0001H15.3605M10.0796 10.0789C3.43514 16.7234 0.253025 24.311 2.97147 27.0295C5.68992 29.7479 13.2776 26.5644 19.9206 19.9214C26.5636 13.2783 29.7471 5.68923 27.0287 2.97079C24.3103 0.252343 16.7226 3.4359 10.0796 10.0789Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ElevatorIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='29'
|
||||
height='40'
|
||||
viewBox='0 0 29 40'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M14.5 12.588H23.5C24.5609 12.588 25.5783 13.0094 26.3284 13.7596C27.0786 14.5097 27.5 15.5271 27.5 16.588V34C27.5 35.0609 27.0786 36.0783 26.3284 36.8284C25.5783 37.5786 24.5609 38 23.5 38H14.5M14.5 12.588H5.5C4.43913 12.588 3.42172 13.0094 2.67157 13.7596C1.92143 14.5097 1.5 15.5271 1.5 16.588V34C1.5 35.0609 1.92143 36.0783 2.67157 36.8284C3.42172 37.5786 4.43913 38 5.5 38H14.5M14.5 12.588V38M4.75 5.176L8 2L11.25 5.176M17.75 2L21 5.176L24.25 2'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function DollarIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='43'
|
||||
viewBox='0 0 30 43'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M25.8333 6.33333H15M15 6.33333H9.58333C7.57211 6.33333 5.64326 7.13229 4.22111 8.55444C2.79896 9.97659 2 11.9054 2 13.9167C2 15.9279 2.79896 17.8567 4.22111 19.2789C5.64326 20.701 7.57211 21.5 9.58333 21.5H15M15 6.33333V2M15 6.33333V21.5M15 21.5H20.4167C21.4125 21.5 22.3986 21.6961 23.3187 22.0772C24.2387 22.4583 25.0747 23.0169 25.7789 23.7211C26.4831 24.4253 27.0417 25.2613 27.4228 26.1813C27.8039 27.1014 28 28.0875 28 29.0833C28 30.0792 27.8039 31.0653 27.4228 31.9853C27.0417 32.9054 26.4831 33.7414 25.7789 34.4456C25.0747 35.1497 24.2387 35.7083 23.3187 36.0894C22.3986 36.4705 21.4125 36.6667 20.4167 36.6667H15M15 21.5V36.6667M15 36.6667H2M15 36.6667V41'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CreditCardIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='24'
|
||||
viewBox='0 0 30 24'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M2 7.77778V6.62222C2 5.00444 2 4.19556 2.31489 3.57733C2.59222 3.03278 3.03278 2.59222 3.57733 2.31489C4.19556 2 5.00444 2 6.62222 2H23.3778C24.9956 2 25.8044 2 26.4212 2.31489C26.9658 2.59222 27.4078 3.03278 27.6851 3.57733C28 4.19411 28 5.003 28 6.61789V7.77778M2 7.77778H28M2 7.77778V17.6C2 19.2178 2 20.0267 2.31489 20.6449C2.59185 21.1884 3.03378 21.6304 3.57733 21.9073C4.19411 22.2222 5.003 22.2222 6.61789 22.2222H23.3821C24.997 22.2222 25.8044 22.2222 26.4212 21.9073C26.9658 21.63 27.4078 21.188 27.6851 20.6449C28 20.0267 28 19.2207 28 17.6058V7.77778M6.33333 16.4444H12.1111'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function BoatIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M4.6 22.5024L3.73767 17.6737C3.61597 16.9932 3.74231 16.2917 4.09374 15.6964C4.44517 15.1011 4.99841 14.6516 5.653 14.4294L5.89856 14.3457M5.89856 14.3457L14.0727 11.5723C14.6741 11.3685 15.3259 11.3685 15.9273 11.5723L24.1 14.3457M5.89856 14.3457L5.9 8.85678C5.9 8.0906 6.20436 7.3558 6.74614 6.81402C7.28791 6.27225 8.02271 5.96789 8.78889 5.96789H12.4M24.1 14.3457L24.3456 14.4294C25.0004 14.6513 25.554 15.1007 25.9057 15.696C26.2574 16.2913 26.384 16.993 26.2623 17.6737L25.4 22.501M24.1 14.3457V8.85678C24.1 8.0906 23.7956 7.3558 23.2539 6.81402C22.7121 6.27225 21.9773 5.96789 21.2111 5.96789H17.6M12.4 5.96789H17.6M12.4 5.96789V4.6C12.4 3.91044 12.6739 3.24912 13.1615 2.76152C13.6491 2.27393 14.3104 2 15 2C15.6896 2 16.3509 2.27393 16.8385 2.76152C17.3261 3.24912 17.6 3.91044 17.6 4.6V5.96789M2 27.1319C2.93456 28.0809 5.20956 28.3496 7.38056 27.4439C8.87122 26.8228 10.7548 26.8069 12.2787 27.3413C14.0429 27.9438 15.9571 27.9438 17.7213 27.3413C19.2452 26.8069 21.1288 26.8213 22.618 27.4424C24.7904 28.3496 27.0669 28.0809 28 27.1304'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CancelIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M28 15C28 16.7072 27.6637 18.3977 27.0104 19.9749C26.3571 21.5521 25.3995 22.9852 24.1924 24.1924C22.9852 25.3995 21.5521 26.3571 19.9749 27.0104C18.3977 27.6637 16.7072 28 15 28C13.2928 28 11.6023 27.6637 10.0251 27.0104C8.44788 26.3571 7.01477 25.3995 5.80761 24.1924C4.60045 22.9852 3.64288 21.5521 2.98957 19.9749C2.33625 18.3977 2 16.7072 2 15C2 11.5522 3.36964 8.24558 5.80761 5.80761C8.24558 3.36964 11.5522 2 15 2C18.4478 2 21.7544 3.36964 24.1924 5.80761C26.6304 8.24558 28 11.5522 28 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
<path
|
||||
d='M23.6667 6.33333L6.33333 23.6667'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function BankIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M15 10.5797V23.6664M22.2222 10.5797V23.6664M7.77778 10.5797V23.6664M15.6457 2.15283L26.8603 7.79772C28.2239 8.48383 27.7386 10.5523 26.2147 10.5523H3.78533C2.26144 10.5523 1.77611 8.48383 3.13967 7.79772L14.3543 2.15283C14.5548 2.05264 14.7759 2.00049 15 2.00049C15.2241 2.00049 15.4452 2.05264 15.6457 2.15283ZM25.8333 27.9997H4.16667C3.59203 27.9997 3.04093 27.7714 2.6346 27.3651C2.22827 26.9588 2 26.4077 2 25.8331C2 25.2584 2.22827 24.7073 2.6346 24.301C3.04093 23.8947 3.59203 23.6664 4.16667 23.6664H25.8333C26.408 23.6664 26.9591 23.8947 27.3654 24.301C27.7717 24.7073 28 25.2584 28 25.8331C28 26.4077 27.7717 26.9588 27.3654 27.3651C26.9591 27.7714 26.408 27.9997 25.8333 27.9997Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function AmbulanceIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='24'
|
||||
viewBox='0 0 30 24'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M7.63333 9.22222H13.4111M10.5222 6.33333V12.1111M10.9657 18.5461C10.9657 20.5756 9.35944 22.2222 7.37911 22.2222C5.39878 22.2222 3.79256 20.5756 3.79256 18.5447M10.9657 18.5461C10.9657 16.5167 9.35944 14.8686 7.37911 14.8686C5.39878 14.8686 3.79256 16.5152 3.79256 18.5447M10.9657 18.5461L19.0343 18.5447M3.79256 18.5447H2V3.44444C2 3.06135 2.15218 2.69395 2.42307 2.42307C2.69395 2.15218 3.06135 2 3.44444 2H17.5899C17.973 2 18.3404 2.15218 18.6113 2.42307C18.8822 2.69395 19.0343 3.06135 19.0343 3.44444V6.59622M19.0343 18.5447H19.9313M19.0343 18.5447V6.59622M19.0343 6.59622H22.3002C22.6854 6.59626 23.0667 6.67334 23.4217 6.82292C23.7767 6.9725 24.0982 7.19157 24.3672 7.46722L28 11.1924V18.5447H27.103M27.103 18.5447C27.103 20.5756 25.4982 22.2222 23.5179 22.2222C21.5376 22.2222 19.9313 20.5756 19.9313 18.5447M27.103 18.5447C27.103 16.5152 25.4982 14.8686 23.5179 14.8686C21.5376 14.8686 19.9313 16.5152 19.9313 18.5447'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ComponentIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M10.45 6.55L15 2L19.55 6.55L15 11.1L10.45 6.55ZM18.9 15.65L23.45 11.1L28 15.65L23.45 20.2L18.9 15.65ZM10.45 23.45L15 18.9L19.55 23.45L15 28L10.45 23.45ZM2 15L6.55 10.45L11.1 15L6.55 19.55L2 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function BrightIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='30'
|
||||
height='30'
|
||||
viewBox='0 0 30 30'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M2 15H6.33333M4.88889 4.88889L7.95256 7.95256M25.1111 4.88889L22.0474 7.95256M4.88889 25.1111L7.95256 22.0474M25.1111 25.1111L22.0474 22.0474M15 2V6.33333M15 28V23.6667M23.6667 15H28M19.3333 15C19.3333 16.1493 18.8768 17.2515 18.0641 18.0641C17.2515 18.8768 16.1493 19.3333 15 19.3333C13.8507 19.3333 12.7485 18.8768 11.9359 18.0641C11.1232 17.2515 10.6667 16.1493 10.6667 15C10.6667 13.8507 11.1232 12.7485 11.9359 11.9359C12.7485 11.1232 13.8507 10.6667 15 10.6667C16.1493 10.6667 17.2515 11.1232 18.0641 11.9359C18.8768 12.7485 19.3333 13.8507 19.3333 15Z'
|
||||
stroke='currentColor'
|
||||
strokeWidth='2.5'
|
||||
strokeLinecap='round'
|
||||
strokeLinejoin='round'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function CrewAIIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='24'
|
||||
height='26'
|
||||
viewBox='0 0 24 26'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<path
|
||||
d='M12.0566 1.18005C6.73561 2.31905 1.05261 10.0691 1.00061 16.3721C0.94961 21.8991 4.10061 25.0521 9.68061 24.9991C16.3966 24.9491 23.9396 18.1291 21.7706 14.0991C21.0986 12.8071 20.3746 12.7551 19.0836 13.8921C17.4816 15.2871 17.4296 14.2021 18.8766 10.9991C20.6336 7.01905 20.5816 5.67705 18.5666 3.45505C16.6046 1.38805 14.5366 0.61105 12.0566 1.18005ZM17.3786 3.24805C19.6516 5.26305 19.7546 7.48405 17.8436 11.6681C16.4486 14.7681 15.6736 15.1831 14.0196 13.5281C12.7796 12.2881 12.6766 10.0681 13.7616 7.48405C14.8986 4.84905 14.7436 4.38405 13.1936 5.83105C9.47361 9.18905 6.73561 15.596 7.76961 18.334C8.23361 19.523 8.59461 19.729 10.5066 19.729C13.2966 19.729 16.8096 18.0241 18.4636 15.8031C20.2196 13.5291 21.2536 13.5291 21.2536 15.7511C21.2536 19.6261 14.7946 24.378 9.62861 24.378C3.37761 24.378 0.27761 19.6261 2.13761 12.9081C3.01561 9.91305 6.58061 5.00405 9.21461 3.24805C12.4696 1.07805 14.8986 1.07805 17.3786 3.24805Z'
|
||||
stroke='currentColor'
|
||||
fill='currentColor'
|
||||
strokeWidth='1.25'
|
||||
/>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function HubspotIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
@@ -4428,3 +3800,36 @@ export function SmtpIcon(props: SVGProps<SVGSVGElement>) {
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
export function ApifyIcon(props: SVGProps<SVGSVGElement>) {
|
||||
return (
|
||||
<svg
|
||||
{...props}
|
||||
width='200'
|
||||
height='200'
|
||||
viewBox='0 0 200 200'
|
||||
fill='none'
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
>
|
||||
<g clipPath='url(#clip0_267_4154)'>
|
||||
<path
|
||||
d='M114.695 0H196.97C198.643 0 200 1.35671 200 3.03031V128.766C200 131.778 196.083 132.945 194.434 130.425L112.159 4.68953C110.841 2.67412 112.287 0 114.695 0Z'
|
||||
fill='#246DFF'
|
||||
/>
|
||||
<path
|
||||
d='M85.3048 0H3.0303C1.35671 0 0 1.35671 0 3.03031V128.766C0 131.778 3.91698 132.945 5.566 130.425L87.8405 4.68953C89.1593 2.67412 87.7134 0 85.3048 0Z'
|
||||
fill='#20A34E'
|
||||
/>
|
||||
<path
|
||||
d='M98.5909 100.668L5.12683 194.835C3.22886 196.747 4.58334 200 7.27759 200H192.8C195.483 200 196.842 196.77 194.967 194.852L102.908 100.685C101.726 99.4749 99.7824 99.4676 98.5909 100.668Z'
|
||||
fill='#F86606'
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id='clip0_267_4154'>
|
||||
<rect width='200' height='200' fill='white' />
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
)
|
||||
}
|
||||
|
||||
3
apps/sim/tools/apify/index.ts
Normal file
3
apps/sim/tools/apify/index.ts
Normal file
@@ -0,0 +1,3 @@
|
||||
export { apifyRunActorAsyncTool } from './run_actor_async'
|
||||
export { apifyRunActorSyncTool } from './run_actor_sync'
|
||||
export type { RunActorParams, RunActorResult } from './types'
|
||||
213
apps/sim/tools/apify/run_actor_async.ts
Normal file
213
apps/sim/tools/apify/run_actor_async.ts
Normal file
@@ -0,0 +1,213 @@
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
import type { RunActorParams, RunActorResult } from './types'
|
||||
|
||||
const POLL_INTERVAL_MS = 5000 // 5 seconds between polls
|
||||
const MAX_POLL_TIME_MS = 300000 // 5 minutes maximum polling time
|
||||
|
||||
export const apifyRunActorAsyncTool: ToolConfig<RunActorParams, RunActorResult> = {
|
||||
id: 'apify_run_actor_async',
|
||||
name: 'APIFY Run Actor (Async)',
|
||||
description: 'Run an APIFY actor asynchronously with polling for long-running tasks',
|
||||
version: '1.0.0',
|
||||
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
visibility: 'user-only',
|
||||
description: 'APIFY API token from console.apify.com/account#/integrations',
|
||||
},
|
||||
actorId: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Actor ID or username/actor-name (e.g., "janedoe/my-actor" or actor ID)',
|
||||
},
|
||||
input: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Actor input as JSON string',
|
||||
},
|
||||
waitForFinish: {
|
||||
type: 'number',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Initial wait time in seconds (0-60) before polling starts',
|
||||
},
|
||||
itemLimit: {
|
||||
type: 'number',
|
||||
required: false,
|
||||
default: 100,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Max dataset items to fetch (1-250000, default 100)',
|
||||
},
|
||||
timeout: {
|
||||
type: 'number',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Timeout in seconds (default: actor default)',
|
||||
},
|
||||
build: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Actor build to run (e.g., "latest", "beta", or build tag/number)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => {
|
||||
const encodedActorId = encodeURIComponent(params.actorId)
|
||||
const baseUrl = `https://api.apify.com/v2/acts/${encodedActorId}/runs`
|
||||
const queryParams = new URLSearchParams()
|
||||
|
||||
queryParams.set('token', params.apiKey)
|
||||
|
||||
if (params.waitForFinish !== undefined) {
|
||||
const waitTime = Math.max(0, Math.min(params.waitForFinish, 60))
|
||||
queryParams.set('waitForFinish', waitTime.toString())
|
||||
}
|
||||
if (params.timeout) {
|
||||
queryParams.set('timeout', params.timeout.toString())
|
||||
}
|
||||
if (params.build) {
|
||||
queryParams.set('build', params.build)
|
||||
}
|
||||
|
||||
return `${baseUrl}?${queryParams.toString()}`
|
||||
},
|
||||
method: 'POST',
|
||||
headers: (params) => ({
|
||||
Authorization: `Bearer ${params.apiKey}`,
|
||||
'Content-Type': 'application/json',
|
||||
}),
|
||||
body: (params) => {
|
||||
let inputData = {}
|
||||
if (params.input) {
|
||||
try {
|
||||
inputData = JSON.parse(params.input)
|
||||
} catch (e) {
|
||||
throw new Error('Invalid JSON in input parameter')
|
||||
}
|
||||
}
|
||||
return inputData
|
||||
},
|
||||
},
|
||||
|
||||
transformResponse: async (response) => {
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text()
|
||||
return {
|
||||
success: false,
|
||||
output: { success: false, runId: '', status: 'ERROR' },
|
||||
error: `APIFY API error: ${errorText}`,
|
||||
}
|
||||
}
|
||||
|
||||
const data = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: data.data,
|
||||
}
|
||||
},
|
||||
|
||||
postProcess: async (result, params) => {
|
||||
if (!result.success) {
|
||||
return result
|
||||
}
|
||||
|
||||
const runData = result.output as any
|
||||
const runId = runData.id
|
||||
|
||||
let elapsedTime = 0
|
||||
|
||||
while (elapsedTime < MAX_POLL_TIME_MS) {
|
||||
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS))
|
||||
elapsedTime += POLL_INTERVAL_MS
|
||||
|
||||
const encodedActorId = encodeURIComponent(params.actorId)
|
||||
const statusResponse = await fetch(
|
||||
`https://api.apify.com/v2/acts/${encodedActorId}/runs/${runId}?token=${params.apiKey}`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${params.apiKey}`,
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
if (!statusResponse.ok) {
|
||||
return {
|
||||
success: false,
|
||||
output: { success: false, runId, status: 'UNKNOWN' },
|
||||
error: 'Failed to fetch run status',
|
||||
}
|
||||
}
|
||||
|
||||
const statusData = await statusResponse.json()
|
||||
const run = statusData.data
|
||||
|
||||
if (
|
||||
run.status === 'SUCCEEDED' ||
|
||||
run.status === 'FAILED' ||
|
||||
run.status === 'ABORTED' ||
|
||||
run.status === 'TIMED-OUT'
|
||||
) {
|
||||
if (run.status === 'SUCCEEDED') {
|
||||
const limit = Math.max(1, Math.min(params.itemLimit || 100, 250000))
|
||||
const itemsResponse = await fetch(
|
||||
`https://api.apify.com/v2/datasets/${run.defaultDatasetId}/items?token=${params.apiKey}&limit=${limit}`,
|
||||
{
|
||||
headers: {
|
||||
Authorization: `Bearer ${params.apiKey}`,
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
if (itemsResponse.ok) {
|
||||
const items = await itemsResponse.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
success: true,
|
||||
runId,
|
||||
status: run.status,
|
||||
datasetId: run.defaultDatasetId,
|
||||
items,
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
success: run.status === 'SUCCEEDED',
|
||||
output: {
|
||||
success: run.status === 'SUCCEEDED',
|
||||
runId,
|
||||
status: run.status,
|
||||
datasetId: run.defaultDatasetId,
|
||||
},
|
||||
error: run.status !== 'SUCCEEDED' ? `Actor run ${run.status}` : undefined,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
success: false,
|
||||
output: {
|
||||
success: false,
|
||||
runId,
|
||||
status: 'TIMEOUT',
|
||||
},
|
||||
error: 'Actor run timed out after 5 minutes of polling',
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
success: { type: 'boolean', description: 'Whether the actor run succeeded' },
|
||||
runId: { type: 'string', description: 'APIFY run ID' },
|
||||
status: { type: 'string', description: 'Run status (SUCCEEDED, FAILED, etc.)' },
|
||||
datasetId: { type: 'string', description: 'Dataset ID containing results' },
|
||||
items: { type: 'array', description: 'Dataset items (if completed)' },
|
||||
},
|
||||
}
|
||||
107
apps/sim/tools/apify/run_actor_sync.ts
Normal file
107
apps/sim/tools/apify/run_actor_sync.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import type { ToolConfig } from '@/tools/types'
|
||||
import type { RunActorParams, RunActorResult } from './types'
|
||||
|
||||
export const apifyRunActorSyncTool: ToolConfig<RunActorParams, RunActorResult> = {
|
||||
id: 'apify_run_actor_sync',
|
||||
name: 'APIFY Run Actor (Sync)',
|
||||
description: 'Run an APIFY actor synchronously and get results (max 5 minutes)',
|
||||
version: '1.0.0',
|
||||
|
||||
params: {
|
||||
apiKey: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
visibility: 'user-only',
|
||||
description: 'APIFY API token from console.apify.com/account#/integrations',
|
||||
},
|
||||
actorId: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Actor ID or username/actor-name (e.g., "janedoe/my-actor" or actor ID)',
|
||||
},
|
||||
input: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Actor input as JSON string. See actor documentation for required fields.',
|
||||
},
|
||||
timeout: {
|
||||
type: 'number',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Timeout in seconds (default: actor default)',
|
||||
},
|
||||
build: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
visibility: 'user-or-llm',
|
||||
description: 'Actor build to run (e.g., "latest", "beta", or build tag/number)',
|
||||
},
|
||||
},
|
||||
|
||||
request: {
|
||||
url: (params) => {
|
||||
const encodedActorId = encodeURIComponent(params.actorId)
|
||||
const baseUrl = `https://api.apify.com/v2/acts/${encodedActorId}/run-sync-get-dataset-items`
|
||||
const queryParams = new URLSearchParams()
|
||||
|
||||
queryParams.set('token', params.apiKey)
|
||||
|
||||
if (params.timeout) {
|
||||
queryParams.set('timeout', params.timeout.toString())
|
||||
}
|
||||
if (params.build) {
|
||||
queryParams.set('build', params.build)
|
||||
}
|
||||
|
||||
return `${baseUrl}?${queryParams.toString()}`
|
||||
},
|
||||
method: 'POST',
|
||||
headers: (params) => ({
|
||||
Authorization: `Bearer ${params.apiKey}`,
|
||||
'Content-Type': 'application/json',
|
||||
}),
|
||||
body: (params) => {
|
||||
let inputData = {}
|
||||
if (params.input) {
|
||||
try {
|
||||
inputData = JSON.parse(params.input)
|
||||
} catch (e) {
|
||||
throw new Error('Invalid JSON in input parameter')
|
||||
}
|
||||
}
|
||||
return inputData
|
||||
},
|
||||
},
|
||||
|
||||
transformResponse: async (response) => {
|
||||
if (!response.ok) {
|
||||
const errorText = await response.text()
|
||||
return {
|
||||
success: false,
|
||||
output: { success: false, runId: '', status: 'ERROR', items: [] },
|
||||
error: `APIFY API error: ${errorText}`,
|
||||
}
|
||||
}
|
||||
|
||||
const items = await response.json()
|
||||
return {
|
||||
success: true,
|
||||
output: {
|
||||
success: true,
|
||||
runId: 'sync-execution',
|
||||
status: 'SUCCEEDED',
|
||||
items,
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
outputs: {
|
||||
success: { type: 'boolean', description: 'Whether the actor run succeeded' },
|
||||
runId: { type: 'string', description: 'APIFY run ID' },
|
||||
status: { type: 'string', description: 'Run status (SUCCEEDED, FAILED, etc.)' },
|
||||
datasetId: { type: 'string', description: 'Dataset ID containing results' },
|
||||
items: { type: 'array', description: 'Dataset items (if completed)' },
|
||||
},
|
||||
}
|
||||
54
apps/sim/tools/apify/types.ts
Normal file
54
apps/sim/tools/apify/types.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import type { ToolResponse } from '@/tools/types'
|
||||
|
||||
export interface ApifyActor {
|
||||
id: string
|
||||
name: string
|
||||
username: string
|
||||
description?: string
|
||||
stats?: {
|
||||
lastRunStartedAt?: string
|
||||
}
|
||||
}
|
||||
|
||||
export interface RunActorParams {
|
||||
apiKey: string
|
||||
actorId: string
|
||||
input?: string
|
||||
waitForFinish?: number // For async tool: 0-60 seconds initial wait
|
||||
itemLimit?: number // For async tool: 1-250000 items, default 100
|
||||
timeout?: number
|
||||
build?: string // Actor build to run (e.g., "latest", "beta", build tag/number)
|
||||
}
|
||||
|
||||
export interface ApifyRun {
|
||||
id: string
|
||||
actId: string
|
||||
status:
|
||||
| 'READY'
|
||||
| 'RUNNING'
|
||||
| 'SUCCEEDED'
|
||||
| 'FAILED'
|
||||
| 'ABORTED'
|
||||
| 'TIMED-OUT'
|
||||
| 'ABORTING'
|
||||
| 'TIMING-OUT'
|
||||
startedAt: string
|
||||
finishedAt?: string
|
||||
defaultDatasetId: string
|
||||
defaultKeyValueStoreId: string
|
||||
}
|
||||
|
||||
export interface RunActorResult extends ToolResponse {
|
||||
output: {
|
||||
success: boolean
|
||||
runId: string
|
||||
status: string
|
||||
datasetId?: string
|
||||
items?: any[]
|
||||
stats?: {
|
||||
inputRecords?: number
|
||||
outputRecords?: number
|
||||
duration?: number
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
airtableListRecordsTool,
|
||||
airtableUpdateRecordTool,
|
||||
} from '@/tools/airtable'
|
||||
import { apifyRunActorAsyncTool, apifyRunActorSyncTool } from '@/tools/apify'
|
||||
import {
|
||||
apolloAccountBulkCreateTool,
|
||||
apolloAccountBulkUpdateTool,
|
||||
@@ -1404,6 +1405,8 @@ export const tools: Record<string, ToolConfig> = {
|
||||
airtable_get_record: airtableGetRecordTool,
|
||||
airtable_list_records: airtableListRecordsTool,
|
||||
airtable_update_record: airtableUpdateRecordTool,
|
||||
apify_run_actor_sync: apifyRunActorSyncTool,
|
||||
apify_run_actor_async: apifyRunActorAsyncTool,
|
||||
apollo_people_search: apolloPeopleSearchTool,
|
||||
apollo_people_enrich: apolloPeopleEnrichTool,
|
||||
apollo_people_bulk_enrich: apolloPeopleBulkEnrichTool,
|
||||
|
||||
Reference in New Issue
Block a user