beyond-rails 1.0.2 → 1.0.6

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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/src/js/components/BarChart.js +19 -7
  3. data/src/js/components/LineChart.js +18 -8
  4. data/src/js/components/PieChart.js +16 -6
  5. data/src/js/components/SearchDropdown.js +10 -5
  6. data/src/js/consts/index.js +42 -0
  7. data/src/js/decorators/chartCommon.js +4 -1
  8. data/src/js/index.js +0 -1
  9. data/src/sass/_base.scss +167 -0
  10. data/src/sass/_beyond-dark.scss +3 -0
  11. data/src/sass/_beyond.scss +0 -54
  12. data/src/sass/_main.scss +56 -176
  13. data/src/sass/abstracts/_mixins.scss +2 -4
  14. data/src/sass/abstracts/_placeholders.scss +3 -3
  15. data/src/sass/abstracts/_post-variables.scss +85 -0
  16. data/src/sass/abstracts/_variables.scss +303 -188
  17. data/src/sass/base/_background.scss +2 -3
  18. data/src/sass/base/_typography.scss +17 -17
  19. data/src/sass/components/_alert.scss +8 -14
  20. data/src/sass/components/_autocomplete.scss +4 -5
  21. data/src/sass/components/_badge.scss +2 -4
  22. data/src/sass/components/_breadcrumb.scss +3 -2
  23. data/src/sass/components/_btn-group.scss +1 -1
  24. data/src/sass/components/_btn.scss +34 -19
  25. data/src/sass/components/_card.scss +12 -6
  26. data/src/sass/components/_chart.scss +5 -5
  27. data/src/sass/components/_checkbox.scss +8 -8
  28. data/src/sass/components/_date-menu.scss +10 -10
  29. data/src/sass/components/_date-time-ranger.scss +9 -3
  30. data/src/sass/components/_dropdown.scss +11 -14
  31. data/src/sass/components/_form.scss +17 -18
  32. data/src/sass/components/_input.scss +4 -4
  33. data/src/sass/components/_modal.scss +5 -6
  34. data/src/sass/components/_month-menu.scss +11 -11
  35. data/src/sass/components/_nav.scss +5 -5
  36. data/src/sass/components/_navbar.scss +26 -33
  37. data/src/sass/components/_pagination.scss +9 -8
  38. data/src/sass/components/_radio.scss +2 -4
  39. data/src/sass/components/_search-dropdown.scss +3 -2
  40. data/src/sass/components/_select.scss +15 -23
  41. data/src/sass/components/_sidebar.scss +1 -1
  42. data/src/sass/components/_spinner.scss +0 -1
  43. data/src/sass/components/_switch.scss +5 -5
  44. data/src/sass/components/_tabbox.scss +19 -32
  45. data/src/sass/components/_table.scss +13 -14
  46. data/src/sass/components/_tag-input.scss +2 -4
  47. data/src/sass/components/_tag.scss +4 -4
  48. data/src/sass/components/_time-menu.scss +4 -4
  49. data/src/sass/components/_toast.scss +4 -3
  50. data/src/sass/components/_tooltip.scss +11 -14
  51. data/src/sass/themes/_dark.scss +313 -0
  52. metadata +6 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d92b118dbf4ed4cb5c041cfe46ba20762bb42860576d77348ee235fcc96b3792
4
- data.tar.gz: f981bdb20cf4262c65f1cb4ff147887e102be054acea8b59c83bc338877cfae6
3
+ metadata.gz: 9c6104fc8a7f4a27a23188327e88a68f2bbd819e4428a907c2b498607629910b
4
+ data.tar.gz: 75a210a6eefa328d6edd63a49668e9a1e55ca3bd0a875e78aaeef8a3ab5d5ff3
5
5
  SHA512:
