@syscore/ui-library 1.1.10 → 1.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/client/App.tsx +47 -0
  2. package/client/components/icons/ConceptIcons.tsx +667 -0
  3. package/client/components/icons/NavAccount.tsx +31 -0
  4. package/client/components/icons/NavBullet.tsx +19 -0
  5. package/client/components/icons/NavLogo.tsx +36 -0
  6. package/client/components/icons/ProviderBadges.tsx +295 -0
  7. package/client/components/icons/ProviderSeals.tsx +319 -0
  8. package/client/components/icons/SealHealthSafetyRating.tsx +65 -0
  9. package/client/components/icons/SealIwbiMember.tsx +86 -0
  10. package/client/components/icons/SealWell.tsx +84 -0
  11. package/client/components/icons/SealWellCertification.tsx +138 -0
  12. package/client/components/icons/SealWellCommunity.tsx +122 -0
  13. package/client/components/icons/SealWellResidence.tsx +122 -0
  14. package/client/components/icons/SealWorksWithWell.tsx +140 -0
  15. package/client/components/icons/UtilityAccordion.tsx +21 -0
  16. package/client/components/icons/UtilityChevronDown.tsx +36 -0
  17. package/client/components/icons/UtilityClassification.tsx +45 -0
  18. package/client/components/icons/UtilityClose.tsx +41 -0
  19. package/client/components/icons/UtilityDrag.tsx +69 -0
  20. package/client/components/icons/UtilityEdit.tsx +42 -0
  21. package/client/components/icons/UtilityOptions.tsx +45 -0
  22. package/client/components/icons/UtilityPortfolio.tsx +87 -0
  23. package/client/components/icons/UtilityReset.tsx +41 -0
  24. package/client/components/icons/UtilityScoring.tsx +43 -0
  25. package/client/components/icons/UtilitySearch.tsx +38 -0
  26. package/client/components/icons/UtilitySort.tsx +52 -0
  27. package/client/components/icons/UtilityText.tsx +34 -0
  28. package/client/components/icons/WaterMarkWWWProducts.tsx +26 -0
  29. package/client/components/icons/WaterMarkWellProjects.tsx +30 -0
  30. package/client/components/icons/WatermarkMemberOrg.tsx +59 -0
  31. package/client/components/icons/WellSeal.tsx +79 -0
  32. package/client/components/icons/X.tsx +35 -0
  33. package/client/hooks/UseTabs.tsx +35 -0
  34. package/client/hooks/use-mobile.tsx +21 -0
  35. package/client/hooks/use-segmented-control.ts +42 -0
  36. package/client/hooks/use-toast.ts +188 -0
  37. package/client/pages/Index.tsx +88 -0
  38. package/client/pages/NotFound.tsx +29 -0
  39. package/client/ui/Accordion/Accordion.stories.tsx +74 -0
  40. package/client/ui/Alert/Alert.stories.tsx +82 -0
  41. package/client/ui/AlertDialog/AlertDialog.stories.tsx +106 -0
  42. package/client/ui/AspectRatio.stories.tsx +78 -0
  43. package/client/ui/Avatar/Avatar.stories.tsx +94 -0
  44. package/client/ui/Badge/Badge.stories.tsx +60 -0
  45. package/client/ui/Breadcrumb/Breadcrumb.stories.tsx +97 -0
  46. package/client/ui/Button.stories.tsx +429 -0
  47. package/client/ui/Calendar/Calendar.stories.tsx +99 -0
  48. package/client/ui/Card.stories.tsx +84 -0
  49. package/client/ui/Carousel/Carousel.stories.tsx +85 -0
  50. package/client/ui/Chart/Chart.stories.tsx +58 -0
  51. package/client/ui/Checkbox/Checkbox.stories.tsx +112 -0
  52. package/client/ui/Collapsible/Collapsible.stories.tsx +101 -0
  53. package/client/ui/Colors.stories.tsx +1041 -0
  54. package/client/ui/Command/Command.stories.tsx +97 -0
  55. package/client/ui/ContextMenu/ContextMenu.stories.tsx +74 -0
  56. package/client/ui/Dialog.stories.tsx +69 -0
  57. package/client/ui/Drawer/Drawer.stories.tsx +87 -0
  58. package/client/ui/DropdownMenu/DropdownMenu.stories.tsx +139 -0
  59. package/client/ui/Form/Form.stories.tsx +74 -0
  60. package/client/ui/HoverCard/HoverCard.stories.tsx +94 -0
  61. package/client/ui/Icons.stories.tsx +328 -0
  62. package/client/ui/Input/Input.stories.tsx +69 -0
  63. package/client/ui/InputOTP/InputOTP.stories.tsx +85 -0
  64. package/client/ui/Label.stories.tsx +66 -0
  65. package/client/ui/Menubar/Menubar.stories.tsx +88 -0
  66. package/client/ui/Navigation.stories.tsx +57 -0
  67. package/client/ui/NavigationMenu/NavigationMenu.stories.tsx +106 -0
  68. package/client/ui/Pagination/Pagination.stories.tsx +115 -0
  69. package/client/ui/Popover/Popover.stories.tsx +99 -0
  70. package/client/ui/Progress/Progress.stories.tsx +63 -0
  71. package/client/ui/RadioGroup/RadioGroup.stories.tsx +110 -0
  72. package/client/ui/Resizable/Resizable.stories.tsx +88 -0
  73. package/client/ui/ScrollArea/ScrollArea.stories.tsx +64 -0
  74. package/client/ui/SearchField.stories.tsx +63 -0
  75. package/client/ui/Select/Select.stories.tsx +111 -0
  76. package/client/ui/Separator/Separator.stories.tsx +67 -0
  77. package/client/ui/Sheet/Sheet.stories.tsx +138 -0
  78. package/client/ui/Sidebar/Sidebar.stories.tsx +92 -0
  79. package/client/ui/Skeleton/Skeleton.stories.tsx +65 -0
  80. package/client/ui/Slider/Slider.stories.tsx +101 -0
  81. package/client/ui/Sonner/Sonner.stories.tsx +48 -0
  82. package/client/ui/StrategyTable.stories.tsx +138 -0
  83. package/client/ui/Switch/Switch.stories.tsx +96 -0
  84. package/client/ui/Table/Table.stories.tsx +135 -0
  85. package/client/ui/Tabs.stories.tsx +33 -0
  86. package/client/ui/Tag.stories.tsx +190 -0
  87. package/client/ui/Textarea/Textarea.stories.tsx +56 -0
  88. package/client/ui/Toast/Toast.stories.tsx +76 -0
  89. package/client/ui/Toaster/Toaster.stories.tsx +52 -0
  90. package/client/ui/Toggle.stories.tsx +248 -0
  91. package/client/ui/ToggleGroup/ToggleGroup.stories.tsx +88 -0
  92. package/client/ui/Tooltip.stories.tsx +72 -0
  93. package/client/ui/Typography.stories.tsx +421 -0
  94. package/client/ui/WELLDashboard/WELLDashboard.stories.tsx +115 -0
  95. package/client/ui/WELLDashboard/index.tsx +221 -0
  96. package/client/vite-env.d.ts +1 -0
  97. package/dist/ui/index.cjs.js +1 -1
  98. package/dist/ui/index.d.ts +1 -0
  99. package/dist/ui/index.es.js +163 -1
  100. package/package.json +2 -1
