@things-factory/shell 7.0.0-alpha.8 → 7.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 (128) hide show
  1. package/_index.html +8 -3
  2. package/client/entries/public/home.js +5 -6
  3. package/client/index.js +1 -6
  4. package/client/route.js +11 -0
  5. package/client/serviceworker/sw-src.js +2 -2
  6. package/client/store.js +3 -3
  7. package/client/themes/app-theme.css +53 -60
  8. package/client/themes/calendar-theme.css +59 -0
  9. package/client/themes/dark.css +51 -0
  10. package/client/themes/grist-theme.css +175 -0
  11. package/client/themes/layout-theme.css +15 -13
  12. package/client/themes/light.css +51 -0
  13. package/client/themes/material-theme.css +23 -0
  14. package/client/themes/md-typescale-styles.css +100 -0
  15. package/client/themes/oops-theme.css +6 -6
  16. package/client/themes/report-theme.css +47 -0
  17. package/client/themes/spacing.css +23 -0
  18. package/client/themes/state-color.css +6 -0
  19. package/config/config.development.js +2 -1
  20. package/config/license.json +5 -5
  21. package/dist-server/graphql-local-client.js +3 -3
  22. package/dist-server/graphql-local-client.js.map +1 -1
  23. package/dist-server/index.d.ts +1 -0
  24. package/dist-server/index.js +1 -0
  25. package/dist-server/index.js.map +1 -1
  26. package/dist-server/initializers/database.js +6 -6
  27. package/dist-server/initializers/database.js.map +1 -1
  28. package/dist-server/middlewares/domain-middleware.js +1 -2
  29. package/dist-server/middlewares/domain-middleware.js.map +1 -1
  30. package/dist-server/middlewares/index.js +1 -2
  31. package/dist-server/middlewares/index.js.map +1 -1
  32. package/dist-server/pubsub.js +1 -2
  33. package/dist-server/pubsub.js.map +1 -1
  34. package/dist-server/routers/global-router.js.map +1 -1
  35. package/dist-server/schema.js +1 -2
  36. package/dist-server/schema.js.map +1 -1
  37. package/dist-server/server-dev.js +3 -7
  38. package/dist-server/server-dev.js.map +1 -1
  39. package/dist-server/server.js +2 -1
  40. package/dist-server/server.js.map +1 -1
  41. package/dist-server/service/attribute-set/attribute-set-item-type.js +5 -5
  42. package/dist-server/service/attribute-set/attribute-set-item-type.js.map +1 -1
  43. package/dist-server/service/attribute-set/attribute-set-mutation.js +2 -2
  44. package/dist-server/service/attribute-set/attribute-set-mutation.js.map +1 -1
  45. package/dist-server/service/attribute-set/attribute-set-query.js +3 -3
  46. package/dist-server/service/attribute-set/attribute-set-query.js.map +1 -1
  47. package/dist-server/service/attribute-set/attribute-set-type.js +6 -6
  48. package/dist-server/service/attribute-set/attribute-set-type.js.map +1 -1
  49. package/dist-server/service/attribute-set/attribute-set.js +2 -2
  50. package/dist-server/service/attribute-set/attribute-set.js.map +1 -1
  51. package/dist-server/service/common-types/list-param.js +9 -9
  52. package/dist-server/service/common-types/list-param.js.map +1 -1
  53. package/dist-server/service/common-types/log.js +2 -2
  54. package/dist-server/service/common-types/log.js.map +1 -1
  55. package/dist-server/service/common-types/object-ref.js +2 -2
  56. package/dist-server/service/common-types/object-ref.js.map +1 -1
  57. package/dist-server/service/common-types/scalar-any.js.map +1 -1
  58. package/dist-server/service/common-types/scalar-date.js.map +1 -1
  59. package/dist-server/service/directive-transaction/transaction.js.map +1 -1
  60. package/dist-server/service/domain/{domain-Mutation.js → domain-mutation.js} +3 -3
  61. package/dist-server/service/domain/domain-mutation.js.map +1 -0
  62. package/dist-server/service/domain/domain-query.js +3 -3
  63. package/dist-server/service/domain/domain-query.js.map +1 -1
  64. package/dist-server/service/domain/domain-types.js +6 -6
  65. package/dist-server/service/domain/domain-types.js.map +1 -1
  66. package/dist-server/service/domain/domain.js +6 -7
  67. package/dist-server/service/domain/domain.js.map +1 -1
  68. package/dist-server/service/domain/index.d.ts +1 -1
  69. package/dist-server/service/domain/index.js +2 -2
  70. package/dist-server/service/domain/index.js.map +1 -1
  71. package/dist-server/service/index.d.ts +1 -1
  72. package/dist-server/service/subscription-data/data-resolver.js +2 -2
  73. package/dist-server/service/subscription-data/data-resolver.js.map +1 -1
  74. package/dist-server/service/subscription-data/data-types.js +2 -2
  75. package/dist-server/service/subscription-data/data-types.js.map +1 -1
  76. package/dist-server/tsconfig.tsbuildinfo +1 -1
  77. package/dist-server/typeorm/encrypt-transform.js +1 -1
  78. package/dist-server/typeorm/encrypt-transform.js.map +1 -1
  79. package/dist-server/typeorm/get-data-encryption-key.js.map +1 -1
  80. package/dist-server/typeorm/json5-transform.js.map +1 -1
  81. package/dist-server/typeorm/round-transform.d.ts +5 -0
  82. package/dist-server/typeorm/round-transform.js +21 -0
  83. package/dist-server/typeorm/round-transform.js.map +1 -0
  84. package/dist-server/utils/condition-builder.js.map +1 -1
  85. package/dist-server/utils/get-domain.d.ts +0 -1
  86. package/dist-server/utils/get-domain.js +7 -8
  87. package/dist-server/utils/get-domain.js.map +1 -1
  88. package/dist-server/utils/get-query-builder-from-list-params.js +1 -2
  89. package/dist-server/utils/get-query-builder-from-list-params.js.map +1 -1
  90. package/dist-server/utils/get-times-for-period.js +2 -3
  91. package/dist-server/utils/get-times-for-period.js.map +1 -1
  92. package/dist-server/utils/list-param-adjuster.js +1 -2
  93. package/dist-server/utils/list-param-adjuster.js.map +1 -1
  94. package/dist-server/utils/list-params-converter.js +1 -2
  95. package/dist-server/utils/list-params-converter.js.map +1 -1
  96. package/dist-server/utils/list-query-builder.js.map +1 -1
  97. package/dist-server/utils/publish-progress.js +1 -2
  98. package/dist-server/utils/publish-progress.js.map +1 -1
  99. package/helps/config/fileUpload.ja.md +24 -0
  100. package/helps/config/fileUpload.ko.md +22 -0
  101. package/helps/config/fileUpload.md +24 -0
  102. package/helps/config/fileUpload.ms.md +24 -0
  103. package/helps/config/fileUpload.zh.md +21 -0
  104. package/package.json +27 -27
  105. package/server/graphql-local-client.ts +4 -4
  106. package/server/index.ts +2 -0
  107. package/server/pubsub.ts +1 -1
  108. package/server/server-dev.ts +10 -11
  109. package/server/server.ts +9 -2
  110. package/server/service/attribute-set/attribute-set-query.ts +1 -1
  111. package/server/service/domain/domain-query.ts +1 -1
  112. package/server/service/domain/index.ts +1 -1
  113. package/server/typeorm/round-transform.ts +20 -0
  114. package/translations/en.json +2 -1
  115. package/translations/ja.json +2 -1
  116. package/translations/ko.json +2 -1
  117. package/translations/ms.json +2 -1
  118. package/translations/zh.json +2 -1
  119. package/views/public/home.html +6 -3
  120. package/views/template.html +2 -2
  121. package/client/elements/custom-alert.js +0 -120
  122. package/client/elements/index.js +0 -4
  123. package/client/elements/oops-note.js +0 -49
  124. package/client/elements/oops-progress.js +0 -81
  125. package/client/elements/oops-spinner.js +0 -31
  126. package/dist-server/service/domain/domain-Mutation.js.map +0 -1
  127. package/helps/components/oops-progress.md +0 -73
  128. /package/dist-server/service/domain/{domain-Mutation.d.ts → domain-mutation.d.ts} +0 -0
