@uxf/ui 10.0.0-beta.4 → 10.0.0-beta.41

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 (104) hide show
  1. package/_file-input-base/file-input-base.js +9 -1
  2. package/_select-base/_select-base.d.ts +1 -1
  3. package/_select-base/_select-base.js +4 -3
  4. package/calendar/calendar-day-cell.d.ts +3 -0
  5. package/calendar/calendar-day-cell.js +14 -14
  6. package/{date-picker/date-picker-navigation.d.ts → calendar/calendar-navigation.d.ts} +2 -3
  7. package/{date-picker/date-picker-navigation.js → calendar/calendar-navigation.js} +6 -6
  8. package/calendar/calendar-provider.js +1 -1
  9. package/calendar/calendar.d.ts +5 -0
  10. package/calendar/calendar.js +5 -8
  11. package/calendar/index.d.ts +4 -1
  12. package/calendar/index.js +5 -15
  13. package/chip/chip.d.ts +5 -7
  14. package/chip/chip.js +22 -7
  15. package/chip/chip.spec.d.ts +1 -0
  16. package/chip/chip.spec.js +9 -0
  17. package/chip/chip.stories.d.ts +1 -1
  18. package/chip/chip.stories.js +37 -28
  19. package/chip/index.d.ts +3 -1
  20. package/chip/index.js +3 -15
  21. package/chip/theme.d.ts +3 -0
  22. package/css/calendar.css +116 -51
  23. package/css/chip.css +217 -318
  24. package/css/date-picker.css +10 -2
  25. package/css/date-range-picker.css +21 -0
  26. package/css/flash-messages.css +133 -9
  27. package/css/image-gallery.css +13 -9
  28. package/css/textarea.css +66 -74
  29. package/css/time-picker.css +11 -15
  30. package/date-picker/date-picker-decade.js +6 -6
  31. package/date-picker/date-picker-month.js +6 -6
  32. package/date-picker/date-picker-year.js +2 -2
  33. package/date-picker/date-picker.d.ts +1 -0
  34. package/date-picker/date-picker.js +1 -0
  35. package/date-picker-input/date-picker-input.js +3 -1
  36. package/date-range-picker/date-range-picker-content.d.ts +2 -0
  37. package/date-range-picker/date-range-picker-content.js +55 -0
  38. package/date-range-picker/date-range-picker-decade.d.ts +6 -0
  39. package/date-range-picker/date-range-picker-decade.js +72 -0
  40. package/date-range-picker/date-range-picker-month.d.ts +8 -0
  41. package/date-range-picker/date-range-picker-month.js +69 -0
  42. package/date-range-picker/date-range-picker-year.d.ts +7 -0
  43. package/date-range-picker/date-range-picker-year.js +80 -0
  44. package/date-range-picker/date-range-picker.d.ts +9 -0
  45. package/date-range-picker/date-range-picker.js +50 -0
  46. package/date-range-picker/date-range-picker.spec.d.ts +1 -0
  47. package/date-range-picker/date-range-picker.spec.js +9 -0
  48. package/date-range-picker/date-range-picker.stories.d.ts +7 -0
  49. package/date-range-picker/date-range-picker.stories.js +43 -0
  50. package/date-range-picker/index.d.ts +3 -0
  51. package/date-range-picker/index.js +5 -0
  52. package/date-range-picker/types.d.ts +5 -0
  53. package/date-range-picker-input/date-range-picker-input.d.ts +15 -0
  54. package/date-range-picker-input/date-range-picker-input.js +62 -0
  55. package/date-range-picker-input/date-range-picker-input.spec.d.ts +1 -0
  56. package/date-range-picker-input/date-range-picker-input.spec.js +9 -0
  57. package/date-range-picker-input/date-range-picker-input.stories.d.ts +10 -0
  58. package/date-range-picker-input/date-range-picker-input.stories.js +53 -0
  59. package/date-range-picker-input/index.d.ts +2 -0
  60. package/date-range-picker-input/index.js +5 -0
  61. package/datetime-picker/datetime-picker.js +2 -2
  62. package/datetime-picker-input/datetime-picker-input.js +3 -1
  63. package/dropzone/dropzone-input.js +10 -6
  64. package/flash-messages/flash-message.js +1 -1
  65. package/flash-messages/flash-messages.js +44 -10
  66. package/flash-messages/flash-messages.stories.js +12 -0
  67. package/image-gallery/components/close-button.d.ts +2 -1
  68. package/image-gallery/components/close-button.js +2 -3
  69. package/image-gallery/components/gallery.d.ts +6 -3
  70. package/image-gallery/components/gallery.js +15 -7
  71. package/image-gallery/components/next-button.d.ts +7 -0
  72. package/image-gallery/components/next-button.js +14 -0
  73. package/image-gallery/components/prev-button.d.ts +7 -0
  74. package/image-gallery/components/prev-button.js +14 -0
  75. package/image-gallery/image-gallery.d.ts +6 -1
  76. package/image-gallery/image-gallery.js +1 -1
  77. package/image-gallery/image-gallery.stories.js +5 -1
  78. package/multi-combobox/_multi-combobox-base.js +2 -1
  79. package/multi-combobox/types.d.ts +3 -0
  80. package/multi-select/_multi-select-base.js +2 -1
  81. package/multi-select/types.d.ts +3 -2
  82. package/package.json +12 -9
  83. package/radio-group/index.d.ts +1 -1
  84. package/radio-group/radio-group.d.ts +3 -3
  85. package/radio-group/radio-group.js +2 -2
  86. package/radio-group/radio-group.stories.js +4 -4
  87. package/raster-image/raster-image.js +1 -1
  88. package/textarea/textarea.js +5 -5
  89. package/time-picker/time-picker-hour.js +3 -3
  90. package/time-picker/time-picker-hours.js +1 -1
  91. package/time-picker/time-picker-minute.js +3 -3
  92. package/time-picker/time-picker-minutes.js +1 -1
  93. package/time-picker/time-picker.d.ts +1 -0
  94. package/time-picker/time-picker.js +3 -2
  95. package/time-picker-input/time-picker-input.js +3 -1
  96. package/tw-tokens/tw-z-index.d.ts +1 -0
  97. package/tw-tokens/tw-z-index.js +1 -0
  98. package/utils/mocks/uploadFIle.mock.js +1 -1
  99. package/utils/storybook-config.d.ts +1 -1
  100. package/utils/tailwind-config.js +1 -0
  101. package/image-gallery/components/arrow-button.d.ts +0 -7
  102. package/image-gallery/components/arrow-button.js +0 -14
  103. package/select/theme.d.ts +0 -5
  104. /package/{select/theme.js → date-range-picker/types.js} +0 -0
