@fluidattacks/design 1.2.18 → 1.2.20

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.
@@ -0,0 +1,13 @@
1
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="0" height="0">
2
+ <defs>
3
+ <linearGradient id="gradient-01" gradientTransform="rotate(-45)">
4
+ <stop stop-color="#F32637"/>
5
+ <stop offset="1" stop-color="#B8075D"/>
6
+ </linearGradient>
7
+
8
+ <linearGradient id="gradient-02" gradientTransform="rotate(-45)">
9
+ <stop stop-color="#FCFCFD"/>
10
+ <stop offset="1" stop-color="#667085"/>
11
+ </linearGradient>
12
+ </defs>
13
+ </svg>
@@ -85,7 +85,6 @@ type TSpacing = keyof DefaultTheme["spacing"];
85
85
  type TShadows = keyof DefaultTheme["shadows"];
86
86
  type TIconSize = "xl" | "lg" | "md" | "sm" | "xs" | "xxs";
87
87
  type TMode = "dark" | "light";
88
- type TResolution = "desktop" | "mobile";
89
88
  interface IPaddingModifiable {
90
89
  padding?: [TSpacing, TSpacing, TSpacing, TSpacing];
91
90
  px?: TSpacing;
@@ -175,4 +174,4 @@ interface IInteractionModifiable {
175
174
  shadowHover?: TShadows;
176
175
  }
177
176
  type TModifiable = IBorderModifiable & IDisplayModifiable & IInteractionModifiable & IMarginModifiable & IPaddingModifiable & IPositionModifiable & ITextModifiable;
178
- export type { DefaultTheme as ThemeType, TSpacing, IPaddingModifiable, IMarginModifiable, IDisplayModifiable, IIconModifiable, ITextModifiable, IInteractionModifiable, IPositionModifiable, IBorderModifiable, ISizeModifiable, TIconSize, TModifiable, TMode, TResolution, TSize, };
177
+ export type { DefaultTheme as ThemeType, TSpacing, IPaddingModifiable, IMarginModifiable, IDisplayModifiable, IIconModifiable, ITextModifiable, IInteractionModifiable, IPositionModifiable, IBorderModifiable, ISizeModifiable, TIconSize, TModifiable, TMode, TSize, };
@@ -1,14 +1,9 @@
1
- import { TType, TVariant } from './types';
1
+ import { TVariant } from './types';
2
2
  interface IStyledButtonProps {
3
- $bold: boolean;
4
- $resolution?: TType;
5
3
  $variant?: TVariant;
6
4
  }
7
- declare const StyledWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
8
- ref?: ((instance: HTMLDivElement | null) => void) | import('react').RefObject<HTMLDivElement> | null | undefined;
9
- }>, never>, Partial<IStyledButtonProps>>> & string;
10
5
  declare const StyledButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<Omit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, keyof import('../@core').IPaddingModifiable | keyof import('../@core').IMarginModifiable | keyof import('../@core').IPositionModifiable | keyof import('../@core').IBorderModifiable | keyof import('../@core').IDisplayModifiable | keyof import('../@core').ITextModifiable | keyof import('../@core').IInteractionModifiable> & import('../@core').IBorderModifiable & import('../@core').IDisplayModifiable & import('../@core').IInteractionModifiable & import('../@core').IMarginModifiable & import('../@core').IPaddingModifiable & import('../@core').IPositionModifiable & import('../@core').ITextModifiable, "ref"> & {
11
6
  ref?: ((instance: HTMLButtonElement | null) => void) | import('react').RefObject<HTMLButtonElement> | null | undefined;
12
7
  }, IStyledButtonProps>> & string;
13
8
  export type { IStyledButtonProps, TVariant };
14
- export { StyledButton, StyledWrapper };
9
+ export { StyledButton };
@@ -1,7 +1,6 @@
1
1
  import { ButtonHTMLAttributes } from 'react';
2
- import { IBorderModifiable, IDisplayModifiable, IIconModifiable, IMarginModifiable, IPaddingModifiable, TMode, TResolution } from '../@core';
2
+ import { IBorderModifiable, IDisplayModifiable, IIconModifiable, IMarginModifiable, IPaddingModifiable, TMode } from '../@core';
3
3
  import { TPlace } from '../tooltip/types';
4
- type TType = TResolution | "platform";
5
4
  type TVariant = "primary" | "primaryWeb" | "secondary" | "secondaryWeb" | "tertiary" | "ghost" | "ghostWeb" | "link";
