@tetjana/flowmakers-ds 0.1.7 → 0.1.9

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 (51) hide show
  1. package/dist/components/CardCareer.d.ts +18 -0
  2. package/dist/components/CardCareer.figma.d.ts +1 -0
  3. package/dist/components/CardTest.d.ts +19 -0
  4. package/dist/components/CardTest.figma.d.ts +1 -0
  5. package/dist/components/DashboardTitle.d.ts +12 -0
  6. package/dist/components/DatePicker.d.ts +10 -0
  7. package/dist/components/Dropdown.d.ts +14 -0
  8. package/dist/components/Footer.figma.d.ts +1 -0
  9. package/dist/components/Header.figma.d.ts +1 -0
  10. package/dist/components/IconButton.d.ts +12 -0
  11. package/dist/components/IconButton.figma.d.ts +1 -0
  12. package/dist/components/ListItem.d.ts +8 -0
  13. package/dist/components/NavMenu.d.ts +18 -0
  14. package/dist/components/NavMenu.figma.d.ts +1 -0
  15. package/dist/components/Pagination.d.ts +15 -0
  16. package/dist/components/Pagination.figma.d.ts +1 -0
  17. package/dist/components/Price.d.ts +13 -0
  18. package/dist/components/PriceCard.d.ts +15 -0
  19. package/dist/components/ProcessStep.d.ts +12 -0
  20. package/dist/components/Question.d.ts +13 -0
  21. package/dist/components/RadioButton.d.ts +8 -0
  22. package/dist/components/Search.d.ts +7 -0
  23. package/dist/components/SectionTitle.d.ts +14 -0
  24. package/dist/components/SegmentedControl.d.ts +14 -0
  25. package/dist/components/SegmentedControl.figma.d.ts +1 -0
  26. package/dist/components/SignupForm.d.ts +10 -0
  27. package/dist/components/Stepper.d.ts +18 -0
  28. package/dist/components/StepperProgress.d.ts +13 -0
  29. package/dist/components/TagBig.d.ts +9 -0
  30. package/dist/components/Tariffs.d.ts +12 -0
  31. package/dist/components/TasksWidget.d.ts +13 -0
  32. package/dist/components/TestimonialCard.d.ts +11 -0
  33. package/dist/components/TimePicker.d.ts +10 -0
  34. package/dist/components/WidgetCard.d.ts +65 -0
  35. package/dist/components/WidgetCard.figma.d.ts +1 -0
  36. package/dist/demo.d.ts +3 -0
  37. package/dist/index.cjs.js +1 -1
  38. package/dist/index.d.ts +52 -0
  39. package/dist/index.esm.js +830 -110
  40. package/dist/styles.css +1 -1
  41. package/guidelines/Guidelines.md +17 -0
  42. package/guidelines/components/cardcareer.md +70 -0
  43. package/guidelines/components/cardtest.md +82 -0
  44. package/guidelines/components/iconbutton.md +42 -0
  45. package/guidelines/components/navmenu.md +48 -0
  46. package/guidelines/components/pagination.md +61 -0
  47. package/guidelines/components/segmentedcontrol.md +37 -0
  48. package/guidelines/components/widgetcard.md +187 -0
  49. package/guidelines/design-tokens/colors.md +3 -3
  50. package/guidelines/overview-components.md +49 -10
  51. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ import { type FC, type ReactNode } from 'react';
