@awes-io/ui 2.87.0 → 2.89.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 (72) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/assets/css/components/_index.css +3 -2
  3. package/assets/css/components/action-button.css +12 -1
  4. package/assets/css/components/alert.css +6 -9
  5. package/assets/css/components/button.css +255 -163
  6. package/assets/css/components/context-menu.css +0 -43
  7. package/assets/css/components/image-upload.css +81 -0
  8. package/assets/css/components/label.css +12 -1
  9. package/assets/css/components/list.css +23 -0
  10. package/assets/css/components/mobile-menu-item.css +1 -1
  11. package/assets/css/components/mobile-menu.css +1 -1
  12. package/assets/css/components/modal-buttons.css +17 -0
  13. package/assets/css/components/modal.css +37 -56
  14. package/assets/css/components/nav.css +1 -0
  15. package/assets/css/components/page-header.css +17 -1
  16. package/assets/css/components/page-headline.css +0 -56
  17. package/assets/css/components/page-menu-buttons.css +16 -17
  18. package/assets/css/components/page-modal.css +1 -1
  19. package/assets/css/components/tab-nav.css +2 -2
  20. package/assets/css/components/table.css +2 -2
  21. package/assets/css/components/tags.css +12 -8
  22. package/assets/css/components/user-menu.css +1 -1
  23. package/assets/css/typography.css +50 -7
  24. package/assets/js/icons/mono.js +94 -2
  25. package/assets/js/icons/multicolor.js +6 -6
  26. package/assets/js/styles.js +26 -20
  27. package/assets/js/url.js +3 -0
  28. package/components/1_atoms/AwActionIcon.vue +1 -1
  29. package/components/1_atoms/AwDock.vue +2 -2
  30. package/components/1_atoms/AwIcon/AwIcon.vue +40 -16
  31. package/components/1_atoms/AwIcon/AwIconSystemMono.vue +12 -6
  32. package/components/1_atoms/AwLabel.vue +23 -37
  33. package/components/1_atoms/AwLink.vue +16 -1
  34. package/components/1_atoms/AwList.vue +27 -0
  35. package/components/1_atoms/AwSwitcher.vue +2 -2
  36. package/components/1_atoms/AwTag.vue +54 -0
  37. package/components/2_molecules/AwActionButton.vue +7 -1
  38. package/components/2_molecules/AwButton.vue +116 -51
  39. package/components/2_molecules/AwSelect.vue +51 -39
  40. package/components/2_molecules/_AwSelectFakeInput.vue +10 -6
  41. package/components/2_molecules/_AwSelectInput.vue +10 -6
  42. package/components/3_organisms/AwAddressBlock.vue +2 -3
  43. package/components/3_organisms/AwCalendar/_AwCalendarNav.vue +6 -2
  44. package/components/3_organisms/AwCodeSnippet.vue +1 -2
  45. package/components/3_organisms/AwContextMenu.vue +8 -10
  46. package/components/3_organisms/AwCropper.vue +13 -11
  47. package/components/3_organisms/AwDate.vue +3 -1
  48. package/components/3_organisms/AwImageUpload.vue +267 -0
  49. package/components/3_organisms/AwModal.vue +7 -6
  50. package/components/3_organisms/AwModalButtons.vue +129 -0
  51. package/components/3_organisms/AwPagination.vue +32 -24
  52. package/components/3_organisms/AwPassword.vue +10 -4
  53. package/components/3_organisms/AwPreviewCard.vue +73 -0
  54. package/components/3_organisms/AwSearch.vue +0 -1
  55. package/components/3_organisms/AwTags.vue +5 -7
  56. package/components/3_organisms/AwTel.vue +1 -1
  57. package/components/3_organisms/AwUploaderFiles.vue +1 -1
  58. package/components/4_pages/AwPageMenuButtons.vue +27 -10
  59. package/components/4_pages/AwPageSingle.vue +8 -4
  60. package/components/4_pages/_AwPageHeader.vue +1 -1
  61. package/components/4_pages/_AwPageHeadline.vue +7 -6
  62. package/components/5_layouts/_AwHeaderNotification.vue +4 -2
  63. package/components/5_layouts/_AwMobileMenu.vue +22 -25
  64. package/components/5_layouts/_AwNoty.vue +12 -23
  65. package/components/5_layouts/_AwUserMenu.vue +20 -9
  66. package/components/_config.js +9 -0
  67. package/nuxt/index.js +10 -1
  68. package/package.json +4 -3
  69. package/assets/css/components/button-fixed.css +0 -84
  70. package/assets/css/components/square-icon-button.css +0 -69
  71. package/components/2_molecules/AwSquareIconButton.vue +0 -52
  72. package/components/4_pages/_AwButtonFixed.vue +0 -58
