powell-react 0.0.31 → 0.0.33

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 (77) hide show
  1. package/dist/index.cjs.js +348 -2072
  2. package/dist/index.cjs.js.map +1 -1
  3. package/dist/index.cjs11.js +18 -0
  4. package/dist/index.cjs11.js.map +1 -0
  5. package/dist/index.cjs12.js +123 -0
  6. package/dist/index.cjs12.js.map +1 -0
  7. package/dist/index.cjs13.js +120 -0
  8. package/dist/index.cjs13.js.map +1 -0
  9. package/dist/index.cjs14.js +16 -0
  10. package/dist/index.cjs14.js.map +1 -0
  11. package/dist/index.cjs15.js +8 -0
  12. package/dist/index.cjs15.js.map +1 -0
  13. package/dist/index.cjs16.js +29 -0
  14. package/dist/index.cjs16.js.map +1 -0
  15. package/dist/index.cjs17.js +1330 -0
  16. package/dist/index.cjs17.js.map +1 -0
  17. package/dist/index.cjs18.js +8 -0
  18. package/dist/index.cjs18.js.map +1 -0
  19. package/dist/index.cjs19.js +8 -0
  20. package/dist/index.cjs19.js.map +1 -0
  21. package/dist/index.cjs2.js +167 -0
  22. package/dist/index.cjs2.js.map +1 -0
  23. package/dist/index.cjs20.js +26 -0
  24. package/dist/index.cjs20.js.map +1 -0
  25. package/dist/index.cjs3.js +10 -0
  26. package/dist/index.cjs3.js.map +1 -0
  27. package/dist/index.cjs4.js +18 -0
  28. package/dist/index.cjs4.js.map +1 -0
  29. package/dist/index.cjs5.js +144 -0
  30. package/dist/index.cjs5.js.map +1 -0
  31. package/dist/index.cjs6.js +55 -0
  32. package/dist/index.cjs6.js.map +1 -0
  33. package/dist/index.cjs7.js +128 -0
  34. package/dist/index.cjs7.js.map +1 -0
  35. package/dist/index.cjs8.js +201 -0
  36. package/dist/index.cjs8.js.map +1 -0
  37. package/dist/index.cjs9.js +63 -0
  38. package/dist/index.cjs9.js.map +1 -0
  39. package/dist/index.es.js +9 -1744
  40. package/dist/index.es.js.map +1 -1
  41. package/dist/index.es11.js +14 -0
  42. package/dist/index.es11.js.map +1 -0
  43. package/dist/index.es12.js +119 -0
  44. package/dist/index.es12.js.map +1 -0
  45. package/dist/index.es13.js +118 -0
  46. package/dist/index.es13.js.map +1 -0
  47. package/dist/index.es14.js +11 -0
  48. package/dist/index.es14.js.map +1 -0
  49. package/dist/index.es15.js +4 -0
  50. package/dist/index.es15.js.map +1 -0
  51. package/dist/index.es16.js +25 -0
  52. package/dist/index.es16.js.map +1 -0
  53. package/dist/index.es17.js +1326 -0
  54. package/dist/index.es17.js.map +1 -0
  55. package/dist/index.es18.js +4 -0
  56. package/dist/index.es18.js.map +1 -0
  57. package/dist/index.es19.js +4 -0
  58. package/dist/index.es19.js.map +1 -0
  59. package/dist/index.es2.js +163 -0
  60. package/dist/index.es2.js.map +1 -0
  61. package/dist/index.es20.js +22 -0
  62. package/dist/index.es20.js.map +1 -0
  63. package/dist/index.es3.js +6 -0
  64. package/dist/index.es3.js.map +1 -0
  65. package/dist/index.es4.js +14 -0
  66. package/dist/index.es4.js.map +1 -0
  67. package/dist/index.es5.js +140 -0
  68. package/dist/index.es5.js.map +1 -0
  69. package/dist/index.es6.js +51 -0
  70. package/dist/index.es6.js.map +1 -0
  71. package/dist/index.es7.js +123 -0
  72. package/dist/index.es7.js.map +1 -0
  73. package/dist/index.es8.js +196 -0
  74. package/dist/index.es8.js.map +1 -0
  75. package/dist/index.es9.js +59 -0
  76. package/dist/index.es9.js.map +1 -0
  77. package/package.json +5 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es6.js","sources":["../src/powell/hooks/useApplyConfig.ts"],"sourcesContent":["import {usePowellConfig} from \"@powell/hooks/usePowellConfig\";\r\nimport {PowellConfig, SafeAny} from \"@powell/models\";\r\n\r\ninterface ApplyConfigOptions<T> {\r\n isFixLabel: boolean;\r\n sizable: boolean;\r\n groups: Record<string, PropDescriptor<T>[]>\r\n}\r\n\r\ninterface CommonConfigProps {\r\n rtl?: PowellConfig[\"rtl\"];\r\n showRequiredStar?: PowellConfig[\"showRequiredStar\"];\r\n labelPosition?: PowellConfig[\"labelPosition\"];\r\n inputSize?: PowellConfig[\"inputSize\"];\r\n variant?: PowellConfig[\"inputStyle\"];\r\n}\r\n\r\ntype PropDescriptor<T> =\r\n | keyof T & string\r\n | {\r\n key: keyof T & string;\r\n alias?: string;\r\n defaultValue?: T[keyof T] | (() => T[keyof T]);\r\n keepInRest?: boolean;\r\n};\r\n\r\nconst splitProps = <T extends Record<string, SafeAny>>(props: T, groups: Record<string, PropDescriptor<T>[]>) => {\r\n const result: Record<string, SafeAny> = {};\r\n const rest: Partial<T> = {};\r\n const assigned: Partial<Record<keyof T, boolean>> = {};\r\n const restEligible: Partial<Record<keyof T, boolean>> = {};\r\n\r\n for (const groupName in groups) {\r\n for (const descriptor of groups[groupName]) {\r\n const key = typeof descriptor === 'string' ? descriptor : descriptor.key;\r\n const alias = typeof descriptor === 'string' ? undefined : descriptor.alias;\r\n const defaultValue = typeof descriptor === 'string' ? undefined : descriptor.defaultValue;\r\n const keepInRest = typeof descriptor === 'string' ? false : descriptor.keepInRest ?? false;\r\n\r\n if (!result[groupName]) {\r\n result[groupName] = {};\r\n }\r\n\r\n const value = key in props ? props[key] : typeof defaultValue === 'function' ? (defaultValue as SafeAny)() : defaultValue;\r\n result[groupName][alias ?? key] = value;\r\n\r\n assigned[key] = true;\r\n if (keepInRest) {\r\n restEligible[key] = true;\r\n }\r\n }\r\n }\r\n\r\n for (const key in props) {\r\n const typedKey = key as keyof T;\r\n if (!assigned[typedKey] || restEligible[typedKey]) {\r\n rest[typedKey] = props[typedKey];\r\n }\r\n }\r\n\r\n result.rest = rest;\r\n return result as Record<string, Partial<T>> & {rest: Partial<T>};\r\n}\r\n\r\nexport const useApplyConfig = <T extends CommonConfigProps>(props: T, options: ApplyConfigOptions<T>) => {\r\n const [config] = usePowellConfig();\r\n const {sizable = true, isFixLabel = false, groups = {}} = options;\r\n\r\n const result = {\r\n ...props,\r\n rtl: props.rtl ?? config.rtl,\r\n showRequiredStar: props.showRequiredStar ?? config.showRequiredStar,\r\n labelPosition: props.labelPosition ?? (isFixLabel ? config.fixLabelPosition : config.labelPosition),\r\n ...('variant' in props ? {variant: props.variant ?? config.inputStyle} : {}),\r\n }\r\n\r\n if (sizable) {\r\n result.inputSize = props.inputSize ?? config.inputSize;\r\n }\r\n\r\n return splitProps<T>(result, groups);\r\n}\r\n"],"names":[],"mappings":";;AA0BA,MAAM,UAAA,GAAa,CAAoC,KAAA,EAAU,MAAgD,KAAA;AAC/G,EAAA,MAAM,SAAkC,EAAC;AACzC,EAAA,MAAM,OAAmB,EAAC;AAC1B,EAAA,MAAM,WAA8C,EAAC;AACrD,EAAA,MAAM,eAAkD,EAAC;AAEzD,EAAA,KAAA,MAAW,aAAa,MAAQ,EAAA;AAC9B,IAAW,KAAA,MAAA,UAAA,IAAc,MAAO,CAAA,SAAS,CAAG,EAAA;AAC1C,MAAA,MAAM,GAAM,GAAA,OAAO,UAAe,KAAA,QAAA,GAAW,aAAa,UAAW,CAAA,GAAA;AACrE,MAAA,MAAM,KAAQ,GAAA,OAAO,UAAe,KAAA,QAAA,GAAW,SAAY,UAAW,CAAA,KAAA;AACtE,MAAA,MAAM,YAAe,GAAA,OAAO,UAAe,KAAA,QAAA,GAAW,SAAY,UAAW,CAAA,YAAA;AAC7E,MAAA,MAAM,aAAa,OAAO,UAAA,KAAe,QAAW,GAAA,KAAA,GAAQ,WAAW,UAAc,IAAA,KAAA;AAErF,MAAI,IAAA,CAAC,MAAO,CAAA,SAAS,CAAG,EAAA;AACtB,QAAO,MAAA,CAAA,SAAS,IAAI,EAAC;AAAA;AAGvB,MAAM,MAAA,KAAA,GAAQ,GAAO,IAAA,KAAA,GAAQ,KAAM,CAAA,GAAG,IAAI,OAAO,YAAA,KAAiB,UAAc,GAAA,YAAA,EAA6B,GAAA,YAAA;AAC7G,MAAA,MAAA,CAAO,SAAS,CAAA,CAAE,KAAS,IAAA,GAAG,CAAI,GAAA,KAAA;AAElC,MAAA,QAAA,CAAS,GAAG,CAAI,GAAA,IAAA;AAChB,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,YAAA,CAAa,GAAG,CAAI,GAAA,IAAA;AAAA;AACtB;AACF;AAGF,EAAA,KAAA,MAAW,OAAO,KAAO,EAAA;AACvB,IAAA,MAAM,QAAW,GAAA,GAAA;AACjB,IAAA,IAAI,CAAC,QAAS,CAAA,QAAQ,CAAK,IAAA,YAAA,CAAa,QAAQ,CAAG,EAAA;AACjD,MAAK,IAAA,CAAA,QAAQ,CAAI,GAAA,KAAA,CAAM,QAAQ,CAAA;AAAA;AACjC;AAGF,EAAA,MAAA,CAAO,IAAO,GAAA,IAAA;AACd,EAAO,OAAA,MAAA;AACT,CAAA;AAEa,MAAA,cAAA,GAAiB,CAA8B,KAAA,EAAU,OAAmC,KAAA;AACvG,EAAM,MAAA,CAAC,MAAM,CAAA,GAAI,eAAgB,EAAA;AACjC,EAAM,MAAA,EAAC,UAAU,IAAM,EAAA,UAAA,GAAa,OAAO,MAAS,GAAA,IAAM,GAAA,OAAA;AAE1D,EAAA,MAAM,MAAS,GAAA;AAAA,IACb,GAAG,KAAA;AAAA,IACH,GAAA,EAAK,KAAM,CAAA,GAAA,IAAO,MAAO,CAAA,GAAA;AAAA,IACzB,gBAAA,EAAkB,KAAM,CAAA,gBAAA,IAAoB,MAAO,CAAA,gBAAA;AAAA,IACnD,eAAe,KAAM,CAAA,aAAA,KAAkB,UAAa,GAAA,MAAA,CAAO,mBAAmB,MAAO,CAAA,aAAA,CAAA;AAAA,IACrF,GAAI,SAAa,IAAA,KAAA,GAAQ,EAAC,OAAA,EAAS,MAAM,OAAW,IAAA,MAAA,CAAO,UAAU,EAAA,GAAI;AAAC,GAC5E;AAEA,EAAA,IAAI,OAAS,EAAA;AACX,IAAO,MAAA,CAAA,SAAA,GAAY,KAAM,CAAA,SAAA,IAAa,MAAO,CAAA,SAAA;AAAA;AAG/C,EAAO,OAAA,UAAA,CAAc,QAAQ,MAAM,CAAA;AACrC;;;;"}
