@indico-data/design-system 2.53.0 → 2.54.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.
Files changed (67) hide show
  1. package/lib/components/index.d.ts +3 -0
  2. package/lib/components/loading-indicators/BarSpinner/BarSpinner.d.ts +8 -0
  3. package/lib/components/loading-indicators/BarSpinner/BarSpinner.stories.d.ts +7 -0
  4. package/lib/components/loading-indicators/BarSpinner/__tests__/BarSpinner.test.d.ts +1 -0
  5. package/lib/components/loading-indicators/CirclePulse/CirclePulse.d.ts +7 -0
  6. package/lib/components/loading-indicators/CirclePulse/CirclePulse.stories.d.ts +6 -0
  7. package/lib/components/tooltip/Tooltip.d.ts +13 -0
  8. package/lib/components/tooltip/Tooltip.stories.d.ts +6 -0
  9. package/lib/index.css +149 -0
  10. package/lib/index.d.ts +50 -46
  11. package/lib/index.esm.css +149 -0
  12. package/lib/index.esm.js +5789 -6001
  13. package/lib/index.esm.js.map +1 -1
  14. package/lib/index.js +5787 -5999
  15. package/lib/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/src/components/index.ts +3 -0
  18. package/src/components/loading-indicators/BarSpinner/BarSpinner.mdx +21 -0
  19. package/src/components/loading-indicators/BarSpinner/BarSpinner.stories.tsx +89 -0
  20. package/src/components/loading-indicators/BarSpinner/BarSpinner.tsx +25 -0
  21. package/src/components/loading-indicators/BarSpinner/__tests__/BarSpinner.test.tsx +16 -0
  22. package/src/{legacy/components/loading-indicators/BarSpinner/BarSpinner.styles.ts → components/loading-indicators/BarSpinner/styles/BarSpinner.scss} +11 -11
  23. package/src/components/loading-indicators/CirclePulse/CirclePulse.mdx +20 -0
  24. package/src/components/loading-indicators/CirclePulse/CirclePulse.scss +83 -0
  25. package/src/components/loading-indicators/CirclePulse/CirclePulse.stories.tsx +78 -0
  26. package/src/components/loading-indicators/CirclePulse/CirclePulse.tsx +15 -0
  27. package/src/components/tanstackTable/components/TableBody/TableBody.tsx +1 -1
  28. package/src/components/tooltip/Tooltip.mdx +25 -0
  29. package/src/components/tooltip/Tooltip.stories.tsx +113 -0
  30. package/src/components/tooltip/Tooltip.tsx +38 -0
  31. package/src/components/tooltip/styles/Tooltip.scss +8 -0
  32. package/src/index.ts +4 -2
  33. package/src/styles/globals.scss +9 -0
  34. package/src/styles/index.scss +3 -0
  35. package/lib/legacy/components/Tooltip/Tooltip.d.ts +0 -15
  36. package/lib/legacy/components/Tooltip/Tooltip.stories.d.ts +0 -9
  37. package/lib/legacy/components/Tooltip/Tooltip.styles.d.ts +0 -1
  38. package/lib/legacy/components/index.d.ts +0 -2
  39. package/lib/legacy/components/loading-indicators/BarSpinner/BarSpinner.d.ts +0 -7
  40. package/lib/legacy/components/loading-indicators/BarSpinner/BarSpinner.stories.d.ts +0 -10
  41. package/lib/legacy/components/loading-indicators/BarSpinner/BarSpinner.styles.d.ts +0 -1
  42. package/lib/legacy/components/loading-indicators/CirclePulse/CirclePulse.d.ts +0 -10
  43. package/lib/legacy/components/loading-indicators/CirclePulse/CirclePulse.stories.d.ts +0 -12
  44. package/lib/legacy/components/loading-indicators/CirclePulse/CirclePulse.styles.d.ts +0 -7
  45. package/lib/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.d.ts +0 -10
  46. package/lib/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.stories.d.ts +0 -10
  47. package/lib/legacy/components/loading-indicators/CircleSpinner/index.d.ts +0 -1
  48. package/lib/legacy/components/loading-indicators/index.d.ts +0 -3
  49. package/src/legacy/components/Tooltip/Tooltip.stories.tsx +0 -107
  50. package/src/legacy/components/Tooltip/Tooltip.styles.ts +0 -64
  51. package/src/legacy/components/Tooltip/Tooltip.tsx +0 -70
  52. package/src/legacy/components/index.ts +0 -2
  53. package/src/legacy/components/loading-indicators/BarSpinner/BarSpinner.stories.tsx +0 -14
  54. package/src/legacy/components/loading-indicators/BarSpinner/BarSpinner.tsx +0 -21
  55. package/src/legacy/components/loading-indicators/CirclePulse/CirclePulse.stories.tsx +0 -22
  56. package/src/legacy/components/loading-indicators/CirclePulse/CirclePulse.styles.ts +0 -77
  57. package/src/legacy/components/loading-indicators/CirclePulse/CirclePulse.tsx +0 -57
  58. package/src/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.stories.tsx +0 -16
  59. package/src/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.tsx +0 -36
  60. package/src/legacy/components/loading-indicators/CircleSpinner/index.ts +0 -1
  61. package/src/legacy/components/loading-indicators/index.ts +0 -3
  62. /package/lib/{legacy/components → components}/loading-indicators/BarSpinner/index.d.ts +0 -0
  63. /package/lib/{legacy/components → components}/loading-indicators/CirclePulse/index.d.ts +0 -0
  64. /package/lib/{legacy/components/Tooltip → components/tooltip}/index.d.ts +0 -0
  65. /package/src/{legacy/components → components}/loading-indicators/BarSpinner/index.ts +0 -0
  66. /package/src/{legacy/components → components}/loading-indicators/CirclePulse/index.ts +0 -0
  67. /package/src/{legacy/components/Tooltip → components/tooltip}/index.ts +0 -0
