@helpwave/hightide 0.1.21 → 0.1.23

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 (231) hide show
  1. package/README.md +5 -0
  2. package/dist/components/branding/HelpwaveBadge.js +8 -5
  3. package/dist/components/branding/HelpwaveBadge.js.map +1 -1
  4. package/dist/components/branding/HelpwaveBadge.mjs +8 -5
  5. package/dist/components/branding/HelpwaveBadge.mjs.map +1 -1
  6. package/dist/components/date/DatePicker.js +11 -1
  7. package/dist/components/date/DatePicker.js.map +1 -1
  8. package/dist/components/date/DatePicker.mjs +11 -1
  9. package/dist/components/date/DatePicker.mjs.map +1 -1
  10. package/dist/components/date/DayPicker.js.map +1 -1
  11. package/dist/components/date/DayPicker.mjs.map +1 -1
  12. package/dist/components/date/TimeDisplay.js.map +1 -1
  13. package/dist/components/date/TimeDisplay.mjs.map +1 -1
  14. package/dist/components/date/YearMonthPicker.js +1 -0
  15. package/dist/components/date/YearMonthPicker.js.map +1 -1
  16. package/dist/components/date/YearMonthPicker.mjs +1 -0
  17. package/dist/components/date/YearMonthPicker.mjs.map +1 -1
  18. package/dist/components/dialogs/ConfirmDialog.js +2 -1
  19. package/dist/components/dialogs/ConfirmDialog.js.map +1 -1
  20. package/dist/components/dialogs/ConfirmDialog.mjs +2 -1
  21. package/dist/components/dialogs/ConfirmDialog.mjs.map +1 -1
  22. package/dist/components/icons-and-geometry/Avatar.d.mts +17 -7
  23. package/dist/components/icons-and-geometry/Avatar.d.ts +17 -7
  24. package/dist/components/icons-and-geometry/Avatar.js +2982 -42
  25. package/dist/components/icons-and-geometry/Avatar.js.map +1 -1
  26. package/dist/components/icons-and-geometry/Avatar.mjs +3010 -40
  27. package/dist/components/icons-and-geometry/Avatar.mjs.map +1 -1
  28. package/dist/components/icons-and-geometry/Tag.js +2912 -1
  29. package/dist/components/icons-and-geometry/Tag.js.map +1 -1
  30. package/dist/components/icons-and-geometry/Tag.mjs +2931 -1
  31. package/dist/components/icons-and-geometry/Tag.mjs.map +1 -1
  32. package/dist/components/layout-and-navigation/BreadCrumb.d.mts +2 -1
  33. package/dist/components/layout-and-navigation/BreadCrumb.d.ts +2 -1
  34. package/dist/components/layout-and-navigation/BreadCrumb.js +15 -11
  35. package/dist/components/layout-and-navigation/BreadCrumb.js.map +1 -1
  36. package/dist/components/layout-and-navigation/BreadCrumb.mjs +15 -11
  37. package/dist/components/layout-and-navigation/BreadCrumb.mjs.map +1 -1
  38. package/dist/components/layout-and-navigation/Carousel.js +1 -0
  39. package/dist/components/layout-and-navigation/Carousel.js.map +1 -1
  40. package/dist/components/layout-and-navigation/Carousel.mjs +1 -0
  41. package/dist/components/layout-and-navigation/Carousel.mjs.map +1 -1
  42. package/dist/components/layout-and-navigation/Chip.d.mts +6 -2
  43. package/dist/components/layout-and-navigation/Chip.d.ts +6 -2
  44. package/dist/components/layout-and-navigation/Chip.js +10 -4
  45. package/dist/components/layout-and-navigation/Chip.js.map +1 -1
  46. package/dist/components/layout-and-navigation/Chip.mjs +8 -3
  47. package/dist/components/layout-and-navigation/Chip.mjs.map +1 -1
  48. package/dist/components/layout-and-navigation/Overlay.js +3 -2
  49. package/dist/components/layout-and-navigation/Overlay.js.map +1 -1
  50. package/dist/components/layout-and-navigation/Overlay.mjs +3 -2
  51. package/dist/components/layout-and-navigation/Overlay.mjs.map +1 -1
  52. package/dist/components/layout-and-navigation/Pagination.js +3 -2
  53. package/dist/components/layout-and-navigation/Pagination.js.map +1 -1
  54. package/dist/components/layout-and-navigation/Pagination.mjs +3 -2
  55. package/dist/components/layout-and-navigation/Pagination.mjs.map +1 -1
  56. package/dist/components/layout-and-navigation/SearchableList.js +2 -1
  57. package/dist/components/layout-and-navigation/SearchableList.js.map +1 -1
  58. package/dist/components/layout-and-navigation/SearchableList.mjs +2 -1
  59. package/dist/components/layout-and-navigation/SearchableList.mjs.map +1 -1
  60. package/dist/components/layout-and-navigation/StepperBar.js +1 -0
  61. package/dist/components/layout-and-navigation/StepperBar.js.map +1 -1
  62. package/dist/components/layout-and-navigation/StepperBar.mjs +1 -0
  63. package/dist/components/layout-and-navigation/StepperBar.mjs.map +1 -1
  64. package/dist/components/layout-and-navigation/TextImage.js.map +1 -1
  65. package/dist/components/layout-and-navigation/TextImage.mjs.map +1 -1
  66. package/dist/components/layout-and-navigation/Tile.d.mts +9 -10
  67. package/dist/components/layout-and-navigation/Tile.d.ts +9 -10
  68. package/dist/components/layout-and-navigation/Tile.js +21 -4
  69. package/dist/components/layout-and-navigation/Tile.js.map +1 -1
  70. package/dist/components/layout-and-navigation/Tile.mjs +20 -4
  71. package/dist/components/layout-and-navigation/Tile.mjs.map +1 -1
  72. package/dist/components/loading-states/ErrorComponent.js.map +1 -1
  73. package/dist/components/loading-states/ErrorComponent.mjs.map +1 -1
  74. package/dist/components/loading-states/LoadingAndErrorComponent.js +1 -1
  75. package/dist/components/loading-states/LoadingAndErrorComponent.js.map +1 -1
  76. package/dist/components/loading-states/LoadingAndErrorComponent.mjs +1 -1
  77. package/dist/components/loading-states/LoadingAndErrorComponent.mjs.map +1 -1
  78. package/dist/components/loading-states/LoadingAnimation.js.map +1 -1
  79. package/dist/components/loading-states/LoadingAnimation.mjs.map +1 -1
  80. package/dist/components/loading-states/LoadingButton.js +1 -0
  81. package/dist/components/loading-states/LoadingButton.js.map +1 -1
  82. package/dist/components/loading-states/LoadingButton.mjs +1 -0
  83. package/dist/components/loading-states/LoadingButton.mjs.map +1 -1
  84. package/dist/components/modals/ConfirmModal.js +2 -1
  85. package/dist/components/modals/ConfirmModal.js.map +1 -1
  86. package/dist/components/modals/ConfirmModal.mjs +2 -1
  87. package/dist/components/modals/ConfirmModal.mjs.map +1 -1
  88. package/dist/components/modals/DiscardChangesModal.js +2 -1
  89. package/dist/components/modals/DiscardChangesModal.js.map +1 -1
  90. package/dist/components/modals/DiscardChangesModal.mjs +2 -1
  91. package/dist/components/modals/DiscardChangesModal.mjs.map +1 -1
  92. package/dist/components/modals/InputModal.js +3 -2
  93. package/dist/components/modals/InputModal.js.map +1 -1
  94. package/dist/components/modals/InputModal.mjs +3 -2
  95. package/dist/components/modals/InputModal.mjs.map +1 -1
  96. package/dist/components/modals/LanguageModal.js +26 -26
  97. package/dist/components/modals/LanguageModal.js.map +1 -1
  98. package/dist/components/modals/LanguageModal.mjs +27 -31
  99. package/dist/components/modals/LanguageModal.mjs.map +1 -1
  100. package/dist/components/modals/ThemeModal.js +32 -29
  101. package/dist/components/modals/ThemeModal.js.map +1 -1
  102. package/dist/components/modals/ThemeModal.mjs +31 -32
  103. package/dist/components/modals/ThemeModal.mjs.map +1 -1
  104. package/dist/components/properties/CheckboxProperty.js +14 -4
  105. package/dist/components/properties/CheckboxProperty.js.map +1 -1
  106. package/dist/components/properties/CheckboxProperty.mjs +14 -4
  107. package/dist/components/properties/CheckboxProperty.mjs.map +1 -1
  108. package/dist/components/properties/DateProperty.js +14 -4
  109. package/dist/components/properties/DateProperty.js.map +1 -1
  110. package/dist/components/properties/DateProperty.mjs +14 -4
  111. package/dist/components/properties/DateProperty.mjs.map +1 -1
  112. package/dist/components/properties/MultiSelectProperty.d.mts +0 -1
  113. package/dist/components/properties/MultiSelectProperty.d.ts +0 -1
  114. package/dist/components/properties/MultiSelectProperty.js +663 -648
  115. package/dist/components/properties/MultiSelectProperty.js.map +1 -1
  116. package/dist/components/properties/MultiSelectProperty.mjs +779 -768
  117. package/dist/components/properties/MultiSelectProperty.mjs.map +1 -1
  118. package/dist/components/properties/NumberProperty.js +14 -4
  119. package/dist/components/properties/NumberProperty.js.map +1 -1
  120. package/dist/components/properties/NumberProperty.mjs +14 -4
  121. package/dist/components/properties/NumberProperty.mjs.map +1 -1
  122. package/dist/components/properties/PropertyBase.js +13 -3
  123. package/dist/components/properties/PropertyBase.js.map +1 -1
  124. package/dist/components/properties/PropertyBase.mjs +13 -3
  125. package/dist/components/properties/PropertyBase.mjs.map +1 -1
  126. package/dist/components/properties/SelectProperty.d.mts +0 -1
  127. package/dist/components/properties/SelectProperty.d.ts +0 -1
  128. package/dist/components/properties/SelectProperty.js +39 -30
  129. package/dist/components/properties/SelectProperty.js.map +1 -1
  130. package/dist/components/properties/SelectProperty.mjs +40 -35
  131. package/dist/components/properties/SelectProperty.mjs.map +1 -1
  132. package/dist/components/properties/TextProperty.js +16 -6
  133. package/dist/components/properties/TextProperty.js.map +1 -1
  134. package/dist/components/properties/TextProperty.mjs +16 -6
  135. package/dist/components/properties/TextProperty.mjs.map +1 -1
  136. package/dist/components/table/Table.js +6 -5
  137. package/dist/components/table/Table.js.map +1 -1
  138. package/dist/components/table/Table.mjs +7 -10
  139. package/dist/components/table/Table.mjs.map +1 -1
  140. package/dist/components/table/TableFilterButton.js +3 -2
  141. package/dist/components/table/TableFilterButton.js.map +1 -1
  142. package/dist/components/table/TableFilterButton.mjs +4 -7
  143. package/dist/components/table/TableFilterButton.mjs.map +1 -1
  144. package/dist/components/table/TableSortButton.js +1 -0
  145. package/dist/components/table/TableSortButton.js.map +1 -1
  146. package/dist/components/table/TableSortButton.mjs +1 -0
  147. package/dist/components/table/TableSortButton.mjs.map +1 -1
  148. package/dist/components/user-action/Button.d.mts +2 -1
  149. package/dist/components/user-action/Button.d.ts +2 -1
  150. package/dist/components/user-action/Button.js +12 -1
  151. package/dist/components/user-action/Button.js.map +1 -1
  152. package/dist/components/user-action/Button.mjs +12 -1
  153. package/dist/components/user-action/Button.mjs.map +1 -1
  154. package/dist/components/user-action/Checkbox.js +1 -1
  155. package/dist/components/user-action/Checkbox.js.map +1 -1
  156. package/dist/components/user-action/Checkbox.mjs +1 -1
  157. package/dist/components/user-action/Checkbox.mjs.map +1 -1
  158. package/dist/components/user-action/CopyToClipboardWrapper.js.map +1 -1
  159. package/dist/components/user-action/CopyToClipboardWrapper.mjs.map +1 -1
  160. package/dist/components/user-action/DateAndTimePicker.js +11 -1
  161. package/dist/components/user-action/DateAndTimePicker.js.map +1 -1
  162. package/dist/components/user-action/DateAndTimePicker.mjs +11 -1
  163. package/dist/components/user-action/DateAndTimePicker.mjs.map +1 -1
  164. package/dist/components/user-action/Input.js +1 -1
  165. package/dist/components/user-action/Input.js.map +1 -1
  166. package/dist/components/user-action/Input.mjs +1 -1
  167. package/dist/components/user-action/Input.mjs.map +1 -1
  168. package/dist/components/user-action/Menu.js +2 -2
  169. package/dist/components/user-action/Menu.js.map +1 -1
  170. package/dist/components/user-action/Menu.mjs +3 -7
  171. package/dist/components/user-action/Menu.mjs.map +1 -1
  172. package/dist/components/user-action/MultiSelect.d.mts +0 -1
  173. package/dist/components/user-action/MultiSelect.d.ts +0 -1
  174. package/dist/components/user-action/MultiSelect.js +622 -616
  175. package/dist/components/user-action/MultiSelect.js.map +1 -1
  176. package/dist/components/user-action/MultiSelect.mjs +641 -639
  177. package/dist/components/user-action/MultiSelect.mjs.map +1 -1
  178. package/dist/components/user-action/ScrollPicker.js +1 -1
  179. package/dist/components/user-action/ScrollPicker.js.map +1 -1
  180. package/dist/components/user-action/ScrollPicker.mjs +1 -1
  181. package/dist/components/user-action/ScrollPicker.mjs.map +1 -1
  182. package/dist/components/user-action/SearchBar.js +2 -1
  183. package/dist/components/user-action/SearchBar.js.map +1 -1
  184. package/dist/components/user-action/SearchBar.mjs +2 -1
  185. package/dist/components/user-action/SearchBar.mjs.map +1 -1
  186. package/dist/components/user-action/Select.d.mts +1 -4
  187. package/dist/components/user-action/Select.d.ts +1 -4
  188. package/dist/components/user-action/Select.js +25 -27
  189. package/dist/components/user-action/Select.js.map +1 -1
  190. package/dist/components/user-action/Select.mjs +26 -31
  191. package/dist/components/user-action/Select.mjs.map +1 -1
  192. package/dist/components/user-action/Textarea.js +3 -3
  193. package/dist/components/user-action/Textarea.js.map +1 -1
  194. package/dist/components/user-action/Textarea.mjs +3 -3
  195. package/dist/components/user-action/Textarea.mjs.map +1 -1
  196. package/dist/css/globals.css +431 -212
  197. package/dist/css/uncompiled/globals.css +5 -5
  198. package/dist/css/uncompiled/textstyles.css +5 -5
  199. package/dist/css/uncompiled/theme/colors-basic.css +13 -5
  200. package/dist/css/uncompiled/theme/colors-component.css +60 -49
  201. package/dist/css/uncompiled/theme/colors-semantic.css +76 -78
  202. package/dist/css/uncompiled/utitlity/shadow.css +45 -16
  203. package/dist/hooks/useLocalStorage.js +8 -3
  204. package/dist/hooks/useLocalStorage.js.map +1 -1
  205. package/dist/hooks/useLocalStorage.mjs +8 -3
  206. package/dist/hooks/useLocalStorage.mjs.map +1 -1
  207. package/dist/hooks/useLogOnce.d.mts +8 -0
  208. package/dist/hooks/useLogOnce.d.ts +8 -0
  209. package/dist/hooks/useLogOnce.js +53 -0
  210. package/dist/hooks/useLogOnce.js.map +1 -0
  211. package/dist/hooks/useLogOnce.mjs +29 -0
  212. package/dist/hooks/useLogOnce.mjs.map +1 -0
  213. package/dist/index.d.mts +5 -4
  214. package/dist/index.d.ts +5 -4
  215. package/dist/index.js +3301 -435
  216. package/dist/index.js.map +1 -1
  217. package/dist/index.mjs +3185 -324
  218. package/dist/index.mjs.map +1 -1
  219. package/dist/localization/LanguageProvider.js +8 -3
  220. package/dist/localization/LanguageProvider.js.map +1 -1
  221. package/dist/localization/LanguageProvider.mjs +8 -3
  222. package/dist/localization/LanguageProvider.mjs.map +1 -1
  223. package/dist/localization/useTranslation.js.map +1 -1
  224. package/dist/localization/useTranslation.mjs.map +1 -1
  225. package/dist/theming/useTheme.d.mts +2 -2
  226. package/dist/theming/useTheme.d.ts +2 -2
  227. package/dist/theming/useTheme.js +26 -22
  228. package/dist/theming/useTheme.js.map +1 -1
  229. package/dist/theming/useTheme.mjs +21 -17
  230. package/dist/theming/useTheme.mjs.map +1 -1
  231. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -30,37 +30,2900 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
30
30
  mod
31
31
  ));
32
32
 
