uibee 2.8.2 → 2.8.3

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.
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ type AlertProps = {
3
+ children: ReactNode;
4
+ variant?: 'warning' | 'info';
5
+ className?: string;
6
+ };
7
+ export default function Alert({ children, variant, className, }: AlertProps): import("react/jsx-runtime").JSX.Element;
8
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircleAlert, TriangleAlert, Info } from 'lucide-react';
3
+ export default function Alert({ children, variant = 'warning', className = '', }) {
4
+ const color = variant === 'warning' ? 'bg-red-900'
5
+ : variant === 'info' ? 'bg-blue-600' :
6
+ 'bg-gray-900';
7
+ const Icon = variant === 'warning' ? CircleAlert
8
+ : variant === 'info' ? Info :
9
+ TriangleAlert;
10
+ return (_jsxs("div", { className: `
11
+ grid grid-cols-[min-content_auto] rounded-lg
12
+ p-[0.5em_1em_0.5em_0.8em] items-start w-fit text-white
13
+ ${color} ${className}
14
+ `, children: [_jsx(Icon, { className: 'w-8 h-8 mr-[0.3rem] stroke-login-50' }), _jsx("div", { className: 'self-center', children: children })] }));
15
+ }
@@ -19,3 +19,4 @@ export { default as VersionTag } from './version/version';
19
19
  export { default as LoginPage } from './login/loginPage';
20
20
  export { default as Toaster, toast } from './toast/toaster';
21
21
  export { default as Button } from './buttons/button';
22
+ export { default as Alert } from './alert/alert';
@@ -27,3 +27,5 @@ export { default as LoginPage } from './login/loginPage';
27
27
  export { default as Toaster, toast } from './toast/toaster';
28
28
  // Buttons
29
29
  export { default as Button } from './buttons/button';
30
+ // Alert
31
+ export { default as Alert } from './alert/alert';
@@ -10,12 +10,15 @@
10
10
  --color-red-200: oklch(88.5% 0.062 18.334);
11
11
  --color-red-400: oklch(70.4% 0.191 22.216);
12
12
  --color-red-500: oklch(63.7% 0.237 25.331);
13
+ --color-red-900: oklch(39.6% 0.141 25.723);
13
14
  --color-yellow-500: oklch(79.5% 0.184 86.047);
14
15
  --color-green-500: oklch(72.3% 0.219 149.579);
15
16
  --color-blue-500: oklch(62.3% 0.214 259.815);
17
+ --color-blue-600: oklch(54.6% 0.245 262.881);
16
18
  --color-gray-200: oklch(92.8% 0.006 264.531);
17
19
  --color-gray-300: oklch(87.2% 0.01 258.338);
18
20
  --color-gray-400: oklch(70.7% 0.022 261.325);
21
+ --color-gray-900: oklch(21% 0.034 264.665);
19
22
  --color-black: #000;
20
23
  --color-white: #fff;
21
24
  --spacing: 0.25rem;
@@ -1004,6 +1007,9 @@
1004
1007
  .mt-2 {
1005
1008
  margin-top: calc(var(--spacing) * 2);
1006
1009
  }
1010
+ .mr-\[0\.3rem\] {
1011
+ margin-right: 0.3rem;
1012
+ }
1007
1013
  .mb-1 {
1008
1014
  margin-bottom: calc(var(--spacing) * 1);
1009
1015
  }
@@ -1292,6 +1298,9 @@
1292
1298
  .grid-cols-8 {
1293
1299
  grid-template-columns: repeat(8, minmax(0, 1fr));
1294
1300
  }
1301
+ .grid-cols-\[min-content_auto\] {
1302
+ grid-template-columns: min-content auto;
1303
+ }
1295
1304
  .flex-col {
1296
1305
  flex-direction: column;
1297
1306
  }
@@ -1310,6 +1319,9 @@
1310
1319
  .items-end {
1311
1320
  align-items: flex-end;
1312
1321
  }
1322
+ .items-start {
1323
+ align-items: flex-start;
1324
+ }
1313
1325
  .justify-between {
1314
1326
  justify-content: space-between;
1315
1327
  }