@@ -6,7 +6,7 @@
6
6
  class="aw-page-menu-buttons__aw-context-menu"
7
7
  :options="$options.dropdownOptions"
8
8
  :text="$t('More')"
9
- :hide-text="hideContextMenuText"
9
+ :hide-text="!$screen[showContextMenuTextFrom]"
10
10
  >
11
11
  <AwDropdownButton
12
12
  v-for="({ listeners, tooltip, iconSize, ...attrs },
@@ -41,15 +41,31 @@
41
41
  v-if="!isExpanded && splitButtons.fixed"
42
42
  class="aw-page-menu-buttons__fixed-btns"
43
43
  >
44
- <AwButtonFixed
44
+ <AwButton
45
45
  v-for="({ listeners, tooltip, ...attrs },
46
46
  i) in splitButtons.fixed"
47
47
  :key="i"
48
- :expanded="isInTopPosition"
49
48
  v-tooltip="tooltip"
50
49
  v-bind="attrs"
50
+ auto-width
51
51
  v-on="listeners"
52
- />
52
+ >
53
+ <template #icon="{ icon }">
54
+ <AwIcon :name="icon" />
55
+ </template>
56
+
57
+ <template #default="{ text }">
58
+ <span
59
+ v-if="text"
60
+ class="aw-page-menu-buttons__fixed-btn-text truncate"
61
+ :class="{
62
+ 'aw-page-menu-buttons__fixed-btn-text--expanded': isInTopPosition
63
+ }"
64
+ >
65
+ {{ text }}
66
+ </span>
67
+ </template>
68
+ </AwButton>
53
69
  </div>
54
70
  </div>
55
71
  </template>
@@ -62,16 +78,12 @@ import { supportsPassive } from '@AwUtils/events'
62
78
  const toIconButton = (props) => ({
63
79
  ...props,
64
80
  size: 'lg',
65
- theme: 'circle'
81
+ theme: 'solid'
66
82
  })
67
83
 
