@tylertech/forge 3.8.2-dev.0 → 3.9.0-dev.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.
- package/custom-elements.json +9827 -9331
- package/dist/lib.js +27 -105
- package/dist/lib.js.map +4 -4
- package/dist/toolbar/forge-toolbar.css +1 -0
- package/dist/vscode.css-custom-data.json +950 -943
- package/dist/vscode.html-custom-data.json +819 -772
- package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
- package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
- package/esm/app-bar/search/app-bar-search.js +1 -1
- package/esm/autocomplete/autocomplete.js +1 -1
- package/esm/banner/banner.js +1 -1
- package/esm/button/base/base-button-adapter.js +1 -1
- package/esm/button/base/base-button.js +1 -1
- package/esm/calendar/calendar.js +1 -1
- package/esm/chips/chip/chip.js +1 -1
- package/esm/color-picker/color-picker.js +1 -1
- package/esm/core/utils/dismissible-stack.d.ts +5 -1
- package/esm/core/utils/dismissible-stack.js +6 -0
- package/esm/data-table/body/body.d.ts +33 -0
- package/esm/data-table/body/body.js +42 -0
- package/esm/data-table/body/index.d.ts +6 -0
- package/esm/data-table/body/index.js +6 -0
- package/esm/data-table/cell/cell.d.ts +33 -0
- package/esm/data-table/cell/cell.js +42 -0
- package/esm/data-table/cell/index.d.ts +6 -0
- package/esm/data-table/cell/index.js +6 -0
- package/esm/data-table/column/column.d.ts +33 -0
- package/esm/data-table/column/column.js +42 -0
- package/esm/data-table/column/index.d.ts +6 -0
- package/esm/data-table/column/index.js +6 -0
- package/esm/data-table/footer/footer.d.ts +33 -0
- package/esm/data-table/footer/footer.js +42 -0
- package/esm/data-table/footer/index.d.ts +6 -0
- package/esm/data-table/footer/index.js +6 -0
- package/esm/data-table/head/head.d.ts +33 -0
- package/esm/data-table/head/head.js +42 -0
- package/esm/data-table/head/index.d.ts +6 -0
- package/esm/data-table/head/index.js +6 -0
- package/esm/data-table/index.d.ts +12 -0
- package/esm/data-table/index.js +12 -0
- package/esm/data-table/row/index.d.ts +6 -0
- package/esm/data-table/row/index.js +6 -0
- package/esm/data-table/row/row.d.ts +33 -0
- package/esm/data-table/row/row.js +42 -0
- package/esm/data-table/table/index.d.ts +6 -0
- package/esm/data-table/table/index.js +6 -0
- package/esm/data-table/table/table.d.ts +36 -0
- package/esm/data-table/table/table.js +40 -0
- package/esm/date-picker/date-picker.js +1 -1
- package/esm/date-range-picker/date-range-picker.js +1 -1
- package/esm/icon/icon-constants.d.ts +2 -1
- package/esm/icon/icon-constants.js +2 -1
- package/esm/icon/icon-core.js +6 -2
- package/esm/icon/icon-utils.d.ts +2 -1
- package/esm/icon/icon-utils.js +2 -2
- package/esm/icon/icon.d.ts +3 -1
- package/esm/icon/icon.js +1 -1
- package/esm/icon-button/icon-button-core.js +11 -2
- package/esm/list-dropdown/list-dropdown-utils.js +1 -1
- package/esm/list-dropdown/list-dropdown.js +1 -1
- package/esm/menu/menu.js +1 -1
- package/esm/open-icon/open-icon.js +1 -1
- package/esm/paginator/paginator.js +1 -1
- package/esm/popover/popover-constants.d.ts +3 -0
- package/esm/popover/popover-constants.js +4 -2
- package/esm/popover/popover-core.d.ts +4 -0
- package/esm/popover/popover-core.js +20 -0
- package/esm/popover/popover.d.ts +4 -0
- package/esm/popover/popover.js +8 -0
- package/esm/select/select/select.js +1 -1
- package/esm/split-view/split-view-panel/split-view-panel.js +3 -4
- package/esm/stepper/step/step.js +1 -1
- package/esm/table/table-core.js +1 -0
- package/esm/table/table.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
- package/esm/tabs/tab-bar/tab-bar-core.d.ts +1 -0
- package/esm/tabs/tab-bar/tab-bar-core.js +27 -30
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker.js +1 -2
- package/esm/toast/toast.js +1 -1
- package/esm/toolbar/toolbar.js +1 -1
- package/package.json +2 -2
- package/sass/data-table/_core.scss +52 -0
- package/sass/data-table/_token-utils.scss +15 -0
- package/sass/data-table/body/body.scss +27 -0
- package/sass/data-table/cell/cell.scss +27 -0
- package/sass/data-table/column/column.scss +27 -0
- package/sass/data-table/footer/footer.scss +27 -0
- package/sass/data-table/head/head.scss +27 -0
- package/sass/data-table/index.scss +12 -0
- package/sass/data-table/row/row.scss +27 -0
- package/sass/data-table/table/table.scss +16 -0
- package/sass/toolbar/_core.scss +5 -0
- package/sass/toolbar/toolbar.scss +4 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { getShadowElement, toggleAttribute } from '@tylertech/forge-core';
|
|
7
|
-
import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconKeyboardArrowUp, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons
|
|
7
|
+
import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconKeyboardArrowUp, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons';
|
|
8
8
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
9
9
|
import { TAB_CONSTANTS } from '../tab/tab-constants';
|
|
10
10
|
import { TAB_BAR_CONSTANTS } from './tab-bar-constants';
|
|
@@ -18,6 +18,7 @@ export class TabBarCore {
|
|
|
18
18
|
this._inverted = false;
|
|
19
19
|
this._autoActivate = false;
|
|
20
20
|
this._scrollButtons = false;
|
|
21
|
+
this._tabs = [];
|
|
21
22
|
this._scrollButtonsVisible = false;
|
|
22
23
|
this._tabsChangedListener = () => this._onTabsChanged();
|
|
23
24
|
this._tabSelectedListener = (evt) => this._onTabSelected(evt);
|
|
@@ -37,7 +38,7 @@ export class TabBarCore {
|
|
|
37
38
|
this._adapter.initializeScrollObserver(this._scrollListener);
|
|
38
39
|
this._updateScrollState();
|
|
39
40
|
}
|
|
40
|
-
this.
|
|
41
|
+
this._tryScrollActiveTabIntoView();
|
|
41
42
|
this._isInitialized = true;
|
|
42
43
|
}
|
|
43
44
|
destroy() {
|
|
@@ -46,6 +47,7 @@ export class TabBarCore {
|
|
|
46
47
|
this._isInitialized = false;
|
|
47
48
|
}
|
|
48
49
|
async _onTabsChanged() {
|
|
50
|
+
this._tabs = this._adapter.getTabs();
|
|
49
51
|
this._syncTabState();
|
|
50
52
|
if (this._scrollButtons) {
|
|
51
53
|
this._detectScrollableStatus();
|
|
@@ -63,25 +65,24 @@ export class TabBarCore {
|
|
|
63
65
|
}
|
|
64
66
|
evt.preventDefault();
|
|
65
67
|
let index = -1;
|
|
66
|
-
const tabs = this._adapter.getTabs();
|
|
67
68
|
if (evt.key === 'Home') {
|
|
68
69
|
// Locate the first non-disabled tab
|
|
69
|
-
index =
|
|
70
|
+
index = this._tabs.findIndex(tab => !tab.disabled);
|
|
70
71
|
}
|
|
71
72
|
else if (evt.key === 'End') {
|
|
72
73
|
// Locate the last non-disabled tab
|
|
73
|
-
index =
|
|
74
|
+
index = this._tabs.reduceRight((acc, tab, i) => (!tab.disabled && acc === -1 ? i : acc), -1);
|
|
74
75
|
}
|
|
75
76
|
else {
|
|
76
77
|
// Locate the next or previous tab based on the key that was pressed
|
|
77
|
-
const currentIndex =
|
|
78
|
+
const currentIndex = this._tabs.findIndex(tab => tab.matches(':focus'));
|
|
78
79
|
const isPrevKey = evt.key === 'ArrowLeft' || evt.key === 'ArrowUp';
|
|
79
80
|
const calcIndex = (startIndex) => {
|
|
80
81
|
index = startIndex + (isPrevKey ? -1 : 1);
|
|
81
|
-
index = index < 0 ?
|
|
82
|
+
index = index < 0 ? this._tabs.length - 1 : index % this._tabs.length;
|
|
82
83
|
// Try to recurse until we find a non-disabled tab (unless all tabs are disabled already)
|
|
83
|
-
const isAllTabsDisabled =
|
|
84
|
-
if (!isAllTabsDisabled &&
|
|
84
|
+
const isAllTabsDisabled = this._tabs.every(tab => tab.disabled);
|
|
85
|
+
if (!isAllTabsDisabled && this._tabs[index]?.disabled) {
|
|
85
86
|
calcIndex(index);
|
|
86
87
|
}
|
|
87
88
|
};
|
|
@@ -91,24 +92,23 @@ export class TabBarCore {
|
|
|
91
92
|
return;
|
|
92
93
|
}
|
|
93
94
|
if (this._autoActivate) {
|
|
94
|
-
this._selectTab({ tab:
|
|
95
|
+
this._selectTab({ tab: this._tabs[index], focusTab: true });
|
|
95
96
|
}
|
|
96
97
|
else {
|
|
97
|
-
|
|
98
|
-
await this._adapter.tryScrollTabIntoView(
|
|
98
|
+
this._tabs[index].focus({ preventScroll: true, focusVisible: true });
|
|
99
|
+
await this._adapter.tryScrollTabIntoView(this._tabs[index]);
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
async _selectTab({ tab, emitEvent = true, focusTab = false }) {
|
|
102
103
|
if (!tab || tab.disabled) {
|
|
103
104
|
return;
|
|
104
105
|
}
|
|
105
|
-
const
|
|
106
|
-
const currentSelectedTab = tabs.find(t => t.selected);
|
|
106
|
+
const currentSelectedTab = this._tabs.find(t => t.selected);
|
|
107
107
|
if (currentSelectedTab === tab) {
|
|
108
108
|
return;
|
|
109
109
|
}
|
|
110
110
|
if (emitEvent) {
|
|
111
|
-
const index =
|
|
111
|
+
const index = this._tabs.indexOf(tab);
|
|
112
112
|
const event = new CustomEvent(TAB_BAR_CONSTANTS.events.CHANGE, {
|
|
113
113
|
detail: { index },
|
|
114
114
|
bubbles: true,
|
|
@@ -132,7 +132,7 @@ export class TabBarCore {
|
|
|
132
132
|
if (currentSelectedTab) {
|
|
133
133
|
currentSelectedTab.selected = false;
|
|
134
134
|
}
|
|
135
|
-
this._activeTab =
|
|
135
|
+
this._activeTab = this._tabs.indexOf(tab);
|
|
136
136
|
}
|
|
137
137
|
/**
|
|
138
138
|
* Ensures that all tabs have the correct state based on the tab bar state.
|
|
@@ -140,14 +140,13 @@ export class TabBarCore {
|
|
|
140
140
|
* This is called whenever a child tab is added to the DOM.
|
|
141
141
|
*/
|
|
142
142
|
_syncTabState() {
|
|
143
|
-
|
|
144
|
-
tabs.forEach((tab, index) => {
|
|
143
|
+
this._tabs.forEach((tab, index) => {
|
|
145
144
|
tab.selected = index === this._activeTab;
|
|
146
|
-
if (this._disabled)
|
|
145
|
+
if (this._disabled)
|
|
147
146
|
tab.disabled = this._disabled;
|
|
148
|
-
}
|
|
149
147
|
tab.vertical = this._vertical;
|
|
150
148
|
tab.stacked = this._stacked;
|
|
149
|
+
tab.secondary = this._secondary;
|
|
151
150
|
tab.inverted = this._inverted;
|
|
152
151
|
});
|
|
153
152
|
}
|
|
@@ -200,11 +199,10 @@ export class TabBarCore {
|
|
|
200
199
|
}
|
|
201
200
|
// We batch the tab scrolling into a single animation frame to unnecessarily scrolling for each tab
|
|
202
201
|
this._tabScrollAnimationFrame = window.requestAnimationFrame(() => {
|
|
203
|
-
const tabs = this._adapter.getTabs();
|
|
204
202
|
this._tabScrollAnimationFrame = undefined;
|
|
205
203
|
if (this._adapter.isScrollable()) {
|
|
206
|
-
if (typeof this._activeTab === 'number' && this._activeTab >= 0 &&
|
|
207
|
-
this._adapter.tryScrollTabIntoView(
|
|
204
|
+
if (typeof this._activeTab === 'number' && this._activeTab >= 0 && this._tabs[this._activeTab]) {
|
|
205
|
+
this._adapter.tryScrollTabIntoView(this._tabs[this._activeTab]);
|
|
208
206
|
}
|
|
209
207
|
}
|
|
210
208
|
});
|
|
@@ -216,7 +214,7 @@ export class TabBarCore {
|
|
|
216
214
|
value = Boolean(value);
|
|
217
215
|
if (this._disabled !== value) {
|
|
218
216
|
this._disabled = value;
|
|
219
|
-
this.
|
|
217
|
+
this._tabs.forEach(tab => (tab.disabled = this._disabled));
|
|
220
218
|
this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.DISABLED, this._disabled);
|
|
221
219
|
}
|
|
222
220
|
}
|
|
@@ -226,14 +224,13 @@ export class TabBarCore {
|
|
|
226
224
|
set activeTab(value) {
|
|
227
225
|
if (this._activeTab !== value) {
|
|
228
226
|
this._activeTab = value ?? undefined;
|
|
229
|
-
const tabs = this._adapter.getTabs();
|
|
230
227
|
if (typeof this._activeTab === 'number') {
|
|
231
|
-
const newSelectedTab =
|
|
228
|
+
const newSelectedTab = this._tabs[this._activeTab];
|
|
232
229
|
this._selectTab({ tab: newSelectedTab, emitEvent: false, focusTab: false });
|
|
233
230
|
this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, String(this._activeTab));
|
|
234
231
|
}
|
|
235
232
|
else {
|
|
236
|
-
|
|
233
|
+
this._tabs.forEach(tab => (tab.selected = false));
|
|
237
234
|
this._adapter.removeHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB);
|
|
238
235
|
}
|
|
239
236
|
}
|
|
@@ -248,7 +245,7 @@ export class TabBarCore {
|
|
|
248
245
|
if (this._isInitialized) {
|
|
249
246
|
this._adapter.setVertical(this._vertical);
|
|
250
247
|
}
|
|
251
|
-
this.
|
|
248
|
+
this._tabs.forEach(tab => (tab.vertical = this._vertical));
|
|
252
249
|
if (this._scrollButtonsVisible) {
|
|
253
250
|
this._adapter.updateScrollButtonIcons(this._vertical);
|
|
254
251
|
}
|
|
@@ -272,7 +269,7 @@ export class TabBarCore {
|
|
|
272
269
|
value = Boolean(value);
|
|
273
270
|
if (this._stacked !== value) {
|
|
274
271
|
this._stacked = value;
|
|
275
|
-
this.
|
|
272
|
+
this._tabs.forEach(tab => (tab.stacked = this._stacked));
|
|
276
273
|
this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED, this._stacked);
|
|
277
274
|
}
|
|
278
275
|
}
|
|
@@ -283,7 +280,7 @@ export class TabBarCore {
|
|
|
283
280
|
value = Boolean(value);
|
|
284
281
|
if (this._secondary !== value) {
|
|
285
282
|
this._secondary = value;
|
|
286
|
-
this.
|
|
283
|
+
this._tabs.forEach(tab => (tab.secondary = this._secondary));
|
|
287
284
|
this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.SECONDARY, this._secondary);
|
|
288
285
|
}
|
|
289
286
|
}
|
|
@@ -294,7 +291,7 @@ export class TabBarCore {
|
|
|
294
291
|
value = Boolean(value);
|
|
295
292
|
if (this._inverted !== value) {
|
|
296
293
|
this._inverted = value;
|
|
297
|
-
this.
|
|
294
|
+
this._tabs.forEach(tab => (tab.inverted = this._inverted));
|
|
298
295
|
this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.INVERTED, this._inverted);
|
|
299
296
|
}
|
|
300
297
|
}
|
|
@@ -12,7 +12,7 @@ import { TabComponent } from '../tab/tab';
|
|
|
12
12
|
import { TabBarAdapter } from './tab-bar-adapter';
|
|
13
13
|
import { TAB_BAR_CONSTANTS } from './tab-bar-constants';
|
|
14
14
|
import { TabBarCore } from './tab-bar-core';
|
|
15
|
-
import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconKeyboardArrowUp, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons
|
|
15
|
+
import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconKeyboardArrowUp, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons';
|
|
16
16
|
import { WithElementInternals } from '../../core/mixins/internals/with-element-internals';
|
|
17
17
|
import { WithDefaultAria } from '../../core/mixins/internals/with-default-aria';
|
|
18
18
|
import { setDefaultAria } from '../../constants';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, coerceBoolean, customElement, coreProperty } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconClear } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconClear } from '@tylertech/tyler-icons';
|
|
9
9
|
import { BASE_FIELD_CONSTANTS, FieldComponent } from '../field';
|
|
10
10
|
import { BaseField } from '../field/base/base-field';
|
|
11
11
|
import { IconRegistry } from '../icon';
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { customElement, attachShadowTemplate, coreProperty, coerceBoolean, coerceNumber, ensureChild } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconClockOutline } from '@tylertech/tyler-icons
|
|
9
|
-
import { tylIconClose } from '@tylertech/tyler-icons/standard';
|
|
8
|
+
import { tylIconClockOutline, tylIconClose } from '@tylertech/tyler-icons';
|
|
10
9
|
import { TimePickerAdapter } from './time-picker-adapter';
|
|
11
10
|
import { TimePickerCore } from './time-picker-core';
|
|
12
11
|
import { TIME_PICKER_CONSTANTS } from './time-picker-constants';
|
package/esm/toast/toast.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, coerceBoolean, customElement, coreProperty } from '@tylertech/forge-core';
|
|
8
|
-
import { tylIconClose } from '@tylertech/tyler-icons
|
|
8
|
+
import { tylIconClose } from '@tylertech/tyler-icons';
|
|
9
9
|
import { ButtonComponent } from '../button';
|
|
10
10
|
import { setDefaultAria } from '../constants';
|
|
11
11
|
import { BaseComponent } from '../core/base/base-component';
|
package/esm/toolbar/toolbar.js
CHANGED
|
@@ -8,7 +8,7 @@ import { customElement, attachShadowTemplate, coerceBoolean } from '@tylertech/f
|
|
|
8
8
|
import { BaseComponent } from '../core/base/base-component';
|
|
9
9
|
import { TOOLBAR_CONSTANTS } from './toolbar-constants';
|
|
10
10
|
const template = '<template><div class=\"forge-toolbar\" part=\"root\"><div class=\"section\" part=\"before-section-start\"><slot name=\"before-start\"></slot></div><div class=\"inner center\" part=\"inner\"><div class=\"section\" part=\"section-start\"><slot name=\"start\"></slot><slot></slot></div><div class=\"section center\" part=\"section-center\"><slot name=\"center\"></slot></div><div class=\"section end\" part=\"section-end\"><slot name=\"end\"></slot></div></div><div class=\"section end\" part=\"after-section-end\"><slot name=\"after-end\"></slot></div></div></template>';
|
|
11
|
-
const styles = ':host{display:block}:host([hidden]){display:none}.forge-toolbar{--_toolbar-background:var(--forge-toolbar-background, var(--forge-theme-surface, #ffffff));--_toolbar-height:var(--forge-toolbar-height, 56px);--_toolbar-min-height:var(--forge-toolbar-min-height, var(--_toolbar-height));--_toolbar-divider-width:var(--forge-toolbar-divider-width, var(--forge-border-thin, 1px));--_toolbar-divider-style:var(--forge-toolbar-divider-style, solid);--_toolbar-divider-color:var(--forge-toolbar-divider-color, var(--forge-theme-outline, #e0e0e0));--_toolbar-shape:var(--forge-toolbar-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_toolbar-start-start-shape:var(--forge-toolbar-start-start-shape, var(--_toolbar-shape));--_toolbar-start-end-shape:var(--forge-toolbar-start-end-shape, var(--_toolbar-shape));--_toolbar-end-start-shape:var(--forge-toolbar-end-start-shape, 0);--_toolbar-end-end-shape:var(--forge-toolbar-end-end-shape, 0);--_toolbar-padding:var(--forge-toolbar-padding, var(--forge-spacing-medium, 16px));--_toolbar-padding-block:var(--forge-toolbar-padding-block, 0);--_toolbar-padding-inline:var(--forge-toolbar-padding-inline, var(--_toolbar-padding));--_toolbar-columns:var(--forge-toolbar-columns, auto 1fr auto)}.forge-toolbar{display:grid;grid-template-columns:var(--_toolbar-columns);height:var(--_toolbar-height);min-height:var(--_toolbar-min-height);box-sizing:border-box;padding-inline:0;border-block-end-width:var(--_toolbar-divider-width);border-block-end-style:var(--_toolbar-divider-style);border-block-end-color:var(--_toolbar-divider-color);border-start-start-radius:var(--_toolbar-start-start-shape);border-start-end-radius:var(--_toolbar-start-end-shape);border-end-start-radius:var(--_toolbar-end-start-shape);border-end-end-radius:var(--_toolbar-end-end-shape);background:var(--_toolbar-background)}.inner{display:grid;grid-template-columns:var(--_toolbar-columns);padding-inline:var(--_toolbar-padding-inline);padding-block:var(--_toolbar-padding-block);box-sizing:border-box}.section{display:flex;align-items:center;width:100%;box-sizing:border-box}.section.center{justify-content:center}.section.end{justify-content:end}:host([inverted]) .forge-toolbar{--_toolbar-start-start-shape:var(--forge-toolbar-start-start-shape, 0);--_toolbar-start-end-shape:var(--forge-toolbar-start-end-shape, 0);--_toolbar-end-start-shape:var(--_toolbar-shape);--_toolbar-end-end-shape:var(--_toolbar-shape);border-block-end:none;border-block-start-width:var(--_toolbar-divider-width);border-block-start-style:var(--_toolbar-divider-style);border-block-start-color:var(--_toolbar-divider-color)}:host(:is([no-divider],[no-border])) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{--_toolbar-padding:var(--forge-toolbar-padding, 0)}:host([auto-height]) .forge-toolbar{--_toolbar-height:var(--forge-toolbar-height, auto)}::slotted(:is(h1,h2,h3,h4,h5,h6,p)){margin:0}';
|
|
11
|
+
const styles = ':host{display:block}:host([hidden]){display:none}.forge-toolbar{--_toolbar-background:var(--forge-toolbar-background, var(--forge-theme-surface, #ffffff));--_toolbar-height:var(--forge-toolbar-height, 56px);--_toolbar-min-height:var(--forge-toolbar-min-height, var(--_toolbar-height));--_toolbar-divider-width:var(--forge-toolbar-divider-width, var(--forge-border-thin, 1px));--_toolbar-divider-style:var(--forge-toolbar-divider-style, solid);--_toolbar-divider-color:var(--forge-toolbar-divider-color, var(--forge-theme-outline, #e0e0e0));--_toolbar-shape:var(--forge-toolbar-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_toolbar-start-start-shape:var(--forge-toolbar-start-start-shape, var(--_toolbar-shape));--_toolbar-start-end-shape:var(--forge-toolbar-start-end-shape, var(--_toolbar-shape));--_toolbar-end-start-shape:var(--forge-toolbar-end-start-shape, 0);--_toolbar-end-end-shape:var(--forge-toolbar-end-end-shape, 0);--_toolbar-padding:var(--forge-toolbar-padding, var(--forge-spacing-medium, 16px));--_toolbar-padding-block:var(--forge-toolbar-padding-block, 0);--_toolbar-padding-inline:var(--forge-toolbar-padding-inline, var(--_toolbar-padding));--_toolbar-columns:var(--forge-toolbar-columns, auto 1fr auto)}.forge-toolbar{display:grid;grid-template-columns:var(--_toolbar-columns);height:var(--_toolbar-height);min-height:var(--_toolbar-min-height);box-sizing:border-box;padding-inline:0;border-block-end-width:var(--_toolbar-divider-width);border-block-end-style:var(--_toolbar-divider-style);border-block-end-color:var(--_toolbar-divider-color);border-start-start-radius:var(--_toolbar-start-start-shape);border-start-end-radius:var(--_toolbar-start-end-shape);border-end-start-radius:var(--_toolbar-end-start-shape);border-end-end-radius:var(--_toolbar-end-end-shape);background:var(--_toolbar-background)}.inner{display:grid;grid-template-columns:var(--_toolbar-columns);padding-inline:var(--_toolbar-padding-inline);padding-block:var(--_toolbar-padding-block);box-sizing:border-box}.inner.center{min-width:0}.section{display:flex;align-items:center;width:100%;box-sizing:border-box}.section.center{justify-content:center;min-width:0}.section.end{justify-content:end}:host([inverted]) .forge-toolbar{--_toolbar-start-start-shape:var(--forge-toolbar-start-start-shape, 0);--_toolbar-start-end-shape:var(--forge-toolbar-start-end-shape, 0);--_toolbar-end-start-shape:var(--_toolbar-shape);--_toolbar-end-end-shape:var(--_toolbar-shape);border-block-end:none;border-block-start-width:var(--_toolbar-divider-width);border-block-start-style:var(--_toolbar-divider-style);border-block-start-color:var(--_toolbar-divider-color)}:host(:is([no-divider],[no-border])) .forge-toolbar{border:none}:host([no-padding]) .forge-toolbar{--_toolbar-padding:var(--forge-toolbar-padding, 0)}:host([auto-height]) .forge-toolbar{--_toolbar-height:var(--forge-toolbar-height, auto)}::slotted(:is(h1,h2,h3,h4,h5,h6,p)){margin:0}';
|
|
12
12
|
/**
|
|
13
13
|
* @tag forge-toolbar
|
|
14
14
|
*
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tylertech/forge",
|
|
3
3
|
"description": "Tyler Forge™ Web Components library",
|
|
4
|
-
"version": "3.
|
|
4
|
+
"version": "3.9.0-dev.1",
|
|
5
5
|
"author": "Tyler Technologies, Inc.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@floating-ui/dom": "^1.6.13",
|
|
17
17
|
"@tylertech/forge-core": "^3.1.0",
|
|
18
|
-
"@tylertech/tyler-icons": "^
|
|
18
|
+
"@tylertech/tyler-icons": "^2.0.1",
|
|
19
19
|
"imask": "^7.6.1",
|
|
20
20
|
"lit": "^3.2.1",
|
|
21
21
|
"tslib": "^2.8.1"
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core/styles/typography';
|
|
7
|
+
@use './token-utils' as *;
|
|
8
|
+
|
|
9
|
+
@forward './token-utils';
|
|
10
|
+
|
|
11
|
+
// Common mixins for data-table components
|
|
12
|
+
@mixin host() {
|
|
13
|
+
display: block;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Base data-table styles
|
|
17
|
+
@mixin base-table() {
|
|
18
|
+
display: table;
|
|
19
|
+
width: 100%;
|
|
20
|
+
border-collapse: collapse;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// Base column styles
|
|
24
|
+
@mixin base-column() {
|
|
25
|
+
display: table-column;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Base cell styles
|
|
29
|
+
@mixin base-cell() {
|
|
30
|
+
display: table-cell;
|
|
31
|
+
padding: 0.5rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Base row styles
|
|
35
|
+
@mixin base-row() {
|
|
36
|
+
display: table-row;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Base header styles
|
|
40
|
+
@mixin base-head() {
|
|
41
|
+
display: table-header-group;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Base body styles
|
|
45
|
+
@mixin base-body() {
|
|
46
|
+
display: table-row-group;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Base footer styles
|
|
50
|
+
@mixin base-footer() {
|
|
51
|
+
display: table-footer-group;
|
|
52
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core/styles/tokens';
|
|
7
|
+
|
|
8
|
+
// Add your data-table token variables here
|
|
9
|
+
@mixin tokens {
|
|
10
|
+
// Common tokens
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@function token($name) {
|
|
14
|
+
@return var(--forge-data-table-#{$name});
|
|
15
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core' as *;
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Host
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
@include host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([hidden]) {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//
|
|
21
|
+
// Base
|
|
22
|
+
//
|
|
23
|
+
|
|
24
|
+
.forge-data-table-body {
|
|
25
|
+
@include tokens;
|
|
26
|
+
@include base-body;
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core' as *;
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Host
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
@include host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([hidden]) {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//
|
|
21
|
+
// Base
|
|
22
|
+
//
|
|
23
|
+
|
|
24
|
+
.forge-data-table-cell {
|
|
25
|
+
@include tokens;
|
|
26
|
+
@include base-cell;
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core' as *;
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Host
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
@include host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([hidden]) {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//
|
|
21
|
+
// Base
|
|
22
|
+
//
|
|
23
|
+
|
|
24
|
+
.forge-data-table-column {
|
|
25
|
+
@include tokens;
|
|
26
|
+
@include base-column;
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core' as *;
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Host
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
@include host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([hidden]) {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//
|
|
21
|
+
// Base
|
|
22
|
+
//
|
|
23
|
+
|
|
24
|
+
.forge-data-table-footer {
|
|
25
|
+
@include tokens;
|
|
26
|
+
@include base-footer;
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core' as *;
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Host
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
@include host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([hidden]) {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//
|
|
21
|
+
// Base
|
|
22
|
+
//
|
|
23
|
+
|
|
24
|
+
.forge-data-table-head {
|
|
25
|
+
@include tokens;
|
|
26
|
+
@include base-head;
|
|
27
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@forward './table/table';
|
|
7
|
+
@forward './column/column';
|
|
8
|
+
@forward './cell/cell';
|
|
9
|
+
@forward './row/row';
|
|
10
|
+
@forward './head/head';
|
|
11
|
+
@forward './body/body';
|
|
12
|
+
@forward './footer/footer';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
@use '../core' as *;
|
|
7
|
+
|
|
8
|
+
//
|
|
9
|
+
// Host
|
|
10
|
+
//
|
|
11
|
+
|
|
12
|
+
:host {
|
|
13
|
+
@include host;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
:host([hidden]) {
|
|
17
|
+
display: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//
|
|
21
|
+
// Base
|
|
22
|
+
//
|
|
23
|
+
|
|
24
|
+
.forge-data-table-row {
|
|
25
|
+
@include tokens;
|
|
26
|
+
@include base-row;
|
|
27
|
+
}
|
package/sass/toolbar/_core.scss
CHANGED
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
box-sizing: border-box;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
@mixin inner-center {
|
|
48
|
+
min-width: 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
47
51
|
@mixin section {
|
|
48
52
|
display: flex;
|
|
49
53
|
align-items: center;
|
|
@@ -53,6 +57,7 @@
|
|
|
53
57
|
|
|
54
58
|
@mixin center {
|
|
55
59
|
justify-content: center;
|
|
60
|
+
min-width: 0;
|
|
56
61
|
}
|
|
57
62
|
|
|
58
63
|
@mixin end {
|