@limetech/lime-elements 36.0.0-next.9 → 36.0.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 (113) hide show
  1. package/dist/cjs/{dateFormatter-05d80b12.js → dateFormatter-d7a8d40d.js} +1 -1
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-button.cjs.entry.js +1 -1
  4. package/dist/cjs/limel-chip-set.cjs.entry.js +19 -11
  5. package/dist/cjs/limel-code-editor.cjs.entry.js +1596 -2
  6. package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
  7. package/dist/cjs/limel-date-picker.cjs.entry.js +3 -3
  8. package/dist/cjs/limel-dock-button.cjs.entry.js +32 -6
  9. package/dist/cjs/limel-dock.cjs.entry.js +4 -7
  10. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +2 -2
  11. package/dist/cjs/limel-form.cjs.entry.js +1 -1
  12. package/dist/cjs/limel-input-field.cjs.entry.js +13 -6
  13. package/dist/cjs/limel-menu-list.cjs.entry.js +2 -3
  14. package/dist/cjs/limel-menu.cjs.entry.js +3 -14
  15. package/dist/cjs/limel-popover_4.cjs.entry.js +1 -1
  16. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
  17. package/dist/cjs/limel-select.cjs.entry.js +4 -5
  18. package/dist/cjs/limel-table.cjs.entry.js +17 -5
  19. package/dist/cjs/loader.cjs.js +1 -1
  20. package/dist/cjs/{moment-5cfac5cd.js → moment-d1e35cdc.js} +2 -2
  21. package/dist/collection/components/button/button.css +11 -7
  22. package/dist/collection/components/chip-set/chip-set.css +6 -2
  23. package/dist/collection/components/chip-set/chip-set.js +21 -13
  24. package/dist/collection/components/code-editor/code-editor.css +153 -1
  25. package/dist/collection/components/code-editor/code-editor.js +90 -2
  26. package/dist/collection/components/collapsible-section/collapsible-section.css +8 -7
  27. package/dist/collection/components/date-picker/date-picker.js +18 -1
  28. package/dist/collection/components/dock/dock-button/dock-button.css +15 -9
  29. package/dist/collection/components/dock/dock-button/dock-button.js +61 -24
  30. package/dist/collection/components/dock/dock.css +7 -3
  31. package/dist/collection/components/dock/dock.js +37 -7
  32. package/dist/collection/components/input-field/input-field.js +32 -7
  33. package/dist/collection/components/menu/menu.js +3 -14
  34. package/dist/collection/components/menu-list/menu-list.js +5 -25
  35. package/dist/collection/components/popover-surface/popover-surface.css +5 -4
  36. package/dist/collection/components/progress-flow/progress-flow-item/progress-flow-item.css +21 -8
  37. package/dist/collection/components/select/select.css +10 -11
  38. package/dist/collection/components/select/select.template.js +3 -4
  39. package/dist/collection/components/table/columns.js +1 -0
  40. package/dist/collection/components/table/layout.js +8 -0
  41. package/dist/collection/components/table/table.css +89 -61
  42. package/dist/collection/components/table/table.js +46 -15
  43. package/dist/collection/style/internal/codemirror-tooltip.scss +19 -0
  44. package/dist/collection/style/mixins.scss +11 -0
  45. package/dist/esm/{dateFormatter-2cad0292.js → dateFormatter-784c3334.js} +1 -1
  46. package/dist/esm/lime-elements.js +1 -1
  47. package/dist/esm/limel-button.entry.js +1 -1
  48. package/dist/esm/limel-chip-set.entry.js +19 -11
  49. package/dist/esm/limel-code-editor.entry.js +1596 -2
  50. package/dist/esm/limel-collapsible-section.entry.js +1 -1
  51. package/dist/esm/limel-date-picker.entry.js +3 -3
  52. package/dist/esm/limel-dock-button.entry.js +32 -6
  53. package/dist/esm/limel-dock.entry.js +4 -7
  54. package/dist/esm/limel-flatpickr-adapter.entry.js +2 -2
  55. package/dist/esm/limel-form.entry.js +1 -1
  56. package/dist/esm/limel-input-field.entry.js +13 -6
  57. package/dist/esm/limel-menu-list.entry.js +2 -3
  58. package/dist/esm/limel-menu.entry.js +3 -14
  59. package/dist/esm/limel-popover_4.entry.js +1 -1
  60. package/dist/esm/limel-progress-flow-item.entry.js +1 -1
  61. package/dist/esm/limel-select.entry.js +4 -5
  62. package/dist/esm/limel-table.entry.js +18 -6
  63. package/dist/esm/loader.js +1 -1
  64. package/dist/esm/{moment-367e51c5.js → moment-faa8a4a8.js} +2 -2
  65. package/dist/lime-elements/lime-elements.css +1 -1
  66. package/dist/lime-elements/lime-elements.esm.js +1 -1
  67. package/dist/lime-elements/{p-7e571ec6.entry.js → p-0ba0c38a.entry.js} +1 -1
  68. package/dist/lime-elements/p-104c89e8.entry.js +1 -0
  69. package/dist/lime-elements/p-1390fdcb.entry.js +126 -0
  70. package/dist/lime-elements/{p-1dfccbc5.entry.js → p-2fc4f4ff.entry.js} +1 -1
  71. package/dist/lime-elements/p-3cf4aae0.entry.js +1 -0
  72. package/dist/lime-elements/p-4dc07252.entry.js +82 -0
  73. package/dist/lime-elements/p-5ef52589.entry.js +1 -0
  74. package/dist/lime-elements/p-653faf47.entry.js +1 -0
  75. package/dist/lime-elements/{p-d76f896d.js → p-73df4d83.js} +1 -1
  76. package/dist/lime-elements/p-93f42a32.entry.js +1 -0
  77. package/dist/lime-elements/p-945afca2.js +3 -0
  78. package/dist/lime-elements/p-b0e54dc2.entry.js +1 -0
  79. package/dist/lime-elements/p-c15da26d.entry.js +1 -0
  80. package/dist/lime-elements/{p-af0ec482.entry.js → p-c544c05b.entry.js} +1 -1
  81. package/dist/lime-elements/p-c59cbd68.entry.js +1 -0
  82. package/dist/lime-elements/p-cb8db8c2.entry.js +37 -0
  83. package/dist/lime-elements/p-f41567a1.entry.js +1 -0
  84. package/dist/lime-elements/p-f5df4d4f.entry.js +1 -0
  85. package/dist/lime-elements/style/internal/codemirror-tooltip.scss +19 -0
  86. package/dist/lime-elements/style/mixins.scss +11 -0
  87. package/dist/types/components/chip-set/chip-set.d.ts +3 -2
  88. package/dist/types/components/code-editor/code-editor.d.ts +14 -0
  89. package/dist/types/components/date-picker/date-picker.d.ts +4 -0
  90. package/dist/types/components/dock/dock-button/dock-button.d.ts +21 -5
  91. package/dist/types/components/dock/dock.d.ts +11 -3
  92. package/dist/types/components/input-field/input-field.d.ts +6 -0
  93. package/dist/types/components/menu/menu.d.ts +1 -2
  94. package/dist/types/components/menu-list/menu-list.d.ts +2 -7
  95. package/dist/types/components/table/layout.d.ts +2 -0
  96. package/dist/types/components/table/table.d.ts +16 -1
  97. package/dist/types/components/table/table.types.d.ts +4 -0
  98. package/dist/types/components.d.ts +67 -15
  99. package/package.json +5 -4
  100. package/dist/lime-elements/p-1a2ffe75.entry.js +0 -82
  101. package/dist/lime-elements/p-1e59114e.entry.js +0 -1
  102. package/dist/lime-elements/p-3af5f9ad.js +0 -3
  103. package/dist/lime-elements/p-5ad60e14.entry.js +0 -126
  104. package/dist/lime-elements/p-64f068a8.entry.js +0 -1
  105. package/dist/lime-elements/p-6884b012.entry.js +0 -1
  106. package/dist/lime-elements/p-6966b5df.entry.js +0 -1
  107. package/dist/lime-elements/p-722d32e0.entry.js +0 -1
  108. package/dist/lime-elements/p-75152d89.entry.js +0 -1
  109. package/dist/lime-elements/p-7ee4b825.entry.js +0 -1
  110. package/dist/lime-elements/p-97d6c4a6.entry.js +0 -1
  111. package/dist/lime-elements/p-b95e80c9.entry.js +0 -1
  112. package/dist/lime-elements/p-bd098a11.entry.js +0 -1
  113. package/dist/lime-elements/p-d1ee4501.entry.js +0 -37
