@limetech/lime-elements 40.4.1 → 40.5.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 (134) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/component-UyqdiWGc.js +1576 -0
  3. package/dist/cjs/lime-elements.cjs.js +1 -1
  4. package/dist/cjs/limel-action-bar_3.cjs.entry.js +1 -1
  5. package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/{limel-breadcrumbs_8.cjs.entry.js → limel-breadcrumbs_6.cjs.entry.js} +221 -2175
  7. package/dist/cjs/limel-callout.cjs.entry.js +1 -1
  8. package/dist/cjs/limel-chart.cjs.entry.js +1 -1
  9. package/dist/cjs/limel-chip-set.cjs.entry.js +1 -1
  10. package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
  11. package/dist/cjs/limel-code-diff.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
  13. package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
  14. package/dist/cjs/limel-drag-handle.cjs.entry.js +1 -1
  15. package/dist/cjs/limel-email-viewer.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-file-viewer.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-file.cjs.entry.js +1 -1
  18. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
  19. package/dist/cjs/limel-helper-line_3.cjs.entry.js +454 -0
  20. package/dist/cjs/limel-list-item.cjs.entry.js +1 -1
  21. package/dist/cjs/limel-pagination-jump.cjs.entry.js +182 -0
  22. package/dist/cjs/limel-pagination.cjs.entry.js +165 -126
  23. package/dist/cjs/limel-picker.cjs.entry.js +1 -1
  24. package/dist/cjs/limel-popover_2.cjs.entry.js +33 -25
  25. package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
  26. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +1 -1
  27. package/dist/cjs/limel-slider.cjs.entry.js +1 -1
  28. package/dist/cjs/limel-snackbar.cjs.entry.js +1 -1
  29. package/dist/cjs/limel-table.cjs.entry.js +1 -1
  30. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +1 -1
  31. package/dist/cjs/loader.cjs.js +1 -1
  32. package/dist/cjs/pagination.util-B5zzH8vg.js +135 -0
  33. package/dist/cjs/{translations-C5T2-_rH.js → translations-DFFpR6AZ.js} +32 -0
  34. package/dist/collection/collection-manifest.json +1 -0
  35. package/dist/collection/components/menu/menu.js +44 -22
  36. package/dist/collection/components/pagination/jump/pagination-jump.css +11 -0
  37. package/dist/collection/components/pagination/jump/pagination-jump.js +331 -0
  38. package/dist/collection/components/pagination/pagination.css +8 -4
  39. package/dist/collection/components/pagination/pagination.js +167 -10
  40. package/dist/collection/components/pagination/pagination.util.js +25 -8
  41. package/dist/collection/components/popover/popover.js +33 -25
  42. package/dist/collection/translations/da.js +4 -0
  43. package/dist/collection/translations/de.js +4 -0
  44. package/dist/collection/translations/en.js +4 -0
  45. package/dist/collection/translations/fi.js +4 -0
  46. package/dist/collection/translations/fr.js +4 -0
  47. package/dist/collection/translations/nl.js +4 -0
  48. package/dist/collection/translations/no.js +4 -0
  49. package/dist/collection/translations/sv.js +4 -0
  50. package/dist/esm/component-B2Vy44Z3.js +1570 -0
  51. package/dist/esm/lime-elements.js +1 -1
  52. package/dist/esm/limel-action-bar_3.entry.js +1 -1
  53. package/dist/esm/limel-ai-avatar.entry.js +1 -1
  54. package/dist/esm/{limel-breadcrumbs_8.entry.js → limel-breadcrumbs_6.entry.js} +47 -1999
  55. package/dist/esm/limel-callout.entry.js +1 -1
  56. package/dist/esm/limel-chart.entry.js +1 -1
  57. package/dist/esm/limel-chip-set.entry.js +1 -1
  58. package/dist/esm/limel-chip_2.entry.js +1 -1
  59. package/dist/esm/limel-code-diff.entry.js +1 -1
  60. package/dist/esm/limel-code-editor.entry.js +1 -1
  61. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  62. package/dist/esm/limel-drag-handle.entry.js +1 -1
  63. package/dist/esm/limel-email-viewer.entry.js +1 -1
  64. package/dist/esm/limel-file-viewer.entry.js +1 -1
  65. package/dist/esm/limel-file.entry.js +1 -1
  66. package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
  67. package/dist/esm/limel-helper-line_3.entry.js +450 -0
  68. package/dist/esm/limel-list-item.entry.js +1 -1
  69. package/dist/esm/limel-pagination-jump.entry.js +180 -0
  70. package/dist/esm/limel-pagination.entry.js +165 -126
  71. package/dist/esm/limel-picker.entry.js +1 -1
  72. package/dist/esm/limel-popover_2.entry.js +33 -25
  73. package/dist/esm/limel-profile-picture.entry.js +1 -1
  74. package/dist/esm/limel-prosemirror-adapter.entry.js +1 -1
  75. package/dist/esm/limel-slider.entry.js +1 -1
  76. package/dist/esm/limel-snackbar.entry.js +1 -1
  77. package/dist/esm/limel-table.entry.js +1 -1
  78. package/dist/esm/limel-text-editor-link-menu.entry.js +1 -1
  79. package/dist/esm/loader.js +1 -1
  80. package/dist/esm/pagination.util-CSC2LJ7P.js +132 -0
  81. package/dist/esm/{translations-Bwm2y2E4.js → translations-DMtX4tTX.js} +32 -0
  82. package/dist/lime-elements/lime-elements.esm.js +1 -1
  83. package/dist/lime-elements/{p-2bbdac10.entry.js → p-11a96a8c.entry.js} +1 -1
  84. package/dist/lime-elements/p-1dd86ad4.entry.js +1 -0
  85. package/dist/lime-elements/p-1e93473a.entry.js +1 -0
  86. package/dist/lime-elements/{p-a41b5ff3.entry.js → p-2e568c56.entry.js} +1 -1
  87. package/dist/lime-elements/{p-de631fc3.entry.js → p-2f57c3fa.entry.js} +1 -1
  88. package/dist/lime-elements/p-3735111e.entry.js +1 -0
  89. package/dist/lime-elements/{p-c823054d.entry.js → p-452b9b01.entry.js} +1 -1
  90. package/dist/lime-elements/{p-f333f12d.entry.js → p-4855dc9b.entry.js} +1 -1
  91. package/dist/lime-elements/{p-a462aeb7.entry.js → p-4902fb3f.entry.js} +1 -1
  92. package/dist/lime-elements/p-507cc8a1.entry.js +159 -0
  93. package/dist/lime-elements/{p-dadd2e17.entry.js → p-531b6a64.entry.js} +1 -1
  94. package/dist/lime-elements/{p-b194a212.entry.js → p-5698e493.entry.js} +1 -1
  95. package/dist/lime-elements/{p-65a9adfc.entry.js → p-67f02b69.entry.js} +1 -1
  96. package/dist/lime-elements/{p-1162dd39.entry.js → p-867681aa.entry.js} +1 -1
  97. package/dist/lime-elements/{p-f72ee01b.entry.js → p-90df3e1b.entry.js} +1 -1
  98. package/dist/lime-elements/{p-22f85b99.entry.js → p-955292eb.entry.js} +1 -1
  99. package/dist/lime-elements/{p-c2ff132c.entry.js → p-9b631363.entry.js} +1 -1
  100. package/dist/lime-elements/{p-8af3e4a1.entry.js → p-9d3437ac.entry.js} +1 -1
  101. package/dist/lime-elements/p-B8hoCfhT.js +1 -0
  102. package/dist/lime-elements/p-BwJGg-WI.js +89 -0
  103. package/dist/lime-elements/p-CSC2LJ7P.js +1 -0
  104. package/dist/lime-elements/p-a1de9bbe.entry.js +1 -0
  105. package/dist/lime-elements/{p-b5484494.entry.js → p-acba5700.entry.js} +1 -1
  106. package/dist/lime-elements/{p-f6361b03.entry.js → p-b8c76487.entry.js} +1 -1
  107. package/dist/lime-elements/{p-ac9c5c88.entry.js → p-cafec335.entry.js} +1 -1
  108. package/dist/lime-elements/{p-48928b4f.entry.js → p-d146feda.entry.js} +1 -1
  109. package/dist/lime-elements/{p-532ea234.entry.js → p-deceda00.entry.js} +1 -1
  110. package/dist/lime-elements/{p-e508771f.entry.js → p-f04f7c8e.entry.js} +1 -1
  111. package/dist/lime-elements/{p-51dc5f0b.entry.js → p-f3c108c9.entry.js} +1 -1
  112. package/dist/lime-elements/{p-24041bbb.entry.js → p-fbcd99a3.entry.js} +1 -1
  113. package/dist/types/components/menu/menu.d.ts +11 -0
  114. package/dist/types/components/pagination/jump/pagination-jump.d.ts +102 -0
  115. package/dist/types/components/pagination/pagination.d.ts +81 -0
  116. package/dist/types/components/pagination/pagination.util.d.ts +12 -2
  117. package/dist/types/components/popover/popover.d.ts +8 -1
  118. package/dist/types/components.d.ts +145 -0
  119. package/dist/types/translations/da.d.ts +4 -0
  120. package/dist/types/translations/de.d.ts +4 -0
  121. package/dist/types/translations/en.d.ts +4 -0
  122. package/dist/types/translations/fi.d.ts +4 -0
  123. package/dist/types/translations/fr.d.ts +4 -0
  124. package/dist/types/translations/nl.d.ts +4 -0
  125. package/dist/types/translations/no.d.ts +4 -0
  126. package/dist/types/translations/sv.d.ts +4 -0
  127. package/package.json +1 -1
  128. package/dist/cjs/limel-helper-line.cjs.entry.js +0 -42
  129. package/dist/esm/limel-helper-line.entry.js +0 -40
  130. package/dist/lime-elements/p-1a478498.entry.js +0 -248
  131. package/dist/lime-elements/p-4c65dee7.entry.js +0 -1
  132. package/dist/lime-elements/p-DAFuhe5e.js +0 -1
  133. package/dist/lime-elements/p-b4988a9b.entry.js +0 -1
  134. package/dist/lime-elements/p-f81dc23a.entry.js +0 -1
