@ssa-ui-kit/core 2.33.0 → 3.0.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 (177) hide show
  1. package/dist/components/AccordionGroup/Accordion.d.ts +37 -0
  2. package/dist/components/AccordionGroup/AccordionContent.d.ts +48 -0
  3. package/dist/components/AccordionGroup/AccordionContext.d.ts +76 -2
  4. package/dist/components/AccordionGroup/AccordionGroup.d.ts +56 -0
  5. package/dist/components/AccordionGroup/AccordionTitle.d.ts +41 -0
  6. package/dist/components/AccordionGroup/types.d.ts +199 -1
  7. package/dist/components/Avatar/Avatar.d.ts +33 -0
  8. package/dist/components/Button/Button.d.ts +61 -0
  9. package/dist/components/Button/fixtures.d.ts +52 -31
  10. package/dist/components/Button/styles.d.ts +7 -12
  11. package/dist/components/Button/types.d.ts +98 -4
  12. package/dist/components/Charts/BarGaugeChart/components/BarGaugeChartHeader.d.ts +1 -1
  13. package/dist/components/Charts/BarLineComplexChart/BarLineComplexChartView.d.ts +2 -2
  14. package/dist/components/Charts/BarLineComplexChart/types.d.ts +2 -2
  15. package/dist/components/Charts/BigNumberChart/BigNumberChart.d.ts +4 -2
  16. package/dist/components/Charts/BigNumberChart/components/BigNumberChartHeader.d.ts +1 -1
  17. package/dist/components/Charts/BigNumberChart/components/TrendLine.d.ts +8 -3
  18. package/dist/components/Charts/BigNumberChart/components/TrendLineTooltip.d.ts +8 -5
  19. package/dist/components/Charts/GaugeChart/components/GaugeChartBase.d.ts +3 -1
  20. package/dist/components/Charts/GaugeChart/components/GaugeChartHeader.d.ts +1 -1
  21. package/dist/components/Charts/PieChart/PieChartLegendMarker.d.ts +1 -1
  22. package/dist/components/Charts/PieChart/styles.d.ts +1 -1
  23. package/dist/components/Charts/PieChart/types.d.ts +1 -1
  24. package/dist/components/Charts/RadarChart/RadarChart.d.ts +1 -1
  25. package/dist/components/Charts/RadarChart/components/RadarChartHeader.d.ts +1 -1
  26. package/dist/components/Charts/TreeMapChart/TreeMapChart.d.ts +1 -1
  27. package/dist/components/Charts/TreeMapChart/TreeMapChartHeader.d.ts +1 -1
  28. package/dist/components/Charts/index.d.ts +1 -0
  29. package/dist/components/Charts/utils/nivoReact19Compat.d.ts +18 -0
  30. package/dist/components/Checkbox/Checkbox.d.ts +84 -0
  31. package/dist/components/Checkbox/CheckboxBase.d.ts +1 -1
  32. package/dist/components/Checkbox/styles.d.ts +2 -2
  33. package/dist/components/Checkbox/types.d.ts +104 -3
  34. package/dist/components/Chip/Chip.d.ts +70 -0
  35. package/dist/components/Chip/constants.d.ts +1 -1
  36. package/dist/components/Chip/helpers.d.ts +6 -0
  37. package/dist/components/Chip/types.d.ts +129 -1
  38. package/dist/components/CollapsibleNavBar/CollapsibleNavBar.d.ts +1 -1
  39. package/dist/components/CollapsibleNavBar/CollapsibleNavBarContext.d.ts +2 -2
  40. package/dist/components/CollapsibleNavBar/components/TriggerIcon.d.ts +4 -2
  41. package/dist/components/CollapsibleNavBar/types.d.ts +9 -2
  42. package/dist/components/ColorPicker/components/CopyButton.d.ts +1 -1
  43. package/dist/components/DatePicker/constants.d.ts +22 -0
  44. package/dist/components/DatePicker/hooks/useDatePicker.d.ts +7 -5
  45. package/dist/components/DatePicker/index.d.ts +1 -0
  46. package/dist/components/DatePicker/styles.d.ts +3 -2
  47. package/dist/components/DatePicker/types.d.ts +10 -2
  48. package/dist/components/DatePicker/utils/dates.d.ts +2 -2
  49. package/dist/components/DateRangePicker/DateRangePicker.d.ts +1 -1
  50. package/dist/components/DateRangePicker/DateRangePickerFormBridge.d.ts +46 -0
  51. package/dist/components/DateRangePicker/components/DatesListWrapper.d.ts +3 -2
  52. package/dist/components/DateRangePicker/constants.d.ts +1 -0
  53. package/dist/components/DateRangePicker/hooks/useDateRangePicker.d.ts +22 -17
  54. package/dist/components/DateRangePicker/index.d.ts +3 -0
  55. package/dist/components/DateRangePicker/styles.d.ts +6 -4
  56. package/dist/components/DateRangePicker/types.d.ts +24 -7
  57. package/dist/components/DateRangePicker/utils/dates.d.ts +2 -2
  58. package/dist/components/Drawer/index.d.ts +2 -1
  59. package/dist/components/Dropdown/Dropdown.d.ts +88 -0
  60. package/dist/components/Dropdown/types.d.ts +78 -0
  61. package/dist/components/DropdownOptions/DropdownOptions.d.ts +31 -0
  62. package/dist/components/DropdownOptions/types.d.ts +22 -0
  63. package/dist/components/DropdownToggle/DropdownToggle.d.ts +1 -1
  64. package/dist/components/Field/FieldControl.d.ts +62 -1
  65. package/dist/components/Field/FieldDescription.d.ts +33 -0
  66. package/dist/components/Field/FieldError.d.ts +36 -0
  67. package/dist/components/Field/FieldLabel.d.ts +37 -0
  68. package/dist/components/Field/FieldProvider.d.ts +19 -1
  69. package/dist/components/Field/FieldRoot.d.ts +90 -0
  70. package/dist/components/Field/FieldSuccess.d.ts +34 -0
  71. package/dist/components/Field/index.d.ts +4 -0
  72. package/dist/components/Filters/FilterBlockWrapper.d.ts +3 -2
  73. package/dist/components/Filters/FiltersContext.d.ts +4 -4
  74. package/dist/components/Filters/hooks/useVisibility.d.ts +2 -2
  75. package/dist/components/FullscreenModeContext.d.ts +1 -4
  76. package/dist/components/Icon/icons/iconsList.d.ts +1 -1
  77. package/dist/components/IconButton/IconButton.d.ts +39 -0
  78. package/dist/components/IconButton/index.d.ts +2 -0
  79. package/dist/components/IconButton/styles.d.ts +2 -0
  80. package/dist/components/IconButton/types.d.ts +41 -0
  81. package/dist/components/Indicator/types.d.ts +4 -2
  82. package/dist/components/Input/types.d.ts +157 -0
  83. package/dist/components/JsonSchemaForm/fields/DateRangeField.d.ts +15 -1
  84. package/dist/components/JsonSchemaForm/utils/dateFormats.d.ts +37 -0
  85. package/dist/components/JsonSchemaForm/utils/dateRangeField.d.ts +24 -0
  86. package/dist/components/JsonSchemaForm/utils/index.d.ts +1 -0
  87. package/dist/components/JsonSchemaForm/utils/selectWidget.d.ts +16 -0
  88. package/dist/components/Modal/Modal.d.ts +60 -0
  89. package/dist/components/Modal/types.d.ts +21 -1
  90. package/dist/components/ModalContent/ModalContent.d.ts +42 -1
  91. package/dist/components/ModalDialog/ModalDialog.d.ts +27 -0
  92. package/dist/components/ModalDialog/types.d.ts +18 -0
  93. package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +29 -2
  94. package/dist/components/ModalOpenButton/ModalOpenButton.d.ts +25 -1
  95. package/dist/components/NavBar/types.d.ts +1 -1
  96. package/dist/components/NotificationMenu/types.d.ts +3 -3
  97. package/dist/components/Pagination/ArrowButton.d.ts +32 -0
  98. package/dist/components/Pagination/Pagination.d.ts +81 -0
  99. package/dist/components/Pagination/PaginationButtons.d.ts +35 -0
  100. package/dist/components/Pagination/PaginationContext.d.ts +30 -0
  101. package/dist/components/Pagination/WithPagination.d.ts +47 -4
  102. package/dist/components/Pagination/components/RowsPerPageDropdown/RowsPerPageDropdown.d.ts +41 -0
  103. package/dist/components/Pagination/components/RowsPerPageDropdown/types.d.ts +39 -0
  104. package/dist/components/Pagination/styles.d.ts +1 -1
  105. package/dist/components/Pagination/types.d.ts +178 -0
  106. package/dist/components/PersonInfo/styles.d.ts +1 -1
  107. package/dist/components/Popover/Popover.d.ts +120 -0
  108. package/dist/components/Popover/PopoverClose.d.ts +26 -0
  109. package/dist/components/Popover/PopoverContent.d.ts +33 -0
  110. package/dist/components/Popover/PopoverDescription.d.ts +22 -1
  111. package/dist/components/Popover/PopoverHeading.d.ts +22 -1
  112. package/dist/components/Popover/PopoverTrigger.d.ts +30 -0
  113. package/dist/components/Popover/hooks/usePopover.d.ts +21 -0
  114. package/dist/components/Popover/hooks/usePopoverContext.d.ts +23 -0
  115. package/dist/components/Popover/types.d.ts +86 -0
  116. package/dist/components/Radio/Radio.d.ts +69 -1
  117. package/dist/components/Radio/RadioBase.d.ts +1 -1
  118. package/dist/components/Radio/types.d.ts +109 -0
  119. package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
  120. package/dist/components/RadioGroup/index.d.ts +1 -0
  121. package/dist/components/RadioGroup/types.d.ts +42 -0
  122. package/dist/components/SearchBox/SearchBox.d.ts +60 -0
  123. package/dist/components/SearchBox/SearchBoxInput.d.ts +1 -1
  124. package/dist/components/SearchBox/types.d.ts +46 -0
  125. package/dist/components/Slider/Slider.d.ts +53 -0
  126. package/dist/components/Slider/consts.d.ts +4 -0
  127. package/dist/components/Slider/index.d.ts +4 -0
  128. package/dist/components/Slider/styles.d.ts +90 -0
  129. package/dist/components/Slider/types.d.ts +69 -0
  130. package/dist/components/Switch/Switch.d.ts +66 -1
  131. package/dist/components/Switch/SwitchBase.d.ts +5 -1
  132. package/dist/components/Switch/SwitchContext.d.ts +50 -0
  133. package/dist/components/Switch/types.d.ts +74 -0
  134. package/dist/components/Table/Table.d.ts +74 -0
  135. package/dist/components/TableBody/TableBody.d.ts +55 -0
  136. package/dist/components/TableCell/TableCell.d.ts +56 -4
  137. package/dist/components/TableCell/types.d.ts +33 -0
  138. package/dist/components/TableCellHeader/TableCellHeader.d.ts +63 -2
  139. package/dist/components/TableCellHeader/types.d.ts +28 -0
  140. package/dist/components/TableFilters/TableFilters.d.ts +72 -0
  141. package/dist/components/TableFilters/hooks/useTableData.d.ts +3 -3
  142. package/dist/components/TableFilters/types.d.ts +130 -2
  143. package/dist/components/TableHead/TableHead.d.ts +37 -0
  144. package/dist/components/TableRow/TableRow.d.ts +2 -7
  145. package/dist/components/TableRow/types.d.ts +34 -0
  146. package/dist/components/TextField/TextField.d.ts +76 -0
  147. package/dist/components/TextField/types.d.ts +80 -0
  148. package/dist/components/Textarea/Textarea.d.ts +81 -0
  149. package/dist/components/Textarea/types.d.ts +95 -0
  150. package/dist/components/Tooltip/SimpleChartTooltip.d.ts +2 -1
  151. package/dist/components/Tooltip/Tooltip.d.ts +73 -0
  152. package/dist/components/Tooltip/types.d.ts +116 -5
  153. package/dist/components/TooltipContent/TooltipContent.d.ts +45 -0
  154. package/dist/components/TooltipTrigger/TooltipTrigger.d.ts +27 -1
  155. package/dist/components/Typeahead/Typeahead.context.d.ts +10 -4
  156. package/dist/components/Typeahead/Typeahead.d.ts +173 -9
  157. package/dist/components/Typeahead/components/TypeaheadOption.d.ts +1 -1
  158. package/dist/components/Typeahead/styles.d.ts +9 -4
  159. package/dist/components/Typeahead/types.d.ts +191 -1
  160. package/dist/components/Typeahead/useTypeahead.d.ts +13 -5
  161. package/dist/components/Typography/Typography.d.ts +50 -0
  162. package/dist/components/Typography/types.d.ts +67 -0
  163. package/dist/components/UserProfile/UserProfile.d.ts +76 -0
  164. package/dist/components/UserProfile/styles.d.ts +6 -4
  165. package/dist/components/UserProfile/types.d.ts +85 -1
  166. package/dist/components/WidgetCard/Title.d.ts +1 -1
  167. package/dist/components/WidgetCard/WidgetCardBase.d.ts +1 -1
  168. package/dist/components/WithLink.d.ts +1 -1
  169. package/dist/components/Wrapper/Wrapper.d.ts +83 -2
  170. package/dist/components/Wrapper/index.d.ts +1 -0
  171. package/dist/components/index.d.ts +113 -85
  172. package/dist/index.d.ts +1 -0
  173. package/dist/index.js +47400 -19567
  174. package/dist/index.js.map +1 -1
  175. package/dist/types/emotion.d.ts +63 -0
  176. package/dist/utils/react19HocCompat.d.ts +14 -0
  177. package/package.json +42 -33
