powell-react 0.0.9 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (173) hide show
  1. package/package.json +8 -3
  2. package/.storybook/main.ts +0 -28
  3. package/.storybook/preview.scss +0 -13
  4. package/.storybook/preview.tsx +0 -24
  5. package/rollup.config.mjs +0 -95
  6. package/src/components/Button/Button.scss +0 -43
  7. package/src/components/Button/Button.stories.tsx +0 -13
  8. package/src/components/Button/Button.tsx +0 -19
  9. package/src/components/Button/index.ts +0 -1
  10. package/src/components/index.ts +0 -1
  11. package/src/index.ts +0 -1
  12. package/src/powell/api/PowellProvider.tsx +0 -37
  13. package/src/powell/api/configService.ts +0 -4
  14. package/src/powell/api/forms.ts +0 -145
  15. package/src/powell/api/index.ts +0 -5
  16. package/src/powell/api/powellDefaults.ts +0 -11
  17. package/src/powell/api/primereact.ts +0 -1945
  18. package/src/powell/components/AutoComplete/AutoComplete.scss +0 -126
  19. package/src/powell/components/AutoComplete/AutoComplete.tsx +0 -190
  20. package/src/powell/components/AutoComplete/index.ts +0 -1
  21. package/src/powell/components/Button/Button.tsx +0 -90
  22. package/src/powell/components/Button/index.ts +0 -1
  23. package/src/powell/components/CascadeSelect/CascadeSelect.scss +0 -126
  24. package/src/powell/components/CascadeSelect/CascadeSelect.tsx +0 -190
  25. package/src/powell/components/CascadeSelect/index.ts +0 -1
  26. package/src/powell/components/Checkbox/Checkbox.scss +0 -32
  27. package/src/powell/components/Checkbox/Checkbox.tsx +0 -147
  28. package/src/powell/components/Checkbox/index.ts +0 -1
  29. package/src/powell/components/Chips/Chips.scss +0 -126
  30. package/src/powell/components/Chips/Chips.tsx +0 -190
  31. package/src/powell/components/Chips/index.ts +0 -1
  32. package/src/powell/components/ColorPicker/ColorPicker.scss +0 -126
  33. package/src/powell/components/ColorPicker/ColorPicker.tsx +0 -186
  34. package/src/powell/components/ColorPicker/index.ts +0 -1
  35. package/src/powell/components/Dropdown/Dropdown.scss +0 -126
  36. package/src/powell/components/Dropdown/Dropdown.tsx +0 -190
  37. package/src/powell/components/Dropdown/index.ts +0 -1
  38. package/src/powell/components/Editor/Editor.scss +0 -126
  39. package/src/powell/components/Editor/Editor.tsx +0 -183
  40. package/src/powell/components/Editor/index.ts +0 -1
  41. package/src/powell/components/FormContainer/FormContainer.tsx +0 -49
  42. package/src/powell/components/FormContainer/FormContext.tsx +0 -18
  43. package/src/powell/components/FormContainer/index.ts +0 -2
  44. package/src/powell/components/InputMask/InputMask.scss +0 -126
  45. package/src/powell/components/InputMask/InputMask.tsx +0 -190
  46. package/src/powell/components/InputMask/index.ts +0 -1
  47. package/src/powell/components/InputNumber/InputNumber.scss +0 -126
  48. package/src/powell/components/InputNumber/InputNumber.tsx +0 -190
  49. package/src/powell/components/InputNumber/index.ts +0 -1
  50. package/src/powell/components/InputOtp/InputOtp.scss +0 -126
  51. package/src/powell/components/InputOtp/InputOtp.tsx +0 -154
  52. package/src/powell/components/InputOtp/index.ts +0 -1
  53. package/src/powell/components/InputPassword/InputPassword.scss +0 -126
  54. package/src/powell/components/InputPassword/InputPassword.tsx +0 -189
  55. package/src/powell/components/InputPassword/index.ts +0 -1
  56. package/src/powell/components/InputSwitch/InputSwitch.scss +0 -32
  57. package/src/powell/components/InputSwitch/InputSwitch.tsx +0 -144
  58. package/src/powell/components/InputSwitch/index.ts +0 -1
  59. package/src/powell/components/InputText/InputText.scss +0 -126
  60. package/src/powell/components/InputText/InputText.tsx +0 -190
  61. package/src/powell/components/InputText/index.ts +0 -1
  62. package/src/powell/components/InputTextarea/InputTextarea.scss +0 -126
  63. package/src/powell/components/InputTextarea/InputTextarea.tsx +0 -187
  64. package/src/powell/components/InputTextarea/index.ts +0 -1
  65. package/src/powell/components/Knob/Knob.scss +0 -32
  66. package/src/powell/components/Knob/Knob.tsx +0 -134
  67. package/src/powell/components/Knob/index.ts +0 -1
  68. package/src/powell/components/ListBox/ListBox.scss +0 -32
  69. package/src/powell/components/ListBox/ListBox.tsx +0 -135
  70. package/src/powell/components/ListBox/index.ts +0 -1
  71. package/src/powell/components/Mention/Mention.scss +0 -126
  72. package/src/powell/components/Mention/Mention.tsx +0 -186
  73. package/src/powell/components/Mention/index.ts +0 -1
  74. package/src/powell/components/MultiSelect/MultiSelect.scss +0 -126
  75. package/src/powell/components/MultiSelect/MultiSelect.tsx +0 -190
  76. package/src/powell/components/MultiSelect/index.ts +0 -1
  77. package/src/powell/components/MultiStateCheckbox/MultiStateCheckbox.scss +0 -32
  78. package/src/powell/components/MultiStateCheckbox/MultiStateCheckbox.tsx +0 -143
  79. package/src/powell/components/MultiStateCheckbox/index.ts +0 -1
  80. package/src/powell/components/RadioGroup/RadioGroup.scss +0 -32
  81. package/src/powell/components/RadioGroup/RadioGroup.tsx +0 -167
  82. package/src/powell/components/RadioGroup/index.ts +0 -1
  83. package/src/powell/components/Rating/Rating.scss +0 -32
  84. package/src/powell/components/Rating/Rating.tsx +0 -135
  85. package/src/powell/components/Rating/index.ts +0 -1
  86. package/src/powell/components/SelectButton/SelectButton.scss +0 -32
  87. package/src/powell/components/SelectButton/SelectButton.tsx +0 -144
  88. package/src/powell/components/SelectButton/index.ts +0 -1
  89. package/src/powell/components/Slider/Slider.scss +0 -32
  90. package/src/powell/components/Slider/Slider.tsx +0 -135
  91. package/src/powell/components/Slider/index.ts +0 -1
  92. package/src/powell/components/ToggleButton/ToggleButton.scss +0 -32
  93. package/src/powell/components/ToggleButton/ToggleButton.tsx +0 -144
  94. package/src/powell/components/ToggleButton/index.ts +0 -1
  95. package/src/powell/components/TreeSelect/TreeSelect.scss +0 -126
  96. package/src/powell/components/TreeSelect/TreeSelect.tsx +0 -190
  97. package/src/powell/components/TreeSelect/index.ts +0 -1
  98. package/src/powell/components/TriStateCheckbox/TriStateCheckbox.scss +0 -32
  99. package/src/powell/components/TriStateCheckbox/TriStateCheckbox.tsx +0 -144
  100. package/src/powell/components/TriStateCheckbox/index.ts +0 -1
  101. package/src/powell/hooks/index.ts +0 -3
  102. package/src/powell/hooks/useApplyConfig.ts +0 -36
  103. package/src/powell/hooks/useFormContext.ts +0 -14
  104. package/src/powell/hooks/usePowellConfig.ts +0 -64
  105. package/src/powell/index.ts +0 -29
  106. package/src/powell/models/common.ts +0 -7
  107. package/src/powell/models/config.ts +0 -85
  108. package/src/powell/models/forms.ts +0 -33
  109. package/src/powell/models/index.ts +0 -3
  110. package/src/powell/styles/common.scss +0 -9
  111. package/src/powell/styles/mixins.scss +0 -0
  112. package/src/powell/themes/arya-blue.css +0 -1
  113. package/src/powell/themes/arya-green.css +0 -1
  114. package/src/powell/themes/arya-orange.css +0 -1
  115. package/src/powell/themes/arya-purple.css +0 -1
  116. package/src/powell/themes/bootstrap4-dark-blue.css +0 -1
  117. package/src/powell/themes/bootstrap4-dark-purple.css +0 -1
  118. package/src/powell/themes/bootstrap4-light-blue.css +0 -1
  119. package/src/powell/themes/bootstrap4-light-purple.css +0 -1
  120. package/src/powell/themes/fluent-light.css +0 -1
  121. package/src/powell/themes/lara-dark-amber.css +0 -1
  122. package/src/powell/themes/lara-dark-blue.css +0 -1
  123. package/src/powell/themes/lara-dark-cyan.css +0 -1
  124. package/src/powell/themes/lara-dark-green.css +0 -1
  125. package/src/powell/themes/lara-dark-indigo.css +0 -1
  126. package/src/powell/themes/lara-dark-pink.css +0 -1
  127. package/src/powell/themes/lara-dark-purple.css +0 -1
  128. package/src/powell/themes/lara-dark-teal.css +0 -1
  129. package/src/powell/themes/lara-light-amber.css +0 -1
  130. package/src/powell/themes/lara-light-blue.css +0 -1
  131. package/src/powell/themes/lara-light-cyan.css +0 -1
  132. package/src/powell/themes/lara-light-green.css +0 -1
  133. package/src/powell/themes/lara-light-indigo.css +0 -1
  134. package/src/powell/themes/lara-light-pink.css +0 -1
  135. package/src/powell/themes/lara-light-purple.css +0 -1
  136. package/src/powell/themes/lara-light-teal.css +0 -1
  137. package/src/powell/themes/luna-amber.css +0 -1
  138. package/src/powell/themes/luna-blue.css +0 -1
  139. package/src/powell/themes/luna-green.css +0 -1
  140. package/src/powell/themes/luna-pink.css +0 -1
  141. package/src/powell/themes/md-dark-deeppurple.css +0 -1
  142. package/src/powell/themes/md-dark-indigo.css +0 -1
  143. package/src/powell/themes/md-light-deeppurple.css +0 -1
  144. package/src/powell/themes/md-light-indigo.css +0 -1
  145. package/src/powell/themes/mdc-dark-deeppurple.css +0 -1
  146. package/src/powell/themes/mdc-dark-indigo.css +0 -1
  147. package/src/powell/themes/mdc-light-deeppurple.css +0 -1
  148. package/src/powell/themes/mdc-light-indigo.css +0 -1
  149. package/src/powell/themes/mira.css +0 -1
  150. package/src/powell/themes/nano.css +0 -1
  151. package/src/powell/themes/nova-accent.css +0 -1
  152. package/src/powell/themes/nova-alt.css +0 -1
  153. package/src/powell/themes/nova.css +0 -1
  154. package/src/powell/themes/rhea.css +0 -1
  155. package/src/powell/themes/saga-blue.css +0 -1
  156. package/src/powell/themes/saga-green.css +0 -1
  157. package/src/powell/themes/saga-orange.css +0 -1
  158. package/src/powell/themes/saga-purple.css +0 -1
  159. package/src/powell/themes/soho-dark.css +0 -1
  160. package/src/powell/themes/soho-light.css +0 -1
  161. package/src/powell/themes/tailwind-light.css +0 -1
  162. package/src/powell/themes/vela-blue.css +0 -1
  163. package/src/powell/themes/vela-green.css +0 -1
  164. package/src/powell/themes/vela-orange.css +0 -1
  165. package/src/powell/themes/vela-purple.css +0 -1
  166. package/src/powell/themes/viva-dark.css +0 -1
  167. package/src/powell/themes/viva-light.css +0 -1
  168. package/src/powell/utils/globalState.ts +0 -96
  169. package/src/powell/utils/index.ts +0 -2
  170. package/src/powell/utils/utilsService.tsx +0 -55
  171. package/src/stories/Button.stories.tsx +0 -16
  172. package/tsconfig.json +0 -55
  173. package/vite.config.ts +0 -14