@@ -84,6 +84,7 @@ export class Menu {
84
84
  this.keepOpenOnSelect = false;
85
85
  this.shouldRestoreFocusOnClose = false;
86
86
  this.normalizedHotkeyCache = new Map();
87
+ this.triggersDisabledByMenu = new WeakSet();
87
88
  this.cachedSubMenuSource = null;
88
89
  this.cachedSubMenuItems = null;
89
90
  this.handleDocumentKeyDown = (event) => {
@@ -363,20 +364,32 @@ export class Menu {
363
364
  this.handleSelect(parent);
364
365
  };
365
366
  this.setTriggerAttributes = (element) => {
366
- const attributes = {
367
- 'aria-haspopup': true,
368
- 'aria-expanded': this.open,
369
- 'aria-controls': this.portalId,
370
- disabled: this.disabled,
371
- role: 'button',
372
- };
373
- for (const [key, value] of Object.entries(attributes)) {
374
- if (value) {
375
- element.setAttribute(key, String(value));
376
- }
377
- else {
378
- element.removeAttribute(key);
367
+ element.setAttribute('aria-haspopup', 'true');
368
+ element.setAttribute('aria-controls', this.portalId);
369
+ element.setAttribute('role', 'button');
370
+ // `aria-expanded` is needed even when the menu is closed. Without
371
+ // it, the trigger reads as an ordinary button to a screen reader.
372
+ element.setAttribute('aria-expanded', String(this.open));
373
+ this.setTriggerDisabled(element);
374
+ };
375
+ /**
376
+ * `disabled` has to be removed rather than set to `false`, because the
377
+ * presence of the attribute is what disables the element. Only the one the
378
+ * menu put there may go: a consumer can disable their own trigger, and
379
+ * stripping that attribute would re-enable it on every render.
380
+ * @param element - the slotted trigger element
381
+ */
382
+ this.setTriggerDisabled = (element) => {
383
+ if (this.disabled) {
384
+ if (!element.hasAttribute('disabled')) {
385
+ element.setAttribute('disabled', 'true');
386
+ this.triggersDisabledByMenu.add(element);
379
387
  }
388
+ return;
389
+ }
390
+ if (this.triggersDisabledByMenu.has(element)) {
391
+ element.removeAttribute('disabled');
392
+ this.triggersDisabledByMenu.delete(element);
380
393
  }
381
394
  };
382
395
  this.onClose = () => {
@@ -579,7 +592,7 @@ export class Menu {
579
592
  const cssProperties = this.getCssProperties();
580
593
  const dropdownZIndex = getComputedStyle(this.host).getPropertyValue('--dropdown-z-index');
581
594
  const menuSurfaceWidth = this.getMenuSurfaceWidth(cssProperties['--menu-surface-width']);
582
- return (h("div", { key: '60e7d159ae0a65582f3184b6a6bfe6c252fe7850', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, h("slot", { key: 'f492115bc3b7115964814883bc103a00496d0178', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), h("limel-portal", { key: 'a38e4fbab9a03fb34b86030d2782a2215ed72650', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, h("limel-menu-surface", { key: 'dd95ff8c4fc87135cdd00cf5174cef72af61c31d', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
595
+ return (h("div", { key: 'c66307a5cc7257e2b394f0b5d56d6fbc6fce18b1', class: "mdc-menu-surface--anchor", onClick: this.onTriggerClick }, h("slot", { key: '7c37448e29deaee202f74d3288d21697529c82b5', ref: this.setTriggerRef, name: "trigger" }), this.renderNotificationBadge(), h("limel-portal", { key: 'f7f1b14ae5c6e19fa8e9651c2a847db0bb246427', visible: this.open, containerId: this.portalId, openDirection: this.openDirection, position: "absolute", containerStyle: { 'z-index': dropdownZIndex } }, h("limel-menu-surface", { key: 'c2fd7257bfe8ccf820b8aabc6a8959f6d5d1cd2f', open: this.open, onDismiss: this.onClose, style: Object.assign(Object.assign({}, cssProperties), { '--menu-surface-width': menuSurfaceWidth, '--limel-menu-surface-display': 'flex', '--limel-menu-surface-flex-direction': 'column' }), class: {
583
596
  'has-grid-layout': this.gridLayout,
584
597
  } }, this.renderSearchField(), this.renderBreadcrumb(), this.renderLoader(), this.renderEmptyMessage(), this.renderMenuList()))));
585
598
  }
@@ -589,24 +602,33 @@ export class Menu {
589
602
  this.setFocus();
590
603
  }
591
604
  connectedCallback() {
592
- if (this.open) {
593
- document.addEventListener('keydown', this.handleDocumentKeyDown, true);
594
- }
605
+ this.setupGlobalHandlers();
595
606
  }
596
607
  disconnectedCallback() {
597
- document.removeEventListener('keydown', this.handleDocumentKeyDown, true);
608
+ this.teardownGlobalHandlers();
598
609
  }
599
610
  openWatcher(newValue) {
600
- const opened = newValue;
601
- if (opened) {
602
- document.addEventListener('keydown', this.handleDocumentKeyDown, true);
611
+ this.setupGlobalHandlers();
612
+ if (newValue) {
603
613
  this.setFocus();
604
614
  }
605
615
  else {
606
- document.removeEventListener('keydown', this.handleDocumentKeyDown, true);
607
616
  this.clearSearch();
608
617
  }
609
618
  }
619
+ setupGlobalHandlers() {
620
+ // Stencil keeps firing `@Watch` on a detached instance, so `open` can
621
+ // still flip after `disconnectedCallback` has run. Listening then
622
+ // would leave a listener behind that no disconnect takes down.
623
+ if (!this.open || !this.host.isConnected) {
624
+ this.teardownGlobalHandlers();
625
+ return;
626
+ }
627
+ document.addEventListener('keydown', this.handleDocumentKeyDown, true);
628
+ }
629
+ teardownGlobalHandlers() {
630
+ document.removeEventListener('keydown', this.handleDocumentKeyDown, true);
631
+ }
610
632
  isFromTextInput(event) {
611
633
  const path = typeof event.composedPath === 'function'
612
634
  ? event.composedPath()
@@ -0,0 +1,11 @@
1
+ :host {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.75rem;
5
+ padding: 0.75rem;
6
+ min-width: 12rem;
7
+ }
8
+
9
+ :host(:not([open])) {
10
+ display: none;
11
+ }
@@ -0,0 +1,331 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ import translate from "../../../global/translations";
3
+ import { ENTER } from "../../../util/keycodes";
4
+ import { pageFromInput } from "../pagination.util";
5
+ const FIRST_PAGE = 1;
6
+ const FALLBACK_LANGUAGE = 'en';
7
+ /**
8
+ * A field for going straight to a page, which `limel-pagination` puts inside
9
+ * the popover its `···` opens.
10
+ *
11
+ * It draws nothing until it is opened, so a pagination that is merely on
12
+ * screen pays for an empty element rather than a form. It lives in a
13
+ * component of its own because the popover carries its content into a shadow
14
+ * root elsewhere on the page, where a parent's stylesheet cannot reach it —
15
+ * a component brings its own.
16
+ *
17
+ * @private
18
+ * @exampleComponent limel-example-pagination-jump-basic
19
+ */
20
+ export class PaginationJump {
21
+ constructor() {
22
+ /**
23
+ * Whether the field is being shown.
24
+ */
25
+ this.open = false;
26
+ /**
27
+ * The page to start from, which is the one the user is on.
28
+ */
29
+ this.page = FIRST_PAGE;
30
+ /**
31
+ * How many pages there are, which is as far as a jump can go.
32
+ */
33
+ this.pageCount = FIRST_PAGE;
34
+ /**
35
+ * Set while a page is being fetched, so that another cannot be asked for.
36
+ */
37
+ this.loading = false;
38
+ /**
39
+ * The language used for the labels and for the way numbers are written.
40
+ */
41
+ this.language = 'en';
42
+ /** What the field shows: the page it opened with, then what is typed. */
43
+ this.value = '';
44
+ this.shouldFocusField = false;
45
+ /**
46
+ * Only to keep what is on screen honest. `limel-input-field` draws an
47
+ * unfocused number through its `value` prop, so a field left pinned to
48
+ * the page it opened with would show that again the moment the keyboard
49
+ * moved to the button, while the button submitted something else.
50
+ *
51
+ * @param event - the field reporting what it now holds
52
+ */
53
+ this.handleChange = (event) => {
54
+ var _a;
55
+ event.stopPropagation();
56
+ this.value = String((_a = event.detail) !== null && _a !== void 0 ? _a : '');
57
+ };
58
+ this.handleKeyDown = (event) => {
59
+ if (event.key !== ENTER) {
60
+ return;
61
+ }
62
+ event.preventDefault();
63
+ this.commit();
64
+ };
65
+ this.commit = () => {
66
+ const page = this.target;
67
+ if (page === null || this.loading) {
68
+ return;
69
+ }
70
+ this.jump.emit(page);
71
+ };
72
+ this.setField = (element) => {
73
+ this.field = element;
74
+ };
75
+ this.translate = (key, params) => {
76
+ return translate.get(key, this.language, params);
77
+ };
78
+ }
79
+ componentWillLoad() {
80
+ this.handleOpenChange();
81
+ }
82
+ handleLanguageChange() {
83
+ this.numberFormat = undefined;
84
+ }
85
+ /**
86
+ * Opening starts the field again rather than leaving what was last typed,
87
+ * so it always offers the page the user is on now.
88
+ */
89
+ handleOpenChange() {
90
+ if (!this.open) {
91
+ return;
92
+ }
93
+ this.value = String(this.page);
94
+ this.shouldFocusField = true;
95
+ }
96
+ componentDidRender() {
97
+ if (!this.shouldFocusField) {
98
+ return;
99
+ }
100
+ this.shouldFocusField = false;
101
+ this.focusField();
102
+ }
103
+ render() {
104
+ if (!this.open) {
105
+ return;
106
+ }
107
+ return (h(Host, { onKeyDown: this.handleKeyDown }, h("limel-input-field", { type: "number", label: this.translate('pagination.page-number'), placeholder: this.pageRange, value: this.value, onChange: this.handleChange, min: FIRST_PAGE, max: this.pageCount, step: 1, ref: this.setField }), h("limel-button", { primary: true, label: this.translate('pagination.go'), disabled: this.loading, onClick: this.commit })));
108
+ }
109
+ /**
110
+ * The page that is in the field now, or `null` when it holds none.
111
+ *
112
+ * Read from the field itself rather than from its `change` event, which
113
+ * arrives on a debounce: a page typed and submitted inside that window
114
+ * would otherwise be submitted as whatever preceded it.
115
+ */
116
+ get target() {
117
+ var _a, _b;
118
+ const typed = (_b = (_a = this.nativeField) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.value;
119
+ return pageFromInput(typed, this.pageCount);
120
+ }
121
+ /** `1–492`, so that being moved to 492 is a stated bound, not a surprise. */
122
+ get pageRange() {
123
+ return this.translate('pagination.page-range', {
124
+ first: this.formatNumber(FIRST_PAGE),
125
+ last: this.formatNumber(this.pageCount),
126
+ });
127
+ }
128
+ /** `limel-input-field` wraps a native field but does not expose it. */
129
+ get nativeField() {
130
+ var _a, _b;
131
+ return (_b = (_a = this.field) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('input');
132
+ }
133
+ /**
134
+ * The field delegates focus to the input it wraps, so focusing the host
135
+ * is enough. Selecting as well, so the page the user is on is both the
136
+ * starting value and out of the way of the first keystroke.
137
+ */
138
+ focusField() {
139
+ const host = this.field;
140
+ host === null || host === void 0 ? void 0 : host.componentOnReady().then(() => {
141
+ // A frame later, so the popover has been put where it belongs
142
+ // before the field takes the keyboard.
143
+ requestAnimationFrame(() => {
144
+ var _a, _b;
145
+ host.focus();
146
+ (_b = (_a = host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('input')) === null || _b === void 0 ? void 0 : _b.select();
147
+ });
148
+ });
149
+ }
150
+ /**
151
+ * The parent warns about a language it cannot use, so this one only has
152
+ * to keep drawing.
153
+ *
154
+ * @param value - the number to write out
155
+ * @returns the number in the current language
156
+ */
157
+ formatNumber(value) {
158
+ var _a;
159
+ (_a = this.numberFormat) !== null && _a !== void 0 ? _a : (this.numberFormat = this.createNumberFormat());
160
+ return this.numberFormat.format(value);
161
+ }
162
+ /**
163
+ * The pagination hands down the language it settled on, so this only has
164
+ * to survive being handed one directly, as the example page does.
165
+ *
166
+ * @returns a formatter, in that language where it can be used
167
+ */
168
+ createNumberFormat() {
169
+ try {
170
+ return new Intl.NumberFormat(this.language);
171
+ }
172
+ catch (_a) {
173
+ return new Intl.NumberFormat(FALLBACK_LANGUAGE);
174
+ }
175
+ }
176
+ static get is() { return "limel-pagination-jump"; }
177
+ static get encapsulation() { return "shadow"; }
178
+ static get originalStyleUrls() {
179
+ return {
180
+ "$": ["pagination-jump.scss"]
181
+ };
182
+ }
183
+ static get styleUrls() {
184
+ return {
185
+ "$": ["pagination-jump.css"]
186
+ };
187
+ }
188
+ static get properties() {
189
+ return {
190
+ "open": {
191
+ "type": "boolean",
192
+ "mutable": false,
193
+ "complexType": {
194
+ "original": "boolean",
195
+ "resolved": "boolean",
196
+ "references": {}
197
+ },
198
+ "required": false,
199
+ "optional": false,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": "Whether the field is being shown."
203
+ },
204
+ "getter": false,
205
+ "setter": false,
206
+ "reflect": true,
207
+ "attribute": "open",
208
+ "defaultValue": "false"
209
+ },
210
+ "page": {
211
+ "type": "number",
212
+ "mutable": false,
213
+ "complexType": {
214
+ "original": "number",
215
+ "resolved": "number",
216
+ "references": {}
217
+ },
218
+ "required": false,
219
+ "optional": false,
220
+ "docs": {
221
+ "tags": [],
222
+ "text": "The page to start from, which is the one the user is on."
223
+ },
224
+ "getter": false,
225
+ "setter": false,
226
+ "reflect": false,
227
+ "attribute": "page",
228
+ "defaultValue": "1"
229
+ },
230
+ "pageCount": {
231
+ "type": "number",
232
+ "mutable": false,
233
+ "complexType": {
234
+ "original": "number",
235
+ "resolved": "number",
236
+ "references": {}
237
+ },
238
+ "required": false,
239
+ "optional": false,
240
+ "docs": {
241
+ "tags": [],
242
+ "text": "How many pages there are, which is as far as a jump can go."
243
+ },
244
+ "getter": false,
245
+ "setter": false,
246
+ "reflect": false,
247
+ "attribute": "page-count",
248
+ "defaultValue": "1"
249
+ },
250
+ "loading": {
251
+ "type": "boolean",
252
+ "mutable": false,
253
+ "complexType": {
254
+ "original": "boolean",
255
+ "resolved": "boolean",
256
+ "references": {}
257
+ },
258
+ "required": false,
259
+ "optional": false,
260
+ "docs": {
261
+ "tags": [],
262
+ "text": "Set while a page is being fetched, so that another cannot be asked for."
263
+ },
264
+ "getter": false,
265
+ "setter": false,
266
+ "reflect": false,
267
+ "attribute": "loading",
268
+ "defaultValue": "false"
269
+ },
270
+ "language": {
271
+ "type": "string",
272
+ "mutable": false,
273
+ "complexType": {
274
+ "original": "Languages",
275
+ "resolved": "\"da\" | \"de\" | \"en\" | \"fi\" | \"fr\" | \"nb\" | \"nl\" | \"no\" | \"sv\"",
276
+ "references": {
277
+ "Languages": {
278
+ "location": "import",
279
+ "path": "../../date-picker/date.types",
280
+ "id": "src/components/date-picker/date.types.ts::Languages",
281
+ "referenceLocation": "Languages"
282
+ }
283
+ }
284
+ },
285
+ "required": false,
286
+ "optional": false,
287
+ "docs": {
288
+ "tags": [],
289
+ "text": "The language used for the labels and for the way numbers are written."
290
+ },
291
+ "getter": false,
292
+ "setter": false,
293
+ "reflect": false,
294
+ "attribute": "language",
295
+ "defaultValue": "'en'"
296
+ }
297
+ };
298
+ }
299
+ static get states() {
300
+ return {
301
+ "value": {}
302
+ };
303
+ }
304
+ static get events() {
305
+ return [{
306
+ "method": "jump",
307
+ "name": "jump",
308
+ "bubbles": true,
309
+ "cancelable": true,
310
+ "composed": true,
311
+ "docs": {
312
+ "tags": [],
313
+ "text": "Asks for the page that was typed, already brought within the set."
314
+ },
315
+ "complexType": {
316
+ "original": "number",
317
+ "resolved": "number",
318
+ "references": {}
319
+ }
320
+ }];
321
+ }
322
+ static get watchers() {
323
+ return [{
324
+ "propName": "language",
325
+ "methodName": "handleLanguageChange"
326
+ }, {
327
+ "propName": "open",
328
+ "methodName": "handleOpenChange"
329
+ }];
330
+ }
331
+ }
@@ -186,14 +186,18 @@ button limel-spinner {
186
186
  pointer-events: none;
187
187
  }
188
188
 
189
- .gap {
189
+ limel-popover {
190
190
  display: inline-flex;
191
- align-items: center;
192
- justify-content: center;
193
- height: 1.75rem;
191
+ }
192
+
193
+ .gap {
194
194
  width: 1.75rem;
195
+ padding: 0;
195
196
  color: rgb(var(--contrast-1100));
196
197
  }
198
+ .gap[aria-expanded=true] {
199
+ box-shadow: var(--button-shadow-inset-pressed) !important;
200
+ }
197
201
 
198
202
  .arrow span {
199
203
  display: block;