@tylertech/forge 3.8.2-dev.0 → 3.9.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/custom-elements.json +9827 -9331
  2. package/dist/lib.js +27 -105
  3. package/dist/lib.js.map +4 -4
  4. package/dist/toolbar/forge-toolbar.css +1 -0
  5. package/dist/vscode.css-custom-data.json +950 -943
  6. package/dist/vscode.html-custom-data.json +819 -772
  7. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  8. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  9. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  10. package/esm/app-bar/search/app-bar-search.js +1 -1
  11. package/esm/autocomplete/autocomplete.js +1 -1
  12. package/esm/banner/banner.js +1 -1
  13. package/esm/button/base/base-button-adapter.js +1 -1
  14. package/esm/button/base/base-button.js +1 -1
  15. package/esm/calendar/calendar.js +1 -1
  16. package/esm/chips/chip/chip.js +1 -1
  17. package/esm/color-picker/color-picker.js +1 -1
  18. package/esm/core/utils/dismissible-stack.d.ts +5 -1
  19. package/esm/core/utils/dismissible-stack.js +6 -0
  20. package/esm/data-table/body/body.d.ts +33 -0
  21. package/esm/data-table/body/body.js +42 -0
  22. package/esm/data-table/body/index.d.ts +6 -0
  23. package/esm/data-table/body/index.js +6 -0
  24. package/esm/data-table/cell/cell.d.ts +33 -0
  25. package/esm/data-table/cell/cell.js +42 -0
  26. package/esm/data-table/cell/index.d.ts +6 -0
  27. package/esm/data-table/cell/index.js +6 -0
  28. package/esm/data-table/column/column.d.ts +33 -0
  29. package/esm/data-table/column/column.js +42 -0
  30. package/esm/data-table/column/index.d.ts +6 -0
  31. package/esm/data-table/column/index.js +6 -0
  32. package/esm/data-table/footer/footer.d.ts +33 -0
  33. package/esm/data-table/footer/footer.js +42 -0
  34. package/esm/data-table/footer/index.d.ts +6 -0
  35. package/esm/data-table/footer/index.js +6 -0
  36. package/esm/data-table/head/head.d.ts +33 -0
  37. package/esm/data-table/head/head.js +42 -0
  38. package/esm/data-table/head/index.d.ts +6 -0
  39. package/esm/data-table/head/index.js +6 -0
  40. package/esm/data-table/index.d.ts +12 -0
  41. package/esm/data-table/index.js +12 -0
  42. package/esm/data-table/row/index.d.ts +6 -0
  43. package/esm/data-table/row/index.js +6 -0
  44. package/esm/data-table/row/row.d.ts +33 -0
  45. package/esm/data-table/row/row.js +42 -0
  46. package/esm/data-table/table/index.d.ts +6 -0
  47. package/esm/data-table/table/index.js +6 -0
  48. package/esm/data-table/table/table.d.ts +36 -0
  49. package/esm/data-table/table/table.js +40 -0
  50. package/esm/date-picker/date-picker.js +1 -1
  51. package/esm/date-range-picker/date-range-picker.js +1 -1
  52. package/esm/icon/icon-constants.d.ts +2 -1
  53. package/esm/icon/icon-constants.js +2 -1
  54. package/esm/icon/icon-core.js +6 -2
  55. package/esm/icon/icon-utils.d.ts +2 -1
  56. package/esm/icon/icon-utils.js +2 -2
  57. package/esm/icon/icon.d.ts +3 -1
  58. package/esm/icon/icon.js +1 -1
  59. package/esm/icon-button/icon-button-core.js +11 -2
  60. package/esm/list-dropdown/list-dropdown-utils.js +1 -1
  61. package/esm/list-dropdown/list-dropdown.js +1 -1
  62. package/esm/menu/menu.js +1 -1
  63. package/esm/open-icon/open-icon.js +1 -1
  64. package/esm/paginator/paginator.js +1 -1
  65. package/esm/popover/popover-constants.d.ts +3 -0
  66. package/esm/popover/popover-constants.js +4 -2
  67. package/esm/popover/popover-core.d.ts +4 -0
  68. package/esm/popover/popover-core.js +20 -0
  69. package/esm/popover/popover.d.ts +4 -0
  70. package/esm/popover/popover.js +8 -0
  71. package/esm/select/select/select.js +1 -1
  72. package/esm/split-view/split-view-panel/split-view-panel.js +3 -4
  73. package/esm/stepper/step/step.js +1 -1
  74. package/esm/table/table-core.js +1 -0
  75. package/esm/table/table.js +1 -1
  76. package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
  77. package/esm/tabs/tab-bar/tab-bar-core.d.ts +1 -0
  78. package/esm/tabs/tab-bar/tab-bar-core.js +27 -30
  79. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  80. package/esm/text-field/text-field.js +1 -1
  81. package/esm/time-picker/time-picker.js +1 -2
  82. package/esm/toast/toast.js +1 -1
  83. package/esm/toolbar/toolbar.js +1 -1
  84. package/package.json +2 -2
  85. package/sass/data-table/_core.scss +52 -0
  86. package/sass/data-table/_token-utils.scss +15 -0
  87. package/sass/data-table/body/body.scss +27 -0
  88. package/sass/data-table/cell/cell.scss +27 -0
  89. package/sass/data-table/column/column.scss +27 -0
  90. package/sass/data-table/footer/footer.scss +27 -0
  91. package/sass/data-table/head/head.scss +27 -0
  92. package/sass/data-table/index.scss +12 -0
  93. package/sass/data-table/row/row.scss +27 -0
  94. package/sass/data-table/table/table.scss +16 -0
  95. package/sass/toolbar/_core.scss +5 -0
  96. package/sass/toolbar/toolbar.scss +4 -0
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { TemplateResult } from 'lit';
7
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
8
+ import { BaseLitElement } from '../../core/base/base-lit-element';
9
+ export interface IDataTableRowComponent extends BaseLitElement {
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'forge-data-table-row': IDataTableRowComponent;
14
+ }
15
+ }
16
+ export declare const DATA_TABLE_ROW_TAG_NAME: keyof HTMLElementTagNameMap;
17
+ /**
18
+ * @tag forge-data-table-row
19
+ *
20
+ * @summary Represents a row in a data table.
21
+ *
22
+ * @csspart root - The root container element.
23
+ *
24
+ * @slot - The default slot for row content.
25
+ *
26
+ * @cssclass forge-data-table-row - The data table row class _(required)_.
27
+ */
28
+ export declare class DataTableRowComponent extends BaseLitElement implements IDataTableRowComponent {
29
+ static styles: import("lit").CSSResult;
30
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
31
+ static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
32
+ render(): TemplateResult;
33
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ var _a;
7
+ import { __decorate } from "tslib";
8
+ import { html, unsafeCSS } from 'lit';
9
+ import { customElement } from 'lit/decorators.js';
10
+ import { classMap } from 'lit/directives/class-map.js';
11
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
12
+ import { BaseLitElement } from '../../core/base/base-lit-element';
13
+ const styles = ':host{display:block}:host([hidden]){display:none}.forge-data-table-row{display:table-row}';
14
+ export const DATA_TABLE_ROW_TAG_NAME = 'forge-data-table-row';
15
+ /**
16
+ * @tag forge-data-table-row
17
+ *
18
+ * @summary Represents a row in a data table.
19
+ *
20
+ * @csspart root - The root container element.
21
+ *
22
+ * @slot - The default slot for row content.
23
+ *
24
+ * @cssclass forge-data-table-row - The data table row class _(required)_.
25
+ */
26
+ let DataTableRowComponent = class DataTableRowComponent extends BaseLitElement {
27
+ render() {
28
+ return html `
29
+ <div part="root" class=${classMap({ 'forge-data-table-row': true })}>
30
+ <slot></slot>
31
+ </div>
32
+ `;
33
+ }
34
+ };
35
+ _a = CUSTOM_ELEMENT_NAME_PROPERTY;
36
+ DataTableRowComponent.styles = unsafeCSS(styles);
37
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
38
+ DataTableRowComponent[_a] = DATA_TABLE_ROW_TAG_NAME;
39
+ DataTableRowComponent = __decorate([
40
+ customElement(DATA_TABLE_ROW_TAG_NAME)
41
+ ], DataTableRowComponent);
42
+ export { DataTableRowComponent };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export * from './table';
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export * from './table';
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { TemplateResult } from 'lit';
7
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
8
+ import { BaseLitElement } from '../../core/base/base-lit-element';
9
+ import '../cell/cell';
10
+ import '../column/column';
11
+ import '../row/row';
12
+ export interface IDataTableComponent extends BaseLitElement {
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'forge-data-table': IDataTableComponent;
17
+ }
18
+ }
19
+ export declare const DATA_TABLE_TAG_NAME: keyof HTMLElementTagNameMap;
20
+ /**
21
+ * @tag forge-data-table
22
+ *
23
+ * @summary Data tables display information in a grid-like format of rows and columns.
24
+ *
25
+ * @csspart root - The root container element.
26
+ *
27
+ * @slot - The default slot for data table content.
28
+ *
29
+ * @cssclass forge-data-table - The data table class _(required)_.
30
+ */
31
+ export declare class DataTableComponent extends BaseLitElement implements IDataTableComponent {
32
+ static styles: import("lit").CSSResult;
33
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
34
+ static [CUSTOM_ELEMENT_NAME_PROPERTY]: keyof HTMLElementTagNameMap;
35
+ render(): TemplateResult;
36
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ var _a;
7
+ import { __decorate } from "tslib";
8
+ import { html, unsafeCSS } from 'lit';
9
+ import { customElement } from 'lit/decorators.js';
10
+ import { CUSTOM_ELEMENT_NAME_PROPERTY } from '@tylertech/forge-core';
11
+ import { BaseLitElement } from '../../core/base/base-lit-element';
12
+ import '../cell/cell';
13
+ import '../column/column';
14
+ import '../row/row';
15
+ const styles = ':host{display:block;display:table;width:100%;border-collapse:collapse}:host([hidden]){display:none}';
16
+ export const DATA_TABLE_TAG_NAME = 'forge-data-table';
17
+ /**
18
+ * @tag forge-data-table
19
+ *
20
+ * @summary Data tables display information in a grid-like format of rows and columns.
21
+ *
22
+ * @csspart root - The root container element.
23
+ *
24
+ * @slot - The default slot for data table content.
25
+ *
26
+ * @cssclass forge-data-table - The data table class _(required)_.
27
+ */
28
+ let DataTableComponent = class DataTableComponent extends BaseLitElement {
29
+ render() {
30
+ return html `<slot></slot></div>`;
31
+ }
32
+ };
33
+ _a = CUSTOM_ELEMENT_NAME_PROPERTY;
34
+ DataTableComponent.styles = unsafeCSS(styles);
35
+ /** @deprecated Used for compatibility with legacy Forge @customElement decorator. */
36
+ DataTableComponent[_a] = DATA_TABLE_TAG_NAME;
37
+ DataTableComponent = __decorate([
38
+ customElement(DATA_TABLE_TAG_NAME)
39
+ ], DataTableComponent);
40
+ export { DataTableComponent };
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { attachShadowTemplate, customElement } from '@tylertech/forge-core';
8
- import { tylIconInsertInvitation } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconInsertInvitation } from '@tylertech/tyler-icons';
9
9
  import { CalendarComponent } from '../calendar';
