elseware-ui 2.34.1 → 2.35.0

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.js CHANGED
@@ -811,6 +811,77 @@ var checkboxVariants = {
811
811
  light: "checked:bg-eui-light-400 checked:border-eui-light-400 dark:checked:bg-gray-200 dark:checked:border-gray-200",
812
812
  dark: "checked:bg-eui-dark-500 checked:border-eui-dark-500 dark:checked:bg-eui-dark-300 dark:checked:border-eui-dark-300"
813
813
  };
814
+ var spinnerSizes = {
815
+ xs: "w-4 h-4",
816
+ sm: "w-5 h-5",
817
+ md: "w-8 h-8",
818
+ lg: "w-12 h-12",
819
+ xl: "w-16 h-16"
820
+ };
821
+ var spinnerDotSizes = {
822
+ xs: "w-1 h-1",
823
+ sm: "w-1.5 h-1.5",
824
+ md: "w-2 h-2",
825
+ lg: "w-3 h-3",
826
+ xl: "w-4 h-4"
827
+ };
828
+ var spinnerBarSizes = {
829
+ xs: "w-0.5 h-3",
830
+ sm: "w-1 h-4",
831
+ md: "w-1.5 h-6",
832
+ lg: "w-2 h-8",
833
+ xl: "w-2.5 h-10"
834
+ };
835
+ var spinnerTextSizes = {
836
+ xs: "text-xs",
837
+ sm: "text-xs",
838
+ md: "text-sm",
839
+ lg: "text-base",
840
+ xl: "text-lg"
841
+ };
842
+ var spinnerStrokeSizes = {
843
+ xs: "border-2",
844
+ sm: "border-2",
845
+ md: "border-4",
846
+ lg: "border-4",
847
+ xl: "border-[5px]"
848
+ };
849
+ var spinnerVariants = {
850
+ default: "text-gray-500 dark:text-gray-300",
851
+ primary: "text-eui-primary-500 dark:text-eui-primary-400",
852
+ secondary: "text-eui-secondary-500 dark:text-eui-secondary-400",
853
+ success: "text-eui-success-500 dark:text-eui-success-400",
854
+ danger: "text-eui-danger-500 dark:text-eui-danger-400",
855
+ warning: "text-eui-warning-500 dark:text-eui-warning-400",
856
+ info: "text-eui-info-500 dark:text-eui-info-400",
857
+ light: "text-eui-light-500 dark:text-eui-light-300",
858
+ dark: "text-eui-dark-500 dark:text-eui-dark-300"
859
+ };
860
+ var spinnerTrackVariants = {
861
+ default: "border-gray-200 dark:border-gray-700",
862
+ primary: "border-eui-primary-500/20",
863
+ secondary: "border-eui-secondary-500/20",
864
+ success: "border-eui-success-500/20",
865
+ danger: "border-eui-danger-500/20",
866
+ warning: "border-eui-warning-500/20",
867
+ info: "border-eui-info-500/20",
868
+ light: "border-eui-light-500/20",
869
+ dark: "border-eui-dark-500/20"
870
+ };
871
+ var gridDotSizes = {
872
+ xs: "h-1 w-1",
873
+ sm: "h-1.5 w-1.5",
874
+ md: "h-2 w-2",
875
+ lg: "h-2.5 w-2.5",
876
+ xl: "h-3 w-3"
877
+ };
878
+ var waveItemSizes = {
879
+ xs: "h-3 w-0.5",
880
+ sm: "h-4 w-1",
881
+ md: "h-6 w-1.5",
882
+ lg: "h-8 w-2",
883
+ xl: "h-10 w-2.5"
884
+ };
814
885
  var Avatar = ({
815
886
  alt,
816
887
  icon,
@@ -5140,6 +5211,227 @@ function ProgressBarRating({
5140
5211
  ] });
5141
5212
  }
5142
5213
  var ProgressBarRating_default = ProgressBarRating;
