@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
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';
@@ -305,10 +272,11 @@ interface BaseInputProps {
305
272
  placeholder?: string;
306
273
  isDisabled?: boolean;
307
274
  readonly?: boolean;
308
- onChange: (e: React$1.ChangeEvent<HTMLInputElement>) => void;
275
+ onChange?: (e: React$1.ChangeEvent<HTMLInputElement>) => void;
309
276
  onBlur?: (e: React$1.FocusEvent<HTMLInputElement>) => void;
310
277
  onKeyDown?: (e: React$1.KeyboardEvent<HTMLInputElement>) => void;
311
278
  errorMessage?: string | undefined;
279
+ maxLength?: number;
312
280
  helpText?: string;
313
281
  iconName?: IconName;
314
282
  isClearable?: boolean;
@@ -392,7 +360,7 @@ interface PasswordInputProps extends LabelProps {
392
360
  }
393
361
  declare const LabeledPasswordInput: React$1.ForwardRefExoticComponent<Omit<Omit<PasswordInputProps, "ref"> & React$1.RefAttributes<HTMLInputElement> & LabelProps, "ref"> & React$1.RefAttributes<any>>;
394
362
 
395
- interface SelectProps<OptionType extends SelectOption> extends Props$8<OptionType> {
363
+ interface SelectProps<OptionType extends SelectOption> extends Props$4<OptionType> {
396
364
  options: OptionType[];
397
365
  }
398
366
  declare const Select: <OptionType extends SelectOption>({ classNamePrefix, className, components: customComponents, ...props }: SelectProps<OptionType>) => react_jsx_runtime.JSX.Element;
@@ -407,6 +375,8 @@ interface DatePickerProps {
407
375
  month?: Date;
408
376
  defaultMonth?: Date;
409
377
  startMonth?: Date | undefined;
378
+ hasTimePicker?: boolean;
379
+ timeValue?: string;
410
380
  endMonth?: Date;
411
381
  components?: Partial<CustomComponents>;
412
382
  numberOfMonths?: number;
@@ -418,6 +388,7 @@ interface DatePickerProps {
418
388
  isRequired?: any;
419
389
  min?: number;
420
390
  max?: number;
391
+ onTimeChange?: (time: string) => void;
421
392
  onMonthChange?: MonthChangeEventHandler;
422
393
  onNextClick?: MonthChangeEventHandler;
423
394
  onPrevClick?: MonthChangeEventHandler;
@@ -426,6 +397,13 @@ interface DatePickerProps {
426
397
 
427
398
  declare const DatePicker: (props: DatePickerProps) => react_jsx_runtime.JSX.Element;
428
399
 
400
+ interface TimePickerProps {
401
+ timeValue?: string;
402
+ label?: string;
403
+ onTimeChange?: (time: string) => void;
404
+ }
405
+ declare const TimePicker: ({ timeValue, label, onTimeChange, }: TimePickerProps) => react_jsx_runtime.JSX.Element;
406
+
429
407
  interface Props$3 {
430
408
  mode?: Mode;
431
409
  ariaLabel: string;
@@ -567,7 +545,7 @@ type WithoutPaginationProps = {
567
545
  totalEntriesText?: string;
568
546
  showPagination?: false;
569
547
  };
570
- type PaginationProps = WithPaginationProps | WithoutPaginationProps;
548
+ type PaginationProps$1 = WithPaginationProps | WithoutPaginationProps;
571
549
  type Props<T extends object> = {
572
550
  data: T[];
573
551
  columns: ColumnDef<T & {
@@ -594,10 +572,47 @@ type Props<T extends object> = {
594
572
  rowSelection?: Record<string, boolean>;
595
573
  onRowSelectionChange?: (updater: Record<string, boolean>) => void;
596
574
  onSelectAllChange?: (isSelected: boolean) => void;
597
- } & PaginationProps;
575
+ } & PaginationProps$1;
598
576
 
599
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 & {
600
578
  id: string;
601
579
  }>): react_jsx_runtime.JSX.Element;
602
580
 
603
- 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, 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] {
@@ -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
  }