elseware-ui 2.33.0 → 2.34.1

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.
package/dist/index.mjs CHANGED
@@ -179,6 +179,427 @@ function resolveAppearanceStyles({
179
179
  return solid[variant];
180
180
  }
181
181
  }
182
+
183
+ // src/utils/configurator/errors.ts
184
+ var ConfiguratorError = class extends Error {
185
+ constructor(message, cause) {
186
+ super(message);
187
+ this.name = "ConfiguratorError";
188
+ this.cause = cause;
189
+ }
190
+ };
191
+ function formatIssue(issue) {
192
+ const path = issue.path?.join(".") || "config";
193
+ return `${path} : ${issue.message ?? "Invalid value"}`;
194
+ }
195
+ function formatConfigError(error) {
196
+ const maybeZodError = error;
197
+ if (Array.isArray(maybeZodError.issues)) {
198
+ return maybeZodError.issues.map(formatIssue).join("\n");
199
+ }
200
+ if (maybeZodError?.message) {
201
+ return maybeZodError.message;
202
+ }
203
+ return "Invalid configuration";
204
+ }
205
+ function toConfiguratorError(error, fallbackMessage) {
206
+ if (error instanceof ConfiguratorError) {
207
+ return error;
208
+ }
209
+ if (error instanceof Error) {
210
+ return new ConfiguratorError(error.message || fallbackMessage, error);
211
+ }
212
+ return new ConfiguratorError(fallbackMessage, error);
213
+ }
214
+
215
+ // src/utils/configurator/Configurator.ts
216
+ var Configurator = class {
217
+ constructor(options) {
218
+ this.initialized = false;
219
+ this.config = null;
220
+ this.configError = null;
221
+ this.name = options.name ?? "config";
222
+ this.source = options.env;
223
+ this.schema = options.schema;
224
+ this.transform = options.transform;
225
+ if (options.validateOnCreate !== false) {
226
+ this.reload();
227
+ }
228
+ }
229
+ get isValid() {
230
+ this.ensureInitialized();
231
+ return !this.configError;
232
+ }
233
+ get error() {
234
+ this.ensureInitialized();
235
+ return this.configError;
236
+ }
237
+ get value() {
238
+ this.ensureInitialized();
239
+ if (this.configError) {
240
+ throw this.configError;
241
+ }
242
+ return this.config;
243
+ }
244
+ get optionalValue() {
245
+ this.ensureInitialized();
246
+ return this.config;
247
+ }
248
+ reload(env = this.source) {
249
+ this.source = env;
250
+ this.initialized = true;
251
+ const result = this.schema.safeParse(env);
252
+ if (!result.success) {
253
+ this.config = null;
254
+ this.configError = toConfiguratorError(
255
+ result.error,
256
+ formatConfigError(result.error)
257
+ );
258
+ return {
259
+ success: false,
260
+ config: null,
261
+ error: this.configError
262
+ };
263
+ }
264
+ try {
265
+ this.config = this.transform ? this.transform(result.data, { name: this.name }) : result.data;
266
+ this.configError = null;
267
+ return {
268
+ success: true,
269
+ config: this.config,
270
+ error: null
271
+ };
272
+ } catch (error) {
273
+ this.config = null;
274
+ this.configError = toConfiguratorError(
275
+ error,
276
+ `Failed to transform ${this.name}`
277
+ );
278
+ return {
279
+ success: false,
280
+ config: null,
281
+ error: this.configError
282
+ };
283
+ }
284
+ }
285
+ get(key) {
286
+ this.ensureInitialized();
287
+ if (!this.config) {
288
+ return void 0;
289
+ }
290
+ return this.config[key];
291
+ }
292
+ getRequired(key) {
293
+ const value = this.get(key);
294
+ if (value === void 0 || value === null) {
295
+ throw new Error(`Missing required config value: ${String(key)}`);
296
+ }
297
+ return value;
298
+ }
299
+ getPath(path, fallback) {
300
+ this.ensureInitialized();
301
+ if (!this.config) {
302
+ return fallback;
303
+ }
304
+ const value = path.split(".").reduce((current, key) => {
305
+ if (!current || typeof current !== "object") {
306
+ return void 0;
307
+ }
308
+ return current[key];
309
+ }, this.config);
310
+ return value === void 0 ? fallback : value;
311
+ }
312
+ getPathRequired(path) {
313
+ const value = this.getPath(path);
314
+ if (value === void 0 || value === null) {
315
+ throw new Error(`Missing required config value: ${path}`);
316
+ }
317
+ return value;
318
+ }
319
+ ensureInitialized() {
320
+ if (!this.initialized) {
321
+ this.reload();
322
+ }
323
+ }
324
+ };
325
+
326
+ // src/utils/configurator/createConfigurator.ts
327
+ function createConfigurator(options) {
328
+ return new Configurator(options);
329
+ }
330
+
331
+ // src/utils/configurator/helpers/browser.ts
332
+ function getBrowserOrigin() {
333
+ if (typeof window === "undefined") {
334
+ return "";
335
+ }
336
+ return window.location.origin;
337
+ }
338
+ function getBrowserHref() {
339
+ if (typeof window === "undefined") {
340
+ return "";
341
+ }
342
+ return window.location.href;
343
+ }
344
+ function getBrowserRedirectURL(options = {}) {
345
+ const {
346
+ queryParam = "redirect_uri",
347
+ fallbackPath = "/",
348
+ currentHref = getBrowserHref(),
349
+ referrerMode = "path"
350
+ } = options;
351
+ try {
352
+ if (currentHref) {
353
+ const currentURL = new URL(currentHref);
354
+ const redirectUri = currentURL.searchParams.get(queryParam);
355
+ if (redirectUri) {
356
+ return redirectUri;
357
+ }
358
+ }
359
+ if (typeof document !== "undefined" && document.referrer) {
360
+ const referrerURL = new URL(document.referrer);
361
+ if (referrerMode === "full") {
362
+ return referrerURL.toString();
363
+ }
364
+ return `${referrerURL.pathname}${referrerURL.search}${referrerURL.hash}`;
365
+ }
366
+ return fallbackPath;
367
+ } catch {
368
+ return fallbackPath;
369
+ }
370
+ }
371
+
372
+ // src/utils/configurator/helpers/json.ts
373
+ function isRecord(value) {
374
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
375
+ }
376
+ function parseJson(value, key = "JSON value") {
377
+ if (isRecord(value) || Array.isArray(value)) {
378
+ return value;
379
+ }
380
+ if (typeof value !== "string") {
381
+ throw new ConfiguratorError(`${key} must be a JSON string`);
382
+ }
383
+ try {
384
+ return JSON.parse(value);
385
+ } catch {
386
+ throw new ConfiguratorError(`Invalid ${key} JSON`);
387
+ }
388
+ }
389
+ function parseJsonRecord(value, key = "JSON record", validateValue) {
390
+ const parsed = parseJson(value, key);
391
+ if (!isRecord(parsed)) {
392
+ throw new ConfiguratorError(`${key} must be a JSON object`);
393
+ }
394
+ return Object.entries(parsed).reduce(
395
+ (acc, [name, item]) => {
396
+ acc[name] = validateValue ? validateValue(name, item) : item;
397
+ return acc;
398
+ },
399
+ {}
400
+ );
401
+ }
402
+
403
+ // src/utils/configurator/helpers/url.ts
404
+ function assertAbsoluteURL(value, key = "URL") {
405
+ if (typeof value !== "string") {
406
+ throw new ConfiguratorError(`${key} must be a string URL`);
407
+ }
408
+ try {
409
+ const url = new URL(value);
410
+ if (!["http:", "https:"].includes(url.protocol)) {
411
+ throw new Error();
412
+ }
413
+ return url.toString();
414
+ } catch {
415
+ throw new ConfiguratorError(`${key} must be a valid http/https URL`);
416
+ }
417
+ }
418
+ function parseUrlMap(value, key = "URL map") {
419
+ return parseJsonRecord(
420
+ value,
421
+ key,
422
+ (name, item) => assertAbsoluteURL(item, `${key}.${name}`)
423
+ );
424
+ }
425
+ function buildURL(base, path = "", params = {}) {
426
+ const url = new URL(assertAbsoluteURL(base, "base URL"));
427
+ if (path) {
428
+ const currentPath = url.pathname.replace(/\/$/, "");
429
+ const nextPath = path.replace(/^\/+/, "");
430
+ url.pathname = `${currentPath}/${nextPath}`;
431
+ }
432
+ Object.entries(params).forEach(([key, value]) => {
433
+ if (value !== void 0 && value !== null) {
434
+ url.searchParams.set(key, String(value));
435
+ }
436
+ });
437
+ return url.toString();
438
+ }
439
+ function resolveURLMap(source) {
440
+ return typeof source === "function" ? source() : source;
441
+ }
442
+ function createURLResolver(source, options = {}) {
443
+ const { label = "URL" } = options;
444
+ return (tag, path = "", params = {}) => {
445
+ const map = resolveURLMap(source) ?? {};
446
+ const base = map[tag];
447
+ if (!base) {
448
+ throw new ConfiguratorError(`${label} not configured for tag: ${tag}`);
449
+ }
450
+ return buildURL(base, path, params);
451
+ };
452
+ }
453
+ function getAllowedOrigins(options = {}) {
454
+ const {
455
+ urls = [],
456
+ maps = [],
457
+ includeCurrentOrigin = true,
458
+ currentOrigin = getBrowserOrigin()
459
+ } = options;
460
+ const origins = /* @__PURE__ */ new Set();
461
+ if (includeCurrentOrigin && currentOrigin) {
462
+ origins.add(currentOrigin);
463
+ }
464
+ urls.forEach((url) => {
465
+ origins.add(new URL(assertAbsoluteURL(url)).origin);
466
+ });
467
+ maps.forEach((map) => {
468
+ Object.values(map ?? {}).forEach((url) => {
469
+ origins.add(new URL(assertAbsoluteURL(url)).origin);
470
+ });
471
+ });
472
+ return Array.from(origins);
473
+ }
474
+ function getSafeRedirect(options = {}) {
475
+ const {
476
+ redirectUri,
477
+ fallback = "/",
478
+ allowedOrigins = [],
479
+ currentOrigin = getBrowserOrigin(),
480
+ allowedProtocols = ["http:", "https:"]
481
+ } = options;
482
+ try {
483
+ if (!redirectUri) {
484
+ return fallback;
485
+ }
486
+ const url = new URL(redirectUri, currentOrigin || fallback);
487
+ if (!allowedProtocols.includes(url.protocol)) {
488
+ return fallback;
489
+ }
490
+ const allowed = new Set(allowedOrigins);
491
+ if (currentOrigin) {
492
+ allowed.add(currentOrigin);
493
+ }
494
+ if (!allowed.has(url.origin)) {
495
+ return fallback;
496
+ }
497
+ return url.toString();
498
+ } catch {
499
+ return fallback;
500
+ }
501
+ }
502
+ function getErrorMessage(error) {
503
+ if (!error) {
504
+ return "Unknown configuration error";
505
+ }
506
+ if (error instanceof Error) {
507
+ return error.message || "Unknown configuration error";
508
+ }
509
+ if (typeof error === "string") {
510
+ return error;
511
+ }
512
+ try {
513
+ return JSON.stringify(error, null, 2);
514
+ } catch {
515
+ return "Unknown configuration error";
516
+ }
517
+ }
518
+ function getErrorStack(error) {
519
+ if (error instanceof Error) {
520
+ return error.stack;
521
+ }
522
+ return null;
523
+ }
524
+ function EnvErrorScreen({
525
+ error,
526
+ title = "Invalid Environment Configuration",
527
+ description = "The app could not start because one or more environment values are missing or invalid.",
528
+ footer,
529
+ showStack = false
530
+ }) {
531
+ const message = getErrorMessage(error);
532
+ const stack = getErrorStack(error);
533
+ const lines = message.split("\n").filter(Boolean);
534
+ return /* @__PURE__ */ jsx("div", { className: "min-h-screen flex items-center justify-center bg-black text-white p-8", children: /* @__PURE__ */ jsxs("div", { className: "max-w-4xl w-full rounded-xl border border-red-500 bg-red-950/30 p-6 shadow-2xl shadow-red-950/40", children: [
535
+ /* @__PURE__ */ jsxs("div", { className: "mb-5", children: [
536
+ /* @__PURE__ */ jsx("h1", { className: "text-2xl font-bold text-red-400 mb-2", children: title }),
537
+ description && /* @__PURE__ */ jsx("p", { className: "text-sm text-red-100/80", children: description })
538
+ ] }),
539
+ /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-red-500/30 bg-black/40 p-4", children: /* @__PURE__ */ jsx("pre", { className: "overflow-auto text-sm whitespace-pre-wrap text-red-100", children: lines.length > 0 ? lines.join("\n") : "Unknown configuration error" }) }),
540
+ showStack && stack && /* @__PURE__ */ jsxs("div", { className: "mt-4 rounded-lg border border-red-500/20 bg-black/30 p-4", children: [
541
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-red-300", children: "Stack trace" }),
542
+ /* @__PURE__ */ jsx("pre", { className: "overflow-auto text-xs whitespace-pre-wrap text-red-100/70", children: stack })
543
+ ] }),
544
+ /* @__PURE__ */ jsx("div", { className: "mt-5 text-sm text-red-100/70", children: footer ?? /* @__PURE__ */ jsxs("p", { children: [
545
+ "Fix your ",
546
+ /* @__PURE__ */ jsx("code", { className: "text-red-200", children: ".env" }),
547
+ " values and restart the development server."
548
+ ] }) })
549
+ ] }) });
550
+ }
551
+ var EnvErrorScreen_default = EnvErrorScreen;
552
+ function ConfigBootstrap({
553
+ config,
554
+ loadApp,
555
+ ErrorComponent = EnvErrorScreen_default,
556
+ LoadingComponent,
557
+ loadingFallback = null,
558
+ showStack = false
559
+ }) {
560
+ const [RootApp, setRootApp] = useState(null);
561
+ const [loadError, setLoadError] = useState(null);
562
+ useEffect(() => {
563
+ if (!config.isValid) {
564
+ return;
565
+ }
566
+ let mounted = true;
567
+ loadApp().then((module) => {
568
+ if (mounted) {
569
+ setRootApp(() => module.default);
570
+ }
571
+ }).catch((error) => {
572
+ if (mounted) {
573
+ setLoadError(error);
574
+ }
575
+ });
576
+ return () => {
577
+ mounted = false;
578
+ };
579
+ }, [config, loadApp]);
580
+ if (!config.isValid) {
581
+ return /* @__PURE__ */ jsx(ErrorComponent, { error: config.error, showStack });
582
+ }
583
+ if (loadError) {
584
+ return /* @__PURE__ */ jsx(
585
+ ErrorComponent,
586
+ {
587
+ error: loadError,
588
+ title: "Application Startup Error",
589
+ description: "The app configuration was valid, but the application failed while loading.",
590
+ showStack
591
+ }
592
+ );
593
+ }
594
+ if (!RootApp) {
595
+ if (LoadingComponent) {
596
+ return /* @__PURE__ */ jsx(LoadingComponent, {});
597
+ }
598
+ return /* @__PURE__ */ jsx(Fragment, { children: loadingFallback });
599
+ }
600
+ return /* @__PURE__ */ jsx(RootApp, {});
601
+ }
602
+ var ConfigBootstrap_default = ConfigBootstrap;
182
603
  var EUIContext = createContext(null);
