@indico-data/design-system 2.52.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 (90) hide show
  1. package/lib/components/forms/date/datePicker/types.d.ts +3 -0
  2. package/lib/components/forms/input/Input.d.ts +2 -1
  3. package/lib/components/forms/timePicker/TimePicker.d.ts +7 -0
  4. package/lib/components/forms/timePicker/TimePicker.stories.d.ts +6 -0
  5. package/lib/components/forms/timePicker/__tests__/TimePicker.test.d.ts +1 -0
  6. package/lib/components/forms/timePicker/constants.d.ts +13 -0
  7. package/lib/components/forms/timePicker/helpers.d.ts +5 -0
  8. package/lib/components/forms/timePicker/index.d.ts +1 -0
  9. package/lib/components/index.d.ts +3 -0
  10. package/lib/components/loading-indicators/BarSpinner/BarSpinner.d.ts +8 -0
  11. package/lib/components/loading-indicators/BarSpinner/BarSpinner.stories.d.ts +7 -0
  12. package/lib/components/loading-indicators/BarSpinner/__tests__/BarSpinner.test.d.ts +1 -0
  13. package/lib/components/loading-indicators/CirclePulse/CirclePulse.d.ts +7 -0
  14. package/lib/components/loading-indicators/CirclePulse/CirclePulse.stories.d.ts +6 -0
  15. package/lib/components/tooltip/Tooltip.d.ts +13 -0
  16. package/lib/components/tooltip/Tooltip.stories.d.ts +6 -0
  17. package/lib/index.css +269 -1
  18. package/lib/index.d.ts +62 -47
  19. package/lib/index.esm.css +269 -1
  20. package/lib/index.esm.js +6080 -6235
  21. package/lib/index.esm.js.map +1 -1
  22. package/lib/index.js +6079 -6233
  23. package/lib/index.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/components/forms/date/datePicker/DatePicker.stories.tsx +67 -4
  26. package/src/components/forms/date/datePicker/DatePicker.tsx +28 -2
  27. package/src/components/forms/date/datePicker/styles/DatePicker.scss +9 -0
  28. package/src/components/forms/date/datePicker/types.ts +3 -0
  29. package/src/components/forms/form/styles/Form.scss +1 -0
  30. package/src/components/forms/input/Input.tsx +5 -2
  31. package/src/components/forms/numberInput/NumberInput.tsx +1 -1
  32. package/src/components/forms/timePicker/TimePicker.mdx +39 -0
  33. package/src/components/forms/timePicker/TimePicker.stories.tsx +79 -0
  34. package/src/components/forms/timePicker/TimePicker.tsx +104 -0
  35. package/src/components/forms/timePicker/__tests__/TimePicker.test.tsx +26 -0
  36. package/src/components/forms/timePicker/constants.ts +21 -0
  37. package/src/components/forms/timePicker/helpers.ts +14 -0
  38. package/src/components/forms/timePicker/index.ts +1 -0
  39. package/src/components/forms/timePicker/styles/TimePicker.scss +51 -0
  40. package/src/components/index.ts +3 -0
  41. package/src/components/loading-indicators/BarSpinner/BarSpinner.mdx +21 -0
  42. package/src/components/loading-indicators/BarSpinner/BarSpinner.stories.tsx +89 -0
  43. package/src/components/loading-indicators/BarSpinner/BarSpinner.tsx +25 -0
  44. package/src/components/loading-indicators/BarSpinner/__tests__/BarSpinner.test.tsx +16 -0
  45. package/src/{legacy/components/loading-indicators/BarSpinner/BarSpinner.styles.ts → components/loading-indicators/BarSpinner/styles/BarSpinner.scss} +11 -11
  46. package/src/components/loading-indicators/CirclePulse/CirclePulse.mdx +20 -0
  47. package/src/components/loading-indicators/CirclePulse/CirclePulse.scss +83 -0
  48. package/src/components/loading-indicators/CirclePulse/CirclePulse.stories.tsx +78 -0
  49. package/src/components/loading-indicators/CirclePulse/CirclePulse.tsx +15 -0
  50. package/src/components/tanstackTable/components/TableBody/TableBody.tsx +1 -1
  51. package/src/components/tooltip/Tooltip.mdx +25 -0
  52. package/src/components/tooltip/Tooltip.stories.tsx +113 -0
  53. package/src/components/tooltip/Tooltip.tsx +38 -0
  54. package/src/components/tooltip/styles/Tooltip.scss +8 -0
  55. package/src/index.ts +5 -2
  56. package/src/styles/globals.scss +9 -0
  57. package/src/styles/index.scss +5 -1
  58. package/lib/legacy/components/Tooltip/Tooltip.d.ts +0 -15
  59. package/lib/legacy/components/Tooltip/Tooltip.stories.d.ts +0 -9
  60. package/lib/legacy/components/Tooltip/Tooltip.styles.d.ts +0 -1
  61. package/lib/legacy/components/index.d.ts +0 -2
  62. package/lib/legacy/components/loading-indicators/BarSpinner/BarSpinner.d.ts +0 -7
  63. package/lib/legacy/components/loading-indicators/BarSpinner/BarSpinner.stories.d.ts +0 -10
  64. package/lib/legacy/components/loading-indicators/BarSpinner/BarSpinner.styles.d.ts +0 -1
  65. package/lib/legacy/components/loading-indicators/CirclePulse/CirclePulse.d.ts +0 -10
  66. package/lib/legacy/components/loading-indicators/CirclePulse/CirclePulse.stories.d.ts +0 -12
  67. package/lib/legacy/components/loading-indicators/CirclePulse/CirclePulse.styles.d.ts +0 -7
  68. package/lib/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.d.ts +0 -10
  69. package/lib/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.stories.d.ts +0 -10
  70. package/lib/legacy/components/loading-indicators/CircleSpinner/index.d.ts +0 -1
  71. package/lib/legacy/components/loading-indicators/index.d.ts +0 -3
  72. package/src/legacy/components/Tooltip/Tooltip.stories.tsx +0 -107
  73. package/src/legacy/components/Tooltip/Tooltip.styles.ts +0 -64
  74. package/src/legacy/components/Tooltip/Tooltip.tsx +0 -70
  75. package/src/legacy/components/index.ts +0 -2
  76. package/src/legacy/components/loading-indicators/BarSpinner/BarSpinner.stories.tsx +0 -14
  77. package/src/legacy/components/loading-indicators/BarSpinner/BarSpinner.tsx +0 -21
  78. package/src/legacy/components/loading-indicators/CirclePulse/CirclePulse.stories.tsx +0 -22
  79. package/src/legacy/components/loading-indicators/CirclePulse/CirclePulse.styles.ts +0 -77
  80. package/src/legacy/components/loading-indicators/CirclePulse/CirclePulse.tsx +0 -57
  81. package/src/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.stories.tsx +0 -16
  82. package/src/legacy/components/loading-indicators/CircleSpinner/CircleSpinner.tsx +0 -36
  83. package/src/legacy/components/loading-indicators/CircleSpinner/index.ts +0 -1
  84. package/src/legacy/components/loading-indicators/index.ts +0 -3
  85. /package/lib/{legacy/components → components}/loading-indicators/BarSpinner/index.d.ts +0 -0
  86. /package/lib/{legacy/components → components}/loading-indicators/CirclePulse/index.d.ts +0 -0
  87. /package/lib/{legacy/components/Tooltip → components/tooltip}/index.d.ts +0 -0
  88. /package/src/{legacy/components → components}/loading-indicators/BarSpinner/index.ts +0 -0
  89. /package/src/{legacy/components → components}/loading-indicators/CirclePulse/index.ts +0 -0
  90. /package/src/{legacy/components/Tooltip → components/tooltip}/index.ts +0 -0