5214
+ var Backdrop = ({ children, styles }) => {
5215
+ return /* @__PURE__ */ jsxRuntime.jsx(
5216
+ "div",
5217
+ {
5218
+ className: classNames16__default.default({
5219
+ "bg-black/75 top-0 bottom-0 left-0 right-0 z-50 fixed inset-0 flex items-center justify-center overflow-hidden": true,
5220
+ [`${styles}`]: styles
5221
+ }),
5222
+ children
5223
+ }
5224
+ );
5225
+ };
5226
+ var Backdrop_default = Backdrop;
5227
+ var DEFAULT_SPINNER_TYPE = "border";
5228
+ var DEFAULT_SPINNER_SIZE = "md";
5229
+ var DEFAULT_SPINNER_VARIANT = "primary";
5230
+ var DEFAULT_SPINNER_ARIA_LABEL = "Loading";
5231
+ var SPINNER_DOT_COUNT = 3;
5232
+ var SPINNER_BAR_COUNT = 5;
5233
+ var SPINNER_GRID_COUNT = 9;
5234
+ var SPINNER_WAVE_COUNT = 5;
5235
+ function Spinner({
5236
+ type = DEFAULT_SPINNER_TYPE,
5237
+ variant = DEFAULT_SPINNER_VARIANT,
5238
+ size = DEFAULT_SPINNER_SIZE,
5239
+ label,
5240
+ showLabel = true,
5241
+ centered = false,
5242
+ fullscreen = false,
5243
+ overlay = false,
5244
+ backdrop = true,
5245
+ direction = "vertical",
5246
+ className,
5247
+ spinnerClassName,
5248
+ labelClassName,
5249
+ ariaLabel = DEFAULT_SPINNER_ARIA_LABEL,
5250
+ ...rest
5251
+ }) {
5252
+ const hasVisibleLabel = Boolean(label) && showLabel;
5253
+ const spinnerColorClass = spinnerVariants[variant];
5254
+ const baseSpinnerClasses = cn(
5255
+ "eui-spinner",
5256
+ "inline-flex shrink-0 items-center justify-center",
5257
+ spinnerSizes[size],
5258
+ spinnerColorClass,
5259
+ spinnerClassName
5260
+ );
5261
+ const labelClasses = cn(
5262
+ "eui-spinner-label",
5263
+ "font-medium",
5264
+ spinnerTextSizes[size],
5265
+ spinnerColorClass,
5266
+ labelClassName
5267
+ );
5268
+ const contentLayoutClasses = cn(
5269
+ "eui-spinner-wrapper",
5270
+ "inline-flex items-center justify-center",
5271
+ direction === "vertical" ? "flex-col gap-3" : "flex-row gap-3",
5272
+ spinnerColorClass
5273
+ );
5274
+ const wrapperClasses = cn(
5275
+ contentLayoutClasses,
5276
+ centered && !fullscreen && !overlay && "w-full py-6",
5277
+ fullscreen && !backdrop && "fixed inset-0 z-50",
5278
+ overlay && "absolute inset-0 z-40",
5279
+ overlay && (backdrop ? "bg-white/70 backdrop-blur-sm dark:bg-black/60" : "bg-transparent"),
5280
+ className
5281
+ );
5282
+ const renderSpinner = () => {
5283
+ switch (type) {
5284
+ case "ring":
5285
+ return /* @__PURE__ */ jsxRuntime.jsx(
5286
+ "span",
5287
+ {
5288
+ className: cn(
5289
+ baseSpinnerClasses,
5290
+ "eui-spinner-ring rounded-full",
5291
+ spinnerStrokeSizes[size]
5292
+ )
5293
+ }
5294
+ );
5295
+ case "dots":
5296
+ return /* @__PURE__ */ jsxRuntime.jsx(
5297
+ "span",
5298
+ {
5299
+ className: cn(
5300
+ baseSpinnerClasses,
5301
+ "gap-1",
5302
+ size === "xl" && "gap-2"
5303
+ ),
5304
+ children: Array.from({ length: SPINNER_DOT_COUNT }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
5305
+ "span",
5306
+ {
5307
+ className: cn(
5308
+ "eui-spinner-dot rounded-full bg-current",
5309
+ spinnerDotSizes[size]
5310
+ )
5311
+ },
5312
+ index
5313
+ ))
5314
+ }
5315
+ );
5316
+ case "bars":
5317
+ return /* @__PURE__ */ jsxRuntime.jsx(
5318
+ "span",
5319
+ {
5320
+ className: cn(
5321
+ baseSpinnerClasses,
5322
+ "gap-1",
5323
+ size === "xl" && "gap-1.5"
5324
+ ),
5325
+ children: Array.from({ length: SPINNER_BAR_COUNT }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
5326
+ "span",
5327
+ {
5328
+ className: cn(
5329
+ "eui-spinner-bar rounded-full bg-current",
5330
+ spinnerBarSizes[size]
5331
+ )
5332
+ },
5333
+ index
5334
+ ))
5335
+ }
5336
+ );
5337
+ case "pulse":
5338
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(baseSpinnerClasses, "eui-spinner-pulse") });
5339
+ case "orbit":
5340
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(baseSpinnerClasses, "eui-spinner-orbit") });
5341
+ case "dualRing":
5342
+ return /* @__PURE__ */ jsxRuntime.jsx(
5343
+ "span",
5344
+ {
5345
+ className: cn(
5346
+ baseSpinnerClasses,
5347
+ "eui-spinner-dual-ring rounded-full"
5348
+ )
5349
+ }
5350
+ );
5351
+ case "ripple":
5352
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(baseSpinnerClasses, "eui-spinner-ripple") });
5353
+ case "grid":
5354
+ return /* @__PURE__ */ jsxRuntime.jsx(
5355
+ "span",
5356
+ {
5357
+ className: cn(
5358
+ baseSpinnerClasses,
5359
+ "grid grid-cols-3",
5360
+ size === "xs" || size === "sm" ? "gap-0.5" : "gap-1"
5361
+ ),
5362
+ children: Array.from({ length: SPINNER_GRID_COUNT }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
5363
+ "span",
5364
+ {
5365
+ className: cn("eui-spinner-grid-dot", gridDotSizes[size])
5366
+ },
5367
+ index
5368
+ ))
5369
+ }
5370
+ );
5371
+ case "wave":
5372
+ return /* @__PURE__ */ jsxRuntime.jsx(
5373
+ "span",
5374
+ {
5375
+ className: cn(
5376
+ baseSpinnerClasses,
5377
+ "gap-1",
5378
+ size === "xl" && "gap-1.5"
5379
+ ),
5380
+ children: Array.from({ length: SPINNER_WAVE_COUNT }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
5381
+ "span",
5382
+ {
5383
+ className: cn("eui-spinner-wave-item", waveItemSizes[size])
5384
+ },
5385
+ index
5386
+ ))
5387
+ }
5388
+ );
5389
+ case "border":
5390
+ default:
5391
+ return /* @__PURE__ */ jsxRuntime.jsx(
5392
+ "span",
5393
+ {
5394
+ className: cn(
5395
+ baseSpinnerClasses,
5396
+ "eui-spinner-border rounded-full",
5397
+ spinnerStrokeSizes[size],
5398
+ spinnerTrackVariants[variant]
5399
+ )
5400
+ }
5401
+ );
5402
+ }
5403
+ };
5404
+ const spinnerContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5405
+ renderSpinner(),
5406
+ hasVisibleLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: labelClasses, children: label }),
5407
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: ariaLabel })
5408
+ ] });
5409
+ if (fullscreen && backdrop) {
5410
+ return /* @__PURE__ */ jsxRuntime.jsx(Backdrop_default, { styles: cn("text-white", className), children: /* @__PURE__ */ jsxRuntime.jsx(
5411
+ "div",
5412
+ {
5413
+ ...rest,
5414
+ role: "status",
5415
+ "aria-live": "polite",
5416
+ "aria-label": ariaLabel,
5417
+ className: contentLayoutClasses,
5418
+ children: spinnerContent
5419
+ }
5420
+ ) });
5421
+ }
5422
+ return /* @__PURE__ */ jsxRuntime.jsx(
5423
+ "div",
5424
+ {
5425
+ ...rest,
5426
+ role: "status",
5427
+ "aria-live": "polite",
5428
+ "aria-label": ariaLabel,
5429
+ className: wrapperClasses,
5430
+ children: spinnerContent
5431
+ }
5432
+ );
5433
+ }
5434
+ var Spinner_default = Spinner;
5143
5435
  function Table({
5144
5436
  title,
5145
5437
  columns,
@@ -5452,19 +5744,6 @@ var Form = ({
5452
5744
  }
5453
5745
  );
5454
5746
  };
5455
- var Backdrop = ({ children, styles }) => {
5456
- return /* @__PURE__ */ jsxRuntime.jsx(
5457
- "div",
5458
- {
5459
- className: classNames16__default.default({
5460
- "bg-black/75 top-0 bottom-0 left-0 right-0 z-50 fixed inset-0 flex items-center justify-center overflow-hidden": true,
5461
- [`${styles}`]: styles
5462
- }),
5463
- children
5464
- }
5465
- );
5466
- };
5467
- var Backdrop_default = Backdrop;
5468
5747
  var Skeleton = ({ children, className, ...rest }) => {
5469
5748
  return /* @__PURE__ */ jsxRuntime.jsx(
5470
5749
  "div",
@@ -5721,7 +6000,7 @@ var ShapeSwitch = () => {
5721
6000
  {
5722
6001
  value: currentShape,
5723
6002
  onChange: handleChange,
5724
- 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 ",
6003
+ 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 ",
5725
6004
  children: Object.keys(Shape).map((shape) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: shape, children: shape }, shape))
5726
6005
  }
5727
6006
  ) });
