@public-ui/sample-react 2.0.3 → 2.0.4

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 (89) hide show
  1. package/dist/1090.js +1 -1
  2. package/dist/1181.js +1 -1
  3. package/dist/1218.js +1 -1
  4. package/dist/1338.js +1 -1
  5. package/dist/1517.js +1 -1
  6. package/dist/1596.js +1 -1
  7. package/dist/2163.js +1 -1
  8. package/dist/2415.js +1 -1
  9. package/dist/2594.js +1 -1
  10. package/dist/2611.js +1 -1
  11. package/dist/2643.js +1 -1
  12. package/dist/3099.js +2 -0
  13. package/dist/3145.js +1 -1
  14. package/dist/3345.js +1 -1
  15. package/dist/3388.js +1 -1
  16. package/dist/3466.js +1 -1
  17. package/dist/3580.js +1 -1
  18. package/dist/3600.js +2 -0
  19. package/dist/3619.js +1 -1
  20. package/dist/3776.js +1 -1
  21. package/dist/3845.js +2 -0
  22. package/dist/4150.js +1 -1
  23. package/dist/42.js +1 -1
  24. package/dist/4279.js +1 -1
  25. package/dist/4463.js +1 -1
  26. package/dist/4669.js +1 -1
  27. package/dist/4686.js +1 -1
  28. package/dist/5027.js +1 -1
  29. package/dist/521.js +1 -1
  30. package/dist/5324.js +1 -1
  31. package/dist/5373.js +1 -1
  32. package/dist/5518.js +1 -1
  33. package/dist/5615.js +1 -1
  34. package/dist/5853.js +1 -1
  35. package/dist/6010.js +1 -1
  36. package/dist/6308.js +1 -1
  37. package/dist/7170.js +1 -1
  38. package/dist/755.js +1 -1
  39. package/dist/7654.js +1 -1
  40. package/dist/8037.js +1 -1
  41. package/dist/817.js +1 -1
  42. package/dist/8612.js +1 -1
  43. package/dist/8734.js +1 -1
  44. package/dist/881.js +1 -1
  45. package/dist/8869.js +1 -1
  46. package/dist/892.js +1 -1
  47. package/dist/8948.js +1 -1
  48. package/dist/8951.js +1 -1
  49. package/dist/9227.js +2 -0
  50. package/dist/9317.js +1 -1
  51. package/dist/9330.js +1 -1
  52. package/dist/9670.js +2 -0
  53. package/dist/9700.js +2 -0
  54. package/dist/9727.js +1 -1
  55. package/dist/9797.js +1 -1
  56. package/dist/9865.js +1 -1
  57. package/dist/9886.js +1 -1
  58. package/dist/9912.js +2 -0
  59. package/dist/9984.js +1 -1
  60. package/dist/main.css +1 -1
  61. package/dist/main.js +286 -2619
  62. package/dist/main.js.LICENSE.txt +2 -2
  63. package/package.json +11 -11
  64. package/src/components/alert/basic.tsx +2 -4
  65. package/src/components/nav/basic.tsx +2 -55
  66. package/src/components/nav/horizontal.tsx +2 -51
  67. package/src/components/nav/links.ts +78 -0
  68. package/src/components/table/horizontal-scrollbar.tsx +57 -0
  69. package/src/components/table/pagination-position.tsx +34 -0
  70. package/src/components/table/render-cell.tsx +77 -22
  71. package/src/components/table/routes.ts +4 -0
  72. package/dist/1532.js +0 -2
  73. package/dist/4114.js +0 -2
  74. package/dist/4563.js +0 -2
  75. package/dist/5496.js +0 -2
  76. package/dist/5767.js +0 -2
  77. package/dist/6805.js +0 -2
  78. package/dist/7232.js +0 -2
  79. package/dist/7271.js +0 -2
  80. package/dist/7271.js.LICENSE.txt +0 -3
  81. package/dist/7432.js +0 -2
  82. package/dist/7432.js.LICENSE.txt +0 -3
  83. /package/dist/{1532.js.LICENSE.txt → 3099.js.LICENSE.txt} +0 -0
  84. /package/dist/{4114.js.LICENSE.txt → 3600.js.LICENSE.txt} +0 -0
  85. /package/dist/{4563.js.LICENSE.txt → 3845.js.LICENSE.txt} +0 -0
  86. /package/dist/{5496.js.LICENSE.txt → 9227.js.LICENSE.txt} +0 -0
  87. /package/dist/{5767.js.LICENSE.txt → 9670.js.LICENSE.txt} +0 -0
  88. /package/dist/{6805.js.LICENSE.txt → 9700.js.LICENSE.txt} +0 -0
  89. /package/dist/{7232.js.LICENSE.txt → 9912.js.LICENSE.txt} +0 -0
@@ -33,7 +33,7 @@
33
33
  */
34
34
 
35
35
  /**
36
- * @remix-run/router v1.14.1
36
+ * @remix-run/router v1.14.2
37
37
  *
38
38
  * Copyright (c) Remix Software Inc.
39
39
  *
@@ -44,7 +44,7 @@
44
44
  */
45
45
 
