5htp-core 0.5.1-94 → 0.5.1-95

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "5htp-core",
3
3
  "description": "Convenient TypeScript framework designed for Performance and Productivity.",
4
- "version": "0.5.1-94",
4
+ "version": "0.5.1-95",
5
5
  "author": "Gaetan Le Gac (https://github.com/gaetanlegac)",
6
6
  "repository": "git://github.com/gaetanlegac/5htp-core.git",
7
7
  "license": "MIT",
@@ -17,6 +17,9 @@
17
17
  "@lexical/headless": "^0.18.0",
18
18
  "@lexical/html": "^0.18.0",
19
19
  "@lexical/react": "^0.18.0",
20
+ "@mantine/core": "^7.17.2",
21
+ "@mantine/dates": "^7.17.2",
22
+ "@mantine/hooks": "^7.17.2",
20
23
  "accepts": "^1.3.7",
21
24
  "activity-detector": "^3.0.0",
22
25
  "ansi-to-html": "^0.7.1",
@@ -67,7 +70,6 @@
67
70
  "preact": "^10.22.1",
68
71
  "preact-render-to-string": "^6.5.5",
69
72
  "prettier": "^3.3.3",
70
- "react-datetime-picker": "^5.6.0",
71
73
  "react-scrollbars-custom": "^4.0.27",
72
74
  "react-slider": "^2.0.1",
73
75
  "react-textarea-autosize": "^8.3.3",
@@ -4,6 +4,7 @@
4
4
 
5
5
  // Npm
6
6
  import React from 'react';
7
+ import { ColorSchemeScript, MantineProvider, mantineHtmlProps } from '@mantine/core';
7
8
 
8
9
  // Core
9
10
  import type { Layout } from '@common/router';
@@ -14,9 +15,6 @@ import DialogManager from '@client/components/Dialog/Manager'
14
15
  import RouterComponent from '@client/services/router/components/router';
15
16
  import type { TClientOrServerContextForPage } from '@common/router';
16
17
 
17
- // Resources
18
- import '@client/assets/css/core.less';
19
-
20
18
  /*----------------------------------
21
19
  - COMPOSANT
22
20
  ----------------------------------*/