68
84
  export default {
69
85
  name: 'AwPageMenuButtons',
70
86
 
71
- components: {
72
- AwButtonFixed: () => import('@AwPages/_AwButtonFixed.vue')
73
- },
74
-
75
87
  props: {
76
88
  items: {
77
89
  type: Array,
@@ -90,7 +102,12 @@ export default {
90
102
  default: 150 // px
91
103
  },
92
104
 
93
- hideContextMenuText: Boolean
105
+ // hideContextMenuText: Boolean,
106
+
107
+ showContextMenuTextFrom: {
108
+ type: String,
109
+ default: 'lg'
110
+ }
94
111
  },
95
112
 
96
113
  data() {
@@ -12,14 +12,18 @@
12
12
  >
13
13
  <template #breadcrumbs>
14
14
  <slot name="breadcrumb">
15
- <AwSquareIconButton
16
- :color="isDesktop || isHeaderStuck ? 'mono-900' : 'mono-800'"
15
+ <AwButton
16
+ :color="
17
+ isDesktop || isHeaderStuck ? 'mono-light' : 'mono'
18
+ "
17
19
  :href="backUrl"
18
20
  :aria-label="breadcrumb?.title ?? $t('Back')"
19
21
  v-on="backUrl ? null : { click: () => $router.back() }"
20
22
  >
21
- <AwIconSystemMono name="arrow" />
22
- </AwSquareIconButton>
23
+ <template #icon>
24
+ <AwIconSystemMono name="arrow" />
25
+ </template>
26
+ </AwButton>
23
27
  </slot>
24
28
 
25
29
  <slot name="after-breadcrumb" />
@@ -15,7 +15,7 @@
15
15
  <div class="aw-page-header__buttons">
16
16
  <slot />
17
17
 
18
- <AwUserMenu v-if="!hideMenu" outline vertical caret mono-icons />
18
+ <AwUserMenu v-if="!hideMenu" outline vertical caret />
19
19
 
20
20
  <slot name="after-menu" />
21
21
  </div>
@@ -3,15 +3,18 @@
3
3
  <!-- Breadcumb -->
4
4
  <div class="aw-page-headline__back-wrapper">
5
5
  <slot name="headline-breadcrumb" :breadcrumb="breadcrumb">
6
- <AwSquareIconButton
6
+ <AwButton
7
7
  v-if="backUrl || isMenuToggler"
8
8
  class="aw-page-headline__back"
9
+ color="mono"
9
10
  :href="backUrl"
10
11
  :aria-label="isMenuToggler ? $t('Menu') : breadcrumb.title"
11
12
  v-on="isMenuToggler ? { click: openMenu } : null"
12
13
  >
13
- <AwIconSystemMono name="arrow-l" size="24" />
14
- </AwSquareIconButton>
14
+ <template #icon>
15
+ <AwIconSystemMono name="arrow" />
16
+ </template>
17
+ </AwButton>
15
18
  </slot>
16
19
  </div>
17
20
 
@@ -61,11 +64,9 @@
61
64
  import { AwPage as _config } from '@AwConfig'
62
65
  import { conf } from '@AwUtils/component'
63
66
  import { getPath } from '@AwUtils/router'
64
- import AwSquareIconButton from '../2_molecules/AwSquareIconButton.vue'
65
67
 
66
68
  export default {
67
69
  name: 'AwPageHeadline',
68
- components: { AwSquareIconButton },
69
70
 
70
71
  _config,
71
72
 
@@ -131,7 +132,7 @@ export default {
131
132
  },
132
133
 
133
134
  isMenuToggler() {
134
- return !this.backUrl && this.breadcrumbMenu
135
+ return !this.backUrl && !this.$screen.lg && this.breadcrumbMenu
135
136
  }
136
137
  },
137
138
 
@@ -18,7 +18,7 @@
18
18
  <AwButton
19
19
  v-for="({ listeners, ...props }, i) in config.buttons"
20
20
  :key="i"
21
- size="sm"
21
+ size="xs"
22
22
  v-bind="props"
23
23
  v-on="listeners"
24
24
  />
@@ -31,7 +31,9 @@
31
31
  class="flex-shrink-0"
32
32
  @click="$store.commit('awesIo/SET_HEADER_NOTIFICATION', null)"
33
33
  >
34
- <AwIconSystemMono name="close" />
34
+ <template #icon>
35
+ <AwIconSystemMono name="close" />
36
+ </template>
35
37
  </AwButton>
36
38
  </div>
37
39
  </template>
@@ -11,38 +11,37 @@
11
11
  >
12
12
  <div class="aw-mobile-menu__header">
13
13
  <!-- back button -->
14
- <AwSquareIconButton
14
+ <AwButton
15
15
  v-if="submenuOpened"
16
16
  class="aw-mobile-menu__back flex-shrink-0"
17
+ :aria-label="$t('Back')"
18
+ color="mono"
17
19
  @click="submenuOpened = false"
18
- color="mono-800"
19
20
  >
20
- <AwIconSystemMono
21
- name="arrow"
22
- size="16"
23
- class="text-mono-400"
24
- />
25
- <span class="sr-only">
26
- {{ $t('Back') }}
27
- </span>
28
- </AwSquareIconButton>
21
+ <template #icon>
22
+ <AwIconSystemMono
23
+ name="arrow"
24
+ size="16"
25
+ class="text-mono-400"
26
+ />
27
+ </template>
28
+ </AwButton>
29
29
 
30
30
  <!-- close button -->
31
- <AwSquareIconButton
31
+ <AwButton
32
32
  class="aw-mobile-menu__close flex-shrink-0"
33
+ :aria-label="$t('Close')"
34
+ color="mono"
33
35
  @click="show = false"
34
- color="mono-800"
35
36
  >
36
- <AwIconSystemMono
37
- name="close"
38
- size="16"
39
- class="text-mono-400"
40
- />
41
-
42
- <span class="sr-only">
43
- {{ $t('Close') }}
44
- </span>
45
- </AwSquareIconButton>
37
+ <template #icon>
38
+ <AwIconSystemMono
39
+ name="close"
40
+ size="16"
41
+ class="text-mono-400"
42
+ />
43
+ </template>
44
+ </AwButton>
46
45
  </div>
47
46
 
48
47
  <slot v-if="!submenuOpened" name="before-mobile-menu">
@@ -216,14 +215,12 @@ import { conf } from '@AwUtils/component'
216
215
  import { getPath } from '@AwUtils/router'
217
216
  import AwMobileMenuNav from '@AwLayouts/_AwMobileMenuNav.vue'
218
217
  import AwMobileMenuItemNew from '@AwLayouts/_AwMobileMenuItemNew.vue'
219
- import AwSquareIconButton from '../2_molecules/AwSquareIconButton.vue'
220
218
  // import AwMobileMenuItem from '@AwLayouts/_AwMobileMenuItem.vue'
221
219
 
222
220
  export default {
223
221
  name: 'AwMobileMenu',
224
222
 
225
223
  components: {
226
- AwSquareIconButton,
227
224
  AwMobileMenuNav,
228
225
  AwLayoutLogo: () => import('@AwLayouts/_AwLayoutLogo.vue'),
229
226
  AwMobileMenuItemNew
@@ -11,29 +11,16 @@
11
11
  <!-- icon -->
12
12
  <Component
13
13
  :is="$options.components.AwIcon"
14
- v-if="typeof props.icon === 'string' && props.icon"
15
- :name="props.icon"
14
+ v-if="props.icon"
15
+ :name="
16
+ typeof props.icon === 'string'
17
+ ? props.icon
18
+ : $options.getDefaultIconName(props.type)
19
+ "
20
+ size="20"
16
21
  class="aw-noty__icon"
17
22
  :class="`text-${props.type}`"
18
23
  />
19
- <Component
20
- :is="$options.components.AwIconSystemMono"
21
- v-else-if="props.icon === true"
22
- :name="$options.getDefaultIconName(props.type)"
23
- class="aw-noty__icon"
24
- :class="`text-${props.type}`"
25
- />
26
- <!-- <svg
27
- v-else-if="props.icon"
28
- width="20"
29
- height="20"
30
- :class="`text-${props.type}`"
31
- class="aw-noty__icon fill-current"
32
- >
33
- <path
34
- d="M10 1.8a8.2 8.2 0 100 16.4 8.2 8.2 0 000-16.4zm4.1 6.5l-4.4 4.4a.7.7 0 01-1 0l-2.2-2.2a.7.7 0 111-1l1.7 1.8 4-4a.7.7 0 111 1zm0 0"
35
- />
36
- </svg> -->
37
24
 
38
25
  <!-- content -->
39
26
  <div class="aw-noty__content" :class="{ 'has-text': props.text }">
@@ -118,11 +105,13 @@ export default {
118
105
  getDefaultIconName(type) {
119
106
  switch (type) {
120
107
  case 'error':
121
- return 'close-solid'
108
+ return 'awesio/close-circle'
122
109
  case 'warning':
123
- return 'attention'
110
+ return 'awesio/warning'
111
+ case 'info':
112
+ return 'awesio/info-circle'
124
113
  default:
125
- return 'check-solid'
114
+ return 'awesio/check-circle'
126
115
  }
127
116
  }
128
117
  }
@@ -2,10 +2,13 @@
2
2
  <div
3
3
  v-if="showUser"
4
4
  class="aw-user-menu"
5
+ v-on="
6
+ isDesktop
7
+ ? { mouseenter: _cancelClose, mouseleave: closeDropdown }
8
+ : null
9
+ "
5
10
  @focusout="_closeOnBlur"
6
11
  @click="_closeOnClick"
7
- @mouseenter="_cancelClose"
8
- @mouseleave="closeDropdown"
9
12
  >
10
13
  <slot name="user">
11
14
  <button
@@ -13,8 +16,12 @@
13
16
  :class="{ 'aw-user-menu__user--outline': outline }"
14
17
  aria-haspopup="true"
15
18
  :aria-label="$t('Open menu')"
19
+ v-on="
20
+ isDesktop
21
+ ? { mouseenter: openDropdown }
22
+ : { click: openDropdown }
23
+ "
16
24
  @focus="openDropdown"
17
- @mouseenter="openDropdown"
18
25
  >
19
26
  <AwAvatar
20
27
  v-bind="user"
@@ -55,7 +62,6 @@
55
62
  :size="16"
56
63
  class="aw-user-menu__theme-icon"
57
64
  :class="{
58
- 'aw-user-menu__theme-icon--mono': monoIcons,
59
65
  'mr-2': vertical,
60
66
  'mr-4': !vertical
61
67
  }"
@@ -83,7 +89,6 @@
83
89
  v-bind="_pickButtonProps(item)"
84
90
  :class="[
85
91
  {
86
- 'aw-user-menu__nav-item--icon-mono': monoIcons,
87
92
  'aw-user-menu__nav-item--active':
88
93
  item === activeMenu
89
94
  },
@@ -138,9 +143,7 @@ export default {
138
143
 
139
144
  outline: Boolean,
140
145
 
141
- caret: Boolean,
142
-
143
- monoIcons: Boolean
146
+ caret: Boolean
144
147
  },
145
148
 
146
149
  inject: {
@@ -158,6 +161,10 @@ export default {
158
161
  computed: {
159
162
  ...mapGetters('awesIo', ['user']),
160
163
 
164
+ isDesktop() {
165
+ return this.$screen.lg
166
+ },
167
+
161
168
  showUser() {
162
169
  return !isNil(this.user) && !isEmpty(this.user)
163
170
  },
@@ -224,7 +231,11 @@ export default {
224
231
  return omit('icon,iconActive,children,listeners,description', props)
225
232
  },
226
233
 
227
- openDropdown() {
234
+ openDropdown($event) {
235
+ if ($event && isType('Function', $event.stopPropagation)) {
236
+ $event.stopPropagation()
237
+ }
238
+
228
239
  clearTimeout(this._tm)
229
240
  this.$refs.dropdown.visible = true
230
241
  },
@@ -202,6 +202,14 @@ export const AwIconSystem = {
202
202
  size: 16
203
203
  }
204
204
 
205
+ export const AwImageUpload = {
206
+ uploadConfig: {
207
+ baseURL: 'https://upload.easyweek.app/upload/image',
208
+ method: 'post'
209
+ },
210
+ resultPath: 'imageUrl'
211
+ }
212
+
205
213
  export const AwPage = {
206
214
  titleTag: 'h1'
207
215
  }
@@ -248,6 +256,7 @@ export default {
248
256
  AwInput,
249
257
  AwMoney,
250
258
  AwIconSystem,
259
+ AwImageUpload,
251
260
  AwPage,
252
261
  AwModal,
253
262
  AwTable,
package/nuxt/index.js CHANGED
@@ -217,7 +217,12 @@ async function AwesIoUi() {
217
217
  `${rootDir}/nuxt.config.{js,ts}`
218
218
  ],
219
219
  options: {
220
- whitelistPatterns: [/gap-/, /grid-cols-/, /col-span-/]
220
+ whitelistPatterns: [
221
+ /gap-/,
222
+ /grid-cols-/,
223
+ /col-span-/,
224
+ /text-/
225
+ ]
221
226
  }
222
227
  }
223
228
  }
@@ -244,6 +249,10 @@ async function AwesIoUi() {
244
249
  postcss.plugins
245
250
  )
246
251
 
252
+ postcss.preset = {
253
+ stage: 3
254
+ }
255
+
247
256
  postcss.plugins.tailwindcss = tailwindConfig
248
257
  })
249
258
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awes-io/ui",
3
- "version": "2.87.0",
3
+ "version": "2.89.0",
4
4
  "description": "User Interface (UI) components",
5
5
  "keywords": [
6
6
  "ui",
@@ -73,7 +73,8 @@
73
73
  "rambdax": "^7.2.0",
74
74
  "tailwindcss": "^1.9.6",
75
75
  "vue-currency-input": "^1.22.3",
76
- "vue-i18n": "^8.14.0"
76
+ "vue-i18n": "^8.14.0",
77
+ "vue2-teleport": "^1.0.1"
77
78
  },
78
79
  "devDependencies": {
79
80
  "@babel/core": "^7.5.5",
@@ -113,5 +114,5 @@
113
114
  "rollup-plugin-visualizer": "^2.6.0",
114
115
  "rollup-plugin-vue": "^5.0.1"
115
116
  },
116
- "gitHead": "c7e314537dc3afda6cf5253084d4080481079f0e"
117
+ "gitHead": "dc08b4ef8df7c1a521df1c7ef5be89af2c6aa52f"
117
118
  }
@@ -1,84 +0,0 @@
1
- .aw-button-fixed {
2
- display: flex;
3
- align-items: center;
4
-
5
- padding: 0.75rem 1rem;
6
- min-width: 3.5rem;
7
- min-height: 3rem;
8
- /* border-radius: 1rem; */
9
-
10
- font-size: 1rem;
11
- line-height: 1.125rem;
12
- font-weight: 400;
13
-
14
- background-color: rgba(var(--btn-bg), var(--btn-bg-opacity, 1));
15
- color: rgba(var(--btn-fg), 1);
16
-
17
- box-shadow: 0px 0.25rem 0.5rem rgba(var(--btn-bg), 0.2);
18
-
19
- &__text {
20
- flex-shrink: 1;
21
- max-width: 1px;
22
- margin-left: -1px;
23
-
24
- opacity: 0.1;
25
- transition-property: max-width, margin, opacity;
26
- transition-duration: 120ms;
27
-
28
- &--expanded {
29
- max-width: 16rem;
30
- margin-left: 0.75em;
31
- opacity: 1;
32
- transition-timing-function: ease-out;
33
- transition-duration: 210ms;
34
- }
35
- }
36
-
37
- &__lock {
38
- display: flex;
39
- align-items: center;
40
- justify-content: center;
41
-
42
- position: absolute;
43
- inset: 0;
44
-
45
- span {
46
- background-color: var(--c-surface);
47
- color: var(--c-on-surface);
48
-
49
- display: flex;
50
- align-items: center;
51
- justify-content: center;
52
- border-radius: 50%;
53
-
54
- padding: 0.32em;
55
- font-size: 1.2em;
56
- }
57
- }
58
-
59
- &--locked {
60
- position: relative;
61
- }
62
-
63
- &:hover {
64
- background-image: linear-gradient(rgba(var(--btn-fg), 0.15), rgba(var(--btn-fg), 0.15));
65
- }
66
-
67
- &:active {
68
- transform: translateY(1px);
69
- }
70
-
71
- &:focus-visible {
72
- outline: theme('focusOutline');
73
- }
74
-
75
- &[disabled] {
76
- --btn-bg-opacity: 0.5 !important;
77
- cursor: not-allowed !important;
78
- user-select: none !important;
79
- }
80
- }
81
-
82
- a.aw-button-fixed--locked {
83
- pointer-events: none;
84
- }
@@ -1,69 +0,0 @@
1
- .aw-square-icon-button {
2
- display: flex;
3
- justify-content: center;
4
- align-items: center;
5
-
6
- border-radius: 0.625rem;
7
-
8
- width: 3rem;
9
- height: 3rem;
10
-
11
- &:disabled {
12
- opacity: 0.5;
13
- cursor: not-allowed;
14
- user-select: none !important;
15
- }
16
-
17
- &:not([disabled]):active {
18
- transform: translateY(1px);
19
- }
20
-
21
- svg {
22
- fill: var(--c-mono-400);
23
- }
24
-
25
- &:not(:disabled):hover {
26
- svg {
27
- fill: var(--c-mono-100);
28
- }
29
- }
30
-
31
- &--color-mono-900 {
32
- background: var(--c-mono-900);
33
-
34
- &:not(:disabled):hover {
35
- background: var(--c-mono-800);
36
- }
37
- }
38
-
39
- &--color-mono-800 {
40
- background: var(--c-mono-800);
41
-
42
- &:not(:disabled):hover {
43
- background: var(--c-mono-700);
44
- }
45
- }
46
-
47
- &--color-mono-700 {
48
- background: var(--c-mono-700);
49
-
50
- &:not(:disabled):hover {
51
- background: var(--c-mono-600);
52
- }
53
- }
54
-
55
- &--color-mono-600 {
56
- background: var(--c-mono-600);
57
-
58
- &:not(:disabled):hover {
59
- background: var(--c-mono-500);
60
- }
61
- }
62
- }
63
-
64
- @screen lg {
65
- .aw-square-icon-button {
66
- width: 2.5rem;
67
- height: 2.5rem;
68
- }
69
- }
@@ -1,52 +0,0 @@
1
- <template>
2
- <component
3
- class="aw-square-icon-button"
4
- :class="classes"
5
- :is="_linkComponent"
6
- :disabled="isDisabled"
7
- v-bind="_linkAttrs"
8
- v-on="$listeners"
9
- >
10
- <slot>
11
- <AwIcon :name="icon" :size="iconSize" />
12
- </slot>
13
- </component>
14
- </template>
15
-
16
- <script>
17
- import AwLink from '@AwAtoms/AwLink.vue'
18
-
19
- export default {
20
- name: 'AwSquareIconButton',
21
-
22
- extends: AwLink,
23
-
24
- props: {
25
- icon: {
26
- type: String,
27
- default: 'close'
28
- },
29
-
30
- iconSize: {
31
- type: [String, Number],
32
- default: 16
33
- },
34
-
35
- // Possible values: mono-900, mono-800, mono-700, mono-600
36
- color: {
37
- type: String,
38
- default: 'mono-900'
39
- }
40
- },
41
-
42
- computed: {
43
- classes() {
44
- return [`aw-square-icon-button--color-${this.color || 'mono-900'}`]
45
- },
46
-
47
- isDisabled() {
48
- return this.$attrs.disabled === true || this.$attrs.disabled === ''
49
- }
50
- }
51
- }
52
- </script>