33
+ // node_modules/@swc/helpers/cjs/_interop_require_default.cjs
34
+ var require_interop_require_default = __commonJS({
35
+ "node_modules/@swc/helpers/cjs/_interop_require_default.cjs"(exports) {
36
+ "use strict";
37
+ function _interop_require_default(obj) {
38
+ return obj && obj.__esModule ? obj : { default: obj };
39
+ }
40
+ exports._ = _interop_require_default;
41
+ }
42
+ });
43
+
44
+ // node_modules/next/dist/shared/lib/utils/warn-once.js
45
+ var require_warn_once = __commonJS({
46
+ "node_modules/next/dist/shared/lib/utils/warn-once.js"(exports) {
47
+ "use strict";
48
+ Object.defineProperty(exports, "__esModule", {
49
+ value: true
50
+ });
51
+ Object.defineProperty(exports, "warnOnce", {
52
+ enumerable: true,
53
+ get: function() {
54
+ return warnOnce;
55
+ }
56
+ });
57
+ var warnOnce = (_) => {
58
+ };
59
+ if (process.env.NODE_ENV !== "production") {
60
+ const warnings = /* @__PURE__ */ new Set();
61
+ warnOnce = (msg) => {
62
+ if (!warnings.has(msg)) {
63
+ console.warn(msg);
64
+ }
65
+ warnings.add(msg);
66
+ };
67
+ }
68
+ }
69
+ });
70
+
71
+ // node_modules/next/dist/shared/lib/image-blur-svg.js
72
+ var require_image_blur_svg = __commonJS({
73
+ "node_modules/next/dist/shared/lib/image-blur-svg.js"(exports) {
74
+ "use strict";
75
+ Object.defineProperty(exports, "__esModule", {
76
+ value: true
77
+ });
78
+ Object.defineProperty(exports, "getImageBlurSvg", {
79
+ enumerable: true,
80
+ get: function() {
81
+ return getImageBlurSvg;
82
+ }
83
+ });
84
+ function getImageBlurSvg(param) {
85
+ let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param;
86
+ const std = 20;
87
+ const svgWidth = blurWidth ? blurWidth * 40 : widthInt;
88
+ const svgHeight = blurHeight ? blurHeight * 40 : heightInt;
89
+ const viewBox = svgWidth && svgHeight ? "viewBox='0 0 " + svgWidth + " " + svgHeight + "'" : "";
90
+ const preserveAspectRatio = viewBox ? "none" : objectFit === "contain" ? "xMidYMid" : objectFit === "cover" ? "xMidYMid slice" : "none";
91
+ return "%3Csvg xmlns='http://www.w3.org/2000/svg' " + viewBox + "%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='" + std + "'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='" + std + "'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='" + preserveAspectRatio + "' style='filter: url(%23b);' href='" + blurDataURL + "'/%3E%3C/svg%3E";
92
+ }
93
+ }
94
+ });
95
+
96
+ // node_modules/next/dist/shared/lib/image-config.js
97
+ var require_image_config = __commonJS({
98
+ "node_modules/next/dist/shared/lib/image-config.js"(exports) {
99
+ "use strict";
100
+ Object.defineProperty(exports, "__esModule", {
101
+ value: true
102
+ });
103
+ function _export(target, all) {
104
+ for (var name in all) Object.defineProperty(target, name, {
105
+ enumerable: true,
106
+ get: all[name]
107
+ });
108
+ }
109
+ _export(exports, {
110
+ VALID_LOADERS: function() {
111
+ return VALID_LOADERS;
112
+ },
113
+ imageConfigDefault: function() {
114
+ return imageConfigDefault;
115
+ }
116
+ });
117
+ var VALID_LOADERS = [
118
+ "default",
119
+ "imgix",
120
+ "cloudinary",
121
+ "akamai",
122
+ "custom"
123
+ ];
124
+ var imageConfigDefault = {
125
+ deviceSizes: [
126
+ 640,
127
+ 750,
128
+ 828,
129
+ 1080,
130
+ 1200,
131
+ 1920,
132
+ 2048,
133
+ 3840
134
+ ],
135
+ imageSizes: [
136
+ 16,
137
+ 32,
138
+ 48,
139
+ 64,
140
+ 96,
141
+ 128,
142
+ 256,
143
+ 384
144
+ ],
145
+ path: "/_next/image",
146
+ loader: "default",
147
+ loaderFile: "",
148
+ domains: [],
149
+ disableStaticImages: false,
150
+ minimumCacheTTL: 60,
151
+ formats: [
152
+ "image/webp"
153
+ ],
154
+ dangerouslyAllowSVG: false,
155
+ contentSecurityPolicy: "script-src 'none'; frame-src 'none'; sandbox;",
156
+ contentDispositionType: "attachment",
157
+ localPatterns: void 0,
158
+ remotePatterns: [],
159
+ qualities: void 0,
160
+ unoptimized: false
161
+ };
162
+ }
163
+ });
164
+
165
+ // node_modules/next/dist/shared/lib/get-img-props.js
166
+ var require_get_img_props = __commonJS({
167
+ "node_modules/next/dist/shared/lib/get-img-props.js"(exports) {
168
+ "use strict";
169
+ Object.defineProperty(exports, "__esModule", {
170
+ value: true
171
+ });
172
+ Object.defineProperty(exports, "getImgProps", {
173
+ enumerable: true,
174
+ get: function() {
175
+ return getImgProps;
176
+ }
177
+ });
178
+ var _warnonce = require_warn_once();
179
+ var _imageblursvg = require_image_blur_svg();
180
+ var _imageconfig = require_image_config();
181
+ var VALID_LOADING_VALUES = [
182
+ "lazy",
183
+ "eager",
184
+ void 0
185
+ ];
186
+ var INVALID_BACKGROUND_SIZE_VALUES = [
187
+ "-moz-initial",
188
+ "fill",
189
+ "none",
190
+ "scale-down",
191
+ void 0
192
+ ];
193
+ function isStaticRequire(src) {
194
+ return src.default !== void 0;
195
+ }
196
+ function isStaticImageData(src) {
197
+ return src.src !== void 0;
198
+ }
199
+ function isStaticImport(src) {
200
+ return !!src && typeof src === "object" && (isStaticRequire(src) || isStaticImageData(src));
201
+ }
202
+ var allImgs = /* @__PURE__ */ new Map();
203
+ var perfObserver;
204
+ function getInt(x) {
205
+ if (typeof x === "undefined") {
206
+ return x;
207
+ }
208
+ if (typeof x === "number") {
209
+ return Number.isFinite(x) ? x : NaN;
210
+ }
211
+ if (typeof x === "string" && /^[0-9]+$/.test(x)) {
212
+ return parseInt(x, 10);
213
+ }
214
+ return NaN;
215
+ }
216
+ function getWidths(param, width, sizes) {
217
+ let { deviceSizes, allSizes } = param;
218
+ if (sizes) {
219
+ const viewportWidthRe = /(^|\s)(1?\d?\d)vw/g;
220
+ const percentSizes = [];
221
+ for (let match; match = viewportWidthRe.exec(sizes); match) {
222
+ percentSizes.push(parseInt(match[2]));
223
+ }
224
+ if (percentSizes.length) {
225
+ const smallestRatio = Math.min(...percentSizes) * 0.01;
226
+ return {
227
+ widths: allSizes.filter((s) => s >= deviceSizes[0] * smallestRatio),
228
+ kind: "w"
229
+ };
230
+ }
231
+ return {
232
+ widths: allSizes,
233
+ kind: "w"
234
+ };
235
+ }
236
+ if (typeof width !== "number") {
237
+ return {
238
+ widths: deviceSizes,
239
+ kind: "w"
240
+ };
241
+ }
242
+ const widths = [
243
+ ...new Set(
244
+ // > This means that most OLED screens that say they are 3x resolution,
245
+ // > are actually 3x in the green color, but only 1.5x in the red and
246
+ // > blue colors. Showing a 3x resolution image in the app vs a 2x
247
+ // > resolution image will be visually the same, though the 3x image
248
+ // > takes significantly more data. Even true 3x resolution screens are
249
+ // > wasteful as the human eye cannot see that level of detail without
250
+ // > something like a magnifying glass.
251
+ // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html
252
+ [
253
+ width,
254
+ width * 2
255
+ /*, width * 3*/
256
+ ].map((w) => allSizes.find((p) => p >= w) || allSizes[allSizes.length - 1])
257
+ )
258
+ ];
259
+ return {
260
+ widths,
261
+ kind: "x"
262
+ };
263
+ }
264
+ function generateImgAttrs(param) {
265
+ let { config, src, unoptimized, width, quality, sizes, loader } = param;
266
+ if (unoptimized) {
267
+ return {
268
+ src,
269
+ srcSet: void 0,
270
+ sizes: void 0
271
+ };
272
+ }
273
+ const { widths, kind } = getWidths(config, width, sizes);
274
+ const last = widths.length - 1;
275
+ return {
276
+ sizes: !sizes && kind === "w" ? "100vw" : sizes,
277
+ srcSet: widths.map((w, i) => loader({
278
+ config,
279
+ src,
280
+ quality,
281
+ width: w
282
+ }) + " " + (kind === "w" ? w : i + 1) + kind).join(", "),
283
+ // It's intended to keep `src` the last attribute because React updates
284
+ // attributes in order. If we keep `src` the first one, Safari will
285
+ // immediately start to fetch `src`, before `sizes` and `srcSet` are even
286
+ // updated by React. That causes multiple unnecessary requests if `srcSet`
287
+ // and `sizes` are defined.
288
+ // This bug cannot be reproduced in Chrome or Firefox.
289
+ src: loader({
290
+ config,
291
+ src,
292
+ quality,
293
+ width: widths[last]
294
+ })
295
+ };
296
+ }
297
+ function getImgProps(param, _state) {
298
+ let { src, sizes, unoptimized = false, priority = false, loading, className, quality, width, height, fill = false, style, overrideSrc, onLoad, onLoadingComplete, placeholder = "empty", blurDataURL, fetchPriority, decoding = "async", layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param;
299
+ const { imgConf, showAltText, blurComplete, defaultLoader } = _state;
300
+ let config;
301
+ let c = imgConf || _imageconfig.imageConfigDefault;
302
+ if ("allSizes" in c) {
303
+ config = c;
304
+ } else {
305
+ var _c_qualities;
306
+ const allSizes = [
307
+ ...c.deviceSizes,
308
+ ...c.imageSizes
309
+ ].sort((a, b) => a - b);
310
+ const deviceSizes = c.deviceSizes.sort((a, b) => a - b);
311
+ const qualities = (_c_qualities = c.qualities) == null ? void 0 : _c_qualities.sort((a, b) => a - b);
312
+ config = {
313
+ ...c,
314
+ allSizes,
315
+ deviceSizes,
316
+ qualities
317
+ };
318
+ }
319
+ if (typeof defaultLoader === "undefined") {
320
+ throw Object.defineProperty(new Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"), "__NEXT_ERROR_CODE", {
321
+ value: "E163",
322
+ enumerable: false,
323
+ configurable: true
324
+ });
325
+ }
326
+ let loader = rest.loader || defaultLoader;
327
+ delete rest.loader;
328
+ delete rest.srcSet;
329
+ const isDefaultLoader = "__next_img_default" in loader;
330
+ if (isDefaultLoader) {
331
+ if (config.loader === "custom") {
332
+ throw Object.defineProperty(new Error('Image with src "' + src + '" is missing "loader" prop.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader'), "__NEXT_ERROR_CODE", {
333
+ value: "E252",
334
+ enumerable: false,
335
+ configurable: true
336
+ });
337
+ }
338
+ } else {
339
+ const customImageLoader = loader;
340
+ loader = (obj) => {
341
+ const { config: _, ...opts } = obj;
342
+ return customImageLoader(opts);
343
+ };
344
+ }
345
+ if (layout) {
346
+ if (layout === "fill") {
347
+ fill = true;
348
+ }
349
+ const layoutToStyle = {
350
+ intrinsic: {
351
+ maxWidth: "100%",
352
+ height: "auto"
353
+ },
354
+ responsive: {
355
+ width: "100%",
356
+ height: "auto"
357
+ }
358
+ };
359
+ const layoutToSizes = {
360
+ responsive: "100vw",
361
+ fill: "100vw"
362
+ };
363
+ const layoutStyle = layoutToStyle[layout];
364
+ if (layoutStyle) {
365
+ style = {
366
+ ...style,
367
+ ...layoutStyle
368
+ };
369
+ }
370
+ const layoutSizes = layoutToSizes[layout];
371
+ if (layoutSizes && !sizes) {
372
+ sizes = layoutSizes;
373
+ }
374
+ }
375
+ let staticSrc = "";
376
+ let widthInt = getInt(width);
377
+ let heightInt = getInt(height);
378
+ let blurWidth;
379
+ let blurHeight;
380
+ if (isStaticImport(src)) {
381
+ const staticImageData = isStaticRequire(src) ? src.default : src;
382
+ if (!staticImageData.src) {
383
+ throw Object.defineProperty(new Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received " + JSON.stringify(staticImageData)), "__NEXT_ERROR_CODE", {
384
+ value: "E460",
385
+ enumerable: false,
386
+ configurable: true
387
+ });
388
+ }
389
+ if (!staticImageData.height || !staticImageData.width) {
390
+ throw Object.defineProperty(new Error("An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received " + JSON.stringify(staticImageData)), "__NEXT_ERROR_CODE", {
391
+ value: "E48",
392
+ enumerable: false,
393
+ configurable: true
394
+ });
395
+ }
396
+ blurWidth = staticImageData.blurWidth;
397
+ blurHeight = staticImageData.blurHeight;
398
+ blurDataURL = blurDataURL || staticImageData.blurDataURL;
399
+ staticSrc = staticImageData.src;
400
+ if (!fill) {
401
+ if (!widthInt && !heightInt) {
402
+ widthInt = staticImageData.width;
403
+ heightInt = staticImageData.height;
404
+ } else if (widthInt && !heightInt) {
405
+ const ratio = widthInt / staticImageData.width;
406
+ heightInt = Math.round(staticImageData.height * ratio);
407
+ } else if (!widthInt && heightInt) {
408
+ const ratio = heightInt / staticImageData.height;
409
+ widthInt = Math.round(staticImageData.width * ratio);
410
+ }
411
+ }
412
+ }
413
+ src = typeof src === "string" ? src : staticSrc;
414
+ let isLazy = !priority && (loading === "lazy" || typeof loading === "undefined");
415
+ if (!src || src.startsWith("data:") || src.startsWith("blob:")) {
416
+ unoptimized = true;
417
+ isLazy = false;
418
+ }
419
+ if (config.unoptimized) {
420
+ unoptimized = true;
421
+ }
422
+ if (isDefaultLoader && !config.dangerouslyAllowSVG && src.split("?", 1)[0].endsWith(".svg")) {
423
+ unoptimized = true;
424
+ }
425
+ const qualityInt = getInt(quality);
426
+ if (process.env.NODE_ENV !== "production") {
427
+ if (config.output === "export" && isDefaultLoader && !unoptimized) {
428
+ throw Object.defineProperty(new Error("Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\n Possible solutions:\n - Remove `{ output: 'export' }` and run \"next start\" to run server mode including the Image Optimization API.\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\n Read more: https://nextjs.org/docs/messages/export-image-api"), "__NEXT_ERROR_CODE", {
429
+ value: "E500",
430
+ enumerable: false,
431
+ configurable: true
432
+ });
433
+ }
434
+ if (!src) {
435
+ unoptimized = true;
436
+ } else {
437
+ if (fill) {
438
+ if (width) {
439
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has both "width" and "fill" properties. Only one should be used.'), "__NEXT_ERROR_CODE", {
440
+ value: "E96",
441
+ enumerable: false,
442
+ configurable: true
443
+ });
444
+ }
445
+ if (height) {
446
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has both "height" and "fill" properties. Only one should be used.'), "__NEXT_ERROR_CODE", {
447
+ value: "E115",
448
+ enumerable: false,
449
+ configurable: true
450
+ });
451
+ }
452
+ if ((style == null ? void 0 : style.position) && style.position !== "absolute") {
453
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has both "fill" and "style.position" properties. Images with "fill" always use position absolute - it cannot be modified.'), "__NEXT_ERROR_CODE", {
454
+ value: "E216",
455
+ enumerable: false,
456
+ configurable: true
457
+ });
458
+ }
459
+ if ((style == null ? void 0 : style.width) && style.width !== "100%") {
460
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has both "fill" and "style.width" properties. Images with "fill" always use width 100% - it cannot be modified.'), "__NEXT_ERROR_CODE", {
461
+ value: "E73",
462
+ enumerable: false,
463
+ configurable: true
464
+ });
465
+ }
466
+ if ((style == null ? void 0 : style.height) && style.height !== "100%") {
467
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has both "fill" and "style.height" properties. Images with "fill" always use height 100% - it cannot be modified.'), "__NEXT_ERROR_CODE", {
468
+ value: "E404",
469
+ enumerable: false,
470
+ configurable: true
471
+ });
472
+ }
473
+ } else {
474
+ if (typeof widthInt === "undefined") {
475
+ throw Object.defineProperty(new Error('Image with src "' + src + '" is missing required "width" property.'), "__NEXT_ERROR_CODE", {
476
+ value: "E451",
477
+ enumerable: false,
478
+ configurable: true
479
+ });
480
+ } else if (isNaN(widthInt)) {
481
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has invalid "width" property. Expected a numeric value in pixels but received "' + width + '".'), "__NEXT_ERROR_CODE", {
482
+ value: "E66",
483
+ enumerable: false,
484
+ configurable: true
485
+ });
486
+ }
487
+ if (typeof heightInt === "undefined") {
488
+ throw Object.defineProperty(new Error('Image with src "' + src + '" is missing required "height" property.'), "__NEXT_ERROR_CODE", {
489
+ value: "E397",
490
+ enumerable: false,
491
+ configurable: true
492
+ });
493
+ } else if (isNaN(heightInt)) {
494
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has invalid "height" property. Expected a numeric value in pixels but received "' + height + '".'), "__NEXT_ERROR_CODE", {
495
+ value: "E444",
496
+ enumerable: false,
497
+ configurable: true
498
+ });
499
+ }
500
+ if (/^[\x00-\x20]/.test(src)) {
501
+ throw Object.defineProperty(new Error('Image with src "' + src + '" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.'), "__NEXT_ERROR_CODE", {
502
+ value: "E176",
503
+ enumerable: false,
504
+ configurable: true
505
+ });
506
+ }
507
+ if (/[\x00-\x20]$/.test(src)) {
508
+ throw Object.defineProperty(new Error('Image with src "' + src + '" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.'), "__NEXT_ERROR_CODE", {
509
+ value: "E21",
510
+ enumerable: false,
511
+ configurable: true
512
+ });
513
+ }
514
+ }
515
+ }
516
+ if (!VALID_LOADING_VALUES.includes(loading)) {
517
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has invalid "loading" property. Provided "' + loading + '" should be one of ' + VALID_LOADING_VALUES.map(String).join(",") + "."), "__NEXT_ERROR_CODE", {
518
+ value: "E357",
519
+ enumerable: false,
520
+ configurable: true
521
+ });
522
+ }
523
+ if (priority && loading === "lazy") {
524
+ throw Object.defineProperty(new Error('Image with src "' + src + `" has both "priority" and "loading='lazy'" properties. Only one should be used.`), "__NEXT_ERROR_CODE", {
525
+ value: "E218",
526
+ enumerable: false,
527
+ configurable: true
528
+ });
529
+ }
530
+ if (placeholder !== "empty" && placeholder !== "blur" && !placeholder.startsWith("data:image/")) {
531
+ throw Object.defineProperty(new Error('Image with src "' + src + '" has invalid "placeholder" property "' + placeholder + '".'), "__NEXT_ERROR_CODE", {
532
+ value: "E431",
533
+ enumerable: false,
534
+ configurable: true
535
+ });
536
+ }
537
+ if (placeholder !== "empty") {
538
+ if (widthInt && heightInt && widthInt * heightInt < 1600) {
539
+ (0, _warnonce.warnOnce)('Image with src "' + src + '" is smaller than 40x40. Consider removing the "placeholder" property to improve performance.');
540
+ }
541
+ }
542
+ if (placeholder === "blur" && !blurDataURL) {
543
+ const VALID_BLUR_EXT = [
544
+ "jpeg",
545
+ "png",
546
+ "webp",
547
+ "avif"
548
+ ];
549
+ throw Object.defineProperty(new Error('Image with src "' + src + `" has "placeholder='blur'" property but is missing the "blurDataURL" property.
550
+ Possible solutions:
551
+ - Add a "blurDataURL" property, the contents should be a small Data URL to represent the image
552
+ - Change the "src" property to a static import with one of the supported file types: ` + VALID_BLUR_EXT.join(",") + ' (animated images not supported)\n - Remove the "placeholder" property, effectively no blur effect\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url'), "__NEXT_ERROR_CODE", {
553
+ value: "E371",
554
+ enumerable: false,
555
+ configurable: true
556
+ });
557
+ }
558
+ if ("ref" in rest) {
559
+ (0, _warnonce.warnOnce)('Image with src "' + src + '" is using unsupported "ref" property. Consider using the "onLoad" property instead.');
560
+ }
561
+ if (!unoptimized && !isDefaultLoader) {
562
+ const urlStr = loader({
563
+ config,
564
+ src,
565
+ width: widthInt || 400,
566
+ quality: qualityInt || 75
567
+ });
568
+ let url;
569
+ try {
570
+ url = new URL(urlStr);
571
+ } catch (err) {
572
+ }
573
+ if (urlStr === src || url && url.pathname === src && !url.search) {
574
+ (0, _warnonce.warnOnce)('Image with src "' + src + '" has a "loader" property that does not implement width. Please implement it or use the "unoptimized" property instead.\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width');
575
+ }
576
+ }
577
+ if (onLoadingComplete) {
578
+ (0, _warnonce.warnOnce)('Image with src "' + src + '" is using deprecated "onLoadingComplete" property. Please use the "onLoad" property instead.');
579
+ }
580
+ for (const [legacyKey, legacyValue] of Object.entries({
581
+ layout,
582
+ objectFit,
583
+ objectPosition,
584
+ lazyBoundary,
585
+ lazyRoot
586
+ })) {
587
+ if (legacyValue) {
588
+ (0, _warnonce.warnOnce)('Image with src "' + src + '" has legacy prop "' + legacyKey + '". Did you forget to run the codemod?\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13');
589
+ }
590
+ }
591
+ if (typeof window !== "undefined" && !perfObserver && window.PerformanceObserver) {
592
+ perfObserver = new PerformanceObserver((entryList) => {
593
+ for (const entry of entryList.getEntries()) {
594
+ var _entry_element;
595
+ const imgSrc = (entry == null ? void 0 : (_entry_element = entry.element) == null ? void 0 : _entry_element.src) || "";
596
+ const lcpImage = allImgs.get(imgSrc);
597
+ if (lcpImage && !lcpImage.priority && lcpImage.placeholder === "empty" && !lcpImage.src.startsWith("data:") && !lcpImage.src.startsWith("blob:")) {
598
+ (0, _warnonce.warnOnce)('Image with src "' + lcpImage.src + '" was detected as the Largest Contentful Paint (LCP). Please add the "priority" property if this image is above the fold.\nRead more: https://nextjs.org/docs/api-reference/next/image#priority');
599
+ }
600
+ }
601
+ });
602
+ try {
603
+ perfObserver.observe({
604
+ type: "largest-contentful-paint",
605
+ buffered: true
606
+ });
607
+ } catch (err) {
608
+ console.error(err);
609
+ }
610
+ }
611
+ }
612
+ const imgStyle = Object.assign(fill ? {
613
+ position: "absolute",
614
+ height: "100%",
615
+ width: "100%",
616
+ left: 0,
617
+ top: 0,
618
+ right: 0,
619
+ bottom: 0,
620
+ objectFit,
621
+ objectPosition
622
+ } : {}, showAltText ? {} : {
623
+ color: "transparent"
624
+ }, style);
625
+ const backgroundImage = !blurComplete && placeholder !== "empty" ? placeholder === "blur" ? 'url("data:image/svg+xml;charset=utf-8,' + (0, _imageblursvg.getImageBlurSvg)({
626
+ widthInt,
627
+ heightInt,
628
+ blurWidth,
629
+ blurHeight,
630
+ blurDataURL: blurDataURL || "",
631
+ objectFit: imgStyle.objectFit
632
+ }) + '")' : 'url("' + placeholder + '")' : null;
633
+ const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(imgStyle.objectFit) ? imgStyle.objectFit : imgStyle.objectFit === "fill" ? "100% 100%" : "cover";
634
+ let placeholderStyle = backgroundImage ? {
635
+ backgroundSize,
636
+ backgroundPosition: imgStyle.objectPosition || "50% 50%",
637
+ backgroundRepeat: "no-repeat",
638
+ backgroundImage
639
+ } : {};
640
+ if (process.env.NODE_ENV === "development") {
641
+ if (placeholderStyle.backgroundImage && placeholder === "blur" && (blurDataURL == null ? void 0 : blurDataURL.startsWith("/"))) {
642
+ placeholderStyle.backgroundImage = 'url("' + blurDataURL + '")';
643
+ }
644
+ }
645
+ const imgAttributes = generateImgAttrs({
646
+ config,
647
+ src,
648
+ unoptimized,
649
+ width: widthInt,
650
+ quality: qualityInt,
651
+ sizes,
652
+ loader
653
+ });
654
+ if (process.env.NODE_ENV !== "production") {
655
+ if (typeof window !== "undefined") {
656
+ let fullUrl;
657
+ try {
658
+ fullUrl = new URL(imgAttributes.src);
659
+ } catch (e) {
660
+ fullUrl = new URL(imgAttributes.src, window.location.href);
661
+ }
662
+ allImgs.set(fullUrl.href, {
663
+ src,
664
+ priority,
665
+ placeholder
666
+ });
667
+ }
668
+ }
669
+ const props = {
670
+ ...rest,
671
+ loading: isLazy ? "lazy" : loading,
672
+ fetchPriority,
673
+ width: widthInt,
674
+ height: heightInt,
675
+ decoding,
676
+ className,
677
+ style: {
678
+ ...imgStyle,
679
+ ...placeholderStyle
680
+ },
681
+ sizes: imgAttributes.sizes,
682
+ srcSet: imgAttributes.srcSet,
683
+ src: overrideSrc || imgAttributes.src
684
+ };
685
+ const meta = {
686
+ unoptimized,
687
+ priority,
688
+ placeholder,
689
+ fill
690
+ };
691
+ return {
692
+ props,
693
+ meta
694
+ };
695
+ }
696
+ }
697
+ });
698
+
33
699
  // node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs
