@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
|
@@ -15,6 +15,8 @@ declare global {
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-accordion
|
|
17
17
|
*
|
|
18
|
+
* @summary Accordions wrap a collection of expansion panels to ensure that only one panel is expanded at a time.
|
|
19
|
+
*
|
|
18
20
|
* @dependency forge-expansion-panel
|
|
19
21
|
*
|
|
20
22
|
* @fires {CustomEvent<IExpansionPanelComponent>} forge-accordion-toggle - Dispatched when a child expansion panel is toggled. Includes the related expansion panel element in the event detail.
|
|
@@ -13,6 +13,8 @@ import { AccordionCore } from './accordion-core';
|
|
|
13
13
|
/**
|
|
14
14
|
* @tag forge-accordion
|
|
15
15
|
*
|
|
16
|
+
* @summary Accordions wrap a collection of expansion panels to ensure that only one panel is expanded at a time.
|
|
17
|
+
*
|
|
16
18
|
* @dependency forge-expansion-panel
|
|
17
19
|
*
|
|
18
20
|
* @fires {CustomEvent<IExpansionPanelComponent>} forge-accordion-toggle - Dispatched when a child expansion panel is toggled. Includes the related expansion panel element in the event detail.
|
|
@@ -8,7 +8,7 @@ import { replaceElement } from '../../core/utils/utils';
|
|
|
8
8
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
9
9
|
import { APP_BAR_CONSTANTS } from './app-bar-constants';
|
|
10
10
|
import { STATE_LAYER_CONSTANTS } from '../../state-layer';
|
|
11
|
-
import {
|
|
11
|
+
import { FOCUS_INDICATOR_TAG_NAME } from '../../focus-indicator';
|
|
12
12
|
export class AppBarAdapter extends BaseAdapter {
|
|
13
13
|
constructor(component) {
|
|
14
14
|
super(component);
|
|
@@ -50,7 +50,7 @@ export class AppBarAdapter extends BaseAdapter {
|
|
|
50
50
|
this._logoTitleContainerElement = replaceElement(this._logoTitleContainerElement, document.createElement('div'));
|
|
51
51
|
this._logoTitleContainerElement.classList.add(APP_BAR_CONSTANTS.classes.LOGO_TITLE_CONTAINER);
|
|
52
52
|
this._logoTitleContainerElement.querySelector(STATE_LAYER_CONSTANTS.elementName)?.remove();
|
|
53
|
-
this._logoTitleContainerElement.querySelector(
|
|
53
|
+
this._logoTitleContainerElement.querySelector(FOCUS_INDICATOR_TAG_NAME)?.remove();
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
setTarget(value) {
|
|
@@ -24,7 +24,7 @@ declare global {
|
|
|
24
24
|
/**
|
|
25
25
|
* @tag forge-app-bar
|
|
26
26
|
*
|
|
27
|
-
* @
|
|
27
|
+
* @summary App bars are headers used to display branding, navigation, and actions at the top of an application. They typically contain a logo, title, and various action items.
|
|
28
28
|
*
|
|
29
29
|
* @property {string} titleText - The text to display in the title.
|
|
30
30
|
* @property {AppBarElevation} [elevation="raised"] - The elevation of the app bar.
|
|
@@ -14,7 +14,7 @@ const styles = ':host{--_app-bar-background:var(--forge-app-bar-background, var(
|
|
|
14
14
|
/**
|
|
15
15
|
* @tag forge-app-bar
|
|
16
16
|
*
|
|
17
|
-
* @
|
|
17
|
+
* @summary App bars are headers used to display branding, navigation, and actions at the top of an application. They typically contain a logo, title, and various action items.
|
|
18
18
|
*
|
|
19
19
|
* @property {string} titleText - The text to display in the title.
|
|
20
20
|
* @property {AppBarElevation} [elevation="raised"] - The elevation of the app bar.
|
|
@@ -17,7 +17,7 @@ declare global {
|
|
|
17
17
|
/**
|
|
18
18
|
* @tag forge-app-bar-help-button
|
|
19
19
|
*
|
|
20
|
-
* @
|
|
20
|
+
* @summary A help button component with a predefined help icon that displays a dropdown menu when clicked, designed for use in an app bar's end slot.
|
|
21
21
|
*
|
|
22
22
|
* @property {IMenuOption[]} [options=[]] - The menu options to display when the button is clicked
|
|
23
23
|
* @property {string} [icon=help] - The name of an alternative icon to display.
|
|
@@ -18,7 +18,7 @@ const template = '<template><forge-menu placement=\"bottom-end\"><forge-icon-but
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-app-bar-help-button
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @summary A help button component with a predefined help icon that displays a dropdown menu when clicked, designed for use in an app bar's end slot.
|
|
22
22
|
*
|
|
23
23
|
* @property {IMenuOption[]} [options=[]] - The menu options to display when the button is clicked
|
|
24
24
|
* @property {string} [icon=help] - The name of an alternative icon to display.
|
|
@@ -15,7 +15,7 @@ declare global {
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-app-bar-menu-button
|
|
17
17
|
*
|
|
18
|
-
* @
|
|
18
|
+
* @summary A menu toggle button component with a predefined hamburger menu icon, typically used in an app bar's start slot to open navigation menus.
|
|
19
19
|
*
|
|
20
20
|
* @property {string} [icon=menu] - The name of an alternative icon to display.
|
|
21
21
|
*
|
|
@@ -16,7 +16,7 @@ const template = '<template><forge-icon-button theme=\"app-bar\"><forge-icon nam
|
|
|
16
16
|
/**
|
|
17
17
|
* @tag forge-app-bar-menu-button
|
|
18
18
|
*
|
|
19
|
-
* @
|
|
19
|
+
* @summary A menu toggle button component with a predefined hamburger menu icon, typically used in an app bar's start slot to open navigation menus.
|
|
20
20
|
*
|
|
21
21
|
* @property {string} [icon=menu] - The name of an alternative icon to display.
|
|
22
22
|
*
|
|
@@ -19,6 +19,8 @@ export interface IAppBarNotificationButtonComponent extends IBaseComponent {
|
|
|
19
19
|
/**
|
|
20
20
|
* @tag forge-app-bar-notification-button
|
|
21
21
|
*
|
|
22
|
+
* @summary A notification button component with a predefined notification bell icon that can display a badge with count or dot indicator, designed for use in app bars.
|
|
23
|
+
*
|
|
22
24
|
* @property {number | string} [count = 0] - The number to display in the badge.
|
|
23
25
|
* @property {boolean} [dot = false] - Whether to display the dot variant of the badge or not.
|
|
24
26
|
* @property {boolean} [showBadge = false] - Whether to display the badge or not.
|
|
@@ -18,6 +18,8 @@ const template = '<template><forge-icon-button theme=\"app-bar\"><forge-icon></f
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-app-bar-notification-button
|
|
20
20
|
*
|
|
21
|
+
* @summary A notification button component with a predefined notification bell icon that can display a badge with count or dot indicator, designed for use in app bars.
|
|
22
|
+
*
|
|
21
23
|
* @property {number | string} [count = 0] - The number to display in the badge.
|
|
22
24
|
* @property {boolean} [dot = false] - Whether to display the dot variant of the badge or not.
|
|
23
25
|
* @property {boolean} [showBadge = false] - Whether to display the badge or not.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
|
|
7
7
|
import { IAppBarProfileButtonComponent } from './app-bar-profile-button';
|
|
8
8
|
import { IAppBarProfileCardConfig } from './app-bar-profile-button-constants';
|
|
9
|
-
import { IPopoverComponent } from '../../popover';
|
|
9
|
+
import { type IPopoverComponent } from '../../popover';
|
|
10
10
|
export interface IAppBarProfileButtonAdapter extends IBaseAdapter {
|
|
11
11
|
popupElement: IPopoverComponent | undefined;
|
|
12
12
|
initialize(): void;
|
|
@@ -25,6 +25,7 @@ export interface IAppBarProfileButtonAdapter extends IBaseAdapter {
|
|
|
25
25
|
}
|
|
26
26
|
export declare class AppBarProfileButtonAdapter extends BaseAdapter<IAppBarProfileButtonComponent> implements IAppBarProfileButtonAdapter {
|
|
27
27
|
private _avatarElement;
|
|
28
|
+
private _tooltipElement;
|
|
28
29
|
private _iconButtonElement;
|
|
29
30
|
private _popupElement?;
|
|
30
31
|
private _profileCardElement?;
|
|
@@ -20,6 +20,7 @@ export class AppBarProfileButtonAdapter extends BaseAdapter {
|
|
|
20
20
|
}
|
|
21
21
|
initialize() {
|
|
22
22
|
this._avatarElement = getLightElement(this._component, AVATAR_CONSTANTS.elementName);
|
|
23
|
+
this._tooltipElement = getLightElement(this._component, 'forge-tooltip');
|
|
23
24
|
this._iconButtonElement = getLightElement(this._component, ICON_BUTTON_CONSTANTS.elementName);
|
|
24
25
|
const originalAriaLabelledBy = this._iconButtonElement.getAttribute('aria-labelledby'); // Set by tooltip
|
|
25
26
|
this._forwardObserver = forwardAttributes(this._component, APP_BAR_PROFILE_BUTTON_CONSTANTS.forwardedAttributes, (name, value) => {
|
|
@@ -97,6 +98,7 @@ export class AppBarProfileButtonAdapter extends BaseAdapter {
|
|
|
97
98
|
}
|
|
98
99
|
setAvatarText(value) {
|
|
99
100
|
this._avatarElement.text = value;
|
|
101
|
+
this._tooltipElement.textContent = `View ${value}'s profile`;
|
|
100
102
|
removeAllChildren(this._avatarElement);
|
|
101
103
|
}
|
|
102
104
|
setAvatarIcon(value) {
|
|
@@ -29,6 +29,8 @@ declare global {
|
|
|
29
29
|
/**
|
|
30
30
|
* @tag forge-app-bar-profile-button
|
|
31
31
|
*
|
|
32
|
+
* @summary A user profile button component that displays an avatar and opens a profile card popup with user information and action buttons when clicked.
|
|
33
|
+
*
|
|
32
34
|
* @property {string} avatarImageUrl - The url of the avatar image to display.
|
|
33
35
|
* @property {number} [avatarLetterCount=2] - The number of letters to display in the avatar.
|
|
34
36
|
* @property {string} avatarText - The text to display in the avatar.
|
|
@@ -18,6 +18,8 @@ const template = '<template><forge-icon-button theme=\"app-bar\"><forge-avatar a
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-app-bar-profile-button
|
|
20
20
|
*
|
|
21
|
+
* @summary A user profile button component that displays an avatar and opens a profile card popup with user information and action buttons when clicked.
|
|
22
|
+
*
|
|
21
23
|
* @property {string} avatarImageUrl - The url of the avatar image to display.
|
|
22
24
|
* @property {number} [avatarLetterCount=2] - The number of letters to display in the avatar.
|
|
23
25
|
* @property {string} avatarText - The text to display in the avatar.
|
|
@@ -21,6 +21,8 @@ declare global {
|
|
|
21
21
|
/**
|
|
22
22
|
* @tag forge-app-bar-search
|
|
23
23
|
*
|
|
24
|
+
* @summary A search input component with integrated search icon and styling optimized for use within app bars, supporting keyboard interaction and customizable actions.
|
|
25
|
+
*
|
|
24
26
|
* @slot - The default (unnamed) slot is where child `<input>` elements will be placed.
|
|
25
27
|
* @slot action - Places actions at the end of the input.
|
|
26
28
|
*
|
|
@@ -17,6 +17,8 @@ const styles = ':host{display:block;color:var(--_app-bar-theme-foreground)}:host
|
|
|
17
17
|
/**
|
|
18
18
|
* @tag forge-app-bar-search
|
|
19
19
|
*
|
|
20
|
+
* @summary A search input component with integrated search icon and styling optimized for use within app bars, supporting keyboard interaction and customizable actions.
|
|
21
|
+
*
|
|
20
22
|
* @slot - The default (unnamed) slot is where child `<input>` elements will be placed.
|
|
21
23
|
* @slot action - Places actions at the end of the input.
|
|
22
24
|
*
|
|
@@ -138,6 +138,7 @@ export class AutocompleteCore extends ListDropdownAwareCore {
|
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
140
|
_onClear(evt) {
|
|
141
|
+
evt.preventDefault();
|
|
141
142
|
this._filterText = '';
|
|
142
143
|
this._clearValue();
|
|
143
144
|
this._adapter.setSelectedText(this._getSelectedText());
|
|
@@ -352,14 +353,26 @@ export class AutocompleteCore extends ListDropdownAwareCore {
|
|
|
352
353
|
asyncStyle: ListDropdownAsyncStyle.Skeleton,
|
|
353
354
|
headerBuilder: this._popupHeaderBuilder,
|
|
354
355
|
footerBuilder: this._popupFooterBuilder,
|
|
355
|
-
transform: label => {
|
|
356
|
-
|
|
357
|
-
|
|
356
|
+
transform: (label, option, isSelected) => {
|
|
357
|
+
const inputValue = this._adapter.getInputValue();
|
|
358
|
+
const isUserTyping = this._filterText &&
|
|
359
|
+
inputValue?.length &&
|
|
360
|
+
inputValue !== label && // User hasn't just selected this exact option
|
|
361
|
+
this._adapter.hasFocus();
|
|
362
|
+
if (isUserTyping) {
|
|
363
|
+
// When filtering: highlight only the matching search text
|
|
358
364
|
const highlightElement = highlightTextHTML(label, this._filterText);
|
|
359
365
|
if (highlightElement) {
|
|
360
366
|
return highlightElement;
|
|
361
367
|
}
|
|
362
368
|
}
|
|
369
|
+
else if (isSelected) {
|
|
370
|
+
// When not filtering: bold the entire text of selected options
|
|
371
|
+
const boldElement = document.createElement('span');
|
|
372
|
+
boldElement.style.fontWeight = 'bold';
|
|
373
|
+
boldElement.textContent = label;
|
|
374
|
+
return boldElement;
|
|
375
|
+
}
|
|
363
376
|
return label;
|
|
364
377
|
},
|
|
365
378
|
allowBusy: true,
|
|
@@ -41,6 +41,8 @@ declare global {
|
|
|
41
41
|
/**
|
|
42
42
|
* @tag forge-autocomplete
|
|
43
43
|
*
|
|
44
|
+
* @summary Autocomplete components provide real-time typeahead suggestions as users type in a text field. Use autocompletes to help users quickly find and select from a list of options, improving form usability and data accuracy.
|
|
45
|
+
*
|
|
44
46
|
* @event {CustomEvent<any>} forge-autocomplete-change - Fired when the value changes.
|
|
45
47
|
* @event {CustomEvent<IAutocompleteSelectEventData>} forge-autocomplete-select - Fired when an option is selected. Only applies when in "stateless" `mode`.
|
|
46
48
|
* @event {CustomEvent<void>} forge-autocomplete-scrolled-bottom - Fired when the dropdown is scrolled to the bottom. Only applies when `observe-scroll` is enabled.
|
|
@@ -22,6 +22,8 @@ const styles = ':host{display:block}:host([hidden]){display:none}';
|
|
|
22
22
|
/**
|
|
23
23
|
* @tag forge-autocomplete
|
|
24
24
|
*
|
|
25
|
+
* @summary Autocomplete components provide real-time typeahead suggestions as users type in a text field. Use autocompletes to help users quickly find and select from a list of options, improving form usability and data accuracy.
|
|
26
|
+
*
|
|
25
27
|
* @event {CustomEvent<any>} forge-autocomplete-change - Fired when the value changes.
|
|
26
28
|
* @event {CustomEvent<IAutocompleteSelectEventData>} forge-autocomplete-select - Fired when an option is selected. Only applies when in "stateless" `mode`.
|
|
27
29
|
* @event {CustomEvent<void>} forge-autocomplete-scrolled-bottom - Fired when the dropdown is scrolled to the bottom. Only applies when `observe-scroll` is enabled.
|
package/esm/avatar/avatar.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare const AVATAR_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
|
20
20
|
/**
|
|
21
21
|
* @tag forge-avatar
|
|
22
22
|
*
|
|
23
|
-
* @summary Avatars represent an entity via text or image.
|
|
23
|
+
* @summary Avatars represent an entity via text or image. Use avatars to visually represent users, objects, or identifiers in your application.
|
|
24
24
|
*
|
|
25
25
|
* @cssproperty {string} --forge-avatar-background - The background color of the avatar.
|
|
26
26
|
* @cssproperty {number} --forge-avatar-shape - The border radius of the avatar, defaults to 50%.
|
package/esm/avatar/avatar.js
CHANGED
|
@@ -28,7 +28,7 @@ export const AVATAR_TAG_NAME = 'forge-avatar';
|
|
|
28
28
|
/**
|
|
29
29
|
* @tag forge-avatar
|
|
30
30
|
*
|
|
31
|
-
* @summary Avatars represent an entity via text or image.
|
|
31
|
+
* @summary Avatars represent an entity via text or image. Use avatars to visually represent users, objects, or identifiers in your application.
|
|
32
32
|
*
|
|
33
33
|
* @cssproperty {string} --forge-avatar-background - The background color of the avatar.
|
|
34
34
|
* @cssproperty {number} --forge-avatar-shape - The border radius of the avatar, defaults to 50%.
|
|
@@ -20,6 +20,8 @@ declare global {
|
|
|
20
20
|
/**
|
|
21
21
|
* @tag forge-backdrop
|
|
22
22
|
*
|
|
23
|
+
* @summary Backdrops provide a semi-transparent overlay behind modal content like dialogs and drawers. These are building blocks for creating modal experiences, not intended to be used directly.
|
|
24
|
+
*
|
|
23
25
|
* @property {boolean} [visible=false] - Whether the backdrop is visible.
|
|
24
26
|
* @property {boolean} [fixed=false] - Whether the backdrop uses "fixed" or "relative" positioning.
|
|
25
27
|
*
|
package/esm/backdrop/backdrop.js
CHANGED
|
@@ -12,6 +12,8 @@ const styles = '@keyframes enter{from{opacity:0}to{opacity:var(--_backdrop-opaci
|
|
|
12
12
|
/**
|
|
13
13
|
* @tag forge-backdrop
|
|
14
14
|
*
|
|
15
|
+
* @summary Backdrops provide a semi-transparent overlay behind modal content like dialogs and drawers. These are building blocks for creating modal experiences, not intended to be used directly.
|
|
16
|
+
*
|
|
15
17
|
* @property {boolean} [visible=false] - Whether the backdrop is visible.
|
|
16
18
|
* @property {boolean} [fixed=false] - Whether the backdrop uses "fixed" or "relative" positioning.
|
|
17
19
|
*
|
package/esm/badge/badge.d.ts
CHANGED
|
@@ -22,6 +22,8 @@ export declare const BADGE_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
|
22
22
|
/**
|
|
23
23
|
* @tag forge-badge
|
|
24
24
|
*
|
|
25
|
+
* @summary Badges display small amounts of non-interactive information like counts, status indicators, or notifications.
|
|
26
|
+
*
|
|
25
27
|
* @cssproperty --forge-badge-background - The background color.
|
|
26
28
|
* @cssproperty --forge-badge-color - The text color.
|
|
27
29
|
* @cssproperty --forge-badge-shape - The shape radius.
|
package/esm/badge/badge.js
CHANGED
|
@@ -15,6 +15,8 @@ export const BADGE_TAG_NAME = 'forge-badge';
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-badge
|
|
17
17
|
*
|
|
18
|
+
* @summary Badges display small amounts of non-interactive information like counts, status indicators, or notifications.
|
|
19
|
+
*
|
|
18
20
|
* @cssproperty --forge-badge-background - The background color.
|
|
19
21
|
* @cssproperty --forge-badge-color - The text color.
|
|
20
22
|
* @cssproperty --forge-badge-shape - The shape radius.
|
package/esm/banner/banner.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ declare global {
|
|
|
25
25
|
/**
|
|
26
26
|
* @tag forge-banner
|
|
27
27
|
*
|
|
28
|
-
* @summary Banners are used to inform users of important information, such as errors, warnings, or success messages.
|
|
28
|
+
* @summary Banners are used to inform users of important information, such as errors, warnings, or success messages. Use banners for non-critical messages that require user attention but do not interrupt workflow.
|
|
29
29
|
*
|
|
30
30
|
* @property {boolean} [dismissed=false] - Controls the visibility of the banner.
|
|
31
31
|
* @property {boolean} [persistent=false] - Controls the visibility of the built-in dismiss button.
|
package/esm/banner/banner.js
CHANGED
|
@@ -18,7 +18,7 @@ const styles = ':host{display:block;container-type:inline-size}:host([hidden]){d
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-banner
|
|
20
20
|
*
|
|
21
|
-
* @summary Banners are used to inform users of important information, such as errors, warnings, or success messages.
|
|
21
|
+
* @summary Banners are used to inform users of important information, such as errors, warnings, or success messages. Use banners for non-critical messages that require user attention but do not interrupt workflow.
|
|
22
22
|
*
|
|
23
23
|
* @property {boolean} [dismissed=false] - Controls the visibility of the banner.
|
|
24
24
|
* @property {boolean} [persistent=false] - Controls the visibility of the built-in dismiss button.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { getShadowElement } from '@tylertech/forge-core';
|
|
7
7
|
import { tylIconArrowDropDown } from '@tylertech/tyler-icons';
|
|
8
8
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
9
|
-
import {
|
|
9
|
+
import { FOCUS_INDICATOR_TAG_NAME } from '../../focus-indicator';
|
|
10
10
|
import { STATE_LAYER_CONSTANTS } from '../../state-layer';
|
|
11
11
|
import { BASE_BUTTON_CONSTANTS } from './base-button-constants';
|
|
12
12
|
import { BUTTON_FORM_ATTRIBUTES, cloneAttributes } from '../../core/utils/reflect-utils';
|
|
@@ -16,7 +16,7 @@ export class BaseButtonAdapter extends BaseAdapter {
|
|
|
16
16
|
constructor(component) {
|
|
17
17
|
super(component);
|
|
18
18
|
this._rootElement = getShadowElement(this._component, BASE_BUTTON_CONSTANTS.selectors.ROOT);
|
|
19
|
-
this._focusIndicatorElement = getShadowElement(this._component,
|
|
19
|
+
this._focusIndicatorElement = getShadowElement(this._component, FOCUS_INDICATOR_TAG_NAME);
|
|
20
20
|
this._stateLayerElement = getShadowElement(this._component, STATE_LAYER_CONSTANTS.elementName);
|
|
21
21
|
this._defaultSlotElement = getShadowElement(this._component, BASE_BUTTON_CONSTANTS.selectors.DEFAULT_SLOT);
|
|
22
22
|
this._endSlotElement = getShadowElement(this._component, BASE_BUTTON_CONSTANTS.selectors.END_SLOT);
|
package/esm/button/button.d.ts
CHANGED
|
@@ -20,12 +20,7 @@ declare global {
|
|
|
20
20
|
/**
|
|
21
21
|
* @tag forge-button
|
|
22
22
|
*
|
|
23
|
-
* @summary Buttons
|
|
24
|
-
*
|
|
25
|
-
* @description
|
|
26
|
-
* Buttons are used when a user needs to take an action, such as submitting a form or opening a dialog.
|
|
27
|
-
* Buttons can be used to trigger an action or to navigate to a new location. Buttons can be styled with
|
|
28
|
-
* a variety of themes and variants.
|
|
23
|
+
* @summary Buttons are used when a user needs to take an action. They can be used to trigger an action, navigate to a new location, and can be styled with a variety of themes and variants.
|
|
29
24
|
*
|
|
30
25
|
* @dependency forge-icon
|
|
31
26
|
* @dependency forge-focus-indicator
|
package/esm/button/button.js
CHANGED
|
@@ -18,12 +18,7 @@ const styles = ':host{--_button-display:var(--forge-button-display, inline-grid)
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-button
|
|
20
20
|
*
|
|
21
|
-
* @summary Buttons
|
|
22
|
-
*
|
|
23
|
-
* @description
|
|
24
|
-
* Buttons are used when a user needs to take an action, such as submitting a form or opening a dialog.
|
|
25
|
-
* Buttons can be used to trigger an action or to navigate to a new location. Buttons can be styled with
|
|
26
|
-
* a variety of themes and variants.
|
|
21
|
+
* @summary Buttons are used when a user needs to take an action. They can be used to trigger an action, navigate to a new location, and can be styled with a variety of themes and variants.
|
|
27
22
|
*
|
|
28
23
|
* @dependency forge-icon
|
|
29
24
|
* @dependency forge-focus-indicator
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { getShadowElement } from '@tylertech/forge-core';
|
|
7
7
|
import { BaseAdapter } from '../core';
|
|
8
|
-
import {
|
|
8
|
+
import { FOCUS_INDICATOR_TAG_NAME } from '../focus-indicator';
|
|
9
9
|
import { STATE_LAYER_CONSTANTS } from '../state-layer';
|
|
10
10
|
import { BUTTON_AREA_CONSTANTS } from './button-area-constants';
|
|
11
11
|
export class ButtonAreaAdapter extends BaseAdapter {
|
|
@@ -14,7 +14,7 @@ export class ButtonAreaAdapter extends BaseAdapter {
|
|
|
14
14
|
this._rootElement = getShadowElement(component, BUTTON_AREA_CONSTANTS.selectors.ROOT);
|
|
15
15
|
this._buttonSlotElement = getShadowElement(component, BUTTON_AREA_CONSTANTS.selectors.BUTTON_SLOT);
|
|
16
16
|
this._contentSlotElement = getShadowElement(component, BUTTON_AREA_CONSTANTS.selectors.CONTENT_SLOT);
|
|
17
|
-
this._focusIndicatorElement = getShadowElement(component,
|
|
17
|
+
this._focusIndicatorElement = getShadowElement(component, FOCUS_INDICATOR_TAG_NAME);
|
|
18
18
|
this._stateLayerElement = getShadowElement(component, STATE_LAYER_CONSTANTS.elementName);
|
|
19
19
|
}
|
|
20
20
|
setDisabled(value) {
|
|
@@ -15,10 +15,7 @@ declare global {
|
|
|
15
15
|
/**
|
|
16
16
|
* @tag forge-button-area
|
|
17
17
|
*
|
|
18
|
-
* @summary Button areas are used to create
|
|
19
|
-
*
|
|
20
|
-
* @description
|
|
21
|
-
* The button area component wraps any arbitrary content with a `<button>` element to enable accessible clickable interfaces including nested controls and other complex content.
|
|
18
|
+
* @summary Button areas are used to create clickable areas that group related information and actions about a single subject. The button area component wraps any arbitrary content with a `<button>` element to enable accessible, clickable interfaces including nested controls and other complex content.
|
|
22
19
|
*
|
|
23
20
|
* @property {boolean} [disabled=false] - Sets whether the button area and slotted button are disabled. Setting this on one will also set it on the other.
|
|
24
21
|
*
|
|
@@ -16,10 +16,7 @@ const styles = ':host{display:block;position:relative}:host .forge-button-area{c
|
|
|
16
16
|
/**
|
|
17
17
|
* @tag forge-button-area
|
|
18
18
|
*
|
|
19
|
-
* @summary Button areas are used to create
|
|
20
|
-
*
|
|
21
|
-
* @description
|
|
22
|
-
* The button area component wraps any arbitrary content with a `<button>` element to enable accessible clickable interfaces including nested controls and other complex content.
|
|
19
|
+
* @summary Button areas are used to create clickable areas that group related information and actions about a single subject. The button area component wraps any arbitrary content with a `<button>` element to enable accessible, clickable interfaces including nested controls and other complex content.
|
|
23
20
|
*
|
|
24
21
|
* @property {boolean} [disabled=false] - Sets whether the button area and slotted button are disabled. Setting this on one will also set it on the other.
|
|
25
22
|
*
|
|
@@ -7,11 +7,11 @@ import { getShadowElement } from '@tylertech/forge-core';
|
|
|
7
7
|
import { BaseAdapter } from '../../core/base/base-adapter';
|
|
8
8
|
import { isFocusable, setDefaultAria } from '../../constants';
|
|
9
9
|
import { STATE_LAYER_CONSTANTS } from '../../state-layer/state-layer-constants';
|
|
10
|
-
import {
|
|
10
|
+
import { FOCUS_INDICATOR_TAG_NAME } from '../../focus-indicator/focus-indicator';
|
|
11
11
|
export class ButtonToggleAdapter extends BaseAdapter {
|
|
12
12
|
constructor(component) {
|
|
13
13
|
super(component);
|
|
14
|
-
this._focusIndicatorElement = getShadowElement(component,
|
|
14
|
+
this._focusIndicatorElement = getShadowElement(component, FOCUS_INDICATOR_TAG_NAME);
|
|
15
15
|
this._stateLayerElement = getShadowElement(component, STATE_LAYER_CONSTANTS.elementName);
|
|
16
16
|
}
|
|
17
17
|
initialize() {
|
|
@@ -27,6 +27,8 @@ declare const ButtonToggleComponent_base: import("../../constants").AbstractCons
|
|
|
27
27
|
/**
|
|
28
28
|
* @tag forge-button-toggle
|
|
29
29
|
*
|
|
30
|
+
* @summary Button toggles allow users to select from a group of choices with single or multiple selection.
|
|
31
|
+
*
|
|
30
32
|
* @property {unknown} value - The value of the button toggle.
|
|
31
33
|
* @property {boolean} [selected=false] - Whether or not the button is selected.
|
|
32
34
|
* @property {boolean} [disabled=false] - Whether or not the button is disabled.
|
|
@@ -19,6 +19,8 @@ const styles = ':host{--_button-toggle-display:var(--forge-button-toggle-display
|
|
|
19
19
|
/**
|
|
20
20
|
* @tag forge-button-toggle
|
|
21
21
|
*
|
|
22
|
+
* @summary Button toggles allow users to select from a group of choices with single or multiple selection.
|
|
23
|
+
*
|
|
22
24
|
* @property {unknown} value - The value of the button toggle.
|
|
23
25
|
* @property {boolean} [selected=false] - Whether or not the button is selected.
|
|
24
26
|
* @property {boolean} [disabled=false] - Whether or not the button is disabled.
|
|
@@ -36,7 +36,7 @@ declare const ButtonToggleGroupComponent_base: import("../../constants").Abstrac
|
|
|
36
36
|
/**
|
|
37
37
|
* @tag forge-button-toggle-group
|
|
38
38
|
*
|
|
39
|
-
* @
|
|
39
|
+
* @summary Button toggle groups allow users to select one or more options from a set of button toggles.
|
|
40
40
|
*
|
|
41
41
|
* @property {any} value - The value of the selected button toggle(s).
|
|
42
42
|
* @property {boolean} [outlined=true] - Whether or not the group should be outlined.
|
|
@@ -21,7 +21,7 @@ const styles = ':host{--_button-toggle-group-display:var(--forge-button-toggle-g
|
|
|
21
21
|
/**
|
|
22
22
|
* @tag forge-button-toggle-group
|
|
23
23
|
*
|
|
24
|
-
* @
|
|
24
|
+
* @summary Button toggle groups allow users to select one or more options from a set of button toggles.
|
|
25
25
|
*
|
|
26
26
|
* @property {any} value - The value of the selected button toggle(s).
|
|
27
27
|
* @property {boolean} [outlined=true] - Whether or not the group should be outlined.
|
|
@@ -12,7 +12,7 @@ import { CALENDAR_MENU_CONSTANTS } from './calendar-menu-constants';
|
|
|
12
12
|
import { CalendarMenuCore } from './calendar-menu-core';
|
|
13
13
|
import { BaseComponent } from '../../core/base/base-component';
|
|
14
14
|
const template = '<template><div class=\"forge-calendar-menu\" part=\"root\"></div></template>';
|
|
15
|
-
const styles = '.forge-calendar-menu{background-color:var(--forge-theme-surface,#fff);position:relative;height:100%;width:100%;overflow:hidden}.forge-calendar-menu__view{position:absolute;top:0;left:0;height:100%;width:100%;background-color:inherit}.forge-calendar-menu__grid{max-height:var(--forge-calendar-menu-max-height,320px);display:grid;gap:16px;justify-items:center;align-items:center;padding:8px;box-sizing:border-box}.forge-calendar-menu__grid--three-col{grid-template-columns:repeat(3,1fr)}.forge-calendar-menu__grid--four-col{grid-template-columns:repeat(4,1fr)}.forge-calendar-menu__list{position:relative;background-color:inherit}.forge-calendar-menu__list__wrapper
|
|
15
|
+
const styles = '.forge-calendar-menu{background-color:var(--forge-theme-surface,#fff);position:relative;height:100%;width:100%;overflow:hidden}.forge-calendar-menu__view{position:absolute;top:0;left:0;height:100%;width:100%;background-color:inherit}.forge-calendar-menu__grid{max-height:var(--forge-calendar-menu-max-height,320px);display:grid;gap:16px;justify-items:center;align-items:center;padding:8px;box-sizing:border-box}.forge-calendar-menu__grid--three-col{grid-template-columns:repeat(3,1fr)}.forge-calendar-menu__grid--four-col{grid-template-columns:repeat(4,1fr)}.forge-calendar-menu__list{position:relative;background-color:inherit}.forge-calendar-menu__list__wrapper::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-calendar-menu__list__wrapper::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-calendar-menu__list__wrapper::-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-calendar-menu__list__wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-calendar-menu__list__wrapper{position:relative;height:100%;overflow:auto}.forge-calendar-menu__item--grid{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);display:flex;justify-content:center;align-items:center;position:relative;width:100%;height:100%;border-radius:4px;overflow:hidden;font-weight:500;user-select:none}.forge-calendar-menu__item--grid:not([disabled]){border:1px solid var(--forge-theme-outline,#e0e0e0);cursor:pointer}.forge-calendar-menu__item--grid[disabled]{color:var(--forge-theme-text-low,rgba(0,0,0,.38))}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected{background-color:var(--forge-theme-primary,#3f51b5);color:var(--forge-theme-on-primary,#fff)}.forge-calendar-menu__item--grid.forge-calendar-menu__item--selected forge-focus-indicator{--forge-focus-indicator-color:var(--forge-theme-primary-container, #d1d5ed)}.forge-calendar-menu__item--list{display:flex;align-items:center;justify-content:center;margin:0 4px;width:calc(100% - 8px);height:48px;border-radius:4px;overflow:hidden;text-align:center;cursor:pointer;position:relative}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected{background-color:var(--forge-theme-primary,#3f51b5);color:var(--forge-theme-on-primary,#fff)}.forge-calendar-menu__item--list.forge-calendar-menu__item--selected forge-focus-indicator{--forge-focus-indicator-color:var(--forge-theme-primary-container)}.forge-calendar-menu__item--focused,.forge-calendar-menu__item:focus{outline:0}.forge-calendar-menu--open{animation-duration:.2s;animation-name:scale-open;transform-origin:top center}.forge-calendar-menu--open[data-animation=fade]{animation-name:fade-in}.forge-calendar-menu--open[data-animation=none]{animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--open{animation-name:fade-in}}.forge-calendar-menu--closing{animation-duration:.2s;animation-name:scale-closed;transform-origin:top center}.forge-calendar-menu--closing[data-animation=fade]{animation-name:fade-out}.forge-calendar-menu--closing[data-animation=none]{animation-duration:1ms}@media (prefers-reduced-motion){.forge-calendar-menu--closing{animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{animation-duration:.2s;animation-name:slide-out-to-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:first-child{animation-name:fade-out}}.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{animation-duration:.2s;animation-name:slide-in-from-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-right .forge-calendar-menu__view:last-child{animation-name:fade-in}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{animation-duration:.2s;animation-name:slide-out-to-left}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:first-child{animation-name:fade-out}}.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{animation-duration:.2s;animation-name:slide-in-from-right}@media (prefers-reduced-motion){.forge-calendar-menu--slide-left .forge-calendar-menu__view:last-child{animation-name:fade-in}}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:first-child{animation-duration:.2s;animation-name:fade-out}.forge-calendar-menu--replacing-view .forge-calendar-menu__view:last-child{animation-duration:.2s;animation-name:fade-in}#scroll-spy-bottom{position:absolute;bottom:0;height:48px;pointer-events:none}#scroll-spy-top{position:absolute;top:0;height:48px;pointer-events:none}@keyframes scale-open{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes scale-closed{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.4)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes fade-out{from{opacity:1}to{opacity:0}}@keyframes slide-in-from-left{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes slide-in-from-right{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes slide-out-to-left{from{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes slide-out-to-right{from{transform:translateX(0)}to{transform:translateX(100%)}}:host{display:block;position:absolute;top:0;left:0;height:100%;width:100%}:host([hidden]){display:none}:host([forge-popover-context=true]) .forge-calendar-menu{background-color:var(--forge-theme-surface-bright,#fff)}';
|
|
16
16
|
/**
|
|
17
17
|
* @internal
|
|
18
18
|
* @tag forge-calendar-menu
|
|
@@ -42,6 +42,8 @@ declare global {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
+
* @summary A flexible calendar component for date selection with support for single dates, ranges, multiple selections, and extensive customization options.
|
|
46
|
+
*
|
|
45
47
|
* @tag forge-calendar
|
|
46
48
|
*
|
|
47
49
|
* @property {Date} activeDate - The currently active date in the calendar.
|
package/esm/calendar/calendar.js
CHANGED
|
@@ -18,8 +18,10 @@ import { StateLayerComponent } from '../state-layer';
|
|
|
18
18
|
import { FocusIndicatorComponent } from '../focus-indicator';
|
|
19
19
|
import { BaseComponent } from '../core/base/base-component';
|
|
20
20
|
const template = '<template><div class=\"forge-calendar\" part=\"root\"><div id=\"view\" class=\"forge-calendar__view\" part=\"view\"><div id=\"date-view\" class=\"forge-calendar__date-view\" role=\"grid\" part=\"date-view\"><div role=\"rowgroup\" part=\"date-view-container\"><div id=\"day-row\" class=\"forge-calendar__date-view__row\" role=\"row\" part=\"date-view-row\"></div></div><div id=\"date-grid\" class=\"forge-calendar__date-grid\" role=\"rowgroup\" part=\"date-grid-container\"></div></div><forge-calendar-menu id=\"menu\" part=\"calendar-menu\"></forge-calendar-menu></div></div></template>';
|
|
21
|
-
const styles = '.forge-calendar{width:var(--forge-calendar-width,100%);height:fit-content;position:relative}.forge-calendar__header{padding:var(--forge-calendar-controls-padding,0);display:flex;align-items:center;justify-content:space-between}.forge-calendar__footer{padding:var(--forge-calendar-controls-padding,0);display:flex;align-items:center;justify-content:space-between}.forge-calendar__view{position:relative}.forge-calendar__date-view{display:block}.forge-calendar__date-view__row{display:grid;grid-template-columns:repeat(7,1fr)}.forge-calendar__date-grid{display:grid}.forge-calendar__day{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .8125)));font-weight:var(--forge-typography-label2-font-weight,400);line-height:var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label2-letter-spacing, .0096153846em);text-transform:var(--forge-typography-label2-text-transform,inherit);text-decoration:var(--forge-typography-label2-text-decoration,inherit);display:flex;justify-content:center;align-items:center;min-width:0;padding:0;font-weight:700;user-select:none}.forge-
|
|
21
|
+
const styles = '.forge-calendar{width:var(--forge-calendar-width,100%);height:fit-content;position:relative}.forge-calendar__header{padding:var(--forge-calendar-controls-padding,0);display:flex;align-items:center;justify-content:space-between}.forge-calendar__footer{padding:var(--forge-calendar-controls-padding,0);display:flex;align-items:center;justify-content:space-between}.forge-calendar__view{position:relative}.forge-calendar__date-view{display:block}.forge-calendar__date-view__row{display:grid;grid-template-columns:repeat(7,1fr)}.forge-calendar__date-grid{display:grid}.forge-calendar__day{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .8125)));font-weight:var(--forge-typography-label2-font-weight,400);line-height:var(--forge-typography-label2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label2-letter-spacing, .0096153846em);text-transform:var(--forge-typography-label2-text-transform,inherit);text-decoration:var(--forge-typography-label2-text-decoration,inherit)}.forge-calendar__day::after{float:left;padding-top:100%;content:\"\"}.forge-calendar__day{display:flex;justify-content:center;align-items:center;min-width:0;padding:0;font-weight:700;user-select:none}.forge-calendar__date::after{float:left;padding-top:100%;content:\"\"}.forge-calendar__date{margin-top:var(--forge-calendar-row-gap,2px);min-width:0;padding:0;border-radius:50%;position:relative;outline:0;cursor:default;user-select:none}.forge-calendar__date forge-focus-indicator{--forge-focus-indicator-shape:50%}.forge-calendar__date__inner{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);position:absolute;width:calc(100% - 2px);height:calc(100% - 2px);top:calc(2px / 2);left:calc(2px / 2);display:flex;justify-content:center;align-items:center;border-radius:inherit;box-sizing:border-box}.forge-calendar--show-today .forge-calendar__date--today:not([disabled]){color:var(--forge-theme-primary,#3f51b5);border-color:var(--forge-theme-primary,#3f51b5)}.forge-calendar--show-today .forge-calendar__date--today .forge-calendar__date__inner{border-color:inherit;border-width:1px;border-style:solid;font-weight:700}.forge-calendar--show-today .forge-calendar__date--today.forge-calendar__date--selected{color:var(--forge-theme-on-primary,#fff)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]){cursor:pointer}.forge-calendar__date--selected:not([disabled]) .forge-calendar__date__inner{background-color:var(--forge-theme-primary,#3f51b5);color:var(--forge-theme-on-primary,#fff)}.forge-calendar__date--selected[disabled] .forge-calendar__date__inner{background-color:var(--forge-theme-primary-container-minimum,#f7f8fc);color:var(--forge-theme-text-low,rgba(0,0,0,.38))}.forge-calendar__date--selected forge-focus-indicator{--forge-focus-indicator-color:var(--forge-theme-primary-container)}.forge-calendar__date[disabled]{color:var(--forge-theme-text-low,rgba(0,0,0,.38))}.forge-calendar__date-spacer{pointer-events:none}.forge-calendar--fixed-height .forge-calendar__date-spacer::after{float:left;padding-top:100%;content:\"\"}.forge-calendar--fixed-height .forge-calendar__date-spacer{margin-top:var(--forge-calendar-row-gap,2px)}.forge-calendar__range:not(.forge-calendar__date-spacer) .forge-calendar__range__target{background-color:var(--forge-theme-primary,#3f51b5);position:absolute;width:100%;height:100%;opacity:.14;border-radius:0}.forge-calendar__range:not(.forge-calendar__date-spacer).forge-calendar__range--start .forge-calendar__range__target{border-top-left-radius:50%;border-bottom-left-radius:50%}.forge-calendar__range:not(.forge-calendar__date-spacer).forge-calendar__range--end .forge-calendar__range__target{border-top-right-radius:50%;border-bottom-right-radius:50%}.forge-calendar__range:not(.forge-calendar__range--start):first-of-type .forge-calendar__range__target{border-top-left-radius:4px;border-bottom-left-radius:4px}.forge-calendar__range:not(.forge-calendar__range--end):last-of-type .forge-calendar__range__target{border-top-right-radius:4px;border-bottom-right-radius:4px}.forge-calendar--allow-single-date-range .forge-calendar__range--start.forge-calendar__range--end .forge-calendar__range__target{transition:transform .2s;transform:scale(1.15);transform-origin:center}.forge-calendar__event[data-event-theme=primary]{color:var(--forge-calendar-theme-event-primary-accent,#3f51b5)}.forge-calendar__event[data-event-theme=secondary]{color:var(--forge-calendar-theme-event-secondary-accent,#ffc107)}.forge-calendar__event[data-event-theme=blue]{color:var(--forge-calendar-theme-event-blue-accent,#2196f3)}.forge-calendar__event[data-event-theme=light-green]{color:var(--forge-calendar-theme-event-light-green-accent,#8bc34a)}.forge-calendar__event[data-event-theme=cyan]{color:var(--forge-calendar-theme-event-cyan-accent,#00bcd4)}.forge-calendar__event[data-event-theme=teal]{color:var(--forge-calendar-theme-event-teal-accent,#009688)}.forge-calendar__event[data-event-theme=orange]{color:var(--forge-calendar-theme-event-orange-accent,#ff9800)}.forge-calendar__event[data-event-theme=blue-grey]{color:var(--forge-calendar-theme-event-blue-grey-accent,#607d8b)}.forge-calendar__event[data-event-theme=grey]{color:var(--forge-calendar-theme-event-grey-accent,#9e9e9e)}.forge-calendar__event[data-event-theme=red]{color:var(--forge-calendar-theme-event-red-accent,#f44336)}.forge-calendar__event[data-event-theme=pink]{color:var(--forge-calendar-theme-event-pink-accent,#e91e63)}.forge-calendar__event[data-event-theme=purple]{color:var(--forge-calendar-theme-event-purple-accent,#9c27b0)}.forge-calendar__event[data-event-theme=light-blue]{color:var(--forge-calendar-theme-event-light-blue-accent,#03a9f4)}.forge-calendar__event[data-event-theme=deep-purple]{color:var(--forge-calendar-theme-event-deep-purple-accent,#673ab7)}.forge-calendar__event[data-event-theme=green]{color:var(--forge-calendar-theme-event-green-accent,#4caf50)}.forge-calendar__event[data-event-theme=lime]{color:var(--forge-calendar-theme-event-lime-accent,#cddc39)}.forge-calendar__event[data-event-theme=yellow]{color:var(--forge-calendar-theme-event-yellow-accent,#ffeb3b)}.forge-calendar__event[data-event-theme=brown]{color:var(--forge-calendar-theme-event-brown-accent,#795548)}.forge-calendar__event[data-event-theme=deep-orange]{color:var(--forge-calendar-theme-event-deep-orange-accent,#ff5722)}.forge-calendar__event{font-size:var(--forge-calendar-event-dot-size, 12px)}.forge-calendar__date[disabled] .forge-calendar__event{opacity:.14}.forge-calendar__event--overflow{background-color:var(--forge-theme-surface,#fff);color:var(--forge-theme-on-surface,#000);border-radius:50%}.forge-calendar__event__wrapper{display:flex;justify-content:center;gap:2px;position:absolute;bottom:0;left:0;width:100%;padding-bottom:2px;pointer-events:none}.forge-calendar__date-spacer .forge-calendar__event__wrapper{display:none}.forge-calendar--rtl .forge-calendar__header forge-icon-button forge-icon{transform:rotate(180deg)}#accessible-header{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}#month-button forge-icon{transition:transform .2s}.forge-calendar--month-menu-open #month-button forge-icon{transform:rotate(180deg)}#year-button forge-icon{transition:transform .2s}.forge-calendar--year-menu-open #year-button forge-icon{transform:rotate(180deg)}:host{--forge-calendar-event-stroke-color:var(--forge-theme-surface, #ffffff);display:inline-block}:host([hidden]){display:none}:host([forge-popover-context=true]){--forge-calendar-event-stroke-color:var(--forge-theme-surface-bright, #ffffff)}';
|
|
22
22
|
/**
|
|
23
|
+
* @summary A flexible calendar component for date selection with support for single dates, ranges, multiple selections, and extensive customization options.
|
|
24
|
+
*
|
|
23
25
|
* @tag forge-calendar
|
|
24
26
|
*
|
|
25
27
|
* @property {Date} activeDate - The currently active date in the calendar.
|
package/esm/card/card.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export declare const CARD_TAG_NAME: keyof HTMLElementTagNameMap;
|
|
|
18
18
|
/**
|
|
19
19
|
* @tag forge-card
|
|
20
20
|
*
|
|
21
|
+
* @summary Cards group related content and actions together in a single container.
|
|
22
|
+
*
|
|
21
23
|
* @attribute {boolean} [no-padding=false] - Removes the default padding from the card.
|
|
22
24
|
*
|
|
23
25
|
* @cssproperty --forge-card-background - The background color of the card.
|