2
+ import './CardCareer.css';
3
+ export interface CardCareerTask {
4
+ title: string;
5
+ subtitle?: string;
6
+ progress: number;
7
+ action?: ReactNode;
8
+ }
9
+ export interface CardCareerProps {
10
+ title: string;
11
+ subtitle?: string;
12
+ statusTag?: ReactNode;
13
+ tasks?: CardCareerTask[];
14
+ defaultOpen?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare const CardCareer: FC<CardCareerProps>;
18
+ export default CardCareer;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './CardTest.css';
3
+ export type CardTestState = 'available' | 'in-progress' | 'completed' | 'unavailable';
4
+ export interface CardTestMetaItem {
5
+ icon: ReactNode;
6
+ label: string;
7
+ }
8
+ export interface CardTestProps {
9
+ title: string;
10
+ description?: string;
11
+ image?: string;
12
+ state?: CardTestState;
13
+ tags?: ReactNode;
14
+ meta?: CardTestMetaItem[];
15
+ action?: ReactNode;
16
+ className?: string;
17
+ }
18
+ export declare const CardTest: FC<CardTestProps>;
19
+ export default CardTest;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { FC } from 'react';
2
+ import './DashboardTitle.css';
3
+ export interface DashboardTitleProps {
4
+ title?: string;
5
+ subtitle?: string;
6
+ actionLabel?: string;
7
+ showAction?: boolean;
8
+ onAction?: () => void;
9
+ className?: string;
10
+ }
11
+ export declare const DashboardTitle: FC<DashboardTitleProps>;
12
+ export default DashboardTitle;
@@ -0,0 +1,10 @@
1
+ import type { InputHTMLAttributes, FC } from 'react';
2
+ import './DatePicker.css';
3
+ export type DatePickerState = 'default' | 'hover' | 'focused' | 'disabled';
4
+ export interface DatePickerProps extends InputHTMLAttributes<HTMLInputElement> {
5
+ label?: string;
6
+ helperText?: string;
7
+ state?: DatePickerState;
8
+ }
9
+ export declare const DatePicker: FC<DatePickerProps>;
10
+ export default DatePicker;
@@ -0,0 +1,14 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './Dropdown.css';
3
+ export interface DropdownOption {
4
+ value: string;
5
+ label: string;
6
+ }
7
+ export interface DropdownProps {
8
+ options: DropdownOption[];
9
+ onSelect?: (value: string) => void;
10
+ className?: string;
11
+ children?: ReactNode;
12
+ }
13
+ export declare const Dropdown: FC<DropdownProps>;
14
+ export default Dropdown;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { FC, ButtonHTMLAttributes } from 'react';
2
+ import './IconButton.css';
3
+ export type IconButtonIcon = 'minus' | 'plus' | 'dots' | 'pen' | 'link' | 'arrow-left' | 'arrow-right';
4
+ export type IconButtonSize = 'regular' | 'small';
5
+ export type IconButtonVariant = 'filled' | 'outlined';
6
+ export interface IconButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
7
+ icon?: IconButtonIcon;
8
+ size?: IconButtonSize;
9
+ variant?: IconButtonVariant;
10
+ }
11
+ export declare const IconButton: FC<IconButtonProps>;
12
+ export default IconButton;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './ListItem.css';
3
+ export interface ListItemProps {
4
+ children: ReactNode;
5
+ className?: string;
6
+ }
7
+ export declare const ListItem: FC<ListItemProps>;
8
+ export default ListItem;
@@ -0,0 +1,18 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './NavMenu.css';
3
+ export interface NavItemProps {
4
+ icon?: ReactNode;
5
+ label: string;
6
+ active?: boolean;
7
+ href?: string;
8
+ onClick?: () => void;
9
+ className?: string;
10
+ }
11
+ export declare const NavItem: FC<NavItemProps>;
12
+ export interface NavBarProps {
13
+ children: ReactNode;
14
+ horizontal?: boolean;
15
+ className?: string;
16
+ }
17
+ export declare const NavBar: FC<NavBarProps>;
18
+ export default NavItem;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import { type FC } from 'react';
2
+ import './Pagination.css';
3
+ export type PaginationVariant = 'dots' | 'numbers' | 'hidden';
4
+ export interface PaginationProps {
5
+ variant?: PaginationVariant;
6
+ page?: number;
7
+ total?: number;
8
+ onPrev?: () => void;
9
+ onNext?: () => void;
10
+ prevDisabled?: boolean;
11
+ nextDisabled?: boolean;
12
+ className?: string;
13
+ }
14
+ export declare const Pagination: FC<PaginationProps>;
15
+ export default Pagination;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import './Price.css';
3
+ export interface PriceProps {
4
+ title?: string;
5
+ amount?: string;
6
+ period?: string;
7
+ actionLabel?: string;
8
+ onAction?: () => void;
9
+ features?: string[];
10
+ className?: string;
11
+ }
12
+ export declare const Price: FC<PriceProps>;
13
+ export default Price;
@@ -0,0 +1,15 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './PriceCard.css';
3
+ export interface PriceCardProps {
4
+ icon?: ReactNode;
5
+ title: string;
6
+ description?: string;
7
+ price?: string;
8
+ period?: string;
9
+ action?: ReactNode;
10
+ badge?: string;
11
+ highlighted?: boolean;
12
+ className?: string;
13
+ }
14
+ export declare const PriceCard: FC<PriceCardProps>;
15
+ export default PriceCard;
@@ -0,0 +1,12 @@
1
+ import type { FC } from 'react';
2
+ import './ProcessStep.css';
3
+ export type ProcessStepStyle = 'select' | 'normal';
4
+ export interface ProcessStepProps {
5
+ number?: number | string;
6
+ title?: string;
7
+ content?: string;
8
+ style?: ProcessStepStyle;
9
+ className?: string;
10
+ }
11
+ export declare const ProcessStep: FC<ProcessStepProps>;
12
+ export default ProcessStep;
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import './Question.css';
3
+ export type QuestionState = 'default' | 'hover';
4
+ export interface QuestionProps {
5
+ title?: string;
6
+ text?: string;
7
+ open?: boolean;
8
+ state?: QuestionState;
9
+ onClick?: () => void;
10
+ className?: string;
11
+ }
12
+ export declare const Question: FC<QuestionProps>;
13
+ export default Question;
@@ -0,0 +1,8 @@
1
+ import type { InputHTMLAttributes, FC } from 'react';
2
+ import './RadioButton.css';
3
+ export interface RadioButtonProps extends InputHTMLAttributes<HTMLInputElement> {
4
+ label?: string;
5
+ checked?: boolean;
6
+ }
7
+ export declare const RadioButton: FC<RadioButtonProps>;
8
+ export default RadioButton;
@@ -0,0 +1,7 @@
1
+ import type { InputHTMLAttributes, FC } from 'react';
2
+ import './Search.css';
3
+ export interface SearchProps extends InputHTMLAttributes<HTMLInputElement> {
4
+ placeholder?: string;
5
+ }
6
+ export declare const Search: FC<SearchProps>;
7
+ export default Search;
@@ -0,0 +1,14 @@
1
+ import type { FC } from 'react';
2
+ import './SectionTitle.css';
3
+ export type SectionTitleVariant = 'centered' | 'split' | 'left';
4
+ export interface SectionTitleProps {
5
+ tag?: string;
6
+ showTag?: boolean;
7
+ title?: string;
8
+ subtitle?: string;
9
+ showSubtitle?: boolean;
10
+ variant?: SectionTitleVariant;
11
+ className?: string;
12
+ }
13
+ export declare const SectionTitle: FC<SectionTitleProps>;
14
+ export default SectionTitle;
@@ -0,0 +1,14 @@
1
+ import { type FC } from 'react';
2
+ import './SegmentedControl.css';
3
+ export interface SegmentedControlOption {
4
+ value: string;
5
+ label: string;
6
+ }
7
+ export interface SegmentedControlProps {
8
+ options: SegmentedControlOption[];
9
+ value?: string;
10
+ onChange?: (value: string) => void;
11
+ className?: string;
12
+ }
13
+ export declare const SegmentedControl: FC<SegmentedControlProps>;
14
+ export default SegmentedControl;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { FC } from 'react';
2
+ import './SignupForm.css';
3
+ export interface SignupFormProps {
4
+ placeholder?: string;
5
+ buttonLabel?: string;
6
+ onSubmit?: (email: string) => void;
7
+ className?: string;
8
+ }
9
+ export declare const SignupForm: FC<SignupFormProps>;
10
+ export default SignupForm;
@@ -0,0 +1,18 @@
1
+ import type { FC } from 'react';
2
+ import './Stepper.css';
3
+ export type StepperStepState = 'done' | 'in-process' | 'inactive';
4
+ export interface StepperStep {
5
+ label: string;
6
+ state: StepperStepState;
7
+ }
8
+ export interface StepperProps {
9
+ steps: StepperStep[];
10
+ className?: string;
11
+ }
12
+ export declare const StepItem: FC<{
13
+ step: StepperStep;
14
+ index: number;
15
+ isLast: boolean;
16
+ }>;
17
+ export declare const Stepper: FC<StepperProps>;
18
+ export default Stepper;
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import './StepperProgress.css';
3
+ export type StepperProgressState = 'done' | 'in-process' | 'inactive';
4
+ export interface StepperProgressStep {
5
+ label: string;
6
+ state?: StepperProgressState;
7
+ }
8
+ export interface StepperProgressProps {
9
+ steps: StepperProgressStep[];
10
+ className?: string;
11
+ }
12
+ export declare const StepperProgress: FC<StepperProgressProps>;
13
+ export default StepperProgress;
@@ -0,0 +1,9 @@
1
+ import type { FC } from 'react';
2
+ import './TagBig.css';
3
+ export interface TagBigProps {
4
+ label?: string;
5
+ showIcon?: boolean;
6
+ className?: string;
7
+ }
8
+ export declare const TagBig: FC<TagBigProps>;
9
+ export default TagBig;
@@ -0,0 +1,12 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './Tariffs.css';
3
+ export type TariffsVariant = 'default' | 'hover';
4
+ export interface TariffsProps {
5
+ icon?: ReactNode;
6
+ title?: string;
7
+ description?: string;
8
+ variant?: TariffsVariant;
9
+ className?: string;
10
+ }
11
+ export declare const Tariffs: FC<TariffsProps>;
12
+ export default Tariffs;
@@ -0,0 +1,13 @@
1
+ import type { FC } from 'react';
2
+ import './TasksWidget.css';
3
+ export interface TaskItem {
4
+ label: string;
5
+ done?: boolean;
6
+ time?: string;
7
+ }
8
+ export interface TasksWidgetProps {
9
+ tasks: TaskItem[];
10
+ className?: string;
11
+ }
12
+ export declare const TasksWidget: FC<TasksWidgetProps>;
13
+ export default TasksWidget;
@@ -0,0 +1,11 @@
1
+ import type { FC } from 'react';
2
+ import './TestimonialCard.css';
3
+ export interface TestimonialCardProps {
4
+ avatar?: string;
5
+ name: string;
6
+ role?: string;
7
+ quote: string;
8
+ className?: string;
9
+ }
10
+ export declare const TestimonialCard: FC<TestimonialCardProps>;
11
+ export default TestimonialCard;
@@ -0,0 +1,10 @@
1
+ import type { InputHTMLAttributes, FC } from 'react';
2
+ import './TimePicker.css';
3
+ export type TimePickerState = 'default' | 'hover' | 'focused' | 'disabled';
4
+ export interface TimePickerProps extends InputHTMLAttributes<HTMLInputElement> {
5
+ label?: string;
6
+ helperText?: string;
7
+ state?: TimePickerState;
8
+ }
9
+ export declare const TimePicker: FC<TimePickerProps>;
10
+ export default TimePicker;
@@ -0,0 +1,65 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ import './WidgetCard.css';
3
+ export type WidgetHeaderColor = 'purple' | 'grey';
4
+ export interface WidgetHeaderProps {
5
+ title: string;
6
+ subtitle?: string;
7
+ color?: WidgetHeaderColor;
8
+ leftAction?: ReactNode;
9
+ rightAction?: ReactNode;
10
+ className?: string;
11
+ }
12
+ export declare const WidgetHeader: FC<WidgetHeaderProps>;
13
+ export interface WidgetCardProps {
14
+ header?: ReactNode;
15
+ children?: ReactNode;
16
+ className?: string;
17
+ width?: number | string;
18
+ }
19
+ export declare const WidgetCard: FC<WidgetCardProps>;
20
+ export interface PlatformNewsWidgetProps {
21
+ tag?: ReactNode;
22
+ title: string;
23
+ text: string;
24
+ className?: string;
25
+ }
26
+ export declare const PlatformNewsWidget: FC<PlatformNewsWidgetProps>;
27
+ export interface GeneralNewsWidgetProps {
28
+ image?: string;
29
+ tag?: ReactNode;
30
+ title: string;
31
+ className?: string;
32
+ }
33
+ export declare const GeneralNewsWidget: FC<GeneralNewsWidgetProps>;
34
+ export interface NotesWidgetProps {
35
+ title: string;
36
+ text: string;
37
+ date?: string;
38
+ className?: string;
39
+ }
40
+ export declare const NotesWidget: FC<NotesWidgetProps>;
41
+ export interface PersonalAdviceWidgetProps {
42
+ tag?: ReactNode;
43
+ text: string;
44
+ action?: ReactNode;
45
+ className?: string;
46
+ }
47
+ export declare const PersonalAdviceWidget: FC<PersonalAdviceWidgetProps>;
48
+ export interface CalendarDayItem {
49
+ dayLabel: string;
50
+ date: number;
51
+ active?: boolean;
52
+ hasEvent?: boolean;
53
+ }
54
+ export interface CalendarEvent {
55
+ title: string;
56
+ time: string;
57
+ color?: string;
58
+ }
59
+ export interface CalendarWidgetProps {
60
+ days?: CalendarDayItem[];
61
+ events?: CalendarEvent[];
62
+ className?: string;
63
+ }
64
+ export declare const CalendarWidget: FC<CalendarWidgetProps>;
65
+ export default WidgetCard;
@@ -0,0 +1 @@
1
+ export {};
package/dist/demo.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import './tokens/colors.css';
2
+ import './tokens/typography.css';
3
+ import './tokens/spacing.css';
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),_=require("react"),h=({variant:c="primary",size:a="md",leftIcon:s,rightIcon:l,children:n,fullWidth:t=!1,disabled:r,className:o="",...i})=>{const m=["fm-btn",`fm-btn--${c}`,`fm-btn--${a}`,t?"fm-btn--full":"",r?"fm-btn--disabled":"",o].filter(Boolean).join(" ");return e.jsxs("button",{className:m,disabled:r,...i,children:[s&&e.jsx("span",{className:"fm-btn__icon fm-btn__icon--left",children:s}),n&&e.jsx("span",{className:"fm-btn__label",children:n}),l&&e.jsx("span",{className:"fm-btn__icon fm-btn__icon--right",children:l})]})},p=({label:c,placeholder:a,state:s="default",errorMessage:l,successMessage:n,leftIcon:t,rightIcon:r,className:o="",disabled:i,...m})=>{const f=["fm-input-wrapper",`fm-input-wrapper--${s}`,i?"fm-input-wrapper--disabled":"",o].filter(Boolean).join(" ");return e.jsxs("div",{className:f,children:[c&&e.jsx("label",{className:"fm-input__label",children:c}),e.jsxs("div",{className:"fm-input__field",children:[t&&e.jsx("span",{className:"fm-input__icon fm-input__icon--left",children:t}),e.jsx("input",{className:"fm-input__el",placeholder:a,disabled:i,...m}),r&&e.jsx("span",{className:"fm-input__icon fm-input__icon--right",children:r})]}),s==="error"&&l&&e.jsx("p",{className:"fm-input__message fm-input__message--error",children:l}),s==="success"&&n&&e.jsx("p",{className:"fm-input__message fm-input__message--success",children:n})]})},x=({children:c,color:a="grey",className:s=""})=>{const l=["fm-tag",`fm-tag--${a}`,s].filter(Boolean).join(" ");return e.jsx("span",{className:l,children:c})},j=({checked:c,onChange:a,disabled:s,label:l,className:n=""})=>e.jsxs("label",{className:["fm-toggle",s?"fm-toggle--disabled":"",n].filter(Boolean).join(" "),children:[e.jsx("input",{type:"checkbox",className:"fm-toggle__input",checked:c,onChange:t=>a(t.target.checked),disabled:s}),e.jsx("span",{className:"fm-toggle__track",children:e.jsx("span",{className:"fm-toggle__thumb"})}),l&&e.jsx("span",{className:"fm-toggle__label",children:l})]}),u=({checked:c=!1,indeterminate:a=!1,onChange:s,disabled:l,size:n="small",label:t,className:r=""})=>{const o=_.useRef(null);return _.useEffect(()=>{o.current&&(o.current.indeterminate=a)},[a]),e.jsxs("label",{className:["fm-checkbox",`fm-checkbox--${n}`,l?"fm-checkbox--disabled":"",r].filter(Boolean).join(" "),children:[e.jsx("input",{ref:o,type:"checkbox",className:"fm-checkbox__input",checked:c,onChange:i=>s==null?void 0:s(i.target.checked),disabled:l}),e.jsxs("span",{className:"fm-checkbox__box",children:[c&&!a&&e.jsx("svg",{width:"10",height:"8",viewBox:"0 0 10 8",fill:"none",children:e.jsx("path",{d:"M1 4L3.5 6.5L9 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),a&&e.jsx("span",{className:"fm-checkbox__minus"})]}),t&&e.jsx("span",{className:"fm-checkbox__label",children:t})]})},N=({title:c,subtitle:a,color:s="purple",leftSlot:l,rightSlot:n,className:t=""})=>{const r=["fm-header",`fm-header--${s}`,t].filter(Boolean).join(" ");return e.jsxs("div",{className:r,children:[l&&e.jsx("div",{className:"fm-header__slot fm-header__slot--left",children:l}),e.jsxs("div",{className:"fm-header__title-block",children:[e.jsx("h4",{className:"fm-header__title",children:c}),a&&e.jsx("p",{className:"fm-header__subtitle",children:a})]}),n&&e.jsx("div",{className:"fm-header__slot fm-header__slot--right",children:n})]})},b=({variant:c="light",headline:a="Є ідеї чи пропозиції?",ctaLabel:s="Написати нам",onCtaClick:l,sections:n=[],copyright:t="© 2024 Made by FlowMakers. All rights reserved",className:r=""})=>{const o=["fm-footer",`fm-footer--${c}`,r].filter(Boolean).join(" ");return e.jsxs("footer",{className:o,children:[e.jsxs("div",{className:"fm-footer__top",children:[e.jsxs("div",{className:"fm-footer__cta-block",children:[e.jsx("h3",{className:"fm-footer__headline",children:a}),e.jsx("button",{className:"fm-footer__cta-btn",onClick:l,children:s})]}),e.jsx("div",{className:"fm-footer__sections",children:n.map((i,m)=>e.jsxs("div",{className:"fm-footer__section",children:[e.jsx("p",{className:"fm-footer__section-title",children:i.title}),e.jsx("ul",{className:"fm-footer__section-links",children:i.links.map((f,d)=>e.jsx("li",{children:e.jsx("a",{href:f.href,className:"fm-footer__link",children:f.label})},d))})]},m))})]}),e.jsx("div",{className:"fm-footer__bottom",children:e.jsx("p",{className:"fm-footer__copyright",children:t})})]})};exports.Button=h;exports.Checkbox=u;exports.Footer=b;exports.Header=N;exports.Input=p;exports.Tag=x;exports.Toggle=j;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),f=require("react"),N=({variant:a="primary",size:i="md",leftIcon:s,rightIcon:r,children:c,fullWidth:t=!1,disabled:l,className:n="",...d})=>{const o=["fm-btn",`fm-btn--${a}`,`fm-btn--${i}`,t?"fm-btn--full":"",l?"fm-btn--disabled":"",n].filter(Boolean).join(" ");return e.jsxs("button",{className:o,disabled:l,...d,children:[s&&e.jsx("span",{className:"fm-btn__icon fm-btn__icon--left",children:s}),c&&e.jsx("span",{className:"fm-btn__label",children:c}),r&&e.jsx("span",{className:"fm-btn__icon fm-btn__icon--right",children:r})]})},u=({label:a,placeholder:i,state:s="default",errorMessage:r,successMessage:c,leftIcon:t,rightIcon:l,className:n="",disabled:d,...o})=>{const m=["fm-input-wrapper",`fm-input-wrapper--${s}`,d?"fm-input-wrapper--disabled":"",n].filter(Boolean).join(" ");return e.jsxs("div",{className:m,children:[a&&e.jsx("label",{className:"fm-input__label",children:a}),e.jsxs("div",{className:"fm-input__field",children:[t&&e.jsx("span",{className:"fm-input__icon fm-input__icon--left",children:t}),e.jsx("input",{className:"fm-input__el",placeholder:i,disabled:d,...o}),l&&e.jsx("span",{className:"fm-input__icon fm-input__icon--right",children:l})]}),s==="error"&&r&&e.jsx("p",{className:"fm-input__message fm-input__message--error",children:r}),s==="success"&&c&&e.jsx("p",{className:"fm-input__message fm-input__message--success",children:c})]})},g=({children:a,color:i="grey",className:s=""})=>{const r=["fm-tag",`fm-tag--${i}`,s].filter(Boolean).join(" ");return e.jsx("span",{className:r,children:a})},v=({checked:a,onChange:i,disabled:s,label:r,className:c=""})=>e.jsxs("label",{className:["fm-toggle",s?"fm-toggle--disabled":"",c].filter(Boolean).join(" "),children:[e.jsx("input",{type:"checkbox",className:"fm-toggle__input",checked:a,onChange:t=>i(t.target.checked),disabled:s}),e.jsx("span",{className:"fm-toggle__track",children:e.jsx("span",{className:"fm-toggle__thumb"})}),r&&e.jsx("span",{className:"fm-toggle__label",children:r})]}),k=({checked:a=!1,indeterminate:i=!1,onChange:s,disabled:r,size:c="small",label:t,className:l=""})=>{const n=f.useRef(null);return f.useEffect(()=>{n.current&&(n.current.indeterminate=i)},[i]),e.jsxs("label",{className:["fm-checkbox",`fm-checkbox--${c}`,r?"fm-checkbox--disabled":"",l].filter(Boolean).join(" "),children:[e.jsx("input",{ref:n,type:"checkbox",className:"fm-checkbox__input",checked:a,onChange:d=>s==null?void 0:s(d.target.checked),disabled:r}),e.jsxs("span",{className:"fm-checkbox__box",children:[a&&!i&&e.jsx("svg",{width:"10",height:"8",viewBox:"0 0 10 8",fill:"none",children:e.jsx("path",{d:"M1 4L3.5 6.5L9 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),i&&e.jsx("span",{className:"fm-checkbox__minus"})]}),t&&e.jsx("span",{className:"fm-checkbox__label",children:t})]})},w=({title:a,subtitle:i,color:s="purple",leftSlot:r,rightSlot:c,className:t=""})=>{const l=["fm-header",`fm-header--${s}`,t].filter(Boolean).join(" ");return e.jsxs("div",{className:l,children:[r&&e.jsx("div",{className:"fm-header__slot fm-header__slot--left",children:r}),e.jsxs("div",{className:"fm-header__title-block",children:[e.jsx("h4",{className:"fm-header__title",children:a}),i&&e.jsx("p",{className:"fm-header__subtitle",children:i})]}),c&&e.jsx("div",{className:"fm-header__slot fm-header__slot--right",children:c})]})},b=({variant:a="light",headline:i="Є ідеї чи пропозиції?",ctaLabel:s="Написати нам",onCtaClick:r,sections:c=[],copyright:t="© 2024 Made by FlowMakers. All rights reserved",className:l=""})=>{const n=["fm-footer",`fm-footer--${a}`,l].filter(Boolean).join(" ");return e.jsxs("footer",{className:n,children:[e.jsxs("div",{className:"fm-footer__top",children:[e.jsxs("div",{className:"fm-footer__cta-block",children:[e.jsx("h3",{className:"fm-footer__headline",children:i}),e.jsx("button",{className:"fm-footer__cta-btn",onClick:r,children:s})]}),e.jsx("div",{className:"fm-footer__sections",children:c.map((d,o)=>e.jsxs("div",{className:"fm-footer__section",children:[e.jsx("p",{className:"fm-footer__section-title",children:d.title}),e.jsx("ul",{className:"fm-footer__section-links",children:d.links.map((m,p)=>e.jsx("li",{children:e.jsx("a",{href:m.href,className:"fm-footer__link",children:m.label})},p))})]},o))})]}),e.jsx("div",{className:"fm-footer__bottom",children:e.jsx("p",{className:"fm-footer__copyright",children:t})})]})},L=({icon:a,label:i,active:s=!1,href:r,onClick:c,className:t=""})=>{const l=["fm-nav-item",s?"fm-nav-item--active":"",t].filter(Boolean).join(" "),n=e.jsxs(e.Fragment,{children:[a&&e.jsx("span",{className:"fm-nav-item__icon",children:a}),e.jsx("span",{className:"fm-nav-item__label",children:i})]});return r?e.jsx("a",{className:l,href:r,children:n}):e.jsx("button",{className:l,onClick:c,type:"button",children:n})},B=({children:a,horizontal:i=!1,className:s=""})=>{const r=["fm-nav-bar",i?"fm-nav-bar--horizontal":"",s].filter(Boolean).join(" ");return e.jsx("nav",{className:r,children:a})},C={available:"Доступно","in-progress":"В процесі",completed:"Завершено",unavailable:"Недоступно"},y=({title:a,description:i,image:s,state:r="available",tags:c,meta:t,action:l,className:n=""})=>{const d=["fm-card-test",r==="unavailable"?"fm-card-test--unavailable":"",n].filter(Boolean).join(" ");return e.jsxs("div",{className:d,children:[e.jsxs("div",{className:"fm-card-test__image",children:[s&&e.jsx("img",{src:s,alt:a}),e.jsx("div",{className:"fm-card-test__image-overlay"}),e.jsx("span",{className:`fm-card-test__status-tag fm-card-test__status-tag--${r}`,children:C[r]})]}),e.jsxs("div",{className:"fm-card-test__content",children:[e.jsx("h3",{className:"fm-card-test__title",children:a}),i&&e.jsx("p",{className:"fm-card-test__description",children:i})]}),c&&e.jsx("div",{className:"fm-card-test__tags",children:c}),t&&t.length>0&&e.jsx("div",{className:"fm-card-test__meta",children:t.map((o,m)=>e.jsxs("div",{className:"fm-card-test__meta-item",children:[e.jsx("span",{className:"fm-card-test__meta-icon",children:o.icon}),o.label]},m))}),l]})},_=21,j=2*Math.PI*_,$=({value:a})=>{const i=j*(1-Math.min(100,Math.max(0,a))/100),s=a>=100;return e.jsxs("div",{className:"fm-card-career__progress",children:[e.jsxs("svg",{viewBox:"0 0 50 50",children:[e.jsx("circle",{className:"fm-card-career__progress-track",cx:"25",cy:"25",r:_}),e.jsx("circle",{className:`fm-card-career__progress-fill${s?" fm-card-career__progress-fill--complete":""}`,cx:"25",cy:"25",r:_,strokeDasharray:j,strokeDashoffset:i})]}),e.jsxs("span",{className:"fm-card-career__progress-label",children:[a,"%"]})]})},W=()=>e.jsx("svg",{className:"fm-card-career__chevron",viewBox:"0 0 20 20",fill:"none",children:e.jsx("path",{d:"M5 7.5l5 5 5-5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),M=({title:a,subtitle:i,statusTag:s,tasks:r=[],defaultOpen:c=!1,className:t=""})=>{const[l,n]=f.useState(c),d=["fm-card-career",l?"fm-card-career--open":"",t].filter(Boolean).join(" ");return e.jsxs("div",{className:d,children:[e.jsxs("div",{className:"fm-card-career__header",onClick:()=>n(o=>!o),children:[e.jsxs("div",{className:"fm-card-career__header-content",children:[e.jsxs("div",{className:"fm-card-career__title-row",children:[e.jsx("h3",{className:"fm-card-career__title",children:a}),s]}),i&&e.jsx("p",{className:"fm-card-career__subtitle",children:i})]}),e.jsx(W,{})]}),e.jsx("div",{className:"fm-card-career__tasks",children:r.map((o,m)=>e.jsxs("div",{className:"fm-card-career__task",children:[e.jsxs("div",{className:"fm-card-career__task-info",children:[e.jsx($,{value:o.progress}),e.jsxs("div",{className:"fm-card-career__task-text",children:[e.jsx("p",{className:"fm-card-career__task-title",children:o.title}),o.subtitle&&e.jsx("p",{className:"fm-card-career__task-subtitle",children:o.subtitle})]})]}),o.action]},m))})]})},I={minus:e.jsx("svg",{viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:e.jsx("path",{d:"M3 9H15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),plus:e.jsx("svg",{viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:e.jsx("path",{d:"M9 3V15M3 9H15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})}),dots:e.jsxs("svg",{viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[e.jsx("circle",{cx:"3.5",cy:"9",r:"1.5",fill:"currentColor"}),e.jsx("circle",{cx:"9",cy:"9",r:"1.5",fill:"currentColor"}),e.jsx("circle",{cx:"14.5",cy:"9",r:"1.5",fill:"currentColor"})]}),pen:e.jsx("svg",{viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:e.jsx("path",{d:"M12.5 2.5L15.5 5.5M2 16L6 15L15.5 5.5L12.5 2.5L3 12L2 16Z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),link:e.jsxs("svg",{viewBox:"0 0 18 18",fill:"none","aria-hidden":"true",children:[e.jsx("path",{d:"M7 11L11 7M8 5L5.5 7.5C4.5 8.5 4.5 10 5.5 11L7 12.5C8 13.5 9.5 13.5 10.5 12.5L13 10",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"}),e.jsx("path",{d:"M10 13L12.5 10.5C13.5 9.5 13.5 8 12.5 7L11 5.5C10 4.5 8.5 4.5 7.5 5.5L5 8",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),"arrow-left":e.jsx("svg",{viewBox:"0 0 15 15",fill:"none","aria-hidden":"true",children:e.jsx("path",{d:"M10.5 2.5L5 7.5L10.5 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"arrow-right":e.jsx("svg",{viewBox:"0 0 15 15",fill:"none","aria-hidden":"true",children:e.jsx("path",{d:"M4.5 2.5L10 7.5L4.5 12.5",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})},h=({icon:a="arrow-right",size:i="regular",variant:s="filled",className:r="",disabled:c,...t})=>{const l=["fm-icon-btn",`fm-icon-btn--${i}`,`fm-icon-btn--${s}`,r].filter(Boolean).join(" ");return e.jsx("button",{className:l,disabled:c,...t,children:I[a]})},P=({options:a,value:i,onChange:s,className:r=""})=>{const c=["fm-segmented-control",r].filter(Boolean).join(" ");return e.jsx("div",{className:c,role:"tablist",children:a.map(t=>e.jsx("button",{role:"tab","aria-selected":t.value===i,className:["fm-segmented-control__item",t.value===i?"fm-segmented-control__item--active":""].filter(Boolean).join(" "),onClick:()=>s==null?void 0:s(t.value),children:t.label},t.value))})},T=({variant:a="dots",page:i=1,total:s=9,onPrev:r,onNext:c,prevDisabled:t=!1,nextDisabled:l=!1,className:n=""})=>{const d=["fm-pagination",`fm-pagination--${a}`,n].filter(Boolean).join(" ");return e.jsxs("div",{className:d,children:[e.jsx(h,{icon:"arrow-left","aria-label":"Попередня",disabled:t,onClick:r}),a==="dots"&&e.jsx("div",{className:"fm-pagination__dots",children:Array.from({length:s}).map((o,m)=>e.jsx("span",{className:["fm-pagination__dot",m+1===i?"fm-pagination__dot--active":""].filter(Boolean).join(" ")},m))}),a==="numbers"&&e.jsx("div",{className:"fm-pagination__numbers",children:e.jsxs("span",{className:"fm-pagination__numbers-text",children:[i," з ",s]})}),e.jsx(h,{icon:"arrow-right","aria-label":"Наступна",disabled:l,onClick:c})]})},S=({title:a,subtitle:i,color:s="purple",leftAction:r,rightAction:c,className:t=""})=>{const l=["fm-widget-header",`fm-widget-header--${s}`,t].filter(Boolean).join(" ");return e.jsxs("div",{className:l,children:[r&&e.jsx("div",{className:"fm-widget-header__action",children:r}),e.jsxs("div",{className:"fm-widget-header__title-group",children:[e.jsx("h3",{className:"fm-widget-header__title",children:a}),i&&e.jsx("p",{className:"fm-widget-header__subtitle",children:i})]}),c&&e.jsx("div",{className:"fm-widget-header__action",children:c})]})},D=({header:a,children:i,className:s="",width:r})=>{const c=["fm-widget-card",s].filter(Boolean).join(" ");return e.jsxs("div",{className:c,style:r?{width:r}:void 0,children:[a,e.jsx("div",{className:"fm-widget-card__body",children:i})]})},q=({tag:a,title:i,text:s,className:r=""})=>e.jsxs("div",{className:["fm-widget-news",r].filter(Boolean).join(" "),children:[a&&e.jsx("div",{className:"fm-widget-news__tag",children:a}),e.jsxs("div",{className:"fm-widget-news__content",children:[e.jsx("p",{className:"fm-widget-news__title",children:i}),e.jsx("p",{className:"fm-widget-news__text",children:s})]})]}),F=({image:a,tag:i,title:s,className:r=""})=>e.jsxs("div",{className:["fm-widget-general-news",r].filter(Boolean).join(" "),children:[e.jsx("div",{className:"fm-widget-general-news__image",children:a&&e.jsx("img",{src:a,alt:s})}),e.jsxs("div",{className:"fm-widget-general-news__content",children:[i&&e.jsx("div",{className:"fm-widget-general-news__tag",children:i}),e.jsx("p",{className:"fm-widget-general-news__title",children:s})]})]}),R=({title:a,text:i,date:s,className:r=""})=>e.jsxs("div",{className:["fm-widget-notes",r].filter(Boolean).join(" "),children:[e.jsx("p",{className:"fm-widget-notes__title",children:a}),e.jsx("p",{className:"fm-widget-notes__text",children:i}),s&&e.jsx("div",{className:"fm-widget-notes__footer",children:e.jsx("span",{className:"fm-widget-notes__date",children:s})})]}),A=({tag:a,text:i,action:s,className:r=""})=>e.jsxs("div",{className:["fm-widget-advice",r].filter(Boolean).join(" "),children:[a&&e.jsx("div",{className:"fm-widget-advice__tag",children:a}),e.jsx("p",{className:"fm-widget-advice__text",children:i}),s&&e.jsx("div",{className:"fm-widget-advice__action",children:s})]}),H=({days:a=[],events:i=[],className:s=""})=>e.jsxs("div",{className:["fm-widget-calendar",s].filter(Boolean).join(" "),children:[e.jsx("div",{className:"fm-widget-calendar__days",children:a.map((r,c)=>e.jsxs("div",{className:["fm-widget-calendar__day",r.active?"fm-widget-calendar__day--active":""].filter(Boolean).join(" "),children:[e.jsx("span",{className:"fm-widget-calendar__day-label",children:r.dayLabel}),e.jsx("span",{className:"fm-widget-calendar__day-num",children:r.date}),r.hasEvent&&e.jsx("span",{className:"fm-widget-calendar__day-dot"})]},c))}),i.length>0&&e.jsx("div",{className:"fm-widget-calendar__events",children:i.map((r,c)=>e.jsxs("div",{className:"fm-widget-calendar__event",children:[e.jsx("div",{className:"fm-widget-calendar__event-bar",style:{background:r.color||"#9076dc"}}),e.jsxs("div",{className:"fm-widget-calendar__event-body",children:[e.jsx("span",{className:"fm-widget-calendar__event-title",children:r.title}),e.jsx("span",{className:"fm-widget-calendar__event-time",children:r.time})]})]},c))})]}),E=({placeholder:a="Пошук...",className:i="",...s})=>e.jsxs("div",{className:`fm-search ${i}`.trim(),children:[e.jsxs("svg",{className:"fm-search__icon",width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[e.jsx("circle",{cx:"9",cy:"9",r:"6",stroke:"#91939f",strokeWidth:"1.5"}),e.jsx("path",{d:"M13.5 13.5L17 17",stroke:"#91939f",strokeWidth:"1.5",strokeLinecap:"round"})]}),e.jsx("input",{className:"fm-search__input",placeholder:a,...s})]}),O=({options:a=[],onSelect:i,className:s=""})=>e.jsx("div",{className:`fm-dropdown ${s}`.trim(),children:a.map(r=>e.jsx("button",{className:"fm-dropdown__item",type:"button",onClick:()=>i==null?void 0:i(r.value),children:r.label},r.value))}),V=()=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[e.jsx("rect",{x:"2.5",y:"4.5",width:"15",height:"13",rx:"2",stroke:"currentColor",strokeWidth:"1.3"}),e.jsx("path",{d:"M6.5 2.5v4M13.5 2.5v4M2.5 8.5h15",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round"}),e.jsx("circle",{cx:"7",cy:"12",r:"1",fill:"currentColor"}),e.jsx("circle",{cx:"10",cy:"12",r:"1",fill:"currentColor"}),e.jsx("circle",{cx:"13",cy:"12",r:"1",fill:"currentColor"}),e.jsx("circle",{cx:"7",cy:"15",r:"1",fill:"currentColor"}),e.jsx("circle",{cx:"10",cy:"15",r:"1",fill:"currentColor"})]}),G=({label:a,helperText:i,state:s="default",disabled:r,className:c="",...t})=>{const l=r||s==="disabled",n=["fm-datepicker",`fm-datepicker--${s}`,l?"fm-datepicker--disabled":"",c].filter(Boolean).join(" ");return e.jsxs("div",{className:n,children:[a&&e.jsx("label",{className:"fm-datepicker__label",children:a}),e.jsxs("div",{className:"fm-datepicker__field",children:[e.jsx("input",{type:"date",className:"fm-datepicker__input",disabled:l,...t}),e.jsx("span",{className:"fm-datepicker__icon",children:e.jsx(V,{})})]}),i&&e.jsx("p",{className:"fm-datepicker__helper",children:i})]})},U=()=>e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",children:[e.jsx("circle",{cx:"10",cy:"10",r:"7",stroke:"currentColor",strokeWidth:"1.3"}),e.jsx("path",{d:"M10 6.5V10.5L13 12",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})]}),Q=({label:a,helperText:i,state:s="default",disabled:r,className:c="",...t})=>{const l=r||s==="disabled",n=["fm-timepicker",`fm-timepicker--${s}`,l?"fm-timepicker--disabled":"",c].filter(Boolean).join(" ");return e.jsxs("div",{className:n,children:[a&&e.jsx("label",{className:"fm-timepicker__label",children:a}),e.jsxs("div",{className:"fm-timepicker__field",children:[e.jsx("input",{type:"time",className:"fm-timepicker__input",disabled:l,...t}),e.jsx("span",{className:"fm-timepicker__icon",children:e.jsx(U,{})})]}),i&&e.jsx("p",{className:"fm-timepicker__helper",children:i})]})},Z=({label:a,checked:i=!1,disabled:s,className:r="",onChange:c,...t})=>e.jsxs("label",{className:`fm-radio ${s?"fm-radio--disabled":""} ${r}`.trim(),children:[e.jsx("span",{className:`fm-radio__circle ${i?"fm-radio__circle--checked":""}`,children:i&&e.jsx("span",{className:"fm-radio__dot"})}),e.jsx("input",{type:"radio",className:"fm-radio__input",checked:i,disabled:s,onChange:c,...t}),a&&e.jsx("span",{className:"fm-radio__label",children:a})]}),z=()=>e.jsx("svg",{width:"16",height:"12",viewBox:"0 0 16 12",fill:"none",children:e.jsx("path",{d:"M1.5 6L6 10.5L14.5 1.5",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),K=({step:a,index:i,isLast:s})=>e.jsxs("div",{className:"fm-stepper__step",children:[e.jsxs("div",{className:`fm-stepper__circle fm-stepper__circle--${a.state}`,children:[a.state==="done"&&e.jsx(z,{}),a.state==="in-process"&&e.jsx("span",{className:"fm-stepper__num",children:i+1}),a.state==="inactive"&&e.jsx("span",{className:"fm-stepper__num fm-stepper__num--inactive",children:i+1})]}),!s&&e.jsx("div",{className:`fm-stepper__line fm-stepper__line--${a.state}`}),a.label&&e.jsx("p",{className:`fm-stepper__label fm-stepper__label--${a.state}`,children:a.label})]}),J=({steps:a,className:i=""})=>e.jsx("div",{className:`fm-stepper ${i}`.trim(),children:a.map((s,r)=>e.jsx(K,{step:s,index:r,isLast:r===a.length-1},r))}),X=()=>e.jsx("svg",{width:"16",height:"12",viewBox:"0 0 16 12",fill:"none",children:e.jsx("path",{d:"M1.5 6L6 10.5L14.5 1.5",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),Y=({step:a,isLast:i})=>{const s=a.state??"inactive";return e.jsxs("div",{className:`fm-stepper-progress__step fm-stepper-progress__step--${s}`,children:[e.jsx("div",{className:"fm-stepper-progress__circle",children:e.jsx(X,{})}),!i&&e.jsx("div",{className:"fm-stepper-progress__line"}),e.jsx("p",{className:"fm-stepper-progress__label",children:a.label})]})},ee=({steps:a,className:i=""})=>e.jsx("div",{className:`fm-stepper-progress ${i}`.trim(),children:a.map((s,r)=>e.jsx(Y,{step:s,isLast:r===a.length-1},r))}),se=({avatar:a,name:i,role:s,quote:r,className:c=""})=>e.jsxs("div",{className:`fm-testimonial ${c}`.trim(),children:[e.jsxs("div",{className:"fm-testimonial__author",children:[a?e.jsx("img",{className:"fm-testimonial__avatar",src:a,alt:i}):e.jsx("div",{className:"fm-testimonial__avatar fm-testimonial__avatar--placeholder",children:i.charAt(0)}),e.jsxs("div",{className:"fm-testimonial__meta",children:[e.jsx("p",{className:"fm-testimonial__name",children:i}),s&&e.jsx("p",{className:"fm-testimonial__role",children:s})]})]}),e.jsx("p",{className:"fm-testimonial__quote",children:r})]}),ae=({icon:a,title:i,description:s,price:r,period:c="/місяць",action:t,badge:l,highlighted:n=!1,className:d=""})=>e.jsxs("div",{className:`fm-pricecard ${n?"fm-pricecard--highlighted":""} ${d}`.trim(),children:[l&&e.jsx("span",{className:"fm-pricecard__badge",children:l}),a&&e.jsx("div",{className:"fm-pricecard__icon",children:a}),e.jsxs("div",{className:"fm-pricecard__info",children:[e.jsx("h3",{className:"fm-pricecard__title",children:i}),s&&e.jsx("p",{className:"fm-pricecard__desc",children:s})]}),e.jsxs("div",{className:"fm-pricecard__footer",children:[r!==void 0&&e.jsxs("div",{className:"fm-pricecard__price",children:[e.jsx("span",{className:"fm-pricecard__amount",children:r}),e.jsx("span",{className:"fm-pricecard__period",children:c})]}),t&&e.jsx("div",{className:"fm-pricecard__action",children:t})]})]}),ie=()=>e.jsx("svg",{width:"14",height:"10",viewBox:"0 0 14 10",fill:"none",children:e.jsx("path",{d:"M1 5L5.5 9.5L13 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),re=({title:a="Базовий",amount:i="₴0",period:s="/місяць",actionLabel:r="Отримати",onAction:c,features:t=[],className:l=""})=>e.jsxs("div",{className:`fm-price ${l}`.trim(),children:[e.jsx("p",{className:"fm-price__title",children:a}),e.jsxs("div",{className:"fm-price__amount-row",children:[e.jsx("span",{className:"fm-price__amount",children:i}),e.jsx("span",{className:"fm-price__period",children:s})]}),e.jsx("button",{className:"fm-price__cta",type:"button",onClick:c,children:r}),t.length>0&&e.jsx("ul",{className:"fm-price__features",children:t.map((n,d)=>e.jsxs("li",{className:"fm-price__feature",children:[e.jsx("div",{className:"fm-price__check",children:e.jsx(ie,{})}),e.jsx("span",{children:n})]},d))})]}),ce=()=>e.jsx("svg",{width:"14",height:"10",viewBox:"0 0 14 10",fill:"none",children:e.jsx("path",{d:"M1 5L5.5 9.5L13 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),te=({children:a,className:i=""})=>e.jsxs("div",{className:`fm-list-item ${i}`.trim(),children:[e.jsx("div",{className:"fm-list-item__check",children:e.jsx(ce,{})}),e.jsx("span",{className:"fm-list-item__text",children:a})]}),le=()=>e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[e.jsx("path",{d:"M8 1L9.5 6.5L15 8L9.5 9.5L8 15L6.5 9.5L1 8L6.5 6.5L8 1Z",fill:"url(#fm-sparkle-grad)"}),e.jsx("defs",{children:e.jsxs("linearGradient",{id:"fm-sparkle-grad",x1:"0",y1:"0",x2:"16",y2:"16",gradientUnits:"userSpaceOnUse",children:[e.jsx("stop",{offset:"0%",stopColor:"#9076dc"}),e.jsx("stop",{offset:"100%",stopColor:"#ffa8f1"})]})})]}),x=({label:a="АІ-помічник для кар'єрного розвитку",showIcon:i=!0,className:s=""})=>e.jsxs("div",{className:`fm-tag-big ${s}`.trim(),children:[i&&e.jsx("span",{className:"fm-tag-big__icon",children:e.jsx(le,{})}),e.jsx("span",{className:"fm-tag-big__label",children:a})]}),ne=({tag:a="Можливості платформи",showTag:i=!0,title:s="Все для твоєї кар'єри",subtitle:r="Комплексна платформа для пошуку роботи, навчання та професійного розвитку",showSubtitle:c=!0,variant:t="centered",className:l=""})=>e.jsx("div",{className:`fm-section-title fm-section-title--${t} ${l}`.trim(),children:t==="split"?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"fm-section-title__left",children:[i&&e.jsx(x,{label:a,showIcon:!1}),e.jsx("h2",{className:"fm-section-title__heading",children:s})]}),c&&e.jsx("p",{className:"fm-section-title__subtitle",children:r})]}):e.jsxs(e.Fragment,{children:[i&&e.jsx(x,{label:a,showIcon:!1}),e.jsx("h2",{className:"fm-section-title__heading",children:s}),c&&e.jsx("p",{className:"fm-section-title__subtitle",children:r})]})}),de=({title:a="Привіт!",subtitle:i="Сьогодні чудовий день для кар'єрного зростання.",actionLabel:s="Почати тренування",showAction:r=!0,onAction:c,className:t=""})=>e.jsxs("div",{className:`fm-dashboard-title ${t}`.trim(),children:[e.jsxs("div",{className:"fm-dashboard-title__text",children:[e.jsx("h1",{className:"fm-dashboard-title__heading",children:a}),e.jsx("p",{className:"fm-dashboard-title__subtitle",children:i})]}),r&&e.jsx("button",{className:"fm-dashboard-title__action",type:"button",onClick:c,children:s})]}),oe=({number:a=1,title:i="Пройди тестування",content:s="АІ аналізує твої навички, інтерес та досвід",style:r="select",className:c=""})=>e.jsxs("div",{className:`fm-process-step fm-process-step--${r} ${c}`.trim(),children:[e.jsx("div",{className:"fm-process-step__number",children:e.jsx("span",{children:a})}),e.jsxs("div",{className:"fm-process-step__body",children:[e.jsx("h3",{className:"fm-process-step__title",children:i}),e.jsx("p",{className:"fm-process-step__content",children:s})]})]}),me=()=>e.jsx("svg",{width:"14",height:"10",viewBox:"0 0 14 10",fill:"none",children:e.jsx("path",{d:"M1 5L5.5 9.5L13 1",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),fe=({tasks:a,className:i=""})=>e.jsx("div",{className:`fm-tasks-widget ${i}`.trim(),children:a.map((s,r)=>e.jsxs("div",{className:"fm-tasks-widget__row",children:[e.jsx("div",{className:`fm-tasks-widget__checkbox ${s.done?"fm-tasks-widget__checkbox--done":""}`,children:s.done&&e.jsx(me,{})}),e.jsx("span",{className:`fm-tasks-widget__label ${s.done?"fm-tasks-widget__label--done":""}`,children:s.label}),s.time&&e.jsx("span",{className:"fm-tasks-widget__tag",children:s.time})]},r))}),_e=({placeholder:a="Ваша електронна пошта",buttonLabel:i="Почати безкоштовно",onSubmit:s,className:r=""})=>{const[c,t]=f.useState(""),l=n=>{n.preventDefault(),s==null||s(c)};return e.jsxs("form",{className:`fm-signup-form ${r}`.trim(),onSubmit:l,children:[e.jsx("input",{type:"email",className:"fm-signup-form__input",placeholder:a,value:c,onChange:n=>t(n.target.value)}),e.jsx("button",{type:"submit",className:"fm-signup-form__btn",children:i})]})},he=({icon:a,title:i="Базовий",description:s="Ідеальний старт для знайомства з платформою та визначення кар'єрного напрямку.",variant:r="default",className:c=""})=>e.jsxs("div",{className:`fm-tariffs fm-tariffs--${r} ${c}`.trim(),children:[a&&e.jsx("div",{className:"fm-tariffs__icon",children:a}),e.jsxs("div",{className:"fm-tariffs__body",children:[e.jsx("p",{className:"fm-tariffs__title",children:i}),e.jsx("p",{className:"fm-tariffs__desc",children:s})]})]}),xe=()=>e.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:e.jsx("path",{d:"M9 3.5V14.5M3.5 9H14.5",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round"})}),je=()=>e.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",children:e.jsx("path",{d:"M4.5 4.5L13.5 13.5M13.5 4.5L4.5 13.5",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round"})}),pe=({title:a="Що таке Rework?",text:i="Rework — це AI-платформа для кар'єрного розвитку, яка допомагає знайти нову професію через персоналізовані тести, симуляції співбесід та розумні рекомендації вакансій.",open:s=!1,state:r="default",onClick:c,className:t=""})=>e.jsxs("div",{className:["fm-question",s?"fm-question--open":"",!s&&r==="hover"?"fm-question--hover":"",t].filter(Boolean).join(" "),onClick:c,role:"button",tabIndex:0,onKeyDown:l=>l.key==="Enter"&&(c==null?void 0:c()),"aria-expanded":s,children:[e.jsxs("div",{className:"fm-question__content",children:[e.jsx("p",{className:"fm-question__title",children:a}),s&&e.jsx("p",{className:"fm-question__text",children:i})]}),e.jsx("span",{className:`fm-question__icon ${s?"fm-question__icon--open":""}`,children:s?e.jsx(je,{}):e.jsx(xe,{})})]});exports.Button=N;exports.CalendarWidget=H;exports.CardCareer=M;exports.CardTest=y;exports.Checkbox=k;exports.DashboardTitle=de;exports.DatePicker=G;exports.Dropdown=O;exports.Footer=b;exports.GeneralNewsWidget=F;exports.Header=w;exports.IconButton=h;exports.Input=u;exports.ListItem=te;exports.NavBar=B;exports.NavItem=L;exports.NotesWidget=R;exports.Pagination=T;exports.PersonalAdviceWidget=A;exports.PlatformNewsWidget=q;exports.Price=re;exports.PriceCard=ae;exports.ProcessStep=oe;exports.Question=pe;exports.RadioButton=Z;exports.Search=E;exports.SectionTitle=ne;exports.SegmentedControl=P;exports.SignupForm=_e;exports.Stepper=J;exports.StepperProgress=ee;exports.Tag=g;exports.TagBig=x;exports.Tariffs=he;exports.TasksWidget=fe;exports.TestimonialCard=se;exports.TimePicker=Q;exports.Toggle=v;exports.WidgetCard=D;exports.WidgetHeader=S;
package/dist/index.d.ts CHANGED
@@ -8,6 +8,32 @@ export { Toggle } from './components/Toggle';
8
8
  export { Checkbox } from './components/Checkbox';
9
9
  export { Header } from './components/Header';
10
10
  export { Footer } from './components/Footer';
11
+ export { NavItem, NavBar } from './components/NavMenu';
12
+ export { CardTest } from './components/CardTest';
13
+ export { CardCareer } from './components/CardCareer';
14
+ export { IconButton } from './components/IconButton';
15
+ export { SegmentedControl } from './components/SegmentedControl';
16
+ export { Pagination } from './components/Pagination';
17
+ export { WidgetCard, WidgetHeader, PlatformNewsWidget, GeneralNewsWidget, NotesWidget, PersonalAdviceWidget, CalendarWidget, } from './components/WidgetCard';
18
+ export { Search } from './components/Search';
19
+ export { Dropdown } from './components/Dropdown';
20
+ export { DatePicker } from './components/DatePicker';
21
+ export { TimePicker } from './components/TimePicker';
22
+ export { RadioButton } from './components/RadioButton';
23
+ export { Stepper } from './components/Stepper';
24
+ export { StepperProgress } from './components/StepperProgress';
25
+ export { TestimonialCard } from './components/TestimonialCard';
26
+ export { PriceCard } from './components/PriceCard';
27
+ export { Price } from './components/Price';
28
+ export { ListItem } from './components/ListItem';
29
+ export { TagBig } from './components/TagBig';
30
+ export { SectionTitle } from './components/SectionTitle';
31
+ export { DashboardTitle } from './components/DashboardTitle';
32
+ export { ProcessStep } from './components/ProcessStep';
33
+ export { TasksWidget } from './components/TasksWidget';
34
+ export { SignupForm } from './components/SignupForm';
35
+ export { Tariffs } from './components/Tariffs';
36
+ export { Question } from './components/Question';
11
37
  export type { ButtonProps, ButtonVariant, ButtonSize } from './components/Button';
12
38
  export type { InputProps, InputState } from './components/Input';
13
39
  export type { TagProps, TagColor } from './components/Tag';
@@ -15,3 +41,29 @@ export type { ToggleProps } from './components/Toggle';
15
41
  export type { CheckboxProps } from './components/Checkbox';
16
42
  export type { HeaderProps, HeaderColor } from './components/Header';
17
43
  export type { FooterProps, FooterVariant, FooterSection, FooterLink } from './components/Footer';
44
+ export type { NavItemProps, NavBarProps } from './components/NavMenu';
45
+ export type { CardTestProps, CardTestState, CardTestMetaItem } from './components/CardTest';
46
+ export type { CardCareerProps, CardCareerTask } from './components/CardCareer';
47
+ export type { IconButtonProps, IconButtonIcon, IconButtonSize, IconButtonVariant } from './components/IconButton';
48
+ export type { SegmentedControlProps, SegmentedControlOption } from './components/SegmentedControl';
49
+ export type { PaginationProps, PaginationVariant } from './components/Pagination';
50
+ export type { WidgetCardProps, WidgetHeaderProps, WidgetHeaderColor, PlatformNewsWidgetProps, GeneralNewsWidgetProps, NotesWidgetProps, PersonalAdviceWidgetProps, CalendarWidgetProps, CalendarDayItem, CalendarEvent, } from './components/WidgetCard';
51
+ export type { SearchProps } from './components/Search';
52
+ export type { DropdownProps, DropdownOption } from './components/Dropdown';
53
+ export type { DatePickerProps, DatePickerState } from './components/DatePicker';
54
+ export type { TimePickerProps, TimePickerState } from './components/TimePicker';
55
+ export type { RadioButtonProps } from './components/RadioButton';
56
+ export type { StepperProps, StepperStep, StepperStepState } from './components/Stepper';
57
+ export type { StepperProgressProps, StepperProgressStep, StepperProgressState } from './components/StepperProgress';
58
+ export type { TestimonialCardProps } from './components/TestimonialCard';
59
+ export type { PriceCardProps } from './components/PriceCard';
60
+ export type { PriceProps } from './components/Price';
61
+ export type { ListItemProps } from './components/ListItem';
62
+ export type { TagBigProps } from './components/TagBig';
63
+ export type { SectionTitleProps, SectionTitleVariant } from './components/SectionTitle';
64
+ export type { DashboardTitleProps } from './components/DashboardTitle';
65
+ export type { ProcessStepProps, ProcessStepStyle } from './components/ProcessStep';
66
+ export type { TasksWidgetProps, TaskItem } from './components/TasksWidget';
67
+ export type { SignupFormProps } from './components/SignupForm';
68
+ export type { TariffsProps, TariffsVariant } from './components/Tariffs';
69
+ export type { QuestionProps, QuestionState } from './components/Question';