package/_index.html CHANGED
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="utf-8" />
@@ -52,6 +52,10 @@
52
52
  <!-- Performance tip: hint to the browser to start the handshake for the fonts site -->
53
53
  <link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin />
54
54
  <link href="/node_modules/@material-design-icons/font/index.css" rel="stylesheet" />
55
+ <link href="/node_modules/material-symbols/index.css" rel="stylesheet" />
56
+ <link href="/node_modules/@fontsource/roboto/index.css" rel="stylesheet" />
57
+ <link rel="stylesheet" href="/theme.css" />
58
+
55
59
  <style>
56
60
  body {
57
61
  margin: 0;
@@ -65,7 +69,8 @@
65
69
  line-height: 1.5;
66
70
  -webkit-font-smoothing: antialiased;
67
71
 
68
- accent-color: var(--primary-color);
72
+ accent-color: var(--md-sys-color-primary);
73
+ background-color: var(--md-sys-color-background);
69
74
  }
70
75
  </style>
71
76
 
@@ -77,7 +82,7 @@
77
82
  }
78
83
  </script>
79
84
  </head>
80
- <body>
85
+ <body class="light">
81
86
  <things-app></things-app>
82
87
  <noscript> Please enable JavaScript to view this website. </noscript>
83
88
  <!-- Load webcomponents-loader.js to check and load any polyfills your browser needs -->
@@ -1,5 +1,4 @@
1
- import '@material/mwc-icon-button'
2
- import '@material/mwc-button'
1
+ import '@material/web/icon/icon.js'
3
2
 
4
3
  import { css, html, LitElement } from 'lit'
5
4
 