6
5
  /**
7
6
  * Button component props.
@@ -13,7 +12,6 @@ type TVariant = "primary" | "primaryWeb" | "secondary" | "secondaryWeb" | "terti
13
12
  * @extends ButtonHTMLAttributes<HTMLButtonElement>
14
13
  * @property {boolean} [bold] Text bold for link variant.
15
14
  * @property {TMode} [mode] The background theme: dark or light.
16
- * @property {TType} [resolution] The page resolution: desktop, platform or mobile.
17
15
  * @property {string} [tooltip] Tooltip message.
18
16
  * @property {TPlace} [tooltipPlace] Tooltip message relative place.
19
17
  * @property {boolean} [underline] Text underlined for link variant.
@@ -22,11 +20,10 @@ type TVariant = "primary" | "primaryWeb" | "secondary" | "secondaryWeb" | "terti
22
20
  interface IButtonProps extends IBorderModifiable, IDisplayModifiable, IMarginModifiable, IPaddingModifiable, Partial<IIconModifiable>, ButtonHTMLAttributes<HTMLButtonElement> {
23
21
  bold?: boolean;
24
22
  mode?: TMode;
25
- resolution?: TType;
26
23
  showArrow?: boolean;
27
24
  tooltip?: string;
28
25
  tooltipPlace?: TPlace;
29
26
  underline?: boolean;
30
27
  variant?: TVariant;
31
28
  }
32
- export type { IButtonProps, TMode, TType, TVariant };
29
+ export type { IButtonProps, TMode, TVariant };
@@ -0,0 +1,3 @@
1
+ import { IMessageBannerProps } from './types';
2
+ declare const MessageBanner: import('react').ForwardRefExoticComponent<Readonly<IMessageBannerProps> & import('react').RefAttributes<unknown>>;
3
+ export { MessageBanner };
@@ -0,0 +1,6 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { IMessageBannerProps } from './types';
3
+ declare const config: Meta;
4
+ declare const Default: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, IMessageBannerProps>;
5
+ export default config;
6
+ export { Default };
@@ -0,0 +1,2 @@
1
+ declare const Button: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
2
+ export { Button };
@@ -0,0 +1,22 @@
1
+ import { IconName } from '@fortawesome/free-solid-svg-icons';
2
+ import { Property } from 'csstype';
3
+ import { MouseEventHandler } from 'react';
4
+ /**
5
+ * Message banner props.
6
+ * @extends IMessageBannerProps
7
+ * @property {JSX.Element | string} [message] Banner text.
8
+ * @property {string} [buttonText] Text for action button.
9
+ * @property {FontWeight} [buttonFontWeight] Weight for button text.
10
+ * @property {IconName} [icon] Icon for action button.
11
+ * @property {Function} [onClickButton] Action for action button.
12
+ * @property {Function} [onClose] Extra action when banner close.
13
+ */
14
+ interface IMessageBannerProps {
15
+ message: JSX.Element | string;
16
+ buttonText?: string;
17
+ buttonFontWeight?: Property.FontWeight;
18
+ icon?: IconName;
19
+ onClickButton?: MouseEventHandler<HTMLButtonElement>;
20
+ onClose?: () => void;
21
+ }
22
+ export type { IMessageBannerProps };
@@ -0,0 +1,3 @@
1
+ import { ISearchBarProps } from './types';
2
+ declare const SearchBar: ({ items, placeholder, refine, query, }: Readonly<ISearchBarProps>) => JSX.Element;
3
+ export { SearchBar };
@@ -0,0 +1,7 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { ISearchBarProps } from './types';
3
+ declare const config: Meta;
4
+ declare const Default: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, ISearchBarProps>;
5
+ declare const EmptyState: import('@storybook/csf').AnnotatedStoryFn<import('@storybook/react').ReactRenderer, ISearchBarProps>;
6
+ export { Default, EmptyState };
7
+ export default config;
@@ -1,3 +1,3 @@
1
1
  import { IItemSearchingProps } from '../types';
2
- declare const ItemSearching: ({ icon, showIcon, title, }: Readonly<IItemSearchingProps>) => JSX.Element;
2
+ declare const ItemSearching: ({ hit, icon, showIcon, }: Readonly<IItemSearchingProps>) => JSX.Element;
3
3
  export { ItemSearching };
