@ssa-ui-kit/core 3.25.1 → 3.26.1

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 (40) hide show
  1. package/dist/ai/source-map.md +45 -22
  2. package/dist/components/Chip/helpers.d.ts +2 -2
  3. package/dist/components/Chip/types.d.ts +10 -3
  4. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  5. package/dist/components/Dropdown/types.d.ts +7 -0
  6. package/dist/components/Footer/Footer.d.ts +42 -0
  7. package/dist/components/Footer/index.d.ts +1 -0
  8. package/dist/components/Footer/styles.d.ts +53 -0
  9. package/dist/components/Footer/types.d.ts +110 -0
  10. package/dist/components/Icon/icons/ArmyHolidays.d.ts +3 -0
  11. package/dist/components/Icon/icons/ChristmasHat.d.ts +3 -0
  12. package/dist/components/Icon/icons/ChristmasStocking.d.ts +3 -0
  13. package/dist/components/Icon/icons/ChristmasTree.d.ts +3 -0
  14. package/dist/components/Icon/icons/ConstitutionDay.d.ts +3 -0
  15. package/dist/components/Icon/icons/Easter.d.ts +3 -0
  16. package/dist/components/Icon/icons/Halloween.d.ts +3 -0
  17. package/dist/components/Icon/icons/KingsDay.d.ts +3 -0
  18. package/dist/components/Icon/icons/LabourDay.d.ts +3 -0
  19. package/dist/components/Icon/icons/MemorialDay.d.ts +3 -0
  20. package/dist/components/Icon/icons/PeaceDay.d.ts +3 -0
  21. package/dist/components/Icon/icons/ReligiousHolidays.d.ts +3 -0
  22. package/dist/components/Icon/icons/WomensDay.d.ts +3 -0
  23. package/dist/components/Icon/icons/WomensDay2.d.ts +3 -0
  24. package/dist/components/Icon/icons/all.d.ts +14 -0
  25. package/dist/components/Icon/icons/iconsList.d.ts +1 -1
  26. package/dist/components/Label/Label.d.ts +11 -1
  27. package/dist/components/Label/index.d.ts +1 -0
  28. package/dist/components/Label/types.d.ts +36 -1
  29. package/dist/components/TextField/TextField.d.ts +1 -1
  30. package/dist/components/TextField/types.d.ts +7 -0
  31. package/dist/components/Textarea/types.d.ts +4 -0
  32. package/dist/components/Typeahead/Typeahead.context.d.ts +1 -0
  33. package/dist/components/Typeahead/Typeahead.d.ts +1 -1
  34. package/dist/components/Typeahead/types.d.ts +8 -1
  35. package/dist/components/Typeahead/useTypeahead.d.ts +2 -1
  36. package/dist/components/index.d.ts +3 -0
  37. package/dist/index.js +1330 -450
  38. package/dist/index.mjs +1329 -451
  39. package/dist/tsbuildcache +1 -1
  40. package/package.json +3 -3