@@ -8,12 +7,10 @@ export class HomePage extends LitElement {
8
7
  return [
9
8
  css`
10
9
  :host {
11
- background-color: var(--main-section-background-color);
10
+ background-color: var(--md-sys-color-background);
12
11
 
13
12
  display: block;
14
13
  position: relative;
15
-
16
- --mdc-theme-primary: white;
17
14
  }
18
15
 
19
16
  [home] {
@@ -31,10 +28,12 @@ export class HomePage extends LitElement {
31
28
  text-align: center;
32
29
  font-size: 20px;
33
30
  }
31
+
34
32
  [message] strong {
35
33
  display: block;
36
34
  font-size: 2.5rem;
37
35
  }
36
+
38
37
  [message] img {
39
38
  width: 450px;
40
39
  max-width: 90%;
@@ -67,7 +66,7 @@ export class HomePage extends LitElement {
67
66
  var { icon, title, description } = this.applicationMeta
68
67
 
69
68
  return html`
70
- <mwc-icon-button home icon="home" @click=${e => (window.location.href = '/')}></mwc-icon-button>
69
+ <md-icon home icon="home" @click=${e => (window.location.href = '/')}>home</md-icon>
71
70
 
72
71
  <div message>
73
72
  <strong>${title}</strong>
package/client/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ // import '@webcomponents/scoped-custom-element-registry' // later only for @open-wc/scoped-elements@3
1
2
  import 'broadcastchannel-polyfill'
2
3
  import '@operato/shell/app.js'
3
4
 
@@ -14,9 +15,3 @@ export * from '@operato/shell'
14
15
 
15
16
  // graphql-client
16
17
  export * from '@operato/graphql'
17
-
18
- // indexdb-store
19
- // export * from './indexdb'
20
-
21
- // elements
22
- export * from './elements'
package/client/route.js CHANGED
@@ -1,3 +1,14 @@
1
+ /**
2
+ * This is the place where the PageElement matching from the contextPath is finally searched.
3
+ * If it has reached here, it means that the PageElement matching the path has not been found, so it returns the page name 'page404'.
4
+ * This page displays the Page404 Element implementing the tag name 'page-404'.
5
+ * Naturally, the mapping implementation for the 'page404' page can be overridden in the parent module.
6
+ *
7
+ * 여기는 contextPath로부터 매칭되는 PageElement를 과정에서 맨 마직막에 뒤져지는 곳이다.
8
+ * 여기까지 들어왔다면, path에 매핑되는 PageElement를 찾지 못한 것이므로, 페이지 이름 'page404' 를 리턴한다.
9
+ * 이 페이지는 태그네임 'page-404'를 구현한 Page404 Element를 보여주게 된다.
10
+ * 당연히 상위 모듈에서 'page404' 페이지에 대한 매핑 구현을 오버라이드 할 수 있다.
11
+ */
1
12
  export default function route(page) {
2
13
  import('@operato/shell/page-404.js')
3
14
  return 'page404'
@@ -79,7 +79,7 @@ if (production) {
79
79
  /* helps should be Network only for i18n sensitive */
80
80
  registerRoute(/(.*)helps(.*)\.md/, new NetworkOnly())
81
81
 
82
- registerRoute(/(.*)translations(.*)\.json/, new CacheFirst())
82
+ registerRoute(/(.*)translations(.*)\.json/, new StaleWhileRevalidate())
83
83
 
84
84
  registerRoute(({ request }) => request.destination === 'style', new CacheFirst())
85
85
 
@@ -97,7 +97,7 @@ if (production) {
97
97
  /* helps should be Network only for i18n sensitive */
98
98
  registerRoute(/(.*)helps(.*)\.md/, new NetworkOnly())
99
99
 
100
- registerRoute(/(.*)translations(.*)\.json/, new NetworkFirst())
100
+ registerRoute(/(.*)translations(.*)\.json/, new StaleWhileRevalidate())
101
101
 
102
102
  registerRoute(({ request }) => request.destination === 'style', new NetworkFirst())
103
103
 
package/client/store.js CHANGED
@@ -1,7 +1,7 @@
1
- import { configureStore } from 'redux';
1
+ import { configureStore } from '@reduxjs/toolkit'
2
2
 
3
- import app from './reducers/app.js';
4
- import route from './reducers/route.js';
3
+ import app from './reducers/app.js'
4
+ import route from './reducers/route.js'
5
5
 
6
6
  export const store = configureStore({
7
7
  devTools: process.env['NODE-ENV'] !== 'production'
@@ -1,47 +1,33 @@
1
1
  body {
2
2
  /* theme color */
3
- --primary-color-rgb: 34, 166, 167;
4
- --primary-color: rgb(var(--primary-color-rgb));
5
- --secondary-color-rgb: 57, 78, 100;
6
- --secondary-color: rgb(var(--secondary-color-rgb));
7
- --focus-color: var(--theme-white-color);
8
- --primary-background-color: var(--secondary-color);
9
- --secondary-background-color: #283644;
10
- --main-section-background-color: #f4f7fb;
11
- --theme-white-color: #fff;
12
- --theme-black-color: rgba(0, 0, 0, 0.9);
13
-
14
- --focus-background-color: var(--primary-color);
15
- --primary-text-color: #111;
16
- --secondary-text-color: #017e7f;
17
-
18
- --opacity-dark-color: rgba(0, 0, 0, 0.4);
19
- --opacity-light-color: rgba(255, 255, 255, 0.8);
20
-
21
- /* status color */
22
- --status-success-color: #35a24a;
23
- --status-warning-color: #ee8d03;
24
- --status-danger-color: #d14946;
25
- --status-info-color: #398ace;
3
+ --primary-color: var(--md-sys-color-primary);
4
+ --secondary-color: var(--md-sys-color-secondary);
5
+ --focus-color: var(--md-sys-color-on-primary);
6
+ --primary-background-color: var(--md-sys-color-primary-container);
7
+ --secondary-background-color: var(--md-sys-color-secondary-container);
8
+
9
+ --focus-background-color: var(--md-sys-color-primary);
10
+ --primary-text-color: var(--md-sys-color-on-primary);
11
+ --secondary-text-color: var(--md-sys-color-on-secondary);
26
12
 
27
13
  /* common style */
28
14
  --border-radius: 4px;
29
- --border-dark-color: 1px solid rgba(0, 0, 0, 0.15);
15
+ --border-dim-color: 1px solid rgba(0, 0, 0, 0.15);
30
16
  --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
31
17
 
32
18
  --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
33
19
 
34
20
  --theme-font: 'Noto', Helvetica;
35
21
 
36
- --margin-default: 9px;
37
- --margin-narrow: 4px;
38
- --margin-wide: 15px;
39
- --padding-default: var(--margin-default);
40
- --padding-narrow: var(--margin-narrow);
41
- --padding-wide: var(--margin-wide);
22
+ --margin-default: var(--spacing-medium, 8px);
23
+ --margin-narrow: var(--spacing-small, 4px);
24
+ --margin-wide: var(--spacing-large, 12px);
25
+ --padding-default: var(--spacing-medium, 8px);
26
+ --padding-narrow: var(--spacing-small, 4px);
27
+ --padding-wide: var(--spacing-large, 12px);
42
28
 
43
29
  --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
44
- --scrollbar-thumb-hover-color: var(--primary-color);
30
+ --scrollbar-thumb-hover-color: var(--md-sys-color-primary);
45
31
 
46
32
  --fontsize-default: 14px;
47
33
  --fontsize-small: 13px;
@@ -53,78 +39,81 @@ body {
53
39
  /* title & description style */
54
40
  --title-margin: var(--margin-narrow) 0;
55
41
  --title-font: bold 24px var(--theme-font);
56
- --title-text-color: var(--secondary-color);
42
+ --title-text-color: var(--md-sys-color-secondary);
57
43
  --title-font-mobile: bold 20px var(--theme-font);
58
44
 
59
45
  --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
60
46
  --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
61
- --page-description-color: var(--secondary-text-color);
47
+ --page-description-color: var(--md-sys-color-primary);
62
48
 
63
49
  --subtitle-padding: 12px 5px 3px 5px;
64
50
  --subtitle-font: bold 18px var(--theme-font);
65
- --subtitle-text-color: var(--primary-color);
66
- --subtitle-border-bottom: 1px solid var(--primary-color);
51
+ --subtitle-text-color: var(--md-sys-color-primary);
52
+ --subtitle-border-bottom: 1px solid var(--md-sys-color-primary);
67
53
 
68
54
  /* icon style */
69
- --icon-tiny-size: 24px;
70
- --icon-default-size: 36px;
71
- --icon-big-size: 48px;
72
- --icon-default-color: var(--theme-white-color);
55
+ --icon-tiny-size: var(--icon-size-medium, 24px);
56
+ --icon-default-size: var(--icon-size-large, 32px);
57
+ --icon-big-size: var(--icon-size-huge, 48px);
58
+ --icon-default-color: var(--md-sys-color-on-primary);
73
59
 
74
60
  /* material design component themes */
75
- --mdc-theme-on-primary: var(--theme-white-color);
61
+ --mdc-theme-on-primary: var(--md-sys-color-on-primary);
76
62
  --mdc-theme-primary: var(--secondary-text-color);
77
- --mdc-theme-on-secondary: var(--theme-white-color);
78
- --mdc-theme-secondary: var(--primary-color);
79
- --mdc-button-outline-color: var(--primary-color);
63
+ --mdc-theme-on-secondary: var(--md-sys-color-on-primary);
64
+ --mdc-theme-secondary: var(--md-sys-color-primary);
65
+ --mdc-button-outline-color: var(--md-sys-color-primary);
80
66
  --mdc-danger-button-primary-color: var(--status-danger-color);
81
67
  --mdc-danger-button-outline-color: var(--status-danger-color);
82
68
  --mdc-button-outline-width: 1px;
83
69
  --mdc-button-horizontal-padding: 16px;
84
70
 
85
71
  /* button style */
86
- --button-background-color: #fafbfc;
87
- --button-background-focus-color: var(--primary-color);
88
- --button-border: var(--border-dark-color);
72
+ --button-background-color: var(--md-sys-color-surface-variant);
73
+ --button-background-focus-color: var(--md-sys-color-primary);
74
+ --button-border: var(--border-dim-color);
89
75
  --button-border-radius: var(--border-radius);
90
76
  --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
91
- --button-padding: var(--padding-default);
92
- --button-color: var(--secondary-color);
93
- --button-font: normal 15px var(--theme-font);
77
+ --button-padding: calc(var(--padding-narrow) * 1.5) var(--padding-wide);
78
+ --button-color: var(--md-sys-color-secondary);
79
+ --button-font: 600 var(--fontsize-default) var(--theme-font);
94
80
  --button-text-transform: capitalize;
95
81
  --button-active-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.2);
96
- --button-activ-border: 1px solid var(--primary-color);
82
+ --button-activ-border: 1px solid var(--md-sys-color-primary);
83
+ --button-activ-background-color: var(--md-sys-color-primary);
84
+ --button-activ-color: var(--md-sys-color-on-primary);
85
+ --iconbtn-padding: var(--padding-narrow);
97
86
 
98
- --button-primary-background-color: var(--primary-color);
87
+ --button-primary-background-color: var(--md-sys-color-primary);
99
88
  --button-primary-active-background-color: var(--status-success-color);
100
89
  --button-primary-padding: var(--margin-default) var(--margin-wide);
101
- --button-primary-color: var(--theme-white-color);
90
+ --button-primary-color: var(--md-sys-color-on-primary);
102
91
  --button-primary-font: bold 16px var(--theme-font);
103
92
 
104
93
  /* table style */
105
94
  --th-padding: var(--padding-default);
106
- --th-border-top: 2px solid var(--secondary-color);
95
+ --th-border-top: 2px solid var(--md-sys-color-secondary);
107
96
  --th-text-transform: capitalize;
108
97
  --th-font: bold var(--fontsize-small) var(--theme-font);
109
- --th-color: rgba(var(--secondary-color-rgb), 0.8);
98
+ --th-color: var(--md-sys-color-secondary);
110
99
 
111
- --tr-background-color: var(--theme-white-color);
100
+ --tr-background-color: var(--md-sys-color-surface-variant);
112
101
  --tr-background-odd-color: rgba(255, 255, 255, 0.4);
113
102
  --tr-background-hover-color: #e1f5fe;
114
103
  --td-border-line: 1px solid rgba(0, 0, 0, 0.05);
115
104
  --td-border-bottom: 1px solid rgba(0, 0, 0, 0.09);
116
105
  --td-padding: var(--padding-default);
117
106
  --td-font: normal 13px var(--theme-font);
118
- --td-color: var(--secondary-color);
107
+ --td-color: var(--md-sys-color-secondary);
119
108
 
120
- --label-cell-background-color: #f6f6f6; /* th or td common background color */
109
+ --label-cell-background-color: var(--md-sys-color-surface); /* th or td common background color */
121
110
 
122
111
  /* form style */
123
112
  --label-font: normal var(--fontsize-default) var(--theme-font);
124
- --label-color: var(--secondary-color);
113
+ --label-color: var(--md-sys-color-on-surface);
125
114
  --label-text-transform: capitalize;
126
115
  --input-margin: var(--margin-narrow) 0;
127
- --input-padding: var(--padding-default);
116
+ --input-padding: 6px 2px;
128
117
  --input-min-width: 200px;
129
118
  --input-font: normal var(--fontsize-default) var(--theme-font);
130
119
  --input-hint-font: normal var(--fontsize-small) var(--theme-font);
@@ -133,10 +122,14 @@ body {
133
122
  --fieldset-margin: var(--padding-wide) 0;
134
123
  --fieldset-padding: 0 var(--padding-wide) var(--padding-wide) var(--padding-wide);
135
124
  --legend-padding: var(--padding-default) 0;
136
- --legend-color: var(--secondary-text-color);
125
+ --legend-color: var(--md-sys-color-secondary);
137
126
  --legend-font: bold 16px var(--theme-font);
138
127
  }
139
128
 
129
+ body.dark {
130
+ caret-color: white;
131
+ }
132
+
140
133
  @media only screen and (max-width: 460px) {
141
134
  body {
142
135
  /* subtitle style */
@@ -0,0 +1,59 @@
1
+ body {
2
+ --ox-calendar-padding: var(--padding-default);
3
+
4
+ /* monthly common color */
5
+ --calendar-monthly-text-color: var(--md-sys-color-secondary);
6
+ --calendar-monthly-border: 1px solid rgba(0, 0, 0, 0.1);
7
+ --calendar-monthly-border-width: 0 1px 1px 0px;
8
+
9
+ /* monthly layout */
10
+ --calendar-monthly-ol-margin: var(--margin-default) 0;
11
+ --calendar-monthly-ol-top-border: 2px solid var(--md-sys-color-secondary);
12
+ --calendar-current-monty-background-color: var(--md-sys-color-surface-variant);
13
+ --calendar-monthly-label-align: left;
14
+ --calendar-monthly-label-padding: var(--padding-narrow) 0;
15
+ --calendar-monthly-label-color: var(--md-sys-color-secondary);
16
+ --calendar-monthly-opacity: 0.5;
17
+ --calendar-monthly-date-label-background-color: var(--status-danger-color);
18
+ --calendar-monthly-date-label-margin: var(--margin-narrow);
19
+ --calendar-monthly-date-label-padding: 0px 6px;
20
+ --calendar-monthly-date-label-color: var(--md-sys-color-on-primary);
21
+
22
+ --calendar-monthly-background-color: #f4f4f4;
23
+ --calendar-monthly-event-border-radius: var(--border-radius);
24
+ --calendar-monthly-event-margin: var(--padding-narrow) 0 0 0;
25
+ --calendar-monthly-event-padding: 2px var(--padding-default);
26
+ --calendar-monthly-event-border: 3px solid #ccc;
27
+ --calendar-monthly-event-border-width: 0 0 0 3px;
28
+
29
+ /* weekly common color */
30
+ --calendar-weekly-text-color: var(--md-sys-color-secondary);
31
+ --calendar-weekly-border: 1px solid rgba(0, 0, 0, 0.1);
32
+ --calendar-weekly-border-width: 0 1px 1px 0px;
33
+
34
+ /* weekly layout */
35
+ --calendar-weekly-ol-margin: var(--margin-default) 0;
36
+ --calendar-weekly-ol-top-border: 2px solid var(--md-sys-color-secondary);
37
+ --calendar-current-week-background-color: var(--md-sys-color-surface-variant);
38
+ --calendar-weekly-label-align: center;
39
+ --calendar-weekly-label-padding: var(--padding-narrow) 0;
40
+ --calendar-weekly-label-color: var(--md-sys-color-secondary);
41
+ --calendar-weekly-opacity: 0.5;
42
+ --calendar-weekly-date-label-background-color: var(--status-danger-color);
43
+ --calendar-weekly-date-label-margin: var(--margin-narrow);
44
+ --calendar-weekly-date-label-padding: 0px 6px;
45
+ --calendar-weekly-date-label-color: var(--md-sys-color-on-primary);
46
+
47
+ --calendar-weekly-background-color: #f4f4f4;
48
+ --calendar-weekly-event-border-radius: var(--border-radius);
49
+ --calendar-weekly-event-margin: var(--padding-narrow) 0 0 0;
50
+ --calendar-weekly-event-padding: 2px var(--padding-default);
51
+ --calendar-weekly-event-border: 3px solid #ccc;
52
+ --calendar-weekly-event-border-width: 0 0 0 3px;
53
+ }
54
+
55
+ @media only screen and (max-width: 460px) {
56
+ body {
57
+ --calendar-monthly-text-color: tomato;
58
+ }
59
+ }
@@ -0,0 +1,51 @@
1
+ .dark {
2
+ --md-sys-color-primary: rgb(178 197 255);
3
+ --md-sys-color-surface-tint: rgb(178 197 255);
4
+ --md-sys-color-on-primary: rgb(24 46 96);
5
+ --md-sys-color-primary-container: rgb(49 69 120);
6
+ --md-sys-color-on-primary-container: rgb(218 226 255);
7
+ --md-sys-color-secondary: rgb(143 207 243);
8
+ --md-sys-color-on-secondary: rgb(0 53 73);
9
+ --md-sys-color-secondary-container: rgb(0 76 104);
10
+ --md-sys-color-on-secondary-container: rgb(195 232 255);
11
+ --md-sys-color-tertiary: #cffce3;
12
+ --md-sys-color-on-tertiary: rgb(0 56 35);
13
+ --md-sys-color-tertiary-container: #005234;
14
+ --md-sys-color-on-tertiary-container: #cffce3;
15
+ --md-sys-color-error: #fbafa9;
16
+ --md-sys-color-on-error: #fe594e;
17
+ --md-sys-color-error-container: #fe594e;
18
+ --md-sys-color-on-error-container: #fbafa9;
19
+ --md-sys-color-background: rgb(18 19 24);
20
+ --md-sys-color-on-background: rgb(227 226 233);
21
+ --md-sys-color-surface: rgb(18 19 24);
22
+ --md-sys-color-on-surface: rgb(227 226 233);
23
+ --md-sys-color-surface-variant: rgb(69 70 79);
24
+ --md-sys-color-on-surface-variant: rgb(197 198 208);
25
+ --md-sys-color-outline: rgb(143 144 154);
26
+ --md-sys-color-outline-variant: rgb(69 70 79);
27
+ --md-sys-color-shadow: rgb(0 0 0);
28
+ --md-sys-color-scrim: rgb(0 0 0);
29
+ --md-sys-color-inverse-surface: rgb(227 226 233);
30
+ --md-sys-color-inverse-on-surface: rgb(47 48 54);
31
+ --md-sys-color-inverse-primary: rgb(73 93 146);
32
+ --md-sys-color-primary-fixed: rgb(218 226 255);
33
+ --md-sys-color-on-primary-fixed: rgb(0 24 72);
34
+ --md-sys-color-primary-fixed-dim: rgb(178 197 255);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(49 69 120);
36
+ --md-sys-color-secondary-fixed: rgb(195 232 255);
37
+ --md-sys-color-on-secondary-fixed: rgb(0 30 44);
38
+ --md-sys-color-secondary-fixed-dim: rgb(143 207 243);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(0 76 104);
40
+ --md-sys-color-tertiary-fixed: #c7e6d5;
41
+ --md-sys-color-on-tertiary-fixed: rgb(0 33 19);
42
+ --md-sys-color-tertiary-fixed-dim: #c7e6d5;
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 82 52);
44
+ --md-sys-color-surface-dim: rgb(18 19 24);
45
+ --md-sys-color-surface-bright: rgb(56 57 63);
46
+ --md-sys-color-surface-container-lowest: rgb(13 14 19);
47
+ --md-sys-color-surface-container-low: rgb(26 27 33);
48
+ --md-sys-color-surface-container: rgb(30 31 37);
49
+ --md-sys-color-surface-container-high: rgb(41 42 47);
50
+ --md-sys-color-surface-container-highest: rgb(51 52 58);
51
+ }
@@ -0,0 +1,175 @@
1
+ body {
2
+ --grid-container-border-color: 1px solid rgba(0, 0, 0, 0.09);
3
+ --grid-container-border-width: 1px 0;
4
+ --grid-wrap-container-border: 0px solid transparent;
5
+ --grid-wrap-container-border-width: 0;
6
+
7
+ --grist-background-color: transparent;
8
+ --grist-title-margin: 0 0 0 10px;
9
+ --grist-title-border: none;
10
+ --grist-title-font: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500)) 1.1em
11
+ var(--theme-font, 'Roboto');
12
+ --grist-title-color: var(--md-sys-color-on-surface);
13
+ --grist-title-icon-color: var(--md-sys-color-on-surface-variant);
14
+ --grist-title-icon-margin: 0 3px 2px 0;
15
+ --grist-title-icon-size: var(--md-sys-typescale-label-large-size, 0.875rem);
16
+ --grist-title-with-grid-padding: 0;
17
+
18
+ --grist-object-editor-font: normal 1em var(--theme-font, 'Roboto');
19
+ --grist-object-editor-color: var(--md-sys-color-on-surface);
20
+
21
+ --grist-input-progress-border: 1px solid rgba(255, 255, 255, 0.5);
22
+ --grist-input-progress-background: rgba(121, 110, 110, 0.1);
23
+ --grist-input-progress-bar-background: var(--md-sys-color-primary-fixed-dim);
24
+ --grist-input-progress-bar-color: var(--md-sys-color-on-surface-variant);
25
+
26
+ --grid-header-background-color: var(--md-sys-color-surface-container-low);
27
+ --grid-header-top-border: 2px solid var(--md-sys-color-primary);
28
+ --grid-header-bottom-border: var(--grid-container-border-color);
29
+ --grid-header-border-color: var(--md-sys-color-outline);
30
+ --grid-header-padding: var(--spacing-small) var(--spacing-tiny);
31
+ --grid-header-sorter-size: 18px;
32
+ --grid-header-splitter-border: var(--grid-container-border-color);
33
+ --grid-header-splitter-border-hover: 1px solid var(--md-sys-color-inverse-primary);
34
+ --grid-header-color: var(--md-sys-color-primary);
35
+ --grid-header-font: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500))
36
+ var(--fontsize-small) var(--theme-font, 'Roboto');
37
+ --grid-header-filter-title-color: var(--md-sys-color-on-surface);
38
+ --grid-header-filter-title-font: normal 12px var(--theme-font, 'Roboto');
39
+ --grid-header-filter-title-icon-color: var(--md-sys-color-on-surface-variant);
40
+
41
+ --grid-body-bottom-border: var(--grid-header-bottom-border);
42
+
43
+ --grid-gutter-padding: var(--spacing-tiny) 0;
44
+
45
+ --grid-record-background-color: var(--md-sys-color-surface-container-lowest);
46
+ --grid-record-odd-background-color: var(--md-sys-color-surface-container-low);
47
+ --grid-record-padding: var(--spacing-small) var(--spacing-medium);
48
+ --grid-record-color: var(--md-sys-color-on-surface-variant);
49
+ --grid-record-color-hover: var(--md-sys-color-primary);
50
+ --grid-record-wide-fontsize: var(--md-sys-typescale-label-large-size, 0.875rem);
51
+ --grid-record-selected-background-color: var(--md-sys-color-primary-container);
52
+ --grid-record-selected-color: var(--md-sys-color-on-primary-container);
53
+ --grid-record-focused-border: 1px solid var(--md-sys-color-outline-variant);
54
+ --grid-record-focused-cell-background-color: var(--md-sys-color-secondary-container);
55
+ --grid-record-focused-cell-border: 1px dashed var(--md-sys-color-outline);
56
+ --grid-record-focused-box-shadow: 0px 2px 0px 0px rgb(0 0 0 / 10%);
57
+ --grid-record-emphasized-background-color: var(--md-sys-color-secondary-fixed-dim);
58
+ --grid-record-emphasized-color: var(--md-sys-color-on-secondary-fixed-variant);
59
+ --grid-record-editing-background-color: var(--md-sys-color-inverse-primary);
60
+ --grid-record-editing-border: 1px dashed rgba(var(--md-sys-color-primary-rgb), 0.4);
61
+ --grid-record-fontsize: var(--md-sys-typescale-label-large-size, 0.875rem);
62
+ --grid-record-border-bottom: var(--grid-container-border-color);
63
+
64
+ --grid-record-dirty-border-top: 24px solid rgba(var(--md-sys-color-primary-rgb), 0.6);
65
+ --grid-record-dirty-border-left: 24px solid transparent;
66
+ --grid-record-dirty-icon-font: bold 10px/12px var(--md-icon-font, 'Material Symbols Outlined');
67
+ --grid-record-dirty-icon-size: var(--fontsize-large);
68
+ --grid-record-dirty-color: var(--md-sys-color-surface);
69
+
70
+ --grid-footer-background-color: var(--md-sys-color-surface-container-low);
71
+ --grid-footer-font-size: var(--md-sys-typescale-label-large-size, 0.875rem);
72
+ --grid-footer-color: var(--md-sys-color-primary);
73
+ --grid-footer-limit-color: var(--md-ref-palette-neutral40, #5f5f5f);
74
+ --grid-footer-inactive-color: var(--md-ref-palette-neutral40, #5f5f5f);
75
+ --grid-footer-padding: var(--spacing-small) var(--spacing-medium);
76
+
77
+ --data-list-background-color: var(--md-sys-color-surface-container-lowest);
78
+ --data-list-item-margin: var(--spacing-medium);
79
+ --data-list-item-padding: var(--spacing-medium) var(--spacing-large);
80
+ --data-list-item-border-bottom: var(--grid-container-border-color);
81
+ --data-list-item-name-font: bold 1.1em var(--theme-font, 'Roboto');
82
+ --data-list-item-name-color: var(--md-sys-color-secondary);
83
+ --data-list-item-disc-font: normal 0.9em var(--theme-font, 'Roboto');
84
+ --data-list-item-disc-color: var(--md-sys-color-on-tertiary-container);
85
+ --data-list-item-etc-label-font: bold 1em/1em var(--theme-font, 'Roboto');
86
+ --data-list-item-etc-font: normal 0.9em/1em var(--theme-font, 'Roboto');
87
+ --data-list-item-etc-color: var(--md-ref-palette-neutral50, #787878);
88
+ --data-list-item-icon-font: normal 1em/1em;
89
+ --data-list-item-icon-color: var(--md-sys-color-on-secondary);
90
+ --data-list-selected-background-color: var(--grid-record-selected-background-color);
91
+ --data-list-fab-position-horizontal: 15px;
92
+ --data-list-fab-position-vertical: 15px;
93
+ --data-list-fab-color: var(--md-sys-color-primary);
94
+ --data-list-fab-shadow: var(--box-shadow);
95
+
96
+ --data-card-background-color: var(--md-sys-color-surface-container);
97
+ --data-card-record-card-background-color: var(--md-sys-color-surface-container-lowest);
98
+ --data-card-record-card-border: var(--grid-container-border-color);
99
+ --data-card-record-card-border-hover: 1px solid var(--md-sys-color-primary);
100
+ --data-card-record-card-boxshadow-hover: 1px 1px 2px 1px rgba(0, 0, 0, 0.15);
101
+ --data-card-record-card-selected-border: 1px solid var(--md-sys-color-primary);
102
+ --data-card-record-card-border-radius: var(--md-sys-shape-corner-small);
103
+ --data-card-item-margin: var(--spacing-medium);
104
+ --data-card-item-padding: var(--spacing-medium) var(--spacing-large);
105
+ --data-card-item-border-bottom: var(--grid-container-border-color);
106
+ --data-card-item-name-font: bold 1.1em var(--theme-font, 'Roboto');
107
+ --data-card-item-name-color: var(--md-sys-color-secondary);
108
+ --data-card-item-name-label-font: normal 0.65em/0.8em var(--theme-font, 'Roboto');
109
+ --data-card-item-name-label-color: var(--md-sys-color-secondary);
110
+ --data-card-item-disc-font: normal 0.9em var(--theme-font, 'Roboto');
111
+ --data-card-item-disc-color: var(--md-sys-color-tertiary);
112
+ --data-card-item-etc-label-font: normal 1em/1em var(--theme-font, 'Roboto');
113
+ --data-card-item-etc-font: normal 0.9em/1em var(--theme-font, 'Roboto');
114
+ --data-card-item-etc-color: var(--md-ref-palette-neutral50, #787878);
115
+ --data-card-item-icon-font: normal 1em/1em;
116
+ --data-card-item-icon-color: var(--md-sys-color-on-secondary);
117
+ --data-card-item-btn-border: var(--grid-container-border-color);
118
+ --data-card-item-btn-border-radius: var(--md-sys-shape-corner-small);
119
+ --data-card-item-btn-padding: var(--spacing-small);
120
+ --data-card-selected-background-color: var(--grid-record-selected-background-color);
121
+ --data-card-fab-position-horizontal: 15px;
122
+ --data-card-fab-position-vertical: 15px;
123
+ --data-card-fab-color: var(--md-sys-color-primary);
124
+ --data-card-fab-shadow: var(--box-shadow);
125
+ --data-card-thumbnail-height: 140px;
126
+ --data-card-thumbnail-border-bottom: var(--grid-container-border-color);
127
+ --data-card-attachimg-height: 70px;
128
+
129
+ --record-view-background-color: var(--md-sys-color-surface-container);
130
+ --record-view-gap: var(--spacing-small) 0;
131
+ --record-view-padding: var(--spacing-medium);
132
+ --record-view-label-font: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500)) 15px
133
+ var(--theme-font, 'Roboto');
134
+ --record-view-label-color: var(--md-sys-color-secondary);
135
+ --record-view-label-icon-size: var(--fontsize-small);
136
+ --record-view-font: normal 15px var(--theme-font, 'Roboto');
137
+ --record-view-color: var(--md-sys-color-secondary);
138
+ --record-view-focus-color: var(--md-sys-color-primary);
139
+ --record-view-border-bottom: var(--grid-container-border-color);
140
+ --record-view-edit-border-bottom: 2px solid var(--md-sys-color-primary);
141
+ --record-view-item-padding: var(--spacing-medium);
142
+
143
+ --record-view-footer-background: var(--md-ref-palette-neutral50, #787878);
144
+ --record-view-footer-button-border: var(--grid-container-border-color);
145
+ --record-view-footer-button-border-width: 0 0 0 1px;
146
+ --record-view-footer-button-font: 17px;
147
+ --record-view-footer-button-color: var(--md-sys-color-surface);
148
+ --record-view-footer-iconbutton-size: 35px;
149
+ --record-view-footer-focus-background: var(--md-sys-color-primary);
150
+
151
+ --ox-grist-padding: var(--spacing-medium);
152
+ }
153
+
154
+ @media only screen and (max-width: 460px) {
155
+ body {
156
+ --record-view-label-font: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500)) 15px/32px
157
+ var(--theme-font, 'Roboto');
158
+ --record-view-font: normal 15px/32px var(--theme-font, 'Roboto');
159
+ --ox-grist-padding: 0;
160
+ }
161
+ }
162
+ @media (min-width: 461px) and (max-width: 700px) {
163
+ body {
164
+ --ox-grist-padding: 0;
165
+ }
166
+ }
167
+ @media (min-width: 461px) and (max-width: 1024px) {
168
+ body {
169
+ --data-card-create-form-padding: 7px;
170
+ }
171
+ }
172
+
173
+ body.dark {
174
+ --grid-container-border-color: 1px solid rgba(255, 255, 255, 0.09);
175
+ }