@@ -22,3 +22,6 @@ export { Modal } from './modal';
22
22
  export { Badge } from './badge';
23
23
  export { Pagination } from './pagination';
24
24
  export { TanstackTable } from './tanstackTable';
25
+ export { Tooltip } from './tooltip';
26
+ export { BarSpinner } from './loading-indicators/BarSpinner/BarSpinner';
27
+ export { CirclePulse } from './loading-indicators/CirclePulse/CirclePulse';
@@ -0,0 +1,8 @@
1
+ export declare function BarSpinner({ width, id, height, className, ...rest }: {
2
+ 'data-testid'?: string;
3
+ width?: number;
4
+ id?: string;
5
+ height?: number;
6
+ className?: string;
7
+ [key: string]: any;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { BarSpinner } from './BarSpinner';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj<typeof BarSpinner>;
6
+ export declare const Default: Story;
7
+ export declare const WithWidthAndHeight: Story;
@@ -0,0 +1,7 @@
1
+ interface CirclePulseProps {
2
+ size?: 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
3
+ className?: string;
4
+ [key: string]: any;
5
+ }
6
+ export declare function CirclePulse({ size, className, ...rest }: CirclePulseProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { CirclePulse } from './CirclePulse';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CirclePulse>;
6
+ export declare const Default: Story;
@@ -0,0 +1,13 @@
1
+ import { PlacesType } from 'react-tooltip';
2
+ interface TooltipProps {
3
+ id: string;
4
+ clickToShow?: boolean;
5
+ delayShow?: number;
6
+ delayHide?: number;
7
+ children: React.ReactNode;
8
+ zIndex?: number;
9
+ place?: PlacesType;
10
+ [key: string]: any;
11
+ }
12
+ export declare const Tooltip: ({ id, clickToShow, delayShow, delayHide, children, zIndex, place, ...rest }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from '@storybook/react';
2
+ import { Tooltip } from './Tooltip';
3
+ declare const meta: Meta;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Tooltip>;
6
+ export declare const Default: Story;
package/lib/index.css CHANGED
@@ -438,6 +438,14 @@ a:hover,
438
438
  background-color: var(--pf-background-color);
439
439
  }
440
440
 
441
+ .react-tooltip {
442
+ z-index: 5;
443
+ background-color: var(--pf-tooltip-background-color);
444
+ border: var(--pf-border-sm) solid var(--pf-border-color);
445
+ opacity: 1 !important;
446
+ text-wrap: wrap;
447
+ }
448
+
441
449
  :root,
442
450
  :root [data-theme=light],
443
451
  :root [data-theme=dark] {
@@ -2477,6 +2485,147 @@ form {
2477
2485
  border-color: var(--pf-pill-pending-border-color);
2478
2486
  }
2479
2487
 
2488
+ :root [data-theme=light] {
2489
+ --pf-tooltip-background-color: var(--pf-white-color);
2490
+ }
2491
+
2492
+ :root [data-theme=dark],
2493
+ :root {
2494
+ --pf-tooltip-background-color: var(--pf-primary-color-900);
2495
+ }
2496
+
2497
+ @keyframes moveBg {
2498
+ 0% {
2499
+ transform: translateX(0);
2500
+ }
2501
+ 100% {
2502
+ transform: translateX(46px);
2503
+ }
2504
+ }
2505
+ .bar-spinner {
2506
+ display: inline-block;
2507
+ position: relative;
2508
+ width: 100%;
2509
+ height: 100%;
2510
+ min-height: 14px;
2511
+ border-radius: 25px;
2512
+ background-color: var(--pf-primary-color-800);
2513
+ }
2514
+ .bar-spinner > span {
2515
+ display: block;
2516
+ height: 100%;
2517
+ width: 100%;
2518
+ border-radius: 25px;
2519
+ position: relative;
2520
+ overflow: hidden;
2521
+ }
2522
+ .bar-spinner > span:after {
2523
+ content: "";
2524
+ position: absolute;
2525
+ top: 0;
2526
+ left: -46px;
2527
+ bottom: 0;
2528
+ right: 0;
2529
+ background: repeating-linear-gradient(-55deg, transparent 1px, rgba(255, 255, 255, 0.25) 2px, rgba(255, 255, 255, 0.25) 11px, transparent 12px, transparent 20px);
2530
+ animation-name: moveBg;
2531
+ animation-duration: 1s;
2532
+ animation-timing-function: linear;
2533
+ animation-iteration-count: infinite;
2534
+ border-radius: 20px;
2535
+ overflow: hidden;
2536
+ }
2537
+
2538
+ :root {
2539
+ --circle-pulse-animation-speed: 1.4s;
2540
+ --circle-pulse-border-width: var(--pf-border-xl);
2541
+ }
2542
+
2543
+ .circle-pulse-xxs {
2544
+ --circle-pulse-size: 20px;
2545
+ --circle-pulse-ripple-size: calc(20px * 1.7);
2546
+ }
2547
+
2548
+ .circle-pulse-xs {
2549
+ --circle-pulse-size: 40px;
2550
+ --circle-pulse-ripple-size: calc(40px * 1.7);
2551
+ }
2552
+
2553
+ .circle-pulse-sm {
2554
+ --circle-pulse-size: 60px;
2555
+ --circle-pulse-ripple-size: calc(60px * 1.7);
2556
+ }
2557
+
2558
+ .circle-pulse-md {
2559
+ --circle-pulse-size: 80px;
2560
+ --circle-pulse-ripple-size: calc(80px * 1.7);
2561
+ }
2562
+
2563
+ .circle-pulse-lg {
2564
+ --circle-pulse-size: 100px;
2565
+ --circle-pulse-ripple-size: calc(100px * 1.7);
2566
+ }
2567
+
2568
+ .circle-pulse-xl {
2569
+ --circle-pulse-size: 120px;
2570
+ --circle-pulse-ripple-size: calc(120px * 1.7);
2571
+ }
2572
+
2573
+ .circle-pulse-xxl {
2574
+ --circle-pulse-size: 140px;
2575
+ --circle-pulse-ripple-size: calc(140px * 1.7);
2576
+ }
2577
+
2578
+ @keyframes ripple {
2579
+ 0% {
2580
+ transform: translate(-50%, -50%) scale(0);
2581
+ opacity: 0;
2582
+ }
2583
+ 20% {
2584
+ opacity: 1;
2585
+ }
2586
+ 100% {
2587
+ transform: translate(-50%, -50%) scale(1);
2588
+ opacity: 0;
2589
+ }
2590
+ }
2591
+ .circle-pulse {
2592
+ display: grid;
2593
+ place-items: center;
2594
+ position: relative;
2595
+ width: var(--circle-pulse-size);
2596
+ height: var(--circle-pulse-size);
2597
+ margin-left: auto;
2598
+ margin-right: auto;
2599
+ }
2600
+ .circle-pulse:before, .circle-pulse:after {
2601
+ content: "";
2602
+ position: absolute;
2603
+ border: var(--circle-pulse-border-width) solid var(--pf-primary-color-300);
2604
+ border-radius: 50%;
2605
+ /* Set initial dimensions */
2606
+ width: var(--circle-pulse-ripple-size);
2607
+ height: var(--circle-pulse-ripple-size);
2608
+ /* Position at center */
2609
+ top: 50%;
2610
+ left: 50%;
2611
+ transform: translate(-50%, -50%) scale(0);
2612
+ transform-origin: center;
2613
+ animation: ripple var(--circle-pulse-animation-speed) cubic-bezier(0, 0.2, 0.8, 1) infinite;
2614
+ }
2615
+ @media (prefers-reduced-motion) {
2616
+ .circle-pulse:before, .circle-pulse:after {
2617
+ animation-duration: calc(var(--circle-pulse-animation-speed) * 2);
2618
+ }
2619
+ }
2620
+ .circle-pulse:after {
2621
+ animation-delay: calc(var(--circle-pulse-animation-speed) * -0.5);
2622
+ }
2623
+ @media (prefers-reduced-motion) {
2624
+ .circle-pulse:after {
2625
+ animation-delay: calc(var(--circle-pulse-animation-speed) * -1);
2626
+ }
2627
+ }
2628
+
2480
2629
  :root [data-theme=light] {
2481
2630
  --sheets-background-color: var(--pf-gray-color-100);
2482
2631
  }
package/lib/index.d.ts CHANGED
@@ -1,18 +1,25 @@
1
1
  import { IconDefinition, IconName as IconName$1 } from '@fortawesome/fontawesome-svg-core';
2
2
  import { UseFloatingOptions } from '@floating-ui/react-dom';
3
3
  export * from '@floating-ui/react-dom';
4
- import React$1, { CSSProperties, MouseEventHandler, ReactElement } from 'react';
5
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
6
5
  import { ContainerProps, RowProps, ColProps } from 'react-grid-system';
6
+ import React$1, { CSSProperties, MouseEventHandler, ReactElement } from 'react';
7
7
  import { IDataTableProps, Direction as Direction$1, TableColumn as TableColumn$1 } from 'react-data-table-component';
8
8
  import { CSSObject } from 'styled-components';
9
- import { Props as Props$8 } from 'react-select';
9
+ import { Props as Props$4 } from 'react-select';
10
10
  import { DateRange, OnSelectHandler, Mode, CustomComponents, Matcher, Formatters, MonthChangeEventHandler, DayEventHandler } from 'react-day-picker';
11
11
  import { ColumnDef, Row as Row$1 } from '@tanstack/react-table';
12
12
  export { ColumnDef, Row as TanstackTableRowType, Table as TanstackTableType } from '@tanstack/react-table';
13
+ import { PlacesType } from 'react-tooltip';
13
14
 
14
15
  declare const registerFontAwesomeIcons: (...icons: IconDefinition[]) => void;
15
16
 
17
+ declare const Container: ({ ref: _ref, ...rest }: ContainerProps) => react_jsx_runtime.JSX.Element;
18
+
19
+ declare const Row: ({ ref: _ref, ...rest }: RowProps) => react_jsx_runtime.JSX.Element;
20
+
21
+ declare const Col: ({ ref: _ref, ...rest }: ColProps) => react_jsx_runtime.JSX.Element;
22
+
16
23
  declare const indicons: {
17
24
  'indico-o-white': react_jsx_runtime.JSX.Element;
18
25
  account: react_jsx_runtime.JSX.Element;
@@ -224,46 +231,6 @@ type PermafrostComponent = {
224
231
 
225
232
  type SemanticColor = 'primary' | 'secondary' | 'warning' | 'error' | 'success' | 'info' | 'pending';
226
233
 
227
- type Props$7 = PermafrostComponent & {
228
- ariaLabel?: string;
229
- size?: IconSizes;
230
- style?: React$1.CSSProperties;
231
- fill?: string;
232
- };
233
- declare function CircleSpinner(props: Props$7): React$1.ReactElement;
234
-
235
- type Props$6 = PermafrostComponent & {
236
- width?: string;
237
- };
238
- declare function BarSpinner(props: Props$6): React$1.ReactElement;
239
-
240
- type Props$5 = PermafrostComponent & {
241
- color?: string;
242
- overallSize?: string | number;
243
- rippleSize?: string | number;
244
- showRandomMessage?: boolean;
245
- };
246
- declare function CirclePulse(props: Props$5): React$1.ReactElement;
247
-
248
- type Props$4 = PermafrostComponent & {
249
- questionMark?: boolean;
250
- for?: string | null;
251
- place?: string;
252
- clickToShow?: boolean;
253
- delayShow?: number;
254
- delayHide?: number;
255
- questionMarkClassName?: string;
256
- children: React$1.ReactNode;
257
- block?: boolean;
258
- };
259
- declare const Tooltip: (props: Props$4) => react_jsx_runtime.JSX.Element;
260
-
261
- declare const Container: ({ ref: _ref, ...rest }: ContainerProps) => react_jsx_runtime.JSX.Element;
262
-
263
- declare const Row: ({ ref: _ref, ...rest }: RowProps) => react_jsx_runtime.JSX.Element;
264
-
265
- declare const Col: ({ ref: _ref, ...rest }: ColProps) => react_jsx_runtime.JSX.Element;
266
-
267
234
  type ButtonVariants = 'solid' | 'outline' | 'link' | 'action' | 'destructive' | 'soft';
268
235
  type ButtonSizes = 'xs' | 'sm' | 'md' | 'lg';
269
236
  type ButtonTypes = 'button' | 'submit' | 'reset';
@@ -393,7 +360,7 @@ interface PasswordInputProps extends LabelProps {
393
360
  }
394
361
  declare const LabeledPasswordInput: React$1.ForwardRefExoticComponent<Omit<Omit<PasswordInputProps, "ref"> & React$1.RefAttributes<HTMLInputElement> & LabelProps, "ref"> & React$1.RefAttributes<any>>;
395
362
 
396
- interface SelectProps<OptionType extends SelectOption> extends Props$8<OptionType> {
363
+ interface SelectProps<OptionType extends SelectOption> extends Props$4<OptionType> {
397
364
  options: OptionType[];
398
365
  }
399
366
  declare const Select: <OptionType extends SelectOption>({ classNamePrefix, className, components: customComponents, ...props }: SelectProps<OptionType>) => react_jsx_runtime.JSX.Element;
@@ -578,7 +545,7 @@ type WithoutPaginationProps = {
578
545
  totalEntriesText?: string;
579
546
  showPagination?: false;
580
547
  };
581
- type PaginationProps = WithPaginationProps | WithoutPaginationProps;
548
+ type PaginationProps$1 = WithPaginationProps | WithoutPaginationProps;
582
549
  type Props<T extends object> = {
583
550
  data: T[];
584
551
  columns: ColumnDef<T & {
@@ -605,10 +572,47 @@ type Props<T extends object> = {
605
572
  rowSelection?: Record<string, boolean>;
606
573
  onRowSelectionChange?: (updater: Record<string, boolean>) => void;
607
574
  onSelectAllChange?: (isSelected: boolean) => void;
608
- } & PaginationProps;
575
+ } & PaginationProps$1;
609
576
 
610
577
  declare function TanstackTable<T extends object>({ columns: defaultColumns, data, className, currentPage, rowCount, rowsPerPage, onChangePage, totalEntriesText, TableActions, error, enableRowSelection, clearFilters, hasFilters, showPagination, isLoading, defaultPinnedColumns, onRowClick, activeRows, actionBarClassName, ...rest }: Props<T & {
611
578
  id: string;
612
579
  }>): react_jsx_runtime.JSX.Element;
613
580
 
614
- export { Badge, BarSpinner, Button, Card, Checkbox, CirclePulse, CircleSpinner, Col, Container, DatePicker, FloatUI, Form, Icon, IconTriggerDatePicker, LabeledInput as Input, Menu, Modal, LabeledPasswordInput as PasswordInput, Pill, Radio as RadioInput, Row, Select as SelectInput, SingleInputDatePicker, Skeleton, Table, TanstackTable, LabeledTextarea as Textarea, TimePicker, Toggle as ToggleInput, Tooltip, registerFontAwesomeIcons };
581
+ interface TooltipProps {
582
+ id: string;
583
+ clickToShow?: boolean;
584
+ delayShow?: number;
585
+ delayHide?: number;
586
+ children: React.ReactNode;
587
+ zIndex?: number;
588
+ place?: PlacesType;
589
+ [key: string]: any;
590
+ }
591
+ declare const Tooltip: ({ id, clickToShow, delayShow, delayHide, children, zIndex, place, ...rest }: TooltipProps) => react_jsx_runtime.JSX.Element;
592
+
593
+ interface PaginationProps {
594
+ totalPages: number;
595
+ currentPage?: number;
596
+ className?: string;
597
+ onChange?: (value: number) => void;
598
+ }
599
+
600
+ declare const Pagination: ({ totalPages, currentPage, onChange, className, ...rest }: PaginationProps) => react_jsx_runtime.JSX.Element;
601
+
602
+ interface CirclePulseProps {
603
+ size?: 'xxs' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
604
+ className?: string;
605
+ [key: string]: any;
606
+ }
607
+ declare function CirclePulse({ size, className, ...rest }: CirclePulseProps): react_jsx_runtime.JSX.Element;
608
+
609
+ declare function BarSpinner({ width, id, height, className, ...rest }: {
610
+ 'data-testid'?: string;
611
+ width?: number;
612
+ id?: string;
613
+ height?: number;
614
+ className?: string;
615
+ [key: string]: any;
616
+ }): react_jsx_runtime.JSX.Element;
617
+
618
+ export { Badge, BarSpinner, Button, Card, Checkbox, CirclePulse, Col, Container, DatePicker, FloatUI, Form, Icon, IconTriggerDatePicker, LabeledInput as Input, Menu, Modal, Pagination, LabeledPasswordInput as PasswordInput, Pill, Radio as RadioInput, Row, Select as SelectInput, SingleInputDatePicker, Skeleton, Table, TanstackTable, LabeledTextarea as Textarea, TimePicker, Toggle as ToggleInput, Tooltip, registerFontAwesomeIcons };
package/lib/index.esm.css CHANGED
@@ -438,6 +438,14 @@ a:hover,
438
438
  background-color: var(--pf-background-color);
439
439
  }
440
440
 
441
+ .react-tooltip {
442
+ z-index: 5;
443
+ background-color: var(--pf-tooltip-background-color);
444
+ border: var(--pf-border-sm) solid var(--pf-border-color);
445
+ opacity: 1 !important;
446
+ text-wrap: wrap;
447
+ }
448
+
441
449
  :root,
442
450
  :root [data-theme=light],
443
451
  :root [data-theme=dark] {
@@ -2477,6 +2485,147 @@ form {
2477
2485
  border-color: var(--pf-pill-pending-border-color);
2478
2486
  }
2479
2487
 
2488
+ :root [data-theme=light] {
2489
+ --pf-tooltip-background-color: var(--pf-white-color);
2490
+ }
2491
+
2492
+ :root [data-theme=dark],
2493
+ :root {
2494
+ --pf-tooltip-background-color: var(--pf-primary-color-900);
2495
+ }
2496
+
2497
+ @keyframes moveBg {
2498
+ 0% {
2499
+ transform: translateX(0);
2500
+ }
2501
+ 100% {
2502
+ transform: translateX(46px);
2503
+ }
2504
+ }
2505
+ .bar-spinner {
2506
+ display: inline-block;
2507
+ position: relative;
2508
+ width: 100%;
2509
+ height: 100%;
2510
+ min-height: 14px;
2511
+ border-radius: 25px;
2512
+ background-color: var(--pf-primary-color-800);
2513
+ }
2514
+ .bar-spinner > span {
2515
+ display: block;
2516
+ height: 100%;
2517
+ width: 100%;
2518
+ border-radius: 25px;
2519
+ position: relative;
2520
+ overflow: hidden;
2521
+ }
2522
+ .bar-spinner > span:after {
2523
+ content: "";
2524
+ position: absolute;
2525
+ top: 0;
2526
+ left: -46px;
2527
+ bottom: 0;
2528
+ right: 0;
2529
+ background: repeating-linear-gradient(-55deg, transparent 1px, rgba(255, 255, 255, 0.25) 2px, rgba(255, 255, 255, 0.25) 11px, transparent 12px, transparent 20px);
2530
+ animation-name: moveBg;
2531
+ animation-duration: 1s;
2532
+ animation-timing-function: linear;
2533
+ animation-iteration-count: infinite;
2534
+ border-radius: 20px;
2535
+ overflow: hidden;
2536
+ }
2537
+
2538
+ :root {
2539
+ --circle-pulse-animation-speed: 1.4s;
2540
+ --circle-pulse-border-width: var(--pf-border-xl);
2541
+ }
2542
+
2543
+ .circle-pulse-xxs {
2544
+ --circle-pulse-size: 20px;
2545
+ --circle-pulse-ripple-size: calc(20px * 1.7);
2546
+ }
2547
+
2548
+ .circle-pulse-xs {
2549
+ --circle-pulse-size: 40px;
2550
+ --circle-pulse-ripple-size: calc(40px * 1.7);
2551
+ }
2552
+
2553
+ .circle-pulse-sm {
2554
+ --circle-pulse-size: 60px;
2555
+ --circle-pulse-ripple-size: calc(60px * 1.7);
2556
+ }
2557
+
2558
+ .circle-pulse-md {
2559
+ --circle-pulse-size: 80px;
2560
+ --circle-pulse-ripple-size: calc(80px * 1.7);
2561
+ }
2562
+
2563
+ .circle-pulse-lg {
2564
+ --circle-pulse-size: 100px;
2565
+ --circle-pulse-ripple-size: calc(100px * 1.7);
2566
+ }
2567
+
2568
+ .circle-pulse-xl {
2569
+ --circle-pulse-size: 120px;
2570
+ --circle-pulse-ripple-size: calc(120px * 1.7);
2571
+ }
2572
+
2573
+ .circle-pulse-xxl {
2574
+ --circle-pulse-size: 140px;
2575
+ --circle-pulse-ripple-size: calc(140px * 1.7);
2576
+ }
2577
+
2578
+ @keyframes ripple {
2579
+ 0% {
2580
+ transform: translate(-50%, -50%) scale(0);
2581
+ opacity: 0;
2582
+ }
2583
+ 20% {
2584
+ opacity: 1;
2585
+ }
2586
+ 100% {
2587
+ transform: translate(-50%, -50%) scale(1);
2588
+ opacity: 0;
2589
+ }
2590
+ }
2591
+ .circle-pulse {
2592
+ display: grid;
2593
+ place-items: center;
2594
+ position: relative;
2595
+ width: var(--circle-pulse-size);
2596
+ height: var(--circle-pulse-size);
2597
+ margin-left: auto;
2598
+ margin-right: auto;
2599
+ }
2600
+ .circle-pulse:before, .circle-pulse:after {
2601
+ content: "";
2602
+ position: absolute;
2603
+ border: var(--circle-pulse-border-width) solid var(--pf-primary-color-300);
2604
+ border-radius: 50%;
2605
+ /* Set initial dimensions */
2606
+ width: var(--circle-pulse-ripple-size);
2607
+ height: var(--circle-pulse-ripple-size);
2608
+ /* Position at center */
2609
+ top: 50%;
2610
+ left: 50%;
2611
+ transform: translate(-50%, -50%) scale(0);
2612
+ transform-origin: center;
2613
+ animation: ripple var(--circle-pulse-animation-speed) cubic-bezier(0, 0.2, 0.8, 1) infinite;
2614
+ }
2615
+ @media (prefers-reduced-motion) {
2616
+ .circle-pulse:before, .circle-pulse:after {
2617
+ animation-duration: calc(var(--circle-pulse-animation-speed) * 2);
2618
+ }
2619
+ }
2620
+ .circle-pulse:after {
2621
+ animation-delay: calc(var(--circle-pulse-animation-speed) * -0.5);
2622
+ }
2623
+ @media (prefers-reduced-motion) {
2624
+ .circle-pulse:after {
2625
+ animation-delay: calc(var(--circle-pulse-animation-speed) * -1);
2626
+ }
2627
+ }
2628
+
2480
2629
  :root [data-theme=light] {
2481
2630
  --sheets-background-color: var(--pf-gray-color-100);
2482
2631
  }