@@ -9,6 +9,8 @@ export interface DatePickerProps {
9
9
  month?: Date;
10
10
  defaultMonth?: Date;
11
11
  startMonth?: Date | undefined;
12
+ hasTimePicker?: boolean;
13
+ timeValue?: string;
12
14
  endMonth?: Date;
13
15
  components?: Partial<CustomComponents>;
14
16
  numberOfMonths?: number;
@@ -20,6 +22,7 @@ export interface DatePickerProps {
20
22
  isRequired?: any;
21
23
  min?: number;
22
24
  max?: number;
25
+ onTimeChange?: (time: string) => void;
23
26
  onMonthChange?: MonthChangeEventHandler;
24
27
  onNextClick?: MonthChangeEventHandler;
25
28
  onPrevClick?: MonthChangeEventHandler;
@@ -7,10 +7,11 @@ export interface BaseInputProps {
7
7
  placeholder?: string;
8
8
  isDisabled?: boolean;
9
9
  readonly?: boolean;
10
- onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
10
+ onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
11
11
  onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
12
12
  onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
13
13
  errorMessage?: string | undefined;
14
+ maxLength?: number;
14
15
  helpText?: string;
15
16
  iconName?: IconName;
16
17
  isClearable?: boolean;
@@ -0,0 +1,7 @@
1
+ interface TimePickerProps {
2
+ timeValue?: string;
3
+ label?: string;
4
+ onTimeChange?: (time: string) => void;
5
+ }
6
+ export declare const TimePicker: ({ timeValue, label, onTimeChange, }: TimePickerProps) => import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,6 @@
1
+ import { TimePicker } from './TimePicker';
2
+ import type { Meta, StoryObj } from '@storybook/react';
3
+ declare const meta: Meta<typeof TimePicker>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof TimePicker>;
6
+ export declare const Default: Story;
@@ -0,0 +1,13 @@
1
+ declare const hourOptions: {
2
+ label: string;
3
+ value: string;
4
+ }[];
5
+ declare const minuteOptions: {
6
+ label: string;
7
+ value: string;
8
+ }[];
9
+ declare const periodOptions: {
10
+ label: string;
11
+ value: string;
12
+ }[];
13
+ export { hourOptions, minuteOptions, periodOptions };
@@ -0,0 +1,5 @@
1
+ export declare const parseTimeValue: (time: string) => {
2
+ hours: string;
3
+ minutes: string;
4
+ period: string;
5
+ };
@@ -0,0 +1 @@
1
+ export * from './TimePicker';
@@ -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] {
@@ -1314,12 +1322,15 @@ form {
1314
1322
  --pf-form-input-disabled-color: var(--pf-tertiary-color-950);
1315
1323
  }
1316
1324
 
1325
+ .time-input-wrapper input,
1317
1326
  .input-wrapper input,
1318
1327
  .number-input-wrapper input,
1319
1328
  .password-input-wrapper input,
1320
1329
  .textarea-wrapper input {
1321
1330
  height: var(--pf-size-9);
1322
1331
  }
1332
+ .time-input-wrapper input,
1333
+ .time-input-wrapper textarea,
1323
1334
  .input-wrapper input,
1324
1335
  .input-wrapper textarea,
1325
1336
  .number-input-wrapper input,
@@ -1335,9 +1346,11 @@ form {
1335
1346
  width: 100%;
1336
1347
  box-sizing: border-box;
1337
1348
  }
1338
- .input-wrapper input::-moz-placeholder, .input-wrapper textarea::-moz-placeholder, .number-input-wrapper input::-moz-placeholder, .number-input-wrapper textarea::-moz-placeholder, .password-input-wrapper input::-moz-placeholder, .password-input-wrapper textarea::-moz-placeholder, .textarea-wrapper input::-moz-placeholder, .textarea-wrapper textarea::-moz-placeholder {
1349
+ .time-input-wrapper input::-moz-placeholder, .time-input-wrapper textarea::-moz-placeholder, .input-wrapper input::-moz-placeholder, .input-wrapper textarea::-moz-placeholder, .number-input-wrapper input::-moz-placeholder, .number-input-wrapper textarea::-moz-placeholder, .password-input-wrapper input::-moz-placeholder, .password-input-wrapper textarea::-moz-placeholder, .textarea-wrapper input::-moz-placeholder, .textarea-wrapper textarea::-moz-placeholder {
1339
1350
  color: var(--pf-form-input-placeholder-color);
1340
1351
  }
1352
+ .time-input-wrapper input::placeholder,
1353
+ .time-input-wrapper textarea::placeholder,
1341
1354
  .input-wrapper input::placeholder,
1342
1355
  .input-wrapper textarea::placeholder,
1343
1356
  .number-input-wrapper input::placeholder,
@@ -1348,6 +1361,8 @@ form {
1348
1361
  .textarea-wrapper textarea::placeholder {
1349
1362
  color: var(--pf-form-input-placeholder-color);
1350
1363
  }
1364
+ .time-input-wrapper input:hover,
1365
+ .time-input-wrapper textarea:hover,
1351
1366
  .input-wrapper input:hover,
1352
1367
  .input-wrapper textarea:hover,
1353
1368
  .number-input-wrapper input:hover,
@@ -1358,6 +1373,8 @@ form {
1358
1373
  .textarea-wrapper textarea:hover {
1359
1374
  background-color: var(--pf-form-input-hover-background-color);
1360
1375
  }
1376
+ .time-input-wrapper input:focus,
1377
+ .time-input-wrapper textarea:focus,
1361
1378
  .input-wrapper input:focus,
1362
1379
  .input-wrapper textarea:focus,
1363
1380
  .number-input-wrapper input:focus,
@@ -1369,6 +1386,8 @@ form {
1369
1386
  border-color: var(--pf-form-input-focus-border-color);
1370
1387
  background-color: var(--pf-form-input-focus-background-color);
1371
1388
  }
1389
+ .time-input-wrapper input:focus-visible,
1390
+ .time-input-wrapper textarea:focus-visible,
1372
1391
  .input-wrapper input:focus-visible,
1373
1392
  .input-wrapper textarea:focus-visible,
1374
1393
  .number-input-wrapper input:focus-visible,
@@ -1379,6 +1398,8 @@ form {
1379
1398
  .textarea-wrapper textarea:focus-visible {
1380
1399
  outline: 1px solid var(--pf-form-input-focus-outline-color);
1381
1400
  }
1401
+ .time-input-wrapper input:disabled,
1402
+ .time-input-wrapper textarea:disabled,
1382
1403
  .input-wrapper input:disabled,
1383
1404
  .input-wrapper textarea:disabled,
1384
1405
  .number-input-wrapper input:disabled,
@@ -1391,6 +1412,8 @@ form {
1391
1412
  border-color: var(--pf-form-input-disabled-border-color);
1392
1413
  color: var(--pf-form-input-disabled-color);
1393
1414
  }
1415
+ .time-input-wrapper input.error,
1416
+ .time-input-wrapper textarea.error,
1394
1417
  .input-wrapper input.error,
1395
1418
  .input-wrapper textarea.error,
1396
1419
  .number-input-wrapper input.error,
@@ -1401,6 +1424,8 @@ form {
1401
1424
  .textarea-wrapper textarea.error {
1402
1425
  border-color: var(--pf-error-color);
1403
1426
  }
1427
+ .time-input-wrapper input.success,
1428
+ .time-input-wrapper textarea.success,
1404
1429
  .input-wrapper input.success,
1405
1430
  .input-wrapper textarea.success,
1406
1431
  .number-input-wrapper input.success,
@@ -1411,6 +1436,8 @@ form {
1411
1436
  .textarea-wrapper textarea.success {
1412
1437
  border-color: var(--pf-success-color);
1413
1438
  }
1439
+ .time-input-wrapper input.warning,
1440
+ .time-input-wrapper textarea.warning,
1414
1441
  .input-wrapper input.warning,
1415
1442
  .input-wrapper textarea.warning,
1416
1443
  .number-input-wrapper input.warning,
@@ -1421,6 +1448,8 @@ form {
1421
1448
  .textarea-wrapper textarea.warning {
1422
1449
  border-color: var(--pf-warning-color);
1423
1450
  }
1451
+ .time-input-wrapper input.info,
1452
+ .time-input-wrapper textarea.info,
1424
1453
  .input-wrapper input.info,
1425
1454
  .input-wrapper textarea.info,
1426
1455
  .number-input-wrapper input.info,
@@ -1814,6 +1843,59 @@ form {
1814
1843
  background-color: transparent;
1815
1844
  }
1816
1845
 
1846
+ .time-picker-wrapper {
1847
+ margin-bottom: var(--pf-margin-3);
1848
+ width: 348px;
1849
+ }
1850
+ .time-picker-wrapper .form-control {
1851
+ margin-bottom: 0;
1852
+ }
1853
+
1854
+ .time-picker-input {
1855
+ cursor: pointer;
1856
+ }
1857
+
1858
+ .time-picker-row {
1859
+ width: 150px;
1860
+ }
1861
+ .time-picker-row .select__value-container {
1862
+ text-align: center;
1863
+ cursor: pointer;
1864
+ }
1865
+ .time-picker-row .select-wrapper {
1866
+ width: 50px;
1867
+ }
1868
+ .time-picker-row .select-wrapper .select__items {
1869
+ justify-content: center;
1870
+ }
1871
+ .time-picker-row .select-wrapper .select__menu {
1872
+ height: 230px;
1873
+ padding-bottom: 0;
1874
+ margin-bottom: 0;
1875
+ }
1876
+ .time-picker-row .select__menu-list {
1877
+ max-height: 100%;
1878
+ scrollbar-width: none; /* Firefox */
1879
+ -ms-overflow-style: none; /* IE and Edge */
1880
+ overflow-y: scroll;
1881
+ }
1882
+ .time-picker-row .select__menu-list::-webkit-scrollbar {
1883
+ display: none; /* Chrome, Safari and Opera */
1884
+ }
1885
+ .time-picker-row .hour-menu .select__menu {
1886
+ border-top-right-radius: 0;
1887
+ border-bottom-right-radius: 0;
1888
+ }
1889
+ .time-picker-row .minute-menu .select__menu {
1890
+ border-radius: 0;
1891
+ border-right: none;
1892
+ border-left: none;
1893
+ }
1894
+ .time-picker-row .period-menu .select__menu {
1895
+ border-top-left-radius: 0;
1896
+ border-bottom-left-radius: 0;
1897
+ }
1898
+
1817
1899
  :root {
1818
1900
  --pf-badge-rounded: var(--pf-rounded);
1819
1901
  }
@@ -2243,6 +2325,51 @@ form {
2243
2325
  display: block;
2244
2326
  }
2245
2327
 
2328
+ .time-picker-input {
2329
+ cursor: pointer;
2330
+ }
2331
+
2332
+ .time-picker-row {
2333
+ width: 150px;
2334
+ }
2335
+ .time-picker-row .select__value-container {
2336
+ text-align: center;
2337
+ cursor: pointer;
2338
+ }
2339
+ .time-picker-row .select-wrapper {
2340
+ width: 50px;
2341
+ }
2342
+ .time-picker-row .select-wrapper .select__items {
2343
+ justify-content: center;
2344
+ }
2345
+ .time-picker-row .select-wrapper .select__menu {
2346
+ height: 230px;
2347
+ padding-bottom: 0;
2348
+ margin-bottom: 0;
2349
+ }
2350
+ .time-picker-row .select__menu-list {
2351
+ max-height: 100%;
2352
+ scrollbar-width: none; /* Firefox */
2353
+ -ms-overflow-style: none; /* IE and Edge */
2354
+ overflow-y: scroll;
2355
+ }
2356
+ .time-picker-row .select__menu-list::-webkit-scrollbar {
2357
+ display: none; /* Chrome, Safari and Opera */
2358
+ }
2359
+ .time-picker-row .hour-menu .select__menu {
2360
+ border-top-right-radius: 0;
2361
+ border-bottom-right-radius: 0;
2362
+ }
2363
+ .time-picker-row .minute-menu .select__menu {
2364
+ border-radius: 0;
2365
+ border-right: none;
2366
+ border-left: none;
2367
+ }
2368
+ .time-picker-row .period-menu .select__menu {
2369
+ border-top-left-radius: 0;
2370
+ border-bottom-left-radius: 0;
2371
+ }
2372
+
2246
2373
  :root [data-theme=light] {
2247
2374
  --pf-pill-primary-background-color: var(--pf-primary-color);
2248
2375
  --pf-pill-primary-font-color: var(--pf-white-color);
@@ -2358,6 +2485,147 @@ form {
2358
2485
  border-color: var(--pf-pill-pending-border-color);
2359
2486
  }
2360
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
+
2361
2629
  :root [data-theme=light] {
2362
2630
  --sheets-background-color: var(--pf-gray-color-100);
2363
2631
  }