@@ -1,6 +1,15 @@
1
- declare const StyledItemSearching: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
2
- declare const IconWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
1
+ declare const StyledItemSearching: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, never>> & string;
2
+ declare const IconWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
+ ref?: ((instance: HTMLDivElement | null) => void) | import('react').RefObject<HTMLDivElement> | null | undefined;
4
+ }>, never>, never>> & string;
3
5
  declare const StyledSearchBox: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
- declare const StyledSearchBar: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
5
- declare const StyledDropdownItems: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
6
- export { IconWrapper, StyledDropdownItems, StyledItemSearching, StyledSearchBar, StyledSearchBox, };
6
+ declare const StyledSearchBar: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, never>> & string;
7
+ declare const StyledSearchInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>> & string;
8
+ declare const StyledSearchReset: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>> & string;
9
+ declare const StyledDropdownItems: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('styled-components').FastOmit<import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
10
+ ref?: ((instance: HTMLDivElement | null) => void) | import('react').RefObject<HTMLDivElement> | null | undefined;
11
+ }>, never>, {
12
+ $empty?: boolean;
13
+ $showHits?: boolean;
14
+ }>> & string;
15
+ export { IconWrapper, StyledDropdownItems, StyledItemSearching, StyledSearchBar, StyledSearchBox, StyledSearchInput, StyledSearchReset, };
@@ -1,13 +1,27 @@
1
1
  import { IIconModifiable } from '../@core';
2
+ type THit = Record<string, unknown>;
2
3
  /**
3
4
  * Item searching component props.
5
+ * @property {THit} hit The matched item of the search query.
4
6
  * @property {IconName} [icon] Icon to show with item.
5
7
  * @property {boolean} [showIcon] True if the item includes an icon.
6
- * @property {string} title The title of the search page.
7
8
  */
8
9
  interface IItemSearchingProps {
10
+ hit: THit;
9
11
  icon?: IIconModifiable["icon"];
10
12
  showIcon?: boolean;
11
- title: string;
12
13
  }
13
- export type { IItemSearchingProps };
14
+ /**
15
+ * Search bar component props.
16
+ * @property {THit[]} items The matched items returned from Algolia.
17
+ * @property {string} [placeholder] The search bar placeholder.
18
+ * @property {Function} refine A function to set a new query and searches.
19
+ * @property {string} query The query from the last search.
20
+ */
21
+ interface ISearchBarProps {
22
+ items: THit[];
23
+ placeholder?: string;
24
+ refine: (value: string) => void;
25
+ query: string;
26
+ }
27
+ export type { IItemSearchingProps, ISearchBarProps };
@@ -0,0 +1,4 @@
1
+ import { IItemSearchingProps } from './types';
2
+ declare const itemsSuggested: IItemSearchingProps[];
3
+ declare const itemContact: IItemSearchingProps;
4
+ export { itemContact, itemsSuggested };
@@ -0,0 +1,3 @@
1
+ declare const StyledTab: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, never>> & string;
2
+ declare const StyledTabs: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
3
+ export { StyledTab, StyledTabs };
@@ -7,6 +7,7 @@ export * from './components/container';
7
7
  export * from './components/icon';
8
8
  export * from './components/language-selector';
9
9
  export * from './components/logo';
10
+ export * from './components/search-bar';
10
11
  export * from './components/toggle-buttons';
11
12
  export * from './components/tooltip';