183
604
  var EUIProvider = ({
184
605
  config,
@@ -5291,7 +5712,7 @@ var ShapeSwitch = () => {
5291
5712
  {
5292
5713
  value: currentShape,
5293
5714
  onChange: handleChange,
5294
- className: "\n px-3 py-2 rounded-md border border-gray-300\n bg-white dark:bg-gray-800\n text-sm shadow-sm\n focus:outline-none\n ",
5715
+ className: "\r\n px-3 py-2 rounded-md border border-gray-300\r\n bg-white dark:bg-gray-800\r\n text-sm shadow-sm\r\n focus:outline-none\r\n ",
5295
5716
  children: Object.keys(Shape).map((shape) => /* @__PURE__ */ jsx("option", { value: shape, children: shape }, shape))
5296
5717
  }
5297
5718
  ) });
@@ -18285,7 +18706,7 @@ function MarkdownTOC({ title = "Table of Contents" }) {
18285
18706
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
18286
18707
  "h2",
18287
18708
  {
18288
- className: "\n text-sm\n font-semibold\n uppercase\n tracking-wide\n text-gray-900\n dark:text-gray-100\n ",
18709
+ className: "\r\n text-sm\r\n font-semibold\r\n uppercase\r\n tracking-wide\r\n text-gray-900\r\n dark:text-gray-100\r\n ",
18289
18710
  children: title
18290
18711
  }
18291
18712
  ) }),
