@brightspace-ui/core 2.36.1 → 2.37.2

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 (35) hide show
  1. package/components/empty-state/README.md +68 -28
  2. package/components/empty-state/demo/empty-state.html +34 -12
  3. package/components/empty-state/empty-state-action-button.js +100 -0
  4. package/components/empty-state/empty-state-action-link.js +73 -0
  5. package/components/empty-state/{empty-state-illustrated-mixin.js → empty-state-illustrated.js} +43 -16
  6. package/components/empty-state/{empty-state-simple-button.js → empty-state-simple.js} +7 -28
  7. package/components/empty-state/empty-state-styles.js +19 -18
  8. package/components/menu/menu-item-mixin.js +1 -3
  9. package/components/menu/menu-item-styles.js +23 -4
  10. package/components/menu/menu.js +1 -2
  11. package/components/paging/pager-load-more.js +3 -2
  12. package/components/typography/styles.js +60 -33
  13. package/custom-elements.json +56 -132
  14. package/lang/ar.js +1 -1
  15. package/lang/cy.js +1 -1
  16. package/lang/da.js +1 -1
  17. package/lang/de.js +1 -1
  18. package/lang/en.js +1 -1
  19. package/lang/es-es.js +1 -1
  20. package/lang/es.js +1 -1
  21. package/lang/fr-fr.js +1 -1
  22. package/lang/fr.js +1 -1
  23. package/lang/hi.js +1 -1
  24. package/lang/ja.js +1 -1
  25. package/lang/ko.js +1 -1
  26. package/lang/nl.js +1 -1
  27. package/lang/pt.js +1 -1
  28. package/lang/sv.js +1 -1
  29. package/lang/tr.js +1 -1
  30. package/lang/zh-cn.js +1 -1
  31. package/lang/zh-tw.js +1 -1
  32. package/package.json +1 -1
  33. package/components/empty-state/empty-state-illustrated-button.js +0 -71
  34. package/components/empty-state/empty-state-illustrated-link.js +0 -57
  35. package/components/empty-state/empty-state-simple-link.js +0 -74
@@ -14,6 +14,15 @@ export const emptyStateStyles = css`
14
14
  display: none;
15
15
  }
16
16
 
17
+ .action-slot::slotted(*) {
18
+ display: none;
19
+ }
20
+
21
+ .action-slot::slotted(d2l-empty-state-action-button:first-child),
22
+ .action-slot::slotted(d2l-empty-state-action-link:first-child) {
23
+ display: inline-block;
24
+ }
25
+
17
26
  `;
18
27
 
19
28
  export const emptyStateSimpleStyles = css`
@@ -28,10 +37,6 @@ export const emptyStateSimpleStyles = css`
28
37
  padding-right: 0.5rem;
29
38
  }
30
39
 
31
- .d2l-empty-state-action {
32
- vertical-align: top;
33
- }
34
-
35
40
  `;
36
41
 
37
42
  export const emptyStateIllustratedStyles = css`
@@ -40,12 +45,16 @@ export const emptyStateIllustratedStyles = css`
40
45
  text-align: center;
41
46
  }
42
47
 
43
- .d2l-empty-state-action {
44
- margin-top: 0.5rem;
48
+ .illustration-slot::slotted(*) {
49
+ display: none;
45
50
  }
46
51
 
47
- .d2l-empty-state-description {
48
- margin: 0 auto 0.3rem;
52
+ .illustration-slot::slotted(svg:first-of-type) {
53
+ display: inline-block;
54
+ }
55
+
56
+ svg {
57
+ height: 100%;
49
58
  max-width: 500px;
50
59
  width: 100%;
51
60
  }
@@ -67,16 +76,8 @@ export const emptyStateIllustratedStyles = css`
67
76
  margin-top: 0.5rem;
68
77
  }
69
78
 
