@operato/form 2.0.0-alpha.94 → 2.0.0-beta.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 (97) hide show
  1. package/CHANGELOG.md +272 -0
  2. package/dist/src/components/ox-custom-input.js +5 -5
  3. package/dist/src/components/ox-custom-input.js.map +1 -1
  4. package/dist/src/components/ox-custom-select.js +2 -1
  5. package/dist/src/components/ox-custom-select.js.map +1 -1
  6. package/dist/src/components/ox-file-uploader.js +1 -1
  7. package/dist/src/components/ox-file-uploader.js.map +1 -1
  8. package/dist/src/components/ox-search-form.d.ts +12 -23
  9. package/dist/src/components/ox-search-form.js +227 -91
  10. package/dist/src/components/ox-search-form.js.map +1 -1
  11. package/dist/src/filters/filter-checkbox.js +2 -1
  12. package/dist/src/filters/filter-checkbox.js.map +1 -1
  13. package/dist/src/filters/filter-input-barcode.js +5 -3
  14. package/dist/src/filters/filter-input-barcode.js.map +1 -1
  15. package/dist/src/filters/filter-input.js +2 -1
  16. package/dist/src/filters/filter-input.js.map +1 -1
  17. package/dist/src/filters/filter-range-date.js +3 -1
  18. package/dist/src/filters/filter-range-date.js.map +1 -1
  19. package/dist/src/filters/filter-range-number.js +3 -1
  20. package/dist/src/filters/filter-range-number.js.map +1 -1
  21. package/dist/src/filters/filter-select.js +23 -11
  22. package/dist/src/filters/filter-select.js.map +1 -1
  23. package/dist/src/filters/filter-styles.js +56 -24
  24. package/dist/src/filters/filter-styles.js.map +1 -1
  25. package/dist/src/filters/ox-filter-personalizer.d.ts +8 -0
  26. package/dist/src/filters/ox-filter-personalizer.js +175 -0
  27. package/dist/src/filters/ox-filter-personalizer.js.map +1 -0
  28. package/dist/src/filters/ox-filters-form-base.d.ts +13 -3
  29. package/dist/src/filters/ox-filters-form-base.js +196 -60
  30. package/dist/src/filters/ox-filters-form-base.js.map +1 -1
  31. package/dist/src/styles/multi-column-form-styles.js +6 -6
  32. package/dist/src/styles/multi-column-form-styles.js.map +1 -1
  33. package/dist/src/styles/search-form-styles.js +23 -18
  34. package/dist/src/styles/search-form-styles.js.map +1 -1
  35. package/dist/src/styles/single-column-form-styles.js +5 -5
  36. package/dist/src/styles/single-column-form-styles.js.map +1 -1
  37. package/dist/src/types.d.ts +42 -2
  38. package/dist/src/types.js.map +1 -1
  39. package/dist/stories/ox-filters-form-barcode.stories.d.ts +5 -0
  40. package/dist/stories/ox-filters-form-barcode.stories.js +51 -12
  41. package/dist/stories/ox-filters-form-barcode.stories.js.map +1 -1
  42. package/dist/stories/ox-filters-form-base-bounded.stories.d.ts +35 -0
  43. package/dist/stories/ox-filters-form-base-bounded.stories.js +187 -0
  44. package/dist/stories/ox-filters-form-base-bounded.stories.js.map +1 -0
  45. package/dist/stories/ox-filters-form-base-change-handler.stories.d.ts +35 -0
  46. package/dist/stories/ox-filters-form-base-change-handler.stories.js +199 -0
  47. package/dist/stories/ox-filters-form-base-change-handler.stories.js.map +1 -0
  48. package/dist/stories/ox-filters-form-base-page-preference.stories.d.ts +31 -0
  49. package/dist/stories/ox-filters-form-base-page-preference.stories.js +173 -0
  50. package/dist/stories/ox-filters-form-base-page-preference.stories.js.map +1 -0
  51. package/dist/stories/ox-filters-form-base.stories.d.ts +5 -0
  52. package/dist/stories/ox-filters-form-base.stories.js +57 -27
  53. package/dist/stories/ox-filters-form-base.stories.js.map +1 -1
  54. package/dist/stories/ox-search-form-change-handler.stories.d.ts +34 -0
  55. package/dist/stories/ox-search-form-change-handler.stories.js +227 -0
  56. package/dist/stories/ox-search-form-change-handler.stories.js.map +1 -0
  57. package/dist/stories/ox-search-form.stories.d.ts +45 -0
  58. package/dist/stories/ox-search-form.stories.js +235 -0
  59. package/dist/stories/ox-search-form.stories.js.map +1 -0
  60. package/dist/tsconfig.tsbuildinfo +1 -1
  61. package/package.json +7 -5
  62. package/src/components/ox-custom-input.ts +5 -5
  63. package/src/components/ox-custom-select.ts +2 -1
  64. package/src/components/ox-file-uploader.ts +1 -1
  65. package/src/components/ox-search-form.ts +231 -97
  66. package/src/filters/filter-checkbox.ts +2 -1
  67. package/src/filters/filter-input-barcode.ts +5 -3
  68. package/src/filters/filter-input.ts +2 -1
  69. package/src/filters/filter-range-date.ts +3 -1
  70. package/src/filters/filter-range-number.ts +3 -1
  71. package/src/filters/filter-select.ts +29 -20
  72. package/src/filters/filter-styles.ts +56 -24
  73. package/src/filters/ox-filter-personalizer.ts +188 -0
  74. package/src/filters/ox-filters-form-base.ts +222 -79
  75. package/src/styles/multi-column-form-styles.ts +6 -6
  76. package/src/styles/search-form-styles.ts +23 -18
  77. package/src/styles/single-column-form-styles.ts +5 -5
  78. package/src/types.ts +48 -2
  79. package/stories/ox-filters-form-barcode.stories.ts +54 -14
  80. package/stories/ox-filters-form-base-bounded.stories.ts +213 -0
  81. package/stories/ox-filters-form-base-change-handler.stories.ts +225 -0
  82. package/stories/ox-filters-form-base-page-preference.stories.ts +192 -0
  83. package/stories/ox-filters-form-base.stories.ts +63 -31
  84. package/stories/ox-search-form-change-handler.stories.ts +252 -0
  85. package/stories/ox-search-form.stories.ts +269 -0
  86. package/themes/dark-hc.css +151 -0
  87. package/themes/dark-mc.css +151 -0
  88. package/themes/dark.css +151 -0
  89. package/themes/grist-theme.css +169 -0
  90. package/themes/light-hc.css +151 -0
  91. package/themes/light-mc.css +151 -0
  92. package/themes/light.css +151 -0
  93. package/themes/md-typescale-styles.css +100 -0
  94. package/themes/spacing.css +43 -0
  95. package/themes/state-color.css +6 -0
  96. package/themes/app-theme.css +0 -145
  97. package/themes/form-theme.css +0 -75
