@tylertech/forge 3.10.5 → 3.12.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.
- package/custom-elements.json +594 -226
- package/dist/app-bar/forge-app-bar.css +13 -5
- package/dist/button/forge-button.css +14 -6
- package/dist/checkbox/forge-checkbox.css +23 -17
- package/dist/chips/forge-chips.css +12 -4
- package/dist/field/forge-field.css +7 -5
- package/dist/floating-action-button/forge-floating-action-button.css +12 -6
- package/dist/forge.css +6 -1
- package/dist/icon-button/forge-icon-button.css +12 -4
- package/dist/lib.js +22 -22
- package/dist/lib.js.map +4 -4
- package/dist/list/forge-list.css +59 -3
- package/dist/radio/forge-radio.css +22 -12
- package/dist/skip-link/forge-skip-link.css +38 -32
- package/dist/state-layer/forge-state-layer.css +2 -0
- package/dist/switch/forge-switch.css +9 -5
- package/dist/table/forge-table.css +6 -1
- package/dist/vscode.html-custom-data.json +104 -79
- package/esm/accordion/accordion.d.ts +2 -0
- package/esm/accordion/accordion.js +2 -0
- package/esm/app-bar/app-bar/app-bar-adapter.js +2 -2
- package/esm/app-bar/app-bar/app-bar.d.ts +1 -1
- package/esm/app-bar/app-bar/app-bar.js +1 -1
- package/esm/app-bar/help-button/app-bar-help-button.d.ts +1 -1
- package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
- package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +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.d.ts +2 -0
- package/esm/app-bar/notification-button/app-bar-notification-button.js +2 -0
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +2 -1
- package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +2 -0
- package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +2 -0
- package/esm/app-bar/profile-button/app-bar-profile-button.js +2 -0
- package/esm/app-bar/search/app-bar-search.d.ts +2 -0
- package/esm/app-bar/search/app-bar-search.js +2 -0
- package/esm/autocomplete/autocomplete-core.js +16 -3
- package/esm/autocomplete/autocomplete.d.ts +2 -0
- package/esm/autocomplete/autocomplete.js +2 -0
- package/esm/avatar/avatar.d.ts +1 -1
- package/esm/avatar/avatar.js +1 -1
- package/esm/backdrop/backdrop.d.ts +2 -0
- package/esm/backdrop/backdrop.js +2 -0
- package/esm/badge/badge.d.ts +2 -0
- package/esm/badge/badge.js +2 -0
- package/esm/banner/banner.d.ts +1 -1
- package/esm/banner/banner.js +1 -1
- package/esm/button/base/base-button-adapter.js +2 -2
- package/esm/button/button.d.ts +1 -6
- package/esm/button/button.js +1 -6
- package/esm/button-area/button-area-adapter.js +2 -2
- package/esm/button-area/button-area.d.ts +1 -4
- package/esm/button-area/button-area.js +1 -4
- package/esm/button-toggle/button-toggle/button-toggle-adapter.js +2 -2
- package/esm/button-toggle/button-toggle/button-toggle.d.ts +2 -0
- package/esm/button-toggle/button-toggle/button-toggle.js +2 -0
- package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +1 -1
- package/esm/button-toggle/button-toggle-group/button-toggle-group.js +1 -1
- package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
- package/esm/calendar/calendar.d.ts +2 -0
- package/esm/calendar/calendar.js +3 -1
- package/esm/card/card.d.ts +2 -0
- package/esm/card/card.js +2 -0
- package/esm/chip-field/chip-field.d.ts +2 -0
- package/esm/chip-field/chip-field.js +2 -0
- package/esm/chips/chip/chip-adapter.d.ts +3 -0
- package/esm/chips/chip/chip-adapter.js +14 -4
- package/esm/chips/chip/chip-constants.d.ts +2 -0
- package/esm/chips/chip/chip-constants.js +2 -1
- package/esm/chips/chip/chip-core.d.ts +4 -0
- package/esm/chips/chip/chip-core.js +9 -0
- package/esm/chips/chip/chip.d.ts +6 -0
- package/esm/chips/chip/chip.js +10 -0
- package/esm/chips/chip-set/chip-set.d.ts +1 -1
- package/esm/chips/chip-set/chip-set.js +1 -1
- package/esm/circular-progress/circular-progress.d.ts +1 -2
- package/esm/circular-progress/circular-progress.js +1 -2
- package/esm/color-picker/color-picker.d.ts +2 -0
- package/esm/color-picker/color-picker.js +3 -1
- package/esm/core/utils/a11y-utils.js +17 -0
- package/esm/core/utils/utils.js +8 -2
- package/esm/date-picker/date-picker.d.ts +2 -0
- package/esm/date-picker/date-picker.js +2 -0
- package/esm/date-range-picker/date-range-picker.d.ts +2 -0
- package/esm/date-range-picker/date-range-picker.js +2 -0
- package/esm/deprecated/button/deprecated-button.js +3 -3
- package/esm/deprecated/icon-button/deprecated-icon-button.js +2 -2
- package/esm/dialog/dialog.d.ts +1 -1
- package/esm/dialog/dialog.js +1 -1
- package/esm/divider/divider.d.ts +1 -1
- package/esm/divider/divider.js +1 -1
- package/esm/drawer/base/base-drawer-adapter.d.ts +2 -0
- package/esm/drawer/base/base-drawer-adapter.js +3 -0
- package/esm/drawer/base/base-drawer-core.js +3 -0
- package/esm/drawer/drawer/drawer.d.ts +2 -0
- package/esm/drawer/drawer/drawer.js +3 -1
- package/esm/drawer/mini-drawer/mini-drawer.d.ts +2 -0
- package/esm/drawer/mini-drawer/mini-drawer.js +3 -1
- package/esm/drawer/modal-drawer/modal-drawer.d.ts +2 -0
- package/esm/drawer/modal-drawer/modal-drawer.js +3 -1
- package/esm/expansion-panel/expansion-panel.d.ts +1 -1
- package/esm/expansion-panel/expansion-panel.js +1 -1
- package/esm/field/field-adapter.js +2 -2
- package/esm/field/field-core.d.ts +3 -3
- package/esm/field/field.d.ts +1 -2
- package/esm/field/field.js +1 -2
- package/esm/file-picker/file-picker.d.ts +2 -3
- package/esm/file-picker/file-picker.js +2 -3
- package/esm/floating-action-button/floating-action-button.d.ts +1 -1
- package/esm/floating-action-button/floating-action-button.js +1 -1
- package/esm/focus-indicator/focus-indicator-constants.d.ts +1 -11
- package/esm/focus-indicator/focus-indicator-constants.js +2 -17
- package/esm/focus-indicator/focus-indicator.d.ts +53 -26
- package/esm/focus-indicator/focus-indicator.js +139 -62
- package/esm/focus-indicator/index.d.ts +0 -2
- package/esm/focus-indicator/index.js +0 -2
- package/esm/icon/icon.d.ts +1 -1
- package/esm/icon/icon.js +1 -1
- package/esm/icon-button/icon-button.d.ts +2 -0
- package/esm/icon-button/icon-button.js +2 -0
- package/esm/inline-message/inline-message.d.ts +1 -1
- package/esm/inline-message/inline-message.js +1 -1
- package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +2 -0
- package/esm/keyboard-shortcut/keyboard-shortcut.js +2 -0
- package/esm/label/label.d.ts +1 -1
- package/esm/label/label.js +1 -1
- package/esm/label-value/label-value.d.ts +1 -1
- package/esm/label-value/label-value.js +1 -1
- package/esm/linear-progress/linear-progress.d.ts +1 -2
- package/esm/linear-progress/linear-progress.js +1 -2
- package/esm/list/list/list.d.ts +1 -1
- package/esm/list/list/list.js +2 -2
- package/esm/list/list-item/list-item-constants.js +1 -1
- package/esm/list/list-item/list-item-core.d.ts +2 -0
- package/esm/list/list-item/list-item-core.js +29 -6
- package/esm/list/list-item/list-item.d.ts +1 -0
- package/esm/list/list-item/list-item.js +2 -1
- package/esm/list-dropdown/list-dropdown-constants.d.ts +11 -1
- package/esm/list-dropdown/list-dropdown-constants.js +6 -1
- package/esm/list-dropdown/list-dropdown-utils.d.ts +3 -1
- package/esm/list-dropdown/list-dropdown-utils.js +69 -21
- package/esm/menu/menu-adapter.d.ts +2 -0
- package/esm/menu/menu-adapter.js +12 -8
- package/esm/menu/menu-constants.d.ts +1 -0
- package/esm/menu/menu-constants.js +3 -2
- package/esm/menu/menu-core.d.ts +5 -0
- package/esm/menu/menu-core.js +41 -2
- package/esm/menu/menu.d.ts +17 -0
- package/esm/menu/menu.js +15 -1
- package/esm/open-icon/open-icon.d.ts +2 -1
- package/esm/open-icon/open-icon.js +2 -1
- package/esm/overlay/overlay.d.ts +1 -2
- package/esm/overlay/overlay.js +1 -2
- package/esm/page-state/page-state.d.ts +2 -1
- package/esm/page-state/page-state.js +2 -1
- package/esm/paginator/paginator-core.d.ts +16 -0
- package/esm/paginator/paginator-core.js +29 -9
- package/esm/paginator/paginator.d.ts +38 -0
- package/esm/paginator/paginator.js +46 -0
- package/esm/popover/popover-adapter.js +1 -1
- package/esm/popover/popover-constants.d.ts +4 -0
- package/esm/popover/popover-constants.js +4 -2
- package/esm/popover/popover-core.d.ts +5 -1
- package/esm/popover/popover-core.js +13 -0
- package/esm/popover/popover.d.ts +6 -2
- package/esm/popover/popover.js +10 -2
- package/esm/profile-card/profile-card.d.ts +3 -0
- package/esm/profile-card/profile-card.js +3 -0
- package/esm/radio/radio/radio.d.ts +1 -2
- package/esm/radio/radio/radio.js +1 -2
- package/esm/scaffold/scaffold.d.ts +1 -1
- package/esm/scaffold/scaffold.js +1 -1
- package/esm/select/core/base-select-constants.d.ts +4 -0
- package/esm/select/core/base-select-core.d.ts +22 -2
- package/esm/select/core/base-select-core.js +217 -40
- package/esm/select/option/option.d.ts +2 -0
- package/esm/select/option/option.js +2 -0
- package/esm/select/option-group/option-group.d.ts +2 -0
- package/esm/select/option-group/option-group.js +2 -0
- package/esm/select/select/select-constants.d.ts +5 -0
- package/esm/select/select/select-constants.js +5 -2
- package/esm/select/select/select.d.ts +14 -2
- package/esm/select/select/select.js +23 -2
- package/esm/select/select-dropdown/select-dropdown.d.ts +2 -0
- package/esm/select/select-dropdown/select-dropdown.js +2 -0
- package/esm/skeleton/skeleton.d.ts +1 -1
- package/esm/skeleton/skeleton.js +1 -1
- package/esm/skip-link/skip-link.d.ts +1 -1
- package/esm/skip-link/skip-link.js +1 -1
- package/esm/slider/slider.d.ts +1 -1
- package/esm/slider/slider.js +1 -1
- package/esm/split-button/split-button.d.ts +1 -1
- package/esm/split-button/split-button.js +2 -2
- package/esm/split-view/split-view/split-view.d.ts +2 -0
- package/esm/split-view/split-view/split-view.js +2 -0
- package/esm/split-view/split-view-panel/split-view-panel.d.ts +2 -0
- package/esm/split-view/split-view-panel/split-view-panel.js +3 -1
- package/esm/stack/stack.d.ts +1 -8
- package/esm/stack/stack.js +1 -8
- package/esm/state-layer/state-layer.d.ts +1 -1
- package/esm/state-layer/state-layer.js +2 -2
- package/esm/stepper/step/step.d.ts +2 -0
- package/esm/stepper/step/step.js +3 -1
- package/esm/stepper/stepper/stepper.d.ts +2 -0
- package/esm/stepper/stepper/stepper.js +2 -0
- package/esm/table/table-adapter.d.ts +4 -4
- package/esm/table/table-adapter.js +4 -4
- package/esm/table/table-core.js +2 -2
- package/esm/table/table-utils.d.ts +2 -2
- package/esm/table/table-utils.js +25 -18
- package/esm/table/table.d.ts +3 -1
- package/esm/table/table.js +4 -1
- package/esm/tabs/tab/tab-adapter.js +2 -2
- package/esm/tabs/tab/tab.d.ts +2 -0
- package/esm/tabs/tab/tab.js +2 -0
- package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
- package/esm/tabs/tab-bar/tab-bar.js +1 -1
- package/esm/text-field/text-field-adapter.d.ts +6 -4
- package/esm/text-field/text-field-adapter.js +11 -4
- package/esm/text-field/text-field-core.d.ts +4 -0
- package/esm/text-field/text-field-core.js +13 -2
- package/esm/text-field/text-field.d.ts +1 -1
- package/esm/text-field/text-field.js +1 -1
- package/esm/time-picker/time-picker-adapter.js +1 -0
- package/esm/time-picker/time-picker-core.js +3 -3
- package/esm/time-picker/time-picker.d.ts +2 -0
- package/esm/time-picker/time-picker.js +2 -0
- package/esm/toast/toast-adapter.d.ts +20 -0
- package/esm/toast/toast-adapter.js +30 -0
- package/esm/toast/toast-core.d.ts +17 -0
- package/esm/toast/toast-core.js +66 -0
- package/esm/toast/toast.d.ts +9 -2
- package/esm/toast/toast.js +10 -1
- package/esm/toolbar/toolbar.d.ts +1 -3
- package/esm/toolbar/toolbar.js +1 -3
- package/esm/tooltip/tooltip-adapter.d.ts +6 -0
- package/esm/tooltip/tooltip-adapter.js +9 -0
- package/esm/tooltip/tooltip-constants.d.ts +1 -0
- package/esm/tooltip/tooltip-constants.js +2 -1
- package/esm/tooltip/tooltip-core.d.ts +20 -0
- package/esm/tooltip/tooltip-core.js +96 -2
- package/esm/tooltip/tooltip.d.ts +1 -1
- package/esm/tooltip/tooltip.js +2 -2
- package/esm/view-switcher/view/view.d.ts +2 -0
- package/esm/view-switcher/view/view.js +2 -0
- package/esm/view-switcher/view-switcher.d.ts +2 -0
- package/esm/view-switcher/view-switcher.js +2 -0
- package/package.json +4 -4
- package/sass/focus-indicator/focus-indicator.scss +1 -1
- package/sass/icon-button/forge-icon-button.scss +3 -3
- package/sass/list/forge-list.scss +6 -6
- package/sass/state-layer/_core.scss +2 -0
- package/sass/table/_core.scss +13 -1
- package/sass/tooltip/_core.scss +0 -2
- package/esm/focus-indicator/focus-indicator-adapter.d.ts +0 -29
- package/esm/focus-indicator/focus-indicator-adapter.js +0 -37
- package/esm/focus-indicator/focus-indicator-core.d.ts +0 -48
- package/esm/focus-indicator/focus-indicator-core.js +0 -129
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { attachShadowTemplate, coerceBoolean, coerceNumber, customElement, ensureChildren, getShadowElement } from '@tylertech/forge-core';
|
|
8
|
-
import { FocusIndicatorComponent,
|
|
8
|
+
import { FocusIndicatorComponent, FOCUS_INDICATOR_TAG_NAME } from '../../focus-indicator';
|
|
9
9
|
import { StateLayerComponent, STATE_LAYER_CONSTANTS } from '../../state-layer';
|
|
10
10
|
import { DEPRECATED_ICON_BUTTON_CONSTANTS } from './deprecated-icon-button-constants';
|
|
11
11
|
import { BaseComponent } from '../../core/base/base-component';
|
|
@@ -35,7 +35,7 @@ let DeprecatedIconButtonComponent = class DeprecatedIconButtonComponent extends
|
|
|
35
35
|
this._toggleClickListener = this._onToggle.bind(this);
|
|
36
36
|
attachShadowTemplate(this, template, styles);
|
|
37
37
|
this._slotElement = getShadowElement(this, 'slot:not([name])');
|
|
38
|
-
this._focusIndicator = getShadowElement(this,
|
|
38
|
+
this._focusIndicator = getShadowElement(this, FOCUS_INDICATOR_TAG_NAME);
|
|
39
39
|
this._stateLayer = getShadowElement(this, STATE_LAYER_CONSTANTS.elementName);
|
|
40
40
|
}
|
|
41
41
|
connectedCallback() {
|
package/esm/dialog/dialog.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ declare const DialogComponent_base: import("..").AbstractConstructor<import("../
|
|
|
50
50
|
/**
|
|
51
51
|
* @tag forge-dialog
|
|
52
52
|
*
|
|
53
|
-
* @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions.
|
|
53
|
+
* @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions. Dialogs can be modal or non-modal.
|
|
54
54
|
*
|
|
55
55
|
* @dependency forge-backdrop
|
|
56
56
|
*
|
package/esm/dialog/dialog.js
CHANGED
|
@@ -19,7 +19,7 @@ const styles = '@keyframes forge-dialog-zoom-in{from{opacity:var(--_dialog-zoom-
|
|
|
19
19
|
/**
|
|
20
20
|
* @tag forge-dialog
|
|
21
21
|
*
|
|
22
|
-
* @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions.
|
|
22
|
+
* @summary Dialogs are temporary UI elements that are used to display information, ask for input, or confirm actions. Dialogs can be modal or non-modal.
|
|
23
23
|
*
|
|
24
24
|
* @dependency forge-backdrop
|
|
25
25
|
*
|
package/esm/divider/divider.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ declare global {
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-divider
|
|
17
17
|
*
|
|
18
|
-
* @summary
|
|
18
|
+
* @summary Dividers are used to separate elements with a thin line, either vertically or horizontally.
|
|
19
19
|
*
|
|
20
20
|
* @property {boolean} [vertical=false] - Controls if the divider is displayed vertically or horizontally.
|
|
21
21
|
*
|
package/esm/divider/divider.js
CHANGED
|
@@ -12,7 +12,7 @@ const styles = ':host{--_divider-margin:var(--forge-divider-margin, 0)}:host{dis
|
|
|
12
12
|
/**
|
|
13
13
|
* @tag forge-divider
|
|
14
14
|
*
|
|
15
|
-
* @summary
|
|
15
|
+
* @summary Dividers are used to separate elements with a thin line, either vertically or horizontally.
|
|
16
16
|
*
|
|
17
17
|
* @property {boolean} [vertical=false] - Controls if the divider is displayed vertically or horizontally.
|
|
18
18
|
*
|
|
@@ -13,6 +13,7 @@ export interface IBaseDrawerAdapter extends IBaseAdapter {
|
|
|
13
13
|
removeDrawerClass(className: string | string[]): void;
|
|
14
14
|
setDrawerClass(className: string | string[]): void;
|
|
15
15
|
listenTransitionComplete(listener: () => void): void;
|
|
16
|
+
setInert(value: boolean): void;
|
|
16
17
|
}
|
|
17
18
|
export declare class BaseDrawerAdapter extends BaseAdapter<IBaseDrawerComponent> implements IBaseDrawerAdapter {
|
|
18
19
|
protected _component: IBaseDrawerComponent;
|
|
@@ -26,4 +27,5 @@ export declare class BaseDrawerAdapter extends BaseAdapter<IBaseDrawerComponent>
|
|
|
26
27
|
removeDrawerClass(className: string | string[]): void;
|
|
27
28
|
setDrawerClass(className: string | string[]): void;
|
|
28
29
|
listenTransitionComplete(listener: () => void): void;
|
|
30
|
+
setInert(value: boolean): void;
|
|
29
31
|
}
|
|
@@ -22,6 +22,7 @@ export class BaseDrawerCore {
|
|
|
22
22
|
this._setClosed();
|
|
23
23
|
}
|
|
24
24
|
this._applyDirection();
|
|
25
|
+
this._adapter.setInert(!this._open);
|
|
25
26
|
this._adapter.proxyScrollEvent();
|
|
26
27
|
}
|
|
27
28
|
destroy() {
|
|
@@ -58,10 +59,12 @@ export class BaseDrawerCore {
|
|
|
58
59
|
}
|
|
59
60
|
_applyOpen() {
|
|
60
61
|
if (this._open) {
|
|
62
|
+
this._adapter.setInert(false);
|
|
61
63
|
this._triggerDrawerOpen();
|
|
62
64
|
this._adapter.setHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
|
|
63
65
|
}
|
|
64
66
|
else {
|
|
67
|
+
this._adapter.setInert(true);
|
|
65
68
|
this._triggerDrawerClose();
|
|
66
69
|
this._adapter.removeHostAttribute(BASE_DRAWER_CONSTANTS.attributes.OPEN);
|
|
67
70
|
}
|
|
@@ -18,6 +18,8 @@ declare global {
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-drawer
|
|
20
20
|
*
|
|
21
|
+
* @summary A persistent side navigation drawer component that provides the ability to dismiss and open the drawer with smooth animations. Use for navigation or to display additional content alongside the main application content.
|
|
22
|
+
*
|
|
21
23
|
* @slot - The content to display in the scrollable content container.
|
|
22
24
|
* @slot header - The header content above the main content.
|
|
23
25
|
* @slot footer - The footer content below the main content.
|
|
@@ -8,10 +8,12 @@ import { customElement, attachShadowTemplate } from '@tylertech/forge-core';
|
|
|
8
8
|
import { DRAWER_CONSTANTS } from './drawer-constants';
|
|
9
9
|
import { BaseDrawerAdapter, BaseDrawerComponent, BaseDrawerCore } from '../base';
|
|
10
10
|
const template = '<template><div class=\"forge-drawer\" part=\"root\"><slot name=\"header\"></slot><div class=\"content\" part=\"content\"><slot></slot></div><slot name=\"footer\"></slot></div></template>';
|
|
11
|
-
const styles = ':host{display:grid;box-sizing:border-box;height:100%;overflow:hidden!important;--forge-divider-margin:4px 0}.forge-drawer{--_drawer-background:var(--forge-drawer-background, var(--forge-theme-surface, #ffffff));--_drawer-border-color:var(--forge-drawer-border-color, var(--forge-theme-outline, #e0e0e0));--_drawer-width:var(--forge-drawer-width, 256px);--_drawer-border-width:var(--forge-drawer-border-width, var(--forge-border-thin, 1px));--_drawer-transition-duration:var(--forge-drawer-transition-duration, var(--forge-animation-duration-medium1, 250ms));--_drawer-transition-easing:var(--forge-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_drawer-transition-duration-close:var(--forge-drawer-transition-duration-close, var(--forge-animation-duration-short4, 200ms))}.forge-drawer{width:var(--_drawer-width);height:100%;box-sizing:border-box;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;background-color:var(--_drawer-background);border-color:var(--_drawer-border-color);transition-property:transform;transition-duration:var(--_drawer-transition-duration);transition-timing-function:var(--_drawer-transition-easing)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer .content
|
|
11
|
+
const styles = ':host{display:grid;box-sizing:border-box;height:100%;overflow:hidden!important;--forge-divider-margin:4px 0}.forge-drawer{--_drawer-background:var(--forge-drawer-background, var(--forge-theme-surface, #ffffff));--_drawer-border-color:var(--forge-drawer-border-color, var(--forge-theme-outline, #e0e0e0));--_drawer-width:var(--forge-drawer-width, 256px);--_drawer-border-width:var(--forge-drawer-border-width, var(--forge-border-thin, 1px));--_drawer-transition-duration:var(--forge-drawer-transition-duration, var(--forge-animation-duration-medium1, 250ms));--_drawer-transition-easing:var(--forge-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_drawer-transition-duration-close:var(--forge-drawer-transition-duration-close, var(--forge-animation-duration-short4, 200ms))}.forge-drawer{width:var(--_drawer-width);height:100%;box-sizing:border-box;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;background-color:var(--_drawer-background);border-color:var(--_drawer-border-color);transition-property:transform;transition-duration:var(--_drawer-transition-duration);transition-timing-function:var(--_drawer-transition-easing)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer .content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer .content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,calc(var(--forge-shape-full,9999px) * var(--forge-shape-factor,1)));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer .content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer .content{overflow-x:auto;-webkit-overflow-scrolling:\"touch\";display:flex;flex-direction:column;grid-row:2}.forge-drawer.left{border-right-width:var(--_drawer-border-width);border-right-style:solid}.forge-drawer.right{border-left-width:var(--_drawer-border-width);border-left-style:solid}.forge-drawer.right.closing{transform:translateX(100%);right:0;left:auto;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;transition-duration:var(--_drawer-transition-duration-close)}.forge-drawer.right.closed{transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer.closing{transform:translateX(-100%);left:0;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;transition-duration:var(--_drawer-transition-duration-close)}.forge-drawer.closed{transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer.no-transition{transition:none!important}:host([open]){transform:translateZ(0)}';
|
|
12
12
|
/**
|
|
13
13
|
* @tag forge-drawer
|
|
14
14
|
*
|
|
15
|
+
* @summary A persistent side navigation drawer component that provides the ability to dismiss and open the drawer with smooth animations. Use for navigation or to display additional content alongside the main application content.
|
|
16
|
+
*
|
|
15
17
|
* @slot - The content to display in the scrollable content container.
|
|
16
18
|
* @slot header - The header content above the main content.
|
|
17
19
|
* @slot footer - The footer content below the main content.
|
|
@@ -15,6 +15,8 @@ declare global {
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-mini-drawer
|
|
17
17
|
*
|
|
18
|
+
* @summary A compact navigation drawer component that displays as a narrow rail and optionally expands on hover to show full content.
|
|
19
|
+
*
|
|
18
20
|
* @property {boolean} [hover=false] - The drawer will expand open when hovered.
|
|
19
21
|
*
|
|
20
22
|
* @attribute {boolean} [hover=false] - The drawer will expand open when hovered.
|
|
@@ -8,10 +8,12 @@ import { attachShadowTemplate, customElement } from '@tylertech/forge-core';
|
|
|
8
8
|
import { BaseDrawerAdapter, BaseDrawerComponent, BaseDrawerCore } from '../base';
|
|
9
9
|
import { MINI_DRAWER_CONSTANTS } from './mini-drawer-constants';
|
|
10
10
|
const template = '<template><div class=\"root\" part=\"root\"><div class=\"forge-drawer mini\" part=\"container\"><slot name=\"header\"></slot><div class=\"content\" part=\"content\"><slot></slot></div><slot name=\"footer\"></slot></div></div></template>';
|
|
11
|
-
const styles = ':host{--_mini-drawer-width:var(--forge-mini-drawer-width, 56px);--_mini-drawer-min-width:var(--forge-mini-drawer-min-width, var(--_mini-drawer-width));--_mini-drawer-hover-width:var(--forge-mini-drawer-hover-width, var(--forge-drawer-width, 256px));--_mini-drawer-transition-duration:var(--forge-mini-drawer-transition-duration, var(--forge-animation-duration-short4, 200ms));--_mini-drawer-transition-easing:var(--forge-mini-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_mini-drawer-transition-delay:var(--forge-mini-drawer-transition-delay, 300ms);--_mini-drawer-hover-transition-duration:var(--forge-mini-drawer-hover-transition-duration, var(--forge-animation-duration-medium2, 300ms));--_mini-drawer-hover-transition-easing:var(--forge-mini-drawer-hover-transition-easing, var(--_mini-drawer-transition-easing));--_mini-drawer-hover-transition-delay:var(--forge-mini-drawer-hover-transition-delay, var(--forge-animation-duration-medium2, 300ms))}:host{display:grid;box-sizing:border-box;height:100%;overflow:hidden!important;width:var(--_mini-drawer-width);overflow:visible!important;--forge-divider-margin:4px 0}:host([direction=right]){min-width:var(--_mini-drawer-width);width:auto}:host([direction=right]) .root{position:relative}:host(:not([open])){display:none}:host([hover]) .right{position:absolute;right:0}:host([hover]) .forge-drawer:hover{width:var(--_mini-drawer-hover-width)!important;transition:width var(--_mini-drawer-hover-transition-duration) var(--_mini-drawer-hover-transition-easing) var(--_mini-drawer-hover-transition-delay)}:host([hover]) .forge-drawer:hover .content{overflow:auto}.forge-drawer{--_drawer-background:var(--forge-drawer-background, var(--forge-theme-surface, #ffffff));--_drawer-border-color:var(--forge-drawer-border-color, var(--forge-theme-outline, #e0e0e0));--_drawer-width:var(--forge-drawer-width, 256px);--_drawer-border-width:var(--forge-drawer-border-width, var(--forge-border-thin, 1px));--_drawer-transition-duration:var(--forge-drawer-transition-duration, var(--forge-animation-duration-medium1, 250ms));--_drawer-transition-easing:var(--forge-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_drawer-transition-duration-close:var(--forge-drawer-transition-duration-close, var(--forge-animation-duration-short4, 200ms))}.forge-drawer{width:var(--_drawer-width);height:100%;box-sizing:border-box;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;background-color:var(--_drawer-background);border-color:var(--_drawer-border-color);transition-property:transform;transition-duration:var(--_drawer-transition-duration);transition-timing-function:var(--_drawer-transition-easing)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer .content
|
|
11
|
+
const styles = ':host{--_mini-drawer-width:var(--forge-mini-drawer-width, 56px);--_mini-drawer-min-width:var(--forge-mini-drawer-min-width, var(--_mini-drawer-width));--_mini-drawer-hover-width:var(--forge-mini-drawer-hover-width, var(--forge-drawer-width, 256px));--_mini-drawer-transition-duration:var(--forge-mini-drawer-transition-duration, var(--forge-animation-duration-short4, 200ms));--_mini-drawer-transition-easing:var(--forge-mini-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_mini-drawer-transition-delay:var(--forge-mini-drawer-transition-delay, 300ms);--_mini-drawer-hover-transition-duration:var(--forge-mini-drawer-hover-transition-duration, var(--forge-animation-duration-medium2, 300ms));--_mini-drawer-hover-transition-easing:var(--forge-mini-drawer-hover-transition-easing, var(--_mini-drawer-transition-easing));--_mini-drawer-hover-transition-delay:var(--forge-mini-drawer-hover-transition-delay, var(--forge-animation-duration-medium2, 300ms))}:host{display:grid;box-sizing:border-box;height:100%;overflow:hidden!important;width:var(--_mini-drawer-width);overflow:visible!important;--forge-divider-margin:4px 0}:host([direction=right]){min-width:var(--_mini-drawer-width);width:auto}:host([direction=right]) .root{position:relative}:host(:not([open])){display:none}:host([hover]) .right{position:absolute;right:0}:host([hover]) .forge-drawer:hover{width:var(--_mini-drawer-hover-width)!important;transition:width var(--_mini-drawer-hover-transition-duration) var(--_mini-drawer-hover-transition-easing) var(--_mini-drawer-hover-transition-delay)}:host([hover]) .forge-drawer:hover .content{overflow:auto}.forge-drawer{--_drawer-background:var(--forge-drawer-background, var(--forge-theme-surface, #ffffff));--_drawer-border-color:var(--forge-drawer-border-color, var(--forge-theme-outline, #e0e0e0));--_drawer-width:var(--forge-drawer-width, 256px);--_drawer-border-width:var(--forge-drawer-border-width, var(--forge-border-thin, 1px));--_drawer-transition-duration:var(--forge-drawer-transition-duration, var(--forge-animation-duration-medium1, 250ms));--_drawer-transition-easing:var(--forge-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_drawer-transition-duration-close:var(--forge-drawer-transition-duration-close, var(--forge-animation-duration-short4, 200ms))}.forge-drawer{width:var(--_drawer-width);height:100%;box-sizing:border-box;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;background-color:var(--_drawer-background);border-color:var(--_drawer-border-color);transition-property:transform;transition-duration:var(--_drawer-transition-duration);transition-timing-function:var(--_drawer-transition-easing)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer .content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer .content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,calc(var(--forge-shape-full,9999px) * var(--forge-shape-factor,1)));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer .content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer .content{overflow-x:auto;-webkit-overflow-scrolling:\"touch\";display:flex;flex-direction:column;grid-row:2}.forge-drawer.left{border-right-width:var(--_drawer-border-width);border-right-style:solid}.forge-drawer.right{border-left-width:var(--_drawer-border-width);border-left-style:solid}.forge-drawer.right.closing{transform:translateX(100%);right:0;left:auto;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;transition-duration:var(--_drawer-transition-duration-close)}.forge-drawer.right.closed{transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer.closing{transform:translateX(-100%);left:0;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;transition-duration:var(--_drawer-transition-duration-close)}.forge-drawer.closed{transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer.no-transition{transition:none!important}.root{z-index:var(--forge-z-index-surface,1);height:100%;min-width:var(--_mini-drawer-min-width)}.forge-drawer.mini{width:var(--_mini-drawer-width);z-index:var(--forge-z-index-surface,1);transition:width var(--_mini-drawer-transition-duration) var(--_mini-drawer-transition-easing)}.forge-drawer.mini .content{overflow:hidden}.forge-drawer.closed{width:0}';
|
|
12
12
|
/**
|
|
13
13
|
* @tag forge-mini-drawer
|
|
14
14
|
*
|
|
15
|
+
* @summary A compact navigation drawer component that displays as a narrow rail and optionally expands on hover to show full content.
|
|
16
|
+
*
|
|
15
17
|
* @property {boolean} [hover=false] - The drawer will expand open when hovered.
|
|
16
18
|
*
|
|
17
19
|
* @attribute {boolean} [hover=false] - The drawer will expand open when hovered.
|
|
@@ -18,6 +18,8 @@ declare global {
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-modal-drawer
|
|
20
20
|
*
|
|
21
|
+
* @summary A modal navigation drawer component that slides in from the side with a backdrop overlay, typically used for temporary navigation panels. Prefer to use the dialog component with the preset options for sidesheet styles drawers.
|
|
22
|
+
*
|
|
21
23
|
* @dependency forge-backdrop
|
|
22
24
|
*
|
|
23
25
|
* @event {CustomEvent<void>} forge-modal-drawer-close - Dispatched when the modal drawer is closed by clicking the backdrop.
|
|
@@ -11,10 +11,12 @@ import { ModalDrawerAdapter } from './modal-drawer-adapter';
|
|
|
11
11
|
import { MODAL_DRAWER_CONSTANTS } from './modal-drawer-constants';
|
|
12
12
|
import { ModalDrawerCore } from './modal-drawer-core';
|
|
13
13
|
const template = '<template><forge-backdrop class=\"scrim\" hidden exportparts=\"root:backdrop\"></forge-backdrop><div class=\"forge-drawer modal\" part=\"root\"><slot name=\"header\"></slot><div class=\"content\" part=\"content\"><slot></slot></div><slot name=\"footer\"></slot></div></template>';
|
|
14
|
-
const styles = ':host{--forge-divider-margin:4px 0}.forge-drawer{--_drawer-background:var(--forge-drawer-background, var(--forge-theme-surface, #ffffff));--_drawer-border-color:var(--forge-drawer-border-color, var(--forge-theme-outline, #e0e0e0));--_drawer-width:var(--forge-drawer-width, 256px);--_drawer-border-width:var(--forge-drawer-border-width, var(--forge-border-thin, 1px));--_drawer-transition-duration:var(--forge-drawer-transition-duration, var(--forge-animation-duration-medium1, 250ms));--_drawer-transition-easing:var(--forge-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_drawer-transition-duration-close:var(--forge-drawer-transition-duration-close, var(--forge-animation-duration-short4, 200ms))}.forge-drawer{width:var(--_drawer-width);height:100%;box-sizing:border-box;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;background-color:var(--_drawer-background);border-color:var(--_drawer-border-color);transition-property:transform;transition-duration:var(--_drawer-transition-duration);transition-timing-function:var(--_drawer-transition-easing)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer .content
|
|
14
|
+
const styles = ':host{--forge-divider-margin:4px 0}.forge-drawer{--_drawer-background:var(--forge-drawer-background, var(--forge-theme-surface, #ffffff));--_drawer-border-color:var(--forge-drawer-border-color, var(--forge-theme-outline, #e0e0e0));--_drawer-width:var(--forge-drawer-width, 256px);--_drawer-border-width:var(--forge-drawer-border-width, var(--forge-border-thin, 1px));--_drawer-transition-duration:var(--forge-drawer-transition-duration, var(--forge-animation-duration-medium1, 250ms));--_drawer-transition-easing:var(--forge-drawer-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_drawer-transition-duration-close:var(--forge-drawer-transition-duration-close, var(--forge-animation-duration-short4, 200ms))}.forge-drawer{width:var(--_drawer-width);height:100%;box-sizing:border-box;overflow:hidden;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;background-color:var(--_drawer-background);border-color:var(--_drawer-border-color);transition-property:transform;transition-duration:var(--_drawer-transition-duration);transition-timing-function:var(--_drawer-transition-easing)}.forge-drawer ::slotted([slot=header]){grid-row:1}.forge-drawer ::slotted([slot=footer]){grid-row:3}.forge-drawer .content::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-drawer .content::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-drawer .content::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,calc(var(--forge-shape-full,9999px) * var(--forge-shape-factor,1)));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-drawer .content::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-drawer .content{overflow-x:auto;-webkit-overflow-scrolling:\"touch\";display:flex;flex-direction:column;grid-row:2}.forge-drawer.left{border-right-width:var(--_drawer-border-width);border-right-style:solid}.forge-drawer.right{border-left-width:var(--_drawer-border-width);border-left-style:solid}.forge-drawer.right.closing{transform:translateX(100%);right:0;left:auto;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;transition-duration:var(--_drawer-transition-duration-close)}.forge-drawer.right.closed{transform:translateX(100%);right:0;left:auto;width:0;border:none}.forge-drawer.closing{transform:translateX(-100%);left:0;z-index:var(--forge-z-index-surface,1);position:absolute;top:0;right:0;transition-duration:var(--_drawer-transition-duration-close)}.forge-drawer.closed{transform:translateX(-100%);left:0;width:0;border:none}.forge-drawer.no-transition{transition:none!important}.forge-drawer.modal{position:absolute;top:0;z-index:var(--forge-z-index-dialog,8);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);max-width:80%}.forge-drawer.modal.closed,.forge-drawer.modal.closing{box-shadow:none}.forge-drawer.modal.closing.right{transform:translateX(100%)}.forge-drawer.right{right:0}.forge-drawer.display-none{display:none!important}.scrim{z-index:var(--forge-z-index-dialog,8)}.scrim.closed{display:none}';
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-modal-drawer
|
|
17
17
|
*
|
|
18
|
+
* @summary A modal navigation drawer component that slides in from the side with a backdrop overlay, typically used for temporary navigation panels. Prefer to use the dialog component with the preset options for sidesheet styles drawers.
|
|
19
|
+
*
|
|
18
20
|
* @dependency forge-backdrop
|
|
19
21
|
*
|
|
20
22
|
* @event {CustomEvent<void>} forge-modal-drawer-close - Dispatched when the modal drawer is closed by clicking the backdrop.
|
|
@@ -54,7 +54,7 @@ declare global {
|
|
|
54
54
|
* @cssclass forge-expansion-panel--open - The open state of the panel.
|
|
55
55
|
*
|
|
56
56
|
* @slot - The content of the panel.
|
|
57
|
-
* @slot header - The header of the panel.
|
|
57
|
+
* @slot header - The header of the panel. This is deprecated, prefer using the trigger property instead, or manually associating a button with the panel.
|
|
58
58
|
*/
|
|
59
59
|
export declare class ExpansionPanelComponent extends BaseComponent implements IExpansionPanelComponent {
|
|
60
60
|
static get observedAttributes(): string[];
|
|
@@ -42,7 +42,7 @@ const styles = ':host{display:block}:host([hidden]){display:none}.forge-expansio
|
|
|
42
42
|
* @cssclass forge-expansion-panel--open - The open state of the panel.
|
|
43
43
|
*
|
|
44
44
|
* @slot - The content of the panel.
|
|
45
|
-
* @slot header - The header of the panel.
|
|
45
|
+
* @slot header - The header of the panel. This is deprecated, prefer using the trigger property instead, or manually associating a button with the panel.
|
|
46
46
|
*/
|
|
47
47
|
let ExpansionPanelComponent = class ExpansionPanelComponent extends BaseComponent {
|
|
48
48
|
static get observedAttributes() {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { addClass, getShadowElement, removeClass, toggleClass } from '@tylertech/forge-core';
|
|
7
7
|
import { BaseAdapter } from '../core/base';
|
|
8
|
-
import {
|
|
8
|
+
import { FOCUS_INDICATOR_TAG_NAME } from '../focus-indicator';
|
|
9
9
|
import { FIELD_CONSTANTS } from './field-constants';
|
|
10
10
|
export class FieldAdapter extends BaseAdapter {
|
|
11
11
|
get focusIndicator() {
|
|
@@ -22,7 +22,7 @@ export class FieldAdapter extends BaseAdapter {
|
|
|
22
22
|
this._labelElement = getShadowElement(component, FIELD_CONSTANTS.selectors.LABEL);
|
|
23
23
|
this._labelSlotElement = getShadowElement(component, FIELD_CONSTANTS.selectors.LABEL_SLOT);
|
|
24
24
|
this._popoverIconElement = getShadowElement(component, FIELD_CONSTANTS.selectors.POPOVER_ICON);
|
|
25
|
-
this._focusIndicatorElement = getShadowElement(component,
|
|
25
|
+
this._focusIndicatorElement = getShadowElement(component, FOCUS_INDICATOR_TAG_NAME);
|
|
26
26
|
}
|
|
27
27
|
addRootListener(name, listener) {
|
|
28
28
|
this._rootElement.addEventListener(name, listener);
|
|
@@ -23,7 +23,7 @@ export interface IFieldCore {
|
|
|
23
23
|
popoverExpanded: boolean;
|
|
24
24
|
multiline: boolean;
|
|
25
25
|
supportTextInset: FieldSupportTextInset;
|
|
26
|
-
focusIndicatorTargetElement: HTMLElement;
|
|
26
|
+
focusIndicatorTargetElement: HTMLElement | undefined;
|
|
27
27
|
focusIndicatorFocusMode: FocusIndicatorFocusMode;
|
|
28
28
|
focusIndicatorAllowFocus: boolean;
|
|
29
29
|
initialize(): void;
|
|
@@ -88,8 +88,8 @@ export declare class FieldCore implements IFieldCore {
|
|
|
88
88
|
set multiline(value: boolean);
|
|
89
89
|
get supportTextInset(): FieldSupportTextInset;
|
|
90
90
|
set supportTextInset(value: FieldSupportTextInset);
|
|
91
|
-
get focusIndicatorTargetElement(): HTMLElement;
|
|
92
|
-
set focusIndicatorTargetElement(value: HTMLElement);
|
|
91
|
+
get focusIndicatorTargetElement(): HTMLElement | undefined;
|
|
92
|
+
set focusIndicatorTargetElement(value: HTMLElement | undefined);
|
|
93
93
|
get focusIndicatorFocusMode(): FocusIndicatorFocusMode;
|
|
94
94
|
set focusIndicatorFocusMode(value: FocusIndicatorFocusMode);
|
|
95
95
|
get focusIndicatorAllowFocus(): boolean;
|
package/esm/field/field.d.ts
CHANGED
|
@@ -39,8 +39,7 @@ declare global {
|
|
|
39
39
|
/**
|
|
40
40
|
* @tag forge-field
|
|
41
41
|
*
|
|
42
|
-
* @
|
|
43
|
-
* form elements that can include a label, various states, and a border around an input area.
|
|
42
|
+
* @description The field component is a building block component that handles the layout and theming of other form elements. Avoid using this component directly unless part of a larger component. Instead, use one of the specific field type components such as `<forge-text-field>` and `<forge-select>` for example.
|
|
44
43
|
*
|
|
45
44
|
* @property {FieldLabelPosition} [labelPosition="inset"] - The position of the label relative to the input area.
|
|
46
45
|
* @property {FieldLabelAlignment} [labelAlignment="start"] - The alignment of the label relative to the input area.
|
package/esm/field/field.js
CHANGED
|
@@ -15,8 +15,7 @@ const styles = '@keyframes float-in-label-animation{from{translate:0;opacity:40%
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-field
|
|
17
17
|
*
|
|
18
|
-
* @
|
|
19
|
-
* form elements that can include a label, various states, and a border around an input area.
|
|
18
|
+
* @description The field component is a building block component that handles the layout and theming of other form elements. Avoid using this component directly unless part of a larger component. Instead, use one of the specific field type components such as `<forge-text-field>` and `<forge-select>` for example.
|
|
20
19
|
*
|
|
21
20
|
* @property {FieldLabelPosition} [labelPosition="inset"] - The position of the label relative to the input area.
|
|
22
21
|
* @property {FieldLabelAlignment} [labelAlignment="start"] - The alignment of the label relative to the input area.
|
|
@@ -25,9 +25,8 @@ declare global {
|
|
|
25
25
|
/**
|
|
26
26
|
* @tag forge-file-picker
|
|
27
27
|
*
|
|
28
|
-
* @summary
|
|
29
|
-
*
|
|
30
|
-
* button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual queues to let the
|
|
28
|
+
* @summary The file picker component allows for a user to upload files of their own to the system. The component provides a slot for a
|
|
29
|
+
* button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual cues to let the
|
|
31
30
|
* user know when files they are dragging can be dropped, as well as events that are relayed to the developer to handle files
|
|
32
31
|
* that are legal and/or illegal based on the parameters set on the component.
|
|
33
32
|
*
|
|
@@ -15,9 +15,8 @@ const styles = ':host{--_file-picker-background:var(--forge-file-picker-backgrou
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-file-picker
|
|
17
17
|
*
|
|
18
|
-
* @summary
|
|
19
|
-
*
|
|
20
|
-
* button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual queues to let the
|
|
18
|
+
* @summary The file picker component allows for a user to upload files of their own to the system. The component provides a slot for a
|
|
19
|
+
* button, as well as drag-and-drop functionality to launch the system file chooser dialog. There are visual cues to let the
|
|
21
20
|
* user know when files they are dragging can be dropped, as well as events that are relayed to the developer to handle files
|
|
22
21
|
* that are legal and/or illegal based on the parameters set on the component.
|
|
23
22
|
*
|
|
@@ -20,7 +20,7 @@ declare global {
|
|
|
20
20
|
/**
|
|
21
21
|
* @tag forge-fab
|
|
22
22
|
*
|
|
23
|
-
* @summary Floating action buttons are used to represent the most important action on a page.
|
|
23
|
+
* @summary Floating action buttons are used to represent the most important action on a page. They are typically used in mobile applications, and are positioned above other content in a way that draws attention to them.
|
|
24
24
|
*
|
|
25
25
|
* @dependency forge-focus-indicator
|
|
26
26
|
* @dependency forge-state-layer
|
|
@@ -18,7 +18,7 @@ const styles = ':host{--_fab-display:var(--forge-fab-display, inline-flex);--_fa
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-fab
|
|
20
20
|
*
|
|
21
|
-
* @summary Floating action buttons are used to represent the most important action on a page.
|
|
21
|
+
* @summary Floating action buttons are used to represent the most important action on a page. They are typically used in mobile applications, and are positioned above other content in a way that draws attention to them.
|
|
22
22
|
*
|
|
23
23
|
* @dependency forge-focus-indicator
|
|
24
24
|
* @dependency forge-state-layer
|
|
@@ -4,17 +4,7 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
export declare const FOCUS_INDICATOR_CONSTANTS: {
|
|
7
|
+
/** @deprecated use `FOCUS_INDICATOR_TAG_NAME` instead. */
|
|
7
8
|
elementName: "forge-focus-indicator";
|
|
8
|
-
attributes: {
|
|
9
|
-
TARGET: string;
|
|
10
|
-
ACTIVE: string;
|
|
11
|
-
INWARD: string;
|
|
12
|
-
CIRCULAR: string;
|
|
13
|
-
ALLOW_FOCUS: string;
|
|
14
|
-
FOCUS_MODE: string;
|
|
15
|
-
};
|
|
16
|
-
defaults: {
|
|
17
|
-
FOCUS_MODE: FocusIndicatorFocusMode;
|
|
18
|
-
};
|
|
19
9
|
};
|
|
20
10
|
export type FocusIndicatorFocusMode = 'focus' | 'focusin';
|
|
@@ -5,22 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { COMPONENT_NAME_PREFIX } from '../constants';
|
|
7
7
|
const elementName = `${COMPONENT_NAME_PREFIX}focus-indicator`;
|
|
8
|
-
const observedAttributes = {
|
|
9
|
-
TARGET: 'target',
|
|
10
|
-
ACTIVE: 'active',
|
|
11
|
-
INWARD: 'inward',
|
|
12
|
-
CIRCULAR: 'circular',
|
|
13
|
-
ALLOW_FOCUS: 'allow-focus',
|
|
14
|
-
FOCUS_MODE: 'focus-mode'
|
|
15
|
-
};
|
|
16
|
-
const attributes = {
|
|
17
|
-
...observedAttributes
|
|
18
|
-
};
|
|
19
|
-
const defaults = {
|
|
20
|
-
FOCUS_MODE: 'focusin'
|
|
21
|
-
};
|
|
22
8
|
export const FOCUS_INDICATOR_CONSTANTS = {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
defaults
|
|
9
|
+
/** @deprecated use `FOCUS_INDICATOR_TAG_NAME` instead. */
|
|
10
|
+
elementName
|
|
26
11
|
};
|
|
@@ -3,10 +3,13 @@
|
|
|
3
3
|
* Copyright Tyler Technologies, Inc.
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
|
|
7
|
+
import { nothing, PropertyValues } from 'lit';
|
|
8
|
+
import { IBaseComponent } from '../core/base/base-component';
|
|
9
|
+
import { BaseLitElement } from '../core/base/base-lit-element';
|
|
7
10
|
import { FocusIndicatorFocusMode } from './focus-indicator-constants';
|
|
8
11
|
export interface IFocusIndicatorComponent extends IBaseComponent {
|
|
9
|
-
targetElement: HTMLElement;
|
|
12
|
+
targetElement: HTMLElement | undefined;
|
|
10
13
|
target: string | null;
|
|
11
14
|
active: boolean;
|
|
12
15
|
inward: boolean;
|
|
@@ -19,25 +22,11 @@ declare global {
|
|
|
19
22
|
'forge-focus-indicator': IFocusIndicatorComponent;
|
|
20
23
|
}
|
|
21
24
|
}
|
|
25
|
+
export declare const FOCUS_INDICATOR_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
22
26
|
/**
|
|
23
27
|
* @tag forge-focus-indicator
|
|
24
28
|
*
|
|
25
|
-
* @summary
|
|
26
|
-
*
|
|
27
|
-
* @property {HTMLElement} targetElement - The element to attach the focus indicator to.
|
|
28
|
-
* @property {string} target - The id of the element to attach the focus indicator to.
|
|
29
|
-
* @property {boolean} [active=false] - Controls whether the indicator is active.
|
|
30
|
-
* @property {boolean} [inward=false] - Controls whether the indicator renders inward.
|
|
31
|
-
* @property {boolean} [circular=false] - Controls whether the indicator renders circular.
|
|
32
|
-
* @property {boolean} [allowFocus=false] - Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
33
|
-
* @property {FocusIndicatorFocusMode} [focusMode="focusin"] - The focus mode to use.
|
|
34
|
-
*
|
|
35
|
-
* @attribute {string} target - The id of the element to attach the focus indicator to.
|
|
36
|
-
* @attribute {boolean} [active=false] - Controls whether the indicator is active.
|
|
37
|
-
* @attribute {boolean} [inward=false] - Controls whether the indicator renders inward.
|
|
38
|
-
* @attribute {boolean} [circular=false] - Controls whether the indicator renders circular.
|
|
39
|
-
* @attribute {boolean} [allow-focus=false] - Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
40
|
-
* @attribute {FocusIndicatorFocusMode} [focus-mode="focusin"] - The focus mode to use.
|
|
29
|
+
* @summary Focus indicators show a "focus ring" around an attached element that matches `:focus-visible`. These are building block components used by other components to show focus state, and are not typically used directly.
|
|
41
30
|
*
|
|
42
31
|
* @cssproperty --forge-focus-indicator-display - The `display` style. Defaults to `flex`.
|
|
43
32
|
* @cssproperty --forge-focus-indicator-width - The width of the focus indicator when resting.
|
|
@@ -62,18 +51,56 @@ declare global {
|
|
|
62
51
|
* @cssclass forge-focus-indicator--active - Forces the focus indicator to be visible.
|
|
63
52
|
* @cssclass forge-focus-indicator--inward - Renders the focus inside the target element.
|
|
64
53
|
*/
|
|
65
|
-
export declare class FocusIndicatorComponent extends
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
54
|
+
export declare class FocusIndicatorComponent extends BaseLitElement implements IFocusIndicatorComponent {
|
|
55
|
+
#private;
|
|
56
|
+
static styles: import("lit").CSSResult;
|
|
57
|
+
/** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
|
|
58
|
+
static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
|
|
59
|
+
/**
|
|
60
|
+
* The element to attach the focus indicator to.
|
|
61
|
+
* @default undefined
|
|
62
|
+
*/
|
|
63
|
+
set targetElement(value: HTMLElement | undefined);
|
|
64
|
+
get targetElement(): HTMLElement | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* The id of the element to attach the focus indicator to.
|
|
67
|
+
* @default null
|
|
68
|
+
* @attribute
|
|
69
|
+
*/
|
|
73
70
|
target: string | null;
|
|
71
|
+
/**
|
|
72
|
+
* Controls whether the indicator is active.
|
|
73
|
+
* @default false
|
|
74
|
+
* @attribute
|
|
75
|
+
*/
|
|
74
76
|
active: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Controls whether the indicator renders inward.
|
|
79
|
+
* @default false
|
|
80
|
+
* @attribute
|
|
81
|
+
*/
|
|
75
82
|
inward: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Controls whether the indicator renders circular.
|
|
85
|
+
* @default false
|
|
86
|
+
* @attribute
|
|
87
|
+
*/
|
|
76
88
|
circular: boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Controls whether the indicator renders when the target element matches `:focus` instead of `:focus-visible`.
|
|
91
|
+
* @default false
|
|
92
|
+
* @attribute allow-focus
|
|
93
|
+
*/
|
|
77
94
|
allowFocus: boolean;
|
|
95
|
+
/**
|
|
96
|
+
* The focus mode to use. Valid values are `focusin` (default) and `focus`.
|
|
97
|
+
* @default 'focusin'
|
|
98
|
+
* @attribute focus-mode
|
|
99
|
+
*/
|
|
78
100
|
focusMode: FocusIndicatorFocusMode;
|
|
101
|
+
constructor();
|
|
102
|
+
connectedCallback(): void;
|
|
103
|
+
disconnectedCallback(): void;
|
|
104
|
+
willUpdate(changedProperties: PropertyValues<this>): void;
|
|
105
|
+
render(): typeof nothing;
|
|
79
106
|
}
|