renusify 2.3.1 → 2.4.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.
- package/components/bar/toolbar/index.vue +26 -20
- package/components/bar/toolbar/laptop.vue +27 -25
- package/components/bar/toolbar/mobile.vue +28 -27
- package/components/calendar/index.vue +25 -33
- package/components/calendar/month.vue +35 -10
- package/components/calendar/year.vue +19 -8
- package/components/card/index.vue +49 -49
- package/components/codeEditor/highlightCss.vue +12 -24
- package/components/codeEditor/highlightHtml.vue +14 -29
- package/components/codeEditor/highlightJs.vue +14 -25
- package/components/codeEditor/index.vue +214 -205
- package/components/codeEditor/mixin.js +1 -42
- package/components/form/dateInput/index.vue +407 -413
- package/components/form/dateInput/month.vue +35 -11
- package/components/form/dateInput/year.vue +14 -8
- package/components/form/groupInput/index.js +2 -1
- package/components/form/groupInput/index.vue +13 -32
- package/components/form/jsonInput/index.vue +29 -19
- package/components/form/text-editor/index.vue +58 -8
- package/components/form/text-editor/style.scss +6 -0
- package/components/highlight/index.js +1 -0
- package/components/highlight/index.vue +31 -0
- package/components/highlight/mixin.js +1106 -0
- package/components/highlight/style.scss +103 -0
- package/components/index.js +1 -0
- package/components/table/crud/index.vue +82 -66
- package/components/table/index.vue +5 -8
- package/directive/sortable/index.js +1 -3
- package/index.js +0 -2
- package/package.json +1 -1
- package/style/app.scss +13 -13
- package/tools/icons.js +3 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
@use "../../style/variables/base";
|
|
2
|
+
|
|
3
|
+
.#{base.$prefix}highlight {
|
|
4
|
+
direction: ltr;
|
|
5
|
+
text-align: left;
|
|
6
|
+
white-space: pre;
|
|
7
|
+
padding: 30px 20px;
|
|
8
|
+
color: #f8f8f2;
|
|
9
|
+
background: #1a1a1c;
|
|
10
|
+
box-shadow: 0 0 5px #fff;
|
|
11
|
+
text-shadow: none;
|
|
12
|
+
font: normal 18px Consolas, "Courier New", Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
|
|
13
|
+
line-height: 24px;
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
|
|
16
|
+
&::selection {
|
|
17
|
+
background: #bdf5
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
> div {
|
|
21
|
+
display: flex;
|
|
22
|
+
overflow: auto
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
> div :last-child {
|
|
26
|
+
flex: 1;
|
|
27
|
+
outline: none
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&:before {
|
|
31
|
+
color: #6f9aff
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.highlight-numbers {
|
|
35
|
+
padding-left: 5px;
|
|
36
|
+
counter-reset: line;
|
|
37
|
+
|
|
38
|
+
div {
|
|
39
|
+
padding-right: 5px;
|
|
40
|
+
|
|
41
|
+
&::before {
|
|
42
|
+
color: #fff;
|
|
43
|
+
display: block;
|
|
44
|
+
content: counter(line);
|
|
45
|
+
opacity: .5;
|
|
46
|
+
text-align: right;
|
|
47
|
+
margin-right: 5px;
|
|
48
|
+
counter-increment: line
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.highlight-syn-cmnt {
|
|
54
|
+
font-style: italic
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
.highlight-lang-http .highlight-syn-kwd {
|
|
59
|
+
background: #25f;
|
|
60
|
+
color: #fff;
|
|
61
|
+
padding: 0px 5px;
|
|
62
|
+
border-radius: 5px
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.highlight-syn-deleted,
|
|
66
|
+
.highlight-syn-err,
|
|
67
|
+
.highlight-syn-var {
|
|
68
|
+
color: #ff5261
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.highlight-syn-section,
|
|
72
|
+
.highlight-syn-kwd {
|
|
73
|
+
color: #ff7cc6
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.highlight-syn-class {
|
|
77
|
+
color: #eab07c
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.highlight-numbers,
|
|
81
|
+
.highlight-syn-cmnt {
|
|
82
|
+
color: #7d828b
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.highlight-syn-insert,
|
|
86
|
+
.highlight-syn-type,
|
|
87
|
+
.highlight-syn-func,
|
|
88
|
+
.highlight-syn-bool {
|
|
89
|
+
color: #71d58a
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.highlight-syn-num {
|
|
93
|
+
color: #b581fd
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.highlight-syn-oper {
|
|
97
|
+
color: #80c6ff
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.highlight-syn-str {
|
|
101
|
+
color: #4dacfa
|
|
102
|
+
}
|
|
103
|
+
}
|
package/components/index.js
CHANGED
|
@@ -79,6 +79,7 @@ export * as rTimeAgo from './timeAgo/index.js'
|
|
|
79
79
|
export * as rTimeline from './timeline/index.js'
|
|
80
80
|
export * as rTour from './tour/index.js'
|
|
81
81
|
export * as rTree from './tree/index.js'
|
|
82
|
+
export * as rHighlight from './highlight/index.js'
|
|
82
83
|
|
|
83
84
|
export const _register = (app, components) => {
|
|
84
85
|
let d = {}
|
|
@@ -24,7 +24,8 @@
|
|
|
24
24
|
class="mb-5">
|
|
25
25
|
<template v-if="item['formInput']!==false">
|
|
26
26
|
|
|
27
|
-
<r-json-input v-if="item['type']==='file-uploader'" v-model="copyItem['d'][key]"
|
|
27
|
+
<r-json-input v-if="item['type']==='file-uploader'" v-model="copyItem['d'][key]"
|
|
28
|
+
:label="$t(key,'renusify')"
|
|
28
29
|
baseArray></r-json-input>
|
|
29
30
|
<component
|
|
30
31
|
:is="item['type']"
|
|
@@ -60,37 +61,44 @@
|
|
|
60
61
|
@a-search="(a_search=$event),(searching())"></manage-header>
|
|
61
62
|
<div v-if="card" class="d-flex overflow-x-auto">
|
|
62
63
|
<div class="d-flex">
|
|
63
|
-
<r-card v-for="(item,i) in table.data" :key="i" :class="{'br-lg':!$r.inputs.tile}"
|
|
64
|
+
<r-card v-for="(item,i) in table.data" :key="i" :class="{'br-lg':!$r.inputs.tile}"
|
|
65
|
+
class="pa-3 me-3"
|
|
64
66
|
style="width: 300px">
|
|
65
|
-
<div v-for="(h,j) in headerTable" :key="i+'-'+j"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
67
|
+
<div v-for="(h,j) in headerTable" :key="i+'-'+j"
|
|
68
|
+
class="d-flex text-no-wrap overflow-x-auto">
|
|
69
|
+
<slot :editItem="editItem" :item="item" :value="h" :name="'td-'+h.value">
|
|
70
|
+
<slot :editItem="editItem" :item="item" :value="h" name="card">
|
|
71
|
+
<div v-if="h['option']['type']==='r-date-input' && item[h['value']]!==undefined"
|
|
72
|
+
class="py-2">
|
|
73
|
+
{{ h['text'] }}:
|
|
74
|
+
{{ $d(new Date(item[h['value']]), h['option']['format'] || 'short') }}
|
|
75
|
+
</div>
|
|
76
|
+
<div
|
|
77
|
+
v-else-if="h['option']['type']==='r-time-ago' && item[h['value']]!==undefined"
|
|
78
|
+
class="py-2">
|
|
79
|
+
{{ h['text'] }}:
|
|
80
|
+
<r-time-ago :time="item[h['value']]"></r-time-ago>
|
|
81
|
+
</div>
|
|
82
|
+
<div v-else-if="h['option']['type']==='r-switch-input'" class="d-flex py-2">
|
|
83
|
+
{{ h['text'] }}:
|
|
84
|
+
<r-switch-input
|
|
85
|
+
:modelValue="item[h['value']]"
|
|
86
|
+
:readonly="h['option']['formInput']===false"
|
|
87
|
+
class="mt-0"
|
|
88
|
+
@update:modelValue="h['option']['formInput']!==false?editItem(item,true,h['value']):''"
|
|
89
|
+
></r-switch-input>
|
|
90
|
+
</div>
|
|
91
|
+
<div v-else-if="h['option']['type'] === 'r-number-input'" class="py-2">
|
|
92
|
+
{{ h['text'] }}: {{ $n(item[h['value']]) }}
|
|
93
|
+
</div>
|
|
94
|
+
<div v-else-if="h['option']['type']!=='action'" class="py-2">
|
|
95
|
+
{{ h['text'] }}: {{
|
|
89
96
|
h['value'] in cast ?
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
$helper.ifHas(item, '', h['value'], cast[h['value']])
|
|
98
|
+
: item[h['value']]
|
|
99
|
+
}}
|
|
100
|
+
</div>
|
|
101
|
+
</slot>
|
|
94
102
|
</slot>
|
|
95
103
|
<div v-if="h['option']['type']==='action'" class="w-full text-end">
|
|
96
104
|
<r-divider class="mt-3"></r-divider>
|
|
@@ -102,7 +110,8 @@
|
|
|
102
110
|
icon text @click.prevent="deleteItem(item)">
|
|
103
111
|
<r-icon v-html="$r.icons.delete"></r-icon>
|
|
104
112
|
</r-btn>
|
|
105
|
-
<r-btn v-for="(val,index) in actions" :key="index" :class="`color-${val.color}-text`"
|
|
113
|
+
<r-btn v-for="(val,index) in actions" :key="index" :class="`color-${val.color}-text`"
|
|
114
|
+
class="mx-0" icon
|
|
106
115
|
text @click.prevent="$emit(val.name,item)">
|
|
107
116
|
<r-icon exact v-html="val.icon"></r-icon>
|
|
108
117
|
</r-btn>
|
|
@@ -111,7 +120,8 @@
|
|
|
111
120
|
</r-card>
|
|
112
121
|
</div>
|
|
113
122
|
</div>
|
|
114
|
-
<r-table v-else :headers="headerTable" :items="table.data" :key-item="itemId"
|
|
123
|
+
<r-table v-else :headers="headerTable" :items="table.data" :key-item="itemId"
|
|
124
|
+
:responsive="responsive"
|
|
115
125
|
transition="table-row">
|
|
116
126
|
<template v-slot:header="{header}">
|
|
117
127
|
<th v-for="(item,key) in header"
|
|
@@ -157,33 +167,37 @@
|
|
|
157
167
|
icon text @click.prevent="props.open(props.key)">
|
|
158
168
|
<r-icon v-html="props.opened!==props.key?$r.icons.plus:$r.icons.minus"></r-icon>
|
|
159
169
|
</r-btn>
|
|
160
|
-
<slot :editItem="editItem" :item="props.item" :value="value" name="
|
|
161
|
-
<
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
170
|
+
<slot :editItem="editItem" :item="props.item" :value="value" :name="'td-'+value.value">
|
|
171
|
+
<slot :editItem="editItem" :item="props.item" :value="value" name="cell">
|
|
172
|
+
<div
|
|
173
|
+
v-if="value['option']['type']==='r-date-input' && props.item[value['value']]!==undefined">
|
|
174
|
+
{{
|
|
175
|
+
$d(new Date(props.item[value['value']]), value['option']['format'] || 'short')
|
|
176
|
+
}}
|
|
177
|
+
</div>
|
|
178
|
+
<div
|
|
179
|
+
v-else-if="value['option']['type']==='r-time-ago' && props.item[value['value']]!==undefined">
|
|
180
|
+
<r-time-ago :time="props.item[value['value']]"></r-time-ago>
|
|
181
|
+
</div>
|
|
182
|
+
<div v-else-if="value['option']['type']==='r-switch-input'">
|
|
183
|
+
<r-switch-input
|
|
184
|
+
:modelValue="props.item[value['value']]"
|
|
185
|
+
:readonly="value['option']['formInput']===false"
|
|
186
|
+
class="mt-0"
|
|
187
|
+
@update:modelValue="value['option']['formInput']!==false?editItem(props.item,true,value['value']):''"
|
|
188
|
+
></r-switch-input>
|
|
189
|
+
</div>
|
|
190
|
+
<div v-else-if="value['option']['type'] === 'r-number-input'">
|
|
191
|
+
{{ $n(props.item[value['value']]) }}
|
|
192
|
+
</div>
|
|
193
|
+
<div v-else-if="value['option']['type']!=='action'">
|
|
194
|
+
{{
|
|
182
195
|
value['value'] in cast ?
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
196
|
+
$helper.ifHas(props.item, '', value['value'], cast[value['value']])
|
|
197
|
+
: props.item[value['value']]
|
|
198
|
+
}}
|
|
199
|
+
</div>
|
|
200
|
+
</slot>
|
|
187
201
|
</slot>
|
|
188
202
|
<div v-if="value['option']['type']==='action'">
|
|
189
203
|
<r-btn v-if="!disableUpdate" class="mx-0 color-success-text"
|
|
@@ -194,7 +208,8 @@
|
|
|
194
208
|
icon text @click.prevent="deleteItem(props.item)">
|
|
195
209
|
<r-icon v-html="$r.icons.delete"></r-icon>
|
|
196
210
|
</r-btn>
|
|
197
|
-
<r-btn v-for="(val,index) in actions" :key="index" :class="`color-${val.color}-text`"
|
|
211
|
+
<r-btn v-for="(val,index) in actions" :key="index" :class="`color-${val.color}-text`"
|
|
212
|
+
class="mx-0" icon
|
|
198
213
|
text @click.prevent="$emit(val.name,props.item)">
|
|
199
214
|
<r-icon exact v-html="val.icon"></r-icon>
|
|
200
215
|
</r-btn>
|
|
@@ -204,7 +219,8 @@
|
|
|
204
219
|
</template>
|
|
205
220
|
|
|
206
221
|
</r-table>
|
|
207
|
-
<manage-footer v-model:page="page" v-model:per-page="itemsPerPage"
|
|
222
|
+
<manage-footer v-model:page="page" v-model:per-page="itemsPerPage"
|
|
223
|
+
:total="table.total"></manage-footer>
|
|
208
224
|
<r-confirm
|
|
209
225
|
v-model="showConfirm"
|
|
210
226
|
hard
|
|
@@ -221,9 +237,9 @@ export default {
|
|
|
221
237
|
name: 'r-table-crud',
|
|
222
238
|
components: {
|
|
223
239
|
ManageHeader: defineAsyncComponent(() =>
|
|
224
|
-
import(
|
|
240
|
+
import('./header.vue')
|
|
225
241
|
), ManageFooter: defineAsyncComponent(() =>
|
|
226
|
-
import(
|
|
242
|
+
import('./footer.vue')
|
|
227
243
|
)
|
|
228
244
|
},
|
|
229
245
|
props: {
|
|
@@ -260,7 +276,7 @@ export default {
|
|
|
260
276
|
disableDelete: Boolean,
|
|
261
277
|
disableUpdate: Boolean,
|
|
262
278
|
mcud: String,
|
|
263
|
-
itemId: {type: String, default:
|
|
279
|
+
itemId: {type: String, default: '_id'},
|
|
264
280
|
headers: Object
|
|
265
281
|
},
|
|
266
282
|
emits: ['actions'],
|
|
@@ -532,9 +548,9 @@ export default {
|
|
|
532
548
|
let all = []
|
|
533
549
|
if (this.mcud) {
|
|
534
550
|
all.push({
|
|
535
|
-
option: {type:
|
|
536
|
-
text:
|
|
537
|
-
value:
|
|
551
|
+
option: {type: 'mcud', sortable: false, formInput: false, priority: 10},
|
|
552
|
+
text: 'action',
|
|
553
|
+
value: 'action'
|
|
538
554
|
})
|
|
539
555
|
}
|
|
540
556
|
all = all.concat(data.headers)
|
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
<slot :key="key" :item="item" :open="open" :opened="opened" :show="show" :th="th"
|
|
44
44
|
name="row">
|
|
45
45
|
<td v-for="(value,k) in th" :key="`${key}- ${k}`">
|
|
46
|
+
<slot :item="item" :value="value" :name="'td-'+value.value">
|
|
46
47
|
<div>
|
|
47
48
|
<r-btn v-if="show(k)"
|
|
48
49
|
icon text @click.prevent="open(key)">
|
|
@@ -51,6 +52,7 @@
|
|
|
51
52
|
</r-btn>
|
|
52
53
|
{{ item[value.value] }}
|
|
53
54
|
</div>
|
|
55
|
+
</slot>
|
|
54
56
|
</td>
|
|
55
57
|
</slot>
|
|
56
58
|
</tr>
|
|
@@ -72,6 +74,7 @@
|
|
|
72
74
|
</div>
|
|
73
75
|
<r-modal v-if="editable" v-model="showModal">
|
|
74
76
|
<div
|
|
77
|
+
:key="key"
|
|
75
78
|
v-sortable="{
|
|
76
79
|
items: cols,
|
|
77
80
|
end: store_db,
|
|
@@ -120,6 +123,7 @@ export default {
|
|
|
120
123
|
},
|
|
121
124
|
data() {
|
|
122
125
|
return {
|
|
126
|
+
key: 0,
|
|
123
127
|
showTable: true,
|
|
124
128
|
opened: null,
|
|
125
129
|
sortKey: null,
|
|
@@ -132,14 +136,6 @@ export default {
|
|
|
132
136
|
cols: []
|
|
133
137
|
}
|
|
134
138
|
},
|
|
135
|
-
created() {
|
|
136
|
-
if (!this.$r.icons.setting) {
|
|
137
|
-
this.$r.icons.setting = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M19.14 12.94c.04-.3.06-.61.06-.94c0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6s3.6 1.62 3.6 3.6s-1.62 3.6-3.6 3.6z"/></svg>'
|
|
138
|
-
}
|
|
139
|
-
if (!this.$r.icons.drag) {
|
|
140
|
-
this.$r.icons.drag = '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M7 19v-2h2v2H7m4 0v-2h2v2h-2m4 0v-2h2v2h-2m-8-4v-2h2v2H7m4 0v-2h2v2h-2m4 0v-2h2v2h-2m-8-4V9h2v2H7m4 0V9h2v2h-2m4 0V9h2v2h-2M7 7V5h2v2H7m4 0V5h2v2h-2m4 0V5h2v2h-2Z"/></svg>'
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
139
|
watch: {
|
|
144
140
|
items: {
|
|
145
141
|
immediate: true,
|
|
@@ -225,6 +221,7 @@ export default {
|
|
|
225
221
|
},
|
|
226
222
|
store_db(data) {
|
|
227
223
|
this.$storage.set('table_' + this.hash_key, data)
|
|
224
|
+
this.key++
|
|
228
225
|
this.check_hidden()
|
|
229
226
|
if (this.responsive) {
|
|
230
227
|
this.build()
|
|
@@ -43,9 +43,7 @@ function mousestart(e, wrapper) {
|
|
|
43
43
|
wrapper.el.insertBefore(holder, targetEl);
|
|
44
44
|
wrapper.holder = holder
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
targetEl.style.top = y - targetEl.clientHeight / 2 + "px";
|
|
46
|
+
targetEl.style.top = targetEl.offsetTop - targetEl.clientHeight / 2 + "px";
|
|
49
47
|
targetEl.style.width = targetEl.clientWidth + "px";
|
|
50
48
|
targetEl.classList.add("on-drag");
|
|
51
49
|
|
package/index.js
CHANGED
|
@@ -68,7 +68,6 @@ export default {
|
|
|
68
68
|
'en': {
|
|
69
69
|
first_day: 0,
|
|
70
70
|
time_zone_offset: -480,/*Standard timezone offset minutes -07:00*/
|
|
71
|
-
daylight_saving_time: true,
|
|
72
71
|
localizeName: 'en-US',
|
|
73
72
|
timeZone: 'America/Los_Angeles',
|
|
74
73
|
rtl: false
|
|
@@ -76,7 +75,6 @@ export default {
|
|
|
76
75
|
'fa': {
|
|
77
76
|
first_day: 6,
|
|
78
77
|
time_zone_offset: 210,//Standard timezone offset minutes +03:30
|
|
79
|
-
daylight_saving_time: false,
|
|
80
78
|
localizeName: 'fa-IR',
|
|
81
79
|
timeZone: 'Asia/Tehran',
|
|
82
80
|
calendar: 'persian',
|
package/package.json
CHANGED
package/style/app.scss
CHANGED
|
@@ -16,13 +16,13 @@ html {
|
|
|
16
16
|
|
|
17
17
|
& {
|
|
18
18
|
text-rendering: optimizeLegibility;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
-webkit-font-smoothing: antialiased;
|
|
20
|
+
-moz-osx-font-smoothing: grayscale;
|
|
21
|
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
overflow-y: scroll;
|
|
24
|
+
overflow-x: hidden;
|
|
25
|
+
-webkit-text-size-adjust: 100%;
|
|
26
26
|
scroll-behavior: smooth;
|
|
27
27
|
}
|
|
28
28
|
;
|
|
@@ -150,27 +150,27 @@ $color-text: var(--color-on-one);
|
|
|
150
150
|
@include mixins.typography(base.$headings, 'display-3')
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
-
.headline-1 {
|
|
153
|
+
.headline-1, h1 {
|
|
154
154
|
@include mixins.typography(base.$headings, 'headline-1')
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
.headline-2 {
|
|
157
|
+
.headline-2, h2 {
|
|
158
158
|
@include mixins.typography(base.$headings, 'headline-2')
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
.headline-3 {
|
|
161
|
+
.headline-3, h3 {
|
|
162
162
|
@include mixins.typography(base.$headings, 'headline-3')
|
|
163
163
|
}
|
|
164
164
|
|
|
165
|
-
.title-1 {
|
|
165
|
+
.title-1, h4 {
|
|
166
166
|
@include mixins.typography(base.$headings, 'title-1')
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
-
.title-2 {
|
|
169
|
+
.title-2, h5 {
|
|
170
170
|
@include mixins.typography(base.$headings, 'title-2');
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
.title-3 {
|
|
173
|
+
.title-3, h6 {
|
|
174
174
|
@include mixins.typography(base.$headings, 'title-3');
|
|
175
175
|
}
|
|
176
176
|
|
package/tools/icons.js
CHANGED
|
@@ -23,5 +23,7 @@ export let Icons = {
|
|
|
23
23
|
'attachment': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M7.5 18A5.5 5.5 0 0 1 2 12.5A5.5 5.5 0 0 1 7.5 7H18a4 4 0 0 1 4 4a4 4 0 0 1-4 4H9.5A2.5 2.5 0 0 1 7 12.5A2.5 2.5 0 0 1 9.5 10H17v1.5H9.5a1 1 0 0 0-1 1a1 1 0 0 0 1 1H18a2.5 2.5 0 0 0 2.5-2.5A2.5 2.5 0 0 0 18 8.5H7.5a4 4 0 0 0-4 4a4 4 0 0 0 4 4H17V18H7.5Z"/></svg>',
|
|
24
24
|
'send': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="m2 21l21-9L2 3v7l15 2l-15 2v7Z"/></svg>',
|
|
25
25
|
'sticker': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M5.5 2C3.56 2 2 3.56 2 5.5v13C2 20.44 3.56 22 5.5 22H16l6-6V5.5C22 3.56 20.44 2 18.5 2h-13m.25 2h12.5A1.75 1.75 0 0 1 20 5.75V15h-1.5c-1.94 0-3.5 1.56-3.5 3.5V20H5.75A1.75 1.75 0 0 1 4 18.25V5.75A1.75 1.75 0 0 1 5.75 4m8.69 2.77c-.16 0-.32.02-.47.06c-.94.26-1.47 1.22-1.23 2.17c.05.15.12.3.21.44l3.23-.88c0-.17-.02-.34-.06-.51c-.21-.75-.9-1.28-1.68-1.28M8.17 8.5c-.17 0-.32 0-.47.05c-.93.26-1.48 1.22-1.23 2.15c.03.16.12.3.21.46l3.23-.88c0-.17-.02-.34-.06-.5A1.72 1.72 0 0 0 8.17 8.5m8.55 2.76l-9.13 2.51a5.266 5.266 0 0 0 5.36 1.64a5.273 5.273 0 0 0 3.77-4.15Z"/></svg>',
|
|
26
|
-
'search': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5Z"/></svg>'
|
|
26
|
+
'search': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5l-1.5 1.5l-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16A6.5 6.5 0 0 1 3 9.5A6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14S14 12 14 9.5S12 5 9.5 5Z"/></svg>',
|
|
27
|
+
'drag': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M7 19v-2h2v2H7m4 0v-2h2v2h-2m4 0v-2h2v2h-2m-8-4v-2h2v2H7m4 0v-2h2v2h-2m4 0v-2h2v2h-2m-8-4V9h2v2H7m4 0V9h2v2h-2m4 0V9h2v2h-2M7 7V5h2v2H7m4 0V5h2v2h-2m4 0V5h2v2h-2Z"/></svg>',
|
|
28
|
+
'setting': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M19.14 12.94c.04-.3.06-.61.06-.94c0-.32-.02-.64-.07-.94l2.03-1.58a.49.49 0 0 0 .12-.61l-1.92-3.32a.488.488 0 0 0-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54a.484.484 0 0 0-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58a.49.49 0 0 0-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6s3.6 1.62 3.6 3.6s-1.62 3.6-3.6 3.6z"/></svg>'
|
|
27
29
|
}
|