6
- metadata.gz: '009339b8c94ac51ff8b1173a0a94b06dcd96864c4c50fc9b327da0a2a61be534d8081d1b3d1e84f2382ceee4b115ca5d368fe284cf47856ab087eb2bc8aee0a3'
7
- data.tar.gz: 29e59d32a6a1825e88f719d78bffa6019b3de4e2cbe3bdc27fa46b9ca5857e48a1d6520d932f7670032723a4d1b5bbb6d1e6c28dcc29f31a57bbf337d526b4d5
6
+ metadata.gz: 7d67b93c66178300379b6f17e32ea08344b9b4b916b16ec70f3405c71a93aefbb159b1edba0e9c793a3c31801236a8a7c3a3871308a898794761a238fbcc5c16
7
+ data.tar.gz: f398a32e666208dc246641a7492b74ae6fcd27adb7e7a0d28b3abb70d837fe5d23ff327d8da4dc9b8a86ba3f2af4e2d18ac5795302f905ebeffff236bb18c551
@@ -4,7 +4,7 @@ import isDef from '../utils/isDef'
4
4
  import isUndef from '../utils/isUndef'
5
5
  import isInt from '../utils/isInt'
6
6
  import { mem, range, sortBy, throttle, uniqBy } from '../utils'
7
- import { DEFAULT_CHART_STYLES } from '../consts'
7
+ import { THEME_DEFAULT, CHART_STYLE } from '../consts'
8
8
 
9
9
  @supportDom
10
10
  @chartCommon
