uibee 2.17.5 → 3.0.0

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 (181) hide show
  1. package/README.md +34 -0
  2. package/dist/icons-lZYQ6Vlr.js +125 -0
  3. package/dist/src/components/index.d.ts +706 -30
  4. package/dist/src/components/index.js +3243 -44
  5. package/dist/src/hooks/index.d.ts +15 -3
  6. package/dist/src/hooks/index.js +44 -3
  7. package/dist/src/icons/index.d.ts +420 -0
  8. package/dist/src/icons/index.js +3 -0
  9. package/dist/src/styles/index.d.ts +1 -1
  10. package/dist/src/styles/index.js +2 -1
  11. package/dist/src/utils/index.d.ts +38 -5
  12. package/dist/src/utils/index.js +125 -6
  13. package/dist/{src/globals.css → style.css} +890 -678
  14. package/dist/useClickOutside-Cmp-RsP3.js +13 -0
  15. package/index.d.ts +0 -1
  16. package/package.json +22 -23
  17. package/src/components/alert/alert.tsx +20 -18
  18. package/src/components/buttons/button.tsx +28 -35
  19. package/src/components/confirm/confirmPopup.tsx +15 -17
  20. package/src/components/container/accordion.tsx +54 -0
  21. package/src/components/container/glassCard.tsx +14 -0
  22. package/src/components/container/iconBubble.tsx +30 -0
  23. package/src/components/container/leftBarPanel.tsx +15 -0
  24. package/src/components/container/pulseDot.tsx +31 -0
  25. package/src/components/container/statCard.tsx +24 -0
  26. package/src/components/container/tabs.tsx +64 -0
  27. package/src/components/footer/footer.tsx +124 -0
  28. package/src/components/footer/loginContent.tsx +70 -0
  29. package/src/components/index.ts +15 -0
  30. package/src/components/inputs/checkbox.tsx +4 -4
  31. package/src/components/inputs/input.tsx +11 -13
  32. package/src/components/inputs/multiSelect.tsx +144 -0
  33. package/src/components/inputs/radio.tsx +4 -4
  34. package/src/components/inputs/range.tsx +6 -5
  35. package/src/components/inputs/searchInput.tsx +1 -1
  36. package/src/components/inputs/select.tsx +19 -18
  37. package/src/components/inputs/shared/colorPickerPopup.tsx +5 -5
  38. package/src/components/inputs/shared/dateTimePickerPopup.tsx +9 -9
  39. package/src/components/inputs/shared/inputError.tsx +1 -1
  40. package/src/components/inputs/switch.tsx +7 -7
  41. package/src/components/inputs/tagInput.tsx +6 -7
  42. package/src/components/inputs/textarea.tsx +8 -10
  43. package/src/components/inputs/toggle.tsx +6 -6
  44. package/src/components/table/body.tsx +6 -6
  45. package/src/components/table/format.ts +1 -1
  46. package/src/components/table/header.tsx +1 -1
  47. package/src/components/table/pagination.tsx +17 -31
  48. package/src/components/table/table.tsx +2 -2
  49. package/src/components/version/version.tsx +1 -1
  50. package/src/components/vulnerability/constants.ts +6 -6
  51. package/src/components/vulnerability/severityPill.tsx +6 -7
  52. package/src/hooks/index.ts +1 -0
  53. package/src/hooks/useClickOutside.ts +5 -22
  54. package/src/icons/icons.tsx +431 -0
  55. package/src/icons/index.ts +2 -0
  56. package/src/index.ts +0 -1
  57. package/src/types/hooks.d.ts +8 -2
  58. package/src/utils/index.ts +1 -1
  59. package/src/utils/logoConsoleOutput/logoConsoleOutput.ts +31 -0
  60. package/tsconfig.json +3 -2
  61. package/tsdown.config.ts +26 -0
  62. package/Readme.md +0 -29
  63. package/bun.lock +0 -662
  64. package/dist/src/components/alert/alert.d.ts +0 -8
  65. package/dist/src/components/alert/alert.js +0 -15
  66. package/dist/src/components/buttons/button.d.ts +0 -13
  67. package/dist/src/components/buttons/button.js +0 -30
  68. package/dist/src/components/confirm/confirmPopup.d.ts +0 -12
  69. package/dist/src/components/confirm/confirmPopup.js +0 -18
  70. package/dist/src/components/container/highlight.d.ts +0 -4
  71. package/dist/src/components/container/highlight.js +0 -4
  72. package/dist/src/components/container/page.d.ts +0 -8
  73. package/dist/src/components/container/page.js +0 -4
  74. package/dist/src/components/inputs/checkbox.d.ts +0 -17
  75. package/dist/src/components/inputs/checkbox.js +0 -37
  76. package/dist/src/components/inputs/input.d.ts +0 -12
  77. package/dist/src/components/inputs/input.js +0 -124
  78. package/dist/src/components/inputs/radio.d.ts +0 -17
  79. package/dist/src/components/inputs/radio.js +0 -27
  80. package/dist/src/components/inputs/range.d.ts +0 -11
  81. package/dist/src/components/inputs/range.js +0 -22
  82. package/dist/src/components/inputs/searchInput.d.ts +0 -6
  83. package/dist/src/components/inputs/searchInput.js +0 -42
  84. package/dist/src/components/inputs/select.d.ts +0 -23
  85. package/dist/src/components/inputs/select.js +0 -70
  86. package/dist/src/components/inputs/shared/colorPickerPopup.d.ts +0 -8
  87. package/dist/src/components/inputs/shared/colorPickerPopup.js +0 -191
  88. package/dist/src/components/inputs/shared/dateTimePickerPopup.d.ts +0 -9
  89. package/dist/src/components/inputs/shared/dateTimePickerPopup.js +0 -128
  90. package/dist/src/components/inputs/shared/fieldWrapper.d.ts +0 -14
  91. package/dist/src/components/inputs/shared/fieldWrapper.js +0 -8
  92. package/dist/src/components/inputs/shared/index.d.ts +0 -5
  93. package/dist/src/components/inputs/shared/index.js +0 -5
  94. package/dist/src/components/inputs/shared/inputError.d.ts +0 -6
  95. package/dist/src/components/inputs/shared/inputError.js +0 -6
  96. package/dist/src/components/inputs/shared/inputInfo.d.ts +0 -5
  97. package/dist/src/components/inputs/shared/inputInfo.js +0 -5
  98. package/dist/src/components/inputs/shared/inputLabel.d.ts +0 -9
  99. package/dist/src/components/inputs/shared/inputLabel.js +0 -4
  100. package/dist/src/components/inputs/switch.d.ts +0 -11
  101. package/dist/src/components/inputs/switch.js +0 -14
  102. package/dist/src/components/inputs/tagInput.d.ts +0 -15
  103. package/dist/src/components/inputs/tagInput.js +0 -40
  104. package/dist/src/components/inputs/textarea.d.ts +0 -11
  105. package/dist/src/components/inputs/textarea.js +0 -36
  106. package/dist/src/components/inputs/toggle.d.ts +0 -14
  107. package/dist/src/components/inputs/toggle.js +0 -12
  108. package/dist/src/components/login/loginPage.d.ts +0 -2
  109. package/dist/src/components/login/loginPage.js +0 -18
  110. package/dist/src/components/logo/logo.d.ts +0 -5
  111. package/dist/src/components/logo/logo.js +0 -6
  112. package/dist/src/components/logo/logoSmall.d.ts +0 -1
  113. package/dist/src/components/logo/logoSmall.js +0 -6
  114. package/dist/src/components/markdownrender/markdownRender.d.ts +0 -7
  115. package/dist/src/components/markdownrender/markdownRender.js +0 -26
  116. package/dist/src/components/navbar/bubble.d.ts +0 -14
  117. package/dist/src/components/navbar/bubble.js +0 -8
  118. package/dist/src/components/navbar/navbar.d.ts +0 -34
  119. package/dist/src/components/navbar/navbar.js +0 -36
  120. package/dist/src/components/navbar/navbarDropdown.d.ts +0 -7
  121. package/dist/src/components/navbar/navbarDropdown.js +0 -19
  122. package/dist/src/components/navbar/navbarItem.d.ts +0 -11
  123. package/dist/src/components/navbar/navbarItem.js +0 -12
  124. package/dist/src/components/table/body.d.ts +0 -15
  125. package/dist/src/components/table/body.js +0 -116
  126. package/dist/src/components/table/format.d.ts +0 -1
  127. package/dist/src/components/table/format.js +0 -27
  128. package/dist/src/components/table/header.d.ts +0 -8
  129. package/dist/src/components/table/header.js +0 -47
  130. package/dist/src/components/table/menu.d.ts +0 -17
  131. package/dist/src/components/table/menu.js +0 -30
  132. package/dist/src/components/table/pagination.d.ts +0 -6
  133. package/dist/src/components/table/pagination.js +0 -86
  134. package/dist/src/components/table/table.d.ts +0 -14
  135. package/dist/src/components/table/table.js +0 -14
  136. package/dist/src/components/toast/toastItem.d.ts +0 -2
  137. package/dist/src/components/toast/toastItem.js +0 -38
  138. package/dist/src/components/toast/toaster.d.ts +0 -9
  139. package/dist/src/components/toast/toaster.js +0 -86
  140. package/dist/src/components/toggle/language.d.ts +0 -4
  141. package/dist/src/components/toggle/language.js +0 -29
  142. package/dist/src/components/toggle/theme.d.ts +0 -3
  143. package/dist/src/components/toggle/theme.js +0 -30
  144. package/dist/src/components/version/version.d.ts +0 -7
  145. package/dist/src/components/version/version.js +0 -12
  146. package/dist/src/components/vulnerability/constants.d.ts +0 -4
  147. package/dist/src/components/vulnerability/constants.js +0 -14
  148. package/dist/src/components/vulnerability/severityPill.d.ts +0 -8
  149. package/dist/src/components/vulnerability/severityPill.js +0 -8
  150. package/dist/src/hooks/useClickOutside.d.ts +0 -2
  151. package/dist/src/hooks/useClickOutside.js +0 -27
  152. package/dist/src/hooks/useDarkMode.d.ts +0 -1
  153. package/dist/src/hooks/useDarkMode.js +0 -17
  154. package/dist/src/hooks/useVisibility.d.ts +0 -4
  155. package/dist/src/hooks/useVisibility.js +0 -23
  156. package/dist/src/index.d.ts +0 -5
  157. package/dist/src/index.js +0 -5
  158. package/dist/src/scripts/buildCss.d.ts +0 -1
  159. package/dist/src/scripts/buildCss.js +0 -22
  160. package/dist/src/scripts/index.d.ts +0 -1
  161. package/dist/src/scripts/index.js +0 -1
  162. package/dist/src/scripts/rewriteAlias.d.ts +0 -1
  163. package/dist/src/scripts/rewriteAlias.js +0 -31
  164. package/dist/src/utils/LogoConsoleOutput/LogoConsoleOutput.d.ts +0 -1
  165. package/dist/src/utils/LogoConsoleOutput/LogoConsoleOutput.js +0 -44
  166. package/dist/src/utils/auth/callback.d.ts +0 -2
  167. package/dist/src/utils/auth/callback.js +0 -63
  168. package/dist/src/utils/auth/getDomain.d.ts +0 -2
  169. package/dist/src/utils/auth/getDomain.js +0 -6
  170. package/dist/src/utils/auth/login.d.ts +0 -3
  171. package/dist/src/utils/auth/login.js +0 -14
  172. package/dist/src/utils/auth/logout.d.ts +0 -3
  173. package/dist/src/utils/auth/logout.js +0 -18
  174. package/dist/src/utils/auth/token.d.ts +0 -3
  175. package/dist/src/utils/auth/token.js +0 -33
  176. package/dist/tailwind.config.d.ts +0 -3
  177. package/dist/tailwind.config.js +0 -7
  178. package/src/scripts/buildCss.ts +0 -25
  179. package/src/scripts/index.ts +0 -1
  180. package/src/scripts/rewriteAlias.ts +0 -39
  181. package/src/utils/LogoConsoleOutput/LogoConsoleOutput.ts +0 -61
