@rivtn/noseur 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 (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/esm/Template.d.ts +7 -0
  4. package/dist/esm/Template.js +13 -0
  5. package/dist/esm/compose/Composed.css +437 -0
  6. package/dist/esm/compose/exotic/ColorPicker.d.ts +41 -0
  7. package/dist/esm/compose/exotic/ColorPicker.js +85 -0
  8. package/dist/esm/compose/exotic/ColorSlider.d.ts +30 -0
  9. package/dist/esm/compose/exotic/ColorSlider.js +99 -0
  10. package/dist/esm/compose/form/ComposedPassword.d.ts +25 -0
  11. package/dist/esm/compose/form/ComposedPassword.js +103 -0
  12. package/dist/esm/compose/form/DateTimeInput.d.ts +28 -0
  13. package/dist/esm/compose/form/DateTimeInput.js +154 -0
  14. package/dist/esm/compose/form/DateTimePicker.d.ts +341 -0
  15. package/dist/esm/compose/form/DateTimePicker.js +1265 -0
  16. package/dist/esm/compose/form/FormControl.d.ts +33 -0
  17. package/dist/esm/compose/form/FormControl.js +163 -0
  18. package/dist/esm/compose/form/FormGroup.d.ts +14 -0
  19. package/dist/esm/compose/form/FormGroup.js +58 -0
  20. package/dist/esm/compose/overlay/Alert.d.ts +56 -0
  21. package/dist/esm/compose/overlay/Alert.js +267 -0
  22. package/dist/esm/constants/Alignment.d.ts +17 -0
  23. package/dist/esm/constants/Alignment.js +18 -0
  24. package/dist/esm/constants/Direction.d.ts +26 -0
  25. package/dist/esm/constants/Direction.js +22 -0
  26. package/dist/esm/constants/Orientation.d.ts +8 -0
  27. package/dist/esm/constants/Orientation.js +9 -0
  28. package/dist/esm/constants/Scheme.d.ts +39 -0
  29. package/dist/esm/constants/Scheme.js +43 -0
  30. package/dist/esm/constants/Transition.d.ts +81 -0
  31. package/dist/esm/constants/Transition.js +85 -0
  32. package/dist/esm/constants/Types.d.ts +74 -0
  33. package/dist/esm/constants/Types.js +14 -0
  34. package/dist/esm/core/ComponentBaseProps.d.ts +53 -0
  35. package/dist/esm/core/ComponentBaseProps.js +33 -0
  36. package/dist/esm/core/noseur.css +2390 -0
  37. package/dist/esm/data/Column.d.ts +235 -0
  38. package/dist/esm/data/Column.js +98 -0
  39. package/dist/esm/data/Data.css +213 -0
  40. package/dist/esm/data/Data.d.ts +98 -0
  41. package/dist/esm/data/Data.js +142 -0
  42. package/dist/esm/data/List.d.ts +14 -0
  43. package/dist/esm/data/List.js +117 -0
  44. package/dist/esm/data/Table.d.ts +22 -0
  45. package/dist/esm/data/Table.js +236 -0
  46. package/dist/esm/form/Button.d.ts +35 -0
  47. package/dist/esm/form/Button.js +131 -0
  48. package/dist/esm/form/Calendar.d.ts +20 -0
  49. package/dist/esm/form/Calendar.js +46 -0
  50. package/dist/esm/form/Checkbox.d.ts +20 -0
  51. package/dist/esm/form/Checkbox.js +155 -0
  52. package/dist/esm/form/ColorMap.d.ts +22 -0
  53. package/dist/esm/form/ColorMap.js +43 -0
  54. package/dist/esm/form/ColorPalette.d.ts +28 -0
  55. package/dist/esm/form/ColorPalette.js +87 -0
  56. package/dist/esm/form/Dropdown.d.ts +78 -0
  57. package/dist/esm/form/Dropdown.js +360 -0
  58. package/dist/esm/form/FileInput.d.ts +134 -0
  59. package/dist/esm/form/FileInput.js +523 -0
  60. package/dist/esm/form/Form.css +467 -0
  61. package/dist/esm/form/Input.d.ts +45 -0
  62. package/dist/esm/form/Input.js +186 -0
  63. package/dist/esm/form/RadioButton.d.ts +21 -0
  64. package/dist/esm/form/RadioButton.js +178 -0
  65. package/dist/esm/form/Slider.d.ts +21 -0
  66. package/dist/esm/form/Slider.js +163 -0
  67. package/dist/esm/hooks/useSearchParams.d.ts +15 -0
  68. package/dist/esm/hooks/useSearchParams.js +50 -0
  69. package/dist/esm/hooks/useSubscription.d.ts +9 -0
  70. package/dist/esm/hooks/useSubscription.js +26 -0
  71. package/dist/esm/index.d.ts +60 -0
  72. package/dist/esm/index.js +73 -0
  73. package/dist/esm/layout/GridView.d.ts +23 -0
  74. package/dist/esm/layout/GridView.js +34 -0
  75. package/dist/esm/layout/Layout.css +5 -0
  76. package/dist/esm/misc/Misc.css +164 -0
  77. package/dist/esm/misc/ProgressBar.d.ts +22 -0
  78. package/dist/esm/misc/ProgressBar.js +86 -0
  79. package/dist/esm/overlay/Dialog.d.ts +46 -0
  80. package/dist/esm/overlay/Dialog.js +290 -0
  81. package/dist/esm/overlay/Message.d.ts +35 -0
  82. package/dist/esm/overlay/Message.js +187 -0
  83. package/dist/esm/overlay/Overlay.css +382 -0
  84. package/dist/esm/overlay/Popover.d.ts +30 -0
  85. package/dist/esm/overlay/Popover.js +245 -0
  86. package/dist/esm/overlay/Portal.d.ts +11 -0
  87. package/dist/esm/overlay/Portal.js +29 -0
  88. package/dist/esm/overlay/Toast.d.ts +49 -0
  89. package/dist/esm/overlay/Toast.js +341 -0
  90. package/dist/esm/panel/Accordion.d.ts +26 -0
  91. package/dist/esm/panel/Accordion.js +127 -0
  92. package/dist/esm/panel/Panel.css +317 -0
  93. package/dist/esm/panel/Panel.d.ts +43 -0
  94. package/dist/esm/panel/Panel.js +125 -0
  95. package/dist/esm/panel/ScrollPanel.d.ts +27 -0
  96. package/dist/esm/panel/ScrollPanel.js +43 -0
  97. package/dist/esm/panel/TabPane.d.ts +82 -0
  98. package/dist/esm/panel/TabPane.js +237 -0
  99. package/dist/esm/presentation/Chart.d.ts +49 -0
  100. package/dist/esm/presentation/Chart.js +62 -0
  101. package/dist/esm/presentation/Paginator.d.ts +90 -0
  102. package/dist/esm/presentation/Paginator.js +331 -0
  103. package/dist/esm/presentation/Presentation.css +23 -0
  104. package/dist/esm/sensor/DragSensor.d.ts +50 -0
  105. package/dist/esm/sensor/DragSensor.js +156 -0
  106. package/dist/esm/sensor/ViewportSensor.d.ts +18 -0
  107. package/dist/esm/sensor/ViewportSensor.js +85 -0
  108. package/dist/esm/utils/BoolHelper.d.ts +13 -0
  109. package/dist/esm/utils/BoolHelper.js +105 -0
  110. package/dist/esm/utils/Classname.d.ts +9 -0
  111. package/dist/esm/utils/Classname.js +20 -0
  112. package/dist/esm/utils/ColorHelper.d.ts +127 -0
  113. package/dist/esm/utils/ColorHelper.js +198 -0
  114. package/dist/esm/utils/DOMUtils.d.ts +142 -0
  115. package/dist/esm/utils/DOMUtils.js +759 -0
  116. package/dist/esm/utils/DateHelper.d.ts +115 -0
  117. package/dist/esm/utils/DateHelper.js +338 -0
  118. package/dist/esm/utils/Debugger.d.ts +12 -0
  119. package/dist/esm/utils/Debugger.js +30 -0
  120. package/dist/esm/utils/FileHelper.d.ts +8 -0
  121. package/dist/esm/utils/FileHelper.js +65 -0
  122. package/dist/esm/utils/FunctionStackManager.d.ts +13 -0
  123. package/dist/esm/utils/FunctionStackManager.js +59 -0
  124. package/dist/esm/utils/InputHelper.d.ts +37 -0
  125. package/dist/esm/utils/InputHelper.js +70 -0
  126. package/dist/esm/utils/MicroBuilder.d.ts +24 -0
  127. package/dist/esm/utils/MicroBuilder.js +61 -0
  128. package/dist/esm/utils/ObjectHelper.d.ts +51 -0
  129. package/dist/esm/utils/ObjectHelper.js +334 -0
  130. package/dist/esm/utils/StringHelper.d.ts +10 -0
  131. package/dist/esm/utils/StringHelper.js +54 -0
  132. package/dist/esm/utils/Subscriber.d.ts +14 -0
  133. package/dist/esm/utils/Subscriber.js +27 -0
  134. package/dist/esm/utils/Timer.d.ts +32 -0
  135. package/dist/esm/utils/Timer.js +68 -0
  136. package/dist/esm/utils/TypeChecker.d.ts +12 -0
  137. package/dist/esm/utils/TypeChecker.js +38 -0
  138. package/package.json +63 -0
@@ -0,0 +1,68 @@
1
+ // TODO update to be able to maintain states and data
2
+ export class Timer {
3
+ timer;
4
+ startTime;
5
+ cbs;
6
+ isInterval;
7
+ totalTicks = 0;
8
+ elapseTicks = 0;
9
+ options = {};
10
+ constructor(options, ...args) {
11
+ this.cbs = options.cbs;
12
+ this.options["args"] = args;
13
+ this.isInterval = options.isInterval;
14
+ this.options["timeout"] = options.timeout;
15
+ this.options["delay"] = options.delay ?? 1000;
16
+ this.totalTicks = this.elapseTicks = options.timeout / this.options["delay"];
17
+ }
18
+ start(__resumed__ = false) {
19
+ const timeoutMethod = this.isInterval ? setInterval : setTimeout;
20
+ this.startTime = new Date().getTime();
21
+ this.timer = timeoutMethod((...args) => {
22
+ this.cbs?.action && this.cbs?.action(...args);
23
+ if (!this.isInterval) {
24
+ this.cbs?.onAction && this.cbs?.onAction(100);
25
+ this.cbs?.onEnd && this.cbs?.onEnd();
26
+ return;
27
+ }
28
+ const percentageTick = 100 - (((--this.elapseTicks) * 100) / this.totalTicks);
29
+ this.cbs?.onAction && this.cbs?.onAction(percentageTick);
30
+ if (percentageTick >= 100) {
31
+ this.startTime = undefined;
32
+ clearTimeout(this.timer);
33
+ this.timer = undefined;
34
+ this.cbs?.onEnd && this.cbs?.onEnd();
35
+ }
36
+ }, (this.isInterval ? this.options["delay"] : this.options["timeout"]), ...this.options["args"]);
37
+ if (!__resumed__)
38
+ this.cbs?.onStart && this.cbs.onStart();
39
+ }
40
+ stop() {
41
+ this.startTime = undefined;
42
+ clearTimeout(this.timer);
43
+ this.timer = undefined;
44
+ this.cbs?.onStop && this.cbs.onStop();
45
+ }
46
+ pause() {
47
+ if (!this.startTime)
48
+ return;
49
+ this.stop();
50
+ this.cbs?.onPause && this.cbs.onPause();
51
+ this.options["timeout"] -= (new Date()).getTime() - this.startTime;
52
+ }
53
+ resume() {
54
+ this.start(true);
55
+ this.cbs?.onResume && this.cbs.onResume();
56
+ }
57
+ restart(timeout) {
58
+ this.stop();
59
+ this.start();
60
+ if (timeout) {
61
+ this.totalTicks = this.elapseTicks = timeout / this.options["delay"];
62
+ }
63
+ else {
64
+ this.elapseTicks = this.totalTicks;
65
+ }
66
+ this.cbs?.onRestart && this.cbs.onRestart();
67
+ }
68
+ }
@@ -0,0 +1,12 @@
1
+ export declare const TypeChecker: {
2
+ isString(data: any): data is string;
3
+ isTypeOfAny(obj: any, compares: string[]): boolean;
4
+ isFunction(obj: any): boolean;
5
+ isReactElement(obj: any): boolean;
6
+ isDict(obj: any): any;
7
+ isObject(obj: any): any;
8
+ isArray(obj: any): any;
9
+ isNumber(obj: any): any;
10
+ isBoolean(obj: any): boolean;
11
+ isNativeEqualrableType(obj: any): any;
12
+ };
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import { BoolHelper } from "./BoolHelper";
3
+ export const TypeChecker = {
4
+ isString(data) {
5
+ return typeof data === 'string';
6
+ },
7
+ isTypeOfAny(obj, compares) {
8
+ return BoolHelper.equalsAny(typeof obj, compares);
9
+ },
10
+ isFunction(obj) {
11
+ if (!obj)
12
+ return false;
13
+ return typeof obj == "function" && (obj instanceof Function) || !!(obj && obj.constructor && obj.call && obj.apply);
14
+ },
15
+ isReactElement(obj) {
16
+ if (!obj)
17
+ return false;
18
+ return React.isValidElement(obj);
19
+ },
20
+ isDict(obj) {
21
+ return obj && typeof obj === 'object' && obj !== null && !(obj instanceof Array) && !(obj instanceof Date);
22
+ },
23
+ isObject(obj) {
24
+ return obj && typeof obj === 'object';
25
+ },
26
+ isArray(obj) {
27
+ return obj && Array.isArray(obj);
28
+ },
29
+ isNumber(obj) {
30
+ return obj && ((obj != null) && (obj !== '') && !isNaN(Number(obj.toString())));
31
+ },
32
+ isBoolean(obj) {
33
+ return TypeChecker.isTypeOfAny(obj, ["boolean"]);
34
+ },
35
+ isNativeEqualrableType(obj) {
36
+ return TypeChecker.isTypeOfAny(obj, ["string", "boolean"]) || TypeChecker.isNumber(obj) || TypeChecker.isFunction(obj);
37
+ },
38
+ };
package/package.json ADDED
@@ -0,0 +1,63 @@
1
+ {
2
+ "name": "@rivtn/noseur",
3
+ "version": "1.0.0",
4
+ "description": "Eccentric, managed and configurable react components",
5
+ "main": "./dist/cjs/index.js",
6
+ "module": "./dist/esm/index.js",
7
+ "types": "./dist/esm/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc",
10
+ "clean": "sh -c 'rm -Rf dist'",
11
+ "update": "npx -y npm-check-updates -u",
12
+ "_build:css": "sass src/ -o dist/esm/ ",
13
+ "showcase": "sh -c 'cd showcase; npm run watch'",
14
+ "lint": "eslint \"{**/*,*}.{js,ts,jsx,tsx}\"",
15
+ "build:css": "sass --no-source-map src:dist/esm",
16
+ "test": "echo \"Error: no test specified\" && exit 1",
17
+ "build:css:production": "sass --no-source-map --style=compressed src:dist/esm",
18
+ "pack": "npm run clean && npm run build && npm run build:css && npm pack"
19
+ },
20
+ "files": [
21
+ "dist",
22
+ "LICENSE",
23
+ "README.md"
24
+ ],
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/rivtn/noseur.git"
28
+ },
29
+ "keywords": [
30
+ "react",
31
+ "component",
32
+ "ui",
33
+ "theme",
34
+ "ronuse",
35
+ "rivtn"
36
+ ],
37
+ "author": "Adewale Azeez",
38
+ "license": "MIT",
39
+ "bugs": {
40
+ "url": "https://github.com/rivtn/noseur/issues"
41
+ },
42
+ "homepage": "https://rivtn.github.io/noseur",
43
+ "dependencies": {
44
+ "@types/chart.js": "^4.0.1",
45
+ "@types/react": "^19.2.14",
46
+ "@types/react-dom": "^19.2.3",
47
+ "@types/react-transition-group": "^4.4.12",
48
+ "chart.js": "^4.5.1",
49
+ "react": "^19.2.5",
50
+ "react-dom": "^19.2.5",
51
+ "react-router-dom": "^7.14.0",
52
+ "react-transition-group": "^4.4.5",
53
+ "sass": "^1.99.0",
54
+ "tslib": "^2.8.1",
55
+ "typescript": "^6.0.2"
56
+ },
57
+ "devDependencies": {
58
+ "@typescript-eslint/eslint-plugin": "^8.58.1",
59
+ "@typescript-eslint/parser": "^8.58.1",
60
+ "eslint-plugin-react": "^7.37.5",
61
+ "eslint-plugin-react-hooks": "^7.0.1"
62
+ }
63
+ }