@@ -19615,7 +20036,7 @@ var GlowWrapper = ({
19615
20036
  /* @__PURE__ */ jsx(
19616
20037
  "span",
19617
20038
  {
19618
- className: "\n pointer-events-none absolute inset-0 opacity-0 \n group-hover:opacity-100 transition-opacity duration-300\n ",
20039
+ className: "\r\n pointer-events-none absolute inset-0 opacity-0 \r\n group-hover:opacity-100 transition-opacity duration-300\r\n ",
19619
20040
  style: { background: "var(--glow-bg)" }
19620
20041
  }
19621
20042
  ),
@@ -21287,6 +21708,6 @@ function ScrollToTop({
21287
21708
  }
21288
21709
  var ScrollToTop_default = ScrollToTop;
21289
21710
 
21290
- export { Accordion_default as Accordion, AreaGraph, AsyncComponentWrapper_default as AsyncComponentWrapper, Avatar, Backdrop_default as Backdrop, Badge, BarChart_default as BarChart, BarGraph, BaseGraphDataSource, Block_default as Block, BlockGroup_default as BlockGroup, BoxNav_default as BoxNav, BoxNavItem_default as BoxNavItem, Brand_default as Brand, Breadcrumb, BreadcrumbItem_default as BreadcrumbItem, Button_default as Button, Caption, Card_default as Card, CardContent_default as CardContent, CardFooter_default as CardFooter, CardHeader_default as CardHeader, Chapter, Checkbox_default as Checkbox, Chip, CloudinaryImage_default as CloudinaryImage, CloudinaryProvider, CloudinaryVideo_default as CloudinaryVideo, Code, CommentThread_default as CommentThread, Content, ContentArea_default as ContentArea, DEFAULT_GRAPH_THEME, DataView, DataViewTable_default as DataViewTable, DateSelector_default as DateSelector, DefaultLayout_default as DefaultLayout, Display, DocumentationPanel_default as DocumentationPanel, Drawer, DrawerToggler_default as DrawerToggler, EUIDevLayout_default as EUIDevLayout, EUIProvider, Flag, Flex, FlexCol_default as FlexCol, FlexRow_default as FlexRow, Footer, FooterNav_default as FooterNav, FooterNavGroup_default as FooterNavGroup, FooterNavItem, FooterNavItemContext, FooterNavItemTitle, Form, FormResponse_default as FormResponse, GRAPH_COLOR_PALETTE, GRAPH_DARK_THEME, GRAPH_DATA_MODES, GRAPH_DEFAULT_ACTIVE_DOT_RADIUS, GRAPH_DEFAULT_ANIMATION_DURATION, GRAPH_DEFAULT_BAR_RADIUS, GRAPH_DEFAULT_DOT_RADIUS, GRAPH_DEFAULT_HEIGHT, GRAPH_DEFAULT_MARGIN, GRAPH_DEFAULT_MAX_REALTIME_POINTS, GRAPH_DEFAULT_POLLING_INTERVAL, GRAPH_DEFAULT_STROKE_WIDTH, GRAPH_EMPTY_MESSAGE, GRAPH_ERROR_MESSAGE, GRAPH_LIGHT_THEME, GRAPH_LOADING_MESSAGE, GRAPH_STATUSES, GRAPH_STATUS_COLORS, GRAPH_VALUE_FORMATS, GaugeGraph, GenericLayout_default as GenericLayout, GlowWrapper_default as GlowWrapper, Graph, GraphContainer, GraphContext, GraphEmptyState, GraphErrorState, GraphHeader, GraphLegend, GraphLoadingState, GraphPanel, GraphProvider, GraphToolbar, GraphTooltip, Grid_default as Grid, Header, HeaderNav_default as HeaderNav, HeaderNavGroup_default as HeaderNavGroup, HeaderNavItem, HeaderNavItemContext, HeaderNavItemTitle, HomeLayout_default as HomeLayout, Image2 as Image, ImageInput_default as ImageInput, InfiniteScrollTrigger_default as InfiniteScrollTrigger, Info_default as Info, Input, InputFile, InputLabel_default as InputLabel, InputList, InputListGroup, InputResponse_default as InputResponse, Label, Layout, Lead, LineChart_default as LineChart, LineGraph, Link, List_default as List, ListItem_default as ListItem, MarkdownEditor_default as MarkdownEditor, MarkdownProvider_default as MarkdownProvider, MarkdownTOC_default as MarkdownTOC, MarkdownViewer_default as MarkdownViewer, Menu, MenuGroup, MenuItem, MenuItemTitle, Modal_default as Modal, MotionSurface_default as MotionSurface, MultiImageInput_default as MultiImageInput, NumericRating_default as NumericRating, Overline, Paragraph, PieChart_default as PieChart, PieGraph, PollingGraphDataSource, PriceTag, ProgressBar, ProgressBarRating_default as ProgressBarRating, Quote, Radio_default as Radio, RealtimeGraphDataSource, RouteTab_default as RouteTab, RouteTabs_default as RouteTabs, ScatterGraph, ScrollToTop_default as ScrollToTop, Section, Select_default as Select, ShapeSwitch, ShowMore_default as ShowMore, Sidebar_default as Sidebar, SidebarLayout_default as SidebarLayout, SidemenuLayout_default as SidemenuLayout, Skeleton, Slider_default as Slider, StarRating_default as StarRating, StarRatingDistribution_default as StarRatingDistribution, StarRatingInput_default as StarRatingInput, StatGraph, StaticGraphDataSource, Switch_default as Switch, TNDropdown, TNDropdownItem, TNDropdownTitle, TNGroup, Table_default as Table, Tag_default as Tag, Tags_default as Tags, TextArea_default as TextArea, ThemeContext, ThemeProvider, ThemeSwitch, TitleBanner, Toast, Tooltip9 as Tooltip, TopNav, Transition4 as Transition, TransitionDropdown_default as TransitionDropdown, TransitionFadeIn_default as TransitionFadeIn, Typography, UnderConstructionBanner, ValueBadge_default as ValueBadge, WorldMap, WorldMapCountryTable, YoutubeVideo_default as YoutubeVideoPlayer, addReplyToCache, applyReactionState, cn, createInitialGraphState, decrementReplyCount, enumValues, formatCommentDate, formatGraphValue, getCurrencySymbol, getOptimisticDislikeState, getOptimisticLikeState, graphReducer, incrementReplyCount, isMatch, isRenderFn, limitRealtimePoints, normalize, normalizeGraphData, normalizeGraphDataPoint, removeComment, removeCommentTreeFromCache, replaceRealtimePoints, resolveAppearanceStyles, resolveGraphColor, resolveGraphColors, resolveWithGlobal, sendToast, updateComment, updateReplyCacheComment, useClickOutside, useCloudinaryConfig, useCurrentTheme_default as useCurrentTheme, useDrawer_default as useDrawer, useEUIConfig, useGraphContext, useGraphData, useGraphPolling, useGraphRealtime, useGraphSeries, useGraphTheme, useIsMobile_default as useIsMobile, useModal_default as useModal, useTheme_default as useTheme };
21711
+ export { Accordion_default as Accordion, AreaGraph, AsyncComponentWrapper_default as AsyncComponentWrapper, Avatar, Backdrop_default as Backdrop, Badge, BarChart_default as BarChart, BarGraph, BaseGraphDataSource, Block_default as Block, BlockGroup_default as BlockGroup, BoxNav_default as BoxNav, BoxNavItem_default as BoxNavItem, Brand_default as Brand, Breadcrumb, BreadcrumbItem_default as BreadcrumbItem, Button_default as Button, Caption, Card_default as Card, CardContent_default as CardContent, CardFooter_default as CardFooter, CardHeader_default as CardHeader, Chapter, Checkbox_default as Checkbox, Chip, CloudinaryImage_default as CloudinaryImage, CloudinaryProvider, CloudinaryVideo_default as CloudinaryVideo, Code, CommentThread_default as CommentThread, ConfigBootstrap_default as ConfigBootstrap, Configurator, ConfiguratorError, Content, ContentArea_default as ContentArea, DEFAULT_GRAPH_THEME, DataView, DataViewTable_default as DataViewTable, DateSelector_default as DateSelector, DefaultLayout_default as DefaultLayout, Display, DocumentationPanel_default as DocumentationPanel, Drawer, DrawerToggler_default as DrawerToggler, EUIDevLayout_default as EUIDevLayout, EUIProvider, EnvErrorScreen_default as EnvErrorScreen, Flag, Flex, FlexCol_default as FlexCol, FlexRow_default as FlexRow, Footer, FooterNav_default as FooterNav, FooterNavGroup_default as FooterNavGroup, FooterNavItem, FooterNavItemContext, FooterNavItemTitle, Form, FormResponse_default as FormResponse, GRAPH_COLOR_PALETTE, GRAPH_DARK_THEME, GRAPH_DATA_MODES, GRAPH_DEFAULT_ACTIVE_DOT_RADIUS, GRAPH_DEFAULT_ANIMATION_DURATION, GRAPH_DEFAULT_BAR_RADIUS, GRAPH_DEFAULT_DOT_RADIUS, GRAPH_DEFAULT_HEIGHT, GRAPH_DEFAULT_MARGIN, GRAPH_DEFAULT_MAX_REALTIME_POINTS, GRAPH_DEFAULT_POLLING_INTERVAL, GRAPH_DEFAULT_STROKE_WIDTH, GRAPH_EMPTY_MESSAGE, GRAPH_ERROR_MESSAGE, GRAPH_LIGHT_THEME, GRAPH_LOADING_MESSAGE, GRAPH_STATUSES, GRAPH_STATUS_COLORS, GRAPH_VALUE_FORMATS, GaugeGraph, GenericLayout_default as GenericLayout, GlowWrapper_default as GlowWrapper, Graph, GraphContainer, GraphContext, GraphEmptyState, GraphErrorState, GraphHeader, GraphLegend, GraphLoadingState, GraphPanel, GraphProvider, GraphToolbar, GraphTooltip, Grid_default as Grid, Header, HeaderNav_default as HeaderNav, HeaderNavGroup_default as HeaderNavGroup, HeaderNavItem, HeaderNavItemContext, HeaderNavItemTitle, HomeLayout_default as HomeLayout, Image2 as Image, ImageInput_default as ImageInput, InfiniteScrollTrigger_default as InfiniteScrollTrigger, Info_default as Info, Input, InputFile, InputLabel_default as InputLabel, InputList, InputListGroup, InputResponse_default as InputResponse, Label, Layout, Lead, LineChart_default as LineChart, LineGraph, Link, List_default as List, ListItem_default as ListItem, MarkdownEditor_default as MarkdownEditor, MarkdownProvider_default as MarkdownProvider, MarkdownTOC_default as MarkdownTOC, MarkdownViewer_default as MarkdownViewer, Menu, MenuGroup, MenuItem, MenuItemTitle, Modal_default as Modal, MotionSurface_default as MotionSurface, MultiImageInput_default as MultiImageInput, NumericRating_default as NumericRating, Overline, Paragraph, PieChart_default as PieChart, PieGraph, PollingGraphDataSource, PriceTag, ProgressBar, ProgressBarRating_default as ProgressBarRating, Quote, Radio_default as Radio, RealtimeGraphDataSource, RouteTab_default as RouteTab, RouteTabs_default as RouteTabs, ScatterGraph, ScrollToTop_default as ScrollToTop, Section, Select_default as Select, ShapeSwitch, ShowMore_default as ShowMore, Sidebar_default as Sidebar, SidebarLayout_default as SidebarLayout, SidemenuLayout_default as SidemenuLayout, Skeleton, Slider_default as Slider, StarRating_default as StarRating, StarRatingDistribution_default as StarRatingDistribution, StarRatingInput_default as StarRatingInput, StatGraph, StaticGraphDataSource, Switch_default as Switch, TNDropdown, TNDropdownItem, TNDropdownTitle, TNGroup, Table_default as Table, Tag_default as Tag, Tags_default as Tags, TextArea_default as TextArea, ThemeContext, ThemeProvider, ThemeSwitch, TitleBanner, Toast, Tooltip9 as Tooltip, TopNav, Transition4 as Transition, TransitionDropdown_default as TransitionDropdown, TransitionFadeIn_default as TransitionFadeIn, Typography, UnderConstructionBanner, ValueBadge_default as ValueBadge, WorldMap, WorldMapCountryTable, YoutubeVideo_default as YoutubeVideoPlayer, addReplyToCache, applyReactionState, assertAbsoluteURL, buildURL, cn, createConfigurator, createInitialGraphState, createURLResolver, decrementReplyCount, enumValues, formatCommentDate, formatConfigError, formatGraphValue, getAllowedOrigins, getBrowserHref, getBrowserOrigin, getBrowserRedirectURL, getCurrencySymbol, getOptimisticDislikeState, getOptimisticLikeState, getSafeRedirect, graphReducer, incrementReplyCount, isMatch, isRenderFn, limitRealtimePoints, normalize, normalizeGraphData, normalizeGraphDataPoint, parseJson, parseJsonRecord, parseUrlMap, removeComment, removeCommentTreeFromCache, replaceRealtimePoints, resolveAppearanceStyles, resolveGraphColor, resolveGraphColors, resolveWithGlobal, sendToast, toConfiguratorError, updateComment, updateReplyCacheComment, useClickOutside, useCloudinaryConfig, useCurrentTheme_default as useCurrentTheme, useDrawer_default as useDrawer, useEUIConfig, useGraphContext, useGraphData, useGraphPolling, useGraphRealtime, useGraphSeries, useGraphTheme, useIsMobile_default as useIsMobile, useModal_default as useModal, useTheme_default as useTheme };
21291
21712
  //# sourceMappingURL=index.mjs.map
21292
21713
  //# sourceMappingURL=index.mjs.map