@@ -1 +1 @@
1
- export declare const iconsList: ("visible" | "reset" | "warning" | "h1" | "h2" | "h3" | "bold" | "archive" | "document" | "link" | "list" | "menu" | "search" | "arrow-down" | "arrow-up" | "clipboard-assessment" | "attention" | "award" | "ban-user" | "bench" | "bin" | "calendar" | "calendar-schedule" | "carrot-down" | "carrot-left" | "carrot-right" | "carrot-up" | "card-text" | "case" | "certification" | "certification-expiring" | "camera" | "change" | "chart" | "check" | "check-circle" | "check-circle-inverted" | "children" | "circle" | "circular" | "clock" | "cogwheel" | "comments" | "briefcase" | "building" | "compensation" | "confirm-email" | "contacts" | "copy" | "copy-link" | "cross" | "delete" | "diamond-ring" | "diet" | "documents" | "edit" | "education" | "email" | "employee" | "employee-profile" | "employee-terminated" | "employee-blackboard" | "excel-download" | "export" | "file-mark" | "file-pdf" | "file-word" | "filter" | "filter-funnel" | "follow-link" | "fte" | "clipboard-form" | "geography" | "gender" | "gift" | "home" | "import" | "information" | "inventory" | "invisible" | "language" | "lock" | "log-in" | "log-out" | "maximize" | "measurements" | "message" | "minus" | "minus-circle" | "minus-circle-inverted" | "more" | "more-vertical" | "notification" | "office-chair" | "open-book" | "pages" | "party" | "plus" | "plus-circle" | "plus-circle-inverted" | "probation-period" | "profiles-changes" | "radio-on" | "clipboard-report" | "clipboard-result" | "robot" | "roles" | "seniority" | "settings" | "setting-clock" | "signature" | "sleep" | "staff-growth-coefficient" | "staff-turnover-coefficient" | "stats" | "clipboard-summary" | "team" | "clipboard-star" | "time-tracking" | "timeline" | "tennis-ball" | "trainings" | "unarchive" | "union" | "union-circle" | "unlock" | "url" | "user" | "panelLeft" | "panelRight" | "emailOutlined" | "lockOutlined" | "addFolder" | "moveFolder" | "attention-circle" | "zoom" | "zoom-in" | "zoom-out" | "pan" | "box-select" | "lasso-select" | "autoscale" | "reset-axes" | "star" | "preview" | "dashboard" | "phone" | "tablet" | "desktop" | "more-info" | "filter-list" | "history" | "overtime" | "save-2" | "folder" | "salary-reports" | "assessment-stages" | "comments-on-achievements" | "code-review-comments" | "support" | "leave" | "vacation" | "sick-leave" | "day-off" | "arrow-sort" | "dragndrop" | "send" | "save" | "today" | "busket" | "copy-link-2" | "upload" | "picture" | "warning-2" | "info" | "sort-up" | "sort-down" | "italic" | "strikethrough" | "underline" | "markup" | "numbered-list" | "bulleted-list" | "uppercase" | "dash" | "brackets" | "undo" | "redo" | "new-line" | "quotation" | "close-circle-outline" | "close-square-outline" | "close-circle-filled" | "close-square-filled" | "plus-square-outline" | "plus-square-filled" | "minus-square-outline" | "minus-square-filled" | "tick-square-outline" | "tick-square-filled" | "warning-circle-outline" | "warning-square-outline" | "warning-circle-filled" | "warning-square-filled" | "info-square-outline" | "info-square-filled" | "info-circle-filled" | "more-circle-outline" | "more-square-outline" | "more-circle-filled" | "more-square-filled" | "client-feedback" | "expertise" | "responsibilities" | "mobile" | "delivery-address" | "delivery-address-2" | "pdp" | "versions" | "experience" | "projects" | "cooperation-model" | "billable" | "non-billable" | "recruitment-team" | "clear" | "columns")[];
1
+ export declare const iconsList: ("visible" | "reset" | "warning" | "h1" | "h2" | "h3" | "bold" | "archive" | "document" | "link" | "list" | "menu" | "search" | "arrow-down" | "arrow-up" | "clipboard-assessment" | "attention" | "award" | "ban-user" | "bench" | "bin" | "calendar" | "calendar-schedule" | "carrot-down" | "carrot-left" | "carrot-right" | "carrot-up" | "card-text" | "case" | "certification" | "certification-expiring" | "camera" | "change" | "chart" | "check" | "check-circle" | "check-circle-inverted" | "children" | "circle" | "circular" | "clock" | "cogwheel" | "comments" | "briefcase" | "building" | "compensation" | "confirm-email" | "contacts" | "copy" | "copy-link" | "cross" | "delete" | "diamond-ring" | "diet" | "documents" | "edit" | "education" | "email" | "employee" | "employee-profile" | "employee-terminated" | "employee-blackboard" | "excel-download" | "export" | "file-mark" | "file-pdf" | "file-word" | "filter" | "filter-funnel" | "follow-link" | "fte" | "clipboard-form" | "geography" | "gender" | "gift" | "home" | "import" | "information" | "inventory" | "invisible" | "language" | "lock" | "log-in" | "log-out" | "maximize" | "measurements" | "message" | "minus" | "minus-circle" | "minus-circle-inverted" | "more" | "more-vertical" | "notification" | "office-chair" | "open-book" | "pages" | "party" | "plus" | "plus-circle" | "plus-circle-inverted" | "probation-period" | "profiles-changes" | "radio-on" | "clipboard-report" | "clipboard-result" | "robot" | "roles" | "seniority" | "settings" | "setting-clock" | "signature" | "sleep" | "staff-growth-coefficient" | "staff-turnover-coefficient" | "stats" | "clipboard-summary" | "team" | "clipboard-star" | "time-tracking" | "timeline" | "tennis-ball" | "trainings" | "unarchive" | "union" | "union-circle" | "unlock" | "url" | "user" | "panelLeft" | "panelRight" | "emailOutlined" | "lockOutlined" | "addFolder" | "moveFolder" | "attention-circle" | "zoom" | "zoom-in" | "zoom-out" | "pan" | "box-select" | "lasso-select" | "autoscale" | "reset-axes" | "star" | "preview" | "dashboard" | "phone" | "tablet" | "desktop" | "more-info" | "filter-list" | "history" | "overtime" | "save-2" | "folder" | "salary-reports" | "assessment-stages" | "comments-on-achievements" | "code-review-comments" | "support" | "leave" | "vacation" | "sick-leave" | "day-off" | "arrow-sort" | "dragndrop" | "send" | "save" | "today" | "busket" | "copy-link-2" | "upload" | "picture" | "warning-2" | "info" | "sort-up" | "sort-down" | "italic" | "strikethrough" | "underline" | "markup" | "numbered-list" | "bulleted-list" | "uppercase" | "dash" | "brackets" | "undo" | "redo" | "new-line" | "quotation" | "close-circle-outline" | "close-square-outline" | "close-circle-filled" | "close-square-filled" | "plus-square-outline" | "plus-square-filled" | "minus-square-outline" | "minus-square-filled" | "tick-square-outline" | "tick-square-filled" | "warning-circle-outline" | "warning-square-outline" | "warning-circle-filled" | "warning-square-filled" | "info-square-outline" | "info-square-filled" | "info-circle-filled" | "more-circle-outline" | "more-square-outline" | "more-circle-filled" | "more-square-filled" | "client-feedback" | "expertise" | "responsibilities" | "mobile" | "delivery-address" | "delivery-address-2" | "pdp" | "versions" | "experience" | "projects" | "cooperation-model" | "billable" | "non-billable" | "recruitment-team" | "clear" | "columns" | "womens-day" | "womens-day-2" | "easter" | "halloween" | "christmas-hat" | "christmas-stocking" | "christmas-tree" | "constitution-day" | "labour-day" | "religious-holidays" | "peace-day" | "memorial-day" | "army-holidays" | "kings-day")[];
@@ -1,3 +1,13 @@
1
1
  import { LabelProps } from './types';