46
46
  /**
47
- * React Router v6.21.1
47
+ * React Router v6.21.3
48
48
  *
49
49
  * Copyright (c) Remix Software Inc.
50
50
  *
package/package.json CHANGED
@@ -1,32 +1,32 @@
1
1
  {
2
2
  "name": "@public-ui/sample-react",
3
- "version": "2.0.3",
3
+ "version": "2.0.4",
4
4
  "description": "This app contains samples for the KoliBri/Public UI",
5
5
  "license": "EUPL-1.2",
6
6
  "dependencies": {
7
7
  "@leanup/stack": "1.3.49",
8
8
  "@leanup/stack-react": "1.3.49",
9
9
  "@leanup/stack-webpack": "1.3.49",
10
- "@public-ui/components": "2.0.3",
11
- "@public-ui/react": "2.0.3",
12
- "@public-ui/themes": "2.0.3",
13
- "@types/node": "20.10.6",
14
- "@types/react": "18.2.46",
10
+ "@public-ui/components": "2.0.4",
11
+ "@public-ui/react": "2.0.4",
12
+ "@public-ui/themes": "2.0.4",
13
+ "@types/node": "20.11.6",
14
+ "@types/react": "18.2.48",
15
15
  "@types/react-dom": "18.2.18",
16
16
  "@unocss/preset-uno": "0.58.3",
17
17
  "@unocss/webpack": "0.58.3",
18
18
  "ajv": "8.12.0",
19
- "chromedriver": "120.0.1",
19
+ "chromedriver": "120.0.2",
20
20
  "cpy-cli": "5.0.0",
21
21
  "eslint-plugin-jsx-a11y": "6.8.0",
22
22
  "eslint-plugin-react": "7.33.2",
23
23
  "formik": "2.4.5",
24
- "nightwatch-axe-verbose": "2.2.3",
24
+ "nightwatch-axe-verbose": "2.3.0",
25
25
  "npm-run-all": "4.1.5",
26
26
  "react": "18.2.0",
27
27
  "react-dom": "18.2.0",
28
- "react-router": "6.21.1",
29
- "react-router-dom": "6.21.1",
28
+ "react-router": "6.21.3",
29
+ "react-router-dom": "6.21.3",
30
30
  "rimraf": "3.0.2",
31
31
  "ts-prune": "0.10.3",
32
32
  "typescript": "5.3.3",
@@ -54,7 +54,7 @@
54
54
  "format": "prettier --check src",
55
55
  "lint": "eslint \"{src,tests}/**/*.{html,js,json,jsx,ts,tsx,gql,graphql}\"",
56
56
  "serve": "cross-env NODE_ENV=development webpack serve --devtool=source-map",
57
- "start": "npm run serve",
57
+ "start": "npm run serve -- --open",
58
58
  "unused": "ts-prune -e src",
59
59
  "postinstall": "npm-run-all postinstall:*",
60
60
  "postinstall:components-assets": "cpy \"node_modules/@public-ui/components/assets/**/*\" public/assets --dot",
@@ -1,10 +1,8 @@
1
1
  import React from 'react';
2
2
  import { KolAlert } from '@public-ui/react';
3
3
 
4
- import { HeadingLevel } from '@public-ui/components/dist/types/types/heading-level';
5
-
6
4
  import { FC } from 'react';
7
- import { AlertType, AlertVariant } from '@public-ui/components';
5
+ import { AlertType, AlertVariant, HeadingLevel } from '@public-ui/components';
8
6
 
