@nextcloud/vue 3.10.2 → 4.1.1

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 (290) hide show
  1. package/CHANGELOG.md +114 -19
  2. package/README.md +9 -10
  3. package/dist/Components/ActionButton.js +24 -3
  4. package/dist/Components/ActionButton.js.map +1 -1
  5. package/dist/Components/ActionCaption.js +23 -0
  6. package/dist/Components/ActionCaption.js.map +1 -0
  7. package/dist/Components/ActionCheckbox.js +24 -3
  8. package/dist/Components/ActionCheckbox.js.map +1 -1
  9. package/dist/Components/ActionInput.js +124 -21
  10. package/dist/Components/ActionInput.js.map +1 -1
  11. package/dist/Components/ActionLink.js +24 -3
  12. package/dist/Components/ActionLink.js.map +1 -1
  13. package/dist/Components/ActionRadio.js +24 -3
  14. package/dist/Components/ActionRadio.js.map +1 -1
  15. package/dist/Components/ActionRouter.js +23 -2
  16. package/dist/Components/ActionRouter.js.map +1 -1
  17. package/dist/Components/ActionSeparator.js +1 -1
  18. package/dist/Components/ActionSeparator.js.map +1 -1
  19. package/dist/Components/ActionText.js +23 -2
  20. package/dist/Components/ActionText.js.map +1 -1
  21. package/dist/Components/ActionTextEditable.js +45 -3
  22. package/dist/Components/ActionTextEditable.js.map +1 -1
  23. package/dist/Components/Actions.js +25 -4
  24. package/dist/Components/Actions.js.map +1 -1
  25. package/dist/Components/AppContent.js +21 -1
  26. package/dist/Components/AppContent.js.map +1 -1
  27. package/dist/Components/AppContentDetails.js +1 -1
  28. package/dist/Components/AppContentDetails.js.map +1 -1
  29. package/dist/Components/AppContentList.js +1 -1
  30. package/dist/Components/AppContentList.js.map +1 -1
  31. package/dist/Components/AppNavigation.js +109 -2
  32. package/dist/Components/AppNavigation.js.map +1 -1
  33. package/dist/Components/AppNavigationCaption.js +66 -1
  34. package/dist/Components/AppNavigationCaption.js.map +1 -1
  35. package/dist/Components/AppNavigationCounter.js +2 -2
  36. package/dist/Components/AppNavigationCounter.js.map +1 -1
  37. package/dist/Components/AppNavigationIconBullet.js +2 -2
  38. package/dist/Components/AppNavigationIconBullet.js.map +1 -1
  39. package/dist/Components/AppNavigationItem.js +49 -7
  40. package/dist/Components/AppNavigationItem.js.map +1 -1
  41. package/dist/Components/AppNavigationNew.js +1 -1
  42. package/dist/Components/AppNavigationNew.js.map +1 -1
  43. package/dist/Components/AppNavigationNewItem.js +2 -2
  44. package/dist/Components/AppNavigationNewItem.js.map +1 -1
  45. package/dist/Components/AppNavigationSettings.js +5 -5
  46. package/dist/Components/AppNavigationSettings.js.map +1 -1
  47. package/dist/Components/AppNavigationSpacer.js +1 -1
  48. package/dist/Components/AppNavigationSpacer.js.map +1 -1
  49. package/dist/Components/AppNavigationToggle.js +109 -2
  50. package/dist/Components/AppNavigationToggle.js.map +1 -1
  51. package/dist/Components/AppSettingsDialog.js +64 -22
  52. package/dist/Components/AppSettingsDialog.js.map +1 -1
  53. package/dist/Components/AppSettingsSection.js +1 -1
  54. package/dist/Components/AppSettingsSection.js.map +1 -1
  55. package/dist/Components/AppSidebar.js +38 -17
  56. package/dist/Components/AppSidebar.js.map +1 -1
  57. package/dist/Components/AppSidebarTab.js +1 -1
  58. package/dist/Components/AppSidebarTab.js.map +1 -1
  59. package/dist/Components/Avatar.js +9 -10
  60. package/dist/Components/Avatar.js.map +1 -1
  61. package/dist/Components/Breadcrumb.js +33 -12
  62. package/dist/Components/Breadcrumb.js.map +1 -1
  63. package/dist/Components/Breadcrumbs.js +59 -17
  64. package/dist/Components/Breadcrumbs.js.map +1 -1
  65. package/dist/Components/CheckboxRadioSwitch.js +44 -0
  66. package/dist/Components/CheckboxRadioSwitch.js.map +1 -0
  67. package/dist/Components/ColorPicker.js +6 -7
  68. package/dist/Components/ColorPicker.js.map +1 -1
  69. package/dist/Components/Content.js +2 -2
  70. package/dist/Components/Content.js.map +1 -1
  71. package/dist/Components/CounterBubble.js +23 -0
  72. package/dist/Components/CounterBubble.js.map +1 -0
  73. package/dist/Components/DatetimePicker.js +341 -3
  74. package/dist/Components/DatetimePicker.js.map +1 -1
  75. package/dist/Components/EmojiPicker.js +14 -14
  76. package/dist/Components/EmojiPicker.js.map +1 -1
  77. package/dist/Components/EmptyContent.js +2 -2
  78. package/dist/Components/EmptyContent.js.map +1 -1
  79. package/dist/Components/Highlight.js +3 -3
  80. package/dist/Components/Highlight.js.map +1 -1
  81. package/dist/Components/ListItem.js +130 -0
  82. package/dist/Components/ListItem.js.map +1 -0
  83. package/dist/Components/ListItemIcon.js +20 -21
  84. package/dist/Components/ListItemIcon.js.map +1 -1
  85. package/dist/Components/Modal.js +53 -11
  86. package/dist/Components/Modal.js.map +1 -1
  87. package/dist/Components/Multiselect.js +22 -23
  88. package/dist/Components/Multiselect.js.map +1 -1
  89. package/dist/Components/MultiselectTags.js +24 -25
  90. package/dist/Components/MultiselectTags.js.map +1 -1
  91. package/dist/Components/Popover.js +2 -2
  92. package/dist/Components/Popover.js.map +1 -1
  93. package/dist/Components/PopoverMenu.js +1 -1
  94. package/dist/Components/PopoverMenu.js.map +1 -1
  95. package/dist/Components/ProgressBar.js +2 -2
  96. package/dist/Components/ProgressBar.js.map +1 -1
  97. package/dist/Components/RichContenteditable.js +2 -2
  98. package/dist/Components/RichContenteditable.js.map +1 -1
  99. package/dist/Components/SettingsInputText.js +22 -1
  100. package/dist/Components/SettingsInputText.js.map +1 -1
  101. package/dist/Components/SettingsSection.js +2 -2
  102. package/dist/Components/SettingsSection.js.map +1 -1
  103. package/dist/Components/SettingsSelectGroup.js +41 -21
  104. package/dist/Components/SettingsSelectGroup.js.map +1 -1
  105. package/dist/Components/TimezonePicker.js +340 -0
  106. package/dist/Components/TimezonePicker.js.map +1 -0
  107. package/dist/Components/UserBubble.js +35 -36
  108. package/dist/Components/UserBubble.js.map +1 -1
  109. package/dist/Directives/Focus.js +1 -1
  110. package/dist/Directives/Focus.js.map +1 -1
  111. package/dist/Directives/Linkify.js +1 -1
  112. package/dist/Directives/Linkify.js.map +1 -1
  113. package/dist/Directives/Tooltip.js +2 -2
  114. package/dist/Directives/Tooltip.js.map +1 -1
  115. package/dist/Functions/usernameToColor.js +2 -3
  116. package/dist/Functions/usernameToColor.js.map +1 -1
  117. package/dist/Mixins/excludeClickOutsideClasses.js +2 -2
  118. package/dist/Mixins/excludeClickOutsideClasses.js.map +1 -1
  119. package/dist/Mixins/isFullscreen.js +1 -1
  120. package/dist/Mixins/isFullscreen.js.map +1 -1
  121. package/dist/Mixins/isMobile.js +1 -1
  122. package/dist/Mixins/isMobile.js.map +1 -1
  123. package/dist/Mixins/richEditor.js +1 -1
  124. package/dist/Mixins/richEditor.js.map +1 -1
  125. package/dist/ncvuecomponents.js +276 -69
  126. package/dist/ncvuecomponents.js.map +1 -1
  127. package/package.json +28 -43
  128. package/src/assets/action.scss +0 -132
  129. package/src/assets/iconfont/README.md +0 -30
  130. package/src/assets/iconfont/arrow-left-double.svg +0 -3
  131. package/src/assets/iconfont/arrow-left.svg +0 -3
  132. package/src/assets/iconfont/arrow-right-double.svg +0 -3
  133. package/src/assets/iconfont/arrow-right.svg +0 -3
  134. package/src/assets/iconfont/breadcrumb.svg +0 -1
  135. package/src/assets/iconfont/checkmark.svg +0 -1
  136. package/src/assets/iconfont/close.svg +0 -1
  137. package/src/assets/iconfont/confirm.svg +0 -1
  138. package/src/assets/iconfont/info.svg +0 -1
  139. package/src/assets/iconfont/menu.svg +0 -1
  140. package/src/assets/iconfont/more.svg +0 -1
  141. package/src/assets/iconfont/pause.svg +0 -1
  142. package/src/assets/iconfont/play.svg +0 -1
  143. package/src/assets/iconfont/triangle-s.svg +0 -1
  144. package/src/assets/iconfont/user-status-away.svg +0 -2
  145. package/src/assets/iconfont/user-status-dnd.svg +0 -2
  146. package/src/assets/iconfont/user-status-invisible.svg +0 -2
  147. package/src/assets/iconfont/user-status-online.svg +0 -2
  148. package/src/assets/inputs.scss +0 -104
  149. package/src/assets/variables.scss +0 -57
  150. package/src/components/ActionButton/ActionButton.vue +0 -160
  151. package/src/components/ActionButton/index.js +0 -24
  152. package/src/components/ActionCheckbox/ActionCheckbox.vue +0 -220
  153. package/src/components/ActionCheckbox/index.js +0 -24
  154. package/src/components/ActionInput/ActionInput.vue +0 -418
  155. package/src/components/ActionInput/index.js +0 -24
  156. package/src/components/ActionLink/ActionLink.vue +0 -132
  157. package/src/components/ActionLink/index.js +0 -24
  158. package/src/components/ActionRadio/ActionRadio.vue +0 -219
  159. package/src/components/ActionRadio/index.js +0 -24
  160. package/src/components/ActionRouter/ActionRouter.vue +0 -100
  161. package/src/components/ActionRouter/index.js +0 -24
  162. package/src/components/ActionSeparator/ActionSeparator.vue +0 -43
  163. package/src/components/ActionSeparator/index.js +0 -24
  164. package/src/components/ActionText/ActionText.vue +0 -87
  165. package/src/components/ActionText/index.js +0 -24
  166. package/src/components/ActionTextEditable/ActionTextEditable.vue +0 -306
  167. package/src/components/ActionTextEditable/index.js +0 -24
  168. package/src/components/Actions/Actions.vue +0 -764
  169. package/src/components/Actions/index.js +0 -24
  170. package/src/components/AppContent/AppContent.vue +0 -93
  171. package/src/components/AppContent/index.js +0 -23
  172. package/src/components/AppContentDetails/AppContentDetails.vue +0 -34
  173. package/src/components/AppContentDetails/index.js +0 -23
  174. package/src/components/AppContentList/AppContentList.vue +0 -44
  175. package/src/components/AppContentList/index.js +0 -23
  176. package/src/components/AppNavigation/AppNavigation.vue +0 -190
  177. package/src/components/AppNavigation/index.js +0 -23
  178. package/src/components/AppNavigationCaption/AppNavigationCaption.vue +0 -39
  179. package/src/components/AppNavigationCaption/index.js +0 -3
  180. package/src/components/AppNavigationCounter/AppNavigationCounter.vue +0 -82
  181. package/src/components/AppNavigationCounter/index.js +0 -25
  182. package/src/components/AppNavigationIconBullet/AppNavigationIconBullet.vue +0 -95
  183. package/src/components/AppNavigationIconBullet/index.js +0 -24
  184. package/src/components/AppNavigationItem/AppNavigationIconCollapsible.vue +0 -90
  185. package/src/components/AppNavigationItem/AppNavigationItem.vue +0 -629
  186. package/src/components/AppNavigationItem/InputConfirmCancel.vue +0 -134
  187. package/src/components/AppNavigationItem/index.js +0 -24
  188. package/src/components/AppNavigationNew/AppNavigationNew.vue +0 -76
  189. package/src/components/AppNavigationNew/index.js +0 -23
  190. package/src/components/AppNavigationNewItem/AppNavigationNewItem.vue +0 -165
  191. package/src/components/AppNavigationNewItem/index.js +0 -24
  192. package/src/components/AppNavigationSettings/AppNavigationSettings.vue +0 -105
  193. package/src/components/AppNavigationSettings/index.js +0 -23
  194. package/src/components/AppNavigationSpacer/AppNavigationSpacer.vue +0 -39
  195. package/src/components/AppNavigationSpacer/index.js +0 -23
  196. package/src/components/AppNavigationToggle/AppNavigationToggle.vue +0 -78
  197. package/src/components/AppNavigationToggle/index.js +0 -24
  198. package/src/components/AppSettingsDialog/AppSettingsDialog.vue +0 -331
  199. package/src/components/AppSettingsDialog/index.js +0 -25
  200. package/src/components/AppSettingsSection/AppSettingsSection.vue +0 -64
  201. package/src/components/AppSettingsSection/index.js +0 -25
  202. package/src/components/AppSidebar/AppSidebar.vue +0 -802
  203. package/src/components/AppSidebar/AppSidebarTabs.vue +0 -348
  204. package/src/components/AppSidebar/index.js +0 -23
  205. package/src/components/AppSidebarTab/AppSidebarTab.vue +0 -103
  206. package/src/components/AppSidebarTab/index.js +0 -23
  207. package/src/components/Avatar/Avatar.vue +0 -758
  208. package/src/components/Avatar/index.js +0 -25
  209. package/src/components/Breadcrumb/Breadcrumb.vue +0 -262
  210. package/src/components/Breadcrumb/index.js +0 -25
  211. package/src/components/Breadcrumbs/Breadcrumbs.vue +0 -537
  212. package/src/components/Breadcrumbs/index.js +0 -25
  213. package/src/components/ColorPicker/ColorPicker.vue +0 -380
  214. package/src/components/ColorPicker/index.js +0 -25
  215. package/src/components/Content/Content.vue +0 -77
  216. package/src/components/Content/index.js +0 -23
  217. package/src/components/DatetimePicker/DatetimePicker.vue +0 -195
  218. package/src/components/DatetimePicker/index.js +0 -28
  219. package/src/components/DatetimePicker/index.scss +0 -405
  220. package/src/components/EmojiPicker/EmojiPicker.vue +0 -302
  221. package/src/components/EmojiPicker/index.js +0 -23
  222. package/src/components/EmptyContent/EmptyContent.vue +0 -120
  223. package/src/components/EmptyContent/index.js +0 -24
  224. package/src/components/Highlight/Highlight.vue +0 -183
  225. package/src/components/Highlight/index.js +0 -25
  226. package/src/components/ListItemIcon/ListItemIcon.vue +0 -277
  227. package/src/components/ListItemIcon/index.js +0 -25
  228. package/src/components/Modal/Modal.vue +0 -833
  229. package/src/components/Modal/index.js +0 -27
  230. package/src/components/Multiselect/EllipsisedOption.vue +0 -141
  231. package/src/components/Multiselect/Multiselect.vue +0 -430
  232. package/src/components/Multiselect/index.js +0 -28
  233. package/src/components/Multiselect/index.scss +0 -290
  234. package/src/components/MultiselectTags/MultiselectTags.vue +0 -179
  235. package/src/components/MultiselectTags/api.js +0 -115
  236. package/src/components/MultiselectTags/index.js +0 -23
  237. package/src/components/Popover/Popover.vue +0 -208
  238. package/src/components/Popover/index.js +0 -25
  239. package/src/components/PopoverMenu/PopoverMenu.vue +0 -62
  240. package/src/components/PopoverMenu/PopoverMenuItem.vue +0 -382
  241. package/src/components/PopoverMenu/index.js +0 -24
  242. package/src/components/ProgressBar/ProgressBar.vue +0 -135
  243. package/src/components/ProgressBar/index.js +0 -25
  244. package/src/components/RichContenteditable/AutoCompleteResult.vue +0 -191
  245. package/src/components/RichContenteditable/MentionBubble.vue +0 -165
  246. package/src/components/RichContenteditable/RichContenteditable.vue +0 -517
  247. package/src/components/RichContenteditable/index.js +0 -25
  248. package/src/components/SettingsInputText/SettingsInputText.vue +0 -207
  249. package/src/components/SettingsInputText/index.js +0 -24
  250. package/src/components/SettingsSection/SettingsSection.vue +0 -151
  251. package/src/components/SettingsSection/index.js +0 -24
  252. package/src/components/SettingsSelectGroup/SettingsSelectGroup.vue +0 -149
  253. package/src/components/SettingsSelectGroup/index.js +0 -25
  254. package/src/components/UserBubble/UserBubble.vue +0 -319
  255. package/src/components/UserBubble/index.js +0 -25
  256. package/src/components/index.js +0 -110
  257. package/src/directives/Focus/index.js +0 -29
  258. package/src/directives/Linkify/index.js +0 -31
  259. package/src/directives/Tooltip/index.js +0 -32
  260. package/src/directives/Tooltip/index.scss +0 -117
  261. package/src/directives/index.js +0 -31
  262. package/src/fonts/iconfont-vue-f56d517.eot +0 -0
  263. package/src/fonts/iconfont-vue-f56d517.svg +0 -1
  264. package/src/fonts/iconfont-vue-f56d517.ttf +0 -0
  265. package/src/fonts/iconfont-vue-f56d517.woff +0 -0
  266. package/src/fonts/scss/iconfont-vue.scss +0 -115
  267. package/src/functions/usernameToColor/index.js +0 -25
  268. package/src/functions/usernameToColor/usernameToColor.js +0 -68
  269. package/src/index.js +0 -40
  270. package/src/l10n.js +0 -42
  271. package/src/mixins/actionGlobal.js +0 -59
  272. package/src/mixins/actionText.js +0 -85
  273. package/src/mixins/excludeClickOutsideClasses/index.js +0 -72
  274. package/src/mixins/index.js +0 -35
  275. package/src/mixins/isFullscreen/index.js +0 -46
  276. package/src/mixins/isMobile/index.js +0 -43
  277. package/src/mixins/l10n.js +0 -8
  278. package/src/mixins/richEditor/index.js +0 -160
  279. package/src/mixins/userStatus.js +0 -76
  280. package/src/utils/FindRanges.js +0 -47
  281. package/src/utils/GenColors.js +0 -79
  282. package/src/utils/GenRandomId.js +0 -31
  283. package/src/utils/GetChildren.js +0 -47
  284. package/src/utils/GetParent.js +0 -41
  285. package/src/utils/IsMobileState.js +0 -49
  286. package/src/utils/IsOutOfViewport.js +0 -36
  287. package/src/utils/ScopeComponent.js +0 -37
  288. package/src/utils/Timer.js +0 -61
  289. package/src/utils/ValidateChildren.js +0 -50
  290. package/src/utils/ValidateSlot.js +0 -57