@@ -35,22 +33,25 @@ export default function App ({ context }: {
35
33
  return (
36
34
  <ReactClientContext.Provider value={context}>
37
35
 
38
- <DialogManager context={context} />
39
-
40
- {!layout ? <>
41
- {/* TODO: move to app, because here, we're not aware that the router service has been defined */}
42
- <RouterComponent service={context.Router} />
43
- </> : <> {/* Same as router/components/Page.tsx */}
44
- <layout.Component
45
- // Services
46
- {...context}
47
- // API data & URL params
48
- data={{
49
- ...apiData,
50
- ...context.request.data
51
- }}
52
- />
53
- </>}
36
+ <MantineProvider>
37
+
38
+ <DialogManager context={context} />
39
+
40
+ {!layout ? <>
41
+ {/* TODO: move to app, because here, we're not aware that the router service has been defined */}
42
+ <RouterComponent service={context.Router} />
43
+ </> : <> {/* Same as router/components/Page.tsx */}
44
+ <layout.Component
45
+ // Services
46
+ {...context}
47
+ // API data & URL params
48
+ data={{
49
+ ...apiData,
50
+ ...context.request.data
51
+ }}
52
+ />
53
+ </>}
54
+ </MantineProvider>
54
55
 
55
56
  </ReactClientContext.Provider>
56
57
  )
@@ -2,6 +2,7 @@
2
2
  - DEPENDANCES
3
3
  ----------------------------------*/
4
4
 
5
+ // Npm
5
6
  import React from 'react';
6
7
 
7
8
  if (typeof window === 'undefined')
@@ -19,6 +20,10 @@ import type { AnyService } from './service';
19
20
 
20
21
  export { default as Service } from './service';
21
22
 
23
+ // Resources
24
+ import '@client/assets/css/core.less';
25
+ import '@mantine/core/styles.css';
26
+
22
27
  /*----------------------------------
23
28
  - TYPES
24
29
  ----------------------------------*/
@@ -101,7 +101,7 @@ body {
101
101
  // FIX: Scrollbars document à cause de custom scrollbar sur barre communautés
102
102
  // TEMPORAIRE
103
103
  overflow-x: hidden;
104
- background: var(--cBg);
104
+ background: var(--cBg) !important; // Override mantine
105
105
  color: var(--cTxtBase);
106
106
 
107
107
  text-align: center;
@@ -1,6 +1,6 @@
1
1
  @import (reference) "@/client/assets/vars.less";
2
2
 
3
- @toast-zindex: 999;
3
+ @toast-zindex: 200;
4
4
 
5
5
  #modals,
6
6
  #toasts {
@@ -27,5 +27,5 @@ export { default as Select } from './Select';
27
27
  export { default as Input } from './inputv3';
28
28
  export { default as Checkbox } from './inputv3/Checkbox';
29
29
  export { default as File } from './inputv3/file';
30
- export { default as DateRangeInput } from './inputv3/Date';
30
+ export { default as Date } from './inputv3/Date';
31
31
  export { default as Rte } from './inputv3/Rte';
@@ -4,7 +4,8 @@
4
4
 
5
5
  // Npm
6
6
  import React from 'react';
7
- import DateRangePicker, { DateTimePickerProps } from 'react-datetime-picker';
7
+ import '@mantine/dates/styles.css';
8
+ import { DateTimePicker, DateTimePickerProps } from '@mantine/dates';
8
9
 
9
10
  // Core
10
11
 
@@ -14,36 +15,13 @@ import DateRangePicker, { DateTimePickerProps } from 'react-datetime-picker';
14
15
  - TYPES
15
16
  ----------------------------------*/
16
17
 
17
- type TValue = [Date, Date]
18
- export type Props = DateTimePickerProps & {
19
- //value: TValue,
20
- //onChange: StateUpdater<TValue>,
21
- placeholder?: string,
22
- min?: string,
23
- max?: string
24
- }
18
+ export type Props = DateTimePickerProps;
25
19
 
26
20
  /*----------------------------------
27
21
  - COMPOSANT
28
22
  ----------------------------------*/
29
- import './DateTimePicker.css';
30
- import './Calendar.css';
31
- import './Clock.css';
32
- export default ({ value, Props, min, max, onChange, ...otherProps }) => {
33
-
34
- const state = React.useState(false);
35
-
36
- /*----------------------------------
37
- - CONSTRUCTION CHAMP
38
- ----------------------------------*/
39
-
40
-
41
- /*----------------------------------
42
- - RENDU DU CHAMP
43
- ----------------------------------*/
23
+ export default ({ ...props }: Props) => {
44
24
  return (
45
- <div>
46
- <DateRangePicker {...otherProps} onChange={onChange} value={value || [null, null]} />
47
- </div>
25
+ <DateTimePicker {...props} />
48
26
  )
49
27
  }
@@ -44,11 +44,17 @@
44
44
  // Since they are not supposed to be on the same row (mobile first design)
45
45
  height: @hInput;
46
46
  align-items: center;
47
-
47
+
48
48
  background: var(--cBg);
49
49
  border-radius: @radius;
50
50
  transition: background .1s linear;
51
51
 
52
+ &.transparent {
53
+ background: none !important;
54
+ border: none !important;
55
+ box-shadow: none !important;
56
+ }
57
+
52
58
  > i {
53
59
  color: var(--cTxtDesc);
54
60
  }
@@ -6,6 +6,7 @@
6
6
  import React from 'react';
7
7
  import renderToString from "preact-render-to-string";
8
8
  const safeStringify = require('fast-safe-stringify'); // remplace les références circulairs par un [Circular]
9
+ import { ColorSchemeScript, mantineHtmlProps } from '@mantine/core';
9
10
 
10
11
  // Core
11
12
  import type { default as Router, Response as ServerResponse } from "@server/services/router";
@@ -31,7 +32,7 @@ export default class DocumentRenderer<TRouter extends Router> {
31
32
  public staticDocument() {
32
33
  const routesForClient = JSON.stringify( this.router.ssrRoutes );
33
34
  return '<!doctype html>' + renderToString(
34
- <html lang="en">
35
+ <html lang="en" {...mantineHtmlProps}>
35
36
  <head>
36
37
  {/* Format */}
37
38
  <meta charSet="utf-8" />
@@ -41,6 +42,7 @@ export default class DocumentRenderer<TRouter extends Router> {
41
42
  <link rel="stylesheet" type="text/css" href="/public/icons.css" />
42
43
  <link rel="preload" href="/public/client.css" as="style" />
43
44
  <link rel="stylesheet" type="text/css" href="/public/client.css" />
45
+ <ColorSchemeScript />
44
46
 
45
47
  {/* JS */}
46
48
  <script type="text/javascript" dangerouslySetInnerHTML={{
@@ -1,156 +0,0 @@
1
- .react-calendar {
2
- width: 350px;
3
- max-width: 100%;
4
- background: white;
5
- border: 1px solid #a0a096;
6
- font-family: Arial, Helvetica, sans-serif;
7
- line-height: 1.125em;
8
- }
9
-
10
- .react-calendar--doubleView {
11
- width: 700px;
12
- }
13
-
14
- .react-calendar--doubleView .react-calendar__viewContainer {
15
- display: flex;
16
- margin: -0.5em;
17
- }
18
-
19
- .react-calendar--doubleView .react-calendar__viewContainer > * {
20
- width: 50%;
21
- margin: 0.5em;
22
- }
23
-
24
- .react-calendar,
25
- .react-calendar *,
26
- .react-calendar *:before,
27
- .react-calendar *:after {
28
- -moz-box-sizing: border-box;
29
- -webkit-box-sizing: border-box;
30
- box-sizing: border-box;
31
- }
32
-
33
- .react-calendar button {
34
- margin: 0;
35
- border: 0;
36
- outline: none;
37
- }
38
-
39
- .react-calendar button:enabled:hover {
40
- cursor: pointer;
41
- }
42
-
43
- .react-calendar__navigation {
44
- display: flex;
45
- height: 44px;
46
- margin-bottom: 1em;
47
- }
48
-
49
- .react-calendar__navigation button {
50
- min-width: 44px;
51
- background: none;
52
- }
53
-
54
- .react-calendar__navigation button:disabled {
55
- background-color: #f0f0f0;
56
- }
57
-
58
- .react-calendar__navigation button:enabled:hover,
59
- .react-calendar__navigation button:enabled:focus {
60
- background-color: #e6e6e6;
61
- }
62
-
63
- .react-calendar__month-view__weekdays {
64
- text-align: center;
65
- text-transform: uppercase;
66
- font: inherit;
67
- font-size: 0.75em;
68
- font-weight: bold;
69
- }
70
-
71
- .react-calendar__month-view__weekdays__weekday {
72
- padding: 0.5em;
73
- }
74
-
75
- .react-calendar__month-view__weekNumbers .react-calendar__tile {
76
- display: flex;
77
- align-items: center;
78
- justify-content: center;
79
- font: inherit;
80
- font-size: 0.75em;
81
- font-weight: bold;
82
- }
83
-
84
- .react-calendar__month-view__days__day--weekend {
85
- color: #d10000;
86
- }
87
-
88
- .react-calendar__month-view__days__day--neighboringMonth,
89
- .react-calendar__decade-view__years__year--neighboringDecade,
90
- .react-calendar__century-view__decades__decade--neighboringCentury {
91
- color: #757575;
92
- }
93
-
94
- .react-calendar__year-view .react-calendar__tile,
95
- .react-calendar__decade-view .react-calendar__tile,
96
- .react-calendar__century-view .react-calendar__tile {
97
- padding: 2em 0.5em;
98
- }
99
-
100
- .react-calendar__tile {
101
- max-width: 100%;
102
- padding: 10px 6.6667px;
103
- background: none;
104
- text-align: center;
105
- line-height: 16px;
106
- font: inherit;
107
- font-size: 0.833em;
108
- }
109
-
110
- .react-calendar__tile:disabled {
111
- background-color: #f0f0f0;
112
- color: #ababab;
113
- }
114
-
115
- .react-calendar__month-view__days__day--neighboringMonth:disabled,
116
- .react-calendar__decade-view__years__year--neighboringDecade:disabled,
117
- .react-calendar__century-view__decades__decade--neighboringCentury:disabled {
118
- color: #cdcdcd;
119
- }
120
-
121
- .react-calendar__tile:enabled:hover,
122
- .react-calendar__tile:enabled:focus {
123
- background-color: #e6e6e6;
124
- }
125
-
126
- .react-calendar__tile--now {
127
- background: #ffff76;
128
- }
129
-
130
- .react-calendar__tile--now:enabled:hover,
131
- .react-calendar__tile--now:enabled:focus {
132
- background: #ffffa9;
133
- }
134
-
135
- .react-calendar__tile--hasActive {
136
- background: #76baff;
137
- }
138
-
139
- .react-calendar__tile--hasActive:enabled:hover,
140
- .react-calendar__tile--hasActive:enabled:focus {
141
- background: #a9d4ff;
142
- }
143
-
144
- .react-calendar__tile--active {
145
- background: #006edc;
146
- color: white;
147
- }
148
-
149
- .react-calendar__tile--active:enabled:hover,
150
- .react-calendar__tile--active:enabled:focus {
151
- background: #1087ff;
152
- }
153
-
154
- .react-calendar--selectRange .react-calendar__tile--hover {
155
- background-color: #e6e6e6;
156
- }
@@ -1,62 +0,0 @@
1
- .react-clock {
2
- display: block;
3
- position: relative;
4
- }
5
-
6
- .react-clock,
7
- .react-clock *,
8
- .react-clock *:before,
9
- .react-clock *:after {
10
- -moz-box-sizing: border-box;
11
- -webkit-box-sizing: border-box;
12
- box-sizing: border-box;
13
- }
14
-
15
- .react-clock__face {
16
- position: absolute;
17
- top: 0;
18
- bottom: 0;
19
- left: 0;
20
- right: 0;
21
- border: 1px solid black;
22
- border-radius: 50%;
23
- }
24
-
25
- .react-clock__hand {
26
- position: absolute;
27
- top: 0;
28
- bottom: 0;
29
- left: 50%;
30
- right: 50%;
31
- }
32
-
33
- .react-clock__hand__body {
34
- position: absolute;
35
- background-color: black;
36
- transform: translateX(-50%);
37
- }
38
-
39
- .react-clock__mark {
40
- position: absolute;
41
- top: 0;
42
- bottom: 0;
43
- left: 50%;
44
- right: 50%;
45
- }
46
-
47
- .react-clock__mark__body {
48
- position: absolute;
49
- background-color: black;
50
- transform: translateX(-50%);
51
- }
52
-
53
- .react-clock__mark__number {
54
- position: absolute;
55
- left: -40px;
56
- width: 80px;
57
- text-align: center;
58
- }
59
-
60
- .react-clock__second-hand__body {
61
- background-color: red;
62
- }
@@ -1,132 +0,0 @@
1
- .react-datetime-picker {
2
- display: inline-flex;
3
- position: relative;
4
- }
5
-
6
- .react-datetime-picker,
7
- .react-datetime-picker *,
8
- .react-datetime-picker *:before,
9
- .react-datetime-picker *:after {
10
- -moz-box-sizing: border-box;
11
- -webkit-box-sizing: border-box;
12
- box-sizing: border-box;
13
- }
14
-
15
- .react-datetime-picker--disabled {
16
- background-color: #f0f0f0;
17
- color: #6d6d6d;
18
- }
19
-
20
- .react-datetime-picker__wrapper {
21
- display: flex;
22
- flex-grow: 1;
23
- flex-shrink: 0;
24
- border: thin solid gray;
25
- }
26
-
27
- .react-datetime-picker__inputGroup {
28
- min-width: calc(4px + (4px * 3) + 0.54em * 6 + 0.217em * 2);
29
- flex-grow: 1;
30
- padding: 0 2px;
31
- }
32
-
33
- .react-datetime-picker__inputGroup__divider {
34
- padding: 1px 0;
35
- white-space: pre;
36
- }
37
-
38
- .react-datetime-picker__inputGroup__divider,
39
- .react-datetime-picker__inputGroup__leadingZero {
40
- display: inline-block;
41
- font: inherit;
42
- }
43
-
44
- .react-datetime-picker__inputGroup__input {
45
- min-width: 0.54em;
46
- height: calc(100% - 2px);
47
- position: relative;
48
- padding: 1px;
49
- border: 0;
50
- background: none;
51
- color: currentColor;
52
- font: inherit;
53
- box-sizing: content-box;
54
- -webkit-appearance: textfield;
55
- -moz-appearance: textfield;
56
- appearance: textfield;
57
- }
58
-
59
- .react-datetime-picker__inputGroup__input::-webkit-outer-spin-button,
60
- .react-datetime-picker__inputGroup__input::-webkit-inner-spin-button {
61
- -webkit-appearance: none;
62
- -moz-appearance: none;
63
- appearance: none;
64
- margin: 0;
65
- }
66
-
67
- .react-datetime-picker__inputGroup__input:invalid {
68
- background: rgba(255, 0, 0, 0.1);
69
- }
70
-
71
- .react-datetime-picker__inputGroup__input--hasLeadingZero {
72
- margin-left: -0.54em;
73
- padding-left: calc(1px + 0.54em);
74
- }
75
-
76
- .react-datetime-picker__inputGroup__amPm {
77
- font: inherit;
78
- -webkit-appearance: menulist;
79
- -moz-appearance: menulist;
80
- appearance: menulist;
81
- }
82
-
83
- .react-datetime-picker__button {
84
- border: 0;
85
- background: transparent;
86
- padding: 4px 6px;
87
- }
88
-
89
- .react-datetime-picker__button:enabled {
90
- cursor: pointer;
91
- }
92
-
93
- .react-datetime-picker__button:enabled:hover .react-datetime-picker__button__icon,
94
- .react-datetime-picker__button:enabled:focus .react-datetime-picker__button__icon {
95
- stroke: #0078d7;
96
- }
97
-
98
- .react-datetime-picker__button:disabled .react-datetime-picker__button__icon {
99
- stroke: #6d6d6d;
100
- }
101
-
102
- .react-datetime-picker__button svg {
103
- display: inherit;
104
- }
105
-
106
- .react-datetime-picker__calendar,
107
- .react-datetime-picker__clock {
108
- z-index: 1;
109
- }
110
-
111
- .react-datetime-picker__calendar--closed,
112
- .react-datetime-picker__clock--closed {
113
- display: none;
114
- }
115
-
116
- .react-datetime-picker__calendar {
117
- width: 350px;
118
- max-width: 100vw;
119
- }
120
-
121
- .react-datetime-picker__calendar .react-calendar {
122
- border-width: thin;
123
- }
124
-
125
- .react-datetime-picker__clock {
126
- width: 200px;
127
- height: 200px;
128
- max-width: 100vw;
129
- padding: 25px;
130
- background-color: white;
131
- border: thin solid #a0a096;
132
- }