Icons.tsx 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import { useTheme } from 'next-themes'
  2. export interface IconProps {
  3. isSelected?: boolean
  4. }
  5. export const ServiceRoleIcon = ({ isSelected = false }: IconProps) => {
  6. const { resolvedTheme } = useTheme()
  7. return (
  8. <svg width="53" height="17" fill="none" xmlns="http://www.w3.org/2000/svg">
  9. <g opacity={isSelected ? '1' : '.5'}>
  10. <rect
  11. x="37.161"
  12. y=".53"
  13. width="15"
  14. height="15"
  15. rx="5.5"
  16. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  17. />
  18. <path d="M1 10.53h32.214" stroke="#33A7E9" strokeLinecap="round" strokeDasharray="2 2" />
  19. <rect
  20. x="15.964"
  21. y=".53"
  22. width="9"
  23. height="15"
  24. rx="4.5"
  25. stroke={resolvedTheme === 'light' ? '#7E868C' : '#7E7E7E'}
  26. />
  27. <path d="M1 5.53h32.214" stroke="#33A7E9" strokeLinecap="round" strokeDasharray="2 2" />
  28. </g>
  29. </svg>
  30. )
  31. }
  32. export const AnonIcon = ({ isSelected = false }: IconProps) => {
  33. const { resolvedTheme } = useTheme()
  34. return (
  35. <svg width="53" height="17" fill="none" xmlns="http://www.w3.org/2000/svg">
  36. <g opacity={isSelected ? '1' : '.5'}>
  37. <path
  38. d="M1 4.994a.5.5 0 0 0 0 1v-1Zm16.218 1h.5v-1h-.5v1ZM1 5.994h1.014v-1H1v1Zm3.04 0h2.028v-1H4.041v1Zm4.056 0h2.027v-1H8.096v1Zm4.054 0h2.027v-1H12.15v1Zm4.055 0h1.013v-1h-1.013v1Z"
  39. fill={resolvedTheme === 'light' ? '#7E868C' : '#7E7E7E'}
  40. />
  41. <path
  42. d="m15.92 12.56 9.04-9.04"
  43. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  44. />
  45. <rect
  46. x="15.964"
  47. y=".494"
  48. width="9"
  49. height="15"
  50. rx="4.5"
  51. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  52. />
  53. <rect
  54. x="37.161"
  55. y=".744"
  56. width="15"
  57. height="15"
  58. rx="5.5"
  59. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  60. />
  61. <path d="M1 10.494h32.214" stroke="#33A7E9" strokeLinecap="round" strokeDasharray="2 2" />
  62. <path
  63. d="M15.96 7.562 22.568.956M19.049 14.885l5.957-5.958"
  64. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  65. />
  66. </g>
  67. </svg>
  68. )
  69. }
  70. export const AuthenticatedIcon = ({ isSelected = false }: IconProps) => {
  71. const { resolvedTheme } = useTheme()
  72. return (
  73. <svg width="68" height="17" fill="none" xmlns="http://www.w3.org/2000/svg">
  74. <g opacity={isSelected ? '1' : '.5'}>
  75. <path
  76. d="M15.63 5.156a.5.5 0 1 0 0 1v-1Zm16.218 1h.5v-1h-.5v1Zm-16.218 0h1.013v-1H15.63v1Zm3.04 0h2.028v-1h-2.027v1Zm4.055 0h2.028v-1h-2.028v1Zm4.055 0h2.027v-1H26.78v1Zm4.055 0h1.013v-1h-1.013v1Z"
  77. fill={resolvedTheme === 'light' ? '#7E868C' : '#7E7E7E'}
  78. />
  79. <path
  80. d="m30.55 12.722 9.04-9.04"
  81. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  82. />
  83. <rect
  84. x="30.594"
  85. y=".656"
  86. width="9"
  87. height="15"
  88. rx="4.5"
  89. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  90. />
  91. <rect
  92. x="51.791"
  93. y=".906"
  94. width="15"
  95. height="15"
  96. rx="5.5"
  97. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  98. />
  99. <path
  100. d="M15.63 10.656h32.214"
  101. stroke="#33A7E9"
  102. strokeLinecap="round"
  103. strokeDasharray="2 2"
  104. />
  105. <path
  106. d="m30.59 7.724 6.607-6.606M33.679 15.047l5.957-5.958"
  107. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  108. />
  109. <path
  110. d="M12.666 14.281v-1.333A2.667 2.667 0 0 0 10 10.28H6a2.667 2.667 0 0 0-2.667 2.667v1.333M8 7.615A2.667 2.667 0 1 0 8 2.28a2.667 2.667 0 0 0 0 5.334Z"
  111. stroke={resolvedTheme === 'light' ? '#11181C' : '#EDEDED'}
  112. strokeLinecap="round"
  113. strokeLinejoin="round"
  114. />
  115. </g>
  116. </svg>
  117. )
  118. }