@@ -0,0 +1,123 @@
1
+ import { useContext } from 'react';
2
+ import './index.es13.js';
3
+ import { FormContext } from './index.es14.js';
4
+ import { FormikContext, useFormikContext } from 'formik';
5
+ import 'yup';
6
+ import './index.es11.js';
7
+ import 'primereact/autocomplete';
8
+ import 'primereact/calendar';
9
+ import 'primereact/cascadeselect';
10
+ import 'primereact/checkbox';
11
+ import 'primereact/chips';
12
+ import 'primereact/colorpicker';
13
+ import 'primereact/dropdown';
14
+ import 'primereact/editor';
15
+ import 'primereact/floatlabel';
16
+ import 'primereact/inputicon';
17
+ import 'primereact/iconfield';
18
+ import 'primereact/inputmask';
19
+ import 'primereact/inputswitch';
20
+ import 'primereact/inputnumber';
21
+ import 'primereact/inputotp';
22
+ import 'primereact/inputtext';
23
+ import 'primereact/inputtextarea';
24
+ import 'primereact/knob';
25
+ import 'primereact/listbox';
26
+ import 'primereact/mention';
27
+ import 'primereact/multiselect';
28
+ import 'primereact/multistatecheckbox';
29
+ import 'primereact/password';
30
+ import 'primereact/radiobutton';
31
+ import 'primereact/rating';
32
+ import 'primereact/selectbutton';
33
+ import 'primereact/slider';
34
+ import 'primereact/treeselect';
35
+ import 'primereact/tristatecheckbox';
36
+ import 'primereact/togglebutton';
37
+ import 'primereact/button';
38
+ import 'primereact/speeddial';
39
+ import 'primereact/splitbutton';
40
+ import 'primereact/datatable';
41
+ import 'primereact/dataview';
42
+ import 'primereact/datascroller';
43
+ import 'primereact/orderlist';
44
+ import 'primereact/organizationchart';
45
+ import 'primereact/paginator';
46
+ import 'primereact/picklist';
47
+ import 'primereact/tree';
48
+ import 'primereact/treetable';
49
+ import 'primereact/timeline';
50
+ import 'primereact/virtualscroller';
51
+ import 'primereact/accordion';
52
+ import 'primereact/card';
53
+ import 'primereact/deferredcontent';
54
+ import 'primereact/divider';
55
+ import 'primereact/fieldset';
56
+ import 'primereact/panel';
57
+ import 'primereact/scrollpanel';
58
+ import 'primereact/splitter';
59
+ import 'primereact/stepper';
60
+ import 'primereact/tabview';
61
+ import 'primereact/toolbar';
62
+ import 'primereact/confirmdialog';
63
+ import 'primereact/confirmpopup';
64
+ import 'primereact/dialog';
65
+ import 'primereact/overlaypanel';
66
+ import 'primereact/sidebar';
67
+ import 'primereact/tooltip';
68
+ import 'primereact/fileupload';
69
+ import 'primereact/breadcrumb';
70
+ import 'primereact/contextmenu';
71
+ import 'primereact/dock';
72
+ import 'primereact/megamenu';
73
+ import 'primereact/menu';
74
+ import 'primereact/menubar';
75
+ import 'primereact/panelmenu';
76
+ import 'primereact/steps';
77
+ import 'primereact/tabmenu';
78
+ import 'primereact/tieredmenu';
79
+ import 'primereact/message';
80
+ import 'primereact/messages';
81
+ import 'primereact/toast';
82
+ import 'primereact/carousel';
83
+ import 'primereact/galleria';
84
+ import 'primereact/image';
85
+ import 'primereact/avatar';
86
+ import 'primereact/badge';
87
+ import 'primereact/blockui';
88
+ import 'primereact/chip';
89
+ import 'primereact/inplace';
90
+ import 'primereact/metergroup';
91
+ import 'primereact/scrolltop';
92
+ import 'primereact/skeleton';
93
+ import 'primereact/progressbar';
94
+ import 'primereact/progressspinner';
95
+ import 'primereact/ripple';
96
+ import 'primereact/styleclass';
97
+ import 'primereact/tag';
98
+ import 'primereact/terminal';
99
+ import 'primereact/api';
100
+ import 'primereact/utils';
101
+
102
+ const useFormContext = () => {
103
+ const context = useContext(FormContext);
104
+ const formikContext = useSafeFormikContext();
105
+ if (!context || !formikContext) {
106
+ return null;
107
+ }
108
+ return { ...context, ...formikContext };
109
+ };
110
+ function useSafeFormikContext() {
111
+ const context = useContext(FormikContext);
112
+ try {
113
+ if (context) {
114
+ return useFormikContext();
115
+ }
116
+ return void 0;
117
+ } catch {
118
+ return void 0;
119
+ }
120
+ }
121
+
122
+ export { useFormContext, useSafeFormikContext };
123
+ //# sourceMappingURL=index.es7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es7.js","sources":["../src/powell/hooks/useFormContext.ts"],"sourcesContent":["import {useContext} from \"react\";\r\nimport {FormContext} from \"@powell/components/FormContainer\";\r\nimport {$FormikConfig, $FormikContext, $FormikContextType, $FormikValues, $useFormikContext} from \"@powell/api\";\r\nimport {SafeAny} from \"@powell/models\";\r\n\r\nexport const useFormContext = () => {\r\n const context = useContext(FormContext) as $FormikConfig<$FormikValues>;\r\n const formikContext = useSafeFormikContext();\r\n\r\n if (!context || !formikContext) {\r\n return null;\r\n }\r\n\r\n return {...context, ...formikContext} as $FormikContextType<$FormikValues>;\r\n};\r\n\r\nexport function useSafeFormikContext<T = SafeAny>() {\r\n const context = useContext($FormikContext);\r\n try {\r\n if (context) {\r\n return $useFormikContext<T>();\r\n }\r\n return undefined;\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n"],"names":["$FormikContext","$useFormikContext"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAM,iBAAiB,MAAM;AAClC,EAAM,MAAA,OAAA,GAAU,WAAW,WAAW,CAAA;AACtC,EAAA,MAAM,gBAAgB,oBAAqB,EAAA;AAE3C,EAAI,IAAA,CAAC,OAAW,IAAA,CAAC,aAAe,EAAA;AAC9B,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,OAAO,EAAC,GAAG,OAAS,EAAA,GAAG,aAAa,EAAA;AACtC;AAEO,SAAS,oBAAoC,GAAA;AAClD,EAAM,MAAA,OAAA,GAAU,WAAWA,aAAc,CAAA;AACzC,EAAI,IAAA;AACF,IAAA,IAAI,OAAS,EAAA;AACX,MAAA,OAAOC,gBAAqB,EAAA;AAAA;AAE9B,IAAO,OAAA,KAAA,CAAA;AAAA,GACD,CAAA,MAAA;AACN,IAAO,OAAA,MAAA;AAAA;AAEX;;;;"}
@@ -0,0 +1,196 @@
1
+ import { configService } from './index.es3.js';
2
+ import 'formik';
3
+ import 'yup';
4
+ import './index.es11.js';
5
+ import { useContext } from 'react';
6
+ import './index.es13.js';
7
+ import './index.es14.js';
8
+ import 'primereact/autocomplete';
9
+ import 'primereact/calendar';
10
+ import 'primereact/cascadeselect';
11
+ import 'primereact/checkbox';
12
+ import 'primereact/chips';
13
+ import 'primereact/colorpicker';
14
+ import 'primereact/dropdown';
15
+ import 'primereact/editor';
16
+ import 'primereact/floatlabel';
17
+ import 'primereact/inputicon';
18
+ import 'primereact/iconfield';
19
+ import 'primereact/inputmask';
20
+ import 'primereact/inputswitch';
21
+ import 'primereact/inputnumber';
22
+ import 'primereact/inputotp';
23
+ import 'primereact/inputtext';
24
+ import 'primereact/inputtextarea';
25
+ import 'primereact/knob';
26
+ import 'primereact/listbox';
27
+ import 'primereact/mention';
28
+ import 'primereact/multiselect';
29
+ import 'primereact/multistatecheckbox';
30
+ import 'primereact/password';
31
+ import 'primereact/radiobutton';
32
+ import 'primereact/rating';
33
+ import 'primereact/selectbutton';
34
+ import 'primereact/slider';
35
+ import 'primereact/treeselect';
36
+ import 'primereact/tristatecheckbox';
37
+ import 'primereact/togglebutton';
38
+ import 'primereact/button';
39
+ import 'primereact/speeddial';
40
+ import 'primereact/splitbutton';
41
+ import 'primereact/datatable';
42
+ import 'primereact/dataview';
43
+ import 'primereact/datascroller';
44
+ import 'primereact/orderlist';
45
+ import 'primereact/organizationchart';
46
+ import 'primereact/paginator';
47
+ import 'primereact/picklist';
48
+ import 'primereact/tree';
49
+ import 'primereact/treetable';
50
+ import 'primereact/timeline';
51
+ import 'primereact/virtualscroller';
52
+ import 'primereact/accordion';
53
+ import 'primereact/card';
54
+ import 'primereact/deferredcontent';
55
+ import 'primereact/divider';
56
+ import 'primereact/fieldset';
57
+ import 'primereact/panel';
58
+ import 'primereact/scrollpanel';
59
+ import 'primereact/splitter';
60
+ import 'primereact/stepper';
61
+ import 'primereact/tabview';
62
+ import 'primereact/toolbar';
63
+ import 'primereact/confirmdialog';
64
+ import 'primereact/confirmpopup';
65
+ import 'primereact/dialog';
66
+ import 'primereact/overlaypanel';
67
+ import 'primereact/sidebar';
68
+ import 'primereact/tooltip';
69
+ import 'primereact/fileupload';
70
+ import 'primereact/breadcrumb';
71
+ import 'primereact/contextmenu';
72
+ import 'primereact/dock';
73
+ import 'primereact/megamenu';
74
+ import 'primereact/menu';
75
+ import 'primereact/menubar';
76
+ import 'primereact/panelmenu';
77
+ import 'primereact/steps';
78
+ import 'primereact/tabmenu';
79
+ import 'primereact/tieredmenu';
80
+ import 'primereact/message';
81
+ import 'primereact/messages';
82
+ import 'primereact/toast';
83
+ import 'primereact/carousel';
84
+ import 'primereact/galleria';
85
+ import 'primereact/image';
86
+ import 'primereact/avatar';
87
+ import 'primereact/badge';
88
+ import 'primereact/blockui';
89
+ import 'primereact/chip';
90
+ import 'primereact/inplace';
91
+ import 'primereact/metergroup';
92
+ import 'primereact/scrolltop';
93
+ import 'primereact/skeleton';
94
+ import 'primereact/progressbar';
95
+ import 'primereact/progressspinner';
96
+ import 'primereact/ripple';
97
+ import 'primereact/styleclass';
98
+ import 'primereact/tag';
99
+ import 'primereact/terminal';
100
+ import { PrimeReactContext } from 'primereact/api';
101
+ import 'primereact/utils';
102
+
103
+ const usePowellConfig = () => {
104
+ const [powellConfig, setPowellConfig] = configService.use();
105
+ const {
106
+ setPt,
107
+ setFilterMatchModeOptions,
108
+ setLocale,
109
+ setNonce,
110
+ setHideOverlaysOnDocumentScrolling,
111
+ setRipple,
112
+ setCssTransition,
113
+ setStyleContainer,
114
+ setInputStyle,
115
+ setNullSortOrder,
116
+ setZIndex,
117
+ setAutoZIndex,
118
+ setAppendTo,
119
+ changeTheme,
120
+ ...restPrimeConfig
121
+ } = useContext(PrimeReactContext);
122
+ const configAction = {
123
+ pt: setPt,
124
+ filterMatchModeOptions: setFilterMatchModeOptions,
125
+ locale: setLocale,
126
+ nonce: setNonce,
127
+ hideOverlaysOnDocumentScrolling: setHideOverlaysOnDocumentScrolling,
128
+ ripple: setRipple,
129
+ cssTransition: setCssTransition,
130
+ styleContainer: setStyleContainer,
131
+ inputStyle: setInputStyle,
132
+ nullSortOrder: setNullSortOrder,
133
+ zIndex: setZIndex,
134
+ autoZIndex: setAutoZIndex,
135
+ appendTo: setAppendTo,
136
+ theme: (v) => changeTheme?.(powellConfig.theme, v.theme, "powell-theme-link")
137
+ };
138
+ const updateConfig = (c) => {
139
+ for (const key in c) {
140
+ if (key in configAction) {
141
+ configAction[key]?.(c);
142
+ }
143
+ applyConfigToDom({ ...c, injectDirectionToRoot: powellConfig.injectDirectionToRoot });
144
+ setPowellConfig((prev) => ({ ...prev, ...c }));
145
+ }
146
+ };
147
+ return [{ ...powellConfig, ...restPrimeConfig }, updateConfig];
148
+ };
149
+ const applyConfigToDom = (config) => {
150
+ handleBodyClasses(config);
151
+ if ("rtl" in config && config.injectDirectionToRoot) {
152
+ document.documentElement.setAttribute("dir", config.rtl ? "rtl" : "ltr");
153
+ } else {
154
+ document.documentElement.removeAttribute("dir");
155
+ }
156
+ };
157
+ const kebabCase = (str) => str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
158
+ const handleBodyClasses = (config) => {
159
+ const specialBodyClassRules = {
160
+ ripple: [
161
+ {
162
+ condition: (v) => v === false,
163
+ className: "p-ripple-disabled"
164
+ }
165
+ ],
166
+ inputStyle: [
167
+ {
168
+ condition: (v) => v === "filled",
169
+ className: "p-input-filled"
170
+ }
171
+ ]
172
+ };
173
+ for (const key in config) {
174
+ const value = config[key];
175
+ if (value === void 0) continue;
176
+ const rules = specialBodyClassRules[key];
177
+ if (rules && rules.length) {
178
+ for (const rule of rules) {
179
+ const shouldApply = rule.condition(value);
180
+ document.body.classList.toggle(rule.className, shouldApply);
181
+ }
182
+ } else {
183
+ const prefix = `powell-${kebabCase(key)}-`;
184
+ document.body.classList.forEach((cls) => {
185
+ if (cls.startsWith(prefix)) {
186
+ document.body.classList.remove(cls);
187
+ }
188
+ });
189
+ const finalValue = typeof value === "boolean" ? value ? "enabled" : "disabled" : value;
190
+ document.body.classList.add(`${prefix}${finalValue}`);
191
+ }
192
+ }
193
+ };
194
+
195
+ export { applyConfigToDom, usePowellConfig };
196
+ //# sourceMappingURL=index.es8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es8.js","sources":["../src/powell/hooks/usePowellConfig.ts"],"sourcesContent":["import {$PrimeReactContext, configService} from \"@powell/api\";\r\nimport {Dispatch, SetStateAction, useContext} from \"react\";\r\nimport {PowellConfig, SafeAny} from \"@powell/models\";\r\n\r\ntype BodyClassRule = {\r\n condition: (value: SafeAny) => boolean;\r\n className: string;\r\n};\r\n\r\nexport const usePowellConfig = () => {\r\n const [powellConfig, setPowellConfig] = configService.use();\r\n const {\r\n setPt,\r\n setFilterMatchModeOptions,\r\n setLocale,\r\n setNonce,\r\n setHideOverlaysOnDocumentScrolling,\r\n setRipple,\r\n setCssTransition,\r\n setStyleContainer,\r\n setInputStyle,\r\n setNullSortOrder,\r\n setZIndex,\r\n setAutoZIndex,\r\n setAppendTo,\r\n changeTheme,\r\n ...restPrimeConfig\r\n } = useContext($PrimeReactContext);\r\n\r\n const configAction: Partial<Record<keyof PowellConfig, Dispatch<SetStateAction<SafeAny>>>> = {\r\n pt: setPt,\r\n filterMatchModeOptions: setFilterMatchModeOptions,\r\n locale: setLocale,\r\n nonce: setNonce,\r\n hideOverlaysOnDocumentScrolling: setHideOverlaysOnDocumentScrolling,\r\n ripple: setRipple,\r\n cssTransition: setCssTransition,\r\n styleContainer: setStyleContainer,\r\n inputStyle: setInputStyle,\r\n nullSortOrder: setNullSortOrder,\r\n zIndex: setZIndex,\r\n autoZIndex: setAutoZIndex,\r\n appendTo: setAppendTo,\r\n theme: (v: PowellConfig) => changeTheme?.(powellConfig.theme, v.theme!, 'powell-theme-link')\r\n }\r\n const updateConfig = (c: Partial<PowellConfig>) => {\r\n for (const key in c) {\r\n if (key in configAction) {\r\n configAction[key as keyof PowellConfig]?.(c);\r\n }\r\n applyConfigToDom({...c, injectDirectionToRoot: powellConfig.injectDirectionToRoot});\r\n setPowellConfig(prev => ({...prev, ...c}));\r\n }\r\n }\r\n return [{...powellConfig, ...restPrimeConfig}, updateConfig] as [config: PowellConfig, (c: Partial<PowellConfig>) => any];\r\n}\r\n\r\nexport const applyConfigToDom = (config: PowellConfig) => {\r\n handleBodyClasses(config);\r\n if ('rtl' in config && config.injectDirectionToRoot) {\r\n document.documentElement.setAttribute('dir', config.rtl ? 'rtl' : 'ltr');\r\n } else {\r\n document.documentElement.removeAttribute('dir');\r\n }\r\n}\r\n\r\nconst kebabCase = (str: string) => str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\r\n\r\nconst handleBodyClasses = (config: PowellConfig) => {\r\n const specialBodyClassRules: Partial<Record<keyof PowellConfig, BodyClassRule[]>> = {\r\n ripple: [\r\n {\r\n condition: (v) => v === false,\r\n className: 'p-ripple-disabled',\r\n },\r\n ],\r\n inputStyle: [\r\n {\r\n condition: (v) => v === 'filled',\r\n className: 'p-input-filled',\r\n },\r\n ],\r\n };\r\n\r\n for (const key in config) {\r\n const value = config[key as keyof PowellConfig];\r\n if (value === undefined) continue;\r\n\r\n const rules = specialBodyClassRules[key as keyof PowellConfig];\r\n\r\n if (rules && rules.length) {\r\n for (const rule of rules) {\r\n const shouldApply = rule.condition(value);\r\n document.body.classList.toggle(rule.className, shouldApply);\r\n }\r\n } else {\r\n const prefix = `powell-${kebabCase(key)}-`;\r\n document.body.classList.forEach((cls) => {\r\n if (cls.startsWith(prefix)) {\r\n document.body.classList.remove(cls);\r\n }\r\n });\r\n const finalValue = typeof value === 'boolean' ? (value ? 'enabled' : 'disabled') : value;\r\n document.body.classList.add(`${prefix}${finalValue}`);\r\n }\r\n }\r\n};\r\n\r\n"],"names":["$PrimeReactContext"],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { useState, useLayoutEffect, useEffect, useRef } from 'react';
2
+
3
+ const useIsomorphicLayoutEffect = typeof window !== "undefined" || typeof document !== "undefined" ? useLayoutEffect : useEffect;
4
+ const equ = (a, b) => a === b;
5
+ const FR = {};
6
+ function useComparator(v, c = equ) {
7
+ const f = useRef(FR);
8
+ let nv = f.current;
9
+ useIsomorphicLayoutEffect(() => {
10
+ f.current = nv;
11
+ });
12
+ if (f.current === FR || !c(v, f.current)) {
13
+ nv = v;
14
+ }
15
+ return nv;
16
+ }
17
+ function globalState(initialValue, options) {
18
+ let sb = [];
19
+ let v = initialValue;
20
+ function set(newValue, callback) {
21
+ const pv = v;
22
+ v = newValue instanceof Function ? newValue(v) : newValue;
23
+ setTimeout(() => {
24
+ sb.forEach((c) => c(v, pv));
25
+ callback?.(v, pv);
26
+ options?.onSet?.(v, pv);
27
+ });
28
+ }
29
+ function subscribe(subscriber) {
30
+ sb.push(subscriber);
31
+ return () => {
32
+ sb = sb.filter((f) => f !== subscriber);
33
+ };
34
+ }
35
+ function useSubscription(subscriber) {
36
+ useIsomorphicLayoutEffect(() => subscribe(subscriber), [subscriber]);
37
+ }
38
+ function use() {
39
+ const [l, s] = useState(v);
40
+ useSubscription(s);
41
+ return [l, set];
42
+ }
43
+ function useSelector(selector, comparator = equ) {
44
+ const [rv] = use();
45
+ return useComparator(selector(rv), comparator);
46
+ }
47
+ return {
48
+ use,
49
+ useSelector,
50
+ useValue: () => use()[0],
51
+ get: () => v,
52
+ set,
53
+ reset: () => set(initialValue),
54
+ subscribe
55
+ };
56
+ }
57
+
58
+ export { globalState };
59
+ //# sourceMappingURL=index.es9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es9.js","sources":["../src/powell/utils/globalState.ts"],"sourcesContent":["import {SetStateAction, useEffect, useLayoutEffect, useRef, useState} from \"react\";\r\n\r\ntype Set<T> = (newState: SetStateAction<T>, callback?: (newState: T) => void) => void;\r\n\r\ntype UseSelector<T> = <TSelected = unknown>(selector: (state: T) => TSelected, equalityFn?: Comparator<TSelected>) => TSelected;\r\n\r\nexport interface StateWithValue<T> {\r\n use: () => [T, Set<T>];\r\n useValue: () => T;\r\n get: () => T;\r\n useSelector: UseSelector<T>;\r\n set: Set<T>;\r\n reset: () => void;\r\n subscribe(subscriber: SubscriberFunc<T>): () => void;\r\n}\r\n\r\ntype SubscriberFunc<T> = (newState: T, previousState: T) => void;\r\n\r\ninterface Options<T> {\r\n onSet?: SubscriberFunc<T>;\r\n}\r\n\r\ntype Comparator<TSelected = unknown> = (a: TSelected, b: TSelected) => boolean;\r\n\r\nconst useIsomorphicLayoutEffect =\r\n typeof window !== \"undefined\" || typeof document !== \"undefined\"\r\n ? useLayoutEffect\r\n : useEffect;\r\n\r\nconst equ: Comparator = (a, b) => a === b;\r\n\r\nconst FR = {};\r\n\r\nfunction useComparator<T>(v: T, c: Comparator<T> = equ): T {\r\n const f = useRef(FR as T);\r\n let nv = f.current;\r\n\r\n useIsomorphicLayoutEffect(() => {\r\n f.current = nv;\r\n });\r\n\r\n if (f.current === FR || !c(v, f.current)) {\r\n nv = v;\r\n }\r\n\r\n return nv;\r\n}\r\n\r\nexport function globalState<T>(initialValue: T, options?: Options<T>): StateWithValue<T> {\r\n let sb: SubscriberFunc<T>[] = [];\r\n\r\n let v: T = initialValue;\r\n\r\n function set(newValue: SetStateAction<T>, callback?: SubscriberFunc<T>) {\r\n const pv = v;\r\n v = newValue instanceof Function ? newValue(v) : newValue;\r\n\r\n setTimeout(() => {\r\n sb.forEach((c) => c(v, pv));\r\n callback?.(v, pv);\r\n options?.onSet?.(v, pv);\r\n });\r\n }\r\n\r\n function subscribe(subscriber: SubscriberFunc<T>): () => void {\r\n sb.push(subscriber);\r\n return () => {\r\n sb = sb.filter((f) => f !== subscriber);\r\n };\r\n }\r\n\r\n function useSubscription(subscriber: SubscriberFunc<T>) {\r\n useIsomorphicLayoutEffect(() => subscribe(subscriber), [subscriber]);\r\n }\r\n\r\n function use(): [T, Set<T>] {\r\n const [l, s] = useState<T>(v);\r\n useSubscription(s);\r\n return [l, set];\r\n }\r\n\r\n function useSelector<TSelected = unknown>(selector: (state: T) => TSelected, comparator: Comparator<TSelected> = equ): TSelected {\r\n const [rv] = use();\r\n return useComparator(selector(rv), comparator);\r\n }\r\n\r\n return {\r\n use,\r\n useSelector,\r\n useValue: () => use()[0],\r\n get: () => v,\r\n set,\r\n reset: () => set(initialValue),\r\n subscribe,\r\n };\r\n}\r\n"],"names":[],"mappings":";;AAwBA,MAAM,4BACF,OAAO,MAAA,KAAW,eAAe,OAAO,QAAA,KAAa,cAC/C,eACA,GAAA,SAAA;AAEV,MAAM,GAAkB,GAAA,CAAC,CAAG,EAAA,CAAA,KAAM,CAAM,KAAA,CAAA;AAExC,MAAM,KAAK,EAAC;AAEZ,SAAS,aAAA,CAAiB,CAAM,EAAA,CAAA,GAAmB,GAAQ,EAAA;AACzD,EAAM,MAAA,CAAA,GAAI,OAAO,EAAO,CAAA;AACxB,EAAA,IAAI,KAAK,CAAE,CAAA,OAAA;AAEX,EAAA,yBAAA,CAA0B,MAAM;AAC9B,IAAA,CAAA,CAAE,OAAU,GAAA,EAAA;AAAA,GACb,CAAA;AAED,EAAI,IAAA,CAAA,CAAE,YAAY,EAAM,IAAA,CAAC,EAAE,CAAG,EAAA,CAAA,CAAE,OAAO,CAAG,EAAA;AACxC,IAAK,EAAA,GAAA,CAAA;AAAA;AAGP,EAAO,OAAA,EAAA;AACT;AAEgB,SAAA,WAAA,CAAe,cAAiB,OAAyC,EAAA;AACvF,EAAA,IAAI,KAA0B,EAAC;AAE/B,EAAA,IAAI,CAAO,GAAA,YAAA;AAEX,EAAS,SAAA,GAAA,CAAI,UAA6B,QAA8B,EAAA;AACtE,IAAA,MAAM,EAAK,GAAA,CAAA;AACX,IAAA,CAAA,GAAI,QAAoB,YAAA,QAAA,GAAW,QAAS,CAAA,CAAC,CAAI,GAAA,QAAA;AAEjD,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,EAAA,CAAG,QAAQ,CAAC,CAAA,KAAM,CAAE,CAAA,CAAA,EAAG,EAAE,CAAC,CAAA;AAC1B,MAAA,QAAA,GAAW,GAAG,EAAE,CAAA;AAChB,MAAS,OAAA,EAAA,KAAA,GAAQ,GAAG,EAAE,CAAA;AAAA,KACvB,CAAA;AAAA;AAGH,EAAA,SAAS,UAAU,UAA2C,EAAA;AAC5D,IAAA,EAAA,CAAG,KAAK,UAAU,CAAA;AAClB,IAAA,OAAO,MAAM;AACX,MAAA,EAAA,GAAK,EAAG,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,MAAM,UAAU,CAAA;AAAA,KACxC;AAAA;AAGF,EAAA,SAAS,gBAAgB,UAA+B,EAAA;AACtD,IAAA,yBAAA,CAA0B,MAAM,SAAU,CAAA,UAAU,CAAG,EAAA,CAAC,UAAU,CAAC,CAAA;AAAA;AAGrE,EAAA,SAAS,GAAmB,GAAA;AAC1B,IAAA,MAAM,CAAC,CAAA,EAAG,CAAC,CAAA,GAAI,SAAY,CAAC,CAAA;AAC5B,IAAA,eAAA,CAAgB,CAAC,CAAA;AACjB,IAAO,OAAA,CAAC,GAAG,GAAG,CAAA;AAAA;AAGhB,EAAS,SAAA,WAAA,CAAiC,QAAmC,EAAA,UAAA,GAAoC,GAAgB,EAAA;AAC/H,IAAM,MAAA,CAAC,EAAE,CAAA,GAAI,GAAI,EAAA;AACjB,IAAA,OAAO,aAAc,CAAA,QAAA,CAAS,EAAE,CAAA,EAAG,UAAU,CAAA;AAAA;AAG/C,EAAO,OAAA;AAAA,IACL,GAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAU,EAAA,MAAM,GAAI,EAAA,CAAE,CAAC,CAAA;AAAA,IACvB,KAAK,MAAM,CAAA;AAAA,IACX,GAAA;AAAA,IACA,KAAA,EAAO,MAAM,GAAA,CAAI,YAAY,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powell-react",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "private": false,
5
5
  "description": "A collection of PrimeReact-based components for Powell projects.",
6
6
  "keywords": [
@@ -41,7 +41,10 @@
41
41
  "build:types": "tsc --emitDeclarationOnly --declaration --outDir dist/types",
42
42
  "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
43
43
  "preview": "vite preview",
44
- "prepublishOnly": "npm run build"
44
+ "prepublishOnly": "npm run build",
45
+ "release:patch": "npm version patch && npm publish --access public",
46
+ "release:minor": "npm version minor && npm publish --access public",
47
+ "release:major": "npm version major && npm publish --access public"
45
48
  },
46
49
  "dependencies": {
47
50
  "formik": "^2.4.6",