@@ -0,0 +1,667 @@
1
+ import React from "react";
2
+ import { cn } from "../../lib/utils";
3
+
4
+ // Concept icons matching the WELL Building Standard Figma design
5
+ // Each icon represents a different concept with active/inactive states
6
+
7
+ interface ConceptIconProps {
8
+ className?: string;
9
+ active?: boolean;
10
+ }
11
+
12
+ const CIRCLE_BG_PATH =
13
+ "M24 48C21.931 48 19.7793 47.7517 17.7931 47.1724C15.8069 46.5931 13.8207 45.8483 12 44.7724C10.1793 43.6966 8.52414 42.4552 7.03448 40.9655C5.54483 39.4759 4.30345 37.8207 3.22759 36C2.15172 34.1793 1.4069 32.2759 0.827586 30.2069C0.248276 28.2207 0 26.069 0 24C0 21.931 0.248276 19.7793 0.827586 17.7931C1.4069 15.8069 2.15172 13.8207 3.22759 12C4.30345 10.1793 5.54483 8.52414 7.03448 7.03448C8.52414 5.54483 10.1793 4.30345 12 3.22759C13.8207 2.15172 15.7241 1.4069 17.7931 0.827586C19.7793 0.248276 21.931 0 24 0C26.069 0 28.2207 0.248276 30.2069 0.827586C32.1931 1.4069 34.1793 2.15172 36 3.22759C37.8207 4.30345 39.4759 5.54483 40.9655 7.03448C42.4552 8.52414 43.6966 10.1793 44.7724 12C45.8483 13.8207 46.5931 15.7241 47.1724 17.7931C47.7517 19.7793 48 21.931 48 24C48 26.069 47.7517 28.2207 47.1724 30.2069C46.5931 32.1931 45.8483 34.1793 44.7724 36C43.6966 37.8207 42.4552 39.4759 40.9655 40.9655C39.4759 42.4552 37.8207 43.6966 36 44.7724C34.1793 45.8483 32.2759 46.5931 30.2069 47.1724C28.2207 47.7517 26.069 48 24 48Z";
14
+
15
+ export const IconConceptMind: React.FC<ConceptIconProps> = ({
16
+ className,
17
+ active = true,
18
+ }) => {
19
+ const bgFill = active ? "#0A5161" : "#EFF5FB";
20
+ const strokeColor = active ? "white" : "#2E74AD";
21
+
22
+ return (
23
+ <svg
24
+ width="48"
25
+ height="48"
26
+ viewBox="0 0 48 48"
27
+ fill="none"
28
+ xmlns="http://www.w3.org/2000/svg"
29
+ className={cn("size-12", className)}
30
+ >
31
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
32
+ <g id="icon_2">
33
+ <path
34
+ id="vector"
35
+ d="M23.9982 15.6098C23.9996 15.1299 23.9051 14.6546 23.7201 14.2119C23.5352 13.7691 23.2635 13.3678 22.9212 13.0315C22.5789 12.6952 22.1727 12.4308 21.7267 12.2538C21.2807 12.0768 20.8038 11.9908 20.3241 12.0008C19.8443 12.0108 19.3714 12.1166 18.9331 12.3121C18.4949 12.5075 18.1002 12.7886 17.7721 13.1388C17.4441 13.4891 17.1894 13.9014 17.0231 14.3515C16.8567 14.8016 16.7821 15.2804 16.8035 15.7597C16.0983 15.9411 15.4436 16.2805 14.889 16.7523C14.3344 17.2241 13.8944 17.8159 13.6024 18.4829C13.3104 19.15 13.174 19.8747 13.2036 20.6022C13.2331 21.3298 13.4278 22.041 13.773 22.6822C13.1661 23.1752 12.6889 23.809 12.3829 24.5285C12.0769 25.2479 11.9512 26.0313 12.017 26.8104C12.0828 27.5895 12.3379 28.3407 12.7602 28.9988C13.1825 29.6568 13.7591 30.2016 14.44 30.586C14.3559 31.2365 14.4061 31.8974 14.5874 32.5277C14.7688 33.1581 15.0774 33.7446 15.4943 34.2511C15.9112 34.7575 16.4275 35.1731 17.0113 35.4722C17.5951 35.7712 18.234 35.9475 18.8886 35.9899C19.5431 36.0324 20.1995 35.9402 20.817 35.7191C21.4346 35.498 22.0002 35.1526 22.4791 34.7043C22.9579 34.256 23.3398 33.7143 23.6011 33.1127C23.8624 32.511 23.9975 31.8622 23.9982 31.2062V15.6098Z"
36
+ stroke={strokeColor}
37
+ strokeWidth="1.5"
38
+ strokeLinecap="round"
39
+ strokeLinejoin="round"
40
+ />
41
+ <path
42
+ id="vector_2"
43
+ d="M23.9982 15.6098C23.9967 15.1299 24.0913 14.6546 24.2763 14.2119C24.4612 13.7691 24.7329 13.3678 25.0752 13.0315C25.4175 12.6952 25.8236 12.4308 26.2696 12.2538C26.7157 12.0768 27.1926 11.9908 27.6723 12.0008C28.1521 12.0108 28.625 12.1166 29.0632 12.3121C29.5015 12.5075 29.8962 12.7886 30.2242 13.1388C30.5523 13.4891 30.8069 13.9014 30.9733 14.3515C31.1397 14.8016 31.2143 15.2804 31.1929 15.7597C31.8981 15.9411 32.5528 16.2805 33.1074 16.7523C33.662 17.2241 34.102 17.8159 34.394 18.4829C34.686 19.15 34.8224 19.8747 34.7928 20.6022C34.7633 21.3298 34.5686 22.041 34.2234 22.6822C34.8303 23.1752 35.3075 23.809 35.6135 24.5285C35.9195 25.2479 36.0451 26.0313 35.9794 26.8104C35.9136 27.5895 35.6585 28.3407 35.2362 28.9988C34.8139 29.6568 34.2373 30.2016 33.5564 30.586C33.6404 31.2365 33.5903 31.8974 33.4089 32.5277C33.2276 33.1581 32.919 33.7446 32.5021 34.2511C32.0852 34.7575 31.5689 35.1731 30.9851 35.4722C30.4013 35.7712 29.7624 35.9475 29.1078 35.9899C28.4532 36.0324 27.7969 35.9402 27.1794 35.7191C26.5618 35.498 25.9961 35.1526 25.5173 34.7043C25.0384 34.256 24.6566 33.7143 24.3953 33.1127C24.134 32.511 23.9989 31.8622 23.9982 31.2062V15.6098Z"
44
+ stroke={strokeColor}
45
+ strokeWidth="1.5"
46
+ strokeLinecap="round"
47
+ strokeLinejoin="round"
48
+ />
49
+ <path
50
+ id="vector_3"
51
+ d="M27.5973 25.2076C26.5901 24.8533 25.7105 24.2082 25.0699 23.354C24.4292 22.4998 24.0563 21.4749 23.9981 20.4087C23.94 21.4749 23.567 22.4998 22.9264 23.354C22.2857 24.2082 21.4062 24.8533 20.399 25.2076"
52
+ stroke={strokeColor}
53
+ strokeWidth="1.5"
54
+ strokeLinecap="round"
55
+ strokeLinejoin="round"
56
+ />
57
+ <path
58
+ id="vector_4"
59
+ d="M30.7155 17.4094C31.0059 16.9062 31.1701 16.3402 31.1942 15.7598"
60
+ stroke={strokeColor}
61
+ strokeWidth="1.5"
62
+ strokeLinecap="round"
63
+ strokeLinejoin="round"
64
+ />
65
+ <path
66
+ id="vector_5"
67
+ d="M16.8033 15.7598C16.827 16.3401 16.9908 16.9061 17.2808 17.4094"
68
+ stroke={strokeColor}
69
+ strokeWidth="1.5"
70
+ strokeLinecap="round"
71
+ strokeLinejoin="round"
72
+ />
73
+ <path
74
+ id="vector_6"
75
+ d="M13.7729 22.6834C13.9924 22.5046 14.2273 22.3456 14.4748 22.2083"
76
+ stroke={strokeColor}
77
+ strokeWidth="1.5"
78
+ strokeLinecap="round"
79
+ strokeLinejoin="round"
80
+ />
81
+ <path
82
+ id="vector_7"
83
+ d="M33.5215 22.2083C33.769 22.3456 34.0039 22.5046 34.2234 22.6834"
84
+ stroke={strokeColor}
85
+ strokeWidth="1.5"
86
+ strokeLinecap="round"
87
+ strokeLinejoin="round"
88
+ />
89
+ <path
90
+ id="vector_8"
91
+ d="M16.7997 31.2062C15.9729 31.2066 15.16 30.9934 14.4399 30.5872"
92
+ stroke={strokeColor}
93
+ strokeWidth="1.5"
94
+ strokeLinecap="round"
95
+ strokeLinejoin="round"
96
+ />
97
+ <path
98
+ id="vector_9"
99
+ d="M33.5564 30.5872C32.8362 30.9934 32.0233 31.2066 31.1965 31.2062"
100
+ stroke={strokeColor}
101
+ strokeWidth="1.5"
102
+ strokeLinecap="round"
103
+ strokeLinejoin="round"
104
+ />
105
+ </g>
106
+ </svg>
107
+ );
108
+ };
109
+
110
+ export const IconConceptCommunity: React.FC<ConceptIconProps> = ({
111
+ className,
112
+ active = true,
113
+ }) => {
114
+ const bgFill = active ? "#0F748A" : "#EFF5FB";
115
+ const strokeColor = active ? "white" : "#2E74AD";
116
+
117
+ return (
118
+ <svg
119
+ width="48"
120
+ height="48"
121
+ viewBox="0 0 48 48"
122
+ fill="none"
123
+ xmlns="http://www.w3.org/2000/svg"
124
+ className={cn("size-12", className)}
125
+ >
126
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
127
+ <g id="icon_2">
128
+ <path
129
+ id="vector"
130
+ d="M32.4 28.2C34.188 26.448 36 24.348 36 21.6C36 19.8496 35.3046 18.1708 34.0669 16.9331C32.8292 15.6954 31.1504 15 29.4 15C27.288 15 25.8 15.6 24 17.4C22.2 15.6 20.712 15 18.6 15C16.8496 15 15.1708 15.6954 13.9331 16.9331C12.6954 18.1708 12 19.8496 12 21.6C12 24.36 13.8 26.46 15.6 28.2L24 36.6L32.4 28.2Z"
131
+ stroke={strokeColor}
132
+ strokeWidth="1.5"
133
+ strokeLinecap="round"
134
+ strokeLinejoin="round"
135
+ />
136
+ <path
137
+ id="vector_2"
138
+ d="M24.0001 17.4L20.4481 20.952C20.2043 21.194 20.0108 21.4819 19.8787 21.7991C19.7467 22.1163 19.6787 22.4564 19.6787 22.8C19.6787 23.1436 19.7467 23.4837 19.8787 23.8009C20.0108 24.1181 20.2043 24.406 20.4481 24.648C21.4321 25.632 23.0041 25.668 24.0481 24.732L26.5321 22.452C27.1547 21.887 27.9654 21.5741 28.8061 21.5741C29.6469 21.5741 30.4575 21.887 31.0801 22.452L34.6321 25.644"
139
+ stroke={strokeColor}
140
+ strokeWidth="1.5"
141
+ strokeLinecap="round"
142
+ strokeLinejoin="round"
143
+ />
144
+ <path
145
+ id="vector_3"
146
+ d="M31.2 29.4L28.8 27"
147
+ stroke={strokeColor}
148
+ strokeWidth="1.5"
149
+ strokeLinecap="round"
150
+ strokeLinejoin="round"
151
+ />
152
+ <path
153
+ id="vector_4"
154
+ d="M27.6 33L25.2 30.6"
155
+ stroke={strokeColor}
156
+ strokeWidth="1.5"
157
+ strokeLinecap="round"
158
+ strokeLinejoin="round"
159
+ />
160
+ </g>
161
+ </svg>
162
+ );
163
+ };
164
+
165
+ export const IconConceptMovement: React.FC<ConceptIconProps> = ({
166
+ className,
167
+ active = true,
168
+ }) => {
169
+ const bgFill = active ? "#149EBD" : "#EFF5FB";
170
+ const strokeColor = active ? "white" : "#2E74AD";
171
+
172
+ return (
173
+ <svg
174
+ width="48"
175
+ height="48"
176
+ viewBox="0 0 48 48"
177
+ fill="none"
178
+ xmlns="http://www.w3.org/2000/svg"
179
+ className={cn("size-12", className)}
180
+ >
181
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
182
+ <g id="icon_2">
183
+ <path
184
+ id="vector"
185
+ d="M35 24H32.272C31.7913 23.999 31.3234 24.1554 30.94 24.4455C30.5566 24.7355 30.2788 25.1431 30.149 25.606L27.564 34.802C27.5473 34.8591 27.5126 34.9093 27.465 34.945C27.4174 34.9807 27.3595 35 27.3 35C27.2405 35 27.1826 34.9807 27.135 34.945C27.0874 34.9093 27.0527 34.8591 27.036 34.802L20.964 13.198C20.9473 13.1409 20.9126 13.0907 20.865 13.055C20.8174 13.0193 20.7595 13 20.7 13C20.6405 13 20.5826 13.0193 20.535 13.055C20.4874 13.0907 20.4527 13.1409 20.436 13.198L17.851 22.394C17.7217 22.8551 17.4455 23.2614 17.0644 23.5512C16.6832 23.8411 16.2179 23.9986 15.739 24H13"
186
+ stroke={strokeColor}
187
+ strokeWidth="1.5"
188
+ strokeLinecap="round"
189
+ strokeLinejoin="round"
190
+ />
191
+ </g>
192
+ </svg>
193
+ );
194
+ };
195
+
196
+ export const IconConceptWater: React.FC<ConceptIconProps> = ({
197
+ className,
198
+ active = true,
199
+ }) => {
200
+ const bgFill = active ? "#39C9EA" : "#EFF5FB";
201
+ const strokeColor = active ? "white" : "#2E74AD";
202
+
203
+ return (
204
+ <svg
205
+ width="48"
206
+ height="48"
207
+ viewBox="0 0 48 48"
208
+ fill="none"
209
+ xmlns="http://www.w3.org/2000/svg"
210
+ className={cn("size-12", className)}
211
+ >
212
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
213
+ <g id="icon_2">
214
+ <path
215
+ id="vector"
216
+ d="M16.0063 15.7783C15.9894 15.617 16.0066 15.454 16.0568 15.2998C16.1069 15.1456 16.1889 15.0036 16.2974 14.8831C16.4059 14.7626 16.5385 14.6662 16.6866 14.6002C16.8347 14.5342 16.9951 14.5001 17.1572 14.5H30.7972C30.9595 14.5001 31.1199 14.5343 31.2681 14.6003C31.4163 14.6664 31.549 14.7629 31.6575 14.8835C31.766 15.0042 31.848 15.1463 31.898 15.3006C31.9481 15.455 31.9652 15.6181 31.9481 15.7795L29.9867 34.4273C29.9266 34.9965 29.6579 35.5232 29.2324 35.9059C28.8069 36.2886 28.2548 36.5003 27.6825 36.5H20.272C19.6977 36.5031 19.1427 36.2928 18.7148 35.9098C18.2868 35.5268 18.0165 34.9985 17.9562 34.4273L16.0063 15.7783Z"
217
+ stroke={strokeColor}
218
+ strokeWidth="1.5"
219
+ strokeLinecap="round"
220
+ strokeLinejoin="round"
221
+ />
222
+ <path
223
+ id="vector_2"
224
+ d="M17.0299 24.9216C18.032 24.17 19.2509 23.7637 20.5036 23.7637C21.7562 23.7637 22.9751 24.17 23.9772 24.9216C24.9794 25.6732 26.1982 26.0795 27.4509 26.0795C28.7036 26.0795 29.9225 25.6732 30.9246 24.9216"
225
+ stroke={strokeColor}
226
+ strokeWidth="1.5"
227
+ strokeLinecap="round"
228
+ strokeLinejoin="round"
229
+ />
230
+ </g>
231
+ </svg>
232
+ );
233
+ };
234
+
235
+ export const IconConceptAir: React.FC<ConceptIconProps> = ({
236
+ className,
237
+ active = true,
238
+ }) => {
239
+ const bgFill = active ? "#87DFF2" : "#EFF5FB";
240
+ const strokeColor = active ? "white" : "#2E74AD";
241
+
242
+ return (
243
+ <svg
244
+ width="48"
245
+ height="48"
246
+ viewBox="0 0 48 48"
247
+ fill="none"
248
+ xmlns="http://www.w3.org/2000/svg"
249
+ className={cn("size-12", className)}
250
+ >
251
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
252
+ <g id="icon_2">
253
+ <path
254
+ id="vector"
255
+ d="M25.96 32.72C26.2642 32.9482 26.6183 33.1008 26.9931 33.1653C27.3679 33.2297 27.7526 33.2042 28.1156 33.0908C28.4786 32.9774 28.8094 32.7794 29.0809 32.5131C29.3523 32.2467 29.5566 31.9197 29.6768 31.5589C29.7971 31.1982 29.8299 30.814 29.7726 30.4381C29.7152 30.0621 29.5693 29.7052 29.347 29.3967C29.1246 29.0882 28.8321 28.8369 28.4936 28.6637C28.1551 28.4904 27.7803 28.4 27.4 28.4H13"
256
+ stroke={strokeColor}
257
+ strokeWidth="1.5"
258
+ strokeLinecap="round"
259
+ strokeLinejoin="round"
260
+ />
261
+ <path
262
+ id="vector_2"
263
+ d="M31.6 18.8C31.9068 18.3909 32.3131 18.067 32.7803 17.8591C33.2475 17.6512 33.7601 17.5662 34.2694 17.6121C34.7787 17.658 35.2678 17.8334 35.6903 18.1215C36.1128 18.4096 36.4546 18.801 36.6833 19.2584C36.912 19.7157 37.02 20.224 36.997 20.7348C36.974 21.2457 36.8208 21.7422 36.552 22.1772C36.2831 22.6122 35.9075 22.9712 35.4609 23.2203C35.0143 23.4693 34.5114 23.6 34 23.6H13"
264
+ stroke={strokeColor}
265
+ strokeWidth="1.5"
266
+ strokeLinecap="round"
267
+ strokeLinejoin="round"
268
+ />
269
+ <path
270
+ id="vector_3"
271
+ d="M22.36 14.48C22.6642 14.2518 23.0183 14.0992 23.3931 14.0347C23.7679 13.9703 24.1526 13.9958 24.5156 14.1092C24.8786 14.2226 25.2094 14.4206 25.4809 14.6869C25.7523 14.9533 25.9566 15.2803 26.0768 15.6411C26.1971 16.0018 26.2299 16.386 26.1726 16.7619C26.1152 17.1379 25.9693 17.4948 25.747 17.8033C25.5246 18.1118 25.2321 18.3631 24.8936 18.5363C24.5551 18.7096 24.1803 18.8 23.8 18.8H13"
272
+ stroke={strokeColor}
273
+ strokeWidth="1.5"
274
+ strokeLinecap="round"
275
+ strokeLinejoin="round"
276
+ />
277
+ </g>
278
+ </svg>
279
+ );
280
+ };
281
+
282
+ export const IconConceptLight: React.FC<ConceptIconProps> = ({
283
+ className,
284
+ active = true,
285
+ }) => {
286
+ const bgFill = active ? "#8AEFDB" : "#EFF5FB";
287
+ const strokeColor = active ? "white" : "#2E74AD";
288
+
289
+ return (
290
+ <svg
291
+ width="48"
292
+ height="48"
293
+ viewBox="0 0 48 48"
294
+ fill="none"
295
+ xmlns="http://www.w3.org/2000/svg"
296
+ className={cn("size-12", className)}
297
+ >
298
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
299
+ <g id="icon_2">
300
+ <path
301
+ id="vector"
302
+ d="M24 29.6005C27.0928 29.6005 29.6 27.0933 29.6 24.0005C29.6 20.9076 27.0928 18.4004 24 18.4004C20.9072 18.4004 18.4 20.9076 18.4 24.0005C18.4 27.0933 20.9072 29.6005 24 29.6005Z"
303
+ stroke={strokeColor}
304
+ strokeWidth="1.5"
305
+ strokeLinecap="round"
306
+ strokeLinejoin="round"
307
+ />
308
+ <path
309
+ id="vector_2"
310
+ d="M24 10V12.8"
311
+ stroke={strokeColor}
312
+ strokeWidth="1.5"
313
+ strokeLinecap="round"
314
+ strokeLinejoin="round"
315
+ />
316
+ <path
317
+ id="vector_3"
318
+ d="M24 35.2V38"
319
+ stroke={strokeColor}
320
+ strokeWidth="1.5"
321
+ strokeLinecap="round"
322
+ strokeLinejoin="round"
323
+ />
324
+ <path
325
+ id="vector_4"
326
+ d="M14.102 14.1016L16.076 16.0757"
327
+ stroke={strokeColor}
328
+ strokeWidth="1.5"
329
+ strokeLinecap="round"
330
+ strokeLinejoin="round"
331
+ />
332
+ <path
333
+ id="vector_5"
334
+ d="M31.924 31.9244L33.898 33.8984"
335
+ stroke={strokeColor}
336
+ strokeWidth="1.5"
337
+ strokeLinecap="round"
338
+ strokeLinejoin="round"
339
+ />
340
+ <path
341
+ id="vector_6"
342
+ d="M10 24.0002H12.8"
343
+ stroke={strokeColor}
344
+ strokeWidth="1.5"
345
+ strokeLinecap="round"
346
+ strokeLinejoin="round"
347
+ />
348
+ <path
349
+ id="vector_7"
350
+ d="M35.2 24.0002H38"
351
+ stroke={strokeColor}
352
+ strokeWidth="1.5"
353
+ strokeLinecap="round"
354
+ strokeLinejoin="round"
355
+ />
356
+ <path
357
+ id="vector_8"
358
+ d="M16.076 31.9244L14.102 33.8984"
359
+ stroke={strokeColor}
360
+ strokeWidth="1.5"
361
+ strokeLinecap="round"
362
+ strokeLinejoin="round"
363
+ />
364
+ <path
365
+ id="vector_9"
366
+ d="M33.898 14.1016L31.924 16.0757"
367
+ stroke={strokeColor}
368
+ strokeWidth="1.5"
369
+ strokeLinecap="round"
370
+ strokeLinejoin="round"
371
+ />
372
+ </g>
373
+ </svg>
374
+ );
375
+ };
376
+
377
+ export const IconConceptThermalComfort: React.FC<ConceptIconProps> = ({
378
+ className,
379
+ active = true,
380
+ }) => {
381
+ const bgFill = active ? "#3EDDBF" : "#EFF5FB";
382
+ const strokeColor = active ? "white" : "#2E74AD";
383
+
384
+ return (
385
+ <svg
386
+ width="48"
387
+ height="48"
388
+ viewBox="0 0 48 48"
389
+ fill="none"
390
+ xmlns="http://www.w3.org/2000/svg"
391
+ className={cn("size-12", className)}
392
+ >
393
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
394
+ <g id="icon_2">
395
+ <path
396
+ id="vector"
397
+ d="M22.3994 35.4V34.1"
398
+ stroke={strokeColor}
399
+ strokeWidth="1.5"
400
+ strokeLinecap="round"
401
+ strokeLinejoin="round"
402
+ />
403
+ <path
404
+ id="vector_2"
405
+ d="M22.3994 13.3V12"
406
+ stroke={strokeColor}
407
+ strokeWidth="1.5"
408
+ strokeLinecap="round"
409
+ strokeLinejoin="round"
410
+ />
411
+ <path
412
+ id="vector_3"
413
+ d="M22.3998 19.8C21.3655 19.8 20.3735 20.2109 19.6422 20.9423C18.9108 21.6737 18.4999 22.6657 18.4999 23.7C18.4999 24.7343 18.9108 25.7263 19.6422 26.4577C20.3735 27.1891 21.3655 27.6 22.3998 27.6"
414
+ stroke={strokeColor}
415
+ strokeWidth="1.5"
416
+ strokeLinecap="round"
417
+ strokeLinejoin="round"
418
+ />
419
+ <path
420
+ id="vector_4"
421
+ d="M27.6002 34.1L29.2251 30.85L32.8001 31.5"
422
+ stroke={strokeColor}
423
+ strokeWidth="1.5"
424
+ strokeLinecap="round"
425
+ strokeLinejoin="round"
426
+ />
427
+ <path
428
+ id="vector_5"
429
+ d="M27.6002 13.3L29.2251 16.55L32.8001 15.9"
430
+ stroke={strokeColor}
431
+ strokeWidth="1.5"
432
+ strokeLinecap="round"
433
+ strokeLinejoin="round"
434
+ />
435
+ <path
436
+ id="vector_6"
437
+ d="M31.5001 35.4L27.6002 27.6L29.5501 23.7H38"
438
+ stroke={strokeColor}
439
+ strokeWidth="1.5"
440
+ strokeLinecap="round"
441
+ strokeLinejoin="round"
442
+ />
443
+ <path
444
+ id="vector_7"
445
+ d="M31.5001 12L27.6002 19.8L29.5501 23.7"
446
+ stroke={strokeColor}
447
+ strokeWidth="1.5"
448
+ strokeLinecap="round"
449
+ strokeLinejoin="round"
450
+ />
451
+ <path
452
+ id="vector_8"
453
+ d="M12 23.7H13.3"
454
+ stroke={strokeColor}
455
+ strokeWidth="1.5"
456
+ strokeLinecap="round"
457
+ strokeLinejoin="round"
458
+ />
459
+ <path
460
+ id="vector_9"
461
+ d="M35.3994 21.1L33.4494 23.7L35.3994 26.3"
462
+ stroke={strokeColor}
463
+ strokeWidth="1.5"
464
+ strokeLinecap="round"
465
+ strokeLinejoin="round"
466
+ />
467
+ <path
468
+ id="vector_10"
469
+ d="M14.1317 31.968L15.0417 31.058"
470
+ stroke={strokeColor}
471
+ strokeWidth="1.5"
472
+ strokeLinecap="round"
473
+ strokeLinejoin="round"
474
+ />
475
+ <path
476
+ id="vector_11"
477
+ d="M15.0417 16.342L14.1317 15.432"
478
+ stroke={strokeColor}
479
+ strokeWidth="1.5"
480
+ strokeLinecap="round"
481
+ strokeLinejoin="round"
482
+ />
483
+ </g>
484
+ </svg>
485
+ );
486
+ };
487
+
488
+ export const IconConceptNourishment: React.FC<ConceptIconProps> = ({
489
+ className,
490
+ active = true,
491
+ }) => {
492
+ const bgFill = active ? "#17AA8D" : "#EFF5FB";
493
+ const strokeColor = active ? "white" : "#2E74AD";
494
+
495
+ return (
496
+ <svg
497
+ width="48"
498
+ height="48"
499
+ viewBox="0 0 48 48"
500
+ fill="none"
501
+ xmlns="http://www.w3.org/2000/svg"
502
+ className={cn("size-12", className)}
503
+ >
504
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
505
+ <g id="icon_2">
506
+ <path
507
+ id="vector"
508
+ d="M24 38C27.1826 38 30.2348 36.7357 32.4853 34.4853C34.7357 32.2349 36 29.1826 36 26H12C12 29.1826 13.2643 32.2349 15.5147 34.4853C17.7652 36.7357 20.8174 38 24 38Z"
509
+ stroke={strokeColor}
510
+ strokeWidth="1.5"
511
+ strokeLinecap="round"
512
+ strokeLinejoin="round"
513
+ />
514
+ <path
515
+ id="vector_2"
516
+ d="M22.2049 25.9999C21.4536 26.0077 20.7274 25.6987 20.172 25.135C19.6166 24.5713 19.2731 23.7945 19.2103 22.9604C19.1475 22.1263 19.3701 21.2966 19.8335 20.6377C20.2968 19.9789 20.9667 19.5395 21.7087 19.4078C21.5899 18.8222 21.616 18.2116 21.7843 17.6412C21.9525 17.0708 22.2566 16.562 22.6641 16.169C23.0716 15.776 23.5672 15.5137 24.098 15.4099C24.6289 15.3061 25.175 15.3648 25.6783 15.5797C25.8986 15.1933 26.1884 14.8618 26.5294 14.6062C26.8704 14.3507 27.2552 14.1765 27.6595 14.0947C28.0639 14.0129 28.479 14.0253 28.8789 14.131C29.2788 14.2368 29.6546 14.4336 29.9829 14.7091C30.5554 14.2077 31.2731 13.9575 32.0001 14.0059C32.7271 14.0543 33.4129 14.3978 33.9279 14.9715C34.4428 15.5451 34.7512 16.3092 34.7946 17.1191C34.838 17.929 34.6134 18.7285 34.1634 19.3663C34.4435 19.7808 34.6324 20.2628 34.715 20.7734C34.7975 21.284 34.7714 21.8091 34.6386 22.3064C34.5059 22.8037 34.2703 23.2594 33.9508 23.6368C33.6313 24.0143 33.2367 24.303 32.7988 24.4797C32.912 24.9771 32.9247 25.4963 32.8361 25.9999"
517
+ stroke={strokeColor}
518
+ strokeWidth="1.5"
519
+ strokeLinecap="round"
520
+ strokeLinejoin="round"
521
+ />
522
+ <path
523
+ id="vector_3"
524
+ d="M24 26L28.8 20"
525
+ stroke={strokeColor}
526
+ strokeWidth="1.5"
527
+ strokeLinecap="round"
528
+ strokeLinejoin="round"
529
+ />
530
+ <path
531
+ id="vector_4"
532
+ d="M21.6 19.3614C21.0276 18.5441 20.2847 17.9768 19.4681 17.7333C18.6515 17.4898 17.7991 17.5815 17.022 17.9963C16.2448 18.4112 15.579 19.13 15.1113 20.059C14.6437 20.9881 14.3958 22.0843 14.4 23.2048C14.4 24.2251 14.6087 25.1755 14.9635 26"
533
+ stroke={strokeColor}
534
+ strokeWidth="1.5"
535
+ strokeLinecap="round"
536
+ strokeLinejoin="round"
537
+ />
538
+ </g>
539
+ </svg>
540
+ );
541
+ };
542
+
543
+ export const IconConceptSound: React.FC<ConceptIconProps> = ({
544
+ className,
545
+ active = true,
546
+ }) => {
547
+ const bgFill = active ? "#0C705C" : "#EFF5FB";
548
+ const strokeColor = active ? "white" : "#2E74AD";
549
+
550
+ return (
551
+ <svg
552
+ width="48"
553
+ height="48"
554
+ viewBox="0 0 48 48"
555
+ fill="none"
556
+ xmlns="http://www.w3.org/2000/svg"
557
+ className={cn("size-12", className)}
558
+ >
559
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
560
+ <g id="icon_2">
561
+ <path
562
+ id="vector"
563
+ d="M12 21.4002V25.0002"
564
+ stroke={strokeColor}
565
+ strokeWidth="1.5"
566
+ strokeLinecap="round"
567
+ strokeLinejoin="round"
568
+ />
569
+ <path
570
+ id="vector_2"
571
+ d="M16.8 16.5998V29.7998"
572
+ stroke={strokeColor}
573
+ strokeWidth="1.5"
574
+ strokeLinecap="round"
575
+ strokeLinejoin="round"
576
+ />
577
+ <path
578
+ id="vector_3"
579
+ d="M21.6 13V34.6"
580
+ stroke={strokeColor}
581
+ strokeWidth="1.5"
582
+ strokeLinecap="round"
583
+ strokeLinejoin="round"
584
+ />
585
+ <path
586
+ id="vector_4"
587
+ d="M26.4 19V27.4"
588
+ stroke={strokeColor}
589
+ strokeWidth="1.5"
590
+ strokeLinecap="round"
591
+ strokeLinejoin="round"
592
+ />
593
+ <path
594
+ id="vector_5"
595
+ d="M31.2 15.4002V31.0002"
596
+ stroke={strokeColor}
597
+ strokeWidth="1.5"
598
+ strokeLinecap="round"
599
+ strokeLinejoin="round"
600
+ />
601
+ <path
602
+ id="vector_6"
603
+ d="M36 21.4002V25.0002"
604
+ stroke={strokeColor}
605
+ strokeWidth="1.5"
606
+ strokeLinecap="round"
607
+ strokeLinejoin="round"
608
+ />
609
+ </g>
610
+ </svg>
611
+ );
612
+ };
613
+
614
+ export const IconConceptMaterials: React.FC<ConceptIconProps> = ({
615
+ className,
616
+ active = true,
617
+ }) => {
618
+ const bgFill = active ? "#0A4F41" : "#EFF5FB";
619
+ const strokeColor = active ? "white" : "#2E74AD";
620
+
621
+ return (
622
+ <svg
623
+ width="48"
624
+ height="48"
625
+ viewBox="0 0 48 48"
626
+ fill="none"
627
+ xmlns="http://www.w3.org/2000/svg"
628
+ className={cn("size-12", className)}
629
+ >
630
+ <path id="bg" d={CIRCLE_BG_PATH} fill={bgFill} />
631
+ <g id="icon_2">
632
+ <path
633
+ id="vector"
634
+ d="M23.7778 30.1111C23.7778 31.4077 23.2627 32.6512 22.3459 33.5681C21.429 34.4849 20.1855 35 18.8889 35C17.5923 35 16.3488 34.4849 15.4319 33.5681C14.5151 32.6512 14 31.4077 14 30.1111V15.4444C14 14.7961 14.2575 14.1744 14.716 13.716C15.1744 13.2575 15.7961 13 16.4444 13H21.3333C21.9816 13 22.6034 13.2575 23.0618 13.716C23.5202 14.1744 23.7778 14.7961 23.7778 15.4444V30.1111Z"
635
+ stroke={strokeColor}
636
+ strokeWidth="1.5"
637
+ strokeLinecap="round"
638
+ strokeLinejoin="round"
639
+ />
640
+ <path
641
+ id="vector_2"
642
+ d="M30.7444 25.2222H33.5556C34.2039 25.2222 34.8256 25.4798 35.284 25.9382C35.7425 26.3966 36 27.0184 36 27.6667V32.5556C36 33.2039 35.7425 33.8256 35.284 34.284C34.8256 34.7425 34.2039 35 33.5556 35H18.8889"
643
+ stroke={strokeColor}
644
+ strokeWidth="1.5"
645
+ strokeLinecap="round"
646
+ strokeLinejoin="round"
647
+ />
648
+ <path
649
+ id="vector_3"
650
+ d="M18.8889 30.1111H18.9011"
651
+ stroke={strokeColor}
652
+ strokeWidth="1.5"
653
+ strokeLinecap="round"
654
+ strokeLinejoin="round"
655
+ />
656
+ <path
657
+ id="vector_4"
658
+ d="M23.7778 19.1112L26.5889 16.3001C26.8618 16.0262 27.1862 15.809 27.5434 15.6609C27.9005 15.5128 28.2835 15.4368 28.6701 15.4373C29.0568 15.4377 29.4395 15.5146 29.7963 15.6635C30.1532 15.8124 30.477 16.0304 30.7493 16.3049L33.0667 18.6223C33.3485 18.8934 33.5733 19.2181 33.7278 19.5773C33.8823 19.9366 33.9634 20.3231 33.9664 20.7141C33.9694 21.1052 33.8941 21.4929 33.745 21.8544C33.596 22.216 33.3761 22.5441 33.0984 22.8194L22.4333 33.5334"
659
+ stroke={strokeColor}
660
+ strokeWidth="1.5"
661
+ strokeLinecap="round"
662
+ strokeLinejoin="round"
663
+ />
664
+ </g>
665
+ </svg>
666
+ );
667
+ };