@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rivtn
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # noseur
2
+ Eccentric, managed and configurable react components by Rivtn
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import { ComponentBaseProps } from "./core/ComponentBaseProps";
3
+ export interface TemplateManageRef {
4
+ }
5
+ export interface TemplateProps extends ComponentBaseProps<HTMLDivElement, TemplateManageRef> {
6
+ }
7
+ export declare const Template: ({ ref, ...props }: Partial<TemplateProps>) => React.JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ class TemplateComponent extends React.Component {
3
+ static defaultProps = {};
4
+ state = {};
5
+ constructor(props) {
6
+ super(props);
7
+ }
8
+ render() {
9
+ return (React.createElement("div", null, "Template"));
10
+ }
11
+ ;
12
+ }
13
+ export const Template = ({ ref, ...props }) => (React.createElement(TemplateComponent, { ...props, forwardRef: ref }));
@@ -0,0 +1,437 @@
1
+ /* Form Control */
2
+ .noseur-fctrl {
3
+ margin: 0px;
4
+ display: flex;
5
+ width: fit-content;
6
+ align-items: stretch;
7
+ flex-direction: column;
8
+ }
9
+
10
+ .noseur-fctrl > .noseur-fctrl-l {
11
+ margin-bottom: 5px;
12
+ }
13
+
14
+ .noseur-fctrl > .noseur-fctrl-il,
15
+ .noseur-fctrl > .noseur-fctrl-hl {
16
+ margin-top: 5px;
17
+ font-size: 13px;
18
+ }
19
+
20
+ .noseur-fctrl-c {
21
+ margin: 0px;
22
+ width: 100%;
23
+ display: flex;
24
+ outline: none;
25
+ position: relative;
26
+ border-radius: 6px;
27
+ align-items: center;
28
+ box-sizing: border-box;
29
+ border: 1px solid #dfdfdf;
30
+ -moz-box-sizing: border-box;
31
+ -webkit-box-sizing: border-box;
32
+ }
33
+
34
+ .noseur-fctrl-lc,
35
+ .noseur-fctrl-rc,
36
+ .noseur-fctrl-coc {
37
+ top: 0px;
38
+ margin: 0px;
39
+ height: 100%;
40
+ display: flex;
41
+ min-width: 40px;
42
+ align-items: center;
43
+ flex-direction: column;
44
+ justify-content: center;
45
+ }
46
+
47
+ .noseur-fctrl-coc {
48
+ position: absolute;
49
+ }
50
+
51
+ .noseur-fctrl-lc {
52
+ top: 0px;
53
+ left: 0px;
54
+ }
55
+
56
+ .noseur-fctrl-rc {
57
+ right: 0px;
58
+ }
59
+
60
+ .noseur-fctrl-coc {
61
+ left: 10px;
62
+ }
63
+
64
+ .noseur-fctrl-cc {
65
+ flex: 1;
66
+ }
67
+
68
+ input.noseur-fctrl-cc {
69
+ width: 0px;
70
+ }
71
+
72
+ /* ComposedPassword */
73
+ .noseur-composed-password {
74
+ display: flex;
75
+ flex-direction: column;
76
+ }
77
+
78
+ .noseur-composed-password > .noseur-fctrl {
79
+ width: 100%;
80
+ }
81
+
82
+ .noseur-composed-password > .noseur-progress-bar {
83
+ height: 5px;
84
+ margin-top: 5px;
85
+ }
86
+
87
+ /* Alert */
88
+ .noseur-alert {
89
+ max-width: 90%;
90
+ width: max-content !important;
91
+ }
92
+
93
+ .noseur-popover.noseur-alert {
94
+ padding: 1rem;
95
+ background-color: white;
96
+ }
97
+
98
+ .noseur-popover.noseur-alert,
99
+ .noseur-alert > .noseur-dialog-content {
100
+ border-radius: 4px;
101
+ }
102
+
103
+ .noseur-alert > .noseur-dialog-content {
104
+ flex: 1;
105
+ display: flex;
106
+ flex-direction: column;
107
+ }
108
+
109
+ .noseur-popover.noseur-alert > .noseur-alert-content,
110
+ .noseur-alert > .noseur-dialog-content > .noseur-alert-content {
111
+ flex: 1;
112
+ display: flex;
113
+ }
114
+
115
+ .noseur-popover.noseur-alert > .noseur-alert-footer,
116
+ .noseur-alert > .noseur-dialog-content > .noseur-alert-footer {
117
+ display: flex;
118
+ padding-top: 1rem;
119
+ align-items: flex-end;
120
+ justify-content: flex-end;
121
+ }
122
+
123
+ .noseur-alert-footer-left {
124
+ align-items: flex-start !important;
125
+ justify-content: flex-start !important;
126
+ }
127
+
128
+ .noseur-alert-footer-center {
129
+ align-items: center !important;
130
+ justify-content: center !important;
131
+ }
132
+
133
+ .noseur-alert-footer > * {
134
+ margin-left: 1rem;
135
+ margin-right: 0rem;
136
+ }
137
+
138
+ .noseur-alert-footer-left > * {
139
+ margin-left: 0px;
140
+ margin-right: 1rem;
141
+ }
142
+
143
+ .noseur-alert-footer-center > * {
144
+ margin-left: 0px;
145
+ margin-right: 1rem;
146
+ }
147
+
148
+ .noseur-alert-footer-center > *:last-child {
149
+ margin-right: 0px;
150
+ }
151
+
152
+ .noseur-popover.noseur-alert > .noseur-alert-content > .noseur-dialog-content-icon,
153
+ .noseur-alert > .noseur-dialog-content > .noseur-alert-content > .noseur-dialog-content-icon {
154
+ margin: 0px 1rem 1rem 0px;
155
+ font-size: 3em;
156
+ }
157
+
158
+ .noseur-popover.noseur-alert.noseur-alert-loading > .noseur-alert-content > .noseur-dialog-content-icon,
159
+ .noseur-alert.noseur-alert-loading > .noseur-dialog-content > .noseur-alert-content > .noseur-dialog-content-icon {
160
+ margin: 0px;
161
+ }
162
+
163
+ /* Date Time Picker */
164
+ .noseur-date-time-picker,
165
+ .noseur-date-time-picker-column,
166
+ .noseur-date-time-picker-header,
167
+ .noseur-date-time-picker-footer,
168
+ .noseur-date-time-picker-weekdays,
169
+ .noseur-date-time-picker-top-panel,
170
+ .noseur-date-time-picker-layout-row,
171
+ .noseur-date-time-picker-left-panel,
172
+ .noseur-date-time-picker-right-panel,
173
+ .noseur-date-time-picker-bottom-panel,
174
+ .noseur-date-time-picker-layout-column,
175
+ .noseur-date-time-picker-year-mode-header,
176
+ .noseur-date-time-picker-year-mode-footer,
177
+ .noseur-date-time-picker-month-mode-header,
178
+ .noseur-date-time-picker-month-mode-footer {
179
+ display: flex;
180
+ }
181
+
182
+ .noseur-date-time-picker,
183
+ .noseur-date-time-picker-column,
184
+ .noseur-date-time-picker-layout-column {
185
+ width: fit-content;
186
+ flex-direction: column;
187
+ }
188
+
189
+ .noseur-date-time-picker-modal,
190
+ .noseur-date-time-picker-inline,
191
+ .noseur-date-time-picker-popover {
192
+ padding: 15px;
193
+ border-radius: 7px;
194
+ border: 1px solid var(--noseurSchemeDataBorderColor, rgb(145, 144, 144));
195
+ }
196
+
197
+ .noseur-date-time-picker-modal {
198
+ width: 100% !important;
199
+ padding: 0px !important;
200
+ }
201
+
202
+ .noseur-date-time-picker-modal .noseur-date-time-picker-layout-column {
203
+ flex: 1;
204
+ }
205
+
206
+ .noseur-date-time-picker-popover {
207
+ background: var(--containerBackground, white);
208
+ }
209
+
210
+ .noseur-date-time-picker-time-only {
211
+ padding: 0px 7px;
212
+ --componentMarginTopOrBottom: 0px !important;
213
+ }
214
+
215
+ .noseur-date-time-picker-top-panel,
216
+ .noseur-date-time-picker-bottom-panel {
217
+ flex: 1;
218
+ }
219
+
220
+ .noseur-date-time-picker-time-only > div > div > .noseur-date-time-picker-time {
221
+ margin: 0px;
222
+ }
223
+
224
+ .noseur-date-time-picker-popover {
225
+ margin: 15px;
226
+ }
227
+
228
+ .noseur-date-time-picker-seperator {
229
+ flex: 1;
230
+ }
231
+
232
+ .noseur-date-time-picker-header,
233
+ .noseur-date-time-picker-footer,
234
+ .noseur-date-time-picker-year-mode-header,
235
+ .noseur-date-time-picker-year-mode-footer,
236
+ .noseur-date-time-picker-month-mode-header,
237
+ .noseur-date-time-picker-month-mode-footer {
238
+ width: auto;
239
+ flex-grow: 1;
240
+ align-items: center;
241
+ }
242
+
243
+ .noseur-date-time-picker-header,
244
+ .noseur-date-time-picker-year-mode-header,
245
+ .noseur-date-time-picker-month-mode-header {
246
+ margin-bottom: 15px;
247
+ }
248
+
249
+ .noseur-date-time-picker-footer,
250
+ .noseur-date-time-picker-year-mode-footer,
251
+ .noseur-date-time-picker-month-mode-footer {
252
+ margin-top: 15px;
253
+ }
254
+
255
+ .noseur-date-time-picker-header > span,
256
+ .noseur-date-time-picker-footer > span,
257
+ .noseur-date-time-picker-year-mode-header > span,
258
+ .noseur-date-time-picker-year-mode-footer > span,
259
+ .noseur-date-time-picker-month-mode-header > span,
260
+ .noseur-date-time-picker-month-mode-footer > span {
261
+ margin: 0px 5px;
262
+ }
263
+
264
+ .noseur-date-time-picker-footer > button:first-child,
265
+ .noseur-date-time-picker-top-panel > button:first-child,
266
+ .noseur-date-time-picker-year-mode-footer:first-child,
267
+ .noseur-date-time-picker-month-mode-footer:first-child,
268
+ .noseur-date-time-picker-bottom-panel > button:first-child {
269
+ margin-right: 10px;
270
+ }
271
+
272
+ .noseur-date-time-picker-footer > button:not(.noseur-date-time-picker-footer > button:first-child),
273
+ .noseur-date-time-picker-top-panel > button:not(.noseur-date-time-picker-top-panel > button:first-child),
274
+ .noseur-date-time-picker-bottom-panel > button:not(.noseur-date-time-picker-bottom-panel > button:first-child) .noseur-date-time-picker-year-mode-footer > button:not(.noseur-date-time-picker-year-mode-footer > button:first-child),
275
+ .noseur-date-time-picker-month-mode-footer > button:not(.noseur-date-time-picker-month-mode-footer > button:first-child) {
276
+ margin-left: 10px;
277
+ }
278
+
279
+ .noseur-date-time-picker-left-panel,
280
+ .noseur-date-time-picker-right-panel {
281
+ height: 100%;
282
+ flex-direction: column;
283
+ }
284
+
285
+ .noseur-date-time-picker-left-panel {
286
+ margin-right: 25px;
287
+ }
288
+
289
+ .noseur-date-time-picker-right-panel {
290
+ margin-left: 25px;
291
+ }
292
+
293
+ .noseur-date-time-picker-weekdays > .noseur-date-time-picker-weekdays-day {
294
+ flex: 1;
295
+ display: flex;
296
+ font-weight: 500;
297
+ align-items: center;
298
+ justify-content: center;
299
+ }
300
+
301
+ .noseur-date-time-picker-days {
302
+ display: grid;
303
+ margin-top: 15px;
304
+ }
305
+
306
+ .noseur-date-time-picker-days > .noseur-date-time-picker-days-date {
307
+ width: 75%;
308
+ margin: 2px;
309
+ justify-self: center;
310
+ }
311
+
312
+ .noseur-date-time-picker-days > .noseur-date-time-picker-days-date-today,
313
+ .noseur-date-time-picker-days > .noseur-date-time-picker-days-date-in-range,
314
+ .noseur-date-time-picker-days > .noseur-date-time-picker-days-date-hover:hover {
315
+ background: var(--noseurSchemeStripColor, #dee2e6);
316
+ }
317
+
318
+ .noseur-date-time-picker-row,
319
+ .noseur-date-time-picker-time,
320
+ .noseur-date-time-picker-column {
321
+ width: fit-content;
322
+ align-items: center;
323
+ justify-content: center;
324
+ }
325
+
326
+ .noseur-date-time-picker-days-underline {
327
+ padding-top: 10px;
328
+ padding-bottom: 10px;
329
+ border-top: 1px solid var(--noseurSchemeDataBorderColor, rgb(145, 144, 144));
330
+ border-bottom: 1px solid var(--noseurSchemeDataBorderColor, rgb(145, 144, 144));
331
+ }
332
+
333
+ .noseur-date-time-picker-selected-dates {
334
+ width: auto;
335
+ display: flex;
336
+ flex-wrap: wrap;
337
+ justify-content: space-between;
338
+ }
339
+
340
+ .noseur-date-time-picker-selected-dates > .noseur-date-time-picker-selected-dates-selected-date:first-child {
341
+ margin-right: 10px;
342
+ }
343
+
344
+ .noseur-date-time-picker-selected-dates > .noseur-date-time-picker-selected-dates-selected-date:not(.noseur-date-time-picker-selected-dates > .noseur-date-time-picker-selected-dates-selected-date:first-child) {
345
+ margin-left: 10px;
346
+ }
347
+
348
+ .noseur-date-time-picker-time {
349
+ width: auto;
350
+ height: auto;
351
+ display: flex;
352
+ }
353
+
354
+ .noseur-date-time-picker-row {
355
+ display: flex;
356
+ flex-direction: row;
357
+ }
358
+
359
+ .noseur-date-time-picker-time-hours,
360
+ .noseur-date-time-picker-time-minutes,
361
+ .noseur-date-time-picker-time-seconds,
362
+ .noseur-date-time-picker-time-meridian {
363
+ margin: 0px 5px;
364
+ }
365
+
366
+ .noseur-date-time-picker-long-year,
367
+ .noseur-date-time-picker-month-name {
368
+ align-items: center;
369
+ display: inline-flex;
370
+ justify-content: center;
371
+ }
372
+
373
+ .noseur-date-time-picker-long-year-enabled,
374
+ .noseur-date-time-picker-month-name-enabled {
375
+ cursor: pointer;
376
+ }
377
+
378
+ .noseur-date-time-picker-long-year-selected,
379
+ .noseur-date-time-picker-month-name-selected,
380
+ .noseur-date-time-picker-long-year-enabled:hover,
381
+ .noseur-date-time-picker-month-name-enabled:hover {
382
+ color: var(--noseurSchemeTextColor, black);
383
+ }
384
+
385
+ .noseur-date-time-picker-years,
386
+ .noseur-date-time-picker-months {
387
+ display: grid;
388
+ grid-gap: 20px;
389
+ grid-template-columns: auto auto auto;
390
+ }
391
+
392
+ /* Date Time Picker */
393
+ .noseur-date-time-input {
394
+ width: auto;
395
+ }
396
+
397
+ .noseur-date-time-input-date-time-picker {
398
+ --componentMarginTopOrBottom: 3px !important;
399
+ }
400
+
401
+ /* ColorSlider */
402
+ .noseur-color-slider {
403
+ content: "";
404
+ --noseurSchemeAccentColor: transparent !important;
405
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAuSURBVHgBxYyxDQAwDMJIL+YT+DjtzFRliUfLcklqBCRT4eCTxbD6kdL2/LgYXqpvCbs3kBv/AAAAAElFTkSuQmCC) center repeat !important;
406
+ }
407
+
408
+ .noseur-color-slider-vertical {
409
+ width: 10px !important;
410
+ }
411
+
412
+ .noseur-color-slider-horizontal {
413
+ height: 10px !important;
414
+ }
415
+
416
+ .noseur-color-slider > .noseur-slider-handle {
417
+ --noseurSchemeMainColor: rgba(1, 1, 1, 0.6) !important;
418
+ }
419
+
420
+ .noseur-color-slider-range-vertical {
421
+ height: 100%;
422
+ }
423
+
424
+ .noseur-color-slider-range-horizontal {
425
+ width: 100%;
426
+ }
427
+
428
+ /* Fieldset */
429
+ .noseur-fieldset {
430
+ padding: 0px;
431
+ }
432
+
433
+ .noseur-fieldset-legend {
434
+ z-index: 2;
435
+ padding: 0px 7px;
436
+ margin: 0px 15px -6px 15px;
437
+ }
@@ -0,0 +1,41 @@
1
+ import "../Composed.css";
2
+ import React from "react";
3
+ import { ColorEventHandler } from "../../constants/Types";
4
+ import { ComponentBaseProps, ComponentRenderType } from "../../core/ComponentBaseProps";
5
+ import { DialogProps } from "../../overlay/Dialog";
6
+ import { PopoverProps } from "../../overlay/Popover";
7
+ export declare enum ColorPickerLayoutElement {
8
+ DashElement = "[d]",
9
+ SpaceElement = "[s]",
10
+ RowDividerElement = "[-]",
11
+ OpenRowGroupElement = "{",
12
+ CloseRowGroupElement = "}",
13
+ PanelSeparatorElement = "|",
14
+ ColumnDividerElement = "[|]",
15
+ SpaceLeftRightElement = "<>",
16
+ OpenColumnGroupElement = "<",
17
+ CloseColumnGroupElement = ">",
18
+ ClearElement = "ClearElement",
19
+ ChooseElement = "ChooseElement",
20
+ CancelElement = "CancelElement",
21
+ MapToggleElement = "MapToggleElement",
22
+ PalleteToggleElement = "PalleteToggleElement",
23
+ ClearSolidColorElement = "ClearSolidColorElement",
24
+ ColorFormatDropdownElement = "ColorFormatDropdownElement",
25
+ ClearTransparentColorElement = "ClearTransparentColorElement"
26
+ }
27
+ export declare enum ColorPickerLayout {
28
+ }
29
+ export type ColorPickerAttributesRelays = {
30
+ dialog?: Partial<DialogProps>;
31
+ popover?: Partial<PopoverProps>;
32
+ };
33
+ export interface ColorPickerManageRef {
34
+ }
35
+ export interface ColorPickerProps extends ComponentBaseProps<HTMLDivElement, ColorPickerManageRef, ColorPickerAttributesRelays> {
36
+ autoFocus: boolean;
37
+ modalVisible: boolean;
38
+ type: ComponentRenderType;
39
+ onSelectColor: ColorEventHandler;
40
+ }
41
+ export declare const ColorPicker: ({ ref, ...props }: Partial<ColorPickerProps>) => React.JSX.Element;
@@ -0,0 +1,85 @@
1
+ import "../Composed.css";
2
+ import React from "react";
3
+ import { ComponentRenderType } from "../../core/ComponentBaseProps";
4
+ export var ColorPickerLayoutElement;
5
+ (function (ColorPickerLayoutElement) {
6
+ ColorPickerLayoutElement["DashElement"] = "[d]";
7
+ ColorPickerLayoutElement["SpaceElement"] = "[s]";
8
+ ColorPickerLayoutElement["RowDividerElement"] = "[-]";
9
+ ColorPickerLayoutElement["OpenRowGroupElement"] = "{";
10
+ ColorPickerLayoutElement["CloseRowGroupElement"] = "}";
11
+ ColorPickerLayoutElement["PanelSeparatorElement"] = "|";
12
+ ColorPickerLayoutElement["ColumnDividerElement"] = "[|]";
13
+ ColorPickerLayoutElement["SpaceLeftRightElement"] = "<>";
14
+ ColorPickerLayoutElement["OpenColumnGroupElement"] = "<";
15
+ ColorPickerLayoutElement["CloseColumnGroupElement"] = ">";
16
+ ColorPickerLayoutElement["ClearElement"] = "ClearElement";
17
+ ColorPickerLayoutElement["ChooseElement"] = "ChooseElement";
18
+ ColorPickerLayoutElement["CancelElement"] = "CancelElement";
19
+ ColorPickerLayoutElement["MapToggleElement"] = "MapToggleElement";
20
+ ColorPickerLayoutElement["PalleteToggleElement"] = "PalleteToggleElement";
21
+ ColorPickerLayoutElement["ClearSolidColorElement"] = "ClearSolidColorElement";
22
+ ColorPickerLayoutElement["ColorFormatDropdownElement"] = "ColorFormatDropdownElement";
23
+ ColorPickerLayoutElement["ClearTransparentColorElement"] = "ClearTransparentColorElement";
24
+ })(ColorPickerLayoutElement || (ColorPickerLayoutElement = {}));
25
+ export var ColorPickerLayout;
26
+ (function (ColorPickerLayout) {
27
+ })(ColorPickerLayout || (ColorPickerLayout = {}));
28
+ class ColorPickerComponent extends React.Component {
29
+ static defaultProps = {};
30
+ state = {
31
+ modalVisible: this.props.modalVisible,
32
+ };
33
+ dialogManageRef = {};
34
+ popoverManageRef = {};
35
+ constructor(props) {
36
+ super(props);
37
+ this.toggle = this.toggle.bind(this);
38
+ this.toggleMapComponent = this.toggleMapComponent.bind(this);
39
+ this.togglePalleteElement = this.togglePalleteElement.bind(this);
40
+ this.reportOnSelectColor = this.reportOnSelectColor.bind(this);
41
+ this.performColorControlAction = this.performColorControlAction.bind(this);
42
+ }
43
+ toggle(event, target) {
44
+ switch (this.props.type) {
45
+ case ComponentRenderType.MODAL:
46
+ this.setState({ modalVisible: !this.state.modalVisible });
47
+ break;
48
+ case ComponentRenderType.POPOVER:
49
+ this.popoverManageRef.toggle(event, target);
50
+ break;
51
+ }
52
+ }
53
+ performColorControlAction(element) {
54
+ switch (element) {
55
+ case ColorPickerLayoutElement.ClearElement:
56
+ // TODO impl.
57
+ break;
58
+ case ColorPickerLayoutElement.CancelElement:
59
+ // TODO impl.
60
+ break;
61
+ case ColorPickerLayoutElement.ChooseElement:
62
+ // TODO impl.
63
+ break;
64
+ case ColorPickerLayoutElement.ClearSolidColorElement:
65
+ // TODO impl.
66
+ break;
67
+ case ColorPickerLayoutElement.ColorFormatDropdownElement:
68
+ // TODO impl.
69
+ break;
70
+ case ColorPickerLayoutElement.ClearTransparentColorElement:
71
+ // TODO impl.
72
+ break;
73
+ }
74
+ }
75
+ reportOnSelectColor(hex) {
76
+ if (!this.props.onSelectColor)
77
+ return;
78
+ throw new Error("Implement report on select color " + hex);
79
+ }
80
+ toggleMapComponent() {
81
+ }
82
+ togglePalleteElement() {
83
+ }
84
+ }
85
+ export const ColorPicker = ({ ref, ...props }) => (React.createElement(ColorPickerComponent, { ...props, forwardRef: ref }));
@@ -0,0 +1,30 @@
1
+ import "../Composed.css";
2
+ import React from "react";
3
+ import { BareInputManageRef } from "../../form/Input";
4
+ import { SliderProps } from "../../form/Slider";
5
+ import { Orientation } from "../../constants/Orientation";
6
+ import { Color, ColorEventHandler } from "../../constants/Types";
7
+ import { ComponentBaseProps } from "../../core/ComponentBaseProps";
8
+ export declare const ColorSliderGradient: {
9
+ TRANSPARENT: string;
10
+ TRANSPARENT_VERTICAL: string;
11
+ TRANSPARENT_HORIZONTAL: string;
12
+ RAINBOW: string;
13
+ RAINBOW_VERTICAL: string;
14
+ RAINBOW_HORIZONTAL: string;
15
+ };
16
+ export type ColorSliderAttributesRelays = {
17
+ sliderProps?: Partial<SliderProps>;
18
+ };
19
+ export interface ColorSliderManageRef extends BareInputManageRef<Color> {
20
+ }
21
+ export interface ColorSliderProps extends ComponentBaseProps<HTMLDivElement, ColorSliderManageRef, ColorSliderAttributesRelays> {
22
+ hue: string;
23
+ primaryColor: string;
24
+ reportOnDrag: boolean;
25
+ colorGradient: string;
26
+ allowedOverflow: number;
27
+ orientation: Orientation.VERTICAL | Orientation.HORIZONTAL;
28
+ onSelectColor: ColorEventHandler;
29
+ }
30
+ export declare const ColorSlider: ({ ref, ...props }: Partial<ColorSliderProps>) => React.JSX.Element;