@@ -0,0 +1,269 @@
1
+ import { CommonHeaderStyles } from '@operato/styles'
2
+ import { sleep } from '@operato/utils'
3
+ import '../src/components/ox-search-form.js'
4
+
5
+ import { html, TemplateResult } from 'lit'
6
+ import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
7
+
8
+ import { OxSearchForm, SearchFormField } from '../src/index.js'
9
+
10
+ export default {
11
+ title: 'ox-search-form',
12
+ component: 'ox-search-form',
13
+ argTypes: {
14
+ value: { control: 'object' },
15
+ fields: { control: 'object' },
16
+ hideSearchButton: { control: 'boolean' },
17
+ autofocus: { control: 'boolean' },
18
+ resetTarget: { control: 'object' },
19
+ theme: { control: 'select', options: ['light', 'dark'] }
20
+ }
21
+ }
22
+
23
+ interface Story<T> {
24
+ (args: T): TemplateResult
25
+ args?: Partial<T>
26
+ argTypes?: Record<string, unknown>
27
+ }
28
+
29
+ interface ArgTypes {
30
+ fields?: SearchFormField[]
31
+ hideSearchButton?: boolean
32
+ autofocus?: boolean
33
+ resetTarget: string[] | { [field: string]: any }
34
+ theme: 'light' | 'dark'
35
+ }
36
+
37
+ const Template: Story<ArgTypes> = ({
38
+ fields,
39
+ hideSearchButton,
40
+ autofocus,
41
+ resetTarget,
42
+ theme = 'light'
43
+ }: ArgTypes) => html`
44
+ <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
45
+
46
+ <link href="/themes/light.css" rel="stylesheet" />
47
+ <link href="/themes/dark.css" rel="stylesheet" />
48
+ <link href="/themes/spacing.css" rel="stylesheet" />
49
+
50
+ <link
51
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
52
+ rel="stylesheet"
53
+ />
54
+ <link
55
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
56
+ rel="stylesheet"
57
+ />
58
+ <link
59
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
60
+ rel="stylesheet"
61
+ />
62
+
63
+ <style>
64
+ ${MDTypeScaleStyles.cssText}
65
+ </style>
66
+
67
+ <style>
68
+ ${CommonHeaderStyles.cssText}
69
+ </style>
70
+
71
+ <style>
72
+ body {
73
+ width: 100%;
74
+ height: 500px;
75
+ text-align: center;
76
+
77
+ background-color: var(--md-sys-color-background);
78
+ color: var(--md-sys-color-on-background);
79
+ }
80
+
81
+ .header {
82
+ padding: var(--spacing-medium);
83
+ background-color: var(--md-sys-color-primary-container);
84
+ color: var(--md-sys-color-on-primary-container);
85
+ }
86
+ </style>
87
+
88
+ <script>
89
+ document.body.classList.add('${theme}')
90
+ </script>
91
+
92
+ <div class="header">
93
+ <div class="filters">
94
+ <ox-search-form
95
+ .fields=${fields!}
96
+ ?autofocus=${autofocus}
97
+ ?hideSearchButton=${hideSearchButton}
98
+ @change=${(e: CustomEvent) => {
99
+ console.log('search form changed', e.detail)
100
+ }}
101
+ >
102
+ </ox-search-form>
103
+ </div>
104
+ </div>
105
+
106
+ <button @click=${() => (document.querySelector('ox-search-form') as any)?.reset(resetTarget)}>Partial Reset</button>
107
+ <button @click=${() => (document.querySelector('ox-search-form') as any)?.reset()}>Full Reset</button>
108
+ `
109
+
110
+ const WAREHOUSE = [
111
+ {
112
+ id: '01',
113
+ name: '제 1 창고',
114
+ zones: [
115
+ {
116
+ id: 'Z001',
117
+ name: 'Zone 01-001',
118
+ locations: ['L01-001-01', 'L01-001-02', 'L01-001-03', 'L01-001-04', 'L01-001-05']
119
+ },
120
+ {
121
+ id: 'Z002',
122
+ name: 'Zone 01-002',
123
+ locations: ['L01-002-01', 'L01-002-02', 'L01-002-03', 'L01-002-04', 'L01-002-05']
124
+ }
125
+ ]
126
+ },
127
+ {
128
+ id: '02',
129
+ name: '제 2 창고',
130
+ zones: [
131
+ {
132
+ id: 'Z001',
133
+ name: 'Zone 02-001',
134
+ locations: ['L02-001-01', 'L02-001-02', 'L02-001-03', 'L02-001-04', 'L02-001-05']
135
+ },
136
+ {
137
+ id: 'Z002',
138
+ name: 'Zone 02-002',
139
+ locations: ['L02-002-01', 'L02-002-02', 'L02-002-03', 'L02-002-04', 'L02-002-05']
140
+ }
141
+ ]
142
+ }
143
+ ]
144
+
145
+ export const Regular = Template.bind({})
146
+ Regular.args = {
147
+ fields: [
148
+ {
149
+ type: 'select',
150
+ name: 'warehouse',
151
+ label: 'warehouse',
152
+ options: async (form: OxSearchForm) => {
153
+ await sleep(1000) // 테스트를 위해서 강제로 1초 쉬기
154
+ return [
155
+ {
156
+ display: '',
157
+ value: ''
158
+ }
159
+ ].concat(
160
+ WAREHOUSE.map(w => {
161
+ return {
162
+ display: w.name,
163
+ value: w.id
164
+ }
165
+ })
166
+ )
167
+ }
168
+ },
169
+ {
170
+ type: 'select',
171
+ name: 'zone',
172
+ label: 'zone',
173
+ boundTo: ['warehouse'],
174
+ options: async (form: OxSearchForm) => {
175
+ await sleep(1000) // 테스트를 위해서 강제로 1초 쉬기
176
+ const formData = new FormData(await form.form)
177
+ const warehouse = formData?.get('warehouse')
178
+ console.log('warehouse', warehouse)
179
+
180
+ const targetWH = warehouse && WAREHOUSE.find(w => w.id == warehouse)
181
+ const zones = targetWH
182
+ ? targetWH.zones
183
+ : WAREHOUSE.reduce((sum, warehouse) => {
184
+ sum = sum.concat(warehouse.zones)
185
+ return sum
186
+ }, [] as any[])
187
+
188
+ return [
189
+ {
190
+ display: '',
191
+ value: ''
192
+ }
193
+ ].concat(
194
+ zones.map((z: any) => {
195
+ return {
196
+ display: z.name,
197
+ value: z.id
198
+ }
199
+ })
200
+ )
201
+ }
202
+ },
203
+ {
204
+ name: 'location',
205
+ type: 'select',
206
+ label: 'location',
207
+ boundTo: ['warehouse', 'zone'],
208
+ options: async (form: OxSearchForm) => {
209
+ await sleep(1000) // 테스트를 위해서 강제로 1초 쉬기
210
+ const formData = new FormData(await form.form)
211
+ const warehouse = formData?.get('warehouse')
212
+ const zone = formData?.get('zone')
213
+ console.log('warehouse, zone', warehouse, zone)
214
+
215
+ const targetWH = (warehouse && WAREHOUSE.find(w => w.id == warehouse)) || null
216
+ const targetZone = zone && targetWH?.zones.find(z => z.id == zone)
217
+ return targetZone ? ['', ...targetZone.locations] : []
218
+ }
219
+ }
220
+ ],
221
+ hideSearchButton: true,
222
+ resetTarget: {
223
+ location: ''
224
+ },
225
+ autofocus: true
226
+ }
227
+
228
+ export const RegularContact = Template.bind({})
229
+ RegularContact.args = {
230
+ fields: [
231
+ {
232
+ label: 'name',
233
+ name: 'name',
234
+ type: 'text',
235
+ readonly: true,
236
+ value: '남상혁',
237
+ placeholder: 'type your name.',
238
+ props: { searchOper: 'i_like' }
239
+ },
240
+ {
241
+ label: 'email',
242
+ name: 'email',
243
+ type: 'text',
244
+ props: { searchOper: 'i_like' }
245
+ },
246
+ {
247
+ label: 'fax',
248
+ name: 'fax',
249
+ type: 'text',
250
+ props: { searchOper: 'i_like' }
251
+ },
252
+ {
253
+ label: 'phone',
254
+ name: 'phone',
255
+ type: 'text',
256
+ readonly: true,
257
+ props: { searchOper: 'i_like' }
258
+ },
259
+ {
260
+ label: 'description',
261
+ name: 'description',
262
+ type: 'text',
263
+ props: { searchOper: 'i_like' }
264
+ }
265
+ ],
266
+ hideSearchButton: true,
267
+ resetTarget: ['name', 'email'],
268
+ autofocus: true
269
+ }
@@ -0,0 +1,151 @@
1
+ .dark-high-contrast {
2
+ --md-sys-color-primary: rgb(252 250 255);
3
+ --md-sys-color-surface-tint: rgb(178 197 255);
4
+ --md-sys-color-on-primary: rgb(0 0 0);
5
+ --md-sys-color-primary-container: rgb(184 201 255);
6
+ --md-sys-color-on-primary-container: rgb(0 0 0);
7
+ --md-sys-color-secondary: rgb(248 251 255);
8
+ --md-sys-color-on-secondary: rgb(0 0 0);
9
+ --md-sys-color-secondary-container: rgb(147 211 247);
10
+ --md-sys-color-on-secondary-container: rgb(0 0 0);
11
+ --md-sys-color-tertiary: rgb(238 255 242);
12
+ --md-sys-color-on-tertiary: rgb(0 0 0);
13
+ --md-sys-color-tertiary-container: rgb(148 218 179);
14
+ --md-sys-color-on-tertiary-container: rgb(0 0 0);
15
+ --md-sys-color-error: rgb(255 249 249);
16
+ --md-sys-color-on-error: rgb(0 0 0);
17
+ --md-sys-color-error-container: rgb(255 185 180);
18
+ --md-sys-color-on-error-container: rgb(0 0 0);
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(255 255 255);
23
+ --md-sys-color-surface-variant: rgb(69 70 79);
24
+ --md-sys-color-on-surface-variant: rgb(252 250 255);
25
+ --md-sys-color-outline: rgb(201 202 212);
26
+ --md-sys-color-outline-variant: rgb(201 202 212);
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(0 0 0);
31
+ --md-sys-color-inverse-primary: rgb(16 39 90);
32
+ --md-sys-color-primary-fixed: rgb(224 230 255);
33
+ --md-sys-color-on-primary-fixed: rgb(0 0 0);
34
+ --md-sys-color-primary-fixed-dim: rgb(184 201 255);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(0 19 61);
36
+ --md-sys-color-secondary-fixed: rgb(205 235 255);
37
+ --md-sys-color-on-secondary-fixed: rgb(0 0 0);
38
+ --md-sys-color-secondary-fixed-dim: rgb(147 211 247);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(0 25 36);
40
+ --md-sys-color-tertiary-fixed: rgb(175 246 206);
41
+ --md-sys-color-on-tertiary-fixed: rgb(0 0 0);
42
+ --md-sys-color-tertiary-fixed-dim: rgb(148 218 179);
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 27 14);
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
+
52
+ /* primary palette */
53
+ --md-ref-palette-primary0:#000000;
54
+ --md-ref-palette-primary5:#000E32;
55
+ --md-ref-palette-primary10:#001848;
56
+ --md-ref-palette-primary15:#00215E;
57
+ --md-ref-palette-primary20:#002B74;
58
+ --md-ref-palette-primary25:#002B74;
59
+ --md-ref-palette-primary30:#0040A2;
60
+ --md-ref-palette-primary35:#002B74;
61
+ --md-ref-palette-primary40:#1957CA;
62
+ --md-ref-palette-primary50:#3E71E5;
63
+ --md-ref-palette-primary60:#5C8BFF;
64
+ --md-ref-palette-primary70:#89A9FF;
65
+ --md-ref-palette-primary80:#B2C5FF;
66
+ --md-ref-palette-primary90:#DAE2FF;
67
+ --md-ref-palette-primary95:#EEF0FF;
68
+ --md-ref-palette-primary98:#FAF8FF;
69
+ --md-ref-palette-primary99:#FEFBFF;
70
+ --md-ref-palette-primary100:#FFFFFF;
71
+
72
+ /* secondary palette */
73
+ --md-ref-palette-secondary0:#000000;
74
+ --md-ref-palette-secondary5:#00131D;
75
+ --md-ref-palette-secondary10:#001E2C;
76
+ --md-ref-palette-secondary15:#00293A;
77
+ --md-ref-palette-secondary20:#003549;
78
+ --md-ref-palette-secondary25:#004058;
79
+ --md-ref-palette-secondary30:#004C68;
80
+ --md-ref-palette-secondary35:#005978;
81
+ --md-ref-palette-secondary40:#006689;
82
+ --md-ref-palette-secondary50:#0080AC;
83
+ --md-ref-palette-secondary60:#009BCF;
84
+ --md-ref-palette-secondary70:#00B8F4;
85
+ --md-ref-palette-secondary80:#79D1FF;
86
+ --md-ref-palette-secondary90:#C3E8FF;
87
+ --md-ref-palette-secondary95:#E3F3FF;
88
+ --md-ref-palette-secondary98:#F5FAFF;
89
+ --md-ref-palette-secondary99:#FBFCFF;
90
+ --md-ref-palette-secondary100:#FFFFFF;
91
+
92
+ /* tertiary palette */
93
+ --md-ref-palette-tertiary0:#000000;
94
+ --md-ref-palette-tertiary5:#00150A;
95
+ --md-ref-palette-tertiary10:#002113;
96
+ --md-ref-palette-tertiary15:#002C1B;
97
+ --md-ref-palette-tertiary20:#003823;
98
+ --md-ref-palette-tertiary25:#00452B;
99
+ --md-ref-palette-tertiary30:#005234;
100
+ --md-ref-palette-tertiary35:#005F3E;
101
+ --md-ref-palette-tertiary40:#006C47;
102
+ --md-ref-palette-tertiary50:#00885A;
103
+ --md-ref-palette-tertiary60:#31A372;
104
+ --md-ref-palette-tertiary70:#51BF8B;
105
+ --md-ref-palette-tertiary80:#6EDBA5;
106
+ --md-ref-palette-tertiary90:#A2F4C7;
107
+ --md-ref-palette-tertiary95:#BFFFD9;
108
+ --md-ref-palette-tertiary98:#E8FFEF;
109
+ --md-ref-palette-tertiary99:#F4FFF5;
110
+ --md-ref-palette-tertiary100:#FFFFFF;
111
+
112
+ /* error palette */
113
+ --md-ref-palette-error0:#000000;
114
+ --md-ref-palette-error5:#2d0102;
115
+ --md-ref-palette-error10:#410304;
116
+ --md-ref-palette-error15:#540507;
117
+ --md-ref-palette-error20:#68070a;
118
+ --md-ref-palette-error25:#7d0b0e;
119
+ --md-ref-palette-error30:#930f14;
120
+ --md-ref-palette-error35:#a91319;
121
+ --md-ref-palette-error40:#bc1620;
122
+ --md-ref-palette-error50:#e03236;
123
+ --md-ref-palette-error60:#ff5450;
124
+ --md-ref-palette-error70:#ff8982;
125
+ --md-ref-palette-error80:#ffb3ad;
126
+ --md-ref-palette-error90:#ffdad7;
127
+ --md-ref-palette-error95:#ffedeb;
128
+ --md-ref-palette-error98:#fff8f7;
129
+ --md-ref-palette-error99:#fffbff;
130
+ --md-ref-palette-error100:#FFFFFF;
131
+
132
+ /* neutral palette */
133
+ --md-ref-palette-neutral0:#000000;
134
+ --md-ref-palette-neutral5:#111111;
135
+ --md-ref-palette-neutral10:#1C1C1C;
136
+ --md-ref-palette-neutral15:#262626;
137
+ --md-ref-palette-neutral20:#313131;
138
+ --md-ref-palette-neutral25:#3C3C3C;
139
+ --md-ref-palette-neutral30:#474747;
140
+ --md-ref-palette-neutral35:#535353;
141
+ --md-ref-palette-neutral40:#5F5F5F;
142
+ --md-ref-palette-neutral50:#787878;
143
+ --md-ref-palette-neutral60:#929292;
144
+ --md-ref-palette-neutral70:#ACACAC;
145
+ --md-ref-palette-neutral80:#C8C8C8;
146
+ --md-ref-palette-neutral90:#E4E4E4;
147
+ --md-ref-palette-neutral95:#F0F0F0;
148
+ --md-ref-palette-neutral98:#F9F9F9;
149
+ --md-ref-palette-neutral99:#FEFEFE;
150
+ --md-ref-palette-neutral100:#FFFFFF;
151
+ }
@@ -0,0 +1,151 @@
1
+ .dark-medium-contrast {
2
+ --md-sys-color-primary: rgb(184 201 255);
3
+ --md-sys-color-surface-tint: rgb(178 197 255);
4
+ --md-sys-color-on-primary: rgb(0 19 61);
5
+ --md-sys-color-primary-container: rgb(124 143 200);
6
+ --md-sys-color-on-primary-container: rgb(0 0 0);
7
+ --md-sys-color-secondary: rgb(147 211 247);
8
+ --md-sys-color-on-secondary: rgb(0 25 36);
9
+ --md-sys-color-secondary-container: rgb(88 152 186);
10
+ --md-sys-color-on-secondary-container: rgb(0 0 0);
11
+ --md-sys-color-tertiary: #cffce3;
12
+ --md-sys-color-on-tertiary: rgb(0 27 14);
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(252 250 255);
23
+ --md-sys-color-surface-variant: rgb(69 70 79);
24
+ --md-sys-color-on-surface-variant: rgb(201 202 212);
25
+ --md-sys-color-outline: rgb(161 162 172);
26
+ --md-sys-color-outline-variant: rgb(129 131 140);
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(41 42 47);
31
+ --md-sys-color-inverse-primary: rgb(50 70 122);
32
+ --md-sys-color-primary-fixed: rgb(218 226 255);
33
+ --md-sys-color-on-primary-fixed: rgb(0 15 51);
34
+ --md-sys-color-primary-fixed-dim: rgb(178 197 255);
35
+ --md-sys-color-on-primary-fixed-variant: rgb(31 52 102);
36
+ --md-sys-color-secondary-fixed: rgb(195 232 255);
37
+ --md-sys-color-on-secondary-fixed: rgb(0 19 29);
38
+ --md-sys-color-secondary-fixed-dim: rgb(143 207 243);
39
+ --md-sys-color-on-secondary-fixed-variant: rgb(0 59 81);
40
+ --md-sys-color-tertiary-fixed: #c7e6d5;
41
+ --md-sys-color-on-tertiary-fixed: rgb(0 21 10);
42
+ --md-sys-color-tertiary-fixed-dim: #c7e6d5;
43
+ --md-sys-color-on-tertiary-fixed-variant: rgb(0 63 39);
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
+
52
+ /* primary palette */
53
+ --md-ref-palette-primary0:#000000;
54
+ --md-ref-palette-primary5:#000E32;
55
+ --md-ref-palette-primary10:#001848;
56
+ --md-ref-palette-primary15:#00215E;
57
+ --md-ref-palette-primary20:#002B74;
58
+ --md-ref-palette-primary25:#002B74;
59
+ --md-ref-palette-primary30:#0040A2;
60
+ --md-ref-palette-primary35:#002B74;
61
+ --md-ref-palette-primary40:#1957CA;
62
+ --md-ref-palette-primary50:#3E71E5;
63
+ --md-ref-palette-primary60:#5C8BFF;
64
+ --md-ref-palette-primary70:#89A9FF;
65
+ --md-ref-palette-primary80:#B2C5FF;
66
+ --md-ref-palette-primary90:#DAE2FF;
67
+ --md-ref-palette-primary95:#EEF0FF;
68
+ --md-ref-palette-primary98:#FAF8FF;
69
+ --md-ref-palette-primary99:#FEFBFF;
70
+ --md-ref-palette-primary100:#FFFFFF;
71
+
72
+ /* secondary palette */
73
+ --md-ref-palette-secondary0:#000000;
74
+ --md-ref-palette-secondary5:#00131D;
75
+ --md-ref-palette-secondary10:#001E2C;
76
+ --md-ref-palette-secondary15:#00293A;
77
+ --md-ref-palette-secondary20:#003549;
78
+ --md-ref-palette-secondary25:#004058;
79
+ --md-ref-palette-secondary30:#004C68;
80
+ --md-ref-palette-secondary35:#005978;
81
+ --md-ref-palette-secondary40:#006689;
82
+ --md-ref-palette-secondary50:#0080AC;
83
+ --md-ref-palette-secondary60:#009BCF;
84
+ --md-ref-palette-secondary70:#00B8F4;
85
+ --md-ref-palette-secondary80:#79D1FF;
86
+ --md-ref-palette-secondary90:#C3E8FF;
87
+ --md-ref-palette-secondary95:#E3F3FF;
88
+ --md-ref-palette-secondary98:#F5FAFF;
89
+ --md-ref-palette-secondary99:#FBFCFF;
90
+ --md-ref-palette-secondary100:#FFFFFF;
91
+
92
+ /* tertiary palette */
93
+ --md-ref-palette-tertiary0:#000000;
94
+ --md-ref-palette-tertiary5:#00150A;
95
+ --md-ref-palette-tertiary10:#002113;
96
+ --md-ref-palette-tertiary15:#002C1B;
97
+ --md-ref-palette-tertiary20:#003823;
98
+ --md-ref-palette-tertiary25:#00452B;
99
+ --md-ref-palette-tertiary30:#005234;
100
+ --md-ref-palette-tertiary35:#005F3E;
101
+ --md-ref-palette-tertiary40:#006C47;
102
+ --md-ref-palette-tertiary50:#00885A;
103
+ --md-ref-palette-tertiary60:#31A372;
104
+ --md-ref-palette-tertiary70:#51BF8B;
105
+ --md-ref-palette-tertiary80:#6EDBA5;
106
+ --md-ref-palette-tertiary90:#A2F4C7;
107
+ --md-ref-palette-tertiary95:#BFFFD9;
108
+ --md-ref-palette-tertiary98:#E8FFEF;
109
+ --md-ref-palette-tertiary99:#F4FFF5;
110
+ --md-ref-palette-tertiary100:#FFFFFF;
111
+
112
+ /* error palette */
113
+ --md-ref-palette-error0:#000000;
114
+ --md-ref-palette-error5:#2d0102;
115
+ --md-ref-palette-error10:#410304;
116
+ --md-ref-palette-error15:#540507;
117
+ --md-ref-palette-error20:#68070a;
118
+ --md-ref-palette-error25:#7d0b0e;
119
+ --md-ref-palette-error30:#930f14;
120
+ --md-ref-palette-error35:#a91319;
121
+ --md-ref-palette-error40:#bc1620;
122
+ --md-ref-palette-error50:#e03236;
123
+ --md-ref-palette-error60:#ff5450;
124
+ --md-ref-palette-error70:#ff8982;
125
+ --md-ref-palette-error80:#ffb3ad;
126
+ --md-ref-palette-error90:#ffdad7;
127
+ --md-ref-palette-error95:#ffedeb;
128
+ --md-ref-palette-error98:#fff8f7;
129
+ --md-ref-palette-error99:#fffbff;
130
+ --md-ref-palette-error100:#FFFFFF;
131
+
132
+ /* neutral palette */
133
+ --md-ref-palette-neutral0:#000000;
134
+ --md-ref-palette-neutral5:#111111;
135
+ --md-ref-palette-neutral10:#1C1C1C;
136
+ --md-ref-palette-neutral15:#262626;
137
+ --md-ref-palette-neutral20:#313131;
138
+ --md-ref-palette-neutral25:#3C3C3C;
139
+ --md-ref-palette-neutral30:#474747;
140
+ --md-ref-palette-neutral35:#535353;
141
+ --md-ref-palette-neutral40:#5F5F5F;
142
+ --md-ref-palette-neutral50:#787878;
143
+ --md-ref-palette-neutral60:#929292;
144
+ --md-ref-palette-neutral70:#ACACAC;
145
+ --md-ref-palette-neutral80:#C8C8C8;
146
+ --md-ref-palette-neutral90:#E4E4E4;
147
+ --md-ref-palette-neutral95:#F0F0F0;
148
+ --md-ref-palette-neutral98:#F9F9F9;
149
+ --md-ref-palette-neutral99:#FEFEFE;
150
+ --md-ref-palette-neutral100:#FFFFFF;
151
+ }