@@ -67,10 +67,10 @@ export class MenuList {
67
67
  return !!item.selected;
68
68
  });
69
69
  if (selectedItem) {
70
- this.change.emit(Object.assign(Object.assign({}, selectedItem), { selected: false }));
70
+ this.select.emit(Object.assign(Object.assign({}, selectedItem), { selected: false }));
71
71
  }
72
72
  if (MenuItems[index] !== selectedItem) {
73
- this.change.emit(Object.assign(Object.assign({}, MenuItems[index]), { selected: false }));
73
+ this.select.emit(Object.assign(Object.assign({}, MenuItems[index]), { selected: false }));
74
74
  }
75
75
  };
76
76
  this.isMenuItem = (item) => {
@@ -223,26 +223,6 @@ export class MenuList {
223
223
  }
224
224
  }; }
225
225
  static get events() { return [{
226
- "method": "change",
227
- "name": "change",
228
- "bubbles": true,
229
- "cancelable": true,
230
- "composed": true,
231
- "docs": {
232
- "tags": [],
233
- "text": "Fired when a new value has been selected from the list. Only fired if selectable is set to true"
234
- },
235
- "complexType": {
236
- "original": "MenuItem | MenuItem[]",
237
- "resolved": "MenuItem<any> | MenuItem<any>[]",
238
- "references": {
239
- "MenuItem": {
240
- "location": "import",
241
- "path": "@limetech/lime-elements"
242
- }
243
- }
244
- }
245
- }, {
246
226
  "method": "select",
247
227
  "name": "select",
248
228
  "bubbles": true,
@@ -250,11 +230,11 @@ export class MenuList {
250
230
  "composed": true,
251
231
  "docs": {
252
232
  "tags": [],
253
- "text": "Fired when an action has been selected from the action menu of a list item"
233
+ "text": "Fired when a new value has been selected from the list."
254
234
  },
255
235
  "complexType": {
256
- "original": "MenuItem | MenuItem[]",
257
- "resolved": "MenuItem<any> | MenuItem<any>[]",
236
+ "original": "MenuItem",
237
+ "resolved": "MenuItem<any>",
258
238
  "references": {
259
239
  "MenuItem": {
260
240
  "location": "import",
@@ -31,12 +31,13 @@
31
31
  border-radius: var(--popover-border-radius, 0.75rem);
32
32
  background-color: var(--popover-body-background-color, rgb(var(--contrast-100)));
33
33
  }
34
- .limel-popover-surface:focus, .limel-popover-surface:focus-within {
34
+ .limel-popover-surface:focus {
35
35
  outline: none;
36
36
  }
37
+ .limel-popover-surface:focus-visible {
38
+ outline: none;
39
+ box-shadow: var(--shadow-depth-8-focused);
40
+ }
37
41
  .limel-popover-surface:focus:after, .limel-popover-surface:focus-within:after {
38
42
  opacity: 1;
39
- }
40
- .limel-popover-surface:focus-visible {
41
- box-shadow: var(--shadow-depth-16-focused);
42
43
  }
@@ -67,7 +67,6 @@
67
67
  font-size: 0.875rem;
68
68
  }
69
69
  .step.disabled {
70
- opacity: 0.75;
71
70
  cursor: not-allowed;
72
71
  }
73
72
  .step.disabled.readonly {
@@ -159,24 +158,38 @@
159
158
  z-index: 2;
160
159
  }
161
160
 
162
- .step:after {
161
+ .step:before, .step:after {
163
162
  pointer-events: none;
164
163
  box-sizing: border-box;
165
164
  z-index: 2;
166
165
  position: absolute;
167
166
  right: var(--selected-indicator-right);
168
- background-color: var(--step-divider-color);
169
- width: 0.375rem;
170
- height: 0.375rem;
171
167
  border-radius: 50%;
172
- opacity: 0.7;
173
168
  }
174
- .last .step:after {
169
+ .last .step:before, .last .step:after {
175
170
  right: 0.5rem;
176
171
  }
177
172
 
178
- .flow-item:not(.off-progress-item) .step.selected:after {
173
+ .flow-item:not(.off-progress-item) .step.selected:before, .flow-item:not(.off-progress-item) .step.selected:after {
174
+ content: "";
175
+ width: 0.375rem;
176
+ height: 0.375rem;
177
+ }
178
+ .flow-item:not(.off-progress-item) .step.selected:before {
179
+ background-color: var(--step-divider-color);
180
+ opacity: 0.7;
181
+ }
182
+ .flow-item:not(.off-progress-item) .step.disabled:before, .flow-item:not(.off-progress-item) .step.disabled:after {
183
+ width: 0.75rem;
184
+ height: 0.75rem;
185
+ }
186
+ .flow-item:not(.off-progress-item) .step.disabled:after {
179
187
  content: "";
188
+ background-image: url("data:image/svg+xml;charset=utf-8, <svg viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg' xml:space='preserve' fill-rule='evenodd' clip-rule='evenodd' stroke-linejoin='round' stroke-miterlimit='2'><path fill='rgb(127,127,127)' d='M32.18 13.711c0-2.207-1.793-4-4.002-4H11.821c-2.208 0-4 1.793-4 4V28.29a4 4 0 0 0 4 4h16.357a4.002 4.002 0 0 0 4.001-4V13.711Z'/><path fill='rgb(127,127,127)' d='M11.211 9.758V7.673A7.489 7.489 0 0 1 18.696.188h2.608a7.489 7.489 0 0 1 7.485 7.485v2.085h-3V7.673a4.488 4.488 0 0 0-4.485-4.485h-2.608a4.488 4.488 0 0 0-4.485 4.485v2.085h-3Z'/></svg>");
189
+ background-size: 90%;
190
+ background-repeat: no-repeat;
191
+ background-position: center;
192
+ mix-blend-mode: multiply;
180
193
  }
181
194
 
182
195
  .step {
@@ -1726,6 +1726,10 @@
1726
1726
  left: 1rem;
1727
1727
  }
1728
1728
 
1729
+ .mdc-select__dropdown-icon-graphic {
1730
+ transition: transform 0.2s ease;
1731
+ }
1732
+
1729
1733
  .limel-select__selected-option {
1730
1734
  display: flex;
1731
1735
  align-items: center;
@@ -1774,7 +1778,8 @@
1774
1778
  outline: none;
1775
1779
  }
1776
1780
  .limel-select .limel-select-trigger:focus-visible {
1777
- box-shadow: var(--shadow-depth-8-focused) !important;
1781
+ outline: none;
1782
+ box-shadow: var(--shadow-depth-8-focused);
1778
1783
  }
1779
1784
  .limel-select .limel-select-trigger .mdc-floating-label {
1780
1785
  color: rgba(var(--contrast-1200), 1);
@@ -1786,15 +1791,6 @@
1786
1791
  font-size: 0.875rem;
1787
1792
  transform: translateY(-2.171875rem) scale(0.75);
1788
1793
  }
1789
- .limel-select .mdc-select__dropdown-icon {
1790
- transition: box-shadow 0.2s ease;
1791
- border-radius: 50%;
1792
- background: url("data:image/svg+xml;charset=utf-8,%3Csvg width='10' height='5' viewBox='7 10 10 5' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' opacity='.54' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat 50%;
1793
- position: relative;
1794
- bottom: unset;
1795
- margin-left: 0;
1796
- margin-right: 0.25rem;
1797
- }
1798
1794
  .limel-select .limel-select-trigger,
1799
1795
  .limel-select .limel-select__selected-option {
1800
1796
  width: 100%;
@@ -1822,7 +1818,10 @@
1822
1818
  color: var(--mdc-theme-primary);
1823
1819
  }
1824
1820
  .limel-select:not(.mdc-select--disabled) .limel-select-trigger.limel-select--focused .mdc-select__dropdown-icon {
1825
- color: var(--mdc-theme-primary);
1821
+ fill: var(--mdc-theme-primary);
1822
+ }
1823
+ .limel-select:not(.mdc-select--disabled) .limel-select-trigger.limel-select--focused .mdc-select__dropdown-icon-graphic {
1824
+ transform: rotate(-180deg);
1826
1825
  }
1827
1826
  .limel-select.limel-select--required .mdc-floating-label::after {
1828
1827
  content: "*";
@@ -39,7 +39,7 @@ const SelectValue = (props) => {
39
39
  'mdc-floating-label--float-above': props.hasValue || props.isOpen || props.readonly,
40
40
  'mdc-floating-label--active': props.isOpen,
41
41
  };
42
- return (h("div", { class: anchorClassList, tabindex: "0", onClick: props.open, onKeyPress: props.onTriggerPress, role: "button", "aria-haspopup": "listbox", "aria-expanded": "false", "aria-labelledby": "s-label s-selected-text" },
42
+ return (h("div", { class: anchorClassList, tabindex: "0", onClick: props.open, onKeyPress: props.onTriggerPress, role: "button", "aria-haspopup": "listbox", "aria-expanded": "false", "aria-labelledby": "s-label s-selected-text", "aria-required": props.required, "aria-disabled": props.disabled },
43
43
  h("span", { id: "s-label", class: labelClassList }, props.label),
44
44
  h("span", { class: "mdc-select__selected-text-container limel-select__selected-option" },
45
45
  getSelectedIcon(props.value),
@@ -47,8 +47,7 @@ const SelectValue = (props) => {
47
47
  h(ShowIcon, Object.assign({}, props, { isValid: props.isValid })),
48
48
  h("span", { class: "mdc-select__dropdown-icon" },
49
49
  h("svg", { class: "mdc-select__dropdown-icon-graphic", viewBox: "7 10 10 5", focusable: "false" },
50
- h("polygon", { class: "mdc-select__dropdown-icon-inactive", stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" }),
51
- h("polygon", { class: "mdc-select__dropdown-icon-active", stroke: "none", "fill-rule": "evenodd", points: "7 15 12 10 17 15" })))));
50
+ h("polygon", { stroke: "none", "fill-rule": "evenodd", points: "7 10 12 15 17 10" })))));
52
51
  };
53
52
  const ShowIcon = (props) => {
54
53
  if (props.isValid) {
@@ -80,7 +79,7 @@ const MenuDropdown = (props) => {
80
79
  h("limel-list", { items: items, type: props.multiple ? 'checkbox' : 'selectable', onChange: props.onMenuChange }))));
81
80
  };
82
81
  const NativeDropdown = (props) => {
83
- return (h("select", { required: props.required, "aria-required": props.required, onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled, multiple: props.multiple }, props.options.map((option) => {
82
+ return (h("select", { required: props.required, "aria-disabled": props.disabled, "aria-required": props.required, onChange: props.onNativeChange, onFocus: props.open, onBlur: props.close, class: "limel-select__native-control", disabled: props.disabled, multiple: props.multiple }, props.options.map((option) => {
84
83
  return (h("option", { key: option.value, value: option.value, selected: isSelected(option, props.value), disabled: option.disabled }, option.text));
85
84
  })));
86
85
  };
@@ -17,6 +17,7 @@ export class ColumnDefinitionFactory {
17
17
  title: column.title,
18
18
  field: column.field,
19
19
  hozAlign: column.horizontalAlign,
20
+ headerSort: column.headerSort,
20
21
  };
21
22
  if (column.headerComponent) {
22
23
  definition.titleFormatter = formatHeader(column);
@@ -0,0 +1,8 @@
1
+ export function mapLayout(layout) {
2
+ const layouts = {
3
+ stretchLastColumn: 'fitDataStretch',
4
+ stretchColumns: 'fitColumns',
5
+ lowDensity: 'fitData',
6
+ };
7
+ return layouts[layout] || 'fitDataFill';
8
+ }
@@ -935,6 +935,9 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
935
935
  background: #333;
936
936
  }
937
937
 
938
+ /*
939
+ * @prop --table-max-column-width: defines a maximum width for columns using standard size units, to prevent the table from growing too wide. Set to `auto` if you do not need this limitation. Defaults to `40rem`.
940
+ */
938
941
  :host {
939
942
  display: block;
940
943
  --table-header-background-color: var(--contrast-500);
@@ -1010,9 +1013,20 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1010
1013
  .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
1011
1014
  background-color: rgb(var(--table-header-background-color--hover));
1012
1015
  }
1016
+ .tabulator .tabulator-header .tabulator-col .tabulator-col-content {
1017
+ padding-right: 0.5rem;
1018
+ }
1019
+ .tabulator .tabulator-header .tabulator-col-title-holder {
1020
+ display: flex;
1021
+ gap: 0.25rem;
1022
+ }
1023
+ .tabulator .tabulator-header .tabulator-col-sorter {
1024
+ order: 1;
1025
+ }
1013
1026
  .tabulator .tabulator-header .tabulator-col-title {
1027
+ order: 2;
1014
1028
  font-weight: 500;
1015
- padding-left: 0.125rem;
1029
+ padding-right: 0 !important;
1016
1030
  line-height: 1.25rem;
1017
1031
  }
1018
1032
 
@@ -1034,6 +1048,7 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1034
1048
  .tabulator-row .tabulator-cell {
1035
1049
  border-right: transparent;
1036
1050
  padding: 0.5rem;
1051
+ padding-left: 1rem;
1037
1052
  display: inline-flex;
1038
1053
  align-items: center;
1039
1054
  }
@@ -1046,7 +1061,7 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1046
1061
 
1047
1062
  .tabulator-col,
1048
1063
  .tabulator-cell {
1049
- max-width: 37.5rem;
1064
+ max-width: var(--table-max-column-width, 40rem);
1050
1065
  font-size: 0.8125rem;
1051
1066
  }
1052
1067
 
@@ -1080,62 +1095,67 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1080
1095
  * without being explicitly called by outside code.
1081
1096
  */
1082
1097
  .tabulator-col-sorter {
1083
- right: 1rem !important;
1084
- }
1085
-
1086
- .tabulator-arrow {
1087
- position: absolute;
1088
- transition: border 0.2s ease;
1089
- top: 0.25rem;
1098
+ transition: opacity 0.2s ease;
1099
+ right: 0 !important;
1100
+ position: relative !important;
1101
+ justify-content: center;
1090
1102
  cursor: pointer;
1091
1103
  }
1092
- [aria-sort=none] .tabulator-arrow {
1093
- border-bottom-color: rgb(var(--table-arrow-color)) !important;
1094
- }
1095
- [aria-sort=desc] .tabulator-arrow {
1096
- border-top-color: var(--table-arrow-color--active) !important;
1097
- }
1098
- [aria-sort=asc] .tabulator-arrow {
1099
- border-bottom-color: var(--table-arrow-color--active) !important;
1104
+ [aria-sort=none] .tabulator-col-sorter {
1105
+ opacity: 0;
1100
1106
  }
1101
- [aria-sort=desc] .tabulator-arrow:after, [aria-sort=asc] .tabulator-arrow:after {
1102
- background-color: var(--table-arrow-color--active);
1107
+ [aria-sort=desc] .tabulator-col-sorter, [aria-sort=asc] .tabulator-col-sorter {
1108
+ opacity: 1;
1103
1109
  }
1104
- .tabulator-arrow:before, .tabulator-arrow:after {
1105
- display: block;
1106
- content: "";
1110
+ [aria-sort=desc] .tabulator-col-sorter:before, [aria-sort=asc] .tabulator-col-sorter:before {
1107
1111
  position: absolute;
1108
- bottom: 0;
1109
- }
1110
- .tabulator-arrow:before {
1111
- background-color: rgb(var(--table-header-background-color));
1112
- width: 0.5rem;
1113
- height: 0.5rem;
1114
- transform: rotate(45deg);
1115
- left: -0.25rem;
1116
- top: 0.25rem;
1112
+ content: "";
1113
+ width: 0.125rem;
1114
+ height: 0.4rem;
1115
+ background-color: var(--table-arrow-color--active);
1117
1116
  }
1118
- .tabulator-col.tabulator-sortable:hover .tabulator-arrow:before {
1119
- background-color: rgb(var(--table-header-background-color--hover));
1117
+
1118
+ .tabulator-sortable[aria-sort=desc]:hover .tabulator-col-sorter, .tabulator-sortable[aria-sort=asc]:hover .tabulator-col-sorter {
1119
+ opacity: 1;
1120
+ animation: indicate-sortable-sorted-column 0.5s ease;
1120
1121
  }
1121
- .tabulator-arrow:after {
1122
- width: 0.125rem;
1123
- background-color: rgb(var(--table-arrow-color));
1124
- height: 0.5625rem;
1125
- top: 0.125rem;
1126
- left: -0.0625rem;
1122
+ .tabulator-sortable[aria-sort=none]:hover .tabulator-col-sorter {
1123
+ opacity: 1;
1127
1124
  }
1128
- [aria-sort=desc] .tabulator-arrow {
1129
- top: 0.625rem;
1125
+ .tabulator-sortable[aria-sort=none]:hover .tabulator-col-sorter .tabulator-arrow {
1126
+ animation: indicate-sortable-unsorted-column 2s ease forwards;
1130
1127
  }
1131
- [aria-sort=desc] .tabulator-arrow:before {
1132
- top: -0.75rem;
1128
+
1129
+ .tabulator-arrow {
1130
+ transition: border 0.2s ease;
1131
+ border-left: 0.25rem solid transparent !important;
1132
+ border-right: 0.25rem solid transparent !important;
1133
+ }
1134
+ .tabulator#tabulator-table .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-arrow {
1135
+ height: 0.75rem;
1136
+ border-top-width: 0.25rem;
1137
+ border-top-style: solid;
1138
+ border-top-color: rgb(var(--table-arrow-color));
1139
+ border-bottom-width: 0.25rem;
1140
+ border-bottom-style: solid;
1141
+ border-bottom-color: rgb(var(--table-arrow-color));
1142
+ }
1143
+ .tabulator#tabulator-table .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=desc] .tabulator-arrow {
1144
+ height: 0;
1145
+ transform: translate3d(0, 0.2rem, 0);
1146
+ border-top-width: 0.25rem;
1147
+ border-bottom-width: 0;
1148
+ border-top-color: var(--table-arrow-color--active);
1133
1149
  }
1134
- [aria-sort=desc] .tabulator-arrow:after {
1135
- top: -0.6875rem;
1150
+ .tabulator#tabulator-table .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=asc] .tabulator-arrow {
1151
+ height: 0;
1152
+ transform: translate3d(0, -0.2rem, 0);
1153
+ border-top-width: 0;
1154
+ border-bottom-width: 0.25rem;
1155
+ border-bottom-color: var(--table-arrow-color--active);
1136
1156
  }
1137
1157
 
1138
- @keyframes indicate-sortable-column {
1158
+ @keyframes indicate-sortable-sorted-column {
1139
1159
  0%, 100% {
1140
1160
  transform: translate3d(0, 0, 0);
1141
1161
  }
@@ -1146,10 +1166,27 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1146
1166
  transform: translate3d(0, 0.0875rem, 0);
1147
1167
  }
1148
1168
  }
1149
- .tabulator-col.tabulator-sortable:hover .tabulator-arrow {
1150
- animation: indicate-sortable-column 0.5s ease;
1169
+ @keyframes indicate-sortable-unsorted-column {
1170
+ 0%, 15%, 45%, 75% {
1171
+ border-top-color: transparent;
1172
+ border-bottom-color: transparent;
1173
+ transform: translate3d(0, 0, 0);
1174
+ }
1175
+ 30% {
1176
+ border-top-color: transparent;
1177
+ border-bottom-color: var(--table-arrow-color--active);
1178
+ transform: translate3d(0, -0.3125rem, 0);
1179
+ }
1180
+ 60% {
1181
+ border-top-color: var(--table-arrow-color--active);
1182
+ border-bottom-color: transparent;
1183
+ transform: translate3d(0, 0.3125rem, 0);
1184
+ }
1185
+ 100% {
1186
+ border-top-color: rgb(var(--table-arrow-color));
1187
+ border-bottom-color: rgb(var(--table-arrow-color));
1188
+ }
1151
1189
  }
1152
-
1153
1190
  /*
1154
1191
  * This file is imported into every component!
1155
1192
  *
@@ -1307,9 +1344,6 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1307
1344
  :host(.has-low-density) .tabulator-header {
1308
1345
  border-radius: 0.375rem;
1309
1346
  }
1310
- :host(.has-low-density) .tabulator-header .tabulator-col-content {
1311
- padding-left: 0.5rem;
1312
- }
1313
1347
  :host(.has-low-density) .tabulator-footer {
1314
1348
  border-radius: 0.5rem;
1315
1349
  }
@@ -1327,8 +1361,6 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1327
1361
  }
1328
1362
  :host(.has-low-density) .tabulator-row:not(.tabulator-calcs-bottom) .tabulator-cell {
1329
1363
  height: 2.75rem !important;
1330
- padding-left: 0.75rem;
1331
- padding-right: 0.5rem;
1332
1364
  }
1333
1365
  :host(.has-low-density) .tabulator-row:not(.tabulator-calcs-bottom) .tabulator-cell:first-child {
1334
1366
  border-radius: 0.5rem 0 0 0.5rem;
@@ -1373,6 +1405,7 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1373
1405
  display: flex;
1374
1406
  align-items: center;
1375
1407
  margin-right: 1.25rem;
1408
+ gap: 0.25rem;
1376
1409
  }
1377
1410
 
1378
1411
  .title-component-text {
@@ -1465,12 +1498,6 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1465
1498
  align-items: center;
1466
1499
  justify-content: center;
1467
1500
  }
1468
- .select-all limel-checkbox {
1469
- transform: translate(-0.25rem, 0);
1470
- }
1471
- :host(.has-low-density) .select-all limel-checkbox {
1472
- transform: translate(-0.15rem, 0);
1473
- }
1474
1501
 
1475
1502
  .limel-table--row-selector {
1476
1503
  position: sticky !important;
@@ -1478,6 +1505,8 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1478
1505
  border-width: 0;
1479
1506
  justify-content: center;
1480
1507
  z-index: 1;
1508
+ padding-right: 0 !important;
1509
+ padding-left: 0 !important;
1481
1510
  }
1482
1511
  .tabulator-row-odd .limel-table--row-selector {
1483
1512
  background-image: linear-gradient(to right, rgb(var(--table-row-background-color--odd)) 70%, rgb(var(--table-row-background-color--odd), 0));
@@ -1496,7 +1525,6 @@ body.tabulator-print-fullscreen-hide > *:not(.tabulator-print-fullscreen) {
1496
1525
  transition: opacity 0.2s ease;
1497
1526
  align-self: center;
1498
1527
  opacity: 0.3;
1499
- transform: translate(-0.25rem, 0);
1500
1528
  }
1501
1529
  .tabulator-row:hover .limel-table--row-selector limel-checkbox {
1502
1530
  opacity: 1;
@@ -1,21 +1,27 @@
1
- import { Component, h, Prop, Element, Watch, Event, } from '@stencil/core';
1
+ import { Component, h, Prop, Element, Watch, Event, Host, } from '@stencil/core';
2
2
  import TabulatorTable from 'tabulator-tables';
3
3
  import { ColumnDefinitionFactory, createColumnSorter } from './columns';
4
4
  import { isEqual, has } from 'lodash-es';
5
5
  import { ElementPool } from './element-pool';
6
6
  import { TableSelection } from './table-selection';
7
+ import { mapLayout } from './layout';
7
8
  const FIRST_PAGE = 1;
8
9
  /**
9
10
  * @exampleComponent limel-example-table
10
11
  * @exampleComponent limel-example-table-custom-components
11
12
  * @exampleComponent limel-example-table-header-menu
12
13
  * @exampleComponent limel-example-table-movable-columns
14
+ * @exampleComponent limel-example-table-sorting-disabled
13
15
  * @exampleComponent limel-example-table-local
14
16
  * @exampleComponent limel-example-table-remote
15
17
  * @exampleComponent limel-example-table-activate-row
16
18
  * @exampleComponent limel-example-table-selectable-rows
17
19
  * @exampleComponent limel-example-table-default-sorted
18
- * @exampleComponent limel-example-table-low-density
20
+ * @exampleComponent limel-example-table-layout-default
21
+ * @exampleComponent limel-example-table-layout-stretch-last-column
22
+ * @exampleComponent limel-example-table-layout-stretch-columns
23
+ * @exampleComponent limel-example-table-layout-low-density
24
+ * @exampleComponent limel-example-table-interactive-rows
19
25
  */
20
26
  export class Table {
21
27
  constructor() {
@@ -254,7 +260,7 @@ export class Table {
254
260
  const ajaxOptions = this.getAjaxOptions();
255
261
  const paginationOptions = this.getPaginationOptions();
256
262
  const columnOptions = this.getColumnOptions();
257
- return Object.assign(Object.assign(Object.assign(Object.assign({ data: this.data, layout: 'fitDataFill', columns: this.getColumnDefinitions(), dataSorting: this.handleDataSorting, pageLoaded: this.handlePageLoaded }, ajaxOptions), paginationOptions), { rowClick: this.onClickRow, rowFormatter: this.formatRow, initialSort: this.getColumnSorter(), nestedFieldSeparator: false }), columnOptions);
263
+ return Object.assign(Object.assign(Object.assign(Object.assign({ data: this.data, layout: mapLayout(this.layout), columns: this.getColumnDefinitions(), dataSorting: this.handleDataSorting, pageLoaded: this.handlePageLoaded }, ajaxOptions), paginationOptions), { rowClick: this.onClickRow, rowFormatter: this.formatRow, initialSort: this.getColumnSorter(), nestedFieldSeparator: false }), columnOptions);
258
264
  }
259
265
  getColumnSorter() {
260
266
  var _a;
@@ -433,18 +439,21 @@ export class Table {
433
439
  }
434
440
  render() {
435
441
  var _a;
436
- return (h("div", { id: "tabulator-container", class: {
437
- 'has-pagination': this.totalRows > this.pageSize,
438
- 'has-aggregation': this.hasAggregation(this.columns),
439
- 'has-movable-columns': this.movableColumns,
440
- 'has-rowselector': this.selectable,
441
- 'has-selection': (_a = this.tableSelection) === null || _a === void 0 ? void 0 : _a.hasSelection,
442
+ return (h(Host, { class: {
443
+ 'has-low-density': this.layout === 'lowDensity',
442
444
  } },
443
- h("div", { id: "tabulator-loader", style: { display: this.loading ? 'flex' : 'none' } },
444
- h("limel-spinner", { size: "large" })),
445
- this.renderEmptyMessage(),
446
- this.renderSelectAll(),
447
- h("div", { id: "tabulator-table" })));
445
+ h("div", { id: "tabulator-container", class: {
446
+ 'has-pagination': this.totalRows > this.pageSize,
447
+ 'has-aggregation': this.hasAggregation(this.columns),
448
+ 'has-movable-columns': this.movableColumns,
449
+ 'has-rowselector': this.selectable,
450
+ 'has-selection': (_a = this.tableSelection) === null || _a === void 0 ? void 0 : _a.hasSelection,
451
+ } },
452
+ h("div", { id: "tabulator-loader", style: { display: this.loading ? 'flex' : 'none' } },
453
+ h("limel-spinner", { size: "large" })),
454
+ this.renderEmptyMessage(),
455
+ this.renderSelectAll(),
456
+ h("div", { id: "tabulator-table" }))));
448
457
  }
449
458
  renderSelectAll() {
450
459
  var _a, _b, _c;
@@ -453,7 +462,7 @@ export class Table {
453
462
  }
454
463
  const showSelectAll = !this.loading && this.tableSelection;
455
464
  return (h("div", { class: "select-all", style: { display: showSelectAll ? 'inline-block' : 'none' } },
456
- h("limel-checkbox", { onChange: this.selectAllOnChange, disabled: !this.totalRows, checked: (_a = this.tableSelection) === null || _a === void 0 ? void 0 : _a.hasSelection, indeterminate: ((_b = this.tableSelection) === null || _b === void 0 ? void 0 : _b.hasSelection) &&
465
+ h("limel-checkbox", { onChange: this.selectAllOnChange, disabled: !this.data.length, checked: (_a = this.tableSelection) === null || _a === void 0 ? void 0 : _a.hasSelection, indeterminate: ((_b = this.tableSelection) === null || _b === void 0 ? void 0 : _b.hasSelection) &&
457
466
  ((_c = this.selection) === null || _c === void 0 ? void 0 : _c.length) < this.data.length })));
458
467
  }
459
468
  renderEmptyMessage() {
@@ -525,6 +534,28 @@ export class Table {
525
534
  "reflect": false,
526
535
  "defaultValue": "'local'"
527
536
  },
537
+ "layout": {
538
+ "type": "string",
539
+ "mutable": false,
540
+ "complexType": {
541
+ "original": "Layout",
542
+ "resolved": "\"default\" | \"lowDensity\" | \"stretchColumns\" | \"stretchLastColumn\"",
543
+ "references": {
544
+ "Layout": {
545
+ "location": "import",
546
+ "path": "./layout"
547
+ }
548
+ }
549
+ },
550
+ "required": false,
551
+ "optional": false,
552
+ "docs": {
553
+ "tags": [],
554
+ "text": "Defines the layout of the table, based on how width of the columns are calculated.\n\n- `default`: makes columns as wide as their contents.\n- `stretchLastColumn`: makes columns as wide as their contents, stretch the last column to fill up the remaining table width.\n- `stretchColumns`: stretches all columns to fill the available width when possible.\n- `lowDensity`: makes columns as wide as their contents, and creates a low density and airy layout."
555
+ },
556
+ "attribute": "layout",
557
+ "reflect": false
558
+ },
528
559
  "pageSize": {
529
560
  "type": "number",
530
561
  "mutable": false,
@@ -0,0 +1,19 @@
1
+ .CodeMirror-lint-tooltip.cm-s-lime {
2
+ position: fixed;
3
+ z-index: var(--tooltip-z-index, var(--dropdown-z-index, 130));
4
+ transition: opacity 0.4s ease 0s;
5
+ opacity: 0;
6
+
7
+ color: var(--mdc-theme-text-primary-on-background);
8
+ background-color: var(--mdc-theme-on-primary);
9
+
10
+ font-family: monospace;
11
+ font-size: 0.875rem; // 14px, like the default code editor's font size
12
+ white-space: pre-wrap;
13
+ // overflow: hidden; // Why `hidden`?
14
+
15
+ padding: 0.25rem 0.5rem;
16
+ border-radius: 0.5rem;
17
+ max-width: 40rem;
18
+ box-shadow: var(--shadow-depth-64);
19
+ }
@@ -1,5 +1,16 @@
1
1
  @use './functions';
2
2
 
3
+ @mixin visualize-keyboard-focus {
4
+ &:focus {
5
+ outline: none;
6
+ }
7
+
8
+ &:focus-visible {
9
+ outline: none;
10
+ box-shadow: var(--shadow-depth-8-focused);
11
+ }
12
+ }
13
+
3
14
  @mixin in($media) {
4
15
  @if $media == dark-mode {
5
16
  @media (prefers-color-scheme: dark) {
@@ -1,5 +1,5 @@
1
1
  import { c as createCommonjsModule, b as commonjsRequire, a as commonjsGlobal } from './_commonjsHelpers-5ec8f9b7.js';
2
- import { m as moment } from './moment-367e51c5.js';
2
+ import { m as moment } from './moment-faa8a4a8.js';
3
3
 
4
4
  createCommonjsModule(function (module, exports) {
5
5
  (function (global, factory) {