@@ -18715,7 +18994,7 @@ function MarkdownTOC({ title = "Table of Contents" }) {
18715
18994
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
18716
18995
  "h2",
18717
18996
  {
18718
- 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 ",
18997
+ className: "\n text-sm\n font-semibold\n uppercase\n tracking-wide\n text-gray-900\n dark:text-gray-100\n ",
18719
18998
  children: title
18720
18999
  }
18721
19000
  ) }),
@@ -20045,7 +20324,7 @@ var GlowWrapper = ({
20045
20324
  /* @__PURE__ */ jsxRuntime.jsx(
20046
20325
  "span",
20047
20326
  {
20048
- className: "\r\n pointer-events-none absolute inset-0 opacity-0 \r\n group-hover:opacity-100 transition-opacity duration-300\r\n ",
20327
+ className: "\n pointer-events-none absolute inset-0 opacity-0 \n group-hover:opacity-100 transition-opacity duration-300\n ",
20049
20328
  style: { background: "var(--glow-bg)" }
20050
20329
  }
20051
20330
  ),
@@ -21872,6 +22151,7 @@ exports.SidebarLayout = SidebarLayout_default;
21872
22151
  exports.SidemenuLayout = SidemenuLayout_default;
21873
22152
  exports.Skeleton = Skeleton;
21874
22153
  exports.Slider = Slider_default;
22154
+ exports.Spinner = Spinner_default;
21875
22155
  exports.StarRating = StarRating_default;
21876
22156
  exports.StarRatingDistribution = StarRatingDistribution_default;
21877
22157
  exports.StarRatingInput = StarRatingInput_default;