@public-ui/sample-react 3.0.0-rc.6 → 3.0.0-rc.7

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 (202) hide show
  1. package/dist/1006.js +2 -0
  2. package/dist/1573.js +1 -1
  3. package/dist/1752.js +2 -0
  4. package/dist/1932.js +2 -0
  5. package/dist/2069.js +2 -0
  6. package/dist/2212.js +2 -0
  7. package/dist/2231.js +2 -0
  8. package/dist/2321.js +2 -0
  9. package/dist/{7997.js → 2596.js} +2 -2
  10. package/dist/2827.js +2 -0
  11. package/dist/2894.js +2 -0
  12. package/dist/{9929.js → 3099.js} +2 -2
  13. package/dist/3151.js +2 -0
  14. package/dist/3203.js +2 -0
  15. package/dist/{4928.js → 3540.js} +2 -2
  16. package/dist/373.js +2 -0
  17. package/dist/3918.js +2 -0
  18. package/dist/3920.js +2 -0
  19. package/dist/4030.js +2 -0
  20. package/dist/4048.js +2 -0
  21. package/dist/4201.js +2 -0
  22. package/dist/4587.js +2 -0
  23. package/dist/4641.js +2 -0
  24. package/dist/4876.js +2 -0
  25. package/dist/5249.js +2 -0
  26. package/dist/5301.js +2 -0
  27. package/dist/5690.js +2 -0
  28. package/dist/5746.js +2 -0
  29. package/dist/5750.js +2 -0
  30. package/dist/5794.js +2 -0
  31. package/dist/{3758.js → 6047.js} +2 -2
  32. package/dist/6066.js +2 -0
  33. package/dist/6304.js +2 -0
  34. package/dist/6781.js +2 -0
  35. package/dist/6790.js +2 -0
  36. package/dist/6984.js +2 -0
  37. package/dist/7013.js +2 -0
  38. package/dist/7178.js +2 -0
  39. package/dist/{7958.js → 7347.js} +2 -2
  40. package/dist/740.js +2 -0
  41. package/dist/7444.js +2 -0
  42. package/dist/7533.js +2 -0
  43. package/dist/7535.js +2 -0
  44. package/dist/775.js +2 -0
  45. package/dist/8137.js +2 -0
  46. package/dist/8180.js +2 -0
  47. package/dist/8192.js +2 -0
  48. package/dist/8246.js +2 -0
  49. package/dist/833.js +2 -0
  50. package/dist/8378.js +2 -0
  51. package/dist/8570.js +2 -0
  52. package/dist/8605.js +2 -0
  53. package/dist/8625.js +2 -0
  54. package/dist/8826.js +2 -0
  55. package/dist/{6420.js → 8840.js} +2 -2
  56. package/dist/907.js +2 -0
  57. package/dist/9108.js +2 -0
  58. package/dist/9162.js +1 -1
  59. package/dist/9255.js +2 -0
  60. package/dist/9322.js +2 -0
  61. package/dist/9581.js +2 -0
  62. package/dist/9719.js +2 -0
  63. package/dist/9731.js +2 -0
  64. package/dist/9930.js +2 -0
  65. package/dist/9938.js +2 -0
  66. package/dist/main.css +1 -1
  67. package/dist/main.js +1 -1
  68. package/dist/main.js.LICENSE.txt +2 -2
  69. package/package.json +17 -17
  70. package/src/components/button/short-key.tsx +104 -3
  71. package/src/components/icon/basic.tsx +2 -1
  72. package/src/components/input-date/partials/cases.tsx +1 -1
  73. package/src/components/link/short-key.tsx +1 -1
  74. package/src/components/select/partials/cases.tsx +6 -3
  75. package/src/components/table/sort-data.tsx +2 -2
  76. package/src/components/table/stateful-with-selection.tsx +4 -1
  77. package/src/components/table/stateless-with-selection.tsx +4 -1
  78. package/src/components/table/stateless-with-single-selection.tsx +2 -0
  79. package/src/components/tree/basic.tsx +1 -0
  80. package/src/scenarios/change-tabindex.tsx +1 -1
  81. package/dist/1068.js +0 -2
  82. package/dist/1219.js +0 -2
  83. package/dist/136.js +0 -2
  84. package/dist/1416.js +0 -2
  85. package/dist/1676.js +0 -2
  86. package/dist/1718.js +0 -2
  87. package/dist/1744.js +0 -2
  88. package/dist/1791.js +0 -2
  89. package/dist/2078.js +0 -2
  90. package/dist/2115.js +0 -2
  91. package/dist/2195.js +0 -2
  92. package/dist/2994.js +0 -2
  93. package/dist/3021.js +0 -2
  94. package/dist/3027.js +0 -2
  95. package/dist/3186.js +0 -2
  96. package/dist/364.js +0 -2
  97. package/dist/3836.js +0 -2
  98. package/dist/3872.js +0 -2
  99. package/dist/3879.js +0 -2
  100. package/dist/3949.js +0 -2
  101. package/dist/4114.js +0 -2
  102. package/dist/4211.js +0 -2
  103. package/dist/4350.js +0 -2
  104. package/dist/4390.js +0 -2
  105. package/dist/4566.js +0 -2
  106. package/dist/4662.js +0 -2
  107. package/dist/5000.js +0 -2
  108. package/dist/5151.js +0 -2
  109. package/dist/5171.js +0 -2
  110. package/dist/5876.js +0 -2
  111. package/dist/597.js +0 -2
  112. package/dist/6451.js +0 -2
  113. package/dist/6480.js +0 -2
  114. package/dist/6577.js +0 -2
  115. package/dist/6983.js +0 -2
  116. package/dist/7084.js +0 -2
  117. package/dist/7225.js +0 -2
  118. package/dist/7267.js +0 -2
  119. package/dist/8069.js +0 -2
  120. package/dist/8177.js +0 -2
  121. package/dist/8212.js +0 -2
  122. package/dist/8243.js +0 -2
  123. package/dist/8283.js +0 -2
  124. package/dist/8478.js +0 -2
  125. package/dist/851.js +0 -2
  126. package/dist/8573.js +0 -2
  127. package/dist/8728.js +0 -2
  128. package/dist/8808.js +0 -2
  129. package/dist/8999.js +0 -2
  130. package/dist/9068.js +0 -2
  131. package/dist/9130.js +0 -2
  132. package/dist/9219.js +0 -2
  133. package/dist/9235.js +0 -2
  134. package/dist/9423.js +0 -2
  135. package/dist/9430.js +0 -2
  136. package/dist/9802.js +0 -2
  137. package/dist/9914.js +0 -2
  138. package/dist/993.js +0 -2
  139. package/dist/993.js.LICENSE.txt +0 -3
  140. /package/dist/{1068.js.LICENSE.txt → 1006.js.LICENSE.txt} +0 -0
  141. /package/dist/{1219.js.LICENSE.txt → 1752.js.LICENSE.txt} +0 -0
  142. /package/dist/{136.js.LICENSE.txt → 1932.js.LICENSE.txt} +0 -0
  143. /package/dist/{1416.js.LICENSE.txt → 2069.js.LICENSE.txt} +0 -0
  144. /package/dist/{1676.js.LICENSE.txt → 2212.js.LICENSE.txt} +0 -0
  145. /package/dist/{1718.js.LICENSE.txt → 2231.js.LICENSE.txt} +0 -0
  146. /package/dist/{1744.js.LICENSE.txt → 2321.js.LICENSE.txt} +0 -0
  147. /package/dist/{1791.js.LICENSE.txt → 2596.js.LICENSE.txt} +0 -0
  148. /package/dist/{2078.js.LICENSE.txt → 2827.js.LICENSE.txt} +0 -0
  149. /package/dist/{2115.js.LICENSE.txt → 2894.js.LICENSE.txt} +0 -0
  150. /package/dist/{2195.js.LICENSE.txt → 3099.js.LICENSE.txt} +0 -0
  151. /package/dist/{2994.js.LICENSE.txt → 3151.js.LICENSE.txt} +0 -0
  152. /package/dist/{3021.js.LICENSE.txt → 3203.js.LICENSE.txt} +0 -0
  153. /package/dist/{3027.js.LICENSE.txt → 3540.js.LICENSE.txt} +0 -0
  154. /package/dist/{3186.js.LICENSE.txt → 373.js.LICENSE.txt} +0 -0
  155. /package/dist/{364.js.LICENSE.txt → 3918.js.LICENSE.txt} +0 -0
  156. /package/dist/{3758.js.LICENSE.txt → 3920.js.LICENSE.txt} +0 -0
  157. /package/dist/{3836.js.LICENSE.txt → 4030.js.LICENSE.txt} +0 -0
  158. /package/dist/{3872.js.LICENSE.txt → 4048.js.LICENSE.txt} +0 -0
  159. /package/dist/{3879.js.LICENSE.txt → 4201.js.LICENSE.txt} +0 -0
  160. /package/dist/{3949.js.LICENSE.txt → 4587.js.LICENSE.txt} +0 -0
  161. /package/dist/{4114.js.LICENSE.txt → 4641.js.LICENSE.txt} +0 -0
  162. /package/dist/{4211.js.LICENSE.txt → 4876.js.LICENSE.txt} +0 -0
  163. /package/dist/{4350.js.LICENSE.txt → 5249.js.LICENSE.txt} +0 -0
  164. /package/dist/{4390.js.LICENSE.txt → 5301.js.LICENSE.txt} +0 -0
  165. /package/dist/{4566.js.LICENSE.txt → 5690.js.LICENSE.txt} +0 -0
  166. /package/dist/{4662.js.LICENSE.txt → 5746.js.LICENSE.txt} +0 -0
  167. /package/dist/{4928.js.LICENSE.txt → 5750.js.LICENSE.txt} +0 -0
  168. /package/dist/{5000.js.LICENSE.txt → 5794.js.LICENSE.txt} +0 -0
  169. /package/dist/{5151.js.LICENSE.txt → 6047.js.LICENSE.txt} +0 -0
  170. /package/dist/{5171.js.LICENSE.txt → 6066.js.LICENSE.txt} +0 -0
  171. /package/dist/{5876.js.LICENSE.txt → 6304.js.LICENSE.txt} +0 -0
  172. /package/dist/{597.js.LICENSE.txt → 6781.js.LICENSE.txt} +0 -0
  173. /package/dist/{6420.js.LICENSE.txt → 6790.js.LICENSE.txt} +0 -0
  174. /package/dist/{6451.js.LICENSE.txt → 6984.js.LICENSE.txt} +0 -0
  175. /package/dist/{6480.js.LICENSE.txt → 7013.js.LICENSE.txt} +0 -0
  176. /package/dist/{6577.js.LICENSE.txt → 7178.js.LICENSE.txt} +0 -0
  177. /package/dist/{6983.js.LICENSE.txt → 7347.js.LICENSE.txt} +0 -0
  178. /package/dist/{7084.js.LICENSE.txt → 740.js.LICENSE.txt} +0 -0
  179. /package/dist/{7225.js.LICENSE.txt → 7444.js.LICENSE.txt} +0 -0
  180. /package/dist/{7267.js.LICENSE.txt → 7533.js.LICENSE.txt} +0 -0
  181. /package/dist/{7958.js.LICENSE.txt → 7535.js.LICENSE.txt} +0 -0
  182. /package/dist/{7997.js.LICENSE.txt → 775.js.LICENSE.txt} +0 -0
  183. /package/dist/{8069.js.LICENSE.txt → 8137.js.LICENSE.txt} +0 -0
  184. /package/dist/{8177.js.LICENSE.txt → 8180.js.LICENSE.txt} +0 -0
  185. /package/dist/{8212.js.LICENSE.txt → 8192.js.LICENSE.txt} +0 -0
  186. /package/dist/{8243.js.LICENSE.txt → 8246.js.LICENSE.txt} +0 -0
  187. /package/dist/{8283.js.LICENSE.txt → 833.js.LICENSE.txt} +0 -0
  188. /package/dist/{8478.js.LICENSE.txt → 8378.js.LICENSE.txt} +0 -0
  189. /package/dist/{851.js.LICENSE.txt → 8570.js.LICENSE.txt} +0 -0
  190. /package/dist/{8573.js.LICENSE.txt → 8605.js.LICENSE.txt} +0 -0
  191. /package/dist/{8728.js.LICENSE.txt → 8625.js.LICENSE.txt} +0 -0
  192. /package/dist/{8808.js.LICENSE.txt → 8826.js.LICENSE.txt} +0 -0
  193. /package/dist/{8999.js.LICENSE.txt → 8840.js.LICENSE.txt} +0 -0
  194. /package/dist/{9068.js.LICENSE.txt → 907.js.LICENSE.txt} +0 -0
  195. /package/dist/{9130.js.LICENSE.txt → 9108.js.LICENSE.txt} +0 -0
  196. /package/dist/{9219.js.LICENSE.txt → 9255.js.LICENSE.txt} +0 -0
  197. /package/dist/{9235.js.LICENSE.txt → 9322.js.LICENSE.txt} +0 -0
  198. /package/dist/{9423.js.LICENSE.txt → 9581.js.LICENSE.txt} +0 -0
  199. /package/dist/{9430.js.LICENSE.txt → 9719.js.LICENSE.txt} +0 -0
  200. /package/dist/{9802.js.LICENSE.txt → 9731.js.LICENSE.txt} +0 -0
  201. /package/dist/{9914.js.LICENSE.txt → 9930.js.LICENSE.txt} +0 -0
  202. /package/dist/{9929.js.LICENSE.txt → 9938.js.LICENSE.txt} +0 -0