34
700
  var require_interop_require_wildcard = __commonJS({
35
701
  "node_modules/@swc/helpers/cjs/_interop_require_wildcard.cjs"(exports) {
36
702
  "use strict";
37
- function _getRequireWildcardCache(nodeInterop) {
38
- if (typeof WeakMap !== "function") return null;
39
- var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
40
- var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
41
- return (_getRequireWildcardCache = function(nodeInterop2) {
42
- return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
43
- })(nodeInterop);
703
+ function _getRequireWildcardCache(nodeInterop) {
704
+ if (typeof WeakMap !== "function") return null;
705
+ var cacheBabelInterop = /* @__PURE__ */ new WeakMap();
706
+ var cacheNodeInterop = /* @__PURE__ */ new WeakMap();
707
+ return (_getRequireWildcardCache = function(nodeInterop2) {
708
+ return nodeInterop2 ? cacheNodeInterop : cacheBabelInterop;
709
+ })(nodeInterop);
710
+ }
711
+ function _interop_require_wildcard(obj, nodeInterop) {
712
+ if (!nodeInterop && obj && obj.__esModule) return obj;
713
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj };
714
+ var cache = _getRequireWildcardCache(nodeInterop);
715
+ if (cache && cache.has(obj)) return cache.get(obj);
716
+ var newObj = { __proto__: null };
717
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
718
+ for (var key in obj) {
719
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
720
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
721
+ if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
722
+ else newObj[key] = obj[key];
723
+ }
724
+ }
725
+ newObj.default = obj;
726
+ if (cache) cache.set(obj, newObj);
727
+ return newObj;
728
+ }
729
+ exports._ = _interop_require_wildcard;
730
+ }
731
+ });
732
+
733
+ // node_modules/next/dist/shared/lib/side-effect.js
734
+ var require_side_effect = __commonJS({
735
+ "node_modules/next/dist/shared/lib/side-effect.js"(exports) {
736
+ "use strict";
737
+ Object.defineProperty(exports, "__esModule", {
738
+ value: true
739
+ });
740
+ Object.defineProperty(exports, "default", {
741
+ enumerable: true,
742
+ get: function() {
743
+ return SideEffect;
744
+ }
745
+ });
746
+ var _react = __require("react");
747
+ var isServer = typeof window === "undefined";
748
+ var useClientOnlyLayoutEffect = isServer ? () => {
749
+ } : _react.useLayoutEffect;
750
+ var useClientOnlyEffect = isServer ? () => {
751
+ } : _react.useEffect;
752
+ function SideEffect(props) {
753
+ const { headManager, reduceComponentsToState } = props;
754
+ function emitChange() {
755
+ if (headManager && headManager.mountedInstances) {
756
+ const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean));
757
+ headManager.updateHead(reduceComponentsToState(headElements, props));
758
+ }
759
+ }
760
+ if (isServer) {
761
+ var _headManager_mountedInstances;
762
+ headManager == null ? void 0 : (_headManager_mountedInstances = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances.add(props.children);
763
+ emitChange();
764
+ }
765
+ useClientOnlyLayoutEffect(() => {
766
+ var _headManager_mountedInstances2;
767
+ headManager == null ? void 0 : (_headManager_mountedInstances2 = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances2.add(props.children);
768
+ return () => {
769
+ var _headManager_mountedInstances3;
770
+ headManager == null ? void 0 : (_headManager_mountedInstances3 = headManager.mountedInstances) == null ? void 0 : _headManager_mountedInstances3.delete(props.children);
771
+ };
772
+ });
773
+ useClientOnlyLayoutEffect(() => {
774
+ if (headManager) {
775
+ headManager._pendingUpdate = emitChange;
776
+ }
777
+ return () => {
778
+ if (headManager) {
779
+ headManager._pendingUpdate = emitChange;
780
+ }
781
+ };
782
+ });
783
+ useClientOnlyEffect(() => {
784
+ if (headManager && headManager._pendingUpdate) {
785
+ headManager._pendingUpdate();
786
+ headManager._pendingUpdate = null;
787
+ }
788
+ return () => {
789
+ if (headManager && headManager._pendingUpdate) {
790
+ headManager._pendingUpdate();
791
+ headManager._pendingUpdate = null;
792
+ }
793
+ };
794
+ });
795
+ return null;
796
+ }
797
+ }
798
+ });
799
+
800
+ // node_modules/next/dist/shared/lib/amp-context.shared-runtime.js
801
+ var require_amp_context_shared_runtime = __commonJS({
802
+ "node_modules/next/dist/shared/lib/amp-context.shared-runtime.js"(exports) {
803
+ "use strict";
804
+ Object.defineProperty(exports, "__esModule", {
805
+ value: true
806
+ });
807
+ Object.defineProperty(exports, "AmpStateContext", {
808
+ enumerable: true,
809
+ get: function() {
810
+ return AmpStateContext;
811
+ }
812
+ });
813
+ var _interop_require_default = require_interop_require_default();
814
+ var _react = /* @__PURE__ */ _interop_require_default._(__require("react"));
815
+ var AmpStateContext = _react.default.createContext({});
816
+ if (process.env.NODE_ENV !== "production") {
817
+ AmpStateContext.displayName = "AmpStateContext";
818
+ }
819
+ }
820
+ });
821
+
822
+ // node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js
823
+ var require_head_manager_context_shared_runtime = __commonJS({
824
+ "node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js"(exports) {
825
+ "use strict";
826
+ Object.defineProperty(exports, "__esModule", {
827
+ value: true
828
+ });
829
+ Object.defineProperty(exports, "HeadManagerContext", {
830
+ enumerable: true,
831
+ get: function() {
832
+ return HeadManagerContext;
833
+ }
834
+ });
835
+ var _interop_require_default = require_interop_require_default();
836
+ var _react = /* @__PURE__ */ _interop_require_default._(__require("react"));
837
+ var HeadManagerContext = _react.default.createContext({});
838
+ if (process.env.NODE_ENV !== "production") {
839
+ HeadManagerContext.displayName = "HeadManagerContext";
840
+ }
841
+ }
842
+ });
843
+
844
+ // node_modules/next/dist/shared/lib/amp-mode.js
845
+ var require_amp_mode = __commonJS({
846
+ "node_modules/next/dist/shared/lib/amp-mode.js"(exports) {
847
+ "use strict";
848
+ Object.defineProperty(exports, "__esModule", {
849
+ value: true
850
+ });
851
+ Object.defineProperty(exports, "isInAmpMode", {
852
+ enumerable: true,
853
+ get: function() {
854
+ return isInAmpMode;
855
+ }
856
+ });
857
+ function isInAmpMode(param) {
858
+ let { ampFirst = false, hybrid = false, hasQuery = false } = param === void 0 ? {} : param;
859
+ return ampFirst || hybrid && hasQuery;
860
+ }
861
+ }
862
+ });
863
+
864
+ // node_modules/next/dist/shared/lib/head.js
865
+ var require_head = __commonJS({
866
+ "node_modules/next/dist/shared/lib/head.js"(exports, module) {
867
+ "use client";
868
+ "use strict";
869
+ Object.defineProperty(exports, "__esModule", {
870
+ value: true
871
+ });
872
+ function _export(target, all) {
873
+ for (var name in all) Object.defineProperty(target, name, {
874
+ enumerable: true,
875
+ get: all[name]
876
+ });
877
+ }
878
+ _export(exports, {
879
+ default: function() {
880
+ return _default;
881
+ },
882
+ defaultHead: function() {
883
+ return defaultHead;
884
+ }
885
+ });
886
+ var _interop_require_default = require_interop_require_default();
887
+ var _interop_require_wildcard = require_interop_require_wildcard();
888
+ var _jsxruntime = __require("react/jsx-runtime");
889
+ var _react = /* @__PURE__ */ _interop_require_wildcard._(__require("react"));
890
+ var _sideeffect = /* @__PURE__ */ _interop_require_default._(require_side_effect());
891
+ var _ampcontextsharedruntime = require_amp_context_shared_runtime();
892
+ var _headmanagercontextsharedruntime = require_head_manager_context_shared_runtime();
893
+ var _ampmode = require_amp_mode();
894
+ var _warnonce = require_warn_once();
895
+ function defaultHead(inAmpMode) {
896
+ if (inAmpMode === void 0) inAmpMode = false;
897
+ const head = [
898
+ /* @__PURE__ */ (0, _jsxruntime.jsx)("meta", {
899
+ charSet: "utf-8"
900
+ }, "charset")
901
+ ];
902
+ if (!inAmpMode) {
903
+ head.push(/* @__PURE__ */ (0, _jsxruntime.jsx)("meta", {
904
+ name: "viewport",
905
+ content: "width=device-width"
906
+ }, "viewport"));
907
+ }
908
+ return head;
909
+ }
910
+ function onlyReactElement(list, child) {
911
+ if (typeof child === "string" || typeof child === "number") {
912
+ return list;
913
+ }
914
+ if (child.type === _react.default.Fragment) {
915
+ return list.concat(
916
+ // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]
917
+ _react.default.Children.toArray(child.props.children).reduce(
918
+ // @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[]
919
+ (fragmentList, fragmentChild) => {
920
+ if (typeof fragmentChild === "string" || typeof fragmentChild === "number") {
921
+ return fragmentList;
922
+ }
923
+ return fragmentList.concat(fragmentChild);
924
+ },
925
+ []
926
+ )
927
+ );
928
+ }
929
+ return list.concat(child);
930
+ }
931
+ var METATYPES = [
932
+ "name",
933
+ "httpEquiv",
934
+ "charSet",
935
+ "itemProp"
936
+ ];
937
+ function unique() {
938
+ const keys = /* @__PURE__ */ new Set();
939
+ const tags = /* @__PURE__ */ new Set();
940
+ const metaTypes = /* @__PURE__ */ new Set();
941
+ const metaCategories = {};
942
+ return (h) => {
943
+ let isUnique = true;
944
+ let hasKey = false;
945
+ if (h.key && typeof h.key !== "number" && h.key.indexOf("$") > 0) {
946
+ hasKey = true;
947
+ const key = h.key.slice(h.key.indexOf("$") + 1);
948
+ if (keys.has(key)) {
949
+ isUnique = false;
950
+ } else {
951
+ keys.add(key);
952
+ }
953
+ }
954
+ switch (h.type) {
955
+ case "title":
956
+ case "base":
957
+ if (tags.has(h.type)) {
958
+ isUnique = false;
959
+ } else {
960
+ tags.add(h.type);
961
+ }
962
+ break;
963
+ case "meta":
964
+ for (let i = 0, len = METATYPES.length; i < len; i++) {
965
+ const metatype = METATYPES[i];
966
+ if (!h.props.hasOwnProperty(metatype)) continue;
967
+ if (metatype === "charSet") {
968
+ if (metaTypes.has(metatype)) {
969
+ isUnique = false;
970
+ } else {
971
+ metaTypes.add(metatype);
972
+ }
973
+ } else {
974
+ const category = h.props[metatype];
975
+ const categories = metaCategories[metatype] || /* @__PURE__ */ new Set();
976
+ if ((metatype !== "name" || !hasKey) && categories.has(category)) {
977
+ isUnique = false;
978
+ } else {
979
+ categories.add(category);
980
+ metaCategories[metatype] = categories;
981
+ }
982
+ }
983
+ }
984
+ break;
985
+ }
986
+ return isUnique;
987
+ };
988
+ }
989
+ function reduceComponents(headChildrenElements, props) {
990
+ const { inAmpMode } = props;
991
+ return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead(inAmpMode).reverse()).filter(unique()).reverse().map((c, i) => {
992
+ const key = c.key || i;
993
+ if (process.env.NODE_ENV !== "development" && process.env.__NEXT_OPTIMIZE_FONTS && !inAmpMode) {
994
+ if (c.type === "link" && c.props["href"] && // TODO(prateekbh@): Replace this with const from `constants` when the tree shaking works.
995
+ [
996
+ "https://fonts.googleapis.com/css",
997
+ "https://use.typekit.net/"
998
+ ].some((url) => c.props["href"].startsWith(url))) {
999
+ const newProps = {
1000
+ ...c.props || {}
1001
+ };
1002
+ newProps["data-href"] = newProps["href"];
1003
+ newProps["href"] = void 0;
1004
+ newProps["data-optimized-fonts"] = true;
1005
+ return /* @__PURE__ */ _react.default.cloneElement(c, newProps);
1006
+ }
1007
+ }
1008
+ if (process.env.NODE_ENV === "development") {
1009
+ if (c.type === "script" && c.props["type"] !== "application/ld+json") {
1010
+ const srcMessage = c.props["src"] ? '<script> tag with src="' + c.props["src"] + '"' : "inline <script>";
1011
+ (0, _warnonce.warnOnce)("Do not add <script> tags using next/head (see " + srcMessage + "). Use next/script instead. \nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component");
1012
+ } else if (c.type === "link" && c.props["rel"] === "stylesheet") {
1013
+ (0, _warnonce.warnOnce)('Do not add stylesheets using next/head (see <link rel="stylesheet"> tag with href="' + c.props["href"] + '"). Use Document instead. \nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component');
1014
+ }
1015
+ }
1016
+ return /* @__PURE__ */ _react.default.cloneElement(c, {
1017
+ key
1018
+ });
1019
+ });
1020
+ }
1021
+ function Head(param) {
1022
+ let { children } = param;
1023
+ const ampState = (0, _react.useContext)(_ampcontextsharedruntime.AmpStateContext);
1024
+ const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext);
1025
+ return /* @__PURE__ */ (0, _jsxruntime.jsx)(_sideeffect.default, {
1026
+ reduceComponentsToState: reduceComponents,
1027
+ headManager,
1028
+ inAmpMode: (0, _ampmode.isInAmpMode)(ampState),
1029
+ children
1030
+ });
1031
+ }
1032
+ var _default = Head;
1033
+ if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") {
1034
+ Object.defineProperty(exports.default, "__esModule", { value: true });
1035
+ Object.assign(exports.default, exports);
1036
+ module.exports = exports.default;
1037
+ }
1038
+ }
1039
+ });
1040
+
1041
+ // node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js
1042
+ var require_image_config_context_shared_runtime = __commonJS({
1043
+ "node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js"(exports) {
1044
+ "use strict";
1045
+ Object.defineProperty(exports, "__esModule", {
1046
+ value: true
1047
+ });
1048
+ Object.defineProperty(exports, "ImageConfigContext", {
1049
+ enumerable: true,
1050
+ get: function() {
1051
+ return ImageConfigContext;
1052
+ }
1053
+ });
1054
+ var _interop_require_default = require_interop_require_default();
1055
+ var _react = /* @__PURE__ */ _interop_require_default._(__require("react"));
1056
+ var _imageconfig = require_image_config();
1057
+ var ImageConfigContext = _react.default.createContext(_imageconfig.imageConfigDefault);
1058
+ if (process.env.NODE_ENV !== "production") {
1059
+ ImageConfigContext.displayName = "ImageConfigContext";
1060
+ }
1061
+ }
1062
+ });
1063
+
1064
+ // node_modules/next/dist/shared/lib/router-context.shared-runtime.js
1065
+ var require_router_context_shared_runtime = __commonJS({
1066
+ "node_modules/next/dist/shared/lib/router-context.shared-runtime.js"(exports) {
1067
+ "use strict";
1068
+ Object.defineProperty(exports, "__esModule", {
1069
+ value: true
1070
+ });
1071
+ Object.defineProperty(exports, "RouterContext", {
1072
+ enumerable: true,
1073
+ get: function() {
1074
+ return RouterContext;
1075
+ }
1076
+ });
1077
+ var _interop_require_default = require_interop_require_default();
1078
+ var _react = /* @__PURE__ */ _interop_require_default._(__require("react"));
1079
+ var RouterContext = _react.default.createContext(null);
1080
+ if (process.env.NODE_ENV !== "production") {
1081
+ RouterContext.displayName = "RouterContext";
1082
+ }
1083
+ }
1084
+ });
1085
+
1086
+ // node_modules/next/dist/compiled/picomatch/index.js
1087
+ var require_picomatch = __commonJS({
1088
+ "node_modules/next/dist/compiled/picomatch/index.js"(exports, module) {
1089
+ (() => {
1090
+ "use strict";
1091
+ var t = { 170: (t2, e2, u2) => {
1092
+ const n = u2(510);
1093
+ const isWindows = () => {
1094
+ if (typeof navigator !== "undefined" && navigator.platform) {
1095
+ const t3 = navigator.platform.toLowerCase();
1096
+ return t3 === "win32" || t3 === "windows";
1097
+ }
1098
+ if (typeof process !== "undefined" && process.platform) {
1099
+ return process.platform === "win32";
1100
+ }
1101
+ return false;
1102
+ };
1103
+ function picomatch(t3, e3, u3 = false) {
1104
+ if (e3 && (e3.windows === null || e3.windows === void 0)) {
1105
+ e3 = { ...e3, windows: isWindows() };
1106
+ }
1107
+ return n(t3, e3, u3);
1108
+ }
1109
+ Object.assign(picomatch, n);
1110
+ t2.exports = picomatch;
1111
+ }, 154: (t2) => {
1112
+ const e2 = "\\\\/";
1113
+ const u2 = `[^${e2}]`;
1114
+ const n = "\\.";
1115
+ const o = "\\+";
1116
+ const s = "\\?";
1117
+ const r = "\\/";
1118
+ const a = "(?=.)";
1119
+ const i = "[^/]";
1120
+ const c = `(?:${r}|$)`;
1121
+ const p = `(?:^|${r})`;
1122
+ const l = `${n}{1,2}${c}`;
1123
+ const f = `(?!${n})`;
1124
+ const A = `(?!${p}${l})`;
1125
+ const _ = `(?!${n}{0,1}${c})`;
1126
+ const R = `(?!${l})`;
1127
+ const E = `[^.${r}]`;
1128
+ const h = `${i}*?`;
1129
+ const g = "/";
1130
+ const b = { DOT_LITERAL: n, PLUS_LITERAL: o, QMARK_LITERAL: s, SLASH_LITERAL: r, ONE_CHAR: a, QMARK: i, END_ANCHOR: c, DOTS_SLASH: l, NO_DOT: f, NO_DOTS: A, NO_DOT_SLASH: _, NO_DOTS_SLASH: R, QMARK_NO_DOT: E, STAR: h, START_ANCHOR: p, SEP: g };
1131
+ const C = { ...b, SLASH_LITERAL: `[${e2}]`, QMARK: u2, STAR: `${u2}*?`, DOTS_SLASH: `${n}{1,2}(?:[${e2}]|$)`, NO_DOT: `(?!${n})`, NO_DOTS: `(?!(?:^|[${e2}])${n}{1,2}(?:[${e2}]|$))`, NO_DOT_SLASH: `(?!${n}{0,1}(?:[${e2}]|$))`, NO_DOTS_SLASH: `(?!${n}{1,2}(?:[${e2}]|$))`, QMARK_NO_DOT: `[^.${e2}]`, START_ANCHOR: `(?:^|[${e2}])`, END_ANCHOR: `(?:[${e2}]|$)`, SEP: "\\" };
1132
+ const y = { alnum: "a-zA-Z0-9", alpha: "a-zA-Z", ascii: "\\x00-\\x7F", blank: " \\t", cntrl: "\\x00-\\x1F\\x7F", digit: "0-9", graph: "\\x21-\\x7E", lower: "a-z", print: "\\x20-\\x7E ", punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", space: " \\t\\r\\n\\v\\f", upper: "A-Z", word: "A-Za-z0-9_", xdigit: "A-Fa-f0-9" };
1133
+ t2.exports = { MAX_LENGTH: 1024 * 64, POSIX_REGEX_SOURCE: y, REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, REPLACEMENTS: { "***": "*", "**/**": "**", "**/**/**": "**" }, CHAR_0: 48, CHAR_9: 57, CHAR_UPPERCASE_A: 65, CHAR_LOWERCASE_A: 97, CHAR_UPPERCASE_Z: 90, CHAR_LOWERCASE_Z: 122, CHAR_LEFT_PARENTHESES: 40, CHAR_RIGHT_PARENTHESES: 41, CHAR_ASTERISK: 42, CHAR_AMPERSAND: 38, CHAR_AT: 64, CHAR_BACKWARD_SLASH: 92, CHAR_CARRIAGE_RETURN: 13, CHAR_CIRCUMFLEX_ACCENT: 94, CHAR_COLON: 58, CHAR_COMMA: 44, CHAR_DOT: 46, CHAR_DOUBLE_QUOTE: 34, CHAR_EQUAL: 61, CHAR_EXCLAMATION_MARK: 33, CHAR_FORM_FEED: 12, CHAR_FORWARD_SLASH: 47, CHAR_GRAVE_ACCENT: 96, CHAR_HASH: 35, CHAR_HYPHEN_MINUS: 45, CHAR_LEFT_ANGLE_BRACKET: 60, CHAR_LEFT_CURLY_BRACE: 123, CHAR_LEFT_SQUARE_BRACKET: 91, CHAR_LINE_FEED: 10, CHAR_NO_BREAK_SPACE: 160, CHAR_PERCENT: 37, CHAR_PLUS: 43, CHAR_QUESTION_MARK: 63, CHAR_RIGHT_ANGLE_BRACKET: 62, CHAR_RIGHT_CURLY_BRACE: 125, CHAR_RIGHT_SQUARE_BRACKET: 93, CHAR_SEMICOLON: 59, CHAR_SINGLE_QUOTE: 39, CHAR_SPACE: 32, CHAR_TAB: 9, CHAR_UNDERSCORE: 95, CHAR_VERTICAL_LINE: 124, CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, extglobChars(t3) {
1134
+ return { "!": { type: "negate", open: "(?:(?!(?:", close: `))${t3.STAR})` }, "?": { type: "qmark", open: "(?:", close: ")?" }, "+": { type: "plus", open: "(?:", close: ")+" }, "*": { type: "star", open: "(?:", close: ")*" }, "@": { type: "at", open: "(?:", close: ")" } };
1135
+ }, globChars(t3) {
1136
+ return t3 === true ? C : b;
1137
+ } };
1138
+ }, 697: (t2, e2, u2) => {
1139
+ const n = u2(154);
1140
+ const o = u2(96);
1141
+ const { MAX_LENGTH: s, POSIX_REGEX_SOURCE: r, REGEX_NON_SPECIAL_CHARS: a, REGEX_SPECIAL_CHARS_BACKREF: i, REPLACEMENTS: c } = n;
1142
+ const expandRange = (t3, e3) => {
1143
+ if (typeof e3.expandRange === "function") {
1144
+ return e3.expandRange(...t3, e3);
1145
+ }
1146
+ t3.sort();
1147
+ const u3 = `[${t3.join("-")}]`;
1148
+ try {
1149
+ new RegExp(u3);
1150
+ } catch (e4) {
1151
+ return t3.map((t4) => o.escapeRegex(t4)).join("..");
1152
+ }
1153
+ return u3;
1154
+ };
1155
+ const syntaxError = (t3, e3) => `Missing ${t3}: "${e3}" - use "\\\\${e3}" to match literal characters`;
1156
+ const parse = (t3, e3) => {
1157
+ if (typeof t3 !== "string") {
1158
+ throw new TypeError("Expected a string");
1159
+ }
1160
+ t3 = c[t3] || t3;
1161
+ const u3 = { ...e3 };
1162
+ const p = typeof u3.maxLength === "number" ? Math.min(s, u3.maxLength) : s;
1163
+ let l = t3.length;
1164
+ if (l > p) {
1165
+ throw new SyntaxError(`Input length: ${l}, exceeds maximum allowed length: ${p}`);
1166
+ }
1167
+ const f = { type: "bos", value: "", output: u3.prepend || "" };
1168
+ const A = [f];
1169
+ const _ = u3.capture ? "" : "?:";
1170
+ const R = n.globChars(u3.windows);
1171
+ const E = n.extglobChars(R);
1172
+ const { DOT_LITERAL: h, PLUS_LITERAL: g, SLASH_LITERAL: b, ONE_CHAR: C, DOTS_SLASH: y, NO_DOT: $, NO_DOT_SLASH: x, NO_DOTS_SLASH: S, QMARK: H, QMARK_NO_DOT: v, STAR: d, START_ANCHOR: L } = R;
1173
+ const globstar = (t4) => `(${_}(?:(?!${L}${t4.dot ? y : h}).)*?)`;
1174
+ const T = u3.dot ? "" : $;
1175
+ const O = u3.dot ? H : v;
1176
+ let k = u3.bash === true ? globstar(u3) : d;
1177
+ if (u3.capture) {
1178
+ k = `(${k})`;
1179
+ }
1180
+ if (typeof u3.noext === "boolean") {
1181
+ u3.noextglob = u3.noext;
1182
+ }
1183
+ const m = { input: t3, index: -1, start: 0, dot: u3.dot === true, consumed: "", output: "", prefix: "", backtrack: false, negated: false, brackets: 0, braces: 0, parens: 0, quotes: 0, globstar: false, tokens: A };
1184
+ t3 = o.removePrefix(t3, m);
1185
+ l = t3.length;
1186
+ const w = [];
1187
+ const N = [];
1188
+ const I = [];
1189
+ let B = f;
1190
+ let G;
1191
+ const eos = () => m.index === l - 1;
1192
+ const D = m.peek = (e4 = 1) => t3[m.index + e4];
1193
+ const M = m.advance = () => t3[++m.index] || "";
1194
+ const remaining = () => t3.slice(m.index + 1);
1195
+ const consume = (t4 = "", e4 = 0) => {
1196
+ m.consumed += t4;
1197
+ m.index += e4;
1198
+ };
1199
+ const append = (t4) => {
1200
+ m.output += t4.output != null ? t4.output : t4.value;
1201
+ consume(t4.value);
1202
+ };
1203
+ const negate = () => {
1204
+ let t4 = 1;
1205
+ while (D() === "!" && (D(2) !== "(" || D(3) === "?")) {
1206
+ M();
1207
+ m.start++;
1208
+ t4++;
1209
+ }
1210
+ if (t4 % 2 === 0) {
1211
+ return false;
1212
+ }
1213
+ m.negated = true;
1214
+ m.start++;
1215
+ return true;
1216
+ };
1217
+ const increment = (t4) => {
1218
+ m[t4]++;
1219
+ I.push(t4);
1220
+ };
1221
+ const decrement = (t4) => {
1222
+ m[t4]--;
1223
+ I.pop();
1224
+ };
1225
+ const push = (t4) => {
1226
+ if (B.type === "globstar") {
1227
+ const e4 = m.braces > 0 && (t4.type === "comma" || t4.type === "brace");
1228
+ const u4 = t4.extglob === true || w.length && (t4.type === "pipe" || t4.type === "paren");
1229
+ if (t4.type !== "slash" && t4.type !== "paren" && !e4 && !u4) {
1230
+ m.output = m.output.slice(0, -B.output.length);
1231
+ B.type = "star";
1232
+ B.value = "*";
1233
+ B.output = k;
1234
+ m.output += B.output;
1235
+ }
1236
+ }
1237
+ if (w.length && t4.type !== "paren") {
1238
+ w[w.length - 1].inner += t4.value;
1239
+ }
1240
+ if (t4.value || t4.output) append(t4);
1241
+ if (B && B.type === "text" && t4.type === "text") {
1242
+ B.output = (B.output || B.value) + t4.value;
1243
+ B.value += t4.value;
1244
+ return;
1245
+ }
1246
+ t4.prev = B;
1247
+ A.push(t4);
1248
+ B = t4;
1249
+ };
1250
+ const extglobOpen = (t4, e4) => {
1251
+ const n2 = { ...E[e4], conditions: 1, inner: "" };
1252
+ n2.prev = B;
1253
+ n2.parens = m.parens;
1254
+ n2.output = m.output;
1255
+ const o2 = (u3.capture ? "(" : "") + n2.open;
1256
+ increment("parens");
1257
+ push({ type: t4, value: e4, output: m.output ? "" : C });
1258
+ push({ type: "paren", extglob: true, value: M(), output: o2 });
1259
+ w.push(n2);
1260
+ };
1261
+ const extglobClose = (t4) => {
1262
+ let n2 = t4.close + (u3.capture ? ")" : "");
1263
+ let o2;
1264
+ if (t4.type === "negate") {
1265
+ let s2 = k;
1266
+ if (t4.inner && t4.inner.length > 1 && t4.inner.includes("/")) {
1267
+ s2 = globstar(u3);
1268
+ }
1269
+ if (s2 !== k || eos() || /^\)+$/.test(remaining())) {
1270
+ n2 = t4.close = `)$))${s2}`;
1271
+ }
1272
+ if (t4.inner.includes("*") && (o2 = remaining()) && /^\.[^\\/.]+$/.test(o2)) {
1273
+ const u4 = parse(o2, { ...e3, fastpaths: false }).output;
1274
+ n2 = t4.close = `)${u4})${s2})`;
1275
+ }
1276
+ if (t4.prev.type === "bos") {
1277
+ m.negatedExtglob = true;
1278
+ }
1279
+ }
1280
+ push({ type: "paren", extglob: true, value: G, output: n2 });
1281
+ decrement("parens");
1282
+ };
1283
+ if (u3.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(t3)) {
1284
+ let n2 = false;
1285
+ let s2 = t3.replace(i, (t4, e4, u4, o2, s3, r2) => {
1286
+ if (o2 === "\\") {
1287
+ n2 = true;
1288
+ return t4;
1289
+ }
1290
+ if (o2 === "?") {
1291
+ if (e4) {
1292
+ return e4 + o2 + (s3 ? H.repeat(s3.length) : "");
1293
+ }
1294
+ if (r2 === 0) {
1295
+ return O + (s3 ? H.repeat(s3.length) : "");
1296
+ }
1297
+ return H.repeat(u4.length);
1298
+ }
1299
+ if (o2 === ".") {
1300
+ return h.repeat(u4.length);
1301
+ }
1302
+ if (o2 === "*") {
1303
+ if (e4) {
1304
+ return e4 + o2 + (s3 ? k : "");
1305
+ }
1306
+ return k;
1307
+ }
1308
+ return e4 ? t4 : `\\${t4}`;
1309
+ });
1310
+ if (n2 === true) {
1311
+ if (u3.unescape === true) {
1312
+ s2 = s2.replace(/\\/g, "");
1313
+ } else {
1314
+ s2 = s2.replace(/\\+/g, (t4) => t4.length % 2 === 0 ? "\\\\" : t4 ? "\\" : "");
1315
+ }
1316
+ }
1317
+ if (s2 === t3 && u3.contains === true) {
1318
+ m.output = t3;
1319
+ return m;
1320
+ }
1321
+ m.output = o.wrapOutput(s2, m, e3);
1322
+ return m;
1323
+ }
1324
+ while (!eos()) {
1325
+ G = M();
1326
+ if (G === "\0") {
1327
+ continue;
1328
+ }
1329
+ if (G === "\\") {
1330
+ const t4 = D();
1331
+ if (t4 === "/" && u3.bash !== true) {
1332
+ continue;
1333
+ }
1334
+ if (t4 === "." || t4 === ";") {
1335
+ continue;
1336
+ }
1337
+ if (!t4) {
1338
+ G += "\\";
1339
+ push({ type: "text", value: G });
1340
+ continue;
1341
+ }
1342
+ const e5 = /^\\+/.exec(remaining());
1343
+ let n3 = 0;
1344
+ if (e5 && e5[0].length > 2) {
1345
+ n3 = e5[0].length;
1346
+ m.index += n3;
1347
+ if (n3 % 2 !== 0) {
1348
+ G += "\\";
1349
+ }
1350
+ }
1351
+ if (u3.unescape === true) {
1352
+ G = M();
1353
+ } else {
1354
+ G += M();
1355
+ }
1356
+ if (m.brackets === 0) {
1357
+ push({ type: "text", value: G });
1358
+ continue;
1359
+ }
1360
+ }
1361
+ if (m.brackets > 0 && (G !== "]" || B.value === "[" || B.value === "[^")) {
1362
+ if (u3.posix !== false && G === ":") {
1363
+ const t4 = B.value.slice(1);
1364
+ if (t4.includes("[")) {
1365
+ B.posix = true;
1366
+ if (t4.includes(":")) {
1367
+ const t5 = B.value.lastIndexOf("[");
1368
+ const e5 = B.value.slice(0, t5);
1369
+ const u4 = B.value.slice(t5 + 2);
1370
+ const n3 = r[u4];
1371
+ if (n3) {
1372
+ B.value = e5 + n3;
1373
+ m.backtrack = true;
1374
+ M();
1375
+ if (!f.output && A.indexOf(B) === 1) {
1376
+ f.output = C;
1377
+ }
1378
+ continue;
1379
+ }
1380
+ }
1381
+ }
1382
+ }
1383
+ if (G === "[" && D() !== ":" || G === "-" && D() === "]") {
1384
+ G = `\\${G}`;
1385
+ }
1386
+ if (G === "]" && (B.value === "[" || B.value === "[^")) {
1387
+ G = `\\${G}`;
1388
+ }
1389
+ if (u3.posix === true && G === "!" && B.value === "[") {
1390
+ G = "^";
1391
+ }
1392
+ B.value += G;
1393
+ append({ value: G });
1394
+ continue;
1395
+ }
1396
+ if (m.quotes === 1 && G !== '"') {
1397
+ G = o.escapeRegex(G);
1398
+ B.value += G;
1399
+ append({ value: G });
1400
+ continue;
1401
+ }
1402
+ if (G === '"') {
1403
+ m.quotes = m.quotes === 1 ? 0 : 1;
1404
+ if (u3.keepQuotes === true) {
1405
+ push({ type: "text", value: G });
1406
+ }
1407
+ continue;
1408
+ }
1409
+ if (G === "(") {
1410
+ increment("parens");
1411
+ push({ type: "paren", value: G });
1412
+ continue;
1413
+ }
1414
+ if (G === ")") {
1415
+ if (m.parens === 0 && u3.strictBrackets === true) {
1416
+ throw new SyntaxError(syntaxError("opening", "("));
1417
+ }
1418
+ const t4 = w[w.length - 1];
1419
+ if (t4 && m.parens === t4.parens + 1) {
1420
+ extglobClose(w.pop());
1421
+ continue;
1422
+ }
1423
+ push({ type: "paren", value: G, output: m.parens ? ")" : "\\)" });
1424
+ decrement("parens");
1425
+ continue;
1426
+ }
1427
+ if (G === "[") {
1428
+ if (u3.nobracket === true || !remaining().includes("]")) {
1429
+ if (u3.nobracket !== true && u3.strictBrackets === true) {
1430
+ throw new SyntaxError(syntaxError("closing", "]"));
1431
+ }
1432
+ G = `\\${G}`;
1433
+ } else {
1434
+ increment("brackets");
1435
+ }
1436
+ push({ type: "bracket", value: G });
1437
+ continue;
1438
+ }
1439
+ if (G === "]") {
1440
+ if (u3.nobracket === true || B && B.type === "bracket" && B.value.length === 1) {
1441
+ push({ type: "text", value: G, output: `\\${G}` });
1442
+ continue;
1443
+ }
1444
+ if (m.brackets === 0) {
1445
+ if (u3.strictBrackets === true) {
1446
+ throw new SyntaxError(syntaxError("opening", "["));
1447
+ }
1448
+ push({ type: "text", value: G, output: `\\${G}` });
1449
+ continue;
1450
+ }
1451
+ decrement("brackets");
1452
+ const t4 = B.value.slice(1);
1453
+ if (B.posix !== true && t4[0] === "^" && !t4.includes("/")) {
1454
+ G = `/${G}`;
1455
+ }
1456
+ B.value += G;
1457
+ append({ value: G });
1458
+ if (u3.literalBrackets === false || o.hasRegexChars(t4)) {
1459
+ continue;
1460
+ }
1461
+ const e5 = o.escapeRegex(B.value);
1462
+ m.output = m.output.slice(0, -B.value.length);
1463
+ if (u3.literalBrackets === true) {
1464
+ m.output += e5;
1465
+ B.value = e5;
1466
+ continue;
1467
+ }
1468
+ B.value = `(${_}${e5}|${B.value})`;
1469
+ m.output += B.value;
1470
+ continue;
1471
+ }
1472
+ if (G === "{" && u3.nobrace !== true) {
1473
+ increment("braces");
1474
+ const t4 = { type: "brace", value: G, output: "(", outputIndex: m.output.length, tokensIndex: m.tokens.length };
1475
+ N.push(t4);
1476
+ push(t4);
1477
+ continue;
1478
+ }
1479
+ if (G === "}") {
1480
+ const t4 = N[N.length - 1];
1481
+ if (u3.nobrace === true || !t4) {
1482
+ push({ type: "text", value: G, output: G });
1483
+ continue;
1484
+ }
1485
+ let e5 = ")";
1486
+ if (t4.dots === true) {
1487
+ const t5 = A.slice();
1488
+ const n3 = [];
1489
+ for (let e6 = t5.length - 1; e6 >= 0; e6--) {
1490
+ A.pop();
1491
+ if (t5[e6].type === "brace") {
1492
+ break;
1493
+ }
1494
+ if (t5[e6].type !== "dots") {
1495
+ n3.unshift(t5[e6].value);
1496
+ }
1497
+ }
1498
+ e5 = expandRange(n3, u3);
1499
+ m.backtrack = true;
1500
+ }
1501
+ if (t4.comma !== true && t4.dots !== true) {
1502
+ const u4 = m.output.slice(0, t4.outputIndex);
1503
+ const n3 = m.tokens.slice(t4.tokensIndex);
1504
+ t4.value = t4.output = "\\{";
1505
+ G = e5 = "\\}";
1506
+ m.output = u4;
1507
+ for (const t5 of n3) {
1508
+ m.output += t5.output || t5.value;
1509
+ }
1510
+ }
1511
+ push({ type: "brace", value: G, output: e5 });
1512
+ decrement("braces");
1513
+ N.pop();
1514
+ continue;
1515
+ }
1516
+ if (G === "|") {
1517
+ if (w.length > 0) {
1518
+ w[w.length - 1].conditions++;
1519
+ }
1520
+ push({ type: "text", value: G });
1521
+ continue;
1522
+ }
1523
+ if (G === ",") {
1524
+ let t4 = G;
1525
+ const e5 = N[N.length - 1];
1526
+ if (e5 && I[I.length - 1] === "braces") {
1527
+ e5.comma = true;
1528
+ t4 = "|";
1529
+ }
1530
+ push({ type: "comma", value: G, output: t4 });
1531
+ continue;
1532
+ }
1533
+ if (G === "/") {
1534
+ if (B.type === "dot" && m.index === m.start + 1) {
1535
+ m.start = m.index + 1;
1536
+ m.consumed = "";
1537
+ m.output = "";
1538
+ A.pop();
1539
+ B = f;
1540
+ continue;
1541
+ }
1542
+ push({ type: "slash", value: G, output: b });
1543
+ continue;
1544
+ }
1545
+ if (G === ".") {
1546
+ if (m.braces > 0 && B.type === "dot") {
1547
+ if (B.value === ".") B.output = h;
1548
+ const t4 = N[N.length - 1];
1549
+ B.type = "dots";
1550
+ B.output += G;
1551
+ B.value += G;
1552
+ t4.dots = true;
1553
+ continue;
1554
+ }
1555
+ if (m.braces + m.parens === 0 && B.type !== "bos" && B.type !== "slash") {
1556
+ push({ type: "text", value: G, output: h });
1557
+ continue;
1558
+ }
1559
+ push({ type: "dot", value: G, output: h });
1560
+ continue;
1561
+ }
1562
+ if (G === "?") {
1563
+ const t4 = B && B.value === "(";
1564
+ if (!t4 && u3.noextglob !== true && D() === "(" && D(2) !== "?") {
1565
+ extglobOpen("qmark", G);
1566
+ continue;
1567
+ }
1568
+ if (B && B.type === "paren") {
1569
+ const t5 = D();
1570
+ let e5 = G;
1571
+ if (B.value === "(" && !/[!=<:]/.test(t5) || t5 === "<" && !/<([!=]|\w+>)/.test(remaining())) {
1572
+ e5 = `\\${G}`;
1573
+ }
1574
+ push({ type: "text", value: G, output: e5 });
1575
+ continue;
1576
+ }
1577
+ if (u3.dot !== true && (B.type === "slash" || B.type === "bos")) {
1578
+ push({ type: "qmark", value: G, output: v });
1579
+ continue;
1580
+ }
1581
+ push({ type: "qmark", value: G, output: H });
1582
+ continue;
1583
+ }
1584
+ if (G === "!") {
1585
+ if (u3.noextglob !== true && D() === "(") {
1586
+ if (D(2) !== "?" || !/[!=<:]/.test(D(3))) {
1587
+ extglobOpen("negate", G);
1588
+ continue;
1589
+ }
1590
+ }
1591
+ if (u3.nonegate !== true && m.index === 0) {
1592
+ negate();
1593
+ continue;
1594
+ }
1595
+ }
1596
+ if (G === "+") {
1597
+ if (u3.noextglob !== true && D() === "(" && D(2) !== "?") {
1598
+ extglobOpen("plus", G);
1599
+ continue;
1600
+ }
1601
+ if (B && B.value === "(" || u3.regex === false) {
1602
+ push({ type: "plus", value: G, output: g });
1603
+ continue;
1604
+ }
1605
+ if (B && (B.type === "bracket" || B.type === "paren" || B.type === "brace") || m.parens > 0) {
1606
+ push({ type: "plus", value: G });
1607
+ continue;
1608
+ }
1609
+ push({ type: "plus", value: g });
1610
+ continue;
1611
+ }
1612
+ if (G === "@") {
1613
+ if (u3.noextglob !== true && D() === "(" && D(2) !== "?") {
1614
+ push({ type: "at", extglob: true, value: G, output: "" });
1615
+ continue;
1616
+ }
1617
+ push({ type: "text", value: G });
1618
+ continue;
1619
+ }
1620
+ if (G !== "*") {
1621
+ if (G === "$" || G === "^") {
1622
+ G = `\\${G}`;
1623
+ }
1624
+ const t4 = a.exec(remaining());
1625
+ if (t4) {
1626
+ G += t4[0];
1627
+ m.index += t4[0].length;
1628
+ }
1629
+ push({ type: "text", value: G });
1630
+ continue;
1631
+ }
1632
+ if (B && (B.type === "globstar" || B.star === true)) {
1633
+ B.type = "star";
1634
+ B.star = true;
1635
+ B.value += G;
1636
+ B.output = k;
1637
+ m.backtrack = true;
1638
+ m.globstar = true;
1639
+ consume(G);
1640
+ continue;
1641
+ }
1642
+ let e4 = remaining();
1643
+ if (u3.noextglob !== true && /^\([^?]/.test(e4)) {
1644
+ extglobOpen("star", G);
1645
+ continue;
1646
+ }
1647
+ if (B.type === "star") {
1648
+ if (u3.noglobstar === true) {
1649
+ consume(G);
1650
+ continue;
1651
+ }
1652
+ const n3 = B.prev;
1653
+ const o2 = n3.prev;
1654
+ const s2 = n3.type === "slash" || n3.type === "bos";
1655
+ const r2 = o2 && (o2.type === "star" || o2.type === "globstar");
1656
+ if (u3.bash === true && (!s2 || e4[0] && e4[0] !== "/")) {
1657
+ push({ type: "star", value: G, output: "" });
1658
+ continue;
1659
+ }
1660
+ const a2 = m.braces > 0 && (n3.type === "comma" || n3.type === "brace");
1661
+ const i2 = w.length && (n3.type === "pipe" || n3.type === "paren");
1662
+ if (!s2 && n3.type !== "paren" && !a2 && !i2) {
1663
+ push({ type: "star", value: G, output: "" });
1664
+ continue;
1665
+ }
1666
+ while (e4.slice(0, 3) === "/**") {
1667
+ const u4 = t3[m.index + 4];
1668
+ if (u4 && u4 !== "/") {
1669
+ break;
1670
+ }
1671
+ e4 = e4.slice(3);
1672
+ consume("/**", 3);
1673
+ }
1674
+ if (n3.type === "bos" && eos()) {
1675
+ B.type = "globstar";
1676
+ B.value += G;
1677
+ B.output = globstar(u3);
1678
+ m.output = B.output;
1679
+ m.globstar = true;
1680
+ consume(G);
1681
+ continue;
1682
+ }
1683
+ if (n3.type === "slash" && n3.prev.type !== "bos" && !r2 && eos()) {
1684
+ m.output = m.output.slice(0, -(n3.output + B.output).length);
1685
+ n3.output = `(?:${n3.output}`;
1686
+ B.type = "globstar";
1687
+ B.output = globstar(u3) + (u3.strictSlashes ? ")" : "|$)");
1688
+ B.value += G;
1689
+ m.globstar = true;
1690
+ m.output += n3.output + B.output;
1691
+ consume(G);
1692
+ continue;
1693
+ }
1694
+ if (n3.type === "slash" && n3.prev.type !== "bos" && e4[0] === "/") {
1695
+ const t4 = e4[1] !== void 0 ? "|$" : "";
1696
+ m.output = m.output.slice(0, -(n3.output + B.output).length);
1697
+ n3.output = `(?:${n3.output}`;
1698
+ B.type = "globstar";
1699
+ B.output = `${globstar(u3)}${b}|${b}${t4})`;
1700
+ B.value += G;
1701
+ m.output += n3.output + B.output;
1702
+ m.globstar = true;
1703
+ consume(G + M());
1704
+ push({ type: "slash", value: "/", output: "" });
1705
+ continue;
1706
+ }
1707
+ if (n3.type === "bos" && e4[0] === "/") {
1708
+ B.type = "globstar";
1709
+ B.value += G;
1710
+ B.output = `(?:^|${b}|${globstar(u3)}${b})`;
1711
+ m.output = B.output;
1712
+ m.globstar = true;
1713
+ consume(G + M());
1714
+ push({ type: "slash", value: "/", output: "" });
1715
+ continue;
1716
+ }
1717
+ m.output = m.output.slice(0, -B.output.length);
1718
+ B.type = "globstar";
1719
+ B.output = globstar(u3);
1720
+ B.value += G;
1721
+ m.output += B.output;
1722
+ m.globstar = true;
1723
+ consume(G);
1724
+ continue;
1725
+ }
1726
+ const n2 = { type: "star", value: G, output: k };
1727
+ if (u3.bash === true) {
1728
+ n2.output = ".*?";
1729
+ if (B.type === "bos" || B.type === "slash") {
1730
+ n2.output = T + n2.output;
1731
+ }
1732
+ push(n2);
1733
+ continue;
1734
+ }
1735
+ if (B && (B.type === "bracket" || B.type === "paren") && u3.regex === true) {
1736
+ n2.output = G;
1737
+ push(n2);
1738
+ continue;
1739
+ }
1740
+ if (m.index === m.start || B.type === "slash" || B.type === "dot") {
1741
+ if (B.type === "dot") {
1742
+ m.output += x;
1743
+ B.output += x;
1744
+ } else if (u3.dot === true) {
1745
+ m.output += S;
1746
+ B.output += S;
1747
+ } else {
1748
+ m.output += T;
1749
+ B.output += T;
1750
+ }
1751
+ if (D() !== "*") {
1752
+ m.output += C;
1753
+ B.output += C;
1754
+ }
1755
+ }
1756
+ push(n2);
1757
+ }
1758
+ while (m.brackets > 0) {
1759
+ if (u3.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "]"));
1760
+ m.output = o.escapeLast(m.output, "[");
1761
+ decrement("brackets");
1762
+ }
1763
+ while (m.parens > 0) {
1764
+ if (u3.strictBrackets === true) throw new SyntaxError(syntaxError("closing", ")"));
1765
+ m.output = o.escapeLast(m.output, "(");
1766
+ decrement("parens");
1767
+ }
1768
+ while (m.braces > 0) {
1769
+ if (u3.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "}"));
1770
+ m.output = o.escapeLast(m.output, "{");
1771
+ decrement("braces");
1772
+ }
1773
+ if (u3.strictSlashes !== true && (B.type === "star" || B.type === "bracket")) {
1774
+ push({ type: "maybe_slash", value: "", output: `${b}?` });
1775
+ }
1776
+ if (m.backtrack === true) {
1777
+ m.output = "";
1778
+ for (const t4 of m.tokens) {
1779
+ m.output += t4.output != null ? t4.output : t4.value;
1780
+ if (t4.suffix) {
1781
+ m.output += t4.suffix;
1782
+ }
1783
+ }
1784
+ }
1785
+ return m;
1786
+ };
1787
+ parse.fastpaths = (t3, e3) => {
1788
+ const u3 = { ...e3 };
1789
+ const r2 = typeof u3.maxLength === "number" ? Math.min(s, u3.maxLength) : s;
1790
+ const a2 = t3.length;
1791
+ if (a2 > r2) {
1792
+ throw new SyntaxError(`Input length: ${a2}, exceeds maximum allowed length: ${r2}`);
1793
+ }
1794
+ t3 = c[t3] || t3;
1795
+ const { DOT_LITERAL: i2, SLASH_LITERAL: p, ONE_CHAR: l, DOTS_SLASH: f, NO_DOT: A, NO_DOTS: _, NO_DOTS_SLASH: R, STAR: E, START_ANCHOR: h } = n.globChars(u3.windows);
1796
+ const g = u3.dot ? _ : A;
1797
+ const b = u3.dot ? R : A;
1798
+ const C = u3.capture ? "" : "?:";
1799
+ const y = { negated: false, prefix: "" };
1800
+ let $ = u3.bash === true ? ".*?" : E;
1801
+ if (u3.capture) {
1802
+ $ = `(${$})`;
1803
+ }
1804
+ const globstar = (t4) => {
1805
+ if (t4.noglobstar === true) return $;
1806
+ return `(${C}(?:(?!${h}${t4.dot ? f : i2}).)*?)`;
1807
+ };
1808
+ const create = (t4) => {
1809
+ switch (t4) {
1810
+ case "*":
1811
+ return `${g}${l}${$}`;
1812
+ case ".*":
1813
+ return `${i2}${l}${$}`;
1814
+ case "*.*":
1815
+ return `${g}${$}${i2}${l}${$}`;
1816
+ case "*/*":
1817
+ return `${g}${$}${p}${l}${b}${$}`;
1818
+ case "**":
1819
+ return g + globstar(u3);
1820
+ case "**/*":
1821
+ return `(?:${g}${globstar(u3)}${p})?${b}${l}${$}`;
1822
+ case "**/*.*":
1823
+ return `(?:${g}${globstar(u3)}${p})?${b}${$}${i2}${l}${$}`;
1824
+ case "**/.*":
1825
+ return `(?:${g}${globstar(u3)}${p})?${i2}${l}${$}`;
1826
+ default: {
1827
+ const e4 = /^(.*?)\.(\w+)$/.exec(t4);
1828
+ if (!e4) return;
1829
+ const u4 = create(e4[1]);
1830
+ if (!u4) return;
1831
+ return u4 + i2 + e4[2];
1832
+ }
1833
+ }
1834
+ };
1835
+ const x = o.removePrefix(t3, y);
1836
+ let S = create(x);
1837
+ if (S && u3.strictSlashes !== true) {
1838
+ S += `${p}?`;
1839
+ }
1840
+ return S;
1841
+ };
1842
+ t2.exports = parse;
1843
+ }, 510: (t2, e2, u2) => {
1844
+ const n = u2(716);
1845
+ const o = u2(697);
1846
+ const s = u2(96);
1847
+ const r = u2(154);
1848
+ const isObject = (t3) => t3 && typeof t3 === "object" && !Array.isArray(t3);
1849
+ const picomatch = (t3, e3, u3 = false) => {
1850
+ if (Array.isArray(t3)) {
1851
+ const n3 = t3.map((t4) => picomatch(t4, e3, u3));
1852
+ const arrayMatcher = (t4) => {
1853
+ for (const e4 of n3) {
1854
+ const u4 = e4(t4);
1855
+ if (u4) return u4;
1856
+ }
1857
+ return false;
1858
+ };
1859
+ return arrayMatcher;
1860
+ }
1861
+ const n2 = isObject(t3) && t3.tokens && t3.input;
1862
+ if (t3 === "" || typeof t3 !== "string" && !n2) {
1863
+ throw new TypeError("Expected pattern to be a non-empty string");
1864
+ }
1865
+ const o2 = e3 || {};
1866
+ const s2 = o2.windows;
1867
+ const r2 = n2 ? picomatch.compileRe(t3, e3) : picomatch.makeRe(t3, e3, false, true);
1868
+ const a = r2.state;
1869
+ delete r2.state;
1870
+ let isIgnored = () => false;
1871
+ if (o2.ignore) {
1872
+ const t4 = { ...e3, ignore: null, onMatch: null, onResult: null };
1873
+ isIgnored = picomatch(o2.ignore, t4, u3);
1874
+ }
1875
+ const matcher = (u4, n3 = false) => {
1876
+ const { isMatch: i, match: c, output: p } = picomatch.test(u4, r2, e3, { glob: t3, posix: s2 });
1877
+ const l = { glob: t3, state: a, regex: r2, posix: s2, input: u4, output: p, match: c, isMatch: i };
1878
+ if (typeof o2.onResult === "function") {
1879
+ o2.onResult(l);
1880
+ }
1881
+ if (i === false) {
1882
+ l.isMatch = false;
1883
+ return n3 ? l : false;
1884
+ }
1885
+ if (isIgnored(u4)) {
1886
+ if (typeof o2.onIgnore === "function") {
1887
+ o2.onIgnore(l);
1888
+ }
1889
+ l.isMatch = false;
1890
+ return n3 ? l : false;
1891
+ }
1892
+ if (typeof o2.onMatch === "function") {
1893
+ o2.onMatch(l);
1894
+ }
1895
+ return n3 ? l : true;
1896
+ };
1897
+ if (u3) {
1898
+ matcher.state = a;
1899
+ }
1900
+ return matcher;
1901
+ };
1902
+ picomatch.test = (t3, e3, u3, { glob: n2, posix: o2 } = {}) => {
1903
+ if (typeof t3 !== "string") {
1904
+ throw new TypeError("Expected input to be a string");
1905
+ }
1906
+ if (t3 === "") {
1907
+ return { isMatch: false, output: "" };
1908
+ }
1909
+ const r2 = u3 || {};
1910
+ const a = r2.format || (o2 ? s.toPosixSlashes : null);
1911
+ let i = t3 === n2;
1912
+ let c = i && a ? a(t3) : t3;
1913
+ if (i === false) {
1914
+ c = a ? a(t3) : t3;
1915
+ i = c === n2;
1916
+ }
1917
+ if (i === false || r2.capture === true) {
1918
+ if (r2.matchBase === true || r2.basename === true) {
1919
+ i = picomatch.matchBase(t3, e3, u3, o2);
1920
+ } else {
1921
+ i = e3.exec(c);
1922
+ }
1923
+ }
1924
+ return { isMatch: Boolean(i), match: i, output: c };
1925
+ };
1926
+ picomatch.matchBase = (t3, e3, u3) => {
1927
+ const n2 = e3 instanceof RegExp ? e3 : picomatch.makeRe(e3, u3);
1928
+ return n2.test(s.basename(t3));
1929
+ };
1930
+ picomatch.isMatch = (t3, e3, u3) => picomatch(e3, u3)(t3);
1931
+ picomatch.parse = (t3, e3) => {
1932
+ if (Array.isArray(t3)) return t3.map((t4) => picomatch.parse(t4, e3));
1933
+ return o(t3, { ...e3, fastpaths: false });
1934
+ };
1935
+ picomatch.scan = (t3, e3) => n(t3, e3);
1936
+ picomatch.compileRe = (t3, e3, u3 = false, n2 = false) => {
1937
+ if (u3 === true) {
1938
+ return t3.output;
1939
+ }
1940
+ const o2 = e3 || {};
1941
+ const s2 = o2.contains ? "" : "^";
1942
+ const r2 = o2.contains ? "" : "$";
1943
+ let a = `${s2}(?:${t3.output})${r2}`;
1944
+ if (t3 && t3.negated === true) {
1945
+ a = `^(?!${a}).*$`;
1946
+ }
1947
+ const i = picomatch.toRegex(a, e3);
1948
+ if (n2 === true) {
1949
+ i.state = t3;
1950
+ }
1951
+ return i;
1952
+ };
1953
+ picomatch.makeRe = (t3, e3 = {}, u3 = false, n2 = false) => {
1954
+ if (!t3 || typeof t3 !== "string") {
1955
+ throw new TypeError("Expected a non-empty string");
1956
+ }
1957
+ let s2 = { negated: false, fastpaths: true };
1958
+ if (e3.fastpaths !== false && (t3[0] === "." || t3[0] === "*")) {
1959
+ s2.output = o.fastpaths(t3, e3);
1960
+ }
1961
+ if (!s2.output) {
1962
+ s2 = o(t3, e3);
1963
+ }
1964
+ return picomatch.compileRe(s2, e3, u3, n2);
1965
+ };
1966
+ picomatch.toRegex = (t3, e3) => {
1967
+ try {
1968
+ const u3 = e3 || {};
1969
+ return new RegExp(t3, u3.flags || (u3.nocase ? "i" : ""));
1970
+ } catch (t4) {
1971
+ if (e3 && e3.debug === true) throw t4;
1972
+ return /$^/;
1973
+ }
1974
+ };
1975
+ picomatch.constants = r;
1976
+ t2.exports = picomatch;
1977
+ }, 716: (t2, e2, u2) => {
1978
+ const n = u2(96);
1979
+ const { CHAR_ASTERISK: o, CHAR_AT: s, CHAR_BACKWARD_SLASH: r, CHAR_COMMA: a, CHAR_DOT: i, CHAR_EXCLAMATION_MARK: c, CHAR_FORWARD_SLASH: p, CHAR_LEFT_CURLY_BRACE: l, CHAR_LEFT_PARENTHESES: f, CHAR_LEFT_SQUARE_BRACKET: A, CHAR_PLUS: _, CHAR_QUESTION_MARK: R, CHAR_RIGHT_CURLY_BRACE: E, CHAR_RIGHT_PARENTHESES: h, CHAR_RIGHT_SQUARE_BRACKET: g } = u2(154);
1980
+ const isPathSeparator = (t3) => t3 === p || t3 === r;
1981
+ const depth = (t3) => {
1982
+ if (t3.isPrefix !== true) {
1983
+ t3.depth = t3.isGlobstar ? Infinity : 1;
1984
+ }
1985
+ };
1986
+ const scan = (t3, e3) => {
1987
+ const u3 = e3 || {};
1988
+ const b = t3.length - 1;
1989
+ const C = u3.parts === true || u3.scanToEnd === true;
1990
+ const y = [];
1991
+ const $ = [];
1992
+ const x = [];
1993
+ let S = t3;
1994
+ let H = -1;
1995
+ let v = 0;
1996
+ let d = 0;
1997
+ let L = false;
1998
+ let T = false;
1999
+ let O = false;
2000
+ let k = false;
2001
+ let m = false;
2002
+ let w = false;
2003
+ let N = false;
2004
+ let I = false;
2005
+ let B = false;
2006
+ let G = false;
2007
+ let D = 0;
2008
+ let M;
2009
+ let P;
2010
+ let K = { value: "", depth: 0, isGlob: false };
2011
+ const eos = () => H >= b;
2012
+ const peek = () => S.charCodeAt(H + 1);
2013
+ const advance = () => {
2014
+ M = P;
2015
+ return S.charCodeAt(++H);
2016
+ };
2017
+ while (H < b) {
2018
+ P = advance();
2019
+ let t4;
2020
+ if (P === r) {
2021
+ N = K.backslashes = true;
2022
+ P = advance();
2023
+ if (P === l) {
2024
+ w = true;
2025
+ }
2026
+ continue;
2027
+ }
2028
+ if (w === true || P === l) {
2029
+ D++;
2030
+ while (eos() !== true && (P = advance())) {
2031
+ if (P === r) {
2032
+ N = K.backslashes = true;
2033
+ advance();
2034
+ continue;
2035
+ }
2036
+ if (P === l) {
2037
+ D++;
2038
+ continue;
2039
+ }
2040
+ if (w !== true && P === i && (P = advance()) === i) {
2041
+ L = K.isBrace = true;
2042
+ O = K.isGlob = true;
2043
+ G = true;
2044
+ if (C === true) {
2045
+ continue;
2046
+ }
2047
+ break;
2048
+ }
2049
+ if (w !== true && P === a) {
2050
+ L = K.isBrace = true;
2051
+ O = K.isGlob = true;
2052
+ G = true;
2053
+ if (C === true) {
2054
+ continue;
2055
+ }
2056
+ break;
2057
+ }
2058
+ if (P === E) {
2059
+ D--;
2060
+ if (D === 0) {
2061
+ w = false;
2062
+ L = K.isBrace = true;
2063
+ G = true;
2064
+ break;
2065
+ }
2066
+ }
2067
+ }
2068
+ if (C === true) {
2069
+ continue;
2070
+ }
2071
+ break;
2072
+ }
2073
+ if (P === p) {
2074
+ y.push(H);
2075
+ $.push(K);
2076
+ K = { value: "", depth: 0, isGlob: false };
2077
+ if (G === true) continue;
2078
+ if (M === i && H === v + 1) {
2079
+ v += 2;
2080
+ continue;
2081
+ }
2082
+ d = H + 1;
2083
+ continue;
2084
+ }
2085
+ if (u3.noext !== true) {
2086
+ const t5 = P === _ || P === s || P === o || P === R || P === c;
2087
+ if (t5 === true && peek() === f) {
2088
+ O = K.isGlob = true;
2089
+ k = K.isExtglob = true;
2090
+ G = true;
2091
+ if (P === c && H === v) {
2092
+ B = true;
2093
+ }
2094
+ if (C === true) {
2095
+ while (eos() !== true && (P = advance())) {
2096
+ if (P === r) {
2097
+ N = K.backslashes = true;
2098
+ P = advance();
2099
+ continue;
2100
+ }
2101
+ if (P === h) {
2102
+ O = K.isGlob = true;
2103
+ G = true;
2104
+ break;
2105
+ }
2106
+ }
2107
+ continue;
2108
+ }
2109
+ break;
2110
+ }
2111
+ }
2112
+ if (P === o) {
2113
+ if (M === o) m = K.isGlobstar = true;
2114
+ O = K.isGlob = true;
2115
+ G = true;
2116
+ if (C === true) {
2117
+ continue;
2118
+ }
2119
+ break;
2120
+ }
2121
+ if (P === R) {
2122
+ O = K.isGlob = true;
2123
+ G = true;
2124
+ if (C === true) {
2125
+ continue;
2126
+ }
2127
+ break;
2128
+ }
2129
+ if (P === A) {
2130
+ while (eos() !== true && (t4 = advance())) {
2131
+ if (t4 === r) {
2132
+ N = K.backslashes = true;
2133
+ advance();
2134
+ continue;
2135
+ }
2136
+ if (t4 === g) {
2137
+ T = K.isBracket = true;
2138
+ O = K.isGlob = true;
2139
+ G = true;
2140
+ break;
2141
+ }
2142
+ }
2143
+ if (C === true) {
2144
+ continue;
2145
+ }
2146
+ break;
2147
+ }
2148
+ if (u3.nonegate !== true && P === c && H === v) {
2149
+ I = K.negated = true;
2150
+ v++;
2151
+ continue;
2152
+ }
2153
+ if (u3.noparen !== true && P === f) {
2154
+ O = K.isGlob = true;
2155
+ if (C === true) {
2156
+ while (eos() !== true && (P = advance())) {
2157
+ if (P === f) {
2158
+ N = K.backslashes = true;
2159
+ P = advance();
2160
+ continue;
2161
+ }
2162
+ if (P === h) {
2163
+ G = true;
2164
+ break;
2165
+ }
2166
+ }
2167
+ continue;
2168
+ }
2169
+ break;
2170
+ }
2171
+ if (O === true) {
2172
+ G = true;
2173
+ if (C === true) {
2174
+ continue;
2175
+ }
2176
+ break;
2177
+ }
2178
+ }
2179
+ if (u3.noext === true) {
2180
+ k = false;
2181
+ O = false;
2182
+ }
2183
+ let U = S;
2184
+ let X2 = "";
2185
+ let F = "";
2186
+ if (v > 0) {
2187
+ X2 = S.slice(0, v);
2188
+ S = S.slice(v);
2189
+ d -= v;
2190
+ }
2191
+ if (U && O === true && d > 0) {
2192
+ U = S.slice(0, d);
2193
+ F = S.slice(d);
2194
+ } else if (O === true) {
2195
+ U = "";
2196
+ F = S;
2197
+ } else {
2198
+ U = S;
2199
+ }
2200
+ if (U && U !== "" && U !== "/" && U !== S) {
2201
+ if (isPathSeparator(U.charCodeAt(U.length - 1))) {
2202
+ U = U.slice(0, -1);
2203
+ }
2204
+ }
2205
+ if (u3.unescape === true) {
2206
+ if (F) F = n.removeBackslashes(F);
2207
+ if (U && N === true) {
2208
+ U = n.removeBackslashes(U);
2209
+ }
2210
+ }
2211
+ const Q = { prefix: X2, input: t3, start: v, base: U, glob: F, isBrace: L, isBracket: T, isGlob: O, isExtglob: k, isGlobstar: m, negated: I, negatedExtglob: B };
2212
+ if (u3.tokens === true) {
2213
+ Q.maxDepth = 0;
2214
+ if (!isPathSeparator(P)) {
2215
+ $.push(K);
2216
+ }
2217
+ Q.tokens = $;
2218
+ }
2219
+ if (u3.parts === true || u3.tokens === true) {
2220
+ let e4;
2221
+ for (let n2 = 0; n2 < y.length; n2++) {
2222
+ const o2 = e4 ? e4 + 1 : v;
2223
+ const s2 = y[n2];
2224
+ const r2 = t3.slice(o2, s2);
2225
+ if (u3.tokens) {
2226
+ if (n2 === 0 && v !== 0) {
2227
+ $[n2].isPrefix = true;
2228
+ $[n2].value = X2;
2229
+ } else {
2230
+ $[n2].value = r2;
2231
+ }
2232
+ depth($[n2]);
2233
+ Q.maxDepth += $[n2].depth;
2234
+ }
2235
+ if (n2 !== 0 || r2 !== "") {
2236
+ x.push(r2);
2237
+ }
2238
+ e4 = s2;
2239
+ }
2240
+ if (e4 && e4 + 1 < t3.length) {
2241
+ const n2 = t3.slice(e4 + 1);
2242
+ x.push(n2);
2243
+ if (u3.tokens) {
2244
+ $[$.length - 1].value = n2;
2245
+ depth($[$.length - 1]);
2246
+ Q.maxDepth += $[$.length - 1].depth;
2247
+ }
2248
+ }
2249
+ Q.slashes = y;
2250
+ Q.parts = x;
2251
+ }
2252
+ return Q;
2253
+ };
2254
+ t2.exports = scan;
2255
+ }, 96: (t2, e2, u2) => {
2256
+ const { REGEX_BACKSLASH: n, REGEX_REMOVE_BACKSLASH: o, REGEX_SPECIAL_CHARS: s, REGEX_SPECIAL_CHARS_GLOBAL: r } = u2(154);
2257
+ e2.isObject = (t3) => t3 !== null && typeof t3 === "object" && !Array.isArray(t3);
2258
+ e2.hasRegexChars = (t3) => s.test(t3);
2259
+ e2.isRegexChar = (t3) => t3.length === 1 && e2.hasRegexChars(t3);
2260
+ e2.escapeRegex = (t3) => t3.replace(r, "\\$1");
2261
+ e2.toPosixSlashes = (t3) => t3.replace(n, "/");
2262
+ e2.removeBackslashes = (t3) => t3.replace(o, (t4) => t4 === "\\" ? "" : t4);
2263
+ e2.escapeLast = (t3, u3, n2) => {
2264
+ const o2 = t3.lastIndexOf(u3, n2);
2265
+ if (o2 === -1) return t3;
2266
+ if (t3[o2 - 1] === "\\") return e2.escapeLast(t3, u3, o2 - 1);
2267
+ return `${t3.slice(0, o2)}\\${t3.slice(o2)}`;
2268
+ };
2269
+ e2.removePrefix = (t3, e3 = {}) => {
2270
+ let u3 = t3;
2271
+ if (u3.startsWith("./")) {
2272
+ u3 = u3.slice(2);
2273
+ e3.prefix = "./";
2274
+ }
2275
+ return u3;
2276
+ };
2277
+ e2.wrapOutput = (t3, e3 = {}, u3 = {}) => {
2278
+ const n2 = u3.contains ? "" : "^";
2279
+ const o2 = u3.contains ? "" : "$";
2280
+ let s2 = `${n2}(?:${t3})${o2}`;
2281
+ if (e3.negated === true) {
2282
+ s2 = `(?:^(?!${s2}).*$)`;
2283
+ }
2284
+ return s2;
2285
+ };
2286
+ e2.basename = (t3, { windows: e3 } = {}) => {
2287
+ const u3 = t3.split(e3 ? /[\\/]/ : "/");
2288
+ const n2 = u3[u3.length - 1];
2289
+ if (n2 === "") {
2290
+ return u3[u3.length - 2];
2291
+ }
2292
+ return n2;
2293
+ };
2294
+ } };
2295
+ var e = {};
2296
+ function __nccwpck_require__(u2) {
2297
+ var n = e[u2];
2298
+ if (n !== void 0) {
2299
+ return n.exports;
2300
+ }
2301
+ var o = e[u2] = { exports: {} };
2302
+ var s = true;
2303
+ try {
2304
+ t[u2](o, o.exports, __nccwpck_require__);
2305
+ s = false;
2306
+ } finally {
2307
+ if (s) delete e[u2];
2308
+ }
2309
+ return o.exports;
2310
+ }
2311
+ if (typeof __nccwpck_require__ !== "undefined") __nccwpck_require__.ab = __dirname + "/";
2312
+ var u = __nccwpck_require__(170);
2313
+ module.exports = u;
2314
+ })();
2315
+ }
2316
+ });
2317
+
2318
+ // node_modules/next/dist/shared/lib/match-local-pattern.js
2319
+ var require_match_local_pattern = __commonJS({
2320
+ "node_modules/next/dist/shared/lib/match-local-pattern.js"(exports) {
2321
+ "use strict";
2322
+ Object.defineProperty(exports, "__esModule", {
2323
+ value: true
2324
+ });
2325
+ function _export(target, all) {
2326
+ for (var name in all) Object.defineProperty(target, name, {
2327
+ enumerable: true,
2328
+ get: all[name]
2329
+ });
2330
+ }
2331
+ _export(exports, {
2332
+ hasLocalMatch: function() {
2333
+ return hasLocalMatch;
2334
+ },
2335
+ matchLocalPattern: function() {
2336
+ return matchLocalPattern;
2337
+ }
2338
+ });
2339
+ var _picomatch = require_picomatch();
2340
+ function matchLocalPattern(pattern, url) {
2341
+ if (pattern.search !== void 0) {
2342
+ if (pattern.search !== url.search) {
2343
+ return false;
2344
+ }
2345
+ }
2346
+ var _pattern_pathname;
2347
+ if (!(0, _picomatch.makeRe)((_pattern_pathname = pattern.pathname) != null ? _pattern_pathname : "**", {
2348
+ dot: true
2349
+ }).test(url.pathname)) {
2350
+ return false;
2351
+ }
2352
+ return true;
2353
+ }
2354
+ function hasLocalMatch(localPatterns, urlPathAndQuery) {
2355
+ if (!localPatterns) {
2356
+ return true;
2357
+ }
2358
+ const url = new URL(urlPathAndQuery, "http://n");
2359
+ return localPatterns.some((p) => matchLocalPattern(p, url));
2360
+ }
2361
+ }
2362
+ });
2363
+
2364
+ // node_modules/next/dist/shared/lib/match-remote-pattern.js
2365
+ var require_match_remote_pattern = __commonJS({
2366
+ "node_modules/next/dist/shared/lib/match-remote-pattern.js"(exports) {
2367
+ "use strict";
2368
+ Object.defineProperty(exports, "__esModule", {
2369
+ value: true
2370
+ });
2371
+ function _export(target, all) {
2372
+ for (var name in all) Object.defineProperty(target, name, {
2373
+ enumerable: true,
2374
+ get: all[name]
2375
+ });
2376
+ }
2377
+ _export(exports, {
2378
+ hasRemoteMatch: function() {
2379
+ return hasRemoteMatch;
2380
+ },
2381
+ matchRemotePattern: function() {
2382
+ return matchRemotePattern;
2383
+ }
2384
+ });
2385
+ var _picomatch = require_picomatch();
2386
+ function matchRemotePattern(pattern, url) {
2387
+ if (pattern.protocol !== void 0) {
2388
+ if (pattern.protocol.replace(/:$/, "") !== url.protocol.replace(/:$/, "")) {
2389
+ return false;
2390
+ }
2391
+ }
2392
+ if (pattern.port !== void 0) {
2393
+ if (pattern.port !== url.port) {
2394
+ return false;
2395
+ }
2396
+ }
2397
+ if (pattern.hostname === void 0) {
2398
+ throw Object.defineProperty(new Error("Pattern should define hostname but found\n" + JSON.stringify(pattern)), "__NEXT_ERROR_CODE", {
2399
+ value: "E410",
2400
+ enumerable: false,
2401
+ configurable: true
2402
+ });
2403
+ } else {
2404
+ if (!(0, _picomatch.makeRe)(pattern.hostname).test(url.hostname)) {
2405
+ return false;
2406
+ }
2407
+ }
2408
+ if (pattern.search !== void 0) {
2409
+ if (pattern.search !== url.search) {
2410
+ return false;
2411
+ }
2412
+ }
2413
+ var _pattern_pathname;
2414
+ if (!(0, _picomatch.makeRe)((_pattern_pathname = pattern.pathname) != null ? _pattern_pathname : "**", {
2415
+ dot: true
2416
+ }).test(url.pathname)) {
2417
+ return false;
2418
+ }
2419
+ return true;
2420
+ }
2421
+ function hasRemoteMatch(domains, remotePatterns, url) {
2422
+ return domains.some((domain) => url.hostname === domain) || remotePatterns.some((p) => matchRemotePattern(p, url));
2423
+ }
2424
+ }
2425
+ });
2426
+
2427
+ // node_modules/next/dist/shared/lib/image-loader.js
2428
+ var require_image_loader = __commonJS({
2429
+ "node_modules/next/dist/shared/lib/image-loader.js"(exports) {
2430
+ "use strict";
2431
+ Object.defineProperty(exports, "__esModule", {
2432
+ value: true
2433
+ });
2434
+ Object.defineProperty(exports, "default", {
2435
+ enumerable: true,
2436
+ get: function() {
2437
+ return _default;
2438
+ }
2439
+ });
2440
+ var DEFAULT_Q = 75;
2441
+ function defaultLoader(param) {
2442
+ let { config, src, width, quality } = param;
2443
+ var _config_qualities;
2444
+ if (process.env.NODE_ENV !== "production") {
2445
+ const missingValues = [];
2446
+ if (!src) missingValues.push("src");
2447
+ if (!width) missingValues.push("width");
2448
+ if (missingValues.length > 0) {
2449
+ throw Object.defineProperty(new Error("Next Image Optimization requires " + missingValues.join(", ") + " to be provided. Make sure you pass them as props to the `next/image` component. Received: " + JSON.stringify({
2450
+ src,
2451
+ width,
2452
+ quality
2453
+ })), "__NEXT_ERROR_CODE", {
2454
+ value: "E188",
2455
+ enumerable: false,
2456
+ configurable: true
2457
+ });
2458
+ }
2459
+ if (src.startsWith("//")) {
2460
+ throw Object.defineProperty(new Error('Failed to parse src "' + src + '" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)'), "__NEXT_ERROR_CODE", {
2461
+ value: "E360",
2462
+ enumerable: false,
2463
+ configurable: true
2464
+ });
2465
+ }
2466
+ if (src.startsWith("/") && config.localPatterns) {
2467
+ if (process.env.NODE_ENV !== "test" && // micromatch isn't compatible with edge runtime
2468
+ process.env.NEXT_RUNTIME !== "edge") {
2469
+ const { hasLocalMatch } = require_match_local_pattern();
2470
+ if (!hasLocalMatch(config.localPatterns, src)) {
2471
+ throw Object.defineProperty(new Error("Invalid src prop (" + src + ") on `next/image` does not match `images.localPatterns` configured in your `next.config.js`\nSee more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns"), "__NEXT_ERROR_CODE", {
2472
+ value: "E426",
2473
+ enumerable: false,
2474
+ configurable: true
2475
+ });
2476
+ }
2477
+ }
2478
+ }
2479
+ if (!src.startsWith("/") && (config.domains || config.remotePatterns)) {
2480
+ let parsedSrc;
2481
+ try {
2482
+ parsedSrc = new URL(src);
2483
+ } catch (err) {
2484
+ console.error(err);
2485
+ throw Object.defineProperty(new Error('Failed to parse src "' + src + '" on `next/image`, if using relative image it must start with a leading slash "/" or be an absolute URL (http:// or https://)'), "__NEXT_ERROR_CODE", {
2486
+ value: "E63",
2487
+ enumerable: false,
2488
+ configurable: true
2489
+ });
2490
+ }
2491
+ if (process.env.NODE_ENV !== "test" && // micromatch isn't compatible with edge runtime
2492
+ process.env.NEXT_RUNTIME !== "edge") {
2493
+ const { hasRemoteMatch } = require_match_remote_pattern();
2494
+ if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {
2495
+ throw Object.defineProperty(new Error("Invalid src prop (" + src + ') on `next/image`, hostname "' + parsedSrc.hostname + '" is not configured under images in your `next.config.js`\nSee more info: https://nextjs.org/docs/messages/next-image-unconfigured-host'), "__NEXT_ERROR_CODE", {
2496
+ value: "E231",
2497
+ enumerable: false,
2498
+ configurable: true
2499
+ });
2500
+ }
2501
+ }
2502
+ }
2503
+ if (quality && config.qualities && !config.qualities.includes(quality)) {
2504
+ throw Object.defineProperty(new Error("Invalid quality prop (" + quality + ") on `next/image` does not match `images.qualities` configured in your `next.config.js`\nSee more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities"), "__NEXT_ERROR_CODE", {
2505
+ value: "E623",
2506
+ enumerable: false,
2507
+ configurable: true
2508
+ });
2509
+ }
2510
+ }
2511
+ const q = quality || ((_config_qualities = config.qualities) == null ? void 0 : _config_qualities.reduce((prev, cur) => Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev)) || DEFAULT_Q;
2512
+ return config.path + "?url=" + encodeURIComponent(src) + "&w=" + width + "&q=" + q + (src.startsWith("/_next/static/media/") && process.env.NEXT_DEPLOYMENT_ID ? "&dpl=" + process.env.NEXT_DEPLOYMENT_ID : "");
2513
+ }
2514
+ defaultLoader.__next_img_default = true;
2515
+ var _default = defaultLoader;
2516
+ }
2517
+ });
2518
+
2519
+ // node_modules/next/dist/client/use-merged-ref.js
2520
+ var require_use_merged_ref = __commonJS({
2521
+ "node_modules/next/dist/client/use-merged-ref.js"(exports, module) {
2522
+ "use strict";
2523
+ Object.defineProperty(exports, "__esModule", {
2524
+ value: true
2525
+ });
2526
+ Object.defineProperty(exports, "useMergedRef", {
2527
+ enumerable: true,
2528
+ get: function() {
2529
+ return useMergedRef;
2530
+ }
2531
+ });
2532
+ var _react = __require("react");
2533
+ function useMergedRef(refA, refB) {
2534
+ const cleanupA = (0, _react.useRef)(null);
2535
+ const cleanupB = (0, _react.useRef)(null);
2536
+ return (0, _react.useCallback)((current) => {
2537
+ if (current === null) {
2538
+ const cleanupFnA = cleanupA.current;
2539
+ if (cleanupFnA) {
2540
+ cleanupA.current = null;
2541
+ cleanupFnA();
2542
+ }
2543
+ const cleanupFnB = cleanupB.current;
2544
+ if (cleanupFnB) {
2545
+ cleanupB.current = null;
2546
+ cleanupFnB();
2547
+ }
2548
+ } else {
2549
+ if (refA) {
2550
+ cleanupA.current = applyRef(refA, current);
2551
+ }
2552
+ if (refB) {
2553
+ cleanupB.current = applyRef(refB, current);
2554
+ }
2555
+ }
2556
+ }, [
2557
+ refA,
2558
+ refB
2559
+ ]);
2560
+ }
2561
+ function applyRef(refA, current) {
2562
+ if (typeof refA === "function") {
2563
+ const cleanup = refA(current);
2564
+ if (typeof cleanup === "function") {
2565
+ return cleanup;
2566
+ } else {
2567
+ return () => refA(null);
2568
+ }
2569
+ } else {
2570
+ refA.current = current;
2571
+ return () => {
2572
+ refA.current = null;
2573
+ };
2574
+ }
2575
+ }
2576
+ if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") {
2577
+ Object.defineProperty(exports.default, "__esModule", { value: true });
2578
+ Object.assign(exports.default, exports);
2579
+ module.exports = exports.default;
2580
+ }
2581
+ }
2582
+ });
2583
+
2584
+ // node_modules/next/dist/client/image-component.js
2585
+ var require_image_component = __commonJS({
2586
+ "node_modules/next/dist/client/image-component.js"(exports, module) {
2587
+ "use client";
2588
+ "use strict";
2589
+ Object.defineProperty(exports, "__esModule", {
2590
+ value: true
2591
+ });
2592
+ Object.defineProperty(exports, "Image", {
2593
+ enumerable: true,
2594
+ get: function() {
2595
+ return Image3;
2596
+ }
2597
+ });
2598
+ var _interop_require_default = require_interop_require_default();
2599
+ var _interop_require_wildcard = require_interop_require_wildcard();
2600
+ var _jsxruntime = __require("react/jsx-runtime");
2601
+ var _react = /* @__PURE__ */ _interop_require_wildcard._(__require("react"));
2602
+ var _reactdom = /* @__PURE__ */ _interop_require_default._(__require("react-dom"));
2603
+ var _head = /* @__PURE__ */ _interop_require_default._(require_head());
2604
+ var _getimgprops = require_get_img_props();
2605
+ var _imageconfig = require_image_config();
2606
+ var _imageconfigcontextsharedruntime = require_image_config_context_shared_runtime();
2607
+ var _warnonce = require_warn_once();
2608
+ var _routercontextsharedruntime = require_router_context_shared_runtime();
2609
+ var _imageloader = /* @__PURE__ */ _interop_require_default._(require_image_loader());
2610
+ var _usemergedref = require_use_merged_ref();
2611
+ var configEnv = process.env.__NEXT_IMAGE_OPTS;
2612
+ if (typeof window === "undefined") {
2613
+ ;
2614
+ globalThis.__NEXT_IMAGE_IMPORTED = true;
2615
+ }
2616
+ function handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput) {
2617
+ const src = img == null ? void 0 : img.src;
2618
+ if (!img || img["data-loaded-src"] === src) {
2619
+ return;
2620
+ }
2621
+ img["data-loaded-src"] = src;
2622
+ const p = "decode" in img ? img.decode() : Promise.resolve();
2623
+ p.catch(() => {
2624
+ }).then(() => {
2625
+ if (!img.parentElement || !img.isConnected) {
2626
+ return;
2627
+ }
2628
+ if (placeholder !== "empty") {
2629
+ setBlurComplete(true);
2630
+ }
2631
+ if (onLoadRef == null ? void 0 : onLoadRef.current) {
2632
+ const event = new Event("load");
2633
+ Object.defineProperty(event, "target", {
2634
+ writable: false,
2635
+ value: img
2636
+ });
2637
+ let prevented = false;
2638
+ let stopped = false;
2639
+ onLoadRef.current({
2640
+ ...event,
2641
+ nativeEvent: event,
2642
+ currentTarget: img,
2643
+ target: img,
2644
+ isDefaultPrevented: () => prevented,
2645
+ isPropagationStopped: () => stopped,
2646
+ persist: () => {
2647
+ },
2648
+ preventDefault: () => {
2649
+ prevented = true;
2650
+ event.preventDefault();
2651
+ },
2652
+ stopPropagation: () => {
2653
+ stopped = true;
2654
+ event.stopPropagation();
2655
+ }
2656
+ });
2657
+ }
2658
+ if (onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current) {
2659
+ onLoadingCompleteRef.current(img);
2660
+ }
2661
+ if (process.env.NODE_ENV !== "production") {
2662
+ const origSrc = new URL(src, "http://n").searchParams.get("url") || src;
2663
+ if (img.getAttribute("data-nimg") === "fill") {
2664
+ if (!unoptimized && (!sizesInput || sizesInput === "100vw")) {
2665
+ let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth;
2666
+ if (widthViewportRatio < 0.6) {
2667
+ if (sizesInput === "100vw") {
2668
+ (0, _warnonce.warnOnce)('Image with src "' + origSrc + '" has "fill" prop and "sizes" prop of "100vw", but image is not rendered at full viewport width. Please adjust "sizes" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');
2669
+ } else {
2670
+ (0, _warnonce.warnOnce)('Image with src "' + origSrc + '" has "fill" but is missing "sizes" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');
2671
+ }
2672
+ }
2673
+ }
2674
+ if (img.parentElement) {
2675
+ const { position } = window.getComputedStyle(img.parentElement);
2676
+ const valid = [
2677
+ "absolute",
2678
+ "fixed",
2679
+ "relative"
2680
+ ];
2681
+ if (!valid.includes(position)) {
2682
+ (0, _warnonce.warnOnce)('Image with src "' + origSrc + '" has "fill" and parent element with invalid "position". Provided "' + position + '" should be one of ' + valid.map(String).join(",") + ".");
2683
+ }
2684
+ }
2685
+ if (img.height === 0) {
2686
+ (0, _warnonce.warnOnce)('Image with src "' + origSrc + '" has "fill" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.');
2687
+ }
2688
+ }
2689
+ const heightModified = img.height.toString() !== img.getAttribute("height");
2690
+ const widthModified = img.width.toString() !== img.getAttribute("width");
2691
+ if (heightModified && !widthModified || !heightModified && widthModified) {
2692
+ (0, _warnonce.warnOnce)('Image with src "' + origSrc + `" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles 'width: "auto"' or 'height: "auto"' to maintain the aspect ratio.`);
2693
+ }
2694
+ }
2695
+ });
2696
+ }
2697
+ function getDynamicProps(fetchPriority) {
2698
+ if (Boolean(_react.use)) {
2699
+ return {
2700
+ fetchPriority
2701
+ };
2702
+ }
2703
+ return {
2704
+ fetchpriority: fetchPriority
2705
+ };
2706
+ }
2707
+ var ImageElement = /* @__PURE__ */ (0, _react.forwardRef)((param, forwardedRef) => {
2708
+ let { src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, sizesInput, onLoad, onError, ...rest } = param;
2709
+ const ownRef = (0, _react.useCallback)((img) => {
2710
+ if (!img) {
2711
+ return;
2712
+ }
2713
+ if (onError) {
2714
+ img.src = img.src;
2715
+ }
2716
+ if (process.env.NODE_ENV !== "production") {
2717
+ if (!src) {
2718
+ console.error('Image is missing required "src" property:', img);
2719
+ }
2720
+ if (img.getAttribute("alt") === null) {
2721
+ console.error('Image is missing required "alt" property. Please add Alternative Text to describe the image for screen readers and search engines.');
2722
+ }
2723
+ }
2724
+ if (img.complete) {
2725
+ handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput);
2726
+ }
2727
+ }, [
2728
+ src,
2729
+ placeholder,
2730
+ onLoadRef,
2731
+ onLoadingCompleteRef,
2732
+ setBlurComplete,
2733
+ onError,
2734
+ unoptimized,
2735
+ sizesInput
2736
+ ]);
2737
+ const ref = (0, _usemergedref.useMergedRef)(forwardedRef, ownRef);
2738
+ return /* @__PURE__ */ (0, _jsxruntime.jsx)("img", {
2739
+ ...rest,
2740
+ ...getDynamicProps(fetchPriority),
2741
+ // It's intended to keep `loading` before `src` because React updates
2742
+ // props in order which causes Safari/Firefox to not lazy load properly.
2743
+ // See https://github.com/facebook/react/issues/25883
2744
+ loading,
2745
+ width,
2746
+ height,
2747
+ decoding,
2748
+ "data-nimg": fill ? "fill" : "1",
2749
+ className,
2750
+ style,
2751
+ // It's intended to keep `src` the last attribute because React updates
2752
+ // attributes in order. If we keep `src` the first one, Safari will
2753
+ // immediately start to fetch `src`, before `sizes` and `srcSet` are even
2754
+ // updated by React. That causes multiple unnecessary requests if `srcSet`
2755
+ // and `sizes` are defined.
2756
+ // This bug cannot be reproduced in Chrome or Firefox.
2757
+ sizes,
2758
+ srcSet,
2759
+ src,
2760
+ ref,
2761
+ onLoad: (event) => {
2762
+ const img = event.currentTarget;
2763
+ handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput);
2764
+ },
2765
+ onError: (event) => {
2766
+ setShowAltText(true);
2767
+ if (placeholder !== "empty") {
2768
+ setBlurComplete(true);
2769
+ }
2770
+ if (onError) {
2771
+ onError(event);
2772
+ }
2773
+ }
2774
+ });
2775
+ });
2776
+ function ImagePreload(param) {
2777
+ let { isAppRouter, imgAttributes } = param;
2778
+ const opts = {
2779
+ as: "image",
2780
+ imageSrcSet: imgAttributes.srcSet,
2781
+ imageSizes: imgAttributes.sizes,
2782
+ crossOrigin: imgAttributes.crossOrigin,
2783
+ referrerPolicy: imgAttributes.referrerPolicy,
2784
+ ...getDynamicProps(imgAttributes.fetchPriority)
2785
+ };
2786
+ if (isAppRouter && _reactdom.default.preload) {
2787
+ _reactdom.default.preload(
2788
+ imgAttributes.src,
2789
+ // @ts-expect-error TODO: upgrade to `@types/react-dom@18.3.x`
2790
+ opts
2791
+ );
2792
+ return null;
2793
+ }
2794
+ return /* @__PURE__ */ (0, _jsxruntime.jsx)(_head.default, {
2795
+ children: /* @__PURE__ */ (0, _jsxruntime.jsx)("link", {
2796
+ rel: "preload",
2797
+ // Note how we omit the `href` attribute, as it would only be relevant
2798
+ // for browsers that do not support `imagesrcset`, and in those cases
2799
+ // it would cause the incorrect image to be preloaded.
2800
+ //
2801
+ // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset
2802
+ href: imgAttributes.srcSet ? void 0 : imgAttributes.src,
2803
+ ...opts
2804
+ }, "__nimg-" + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes)
2805
+ });
2806
+ }
2807
+ var Image3 = /* @__PURE__ */ (0, _react.forwardRef)((props, forwardedRef) => {
2808
+ const pagesRouter = (0, _react.useContext)(_routercontextsharedruntime.RouterContext);
2809
+ const isAppRouter = !pagesRouter;
2810
+ const configContext = (0, _react.useContext)(_imageconfigcontextsharedruntime.ImageConfigContext);
2811
+ const config = (0, _react.useMemo)(() => {
2812
+ var _c_qualities;
2813
+ const c = configEnv || configContext || _imageconfig.imageConfigDefault;
2814
+ const allSizes = [
2815
+ ...c.deviceSizes,
2816
+ ...c.imageSizes
2817
+ ].sort((a, b) => a - b);
2818
+ const deviceSizes = c.deviceSizes.sort((a, b) => a - b);
2819
+ const qualities = (_c_qualities = c.qualities) == null ? void 0 : _c_qualities.sort((a, b) => a - b);
2820
+ return {
2821
+ ...c,
2822
+ allSizes,
2823
+ deviceSizes,
2824
+ qualities
2825
+ };
2826
+ }, [
2827
+ configContext
2828
+ ]);
2829
+ const { onLoad, onLoadingComplete } = props;
2830
+ const onLoadRef = (0, _react.useRef)(onLoad);
2831
+ (0, _react.useEffect)(() => {
2832
+ onLoadRef.current = onLoad;
2833
+ }, [
2834
+ onLoad
2835
+ ]);
2836
+ const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete);
2837
+ (0, _react.useEffect)(() => {
2838
+ onLoadingCompleteRef.current = onLoadingComplete;
2839
+ }, [
2840
+ onLoadingComplete
2841
+ ]);
2842
+ const [blurComplete, setBlurComplete] = (0, _react.useState)(false);
2843
+ const [showAltText, setShowAltText] = (0, _react.useState)(false);
2844
+ const { props: imgAttributes, meta: imgMeta } = (0, _getimgprops.getImgProps)(props, {
2845
+ defaultLoader: _imageloader.default,
2846
+ imgConf: config,
2847
+ blurComplete,
2848
+ showAltText
2849
+ });
2850
+ return /* @__PURE__ */ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
2851
+ children: [
2852
+ /* @__PURE__ */ (0, _jsxruntime.jsx)(ImageElement, {
2853
+ ...imgAttributes,
2854
+ unoptimized: imgMeta.unoptimized,
2855
+ placeholder: imgMeta.placeholder,
2856
+ fill: imgMeta.fill,
2857
+ onLoadRef,
2858
+ onLoadingCompleteRef,
2859
+ setBlurComplete,
2860
+ setShowAltText,
2861
+ sizesInput: props.sizes,
2862
+ ref: forwardedRef
2863
+ }),
2864
+ imgMeta.priority ? /* @__PURE__ */ (0, _jsxruntime.jsx)(ImagePreload, {
2865
+ isAppRouter,
2866
+ imgAttributes
2867
+ }) : null
2868
+ ]
2869
+ });
2870
+ });
2871
+ if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") {
2872
+ Object.defineProperty(exports.default, "__esModule", { value: true });
2873
+ Object.assign(exports.default, exports);
2874
+ module.exports = exports.default;
2875
+ }
2876
+ }
2877
+ });
2878
+
2879
+ // node_modules/next/dist/shared/lib/image-external.js
2880
+ var require_image_external = __commonJS({
2881
+ "node_modules/next/dist/shared/lib/image-external.js"(exports) {
2882
+ "use strict";
2883
+ Object.defineProperty(exports, "__esModule", {
2884
+ value: true
2885
+ });
2886
+ function _export(target, all) {
2887
+ for (var name in all) Object.defineProperty(target, name, {
2888
+ enumerable: true,
2889
+ get: all[name]
2890
+ });
44
2891
  }
45
- function _interop_require_wildcard(obj, nodeInterop) {
46
- if (!nodeInterop && obj && obj.__esModule) return obj;
47
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") return { default: obj };
48
- var cache = _getRequireWildcardCache(nodeInterop);
49
- if (cache && cache.has(obj)) return cache.get(obj);
50
- var newObj = { __proto__: null };
51
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
52
- for (var key in obj) {
53
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
54
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
55
- if (desc && (desc.get || desc.set)) Object.defineProperty(newObj, key, desc);
56
- else newObj[key] = obj[key];
2892
+ _export(exports, {
2893
+ default: function() {
2894
+ return _default;
2895
+ },
2896
+ getImageProps: function() {
2897
+ return getImageProps;
2898
+ }
2899
+ });
2900
+ var _interop_require_default = require_interop_require_default();
2901
+ var _getimgprops = require_get_img_props();
2902
+ var _imagecomponent = require_image_component();
2903
+ var _imageloader = /* @__PURE__ */ _interop_require_default._(require_image_loader());
2904
+ function getImageProps(imgProps) {
2905
+ const { props } = (0, _getimgprops.getImgProps)(imgProps, {
2906
+ defaultLoader: _imageloader.default,
2907
+ // This is replaced by webpack define plugin
2908
+ imgConf: process.env.__NEXT_IMAGE_OPTS
2909
+ });
2910
+ for (const [key, value] of Object.entries(props)) {
2911
+ if (value === void 0) {
2912
+ delete props[key];
57
2913
  }
58
2914
  }
59
- newObj.default = obj;
60
- if (cache) cache.set(obj, newObj);
61
- return newObj;
2915
+ return {
2916
+ props
2917
+ };
62
2918
  }
63
- exports._ = _interop_require_wildcard;
2919
+ var _default = _imagecomponent.Image;
2920
+ }
2921
+ });
2922
+
2923
+ // node_modules/next/image.js
2924
+ var require_image = __commonJS({
2925
+ "node_modules/next/image.js"(exports, module) {
2926
+ module.exports = require_image_external();
64
2927
  }
65
2928
  });
66
2929
 
@@ -1951,39 +4814,6 @@ var require_add_locale2 = __commonJS({
1951
4814
  }
1952
4815
  });
1953
4816
 
1954
- // node_modules/@swc/helpers/cjs/_interop_require_default.cjs
1955
- var require_interop_require_default = __commonJS({
1956
- "node_modules/@swc/helpers/cjs/_interop_require_default.cjs"(exports) {
1957
- "use strict";
1958
- function _interop_require_default(obj) {
1959
- return obj && obj.__esModule ? obj : { default: obj };
1960
- }
1961
- exports._ = _interop_require_default;
1962
- }
1963
- });
1964
-
1965
- // node_modules/next/dist/shared/lib/router-context.shared-runtime.js
1966
- var require_router_context_shared_runtime = __commonJS({
1967
- "node_modules/next/dist/shared/lib/router-context.shared-runtime.js"(exports) {
1968
- "use strict";
1969
- Object.defineProperty(exports, "__esModule", {
1970
- value: true
1971
- });
1972
- Object.defineProperty(exports, "RouterContext", {
1973
- enumerable: true,
1974
- get: function() {
1975
- return RouterContext;
1976
- }
1977
- });
1978
- var _interop_require_default = require_interop_require_default();
1979
- var _react = /* @__PURE__ */ _interop_require_default._(__require("react"));
1980
- var RouterContext = _react.default.createContext(null);
1981
- if (process.env.NODE_ENV !== "production") {
1982
- RouterContext.displayName = "RouterContext";
1983
- }
1984
- }
1985
- });
1986
-
1987
4817
  // node_modules/next/dist/client/request-idle-callback.js
1988
4818
  var require_request_idle_callback = __commonJS({
1989
4819
  "node_modules/next/dist/client/request-idle-callback.js"(exports, module) {
@@ -2340,71 +5170,6 @@ var require_add_base_path = __commonJS({
2340
5170
  }
2341
5171
  });
2342
5172
 
2343
- // node_modules/next/dist/client/use-merged-ref.js
2344
- var require_use_merged_ref = __commonJS({
2345
- "node_modules/next/dist/client/use-merged-ref.js"(exports, module) {
2346
- "use strict";
2347
- Object.defineProperty(exports, "__esModule", {
2348
- value: true
2349
- });
2350
- Object.defineProperty(exports, "useMergedRef", {
2351
- enumerable: true,
2352
- get: function() {
2353
- return useMergedRef;
2354
- }
2355
- });
2356
- var _react = __require("react");
2357
- function useMergedRef(refA, refB) {
2358
- const cleanupA = (0, _react.useRef)(null);
2359
- const cleanupB = (0, _react.useRef)(null);
2360
- return (0, _react.useCallback)((current) => {
2361
- if (current === null) {
2362
- const cleanupFnA = cleanupA.current;
2363
- if (cleanupFnA) {
2364
- cleanupA.current = null;
2365
- cleanupFnA();
2366
- }
2367
- const cleanupFnB = cleanupB.current;
2368
- if (cleanupFnB) {
2369
- cleanupB.current = null;
2370
- cleanupFnB();
2371
- }
2372
- } else {
2373
- if (refA) {
2374
- cleanupA.current = applyRef(refA, current);
2375
- }
2376
- if (refB) {
2377
- cleanupB.current = applyRef(refB, current);
2378
- }
2379
- }
2380
- }, [
2381
- refA,
2382
- refB
2383
- ]);
2384
- }
2385
- function applyRef(refA, current) {
2386
- if (typeof refA === "function") {
2387
- const cleanup = refA(current);
2388
- if (typeof cleanup === "function") {
2389
- return cleanup;
2390
- } else {
2391
- return () => refA(null);
2392
- }
2393
- } else {
2394
- refA.current = current;
2395
- return () => {
2396
- refA.current = null;
2397
- };
2398
- }
2399
- }
2400
- if ((typeof exports.default === "function" || typeof exports.default === "object" && exports.default !== null) && typeof exports.default.__esModule === "undefined") {
2401
- Object.defineProperty(exports.default, "__esModule", { value: true });
2402
- Object.assign(exports.default, exports);
2403
- module.exports = exports.default;
2404
- }
2405
- }
2406
- });
2407
-
2408
5173
  // node_modules/next/dist/shared/lib/utils/error-once.js
2409
5174
  var require_error_once = __commonJS({
2410
5175
  "node_modules/next/dist/shared/lib/utils/error-once.js"(exports) {
@@ -2891,14 +5656,16 @@ import { Check } from "lucide-react";
2891
5656
  import { jsx, jsxs } from "react/jsx-runtime";
2892
5657
  var Tile = ({
2893
5658
  title,
5659
+ titleClassName,
2894
5660
  description,
5661
+ descriptionClassName,
2895
5662
  onClick,
2896
5663
  isSelected = false,
2897
5664
  disabled = false,
2898
5665
  prefix,
2899
5666
  suffix,
2900
5667
  normalClassName = "hover:bg-primary/40 cursor-pointer",
2901
- selectedClassName = " bg-primary/20",
5668
+ selectedClassName = "bg-primary/20",
2902
5669
  disabledClassName = "text-disabled-text bg-disabled-background cursor-not-allowed",
2903
5670
  className
2904
5671
  }) => {
@@ -2908,7 +5675,7 @@ var Tile = ({
2908
5675
  className: clsx(
2909
5676
  "flex-row-2 w-full items-center",
2910
5677
  {
2911
- [normalClassName]: !!onClick && !disabled,
5678
+ [normalClassName]: onClick && !disabled,
2912
5679
  [selectedClassName]: isSelected && !disabled,
2913
5680
  [disabledClassName]: disabled
2914
5681
  },
@@ -2918,14 +5685,27 @@ var Tile = ({
2918
5685
  children: [
2919
5686
  prefix,
2920
5687
  /* @__PURE__ */ jsxs("div", { className: "flex-col-0 w-full", children: [
2921
- /* @__PURE__ */ jsx("h4", { className: clsx(title.className ?? "textstyle-title-normal"), children: title.value }),
2922
- !!description && /* @__PURE__ */ jsx("span", { className: clsx(description.className ?? "textstyle-description"), children: description.value })
5688
+ /* @__PURE__ */ jsx("span", { className: clsx(titleClassName ?? "textstyle-title-normal"), children: title }),
5689
+ !!description && /* @__PURE__ */ jsx("span", { className: clsx(descriptionClassName ?? "textstyle-description"), children: description })
2923
5690
  ] }),
2924
5691
  suffix ?? (isSelected ? /* @__PURE__ */ jsx(Check, { size: 24 }) : void 0)
2925
5692
  ]
2926
5693
  }
2927
5694
  );
2928
5695
  };
5696
+ var ListTile = ({
5697
+ ...props
5698
+ }) => {
5699
+ return /* @__PURE__ */ jsx(
5700
+ Tile,
5701
+ {
5702
+ ...props,
5703
+ titleClassName: props.titleClassName ?? "font-semibold",
5704
+ className: clsx("px-2 py-1 rounded-md", props.className),
5705
+ disabledClassName: props.disabledClassName ?? "text-disabled-text cursor-not-allowed"
5706
+ }
5707
+ );
5708
+ };
2929
5709
 
2930
5710
  // src/components/icons-and-geometry/Helpwave.tsx
2931
5711
  import { clsx as clsx2 } from "clsx";
@@ -3011,7 +5791,8 @@ var HelpwaveBadge = ({
3011
5791
  Tile,
3012
5792
  {
3013
5793
  prefix: /* @__PURE__ */ jsx3(Helpwave, { size: iconSize }),
3014
- title: { value: title, className: size === "small" ? "textstyle-title-lg text-base" : "textstyle-title-xl" },
5794
+ title,
5795
+ titleClassName: size === "small" ? "textstyle-title-lg text-base" : "textstyle-title-xl",
3015
5796
  className: clsx3(
3016
5797
  {
3017
5798
  "px-2 py-1 rounded-md": size === "small",
@@ -3067,6 +5848,11 @@ var SessionStorageService = class extends StorageService {
3067
5848
  }
3068
5849
  };
3069
5850
 
5851
+ // src/util/resolveSetState.ts
5852
+ function resolveSetState(action, prev) {
5853
+ return typeof action === "function" ? action(prev) : action;
5854
+ }
5855
+
3070
5856
  // src/hooks/useLocalStorage.ts
3071
5857
  var useLocalStorage = (key, initValue) => {
3072
5858
  const get = useCallback(() => {
@@ -3078,10 +5864,10 @@ var useLocalStorage = (key, initValue) => {
3078
5864
  return value || initValue;
3079
5865
  }, [initValue, key]);
3080
5866
  const [storedValue, setStoredValue] = useState(get);
3081
- const setValue = useCallback((value) => {
3082
- const newValue = value instanceof Function ? value(storedValue) : value;
5867
+ const setValue = useCallback((action) => {
5868
+ const newValue = resolveSetState(action, storedValue);
3083
5869
  const storageService = new LocalStorageService();
3084
- storageService.set(key, value);
5870
+ storageService.set(key, newValue);
3085
5871
  setStoredValue(newValue);
3086
5872
  }, [storedValue, setStoredValue, key]);
3087
5873
  useEffect(() => {
@@ -3517,6 +6303,7 @@ var SolidButton = forwardRef(function SolidButton2({
3517
6303
  onClick,
3518
6304
  disabled,
3519
6305
  className: clsx4(
6306
+ "font-semibold",
3520
6307
  {
3521
6308
  "text-disabled-text bg-disabled-background cursor-not-allowed": disabled,
3522
6309
  [clsx4(colorClasses, "hover:brightness-90")]: !disabled
@@ -3574,6 +6361,7 @@ var OutlineButton = ({
3574
6361
  onClick,
3575
6362
  disabled,
3576
6363
  className: clsx4(
6364
+ "font-semibold",
3577
6365
  {
3578
6366
  "text-disabled-text border-disabled-outline cursor-not-allowed": disabled,
3579
6367
  [clsx4(colorClasses, "hover:brightness-80")]: !disabled
@@ -3616,6 +6404,7 @@ var TextButton = ({
3616
6404
  startIcon,
3617
6405
  endIcon,
3618
6406
  onClick,
6407
+ coloredHoverBackground = true,
3619
6408
  className,
3620
6409
  ...restProps
3621
6410
  }) => {
@@ -3624,6 +6413,11 @@ var TextButton = ({
3624
6413
  negative: "bg-transparent text-button-text-negative-text",
3625
6414
  neutral: "bg-transparent text-button-text-neutral-text"
3626
6415
  }[color];
6416
+ const backgroundColor = {
6417
+ primary: "hover:bg-button-text-primary-text/20",
6418
+ negative: "hover:bg-button-text-negative-text/20",
6419
+ neutral: "hover:bg-button-text-neutral-text/20"
6420
+ }[color];
3627
6421
  const iconColorClasses = {
3628
6422
  primary: "text-button-text-primary-icon",
3629
6423
  negative: "text-button-text-negative-icon",
@@ -3635,9 +6429,12 @@ var TextButton = ({
3635
6429
  onClick,
3636
6430
  disabled,
3637
6431
  className: clsx4(
6432
+ "font-semibold",
3638
6433
  {
3639
6434
  "text-disabled-text cursor-not-allowed": disabled,
3640
- [clsx4(colorClasses, "hover:bg-button-text-hover-background")]: !disabled
6435
+ [colorClasses]: !disabled,
6436
+ [backgroundColor]: !disabled && coloredHoverBackground,
6437
+ "hover:bg-button-text-hover-background": !disabled && !coloredHoverBackground
3641
6438
  },
3642
6439
  ButtonUtil.paddingMapping[size],
3643
6440
  className
@@ -4719,7 +7516,7 @@ var Modal = ({
4719
7516
  ref,
4720
7517
  tabIndex: -1,
4721
7518
  className: clsx11(
4722
- "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl animate-pop-in",
7519
+ "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-around-lg shadow-strong animate-pop-in",
4723
7520
  className
4724
7521
  ),
4725
7522
  role: "dialog",
@@ -4788,7 +7585,7 @@ var Dialog = ({
4788
7585
  ref,
4789
7586
  tabIndex: -1,
4790
7587
  className: clsx11(
4791
- "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-xl animate-pop-in",
7588
+ "flex-col-2 fixed left-1/2 top-1/2 -translate-y-1/2 -translate-x-1/2 p-4 bg-overlay-background text-overlay-text rounded-xl shadow-around-lg shadow-strong animate-pop-in",
4792
7589
  className
4793
7590
  ),
4794
7591
  role: "dialog",
@@ -4849,50 +7646,85 @@ var ConfirmDialog = ({
4849
7646
  };
4850
7647
 
4851
7648
  // src/components/icons-and-geometry/Avatar.tsx
7649
+ var import_image = __toESM(require_image());
4852
7650
  import clsx13 from "clsx";
7651
+ import { useState as useState10 } from "react";
7652
+ import { useMemo } from "react";
7653
+ import { UserIcon } from "lucide-react";
4853
7654
  import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
4854
- var avtarSizeList = ["tiny", "small", "medium", "large"];
7655
+ var avtarSizeList = ["sm", "md", "lg", "xl"];
4855
7656
  var avatarSizeMapping = {
4856
- tiny: 24,
4857
- small: 32,
4858
- medium: 48,
4859
- large: 64
4860
- };
4861
- var Avatar = ({ avatarUrl, alt, size = "medium", className = "" }) => {
4862
- avatarUrl = "https://cdn.helpwave.de/boringavatar.svg";
4863
- const avtarSize = {
4864
- tiny: 24,
4865
- small: 32,
4866
- medium: 48,
4867
- large: 64
4868
- }[size];
4869
- const style = {
4870
- width: avtarSize + "px",
4871
- height: avtarSize + "px",
4872
- maxWidth: avtarSize + "px",
4873
- maxHeight: avtarSize + "px",
4874
- minWidth: avtarSize + "px",
4875
- minHeight: avtarSize + "px"
7657
+ sm: 18,
7658
+ md: 24,
7659
+ lg: 32,
7660
+ xl: 48
7661
+ };
7662
+ var textClassNameMapping = {
7663
+ sm: "text-xs font-semibold",
7664
+ md: "text-sm font-semibold",
7665
+ lg: "text-lg font-semibold",
7666
+ xl: "text-2xl font-bold"
7667
+ };
7668
+ var AvatarUtil = {
7669
+ avatarSizeMapping,
7670
+ sizes: avtarSizeList
7671
+ };
7672
+ var Avatar = ({ image, name, size = "md", fullyRounded, className = "" }) => {
7673
+ const pixels = avatarSizeMapping[size];
7674
+ const [hasImageError, setHasImageError] = useState10(false);
7675
+ const sizeStyle = {
7676
+ minWidth: pixels,
7677
+ maxWidth: pixels,
7678
+ minHeight: pixels,
7679
+ maxHeight: pixels
4876
7680
  };
4877
- return (
4878
- // TODO transparent or white background later
4879
- /* @__PURE__ */ jsx15("div", { className: clsx13(`rounded-full bg-primary shadow`, className), style, children: /* @__PURE__ */ jsx15(
4880
- "img",
4881
- {
4882
- className: "rounded-full",
4883
- style,
4884
- src: avatarUrl,
4885
- alt,
4886
- width: avtarSize,
4887
- height: avtarSize
4888
- }
4889
- ) })
7681
+ const textClassName = textClassNameMapping[size];
7682
+ const displayName = useMemo(() => {
7683
+ const maxLetters = size === "sm" ? 1 : 2;
7684
+ return (name ?? "").split(" ").filter((_, index) => index < maxLetters).map((value) => value[0]).join("").toUpperCase();
7685
+ }, [name, size]);
7686
+ const rounding = {
7687
+ "rounded-full": fullyRounded,
7688
+ "rounded-lg": !fullyRounded && !(size === "sm" || size === "md"),
7689
+ "rounded-sm": !fullyRounded && (size === "sm" || size === "md")
7690
+ };
7691
+ return /* @__PURE__ */ jsxs11(
7692
+ "div",
7693
+ {
7694
+ className: clsx13(
7695
+ `relative bg-primary text-on-primary`,
7696
+ rounding,
7697
+ className
7698
+ ),
7699
+ style: sizeStyle,
7700
+ children: [
7701
+ name && (!image || hasImageError) && /* @__PURE__ */ jsx15("span", { className: clsx13(textClassName, "absolute z-[1] left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"), children: displayName }),
7702
+ !name && /* @__PURE__ */ jsx15("div", { className: clsx13("absolute z-[1] left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2"), children: /* @__PURE__ */ jsx15(UserIcon, { size: Math.round(pixels * 3 / 4) }) }),
7703
+ image && !hasImageError && /* @__PURE__ */ jsx15(
7704
+ import_image.default,
7705
+ {
7706
+ className: clsx13(
7707
+ "absolute z-[2] left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2",
7708
+ rounding
7709
+ ),
7710
+ src: image.avatarUrl,
7711
+ alt: image.alt,
7712
+ style: sizeStyle,
7713
+ width: pixels,
7714
+ height: pixels,
7715
+ onError: () => setHasImageError(true)
7716
+ }
7717
+ )
7718
+ ]
7719
+ }
4890
7720
  );
4891
7721
  };
4892
7722
  var AvatarGroup = ({
4893
7723
  avatars,
4894
7724
  maxShownProfiles = 5,
4895
- size = "tiny"
7725
+ showTotalNumber = true,
7726
+ size = "md",
7727
+ fullyRounded
4896
7728
  }) => {
4897
7729
  const displayedProfiles = avatars.length < maxShownProfiles ? avatars : avatars.slice(0, maxShownProfiles);
4898
7730
  const diameter = avatarSizeMapping[size];
@@ -4905,15 +7737,22 @@ var AvatarGroup = ({
4905
7737
  {
4906
7738
  className: "absolute",
4907
7739
  style: { left: index * diameter * stackingOverlap + "px", zIndex: maxShownProfiles - index },
4908
- children: /* @__PURE__ */ jsx15(Avatar, { avatarUrl: avatar.avatarUrl, alt: avatar.alt, size })
7740
+ children: /* @__PURE__ */ jsx15(
7741
+ Avatar,
7742
+ {
7743
+ ...avatar,
7744
+ size,
7745
+ fullyRounded,
7746
+ className: clsx13("shadow-side shadow-r-4 shadow-hard", avatar.className)
7747
+ }
7748
+ )
4909
7749
  },
4910
7750
  index
4911
7751
  )) }),
4912
- notDisplayedProfiles > 0 && /* @__PURE__ */ jsx15(
7752
+ showTotalNumber && notDisplayedProfiles > 0 && /* @__PURE__ */ jsx15(
4913
7753
  "div",
4914
7754
  {
4915
- className: "flex-row-2 truncate items-center",
4916
- style: { fontSize: diameter / 2 + "px", marginLeft: 1 + diameter / 16 + "px" },
7755
+ className: clsx13(textClassNameMapping[size], "flex-row-2 truncate items-center"),
4917
7756
  children: /* @__PURE__ */ jsxs11("span", { children: [
4918
7757
  "+ ",
4919
7758
  notDisplayedProfiles
@@ -4948,7 +7787,7 @@ var Circle = ({
4948
7787
  };
4949
7788
 
4950
7789
  // src/components/icons-and-geometry/Ring.tsx
4951
- import { useCallback as useCallback3, useEffect as useEffect10, useState as useState10 } from "react";
7790
+ import { useCallback as useCallback3, useEffect as useEffect10, useState as useState11 } from "react";
4952
7791
  import clsx15 from "clsx";
4953
7792
  import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
4954
7793
  var Ring = ({
@@ -4977,7 +7816,7 @@ var AnimatedRing = ({
4977
7816
  onAnimationFinished = noop,
4978
7817
  style
4979
7818
  }) => {
4980
- const [currentWidth, setCurrentWidth] = useState10(0);
7819
+ const [currentWidth, setCurrentWidth] = useState11(0);
4981
7820
  const milliseconds = 1e3 * fillAnimationDuration;
4982
7821
  const animate = useCallback3((timestamp, startTime) => {
4983
7822
  const progress = Math.min((timestamp - startTime) / milliseconds, 1);
@@ -5028,7 +7867,7 @@ var RingWave = ({
5028
7867
  onAnimationFinished = noop,
5029
7868
  style
5030
7869
  }) => {
5031
- const [currentInnerSize, setCurrentInnerSize] = useState10(startInnerSize);
7870
+ const [currentInnerSize, setCurrentInnerSize] = useState11(startInnerSize);
5032
7871
  const distance = endInnerSize - startInnerSize;
5033
7872
  const milliseconds = 1e3 * fillAnimationDuration;
5034
7873
  const animate = useCallback3((timestamp, startTime) => {
@@ -5083,7 +7922,7 @@ var RadialRings = ({
5083
7922
  sizeCircle2 = 200,
5084
7923
  sizeCircle3 = 300
5085
7924
  }) => {
5086
- const [currentRing, setCurrentRing] = useState10(0);
7925
+ const [currentRing, setCurrentRing] = useState11(0);
5087
7926
  const size = sizeCircle3;
5088
7927
  return /* @__PURE__ */ jsxs12(
5089
7928
  "div",
@@ -5212,13 +8051,14 @@ var RadialRings = ({
5212
8051
  };
5213
8052
 
5214
8053
  // src/components/icons-and-geometry/Tag.tsx
8054
+ var import_image2 = __toESM(require_image());
5215
8055
  import { jsx as jsx18 } from "react/jsx-runtime";
5216
8056
  var TagIcon = ({
5217
8057
  className,
5218
8058
  size = 16
5219
8059
  }) => {
5220
8060
  return /* @__PURE__ */ jsx18(
5221
- "img",
8061
+ import_image2.default,
5222
8062
  {
5223
8063
  style: { width: `${size}px`, height: `${size}px`, minWidth: `${size}px`, minHeight: `${size}px` },
5224
8064
  width: size,
@@ -5233,24 +8073,28 @@ var TagIcon = ({
5233
8073
  // src/components/layout-and-navigation/BreadCrumb.tsx
5234
8074
  var import_link = __toESM(require_link2());
5235
8075
  import clsx16 from "clsx";
8076
+ import { Fragment } from "react";
5236
8077
  import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
5237
8078
  var BreadCrumb = ({ crumbs, linkClassName, containerClassName }) => {
5238
8079
  const color = "text-description";
5239
- return /* @__PURE__ */ jsx19("div", { className: clsx16("flex-row-0", containerClassName), children: crumbs.map((crumb, index) => /* @__PURE__ */ jsxs13("div", { children: [
5240
- /* @__PURE__ */ jsx19(
5241
- import_link.default,
5242
- {
5243
- href: crumb.link,
5244
- className: clsx16(linkClassName, { [`${color} hover:brightness-60`]: index !== crumbs.length - 1 }),
5245
- children: crumb.display
5246
- }
5247
- ),
5248
- index !== crumbs.length - 1 && /* @__PURE__ */ jsx19("span", { className: clsx16(`px-1`, color), children: "/" })
5249
- ] }, index)) });
8080
+ return /* @__PURE__ */ jsx19("div", { className: clsx16("flex-row-0.5 items-center", containerClassName), children: crumbs.map((crumb, index) => {
8081
+ const isLast = index === crumbs.length - 1;
8082
+ return /* @__PURE__ */ jsxs13(Fragment, { children: [
8083
+ /* @__PURE__ */ jsx19(
8084
+ import_link.default,
8085
+ {
8086
+ href: crumb.link,
8087
+ className: clsx16("btn-sm hover:bg-description/20", linkClassName, { [color]: !isLast }),
8088
+ children: crumb.display
8089
+ }
8090
+ ),
8091
+ !isLast && /* @__PURE__ */ jsx19("span", { className: clsx16(`px-1`, color), children: "/" })
8092
+ ] }, index);
8093
+ }) });
5250
8094
  };
5251
8095
 
5252
8096
  // src/components/layout-and-navigation/Carousel.tsx
5253
- import { useCallback as useCallback4, useEffect as useEffect11, useMemo, useRef as useRef4, useState as useState11 } from "react";
8097
+ import { useCallback as useCallback4, useEffect as useEffect11, useMemo as useMemo2, useRef as useRef4, useState as useState12 } from "react";
5254
8098
  import clsx17 from "clsx";
5255
8099
  import { ChevronLeft, ChevronRight } from "lucide-react";
5256
8100
 
@@ -5357,7 +8201,7 @@ var LoopingArrayCalculator = class _LoopingArrayCalculator {
5357
8201
  };
5358
8202
 
5359
8203
  // src/components/layout-and-navigation/Carousel.tsx
5360
- import { Fragment, jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
8204
+ import { Fragment as Fragment2, jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
5361
8205
  var Carousel = ({
5362
8206
  children,
5363
8207
  animationTime = 200,
@@ -5382,7 +8226,7 @@ var Carousel = ({
5382
8226
  currentPosition,
5383
8227
  dragState,
5384
8228
  animationState
5385
- }, setCarouselInformation] = useState11({
8229
+ }, setCarouselInformation] = useState12({
5386
8230
  currentPosition: 0
5387
8231
  });
5388
8232
  const animationId = useRef4(void 0);
@@ -5390,7 +8234,7 @@ var Carousel = ({
5390
8234
  autoLoopingTimeOut = Math.max(0, autoLoopingTimeOut);
5391
8235
  const length = children.length;
5392
8236
  const paddingItemCount = 3;
5393
- const util = useMemo(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
8237
+ const util = useMemo2(() => new LoopingArrayCalculator(length, isLooping, overScrollThreshold), [length, isLooping, overScrollThreshold]);
5394
8238
  const currentIndex = util.getCorrectedPosition(LoopingArrayCalculator.withoutOffset(currentPosition));
5395
8239
  animationTime = Math.max(200, animationTime);
5396
8240
  autoLoopAnimationTime = Math.max(200, autoLoopAnimationTime);
@@ -5599,7 +8443,7 @@ var Carousel = ({
5599
8443
  };
5600
8444
  return /* @__PURE__ */ jsxs14("div", { className: "flex-col-2 items-center w-full", children: [
5601
8445
  /* @__PURE__ */ jsxs14("div", { className: clsx17(`relative w-full overflow-hidden`, heightClassName, className), children: [
5602
- arrows && /* @__PURE__ */ jsxs14(Fragment, { children: [
8446
+ arrows && /* @__PURE__ */ jsxs14(Fragment2, { children: [
5603
8447
  /* @__PURE__ */ jsx20(
5604
8448
  IconButton,
5605
8449
  {
@@ -5673,6 +8517,10 @@ var Carousel = ({
5673
8517
  // src/components/layout-and-navigation/Chip.tsx
5674
8518
  import clsx18 from "clsx";
5675
8519
  import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
8520
+ var chipColors = ["default", "dark", "red", "yellow", "green", "blue", "pink"];
8521
+ var ChipUtil = {
8522
+ colors: chipColors
8523
+ };
5676
8524
  var Chip = ({
5677
8525
  children,
5678
8526
  trailingIcon,
@@ -5704,7 +8552,7 @@ var Chip = ({
5704
8552
  {
5705
8553
  ...restProps,
5706
8554
  className: clsx18(
5707
- `row w-fit px-2 py-1`,
8555
+ `row w-fit px-2 py-1 font-semibold`,
5708
8556
  colorMapping,
5709
8557
  {
5710
8558
  "rounded-md": variant === "normal",
@@ -5727,7 +8575,7 @@ var ChipList = ({
5727
8575
  Chip,
5728
8576
  {
5729
8577
  ...value,
5730
- color: value.color ?? "dark",
8578
+ color: value.color ?? "default",
5731
8579
  variant: value.variant ?? "normal",
5732
8580
  children: value.children
5733
8581
  },
@@ -5761,7 +8609,7 @@ var DividerInserter = ({
5761
8609
  import clsx20 from "clsx";
5762
8610
 
5763
8611
  // src/components/layout-and-navigation/MarkdownInterpreter.tsx
5764
- import { Fragment as Fragment2, jsx as jsx23 } from "react/jsx-runtime";
8612
+ import { Fragment as Fragment3, jsx as jsx23 } from "react/jsx-runtime";
5765
8613
  var astNodeInserterType = ["helpwave", "newline"];
5766
8614
  var ASTNodeInterpreter = ({
5767
8615
  node,
@@ -5782,7 +8630,7 @@ var ASTNodeInterpreter = ({
5782
8630
  node: value
5783
8631
  },
5784
8632
  index
5785
- )) }) : /* @__PURE__ */ jsx23(Fragment2, { children: node.children.map((value, index) => /* @__PURE__ */ jsx23(ASTNodeInterpreter, { node: value }, index)) });
8633
+ )) }) : /* @__PURE__ */ jsx23(Fragment3, { children: node.children.map((value, index) => /* @__PURE__ */ jsx23(ASTNodeInterpreter, { node: value }, index)) });
5786
8634
  case "bold":
5787
8635
  return /* @__PURE__ */ jsx23("b", { children: node.children.map((value, index) => /* @__PURE__ */ jsx23(ASTNodeInterpreter, { node: value }, index)) });
5788
8636
  case "italic":
@@ -6016,17 +8864,17 @@ import { ChevronFirst, ChevronLast, ChevronLeft as ChevronLeft2, ChevronRight as
6016
8864
  import clsx23 from "clsx";
6017
8865
 
6018
8866
  // src/components/user-action/Input.tsx
6019
- import { forwardRef as forwardRef3, useEffect as useEffect14, useImperativeHandle, useRef as useRef5, useState as useState13 } from "react";
8867
+ import { forwardRef as forwardRef3, useEffect as useEffect14, useImperativeHandle, useRef as useRef5, useState as useState14 } from "react";
6020
8868
  import clsx22 from "clsx";
6021
8869
 
6022
8870
  // src/hooks/useDelay.ts
6023
- import { useEffect as useEffect12, useState as useState12 } from "react";
8871
+ import { useEffect as useEffect12, useState as useState13 } from "react";
6024
8872
  var defaultOptions = {
6025
8873
  delay: 3e3,
6026
8874
  disabled: false
6027
8875
  };
6028
8876
  function useDelay(options) {
6029
- const [timer, setTimer] = useState12(void 0);
8877
+ const [timer, setTimer] = useState13(void 0);
6030
8878
  const { delay, disabled } = {
6031
8879
  ...defaultOptions,
6032
8880
  ...options
@@ -6163,7 +9011,7 @@ var getInputClassName = ({ disabled = false, hasError = false }) => {
6163
9011
  return clsx22(
6164
9012
  "px-2 py-1.5 rounded-md border-2",
6165
9013
  {
6166
- "bg-surface text-on-surface hover:border-primary focus:border-primary": !disabled && !hasError,
9014
+ "bg-input-background text-input-text hover:border-primary focus:border-primary": !disabled && !hasError,
6167
9015
  "bg-on-negative text-negative border-negative-border hover:border-negative-border-hover": !disabled && hasError,
6168
9016
  "bg-disabled-background text-disabled-text border-disabled-border": disabled
6169
9017
  }
@@ -6254,7 +9102,7 @@ var InputUncontrolled = ({
6254
9102
  onChangeText = noop,
6255
9103
  ...props
6256
9104
  }) => {
6257
- const [usedValue, setUsedValue] = useState13(value);
9105
+ const [usedValue, setUsedValue] = useState14(value);
6258
9106
  useEffect14(() => {
6259
9107
  setUsedValue(value);
6260
9108
  }, [value]);
@@ -6306,7 +9154,7 @@ var FormInput = forwardRef3(function FormInput2({
6306
9154
  });
6307
9155
 
6308
9156
  // src/components/layout-and-navigation/Pagination.tsx
6309
- import { useEffect as useEffect15, useState as useState14 } from "react";
9157
+ import { useEffect as useEffect15, useState as useState15 } from "react";
6310
9158
  import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
6311
9159
  var Pagination = ({
6312
9160
  overwriteTranslation,
@@ -6317,7 +9165,7 @@ var Pagination = ({
6317
9165
  style
6318
9166
  }) => {
6319
9167
  const translation = useTranslation([formTranslation], overwriteTranslation);
6320
- const [value, setValue] = useState14((pageIndex + 1).toString());
9168
+ const [value, setValue] = useState15((pageIndex + 1).toString());
6321
9169
  const noPages = pageCount === 0;
6322
9170
  const onFirstPage = pageIndex === 0 && !noPages;
6323
9171
  const onLastPage = pageIndex === pageCount - 1;
@@ -6364,7 +9212,7 @@ var Pagination = ({
6364
9212
  /* @__PURE__ */ jsx27(
6365
9213
  "span",
6366
9214
  {
6367
- className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-surface text-on-surface rounded-md font-bold",
9215
+ className: "flex-row-2 flex-1 items-center justify-center select-none h-10 bg-input-background text-input-text rounded-md font-bold",
6368
9216
  children: pageCount
6369
9217
  }
6370
9218
  )
@@ -6379,7 +9227,7 @@ import { Search } from "lucide-react";
6379
9227
  import clsx24 from "clsx";
6380
9228
 
6381
9229
  // src/hooks/useSearch.ts
6382
- import { useCallback as useCallback6, useEffect as useEffect16, useMemo as useMemo2, useState as useState15 } from "react";
9230
+ import { useCallback as useCallback6, useEffect as useEffect16, useMemo as useMemo3, useState as useState16 } from "react";
6383
9231
 
6384
9232
  // src/util/simpleSearch.ts
6385
9233
  var MultiSubjectSearchWithMapping = (search, objects, mapping) => {
@@ -6418,9 +9266,9 @@ var useSearch = ({
6418
9266
  filter,
6419
9267
  disabled = false
6420
9268
  }) => {
6421
- const [search, setSearch] = useState15(initialSearch ?? "");
6422
- const [result, setResult] = useState15(list);
6423
- const searchTags = useMemo2(() => additionalSearchTags ?? [], [additionalSearchTags]);
9269
+ const [search, setSearch] = useState16(initialSearch ?? "");
9270
+ const [result, setResult] = useState16(list);
9271
+ const searchTags = useMemo3(() => additionalSearchTags ?? [], [additionalSearchTags]);
6424
9272
  const updateSearch = useCallback6((newSearch) => {
6425
9273
  const usedSearch = newSearch ?? search;
6426
9274
  if (newSearch) {
@@ -6433,19 +9281,19 @@ var useSearch = ({
6433
9281
  setResult(MultiSubjectSearchWithMapping([search, ...searchTags], list, searchMapping));
6434
9282
  }
6435
9283
  }, [searchTags, isSearchInstant, list, search, searchMapping, additionalSearchTags]);
6436
- const filteredResult = useMemo2(() => {
9284
+ const filteredResult = useMemo3(() => {
6437
9285
  if (!filter) {
6438
9286
  return result;
6439
9287
  }
6440
9288
  return result.filter(filter);
6441
9289
  }, [result, filter]);
6442
- const sortedAndFilteredResult = useMemo2(() => {
9290
+ const sortedAndFilteredResult = useMemo3(() => {
6443
9291
  if (!sortingFunction) {
6444
9292
  return filteredResult;
6445
9293
  }
6446
9294
  return filteredResult.sort(sortingFunction);
6447
9295
  }, [filteredResult, sortingFunction]);
6448
- const usedResult = useMemo2(() => {
9296
+ const usedResult = useMemo3(() => {
6449
9297
  if (!disabled) {
6450
9298
  return sortedAndFilteredResult;
6451
9299
  }
@@ -6505,7 +9353,7 @@ var SearchableList = ({
6505
9353
  // src/components/layout-and-navigation/StepperBar.tsx
6506
9354
  import { Check as Check2, ChevronLeft as ChevronLeft3, ChevronRight as ChevronRight3 } from "lucide-react";
6507
9355
  import clsx25 from "clsx";
6508
- import { useEffect as useEffect17, useState as useState16 } from "react";
9356
+ import { useEffect as useEffect17, useState as useState17 } from "react";
6509
9357
  import { jsx as jsx29, jsxs as jsxs19 } from "react/jsx-runtime";
6510
9358
  var defaultState = {
6511
9359
  currentStep: 0,
@@ -6599,7 +9447,7 @@ var StepperBar = ({
6599
9447
  );
6600
9448
  };
6601
9449
  var StepperBarUncontrolled = ({ state, onChange, ...props }) => {
6602
- const [usedState, setUsedState] = useState16(state ?? defaultState);
9450
+ const [usedState, setUsedState] = useState17(state ?? defaultState);
6603
9451
  useEffect17(() => {
6604
9452
  setUsedState(state ?? defaultState);
6605
9453
  }, [state]);
@@ -6745,7 +9593,7 @@ var ErrorComponent = ({
6745
9593
  };
6746
9594
 
6747
9595
  // src/components/loading-states/LoadingAndErrorComponent.tsx
6748
- import { useState as useState17 } from "react";
9596
+ import { useState as useState18 } from "react";
6749
9597
 
6750
9598
  // src/components/loading-states/LoadingContainer.tsx
6751
9599
  import { clsx as clsx28 } from "clsx";
@@ -6763,11 +9611,11 @@ var LoadingAndErrorComponent = ({
6763
9611
  hasError = false,
6764
9612
  loadingComponent,
6765
9613
  errorComponent,
6766
- minimumLoadingDuration,
9614
+ minimumLoadingDuration = 200,
6767
9615
  className
6768
9616
  }) => {
6769
- const [isInMinimumLoading, setIsInMinimumLoading] = useState17(false);
6770
- const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState17(false);
9617
+ const [isInMinimumLoading, setIsInMinimumLoading] = useState18(false);
9618
+ const [hasUsedMinimumLoading, setHasUsedMinimumLoading] = useState18(false);
6771
9619
  if (minimumLoadingDuration && !isInMinimumLoading && !hasUsedMinimumLoading) {
6772
9620
  setIsInMinimumLoading(true);
6773
9621
  setTimeout(() => {
@@ -6971,15 +9819,11 @@ var InputModal = ({
6971
9819
 
6972
9820
  // src/components/user-action/Select.tsx
6973
9821
  import { useCallback as useCallback7 } from "react";
6974
- import { useEffect as useEffect20, useState as useState19 } from "react";
9822
+ import { useEffect as useEffect20, useState as useState20 } from "react";
6975
9823
  import clsx35 from "clsx";
6976
9824
 
6977
9825
  // src/components/user-action/Menu.tsx
6978
- import {
6979
- useEffect as useEffect19,
6980
- useRef as useRef6,
6981
- useState as useState18
6982
- } from "react";
9826
+ import { useEffect as useEffect19, useRef as useRef6, useState as useState19 } from "react";
6983
9827
  import clsx33 from "clsx";
6984
9828
 
6985
9829
  // src/hooks/useOutsideClick.ts
@@ -7069,7 +9913,7 @@ var usePopoverPosition = (trigger, options) => {
7069
9913
 
7070
9914
  // src/components/user-action/Menu.tsx
7071
9915
  import { createPortal } from "react-dom";
7072
- import { Fragment as Fragment3, jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
9916
+ import { Fragment as Fragment4, jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
7073
9917
  var MenuItem = ({
7074
9918
  children,
7075
9919
  onClick,
@@ -7079,7 +9923,7 @@ var MenuItem = ({
7079
9923
  }) => /* @__PURE__ */ jsx41(
7080
9924
  "div",
7081
9925
  {
7082
- className: clsx33("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold", {
9926
+ className: clsx33("block px-3 py-1.5 first:rounded-t-md last:rounded-b-md text-sm font-semibold text-nowrap", {
7083
9927
  "text-right": alignment === "right",
7084
9928
  "text-left": alignment === "left",
7085
9929
  "text-disabled-text cursor-not-allowed": isDisabled,
@@ -7112,7 +9956,7 @@ var Menu = ({
7112
9956
  const triggerRef = useRef6(null);
7113
9957
  const menuRef = useRef6(null);
7114
9958
  useOutsideClick([triggerRef, menuRef], () => setIsOpen(false));
7115
- const [isHidden, setIsHidden] = useState18(true);
9959
+ const [isHidden, setIsHidden] = useState19(true);
7116
9960
  const bag = {
7117
9961
  isOpen,
7118
9962
  close: () => setIsOpen(false),
@@ -7145,7 +9989,7 @@ var Menu = ({
7145
9989
  setIsHidden(false);
7146
9990
  }
7147
9991
  }, [isOpen]);
7148
- return /* @__PURE__ */ jsxs27(Fragment3, { children: [
9992
+ return /* @__PURE__ */ jsxs27(Fragment4, { children: [
7149
9993
  trigger(bag, triggerRef),
7150
9994
  createPortal(/* @__PURE__ */ jsx41(
7151
9995
  "div",
@@ -7153,7 +9997,7 @@ var Menu = ({
7153
9997
  ref: menuRef,
7154
9998
  onClick: (e) => e.stopPropagation(),
7155
9999
  className: clsx33(
7156
- "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg z-[300]",
10000
+ "absolute rounded-md bg-menu-background text-menu-text shadow-around-lg shadow-strong z-[300]",
7157
10001
  {
7158
10002
  "animate-pop-in": isOpen,
7159
10003
  "animate-pop-out": !isOpen,
@@ -7200,23 +10044,7 @@ var SearchBar = ({
7200
10044
  };
7201
10045
 
7202
10046
  // src/components/user-action/Select.tsx
7203
- import { Fragment as Fragment4, jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
7204
- var SelectTile = ({
7205
- className,
7206
- disabledClassName,
7207
- title,
7208
- ...restProps
7209
- }) => {
7210
- return /* @__PURE__ */ jsx43(
7211
- Tile,
7212
- {
7213
- ...restProps,
7214
- className: clsx35("px-2 py-1 rounded-md", className),
7215
- disabledClassName: disabledClassName ?? "text-disabled-text cursor-not-allowed",
7216
- title: { ...title, className: title.className ?? "font-semibold" }
7217
- }
7218
- );
7219
- };
10047
+ import { Fragment as Fragment5, jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
7220
10048
  var Select = ({
7221
10049
  value,
7222
10050
  label,
@@ -7255,7 +10083,7 @@ var Select = ({
7255
10083
  "btn-md justify-between w-full border-2",
7256
10084
  {
7257
10085
  "rounded-b-lg": !open,
7258
- "bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
10086
+ "bg-input-background text-input-text hover:border-primary": !disabled,
7259
10087
  "bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
7260
10088
  },
7261
10089
  triggerClassName
@@ -7272,7 +10100,7 @@ var Select = ({
7272
10100
  menuClassName: clsx35("flex-col-2 p-2 max-h-96 overflow-hidden", menuProps.menuClassName),
7273
10101
  children: (bag) => {
7274
10102
  const { close } = bag;
7275
- return /* @__PURE__ */ jsxs29(Fragment4, { children: [
10103
+ return /* @__PURE__ */ jsxs29(Fragment5, { children: [
7276
10104
  !searchOptions?.disabled && /* @__PURE__ */ jsx43(
7277
10105
  SearchBar,
7278
10106
  {
@@ -7283,10 +10111,10 @@ var Select = ({
7283
10111
  ),
7284
10112
  /* @__PURE__ */ jsxs29("div", { className: "flex-col-2 overflow-y-auto", children: [
7285
10113
  result.map((option, index) => /* @__PURE__ */ jsx43(
7286
- SelectTile,
10114
+ ListTile,
7287
10115
  {
7288
10116
  isSelected: option === selectedOption,
7289
- title: { value: option.label },
10117
+ title: option.label,
7290
10118
  onClick: () => {
7291
10119
  onChange(option.value);
7292
10120
  close();
@@ -7310,7 +10138,7 @@ var SelectUncontrolled = ({
7310
10138
  hintText,
7311
10139
  ...props
7312
10140
  }) => {
7313
- const [selected, setSelected] = useState19(value);
10141
+ const [selected, setSelected] = useState20(value);
7314
10142
  useEffect20(() => {
7315
10143
  if (options.find((options2) => options2.value === value)) {
7316
10144
  setSelected(value);
@@ -7383,13 +10211,15 @@ var LanguageModal = ({
7383
10211
  };
7384
10212
 
7385
10213
  // src/theming/useTheme.tsx
7386
- import { createContext as createContext2, useContext as useContext2, useEffect as useEffect21, useState as useState20 } from "react";
10214
+ import { useMemo as useMemo4 } from "react";
10215
+ import { createContext as createContext2, useContext as useContext2, useEffect as useEffect21, useState as useState21 } from "react";
7387
10216
  import { jsx as jsx45 } from "react/jsx-runtime";
7388
- var themes = ["light", "dark"];
10217
+ var themes = ["light", "dark", "system"];
7389
10218
  var defaultThemeTypeTranslation = {
7390
10219
  en: {
7391
10220
  dark: "Dark",
7392
10221
  light: "Light",
10222
+ system: "System",
7393
10223
  theme: {
7394
10224
  one: "Theme",
7395
10225
  other: "Themes"
@@ -7398,6 +10228,7 @@ var defaultThemeTypeTranslation = {
7398
10228
  de: {
7399
10229
  dark: "Dunkel",
7400
10230
  light: "Hell",
10231
+ system: "System",
7401
10232
  theme: {
7402
10233
  one: "Farbschema",
7403
10234
  other: "Farbschemas"
@@ -7412,28 +10243,24 @@ var ThemeContext = createContext2({
7412
10243
  theme: "light",
7413
10244
  setTheme: noop
7414
10245
  });
7415
- var ThemeProvider = ({ children, initialTheme = "light" }) => {
7416
- const [theme, setTheme] = useState20(initialTheme);
10246
+ var ThemeProvider = ({ children, initialTheme = "system" }) => {
7417
10247
  const [storedTheme, setStoredTheme] = useLocalStorage("theme", initialTheme);
10248
+ const [userTheme, setUserTheme] = useState21();
7418
10249
  useEffect21(() => {
7419
- if (theme !== initialTheme) {
10250
+ if (storedTheme !== initialTheme) {
7420
10251
  console.warn("ThemeProvider initial state changed: Prefer using useTheme's setTheme instead");
7421
- setTheme(initialTheme);
10252
+ setStoredTheme(initialTheme);
7422
10253
  }
7423
10254
  }, [initialTheme]);
10255
+ const usedTheme = useMemo4(() => storedTheme !== "system" ? storedTheme : userTheme, [storedTheme, userTheme]);
7424
10256
  useEffect21(() => {
7425
- document.documentElement.setAttribute("data-theme", theme);
7426
- setStoredTheme(theme);
7427
- }, [theme]);
10257
+ document.documentElement.setAttribute("data-theme", usedTheme);
10258
+ }, [usedTheme]);
7428
10259
  useEffect21(() => {
7429
- if (storedTheme !== null) {
7430
- setTheme(storedTheme);
7431
- return;
7432
- }
7433
10260
  const prefersDark = window.matchMedia("(prefers-color-scheme: dark)").matches;
7434
- setTheme(prefersDark ? "dark" : "light");
10261
+ setUserTheme(prefersDark ? "dark" : "light");
7435
10262
  }, []);
7436
- return /* @__PURE__ */ jsx45(ThemeContext.Provider, { value: { theme, setTheme }, children });
10263
+ return /* @__PURE__ */ jsx45(ThemeContext.Provider, { value: { theme: storedTheme, setTheme: setStoredTheme }, children });
7437
10264
  };
7438
10265
  var useTheme = () => useContext2(ThemeContext);
7439
10266
 
@@ -7486,7 +10313,7 @@ var ThemeModal = ({
7486
10313
  import { Check as Check4 } from "lucide-react";
7487
10314
 
7488
10315
  // src/components/user-action/Checkbox.tsx
7489
- import { useState as useState21 } from "react";
10316
+ import { useState as useState22 } from "react";
7490
10317
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
7491
10318
  import { Check as Check3, Minus } from "lucide-react";
7492
10319
  import clsx36 from "clsx";
@@ -7537,7 +10364,7 @@ var Checkbox = ({
7537
10364
  className: clsx36(usedSizeClass, `items-center border-2 rounded outline-none `, {
7538
10365
  "text-disabled-text border-disabled-outline bg-disabled-background cursor-not-allowed": disabled,
7539
10366
  "focus:border-primary group-hover:border-primary ": !disabled,
7540
- "bg-surface": !disabled && !checked,
10367
+ "bg-input-background": !disabled && !checked,
7541
10368
  "bg-primary/30 border-primary text-primary": !disabled && checked === true || checked === "indeterminate"
7542
10369
  }, className),
7543
10370
  children: /* @__PURE__ */ jsxs32(CheckboxPrimitive.Indicator, { children: [
@@ -7555,7 +10382,7 @@ var CheckboxUncontrolled = ({
7555
10382
  defaultValue = false,
7556
10383
  ...props
7557
10384
  }) => {
7558
- const [checked, setChecked] = useState21(defaultValue);
10385
+ const [checked, setChecked] = useState22(defaultValue);
7559
10386
  const handleChange = (checked2) => {
7560
10387
  if (onChangeTristate) {
7561
10388
  onChangeTristate(checked2);
@@ -7605,7 +10432,7 @@ var PropertyBase = ({
7605
10432
  className
7606
10433
  ),
7607
10434
  children: [
7608
- /* @__PURE__ */ jsx48("div", { className: "max-w-6 min-w-6 text-text-default", children: icon }),
10435
+ /* @__PURE__ */ jsx48("div", { className: "max-w-6 min-w-6 text-text-primary", children: icon }),
7609
10436
  /* @__PURE__ */ jsx48("span", { className: "font-semibold", children: name })
7610
10437
  ]
7611
10438
  }
@@ -7616,7 +10443,7 @@ var PropertyBase = ({
7616
10443
  className: clsx37(
7617
10444
  "flex-row-2 grow px-3 py-2 justify-between items-center rounded-r-xl border-2 border-l-0 min-h-15",
7618
10445
  {
7619
- "bg-surface group-hover:border-primary": !requiredAndNoValue,
10446
+ "bg-input-background text-input-text group-hover:border-primary": !requiredAndNoValue,
7620
10447
  "bg-surface-warning group-hover:border-warning border-warning/90": requiredAndNoValue
7621
10448
  },
7622
10449
  className
@@ -7720,10 +10547,10 @@ import clsx40 from "clsx";
7720
10547
 
7721
10548
  // src/components/user-action/MultiSelect.tsx
7722
10549
  import { useCallback as useCallback8 } from "react";
7723
- import { useEffect as useEffect22, useState as useState22 } from "react";
10550
+ import { useEffect as useEffect22, useState as useState23 } from "react";
7724
10551
  import clsx39 from "clsx";
7725
10552
  import { Plus } from "lucide-react";
7726
- import { Fragment as Fragment5, jsx as jsx51, jsxs as jsxs34 } from "react/jsx-runtime";
10553
+ import { Fragment as Fragment6, jsx as jsx51, jsxs as jsxs34 } from "react/jsx-runtime";
7727
10554
  var defaultMultiSelectTranslation = {
7728
10555
  en: {
7729
10556
  selected: `{{amount}} selected`
@@ -7774,17 +10601,29 @@ var MultiSelect = ({
7774
10601
  {
7775
10602
  ref,
7776
10603
  className: clsx39(
7777
- "btn-md justify-between w-full border-2 h-auto",
10604
+ "group btn-md justify-between w-full border-2 h-auto",
7778
10605
  {
7779
10606
  "min-h-14": useChipDisplay,
7780
- "bg-menu-background text-menu-text border-menu-border hover:border-primary": !disabled,
10607
+ "bg-input-background text-input-text hover:border-primary": !disabled,
7781
10608
  "bg-disabled-background text-disabled-text border-disabled-background cursor-not-allowed": disabled
7782
10609
  },
7783
10610
  triggerClassName
7784
10611
  ),
7785
10612
  onClick: toggleOpen,
7786
10613
  disabled,
7787
- children: useChipDisplay ? /* @__PURE__ */ jsx51(Fragment5, { children: isShowingHint ? /* @__PURE__ */ jsx51(IconButton, { disabled, size: "small", color: "neutral", children: /* @__PURE__ */ jsx51(Plus, {}) }) : /* @__PURE__ */ jsx51(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ jsxs34(Fragment5, { children: [
10614
+ children: useChipDisplay ? /* @__PURE__ */ jsx51(Fragment6, { children: isShowingHint ? /* @__PURE__ */ jsx51(
10615
+ "div",
10616
+ {
10617
+ className: clsx39(
10618
+ "icon-btn-sm ",
10619
+ {
10620
+ "bg-button-solid-neutral-background text-button-solid-neutral-text hover:brightness-90 group-hover:brightness-90": !disabled,
10621
+ "bg-disabled-background text-disabled-text": disabled
10622
+ }
10623
+ ),
10624
+ children: /* @__PURE__ */ jsx51(Plus, {})
10625
+ }
10626
+ ) : /* @__PURE__ */ jsx51(ChipList, { list: selectedItems.map((value) => ({ children: value.label })) }) }) : /* @__PURE__ */ jsxs34(Fragment6, { children: [
7788
10627
  !isShowingHint && /* @__PURE__ */ jsx51("span", { className: "font-semibold", children: selectedDisplayOverwrite ?? translation("selected", { replacements: { amount: selectedItems.length.toString() } }) }),
7789
10628
  isShowingHint && /* @__PURE__ */ jsx51("span", { className: clsx39("textstyle-description", hintTextClassName), children: hintText ?? translation("select") }),
7790
10629
  /* @__PURE__ */ jsx51(ExpansionIcon, { isExpanded: isOpen })
@@ -7794,7 +10633,7 @@ var MultiSelect = ({
7794
10633
  menuClassName: clsx39("flex-col-2 p-2 max-h-96 overflow-hidden", menuProps.menuClassName),
7795
10634
  children: (bag) => {
7796
10635
  const { close } = bag;
7797
- return /* @__PURE__ */ jsxs34(Fragment5, { children: [
10636
+ return /* @__PURE__ */ jsxs34(Fragment6, { children: [
7798
10637
  !searchOptions?.disabled && /* @__PURE__ */ jsx51(
7799
10638
  SearchBar,
7800
10639
  {
@@ -7812,7 +10651,7 @@ var MultiSelect = ({
7812
10651
  } : value));
7813
10652
  };
7814
10653
  return /* @__PURE__ */ jsx51(
7815
- SelectTile,
10654
+ ListTile,
7816
10655
  {
7817
10656
  prefix: /* @__PURE__ */ jsx51(
7818
10657
  Checkbox,
@@ -7823,7 +10662,7 @@ var MultiSelect = ({
7823
10662
  disabled: option.disabled
7824
10663
  }
7825
10664
  ),
7826
- title: { value: option.label },
10665
+ title: option.label,
7827
10666
  onClick: update,
7828
10667
  disabled: option.disabled
7829
10668
  },
@@ -7877,7 +10716,7 @@ var MultiSelectUncontrolled = ({
7877
10716
  onChange,
7878
10717
  ...props
7879
10718
  }) => {
7880
- const [usedOptions, setUsedOptions] = useState22(options);
10719
+ const [usedOptions, setUsedOptions] = useState23(options);
7881
10720
  useEffect22(() => {
7882
10721
  setUsedOptions(options);
7883
10722
  }, [options]);
@@ -7935,10 +10774,10 @@ var MultiSelectProperty = ({
7935
10774
  return void 0;
7936
10775
  }
7937
10776
  return /* @__PURE__ */ jsx52(
7938
- SelectTile,
10777
+ ListTile,
7939
10778
  {
7940
10779
  prefix: /* @__PURE__ */ jsx52(Plus2, {}),
7941
- title: { value: `${translation("add")} ${search.trim()}` },
10780
+ title: `${translation("add")} ${search.trim()}`,
7942
10781
  onClick: () => {
7943
10782
  onAddNew(search);
7944
10783
  close();
@@ -8075,10 +10914,10 @@ var SingleSelectProperty = ({
8075
10914
  return void 0;
8076
10915
  }
8077
10916
  return /* @__PURE__ */ jsx54(
8078
- SelectTile,
10917
+ ListTile,
8079
10918
  {
8080
10919
  prefix: /* @__PURE__ */ jsx54(Plus3, {}),
8081
- title: { value: `${translation("add")} ${search.trim()}` },
10920
+ title: `${translation("add")} ${search.trim()}`,
8082
10921
  onClick: () => {
8083
10922
  onAddNew(search);
8084
10923
  close();
@@ -8106,7 +10945,7 @@ import { Text } from "lucide-react";
8106
10945
  import clsx44 from "clsx";
8107
10946
 
8108
10947
  // src/components/user-action/Textarea.tsx
8109
- import { useEffect as useEffect23, useState as useState23 } from "react";
10948
+ import { useEffect as useEffect23, useState as useState24 } from "react";
8110
10949
  import clsx43 from "clsx";
8111
10950
  import { jsx as jsx55, jsxs as jsxs36 } from "react/jsx-runtime";
8112
10951
  var Textarea = ({
@@ -8125,7 +10964,7 @@ var Textarea = ({
8125
10964
  className,
8126
10965
  ...props
8127
10966
  }) => {
8128
- const [hasFocus, setHasFocus] = useState23(false);
10967
+ const [hasFocus, setHasFocus] = useState24(false);
8129
10968
  const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
8130
10969
  const onEditCompletedWrapper = (text) => {
8131
10970
  onEditCompleted(text);
@@ -8145,11 +10984,11 @@ var Textarea = ({
8145
10984
  "div",
8146
10985
  {
8147
10986
  className: clsx43(
8148
- "bg-surface text-on-surface relative",
10987
+ "bg-input-background text-input-text relative",
8149
10988
  {
8150
- "shadow border-2 rounded-lg": defaultStyle,
10989
+ "border-2 rounded-lg": defaultStyle,
8151
10990
  "hover:border-primary focus-within:border-primary": defaultStyle && !disabled,
8152
- "border-disabled-border cursor-not-allowed": defaultStyle && !disabled
10991
+ "border-disabled-border cursor-not-allowed": defaultStyle && disabled
8153
10992
  }
8154
10993
  ),
8155
10994
  children: [
@@ -8195,7 +11034,7 @@ var TextareaUncontrolled = ({
8195
11034
  onChangeText = noop,
8196
11035
  ...props
8197
11036
  }) => {
8198
- const [text, setText] = useState23(value);
11037
+ const [text, setText] = useState24(value);
8199
11038
  useEffect23(() => {
8200
11039
  setText(value);
8201
11040
  }, [value]);
@@ -8293,7 +11132,7 @@ var TableFilters = {
8293
11132
  };
8294
11133
 
8295
11134
  // src/components/table/Table.tsx
8296
- import { useCallback as useCallback9, useEffect as useEffect26, useMemo as useMemo3, useRef as useRef7, useState as useState25 } from "react";
11135
+ import { useCallback as useCallback9, useEffect as useEffect26, useMemo as useMemo5, useRef as useRef7, useState as useState26 } from "react";
8297
11136
  import clsx48 from "clsx";
8298
11137
  import {
8299
11138
  flexRender,
@@ -8307,8 +11146,8 @@ import { Scrollbars as Scrollbars3 } from "react-custom-scrollbars-2";
8307
11146
 
8308
11147
  // src/components/table/TableFilterButton.tsx
8309
11148
  import { FilterIcon } from "lucide-react";
8310
- import { useEffect as useEffect24, useState as useState24 } from "react";
8311
- import { Fragment as Fragment6, jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
11149
+ import { useEffect as useEffect24, useState as useState25 } from "react";
11150
+ import { Fragment as Fragment7, jsx as jsx58, jsxs as jsxs37 } from "react/jsx-runtime";
8312
11151
  var defaultTableFilterTranslation = {
8313
11152
  en: {
8314
11153
  filter: "Filter",
@@ -8333,7 +11172,7 @@ var TableFilterButton = ({
8333
11172
  }) => {
8334
11173
  const translation = useTranslation([formTranslation, defaultTableFilterTranslation]);
8335
11174
  const columnFilterValue = column.getFilterValue();
8336
- const [filterValue, setFilterValue] = useState24(columnFilterValue);
11175
+ const [filterValue, setFilterValue] = useState25(columnFilterValue);
8337
11176
  const hasFilter = !!filterValue;
8338
11177
  useEffect24(() => {
8339
11178
  setFilterValue(columnFilterValue);
@@ -8392,7 +11231,7 @@ var TableFilterButton = ({
8392
11231
  }
8393
11232
  )
8394
11233
  ] }),
8395
- filterType === "dateRange" && /* @__PURE__ */ jsxs37(Fragment6, { children: [
11234
+ filterType === "dateRange" && /* @__PURE__ */ jsxs37(Fragment7, { children: [
8396
11235
  /* @__PURE__ */ jsx58(
8397
11236
  Input,
8398
11237
  {
@@ -8503,20 +11342,20 @@ var Table = ({
8503
11342
  }) => {
8504
11343
  const ref = useRef7(null);
8505
11344
  const tableRef = useRef7(null);
8506
- const [columnSizing, setColumnSizing] = useState25(columns.reduce((previousValue, currentValue) => {
11345
+ const [columnSizing, setColumnSizing] = useState26(columns.reduce((previousValue, currentValue) => {
8507
11346
  return {
8508
11347
  ...previousValue,
8509
11348
  [currentValue.id]: currentValue.minSize ?? defaultColumn.minSize
8510
11349
  };
8511
11350
  }, {}));
8512
- const [columnSizingInfo, setColumnSizingInfo] = useState25();
8513
- const [pagination, setPagination] = useState25({
11351
+ const [columnSizingInfo, setColumnSizingInfo] = useState26();
11352
+ const [pagination, setPagination] = useState26({
8514
11353
  pageSize: 10,
8515
11354
  pageIndex: 0,
8516
11355
  ...initialState?.pagination
8517
11356
  });
8518
- const [columnFilters, setColumnFilters] = useState25(initialState?.columnFilters);
8519
- const computedColumnMinWidths = useMemo3(() => {
11357
+ const [columnFilters, setColumnFilters] = useState26(initialState?.columnFilters);
11358
+ const computedColumnMinWidths = useMemo5(() => {
8520
11359
  return columns.reduce((previousValue, column) => {
8521
11360
  return {
8522
11361
  ...previousValue,
@@ -8525,7 +11364,7 @@ var Table = ({
8525
11364
  };
8526
11365
  }, {});
8527
11366
  }, [columns, defaultColumn]);
8528
- const computedColumnMaxWidths = useMemo3(() => {
11367
+ const computedColumnMaxWidths = useMemo5(() => {
8529
11368
  return columns.reduce((previousValue, column) => {
8530
11369
  return {
8531
11370
  ...previousValue,
@@ -8533,12 +11372,12 @@ var Table = ({
8533
11372
  };
8534
11373
  }, {});
8535
11374
  }, [columns, defaultColumn]);
8536
- const tableMinWidth = useMemo3(() => {
11375
+ const tableMinWidth = useMemo5(() => {
8537
11376
  return columns.reduce((sum, column) => {
8538
11377
  return sum + computedColumnMinWidths[column.id];
8539
11378
  }, 0);
8540
11379
  }, [columns, computedColumnMinWidths]);
8541
- const updateColumnSizes = useMemo3(() => {
11380
+ const updateColumnSizes = useMemo5(() => {
8542
11381
  return (previous) => {
8543
11382
  const updateSizing = {
8544
11383
  ...columnSizing,
@@ -8655,7 +11494,7 @@ var Table = ({
8655
11494
  columnResizeMode: "onChange",
8656
11495
  ...tableOptions
8657
11496
  });
8658
- const [hasInitializedSizing, setHasInitializedSizing] = useState25(false);
11497
+ const [hasInitializedSizing, setHasInitializedSizing] = useState26(false);
8659
11498
  useEffect26(() => {
8660
11499
  if (!hasInitializedSizing && ref.current) {
8661
11500
  setHasInitializedSizing(true);
@@ -8682,7 +11521,7 @@ var Table = ({
8682
11521
  }));
8683
11522
  }
8684
11523
  }, [data, pageCount, pagination.pageSize, pagination.pageIndex]);
8685
- const columnSizeVars = useMemo3(() => {
11524
+ const columnSizeVars = useMemo5(() => {
8686
11525
  const headers = table.getFlatHeaders();
8687
11526
  const colSizes = {};
8688
11527
  for (let i = 0; i < headers.length; i++) {
@@ -8697,7 +11536,7 @@ var Table = ({
8697
11536
  Scrollbars3,
8698
11537
  {
8699
11538
  autoHeight: true,
8700
- autoHeightMax: tableRef.current?.offsetHeight + 2,
11539
+ autoHeightMax: tableRef.current?.offsetHeight ? tableRef.current?.offsetHeight + 2 : void 0,
8701
11540
  autoHide: true,
8702
11541
  children: /* @__PURE__ */ jsxs38(
8703
11542
  "table",
@@ -8797,7 +11636,7 @@ var Table = ({
8797
11636
  ] });
8798
11637
  };
8799
11638
  var TableUncontrolled = ({ data, ...props }) => {
8800
- const [usedDate, setUsedData] = useState25(data);
11639
+ const [usedDate, setUsedData] = useState26(data);
8801
11640
  useEffect26(() => {
8802
11641
  setUsedData(data);
8803
11642
  }, [data]);
@@ -8820,7 +11659,7 @@ var TableWithSelection = ({
8820
11659
  meta,
8821
11660
  ...props
8822
11661
  }) => {
8823
- const columnsWithSelection = useMemo3(() => {
11662
+ const columnsWithSelection = useMemo5(() => {
8824
11663
  return [
8825
11664
  {
8826
11665
  id: selectionRowId,
@@ -8890,7 +11729,7 @@ var TableWithSelection = ({
8890
11729
  };
8891
11730
 
8892
11731
  // src/components/user-action/CopyToClipboardWrapper.tsx
8893
- import { useState as useState26 } from "react";
11732
+ import { useState as useState27 } from "react";
8894
11733
  import { clsx as clsx49 } from "clsx";
8895
11734
 
8896
11735
  // src/util/writeToClipboard.ts
@@ -8910,8 +11749,8 @@ var CopyToClipboardWrapper = ({
8910
11749
  zIndex = 10
8911
11750
  }) => {
8912
11751
  const translation = useTranslation([formTranslation]);
8913
- const [isShowingIndication, setIsShowingIndication] = useState26(false);
8914
- const [isShowingConfirmation, setIsShowingConfirmation] = useState26(false);
11752
+ const [isShowingIndication, setIsShowingIndication] = useState27(false);
11753
+ const [isShowingConfirmation, setIsShowingConfirmation] = useState27(false);
8915
11754
  const positionClasses = {
8916
11755
  top: `bottom-full left-1/2 -translate-x-1/2 mb-[6px]`,
8917
11756
  bottom: `top-full left-1/2 -translate-x-1/2 mt-[6px]`,
@@ -9053,7 +11892,7 @@ var DateTimePicker = ({
9053
11892
  };
9054
11893
 
9055
11894
  // src/components/user-action/ScrollPicker.tsx
9056
- import { useCallback as useCallback10, useEffect as useEffect27, useState as useState27 } from "react";
11895
+ import { useCallback as useCallback10, useEffect as useEffect27, useState as useState28 } from "react";
9057
11896
  import clsx51 from "clsx";
9058
11897
  import { jsx as jsx64, jsxs as jsxs41 } from "react/jsx-runtime";
9059
11898
  var up = 1;
@@ -9074,7 +11913,7 @@ var ScrollPicker = ({
9074
11913
  transition,
9075
11914
  items,
9076
11915
  lastTimeStamp
9077
- }, setAnimation] = useState27({
11916
+ }, setAnimation] = useState28({
9078
11917
  targetIndex: selectedIndex,
9079
11918
  currentIndex: disabled ? selectedIndex : 0,
9080
11919
  velocity: 0,
@@ -9208,7 +12047,7 @@ var ScrollPicker = ({
9208
12047
  /* @__PURE__ */ jsx64(
9209
12048
  "div",
9210
12049
  {
9211
- className: "absolute z-[1] top-1/2 -translate-y-1/2 -translate-x-1/2 left-1/2 w-full min-w-[40px] border border-divider/30 border-y-2 border-x-0 ",
12050
+ className: "absolute z-[1] top-1/2 -translate-y-1/2 -translate-x-1/2 left-1/2 w-full min-w-[40px] border border-divider/50 border-y-2 border-x-0 ",
9212
12051
  style: { height: `${itemHeight}px` }
9213
12052
  }
9214
12053
  ),
@@ -9250,7 +12089,7 @@ var ScrollPicker = ({
9250
12089
  };
9251
12090
 
9252
12091
  // src/components/user-action/ToggleableInput.tsx
9253
- import { useEffect as useEffect28, useRef as useRef8, useState as useState28 } from "react";
12092
+ import { useEffect as useEffect28, useRef as useRef8, useState as useState29 } from "react";
9254
12093
  import { Pencil } from "lucide-react";
9255
12094
  import clsx52 from "clsx";
9256
12095
  import { jsx as jsx65, jsxs as jsxs42 } from "react/jsx-runtime";
@@ -9268,7 +12107,7 @@ var ToggleableInput = ({
9268
12107
  saveDelayOptions,
9269
12108
  ...restProps
9270
12109
  }) => {
9271
- const [isEditing, setIsEditing] = useState28(initialState !== "display");
12110
+ const [isEditing, setIsEditing] = useState29(initialState !== "display");
9272
12111
  const { restartTimer, clearTimer } = useDelay(saveDelayOptions);
9273
12112
  const ref = useRef8(null);
9274
12113
  const onEditCompletedWrapper = (text) => {
@@ -9340,7 +12179,7 @@ var ToggleableInputUncontrolled = ({
9340
12179
  onChangeText = noop,
9341
12180
  ...restProps
9342
12181
  }) => {
9343
- const [value, setValue] = useState28(initialValue);
12182
+ const [value, setValue] = useState29(initialValue);
9344
12183
  useEffect28(() => {
9345
12184
  setValue(initialValue);
9346
12185
  }, [initialValue]);
@@ -9357,6 +12196,32 @@ var ToggleableInputUncontrolled = ({
9357
12196
  );
9358
12197
  };
9359
12198
 
12199
+ // src/hooks/useLogOnce.ts
12200
+ import { useEffect as useEffect29, useState as useState30 } from "react";
12201
+ var useLogOnce = ({
12202
+ message,
12203
+ condition,
12204
+ type = "warning"
12205
+ }) => {
12206
+ const [hasLogged, setHasLogged] = useState30(false);
12207
+ useEffect29(() => {
12208
+ if (!hasLogged && condition) {
12209
+ switch (type) {
12210
+ case "info":
12211
+ console.info(message);
12212
+ break;
12213
+ case "error":
12214
+ console.error(message);
12215
+ break;
12216
+ case "warning":
12217
+ console.warn(message);
12218
+ break;
12219
+ }
12220
+ setHasLogged(true);
12221
+ }
12222
+ }, [condition]);
12223
+ };
12224
+
9360
12225
  // src/hooks/useRerender.ts
9361
12226
  import { useReducer } from "react";
9362
12227
  var useRerender = () => {
@@ -9401,17 +12266,13 @@ var localizedNewsSchema = z.record(z.enum(LanguageUtil.languages), newsListSchem
9401
12266
  var filterNews = (localizedNews, requiredKeys) => {
9402
12267
  return localizedNews.filter((news) => requiredKeys.every((value) => news.keys.includes(value)));
9403
12268
  };
9404
-
9405
- // src/util/resolveSetState.ts
9406
- function resolveSetState(action, prev) {
9407
- return typeof action === "function" ? action(prev) : action;
9408
- }
9409
12269
  export {
9410
12270
  ASTNodeInterpreter,
9411
12271
  AnimatedRing,
9412
12272
  ArrayUtil,
9413
12273
  Avatar,
9414
12274
  AvatarGroup,
12275
+ AvatarUtil,
9415
12276
  BagFunctionUtil,
9416
12277
  BreadCrumb,
9417
12278
  ButtonColorUtil,
@@ -9422,6 +12283,7 @@ export {
9422
12283
  CheckboxUncontrolled,
9423
12284
  Chip,
9424
12285
  ChipList,
12286
+ ChipUtil,
9425
12287
  Circle,
9426
12288
  ConfirmDialog,
9427
12289
  ConfirmModal,
@@ -9455,6 +12317,7 @@ export {
9455
12317
  LanguageModal,
9456
12318
  LanguageProvider,
9457
12319
  LanguageUtil,
12320
+ ListTile,
9458
12321
  LoadingAndErrorComponent,
9459
12322
  LoadingAnimation,
9460
12323
  LoadingButton,
@@ -9484,7 +12347,6 @@ export {
9484
12347
  SearchBar,
9485
12348
  SearchableList,
9486
12349
  Select,
9487
- SelectTile,
9488
12350
  SelectUncontrolled,
9489
12351
  SessionStorageService,
9490
12352
  SimpleSearch,
@@ -9522,8 +12384,6 @@ export {
9522
12384
  YearMonthPicker,
9523
12385
  YearMonthPickerUncontrolled,
9524
12386
  addDuration,
9525
- avatarSizeMapping,
9526
- avtarSizeList,
9527
12387
  builder,
9528
12388
  changeDuration,
9529
12389
  clamp,
@@ -9560,6 +12420,7 @@ export {
9560
12420
  useLanguage,
9561
12421
  useLocalStorage,
9562
12422
  useLocale,
12423
+ useLogOnce,
9563
12424
  useOutsideClick,
9564
12425
  usePopoverPosition,
9565
12426
  useRerender,