@arctura/atomics 0.0.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.
- package/dist/hooks.cjs +1 -0
- package/dist/hooks.js +2 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +1980 -0
- package/dist/lib/hooks.d.ts +5 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/useBreakpoints.d.ts +48 -0
- package/dist/lib/useBreakpoints.d.ts.map +1 -0
- package/dist/lib/useControlled.d.ts +38 -0
- package/dist/lib/useControlled.d.ts.map +1 -0
- package/dist/src/badge/Badge.d.ts +116 -0
- package/dist/src/badge/Badge.d.ts.map +1 -0
- package/dist/src/badge/index.d.ts +3 -0
- package/dist/src/badge/index.d.ts.map +1 -0
- package/dist/src/buttons/Button.d.ts +126 -0
- package/dist/src/buttons/Button.d.ts.map +1 -0
- package/dist/src/buttons/Fab.d.ts +114 -0
- package/dist/src/buttons/Fab.d.ts.map +1 -0
- package/dist/src/buttons/IconButton.d.ts +105 -0
- package/dist/src/buttons/IconButton.d.ts.map +1 -0
- package/dist/src/buttons/index.d.ts +9 -0
- package/dist/src/buttons/index.d.ts.map +1 -0
- package/dist/src/card/Card.d.ts +35 -0
- package/dist/src/card/Card.d.ts.map +1 -0
- package/dist/src/card/Footer.d.ts +67 -0
- package/dist/src/card/Footer.d.ts.map +1 -0
- package/dist/src/card/Header.d.ts +56 -0
- package/dist/src/card/Header.d.ts.map +1 -0
- package/dist/src/card/Media.d.ts +65 -0
- package/dist/src/card/Media.d.ts.map +1 -0
- package/dist/src/card/index.d.ts +11 -0
- package/dist/src/card/index.d.ts.map +1 -0
- package/dist/src/carousel/Carousel.d.ts +124 -0
- package/dist/src/carousel/Carousel.d.ts.map +1 -0
- package/dist/src/carousel/Hero.d.ts +156 -0
- package/dist/src/carousel/Hero.d.ts.map +1 -0
- package/dist/src/carousel/index.d.ts +4 -0
- package/dist/src/carousel/index.d.ts.map +1 -0
- package/dist/src/drawer/Drawer.d.ts +40 -0
- package/dist/src/drawer/Drawer.d.ts.map +1 -0
- package/dist/src/drawer/index.d.ts +5 -0
- package/dist/src/drawer/index.d.ts.map +1 -0
- package/dist/src/form/Form.d.ts +168 -0
- package/dist/src/form/Form.d.ts.map +1 -0
- package/dist/src/form/TextArea.d.ts +266 -0
- package/dist/src/form/TextArea.d.ts.map +1 -0
- package/dist/src/form/TextInput.d.ts +200 -0
- package/dist/src/form/TextInput.d.ts.map +1 -0
- package/dist/src/form/index.d.ts +7 -0
- package/dist/src/form/index.d.ts.map +1 -0
- package/dist/src/index.d.ts +21 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/list/List.d.ts +122 -0
- package/dist/src/list/List.d.ts.map +1 -0
- package/dist/src/list/ListItem.d.ts +157 -0
- package/dist/src/list/ListItem.d.ts.map +1 -0
- package/dist/src/list/index.d.ts +6 -0
- package/dist/src/list/index.d.ts.map +1 -0
- package/dist/src/progress-stepper/Connector.d.ts +48 -0
- package/dist/src/progress-stepper/Connector.d.ts.map +1 -0
- package/dist/src/progress-stepper/Node.d.ts +75 -0
- package/dist/src/progress-stepper/Node.d.ts.map +1 -0
- package/dist/src/progress-stepper/ProgressStepper.d.ts +108 -0
- package/dist/src/progress-stepper/ProgressStepper.d.ts.map +1 -0
- package/dist/src/progress-stepper/Step.d.ts +93 -0
- package/dist/src/progress-stepper/Step.d.ts.map +1 -0
- package/dist/src/progress-stepper/index.d.ts +10 -0
- package/dist/src/progress-stepper/index.d.ts.map +1 -0
- package/dist/src/select/Select.d.ts +98 -0
- package/dist/src/select/Select.d.ts.map +1 -0
- package/dist/src/select/index.d.ts +5 -0
- package/dist/src/select/index.d.ts.map +1 -0
- package/dist/src/typography/Link.d.ts +86 -0
- package/dist/src/typography/Link.d.ts.map +1 -0
- package/dist/src/typography/Typography.d.ts +148 -0
- package/dist/src/typography/Typography.d.ts.map +1 -0
- package/dist/src/typography/index.d.ts +7 -0
- package/dist/src/typography/index.d.ts.map +1 -0
- package/dist/src/utils/capitalize.d.ts +3 -0
- package/dist/src/utils/capitalize.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +2 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/useBreakpoints-CXOalIdM.js +37 -0
- package/dist/useBreakpoints-nd-Blu7O.cjs +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { HTMLAttributes, FC, MouseEvent, ReactNode, Ref } from 'react';
|
|
2
|
+
import type { IconDefinition } from '@fortawesome/free-solid-svg-icons';
|
|
3
|
+
import type { FabClasses } from '@/src/buttons';
|
|
4
|
+
import type { NodeClasses } from '@/src/progress-stepper/Node';
|
|
5
|
+
/**
|
|
6
|
+
* Class name overrides for the `Step` component parts.
|
|
7
|
+
*/
|
|
8
|
+
interface StepClasses {
|
|
9
|
+
/** Classes applied to the description wrapper. */
|
|
10
|
+
descriptionContainer?: string;
|
|
11
|
+
/** Classes applied to the step body content. */
|
|
12
|
+
body?: string;
|
|
13
|
+
/** Class overrides passed to the node or fab used for the step marker. */
|
|
14
|
+
node?: FabClasses | NodeClasses;
|
|
15
|
+
/** Classes applied to the node container wrapper. */
|
|
16
|
+
nodeContainer?: string;
|
|
17
|
+
/** Classes applied to the root step container. */
|
|
18
|
+
root?: string;
|
|
19
|
+
/** Classes applied to the step title. */
|
|
20
|
+
title?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @description Allowed color variants for the step/node components.
|
|
24
|
+
* - `primary`: Uses the primary color from the theme.
|
|
25
|
+
* - `secondary`: Uses the secondary color from the theme.
|
|
26
|
+
* - `accent`: Uses the accent color from the theme.
|
|
27
|
+
* - `error`: Uses the error color from the theme.
|
|
28
|
+
* - `info`: Uses the info color from the theme.
|
|
29
|
+
* - `warning`: Uses the warning color from the theme.
|
|
30
|
+
*/
|
|
31
|
+
type StepColor = 'primary' | 'secondary' | 'accent' | 'error' | 'info' | 'warning';
|
|
32
|
+
/**
|
|
33
|
+
* @interface StepProps
|
|
34
|
+
* @extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick'>
|
|
35
|
+
* @description Props accepted by the `Step` component.
|
|
36
|
+
*/
|
|
37
|
+
interface StepProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onClick' | 'className'> {
|
|
38
|
+
/** Whether the step is currently active (shows expanded content). */
|
|
39
|
+
active?: boolean;
|
|
40
|
+
/** Optional class overrides for the step container, node, and content. */
|
|
41
|
+
classes?: StepClasses;
|
|
42
|
+
/** Color variant for the step node. */
|
|
43
|
+
color?: StepColor;
|
|
44
|
+
/** Whether the step is marked as completed. */
|
|
45
|
+
completed?: boolean;
|
|
46
|
+
/** Optional descriptive content displayed when the step is active. */
|
|
47
|
+
description?: ReactNode;
|
|
48
|
+
/** Optional FontAwesome icon rendered inside the node. */
|
|
49
|
+
icon?: IconDefinition;
|
|
50
|
+
/** Zero-based index assigned by the parent stepper. */
|
|
51
|
+
index?: number;
|
|
52
|
+
/** Optional label displayed when step is active. */
|
|
53
|
+
label?: string;
|
|
54
|
+
/** When true, stepper enforces linear progression; when false the step is interactive. */
|
|
55
|
+
linear?: boolean;
|
|
56
|
+
/** Click handler for interactive (non-linear) steps. */
|
|
57
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
58
|
+
/** Layout orientation for the step content. */
|
|
59
|
+
orientation?: 'horizontal' | 'vertical';
|
|
60
|
+
/** Ref forwarded to the step container element. */
|
|
61
|
+
ref?: Ref<HTMLDivElement>;
|
|
62
|
+
/** Title displayed when the step is active. */
|
|
63
|
+
title?: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @component Step
|
|
67
|
+
* @description
|
|
68
|
+
* Renders a single step node used by `ProgressStepper`.
|
|
69
|
+
* - When `linear` is `true`, renders a static `Node`; when `false`, renders an interactive `Fab`.
|
|
70
|
+
* - When `active` is `true`, the step displays its `title` and `description`.
|
|
71
|
+
*
|
|
72
|
+
* @param {StepProps} props - Props for configuring appearance and behavior.
|
|
73
|
+
* @returns {JSX.Element} The rendered step element.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```tsx
|
|
77
|
+
* import { Step } from '@/src';
|
|
78
|
+
*
|
|
79
|
+
* const MyStep = () => (
|
|
80
|
+
* <Step
|
|
81
|
+
* active={true}
|
|
82
|
+
* color="primary"
|
|
83
|
+
* title="Step Title"
|
|
84
|
+
* description="Detailed description of the step content."
|
|
85
|
+
* icon={faMugHot}
|
|
86
|
+
* />
|
|
87
|
+
* );
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
declare const Step: FC<StepProps>;
|
|
91
|
+
export { Step };
|
|
92
|
+
export type { StepClasses };
|
|
93
|
+
//# sourceMappingURL=Step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../src/progress-stepper/Step.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,cAAc,EACd,EAAE,EACF,UAAU,EACV,SAAS,EAET,GAAG,EACJ,MAAM,OAAO,CAAC;AAGf,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAI/D;;GAEG;AACH,UAAU,WAAW;IACnB,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,IAAI,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAChC,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;GAQG;AACH,KAAK,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnF;;;;GAIG;AACH,UAAU,SAAU,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;IACvF,qEAAqE;IACrE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,uCAAuC;IACvC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sEAAsE;IACtE,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,+CAA+C;IAC/C,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,mDAAmD;IACnD,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqCD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CA8FvB,CAAC;AAIF,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Connector } from './Connector';
|
|
2
|
+
import type { ConnectorClasses } from './Connector';
|
|
3
|
+
import { ProgressStepper } from './ProgressStepper';
|
|
4
|
+
import type { ProgressStepperClasses } from './ProgressStepper';
|
|
5
|
+
import { Step } from './Step';
|
|
6
|
+
import type { StepClasses } from './Step';
|
|
7
|
+
import type { StepType } from './ProgressStepper';
|
|
8
|
+
export { Connector, ProgressStepper, Step };
|
|
9
|
+
export type { ConnectorClasses, ProgressStepperClasses, StepClasses, StepType };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/progress-stepper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import type { FC, HTMLAttributes, MouseEvent, Ref } from 'react';
|
|
2
|
+
import type { IconDefinition } from '@fortawesome/free-solid-svg-icons';
|
|
3
|
+
/** Option data consumed by the Select component. */
|
|
4
|
+
interface Option {
|
|
5
|
+
/** Value used for selection state and form submission. */
|
|
6
|
+
value: string;
|
|
7
|
+
/** Visible label shown in the dropdown. */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Optional icon rendered alongside the label. */
|
|
10
|
+
icon?: IconDefinition;
|
|
11
|
+
}
|
|
12
|
+
/** Optional class name hooks for the Select component internals. */
|
|
13
|
+
interface SelectClasses {
|
|
14
|
+
/** Class names applied to the outer container. */
|
|
15
|
+
container?: string;
|
|
16
|
+
/** Class names applied to the chevron icon. */
|
|
17
|
+
icon?: string;
|
|
18
|
+
/** Class names applied to the icon wrapper. */
|
|
19
|
+
iconContainer?: string;
|
|
20
|
+
/** Class names applied to the label above the control. */
|
|
21
|
+
label?: string;
|
|
22
|
+
/** Class names applied to the placeholder value. */
|
|
23
|
+
placeholder?: string;
|
|
24
|
+
/** Class names applied to the option row and option icon. */
|
|
25
|
+
option?: {
|
|
26
|
+
root?: string;
|
|
27
|
+
icon?: string;
|
|
28
|
+
};
|
|
29
|
+
/** Class names applied to the dropdown list container. */
|
|
30
|
+
optionsContainer?: string;
|
|
31
|
+
/** Class names applied to the root wrapper. */
|
|
32
|
+
root?: string;
|
|
33
|
+
}
|
|
34
|
+
/** Props for the Select component. */
|
|
35
|
+
interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'className'> {
|
|
36
|
+
/** Class name hooks for the internal elements. */
|
|
37
|
+
classes?: SelectClasses;
|
|
38
|
+
/** Initial value used when the component is uncontrolled. */
|
|
39
|
+
defaultValue?: string;
|
|
40
|
+
/** Whether the select is disabled. */
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
/** Label rendered above the select trigger. */
|
|
43
|
+
label?: string;
|
|
44
|
+
/** Name applied to the hidden input for form integration. */
|
|
45
|
+
name?: string;
|
|
46
|
+
/** Callback fired when an option is selected. */
|
|
47
|
+
onChange?: (event: MouseEvent<HTMLLIElement>) => void;
|
|
48
|
+
/** Available options to display in the dropdown. */
|
|
49
|
+
options?: Option[];
|
|
50
|
+
/** Placeholder shown when no selection is active. */
|
|
51
|
+
placeholder?: string;
|
|
52
|
+
/** Ref forwarded to the root wrapper. */
|
|
53
|
+
ref?: Ref<HTMLDivElement>;
|
|
54
|
+
/** Keyboard tab index for the select trigger and options. */
|
|
55
|
+
tabIndex?: number;
|
|
56
|
+
/** Visual treatment for the dropdown. */
|
|
57
|
+
variant?: 'outline' | 'filled';
|
|
58
|
+
/** Controlled selected value. */
|
|
59
|
+
value?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Select dropdown component.
|
|
63
|
+
*
|
|
64
|
+
* Renders a styled dropdown menu for selecting an option from a list.
|
|
65
|
+
* Supports both controlled and uncontrolled usage, keyboard navigation, and optional icons for options.
|
|
66
|
+
*
|
|
67
|
+
* - Controlled: Provide `value` and `onChange` props to manage selection state externally.
|
|
68
|
+
* - Uncontrolled: Provide `defaultValue` for initial selection and let the component manage state internally.
|
|
69
|
+
*
|
|
70
|
+
* @param {SelectProps} props - The props for the Select component.
|
|
71
|
+
* @returns {JSX.Element} The rendered select dropdown.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```tsx
|
|
75
|
+
* import { Select } from '@/src/select/Select';
|
|
76
|
+
*
|
|
77
|
+
* function App() {
|
|
78
|
+
* const options = [
|
|
79
|
+
* { value: 'option1', label: 'Option 1' },
|
|
80
|
+
* { value: 'option2', label: 'Option 2', icon: faStar },
|
|
81
|
+
* ];
|
|
82
|
+
*
|
|
83
|
+
* return (
|
|
84
|
+
* <Select
|
|
85
|
+
* label="Choose an option"
|
|
86
|
+
* options={options}
|
|
87
|
+
* placeholder="Select an option"
|
|
88
|
+
* />
|
|
89
|
+
* );
|
|
90
|
+
* ```
|
|
91
|
+
*
|
|
92
|
+
* @see Option
|
|
93
|
+
* @see SelectProps
|
|
94
|
+
*/
|
|
95
|
+
declare const Select: FC<SelectProps>;
|
|
96
|
+
export { Select };
|
|
97
|
+
export type { SelectClasses };
|
|
98
|
+
//# sourceMappingURL=Select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/select/Select.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAIjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAMxE,oDAAoD;AACpD,UAAU,MAAM;IACd,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,oEAAoE;AACpE,UAAU,aAAa;IACrB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sCAAsC;AACtC,UAAU,WAAY,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,WAAW,CAAC;IAC1F,kDAAkD;IAClD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACtD,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC/B,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,QAAA,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CA6J3B,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/select/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { AnchorHTMLAttributes, FC, MouseEvent, ReactNode, Ref } from 'react';
|
|
2
|
+
import type { TypographyColor, TypographyProps as TypographyComponentProps, TypographyVariant } from '@/src/typography/Typography';
|
|
3
|
+
/**
|
|
4
|
+
* Optional class name overrides for the anchor wrapper and Typography content.
|
|
5
|
+
*/
|
|
6
|
+
interface LinkClasses {
|
|
7
|
+
/** Extra classes applied to the outer anchor element. */
|
|
8
|
+
anchor?: string;
|
|
9
|
+
/** Extra classes applied to the inner Typography element. */
|
|
10
|
+
typography?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Typography props allowed through Link after excluding anchor-specific fields.
|
|
14
|
+
*/
|
|
15
|
+
type TypographyProps = Omit<TypographyComponentProps, 'className' | 'color' | 'ref' | 'variant' | 'target' | 'href' | 'onClick'>;
|
|
16
|
+
/**
|
|
17
|
+
* Props for the Link component, combining anchor behavior with Typography styling.
|
|
18
|
+
*/
|
|
19
|
+
interface LinkProps extends TypographyProps {
|
|
20
|
+
/** Additional props forwarded to the anchor element. */
|
|
21
|
+
anchorProps?: AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
22
|
+
/** Ref for the outer anchor element. */
|
|
23
|
+
anchorRef?: Ref<HTMLAnchorElement>;
|
|
24
|
+
/** Content rendered inside the link. */
|
|
25
|
+
children?: ReactNode;
|
|
26
|
+
/** Class overrides for the anchor and Typography elements. */
|
|
27
|
+
classes?: LinkClasses;
|
|
28
|
+
/** Typography color variant applied to the inner text. */
|
|
29
|
+
color?: TypographyColor;
|
|
30
|
+
/** Destination URL for the link. */
|
|
31
|
+
href?: string;
|
|
32
|
+
/** Click handler attached to the anchor element. */
|
|
33
|
+
onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
|
|
34
|
+
/** Target browsing context for the anchor element. */
|
|
35
|
+
target?: string;
|
|
36
|
+
/** Typography variant used to choose the rendered text style. */
|
|
37
|
+
variant?: TypographyVariant;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Link component that pairs a native anchor with the Typography system.
|
|
41
|
+
*
|
|
42
|
+
* Use this when you want link behavior, theme-aware text styling, and the
|
|
43
|
+
* same variant handling used throughout the typography atoms. The component
|
|
44
|
+
* keeps anchor concerns on the outer element and typography concerns on the
|
|
45
|
+
* inner text, so you can style each layer independently.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* import { Link } from '@/src/typography';
|
|
50
|
+
*
|
|
51
|
+
* export function ContactLinks() {
|
|
52
|
+
* return (
|
|
53
|
+
* <div className="mg:flex mg:flex-col mg:gap-3">
|
|
54
|
+
* <Link
|
|
55
|
+
* href="mailto:hello@example.com"
|
|
56
|
+
* variant="h3"
|
|
57
|
+
* color="primary"
|
|
58
|
+
* classes={{
|
|
59
|
+
* anchor: 'mg:inline-flex',
|
|
60
|
+
* typography: 'mg:font-semibold',
|
|
61
|
+
* }}
|
|
62
|
+
* >
|
|
63
|
+
* hello@example.com
|
|
64
|
+
* </Link>
|
|
65
|
+
*
|
|
66
|
+
* <Link
|
|
67
|
+
* href="https://example.com/projects"
|
|
68
|
+
* target="_blank"
|
|
69
|
+
* rel="noreferrer"
|
|
70
|
+
* variant="base"
|
|
71
|
+
* color="secondary"
|
|
72
|
+
* anchorProps={{
|
|
73
|
+
* 'aria-label': 'Open projects page in a new tab',
|
|
74
|
+
* }}
|
|
75
|
+
* >
|
|
76
|
+
* View projects
|
|
77
|
+
* </Link>
|
|
78
|
+
* </div>
|
|
79
|
+
* );
|
|
80
|
+
* }
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
declare const Link: FC<LinkProps>;
|
|
84
|
+
export { Link };
|
|
85
|
+
export type { LinkClasses };
|
|
86
|
+
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/typography/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAElF,OAAO,KAAK,EAGV,eAAe,EACf,eAAe,IAAI,wBAAwB,EAC3C,iBAAiB,EAClB,MAAM,6BAA6B,CAAC;AAarC;;GAEG;AACH,UAAU,WAAW;IACnB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,KAAK,eAAe,GAAG,IAAI,CACzB,wBAAwB,EACxB,WAAW,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAC1E,CAAC;AAEF;;GAEG;AACH,UAAU,SAAU,SAAQ,eAAe;IACzC,wDAAwD;IACxD,WAAW,CAAC,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACtD,wCAAwC;IACxC,SAAS,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACnC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACzD,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAgEvB,CAAC;AAIF,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import type { HTMLAttributes, JSX, ReactNode, Ref } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Number of lines to clamp text to.
|
|
4
|
+
* Used for truncating text with CSS line clamping utilities.
|
|
5
|
+
* Valid values: 1 to 10.
|
|
6
|
+
*/
|
|
7
|
+
type ClampLine = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
|
|
8
|
+
/**
|
|
9
|
+
* TypographyColor options for Typography text.
|
|
10
|
+
* Determines the text color utility class applied.
|
|
11
|
+
*
|
|
12
|
+
* - 'black': Solid black color
|
|
13
|
+
* - 'primary': Main foreground color
|
|
14
|
+
* - 'secondary': Secondary color
|
|
15
|
+
* - 'accent': Accent color
|
|
16
|
+
* - 'subtle': Subtle/less prominent color
|
|
17
|
+
* - 'inverse': For use on dark backgrounds
|
|
18
|
+
* - 'white': Solid white color
|
|
19
|
+
*/
|
|
20
|
+
type TypographyColor = 'active' | 'black' | 'primary' | 'secondary' | 'accent' | 'subtle' | 'inverse' | 'white';
|
|
21
|
+
/**
|
|
22
|
+
* Heading tag variants for Typography.
|
|
23
|
+
* Determines which HTML heading element is rendered.
|
|
24
|
+
* Valid values: 'h1' through 'h6'.
|
|
25
|
+
*/
|
|
26
|
+
type HeadingVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
27
|
+
/**
|
|
28
|
+
* List of all valid heading variants for Typography.
|
|
29
|
+
* Used internally for type checks and rendering.
|
|
30
|
+
* @see HeadingVariant
|
|
31
|
+
*/
|
|
32
|
+
declare const headingVariants: HeadingVariant[];
|
|
33
|
+
/**
|
|
34
|
+
* Paragraph style variants for Typography.
|
|
35
|
+
* Determines the text size and style for paragraphs and spans.
|
|
36
|
+
* Valid values: 'base', 'small', 'large'.
|
|
37
|
+
*/
|
|
38
|
+
type ParagraphVariant = 'base' | 'small' | 'large';
|
|
39
|
+
/**
|
|
40
|
+
* Combined heading and paragraph variants supported by Typography.
|
|
41
|
+
* Used internally for responsive text sizing and variant lookups.
|
|
42
|
+
*/
|
|
43
|
+
type TypographyVariant = HeadingVariant | ParagraphVariant;
|
|
44
|
+
/**
|
|
45
|
+
* List of all valid paragraph variants for Typography.
|
|
46
|
+
* Used internally for type checks and rendering.
|
|
47
|
+
* @see ParagraphVariant
|
|
48
|
+
*/
|
|
49
|
+
declare const paragraphVariants: ParagraphVariant[];
|
|
50
|
+
/**
|
|
51
|
+
* Common base props for Typography components.
|
|
52
|
+
*/
|
|
53
|
+
interface BaseProps {
|
|
54
|
+
/** Text alignment. */
|
|
55
|
+
align?: 'left' | 'center' | 'right' | 'justify';
|
|
56
|
+
/** Whether to use bold font weight. */
|
|
57
|
+
bold?: boolean;
|
|
58
|
+
/** Additional CSS classes to apply. */
|
|
59
|
+
className?: string;
|
|
60
|
+
/** Text color variant. */
|
|
61
|
+
color?: TypographyColor;
|
|
62
|
+
/** Number of lines to clamp, truncating overflow. */
|
|
63
|
+
clamp?: ClampLine;
|
|
64
|
+
/** Content to render inside the component. */
|
|
65
|
+
children?: ReactNode;
|
|
66
|
+
/** Removes the default vertical padding when true. */
|
|
67
|
+
removePadding?: boolean;
|
|
68
|
+
/** Renders the content as a `span` instead of a heading or paragraph. */
|
|
69
|
+
span?: boolean;
|
|
70
|
+
/** Truncates text with an ellipsis when it overflows. */
|
|
71
|
+
truncate?: boolean;
|
|
72
|
+
/** Underlines the text. */
|
|
73
|
+
underline?: boolean;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Props for heading elements (h1-h6) in Typography.
|
|
77
|
+
*/
|
|
78
|
+
interface HeadingProps extends HTMLAttributes<HTMLHeadingElement> {
|
|
79
|
+
/** React ref for the heading element. */
|
|
80
|
+
ref?: Ref<HTMLHeadingElement>;
|
|
81
|
+
/** Specifies which heading tag to render (`h1`-`h6`). */
|
|
82
|
+
variant?: HeadingVariant;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Props for paragraph elements in Typography.
|
|
86
|
+
*/
|
|
87
|
+
interface ParagraphProps extends HTMLAttributes<HTMLParagraphElement> {
|
|
88
|
+
/** React ref for the paragraph element. */
|
|
89
|
+
ref?: Ref<HTMLParagraphElement>;
|
|
90
|
+
/** Paragraph style variant (`base`, `small`, or `large`). */
|
|
91
|
+
variant?: ParagraphVariant;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Props for span elements in Typography.
|
|
95
|
+
*/
|
|
96
|
+
interface SpanProps extends HTMLAttributes<HTMLSpanElement> {
|
|
97
|
+
/** React ref for the span element. */
|
|
98
|
+
ref?: Ref<HTMLSpanElement>;
|
|
99
|
+
/** Span style variant (`base`, `small`, or `large`). */
|
|
100
|
+
variant?: ParagraphVariant;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* All valid props for the Typography component.
|
|
104
|
+
*
|
|
105
|
+
* Combines base props with props for headings, paragraphs, and spans.
|
|
106
|
+
*
|
|
107
|
+
* @see BaseProps
|
|
108
|
+
* @see HeadingProps
|
|
109
|
+
* @see ParagraphProps
|
|
110
|
+
* @see SpanProps
|
|
111
|
+
*/
|
|
112
|
+
type TypographyProps = BaseProps & (HeadingProps | ParagraphProps | SpanProps);
|
|
113
|
+
/**
|
|
114
|
+
* Typography component for rendering headings, paragraphs, or spans with flexible styling.
|
|
115
|
+
*
|
|
116
|
+
* Renders the appropriate HTML element (h1-h6, p, or span) based on the `variant` and `span` props.
|
|
117
|
+
* Applies utility classes for alignment, color, font weight, truncation, underline, and line clamping.
|
|
118
|
+
*
|
|
119
|
+
* @param {TypographyProps} props - Props for controlling typography style and element type.
|
|
120
|
+
* @returns {JSX.Element} The rendered typography element.
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```tsx
|
|
124
|
+
* import { Typography } from './Typography';
|
|
125
|
+
*
|
|
126
|
+
* function MyComponent() {
|
|
127
|
+
* return (
|
|
128
|
+
* <div>
|
|
129
|
+
* <Typography variant="h1" color="primary" bold>
|
|
130
|
+
* Heading 1
|
|
131
|
+
* </Typography>
|
|
132
|
+
* <Typography variant="base" color="secondary" clamp={3}>
|
|
133
|
+
* This is a paragraph that will be clamped to 3 lines if it exceeds the limit.
|
|
134
|
+
* </Typography>
|
|
135
|
+
* </div>
|
|
136
|
+
* );
|
|
137
|
+
* }
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
declare function Typography(props: HeadingProps & BaseProps): JSX.Element;
|
|
141
|
+
declare function Typography(props: ParagraphProps & BaseProps): JSX.Element;
|
|
142
|
+
declare function Typography(props: SpanProps & BaseProps): JSX.Element;
|
|
143
|
+
declare namespace Typography {
|
|
144
|
+
var displayName: string;
|
|
145
|
+
}
|
|
146
|
+
export { headingVariants, paragraphVariants, Typography };
|
|
147
|
+
export type { HeadingVariant, ParagraphVariant, TypographyColor, TypographyProps, TypographyVariant, };
|
|
148
|
+
//# sourceMappingURL=Typography.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Typography.d.ts","sourceRoot":"","sources":["../../../src/typography/Typography.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Typography } from './Typography';
|
|
2
|
+
import type { HeadingVariant, ParagraphVariant, TypographyVariant, TypographyColor } from './Typography';
|
|
3
|
+
import { Link } from './Link';
|
|
4
|
+
import type { LinkClasses } from './Link';
|
|
5
|
+
export { Link, Typography };
|
|
6
|
+
export type { HeadingVariant, LinkClasses, ParagraphVariant, TypographyColor, TypographyVariant };
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/typography/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC5B,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.d.ts","sourceRoot":"","sources":["../../../src/utils/capitalize.ts"],"names":[],"mappings":"AAAA,iBAAS,UAAU,CAAC,KAAK,EAAE,MAAM,UAIhC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { useSyncExternalStore as e } from "react";
|
|
2
|
+
//#endregion
|
|
3
|
+
//#region lib/useBreakpoints.ts
|
|
4
|
+
var t = { theme: { breakpoints: {
|
|
5
|
+
xs: "30rem",
|
|
6
|
+
sm: "40rem",
|
|
7
|
+
md: "48rem",
|
|
8
|
+
lg: "64rem",
|
|
9
|
+
xl: "80rem",
|
|
10
|
+
"2xl": "96rem"
|
|
11
|
+
} } }.theme.breakpoints, n = Object.keys(t), r = n[0];
|
|
12
|
+
function i(e) {
|
|
13
|
+
return Number(e.replace("rem", "")) * Number.parseFloat(getComputedStyle(document.documentElement).fontSize);
|
|
14
|
+
}
|
|
15
|
+
function a() {
|
|
16
|
+
if (typeof window > "u") return r;
|
|
17
|
+
let e = r;
|
|
18
|
+
return Object.entries(t).forEach(([t, n]) => {
|
|
19
|
+
window.innerWidth >= i(n) && (e = t);
|
|
20
|
+
}), e;
|
|
21
|
+
}
|
|
22
|
+
function o(e) {
|
|
23
|
+
return window.addEventListener("resize", e), window.addEventListener("orientationchange", e), window.visualViewport?.addEventListener("resize", e), () => {
|
|
24
|
+
window.removeEventListener("resize", e), window.removeEventListener("orientationchange", e), window.visualViewport?.removeEventListener("resize", e);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
function s() {
|
|
28
|
+
let i = e(o, a, () => r), s = n.indexOf(i);
|
|
29
|
+
return {
|
|
30
|
+
breakpoint: i,
|
|
31
|
+
breakpoints: t,
|
|
32
|
+
isAtLeast: (e) => s >= n.indexOf(e),
|
|
33
|
+
isBelow: (e) => s < n.indexOf(e)
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { s as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("react");var t={theme:{breakpoints:{xs:`30rem`,sm:`40rem`,md:`48rem`,lg:`64rem`,xl:`80rem`,"2xl":`96rem`}}}.theme.breakpoints,n=Object.keys(t),r=n[0];function i(e){return Number(e.replace(`rem`,``))*Number.parseFloat(getComputedStyle(document.documentElement).fontSize)}function a(){if(typeof window>`u`)return r;let e=r;return Object.entries(t).forEach(([t,n])=>{window.innerWidth>=i(n)&&(e=t)}),e}function o(e){return window.addEventListener(`resize`,e),window.addEventListener(`orientationchange`,e),window.visualViewport?.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`orientationchange`,e),window.visualViewport?.removeEventListener(`resize`,e)}}function s(){let i=(0,e.useSyncExternalStore)(o,a,()=>r),s=n.indexOf(i);return{breakpoint:i,breakpoints:t,isAtLeast:e=>s>=n.indexOf(e),isBelow:e=>s<n.indexOf(e)}}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return s}});
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@arctura/atomics",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"packageManager": "yarn@4.11.0",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"repository": {
|
|
10
|
+
"url": "https://github.com/marcomg-byte/arctura"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"require": "./dist/index.cjs"
|
|
17
|
+
},
|
|
18
|
+
"./hooks": {
|
|
19
|
+
"types": "./dist/lib/hooks.d.ts",
|
|
20
|
+
"import": "./dist/hooks.js",
|
|
21
|
+
"require": "./dist/hooks.cjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"sideEffects": false,
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "vite build && tsc -p tsconfig.json",
|
|
30
|
+
"clean": "rimraf dist",
|
|
31
|
+
"lint": "eslint .",
|
|
32
|
+
"lint:fix": "eslint . --fix",
|
|
33
|
+
"test": "vitest run",
|
|
34
|
+
"test:cov": "vitest run --coverage",
|
|
35
|
+
"test:debug": "vitest --inspect-brk --no-file-parallelism",
|
|
36
|
+
"test:ui": "vitest --ui",
|
|
37
|
+
"test:watch": "vitest watch",
|
|
38
|
+
"typecheck": "tsc -p tsconfig.eslint.json"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@fortawesome/fontawesome-svg-core": "^7.1.0",
|
|
42
|
+
"@fortawesome/free-solid-svg-icons": "^7.1.0",
|
|
43
|
+
"@fortawesome/react-fontawesome": "^3.1.0",
|
|
44
|
+
"classnames": "^2.5.1",
|
|
45
|
+
"embla-carousel": "^8.6.0",
|
|
46
|
+
"embla-carousel-fade": "^8.6.0",
|
|
47
|
+
"embla-carousel-react": "^8.6.0",
|
|
48
|
+
"react": "^19.2.7",
|
|
49
|
+
"react-dom": "^19.2.7",
|
|
50
|
+
"tailwind-merge": "^3.4.0"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@testing-library/dom": "^10.4.1",
|
|
54
|
+
"@testing-library/react": "^16.3.2",
|
|
55
|
+
"@types/node": "^25.9.3",
|
|
56
|
+
"@types/react": "^19.2.14",
|
|
57
|
+
"@types/react-dom": "^19",
|
|
58
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
59
|
+
"@vitest/coverage-v8": "4.1.8",
|
|
60
|
+
"eslint": "^9.39.1",
|
|
61
|
+
"jsdom": "^29.1.1",
|
|
62
|
+
"rimraf": "^6.1.3",
|
|
63
|
+
"typescript": "^6.0.3",
|
|
64
|
+
"vite": "^8.0.12",
|
|
65
|
+
"vitest": "4.1.8"
|
|
66
|
+
}
|
|
67
|
+
}
|