9
7
  type PropsByType = {
10
8
  level: HeadingLevel;
@@ -32,7 +30,7 @@ const AlertByType: FC<PropsByType> = ({ level, type, variant }) => (
32
30
  </>
33
31
  );
34
32
 
35
- export const AlertBasic: FC<PropsBasic> = ({ variant }) => (
33
+ export const AlertBasic: FC<PropsBasic> = ({ variant = 'msg' }) => (
36
34
  <div className="grid gap-4">
37
35
  <AlertByType level={1} type="default" variant={variant} />
38
36
  <AlertByType level={2} type="error" variant={variant} />
@@ -2,59 +2,6 @@ import React from 'react';
2
2
  import { KolNav } from '@public-ui/react';
3
3
 
4
4
  import { FC } from 'react';
5
+ import { LINKS } from './links';
5
6
 
6
- export const NavBasic: FC = () => (
7
- <KolNav
8
- class="block w-sm"
9
- _label="Main navigation"
10
- _links={[
11
- {
12
- _label: 'Homepage',
13
- _icons: 'codicon codicon-home',
14
- _href: '#/',
15
- },
16
- {
17
- _label: '2 Navigation point',
18
- _href: '#/untermenu',
19
- },
20
- {
21
- _label: '3 Navigation point',
22
- _href: '#abc',
23
- _children: [
24
- {
25
- _label: '3.1 Navigation point',
26
- _href: '#/',
27
- },
28
- {
29
- _label: '3.2 Navigation point',
30
- _href: '#abc',
31
- _target: 'asdasd',
32
- },
33
- {
34
- _label: '3.3 Navigation point',
35
- _href: '#abc',
36
- _icons: 'fa-solid fa-cat',
37
- _children: [
38
- {
39
- _label: '3.3.1 Navigation point (active)',
40
- _href: '#abc',
41
- },
42
- { _label: '3.3.2 Navigation point', _href: '#abc' },
43
- ],
44
- },
45
- {
46
- _label: '3.4 Navigation point',
47
- _href: '#abc',
48
- _children: [
49
- { _label: '3.4.1 Navigation point', _href: '#abc' },
50
- { _label: '3.4.2 Navigation point', _href: '#abc' },
51
- ],
52
- },
53
- { _label: '3.5 Navigation point', _href: '#abc' },
54
- ],
55
- },
56
- { _label: '4 Navigation point', _href: '#abc' },
57
- ]}
58
- _hasCompactButton
59
- />
60
- );
7
+ export const NavBasic: FC = () => <KolNav class="block w-fit" _label="Main navigation" _links={LINKS} _hasCompactButton />;
@@ -2,55 +2,6 @@ import React from 'react';
2
2
  import { KolNav } from '@public-ui/react';
3
3
 
4
4
  import { FC } from 'react';
5
+ import { LINKS } from './links';
5
6
 
6
- export const NavHorizontal: FC = () => (
7
- <KolNav
8
- _label="Main navigation"
9
- _links={[
10
- {
11
- _label: 'Homepage',
12
- _href: '#/nav/horizontal',
13
- },
14
- {
15
- _label: '2 Navigation point',
16
- _href: '#/nav/horizontal',
17
- },
18
- {
19
- _label: '3 Navigation point',
20
- _href: '#/nav/horizontal',
21
- _children: [
22
- {
23
- _label: '3.1 Navigation point',
24
- },
25
- {
26
- _label: '3.2 Navigation point',
27
- _href: '#/nav/horizontal',
28
- _target: 'asdasd',
29
- },
30
- {
31
- _label: '3.3 Navigation point',
32
- _href: '#/nav/horizontal',
33
- _children: [
34
- {
35
- _label: '3.3.1 Navigation point (active)',
36
- _href: '#abc',
37
- },
38
- { _label: '3.3.2 Navigation point', _href: '#abc' },
39
- ],
40
- },
41
- {
42
- _label: '3.4 Navigation point',
43
- _href: '#/nav/horizontal',
44
- _children: [
45
- { _label: '3.4.1 Navigation point', _href: '#abc' },
46
- { _label: '3.4.2 Navigation point', _href: '#abc' },
47
- ],
48
- },
49
- { _label: '3.5 Navigation point', _href: '#abc' },
50
- ],
51
- },
52
- { _label: '4 Navigation point', _href: '#abc' },
53
- ]}
54
- _orientation="horizontal"
55
- />
56
- );
7
+ export const NavHorizontal: FC = () => <KolNav _label="Main navigation" _links={LINKS} _orientation="horizontal" />;
@@ -0,0 +1,78 @@
1
+ import { ButtonOrLinkOrTextWithChildrenProps } from '@public-ui/components';
2
+
3
+ export const LINKS: ButtonOrLinkOrTextWithChildrenProps[] = [
4
+ {
5
+ _label: 'Homepage',
6
+ _icons: 'codicon codicon-home',
7
+ _href: '#/',
8
+ },
9
+ {
10
+ _label: '2 Navigation point',
11
+ _href: '#/untermenu',
12
+ },
13
+ {
14
+ _label: '3 Navigation point',
15
+ _href: '#abc',
16
+ _icons: 'codicon codicon-home',
17
+ _children: [
18
+ {
19
+ _label: '3.1 Navigation point',
20
+ _icons: 'codicon codicon-home',
21
+ _href: '#/',
22
+ },
23
+ {
24
+ _label: '3.2 Navigation point',
25
+ _href: '#abc',
26
+ _target: 'asdasd',
27
+ },
28
+ {
29
+ _label: '3.3 Navigation point',
30
+ _href: '#abc',
31
+ _children: [
32
+ {
33
+ _label: '3.3.1 Navigation point',
34
+ _href: '#abc',
35
+ },
36
+ { _label: '3.3.2 Navigation point', _href: '#abc' },
37
+ ],
38
+ },
39
+ {
40
+ _label: '3.4 Navigation point',
41
+ _href: '#abc',
42
+ _children: [
43
+ {
44
+ _label: '3.4.1 Navigation point',
45
+ _href: '#abc',
46
+ _children: [
47
+ { _label: '3.4.1.1 Navigation point', _href: '#abc' },
48
+ { _label: '3.4.1.2 Navigation point (active)', _href: '#abc' },
49
+ ],
50
+ },
51
+ { _label: '3.4.2 Navigation point', _href: '#abc' },
52
+ ],
53
+ },
54
+ { _label: '3.5 Navigation point', _href: '#abc' },
55
+ ],
56
+ },
57
+ { _label: '4 Navigation point', _href: '#abc' },
58
+ {
59
+ _label: '5 Keine eigene Seite, nur Kategorie',
60
+ _active: true,
61
+ _children: [
62
+ {
63
+ _label: '5.1 Verschachtelter Link',
64
+ _href: '#abc',
65
+ },
66
+ ],
67
+ },
68
+ {
69
+ _label: '6 Keine eigene Seite, mit Icon',
70
+ _icons: 'codicon codicon-squirrel',
71
+ _children: [
72
+ {
73
+ _label: '6.1 Verschachtelter Link',
74
+ _href: '#abc',
75
+ },
76
+ ],
77
+ },
78
+ ];
@@ -0,0 +1,57 @@
1
+ import React, { FC, useState } from 'react';
2
+
3
+ import { KolHeading, KolInputCheckbox, KolTable } from '@public-ui/react';
4
+ import { KoliBriTableHeaders } from '@public-ui/components/src';
5
+ import { SampleDescription } from '../SampleDescription';
6
+
7
+ const DATA = [{ small: 'Small Example', large: 'Larger Example' }];
8
+ const HEADERS: KoliBriTableHeaders = {
9
+ horizontal: [
10
+ [
11
+ { label: 'Large Column', key: 'large', textAlign: 'left', width: '400px' },
12
+ { label: 'Small Column', key: 'small', textAlign: 'left', width: '200px' },
13
+ ],
14
+ ],
15
+ };
16
+
17
+ export const TableHorizontalScrollbar: FC = () => {
18
+ const [hasWidthRestriction, setHasWidthRestriction] = useState(true);
19
+
20
+ return (
21
+ <>
22
+ <SampleDescription>
23
+ Table examples with and without horizontal scrollbars. When a scrollbar is present, it should be possible to focus the table container and to scroll it
24
+ using arrow keys.
25
+ </SampleDescription>
26
+
27
+ <KolHeading _label="Table with scrollbar" _level={2} />
28
+
29
+ <KolTable
30
+ _label="Table for demonstration purposes with horizontal scrollbar."
31
+ _minWidth={hasWidthRestriction ? '600px' : 'auto'}
32
+ _headers={HEADERS}
33
+ _data={DATA}
34
+ className="block"
35
+ style={{ width: '400px' }}
36
+ />
37
+
38
+ <KolInputCheckbox
39
+ _checked={hasWidthRestriction}
40
+ _label="Toggle width restriction"
41
+ _variant="switch"
42
+ _on={{
43
+ onChange: (_event, value) => {
44
+ setHasWidthRestriction(Boolean(value));
45
+ },
46
+ }}
47
+ ></KolInputCheckbox>
48
+
49
+ <KolHeading _label="Same table without scrollbar" _level={2} className="block mt-4" />
50
+ <p className="mt-0">
51
+ <i>Scrollbar appears on very small viewport sizes</i>
52
+ </p>
53
+
54
+ <KolTable _label="Table for demonstration purposes without horizontal scrollbar" _minWidth="600px" _headers={HEADERS} _data={DATA} className="block" />
55
+ </>
56
+ );
57
+ };
@@ -0,0 +1,34 @@
1
+ import React, { FC } from 'react';
2
+
3
+ import { KolTable } from '@public-ui/react';
4
+ import { KoliBriTableHeaders, KoliBriTablePaginationProps } from '@public-ui/components';
5
+ import { Data, DATA } from './test-data';
6
+ import { DATE_FORMATTER } from './formatter';
7
+ import { SampleDescription } from '../SampleDescription';
8
+ const HEADERS: KoliBriTableHeaders = {
9
+ horizontal: [
10
+ [
11
+ { label: 'Order', key: 'order' },
12
+ { label: 'Date', key: 'date', render: (_el, _cell, tupel) => DATE_FORMATTER.format((tupel as unknown as Data).date) },
13
+ ],
14
+ ],
15
+ };
16
+ const PAGINATION: KoliBriTablePaginationProps = { _page: 2 };
17
+
18
+ export const PaginationPosition: FC = () => (
19
+ <div className="grid gap-14">
20
+ <SampleDescription>Tables with different pagination positions.</SampleDescription>
21
+ <section>
22
+ <h2>Table with pagination at the bottom.</h2>
23
+ <KolTable _label="Tabellenbeschreibung" _data={DATA} _headers={HEADERS} _pagination={PAGINATION} _paginationPosition="bottom"></KolTable>
24
+ </section>
25
+ <section>
26
+ <h2>Table with pagination at the top.</h2>
27
+ <KolTable _label="Tabellenbeschreibung" _data={DATA} _headers={HEADERS} _pagination={PAGINATION} _paginationPosition="top"></KolTable>
28
+ </section>
29
+ <section>
30
+ <h2>Table with pagination at both top and bottom.</h2>
31
+ <KolTable _label="Tabellenbeschreibung" _data={DATA} _headers={HEADERS} _pagination={PAGINATION} _paginationPosition="both"></KolTable>
32
+ </section>
33
+ </div>
34
+ );
@@ -4,42 +4,97 @@ import { KolButton, KolInputText, KolTable } from '@public-ui/react';
4
4
 
5
5
  import { getRoot } from '../../shares/react-roots';
6
6
  import { KoliBriTableHeaders } from '@public-ui/components';
7
- import { DATA, Data } from './test-data';
8
7
  import { DATE_FORMATTER } from './formatter';
9
8
  import { SampleDescription } from '../SampleDescription';
10
9
 
10
+ type Data = {
11
+ order: number;
12
+ date: Date;
13
+ shipped: boolean;
14
+ };
15
+ const DATA: Data[] = [
16
+ {
17
+ order: 0,
18
+ shipped: false,
19
+ date: new Date('1981-05-26T21:33:43.612Z'),
20
+ },
21
+ {
22
+ order: 1,
23
+ shipped: true,
24
+ date: new Date('1971-04-25T19:44:17.014Z'),
25
+ },
26
+ {
27
+ order: 2,
28
+ shipped: false,
29
+ date: new Date('1986-07-10T11:39:29.539Z'),
30
+ },
31
+ ];
32
+
11
33
  const HEADERS: KoliBriTableHeaders = {
12
34
  horizontal: [
13
35
  [
14
- { label: '#', key: 'order', textAlign: 'center', width: '10em' },
15
36
  {
16
- label: 'Datum (string)',
37
+ label: '#',
38
+ key: 'order',
39
+ textAlign: 'center',
40
+ width: '10em',
41
+
42
+ /* Example 1: Use render return value to format data */
43
+ render: (_el, cell) => `Index: ${cell.label}`,
44
+ },
45
+ {
46
+ label: 'Status',
47
+ key: 'shipped',
48
+ textAlign: 'center',
49
+ width: '10em',
50
+
51
+ /* Example 2: Simple render function using textContent */
52
+ render: (el, cell) => {
53
+ if (cell.label) {
54
+ el.textContent = `Order has been dispatched 🚚`;
55
+ } else {
56
+ el.textContent = `Order pending 📦`;
57
+ }
58
+ },
59
+ },
60
+ {
61
+ label: 'Date (string)',
17
62
  key: 'date',
18
63
  width: '20em',
19
64
  textAlign: 'center',
20
- render: (el, tupel) => {
21
- // https://reactjs.org/docs/portals.html
22
- getRoot(el).render(<strong>{DATE_FORMATTER.format(tupel.label as unknown as Date)}</strong>);
65
+
66
+ /* Example 3: Render function using innerHTML. ⚠️Make sure to sanitize data to avoid XSS. */
67
+ render: (el, cell) => {
68
+ el.innerHTML = `<strong>${DATE_FORMATTER.format(cell.label as unknown as Date)}</strong>`;
23
69
  },
24
- sort: (data: Data[]) =>
25
- data.sort((data0, data1) => {
26
- if (data0.date < data1.date) return -1;
27
- else if (data1.date < data0.date) return 1;
28
- else return 0;
29
- }),
70
+ sort: (data: Data[]) => data.sort((data0, data1) => data0.date.getTime() - data1.date.getTime()),
30
71
  },
31
72
  {
32
- label: 'Aktion (react)',
73
+ label: 'Action (react)',
33
74
  key: 'order',
75
+ width: '20em',
76
+
77
+ /* Example 4: Render function using React */
34
78
  render: (el) => {
35
- el.setAttribute('role', 'presentation');
36
-
37
- // https://reactjs.org/docs/portals.html
38
- getRoot(el).render(
39
- <>
40
- <KolButton _label={'Speichern'} />
41
- <KolInputText _label="Eingabe" />
42
- </>,
79
+ const renderElement = document.createElement('div');
80
+ renderElement.setAttribute('role', 'presentation');
81
+ el.innerHTML = '';
82
+ el.appendChild(renderElement);
83
+
84
+ /* https://react.dev/reference/react-dom/client/createRoot */
85
+ getRoot(renderElement).render(
86
+ <div
87
+ style={{
88
+ display: `grid`,
89
+ gridAutoFlow: `column`,
90
+ alignItems: `end`,
91
+ gap: `1rem`,
92
+ maxWidth: `400px`,
93
+ }}
94
+ >
95
+ <KolInputText _label="Input" />
96
+ <KolButton _label={'Save'} />
97
+ </div>,
43
98
  );
44
99
  },
45
100
  },
@@ -52,6 +107,6 @@ export const TableRenderCell: FC = () => (
52
107
  <SampleDescription>
53
108
  <p>This sample simulates the usage of React render functions for the table column contents.</p>
54
109
  </SampleDescription>
55
- <KolTable _label="Sort a date column" _data={DATA} _headers={HEADERS} className="block min-w-75em" />
110
+ <KolTable _label="Sort by date column" _data={DATA} _headers={HEADERS} className="block min-w-75em" />
56
111
  </>
57
112
  );
@@ -5,13 +5,17 @@ import { TableColumnAlignment } from './column-alignment';
5
5
  import { TableRenderCell } from './render-cell';
6
6
  import { TableSortData } from './sort-data';
7
7
  import { TableWithPagination } from './with-pagination';
8
+ import { PaginationPosition } from './pagination-position';
9
+ import { TableHorizontalScrollbar } from './horizontal-scrollbar';
8
10
 
9
11
  export const TABLE_ROUTES: Routes = {
10
12
  table: {
11
13
  'badge-size': TableBadgeSize,
12
14
  'column-alignment': TableColumnAlignment,
15
+ 'horizontal-scrollbar': TableHorizontalScrollbar,
13
16
  'render-cell': TableRenderCell,
14
17
  'sort-data': TableSortData,
15
18
  'with-pagination': TableWithPagination,
19
+ 'pagination-position': PaginationPosition,
16
20
  },
17
21
  };
package/dist/1532.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 1532.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[1532],{9635:(e,t,r)=>{r.d(t,{a:()=>a,b:()=>g,c:()=>b,d:()=>l,e:()=>h,f:()=>u,g:()=>c,u:()=>f});var n=r(7568);const o=new Set,a=(e,t)=>{(!1===o.has(e)||(null==t?void 0:t.force))&&(o.add(e),n.L.debug([e].concat((null==t?void 0:t.details)||[]),{classifier:"✋ a11y",overwriteStyle:"; background-color: #09f"}))},i=new Set,l=(e,t)=>{(!1===i.has(e)||(null==t?void 0:t.force))&&(i.add(e),n.L.debug([e].concat((null==t?void 0:t.details)||[]),{classifier:"💻 dev",overwriteStyle:"; background-color: #f09"}))},c=(e,t)=>{(!1===i.has(e)||(null==t?void 0:t.force))&&(i.add(e),n.L.warn([e].concat((null==t?void 0:t.details)||[]),{classifier:"💻 dev",overwriteStyle:"; background-color: #f09"}))},s=new Set,u=(e,t=!1,r)=>{(!1===s.has(e)||(null==r?void 0:r.force))&&(s.add(e),e+=!0===t?" ✅":"",n.L.debug([e].concat((null==r?void 0:r.details)||[]),{classifier:"🌟 feature",overwriteStyle:"; background-color: #309"}))};l("Wir freuen uns über jedes Feedback, Kommentare, Screenshots oder Demo-Links von einer auf KoliBri-basierenden Anwendung (kolibri@itzbund.de). Vielen Dank!");const d=new Set,f=(e,t)=>{(!1===d.has(e)||(null==t?void 0:t.force))&&(d.add(e),n.L.debug([e].concat((null==t?void 0:t.details)||[]),{classifier:"📑 ui/ux",overwriteStyle:"; background-color: #060;"}))},h=()=>{a('"Disabled" schränkt die Zugänglichkeit und Sichtbarkeit ein. Wir empfehlen aus Sicht der Barrierefreiheit readonly- statt disabled-Attribut zu verwenden.\n- https://uxdesign.cc/is-it-ok-to-grey-out-disabled-buttons-8afa74a0fae')},g=e=>{"string"==typeof e&&""!==e||a("Manche Strukturelemente, wie bspw. der nav-Tag, können mehrfach in einer Webseite verwendet werden. Damit die gleichnamigen Strukturelemente voneinander unterschieden werden können, ist es erforderlich ein Aria-Label zu setzen.\n- https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Navigation_Role#accessibility_concerns")},b=(e,t=8)=>{t>7&&f(`[${e}] Innerhalb von Navigationsstrukturen wird empfohlen nicht mehr als 7 Menüpunkte zu verwenden.\n\nLinks:\n- https://de.ryte.com/wiki/Millersche_Zahl\n- https://de.wikipedia.org/wiki/Millersche_Zahl`)}},1532:(e,t,r)=>{r.d(t,{K:()=>G,a:()=>C,b:()=>k,c:()=>D,d:()=>j,e:()=>H,f:()=>A,g:()=>L,h:()=>J,i:()=>W,j:()=>Y,k:()=>I,l:()=>Z,m:()=>_,n:()=>B,o:()=>x,p:()=>z,q:()=>V,r:()=>c,s:()=>M,t:()=>T,w:()=>E});var n=r(7568),o=r(9635);const a=(e,t)=>{t.forEach((t=>{!1===e.has(t)&&e.add(t)}))},i=(e,t=document)=>{if(t instanceof Document||t instanceof HTMLElement||t instanceof ShadowRoot){const r=new Set;a(r,t.querySelectorAll(e));const n=t.querySelectorAll('[class*="hydrated"]');for(let t=0;t<n.length;t++){const o=n[t].shadowRoot;a(r,i(e,"object"==typeof o&&null!==o?o:n[t]))}return Array.from(r)}throw new Error("The parameter document for the method querySelectorAll is not type of Document, HTMLElement or ShadowRoot.")},l=(e,t=document)=>{if(t instanceof Document||t instanceof HTMLElement||t instanceof ShadowRoot){let r=t.querySelector(e);if(null===r){const n=t.querySelectorAll('[class*="hydrated"]');for(let t=0;t<n.length;t++){const o=n[t].shadowRoot;if(r=l(e,"object"==typeof o&&null!==o?o:n[t]),null!==r)break}}return r}throw new Error("The parameter document for the method querySelector is not type of Document, HTMLElement or ShadowRoot.")};var c=u,s=u;function u(e){var t=d(e);return 3==t.length?t.concat(255):(t[3]=Math.round(t[3]),t)}function d(e){return"string"==typeof e?("red"==(t=e=e.toLowerCase())?[255,0,0]:"green"==t?[0,255,0]:"blue"==t?[0,0,255]:"black"==t?[0,0,0]:"white"==t?[255,255,255]:"cyan"==t?[0,255,255]:"gray"==t||"grey"==t?[128,128,128]:"magenta"==t||"pink"==t?[255,0,255]:"yellow"==t?[255,255,0]:void 0)||function(e){var t=e.replace(/^#/,""),r=t.length;if(3==r||4==r){var n=h(t[0]),o=h(t[1]),a=h(t[2]),i=3==r?255:h(t[3]);if(isNaN(n)||isNaN(o)||isNaN(a)||isNaN(i))return;return[n,o,a,i]}}(e)||function(e){var t=e.replace(/^#/,""),r=t.length;if(6==r||8==r){var n=h(t.slice(0,2)),o=h(t.slice(2,4)),a=h(t.slice(4,6)),i=6==r?255:h(t.slice(6,8));if(isNaN(n)||isNaN(o)||isNaN(a)||isNaN(i))return;return[n,o,a,i]}}(e)||function(e){if("rgb("==e.substr(0,4)){var t=(e=e.match(/^rgb\(([^)]+)\)/)[1]).split(/ *, */).map(Number),r=g(t[0],!0),n=g(t[1],!0),o=g(t[2],!0);if(-1!=r&&-1!=n&&-1!=o)return[r,n,o,255]}}(e)||function(e){if("rgba("==e.substr(0,5)){var t=(e=e.match(/^rgba\(([^)]+)\)/)[1]).split(/ *, */).map(Number),r=g(t[0],!0),n=g(t[1],!0),o=g(t[2],!0),a=g(255*t[3]);if(-1!=r&&-1!=n&&-1!=o&&-1!=a)return[r,n,o,a]}}(e)||[0,0,0,255]:function(e){if("[object Object]"===Object.prototype.toString.call(e)&&Object.getPrototypeOf(e)===Object.getPrototypeOf({})){var t=g(null!=e.r?e.r:null!=e.red?e.red:0,!0),r=g(null!=e.g?e.g:null!=e.green?e.green:0,!0),n=g(null!=e.b?e.b:null!=e.blue?e.blue:0,!0),o=g(null!=e.a?e.a:null!=e.alpha?e.alpha:255,!0);if(-1!=t&&-1!=r&&-1!=n&&-1!=o)return[t,r,n,o]}}(e)||function(e){if(Array.isArray(e)&&(3==e.length||4==e.length)){var t=g(e[0],!0),r=g(e[1],!0),n=g(e[2],!0),o=g(null!=e[3]?e[3]:255,!0);if(-1!=t&&-1!=r&&-1!=n&&-1!=o)return[t,r,n,o]}}(e)||function(e){if("number"==typeof e&&Math.floor(e)==e&&e<=4294967295&&e>=0)return[e>>16&255,e>>8&255,255&e,e>>24&255]}(e)||[0,0,0,255];var t}function f(e){var t=e.toString(16);return 1==t.length?"0"+t:t}function h(e){return 1==e.length?parseInt(e+e,16):parseInt(e,16)}function g(e,t){return"number"!=typeof e||!0===t&&Math.floor(e)!==e?-1:e>=0&&e<=255?e:-1}c.arr=s,c.obj=function(e){var t=d(e);return{r:t[0],g:t[1],b:t[2],a:3==t.length?255:Math.round(t[3])}},c.css=function(e){var t=d(e);return 3==t.length&&t.push(255),255==t[3]?"rgb("+t[0]+", "+t[1]+", "+t[2]+")":0==t[3]?"rgba("+t[0]+", "+t[1]+", "+t[2]+", 0)":"rgba("+t[0]+", "+t[1]+", "+t[2]+", "+String(t[3]/255).substr(1)+")"},c.hex=function(e){3==(a=d(e)).length&&a.push(255);var t=255==a[3],r=f(a[0]),n=f(a[1]),o=f(a[2]),a=f(Math.round(a[3])),i=function(e,t,r,n){var o=["ff","00","11","22","33","44","55","66","77","88","99","aa","bb","cc","dd","ee"];return-1!=o.indexOf(e)&&-1!=o.indexOf(t)&&-1!=o.indexOf(r)&&-1!=o.indexOf(n)}(r,n,o,a);return t?i?"#"+r.charAt(0)+n.charAt(0)+o.charAt(0):"#"+r+n+o:i?"#"+r.charAt(0)+n.charAt(0)+o.charAt(0)+a.charAt(0):"#"+r+n+o+a},c.num=function(e){var t=d(e);return 3==t.length?t.push(255):t[3]=Math.round(t[3]),(t[3]<<24>>>0|t[0]<<16|t[1]<<8|t[2])>>>0};var b=.2126,p=.7152,m=.0722,y=1/12.92;function v(e){return Math.pow((e+.055)/1.055,2.4)}function w(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,o=t<=.03928?t*y:v(t),a=r<=.03928?r*y:v(r),i=n<=.03928?n*y:v(n);return o*b+a*p+i*m}function S(e){var t=255;8===(e=e.replace(/^#/,"")).length&&(t=parseInt(e.slice(6,8),16),e=e.substring(0,6)),4===e.length&&(t=parseInt(e.slice(3,4).repeat(2),16),e=e.substring(0,3)),3===e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]);var r=parseInt(e,16);return[r>>16,r>>8&255,255&r,t]}function k(e,t){return function(e,t){return function(e,t){return(Math.max(e,t)+.05)/(Math.min(e,t)+.05)}(w(e),w(t))}(S(e),S(t))}const N=/\[object Object\]/,x=(e,t)=>{"string"==typeof e&&N.test(e)||t()},L=(e,t)=>{"string"==typeof e&&""===e||t()},A=(e,t)=>{(0,n.d)()&&(n.L.debug([e,t]),n.L.debug("↑ We propagate the (submit) event to this target.")),Object.defineProperty(e,"target",{value:t,writable:!1})},M=(e,t,r,n={})=>{var o,a;void 0===e.nextHooks&&(e.nextHooks=new Map),void 0===e.nextState&&(e.nextState=new Map),e.nextState.get(t)!==r&&(e.nextHooks.get(t)instanceof Map==0&&e.nextHooks.set(t,new Map),"function"==typeof n.afterPatch&&(null===(o=e.nextHooks.get(t))||void 0===o||o.set("afterPatch",n.afterPatch)),"function"==typeof n.beforePatch&&(null===(a=e.nextHooks.get(t))||void 0===a||a.set("beforePatch",n.beforePatch)),e.nextState.set(t,r),(e=>{var t,r,n;null===(t=e.nextHooks)||void 0===t||t.forEach(((t,r)=>{var n;const o=t.get("beforePatch");"function"==typeof o&&o(null===(n=e.nextState)||void 0===n?void 0:n.get(r),e.nextState,e,r)})),(null===(r=e.nextState)||void 0===r?void 0:r.size)>0&&(e.state=Object.assign(Object.assign({},e.state),Object.fromEntries(e.nextState)),delete e.nextState,null===(n=e.nextHooks)||void 0===n||n.forEach(((t,r)=>{const n=t.get("afterPatch");"function"==typeof n&&n(e.state[r],e.state,e,r)}))),delete e.nextHooks})(e))},O=(e,t,r,n)=>{(0,o.d)(`[${e.constructor.name}] Der Property-Wert (${r}) für '${t}' ist nicht valide. Folgende Werte sind erlaubt: ${Array.from(n).join(", ")}`)};function E(e,t,r,n,o,a={}){r(o)?M(e,t,o,a.hooks):null!=o||a.required?(a.required||n.add(null),O(e,t,o,n)):M(e,t,a.defaultValue,a.hooks)}const C=(e,t,r,n)=>{E(e,t,(e=>"boolean"==typeof e),new Set(["Boolean {true, false}"]),r,n)},j=(e,t,r,n={})=>{const o="number"==typeof n.minLength?null==n?void 0:n.minLength:0;E(e,t,(e=>"string"==typeof e&&e.length>=o&&(void 0===(null==n?void 0:n.maxLength)||e.length<=n.maxLength)),new Set(["String"]),r,n)},H=(e,t,r,n)=>{E(e,t,(e=>"number"==typeof e&&(void 0===(null==n?void 0:n.min)||"number"==typeof(null==n?void 0:n.min)&&e>=n.min)&&(void 0===(null==n?void 0:n.max)||"number"==typeof(null==n?void 0:n.max)&&e<=n.max)),new Set(["Number"]),r,n)},D=(e,t,r,o,a=(e=>e==e),i={})=>{L(o,(()=>{x(o,(()=>{void 0===o&&(o=[]);try{try{o=z(o)}catch(e){}if(Array.isArray(o)){const l=o.find((e=>!r(e)));void 0===l&&a(o)?M(e,t,o,i.hooks):x(l,(()=>{throw n.L.debug(l),new Error("↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.")}))}else x(o,(()=>{throw n.L.debug(o),new Error("↑ Das Schema für das Property (_options) ist nicht valide. Der Wert wird nicht geändert.")}))}catch(e){n.L.debug(e)}}))}))},q=/^(true|false)$/,P=/^-?(0|[1-9]\d*)$/,$=/^-?(0.|[1-9]\d*.)\d*[1-9]$/,_=e=>{const t=typeof e,r=`${e}`;if("string"==typeof e)if(q.test(e))e="true"===e;else if(P.test(e))e=parseInt(e);else if($.test(e))e=parseFloat(e);else if(R.test(e))try{e=z(e)}catch(e){}return t!==typeof e&&(0,o.d)(`You have used a stringified property value (${r} to ${JSON.stringify(e)}) which type switched from ${t} to ${typeof e}!`),e},T=e=>{try{return JSON.stringify(e).replace(/"/g,"'")}catch(t){throw n.L.warn(["stringifyJson",e]),n.L.error("↑ Das JSON konnte nicht in einen String umgewandelt werden. Es wird ein stringifizierbares JSON erwartet."),new Error}},R=/^[{[]/,z=e=>{if("string"==typeof e)try{return JSON.parse(e)}catch(t){if(R.test(e))try{return JSON.parse(e.replace(/'/g,'"'))}catch(t){n.L.warn(["parseJson",e]),n.L.error("↑ Der JSON-String konnte nicht geparsed werden. Achten Sie darauf, dass einfache Anführungszeichen im Text maskiert werden (&#8216;).")}}throw new Error},J=e=>"boolean"==typeof e?!0===e?"true":"false":void 0,W=e=>"string"==typeof e?e:J(e),I=(e,t)=>l(e,t||(0,n.a)()),B=(e,t)=>i(e,t||(0,n.a)());let K=null;const F=()=>(K=K||{backgroundColor:"#00000000",color:"#00000000",domNode:(0,n.a)().body,level:"Fail",score:1},K),U=/(\d+, ){3}0\)/,Z=(e,t=F())=>{const r=getComputedStyle(e),o=U.test(r.backgroundColor)?t.backgroundColor:c.hex(r.backgroundColor),a=U.test(r.color)?t.color:c.hex(r.color),i=k(o,a),l={backgroundColor:o,color:a,domNode:e,level:(s=i,s>=7?"AAA":s>=4.5?"AA":s>=3?"AA Large":"Fail"),score:i};var s;return i<4.5&&n.L.error(["Color-Contrast-Error",{backgroundColor:l.backgroundColor,color:l.color,level:l.level,score:l.score},l.domNode]),l},V=(e,t=F())=>{t.domNode instanceof HTMLElement&&(t=Z(t.domNode,t));const r=t.domNode.querySelector(e);if(null===r){const r=t.domNode.querySelectorAll('[class="hydrated"]');for(let n=0;n<r.length&&(t.domNode=r[n],null===(t=V(e,t)).domNode);n++);return t}return Z(r,t)};class Y{static queryHtmlElementColors(e,t,r=!1,o=!0){let a=null;if(!0===r||!1===Y.executionLock)if(!1===r&&(Y.cache.clear(),Y.cache.set(t.domNode,t),Y.executionLock=!0,!0===o&&n.L.debug("[KoliBriUtils] Color contrast analysis started...")),e===t.domNode)a=t;else{const r=new Set;if(t.domNode.shadowRoot){const e=t.domNode.shadowRoot.children;for(let t=0;t<e.length;t++)r.add(e[t])}const n=t.domNode;if("function"==typeof n.assignedNodes){const e=n.assignedNodes();for(let t=0;t<e.length;t++)e[t]instanceof HTMLElement&&r.add(e[t])}const o=t.domNode.children;for(let e=0;e<o.length;e++)r.add(o[e]);const i=Array.from(r);for(let r=0;r<i.length;r++){let n=Y.cache.get(i[r]);void 0===n&&(n=Z(i[r],t)),Y.cache.set(i[r],n);const o=Y.queryHtmlElementColors(e,n,!0,!1);if(null!==o){a=o;break}}}else n.L.debug("[KoliBriUtils] Call aborted because a color contrast analysis is currently being executed.");return!1===r&&(!0===o&&n.L.debug(`[KoliBriUtils] Color contrast analysis finished (${Y.cache.size} DOM elements are analysed).`),Y.executionLock=!1,Y.cache.clear()),a}}Y.executionLock=!1,Y.cache=new Map;class G{}G.patchTheme=n.b,G.patchThemeTag=n.A,G.querySelector=I,G.querySelectorAll=B,G.stringifyJson=T}}]);
package/dist/4114.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 4114.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[4114],{4114:(e,t,a)=>{switch(location.pathname){case"/dev/toaster.html":a.e(4756).then(a.bind(a,4756));break;case"/dev/reprod-accordion-does-not-toggle-with-open.html":a.e(2079).then(a.bind(a,2079));break;case"/dev/details-synced-open-state.html":a.e(3034).then(a.bind(a,3034))}}}]);