2
- declare const Label: ({ children, htmlFor, className, disabled, isDisabled, onMouseEnter, onMouseLeave, }: LabelProps) => import("@emotion/react/jsx-runtime").JSX.Element;
2
+ /**
3
+ * Builds the default badge id for a label's `htmlFor`, so a field can point
4
+ * its control's `aria-describedby` at the badge.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * <input id="email" aria-describedby={getLabelBadgeId('email')} />
9
+ * ```
10
+ */
11
+ export declare const getLabelBadgeId: (htmlFor: string) => string;
12
+ declare const Label: ({ children, htmlFor, id, badge, className, disabled, isDisabled, onMouseEnter, onMouseLeave, }: LabelProps) => import("@emotion/react/jsx-runtime").JSX.Element;
3
13
  export default Label;
@@ -1 +1,2 @@
1
1
  export { default } from './Label';
2
+ export { getLabelBadgeId } from './Label';
@@ -1,8 +1,43 @@
1
- import { MouseEventHandler } from 'react';
1
+ import { MouseEventHandler, ReactNode } from 'react';
2
2
  import { CommonProps } from '../../types/emotion';
3
+ import { ChipProps } from '../Chip/types';
4
+ /**
5
+ * A small status pill shown to the right of a field label — "mapped",
6
+ * "default", "not present in the CV". Rendered as an outlined Chip.
7
+ *
8
+ * The badge sits next to the `<label>` element, not inside it, so it does
9
+ * not become part of the field's accessible name. Point the control's
10
+ * `aria-describedby` at its `id` to have it announced as a description —
11
+ * the kit's fields with a `labelBadge` prop do this for you.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * const badge: LabelBadge = { text: 'mapped', color: 'primary' };
16
+ * const custom: LabelBadge = { text: 'not present in the CV', color: '#ff8a00' };
17
+ * ```
18
+ */
19
+ export interface LabelBadge {
20
+ /** Badge text */
21
+ text: ReactNode;
22
+ /**
23
+ * A Chip color: `primary`, `success`, `warning`… , any theme color key
24
+ * (e.g. `'purple'`) or a CSS color (e.g. `'#ff8a00'`).
25
+ * @default 'default'
26
+ */
27
+ color?: ChipProps['color'];
28
+ /**
29
+ * `id` of the badge element, for the control's `aria-describedby`
30
+ * @default `${htmlFor}-badge`, or a generated id without `htmlFor`
31
+ */
32
+ id?: string;
33
+ }
3
34
  export interface LabelProps extends CommonProps {
4
35
  htmlFor?: string;
36
+ /** `id` of the `<label>` element, e.g. for a control's `aria-labelledby` */
37
+ id?: string;
5
38
  children: React.ReactNode;
39
+ /** Status badge shown to the right of the label text */
40
+ badge?: LabelBadge;
6
41
  /** Renders the label in its muted, disabled state. */
7
42
  disabled?: boolean;
8
43
  /**
@@ -75,5 +75,5 @@ import { TextFieldProps } from './types';
75
75
  * - ARIA attributes via React Hook Form (when register is provided)
76
76
  * - Error messages announced to screen readers
77
77
  */
78
- declare const TextField: ({ multirow, name, label, errors, helperText, success, disabled, maxLength, ...props }: TextFieldProps) => import("@emotion/react/jsx-runtime").JSX.Element;
78
+ declare const TextField: ({ multirow, name, label, labelBadge, errors, helperText, success, disabled, maxLength, ...props }: TextFieldProps) => import("@emotion/react/jsx-runtime").JSX.Element;
79
79
  export default TextField;
@@ -1,5 +1,6 @@
1
1
  import type { UseFormReturn, FieldError } from 'react-hook-form';
2
2
  import { InputProps } from '../Input/types';
3
+ import { LabelBadge } from '../Label/types';
3
4
  /**
4
5
  * Props for the TextField component
5
6
  *
@@ -55,6 +56,12 @@ export interface TextFieldProps extends InputProps, Partial<Pick<UseFormReturn,
55
56
  * Label text displayed above the input field
56
57
  */
57
58
  label?: string;
59
+ /**
60
+ * Status badge to the right of the label, e.g.
61
+ * `{ text: 'mapped', color: 'primary' }`. Announced as the field's
62
+ * description. Needs a `label`.
63
+ */
64
+ labelBadge?: LabelBadge;
58
65
  /**
59
66
  * React Hook Form field error object
60
67
  * Used to display validation error messages
@@ -111,6 +111,10 @@ export interface TextareaProps extends Partial<Pick<UseFormReturn, 'register'>>
111
111
  * Defaults to `formElement-${name}` when not provided.
112
112
  */
113
113
  id?: string;
114
+ /**
115
+ * Ids of the elements describing the textarea — a label badge, helper text
116
+ */
117
+ 'aria-describedby'?: string;
114
118
  /**
115
119
  * Paste event handler
116
120
  * Fired when content is pasted into the textarea
@@ -11,6 +11,7 @@ export declare const TypeaheadContext: React.Context<{
11
11
  isMultiple: boolean | undefined;
12
12
  singleLine: boolean;
13
13
  typeaheadId: string;
14
+ labelId: string | undefined;
14
15
  triggerRef: React.RefObject<HTMLDivElement | null>;
15
16
  className: string | undefined;
16
17
  startIcon: React.ReactNode;
@@ -172,4 +172,4 @@ import { TypeaheadProps } from './types';
172
172
  *
173
173
  * @see https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/
174
174
  */
175
- export declare const Typeahead: ({ name, label, value, defaultValue, selectedItems, defaultSelectedItems, isOpen, disabled, isDisabled, isMultiple, singleLine, children, className, startIcon, endIcon, error, success, helperText, validationSchema, placeholder, startIconClassName, endIconClassName, popoverClassName, optionsClassName, wrapperClassName, filterOptions, autoSelect, allowCustomValues, width, onChange, onEmptyChange, onClearAll, onRemoveSelectedClick, renderOption, }: TypeaheadProps) => import("@emotion/react/jsx-runtime").JSX.Element;
175
+ export declare const Typeahead: ({ name, label, labelBadge, value, defaultValue, selectedItems, defaultSelectedItems, isOpen, disabled, isDisabled, isMultiple, singleLine, children, className, startIcon, endIcon, error, success, helperText, validationSchema, placeholder, startIconClassName, endIconClassName, popoverClassName, optionsClassName, wrapperClassName, filterOptions, autoSelect, allowCustomValues, width, onChange, onEmptyChange, onClearAll, onRemoveSelectedClick, renderOption, }: TypeaheadProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  import { CommonProps } from '../../types/emotion';
2
2
  import { FieldError } from 'react-hook-form';
3
+ import { LabelBadge } from '../Label/types';
3
4
  /**
4
5
  * Allowed value types for Typeahead options
5
6
  */
@@ -139,6 +140,12 @@ export interface TypeaheadProps {
139
140
  * Label text displayed above the input
140
141
  */
141
142
  label?: string;
143
+ /**
144
+ * Status badge to the right of the label, e.g.
145
+ * `{ text: 'mapped', color: 'primary' }`. Announced as the input's
146
+ * description. Needs a `label`.
147
+ */
148
+ labelBadge?: LabelBadge;
142
149
  /**
143
150
  * Helper text displayed below the input
144
151
  */
@@ -214,7 +221,7 @@ export interface TypeaheadProps {
214
221
  * Props used by the useTypeahead hook
215
222
  * Internal type that picks specific props from TypeaheadProps
216
223
  */
217
- export type UseTypeaheadProps = Pick<TypeaheadProps, 'selectedItems' | 'defaultSelectedItems' | 'isDisabled' | 'children' | 'isMultiple' | 'singleLine' | 'onChange' | 'onClearAll' | 'onRemoveSelectedClick' | 'onEmptyChange' | 'renderOption' | 'isOpen' | 'className' | 'startIcon' | 'endIcon' | 'startIconClassName' | 'endIconClassName' | 'name' | 'validationSchema' | 'error' | 'success' | 'placeholder' | 'filterOptions' | 'autoSelect' | 'allowCustomValues'>;
224
+ export type UseTypeaheadProps = Pick<TypeaheadProps, 'selectedItems' | 'defaultSelectedItems' | 'isDisabled' | 'children' | 'isMultiple' | 'singleLine' | 'onChange' | 'onClearAll' | 'onRemoveSelectedClick' | 'onEmptyChange' | 'renderOption' | 'isOpen' | 'className' | 'startIcon' | 'endIcon' | 'startIconClassName' | 'endIconClassName' | 'name' | 'validationSchema' | 'error' | 'success' | 'placeholder' | 'filterOptions' | 'autoSelect' | 'allowCustomValues' | 'label'>;
218
225
  /**
219
226
  * Props for TypeaheadOptions container component
220
227
  */
@@ -7,7 +7,7 @@ type HandleChangeParams = {
7
7
  shouldClose?: boolean;
8
8
  resetInput?: boolean;
9
9
  };
10
- export declare const useTypeahead: ({ name, isOpen: isInitOpen, selectedItems: providedSelectedItems, defaultSelectedItems, isDisabled, isMultiple, singleLine, children, className, startIcon, endIcon, startIconClassName, endIconClassName, validationSchema, error, success, placeholder, filterOptions, autoSelect, allowCustomValues, onChange, onClearAll, onRemoveSelectedClick, onEmptyChange, renderOption, }: UseTypeaheadProps) => {
10
+ export declare const useTypeahead: ({ name, isOpen: isInitOpen, selectedItems: providedSelectedItems, defaultSelectedItems, isDisabled, isMultiple, singleLine, children, className, startIcon, endIcon, startIconClassName, endIconClassName, validationSchema, error, success, placeholder, filterOptions, autoSelect, allowCustomValues, onChange, onClearAll, onRemoveSelectedClick, onEmptyChange, renderOption, label, }: UseTypeaheadProps) => {
11
11
  isOpen: boolean;
12
12
  isDisabled: boolean | undefined;
13
13
  optionsWithKey: Record<string | number, TypeaheadOptionProps>;
@@ -17,6 +17,7 @@ export declare const useTypeahead: ({ name, isOpen: isInitOpen, selectedItems: p
17
17
  isMultiple: boolean | undefined;
18
18
  singleLine: boolean;
19
19
  typeaheadId: string;
20
+ labelId: string | undefined;
20
21
  triggerRef: React.RefObject<HTMLDivElement | null>;
21
22
  className: string | undefined;
22
23
  startIcon: React.ReactNode;
@@ -93,6 +93,7 @@ export type * from './Chip/types';
93
93
  export { default as Avatar } from './Avatar';
94
94
  export * from './Avatar/types';
95
95
  export { default as Label } from './Label';
96
+ export { getLabelBadgeId } from './Label';
96
97
  export type * from './Label/types';
97
98
  export { default as Indicator } from './Indicator';
98
99
  export type * from './Indicator/types';
@@ -121,6 +122,8 @@ export * from './NavBar';
121
122
  export * from './CollapsibleNavBar';
122
123
  export * from './Header';
123
124
  export type * from './Header/types';
125
+ export * from './Footer';
126
+ export type * from './Footer/types';
124
127
  export * from './TreeView';
125
128
  export { default as Tab } from './Tab';
126
129
  export { default as TabBar } from './TabBar';