@@ -26,7 +26,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports._FileInputBase = void 0;
27
27
  const react_1 = __importStar(require("react"));
28
28
  exports._FileInputBase = (0, react_1.forwardRef)((props, ref) => {
29
- const onChange = (e) => props.onChange(null, e);
29
+ const onChange = async (e) => {
30
+ if (e.target.files) {
31
+ const res = await props.onUploadFile(e.target.files[0]);
32
+ props.onChange(res, e);
33
+ }
34
+ else {
35
+ props.onChange(null, e);
36
+ }
37
+ };
30
38
  return (react_1.default.createElement("input", { accept: props.accept, "aria-invalid": props.isInvalid, "aria-describedby": props["aria-describedby"], className: props.className, disabled: props.isDisabled, form: props.form, id: props.id, name: props.name, onBlur: props.onBlur, onChange: onChange, onFocus: props.onFocus, readOnly: props.isReadOnly, ref: ref, required: props.isRequired, tabIndex: props.isDisabled ? -1 : undefined, type: "file" }));
31
39
  });
32
40
  exports._FileInputBase.displayName = "UxfUiFileInputBase";
@@ -3,7 +3,7 @@ import type { Combobox as HUICombobox, Listbox as HUIListbox } from "@headlessui
3
3
  import { IconsSet } from "@uxf/ui/icon/theme";
4
4
  import { Clearable, FormControlProps } from "@uxf/ui/types";
5
5
  import React, { ReactElement, ReactNode, Ref } from "react";
6
- import { InputGroupSizes, InputGroupVariants } from "../input/theme";
6
+ import { InputGroupSizes, InputGroupVariants } from "@uxf/ui/input/theme";
7
7
  export type SelectBaseValueId = number | string;