@@ -1,3 +1,15 @@
1
- export { default as useVisibility } from './useVisibility';
2
- export { default as useDarkMode } from './useDarkMode';
3
- export { default as useClickOutside } from './useClickOutside';
1
+ import { RefObject } from "react";
2
+
3
+ //#region src/hooks/useVisibility.d.ts
4
+ declare function useVisibility<T extends HTMLElement>(onVisible: () => void, rootMargin?: string): {
5
+ ref: import("react").RefObject<T | null>;
6
+ isVisible: boolean;
7
+ };
8
+ //#endregion
9
+ //#region src/hooks/useDarkMode.d.ts
10
+ declare function useDarkMode(): boolean;
11
+ //#endregion
12
+ //#region src/hooks/useClickOutside.d.ts
13
+ declare function useClickOutside<T extends HTMLElement>(ref: RefObject<T | null>, callback: () => void): void;
14
+ //#endregion
15
+ export { useClickOutside, useDarkMode, useVisibility };
@@ -1,3 +1,44 @@
1
- export { default as useVisibility } from './useVisibility';
2
- export { default as useDarkMode } from './useDarkMode';
3
- export { default as useClickOutside } from './useClickOutside';
1
+ "use client";
2
+ import { t as useClickOutside } from "../../useClickOutside-Cmp-RsP3.js";
3
+ import { useEffect, useRef, useState } from "react";
4
+ //#region src/hooks/useVisibility.ts
5
+ function useVisibility(onVisible, rootMargin = "200px") {
6
+ const [isVisible, setIsVisible] = useState(false);
7
+ const ref = useRef(null);
8
+ useEffect(() => {
9
+ if (typeof window === "undefined") return;
10
+ if (!("ontouchstart" in window || navigator.maxTouchPoints > 0)) return;
11
+ const observer = new IntersectionObserver((entries) => {
12
+ if (entries[0].isIntersecting) {
13
+ setIsVisible(true);
14
+ onVisible();
15
+ observer.disconnect();
16
+ }
17
+ }, { rootMargin });
18
+ if (ref.current) observer.observe(ref.current);
19
+ return () => observer.disconnect();
20
+ }, [onVisible, rootMargin]);
21
+ return {
22
+ ref,
23
+ isVisible
24
+ };
25
+ }
26
+ //#endregion
27
+ //#region src/hooks/useDarkMode.ts
28
+ function useDarkMode() {
29
+ const [isDark, setIsDark] = useState(false);
30
+ useEffect(() => {
31
+ setIsDark(document.documentElement.classList.contains("dark"));
32
+ const observer = new MutationObserver(() => {
33
+ setIsDark(document.documentElement.classList.contains("dark"));
34
+ });
35
+ observer.observe(document.documentElement, {
36
+ attributes: true,
37
+ attributeFilter: ["class"]
38
+ });
39
+ return () => observer.disconnect();
40
+ }, []);
41
+ return isDark;
42
+ }
43
+ //#endregion
44
+ export { useClickOutside, useDarkMode, useVisibility };
@@ -0,0 +1,420 @@
1
+ import React from "react";
2
+
3
+ //#region src/icons/icons.d.ts
4
+ interface LogfontIconProps extends React.SVGProps<SVGSVGElement> {
5
+ size?: number | string;
6
+ }
7
+ declare const Circle: ({
8
+ size,
9
+ ...props
10
+ }: LogfontIconProps) => React.JSX.Element;
11
+ declare const Rect: ({
12
+ size,
13
+ ...props
14
+ }: LogfontIconProps) => React.JSX.Element;
15
+ declare const Login: ({
16
+ size,
17
+ ...props
18
+ }: LogfontIconProps) => React.JSX.Element;
19
+ declare const LoginText: ({
20
+ size,
21
+ ...props
22
+ }: LogfontIconProps) => React.JSX.Element;
23
+ declare const StyretCorners: ({
24
+ size,
25
+ ...props
26
+ }: LogfontIconProps) => React.JSX.Element;
27
+ declare const Styret: ({
28
+ size,
29
+ ...props
30
+ }: LogfontIconProps) => React.JSX.Element;
31
+ declare const StyretFilled: ({
32
+ size,
33
+ ...props
34
+ }: LogfontIconProps) => React.JSX.Element;
35
+ declare const EventkomCorners: ({
36
+ size,
37
+ ...props
38
+ }: LogfontIconProps) => React.JSX.Element;
39
+ declare const Eventkom: ({
40
+ size,
41
+ ...props
42
+ }: LogfontIconProps) => React.JSX.Element;
43
+ declare const EventkomFilled: ({
44
+ size,
45
+ ...props
46
+ }: LogfontIconProps) => React.JSX.Element;
47
+ declare const BedkomCorners: ({
48
+ size,
49
+ ...props
50
+ }: LogfontIconProps) => React.JSX.Element;
51
+ declare const Bedkom: ({
52
+ size,
53
+ ...props
54
+ }: LogfontIconProps) => React.JSX.Element;
55
+ declare const BedkomFilled: ({
56
+ size,
57
+ ...props
58
+ }: LogfontIconProps) => React.JSX.Element;
59
+ declare const TekkomCorners: ({
60
+ size,
61
+ ...props
62
+ }: LogfontIconProps) => React.JSX.Element;
63
+ declare const Tekkom: ({
64
+ size,
65
+ ...props
66
+ }: LogfontIconProps) => React.JSX.Element;
67
+ declare const CtfkomCorners: ({
68
+ size,
69
+ ...props
70
+ }: LogfontIconProps) => React.JSX.Element;
71
+ declare const Ctfkom: ({
72
+ size,
73
+ ...props
74
+ }: LogfontIconProps) => React.JSX.Element;
75
+ declare const CtfkomFilled: ({
76
+ size,
77
+ ...props
78
+ }: LogfontIconProps) => React.JSX.Element;
79
+ declare const SatkomCorners: ({
80
+ size,
81
+ ...props
82
+ }: LogfontIconProps) => React.JSX.Element;
83
+ declare const Satkom: ({
84
+ size,
85
+ ...props
86
+ }: LogfontIconProps) => React.JSX.Element;
87
+ declare const SatkomFilled: ({
88
+ size,
89
+ ...props
90
+ }: LogfontIconProps) => React.JSX.Element;
91
+ declare const PrCorners: ({
92
+ size,
93
+ ...props
94
+ }: LogfontIconProps) => React.JSX.Element;
95
+ declare const Pr: ({
96
+ size,
97
+ ...props
98
+ }: LogfontIconProps) => React.JSX.Element;
99
+ declare const PrFilled: ({
100
+ size,
101
+ ...props
102
+ }: LogfontIconProps) => React.JSX.Element;
103
+ declare const Ntnu: ({
104
+ size,
105
+ ...props
106
+ }: LogfontIconProps) => React.JSX.Element;
107
+ declare const Sit: ({
108
+ size,
109
+ ...props
110
+ }: LogfontIconProps) => React.JSX.Element;
111
+ declare const SitText: ({
112
+ size,
113
+ ...props
114
+ }: LogfontIconProps) => React.JSX.Element;
115
+ declare const NtnuiGjvik: ({
116
+ size,
117
+ ...props
118
+ }: LogfontIconProps) => React.JSX.Element;
119
+ declare const NtnuiSimple: ({
120
+ size,
121
+ ...props
122
+ }: LogfontIconProps) => React.JSX.Element;
123
+ declare const Huset: ({
124
+ size,
125
+ ...props
126
+ }: LogfontIconProps) => React.JSX.Element;
127
+ declare const HusetText: ({
128
+ size,
129
+ ...props
130
+ }: LogfontIconProps) => React.JSX.Element;
131
+ declare const GjvikKommune: ({
132
+ size,
133
+ ...props
134
+ }: LogfontIconProps) => React.JSX.Element;
135
+ declare const Peppes: ({
136
+ size,
137
+ ...props
138
+ }: LogfontIconProps) => React.JSX.Element;
139
+ declare const Pizzabakeren: ({
140
+ size,
141
+ ...props
142
+ }: LogfontIconProps) => React.JSX.Element;
143
+ declare const Chaplin: ({
144
+ size,
145
+ ...props
146
+ }: LogfontIconProps) => React.JSX.Element;
147
+ declare const Discord: ({
148
+ size,
149
+ ...props
150
+ }: LogfontIconProps) => React.JSX.Element;
151
+ declare const Instagram: ({
152
+ size,
153
+ ...props
154
+ }: LogfontIconProps) => React.JSX.Element;
155
+ declare const Facebook: ({
156
+ size,
157
+ ...props
158
+ }: LogfontIconProps) => React.JSX.Element;
159
+ declare const Linkedin: ({
160
+ size,
161
+ ...props
162
+ }: LogfontIconProps) => React.JSX.Element;
163
+ declare const Gitlab: ({
164
+ size,
165
+ ...props
166
+ }: LogfontIconProps) => React.JSX.Element;
167
+ declare const Wikijs: ({
168
+ size,
169
+ ...props
170
+ }: LogfontIconProps) => React.JSX.Element;
171
+ declare const Snapchat: ({
172
+ size,
173
+ ...props
174
+ }: LogfontIconProps) => React.JSX.Element;
175
+ declare const Twitter: ({
176
+ size,
177
+ ...props
178
+ }: LogfontIconProps) => React.JSX.Element;
179
+ declare const Youtube: ({
180
+ size,
181
+ ...props
182
+ }: LogfontIconProps) => React.JSX.Element;
183
+ declare const Microsoft: ({
184
+ size,
185
+ ...props
186
+ }: LogfontIconProps) => React.JSX.Element;
187
+ declare const Windows: ({
188
+ size,
189
+ ...props
190
+ }: LogfontIconProps) => React.JSX.Element;
191
+ declare const Android: ({
192
+ size,
193
+ ...props
194
+ }: LogfontIconProps) => React.JSX.Element;
195
+ declare const Apple: ({
196
+ size,
197
+ ...props
198
+ }: LogfontIconProps) => React.JSX.Element;
199
+ declare const Ubuntu: ({
200
+ size,
201
+ ...props
202
+ }: LogfontIconProps) => React.JSX.Element;
203
+ declare const Archlinux: ({
204
+ size,
205
+ ...props
206
+ }: LogfontIconProps) => React.JSX.Element;
207
+ declare const Manjaro: ({
208
+ size,
209
+ ...props
210
+ }: LogfontIconProps) => React.JSX.Element;
211
+ declare const Debian: ({
212
+ size,
213
+ ...props
214
+ }: LogfontIconProps) => React.JSX.Element;
215
+ declare const Linux: ({
216
+ size,
217
+ ...props
218
+ }: LogfontIconProps) => React.JSX.Element;
219
+ declare const Tux: ({
220
+ size,
221
+ ...props
222
+ }: LogfontIconProps) => React.JSX.Element;
223
+ declare const Bitcoin: ({
224
+ size,
225
+ ...props
226
+ }: LogfontIconProps) => React.JSX.Element;
227
+ declare const Raspberrypi: ({
228
+ size,
229
+ ...props
230
+ }: LogfontIconProps) => React.JSX.Element;
231
+ declare const Arduino: ({
232
+ size,
233
+ ...props
234
+ }: LogfontIconProps) => React.JSX.Element;
235
+ declare const Cisco: ({
236
+ size,
237
+ ...props
238
+ }: LogfontIconProps) => React.JSX.Element;
239
+ declare const Codepen: ({
240
+ size,
241
+ ...props
242
+ }: LogfontIconProps) => React.JSX.Element;
243
+ declare const Postgresql: ({
244
+ size,
245
+ ...props
246
+ }: LogfontIconProps) => React.JSX.Element;
247
+ declare const Digitalocean: ({
248
+ size,
249
+ ...props
250
+ }: LogfontIconProps) => React.JSX.Element;
251
+ declare const Kubernetes: ({
252
+ size,
253
+ ...props
254
+ }: LogfontIconProps) => React.JSX.Element;
255
+ declare const Docker: ({
256
+ size,
257
+ ...props
258
+ }: LogfontIconProps) => React.JSX.Element;
259
+ declare const Python: ({
260
+ size,
261
+ ...props
262
+ }: LogfontIconProps) => React.JSX.Element;
263
+ declare const Html5: ({
264
+ size,
265
+ ...props
266
+ }: LogfontIconProps) => React.JSX.Element;
267
+ declare const Css3: ({
268
+ size,
269
+ ...props
270
+ }: LogfontIconProps) => React.JSX.Element;
271
+ declare const Cpp: ({
272
+ size,
273
+ ...props
274
+ }: LogfontIconProps) => React.JSX.Element;
275
+ declare const Go: ({
276
+ size,
277
+ ...props
278
+ }: LogfontIconProps) => React.JSX.Element;
279
+ declare const Rust: ({
280
+ size,
281
+ ...props
282
+ }: LogfontIconProps) => React.JSX.Element;
283
+ declare const Java: ({
284
+ size,
285
+ ...props
286
+ }: LogfontIconProps) => React.JSX.Element;
287
+ declare const Firefox: ({
288
+ size,
289
+ ...props
290
+ }: LogfontIconProps) => React.JSX.Element;
291
+ declare const Tor: ({
292
+ size,
293
+ ...props
294
+ }: LogfontIconProps) => React.JSX.Element;
295
+ declare const Duckduckgo: ({
296
+ size,
297
+ ...props
298
+ }: LogfontIconProps) => React.JSX.Element;
299
+ declare const Mysql: ({
300
+ size,
301
+ ...props
302
+ }: LogfontIconProps) => React.JSX.Element;
303
+ declare const Nintendoswitch: ({
304
+ size,
305
+ ...props
306
+ }: LogfontIconProps) => React.JSX.Element;
307
+ declare const Javascript: ({
308
+ size,
309
+ ...props
310
+ }: LogfontIconProps) => React.JSX.Element;
311
+ declare const ReactLogo: ({
312
+ size,
313
+ ...props
314
+ }: LogfontIconProps) => React.JSX.Element;
315
+ declare const NodeDotJs: ({
316
+ size,
317
+ ...props
318
+ }: LogfontIconProps) => React.JSX.Element;
319
+ declare const Npm: ({
320
+ size,
321
+ ...props
322
+ }: LogfontIconProps) => React.JSX.Element;
323
+ declare const Webpack: ({
324
+ size,
325
+ ...props
326
+ }: LogfontIconProps) => React.JSX.Element;
327
+ declare const Powershell: ({
328
+ size,
329
+ ...props
330
+ }: LogfontIconProps) => React.JSX.Element;
331
+ declare const Postman: ({
332
+ size,
333
+ ...props
334
+ }: LogfontIconProps) => React.JSX.Element;
335
+ declare const Redmine: ({
336
+ size,
337
+ ...props
338
+ }: LogfontIconProps) => React.JSX.Element;
339
+ declare const Stackoverflow: ({
340
+ size,
341
+ ...props
342
+ }: LogfontIconProps) => React.JSX.Element;
343
+ declare const Udemy: ({
344
+ size,
345
+ ...props
346
+ }: LogfontIconProps) => React.JSX.Element;
347
+ declare const Untappd: ({
348
+ size,
349
+ ...props
350
+ }: LogfontIconProps) => React.JSX.Element;
351
+ declare const Vim: ({
352
+ size,
353
+ ...props
354
+ }: LogfontIconProps) => React.JSX.Element;
355
+ declare const Visualstudio: ({
356
+ size,
357
+ ...props
358
+ }: LogfontIconProps) => React.JSX.Element;
359
+ declare const Vscode: ({
360
+ size,
361
+ ...props
362
+ }: LogfontIconProps) => React.JSX.Element;
363
+ declare const Figma: ({
364
+ size,
365
+ ...props
366
+ }: LogfontIconProps) => React.JSX.Element;
367
+ declare const Redhat: ({
368
+ size,
369
+ ...props
370
+ }: LogfontIconProps) => React.JSX.Element;
371
+ declare const Zoom: ({
372
+ size,
373
+ ...props
374
+ }: LogfontIconProps) => React.JSX.Element;
375
+ declare const Onepassword: ({
376
+ size,
377
+ ...props
378
+ }: LogfontIconProps) => React.JSX.Element;
379
+ declare const Github: ({
380
+ size,
381
+ ...props
382
+ }: LogfontIconProps) => React.JSX.Element;
383
+ declare const Git: ({
384
+ size,
385
+ ...props
386
+ }: LogfontIconProps) => React.JSX.Element;
387
+ declare const GitText: ({
388
+ size,
389
+ ...props
390
+ }: LogfontIconProps) => React.JSX.Element;
391
+ declare const GitText2: ({
392
+ size,
393
+ ...props
394
+ }: LogfontIconProps) => React.JSX.Element;
395
+ declare const Database: ({
396
+ size,
397
+ ...props
398
+ }: LogfontIconProps) => React.JSX.Element;
399
+ declare const Pacman: ({
400
+ size,
401
+ ...props
402
+ }: LogfontIconProps) => React.JSX.Element;
403
+ declare const Usb: ({
404
+ size,
405
+ ...props
406
+ }: LogfontIconProps) => React.JSX.Element;
407
+ declare const Pizza: ({
408
+ size,
409
+ ...props
410
+ }: LogfontIconProps) => React.JSX.Element;
411
+ declare const Tree: ({
412
+ size,
413
+ ...props
414
+ }: LogfontIconProps) => React.JSX.Element;
415
+ declare const Trophy: ({
416
+ size,
417
+ ...props
418
+ }: LogfontIconProps) => React.JSX.Element;
419
+ //#endregion
420
+ export { Android, Apple, Archlinux, Arduino, Bedkom, BedkomCorners, BedkomFilled, Bitcoin, Chaplin, Circle, Cisco, Codepen, Cpp, Css3, Ctfkom, CtfkomCorners, CtfkomFilled, Database, Debian, Digitalocean, Discord, Docker, Duckduckgo, Eventkom, EventkomCorners, EventkomFilled, Facebook, Figma, Firefox, Git, GitText, GitText2, Github, Gitlab, GjvikKommune, Go, Html5, Huset, HusetText, Instagram, Java, Javascript, Kubernetes, Linkedin, Linux, LogfontIconProps, Login, LoginText, Manjaro, Microsoft, Mysql, Nintendoswitch, NodeDotJs, Npm, Ntnu, NtnuiGjvik, NtnuiSimple, Onepassword, Pacman, Peppes, Pizza, Pizzabakeren, Postgresql, Postman, Powershell, Pr, PrCorners, PrFilled, Python, Raspberrypi, ReactLogo, Rect, Redhat, Redmine, Rust, Satkom, SatkomCorners, SatkomFilled, Sit, SitText, Snapchat, Stackoverflow, Styret, StyretCorners, StyretFilled, Tekkom, TekkomCorners, Tor, Tree, Trophy, Tux, Twitter, Ubuntu, Udemy, Untappd, Usb, Vim, Visualstudio, Vscode, Webpack, Wikijs, Windows, Youtube, Zoom };
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import { $ as Npm, A as Git, At as StyretFilled, B as Instagram, Bt as Untappd, C as Duckduckgo, Ct as SatkomFilled, D as Facebook, Dt as Stackoverflow, E as EventkomFilled, Et as Snapchat, F as GjvikKommune, Ft as Trophy, G as Linux, Gt as Webpack, H as Javascript, Ht as Vim, I as Go, It as Tux, J as Manjaro, Jt as Youtube, K as Login, Kt as Wikijs, L as Html5, Lt as Twitter, M as GitText2, Mt as TekkomCorners, N as Github, Nt as Tor, O as Figma, Ot as Styret, P as Gitlab, Pt as Tree, Q as NodeDotJs, R as Huset, Rt as Ubuntu, S as Docker, St as SatkomCorners, T as EventkomCorners, Tt as SitText, U as Kubernetes, Ut as Visualstudio, V as Java, Vt as Usb, W as Linkedin, Wt as Vscode, X as Mysql, Y as Microsoft, Yt as Zoom, Z as Nintendoswitch, _ as CtfkomFilled, _t as Rect, a as Bedkom, at as Peppes, b as Digitalocean, bt as Rust, c as Bitcoin, ct as Postgresql, d as Cisco, dt as Pr, et as Ntnu, f as Codepen, ft as PrCorners, g as CtfkomCorners, gt as ReactLogo, h as Ctfkom, ht as Raspberrypi, i as Arduino, it as Pacman, j as GitText, jt as Tekkom, k as Firefox, kt as StyretCorners, l as Chaplin, lt as Postman, m as Css3, mt as Python, n as Apple, nt as NtnuiSimple, o as BedkomCorners, ot as Pizza, p as Cpp, pt as PrFilled, q as LoginText, qt as Windows, r as Archlinux, rt as Onepassword, s as BedkomFilled, st as Pizzabakeren, t as Android, tt as NtnuiGjvik, u as Circle, ut as Powershell, v as Database, vt as Redhat, w as Eventkom, wt as Sit, x as Discord, xt as Satkom, y as Debian, yt as Redmine, z as HusetText, zt as Udemy } from "../../icons-lZYQ6Vlr.js";
3
+ export { Android, Apple, Archlinux, Arduino, Bedkom, BedkomCorners, BedkomFilled, Bitcoin, Chaplin, Circle, Cisco, Codepen, Cpp, Css3, Ctfkom, CtfkomCorners, CtfkomFilled, Database, Debian, Digitalocean, Discord, Docker, Duckduckgo, Eventkom, EventkomCorners, EventkomFilled, Facebook, Figma, Firefox, Git, GitText, GitText2, Github, Gitlab, GjvikKommune, Go, Html5, Huset, HusetText, Instagram, Java, Javascript, Kubernetes, Linkedin, Linux, Login, LoginText, Manjaro, Microsoft, Mysql, Nintendoswitch, NodeDotJs, Npm, Ntnu, NtnuiGjvik, NtnuiSimple, Onepassword, Pacman, Peppes, Pizza, Pizzabakeren, Postgresql, Postman, Powershell, Pr, PrCorners, PrFilled, Python, Raspberrypi, ReactLogo, Rect, Redhat, Redmine, Rust, Satkom, SatkomCorners, SatkomFilled, Sit, SitText, Snapchat, Stackoverflow, Styret, StyretCorners, StyretFilled, Tekkom, TekkomCorners, Tor, Tree, Trophy, Tux, Twitter, Ubuntu, Udemy, Untappd, Usb, Vim, Visualstudio, Vscode, Webpack, Wikijs, Windows, Youtube, Zoom };
@@ -1 +1 @@
1
- import '../globals.css';
1
+ export { };
@@ -1 +1,2 @@
1
- import '../globals.css';
1
+ import '../../style.css';
2
+ export {};
@@ -1,5 +1,38 @@
1
- export { LogoConsoleOutput } from './LogoConsoleOutput/LogoConsoleOutput';
2
- export { default as authLogin } from './auth/login';
3
- export { default as authCallback } from './auth/callback';
4
- export { default as authToken } from './auth/token';
5
- export { default as authLogout } from './auth/logout';
1
+ import { NextResponse } from "next/server.js";
2
+ import { AuthCallbackProps, AuthLoginProps, AuthLogoutProps, AuthTokenProps } from "uibee/utils";
3
+
4
+ //#region src/utils/logoConsoleOutput/logoConsoleOutput.d.ts
5
+ declare function LogoConsoleOutput(): void;
6
+ //#endregion
7
+ //#region src/utils/auth/login.d.ts
8
+ declare function AuthLogin({
9
+ req,
10
+ clientID,
11
+ redirectPath,
12
+ authURL
13
+ }: AuthLoginProps): Promise<NextResponse<unknown>>;
14
+ //#endregion
15
+ //#region src/utils/auth/callback.d.ts
16
+ declare function authCallback({
17
+ req,
18
+ tokenURL,
19
+ clientID,
20
+ clientSecret,
21
+ redirectPath,
22
+ userInfoURL,
23
+ tokenRedirectPath
24
+ }: AuthCallbackProps): Promise<Response>;
25
+ //#endregion
26
+ //#region src/utils/auth/token.d.ts
27
+ declare function AuthToken({
28
+ req,
29
+ redirectPath
30
+ }: AuthTokenProps): Promise<NextResponse<unknown>>;
31
+ //#endregion
32
+ //#region src/utils/auth/logout.d.ts
33
+ declare function AuthLogout({
34
+ req,
35
+ path
36
+ }: AuthLogoutProps): Promise<NextResponse<unknown>>;
37
+ //#endregion
38
+ export { LogoConsoleOutput, authCallback, AuthLogin as authLogin, AuthLogout as authLogout, AuthToken as authToken };
@@ -1,6 +1,125 @@
1
- export { LogoConsoleOutput } from './LogoConsoleOutput/LogoConsoleOutput';
2
- // Auth
3
- export { default as authLogin } from './auth/login';
4
- export { default as authCallback } from './auth/callback';
5
- export { default as authToken } from './auth/token';
6
- export { default as authLogout } from './auth/logout';
1
+ import { NextResponse } from "next/server.js";
2
+ //#region src/utils/logoConsoleOutput/logoConsoleOutput.ts
3
+ function LogoConsoleOutput() {
4
+ const ua = navigator.userAgent;
5
+ if (!ua.includes("Chrome") && !ua.includes("Firefox") && !ua.includes("Safari")) {
6
+ console.log("Login - Linjeforeningen for IT");
7
+ return;
8
+ }
9
+ console.log("%c███████╗ ███████╗\n██╔════╝ ╚════██║\n██║%c ██╗ ██████╗ ██████╗ ██╗███╗ ██╗ %c██║\n╚═╝%c ██║ ██╔═══██╗██╔════╝ ██║████╗ ██║ %c╚═╝%c\n ██║ ██║ ██║██║ ███╗██║██╔██╗ ██║\n ██║ ██║ ██║██║ ██║██║██║╚██╗██║\n%c██╗%c ██████╗╚██████╔╝╚██████╔╝██║██║ ╚████║ %c██╗\n██║%c ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝ %c██║\n███████╗%c %c███████║\n╚══════╝ ╚══════╝%c\n\n - Laget av TekKom med 🍕 og ❤️", "color: #fd8738", "", "color: #fd8738", "", "color: #fd8738", "", "color: #fd8738", "", "color: #fd8738", "", "color: #fd8738", "", "color: #fd8738", "");
10
+ }
11
+ //#endregion
12
+ //#region src/utils/auth/getDomain.ts
13
+ function getDomain(req) {
14
+ return `${req.headers.get("x-forwarded-proto") ?? new URL(req.url).protocol.replace(":", "")}://${req.headers.get("host") ?? req.headers.get("x-forwarded-host") ?? new URL(req.url).host}`;
15
+ }
16
+ //#endregion
17
+ //#region src/utils/auth/login.ts
18
+ async function AuthLogin({ req, clientID, redirectPath, authURL }) {
19
+ const domain = getDomain(req);
20
+ const state = Math.random().toString(36).substring(5);
21
+ const authQueryParams = new URLSearchParams({
22
+ client_id: clientID,
23
+ redirect_uri: `${domain}${redirectPath}`,
24
+ response_type: "code",
25
+ scope: "openid profile email",
26
+ state
27
+ }).toString();
28
+ return NextResponse.redirect(`${authURL}?${authQueryParams}`);
29
+ }
30
+ //#endregion
31
+ //#region src/utils/auth/callback.ts
32
+ async function authCallback({ req, tokenURL, clientID, clientSecret, redirectPath, userInfoURL, tokenRedirectPath }) {
33
+ const domain = getDomain(req);
34
+ const searchParams = new URL(req.url).searchParams;
35
+ if (!searchParams) return NextResponse.json({ error: "No search parameters found." }, { status: 400 });
36
+ const code = searchParams.get("code");
37
+ if (!code) return NextResponse.json({ error: "No authorization code found." }, { status: 400 });
38
+ try {
39
+ const tokenResponse = await fetch(tokenURL, {
40
+ method: "POST",
41
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
42
+ body: new URLSearchParams({
43
+ client_id: clientID,
44
+ client_secret: clientSecret,
45
+ code,
46
+ redirect_uri: `${domain}${redirectPath}`,
47
+ grant_type: "authorization_code"
48
+ }).toString()
49
+ });
50
+ const tokenResponseBody = await tokenResponse.text();
51
+ if (!tokenResponse.ok) return new Response(JSON.stringify(`Failed to obtain token: ${tokenResponseBody}`), {
52
+ status: 500,
53
+ headers: { "Content-Type": "application/json" }
54
+ });
55
+ const token = JSON.parse(tokenResponseBody);
56
+ const userInfoResponse = await fetch(userInfoURL, { headers: { Authorization: `Bearer ${token.access_token}` } });
57
+ if (!userInfoResponse.ok) {
58
+ const userInfoError = await userInfoResponse.text();
59
+ return new Response(`No user info found: ${userInfoError}`, {
60
+ status: 500,
61
+ headers: { "Content-Type": "application/json" }
62
+ });
63
+ }
64
+ const userInfo = await userInfoResponse.json();
65
+ const redirectUrl = new URL(`${domain}${tokenRedirectPath}`);
66
+ redirectUrl.search = new URLSearchParams({
67
+ id: userInfo.sub,
68
+ name: userInfo.name,
69
+ username: userInfo.nickname,
70
+ email: userInfo.email,
71
+ groups: userInfo.groups.join(","),
72
+ access_token: token.access_token
73
+ }).toString();
74
+ return NextResponse.redirect(redirectUrl.toString());
75
+ } catch (err) {
76
+ console.error("Error during OAuth flow:", err.message);
77
+ return NextResponse.json({ error: "Authentication failed" }, { status: 500 });
78
+ }
79
+ }
80
+ //#endregion
81
+ //#region src/utils/auth/token.ts
82
+ async function AuthToken({ req, redirectPath }) {
83
+ const domain = getDomain(req);
84
+ const url = new URL(req.url);
85
+ const token = url.searchParams.get("access_token");
86
+ const btg = url.searchParams.get("btg");
87
+ const redirectCookie = req.cookies.get("redirect_after_login");
88
+ const redirect = redirectCookie ? redirectCookie.value : redirectPath || "/";
89
+ if (!token) return NextResponse.json({ error: "No access token provided" }, { status: 400 });
90
+ if (btg) return NextResponse.redirect(new URL(redirect, domain));
91
+ const accessToken = url.searchParams.get("access_token");
92
+ const userID = url.searchParams.get("id");
93
+ const username = url.searchParams.get("name");
94
+ const userNickname = url.searchParams.get("username");
95
+ const userEmail = url.searchParams.get("email");
96
+ const userGroups = url.searchParams.get("groups");
97
+ const response = NextResponse.redirect(new URL(redirect, domain));
98
+ response.cookies.set("access_token", accessToken);
99
+ response.cookies.set("user_id", userID);
100
+ response.cookies.set("user_name", username);
101
+ response.cookies.set("user_nickname", userNickname);
102
+ response.cookies.set("user_email", userEmail);
103
+ response.cookies.set("user_groups", userGroups);
104
+ if (redirectCookie) response.cookies.delete("redirect_after_login");
105
+ return response;
106
+ }
107
+ //#endregion
108
+ //#region src/utils/auth/logout.ts
109
+ async function AuthLogout({ req, path }) {
110
+ const domain = getDomain(req);
111
+ const response = NextResponse.redirect(new URL(path || "/", domain));
112
+ [
113
+ "access_token",
114
+ "user_id",
115
+ "user_name",
116
+ "user_nickname",
117
+ "user_email",
118
+ "user_groups"
119
+ ].forEach((cookieName) => {
120
+ response.cookies.delete(cookieName);
121
+ });
122
+ return response;
123
+ }
124
+ //#endregion
125
+ export { LogoConsoleOutput, authCallback, AuthLogin as authLogin, AuthLogout as authLogout, AuthToken as authToken };