fiboui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/README.md +101 -0
  2. package/dist/content/Alert/index.d.ts +878 -0
  3. package/dist/content/Avatar/index.d.ts +886 -0
  4. package/dist/content/Badge/index.d.ts +887 -0
  5. package/dist/content/Image/index.d.ts +893 -0
  6. package/dist/content/Label/index.d.ts +879 -0
  7. package/dist/content/Progress/index.d.ts +898 -0
  8. package/dist/content/Skeleton/index.d.ts +879 -0
  9. package/dist/content/Spinner/index.d.ts +880 -0
  10. package/dist/content/Text/index.d.ts +878 -0
  11. package/dist/content/index.d.ts +9 -0
  12. package/dist/core/StateWrapper.d.ts +28 -0
  13. package/dist/core/builder.d.ts +50 -0
  14. package/dist/core/component.d.ts +7 -0
  15. package/dist/core/effects.d.ts +3 -0
  16. package/dist/core/icons.d.ts +11 -0
  17. package/dist/core/index.d.ts +5 -0
  18. package/dist/core/state.d.ts +37 -0
  19. package/dist/core/types.d.ts +51 -0
  20. package/dist/demo.d.ts +7 -0
  21. package/dist/effects-Co9C_Dyx.mjs +9 -0
  22. package/dist/examples/ScaffoldExamples.d.ts +3 -0
  23. package/dist/examples/StateExamples.d.ts +5 -0
  24. package/dist/index.d.ts +6 -0
  25. package/dist/index.esm.js +4622 -0
  26. package/dist/index.umd.js +251 -0
  27. package/dist/interactive/Button/index.d.ts +897 -0
  28. package/dist/interactive/Checkbox/index.d.ts +884 -0
  29. package/dist/interactive/Combobox/index.d.ts +898 -0
  30. package/dist/interactive/RadioGroup/index.d.ts +888 -0
  31. package/dist/interactive/Select/index.d.ts +895 -0
  32. package/dist/interactive/Switch/index.d.ts +881 -0
  33. package/dist/interactive/TextField/index.d.ts +892 -0
  34. package/dist/interactive/Textarea/index.d.ts +890 -0
  35. package/dist/interactive/index.d.ts +8 -0
  36. package/dist/layout/Center/index.d.ts +869 -0
  37. package/dist/layout/Column/index.d.ts +881 -0
  38. package/dist/layout/Container/index.d.ts +870 -0
  39. package/dist/layout/DashboardLayout/index.d.ts +870 -0
  40. package/dist/layout/Header/index.d.ts +870 -0
  41. package/dist/layout/Line/index.d.ts +872 -0
  42. package/dist/layout/Row/index.d.ts +879 -0
  43. package/dist/layout/Scaffold/index.d.ts +878 -0
  44. package/dist/layout/ScrollView/index.d.ts +879 -0
  45. package/dist/layout/Sidebar/index.d.ts +870 -0
  46. package/dist/layout/Spacer/index.d.ts +875 -0
  47. package/dist/layout/StakentComponents.d.ts +4 -0
  48. package/dist/layout/index.d.ts +11 -0
  49. package/dist/structure/Banner/index.d.ts +879 -0
  50. package/dist/structure/Box/index.d.ts +869 -0
  51. package/dist/structure/Card/index.d.ts +881 -0
  52. package/dist/structure/Collapse/index.d.ts +884 -0
  53. package/dist/structure/Grid/index.d.ts +1757 -0
  54. package/dist/structure/List/index.d.ts +888 -0
  55. package/dist/structure/Table/index.d.ts +895 -0
  56. package/dist/structure/Tags/index.d.ts +876 -0
  57. package/dist/structure/cards/AssetCard/index.d.ts +884 -0
  58. package/dist/structure/cards/CollectionCard/index.d.ts +880 -0
  59. package/dist/structure/cards/ContentCard/index.d.ts +884 -0
  60. package/dist/structure/cards/ProfileCard/index.d.ts +892 -0
  61. package/dist/structure/cards/index.d.ts +5 -0
  62. package/dist/structure/cards/variants/index.d.ts +3490 -0
  63. package/dist/structure/index.d.ts +9 -0
  64. package/dist/style.css +1 -0
  65. package/dist/theme/cupertino.d.ts +3 -0
  66. package/dist/theme/index.d.ts +5 -0
  67. package/dist/theme/material.d.ts +3 -0
  68. package/dist/theme/provider.d.ts +16 -0
  69. package/dist/theme/types.d.ts +57 -0
  70. package/dist/theme/web.d.ts +3 -0
  71. package/package.json +54 -0
  72. package/src/content/Alert/index.ts +110 -0
  73. package/src/content/Avatar/index.ts +116 -0
  74. package/src/content/Badge/index.ts +162 -0
  75. package/src/content/Image/index.ts +137 -0
  76. package/src/content/Label/index.ts +66 -0
  77. package/src/content/Progress/index.ts +378 -0
  78. package/src/content/Skeleton/index.ts +71 -0
  79. package/src/content/Spinner/index.ts +139 -0
  80. package/src/content/Text/index.ts +74 -0
  81. package/src/content/index.ts +9 -0
  82. package/src/core/StateWrapper.tsx +105 -0
  83. package/src/core/builder.ts +259 -0
  84. package/src/core/component.ts +49 -0
  85. package/src/core/effects.ts +27 -0
  86. package/src/core/icons.tsx +57 -0
  87. package/src/core/index.ts +5 -0
  88. package/src/core/state.ts +233 -0
  89. package/src/core/types.ts +62 -0
  90. package/src/demo.tsx +1045 -0
  91. package/src/examples/ScaffoldExamples.tsx +299 -0
  92. package/src/examples/StateExamples.tsx +149 -0
  93. package/src/index.ts +8 -0
  94. package/src/interactive/Button/index.ts +218 -0
  95. package/src/interactive/Checkbox/index.ts +145 -0
  96. package/src/interactive/Combobox/index.ts +278 -0
  97. package/src/interactive/RadioGroup/index.ts +124 -0
  98. package/src/interactive/Select/index.ts +227 -0
  99. package/src/interactive/Switch/index.ts +123 -0
  100. package/src/interactive/TextField/index.ts +200 -0
  101. package/src/interactive/Textarea/index.ts +129 -0
  102. package/src/interactive/index.ts +8 -0
  103. package/src/layout/Center/index.ts +34 -0
  104. package/src/layout/Column/index.ts +101 -0
  105. package/src/layout/Container/index.ts +28 -0
  106. package/src/layout/DashboardLayout/index.ts +106 -0
  107. package/src/layout/Header/index.ts +50 -0
  108. package/src/layout/Line/index.ts +41 -0
  109. package/src/layout/Row/index.ts +93 -0
  110. package/src/layout/Scaffold/index.ts +133 -0
  111. package/src/layout/ScrollView/index.ts +67 -0
  112. package/src/layout/Sidebar/index.ts +56 -0
  113. package/src/layout/Spacer/index.ts +46 -0
  114. package/src/layout/StakentComponents.tsx +57 -0
  115. package/src/layout/index.ts +11 -0
  116. package/src/structure/Banner/index.ts +92 -0
  117. package/src/structure/Box/index.ts +45 -0
  118. package/src/structure/Card/index.ts +113 -0
  119. package/src/structure/Collapse/index.ts +122 -0
  120. package/src/structure/Grid/index.ts +197 -0
  121. package/src/structure/List/index.ts +185 -0
  122. package/src/structure/Table/index.ts +165 -0
  123. package/src/structure/Tags/index.ts +69 -0
  124. package/src/structure/cards/AssetCard/index.ts +158 -0
  125. package/src/structure/cards/CollectionCard/index.ts +95 -0
  126. package/src/structure/cards/ContentCard/index.ts +127 -0
  127. package/src/structure/cards/ProfileCard/index.ts +152 -0
  128. package/src/structure/cards/index.ts +5 -0
  129. package/src/structure/cards/variants/index.ts +301 -0
  130. package/src/structure/index.ts +10 -0
  131. package/src/styles/base.css +186 -0
  132. package/src/styles/core.css +52 -0
  133. package/src/styles/themes/cupertino.css +197 -0
  134. package/src/styles/themes/material.css +322 -0
  135. package/src/styles/themes/web.css +196 -0
  136. package/src/theme/cupertino.ts +85 -0
  137. package/src/theme/index.ts +5 -0
  138. package/src/theme/material.ts +86 -0
  139. package/src/theme/provider.tsx +76 -0
  140. package/src/theme/types.ts +62 -0
  141. package/src/theme/web.ts +82 -0
