@operato/data-mapper 9.0.0-beta.50

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 ADDED
@@ -0,0 +1,85 @@
1
+ {
2
+ "name": "@operato/data-mapper",
3
+ "version": "9.0.0-beta.50",
4
+ "description": "User interface for tree structure data",
5
+ "author": "heartyoh",
6
+ "type": "module",
7
+ "main": "dist/index.js",
8
+ "module": "dist/index.js",
9
+ "license": "MIT",
10
+ "operato": true,
11
+ "publishConfig": {
12
+ "access": "public",
13
+ "@operato:registry": "https://registry.npmjs.org"
14
+ },
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/hatiolab/operato.git",
18
+ "directory": "webcomponents/data-mapper"
19
+ },
20
+ "exports": {
21
+ ".": "./dist/src/index.js",
22
+ "./package.json": "./package.json",
23
+ "./ox-data-mapper.js": "./dist/src/ox-data-mapper.js"
24
+ },
25
+ "typesVersions": {
26
+ "*": {
27
+ "ox-data-mapper.js": [
28
+ "dist/src/ox-data-mapper.d.ts"
29
+ ]
30
+ }
31
+ },
32
+ "scripts": {
33
+ "analyze": "cem analyze --litelement",
34
+ "start": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds\"",
35
+ "build": "tsc && npm run analyze -- --exclude dist",
36
+ "prepublish": "tsc && npm run analyze -- --exclude dist",
37
+ "lint": "eslint --ext .ts,.html . --ignore-path ../../.gitignore && prettier \"**/*.ts\" --check --ignore-path ../../.gitignore",
38
+ "format": "eslint --ext .ts,.html . --fix --ignore-path ../../.gitignore && prettier \"**/*.ts\" --write --ignore-path ../../.gitignore",
39
+ "test": "tsc && wtr --coverage",
40
+ "test:watch": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wtr --watch\"",
41
+ "storybook": "tsc && concurrently -k -r \"tsc --watch --preserveWatchOutput\" \"wds -c .storybook/server.mjs\"",
42
+ "storybook:build": "tsc && build-storybook"
43
+ },
44
+ "dependencies": {
45
+ "@operato/data-tree": "^9.0.0-beta.50",
46
+ "@operato/styles": "^9.0.0-beta.47",
47
+ "i18next": "^24.2.1",
48
+ "lit": "^3.1.2",
49
+ "lodash-es": "^4.17.21"
50
+ },
51
+ "devDependencies": {
52
+ "@custom-elements-manifest/analyzer": "^0.10.0",
53
+ "@hatiolab/prettier-config": "^1.0.0",
54
+ "@open-wc/eslint-config": "^12.0.3",
55
+ "@open-wc/testing": "^4.0.0",
56
+ "@types/lodash-es": "^4.17.5",
57
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
58
+ "@typescript-eslint/parser": "^8.0.0",
59
+ "@web/dev-server": "^0.4.0",
60
+ "@web/dev-server-storybook": "^2.0.1",
61
+ "@web/test-runner": "^0.19.0",
62
+ "concurrently": "^9.0.0",
63
+ "eslint": "^9.0.0",
64
+ "eslint-config-prettier": "^9.1.0",
65
+ "husky": "^9.0.11",
66
+ "lint-staged": "^15.2.2",
67
+ "prettier": "^3.2.5",
68
+ "tslib": "^2.3.1",
69
+ "typescript": "^5.0.4"
70
+ },
71
+ "customElements": "custom-elements.json",
72
+ "prettier": "@hatiolab/prettier-config",
73
+ "husky": {
74
+ "hooks": {
75
+ "pre-commit": "lint-staged"
76
+ }
77
+ },
78
+ "lint-staged": {
79
+ "*.ts": [
80
+ "eslint --fix",
81
+ "prettier --write"
82
+ ]
83
+ },
84
+ "gitHead": "daad07659df90a83c4495687068ccbade90ce928"
85
+ }
@@ -0,0 +1,138 @@
1
+ body {
2
+ /* theme color */
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);
12
+
13
+ /* common style */
14
+ --border-radius: 4px;
15
+ --border-dim-color: 1px solid rgba(0, 0, 0, 0.15);
16
+ --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
17
+
18
+ --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
19
+
20
+ --theme-font: 'Noto', Helvetica;
21
+
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);
28
+
29
+ --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
30
+ --scrollbar-thumb-hover-color: var(--md-sys-color-primary);
31
+
32
+ --fontsize-default: 14px;
33
+ --fontsize-small: 13px;
34
+ --fontsize-large: 16px;
35
+
36
+ /* app layout style */
37
+ --app-grid-template-area: 'header header header' 'nav main aside' 'nav footer aside';
38
+
39
+ /* title & description style */
40
+ --title-margin: var(--margin-narrow) 0;
41
+ --title-font: bold 24px var(--theme-font);
42
+ --title-text-color: var(--md-sys-color-secondary);
43
+ --title-font-mobile: bold 20px var(--theme-font);
44
+
45
+ --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
46
+ --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
47
+ --page-description-color: var(--md-sys-color-primary);
48
+
49
+ --subtitle-padding: 12px 5px 3px 5px;
50
+ --subtitle-font: bold 18px var(--theme-font);
51
+ --subtitle-text-color: var(--md-sys-color-primary);
52
+ --subtitle-border-bottom: 1px solid var(--md-sys-color-primary);
53
+
54
+ /* icon style */
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);
59
+
60
+ /* material design component themes */
61
+ --mdc-theme-on-primary: var(--md-sys-color-on-primary);
62
+ --mdc-theme-primary: var(--secondary-text-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);
66
+ --mdc-danger-button-primary-color: var(--status-danger-color);
67
+ --mdc-danger-button-outline-color: var(--status-danger-color);
68
+ --mdc-button-outline-width: 1px;
69
+ --mdc-button-horizontal-padding: 16px;
70
+
71
+ /* button style */
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);
75
+ --button-border-radius: var(--border-radius);
76
+ --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
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);
80
+ --button-text-transform: capitalize;
81
+ --button-active-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.2);
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);
86
+
87
+ --button-primary-background-color: var(--md-sys-color-primary);
88
+ --button-primary-active-background-color: var(--status-success-color);
89
+ --button-primary-padding: var(--margin-default) var(--margin-wide);
90
+ --button-primary-color: var(--md-sys-color-on-primary);
91
+ --button-primary-font: bold 16px var(--theme-font);
92
+
93
+ /* table style */
94
+ --th-padding: var(--padding-default);
95
+ --th-border-top: 2px solid var(--md-sys-color-secondary);
96
+ --th-text-transform: capitalize;
97
+ --th-font: bold var(--fontsize-small) var(--theme-font);
98
+ --th-color: var(--md-sys-color-secondary);
99
+
100
+ --tr-background-color: var(--md-sys-color-surface-variant);
101
+ --tr-background-odd-color: rgba(255, 255, 255, 0.4);
102
+ --tr-background-hover-color: #e1f5fe;
103
+ --td-border-line: 1px solid rgba(0, 0, 0, 0.05);
104
+ --td-border-bottom: 1px solid rgba(0, 0, 0, 0.09);
105
+ --td-padding: var(--padding-default);
106
+ --td-font: normal 13px var(--theme-font);
107
+ --td-color: var(--md-sys-color-secondary);
108
+
109
+ --label-cell-background-color: var(--md-sys-color-surface); /* th or td common background color */
110
+
111
+ /* form style */
112
+ --label-font: normal var(--fontsize-default) var(--theme-font);
113
+ --label-color: var(--md-sys-color-on-surface);
114
+ --label-text-transform: capitalize;
115
+ --input-margin: var(--margin-narrow) 0;
116
+ --input-padding: 6px 2px;
117
+ --input-min-width: 200px;
118
+ --input-font: normal var(--fontsize-default) var(--theme-font);
119
+ --input-hint-font: normal var(--fontsize-small) var(--theme-font);
120
+ --input-hint-color: #666;
121
+ --input-container-max-width: 900px;
122
+ --fieldset-margin: var(--padding-wide) 0;
123
+ --fieldset-padding: 0 var(--padding-wide) var(--padding-wide) var(--padding-wide);
124
+ --legend-padding: var(--padding-default) 0;
125
+ --legend-color: var(--md-sys-color-secondary);
126
+ --legend-font: bold 16px var(--theme-font);
127
+ }
128
+
129
+ body.dark {
130
+ caret-color: white;
131
+ }
132
+
133
+ @media only screen and (max-width: 460px) {
134
+ body {
135
+ /* subtitle style */
136
+ --subtitle-margin: 0;
137
+ }
138
+ }
@@ -0,0 +1,61 @@
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-month-background-color: var(--md-sys-color-surface-variant);
13
+ --calendar-current-month-color: var(--md-sys-color-on-surface);
14
+ --calendar-monthly-label-align: left;
15
+ --calendar-monthly-label-padding: var(--padding-narrow) 0;
16
+ --calendar-monthly-label-color: var(--md-sys-color-secondary);
17
+ --calendar-monthly-opacity: 0.5;
18
+ --calendar-monthly-date-label-background-color: var(--status-danger-color);
19
+ --calendar-monthly-date-label-margin: var(--margin-narrow);
20
+ --calendar-monthly-date-label-padding: 0px 6px;
21
+ --calendar-monthly-date-label-color: var(--md-sys-color-on-primary);
22
+
23
+ --calendar-monthly-background-color: #f4f4f4;
24
+ --calendar-monthly-event-border-radius: var(--border-radius);
25
+ --calendar-monthly-event-margin: var(--padding-narrow) 0 0 0;
26
+ --calendar-monthly-event-padding: 2px var(--padding-default);
27
+ --calendar-monthly-event-border: 3px solid #ccc;
28
+ --calendar-monthly-event-border-width: 0 0 0 3px;
29
+
30
+ /* weekly common color */
31
+ --calendar-weekly-text-color: var(--md-sys-color-secondary);
32
+ --calendar-weekly-border: 1px solid rgba(0, 0, 0, 0.1);
33
+ --calendar-weekly-border-width: 0 1px 1px 0px;
34
+
35
+ /* weekly layout */
36
+ --calendar-weekly-ol-margin: var(--margin-default) 0;
37
+ --calendar-weekly-ol-top-border: 2px solid var(--md-sys-color-secondary);
38
+ --calendar-current-week-background-color: var(--md-sys-color-surface-variant);
39
+ --calendar-current-week-color: var(--md-sys-color-on-surface);
40
+ --calendar-weekly-label-align: center;
41
+ --calendar-weekly-label-padding: var(--padding-narrow) 0;
42
+ --calendar-weekly-label-color: var(--md-sys-color-secondary);
43
+ --calendar-weekly-opacity: 0.5;
44
+ --calendar-weekly-date-label-background-color: var(--status-danger-color);
45
+ --calendar-weekly-date-label-margin: var(--margin-narrow);
46
+ --calendar-weekly-date-label-padding: 0px 6px;
47
+ --calendar-weekly-date-label-color: var(--md-sys-color-on-primary);
48
+
49
+ --calendar-weekly-background-color: #f4f4f4;
50
+ --calendar-weekly-event-border-radius: var(--border-radius);
51
+ --calendar-weekly-event-margin: var(--padding-narrow) 0 0 0;
52
+ --calendar-weekly-event-padding: 2px var(--padding-default);
53
+ --calendar-weekly-event-border: 3px solid #ccc;
54
+ --calendar-weekly-event-border-width: 0 0 0 3px;
55
+ }
56
+
57
+ @media only screen and (max-width: 460px) {
58
+ body {
59
+ --calendar-monthly-text-color: tomato;
60
+ }
61
+ }
@@ -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,70 @@
1
+ body {
2
+ --form-border: none;
3
+ --form-margin: var(--spacing-medium);
4
+ --form-max-width: 700px;
5
+ --form-multi-column-max-width: 100%;
6
+ --form-sublabel-font: normal 13px var(--theme-font);
7
+ --form-grid-gap: 12px 5px;
8
+
9
+ --legend-padding: var(--spacing-medium) 0;
10
+ --legend-font: bold 16px var(--theme-font);
11
+ --legend-text-color: var(--md-sys-color-on-secondary);
12
+ --legend-border-bottom: 1px solid var(--md-sys-color-primary);
13
+
14
+ --label-padding: 3px 0;
15
+ --label-font: normal 14px var(--theme-font);
16
+
17
+ --input-field-border: 1px solid rgba(0, 0, 0, 0.2);
18
+ --input-field-border-radius: var(--border-radius);
19
+ --input-field-padding: 2px 9px;
20
+ --input-field-font: normal 14px var(--theme-font);
21
+
22
+ --search-panel-background-color: rgba(0, 0, 0, 0.1);
23
+ --search-panel-search-iconbutton-size: var(--icon-default-size);
24
+ --search-form-box-shadow: 0 2px 3px 1px rgba(0, 0, 0, 0.15);
25
+ --search-form-box-padding: 15px 30px 15px 15px;
26
+
27
+ --ox-input-border: none;
28
+
29
+ --file-uploader-border: 1px solid rgba(0, 0, 0, 0.1);
30
+ --file-uploader-background-color: var(--md-sys-color-background);
31
+ --file-uploader-font: normal 12px/20px var(--theme-font);
32
+ --file-uploader-color: var(--md-sys-color-secondary);
33
+ --file-uploader-icon-color: var(--md-sys-color-primary);
34
+ --file-uploader-candrop-background-color: #fffde9;
35
+ --file-uploader-label-padding: 3px 20px;
36
+ --file-uploader-label-border-radius: var(--border-radius);
37
+ --file-uploader-label-background-color: var(--md-sys-color-secondary);
38
+ --file-uploader-label-font: normal 12px var(--theme-font);
39
+ --file-uploader-label-color: #fff;
40
+ --file-uploader-li-padding: 2px 5px 0px 5px;
41
+ --file-uploader-li-border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
42
+ --file-uploader-li-icon-font: normal 15px var(--md-icon-font, 'Material Symbols Outlined');
43
+ --file-uploader-li-icon-focus-color: var(--md-sys-color-primary);
44
+ }
45
+
46
+ @media screen and (max-width: 480px) {
47
+ body {
48
+ --label-font: normal 15px var(--theme-font);
49
+ }
50
+ }
51
+
52
+ @media (min-width: 481px) and (max-width: 1024px) {
53
+ body {
54
+ --form-margin: 15px 0;
55
+ --form-multi-column-max-width: 100%;
56
+ --form-container-padding: 0 9px 12px 9px;
57
+ --label-font: normal 14px var(--theme-font);
58
+ --input-field-font: normal 15px var(--theme-font);
59
+ --input-field-padding: 3px 5px;
60
+ }
61
+ }
62
+
63
+ @media only screen and (max-width: 925px) {
64
+ body {
65
+ --form-margin: 14px 0;
66
+ --form-multi-column-max-width: 100%;
67
+ --form-container-padding: 0 9px 12px 9px;
68
+ --input-field-padding: 3px 5px;
69
+ }
70
+ }
@@ -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
+ }
@@ -0,0 +1,94 @@
1
+ body {
2
+ --header-bar-background-color: var(--md-sys-color-primary);
3
+ --header-bar-icon-size: var(--icon-default-size);
4
+ --header-bar-title: bold 17.5px var(--theme-font);
5
+ --header-bar-color: var(--md-sys-color-on-primary);
6
+ --header-bar-height: 45px;
7
+
8
+ --nav-bar-background-color: var(--md-sys-color-primary-container);
9
+
10
+ --group-bar-background-color: var(--md-sys-color-secondary-container);
11
+ --group-bar-textbutton: 16px/32px var(--theme-font);
12
+ --group-bar-textbutton-active: bold var(--group-bar-textbutton);
13
+ --group-bar-active-line-color: var(--md-sys-color-on-secondary-container);
14
+ --group-bar-line: solid 3px rgba(0, 0, 0, 0.2);
15
+
16
+ --footer-bar-border-top: 1px solid rgba(0, 0, 0, 0.2);
17
+
18
+ --aside-background-color: var(--md-sys-color-secondary-container);
19
+ --aside-list-textbtton: 18px var(--theme-font);
20
+ --aside-list-icon: var(--icon-default-size);
21
+ --aside-list-bottom-line: var(--md-sys-color-outline);
22
+ --aside-list-detail-background-color: #fff;
23
+ --aside-list-detail-text: 14px var(--md-sys-color-on-secondary-container);
24
+
25
+ --footer-bar-border-top: 1px solid rgba(0, 0, 0, 0.2);
26
+
27
+ --button-container-margin: inintial;
28
+ --button-container-padding: 0 var(--padding-default) var(--padding-wide) var(--padding-default);
29
+ --button-container-background: transparent;
30
+ --button-container-height: initial;
31
+ --button-container-align: right;
32
+ --button-container-button-background-color: var(--md-sys-color-secondary);
33
+ --button-container-button-border-radius: var(--button-border-radius);
34
+ --button-container-button-margin: var(--button-margin);
35
+ --button-container-button-font: bold var(--fontsize-large) var(--theme-font);
36
+ --button-container-button-color: var(--md-sys-color-on-primary);
37
+ --button-container-button-height: initial;
38
+ --button-container-button-border: var(--button-border);
39
+
40
+ --popup-content-background-color: var(--md-sys-color-background);
41
+ --popup-content-color: var(--md-sys-color-on-background);
42
+ --popup-content-padding: 10px 20px;
43
+
44
+ /* components - floating overlay style */
45
+ --overlay-center-small-width: 30%;
46
+ --overlay-center-small-height: 30%;
47
+ --overlay-center-normal-width: 50%;
48
+ --overlay-center-normal-height: 50%;
49
+ --overlay-center-large-width: 75%;
50
+ --overlay-center-large-height: 75%;
51
+ --overlay-header-height: var(--header-bar-height);
52
+ --overlay-header-background-color: var(--header-bar-background-color);
53
+ --overlay-header-color: #fff;
54
+ --overlay-header-font: var(--header-bar-title);
55
+ --overlay-background-color: rgba(0, 0, 0, 0.5);
56
+ --overlay-margin-bottom: 0px;
57
+
58
+ /* components - resize splitter style */
59
+ --splitter-background-color: rgba(0, 0, 0, 0.1);
60
+ --splitter-hover-background-color: rgba(0, 0, 0, 0.1);
61
+ }
62
+
63
+ @media only screen and (max-width: 460px) {
64
+ body {
65
+ --button-container-margin: 0 -15px;
66
+ --button-container-padding: 0 0 0 0;
67
+ --button-container-background: #586272;
68
+ --button-container-height: 50px;
69
+ --button-container-align: right;
70
+ --button-container-button-background-color: transparent;
71
+ --button-container-button-border-radius: 0;
72
+ --button-container-button-margin: 0;
73
+ --button-container-button-height: 50px;
74
+ --button-container-button-border: 1px solid rgba(0, 0, 0, 0.1);
75
+
76
+ --overlay-center-small-width: 100%;
77
+ --overlay-center-small-height: 100%;
78
+ --overlay-center-normal-width: 100%;
79
+ --overlay-center-normal-height: 100%;
80
+ --overlay-center-large-width: 100%;
81
+ --overlay-center-large-height: 100%;
82
+ }
83
+ }
84
+
85
+ @media (min-width: 461px) and (max-width: 1024px) {
86
+ body {
87
+ --overlay-center-small-width: 40%;
88
+ --overlay-center-small-height: 40%;
89
+ --overlay-center-normal-width: 60%;
90
+ --overlay-center-normal-height: 60%;
91
+ --overlay-center-large-width: 80%;
92
+ --overlay-center-large-height: 80%;
93
+ }
94
+ }