@@ -1,57 +0,0 @@
1
- /**
2
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
3
- *
4
- * @author John Molakvoæ <skjnldsv@protonmail.com>
5
- *
6
- * @license GNU AGPL version 3 or any later version
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU Affero General Public License as
10
- * published by the Free Software Foundation, either version 3 of the
11
- * License, or (at your option) any later version.
12
- *
13
- * This program is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- * GNU Affero General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU Affero General Public License
19
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
20
- *
21
- */
22
-
23
- // https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556
24
- // recommended is 48px
25
- // 44px is what we choose and have very good visual-to-usability ratio
26
- $clickable-area: 44px;
27
-
28
- // background icon size
29
- // also used for the scss icon font
30
- $icon-size: 16px;
31
-
32
- // icon padding for a $clickable-area width and a $icon-size icon
33
- // ( 44px - 16px ) / 2
34
- $icon-margin: ($clickable-area - $icon-size) / 2;
35
-
36
- // transparency background for icons
37
- $icon-focus-bg: rgba(127, 127, 127, .25);
38
-
39
- // popovermenu arrow width from the triangle center
40
- $arrow-width: 9px;
41
-
42
- // opacities
43
- $opacity_disabled: .5;
44
- $opacity_normal: .7;
45
- $opacity_full: 1;
46
-
47
- // menu round background hover feedback
48
- // good looking on dark AND white bg
49
- $action-background-hover: rgba(127, 127, 127, .25);
50
-
51
- // various structure data used in the
52
- // `AppNavigation` component
53
- $header-height: 50px;
54
- $navigation-width: 300px;
55
-
56
- // mobile breakpoint
57
- $breakpoint-mobile: 1024px;
@@ -1,160 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
3
- -
4
- - @author John Molakvoæ <skjnldsv@protonmail.com>
5
- - @author Marco Ambrosini <marcoambrosini@pm.me>
6
- -
7
- - @license GNU AGPL version 3 or any later version
8
- -
9
- - This program is free software: you can redistribute it and/or modify
10
- - it under the terms of the GNU Affero General Public License as
11
- - published by the Free Software Foundation, either version 3 of the
12
- - License, or (at your option) any later version.
13
- -
14
- - This program is distributed in the hope that it will be useful,
15
- - but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- - GNU Affero General Public License for more details.
18
- -
19
- - You should have received a copy of the GNU Affero General Public License
20
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
21
- -
22
- -->
23
-
24
- <docs>
25
- This component is made to be used inside of the [Actions](#Actions) component slots.
26
-
27
- ```vue
28
- <Actions>
29
- <ActionButton icon="icon-delete" @click="alert('Delete')">Delete</ActionButton>
30
- <ActionButton icon="icon-delete" :close-after-click="true" @click="alert('Delete and close menu')">Delete and close</ActionButton>
31
- <ActionButton icon="icon-delete" :disabled="true" @click="alert('Disabled')">Disabled button</ActionButton>
32
- </Actions>
33
- ```
34
-
35
- If you're using a long text you can specify a title
36
-
37
- ```vue
38
- <Actions>
39
- <ActionButton icon="icon-add" @click="alert('Add')">Add new</ActionButton>
40
- <ActionButton icon="icon-delete" title="Long button" @click="alert('Delete')">This button is associated with a very long text.\nAnd with new lines too.</ActionButton>
41
- </Actions>
42
- ```
43
-
44
- You can also use a custom icon, for example from the vue-material-design-icons library:
45
-
46
- ```vue
47
- <template>
48
- <Actions>
49
- <ActionButton>
50
- <HandLeft
51
- slot="icon"
52
- :size="16"
53
- decorative
54
- title="" />
55
- Raise left hand
56
- </ActionButton>
57
- <ActionButton>
58
- <HandRight
59
- slot="icon"
60
- :size="16"
61
- decorative
62
- title="" />
63
- Raise right hand
64
- </ActionButton>
65
- </Actions>
66
- </template>
67
- <script>
68
- import HandLeft from 'vue-material-design-icons/HandLeft'
69
- import HandRight from 'vue-material-design-icons/HandRight'
70
-
71
- export default {
72
- components: {
73
- HandLeft,
74
- HandRight,
75
- },
76
- }
77
- </script>
78
- ```
79
- </docs>
80
-
81
- <template>
82
- <li class="action" :class="{ 'action--disabled': disabled }">
83
- <button
84
- class="action-button"
85
- :class="{ focusable: isFocusable }"
86
- :aria-label="ariaLabel"
87
- type="button"
88
- @click="onClick">
89
- <span :class="[isIconUrl ? 'action-button__icon--url' : icon]"
90
- :style="{ backgroundImage: isIconUrl ? `url(${icon})` : null }"
91
- class="action-button__icon">
92
- <!-- @slot Manually provide icon -->
93
- <slot name="icon" />
94
- </span>
95
-
96
- <!-- long text with title -->
97
- <p v-if="title">
98
- <strong class="action-button__title">
99
- {{ title }}
100
- </strong>
101
- <br>
102
- <!-- white space is shown on longtext, so we can't
103
- put {{ text }} on a new line for code readability -->
104
- <span class="action-button__longtext" v-text="text" />
105
- </p>
106
-
107
- <!-- long text only -->
108
- <!-- white space is shown on longtext, so we can't
109
- put {{ text }} on a new line for code readability -->
110
- <p v-else-if="isLongText"
111
- class="action-button__longtext"
112
- v-text="text" />
113
-
114
- <!-- default text display -->
115
- <span v-else class="action-button__text">{{ text }}</span>
116
-
117
- <!-- fake slot to gather inner text -->
118
- <slot v-if="false" />
119
- </button>
120
- </li>
121
- </template>
122
-
123
- <script>
124
- import ActionTextMixin from '../../mixins/actionText'
125
-
126
- /**
127
- * Button component to be used in Actions
128
- */
129
- export default {
130
- name: 'ActionButton',
131
-
132
- mixins: [ActionTextMixin],
133
-
134
- props: {
135
- /**
136
- * disabled state of the action button
137
- */
138
- disabled: {
139
- type: Boolean,
140
- default: false,
141
- },
142
- },
143
- computed: {
144
- /**
145
- * determines if the action is focusable
146
- * @returns {boolean} is the action focusable ?
147
- */
148
- isFocusable() {
149
- return !this.disabled
150
- },
151
- },
152
- }
153
- </script>
154
-
155
- <style lang="scss" scoped>
156
- @import '../../assets/action';
157
- @include action-active;
158
- @include action--disabled;
159
- @include action-item('button');
160
- </style>
@@ -1,24 +0,0 @@
1
- /**
2
- * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
3
- *
4
- * @author John Molakvoæ <skjnldsv@protonmail.com>
5
- *
6
- * @license GNU AGPL version 3 or any later version
7
- *
8
- * This program is free software: you can redistribute it and/or modify
9
- * it under the terms of the GNU Affero General Public License as
10
- * published by the Free Software Foundation, either version 3 of the
11
- * License, or (at your option) any later version.
12
- *
13
- * This program is distributed in the hope that it will be useful,
14
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- * GNU Affero General Public License for more details.
17
- *
18
- * You should have received a copy of the GNU Affero General Public License
19
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
20
- *
21
- */
22
- import ActionButton from './ActionButton'
23
-
24
- export default ActionButton
@@ -1,220 +0,0 @@
1
- <!--
2
- - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>
3
- -
4
- - @author John Molakvoæ <skjnldsv@protonmail.com>
5
- - @author Marco Ambrosini <marcoambrosini@pm.me>
6
- -
7
- - @license GNU AGPL version 3 or any later version
8
- -
9
- - This program is free software: you can redistribute it and/or modify
10
- - it under the terms of the GNU Affero General Public License as
11
- - published by the Free Software Foundation, either version 3 of the
12
- - License, or (at your option) any later version.
13
- -
14
- - This program is distributed in the hope that it will be useful,
15
- - but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- - GNU Affero General Public License for more details.
18
- -
19
- - You should have received a copy of the GNU Affero General Public License
20
- - along with this program. If not, see <http://www.gnu.org/licenses/>.
21
- -
22
- -->
23
-
24
- <docs>
25
- This component is made to be used inside of the [Actions](#Actions) component slots.
26
-
27
- ```vue
28
- <Actions>
29
- <ActionCheckbox @change="alert('(un)checked !')">First choice</ActionCheckbox>
30
- <ActionCheckbox value="second" @change="alert('(un)checked !')">Second choice</ActionCheckbox>
31
- <ActionCheckbox :checked="true" @change="alert('(un)checked !')">Third choice (checked)</ActionCheckbox>
32
- <ActionCheckbox :disabled="true" @change="alert('(un)checked !')">Second choice (disabled)</ActionCheckbox>
33
- </Actions>
34
- ```
35
- </docs>
36
-
37
- <template>
38
- <li class="action" :class="{ 'action--disabled': disabled }">
39
- <span class="action-checkbox">
40
- <input :id="id"
41
- ref="checkbox"
42
- :disabled="disabled"
43
- :checked="checked"
44
- :value="value"
45
- :class="{ focusable: isFocusable }"
46
- type="checkbox"
47
- class="checkbox action-checkbox__checkbox"
48
- @keydown.enter.exact.prevent="checkInput"
49
- @change="onChange">
50
- <label ref="label" :for="id" class="action-checkbox__label">{{ text }}</label>
51
-
52
- <!-- fake slot to gather inner text -->
53
- <slot v-if="false" />
54
- </span>
55
- </li>
56
- </template>
57
-
58
- <script>
59
- import ActionGlobalMixin from '../../mixins/actionGlobal'
60
- import GenRandomId from '../../utils/GenRandomId'
61
-
62
- export default {
63
- name: 'ActionCheckbox',
64
-
65
- mixins: [ActionGlobalMixin],
66
-
67
- props: {
68
- /**
69
- * id attribute of the checkbox element
70
- */
71
- id: {
72
- type: String,
73
- default: () => 'action-' + GenRandomId(),
74
- validator: id => id.trim() !== '',
75
- },
76
-
77
- /**
78
- * checked state of the the checkbox element
79
- */
80
- checked: {
81
- type: Boolean,
82
- default: false,
83
- },
84
-
85
- /**
86
- * value of the checkbox input
87
- */
88
- value: {
89
- type: [String, Number],
90
- default: '',
91
- },
92
-
93
- /**
94
- * disabled state of the checkbox element
95
- */
96
- disabled: {
97
- type: Boolean,
98
- default: false,
99
- },
100
- },
101
-
102
- computed: {
103
- /**
104
- * determines if the action is focusable
105
- * @returns {boolean} is the action focusable ?
106
- */
107
- isFocusable() {
108
- return !this.disabled
109
- },
110
- },
111
-
112
- methods: {
113
- checkInput(event) {
114
- // by clicking we also trigger the change event
115
- this.$refs.label.click()
116
- },
117
- onChange(event) {
118
- /**
119
- * Emitted when the checkbox state is changed
120
- * @type {boolean}
121
- */
122
- this.$emit('update:checked', this.$refs.checkbox.checked)
123
-
124
- /**
125
- * Emitted when the checkbox state is changed
126
- * @type {Event}
127
- */
128
- this.$emit('change', event)
129
-
130
- if (this.$refs.checkbox.checked) {
131
- /**
132
- * Emitted when the checkbox is checked
133
- * @type {Event}
134
- */
135
- this.$emit('check')
136
- } else {
137
- /**
138
- * Emitted when the checkbox is unchecked
139
- * @type {Event}
140
- */
141
- this.$emit('uncheck')
142
- }
143
- },
144
- },
145
- }
146
- </script>
147
-
148
- <style lang="scss" scoped>
149
- @import '../../assets/action';
150
- @include action-active;
151
- @include action--disabled;
152
-
153
- .action-checkbox {
154
- display: flex;
155
- align-items: flex-start;
156
-
157
- width: 100%;
158
- height: auto;
159
- margin: 0;
160
- padding: 0;
161
-
162
- cursor: pointer;
163
- white-space: nowrap;
164
-
165
- color: var(--color-main-text);
166
- border: 0;
167
- border-radius: 0; // otherwise Safari will cut the border-radius area
168
- background-color: transparent;
169
- box-shadow: none;
170
-
171
- font-weight: normal;
172
- line-height: $clickable-area;
173
-
174
- /* checkbox/radio fixes */
175
- &__checkbox {
176
- position: absolute;
177
- top: auto;
178
- left: -10000px;
179
-
180
- overflow: hidden;
181
-
182
- width: 1px;
183
- height: 1px;
184
- &:focus + .action-checkbox__label {
185
- opacity: $opacity_full;
186
- }
187
- }
188
-
189
- &__label {
190
- display: flex;
191
- align-items: center; // align checkbox to text
192
-
193
- width: 100%;
194
- padding: 0 !important;
195
- padding-right: $icon-margin !important;
196
-
197
- opacity: $opacity_normal;
198
- // checkbox-width is 12px, border is 2
199
- // (44 - 14 - 2) / 2 = 14
200
- &::before {
201
- margin: 0 14px 0 !important;
202
- }
203
- }
204
-
205
- &--disabled {
206
- &,
207
- .action-checkbox__label {
208
- cursor: pointer;
209
- }
210
- }
211
-
212
- &:not(.action-checkbox--disabled):hover,
213
- &:not(.action-checkbox--disabled):focus {
214
- .action-checkbox__label {
215
- opacity: $opacity_full;
216
- }
217
- }
218
- }
219
-
220
- </style>