10
10
  import { IconComponent, IconRegistry } from '../icon';
11
11
  import { IconButtonComponent } from '../icon-button';
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { attachShadowTemplate, customElement, coreProperty } from '@tylertech/forge-core';
8
- import { tylIconDateRange } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconDateRange } from '@tylertech/tyler-icons';
9
9
  import { CalendarComponent } from '../calendar';
10
10
  import { BaseDatePickerComponent } from '../date-picker/base/base-date-picker';
11
11
  import { BASE_DATE_PICKER_CONSTANTS } from '../date-picker/base/base-date-picker-constants';
@@ -31,9 +31,10 @@ export declare const ICON_CONSTANTS: {
31
31
  };
32
32
  strings: {
33
33
  DEFAULT_NETWORK_BASE_URL: string;
34
+ ALL_NETWORK_BASE_URL: string;
34
35
  };
35
36
  };
36
37
  export declare const ICON_REGISTRY_KEY: "forgeIcons";
37
38
  export type IconUrlBuilder = (name: string, type: IconExternalType) => string;
38
- export type IconExternalType = '' | 'custom' | 'standard' | 'extended';
39
+ export type IconExternalType = '' | 'custom' | 'standard' | 'extended' | 'all';
39
40
  export type IconTheme = Theme | 'text-medium' | 'text-low';