@@ -30,8 +30,7 @@ export default class BarChart {
30
30
  this.yLabelMargin = isDef(options.yLanelMargin) ? options.yLabelMargin : 14
31
31
 
32
32
  this.fontSize = options.fontSize || 12
33
- this.bg = options.bg || '#fff'
34
- this.barStyles = options.barStyles || DEFAULT_CHART_STYLES
33
+ this.setTheme(options)
35
34
 
36
35
  this.yLabelRows = []
37
36
  this.barPosMap = new Map()
@@ -48,6 +47,19 @@ export default class BarChart {
48
47
  this.bindBarVisible()
49
48
  }
50
49
 
50
+ setTheme(opts) {
51
+ const options = Object.assign({}, this.options, opts)
52
+ const theme = options.theme || THEME_DEFAULT
53
+ const style = CHART_STYLE[theme]
54
+ this.theme = theme
55
+ this.bg = options.bg || style.bg
56
+ this.line = options.line || style.line
57
+ this.txt = options.txt || style.txt
58
+ this.glowAlpha = options.glowAlpha || style.glowAlpha
59
+ this.barStyles = options.barStyles || style.variants
60
+ this.setBg()
61
+ }
62
+
51
63
  get contentWidth() {
52
64
  return this.width - (this.xPadding * 2) - this.yLabelMargin -
53
65
  this.yLabelWidth - this.halfXLabelWidth
@@ -140,7 +152,7 @@ export default class BarChart {
140
152
  const xStart = this.xPadding
141
153
  const xEnd = this.width - this.xPadding - this.yLabelWidth - this.yLabelMargin
142
154
 
143
- ctx.strokeStyle = 'rgba(224, 224, 224, .5)'
155
+ ctx.strokeStyle = this.line
144
156
  ctx.lineWidth = 1
145
157
 
146
158
  yLabelRows.forEach(row => {
@@ -164,7 +176,7 @@ export default class BarChart {
164
176
  let x = xAxisStart
165
177
 
166
178
  ctx.textBaseline = 'top'
167
- ctx.fillStyle = '#3c4257'
179
+ ctx.fillStyle = this.txt
168
180
 
169
181
  xLabelRows.forEach((row, i) => {
170
182
  ctx.fillText(row.label, x, y)
@@ -177,7 +189,7 @@ export default class BarChart {
177
189
  const x = this.width - this.xPadding
178
190
  const delta = yLabelHeight * .45
179
191
 
180
- ctx.fillStyle = '#3c4257'
192
+ ctx.fillStyle = this.txt
181
193
  ctx.textAlign = 'right'
182
194
 
183
195
  yLabelRows.forEach(row => {
@@ -210,7 +222,7 @@ export default class BarChart {
210
222
  const glowHeight = ((glowWidth - width) / 2) + height
211
223
  const glowX = x - ((glowWidth - width) / 2)
212
224
  const glowY = y - (glowHeight - height)
213
- ctx.globalAlpha = 0.2
225
+ ctx.globalAlpha = this.glowAlpha
214
226
  ctx.fillStyle = this.barStyles[res.index]
215
227
  ctx.fillRect(glowX, glowY, glowWidth, glowHeight)
216
228
  ctx.restore()
@@ -3,7 +3,7 @@ import chartCommon from '../decorators/chartCommon'
3
3
  import isDef from '../utils/isDef'
4
4
  import isUndef from '../utils/isUndef'
5
5
  import { mem, range, sortBy, throttle, uniqBy } from '../utils'
6
- import { DEFAULT_CHART_STYLES } from '../consts'
6
+ import { THEME_DEFAULT, CHART_STYLE } from '../consts'
7
7
 
8
8
  /**
9
9
  * -------------------------------------------------------------------------------------------------
@@ -52,10 +52,8 @@ export default class LineChart {
52
52
  this.xLabelMargin = isDef(options.xLabelMargin) ? options.xLabelMargin : 10
53
53
  this.yLabelMargin = isDef(options.yLanelMargin) ? options.yLabelMargin : 10
54
54
 
55
- this.lineStyles = options.lineStyles || DEFAULT_CHART_STYLES
56
-
57
- this.bg = options.bg || '#fff'
58
55
  this.fontSize = options.fontSize || 12
56
+ this.setTheme(options)
59
57
 
60
58
  this.xStep = options.xStep
61
59
  this.yStep = options.yStep
@@ -79,6 +77,18 @@ export default class LineChart {
79
77
  this.bindPointMouseOver()
80
78
  }
81
79
 
80
+ setTheme(opts) {
81
+ const options = Object.assign({}, this.options, opts)
82
+ const theme = options.theme || THEME_DEFAULT
83
+ const style = CHART_STYLE[theme]
84
+ this.theme = theme
85
+ this.bg = options.bg || style.bg
86
+ this.line = options.line || style.line
87
+ this.txt = options.txt || style.txt
88
+ this.lineStyles = options.lineStyles || style.variants
89
+ this.setBg()
90
+ }
91
+
82
92
  get noData() {
83
93
  return (this.xLabelRows.length === 0) && (this.yLabelRows.length === 0)
84
94
  }
@@ -175,7 +185,7 @@ export default class LineChart {
175
185
 
176
186
  const { ctx, yLabelRows, contentWidth, firstY, xAxisStart, yAxisStart, yRatio } = this
177
187
 
178
- ctx.strokeStyle = 'rgba(224, 224, 224, .5)'
188
+ ctx.strokeStyle = this.line
179
189
  ctx.lineWidth = 1
180
190
 
181
191
  yLabelRows.forEach(row => {
@@ -247,10 +257,10 @@ export default class LineChart {
247
257
  const scaleEnd = y - scaleMargin
248
258
 
249
259
  ctx.textBaseline = 'top'
250
- ctx.fillStyle = '#3c4257'
260
+ ctx.fillStyle = this.txt
251
261
  ctx.textAlign = 'center'
252
262
 
253
- ctx.strokeStyle = '#3c4257'
263
+ ctx.strokeStyle = this.txt
254
264
 
255
265
  let x = this.xAxisMiddle
256
266
 
@@ -274,7 +284,7 @@ export default class LineChart {
274
284
  const x = this.width - this.xPadding
275
285
  const halfYLabelHeight = this.yLabelHeight / 2
276
286
 
277
- ctx.fillStyle = '#3c4257'
287
+ ctx.fillStyle = this.txt
278
288
  ctx.textAlign = 'right'
279
289
 
280
290
  let y = this.yAxisMiddle
@@ -4,7 +4,7 @@ import isFn from '../utils/isFn'
4
4
  import isDef from '../utils/isDef'
5
5
  import isUndef from '../utils/isUndef'
6
6
  import { throttle } from '../utils'
7
- import { DEFAULT_CHART_STYLES } from '../consts'
7
+ import { THEME_DEFAULT, CHART_STYLE } from '../consts'
8
8
 
9
9
  @supportDom
10
10
  @chartCommon
@@ -20,8 +20,7 @@ export default class PieChart {
20
20
  this.height = options.height
21
21
  this.width = options.width
22
22
  this.padding = isDef(options.padding) ? options.padding : 30
23
- this.styles = options.styles || DEFAULT_CHART_STYLES
24
- this.bg = options.bg || '#fff'
23
+ this.setTheme(options)
25
24
 
26
25
  this.init()
27
26
  }
@@ -36,6 +35,17 @@ export default class PieChart {
36
35
  this.bindPointMouseOver()
37
36
  }
38
37
 
38
+ setTheme(opts) {
39
+ const options = Object.assign({}, this.options, opts)
40
+ const theme = options.theme || THEME_DEFAULT
41
+ const style = CHART_STYLE[theme]
42
+ this.theme = theme
43
+ this.bg = options.bg || style.bg
44
+ this.glowAlpha = options.glowAlpha || style.glowAlpha
45
+ this.styles = options.styles || style.variants
46
+ this.setBg()
47
+ }
48
+
39
49
  get x() {
40
50
  return this.width / 2
41
51
  }
@@ -99,7 +109,7 @@ export default class PieChart {
99
109
  distance += ratio
100
110
  })
101
111
 
102
- this.fillCircle(ctx, x, y, centerCircleRadius, '#fff')
112
+ this.fillCircle(ctx, x, y, centerCircleRadius, this.bg)
103
113
  }
104
114
 
105
115
  handleDprChange() {
@@ -177,11 +187,11 @@ export default class PieChart {
177
187
 
178
188
  const options = {
179
189
  style: this.styles[index],
180
- alpha: .3
190
+ alpha: this.glowAlpha
181
191
  }
182
192
  const radiusDelta = (radius - centerCircleRadius) * .3
183
193
  this.fillArc(ctx, x, y, radius + radiusDelta, startAngle, endAngle, options)
184
- this.fillCircle(this.firstLayer.ctx, x, y, centerCircleRadius, '#fff')
194
+ this.fillCircle(this.firstLayer.ctx, x, y, centerCircleRadius, this.bg)
185
195
  }
186
196
 
187
197
  clearSliceGlow() {
@@ -304,6 +304,8 @@ export default class SearchDropdown {
304
304
  this.addEvent(this.menuContent, 'click', event => {
305
305
  const item = this.findClickedItem(event.target)
306
306
  if (item) {
307
+ event.preventDefault()
308
+ event.stopPropagation()
307
309
  this.setItem(item)
308
310
  }
309
311
  })
@@ -333,9 +335,10 @@ export default class SearchDropdown {
333
335
  if (! this.isMenuVisible) {
334
336
  return
335
337
  }
336
- const isBackdrop = (event.target !== this.dom) &&
337
- (! this.dom.contains(event.target)) &&
338
- (! this.menu.contains(event.target))
338
+ const { target } = event
339
+ const isBackdrop = (target !== this.dom) &&
340
+ (! this.dom.contains(target)) &&
341
+ (! this.menu.contains(target))
339
342
 
340
343
  if (isBackdrop) {
341
344
  this.hideMenu()
@@ -386,8 +389,10 @@ export default class SearchDropdown {
386
389
  }
387
390
 
388
391
  destroy() {
389
- this.menu.remove()
390
- this.menu = null
392
+ if (this.menu) {
393
+ this.menu.remove()
394
+ this.menu = null
395
+ }
391
396
  this.input = null
392
397
  this.menuContent = null
393
398
  this.loader = null
@@ -4,6 +4,48 @@ export const DEFAULT_TIMEZONE = 'Asia/Taipei'
4
4
 
5
5
  export const DEFAULT_LOCALE = locale
6
6
 
7
+ export const THEME_DEFAULT = 'default'
8
+
9
+ export const THEME_DARK = 'dark'
10
+
11
+ export const THEMES = [
12
+ { text: 'Default', value: THEME_DEFAULT },
13
+ { text: 'Dark', value: THEME_DARK }
14
+ ]
15
+
16
+ export const CHART_STYLE = {
17
+ [THEME_DEFAULT]: {
18
+ bg: '#fff',
19
+ txt: '#3c4257',
20
+ line: 'rgba(224, 224, 224, .5)',
21
+ glowAlpha: .2,
22
+ variants: [
23
+ '#5469d4',
24
+ '#7c54d4',
25
+ '#a254d4',
26
+ '#c040a2',
27
+ '#ff5604',
28
+ '#0be4e3',
29
+ '#00d924'
30
+ ]
31
+ },
32
+ [THEME_DARK]: {
33
+ bg: '#070B1F',
34
+ txt: '#fff',
35
+ line: 'rgba(255, 255, 255, .3)',
36
+ glowAlpha: .3,
37
+ variants: [
38
+ '#769aff',
39
+ '#9e72ff',
40
+ '#c66cff',
41
+ '#ff5ed9',
42
+ '#ff5604',
43
+ '#0be4e3',
44
+ '#00d924'
45
+ ]
46
+ }
47
+ }
48
+
7
49
  export const DEFAULT_CHART_STYLES = [
8
50
  '#5469d4',
9
51
  '#7c54d4',
@@ -213,12 +213,15 @@ export default function chartCommon(target) {
213
213
  this.dom.appendChild(box)
214
214
  }
215
215
 
216
+ setBg() {
217
+ this.dom.style.backgroundColor = this.bg
218
+ }
219
+
216
220
  drawLabels(labels, styles = DEFAULT_CHART_STYLES) {
217
221
  if (labels.length <= 0) {
218
222
  return
219
223
  }
220
224
  const { labelBox, handleLabelMouseOver, handleLabelMouseLeave } = this
221
- this.dom.style.backgroundColor = this.bg
222
225
 
223
226
  this.offLabels.forEach(off => off())
224
227
  labelBox.innerHTML = ''
data/src/js/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import './../sass/_beyond.scss'
2
1
  import 'core-js/stable'
3
2
  import 'regenerator-runtime/runtime'
4
3
  import './polyfills/classList'
@@ -0,0 +1,167 @@
1
+ html {
2
+ height: 100%;
3
+ }
4
+ body {
5
+ color: $txt;
6
+ box-sizing: border-box;
7
+ font-family: 'Noto Sans CJK TC', 'PingFang TC', 'Microsoft JhengHei',
8
+ 'Helvetica Neue', Helvetica, Verdana, 'Open Sans', sans-serif;
9
+ font-size: 16px;
10
+
11
+ .content {
12
+ flex: 1;
13
+ }
14
+ &.with-footer {
15
+ min-height: 100%;
16
+ display: flex;
17
+ flex-direction: column;
18
+ }
19
+ }
20
+ *,
21
+ *:before,
22
+ *:after {
23
+ box-sizing: inherit;
24
+ }
25
+
26
+ :focus {
27
+ outline: 1px solid $bg-outline;
28
+ outline-offset: 2px;
29
+ }
30
+
31
+ // for ie11
32
+ body:focus {
33
+ outline: 0;
34
+ }
35
+
36
+ h1, h2, h3, h4, h5, h6 {
37
+ margin-top: 0;
38
+ margin-bottom: 8px;
39
+ }
40
+
41
+ ul {
42
+ list-style-type: none;
43
+ padding: 0;
44
+ margin: 0;
45
+ }
46
+
47
+ p {
48
+ line-height: 2.1em;
49
+ margin-top: 0;
50
+ margin-bottom: 1rem;
51
+ }
52
+ small {
53
+ font-size: 70%;
54
+ }
55
+ blockquote {
56
+ margin: 0 0 1rem;
57
+ }
58
+
59
+ th, td {
60
+ padding: 7px;
61
+ }
62
+
63
+ a {
64
+ cursor: pointer;
65
+ color: $txt-anchor;
66
+ text-decoration: none;
67
+ &:hover {
68
+ color: $txt-anchor-ex;
69
+ }
70
+ }
71
+
72
+ .select,
73
+ .select.select-outline,
74
+ .select.select-outline-strong,
75
+ .btn.btn-dropdown,
76
+ .search-input,
77
+ .input {
78
+ &.active {
79
+ color: $txt-active;
80
+ box-shadow: 0 1px 1px 0 rgba(54, 59, 255, .6),
81
+ rgba(14, 48, 173, .3) 0 0 0 1px,
82
+ rgba(14, 26, 62, .12) 0 2px 5px 0;
83
+ }
84
+ }
85
+ .search-input.active .input,
86
+ .search-input.active .icon-search:before {
87
+ color: $txt-active;
88
+ }
89
+
90
+ .input,
91
+ .select,
92
+ .select.select-outline,
93
+ .select.select-outline-strong {
94
+ &:focus.active {
95
+ color: $txt-active;
96
+ box-shadow: 0 1px 1px 0 rgba(54, 59, 255, .6),
97
+ rgba(14, 48, 173, .3) 0 0 0 1px,
98
+ rgba(14, 26, 62, .12) 0 2px 5px 0,
99
+ 0 0 0 4px rgba(58, 151, 212, .28);
100
+ }
101
+ }
102
+ .search-input.active.outline {
103
+ color: $txt-active;
104
+ box-shadow: 0 1px 1px 0 rgba(54, 59, 255, .6),
105
+ rgba(14, 48, 173, .3) 0 0 0 1px,
106
+ rgba(14, 26, 62, .12) 0 2px 5px 0,
107
+ 0 0 0 4px rgba(58, 151, 212, .28);
108
+ }
109
+
110
+ .scrollable {
111
+ overflow-y: scroll;
112
+ -webkit-overflow-scrolling: touch;
113
+ }
114
+
115
+ .align-left {
116
+ text-align: left !important;
117
+ }
118
+ .align-right {
119
+ text-align: right !important;
120
+ }
121
+ .align-center {
122
+ text-align: center !important;
123
+ }
124
+
125
+ .float-left {
126
+ float: left !important;
127
+ }
128
+ .float-right {
129
+ float: right !important;
130
+ }
131
+ .float-none {
132
+ float: none !important;
133
+ }
134
+
135
+ .sr-only {
136
+ position: absolute;
137
+ width: 1px;
138
+ height: 1px;
139
+ padding: 0;
140
+ overflow: hidden;
141
+ clip: rect(0, 0, 0, 0);
142
+ white-space: nowrap;
143
+ clip-path: inset(50%);
144
+ border: 0;
145
+ }
146
+
147
+ .full-width {
148
+ width: 100% !important;
149
+ }
150
+
151
+ hr {
152
+ margin-top: 20px;
153
+ margin-bottom: 20px;
154
+ border-top: 1px solid $hr-border;
155
+ border-left: 0;
156
+ border-right: 0;
157
+ border-bottom: 0;
158
+ }
159
+
160
+ input[type=file], /* FF, IE7+, chrome (except button) */
161
+ input[type=file]::-webkit-file-upload-button { /* chromes and blink button */
162
+ cursor: pointer;
163
+ }
164
+
165
+ .nowrap {
166
+ white-space: nowrap !important;
167
+ }
@@ -0,0 +1,3 @@
1
+ @import './abstracts/_variables';
2
+ @import './themes/_dark';
3
+ @import './_main';
@@ -1,56 +1,2 @@
1
1
  @import './abstracts/_variables';
2
- @import './abstracts/_placeholders';
3
- @import './abstracts/_mixins';
4
- @import './vendor/_normalize';
5
- @import './vendor/_turbolink';
6
- @import './base/_background';
7
- @import './base/_typography';
8
- @import './_animations';
9
2
  @import './_main';
10
- @import './layout/_border-util';
11
- @import './layout/_col';
12
- @import './layout/_container';
13
- @import './layout/_offset-util';
14
- @import './layout/_sizing-util';
15
- @import './layout/_spacing-util';
16
- @import './layout/_visibility-util';
17
- @import './layout/_flex-util';
18
- @import './components/_alert';
19
- @import './components/_autocomplete';
20
- @import './components/_avatar';
21
- @import './components/_badge';
22
- @import './components/_breadcrumb';
23
- @import './components/_btn';
24
- @import './components/_btn-group';
25
- @import './components/_card';
26
- @import './components/_checkbox';
27
- @import './components/_date-input';
28
- @import './components/_date-menu';
29
- @import './components/_month-menu';
30
- @import './components/_date-time-ranger';
31
- @import './components/_datepicker';
32
- @import './components/_dropdown';
33
- @import './components/_form';
34
- @import './components/_icon';
35
- @import './components/_input';
36
- @import './components/_list';
37
- @import './components/_modal';
38
- @import './components/_nav';
39
- @import './components/_navbar';
40
- @import './components/_pagination';
41
- @import './components/_radio';
42
- @import './components/_search-dropdown';
43
- @import './components/_select';
44
- @import './components/_sidebar';
45
- @import './components/_spinner';
46
- @import './components/_tabbox';
47
- @import './components/_table';
48
- @import './components/_tag';
49
- @import './components/_tag-input';
50
- @import './components/_time-input';
51
- @import './components/_time-menu';
52
- @import './components/_toast';
53
- @import './components/_tooltip';
54
- @import './components/_switch';
55
- @import './components/_mega-menu';
56
- @import './components/_chart';