8
8
  export type SelectBaseValue<ValueId = SelectBaseValueId> = {
9
9
  id: ValueId;
@@ -51,8 +51,9 @@ const InputArrow = (props) => {
51
51
  return react_2.default.createElement(icon_1.Icon, { className: (0, cx_1.cx)("uxf-select-base__arrow-icon", props.open && classes_1.CLASSES.IS_OPEN), name: iconName });
52
52
  };
53
53
  const Options = (props) => {
54
+ var _a, _b;
54
55
  const HUIComponent = props.HUIComponent;
55
- return (react_2.default.createElement(HUIComponent.Options, { className: (0, cx_1.cx)("uxf-dropdown", props.placement === "bottom" && "uxf-dropdown--bottom", props.placement === "top" && "uxf-dropdown--top"), ref: props.forwardRef, static: true, style: props.style }, props.options && props.options.length > 0 ? (props.options.map((option) => {
56
+ return (react_2.default.createElement(HUIComponent.Options, { className: (0, cx_1.cx)("uxf-dropdown", `uxf-dropdown--size-${(_a = props.size) !== null && _a !== void 0 ? _a : "default"}`, `uxf-dropdown--variant-${(_b = props.variant) !== null && _b !== void 0 ? _b : "default"}`, props.placement === "bottom" && "uxf-dropdown--bottom", props.placement === "top" && "uxf-dropdown--top"), ref: props.forwardRef, static: true, style: props.style }, props.options && props.options.length > 0 ? (props.options.map((option) => {
56
57
  var _a, _b, _c, _d;
57
58
  const optionKey = (_a = props.keyExtractor) === null || _a === void 0 ? void 0 : _a.call(props, option);
58
59
  return (react_2.default.createElement(HUIComponent.Option, { className: (optionState) => (0, cx_1.cx)("uxf-dropdown__item", optionState.active && classes_1.CLASSES.IS_ACTIVE, optionState.disabled && classes_1.CLASSES.IS_DISABLED, optionState.selected && classes_1.CLASSES.IS_SELECTED), key: optionKey !== null && optionKey !== void 0 ? optionKey : option.id, value: option }, (_d = (_c = (_b = props.renderOption) === null || _b === void 0 ? void 0 : _b.call(props, option)) !== null && _c !== void 0 ? _c : optionKey) !== null && _d !== void 0 ? _d : option.label));
@@ -69,7 +70,7 @@ const _SelectBase = (props) => {
69
70
  const dropdown = (0, use_dropdown_1.useDropdown)((_b = props.dropdownPlacement) !== null && _b !== void 0 ? _b : "bottom", true, props.dropdownStrategy);
70
71
  const stableRef = (0, react_2.useMemo)(() => (0, composeRefs_1.composeRefs)(innerRef, props.forwardRef, dropdown.refs.setReference), [dropdown.refs.setReference, props.forwardRef]);
71
72
  const HUIComponent = props.HUIComponent;
72
- return (react_2.default.createElement(HUIComponent, { as: "div", className: (0, cx_1.cx)("uxf-form-component uxf-select-base", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), disabled: props.isDisabled || props.isReadOnly, onChange: props.onChange, value: props.value }, (renderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
73
+ return (react_2.default.createElement(HUIComponent, { as: "div", className: (0, cx_1.cx)("uxf-form-component uxf-select-base", props.isInvalid && classes_1.CLASSES.IS_INVALID, props.isRequired && classes_1.CLASSES.IS_REQUIRED, props.isReadOnly && classes_1.CLASSES.IS_READONLY, props.isDisabled && classes_1.CLASSES.IS_DISABLED, props.className), "data-testid": id, disabled: props.isDisabled || props.isReadOnly, onChange: props.onChange, value: props.value }, (renderProps) => (react_2.default.createElement(react_2.default.Fragment, null,
73
74
  react_2.default.createElement("div", { className: "uxf-form-component__label" },
74
75
  react_2.default.createElement(HUIComponent.Label, { as: label_1.Label, isHidden: props.hiddenLabel, onClick: props.isDisabled || props.isReadOnly ? undefined : input.focus }, props.label)),
75
76
  react_2.default.createElement("div", { className: "uxf-form-component__input" },
@@ -87,7 +88,7 @@ const _SelectBase = (props) => {
87
88
  react_2.default.createElement(InputArrow, { iconName: props.iconName, open: renderProps.open }))) : (react_2.default.createElement(InputArrow, { iconName: props.iconName, open: renderProps.open }))),
88
89
  props.rightAddon && react_2.default.createElement(input_1.Input.RightAddon, null, props.rightAddon)),
89
90
  renderProps.open && (react_2.default.createElement(react_1.FloatingPortal, null,
90
- react_2.default.createElement(Options, { HUIComponent: HUIComponent, emptyMessage: props.emptyMessage, forwardRef: dropdown.refs.setFloating, keyExtractor: props.keyExtractor, options: props.options, placement: dropdown.placement, renderOption: props.renderOption, style: dropdown.floatingStyles }))),
91
+ react_2.default.createElement(Options, { HUIComponent: HUIComponent, emptyMessage: props.emptyMessage, forwardRef: dropdown.refs.setFloating, keyExtractor: props.keyExtractor, options: props.options, placement: dropdown.placement, renderOption: props.renderOption, size: props.size, style: dropdown.floatingStyles, variant: props.variant }))),
91
92
  props.helperText && (react_2.default.createElement("div", { className: (0, cx_1.cx)("uxf-helper-text", props.isInvalid && classes_1.CLASSES.IS_INVALID), id: errorId }, props.helperText)))))));
92
93
  };
93
94
  exports._SelectBase = _SelectBase;
@@ -1,7 +1,10 @@
1
1
  import React from "react";
2
2
  import { CalendarDay } from "@uxf/datepicker/utils/get-days";
3
+ import { UseDatePickerReturnType } from "@uxf/datepicker/hooks/use-date-picker";
4
+ import { UseDateRangePickerReturnType } from "@uxf/datepicker/hooks/use-date-range-picker";
3
5
  interface CalendarDayProps {
4
6
  day: CalendarDay;
7
+ datePickerProps: UseDatePickerReturnType | UseDateRangePickerReturnType;
5
8
  }
6
9
  export declare const CalendarDayCell: React.NamedExoticComponent<CalendarDayProps>;
7
10
  export {};
@@ -26,7 +26,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.CalendarDayCell = void 0;
27
27
  const react_1 = __importStar(require("react"));
28
28
  const use_day_1 = require("@uxf/datepicker/hooks/use-day");
29
- const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-context");
30
29
  const composeRefs_1 = require("@uxf/core/utils/composeRefs");
31
30
  const cx_1 = require("@uxf/core/utils/cx");
32
31
  const classes_1 = require("@uxf/core/constants/classes");
@@ -34,29 +33,30 @@ const useOnMount_1 = require("@uxf/core/hooks/useOnMount");
34
33
  exports.CalendarDayCell = (0, react_1.memo)((props) => {
35
34
  const dayCellRef = (0, react_1.useRef)(null);
36
35
  const innerRef = (0, react_1.useRef)(null);
37
- const { focusedDate, isDateBlocked, isDateFocused, isDateHovered, isDateSelected, onDateFocus, onDateHover, onDateSelect, } = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
38
- const { disabledDate, isSelected, onClick, onKeyDown, onMouseEnter, tabIndex, isToday } = (0, use_day_1.useDay)({
36
+ const { disabledDate, isHovered, isSelected, isInsideRange, isToday, isWithinHoverRange, onClick, onKeyDown, onMouseEnter, tabIndex, } = (0, use_day_1.useDay)({
39
37
  date: props.day.date,
40
- focusedDate,
41
- isDateBlocked,
42
- isDateFocused,
43
- isDateHovered,
44
- isDateSelected,
45
- onDateFocus,
46
- onDateHover,
47
- onDateSelect,
38
+ focusedDate: props.datePickerProps.focusedDate,
39
+ isDateBlocked: props.datePickerProps.isDateBlocked,
40
+ isDateFocused: props.datePickerProps.isDateFocused,
41
+ isDateHovered: props.datePickerProps.isDateHovered,
42
+ isDateSelected: props.datePickerProps.isDateSelected,
43
+ isDateInsideRange: "isDateInsideRange" in props.datePickerProps ? props.datePickerProps.isDateInsideRange : () => false,
44
+ onDateFocus: props.datePickerProps.onDateFocus,
45
+ onDateHover: props.datePickerProps.onDateHover,
46
+ onDateSelect: props.datePickerProps.onDateSelect,
48
47
  dayRef: dayCellRef,
48
+ preventScroll: props.datePickerProps.preventScroll,
49
49
  });
50
50
  (0, useOnMount_1.useOnMount)(() => {
51
51
  const node = innerRef.current;
52
52
  if (node && (isToday || isSelected)) {
53
- node.focus({ preventScroll: true });
53
+ node.focus({ preventScroll: props.datePickerProps.preventScroll });
54
54
  }
55
55
  });
56
56
  if (!props.day.dayLabel) {
57
57
  return react_1.default.createElement("div", null);
58
58
  }
59
- return (react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-calendar__cell uxf-calendar__cell-day", disabledDate && classes_1.CLASSES.IS_DISABLED, isToday && "uxf-calendar__cell-day--today", isSelected && "uxf-calendar__cell-day--selected", !props.day.currentMonth && "uxf-calendar__cell-day--not-current-month"), ref: disabledDate ? undefined : (0, composeRefs_1.composeRefs)(dayCellRef, innerRef), onClick: onClick, onKeyDown: onKeyDown, onMouseEnter: onMouseEnter, tabIndex: tabIndex, type: "button" },
60
- react_1.default.createElement("span", { className: "uxf-calendar__cell-day__inner" }, props.day.dayLabel)));
59
+ return (react_1.default.createElement("button", { className: (0, cx_1.cx)("uxf-calendar__cell uxf-calendar__cell-day", disabledDate && classes_1.CLASSES.IS_DISABLED, isToday && "uxf-calendar__cell--today", isSelected && "uxf-calendar__cell--selected", isInsideRange && "uxf-calendar__cell--inside-range", isWithinHoverRange && "uxf-calendar__cell--is-within-hover-range", isHovered && "uxf-calendar__cell--is-hovered", !props.day.currentMonth && "uxf-calendar__cell--not-current-month"), ref: disabledDate ? undefined : (0, composeRefs_1.composeRefs)(dayCellRef, innerRef), onClick: onClick, onKeyDown: onKeyDown, onMouseEnter: onMouseEnter, tabIndex: tabIndex, type: "button" },
60
+ react_1.default.createElement("span", { className: "uxf-calendar__cell__inner" }, props.day.dayLabel)));
61
61
  });
62
62
  exports.CalendarDayCell.displayName = "UxfUiCalendarDayCell";
@@ -1,9 +1,8 @@
1
1
  import { FC } from "react";
2
2
  import { ButtonProps } from "../button";
3
- interface Props {
3
+ export interface CalendarNavigationProps {
4
4
  prevButtonProps: ButtonProps;
5
5
  selectButtonProps: ButtonProps;
6
6
  nextButtonProps: ButtonProps;
7
7
  }
8
- export declare const DatePickerNavigation: FC<Props>;
9
- export {};
8
+ export declare const CalendarNavigation: FC<CalendarNavigationProps>;
@@ -3,17 +3,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.DatePickerNavigation = void 0;
6
+ exports.CalendarNavigation = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const button_1 = require("../button");
9
9
  const icon_1 = require("../icon");
10
- const DatePickerNavigation = (props) => {
11
- return (react_1.default.createElement("div", { className: "uxf-date-picker__navigation" },
10
+ const CalendarNavigation = (props) => {
11
+ return (react_1.default.createElement("div", { className: "uxf-calendar-navigation" },
12
12
  react_1.default.createElement(button_1.Button, { isIconButton: true, size: "sm", variant: "white", ...props.prevButtonProps },
13
13
  react_1.default.createElement(icon_1.Icon, { name: "arrow-left", size: 16 })),
14
- props.selectButtonProps.onClick ? (react_1.default.createElement(button_1.Button, { variant: "text", size: "sm", color: "default", ...props.selectButtonProps })) : (react_1.default.createElement("p", { className: "uxf-date-picker__navigation-title" }, props.selectButtonProps.children)),
14
+ props.selectButtonProps.onClick ? (react_1.default.createElement(button_1.Button, { variant: "text", size: "sm", color: "default", ...props.selectButtonProps })) : (react_1.default.createElement("p", { className: "uxf-calendar-navigation__title" }, props.selectButtonProps.children)),
15
15
  react_1.default.createElement(button_1.Button, { isIconButton: true, size: "sm", variant: "white", ...props.nextButtonProps },
16
16
  react_1.default.createElement(icon_1.Icon, { name: "arrow-right", size: 16 }))));
17
17
  };
18
- exports.DatePickerNavigation = DatePickerNavigation;
19
- exports.DatePickerNavigation.displayName = "UxfUiDatePickerArrowsViewMode";
18
+ exports.CalendarNavigation = CalendarNavigation;
19
+ exports.CalendarNavigation.displayName = "UxfUiCalendarNavigation";
@@ -20,7 +20,7 @@ const CalendarProvider = (props) => {
20
20
  selectedDate: (_a = props.selectedDate) !== null && _a !== void 0 ? _a : null,
21
21
  });
22
22
  return (react_1.default.createElement(date_picker_context_1.DatePickerContext.Provider, { value: calendarProps },
23
- react_1.default.createElement(calendar_1.Calendar, null)));
23
+ react_1.default.createElement(calendar_1.Calendar, { datePickerProps: calendarProps })));
24
24
  };
25
25
  exports.CalendarProvider = CalendarProvider;
26
26
  exports.CalendarProvider.displayName = "UxfUiCalendarProvider";
@@ -1,7 +1,12 @@
1
1
  import React from "react";
2
+ import { UseDatePickerReturnType } from "@uxf/datepicker/hooks/use-date-picker";
3
+ import { UseDateRangePickerReturnType } from "@uxf/datepicker/hooks/use-date-range-picker";
2
4
  export interface CalendarProps {
5
+ datePickerProps: UseDatePickerReturnType | UseDateRangePickerReturnType;
3
6
  className?: string;
7
+ month?: number;
4
8
  onChange?: (data: Date | null) => void;
5
9
  selectedDate?: Date | null;
10
+ year?: number;
6
11
  }
7
12
  export declare const Calendar: React.ForwardRefExoticComponent<CalendarProps & React.RefAttributes<HTMLDivElement>>;
@@ -31,23 +31,20 @@ const cx_1 = require("@uxf/core/utils/cx");
31
31
  const react_1 = __importStar(require("react"));
32
32
  const use_month_1 = require("@uxf/datepicker/hooks/use-month");
33
33
  const dayjs_1 = __importDefault(require("dayjs"));
34
- const date_picker_context_1 = require("@uxf/datepicker/contexts/date-picker-context");
35
34
  const calendar_day_cell_1 = require("./calendar-day-cell");
36
35
  exports.Calendar = (0, react_1.forwardRef)((props, ref) => {
36
+ var _a, _b;
37
37
  const calendarClassName = (0, cx_1.cx)("uxf-calendar", props.className);
38
- const { activeMonths, firstDayOfWeek } = (0, react_1.useContext)(date_picker_context_1.DatePickerContext);
39
- const currentMonth = activeMonths[0].month;
40
- const currentYear = activeMonths[0].year;
41
38
  const { days, weekdayLabels } = (0, use_month_1.useMonth)({
42
39
  dayLabelFormat: (date) => (0, dayjs_1.default)(date).format("D"),
43
- firstDayOfWeek,
44
- month: currentMonth,
40
+ firstDayOfWeek: props.datePickerProps.firstDayOfWeek,
41
+ month: (_a = props.month) !== null && _a !== void 0 ? _a : props.datePickerProps.activeMonths[0].month,
45
42
  monthLabelFormat: (date) => (0, dayjs_1.default)(date).format("MMMM YYYY"),
46
43
  weekdayLabelFormat: (date) => (0, dayjs_1.default)(date).format("dd"),
47
- year: currentYear,
44
+ year: (_b = props.year) !== null && _b !== void 0 ? _b : props.datePickerProps.activeMonths[0].year,
48
45
  });
49
46
  return (react_1.default.createElement("div", { ref: ref, className: calendarClassName },
50
47
  react_1.default.createElement("div", { className: "uxf-calendar__weekdays" }, weekdayLabels.map((weekdayLabel, index) => (react_1.default.createElement("span", { key: `${index}`, className: "uxf-calendar__weekday" }, weekdayLabel)))),
51
- react_1.default.createElement("div", { className: "uxf-calendar__days" }, days.map((day, index) => (react_1.default.createElement(calendar_day_cell_1.CalendarDayCell, { day: day, key: day.dayLabel + index }))))));
48
+ react_1.default.createElement("div", { className: "uxf-calendar__days" }, days.map((day, index) => (react_1.default.createElement(calendar_day_cell_1.CalendarDayCell, { datePickerProps: props.datePickerProps, day: day, key: day.dayLabel + index }))))));
52
49
  });
53
50
  exports.Calendar.displayName = "UxfUiCalendar";
@@ -1 +1,4 @@
1
- export * from "./calendar";
1
+ export { Calendar } from "./calendar";
2
+ export type { CalendarProps } from "./calendar";
3
+ export { CalendarNavigation } from "./calendar-navigation";
4
+ export type { CalendarNavigationProps } from "./calendar-navigation";
package/calendar/index.js CHANGED
@@ -1,17 +1,7 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./calendar"), exports);
3
+ exports.CalendarNavigation = exports.Calendar = void 0;
4
+ var calendar_1 = require("./calendar");
5
+ Object.defineProperty(exports, "Calendar", { enumerable: true, get: function () { return calendar_1.Calendar; } });
6
+ var calendar_navigation_1 = require("./calendar-navigation");
7
+ Object.defineProperty(exports, "CalendarNavigation", { enumerable: true, get: function () { return calendar_navigation_1.CalendarNavigation; } });
package/chip/chip.d.ts CHANGED
@@ -1,13 +1,11 @@
1
- import { ChipColors, ChipSizes, ChipVariants } from "@uxf/ui/chip/theme";
2
- import React, { HTMLAttributes, MouseEventHandler } from "react";
3
- export type ChipColor = keyof ChipColors;
4
- export type ChipSize = keyof ChipSizes;
5
- export type ChipVariant = keyof ChipVariants;
6
- export interface ChipProps extends HTMLAttributes<HTMLDivElement> {
1
+ import { ChipColor, ChipSize, ChipVariant } from "@uxf/ui/chip/theme";
2
+ import React, { AnchorHTMLAttributes, MouseEventHandler } from "react";
3
+ import { UseAnchorProps } from "@uxf/core/hooks/useAnchorProps";
4
+ export interface ChipProps extends Omit<AnchorHTMLAttributes<HTMLAnchorElement>, "color" | "type">, UseAnchorProps {
7
5
  color?: ChipColor;
8
6
  onClose?: MouseEventHandler;
9
7
  size?: ChipSize;
10
8
  suppressFocus?: boolean;
11
9
  variant?: ChipVariant;
12
10
  }
13
- export declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLDivElement>>;
11
+ export declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLAnchorElement>>;
package/chip/chip.js CHANGED
@@ -26,15 +26,30 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.Chip = void 0;
27
27
  const cx_1 = require("@uxf/core/utils/cx");
28
28
  const react_1 = __importStar(require("react"));
29
+ const useAnchorProps_1 = require("@uxf/core/hooks/useAnchorProps");
30
+ const CloseButton = (props) => {
31
+ const onClose = (e) => {
32
+ var _a;
33
+ e.preventDefault();
34
+ e.stopPropagation();
35
+ (_a = props.onClose) === null || _a === void 0 ? void 0 : _a.call(props, e);
36
+ };
37
+ return (react_1.default.createElement("button", { className: "uxf-chip__button", onClick: onClose, tabIndex: props.suppressFocus ? -1 : undefined, type: "button" },
38
+ react_1.default.createElement("span", { className: "uxf-chip__button-label" }, "Odebrat polo\u017Eku"),
39
+ react_1.default.createElement("svg", { className: "uxf-chip__button-icon", stroke: "currentColor", fill: "none", viewBox: "0 0 8 8" },
40
+ react_1.default.createElement("path", { strokeLinecap: "round", strokeWidth: "1.5", d: "M1 1l6 6m0-6L1 7" }))));
41
+ };
29
42
  exports.Chip = (0, react_1.forwardRef)((props, ref) => {
30
43
  var _a, _b, _c;
31
- const { children, className, onClose, suppressFocus, ...restProps } = props;
44
+ const { children, className, onClose, suppressFocus, tabIndex, ...restProps } = props;
32
45
  const chipClassName = (0, cx_1.cx)("uxf-chip", `uxf-chip--color-${(_a = props.color) !== null && _a !== void 0 ? _a : "default"}`, `uxf-chip--size-${(_b = props.size) !== null && _b !== void 0 ? _b : "default"}`, `uxf-chip--variant-${(_c = props.variant) !== null && _c !== void 0 ? _c : "default"}`, onClose && "has-button", className);
33
- return (react_1.default.createElement("div", { className: chipClassName, ref: ref, ...restProps },
46
+ const anchorProps = (0, useAnchorProps_1.useAnchorProps)({
47
+ className: (0, cx_1.cx)(chipClassName),
48
+ tabIndex: suppressFocus ? -1 : tabIndex,
49
+ ...restProps,
50
+ });
51
+ return (react_1.default.createElement("a", { ref: ref, ...anchorProps },
34
52
  typeof children === "string" ? react_1.default.createElement("span", { className: "uxf-chip__text" }, children) : children,
35
- onClose && (react_1.default.createElement("button", { className: "uxf-chip__button", onClick: onClose, tabIndex: suppressFocus ? -1 : undefined, type: "button" },
36
- react_1.default.createElement("span", { className: "sr-only" }, "Remove option"),
37
- react_1.default.createElement("svg", { stroke: "currentColor", fill: "none", viewBox: "0 0 8 8" },
38
- react_1.default.createElement("path", { strokeLinecap: "round", strokeWidth: "1.5", d: "M1 1l6 6m0-6L1 7" }))))));
53
+ !!onClose && react_1.default.createElement(CloseButton, { onClose: onClose })));
39
54
  });
40
- exports.Chip.displayName = "UxfUiChip";
55
+ exports.Chip.displayName = "UxfChip";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const snap_test_1 = require("../utils/snap-test");
8
+ const chip_stories_1 = require("./chip.stories");
9
+ (0, snap_test_1.snapTest)("render stories", react_1.default.createElement(chip_stories_1.Default, null));
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  declare const _default: {
3
3
  title: string;
4
- component: React.ForwardRefExoticComponent<import("@uxf/ui/chip").ChipProps & React.RefAttributes<HTMLDivElement>>;
4
+ component: React.ForwardRefExoticComponent<import("@uxf/ui/chip").ChipProps & React.RefAttributes<HTMLAnchorElement>>;
5
5
  parameters: {
6
6
  docs: {};
7
7
  };
@@ -1,10 +1,30 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.Default = void 0;
7
- const react_1 = __importDefault(require("react"));
27
+ const react_1 = __importStar(require("react"));
8
28
  const chip_1 = require("@uxf/ui/chip");
9
29
  const storybook_config_1 = require("../utils/storybook-config");
10
30
  exports.default = {
@@ -16,34 +36,23 @@ exports.default = {
16
36
  },
17
37
  },
18
38
  };
19
- const getChipsForSize = (size, colors) => {
20
- const lowChips = colors.map((color) => (react_1.default.createElement("div", { key: color },
21
- react_1.default.createElement(chip_1.Chip, { variant: "low", size: size, color: color, onClose: () => null }, color))));
22
- const mediumChips = colors.map((color) => (react_1.default.createElement("div", { key: color },
23
- react_1.default.createElement(chip_1.Chip, { variant: "medium", size: size, color: color }, color))));
24
- const defaultChips = colors.map((color) => (react_1.default.createElement("div", { key: color },
25
- react_1.default.createElement(chip_1.Chip, { variant: "default", size: size, color: color }, color))));
26
- return (react_1.default.createElement("div", { className: "grid grid-cols-3 gap-4" },
27
- react_1.default.createElement("div", { className: "flex flex-col gap-2" }, lowChips),
28
- react_1.default.createElement("div", { className: "flex flex-col gap-2" }, mediumChips),
29
- react_1.default.createElement("div", { className: "flex flex-col gap-2" }, defaultChips)));
39
+ const getChipsForSize = (colors) => {
40
+ const sizes = ["small", "default", "large"];
41
+ const variants = ["low", "medium", "default"];
42
+ return sizes.map((size) => (react_1.default.createElement(react_1.Fragment, { key: size },
43
+ react_1.default.createElement("div", { className: "uxf-typo-h5" }, size),
44
+ react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" },
45
+ react_1.default.createElement("div", { className: "grid grid-cols-3 gap-4", key: size }, variants.map((variant) => (react_1.default.createElement("div", { className: "flex flex-col gap-2", key: `${size}${variant}` }, colors.map((color) => (react_1.default.createElement("div", { className: "flex flex-col items-start space-y-2", key: `${size}${variant}${color}` },
46
+ react_1.default.createElement(chip_1.Chip, { color: color, size: size, variant: variant }, color),
47
+ react_1.default.createElement(chip_1.Chip, { color: color, size: size, onClose: () => null, variant: variant }, color),
48
+ react_1.default.createElement(chip_1.Chip, { color: color, href: "https://uxf.cz", onClose: () => null, size: size, target: "_blank", variant: variant },
49
+ "#",
50
+ color))))))))))));
30
51
  };
31
52
  function Default() {
32
53
  const config = (0, storybook_config_1.useStorybookConfig)("Chip");
33
54
  return (react_1.default.createElement("div", { className: "flex lg:flex-row" },
34
- react_1.default.createElement("div", { className: "light space-y-4 rounded bg-white p-10" },
35
- react_1.default.createElement("div", { className: "uxf-typo-h5" }, "small"),
36
- react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" }, getChipsForSize("small", config.colors)),
37
- react_1.default.createElement("div", { className: "uxf-typo-h5" }, "default"),
38
- react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" }, getChipsForSize("default", config.colors)),
39
- react_1.default.createElement("div", { className: "uxf-typo-h5" }, "large"),
40
- react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" }, getChipsForSize("large", config.colors))),
41
- react_1.default.createElement("div", { className: "dark space-y-4 rounded bg-gray-900 p-10 text-white" },
42
- react_1.default.createElement("div", { className: "uxf-typo-h5" }, "small"),
43
- react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" }, getChipsForSize("small", config.colors)),
44
- react_1.default.createElement("div", { className: "uxf-typo-h5" }, "default"),
45
- react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" }, getChipsForSize("default", config.colors)),
46
- react_1.default.createElement("div", { className: "uxf-typo-h5" }, "large"),
47
- react_1.default.createElement("div", { className: "flex flex-col space-y-4 px-5" }, getChipsForSize("large", config.colors)))));
55
+ react_1.default.createElement("div", { className: "light space-y-4 rounded bg-white p-10" }, getChipsForSize(config.colors)),
56
+ react_1.default.createElement("div", { className: "dark space-y-4 rounded bg-gray-900 p-10 text-white" }, getChipsForSize(config.colors))));
48
57
  }
49
58
  exports.Default = Default;
package/chip/index.d.ts CHANGED
@@ -1 +1,3 @@
1
- export * from "./chip";
1
+ export type { ChipColor, ChipSize, ChipVariant } from "./theme";
2
+ export type { ChipProps } from "./chip";
3
+ export { Chip } from "./chip";
package/chip/index.js CHANGED
@@ -1,17 +1,5 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./chip"), exports);
3
+ exports.Chip = void 0;
4
+ var chip_1 = require("./chip");
5
+ Object.defineProperty(exports, "Chip", { enumerable: true, get: function () { return chip_1.Chip; } });
package/chip/theme.d.ts CHANGED
@@ -20,3 +20,6 @@ export interface ChipVariants {
20
20
  medium: true;
21
21
  low: true;
22
22
  }
23
+ export type ChipColor = keyof ChipColors;
24
+ export type ChipSize = keyof ChipSizes;
25
+ export type ChipVariant = keyof ChipVariants;