@@ -1344,6 +1356,9 @@
1344
1356
  margin-inline-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-x-reverse)));
1345
1357
  }
1346
1358
  }
1359
+ .self-center {
1360
+ align-self: center;
1361
+ }
1347
1362
  .truncate {
1348
1363
  overflow: hidden;
1349
1364
  text-overflow: ellipsis;
@@ -1429,6 +1444,12 @@
1429
1444
  .bg-\[\#18181899\] {
1430
1445
  background-color: #18181899;
1431
1446
  }
1447
+ .bg-blue-600 {
1448
+ background-color: var(--color-blue-600);
1449
+ }
1450
+ .bg-gray-900 {
1451
+ background-color: var(--color-gray-900);
1452
+ }
1432
1453
  .bg-login {
1433
1454
  background-color: var(--color-login);
1434
1455
  }
@@ -1483,6 +1504,9 @@
1483
1504
  background-color: color-mix(in oklab, var(--color-login) 70%, transparent);
1484
1505
  }
1485
1506
  }
1507
+ .bg-red-900 {
1508
+ background-color: var(--color-red-900);
1509
+ }
1486
1510
  .bg-transparent {
1487
1511
  background-color: transparent;
1488
1512
  }
@@ -1539,6 +1563,9 @@
1539
1563
  .stroke-login {
1540
1564
  stroke: var(--color-login);
1541
1565
  }
1566
+ .stroke-login-50 {
1567
+ stroke: var(--color-login-50);
1568
+ }
1542
1569
  .stroke-\[3\.5px\] {
1543
1570
  stroke-width: 3.5px;
1544
1571
  }
@@ -1563,6 +1590,9 @@
1563
1590
  .p-8 {
1564
1591
  padding: calc(var(--spacing) * 8);
1565
1592
  }
1593
+ .p-\[0\.5em_1em_0\.5em_0\.8em\] {
1594
+ padding: 0.5em 1em 0.5em 0.8em;
1595
+ }
1566
1596
  .px-2 {
1567
1597
  padding-inline: calc(var(--spacing) * 2);
1568
1598
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "uibee",
3
- "version": "2.8.2",
3
+ "version": "2.8.3",
4
4
  "description": "Shared components, functions and hooks for reuse across Login projects",
5
5
  "homepage": "https://github.com/Login-Linjeforening-for-IT/uibee#readme",
6
6
  "bugs": {
@@ -0,0 +1,35 @@
1
+ import { ReactNode } from 'react'
2
+ import { CircleAlert, TriangleAlert, Info } from 'lucide-react'
3
+
4
+ type AlertProps = {
5
+ children: ReactNode
6
+ variant?: 'warning' | 'info'
7
+ className?: string
8
+ }
9
+
10
+ export default function Alert({
11
+ children,
12
+ variant = 'warning',
13
+ className = '',
14
+ }: AlertProps) {
15
+ const color = variant === 'warning' ? 'bg-red-900'
16
+ : variant === 'info' ? 'bg-blue-600' :
17
+ 'bg-gray-900'
18
+
19
+ const Icon = variant === 'warning' ? CircleAlert
20
+ : variant === 'info' ? Info :
21
+ TriangleAlert
22
+
23
+ return (
24
+ <div
25
+ className={`
26
+ grid grid-cols-[min-content_auto] rounded-lg
27
+ p-[0.5em_1em_0.5em_0.8em] items-start w-fit text-white
28
+ ${color} ${className}
29
+ `}
30
+ >
31
+ <Icon className='w-8 h-8 mr-[0.3rem] stroke-login-50' />
32
+ <div className='self-center'>{children}</div>
33
+ </div>
34
+ )
35
+ }
@@ -34,3 +34,6 @@ export { default as Toaster, toast } from './toast/toaster'
34
34
 
35
35
  // Buttons
36
36
  export { default as Button } from './buttons/button'
37
+
38
+ // Alert
39
+ export { default as Alert } from './alert/alert'