70
- ::slotted(*) {
71
- display: none;
72
- }
73
-
74
- ::slotted(svg:first-child) {
75
- display: inline-block;
76
- }
77
-
78
- svg {
79
- height: 100%;
79
+ .d2l-empty-state-description {
80
+ margin: 0 auto 0.8rem;
80
81
  max-width: 500px;
81
82
  width: 100%;
82
83
  }
@@ -1,6 +1,4 @@
1
- import { FocusVisiblePolyfillMixin } from '../../mixins/focus-visible-polyfill-mixin.js';
2
-
3
- export const MenuItemMixin = superclass => class extends FocusVisiblePolyfillMixin(superclass) {
1
+ export const MenuItemMixin = superclass => class extends superclass {
4
2
 
5
3
  static get properties() {
6
4
  return {
@@ -16,8 +16,6 @@ export const menuItemStyles = css`
16
16
  width: 100%;
17
17
  }
18
18
 
19
- :host(.focus-visible),
20
- :host([first].focus-visible),
21
19
  :host(:hover),
22
20
  :host([first]:hover) {
23
21
  background-color: var(--d2l-menu-background-color-hover);
@@ -27,7 +25,23 @@ export const menuItemStyles = css`
27
25
  z-index: 2;
28
26
  }
29
27
 
30
- :host([disabled]), :host([disabled]:hover), :host([disabled].focus-visible) {
28
+ /** separated because Safari <15.4 is having trouble parsing these */
29
+ :host(:focus-visible),
30
+ :host([first]:focus-visible) {
31
+ background-color: var(--d2l-menu-background-color-hover);
32
+ border-bottom: 1px solid var(--d2l-menu-border-color-hover);
33
+ border-top: 1px solid var(--d2l-menu-border-color-hover);
34
+ color: var(--d2l-menu-foreground-color-hover);
35
+ z-index: 2;
36
+ }
37
+
38
+ :host([disabled]), :host([disabled]:hover) {
39
+ cursor: default;
40
+ opacity: 0.75;
41
+ }
42
+
43
+ /** separated because Safari <15.4 is having trouble parsing these */
44
+ :host([disabled]:focus-visible) {
31
45
  cursor: default;
32
46
  opacity: 0.75;
33
47
  }
@@ -40,7 +54,12 @@ export const menuItemStyles = css`
40
54
  border-top-color: transparent;
41
55
  }
42
56
 
43
- :host([last]:hover), :host([last].focus-visible) {
57
+ :host([last]:hover) {
58
+ border-bottom-color: var(--d2l-menu-border-color-hover);
59
+ }
60
+
61
+ /** separated because Safari <15.4 is having trouble parsing these */
62
+ :host([last]:focus-visible) {
44
63
  border-bottom-color: var(--d2l-menu-border-color-hover);
45
64
  }
46
65
 
@@ -2,7 +2,6 @@ import '../colors/colors.js';
2
2
  import '../icons/icon.js';
3
3
  import './menu-item-return.js';
4
4
  import { css, html, LitElement } from 'lit';
5
- import { FocusVisiblePolyfillMixin } from '../../mixins/focus-visible-polyfill-mixin.js';
6
5
  import { HierarchicalViewMixin } from '../hierarchical-view/hierarchical-view-mixin.js';
7
6
  import { ThemeMixin } from '../../mixins/theme-mixin.js';
8
7
 
@@ -21,7 +20,7 @@ const keyCodes = {
21
20
  * @slot - Menu items
22
21
  * @fires d2l-menu-resize - Dispatched when size of menu changes (e.g., when nested menu of a different size is opened)
23
22
  */
24
- class Menu extends FocusVisiblePolyfillMixin(ThemeMixin(HierarchicalViewMixin(LitElement))) {
23
+ class Menu extends ThemeMixin(HierarchicalViewMixin(LitElement)) {
25
24
 
26
25
  static get properties() {
27
26
  return {
@@ -5,6 +5,7 @@ import { buttonStyles } from '../button/button-styles.js';
5
5
  import { findComposedAncestor } from '../../helpers/dom.js';
6
6
  import { FocusMixin } from '../../mixins/focus-mixin.js';
7
7
  import { FocusVisiblePolyfillMixin } from '../../mixins/focus-visible-polyfill-mixin.js';
8
+ import { formatNumber } from '@brightspace-ui/intl/lib/number.js';
8
9
  import { getFirstFocusableDescendant } from '../../helpers/focus.js';
9
10
  import { getSeparator } from '@brightspace-ui/intl/lib/list.js';
10
11
  import { labelStyles } from '../typography/styles.js';
@@ -102,11 +103,11 @@ class LoadMore extends FocusMixin(FocusVisiblePolyfillMixin(LocalizeCoreElement(
102
103
  <span class="d2l-offscreen" role="alert">${this.localize('components.pager-load-more.status-loading')}</span>
103
104
  <d2l-loading-spinner size="24"></d2l-loading-spinner>
104
105
  ` : html`
105
- <span class="action">${this.localize('components.pager-load-more.action', { count: this.pageSize })}</span>
106
+ <span class="action">${this.localize('components.pager-load-more.action', { count: formatNumber(this.pageSize) })}</span>
106
107
  ${this.itemCount > -1 ? html`
107
108
  <span class="d2l-offscreen">${getSeparator({ nonBreaking: true })}</span>
108
109
  <span class="separator"></span>
109
- <span class="info">${this.localize('components.pager-load-more.info', { showingCount: this.itemShowingCount, totalCount: this.itemCount })}</span>
110
+ <span class="info">${this.localize('components.pager-load-more.info', { showingCount: formatNumber(this.itemShowingCount), totalCount: this.itemCount, totalCountFormatted: formatNumber(this.itemCount) })}</span>
110
111
  ` : nothing}
111
112
  `}
112
113
  </button>
@@ -1,5 +1,12 @@
1
1
  import '../colors/colors.js';
2
- import { css } from 'lit';
2
+ import { css, unsafeCSS } from 'lit';
3
+
4
+ export const _isValidCssSelector = (selector) => {
5
+ const re = /[#.]?([a-zA-Z0-9-_]+)(\[[a-zA-Z0-9-_]+\])?([a-zA-Z0-9-_]+)?/g;
6
+ const match = selector.match(re);
7
+
8
+ return !!match && match.length === 1 && match[0].length === selector.length;
9
+ };
3
10
 
4
11
  export const bodyStandardStyles = css`
5
12
  .d2l-body-standard {
@@ -41,26 +48,36 @@ export const bodyStandardStyles = css`
41
48
  }
42
49
  `;
43
50
 
44
- export const bodyCompactStyles = css`
45
- .d2l-body-compact {
46
- font-size: 0.8rem;
47
- font-weight: 400;
48
- line-height: 1.2rem;
49
- }
50
- :host([skeleton]) .d2l-body-compact.d2l-skeletize::before {
51
- bottom: 0.3rem;
52
- top: 0.3rem;
53
- }
54
- :host([skeleton]) .d2l-body-compact.d2l-skeletize-paragraph-2 {
55
- max-height: 2.4rem;
56
- }
57
- :host([skeleton]) .d2l-body-compact.d2l-skeletize-paragraph-3 {
58
- max-height: 3.6rem;
59
- }
60
- :host([skeleton]) .d2l-body-compact.d2l-skeletize-paragraph-5 {
61
- max-height: 6rem;
62
- }
63
- `;
51
+ /**
52
+ * A private helper method that should not be used by general consumers
53
+ */
54
+ export const _generateBodyCompactStyles = (selector) => {
55
+ if (!_isValidCssSelector(selector)) return;
56
+
57
+ selector = unsafeCSS(selector);
58
+ return css`
59
+ ${selector} {
60
+ font-size: 0.8rem;
61
+ font-weight: 400;
62
+ line-height: 1.2rem;
63
+ }
64
+ :host([skeleton]) ${selector}.d2l-skeletize::before {
65
+ bottom: 0.3rem;
66
+ top: 0.3rem;
67
+ }
68
+ :host([skeleton]) ${selector}.d2l-skeletize-paragraph-2 {
69
+ max-height: 2.4rem;
70
+ }
71
+ :host([skeleton]) ${selector}.d2l-skeletize-paragraph-3 {
72
+ max-height: 3.6rem;
73
+ }
74
+ :host([skeleton]) ${selector}.d2l-skeletize-paragraph-5 {
75
+ max-height: 6rem;
76
+ }
77
+ `;
78
+ };
79
+
80
+ export const bodyCompactStyles = _generateBodyCompactStyles('.d2l-body-compact');
64
81
 
65
82
  export const bodySmallStyles = css`
66
83
  .d2l-body-small {
@@ -212,18 +229,28 @@ export const heading4Styles = css`
212
229
  }
213
230
  `;
214
231
 
215
- export const labelStyles = css`
216
- .d2l-label-text {
217
- font-size: 0.7rem;
218
- font-weight: 700;
219
- letter-spacing: 0.2px;
220
- line-height: 1rem;
221
- }
222
- :host([skeleton]) .d2l-label-text.d2l-skeletize::before {
223
- bottom: 0.25rem;
224
- top: 0.15rem;
225
- }
226
- `;
232
+ /**
233
+ * A private helper method that should not be used by general consumers
234
+ */
235
+ export const _generateLabelStyles = (selector) => {
236
+ if (!_isValidCssSelector(selector)) return;
237
+
238
+ selector = unsafeCSS(selector);
239
+ return css`
240
+ ${selector} {
241
+ font-size: 0.7rem;
242
+ font-weight: 700;
243
+ letter-spacing: 0.2px;
244
+ line-height: 1rem;
245
+ }
246
+ :host([skeleton]) ${selector}.d2l-skeletize::before {
247
+ bottom: 0.25rem;
248
+ top: 0.15rem;
249
+ }
250
+ `;
251
+ };
252
+
253
+ export const labelStyles = _generateLabelStyles('.d2l-label-text');
227
254
 
228
255
  export const blockquoteStyles = css`
229
256
  .d2l-blockquote {
@@ -2975,96 +2975,81 @@
2975
2975
  "path": "./components/dropdown/test/dropdown-component.js"
2976
2976
  },
2977
2977
  {
2978
- "name": "d2l-empty-state-illustrated-button",
2979
- "path": "./components/empty-state/empty-state-illustrated-button.js",
2980
- "description": "The `d2l-empty-state-illustrated-button` component is an empty state component that displays an illustration and action button. The illustration property can be set to use one of the preset illustrations or a custom SVG illustration can be added in the default slot.",
2978
+ "name": "d2l-empty-state-action-button",
2979
+ "path": "./components/empty-state/empty-state-action-button.js",
2980
+ "description": "`d2l-empty-state-action-button` is an empty state action component that can be placed inside of the default slot of `empty-state-simple` or `empty-state-illustrated` to add a button action to the component.",
2981
2981
  "attributes": [
2982
2982
  {
2983
- "name": "primary",
2984
- "description": "This will change the action button to use a primary button instead of the default subtle button",
2985
- "type": "boolean"
2986
- },
2987
- {
2988
- "name": "action-text",
2989
- "description": "The action text to be used in the subtle button",
2990
- "type": "string"
2991
- },
2992
- {
2993
- "name": "description",
2994
- "description": "REQUIRED: A description giving details about the empty state",
2995
- "type": "string"
2996
- },
2997
- {
2998
- "name": "illustration-name",
2999
- "description": "The name of the preset image you would like to display in the component",
2983
+ "name": "text",
2984
+ "description": "REQUIRED: The action text to be used in the button",
3000
2985
  "type": "string"
3001
2986
  },
3002
2987
  {
3003
- "name": "title-text",
3004
- "description": "REQUIRED: A title for the empty state",
3005
- "type": "string"
2988
+ "name": "primary",
2989
+ "description": "This will change the action button to use a primary button instead of the default subtle button. The primary attribute is only valid when `d2l-empty-state-action-button` is placed within `d2l-empty-state-illustrated` components",
2990
+ "type": "boolean"
3006
2991
  }
3007
2992
  ],
3008
2993
  "properties": [
3009
2994
  {
3010
- "name": "primary",
3011
- "attribute": "primary",
3012
- "description": "This will change the action button to use a primary button instead of the default subtle button",
3013
- "type": "boolean"
3014
- },
3015
- {
3016
- "name": "actionText",
3017
- "attribute": "action-text",
3018
- "description": "The action text to be used in the subtle button",
3019
- "type": "string"
3020
- },
3021
- {
3022
- "name": "description",
3023
- "attribute": "description",
3024
- "description": "REQUIRED: A description giving details about the empty state",
3025
- "type": "string"
3026
- },
3027
- {
3028
- "name": "illustrationName",
3029
- "attribute": "illustration-name",
3030
- "description": "The name of the preset image you would like to display in the component",
2995
+ "name": "text",
2996
+ "attribute": "text",
2997
+ "description": "REQUIRED: The action text to be used in the button",
3031
2998
  "type": "string"
3032
2999
  },
3033
3000
  {
3034
- "name": "titleText",
3035
- "attribute": "title-text",
3036
- "description": "REQUIRED: A title for the empty state",
3037
- "type": "string"
3001
+ "name": "primary",
3002
+ "attribute": "primary",
3003
+ "description": "This will change the action button to use a primary button instead of the default subtle button. The primary attribute is only valid when `d2l-empty-state-action-button` is placed within `d2l-empty-state-illustrated` components",
3004
+ "type": "boolean"
3038
3005
  }
3039
3006
  ],
3040
3007
  "events": [
3041
3008
  {
3042
3009
  "name": "d2l-empty-state-action",
3043
3010
  "description": "Dispatched when the action button is clicked"
3044
- }
3045
- ],
3046
- "slots": [
3011
+ },
3047
3012
  {
3048
- "name": "",
3049
- "description": "Custom SVG content if `illustration-name` property is not set"
3013
+ "name": "d2l-empty-state-illustrated-check"
3050
3014
  }
3051
3015
  ]
3052
3016
  },
3053
3017
  {
3054
- "name": "d2l-empty-state-illustrated-link",
3055
- "path": "./components/empty-state/empty-state-illustrated-link.js",
3056
- "description": "The `d2l-empty-state-illustrated-link` component is an empty state component that displays an illustration and action link. The illustration property can be set to use one of the preset illustrations or a custom SVG illustration can be added in the default slot.",
3018
+ "name": "d2l-empty-state-action-link",
3019
+ "path": "./components/empty-state/empty-state-action-link.js",
3020
+ "description": "`d2l-empty-state-action-link` is an empty state action component that can be placed inside of the default slot of `empty-state-simple` or `empty-state-illustrated` to add a link action to the component.",
3057
3021
  "attributes": [
3058
3022
  {
3059
- "name": "action-href",
3060
- "description": "The action URL or URL fragment of the link",
3023
+ "name": "text",
3024
+ "description": "REQUIRED: The action text to be used in the subtle button",
3061
3025
  "type": "string"
3062
3026
  },
3063
3027
  {
3064
- "name": "action-text",
3065
- "description": "The action text to be used in the subtle button",
3028
+ "name": "href",
3029
+ "description": "REQUIRED: The action URL or URL fragment of the link",
3030
+ "type": "string"
3031
+ }
3032
+ ],
3033
+ "properties": [
3034
+ {
3035
+ "name": "text",
3036
+ "attribute": "text",
3037
+ "description": "REQUIRED: The action text to be used in the subtle button",
3066
3038
  "type": "string"
3067
3039
  },
3040
+ {
3041
+ "name": "href",
3042
+ "attribute": "href",
3043
+ "description": "REQUIRED: The action URL or URL fragment of the link",
3044
+ "type": "string"
3045
+ }
3046
+ ]
3047
+ },
3048
+ {
3049
+ "name": "d2l-empty-state-illustrated",
3050
+ "path": "./components/empty-state/empty-state-illustrated.js",
3051
+ "description": "The `d2l-empty-state-illustrated` component is an empty state component that displays a title and description with an illustration. An empty state action component can be placed inside of the default slot to add an optional action.",
3052
+ "attributes": [
3068
3053
  {
3069
3054
  "name": "description",
3070
3055
  "description": "REQUIRED: A description giving details about the empty state",
@@ -3082,18 +3067,6 @@
3082
3067
  }
3083
3068
  ],
3084
3069
  "properties": [
3085
- {
3086
- "name": "actionHref",
3087
- "attribute": "action-href",
3088
- "description": "The action URL or URL fragment of the link",
3089
- "type": "string"
3090
- },
3091
- {
3092
- "name": "actionText",
3093
- "attribute": "action-text",
3094
- "description": "The action text to be used in the subtle button",
3095
- "type": "string"
3096
- },
3097
3070
  {
3098
3071
  "name": "description",
3099
3072
  "attribute": "description",
@@ -3116,20 +3089,19 @@
3116
3089
  "slots": [
3117
3090
  {
3118
3091
  "name": "",
3119
- "description": "Custom SVG content if `illustration-name` property is not set"
3092
+ "description": "Slot for empty state actions"
3093
+ },
3094
+ {
3095
+ "name": "illustration",
3096
+ "description": "Slot for custom SVG content if `illustration-name` property is not set"
3120
3097
  }
3121
3098
  ]
3122
3099
  },
3123
3100
  {
3124
- "name": "d2l-empty-state-simple-button",
3125
- "path": "./components/empty-state/empty-state-simple-button.js",
3126
- "description": "The `d2l-empty-state-simple-button` component is an empty state component that displays a description and action button.",
3101
+ "name": "d2l-empty-state-simple",
3102
+ "path": "./components/empty-state/empty-state-simple.js",
3103
+ "description": "The `d2l-empty-state-simple` component is an empty state component that displays a description. An empty state action component can be placed inside of the default slot to add an optional action.",
3127
3104
  "attributes": [
3128
- {
3129
- "name": "action-text",
3130
- "description": "The action text to be used in the subtle button",
3131
- "type": "string"
3132
- },
3133
3105
  {
3134
3106
  "name": "description",
3135
3107
  "description": "REQUIRED: A description giving details about the empty state",
@@ -3137,12 +3109,6 @@
3137
3109
  }
3138
3110
  ],
3139
3111
  "properties": [
3140
- {
3141
- "name": "actionText",
3142
- "attribute": "action-text",
3143
- "description": "The action text to be used in the subtle button",
3144
- "type": "string"
3145
- },
3146
3112
  {
3147
3113
  "name": "description",
3148
3114
  "attribute": "description",
@@ -3150,52 +3116,10 @@
3150
3116
  "type": "string"
3151
3117
  }
3152
3118
  ],
3153
- "events": [
3154
- {
3155
- "name": "d2l-empty-state-action",
3156
- "description": "Dispatched when the action button is clicked"
3157
- }
3158
- ]
3159
- },
3160
- {
3161
- "name": "d2l-empty-state-simple-link",
3162
- "path": "./components/empty-state/empty-state-simple-link.js",
3163
- "description": "The `d2l-empty-state-simple-link` component is an empty state component that displays a description and action link.",
3164
- "attributes": [
3165
- {
3166
- "name": "action-href",
3167
- "description": "The action URL or URL fragment of the link",
3168
- "type": "string"
3169
- },
3170
- {
3171
- "name": "action-text",
3172
- "description": "The action text to be used in the link",
3173
- "type": "string"
3174
- },
3175
- {
3176
- "name": "description",
3177
- "description": "REQUIRED: A description giving details about the empty state",
3178
- "type": "string"
3179
- }
3180
- ],
3181
- "properties": [
3182
- {
3183
- "name": "actionHref",
3184
- "attribute": "action-href",
3185
- "description": "The action URL or URL fragment of the link",
3186
- "type": "string"
3187
- },
3188
- {
3189
- "name": "actionText",
3190
- "attribute": "action-text",
3191
- "description": "The action text to be used in the link",
3192
- "type": "string"
3193
- },
3119
+ "slots": [
3194
3120
  {
3195
- "name": "description",
3196
- "attribute": "description",
3197
- "description": "REQUIRED: A description giving details about the empty state",
3198
- "type": "string"
3121
+ "name": "",
3122
+ "description": "Slot for empty state actions"
3199
3123
  }
3200
3124
  ]
3201
3125
  },
package/lang/ar.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "المزيد",
93
93
  "components.overflow-group.moreActions": "مزيد من الإجراءات",
94
94
  "components.pager-load-more.action": "تحميل {count} إضافي",
95
- "components.pager-load-more.info": "{showingCount} من {totalCount} من المواد",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "تحميل المزيد من المواد",
97
97
  "components.selection.action-hint": "حدد مادة لتنفيذ هذا الإجراء.",
98
98
  "components.selection.select-all": "تحديد الكل",
package/lang/cy.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "mwy",
93
93
  "components.overflow-group.moreActions": "Rhagor o Gamau Gweithredu",
94
94
  "components.pager-load-more.action": "Lwytho {count} Arall",
95
- "components.pager-load-more.info": "{showingCount} o {totalCount} eitem",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Llwytho rhagor o eitemau",
97
97
  "components.selection.action-hint": "Dewiswch eitem i gyflawni'r weithred hon.",
98
98
  "components.selection.select-all": "Dewis y Cyfan",
package/lang/da.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "flere",
93
93
  "components.overflow-group.moreActions": "Flere handlinger",
94
94
  "components.pager-load-more.action": "Indlæs {count} mere",
95
- "components.pager-load-more.info": "{showingCount} af {totalCount} elementer",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Indlæser flere elementer",
97
97
  "components.selection.action-hint": "Vælg et element for at udføre denne handling.",
98
98
  "components.selection.select-all": "Vælg alle",
package/lang/de.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "mehr",
93
93
  "components.overflow-group.moreActions": "Weitere Aktionen",
94
94
  "components.pager-load-more.action": "{count} weitere laden",
95
- "components.pager-load-more.info": "{showingCount} von {totalCount} Elementen",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Weitere Elemente werden geladen",
97
97
  "components.selection.action-hint": "Wählen Sie ein Element aus, um diese Aktion auszuführen.",
98
98
  "components.selection.select-all": "Alle auswählen",
package/lang/en.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "more",
93
93
  "components.overflow-group.moreActions": "More Actions",
94
94
  "components.pager-load-more.action": "Load {count} More",
95
- "components.pager-load-more.info": "{showingCount} of {totalCount} items",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Loading more items",
97
97
  "components.selection.action-hint": "Select an item to perform this action.",
98
98
  "components.selection.select-all": "Select All",
package/lang/es-es.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "más",
93
93
  "components.overflow-group.moreActions": "Más acciones",
94
94
  "components.pager-load-more.action": "Cargar {count} más",
95
- "components.pager-load-more.info": "{showingCount} de {totalCount} elementos",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Cargando más elementos",
97
97
  "components.selection.action-hint": "Seleccione un elemento para realizar esta acción.",
98
98
  "components.selection.select-all": "Seleccionar todo",
package/lang/es.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "más",
93
93
  "components.overflow-group.moreActions": "Más acciones",
94
94
  "components.pager-load-more.action": "Cargar {count} más",
95
- "components.pager-load-more.info": "{showingCount} de {totalCount} elementos",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Cargando más elementos",
97
97
  "components.selection.action-hint": "Seleccione un elemento para realizar esta acción.",
98
98
  "components.selection.select-all": "Seleccionar todo",
package/lang/fr-fr.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "plus",
93
93
  "components.overflow-group.moreActions": "Plus d'actions",
94
94
  "components.pager-load-more.action": "Charger {count} supplémentaire(s)",
95
- "components.pager-load-more.info": "{showingCount} élément(s) sur {totalCount}",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Charger plus d’éléments",
97
97
  "components.selection.action-hint": "Sélectionnez un élément pour exécuter cette action.",
98
98
  "components.selection.select-all": "Tout sélectionner",
package/lang/fr.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "plus",
93
93
  "components.overflow-group.moreActions": "Plus d'actions",
94
94
  "components.pager-load-more.action": "Charger {count} de plus",
95
- "components.pager-load-more.info": "{showingCount} de {totalCount} éléments",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "Chargement d'autres d'éléments",
97
97
  "components.selection.action-hint": "Sélectionner un élément pour exécuter cette action.",
98
98
  "components.selection.select-all": "Tout sélectionner",
package/lang/hi.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "अधिक",
93
93
  "components.overflow-group.moreActions": "अधिक क्रियाएँ",
94
94
  "components.pager-load-more.action": "{count} और लोड करें",
95
- "components.pager-load-more.info": "{totalCount} में से {showingCount} आइटम",
95
+ "components.pager-load-more.info": "{totalCount, plural, one {{showingCount} of {totalCountFormatted} item} other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "और आइटम लोड करना",
97
97
  "components.selection.action-hint": "यह कार्रवाई निष्पादित करने के लिए कोई आइटम का चयन करें।",
98
98
  "components.selection.select-all": "सभी का चयन करें",
package/lang/ja.js CHANGED
@@ -92,7 +92,7 @@ export default {
92
92
  "components.more-less.more": "増やす",
93
93
  "components.overflow-group.moreActions": "その他のアクション",
94
94
  "components.pager-load-more.action": "さらに {count} 件を読み込む",
95
- "components.pager-load-more.info": "{showingCount}/{totalCount} 項目",
95
+ "components.pager-load-more.info": "{totalCount, plural, other {{showingCount} of {totalCountFormatted} items}}",
96
96
  "components.pager-load-more.status-loading": "さらに項目を読み込み中",
97
97
  "components.selection.action-hint": "このアクションを実行するための項目を選択します。",
98
98
  "components.selection.select-all": "すべて選択",