@@ -1,7 +1,97 @@
1
1
  import { type HTMLAttributes } from 'react';
2
2
  import { FieldContextValue } from './FieldProvider';
3
+ /**
4
+ * Props for Field.Root component
5
+ *
6
+ * The root container component for form fields. Provides context for validation status,
7
+ * disabled state, and focus behavior to child Field components. Can render as a div
8
+ * (default) or use the asChild pattern to render without a wrapper.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <Field.Root status="error">
13
+ * <Field.Label htmlFor="email">Email</Field.Label>
14
+ * <Field.Control>
15
+ * <Input id="email" name="email" />
16
+ * </Field.Control>
17
+ * <Field.Error>Invalid email address</Field.Error>
18
+ * </Field.Root>
19
+ * ```
20
+ */
3
21
  export interface FieldRootProps extends Partial<FieldContextValue>, HTMLAttributes<HTMLDivElement> {
22
+ /**
23
+ * If true, renders without a wrapper div (asChild pattern)
24
+ * Useful for semantic HTML (e.g., wrapping with fieldset)
25
+ * @default false
26
+ */
4
27
  asChild?: boolean;
28
+ /**
29
+ * Child components (typically Field.Label, Field.Control, Field.Description, etc.)
30
+ */
5
31
  children: React.ReactNode;
6
32
  }