@@ -33,7 +33,7 @@
33
33
  */
34
34
 
35
35
  /**
36
- * @remix-run/router v1.21.1
36
+ * @remix-run/router v1.23.0
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.28.2
47
+ * React Router v6.30.0
48
48
  *
49
49
  * Copyright (c) Remix Software Inc.
50
50
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@public-ui/sample-react",
3
- "version": "3.0.0-rc.6",
3
+ "version": "3.0.0-rc.7",
4
4
  "description": "This app contains samples for the KoliBri/Public UI",
5
5
  "license": "EUPL-1.2",
6
6
  "repository": {
@@ -13,20 +13,20 @@
13
13
  "@leanup/stack-webpack": "1.3.54",
14
14
  "@playwright/test": "1.49.1",
15
15
  "@stencil/core": "4.22.3",
16
- "@types/node": "ts5.7",
16
+ "@types/node": "22.14.1",
17
17
  "@types/react": "18.3.4",
18
18
  "@types/react-dom": "18.3.5",
19
- "@typescript-eslint/eslint-plugin": "8.18.2",
20
- "@typescript-eslint/parser": "8.18.2",
19
+ "@typescript-eslint/eslint-plugin": "8.27.0",
20
+ "@typescript-eslint/parser": "8.27.0",
21
21
  "@unocss/preset-uno": "0.58.9",
22
22
  "@unocss/webpack": "0.58.9",
23
- "adopted-style-sheets": "1.1.7",
23
+ "adopted-style-sheets": "1.1.8",
24
24
  "ajv": "8.17.1",
25
25
  "chromedriver": "130.0.4",
26
26
  "cpy-cli": "5.0.0",
27
27
  "cross-env": "7.0.3",
28
28
  "css-loader": "7.1.2",
29
- "esbuild-loader": "4.2.2",
29
+ "esbuild-loader": "4.3.0",
30
30
  "eslint": "^8",
31
31
  "eslint-plugin-html": "8.1.2",
32
32
  "eslint-plugin-json": "^3",
@@ -34,31 +34,31 @@
34
34
  "eslint-plugin-react": "7.37.4",
35
35
  "file-loader": "6.2.0",
36
36
  "formik": "2.4.6",
37
- "knip": "5.40.0",
37
+ "knip": "5.46.0",
38
38
  "less-loader": "12.2.0",
39
39
  "mini-css-extract-plugin": "2.9.2",
40
40
  "nightwatch-axe-verbose": "2.3.1",
41
41
  "npm-run-all2": "7.0.2",
42
42
  "postcss-loader": "8.1.1",
43
- "prettier": "3.4.2",
43
+ "prettier": "3.5.3",
44
44
  "react": "18.3.1",
45
45
  "react-dom": "18.3.1",
46
46
  "react-number-format": "5.4.3",
47
- "react-router": "6.28.2",
48
- "react-router-dom": "6.28.2",
47
+ "react-router": "6.30.0",
48
+ "react-router-dom": "6.30.0",
49
49
  "rimraf": "6.0.1",
50
- "sass-loader": "16.0.4",
50
+ "sass-loader": "16.0.5",
51
51
  "string-replace-loader": "3.1.0",
52
52
  "tslib": "2.8.1",
53
- "typescript": "5.7.3",
54
- "webpack": "5.97.1",
53
+ "typescript": "5.8.2",
54
+ "webpack": "5.98.0",
55
55
  "webpack-cli": "5.1.4",
56
56
  "webpack-dev-server": "5.2.0",
57
57
  "world_countries_lists": "2.9.0",
58
- "yup": "1.5.0",
59
- "@public-ui/components": "3.0.0-rc.6",
60
- "@public-ui/react": "3.0.0-rc.6",
61
- "@public-ui/theme-default": "3.0.0-rc.6"
58
+ "yup": "1.6.1",
59
+ "@public-ui/components": "3.0.0-rc.7",
60
+ "@public-ui/react": "3.0.0-rc.7",
61
+ "@public-ui/theme-default": "3.0.0-rc.7"
62
62
  },
63
63
  "optionalDependencies": {
64
64
  "@public-ui-/theme-ecl": "2.1.3"
@@ -1,8 +1,61 @@
1
- import { KolButton } from '@public-ui/react';
2
- import React from 'react';
1
+ import { createReactRenderElement, KolButton, KolHeading, KolTableStateful } from '@public-ui/react';
3
2
  import type { FC } from 'react';
3
+ import { useRef } from 'react';
4
+ import React from 'react';
4
5
  import { SampleDescription } from '../SampleDescription';
5
6
  import { useToasterService } from '../../hooks/useToasterService';
7
+ import { getRoot } from '../../shares/react-roots';
8
+ import type { KoliBriTableHeaders } from '@public-ui/components';
9
+ import { ToasterService } from '@public-ui/components';
10
+
11
+ const RowActions: FC<{ label: string }> = ({ label }) => {
12
+ const toaster = ToasterService.getInstance(document);
13
+ const editButtonRef = useRef<HTMLKolButtonElement | null>(null);
14
+ const deleteButtonRef = useRef<HTMLKolButtonElement | null>(null);
15
+
16
+ const handleEditClick = () => {
17
+ toaster.enqueue({
18
+ label: 'Edit clicked',
19
+ description: `The button "edit" has been clicked for ${label}`,
20
+ type: 'info',
21
+ });
22
+ };
23
+
24
+ const handleDeleteClick = () => {
25
+ toaster.enqueue({
26
+ label: 'Delete clicked',
27
+ description: `The button "delete" has been clicked for ${label}`,
28
+ type: 'warning',
29
+ });
30
+ };
31
+
32
+ const handleKeyUp = (event: React.KeyboardEvent<HTMLDivElement>) => {
33
+ switch (event.code) {
34
+ case 'KeyE':
35
+ void editButtonRef.current?.kolFocus();
36
+ handleEditClick();
37
+ return;
38
+ case 'KeyD':
39
+ void deleteButtonRef.current?.kolFocus();
40
+ handleDeleteClick();
41
+ return;
42
+ }
43
+ };
44
+
45
+ return (
46
+ // eslint-disable-next-line jsx-a11y/no-static-element-interactions
47
+ <div
48
+ style={{
49
+ display: 'flex',
50
+ gap: 'calc(10rem / var(--kolibri-root-font-size, 16))',
51
+ }}
52
+ onKeyUp={handleKeyUp}
53
+ >
54
+ <KolButton ref={editButtonRef} _label={'Edit'} _shortKey={'e'} _on={{ onClick: handleEditClick }} />
55
+ <KolButton ref={deleteButtonRef} _label={'Delete'} _shortKey={'d'} _variant={'danger'} _on={{ onClick: handleDeleteClick }} />
56
+ </div>
57
+ );
58
+ };
6
59
 
7
60
  export const ButtonShortKey: FC = () => {
8
61
  const { dummyClickEventHandler } = useToasterService();
@@ -11,11 +64,50 @@ export const ButtonShortKey: FC = () => {
11
64
  onClick: dummyClickEventHandler,
12
65
  };
13
66
 
67
+ type Data = {
68
+ label: string;
69
+ };
70
+ const DATA: Data[] = [
71
+ {
72
+ label: 'Row 1',
73
+ },
74
+ {
75
+ label: 'Row 2',
76
+ },
77
+ ];
78
+
79
+ const HEADERS: KoliBriTableHeaders = {
80
+ horizontal: [
81
+ [
82
+ {
83
+ label: 'Label',
84
+ key: 'label',
85
+ textAlign: 'left',
86
+ },
87
+ {
88
+ label: 'Actions',
89
+ key: 'actions',
90
+ textAlign: 'left',
91
+
92
+ render: (el, cell) => {
93
+ getRoot(createReactRenderElement(el)).render(<RowActions label={(cell.data as Data).label} />);
94
+ },
95
+ },
96
+ ],
97
+ ],
98
+ };
99
+
14
100
  return (
15
101
  <>
16
102
  <SampleDescription>
17
103
  <p>
18
- This sample shows KolButton with short key without functionality. The short key is purely visual. Its functionality needs to be developed separately.{' '}
104
+ The first sample shows KolButton with short key without functionality. The short key is purely visual. Its functionality needs to be developed
105
+ separately.
106
+ </p>
107
+ <p>
108
+ The second sample showcases a table where each row contains two KolButtons, each with its own shortcut key. To trigger an action, move the focus to
109
+ any of the &quot;Actions&quot; cells and press &quot;e&quot; or &quot;d.&quot; Doing so will activate the corresponding action and display a Toast
110
+ notification for demonstration purposes.
19
111
  </p>
20
112
  </SampleDescription>
21
113
 
@@ -34,6 +126,15 @@ export const ButtonShortKey: FC = () => {
34
126
  _on={dummyEventHandler}
35
127
  />
36
128
  </div>
129
+
130
+ <KolHeading _level={2} _label="Interactive sample" className="mt" />
131
+
132
+ <KolTableStateful
133
+ _label={`Move focus within one of the "Actions" cells and press "e" or "d" to trigger an action.`}
134
+ _data={DATA}
135
+ _headers={HEADERS}
136
+ _minWidth="400px"
137
+ />
37
138
  </>
38
139
  );
39
140
  };
@@ -12,8 +12,9 @@ export const IconBasic: FC = () => (
12
12
  </SampleDescription>
13
13
 
14
14
  <div className="grid gap-4">
15
- <KolIcon _label="" _icons="codicon codicon-home" />
15
+ <KolIcon className="block w-[1em] h-[1em]" _label="" _icons="codicon codicon-home" />
16
16
  <KolIcon
17
+ className="block w-[1em] h-[1em]"
17
18
  style={{
18
19
  color: 'red',
19
20
  }}
@@ -8,7 +8,7 @@ export const InputDateCases = forwardRef<HTMLKolInputDateElement, Components.Kol
8
8
  return (
9
9
  <div className="grid gap-4">
10
10
  <div className="black-background">
11
- <KolInputDate {...props} _type="date" _label="Date input (Black background test)" _required />{' '}
11
+ <KolInputDate {...props} _type="date" _label="Date input (Black background test)" _required />
12
12
  </div>
13
13
  <KolInputDate {...props} _type="datetime-local" _label="Local-Datetime (Standard)" _required />
14
14
  <KolInputDate
@@ -8,7 +8,7 @@ export const LinkShortKey: FC = () => (
8
8
  <>
9
9
  <SampleDescription>
10
10
  <p>
11
- This sample shows KolButton with short key without functionality. The short key is purely visual. Its functionality needs to be developed separately.{' '}
11
+ This sample shows KolButton with short key without functionality. The short key is purely visual. Its functionality needs to be developed separately.
12
12
  </p>
13
13
  </SampleDescription>
14
14
 
@@ -9,9 +9,8 @@ import { COUNTRY_OPTIONS } from '../../../shares/country';
9
9
 
10
10
  const SALUTATION_OPTIONS: SelectOption<string>[] = [
11
11
  {
12
- label: 'No choice',
12
+ label: 'No salutation',
13
13
  value: '',
14
- disabled: true,
15
14
  },
16
15
  {
17
16
  label: 'Mrs.',
@@ -27,6 +26,10 @@ const SALUTATION_OPTIONS: SelectOption<string>[] = [
27
26
  },
28
27
  ];
29
28
 
29
+ const SALUTATION_OPTIONS_DISABLED = SALUTATION_OPTIONS.map((option, index) =>
30
+ index === 0 ? { label: 'Select salutation', value: '', disabled: true } : option,
31
+ );
32
+
30
33
  type GroupedOptionsType = Record<string, Optgroup<StencilUnknown>>;
31
34
 
32
35
  const groupedOptions: GroupedOptionsType = COUNTRY_OPTIONS.reduce((acc, option) => {
@@ -59,7 +62,7 @@ export const SelectCases = forwardRef<HTMLKolSelectElement, Components.KolSelect
59
62
  }}
60
63
  />
61
64
  <KolSelect {...props} _options={SALUTATION_OPTIONS} _label="Disabled" _disabled />
62
- <KolSelect {...props} _options={SALUTATION_OPTIONS} _label="Salutation with error" _msg={{ _type: 'error', _description: ERROR_MSG }} _touched />
65
+ <KolSelect {...props} _options={SALUTATION_OPTIONS_DISABLED} _label="Salutation with error" _msg={{ _type: 'error', _description: ERROR_MSG }} _touched />
63
66
  <KolSelect {...props} _options={COUNTRY_OPTIONS} _label="Multiple choice" _multiple />
64
67
  <KolSelect
65
68
  {...props}
@@ -59,11 +59,11 @@ export const TableSortData: FC = () => (
59
59
 
60
60
  <section className="w-full grid gap-4">
61
61
  <section className="grid gap-4">
62
- <KolHeading _level={2} _label="Vertical" />
62
+ <KolHeading _level={2} _label="Vertical headers" />
63
63
  <KolTableStateful _label="Sort a date column" _minWidth="auto" _data={DATA.slice(0, 10)} _headers={HEADERS_VERTICAL} className="block" />
64
64
  </section>
65
65
  <section className="grid gap-4">
66
- <KolHeading _level={2} _label="Horizontal" />
66
+ <KolHeading _level={2} _label="Horizontal headers" />
67
67
  <KolTableStateful _label="Sort a date column" _minWidth="auto" _data={DATA} _headers={HEADERS_HORIZONTAL} className="block" />
68
68
  </section>
69
69
  </section>
@@ -10,6 +10,8 @@ import { useToasterService } from '../../hooks/useToasterService';
10
10
  const DATA = [
11
11
  { id: '1001', name: 'Foo Bar', internalIdentifier: `AAA1001` },
12
12
  { id: '1002', name: 'Foo Baz', internalIdentifier: `AAA1002` },
13
+ { id: '1003', name: 'This row is always unchecked', internalIdentifier: `AAA1003` },
14
+ { id: '1004', name: 'This row is always checked', internalIdentifier: `AAA1004` },
13
15
  ];
14
16
  type Data = (typeof DATA)[0];
15
17
 
@@ -28,7 +30,8 @@ export const TableStatefulWithSelection: FC = () => {
28
30
 
29
31
  const selection: KoliBriTableSelection = {
30
32
  label: (row) => `Selection for ${(row as Data).name}`,
31
- selectedKeys: selectedValue ? selectedValue.map((element) => element.internalIdentifier) : [],
33
+ selectedKeys: selectedValue ? selectedValue.map((element) => element.internalIdentifier) : ['AAA1004'],
34
+ disabledKeys: ['AAA1003', 'AAA1004'],
32
35
  keyPropertyName: 'internalIdentifier',
33
36
  };
34
37
 
@@ -10,6 +10,8 @@ import { useToasterService } from '../../hooks/useToasterService';
10
10
  const DATA = [
11
11
  { id: '1001', name: 'Foo Bar', internalIdentifier: `AAA1001` },
12
12
  { id: '1002', name: 'Foo Baz', internalIdentifier: `AAA1002` },
13
+ { id: '1003', name: 'This row is always unchecked', internalIdentifier: `AAA1003` },
14
+ { id: '1004', name: 'This row is always checked', internalIdentifier: `AAA1004` },
13
15
  ];
14
16
  type Data = (typeof DATA)[0];
15
17
 
@@ -24,12 +26,13 @@ function KolButtonWrapper({ label }: { label: string }) {
24
26
  }
25
27
 
26
28
  export const TableStatelessWithSelection: FC = () => {
27
- const [selectedKeys, setSelectedKeys] = useState(['AAA1002']);
29
+ const [selectedKeys, setSelectedKeys] = useState(['AAA1002', 'AAA1004']);
28
30
 
29
31
  const selection: KoliBriTableSelection = {
30
32
  label: (row) => `Selection for ${(row as Data).name}`,
31
33
  selectedKeys,
32
34
  keyPropertyName: 'internalIdentifier',
35
+ disabledKeys: ['AAA1003', 'AAA1004'],
33
36
  };
34
37
 
35
38
  const kolTableStatelessRef = useRef<HTMLKolTableStatelessElement>(null);
@@ -10,6 +10,7 @@ import { useToasterService } from '../../hooks/useToasterService';
10
10
  const DATA = [
11
11
  { id: '1001', name: 'Foo Bar', internalIdentifier: `AAA1001` },
12
12
  { id: '1002', name: 'Foo Baz', internalIdentifier: `AAA1002` },
13
+ { id: '1003', name: 'Foo Disabled', internalIdentifier: `AAA1003` },
13
14
  ];
14
15
  type Data = (typeof DATA)[0];
15
16
 
@@ -30,6 +31,7 @@ export const TableStatelessWithSingleSelection: FC = () => {
30
31
  label: (row) => `Selection for ${(row as Data).name}`,
31
32
  multiple: false,
32
33
  selectedKeys,
34
+ disabledKeys: ['AAA1003'],
33
35
  keyPropertyName: 'internalIdentifier',
34
36
  };
35
37
 
@@ -34,6 +34,7 @@ export const TreeBasic: FC = () => {
34
34
  <KolTree _label="Sitemap" class="block w-fit">
35
35
  <KolTreeItem _label={homeLabel} {...getItemProps('home')}></KolTreeItem>
36
36
  <KolTreeItem _label="2 About (open initially)" {...getItemProps('about')} _open>
37
+ <KolTreeItem _label="2.0 Legal" {...getItemProps('legal')}></KolTreeItem>
37
38
  <KolTreeItem _label="2.1 Team" {...getItemProps('team')}>
38
39
  <KolTreeItem _label="2.1.1. Values" {...getItemProps('values')}></KolTreeItem>
39
40
  <KolTreeItem _label="2.1.2. Members" {...getItemProps('members')}>
@@ -228,7 +228,7 @@ export const ChangeTabindex: FC = () => {
228
228
  </KolSplitButton>
229
229
  <KolSplitButton _label="InputText 3, Tabindex 2" tabIndex={2}>
230
230
  Dropdown-Inhalt
231
- </KolSplitButton>{' '}
231
+ </KolSplitButton>
232
232
  <KolSplitButton _label="InputText 4, Tabindex 1" tabIndex={1}>
233
233
  Dropdown-Inhalt
234
234
  </KolSplitButton>
package/dist/1068.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 1068.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[1068],{3180:(t,a,e)=>{e.d(a,{t:()=>l});var r=e(4216),s=e(5687);let l=(t,a)=>{var e;return(null!==(e=(0,r.g)())&&void 0!==e?e:(0,r.i)("de")).translate(t,a)};"test"===s.p&&(l=t=>t)},8865:(t,a,e)=>{e.d(a,{v:()=>s});var r=e(5800);const s=(t,a,e)=>{(0,r.i)(t,"_src",a,e)}},1068:(t,a,e)=>{e.r(a),e.d(a,{kol_avatar_wc:()=>n});var r=e(1290),s=e(3180),l=e(8865),i=e(1074);const o=t=>0===t.length?"":t[0].toUpperCase(),n=class{constructor(t){(0,r.r)(this,t),this._src=void 0,this._label=void 0,this.state={_src:"",_label:""}}render(){return(0,r.h)("div",{key:"b9ad63a1fb9190d47524deae8e59a00d2a14fa83","aria-label":(0,s.t)("kol-avatar-alt",{placeholders:{name:this.state._label}}),class:"kol-avatar",role:"img"},this.state._src?(0,r.h)("img",{alt:"","aria-hidden":"true",class:"kol-avatar__image",src:this.state._src}):(0,r.h)("span",{"aria-hidden":"true",class:"kol-avatar__initials"},(t=>{const a=t.split(/\s+/),e=a.at(0),r=a.at(-1);return a.length>=2&&e&&r?`${o(e)}${o(r)}`:o(t)})(this.state._label.trim())))}validateSrc(t){(0,l.v)(this,t)}validateLabel(t){(0,i.v)(this,t,{required:!0})}componentWillLoad(){this.validateSrc(this._src),this.validateLabel(this._label)}static get watchers(){return{_src:["validateSrc"],_label:["validateLabel"]}}}},1074:(t,a,e)=>{e.d(a,{a:()=>d,b:()=>o,c:()=>n,h:()=>s,v:()=>h});var r=e(5800);const s=[0,1,2,3,4,5,6],l=/[a-zA-Z0-9äöüÄÖÜß]/g,i=/^\d+$/;function o(t,a=1){return function(t){var a;return"string"==typeof t&&(null===(a=t.match(l))||void 0===a?void 0:a.length)||0}(t)>=a}function n(t){return i.test(t)}const c=new Set(["string"]),h=(t,a,e={})=>{(0,r.w)(t,"_label",(t=>"string"==typeof t),c,a,function(t){var a;return Object.assign(Object.assign({},t),{hooks:{afterPatch:(a,e,s,l)=>{var i,c;"function"==typeof(null===(i=t.hooks)||void 0===i?void 0:i.afterPatch)&&(null===(c=t.hooks)||void 0===c||c.afterPatch(a,e,s,l)),"string"==typeof a&&!1===o(a,3)&&!1===n(a)&&(0,r.a)(`The heading or label ("${a}") is not accessible. A label should consist of at least three readable characters.`),"string"==typeof a&&a.length>80&&(0,r.u)("A heading or label should not be longer than 80 characters.")},beforePatch:null===(a=t.hooks)||void 0===a?void 0:a.beforePatch}})}(e))},d=h},5687:(t,a,e)=>{e.d(a,{b:()=>i,h:()=>s,p:()=>r,s:()=>l});let r="development";try{r="production"}catch(t){r="production"}const s=(t,a,e)=>{if(t&&a&&"string"==typeof e){const r=t.querySelector(`[slot="${e}"]`);r&&a.appendChild(r)}},l=t=>""===t,i=(t,a)=>t||a||""}}]);
package/dist/1219.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 1219.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[1219],{5126:(e,t,n)=>{n.d(t,{K:()=>a});var i=n(1290),o=n(4957);const a=e=>{const{class:t,style:n,icons:a,label:s,onClick:l}=e;return(0,i.h)(o.d,{class:t,style:n,onClick:l,_icons:a,_label:s})}},6884:(e,t,n)=>{n.d(t,{K:()=>r});var i=n(4600),o=n(1290),a=n(9060),s=n(1416),l=n(9732);const r=e=>{const{class:t,msg:n,required:r,disabled:d,touched:c,readonly:h,ariaDescribedBy:u,hideLabel:p,label:m,suggestions:v,value:g}=e,_=(0,i._)(e,["class","msg","required","disabled","touched","readonly","ariaDescribedBy","hideLabel","label","suggestions","value"]),b=(0,l.c)(n,c),f={"kol-input--disabled":Boolean(d),"kol-input--required":Boolean(r),"kol-input--touched":Boolean(c),"kol-input--readonly":Boolean(h),[`kol-input--${(null==n?void 0:n.type)||"error"}`]:b},y=Object.assign(Object.assign({class:(0,a.c)("kol-input",f,t),required:r,disabled:d,readonly:h,type:"text",list:v?`${_.id}-list`:void 0},(0,s.d)({ariaDescribedBy:u,hideLabel:p,label:m})),_);return(0,o.h)(o.F,null,(0,o.h)("input",Object.assign({},y,{value:g})),v)}},4746:(e,t,n)=>{n.d(t,{K:()=>d,a:()=>r});var i=n(4600),o=n(1290),a=n(1416),s=n(6884),l=n(9732);const r=e=>{var{id:t,suggestions:n}=e,a=(0,i._)(e,["id","suggestions"]);return n?(0,o.h)("datalist",Object.assign({id:`${t}-list`},a),n.map((e=>(0,o.h)("option",{value:e})))):null},d=e=>{var{state:t,customSuggestions:n}=e,d=(0,i._)(e,["state","customSuggestions"]);return(0,o.h)(s.K,Object.assign({},function(e,t){const{ariaDescribedBy:n}=(0,a.g)(e),i={id:e._id,hideLabel:e._hideLabel,label:e._label,accessKey:e._accessKey,disabled:e._disabled,name:e._name,ariaDescribedBy:n};return"_type"in e&&(i.type=e._type),"_value"in e&&(i.value=e._value),"_required"in e&&(i.required=e._required),"_maxLength"in e&&(i.maxlength=e._maxLength),"_placeholder"in e&&(i.placeholder=e._placeholder),"_autoComplete"in e&&(i.autoComplete=e._autoComplete),"_spellCheck"in e&&(i.spellcheck=e._spellCheck),"_pattern"in e&&(i.pattern=e._pattern),"_readOnly"in e&&(i.readonly=e._readOnly),"_min"in e&&(i.min=e._min),"_max"in e&&(i.max=e._max),"_step"in e&&(i.step=e._step),"_multiple"in e&&(i.multiple=e._multiple),"_checked"in e&&(i.checked=e._checked),"_indeterminate"in e&&(i.indeterminate=e._indeterminate),"_touched"in e&&(i.touched=e._touched),"_msg"in e&&(i.msg=(0,l.a)(e._msg)),"_suggestions"in e&&!t&&Array.isArray(e._suggestions)&&e._suggestions.length>0&&(i.suggestions=(0,o.h)(r,{id:e._id,suggestions:e._suggestions})),i}(t,n),d))}},359:(e,t,n)=>{n.d(t,{a:()=>l,p:()=>r});var i=n(4957),o=n(5800),a=n(1732);const s=e=>{for((0,a.a)()&&((0,o.j)("↓ Search form element start."),a.L.debug(e));e instanceof HTMLElement&&"FORM"!==e.tagName&&e.tagName!==i.h.toUpperCase();){try{e=e.parentElement instanceof HTMLElement?e.parentElement:e.parentNode instanceof ShadowRoot?e.parentNode.host:null}catch(e){}(0,a.a)()&&(a.L.debug(e),(0,o.j)("↑ Search form element finished."))}return e},l=(e={})=>{var t,n;const a=s(e.form);if(a instanceof HTMLElement){const e=new Event("reset",{bubbles:!0,cancelable:!0});if("FORM"===a.tagName)(0,o.q)(e,a),a.dispatchEvent(e);else if(a.tagName===i.h.toUpperCase()){(0,o.q)(e,o.K.querySelector("form",a));const i=a;"function"==typeof(null===(t=i._on)||void 0===t?void 0:t.onReset)&&(null===(n=i._on)||void 0===n||n.onReset(e))}}},r=(e={})=>{const t=s(e.form);if(t instanceof HTMLElement){const e=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:t});if("FORM"===t.tagName)(0,a.a)()&&!1===t.noValidate&&(0,o.j)("If you have not focusable or hidden form fields in your form, you should enable noValidate for your form.",{force:!0}),setTimeout((()=>{"function"==typeof t.requestSubmit?t.requestSubmit():((0,o.q)(e,t),t.dispatchEvent(e))}));else if(t.tagName===i.h.toUpperCase()){(0,o.q)(e,o.K.querySelector("form",t));const n=t;setTimeout((()=>{var t,i;"function"==typeof(null===(t=n._on)||void 0===t?void 0:t.onSubmit)&&(null===(i=n._on)||void 0===i||i.onSubmit(e))}))}}}},7617:(e,t,n)=>{n.d(t,{I:()=>S,K:()=>k,a:()=>y});var i=n(1290),o=n(3426),a=n(665),s=n(4600),l=n(4957),r=n(5126),d=n(9060),c=n(9732),h=n(1416),u=n(8973),p=n(5800),m=n(608);const v=(e,t)=>{var{position:n="start",class:o}=e,a=(0,s._)(e,["position","class"]);const l="kol-input-container__adornment",r=`${l}--${n}`;return(0,i.h)("div",Object.assign({class:(0,d.c)(l,r,o)},a),t)};function g(e){return!!e&&(Array.isArray(e)?e.length>0:Boolean(e))}const _=(e,t)=>{var{class:n}=e,o=(0,s._)(e,["class"]);return(0,i.h)("div",Object.assign({class:(0,d.c)("kol-input-container__container",n)},o),t)},b=(e,t)=>{const{class:n,startAdornment:o,endAdornment:a,disabled:l,msg:r,touched:h,containerProps:u,startAdornmentProps:p,endAdornmentProps:m}=e,b=(0,s._)(e,["class","startAdornment","endAdornment","disabled","msg","touched","containerProps","startAdornmentProps","endAdornmentProps"]),f=(0,c.c)(r,h),y={"kol-input-container--disabled":l,[`kol-input-container--${(null==r?void 0:r.type)||"error"}`]:f},k=Object.assign({class:(0,d.c)("kol-input-container",y,n)},b);return g(o)||g(a)?(0,i.h)("div",Object.assign({},k),(0,i.h)(v,Object.assign({},p,{position:"start"}),o),(0,i.h)(_,Object.assign({},u),t),(0,i.h)(v,Object.assign({},m,{position:"end"}),a)):(0,i.h)("div",Object.assign({},k),(0,i.h)(_,Object.assign({},u),t))},f=e=>{const{label:t,icons:n,hideLabel:o,disabled:a,onClick:r}=e,d=(0,s._)(e,["label","icons","hideLabel","disabled","onClick"]);return(0,i.h)(l.a,Object.assign({tabindex:0,_label:t,_disabled:a,_icons:n,_hideLabel:o,_on:{onClick:r}},d))},y=e=>{const{componentName:t="button",label:n,icon:o,onClick:a}=e,l=(0,s._)(e,["componentName","label","icon","onClick"]),d="button"===t?f:r.K;return(0,i.h)(d,Object.assign({label:n||"",hideLabel:!0,icons:`codicon codicon-${o}`,onClick:a},l))},k=({state:e,endAdornment:t},n)=>{const{icons:s,smartButton:l,disabled:r,msg:d,touched:h}=function(e){let t,n;return"_icons"in e&&(t=e._icons),"_smartButton"in e&&(n=e._smartButton),{icons:t,smartButton:n,disabled:e._disabled,msg:(0,c.a)(e._msg),touched:e._touched}}(e);let u=null==s?void 0:s.left;(0,o.i)(u)&&(u={icon:u});let p=null==s?void 0:s.right;(0,o.i)(p)&&(p={icon:p});const m=[],v=[];return t&&(Array.isArray(t)?v.push(...t):v.push(t)),u&&m.push((0,i.h)(y,Object.assign({componentName:"icon"},(0,a.i)(u)?u:{}))),(0,a.i)(l)&&v.push((0,i.h)(y,Object.assign({componentName:"button"},l,{hideLabel:!0,disabled:r}))),p&&v.push((0,i.h)(y,Object.assign({componentName:"icon"},(0,a.i)(p)?p:{}))),(0,i.h)(b,{disabled:r,msg:d,touched:h,startAdornment:m,endAdornment:v},n)},w=(e,t)=>{const n=e;"object"==typeof n&&null!==n&&((0,m.i)(n.right,1)&&(n.right={icon:n.right}),(0,m.i)(n.left,1)&&(n.left={icon:n.left}),t.set("_icons",n))};class S extends h.I{constructor(e,t,n){super(e,t,n),this.component=e}validateIcons(e){(0,p.o)(e,(()=>{try{e=(0,p.p)(e)}catch(e){}(0,p.w)(this.component,"_icons",(e=>"object"==typeof e&&null!==e&&((0,m.i)(e.left,1)||(0,u.i)(e.left)||(0,m.i)(e.right,1)||(0,u.i)(e.right))),new Set(["KoliBriHorizontalIcon"]),e,{hooks:{beforePatch:w},required:!0})}))}componentWillLoad(){super.componentWillLoad(),this.validateIcons(this.component._icons)}}},8973:(e,t,n)=>{n.d(t,{i:()=>s,v:()=>l});var i=n(5800),o=n(608);const a=(e,t,n)=>{(0,o.b)(n)?e[t]=n:(0,o.i)(n,1)&&(e[t]={icon:n})},s=e=>"object"==typeof e&&null!==e&&(void 0===e.style||(0,o.a)(e.style))&&(void 0===e.label||(0,o.i)(e.label))&&(0,o.i)(e.icon,1),l=(e,t,n={})=>{(0,i.o)(t,(()=>{var l;try{t=(0,i.p)(t)}catch(e){}(0,i.w)(e,"_icons",(e=>{const t="object"==typeof e&&null!==e&&0===Object.keys(e).length;return null===e||t||(0,o.i)(e,1)||"object"==typeof e&&null!==e&&((0,o.i)(e.left,1)||s(e.left)||(0,o.i)(e.right,1)||s(e.right)||(0,o.i)(e.top,1)||s(e.top)||(0,o.i)(e.bottom,1)||s(e.bottom))}),new Set(["KoliBriIcon"]),t,Object.assign(Object.assign({},n),{defaultValue:{},hooks:{afterPatch:null===(l=n.hooks)||void 0===l?void 0:l.afterPatch,beforePatch:(e,t,i,s)=>{var l,r;"function"==typeof(null===(l=n.hooks)||void 0===l?void 0:l.beforePatch)&&(null===(r=n.hooks)||void 0===r||r.beforePatch(e,t,i,s)),(e=>{var t,n,i;if(null===(t=e.nextState)||void 0===t?void 0:t.has("_icons")){const t=null===(n=e.nextState)||void 0===n?void 0:n.get("_icons");null===(i=e.nextState)||void 0===i||i.set("_icons",(e=>{let t={};return(0,o.i)(e,1)?t={left:{icon:e}}:"object"==typeof e&&null!==e&&(a(t,"top",e.top),a(t,"right",e.right),a(t,"bottom",e.bottom),a(t,"left",e.left)),t})(t))}})(i)}}}))}))}},665:(e,t,n)=>{function i(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}n.d(t,{i:()=>i})},1219:(e,t,n)=>{n.r(t),n.d(t,{kol_input_date:()=>v});var i=n(1290),o=n(9060),a=n(526),s=n(359),l=n(7617),r=n(5800),d=n(623),c=n(4746),h=n(1416),u=(e,t,n)=>new Promise(((i,o)=>{var a=e=>{try{l(n.next(e))}catch(e){o(e)}},s=e=>{try{l(n.throw(e))}catch(e){o(e)}},l=e=>e.done?i(e.value):Promise.resolve(e.value).then(a,s);l((n=n.apply(e,t)).next())}));const p=["date","datetime-local","month","time","week"];class m extends l.I{constructor(e,t,n){super(e,t,n),this.validateIso8601=(e,t,n)=>(0,r.w)(this.component,e,(e=>void 0===e||null==e||""===e||this.validateDateString(e)),new Set(["Date","string{ISO-8601}"]),m.tryParseToString(t,this.component._type,this.component._step),{hooks:{afterPatch:e=>{"string"==typeof e&&n&&n(e)}}}),this.component=e}validateAutoComplete(e){(0,r.w)(this.component,"_autoComplete",(e=>"string"==typeof e&&("on"===e||"off"===e)),new Set(["on | off"]),e)}validateSuggestions(e){(0,d.v)(this.component,e)}static tryParseToString(e,t,n){if("string"==typeof e||null===e)return e;if("object"==typeof e&&e instanceof Date){const i=e.getFullYear(),o=String(e.getMonth()+1).padStart(2,"0"),a=String(e.getDate()).padStart(2,"0"),s=String(e.getHours()).padStart(2,"0"),l=String(e.getMinutes()).padStart(2,"0"),r=String(e.getSeconds()).padStart(2,"0"),d=[i,o,a].join("-"),c=[s,l,r].join(":");switch(t){case"date":return d;case"datetime-local":return`${d}T${c}`;case"month":return`${i}-${o}`;case"time":return void 0===n||"60"===String(n)?`${s}:${l}`:c;case"week":return`${i}-W${this.getWeekNumberOfDate(e)}`}}}static getWeekNumberOfDate(e){const t=new Date(e),n=(t.getDay()+6)%7;t.setDate(t.getDate()-n+3);const i=t.valueOf();return t.setMonth(0,1),4!==t.getDay()&&t.setMonth(0,1+(4-t.getDay()+7)%7),(1+Math.ceil((i-t.valueOf())/6048e5)).toString().padStart(2,"0")}validateDateString(e){switch(this.component._type){case"date":return m.isoDateRegex.test(e);case"datetime-local":return m.isoLocalDateTimeRegex.test(e);case"month":return m.isoMonthRegex.test(e);case"time":return m.isoTimeRegex.test(e);case"week":return m.isoWeekRegex.test(e);default:return!1}}onBlur(e){super.onBlur(e),!!e.target.value!=!!this.component._value&&(this.component._value=e.target.value)}validateMax(e){const t=null!=e||"date"!==this.component._type&&"month"!==this.component._type&&"datetime-local"!==this.component._type?e:m.DEFAULT_MAX_DATE;this.validateIso8601("_max",t)}validateMin(e){this.validateIso8601("_min",e)}validateOn(e){(0,r.s)(this.component,"_on",Object.assign(Object.assign({},e),{onChange:(t,n)=>{!!n!=!!this.component._value&&(this.component._value=n),(null==e?void 0:e.onChange)&&e.onChange(t,n)}}))}validateReadOnly(e){((e,t)=>{(0,r.b)(e,"_readOnly",t)})(this.component,e)}validateRequired(e){(0,r.b)(this.component,"_required",e)}validateStep(e){(0,r.k)(this.component,"_step",e)}validateType(e){(0,r.w)(this.component,"_type",(e=>"string"==typeof e&&p.includes(e)),new Set([`String {${p.join(", ")}`]),e)}validateValue(e){this.validateValueEx(e)}validateValueEx(e,t){this.validateIso8601("_value",e,t),this.setFormAssociatedValue(this.component.state._value)}componentWillLoad(){super.componentWillLoad(),this.validateAutoComplete(this.component._autoComplete),this.validateMax(this.component._max),this.validateMin(this.component._min),this.validateLabel(this.component._label),this.validateSuggestions(this.component._suggestions),this.validateOn(this.component._on),this.validateReadOnly(this.component._readOnly),this.validateRequired(this.component._required),this.validateStep(this.component._step),this.validateType(this.component._type),this.validateValue(this.component._value)}}m.isoDateRegex=/^\d{4}-([0]\d|1[0-2])-([0-2]\d|3[01])/,m.isoLocalDateTimeRegex=/^\d{4}-([0]\d|1[0-2])-([0-2]\d|3[01])[T ][0-2]\d:[0-5]\d(:[0-5]\d(?:\.\d+)?)?/,m.isoMonthRegex=/^\d{4}-([0]\d|1[0-2])/,m.isoTimeRegex=/^[0-2]\d:[0-5]\d(:[0-5]\d(?:\.\d+)?)?/,m.isoWeekRegex=/^\d{4}-W(?:[0-4]\d|5[0-3])$/,m.DEFAULT_MAX_DATE=new Date(9999,11,31,23,59,59);const v=class{getValue(){return u(this,null,(function*(){var e;return this.inputRef&&this.remapValue(null===(e=this.inputRef)||void 0===e?void 0:e.value)}))}kolFocus(){return u(this,null,(function*(){var e;null===(e=this.inputRef)||void 0===e||e.focus()}))}reset(){return u(this,null,(function*(){this.state=Object.assign(Object.assign({},this.state),{_value:null}),this.controller.setFormAssociatedValue(""),this.inputRef&&(this.inputRef.value="")}))}setInitialValueType(e){e instanceof Date?this._initialValueType="Date":this._initialValueType="string"==typeof e?"String":null}remapValue(e){return"Date"===this._initialValueType?new Date(e):e}getFormFieldProps(){return{state:this.state,class:(0,o.c)("kol-input-date",this.state._type,{"has-value":this.state._hasValue}),tooltipAlign:this._tooltipAlign,onClick:()=>{var e;return null===(e=this.inputRef)||void 0===e?void 0:e.focus()},alert:this.showAsAlert()}}getInputProps(){return Object.assign(Object.assign({ref:this.catchRef,state:this.state},this.controller.onFacade),{onBlur:this.onBlur,onFocus:this.onFocus,onKeyDown:this.onKeyDown,onChange:this.onChange,onInput:this.onInput})}render(){return(0,i.h)(h.K,Object.assign({key:"9e77f6ab10578d1e1a0ca4acc3ac2bbcf6da83a8"},this.getFormFieldProps()),(0,i.h)(l.K,{key:"c1f41c979b0101f6dbd0e32956a5ccbcc002d973",state:this.state},(0,i.h)(c.K,Object.assign({key:"276a2bf5473d0547c33fa8f562a38f5b59ffeb92"},this.getInputProps()))))}constructor(e){(0,i.r)(this,e),this.catchRef=e=>{this.inputRef=e},this.onBlur=e=>{this.controller.onFacade.onBlur(e),this.inputHasFocus=!1},this.onFocus=e=>{this.controller.onFacade.onFocus(e),this.inputHasFocus=!0},this.onChange=e=>{const t=e.target.value,n=this.remapValue(t);this.controller.onFacade.onChange(e,n)},this.onInput=e=>{const t=e.target.value,n=this.remapValue(t);this._value=n,this.controller.onFacade.onInput(e,!0,n)},this.onKeyDown=e=>{"Enter"!==e.code&&"NumpadEnter"!==e.code||(0,s.p)({form:this.host,ref:this.inputRef})},this._initialValueType=null,this._accessKey=void 0,this._autoComplete=void 0,this._disabled=!1,this._hideMsg=!1,this._hideLabel=!1,this._hint="",this._icons=void 0,this._id=void 0,this._label=void 0,this._max=void 0,this._min=void 0,this._msg=void 0,this._name=void 0,this._on=void 0,this._readOnly=!1,this._required=!1,this._shortKey=void 0,this._smartButton=void 0,this._suggestions=void 0,this._syncValueBySelector=void 0,this._step=void 0,this._tooltipAlign="top",this._touched=!1,this._type="date",this._value=void 0,this.state={_autoComplete:"off",_hasValue:!1,_hideMsg:!1,_id:`id-${(0,a.n)()}`,_label:"",_suggestions:[],_type:"datetime-local"},this.inputHasFocus=!1,this.controller=new m(this,"date",this.host)}showAsAlert(){return Boolean(this.state._touched)&&!this.inputHasFocus}validateAccessKey(e){this.controller.validateAccessKey(e)}validateAutoComplete(e){this.controller.validateAutoComplete(e)}validateDisabled(e){this.controller.validateDisabled(e)}validateHideMsg(e){this.controller.validateHideMsg(e)}validateHideLabel(e){this.controller.validateHideLabel(e)}validateHint(e){this.controller.validateHint(e)}validateIcons(e){this.controller.validateIcons(e)}validateId(e){this.controller.validateId(e)}validateLabel(e){this.controller.validateLabel(e)}validateMax(e){this.controller.validateMax(e)}validateMin(e){this.controller.validateMin(e)}validateMsg(e){this.controller.validateMsg(e)}validateName(e){this.controller.validateName(e)}validateOn(e){this.controller.validateOn(e)}validateReadOnly(e){this.controller.validateReadOnly(e)}validateRequired(e){this.controller.validateRequired(e)}validateShortKey(e){this.controller.validateShortKey(e)}validateSmartButton(e){this.controller.validateSmartButton(e)}validateSuggestions(e){this.controller.validateSuggestions(e)}validateStep(e){this.controller.validateStep(e)}validateSyncValueBySelector(e){this.controller.validateSyncValueBySelector(e)}validateTouched(e){this.controller.validateTouched(e)}validateType(e){this.controller.validateType(e)}validateValue(e){e instanceof Date&&(0,r.n)("Date type will be removed in v3. Use `Iso8601` instead."),this.controller.validateValueEx(e),void 0!==e&&this.setInitialValueType(e)}componentWillLoad(){void 0!==this._value&&this.setInitialValueType(this._value),this._touched=!0===this._touched,this.controller.componentWillLoad(),this.state._hasValue=!!this.state._value,this.controller.addValueChangeListener((e=>this.state._hasValue=!!e))}static get delegatesFocus(){return!0}get host(){return(0,i.g)(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_autoComplete:["validateAutoComplete"],_disabled:["validateDisabled"],_hideMsg:["validateHideMsg"],_hideLabel:["validateHideLabel"],_hint:["validateHint"],_icons:["validateIcons"],_id:["validateId"],_label:["validateLabel"],_max:["validateMax"],_min:["validateMin"],_msg:["validateMsg"],_name:["validateName"],_on:["validateOn"],_readOnly:["validateReadOnly"],_required:["validateRequired"],_shortKey:["validateShortKey"],_smartButton:["validateSmartButton"],_suggestions:["validateSuggestions"],_step:["validateStep"],_syncValueBySelector:["validateSyncValueBySelector"],_touched:["validateTouched"],_type:["validateType"],_value:["validateValue"]}}};v.style={default:"/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n .kol-alert {\n display: grid;\n }\n .kol-alert__container {\n place-items: center;\n display: flex;\n }\n .kol-alert__container-content {\n flex-grow: 1;\n }\n .kol-alert__close-button {\n /* Visible with forced colors */\n outline: transparent solid calc(1rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-form-field {\n display: grid;\n font-size: rem(16);\n }\n .kol-form-field:not(.kol-form-field--disabled) .kol-form-field__label {\n cursor: pointer;\n }\n .kol-form-field--disabled .kol-form-field__label {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__label-text::after {\n content: \"*\";\n }\n .kol-form-field--disabled .kol-form-field__hint {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__tooltip .span-label::after {\n content: \"*\";\n }\n}\n@layer kol-component {\n .kol-input-container {\n align-items: center;\n background-color: white;\n cursor: pointer;\n display: grid;\n grid-template-columns: 1fr;\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start) {\n grid-template-columns: auto 1fr;\n }\n .kol-input-container:has(> .kol-input-container__adornment--end) {\n grid-template-columns: 1fr auto;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start):has(> .kol-input-container__adornment--end) {\n grid-template-columns: auto 1fr auto;\n }\n .kol-input-container__container {\n position: relative;\n }\n .kol-input-container__adornment {\n display: flex;\n align-items: center;\n }\n .kol-input-container__adornment .kol-icon {\n display: grid;\n height: var(--a11y-min-size);\n place-items: center;\n }\n}\n@layer kol-component {\n .kol-input {\n font-size: rem(16);\n height: rem(44);\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input:focus {\n outline: none;\n }\n}"}},623:(e,t,n)=>{n.d(t,{v:()=>o});var i=n(5800);const o=(e,t)=>{(0,i.g)(e,"_suggestions",(e=>"string"==typeof e||"number"==typeof e),t,void 0,{hooks:{afterPatch:e=>{Array.isArray(e)&&e.length&&(0,i.a)("Property suggestions: Options have accessibility issues in how browsers implemented them and should not be used for now.")}}})}}}]);
package/dist/136.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 136.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[136],{136:(t,e,i)=>{i.r(e),i.d(e,{kol_tooltip_wc:()=>c});var s=i(1290),o=i(3555),n=i(9914),l=i(5800),h=i(1732),a=i(9246),r=i(1074);const d=new Set,c=class{constructor(t){(0,s.r)(this,t),this.hasFocusIn=!1,this.hasMouseIn=!1,this.showTooltip=()=>{if(this.previousSibling&&this.tooltipElement){t=this.tooltipElement,d.forEach((t=>{t.style.setProperty("z-index","999")})),d.add(t),t.style.setProperty("z-index","1000"),this.tooltipElement.style.setProperty("display","block"),(0,h.g)().addEventListener("keyup",this.hideTooltipByEscape);const e=this.previousSibling,i=this.tooltipElement;this.cleanupAutoPositioning=(0,o.b)(e,i,(()=>{this.alignTooltip()}))}var t},this.hideTooltip=()=>{this.tooltipElement&&(function(t){if(d.delete(t),d.size>0){const t=Array.from(d).pop();t&&t.style.setProperty("z-index","1000")}}(this.tooltipElement),this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),this.cleanupAutoPositioning&&(this.cleanupAutoPositioning(),this.cleanupAutoPositioning=void 0)),(0,h.g)().removeEventListener("keyup",this.hideTooltipByEscape)},this.hideTooltipByEscape=t=>{"Escape"===t.key&&this.hideTooltip()},this.addListeners=t=>{t.addEventListener("mouseenter",this.handleMouseEnter.bind(this)),t.addEventListener("mouseleave",this.handleMouseleave.bind(this)),t.addEventListener("focusin",this.handleFocusIn.bind(this)),t.addEventListener("focusout",this.handleFocusout.bind(this))},this.removeListeners=t=>{t.removeEventListener("mouseenter",this.handleMouseEnter.bind(this)),t.removeEventListener("mouseleave",this.handleMouseleave.bind(this)),t.removeEventListener("focusin",this.handleFocusIn.bind(this)),t.removeEventListener("focusout",this.handleFocusout.bind(this))},this.resyncListeners=(t,e,i=!1)=>{t&&this.removeListeners(t),e&&(i&&(this.previousSibling=e),this.addListeners(e))},this.catchTooltipElement=t=>{this.tooltipElement=t},this.catchArrowElement=t=>{this.arrowElement=t},this.showOrHideTooltip=()=>{clearTimeout(this.overFocusTimeout),this.overFocusTimeout=setTimeout((()=>{this.hasMouseIn||this.hasFocusIn?this.showTooltip():this.hideTooltip()}),300)},this._badgeText=void 0,this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_label:""}}alignTooltip(){return t=this,e=function*(){this.tooltipElement&&this.previousSibling&&(yield(0,o.a)({align:this._align,referenceElement:this.previousSibling,arrowElement:this.arrowElement,floatingElement:this.tooltipElement}))},new Promise(((i,s)=>{var o=t=>{try{l(e.next(t))}catch(t){s(t)}},n=t=>{try{l(e.throw(t))}catch(t){s(t)}},l=t=>t.done?i(t.value):Promise.resolve(t.value).then(o,n);l((e=e.apply(t,null)).next())}));var t,e}handleMouseEnter(){this.hasMouseIn=!0,this.showOrHideTooltip()}handleMouseleave(){this.hasMouseIn=!1,this.showOrHideTooltip()}handleFocusIn(){this.hasFocusIn=!0,this.showOrHideTooltip()}handleFocusout(){this.hasFocusIn=!1,this.showOrHideTooltip()}render(){return(0,s.h)(s.H,{key:"ca7a0e84c0bcf91c4ddd70293ef69be64c6c9bb2",class:"kol-tooltip"},""!==this.state._label&&(0,s.h)("div",{key:"57033c3355b84f3adf83e1dd96ce67ba43fb497e",class:"kol-tooltip__floating",ref:this.catchTooltipElement},(0,s.h)("div",{key:"c4f076e0bb5194b9d4f143a92c8bf7a6fe2c60f2",class:"kol-tooltip__arrow",ref:this.catchArrowElement}),(0,s.h)(n.K,{key:"492b1c85bceb336e5a3c6bab5878d9f9673c068c",class:"kol-tooltip__content",id:this.state._id,badgeText:this._badgeText,label:this.state._label})))}validateBadgeText(t){((t,e)=>{(0,l.i)(t,"_badgeText",e)})(this,t)}validateAlign(t){(0,a.v)(this,t)}validateId(t){((t,e)=>{(0,l.i)(t,"_id",e)})(this,t)}validateLabel(t){(0,r.v)(this,t,{required:!0})}componentWillLoad(){this.validateBadgeText(this._badgeText),this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label)}handleEventListeners(){var t;this.resyncListeners(this.previousSibling,null===(t=this.host)||void 0===t?void 0:t.previousElementSibling,!0),this.resyncListeners(this.tooltipElement,this.tooltipElement)}connectedCallback(){var t;this.previousSibling=null===(t=this.host)||void 0===t?void 0:t.previousElementSibling}componentDidRender(){this.handleEventListeners()}disconnectedCallback(){this.previousSibling&&(this.removeListeners(this.previousSibling),this.previousSibling=void 0),this.tooltipElement&&this.removeListeners(this.tooltipElement),this.cleanupAutoPositioning&&this.cleanupAutoPositioning()}get host(){return(0,s.g)(this)}static get watchers(){return{_badgeText:["validateBadgeText"],_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}}},1074:(t,e,i)=>{i.d(e,{a:()=>c,b:()=>h,c:()=>a,h:()=>o,v:()=>d});var s=i(5800);const o=[0,1,2,3,4,5,6],n=/[a-zA-Z0-9äöüÄÖÜß]/g,l=/^\d+$/;function h(t,e=1){return function(t){var e;return"string"==typeof t&&(null===(e=t.match(n))||void 0===e?void 0:e.length)||0}(t)>=e}function a(t){return l.test(t)}const r=new Set(["string"]),d=(t,e,i={})=>{(0,s.w)(t,"_label",(t=>"string"==typeof t),r,e,function(t){var e;return Object.assign(Object.assign({},t),{hooks:{afterPatch:(e,i,o,n)=>{var l,r;"function"==typeof(null===(l=t.hooks)||void 0===l?void 0:l.afterPatch)&&(null===(r=t.hooks)||void 0===r||r.afterPatch(e,i,o,n)),"string"==typeof e&&!1===h(e,3)&&!1===a(e)&&(0,s.a)(`The heading or label ("${e}") is not accessible. A label should consist of at least three readable characters.`),"string"==typeof e&&e.length>80&&(0,s.u)("A heading or label should not be longer than 80 characters.")},beforePatch:null===(e=t.hooks)||void 0===e?void 0:e.beforePatch}})}(i))},c=d}}]);
package/dist/1416.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 1416.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[1416],{9718:(e,t,n)=>{n.d(t,{I:()=>r,a:()=>d});var i=n(5951),o=n(1799),a=n(5800),l=n(623);const s=["text","search","url","tel"];class r extends i.I{constructor(e,t,n){super(e,t,n),this.component=e}validateSuggestions(e){(0,l.v)(this.component,e)}componentWillLoad(){super.componentWillLoad(),this.validateSuggestions(this.component._suggestions)}}class d extends r{constructor(e,t,n){super(e,t,n),this.hasError=!1,this.component=e}validateSpellCheck(e){(0,o.v)(this.component,e)}validateType(e){(0,a.w)(this.component,"_type",(e=>"string"==typeof e&&s.includes(e)),new Set([`String {${s.join(", ")}`]),e)}componentWillLoad(){super.componentWillLoad(),this.validateSpellCheck(this.component._spellCheck),this.validateType(this.component._type)}}},9035:(e,t,n)=>{n.r(t),n.d(t,{kol_input_text:()=>p});var i=n(1290),o=n(9060),a=n(526),l=n(359),s=n(9718),r=n(7617),d=n(4746),h=n(1416),c=n(5800),u=(e,t,n)=>new Promise(((i,o)=>{var a=e=>{try{s(n.next(e))}catch(e){o(e)}},l=e=>{try{s(n.throw(e))}catch(e){o(e)}},s=e=>e.done?i(e.value):Promise.resolve(e.value).then(a,l);s((n=n.apply(e,t)).next())}));const p=class{getValue(){return u(this,null,(function*(){var e;return null===(e=this.inputRef)||void 0===e?void 0:e.value}))}kolFocus(){return u(this,null,(function*(){var e;null===(e=this.inputRef)||void 0===e||e.focus()}))}getFormFieldProps(){return{state:this.state,class:(0,o.c)("kol-input-text",this.state._type,{"has-value":this.state._hasValue}),tooltipAlign:this._tooltipAlign,onClick:()=>{var e;return null===(e=this.inputRef)||void 0===e?void 0:e.focus()},alert:this.showAsAlert()}}getInputProps(){return Object.assign(Object.assign({ref:this.catchRef,state:this.state},this.controller.onFacade),{onBlur:this.onBlur,onChange:this.onChange,onFocus:this.onFocus,onInput:this.onInput,onKeyDown:this.onKeyDown})}render(){return(0,i.h)(h.K,Object.assign({key:"671e0042a19dcb985606e387eb6e159bad6eb86f"},this.getFormFieldProps()),(0,i.h)(r.K,{key:"62cea526d81f8ed4edfae0748698a677ddccca49",state:this.state},(0,i.h)(d.K,Object.assign({key:"ba298020447156c9dc0aebbcdf00a313570d5610"},this.getInputProps()))))}constructor(e){(0,i.r)(this,e),this.catchRef=e=>{this.inputRef=e},this.onBlur=e=>{this.controller.onFacade.onBlur(e),this.inputHasFocus=!1},this.onChange=e=>{var t;const n=null===(t=this.inputRef)||void 0===t?void 0:t.value;this.oldValue!==n&&(this.oldValue=n),this.controller.onFacade.onChange(e)},this.onFocus=e=>{this.controller.onFacade.onFocus(e),this.inputHasFocus=!0},this.onInput=e=>{var t,n;const i=null!==(n=null===(t=this.inputRef)||void 0===t?void 0:t.value)&&void 0!==n?n:"";(0,c.s)(this,"_currentLength",i.length),this._value=i,this.controller.onFacade.onInput(e)},this.onKeyDown=e=>{"Enter"!==e.code&&"NumpadEnter"!==e.code||(0,l.p)({form:this.host,ref:this.inputRef})},this._accessKey=void 0,this._autoComplete=void 0,this._disabled=!1,this._hasCounter=!1,this._hideMsg=!1,this._hideLabel=!1,this._hint="",this._icons=void 0,this._id=void 0,this._label=void 0,this._maxLength=void 0,this._msg=void 0,this._name=void 0,this._on=void 0,this._pattern=void 0,this._placeholder=void 0,this._readOnly=!1,this._required=!1,this._shortKey=void 0,this._spellCheck=void 0,this._suggestions=void 0,this._smartButton=void 0,this._syncValueBySelector=void 0,this._tooltipAlign="top",this._touched=!1,this._type="text",this._value=void 0,this.state={_autoComplete:"off",_currentLength:0,_hasValue:!1,_hideMsg:!1,_id:`id-${(0,a.n)()}`,_label:"",_suggestions:[],_type:"text"},this.inputHasFocus=!1,this.controller=new s.a(this,"text",this.host)}showAsAlert(){return Boolean(this.state._touched)&&!this.inputHasFocus}validateAccessKey(e){this.controller.validateAccessKey(e)}validateAutoComplete(e){this.controller.validateAutoComplete(e)}validateDisabled(e){this.controller.validateDisabled(e)}validateHasCounter(e){this.controller.validateHasCounter(e)}validateHideMsg(e){this.controller.validateHideMsg(e)}validateHideLabel(e){this.controller.validateHideLabel(e)}validateHint(e){this.controller.validateHint(e)}validateIcons(e){this.controller.validateIcons(e)}validateId(e){this.controller.validateId(e)}validateLabel(e){this.controller.validateLabel(e)}validateMaxLength(e){this.controller.validateMaxLength(e)}validateMsg(e){this.controller.validateMsg(e)}validateName(e){this.controller.validateName(e)}validateOn(e){this.controller.validateOn(e)}validatePattern(e){this.controller.validatePattern(e)}validatePlaceholder(e){this.controller.validatePlaceholder(e)}validateReadOnly(e){this.controller.validateReadOnly(e)}validateRequired(e){this.controller.validateRequired(e)}validateShortKey(e){this.controller.validateShortKey(e)}validateSpellCheck(e){this.controller.validateSpellCheck(e)}validateSuggestions(e){this.controller.validateSuggestions(e)}validateSmartButton(e){this.controller.validateSmartButton(e)}validateSyncValueBySelector(e){this.controller.validateSyncValueBySelector(e)}validateTouched(e){this.controller.validateTouched(e)}validateType(e){this.controller.validateType(e)}validateValue(e){this.controller.validateValue(e),this.oldValue=e}componentWillLoad(){this._touched=!0===this._touched,this.oldValue=this._value,this.controller.componentWillLoad(),this.state._hasValue=!!this.state._value,this.controller.addValueChangeListener((e=>this.state._hasValue=!!e))}static get delegatesFocus(){return!0}get host(){return(0,i.g)(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_autoComplete:["validateAutoComplete"],_disabled:["validateDisabled"],_hasCounter:["validateHasCounter"],_hideMsg:["validateHideMsg"],_hideLabel:["validateHideLabel"],_hint:["validateHint"],_icons:["validateIcons"],_id:["validateId"],_label:["validateLabel"],_maxLength:["validateMaxLength"],_msg:["validateMsg"],_name:["validateName"],_on:["validateOn"],_pattern:["validatePattern"],_placeholder:["validatePlaceholder"],_readOnly:["validateReadOnly"],_required:["validateRequired"],_shortKey:["validateShortKey"],_spellCheck:["validateSpellCheck"],_suggestions:["validateSuggestions"],_smartButton:["validateSmartButton"],_syncValueBySelector:["validateSyncValueBySelector"],_touched:["validateTouched"],_type:["validateType"],_value:["validateValue"]}}};p.style={default:"/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n@layer kol-component {\n :host {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-tooltip {\n display: contents;\n }\n .kol-tooltip__floating {\n animation-duration: 0.25s;\n animation-iteration-count: 1;\n animation-name: fadeInOpacity;\n animation-timing-function: ease-in;\n box-sizing: border-box;\n display: none;\n position: fixed;\n visibility: hidden;\n /* Avoid layout interference - see https://floating-ui.com/docs/computePosition */\n top: 0;\n left: 0;\n max-width: 90vw;\n max-height: 90vh;\n /* Can be used to specify the tooltip-width from the outside. Unset by default. */\n width: var(--kol-tooltip-width);\n }\n .kol-tooltip__arrow {\n background-color: #fff;\n color: #000;\n height: calc(10rem / var(--kolibri-root-font-size, 16));\n position: absolute;\n transform: rotate(45deg);\n width: calc(10rem / var(--kolibri-root-font-size, 16));\n z-index: 999;\n }\n .kol-tooltip__content {\n background-color: #fff;\n color: #000;\n position: relative;\n z-index: 1000;\n }\n @keyframes fadeInOpacity {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n}\n@layer kol-component {\n .kol-alert {\n display: grid;\n }\n .kol-alert__container {\n place-items: center;\n display: flex;\n }\n .kol-alert__container-content {\n flex-grow: 1;\n }\n .kol-alert__close-button {\n /* Visible with forced colors */\n outline: transparent solid calc(1rem / var(--kolibri-root-font-size, 16));\n }\n}\n@layer kol-component {\n .kol-form-field {\n display: grid;\n font-size: rem(16);\n }\n .kol-form-field:not(.kol-form-field--disabled) .kol-form-field__label {\n cursor: pointer;\n }\n .kol-form-field--disabled .kol-form-field__label {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__label-text::after {\n content: \"*\";\n }\n .kol-form-field--disabled .kol-form-field__hint {\n opacity: 0.5;\n }\n .kol-form-field--required .kol-form-field__tooltip .span-label::after {\n content: \"*\";\n }\n}\n@layer kol-component {\n .kol-input-container {\n align-items: center;\n background-color: white;\n cursor: pointer;\n display: grid;\n grid-template-columns: 1fr;\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start) {\n grid-template-columns: auto 1fr;\n }\n .kol-input-container:has(> .kol-input-container__adornment--end) {\n grid-template-columns: 1fr auto;\n }\n .kol-input-container:has(> .kol-input-container__adornment--start):has(> .kol-input-container__adornment--end) {\n grid-template-columns: auto 1fr auto;\n }\n .kol-input-container__container {\n position: relative;\n }\n .kol-input-container__adornment {\n display: flex;\n align-items: center;\n }\n .kol-input-container__adornment .kol-icon {\n display: grid;\n height: var(--a11y-min-size);\n place-items: center;\n }\n}\n@layer kol-component {\n .kol-input {\n font-size: rem(16);\n height: rem(44);\n min-width: var(--a11y-min-size);\n width: 100%;\n }\n .kol-input:focus {\n outline: none;\n }\n}"}},1799:(e,t,n)=>{n.d(t,{v:()=>o});var i=n(5800);const o=(e,t)=>{(0,i.b)(e,"_spellCheck",t,{defaultValue:void 0})}},623:(e,t,n)=>{n.d(t,{v:()=>o});var i=n(5800);const o=(e,t)=>{(0,i.g)(e,"_suggestions",(e=>"string"==typeof e||"number"==typeof e),t,void 0,{hooks:{afterPatch:e=>{Array.isArray(e)&&e.length&&(0,i.a)("Property suggestions: Options have accessibility issues in how browsers implemented them and should not be used for now.")}}})}}}]);
package/dist/1676.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see 1676.js.LICENSE.txt */
2
- "use strict";(self.webpackChunk_public_ui_sample_react=self.webpackChunk_public_ui_sample_react||[]).push([[1676],{1085:(e,n,t)=>{t.d(n,{K:()=>r});var i=t(4600),o=t(1290),l=t(9060),a=t(4957),s=t(4692);const r=(e,n)=>{const{id:t,class:r,label:c,level:d=1,disabled:h,open:p,onClick:u,HeadingProps:b={},HeadingButtonProps:v={},ContentProps:f={}}=e,g=(0,i._)(e,["id","class","label","level","disabled","open","onClick","HeadingProps","HeadingButtonProps","ContentProps"]),m=p?"remove":"add";return(0,o.h)("div",Object.assign({id:t,class:(0,l.c)("collapsible",{"collapsible--disabled":!0===h,"collapsible--open":!0===p},r)},g),(0,o.h)(s.K,{ref:null==b?void 0:b.ref,level:d,class:(0,l.c)("collapsible__heading",null==b?void 0:b.class)},(0,o.h)(a.a,{class:(0,l.c)("collapsible__heading-button",null==v?void 0:v.class),ref:null==v?void 0:v.ref,slot:"expert",_ariaControls:`${t}-control`,_ariaExpanded:p,_disabled:h,_icons:(null==v?void 0:v._icons)||`codicon codicon-${m}`,_label:c,_on:{onClick:u}})),(0,o.h)("div",{class:(0,l.c)("collapsible__wrapper",null==f?void 0:f.wrapperClass)},(0,o.h)("div",{class:(0,l.c)("collapsible__wrapper-animation",null==f?void 0:f.animationClass)},(0,o.h)("div",{"aria-hidden":!1===p?"true":void 0,class:(0,l.c)("collapsible__content",null==f?void 0:f.class),id:`${t}-control`},n))))}},4692:(e,n,t)=>{t.d(n,{K:()=>d});var i=t(4600),o=t(1290),l=t(9060);const a=1;function s(e){return function(e){return e>=a&&e<=6}(e)?`h${e}`:"strong"}const r=(e,n)=>{var{class:t,level:r=a,variant:c}=e,d=(0,i._)(e,["class","level","variant"]);const h=s(r),p=c||h;return(0,o.h)(h,Object.assign({class:(0,l.c)("kol-headline",`kol-headline--${p}`,t)},d),n)},c=(e,n)=>{var{class:t,level:r=a}=e,c=(0,i._)(e,["class","level"]);const d=function(e){return 1===e?"span":s(e)}(r+1);return(0,o.h)(d,Object.assign({class:(0,l.c)("kol-headline kol-headline--group kol-headline--secondary",t)},c),n)},d=(e,n)=>{var{secondaryHeadline:t,level:s=a,class:d,HeadingGroupProps:h={},SecondaryHeadlineProps:p={}}=e,u=(0,i._)(e,["secondaryHeadline","level","class","HeadingGroupProps","SecondaryHeadlineProps"]);const b=Object.assign({level:s},u);if(!t)return(0,o.h)(r,Object.assign({class:(0,l.c)(d,"kol-headline--single")},b),n);const{class:v}=h,f=(0,i._)(h,["class"]),g=Object.assign({class:(0,l.c)("kol-heading-group",v)},f);return(0,o.h)("hgroup",Object.assign({},g),(0,o.h)(r,Object.assign({class:(0,l.c)(d,"kol-headline--group","kol-headline--primary")},b),n),(0,o.h)(c,Object.assign({level:s},p),t))}},9060:(e,n,t)=>{function i(e){var n,t,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e)){var l=e.length;for(n=0;n<l;n++)e[n]&&(t=i(e[n]))&&(o&&(o+=" "),o+=t)}else for(t in e)e[t]&&(o&&(o+=" "),o+=t);return o}function o(){for(var e,n,t=0,o="",l=arguments.length;t<l;t++)(e=arguments[t])&&(n=i(e))&&(o&&(o+=" "),o+=n);return o}t.d(n,{c:()=>o})},526:(e,n,t)=>{t.d(n,{i:()=>s,n:()=>c,r:()=>r});var i=t(1290),o=t(5687),l=t(1732);const a=()=>{let e=(0,l.d)().KoliBri;return void 0===e&&(e={},Object.defineProperty((0,l.d)(),"KoliBri",{value:e,writable:!1})),e},s=()=>{(()=>{const e=(0,l.g)().querySelector('meta[name="kolibri"]');if(e&&e.hasAttribute("content")){const n=e.getAttribute("content");"string"==typeof n&&((0,l.s)(n.includes("dev-mode=true")),(0,l.b)(n.includes("experimental-mode=true")),(0,l.c)(n.includes("color-contrast-analysis=true")))}})(),l.L.debug(`\n,--. ,--. ,--. ,--. ,-----. ,--.\n| .' / ,---. | | \`--' | |) /_ ,--.--. \`--'\n| . ' | .-. | | | ,--. | .-. \\ | .--' ,--.\n| |\\ \\ | '-' | | | | | | '--' / | | | |\n\`--' \`--´ \`---´ \`--' \`--' \`------´ \`--' \`--'\n🚹 The accessible HTML-Standard | 👉 https://public-ui.github.io | ${i.E.kolibriVersion}\n\t`,{forceLog:!0})},r=()=>{!0!==a().adviceShown&&(Object.defineProperty(a(),"adviceShown",{get:function(){return!0}}),l.L.debug("\nYou are using the KoliBri component library. If you have any suggestions for improvement or find a problem, please contact us:\n\nTicket: https://github.com/public-ui/kolibri/issues/new/choose (for privacy reasons, please use email)\nEmail: kolibri@itzbund.de\n"))};let c=()=>Math.floor(16777215*Math.random()).toString(16);"test"===o.p&&(c=()=>"nonce")},3970:(e,n,t)=>{t.d(n,{v:()=>o});var i=t(5800);const o=(e,n)=>{(0,i.b)(e,"_disabled",n,{hooks:{afterPatch:e=>{!0===e&&(0,i.c)()}}})}},1676:(e,n,t)=>{t.r(n),t.d(n,{kol_details:()=>p});var i=t(1290),o=t(526),l=t(8228),a=t(8231),s=t(1085),r=t(5800),c=t(3970),d=t(1074),h=t(7688);const p=class{constructor(e){(0,i.r)(this,e),this.nonce=(0,o.n)(),this.catchRef=e=>{this.buttonWcRef=e},this.handleOnClick=e=>{this._open=!this._open,clearTimeout(this.toggleTimeout),this.toggleTimeout=setTimeout((()=>{var n,t;this.host&&(0,a.d)(this.host,a.K.toggle,Boolean(this._open)),null===(t=null===(n=this.state._on)||void 0===n?void 0:n.onToggle)||void 0===t||t.call(n,e,Boolean(this._open))}),25)},this._disabled=!1,this._label=void 0,this._level=0,this._on=void 0,this._open=!1,this.state={_label:"",_level:0,_on:{}}}kolFocus(){return e=this,n=function*(){var e;yield null===(e=this.buttonWcRef)||void 0===e?void 0:e.kolFocus()},new Promise(((t,i)=>{var o=e=>{try{a(n.next(e))}catch(e){i(e)}},l=e=>{try{a(n.throw(e))}catch(e){i(e)}},a=e=>e.done?t(e.value):Promise.resolve(e.value).then(o,l);a((n=n.apply(e,null)).next())}));var e,n}render(){const{_open:e,_label:n,_disabled:t,_level:o}=this.state,l="kol-details",a={id:this.nonce,label:n,open:e,disabled:t,level:o,onClick:this.handleOnClick,class:l,HeadingProps:{class:`${l}__heading`},HeadingButtonProps:{ref:this.catchRef,class:`${l}__heading-button`,_icons:"codicon codicon-chevron-right"},ContentProps:{class:`${l}__content indented-text`,wrapperClass:`${l}__wrapper`,animationClass:`${l}__wrapper-animation`}};return(0,i.h)(s.K,Object.assign({key:"bda32e79cfd2848ae618845ab2a20ae8b65ad0a3"},a),(0,i.h)("slot",{key:"846096375015a456c275333f701a44343a9e167c"}))}validateDisabled(e){(0,c.v)(this,e)}validateLabel(e){(0,d.v)(this,e,{required:!0})}validateLevel(e){(0,l.w)(this,e)}validateOn(e){var n;n=e,(0,r.w)(this,"_on",(e=>"object"==typeof e&&null!==e),new Set(["DetailsCallbacksPropType {Events.onToggle}"]),n)}validateOpen(e){(0,h.v)(this,e)}componentWillLoad(){this.validateDisabled(this._disabled),this.validateLabel(this._label),this.validateLevel(this._level),this.validateOn(this._on),this.validateOpen(this._open)}get host(){return(0,i.g)(this)}static get watchers(){return{_disabled:["validateDisabled"],_label:["validateLabel"],_level:["validateLevel"],_on:["validateOn"],_open:["validateOpen"]}}};p.style={default:"/*\n * This file contains all rules for accessibility.\n */\n@layer kol-global {\n :host {\n /*\n * Minimum size of interactive elements.\n */\n --a11y-min-size: calc(44rem / var(--kolibri-root-font-size, 16));\n /*\n * No element should be used without a background and font color whose contrast ratio has\n * not been checked. By initially setting the background color to white and the font color\n * to black, the contrast ratio is ensured and explicit adjustment is forced.\n */\n background-color: white;\n color: black;\n /*\n * Verdana is an accessible font that can be used without requiring additional loading time.\n */\n font-family: Verdana;\n }\n * {\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n hyphens: auto;\n /*\n * Letter spacing is required for all texts.\n */\n letter-spacing: inherit;\n /*\n * This rule enables the word dividing for all texts. That is important for high zoom levels.\n */\n word-break: break-word;\n /*\n * Word spacing is required for all texts.\n */\n word-spacing: inherit;\n }\n /*\n * All interactive elements should have a minimum size of rem(44).\n */\n /* input:not([type='checkbox'], [type='radio'], [type='range']), */\n /* option, */\n /* select, */\n /* textarea, */\n [role=button],\n button:not([role=link]) {\n min-height: var(--a11y-min-size);\n min-width: var(--a11y-min-size);\n }\n /*\n * Some interactive elements should not inherit the font-family and font-size.\n */\n a,\n button,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n input,\n option,\n select,\n textarea {\n /*\n * All elements should inherit the font family from his parent element.\n */\n font-family: inherit;\n /*\n * All elements should inherit the font size from his parent element.\n */\n font-size: inherit;\n }\n}\n/**\n * Sometimes we need the semantic element for accessibility reasons,\n * but we don't want to show it.\n *\n * - https://www.a11yproject.com/posts/how-to-hide-content/\n */\n.visually-hidden {\n clip: rect(0 0 0 0);\n clip-path: inset(50%);\n height: calc(1rem / var(--kolibri-root-font-size, 16));\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n width: calc(1rem / var(--kolibri-root-font-size, 16));\n}\n\n@layer kol-global {\n /*\n * Dieses CSS stellt sicher, dass der Standard-Style\n * von A und Button resettet werden.\n */\n :is(a, button) {\n background-color: transparent;\n border: none;\n margin: 0;\n padding: 0;\n width: 100%; /* 100% needed for custom width from outside */\n }\n /*\n * Ensure elements with hidden attribute to be actually not visible\n * @see https://meowni.ca/hidden.is.a.lie.html\n */\n [hidden] {\n display: none !important;\n }\n}\n@layer kol-global {\n :host {\n /*\n * The max-width is needed to prevent the table from overflowing the\n * parent node, if the table is wider than the parent node.\n */\n max-width: 100%;\n }\n * {\n /*\n * We prefer to box-sizing: border-box for all elements.\n */\n box-sizing: border-box;\n }\n .kol-span {\n /* KolSpan is a layout component with icons in all directions and a label text in the middle. */\n display: grid;\n place-items: center;\n /* The sub span in KolSpan is the horizontal span with icon left and right and the label text in the middle. */\n }\n .kol-span__container {\n display: flex;\n place-items: center;\n }\n a,\n button {\n cursor: pointer;\n }\n .kol-span .kol-span__label--hide-label .kol-span__label {\n display: none;\n }\n /* Reset browser agent style. */\n button:disabled {\n color: unset;\n }\n .disabled label,\n .disabled:focus-within label,\n [aria-disabled=true],\n [aria-disabled=true]:focus,\n [disabled],\n [disabled]:focus {\n cursor: not-allowed;\n opacity: 0.5;\n outline: none;\n }\n [aria-disabled=true]:focus .kol-span,\n [disabled]:focus .kol-span {\n outline: none !important;\n }\n}\n@layer kol-component {\n :host {\n display: block;\n }\n}\n/* For animation technique see https://css-tricks.com/css-grid-can-do-auto-height-transitions/ */\n@layer kol-component {\n .collapsible {\n /* @see https://github.com/public-ui/kolibri/issues/5952 */\n /*\n * Inside a button, the caption text is always centered.\n * So we have to align the text to the left.\n */\n }\n .collapsible__wrapper {\n display: grid;\n grid-template-rows: 0fr;\n overflow: hidden;\n transition: grid-template-rows 0.3s;\n }\n .collapsible__wrapper-animation {\n min-height: 0;\n transition: visibility 0.3s;\n /* This property is important to keep in sync with the visual transition (template-rows). Without it interactive elements within the accordion would stay focusable. */\n visibility: hidden;\n }\n .collapsible--open .collapsible__wrapper {\n grid-template-rows: 1fr;\n }\n .collapsible--open .collapsible__wrapper-animation {\n visibility: visible;\n }\n @media (prefers-reduced-motion) {\n .collapsible__wrapper-animation, .collapsible__wrapper {\n transition-duration: 0s;\n }\n }\n @media print {\n :not(.collapsible--open) .collapsible__wrapper-animation {\n display: none;\n }\n }\n .collapsible__heading-button button .kol-span {\n justify-items: start;\n }\n}\n@layer kol-component {\n .kol-details {\n font-size: calc(16rem / var(--kolibri-root-font-size, 16));\n }\n .kol-details__heading-button {\n display: flex;\n }\n .kol-details__heading-button .kol-button {\n min-height: auto;\n }\n .kol-details__heading-button .kol-button .kol-span__label {\n border-bottom-color: grey;\n border-bottom-style: solid;\n }\n .collapsible--open .kol-details__heading-button .kol-icon::part(icon) {\n transform: rotate(90deg);\n }\n}"}},1074:(e,n,t)=>{t.d(n,{a:()=>h,b:()=>s,c:()=>r,h:()=>o,v:()=>d});var i=t(5800);const o=[0,1,2,3,4,5,6],l=/[a-zA-Z0-9äöüÄÖÜß]/g,a=/^\d+$/;function s(e,n=1){return function(e){var n;return"string"==typeof e&&(null===(n=e.match(l))||void 0===n?void 0:n.length)||0}(e)>=n}function r(e){return a.test(e)}const c=new Set(["string"]),d=(e,n,t={})=>{(0,i.w)(e,"_label",(e=>"string"==typeof e),c,n,function(e){var n;return Object.assign(Object.assign({},e),{hooks:{afterPatch:(n,t,o,l)=>{var a,c;"function"==typeof(null===(a=e.hooks)||void 0===a?void 0:a.afterPatch)&&(null===(c=e.hooks)||void 0===c||c.afterPatch(n,t,o,l)),"string"==typeof n&&!1===s(n,3)&&!1===r(n)&&(0,i.a)(`The heading or label ("${n}") is not accessible. A label should consist of at least three readable characters.`),"string"==typeof n&&n.length>80&&(0,i.u)("A heading or label should not be longer than 80 characters.")},beforePatch:null===(n=e.hooks)||void 0===n?void 0:n.beforePatch}})}(t))},h=d},7688:(e,n,t)=>{t.d(n,{v:()=>o});var i=t(5800);const o=(e,n,t)=>{(0,i.b)(e,"_open",n,t)}},5687:(e,n,t)=>{t.d(n,{b:()=>a,h:()=>o,p:()=>i,s:()=>l});let i="development";try{i="production"}catch(e){i="production"}const o=(e,n,t)=>{if(e&&n&&"string"==typeof t){const i=e.querySelector(`[slot="${t}"]`);i&&n.appendChild(i)}},l=e=>""===e,a=(e,n)=>e||n||""},4600:(e,n,t)=>{function i(e,n){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0&&(t[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(i=Object.getOwnPropertySymbols(e);o<i.length;o++)n.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(t[i[o]]=e[i[o]])}return t}t.d(n,{_:()=>i}),"function"==typeof SuppressedError&&SuppressedError},8228:(e,n,t)=>{t.d(n,{w:()=>l});var i=t(1074),o=t(5800);const l=(e,n)=>{(0,o.w)(e,"_level",(e=>"number"==typeof e&&i.h.includes(e)),new Set([`Number {${i.h.join(", ")}`]),n,{defaultValue:1,required:!0})}}}]);