12
13
  export * from './components/typography';
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-\[500px\]{height:500px}.max-h-min{max-height:-moz-min-content;max-height:min-content}.max-w-72{max-width:18rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-4{padding:1rem}.px-12{padding-left:3rem;padding-right:3rem}.px-8{padding-left:2rem;padding-right:2rem}.py-4{padding-top:1rem;padding-bottom:1rem}.align-middle{vertical-align:middle}.text-sm{font-size:.875rem;line-height:1.25rem}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@property --animate-position{syntax: "<angle>"; initial-value: 45deg; inherits: false;}@property --border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@property --color-1{syntax: "<color>"; initial-value: #f32637; inherits: false;}@property --color-2{syntax: "<color>"; initial-value: #b8075d; inherits: false;}@property --btn-padding-x{syntax: "<length>"; initial-value: 16px; inherits: false;}@property --btn-padding-y{syntax: "<length>"; initial-value: 10px; inherits: false;}@property --btn-spacing{syntax: "<length>"; initial-value: 8px; inherits: false;}@property --grid-columns{syntax: "<number>"; initial-value: 12; inherits: false;}@property --grid-width{syntax: "<length>"; initial-value: 1440px; inherits: false;}@property --angle-grad{syntax: "<angle>"; initial-value: 45deg; inherits: false;}@property --opacity-grad{syntax: "<number>"; initial-value: 0; inherits: false;}@keyframes spinAnimation{to{--border-angle: 360deg}}@keyframes gradientAnimation{0%{--animate-position: 45deg}33%{--animate-position: -50deg}66%{--animate-position: -100deg}to{--animate-position: 45deg}}.icon-gradient{background-image:radial-gradient(#b8075d,#b8075d,#b8075d,#f32637,#b8075d,#fff,#fff,#fff,#fff);-webkit-text-fill-color:transparent}
1
+ *,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-\[500px\]{height:500px}.w-full{width:100%}.max-w-72{max-width:18rem}.max-w-min{max-width:-moz-min-content;max-width:min-content}.flex-shrink{flex-shrink:1}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.gap-4{gap:1rem}.self-stretch{align-self:stretch}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity))}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.px-12{padding-left:3rem;padding-right:3rem}.px-8{padding-left:2rem;padding-right:2rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-\[90px\]{padding-top:90px;padding-bottom:90px}.align-middle{vertical-align:middle}.text-sm{font-size:.875rem;line-height:1.25rem}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}@property --animate-position{syntax: "<angle>"; initial-value: 45deg; inherits: false;}@property --border-angle{syntax: "<angle>"; initial-value: 0deg; inherits: false;}@property --color-1{syntax: "<color>"; initial-value: #f32637; inherits: false;}@property --color-2{syntax: "<color>"; initial-value: #b8075d; inherits: false;}@property --btn-padding-x{syntax: "<length>"; initial-value: 16px; inherits: false;}@property --btn-padding-y{syntax: "<length>"; initial-value: 10px; inherits: false;}@property --btn-spacing{syntax: "<length>"; initial-value: 8px; inherits: false;}@property --grid-columns{syntax: "<number>"; initial-value: 12; inherits: false;}@property --grid-width{syntax: "<length>"; initial-value: 1440px; inherits: false;}@property --angle-grad{syntax: "<angle>"; initial-value: 45deg; inherits: false;}@property --opacity-grad{syntax: "<number>"; initial-value: 0; inherits: false;}@keyframes spinAnimation{to{--border-angle: 360deg}}@keyframes gradientAnimation{0%{--animate-position: 45deg}33%{--animate-position: -50deg}66%{--animate-position: -100deg}to{--animate-position: 45deg}}
package/package.json CHANGED
@@ -16,6 +16,7 @@
16
16
  "styled-components": "6.1.13"
17
17
  },
18
18
  "devDependencies": {
19
+ "@storybook/addon-a11y": "8.3.6",
19
20
  "@storybook/addon-essentials": "8.3.6",
20
21
  "@storybook/addon-interactions": "8.3.6",
21
22
  "@storybook/addon-links": "8.3.6",
@@ -38,6 +39,7 @@
38
39
  "eslint-plugin-prettier": "5.2.1",
39
40
  "eslint-plugin-project-structure": "3.0.1",
40
41
  "eslint-plugin-react": "7.37.0",
42
+ "eslint-plugin-react-hooks": "5.0.0",
41
43
  "postcss": "8.4.47",
42
44
  "postcss-styled-syntax": "0.6.4",
43
45
  "remark-gfm": "4.0.0",
@@ -45,10 +47,10 @@
45
47
  "stylelint": "16.10.0",
46
48
  "stylelint-config-standard": "36.0.1",
47
49
  "tailwindcss": "3.4.13",
48
- "typescript": "5.6.2",
49
- "typescript-eslint": "8.10.0",
50
- "vite": "5.4.9",
51
- "vite-plugin-dts": "4.2.4"
50
+ "typescript": "5.6.3",
51
+ "typescript-eslint": "8.11.0",
52
+ "vite": "5.4.10",
53
+ "vite-plugin-dts": "4.3.0"
52
54
  },
53
55
  "files": [
54
56
  "README.md",
@@ -79,7 +81,7 @@
79
81
  "preview": "vite preview",
80
82
  "storybook": "storybook dev"
81
83
  },
82
- "version": "1.2.18",
84
+ "version": "1.2.20",
83
85
  "eslintConfig": {
84
86
  "extends": [
85
87
  "plugin:storybook/recommended"
@@ -1,3 +0,0 @@
1
- import { TVariant } from './types';
2
- declare const isPlatform: (variant?: TVariant) => boolean;
3
- export { isPlatform };