33
+ /**
34
+ * Field - Compound layout primitives for building accessible form fields.
35
+ *
36
+ * Purpose: use when you need full control over field layout or when building custom
37
+ * form widgets (e.g. JsonSchemaForm, custom inputs). Field does not render an input
38
+ * itself — you compose Field.Root, Field.Label, Field.Control, Field.Description,
39
+ * Field.Error, and Field.Success around Input, Textarea, or other controls. Use
40
+ * TextField for a ready-made text input with label and validation UI.
41
+ *
42
+ * Field.Root - Root container for form field components. Provides context and
43
+ * styling container for form fields. Manages validation status, disabled state,
44
+ * and focus forwarding behavior. Use with Field.Label, Field.Control,
45
+ * Field.Description, Field.Error, and Field.Success components.
46
+ *
47
+ * @category Form Controls
48
+ * @subcategory Layout
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * // Basic field
53
+ * <Field.Root>
54
+ * <Field.Label htmlFor="username">Username</Field.Label>
55
+ * <Field.Control>
56
+ * <Input id="username" name="username" />
57
+ * </Field.Control>
58
+ * </Field.Root>
59
+ * ```
60
+ *
61
+ * @example
62
+ * ```tsx
63
+ * // Field with validation
64
+ * <Field.Root status={hasError ? 'error' : 'basic'}>
65
+ * <Field.Label htmlFor="email">Email</Field.Label>
66
+ * <Field.Control>
67
+ * <Input id="email" name="email" />
68
+ * </Field.Control>
69
+ * <Field.Error>Email is required</Field.Error>
70
+ * </Field.Root>
71
+ * ```
72
+ *
73
+ * @example
74
+ * ```tsx
75
+ * // Using asChild pattern with fieldset
76
+ * <Field.Root asChild status="error">
77
+ * <fieldset>
78
+ * <Field.Label htmlFor="age">Age</Field.Label>
79
+ * <Field.Control>
80
+ * <Input id="age" name="age" type="number" />
81
+ * </Field.Control>
82
+ * </fieldset>
83
+ * </Field.Root>
84
+ * ```
85
+ *
86
+ * @see {@link Field.Label} - For accessible labels
87
+ * @see {@link Field.Control} - For input wrapper
88
+ * @see {@link Field.Description} - For helper text
89
+ * @see {@link Field.Error} - For error messages
90
+ * @see {@link Field.Success} - For success messages
91
+ *
92
+ * @accessibility
93
+ * - Label/control association via htmlFor on Field.Label
94
+ * - Status (error/success) and disabled flow from context to child components
95
+ * - Optional focus forwarding from Field.Control to the inner input
96
+ */
7
97
  export declare const FieldRoot: ({ children, ...props }: FieldRootProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,4 +1,38 @@
1
+ /**
2
+ * Props for Field.Success component
3
+ *
4
+ * Success message component that only displays when field status is 'success'.
5
+ * Automatically hidden when field is in 'basic' or 'error' state.
6
+ */
1
7
  export interface FieldSuccessProps {
8
+ /**
9
+ * Success message text to display
10
+ */
2
11
  children: React.ReactNode;
3
12
  }
13
+ /**
14
+ * Field.Success - Success message for form fields
15
+ *
16
+ * Displays success/validation confirmation messages below form controls.
17
+ * Only visible when the field status is 'success'. Automatically styled with
18
+ * success colors and hidden when status is 'basic' or 'error'.
19
+ *
20
+ * @category Form Controls
21
+ * @subcategory Layout
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <Field.Root status={isValid ? 'success' : 'basic'}>
26
+ * <Field.Label htmlFor="username">Username</Field.Label>
27
+ * <Field.Control>
28
+ * <Input id="username" name="username" />
29
+ * </Field.Control>
30
+ * <Field.Success>Username is available!</Field.Success>
31
+ * </Field.Root>
32
+ * ```
33
+ *
34
+ * @accessibility
35
+ * - Uses role="status" for screen reader announcements
36
+ * - Visible only when status is 'success'
37
+ */
4
38
  export declare const FieldSuccess: ({ children }: FieldSuccessProps) => import("@emotion/react/jsx-runtime").JSX.Element | null;
@@ -2,4 +2,8 @@ export * as Field from './index.parts';
2
2
  export { type FieldRootProps as FieldProps } from './FieldRoot';
3
3
  export { type FieldLabelProps } from './FieldLabel';
4
4
  export { type FieldControlProps } from './FieldControl';
5
+ export { type FieldErrorProps } from './FieldError';
6
+ export { type FieldSuccessProps } from './FieldSuccess';
7
+ export { type FieldDescriptionProps } from './FieldDescription';
8
+ export { type FieldContextValue } from './FieldProvider';
5
9
  export { useFieldContext } from './FieldProvider';
@@ -2,8 +2,9 @@ export declare const FilterBlockWrapper: import("@emotion/styled").StyledCompone
2
2
  theme?: import("@emotion/react").Theme;
3
3
  as?: React.ElementType;
4
4
  } & {
5
- direction?: string;
6
- alignItems?: string;
5
+ direction?: import("../Wrapper").WrapperDirection;
6
+ alignItems?: import("../Wrapper").WrapperAlignItems;
7
+ justifyContent?: import("../Wrapper").WrapperJustifyContent;
7
8
  fade?: boolean;
8
9
  fadeDelay?: number;
9
10
  isVisible?: boolean;
@@ -2,8 +2,8 @@ import { UseTableDataResult } from '../TableFilters/hooks/useTableData';
2
2
  import { BaseSyntheticEvent } from 'react';
3
3
  export declare const FiltersContext: import("react").Context<{
4
4
  checkboxData: import("../TableFilters/types").TableFilterConfig;
5
- wrapperRef: import("react").RefObject<HTMLElement> | undefined;
6
- refsList: import("react").MutableRefObject<HTMLElement | null>[];
5
+ wrapperRef: import("react").RefObject<HTMLElement | null> | undefined;
6
+ refsList: import("react").RefObject<HTMLElement | null>[];
7
7
  setElementRef: (groupName: string, element: HTMLElement | null) => void;
8
8
  onCheckboxToggle: (groupName: string, name: string | number) => void;
9
9
  onDropdownChange: (groupName: string, name: string | number) => void;
@@ -13,8 +13,8 @@ export declare const FiltersContext: import("react").Context<{
13
13
  }>;
14
14
  export declare const useFiltersContext: () => {
15
15
  checkboxData: import("../TableFilters/types").TableFilterConfig;
16
- wrapperRef: import("react").RefObject<HTMLElement> | undefined;
17
- refsList: import("react").MutableRefObject<HTMLElement | null>[];
16
+ wrapperRef: import("react").RefObject<HTMLElement | null> | undefined;
17
+ refsList: import("react").RefObject<HTMLElement | null>[];
18
18
  setElementRef: (groupName: string, element: HTMLElement | null) => void;
19
19
  onCheckboxToggle: (groupName: string, name: string | number) => void;
20
20
  onDropdownChange: (groupName: string, name: string | number) => void;
@@ -3,8 +3,8 @@ import { ElementInfo } from '../types';
3
3
  export type RefsByKey = Record<string, ElementInfo>;
4
4
  type UseVisibilityParams = {
5
5
  checkboxData: TableFilterConfig;
6
- refsList: Array<React.MutableRefObject<HTMLElement | null>>;
7
- wrapperRef?: React.RefObject<HTMLElement>;
6
+ refsList: Array<React.RefObject<HTMLElement | null>>;
7
+ wrapperRef?: React.RefObject<HTMLElement | null>;
8
8
  onVisibilityProcessed?: () => void;
9
9
  };
10
10
  export declare const useVisibility: ({ checkboxData, wrapperRef, refsList, onVisibilityProcessed, }: UseVisibilityParams) => {
@@ -8,7 +8,4 @@ export type FullscreenModeContextType = {
8
8
  export declare const FullscreenModeContext: import("react").Context<FullscreenModeContextType>;
9
9
  export declare const FullscreenModeProvider: ({ children, }: React.PropsWithChildren) => import("@emotion/react/jsx-runtime").JSX.Element;
10
10
  export declare const useFullscreenMode: () => FullscreenModeContextType;
11
- export declare const WithFullscreenMode: <T extends object>(Component: React.ComponentType<T>, rest?: Parameters<typeof FullscreenModeProvider>[0]) => {
12
- (props: T): import("@emotion/react/jsx-runtime").JSX.Element;
13
- displayName: string;
14
- };
11
+ export declare const WithFullscreenMode: <T extends object>(Component: React.ComponentType<T>, rest?: Parameters<typeof FullscreenModeProvider>[0]) => React.ComponentType<T>;
@@ -1 +1 @@
1
- export declare const iconsList: ("visible" | "copy" | "circle" | "search" | "email" | "attention" | "archive" | "arrow-down" | "arrow-up" | "assessment" | "ban-user" | "bin" | "calendar" | "carrot-down" | "carrot-left" | "carrot-right" | "carrot-up" | "certification" | "certification-expiring" | "change" | "chart" | "check" | "check-circle" | "check-circle-inverted" | "children" | "circular" | "clock" | "cogwheel" | "company" | "confirm-email" | "cross" | "diet" | "edit" | "employee" | "employee-terminated" | "excel-download" | "filter" | "filter-funnel" | "fte" | "geography" | "home" | "import" | "information" | "invisible" | "language" | "lock" | "log-in" | "log-out" | "maximize" | "measurements" | "message" | "minus" | "minus-circle" | "minus-circle-inverted" | "more" | "more-vertical" | "notification" | "pages" | "party" | "plus" | "plus-circle" | "plus-circle-inverted" | "probation-period" | "profiles-changes" | "radio-on" | "report" | "robot" | "roles" | "seniority" | "settings" | "sleep" | "staff-growth-coefficient" | "staff-turnover-coefficient" | "stats" | "time-tracking" | "trainings" | "unarchive" | "union" | "unlock" | "user" | "warning")[];
1
+ export declare const iconsList: ("visible" | "warning" | "archive" | "search" | "arrow-down" | "arrow-up" | "assessment" | "attention" | "ban-user" | "bin" | "calendar" | "carrot-down" | "carrot-left" | "carrot-right" | "carrot-up" | "certification" | "certification-expiring" | "change" | "chart" | "check" | "check-circle" | "check-circle-inverted" | "children" | "circle" | "circular" | "clock" | "cogwheel" | "company" | "confirm-email" | "copy" | "cross" | "diet" | "edit" | "email" | "employee" | "employee-terminated" | "excel-download" | "filter" | "filter-funnel" | "fte" | "geography" | "home" | "import" | "information" | "invisible" | "language" | "lock" | "log-in" | "log-out" | "maximize" | "measurements" | "message" | "minus" | "minus-circle" | "minus-circle-inverted" | "more" | "more-vertical" | "notification" | "pages" | "party" | "plus" | "plus-circle" | "plus-circle-inverted" | "probation-period" | "profiles-changes" | "radio-on" | "report" | "robot" | "roles" | "seniority" | "settings" | "sleep" | "staff-growth-coefficient" | "staff-turnover-coefficient" | "stats" | "time-tracking" | "trainings" | "unarchive" | "union" | "unlock" | "user")[];
@@ -0,0 +1,39 @@
1
+ import type { IconButtonProps } from './types';
2
+ /**
3
+ * IconButton - Square icon-only button for icon actions
4
+ *
5
+ * A compact button that displays a single icon from the kit (e.g. edit, bin, search).
6
+ * Uses the kit's Icon and theme. Good for row actions, toolbars, and secondary actions
7
+ * where a text label is not needed. Optional tooltip on hover and full style overrides
8
+ * via a single styles prop.
9
+ *
10
+ * Features:
11
+ * - Any icon from the kit via icon name
12
+ * - Optional tooltip (title) on hover via kit Tooltip
13
+ * - Optional aria-label; defaults to raw icon name for screen readers
14
+ * - Single styles prop: button, iconColor, icon (all overridable)
15
+ * - Transparent or grey background variant; disabled state
16
+ *
17
+ * @category Form Controls
18
+ * @subcategory Action
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <IconButton icon="edit" onClick={onEdit} aria-label="Edit" />
23
+ * ```
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * <IconButton icon="bin" onClick={onDelete} title="Delete" transparent />
28
+ * ```
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <IconButton
33
+ * icon="search"
34
+ * onClick={onSearch}
35
+ * styles={{ button: { marginLeft: 8 }, iconColor: theme.colors.blue }}
36
+ * />
37
+ * ```
38
+ */
39
+ export declare const IconButton: ({ icon, onClick, "aria-label": ariaLabel, title, disabled, transparent, styles, }: IconButtonProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export { IconButton } from './IconButton';
2
+ export type { IconButtonProps } from './types';
@@ -0,0 +1,2 @@
1
+ import { Theme } from '@emotion/react';
2
+ export declare const iconButton: (theme: Theme, transparent: boolean) => import("@emotion/react").SerializedStyles;
@@ -0,0 +1,41 @@
1
+ import type { Interpolation, Theme } from '@emotion/react';
2
+ import type { MapIconsType } from '../Icon/types';
3
+ export type IconButtonProps = {
4
+ /**
5
+ * Icon name from the UI kit Icon component (e.g. "edit", "bin", "search")
6
+ */
7
+ icon: keyof MapIconsType;
8
+ /**
9
+ * Click handler
10
+ */
11
+ onClick: () => void;
12
+ /**
13
+ * Accessible label for screen readers. When omitted, the raw icon name is used.
14
+ */
15
+ 'aria-label'?: string;
16
+ /**
17
+ * Tooltip text; when provided, uses the kit's Tooltip on hover.
18
+ */
19
+ title?: string;
20
+ /**
21
+ * Disables the button and applies disabled styles
22
+ * @default false
23
+ */
24
+ disabled?: boolean;
25
+ /**
26
+ * Use transparent background instead of theme grey
27
+ * @default false
28
+ */
29
+ transparent?: boolean;
30
+ /**
31
+ * Custom styles in one prop. Each key is applied where it belongs:
32
+ * - `button`: Emotion styles merged with default button styles
33
+ * - `iconColor`: icon color (defaults to theme.colors.greyDarker)
34
+ * - `icon`: Emotion styles passed to the Icon
35
+ */
36
+ styles?: {
37
+ button?: Interpolation<Theme>;
38
+ iconColor?: string;
39
+ icon?: Interpolation<Theme>;
40
+ };
41
+ };
@@ -1,8 +1,10 @@
1
1
  export interface IndicatorProps {
2
2
  isVisible: boolean;
3
- children: React.ReactElement;
3
+ children: React.ReactElement<{
4
+ ref: React.Ref<HTMLDivElement | null>;
5
+ }>;
4
6
  position?: 'right' | 'left';
5
7
  background?: string;
6
- text?: string | number | JSX.Element;
8
+ text?: string | number | React.JSX.Element;
7
9
  }
8
10
  export type ChildrenDataProps = Record<string, number>;
@@ -4,33 +4,190 @@ import type { Interpolation, Theme } from '@emotion/react';
4
4
  interface ExtendedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
5
5
  'data-testid'?: string;
6
6
  }
7
+ /**
8
+ * Props for the Input component
9
+ *
10
+ * A flexible text input component with built-in validation, status indicators,
11
+ * icon support, and React Hook Form integration. Supports all standard HTML input
12
+ * types and provides visual feedback for validation states.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * // Basic input with React Hook Form
17
+ * const { register } = useForm();
18
+ * <Input
19
+ * name="email"
20
+ * type="email"
21
+ * placeholder="Enter your email"
22
+ * register={register}
23
+ * />
24
+ * ```
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * // Input with validation
29
+ * <Input
30
+ * name="password"
31
+ * type="password"
32
+ * register={register}
33
+ * validationSchema={{
34
+ * required: 'Password is required',
35
+ * minLength: { value: 8, message: 'Must be at least 8 characters' }
36
+ * }}
37
+ * status={errors.password ? 'error' : 'basic'}
38
+ * errors={errors.password}
39
+ * showHelperText
40
+ * />
41
+ * ```
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * // Input with icons and helper text
46
+ * <Input
47
+ * name="search"
48
+ * placeholder="Search products..."
49
+ * startElement={<Icon name="search" />}
50
+ * endElement={<Icon name="clear" onClick={handleClear} />}
51
+ * helperText="Type to search"
52
+ * showHelperText
53
+ * />
54
+ * ```
55
+ *
56
+ * @note React Hook Form integration is optional. If `register` is not provided,
57
+ * the component will still work but validation features will be unavailable.
58
+ */
7
59
  export interface InputProps extends Partial<Pick<UseFormReturn, 'register' | 'control' | 'setValue'>> {
60
+ /**
61
+ * Name attribute for the input, required for React Hook Form integration
62
+ */
8
63
  name: string;
64
+ /**
65
+ * Visual validation status of the input
66
+ * - `basic`: Default state, no validation feedback
67
+ * - `error`: Error state with red border and error icon
68
+ * - `success`: Success state with green border and success icon
69
+ * - `custom`: Custom styling (no default status styling)
70
+ * @default 'basic'
71
+ */
9
72
  status?: keyof InputStatusColors;
73
+ /**
74
+ * HTML input type attribute
75
+ * Supports all standard HTML input types (text, email, password, number, etc.)
76
+ * @default 'text'
77
+ */
10
78
  type?: string;
79
+ /**
80
+ * Placeholder text displayed when input is empty
81
+ */
11
82
  placeholder?: string;
83
+ /**
84
+ * React Hook Form validation schema
85
+ * Object containing validation rules (required, minLength, pattern, etc.)
86
+ */
12
87
  validationSchema?: Record<string, unknown>;
88
+ /**
89
+ * Whether the input is disabled
90
+ * Disabled inputs cannot be edited and appear visually muted
91
+ * @default false
92
+ */
13
93
  disabled?: boolean;
94
+ /**
95
+ * Custom CSS class name for the input element
96
+ */
14
97
  className?: string;
98
+ /**
99
+ * Custom CSS class name for the wrapper container
100
+ */
15
101
  wrapperClassName?: string;
102
+ /**
103
+ * Custom CSS class name for the helper text container
104
+ */
16
105
  helperClassName?: string;
106
+ /**
107
+ * Custom element type to render as (for composition)
108
+ */
17
109
  as?: React.ElementType;
110
+ /**
111
+ * React element to display before the input (e.g., icon)
112
+ * Commonly an Icon component
113
+ */
18
114
  startElement?: React.ReactElement;
115
+ /**
116
+ * React element to display after the input (e.g., icon or action button)
117
+ * Commonly an Icon component or clear button
118
+ */
19
119
  endElement?: React.ReactElement;
120
+ /**
121
+ * Custom Emotion CSS styles
122
+ */
20
123
  css?: Interpolation<Theme>;
124
+ /**
125
+ * Additional props to pass directly to the underlying input element
126
+ * Includes all standard HTML input attributes
127
+ */
21
128
  inputProps?: ExtendedInputProps;
129
+ /**
130
+ * Tooltip text to display when hovering over error icon
131
+ * Only visible when status is 'error' and showStatusIcon is true
132
+ */
22
133
  errorTooltip?: string;
134
+ /**
135
+ * Tooltip text to display when hovering over success icon
136
+ * Only visible when status is 'success' and showStatusIcon is true
137
+ */
23
138
  successTooltip?: string;
139
+ /**
140
+ * Whether to show helper text below the input
141
+ * Displays validation errors, helper text, or character count
142
+ * @default false
143
+ */
24
144
  showHelperText?: boolean;
145
+ /**
146
+ * Whether to show status icon (error/success) inside the input
147
+ * Hidden when endElement is provided or input is disabled
148
+ * @default true
149
+ */
25
150
  showStatusIcon?: boolean;
151
+ /**
152
+ * Whether to show borders around the input
153
+ * @default true
154
+ */
26
155
  showBorders?: boolean;
156
+ /**
157
+ * Helper text to display below the input
158
+ * Only shown when showHelperText is true and no errors are present
159
+ */
27
160
  helperText?: string;
161
+ /**
162
+ * Maximum character length for the input
163
+ * When provided with showHelperText, displays character count (e.g., "45 / 100")
164
+ */
28
165
  maxLength?: number;
166
+ /**
167
+ * React Hook Form field error object
168
+ * Used to display validation error messages
169
+ */
29
170
  errors?: FieldError;
171
+ /**
172
+ * Keyboard event handler for keyup events
173
+ * Also used internally for character counting when maxLength is provided
174
+ */
30
175
  onKeyUp?: KeyboardEventHandler<HTMLInputElement>;
176
+ /**
177
+ * Click handler for the start element
178
+ * Useful for making start icons interactive (e.g., toggle password visibility)
179
+ */
31
180
  onStartElementClick?: (event: BaseSyntheticEvent) => void;
181
+ /**
182
+ * Click handler for the end element
183
+ * Useful for making end icons interactive (e.g., clear button)
184
+ */
32
185
  onEndElementClick?: (event: BaseSyntheticEvent) => void;
33
186
  }
187
+ /**
188
+ * Status color mappings for Input component
189
+ * Defines the visual styling for different validation states
190
+ */
34
191
  export interface InputStatusColors {
35
192
  basic: Interpolation<Theme>;
36
193
  error: Interpolation<Theme>;
@@ -1,2 +1,16 @@
1
1
  import { FieldProps, FormContextType, RJSFSchema, StrictRJSFSchema } from '@rjsf/utils';
2
- export declare const DateRangeField: <T = unknown, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = Record<string, unknown>>(props: FieldProps<T, S, F>) => import("@emotion/react/jsx-runtime").JSX.Element;
2
+ /**
3
+ * DateRangeField - RJSF adapter for DateRangePicker
4
+ *
5
+ * Uses DateRangePickerFormBridge so that:
6
+ * - Format conversion: formData (outputFormat) → DateRangePicker (inputFormat) happens in the bridge
7
+ * - "Present" handling: form stores PRESENT_VALUE string; picker only sees null (see bridge)
8
+ *
9
+ * SCHEMA REQUIREMENT: type must be "object" with properties start and end (each typically type: "string").
10
+ *
11
+ * USAGE (example schemas):
12
+ * - Both optional: { type: "object", properties: { start: { type: "string" }, end: { type: "string" } } }
13
+ * - Only start required: same + required: ["start"]
14
+ * - Both required (or "present" for end): same + required: ["start", "end"] // "present" satisfies string
15
+ */
16
+ export declare const DateRangeField: <T = unknown, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = Record<string, unknown>>(props: FieldProps<T, S, F>) => import("@emotion/react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Common date format type used by both DatePicker and DateRangePicker
3
+ * Valid formats: 'mm/dd/yyyy', 'dd/mm/yyyy', 'mm/yyyy', 'yyyy'
4
+ *
5
+ * This type is shared between:
6
+ * - DatePicker (DatePickerFormat)
7
+ * - DateRangePicker (Format)
8
+ * Both are identical, so we use this common type for validation
9
+ */
10
+ export type DateFormat = 'mm/dd/yyyy' | 'dd/mm/yyyy' | 'mm/yyyy' | 'yyyy';
11
+ /**
12
+ * Common picker/calendar type used by both DatePicker and DateRangePicker
13
+ * Valid types: 'days', 'months', 'years'
14
+ *
15
+ * This type is shared between:
16
+ * - DateRangePicker (RangePickerType, CalendarType)
17
+ * - DatePicker (CalendarType)
18
+ * All are identical, so we use this common type
19
+ */
20
+ export type PickerCalendarType = 'days' | 'months' | 'years';
21
+ /**
22
+ * Validates if a value is a valid date format
23
+ * Used by both DatePicker (DateWidget) and DateRangePicker (DateRangeField)
24
+ *
25
+ * This replaces:
26
+ * - isValidFormat (DateRangeField)
27
+ * - isValidDatePickerFormat (DateWidget)
28
+ */
29
+ export declare const isValidDateFormat: (value: unknown) => value is DateFormat;
30
+ /**
31
+ * Valid output formats include:
32
+ * - Input formats: 'mm/dd/yyyy', 'dd/mm/yyyy', 'mm/yyyy', 'yyyy'
33
+ * - ISO formats: 'yyyy-MM-dd', 'yyyy-MM', 'yyyy'
34
+ *
35
+ * Used for outputFormat validation in DateRangeField and DateWidget
36
+ */
37
+ export declare const isValidOutputFormat: (value: unknown) => value is string;
@@ -0,0 +1,24 @@
1
+ import type { DateRangePickerProps } from '../../DateRangePicker/types';
2
+ /**
3
+ * Props that need special handling (validation/transformation) or are RJSF-controlled
4
+ * These are extracted explicitly and NOT spread
5
+ */
6
+ export type NonSpreadableProps = 'format' | 'rangePickerType' | 'outputFormat' | 'name' | 'onChange' | 'value' | 'defaultValue';
7
+ /**
8
+ * Props that can be automatically spread from uiOptions
9
+ * New props added to DateRangePickerProps will automatically be included here
10
+ */
11
+ export type SpreadableFromUiOptions = Omit<DateRangePickerProps, NonSpreadableProps>;
12
+ /**
13
+ * Extract props that need transformation/validation from uiOptions
14
+ */
15
+ export declare const extractTransformedProps: (uiOptions: Record<string, unknown>) => {
16
+ rangePickerType: import("./dateFormats").PickerCalendarType;
17
+ outputFormat: string;
18
+ format: import("./dateFormats").DateFormat | undefined;
19
+ };
20
+ /**
21
+ * Extract props that can be spread automatically from uiOptions
22
+ * Filters out props that need special handling
23
+ */
24
+ export declare const extractSpreadableProps: (uiOptions: Record<string, unknown>) => Partial<SpreadableFromUiOptions>;
@@ -1 +1,2 @@
1
1
  export * from './schema';
2
+ export * from './dateFormats';
@@ -0,0 +1,16 @@
1
+ import type { TypeaheadProps } from '../../Typeahead/types';
2
+ /**
3
+ * Props that need special handling (computed from RJSF state) or are RJSF-controlled
4
+ * These are extracted explicitly and NOT spread
5
+ */
6
+ export type SelectWidgetNonSpreadableProps = 'name' | 'onChange' | 'onClearAll' | 'onRemoveSelectedClick' | 'onEmptyChange' | 'selectedItems' | 'isMultiple' | 'isDisabled' | 'placeholder' | 'renderOption' | 'children';
7
+ /**
8
+ * Props that can be automatically spread from uiOptions
9
+ * New props added to TypeaheadProps will automatically be included here
10
+ */
11
+ export type SelectWidgetSpreadableFromUiOptions = Omit<TypeaheadProps, SelectWidgetNonSpreadableProps>;
12
+ /**
13
+ * Extract props that can be spread automatically from uiOptions
14
+ * Filters out props that need special handling or are computed from RJSF state
15
+ */
16
+ export declare const extractSelectWidgetSpreadableProps: (uiOptions: Record<string, unknown>) => Partial<SelectWidgetSpreadableFromUiOptions>;