@@ -1,85 +0,0 @@
1
- import {$APIOptions} from "@powell/api";
2
- import {FixLabelPosition, LabelPosition, Size} from "@powell/models";
3
-
4
- export type ThemeName =
5
- "arya-blue" |
6
- "arya-green" |
7
- "arya-orange" |
8
- "arya-purple" |
9
- "bootstrap4-dark-blue" |
10
- "bootstrap4-dark-purple" |
11
- "bootstrap4-light-blue" |
12
- "bootstrap4-light-purple" |
13
- "fluent-light" |
14
- "lara-dark-amber" |
15
- "lara-dark-blue" |
16
- "lara-dark-cyan" |
17
- "lara-dark-green" |
18
- "lara-dark-indigo" |
19
- "lara-dark-pink" |
20
- "lara-dark-purple" |
21
- "lara-dark-teal" |
22
- "lara-light-amber" |
23
- "lara-light-blue" |
24
- "lara-light-cyan" |
25
- "lara-light-green" |
26
- "lara-light-indigo" |
27
- "lara-light-pink" |
28
- "lara-light-purple" |
29
- "lara-light-teal" |
30
- "luna-amber" |
31
- "luna-blue" |
32
- "luna-green" |
33
- "luna-pink" |
34
- "md-dark-deeppurple" |
35
- "md-dark-indigo" |
36
- "md-light-deeppurple" |
37
- "md-light-indigo" |
38
- "mdc-dark-deeppurple" |
39
- "mdc-dark-indigo" |
40
- "mdc-light-deeppurple" |
41
- "mdc-light-indigo" |
42
- "mira" |
43
- "nano" |
44
- "nova" |
45
- "nova-accent" |
46
- "nova-alt" |
47
- "rhea" |
48
- "saga-blue" |
49
- "saga-green" |
50
- "saga-orange" |
51
- "saga-purple" |
52
- "soho-dark" |
53
- "soho-light" |
54
- "tailwind-light" |
55
- "vela-blue" |
56
- "vela-green" |
57
- "vela-orange" |
58
- "vela-purple" |
59
- "viva-dark" |
60
- "viva-light";
61
-
62
- type OmittedApiOptions = Omit<$APIOptions,
63
- "setAppendTo" |
64
- "setStyleContainer" |
65
- "setAutoZIndex" |
66
- "setCssTransition" |
67
- "setFilterMatchModeOptions" |
68
- "setHideOverlaysOnDocumentScrolling" |
69
- "setInputStyle" |
70
- "setLocale" |
71
- "setNonce" |
72
- "setNullSortOrder" |
73
- "setRipple" |
74
- "setZIndex" |
75
- "setPt" |
76
- "changeTheme">;
77
-
78
- export interface PowellConfig extends OmittedApiOptions {
79
- theme?: ThemeName;
80
- rtl?: boolean;
81
- showRequiredStar?: boolean;
82
- inputSize?: Size;
83
- labelPosition?: LabelPosition;
84
- fixLabelPosition?: FixLabelPosition;
85
- }
@@ -1,33 +0,0 @@
1
- import {$ButtonProps} from "@powell/api";
2
- import {ButtonAppearance, Nullable, Position, SafeAny} from "@powell/models";
3
- import {MouseEvent} from "react";
4
-
5
- export type LabelPosition = 'float' | 'fix-side' | 'fix-top';
6
- export type FixLabelPosition = Exclude<LabelPosition, 'float'>;
7
- export type IconPosition = Exclude<Position, 'top' | 'bottom'>;
8
-
9
- export interface AddonConfig {
10
- type: 'button' | 'icon' | 'text';
11
- label?: string;
12
- severity?: $ButtonProps["severity"];
13
- appearance?: ButtonAppearance;
14
- icon?: string;
15
- iconPosition?: IconPosition;
16
- text?: string;
17
- onClick?: (event: MouseEvent<HTMLElement>) => void;
18
- }
19
-
20
- export interface Addon {
21
- before?: AddonConfig;
22
- after?: AddonConfig;
23
- }
24
-
25
- // todo: make transform type [usage] generic in components (remove SafeAny from utils.service)
26
- export type TransformOptions<V = SafeAny, T = SafeAny> = {
27
- value: Nullable<V>;
28
- onChange: (...event: SafeAny[]) => void;
29
- transform?: {
30
- input?: (value: Nullable<V>) => SafeAny;
31
- output?: (...event: T[]) => SafeAny;
32
- }
33
- }
@@ -1,3 +0,0 @@
1
- export * from "./common";
2
- export * from "./config";
3
- export * from "./forms";
@@ -1,9 +0,0 @@
1
- .error {
2
- display: block;
3
- color: rgb(185, 28, 28);
4
- }
5
-
6
- .hint {
7
- display: block;
8
- color: rgb(156, 163, 175);
9
- }
File without changes
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/arya-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/arya-green/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/arya-orange/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/arya-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/bootstrap4-dark-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/bootstrap4-dark-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/bootstrap4-light-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/bootstrap4-light-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/fluent-light/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-amber/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-cyan/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-green/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-pink/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-dark-teal/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-amber/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-cyan/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-green/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-pink/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/lara-light-teal/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/luna-amber/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/luna-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/luna-green/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/luna-pink/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/md-dark-deeppurple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/md-dark-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/md-light-deeppurple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/md-light-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/mdc-light-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/mdc-dark-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/mdc-light-deeppurple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/mdc-light-indigo/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/nano/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/nano/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/nova-accent/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/nova-alt/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/nova/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/rhea/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/saga-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/saga-green/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/saga-orange/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/saga-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/soho-dark/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/soho-light/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/tailwind-light/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/vela-blue/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/vela-green/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/vela-orange/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/vela-purple/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/viva-dark/theme.css";
@@ -1 +0,0 @@
1
- @import "primereact/resources/themes/viva-light/theme.css";
@@ -1,96 +0,0 @@
1
- import {SetStateAction, useEffect, useLayoutEffect, useRef, useState} from "react";
2
-
3
- type Set<T> = (newState: SetStateAction<T>, callback?: (newState: T) => void) => void;
4
-
5
- type UseSelector<T> = <TSelected = unknown>(selector: (state: T) => TSelected, equalityFn?: Comparator<TSelected>) => TSelected;
6
-
7
- export interface StateWithValue<T> {
8
- use: () => [T, Set<T>];
9
- useValue: () => T;
10
- get: () => T;
11
- useSelector: UseSelector<T>;
12
- set: Set<T>;
13
- reset: () => void;
14
- subscribe(subscriber: SubscriberFunc<T>): () => void;
15
- }
16
-
17
- type SubscriberFunc<T> = (newState: T, previousState: T) => void;
18
-
19
- interface Options<T> {
20
- onSet?: SubscriberFunc<T>;
21
- }
22
-
23
- type Comparator<TSelected = unknown> = (a: TSelected, b: TSelected) => boolean;
24
-
25
- const useIsomorphicLayoutEffect =
26
- typeof window !== "undefined" || typeof document !== "undefined"
27
- ? useLayoutEffect
28
- : useEffect;
29
-
30
- const equ: Comparator = (a, b) => a === b;
31
-
32
- const FR = {};
33
-
34
- function useComparator<T>(v: T, c: Comparator<T> = equ): T {
35
- const f = useRef(FR as T);
36
- let nv = f.current;
37
-
38
- useIsomorphicLayoutEffect(() => {
39
- f.current = nv;
40
- });
41
-
42
- if (f.current === FR || !c(v, f.current)) {
43
- nv = v;
44
- }
45
-
46
- return nv;
47
- }
48
-
49
- export function globalState<T>(initialValue: T, options?: Options<T>): StateWithValue<T> {
50
- let sb: SubscriberFunc<T>[] = [];
51
-
52
- let v: T = initialValue;
53
-
54
- function set(newValue: SetStateAction<T>, callback?: SubscriberFunc<T>) {
55
- const pv = v;
56
- v = newValue instanceof Function ? newValue(v) : newValue;
57
-
58
- setTimeout(() => {
59
- sb.forEach((c) => c(v, pv));
60
- callback?.(v, pv);
61
- options?.onSet?.(v, pv);
62
- });
63
- }
64
-
65
- function subscribe(subscriber: SubscriberFunc<T>): () => void {
66
- sb.push(subscriber);
67
- return () => {
68
- sb = sb.filter((f) => f !== subscriber);
69
- };
70
- }
71
-
72
- function useSubscription(subscriber: SubscriberFunc<T>) {
73
- useIsomorphicLayoutEffect(() => subscribe(subscriber), [subscriber]);
74
- }
75
-
76
- function use(): [T, Set<T>] {
77
- const [l, s] = useState<T>(v);
78
- useSubscription(s);
79
- return [l, set];
80
- }
81
-
82
- function useSelector<TSelected = unknown>(selector: (state: T) => TSelected, comparator: Comparator<TSelected> = equ): TSelected {
83
- const [rv] = use();
84
- return useComparator(selector(rv), comparator);
85
- }
86
-
87
- return {
88
- use,
89
- useSelector,
90
- useValue: () => use()[0],
91
- get: () => v,
92
- set,
93
- reset: () => set(initialValue),
94
- subscribe,
95
- };
96
- }
@@ -1,2 +0,0 @@
1
- export * from "./globalState";
2
- export * from "./utilsService";
@@ -1,55 +0,0 @@
1
- import {AddonConfig, SafeAny, TransformOptions} from "@powell/models";
2
- import {Button} from "@powell/components/Button";
3
- import {$FormikContextType, $FormikValues} from "@powell/api";
4
-
5
- export const getAddonTemplate = (config?: AddonConfig) => {
6
- if (!config) {
7
- return <></>
8
- }
9
- const {type, ...rest} = config;
10
- switch (type) {
11
- case "button":
12
- return <Button {...rest} />
13
- case "icon":
14
- return (
15
- <span className="p-inputgroup-addon" onClick={rest?.onClick}>
16
- <i className={rest.icon}></i>
17
- </span>
18
- )
19
- case "text":
20
- return <span className="p-inputgroup-addon">{rest.text}</span>
21
- }
22
- }
23
-
24
- export const isRequiredField = (formContext: $FormikContextType<$FormikValues> | null, name: string | undefined) => {
25
- const keys = name?.split('.') ?? [];
26
- let current = formContext?.validationSchema?.fields;
27
- for (const key of keys) {
28
- if (!current) {
29
- return false;
30
- }
31
- if (current[key]?.fields) {
32
- current = current[key]?.fields;
33
- } else {
34
- current = current[key];
35
- }
36
- }
37
- return current?.tests?.some((t: SafeAny) => t.OPTIONS.name === 'required');
38
- }
39
-
40
- // todo: make transform type [usage] generic in components (remove SafeAny from models)
41
- export const transformer = <V = SafeAny, T = SafeAny>(options: TransformOptions<V, T>) => {
42
- const value: V = options.transform?.input?.(options.value) || options.value;
43
- const onChange = (...event: T[]) => {
44
- if (typeof options.transform?.output === 'function') {
45
- options.onChange(options.transform.output(...event));
46
- } else {
47
- options.onChange(...event);
48
- }
49
- }
50
-
51
- return {
52
- value,
53
- onChange
54
- }
55
- }
@@ -1,16 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { Button } from '@powell/components/Button';
3
-
4
- const meta: Meta<typeof Button> = {
5
- component: Button,
6
- };
7
-
8
- export default meta;
9
-
10
- type Story = StoryObj<typeof Button>;
11
-
12
- export const Primary: Story = {
13
- args: {
14
- label: 'Button',
15
- },
16
- };
package/tsconfig.json DELETED
@@ -1,55 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2016",
4
- "module": "esnext",
5
- "jsx": "react",
6
- "sourceMap": true,
7
- "outDir": "dist",
8
- "strict": true,
9
- "moduleResolution": "node",
10
- "allowSyntheticDefaultImports": true,
11
- "esModuleInterop": true,
12
- "skipLibCheck": true,
13
- "forceConsistentCasingInFileNames": true,
14
- "declaration": true,
15
- "declarationDir": "types",
16
- "noEmit": false,
17
- "lib": [
18
- "dom",
19
- "dom.iterable",
20
- "esnext"
21
- ],
22
- "baseUrl": ".",
23
- "paths": {
24
- "@powell/*": [
25
- "src/powell/*"
26
- ],
27
- },
28
- "allowJs": true,
29
- "isolatedModules": true,
30
- "noImplicitAny": true,
31
- "resolveJsonModule": true,
32
- "strictNullChecks": true,
33
- "noUnusedLocals": true,
34
- "noUnusedParameters": true,
35
- "downlevelIteration": true,
36
- "noFallthroughCasesInSwitch": true,
37
- "noImplicitReturns": true,
38
- "types": [
39
- "@testing-library/jest-dom"
40
- ],
41
- "useDefineForClassFields": true,
42
- },
43
- "include": [
44
- "src",
45
- "*.tsx",
46
- "*.ts",
47
- "eslint.config.js"
48
- ],
49
- "exclude": [
50
- "coverage",
51
- "config",
52
- "dist",
53
- "node_modules/**"
54
- ]
55
- }
package/vite.config.ts DELETED
@@ -1,14 +0,0 @@
1
- import { defineConfig } from 'vite';
2
- import svgr from 'vite-plugin-svgr';
3
- import react from '@vitejs/plugin-react';
4
- import { resolve } from "path";
5
-
6
- // https://vitejs.dev/config/
7
- export default defineConfig({
8
- plugins: [react(), svgr({ include: '**/*.svg' })],
9
- resolve: {
10
- alias: {
11
- "@powell": resolve(__dirname, "./src/powell/"),
12
- }
13
- }
14
- });