@@ -23,7 +23,8 @@ const numbers = {
23
23
  DEFAULT_HEIGHT: 24
24
24
  };
25
25
  const strings = {
26
- DEFAULT_NETWORK_BASE_URL: `${CDN_BASE_URL}v1/icons/svg`
26
+ DEFAULT_NETWORK_BASE_URL: `${CDN_BASE_URL}v1/icons/svg`,
27
+ ALL_NETWORK_BASE_URL: `${CDN_BASE_URL}v1/icons/svg/all`
27
28
  };
28
29
  export const ICON_CONSTANTS = {
29
30
  elementName,
@@ -11,7 +11,7 @@ export class IconCore {
11
11
  this._adapter = _adapter;
12
12
  this._lazy = false;
13
13
  this._external = false;
14
- this._externalType = 'standard';
14
+ this._externalType = 'all';
15
15
  this._lazyListener = this._loadIcon.bind(this);
16
16
  }
17
17
  initialize() {
@@ -125,7 +125,10 @@ export class IconCore {
125
125
  return this._externalUrlBuilder(name, type);
126
126
  }
127
127
  const setName = sanitizeExternalType(this._externalType);
128
- return `${ICON_CONSTANTS.strings.DEFAULT_NETWORK_BASE_URL}${setName ? `/${setName}` : ''}/${name}.svg`;
128
+ if (['standard', 'extended', 'custom'].includes(setName)) {
129
+ return `${ICON_CONSTANTS.strings.DEFAULT_NETWORK_BASE_URL}/${setName}/${name}.svg`;
130
+ }
131
+ return `${ICON_CONSTANTS.strings.ALL_NETWORK_BASE_URL}/${name}.svg`;
129
132
  }
130
133
  get name() {
131
134
  return this._name;
@@ -177,6 +180,7 @@ export class IconCore {
177
180
  return this._externalType;
178
181
  }
179
182
  set externalType(value) {
183
+ value = sanitizeExternalType(value);
180
184
  if (this._externalType !== value) {
181
185
  this._externalType = value;
182
186
  this._safeApplyIcon();
@@ -4,6 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { IIconDescriptor } from './icon-registry';
7
+ import { IconExternalType } from './icon-constants';
7
8
  /**
8
9
  * Creates an SVG element from a string of SVG content, and sanitizes it for injection into the DOM.
9
10
  */
@@ -12,4 +13,4 @@ export declare function getCachedIcon(key: string): IIconDescriptor | undefined;
12
13
  export declare function awaitIconDefinition(key: string, listener: () => void): void;
13
14
  export declare function removeIconListener(key: string, listener: () => void): void;
14
15
  export declare function fetchIconContent(url: string, name: string): Promise<string>;
15
- export declare function sanitizeExternalType(type: string): string;
16
+ export declare function sanitizeExternalType(type: string): IconExternalType;
@@ -60,6 +60,6 @@ export function fetchIconContent(url, name) {
60
60
  return request || Promise.resolve('');
61
61
  }
62
62
  export function sanitizeExternalType(type) {
63
- const isValidType = ['standard', 'extended', 'custom'].includes(type);
64
- return isValidType ? type : '';
63
+ const isValidType = ['standard', 'extended', 'custom', 'all'].includes(type);
64
+ return isValidType ? type : 'all';
65
65
  }
@@ -10,6 +10,7 @@ export interface IIconProperties {
10
10
  src: string | undefined;
11
11
  lazy: boolean;
12
12
  external: boolean;
13
+ /** @deprecated This will be removed in a future version. */
13
14
  externalType: IconExternalType;
14
15
  externalUrlBuilder: IconUrlBuilder;
15
16
  theme: IconTheme;
@@ -32,7 +33,7 @@ declare global {
32
33
  * @property {string} src - Provides the ability to set the SVG string content directly.
33
34
  * @property {boolean} [lazy=false] - Controls whether the icon will be loaded dynamically when it comes into view. False by default.
34
35
  * @property {boolean} [external=false] - Controls whether external network requests are allowed for this icon. Only pertains for icons that aren't already defined in the registry.
35
- * @property {IconExternalType} [externalType="standard"] - The type of icon to load externally. Possible values: "standard" (default), "extended", "custom".
36
+ * @property {IconExternalType} [externalType="all"] - **(Deprecated)** The type of icon to load externally. Possible values: "all" (default), "standard", "extended", "custom".
36
37
  * @property {IconUrlBuilder} externalUrlBuilder - A callback that can be provided to generate a URL that will be used to fetch an SVG icon.
37
38
  * @property {string} viewbox - A custom value to apply to the `viewBox` attribute on the internal `<svg>` element.
38
39
  * @property {IconTheme} theme - The theme to apply to the icon.
@@ -79,6 +80,7 @@ export declare class IconComponent extends BaseComponent implements IIconCompone
79
80
  external: boolean;
80
81
  /**
81
82
  * The type of icon to load externally. Possible values: "standard", "extended", "custom".
83
+ * @deprecated This will be removed in a future version.
82
84
  * @attribute external-type
83
85
  */
84
86
  externalType: IconExternalType;
package/esm/icon/icon.js CHANGED
@@ -20,7 +20,7 @@ const styles = ':host{--_icon-color:var(--forge-icon-color, currentColor);--_ico
20
20
  * @property {string} src - Provides the ability to set the SVG string content directly.
21
21
  * @property {boolean} [lazy=false] - Controls whether the icon will be loaded dynamically when it comes into view. False by default.
22
22
  * @property {boolean} [external=false] - Controls whether external network requests are allowed for this icon. Only pertains for icons that aren't already defined in the registry.
23
- * @property {IconExternalType} [externalType="standard"] - The type of icon to load externally. Possible values: "standard" (default), "extended", "custom".
23
+ * @property {IconExternalType} [externalType="all"] - **(Deprecated)** The type of icon to load externally. Possible values: "all" (default), "standard", "extended", "custom".
24
24
  * @property {IconUrlBuilder} externalUrlBuilder - A callback that can be provided to generate a URL that will be used to fetch an SVG icon.
25
25
  * @property {string} viewbox - A custom value to apply to the `viewBox` attribute on the internal `<svg>` element.
26
26
  * @property {IconTheme} theme - The theme to apply to the icon.
@@ -29,9 +29,18 @@ export class IconButtonCore extends BaseButtonCore {
29
29
  // Update internal state first so listeners can access the new state
30
30
  const originalPressed = this._pressed;
31
31
  this._pressed = !this._pressed;
32
- const cancelled = !this._adapter.emitHostEvent(ICON_BUTTON_CONSTANTS.events.TOGGLE, this.pressed, true, true);
32
+ const event = new CustomEvent(ICON_BUTTON_CONSTANTS.events.TOGGLE, {
33
+ detail: {
34
+ pressed: this._pressed,
35
+ toggle: this._toggle
36
+ },
37
+ bubbles: true,
38
+ cancelable: true,
39
+ composed: true
40
+ });
41
+ this._adapter.dispatchHostEvent(event);
33
42
  this._pressed = originalPressed;
34
- if (cancelled) {
43
+ if (event.defaultPrevented) {
35
44
  return;
36
45
  }
37
46
  this.pressed = !originalPressed;
@@ -4,7 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { addClass, getEventPath, isDeepEqual, isDefined, isObject } from '@tylertech/forge-core';
7
- import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';
7
+ import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons';
8
8
  import { ICON_CLASS_NAME } from '../constants';
9
9
  import { LINEAR_PROGRESS_CONSTANTS } from '../linear-progress';
10
10
  import { LIST_CONSTANTS } from '../list/list';
@@ -3,7 +3,7 @@
3
3
  * Copyright Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';
6
+ import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons';
7
7
  import { ListDropdownCore } from './list-dropdown-core';
8
8
  import { ListDropdownAdapter } from './list-dropdown-adapter';
9
9
  import { IconRegistry } from '../icon';
package/esm/menu/menu.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { attachShadowTemplate, coerceBoolean, customElement, ensureChild, coreProperty, isDefined } from '@tylertech/forge-core';
8
- import { tylIconArrowRight } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconArrowRight } from '@tylertech/tyler-icons';
9
9
  import { IconRegistry } from '../icon';
10
10
  import { ListComponent } from '../list';
11
11
  import { ListDropdownAware } from '../list-dropdown/list-dropdown-aware';
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement, attachShadowTemplate, coerceBoolean } from '@tylertech/forge-core';
8
- import { tylIconKeyboardArrowRight, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconKeyboardArrowRight, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons';
9
9
  import { OPEN_ICON_CONSTANTS } from './open-icon-constants';
10
10
  import { IconRegistry, IconComponent } from '../icon';
11
11
  import { BaseComponent } from '../core/base/base-component';
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement, attachShadowTemplate, coreProperty, coerceBoolean, coerceNumberArray, coerceNumber } from '@tylertech/forge-core';
8
- import { tylIconFirstPage, tylIconLastPage, tylIconKeyboardArrowRight, tylIconKeyboardArrowLeft } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconFirstPage, tylIconLastPage, tylIconKeyboardArrowRight, tylIconKeyboardArrowLeft } from '@tylertech/tyler-icons';
9
9
  import { PAGINATOR_CONSTANTS } from './paginator-constants';
10
10
  import { PaginatorCore } from './paginator-core';
11
11
  import { PaginatorAdapter } from './paginator-adapter';
@@ -15,6 +15,7 @@ export declare const POPOVER_CONSTANTS: {
15
15
  HOVER_DELAY: string;
16
16
  HOVER_DISMISS_DELAY: string;
17
17
  PRESET: string;
18
+ DISTINCT: string;
18
19
  };
19
20
  attributes: {
20
21
  OPEN: string;
@@ -28,6 +29,7 @@ export declare const POPOVER_CONSTANTS: {
28
29
  HOVER_DELAY: string;
29
30
  HOVER_DISMISS_DELAY: string;
30
31
  PRESET: string;
32
+ DISTINCT: string;
31
33
  };
32
34
  classes: {
33
35
  ARROW: string;
@@ -48,6 +50,7 @@ export declare const POPOVER_CONSTANTS: {
48
50
  TRIGGER_TYPE: PopoverTriggerType;
49
51
  HOVER_DELAY: number;
50
52
  PRESET: PopoverPreset;
53
+ DISTINCT: string;
51
54
  };
52
55
  };
53
56
  export declare const POPOVER_HOVER_TIMEOUT = 500;
@@ -13,7 +13,8 @@ const observedAttributes = {
13
13
  PERSISTENT_HOVER: 'persistent-hover',
14
14
  HOVER_DELAY: 'hover-delay',
15
15
  HOVER_DISMISS_DELAY: 'hover-dismiss-delay',
16
- PRESET: 'preset'
16
+ PRESET: 'preset',
17
+ DISTINCT: 'distinct'
17
18
  };
18
19
  const attributes = {
19
20
  ...observedAttributes,
@@ -39,7 +40,8 @@ const events = {
39
40
  const defaults = {
40
41
  TRIGGER_TYPE: 'click',
41
42
  HOVER_DELAY: 0,
42
- PRESET: 'popover'
43
+ PRESET: 'popover',
44
+ DISTINCT: '<default>'
43
45
  };
44
46
  export const POPOVER_CONSTANTS = {
45
47
  elementName,
@@ -18,6 +18,7 @@ export interface IPopoverCore extends IOverlayAwareCore {
18
18
  hoverDismissDelay: number;
19
19
  hoverDelay: number;
20
20
  preset: PopoverPreset;
21
+ distinct: string | null;
21
22
  hideAsync(): Promise<void>;
22
23
  dispatchBeforeToggleEvent(state: IDismissibleStackState): boolean;
23
24
  }
@@ -31,6 +32,7 @@ export declare class PopoverCore extends PopoverCore_base implements IPopoverCor
31
32
  private _hoverDismissDelay;
32
33
  private _hoverDelay;
33
34
  private _preset;
35
+ private _distinct;
34
36
  private _previouslyFocusedElement;
35
37
  private _hoverAnchorLeaveTimeout;
36
38
  private _popoverMouseleaveTimeout;
@@ -146,5 +148,7 @@ export declare class PopoverCore extends PopoverCore_base implements IPopoverCor
146
148
  set hoverDismissDelay(value: number);
147
149
  get preset(): PopoverPreset;
148
150
  set preset(value: PopoverPreset);
151
+ get distinct(): string | null;
152
+ set distinct(value: string | null);
149
153
  }
150
154
  export {};
@@ -19,6 +19,7 @@ export class PopoverCore extends WithLongpressListener((OverlayAwareCore)) {
19
19
  this._hoverDismissDelay = POPOVER_HOVER_TIMEOUT;
20
20
  this._hoverDelay = POPOVER_CONSTANTS.defaults.HOVER_DELAY;
21
21
  this._preset = POPOVER_CONSTANTS.defaults.PRESET;
22
+ this._distinct = null;
22
23
  this._previouslyFocusedElement = null;
23
24
  // Click trigger listeners
24
25
  this._anchorClickListener = this._onAnchorClick.bind(this);
@@ -102,6 +103,11 @@ export class PopoverCore extends WithLongpressListener((OverlayAwareCore)) {
102
103
  }
103
104
  this._previouslyFocusedElement = this._adapter.captureFocusedElement();
104
105
  this._adapter.setOverlayOpen(true);
106
+ if (this._distinct) {
107
+ const allPopovers = DismissibleStack.instance.getAll().filter(el => el.tagName.toLowerCase() === 'forge-popover');
108
+ const contextPopovers = allPopovers.filter(popover => popover.distinct === this._distinct);
109
+ contextPopovers.filter(popover => popover !== this._adapter.hostElement).forEach(popover => (popover.open = false));
110
+ }
105
111
  if (!this.overlayElement.persistent) {
106
112
  DismissibleStack.instance.add(this._adapter.hostElement);
107
113
  }
@@ -518,4 +524,18 @@ export class PopoverCore extends WithLongpressListener((OverlayAwareCore)) {
518
524
  this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.PRESET, hasPreset, this._preset);
519
525
  }
520
526
  }
527
+ get distinct() {
528
+ return this._distinct;
529
+ }
530
+ set distinct(value) {
531
+ value = value ?? null;
532
+ if (this._distinct !== value) {
533
+ if (this._adapter.hasHostAttribute(POPOVER_CONSTANTS.attributes.DISTINCT) && !value) {
534
+ this._distinct = POPOVER_CONSTANTS.defaults.DISTINCT;
535
+ }
536
+ else {
537
+ this._distinct = value;
538
+ }
539
+ }
540
+ }
521
541
  }
@@ -16,6 +16,7 @@ export interface IPopoverProperties extends IOverlayAware, IDismissible {
16
16
  hoverDelay: number;
17
17
  hoverDismissDelay: number;
18
18
  preset: PopoverPreset;
19
+ distinct: string | null;
19
20
  }
20
21
  export interface IPopoverComponent extends IPopoverProperties {
21
22
  hideAsync(): Promise<void>;
@@ -44,6 +45,7 @@ declare global {
44
45
  * @property {number} [hoverDismissDelay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
45
46
  * @property {number} [hoverDelay=0] - The delay in milliseconds before the popover is shown.
46
47
  * @property {PopoverPreset} [preset="popover"] - The preset to use for the popover.
48
+ * @property {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
47
49
  *
48
50
  * @globalconfig placement
49
51
  * @globalconfig animationType
@@ -64,6 +66,7 @@ declare global {
64
66
  * @attribute {string} [hover-dismiss-delay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
65
67
  * @attribute {number} [hover-delay=0] - The delay in milliseconds before the popover is shown.
66
68
  * @attribute {string} [preset="popover"] - The preset to use for the popover.
69
+ * @attribute {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
67
70
  *
68
71
  * @event {CustomEvent<IPopoverToggleEventData>} forge-popover-beforetoggle - Dispatches before the popover is toggled, and is cancelable.
69
72
  * @event {CustomEvent<IPopoverToggleEventData>} forge-popover-toggle - Dispatches after the popover is toggled.
@@ -125,6 +128,7 @@ export declare class PopoverComponent extends OverlayAware<IPopoverCore> impleme
125
128
  hoverDelay: number;
126
129
  hoverDismissDelay: number;
127
130
  preset: PopoverPreset;
131
+ distinct: string | null;
128
132
  /**
129
133
  * Hides the popover, and returns a `Promise` that resolves when the hide animation is complete.
130
134
  */
@@ -29,6 +29,7 @@ const styles = '@keyframes zoomin{from{transform:scale(.8)}to{transform:scale(1)
29
29
  * @property {number} [hoverDismissDelay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
30
30
  * @property {number} [hoverDelay=0] - The delay in milliseconds before the popover is shown.
31
31
  * @property {PopoverPreset} [preset="popover"] - The preset to use for the popover.
32
+ * @property {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
32
33
  *
33
34
  * @globalconfig placement
34
35
  * @globalconfig animationType
@@ -49,6 +50,7 @@ const styles = '@keyframes zoomin{from{transform:scale(.8)}to{transform:scale(1)
49
50
  * @attribute {string} [hover-dismiss-delay=500] - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
50
51
  * @attribute {number} [hover-delay=0] - The delay in milliseconds before the popover is shown.
51
52
  * @attribute {string} [preset="popover"] - The preset to use for the popover.
53
+ * @attribute {string | null} [distinct=null] - Enforces that this popover should be the only one open in the same context. Use a unique name otherwise a default context will be used.
52
54
  *
53
55
  * @event {CustomEvent<IPopoverToggleEventData>} forge-popover-beforetoggle - Dispatches before the popover is toggled, and is cancelable.
54
56
  * @event {CustomEvent<IPopoverToggleEventData>} forge-popover-toggle - Dispatches after the popover is toggled.
@@ -139,6 +141,9 @@ let PopoverComponent = class PopoverComponent extends OverlayAware {
139
141
  case POPOVER_CONSTANTS.observedAttributes.PRESET:
140
142
  this.preset = newValue;
141
143
  return;
144
+ case POPOVER_CONSTANTS.observedAttributes.DISTINCT:
145
+ this.distinct = !newValue ? null : newValue.trim();
146
+ return;
142
147
  }
143
148
  super.attributeChangedCallback(name, oldValue, newValue);
144
149
  }
@@ -173,6 +178,9 @@ __decorate([
173
178
  __decorate([
174
179
  coreProperty()
175
180
  ], PopoverComponent.prototype, "preset", void 0);
181
+ __decorate([
182
+ coreProperty()
183
+ ], PopoverComponent.prototype, "distinct", void 0);
176
184
  PopoverComponent = __decorate([
177
185
  customElement({
178
186
  name: POPOVER_CONSTANTS.elementName,
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { attachShadowTemplate, coerceBoolean, coreProperty, customElement } from '@tylertech/forge-core';
8
- import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconCheckBox, tylIconCheckBoxOutlineBlank } from '@tylertech/tyler-icons';
9
9
  import { CircularProgressComponent } from '../../circular-progress';
10
10
  import { getFormValue, getValidationMessage, inputType, internals, setDefaultAria, setValidity } from '../../constants';
11
11
  import { WithFocusable } from '../../core/mixins/focus/with-focusable';
@@ -5,17 +5,16 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { customElement, attachShadowTemplate, coreProperty, coerceBoolean, coerceNumber } from '@tylertech/forge-core';
8
- import { tylIconDragVerticalVariant } from '@tylertech/tyler-icons/extended';
9
- import { tylIconDragHandle } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconDragHandle, tylIconDragVerticalVariant } from '@tylertech/tyler-icons';
10
9
  import { BaseComponent } from '../../core/base/base-component';
11
10
  import { SPLIT_VIEW_PANEL_CONSTANTS } from './split-view-panel-constants';
12
11
  import { SplitViewPanelCore } from './split-view-panel-core';
13
12
  import { SplitViewPanelAdapter } from './split-view-panel-adapter';
14
13
  import { IconComponent, IconRegistry } from '../../icon';
15
- const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-state-layer target=\"handle\" id=\"state-layer\" exportparts=\"surface:state-layer\"></forge-state-layer><forge-focus-indicator inward target=\"handle\" part=\"focus-indicator\"></forge-focus-indicator></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
16
- const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uez234f;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez234f{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:uez234v;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez234v{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uez235n;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez235n{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:uez236i;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez236i{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uez236l;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez236l{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uez237k;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uez237k{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uez237p;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez237p{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uez2389;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uez2389{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
17
14
  import { StateLayerComponent } from '../../state-layer';
18
15
  import { FocusIndicatorComponent } from '../../focus-indicator';
16
+ const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-state-layer target=\"handle\" id=\"state-layer\" exportparts=\"surface:state-layer\"></forge-state-layer><forge-focus-indicator inward target=\"handle\" part=\"focus-indicator\"></forge-focus-indicator></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
17
+ const styles = '.forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium,rgba(0,0,0,.6));background-color:var(--forge-theme-outline,#e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:0}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedhbm;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhbm{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:uwedhbz;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhbz{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedhcs;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedhcs{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:uwedhd4;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedhd4{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedhd8;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhd8{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uwedhds;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1))}@keyframes uwedhds{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:uwedheb;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedheb{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:uwedher;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard,cubic-bezier(0.2,0,0,1));animation-direction:reverse}@keyframes uwedher{from{transform:none}to{transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width:2px}';
19
18
  /**
20
19
  * @tag forge-split-view-panel
21
20
  *
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { attachShadowTemplate, coerceBoolean, coerceNumber, customElement, coreProperty } from '@tylertech/forge-core';
8
- import { tylIconModeEdit, tylIconWarning, tylIconCheck, tylIconBlock, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconModeEdit, tylIconWarning, tylIconCheck, tylIconBlock, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons';
9
9
  import { StepAdapter } from './step-adapter';
10
10
  import { STEP_CONSTANTS } from './step-constants';
11
11
  import { StepCore } from './step-core';
@@ -573,6 +573,7 @@ export class TableCore {
573
573
  * Handles a row being selected/deselected.
574
574
  */
575
575
  _onRowSelected(evt) {
576
+ // TODO: We need to ignore this if the checkbox is disabled (which could happen in user code)
576
577
  // We handle row selection manually with either a pointerdown or keydown event (space key), so we listen
577
578
  // for the change event as well to prevent checking the checkbox being checked by the time the event reaches us
578
579
  if (evt.type === 'change') {
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { coerceBoolean, coerceNumber, customElement, coreProperty } from '@tylertech/forge-core';
8
- import { tylIconArrowDownward } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconArrowDownward } from '@tylertech/tyler-icons';
9
9
  import { ExpansionPanelComponent } from '../expansion-panel';
10
10
  import { CheckboxComponent } from '../checkbox';
11
11
  import { TableAdapter } from './table-adapter';