@@ -0,0 +1,9 @@
1
+ export * from './Avatar';
2
+ export * from './Badge';
3
+ export * from './Text';
4
+ export * from './Label';
5
+ export * from './Image';
6
+ export * from './Spinner';
7
+ export * from './Skeleton';
8
+ export * from './Alert';
9
+ export * from './Progress';
@@ -0,0 +1,28 @@
1
+ import { ReactNode } from 'react';
2
+ import { Observable, Signal } from './state';
3
+
4
+ export declare const StateContext: import('react').Context<Map<string, any>>;
5
+ export declare function useStateContext(): Map<string, any>;
6
+ interface StateWrapperProps {
7
+ stateMap: Map<string, any>;
8
+ children: ReactNode;
9
+ }
10
+ export declare function StateWrapper({ stateMap, children }: StateWrapperProps): import("react/jsx-runtime").JSX.Element;
11
+ interface ObserverWrapperProps {
12
+ observables: Set<Observable<any>>;
13
+ children: ReactNode;
14
+ }
15
+ export declare function ObserverWrapper({ observables, children }: ObserverWrapperProps): import("react/jsx-runtime").JSX.Element;
16
+ interface SignalWrapperProps {
17
+ signals: Set<Signal<any>>;
18
+ children: ReactNode;
19
+ }
20
+ export declare function SignalWrapper({ signals, children }: SignalWrapperProps): import("react/jsx-runtime").JSX.Element;
21
+ interface ProviderWrapperProps {
22
+ providers: Map<string, any>;
23
+ children: ReactNode;
24
+ }
25
+ export declare const ProviderContext: import('react').Context<Map<string, any>>;
26
+ export declare function useProvider<T>(key: string): T | undefined;
27
+ export declare function ProviderWrapper({ providers, children }: ProviderWrapperProps): import("react/jsx-runtime").JSX.Element;
28
+ export {};
@@ -0,0 +1,50 @@
1
+ import { CSSProperties, ReactElement, ReactNode } from 'react';
2
+ import { ResponsiveStyles } from './types';
3
+ import { Observable, Signal } from './state';
4
+
5
+ export declare abstract class FiboBuilder {
6
+ protected _props: Record<string, any>;
7
+ protected _style: CSSProperties;
8
+ protected _cssStyles: CSSProperties;
9
+ protected _classNames: string[];
10
+ protected _children: ReactNode[];
11
+ protected _responsive?: ResponsiveStyles;
12
+ protected _state: Map<string, any>;
13
+ protected _providers: Map<string, any>;
14
+ protected _observers: Set<Observable<any>>;
15
+ protected _signals: Set<Signal<any>>;
16
+ protected _isObserver: boolean;
17
+ id(value: string): this;
18
+ paddingHorizontal(value: string | number): this;
19
+ paddingVertical(value: string | number): this;
20
+ marginHorizontal(value: string | number): this;
21
+ marginVertical(value: string | number): this;
22
+ flexDirection(direction: 'row' | 'column'): this;
23
+ alignItems(alignment: 'start' | 'center' | 'end' | 'stretch'): this;
24
+ justifyContent(justify: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly'): this;
25
+ responsive(styles: ResponsiveStyles): this;
26
+ state<T>(key: string, initialValue: T): this;
27
+ getState<T>(key: string): T | undefined;
28
+ setState<T>(key: string, value: T): this;
29
+ provide<T>(key: string, value: T): this;
30
+ consume<T>(key: string): T | undefined;
31
+ observer(): this;
32
+ observe<T>(observable: Observable<T>): this;
33
+ bindSignal<T>(signal: Signal<T>): this;
34
+ protected hasStateManagement(): boolean;
35
+ className(className: string): this;
36
+ classNames(classNames: string[]): this;
37
+ css(styles: CSSProperties): this;
38
+ style(style: CSSProperties): this;
39
+ props(props: Record<string, any>): this;
40
+ children(children: ReactNode | ReactNode[]): this;
41
+ protected getClassName(): string;
42
+ protected getStyle(): CSSProperties;
43
+ protected processChildren(): ReactNode[];
44
+ abstract build(): ReactElement;
45
+ }
46
+ type StyleBuilder<T> = T & {
47
+ [K in keyof CSSProperties]-?: (value: CSSProperties[K]) => StyleBuilder<T>;
48
+ };
49
+ export declare function createBuilder<T extends FiboBuilder, Args extends any[]>(BuilderClass: new (...args: Args) => T): (...args: Args) => StyleBuilder<T>;
50
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ import { ResponsiveStyles } from './types';
3
+
4
+ export declare function processChildren(children: ReactNode | ReactNode[]): ReactNode[];
5
+ export declare function mergeStyles(...styles: (React.CSSProperties | undefined)[]): React.CSSProperties;
6
+ export declare function applyResponsiveStyles(baseStyle: React.CSSProperties, responsive?: ResponsiveStyles): React.CSSProperties;
7
+ export declare function normalizeValue(value: string | number, unit?: string): string;
@@ -0,0 +1,3 @@
1
+ import { MouseEvent } from 'react';
2
+
3
+ export declare const createRipple: (event: MouseEvent<HTMLElement>, color?: string) => void;
@@ -0,0 +1,11 @@
1
+ export declare const Icons: {
2
+ Heart: import("react/jsx-runtime").JSX.Element;
3
+ Eth: import("react/jsx-runtime").JSX.Element;
4
+ Verify: import("react/jsx-runtime").JSX.Element;
5
+ More: import("react/jsx-runtime").JSX.Element;
6
+ Clock: import("react/jsx-runtime").JSX.Element;
7
+ Info: import("react/jsx-runtime").JSX.Element;
8
+ Check: import("react/jsx-runtime").JSX.Element;
9
+ Search: import("react/jsx-runtime").JSX.Element;
10
+ Close: import("react/jsx-runtime").JSX.Element;
11
+ };
@@ -0,0 +1,5 @@
1
+ export * from './types';
2
+ export * from './builder';
3
+ export * from './component';
4
+ export * from './state';
5
+ export * from './StateWrapper';
@@ -0,0 +1,37 @@
1
+ export type StateGetter<T> = () => T;
2
+ export type StateSetter<T> = (value: T | ((prev: T) => T)) => void;
3
+ export type StateHook<T> = [T, StateSetter<T>];
4
+ export interface Signal<T> {
5
+ value: T;
6
+ subscribe(callback: (value: T) => void): () => void;
7
+ }
8
+ export interface ComputedSignal<T> extends Omit<Signal<T>, 'value'> {
9
+ readonly value: T;
10
+ }
11
+ type EffectCleanup = void | (() => void);
12
+ export declare function signal<T>(initialValue: T): Signal<T>;
13
+ export declare function computed<T>(fn: () => T): ComputedSignal<T>;
14
+ export declare function effect(fn: () => EffectCleanup): () => void;
15
+ export interface Observable<T> {
16
+ get(): T;
17
+ set(value: T): void;
18
+ subscribe(listener: (value: T) => void): () => void;
19
+ }
20
+ export declare function observable<T>(initialValue: T): Observable<T>;
21
+ export interface Store<T> {
22
+ getState(): T;
23
+ setState(updater: Partial<T> | ((state: T) => Partial<T>)): void;
24
+ subscribe(listener: (state: T) => void): () => void;
25
+ }
26
+ export declare function createStore<T extends object>(initialState: T): Store<T>;
27
+ export interface ProviderConfig<T = any> {
28
+ key: string;
29
+ value: T;
30
+ }
31
+ export interface ConsumerConfig {
32
+ key: string;
33
+ }
34
+ export declare function registerProvider<T>(key: string, value: T): void;
35
+ export declare function getProvider<T>(key: string): T | undefined;
36
+ export declare function clearProviders(): void;
37
+ export {};
@@ -0,0 +1,51 @@
1
+ import { CSSProperties, ReactNode, ReactElement } from 'react';
2
+
3
+ export type FiboThemeName = 'material' | 'cupertino' | 'web';
4
+ export interface ResponsiveStyles {
5
+ mobile?: CSSProperties;
6
+ tablet?: CSSProperties;
7
+ desktop?: CSSProperties;
8
+ }
9
+ export interface BaseProps {
10
+ key?: string | number;
11
+ className?: string;
12
+ style?: CSSProperties;
13
+ responsive?: ResponsiveStyles;
14
+ }
15
+ export interface ChildrenProps extends BaseProps {
16
+ children?: ReactNode | ReactNode[];
17
+ child?: ReactNode;
18
+ }
19
+ export type Alignment = 'start' | 'center' | 'end' | 'stretch';
20
+ export type MainAxisAlignment = 'start' | 'center' | 'end' | 'spaceBetween' | 'spaceAround' | 'spaceEvenly';
21
+ export type CrossAxisAlignment = Alignment;
22
+ export interface LayoutProps extends BaseProps {
23
+ width?: string | number;
24
+ height?: string | number;
25
+ padding?: string | number;
26
+ margin?: string | number;
27
+ backgroundColor?: string;
28
+ }
29
+ export interface EdgeInsets {
30
+ top?: string | number;
31
+ right?: string | number;
32
+ bottom?: string | number;
33
+ left?: string | number;
34
+ all?: string | number;
35
+ horizontal?: string | number;
36
+ vertical?: string | number;
37
+ }
38
+ export interface TextStyle {
39
+ fontSize?: string | number;
40
+ fontWeight?: string | number;
41
+ fontFamily?: string;
42
+ color?: string;
43
+ lineHeight?: string | number;
44
+ letterSpacing?: string | number;
45
+ }
46
+ export type TextType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body' | 'caption' | 'label';
47
+ export type ButtonVariant = 'elevated' | 'filled' | 'outlined' | 'text';
48
+ export type StatusType = 'success' | 'warning' | 'error' | 'info';
49
+ export interface FiboComponent<T = any> {
50
+ (props?: T): ReactElement;
51
+ }
package/dist/demo.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ import { Root } from 'react-dom/client';
2
+
3
+ declare global {
4
+ interface Window {
5
+ _reactRoot?: Root;
6
+ }
7
+ }
@@ -0,0 +1,9 @@
1
+ const c = (n, r = "rgba(255, 255, 255, 0.3)") => {
2
+ const t = n.currentTarget, e = document.createElement("span"), i = Math.max(t.clientWidth, t.clientHeight), o = i / 2, l = t.getBoundingClientRect();
3
+ e.style.width = e.style.height = `${i}px`, e.style.left = `${n.clientX - l.left - o}px`, e.style.top = `${n.clientY - l.top - o}px`, e.style.position = "absolute", e.style.borderRadius = "50%", e.style.transform = "scale(0)", e.style.animation = "fibo-ripple 600ms linear", e.style.backgroundColor = r, e.style.pointerEvents = "none", (t.querySelector(".fibo-ripple-container") || t).appendChild(e), setTimeout(() => {
4
+ e.remove();
5
+ }, 600);
6
+ };
7
+ export {
8
+ c as createRipple
9
+ };
@@ -0,0 +1,3 @@
1
+ export declare function App(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
2
+ export declare function EcommerceApp(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
3
+ export declare function DashboardApp(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
@@ -0,0 +1,5 @@
1
+ export declare function SignalCounterExample(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
2
+ export declare function ObservableExample(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
3
+ export declare function StoreExample(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
4
+ export declare function ProviderExample(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
5
+ export declare function LocalStateExample(): import('react').ReactElement<any, string | import('react').JSXElementConstructor<any>>;
@@ -0,0 +1,6 @@
1
+ export * from './core';
2
+ export * from './theme';
3
+ export * from './layout';
4
+ export * from './content';
5
+ export * from './interactive';
6
+ export * from './structure';