@tylertech/forge 3.14.1 → 3.14.2

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.
@@ -2639,7 +2639,7 @@
2639
2639
  "kind": "field",
2640
2640
  "name": "_slottedButtonElements",
2641
2641
  "type": {
2642
- "text": "(HTMLButtonElement | HTMLAnchorElement)[]"
2642
+ "text": "(HTMLButtonElement | HTMLAnchorElement)[] | undefined"
2643
2643
  },
2644
2644
  "privacy": "private"
2645
2645
  },
@@ -38081,11 +38081,11 @@
38081
38081
  },
38082
38082
  "IFieldCore": {
38083
38083
  "path": "src/lib/field/field-core.ts",
38084
- "lineNumber": 14
38084
+ "lineNumber": 15
38085
38085
  },
38086
38086
  "FieldCore": {
38087
38087
  "path": "src/lib/field/field-core.ts",
38088
- "lineNumber": 38
38088
+ "lineNumber": 39
38089
38089
  },
38090
38090
  "IFieldComponent": {
38091
38091
  "path": "src/lib/field/field.ts",
@@ -39887,6 +39887,10 @@
39887
39887
  "path": "src/lib/core/controllers/move-controller.ts",
39888
39888
  "lineNumber": 11
39889
39889
  },
39890
+ "CoreWithAdapter": {
39891
+ "path": "src/lib/core/decorators/global-configuration-decorator.ts",
39892
+ "lineNumber": 4
39893
+ },
39890
39894
  "BaseComponentDelegateProps": {
39891
39895
  "path": "src/lib/core/delegates/base-component-delegate.ts",
39892
39896
  "lineNumber": 3
@@ -60,7 +60,7 @@ export declare class ButtonAreaComponent extends BaseLitElement implements IButt
60
60
  * @default undefined
61
61
  */
62
62
  targetElement: TargetElement | null | undefined;
63
- private _slottedButtonElements;
63
+ private _slottedButtonElements?;
64
64
  connectedCallback(): void;
65
65
  firstUpdated(): void;
66
66
  willUpdate(changedProperties: PropertyValues<this>): void;
@@ -144,7 +144,7 @@ let ButtonAreaComponent = class ButtonAreaComponent extends BaseLitElement {
144
144
  #stateLayer;
145
145
  #focusIndicator;
146
146
  get #slottedButtonElement() {
147
- return this._slottedButtonElements[0];
147
+ return this._slottedButtonElements?.[0];
148
148
  }
149
149
  get #associatedElement() {
150
150
  if (this.targetElement && (this.#isDisableableElement(this.targetElement) || this.#isAnchorElement(this.targetElement))) {
@@ -189,12 +189,12 @@ let ButtonAreaComponent = class ButtonAreaComponent extends BaseLitElement {
189
189
  @click=${this.#handleClick}
190
190
  @keydown=${this.#handleKeydown}
191
191
  @pointerdown=${this.#handlePointerdown}>
192
- <div id="button" class="button" part="button" .hidden=${!!this.targetElement} @slotchange=${this.#handleSlotChange}>
193
- <slot name="button"></slot>
194
- </div>
195
192
  <slot @click=${this.#handleIgnoreStateLayer} @pointerdown=${this.#handleIgnoreStateLayer} @pointerup=${this.#handleIgnoreStateLayer}></slot>
196
193
  <forge-state-layer exportparts="surface:state-layer" ${ref(this.#stateLayer)}></forge-state-layer>
197
194
  <forge-focus-indicator target="button" part="focus-indicator" inward ${ref(this.#focusIndicator)}></forge-focus-indicator>
195
+ <div id="button" class="button" part="button" .hidden=${!!this.targetElement} @slotchange=${this.#handleSlotChange}>
196
+ <slot name="button"></slot>
197
+ </div>
198
198
  </div>
199
199
  `;
200
200
  }
@@ -4,6 +4,6 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
 
7
- var styles = ":host{display:block;position:relative}:host .forge-button-area{cursor:var(--_button-area-cursor)}:host([hidden]){display:none}:host(:state(disabled)) .forge-button-area{cursor:var(--_button-area-disabled-cursor)}:host(:where(:state(pressed),:state(current))) .forge-button-area{background-color:var(--_button-area-selected-color)}.forge-button-area{--_button-area-primary-color:var(--forge-button-area-primary-color, var(--forge-theme-primary, #3f51b5));--_button-area-cursor:var(--forge-button-area-cursor, pointer);--_button-area-shape:var(--forge-button-area-shape, calc(var(--forge-shape-extra-small, 1px) * var(--forge-shape-factor, 1)));--_button-area-selected-color:var(--forge-button-area-selected-color, var(--forge-theme-primary-container, #d1d5ed));--_button-area-disabled-cursor:var(--forge-button-area-disabled-cursor, not-allowed);--_button-area-focus-indicator-color:var(--forge-button-area-focus-indicator-color, var(--forge-theme-primary, #3f51b5));--_button-area-focus-indicator-offset:var(--forge-button-area-focus-indicator-offset, 4px)}.forge-button-area{position:relative;overflow:hidden;block-size:100%;inline-size:100%;border-radius:var(--_button-area-shape)}.forge-button-area .button{position:absolute;inline-size:100%;block-size:100%}.forge-button-area .button ::slotted(:is(button)){position:absolute;inline-size:100%;block-size:100%;margin:0;padding:0;border:none;outline:none;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);pointer-events:none}.forge-button-area .button ::slotted(:is(a[href])){position:absolute;inline-size:100%;block-size:100%;margin:0;padding:0;border:none;outline:none;overflow:hidden}forge-focus-indicator{z-index:1;--forge-focus-indicator-color: var(--_button-area-focus-indicator-color);--forge-focus-indicator-outward-offset: var(--_button-area-focus-indicator-offset);--forge-focus-indicator-shape: var(--_button-area-shape)}forge-state-layer{--forge-state-layer-color: var(--_button-area-primary-color);border-radius:inherit}";
7
+ var styles = ":host{display:block;position:relative}:host .forge-button-area{cursor:var(--_button-area-cursor)}:host([hidden]){display:none}:host(:state(disabled)) .forge-button-area{cursor:var(--_button-area-disabled-cursor)}:host(:where(:state(pressed),:state(current))) .forge-button-area{background-color:var(--_button-area-selected-color)}.forge-button-area{--_button-area-primary-color:var(--forge-button-area-primary-color, var(--forge-theme-primary, #3f51b5));--_button-area-cursor:var(--forge-button-area-cursor, pointer);--_button-area-shape:var(--forge-button-area-shape, calc(var(--forge-shape-extra-small, 1px) * var(--forge-shape-factor, 1)));--_button-area-selected-color:var(--forge-button-area-selected-color, var(--forge-theme-primary-container, #d1d5ed));--_button-area-disabled-cursor:var(--forge-button-area-disabled-cursor, not-allowed);--_button-area-focus-indicator-color:var(--forge-button-area-focus-indicator-color, var(--forge-theme-primary, #3f51b5));--_button-area-focus-indicator-offset:var(--forge-button-area-focus-indicator-offset, 4px)}.forge-button-area{position:relative;overflow:hidden;block-size:100%;inline-size:100%;border-radius:var(--_button-area-shape)}.forge-button-area .button{position:absolute;inline-size:100%;block-size:100%;pointer-events:none}.forge-button-area .button ::slotted(:is(button)){position:absolute;inline-size:100%;block-size:100%;margin:0;padding:0;border:none;outline:none;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);pointer-events:none}.forge-button-area .button ::slotted(:is(a[href])){position:absolute;inline-size:100%;block-size:100%;margin:0;padding:0;border:none;outline:none;overflow:hidden}forge-focus-indicator{z-index:1;--forge-focus-indicator-color: var(--_button-area-focus-indicator-color);--forge-focus-indicator-outward-offset: var(--_button-area-focus-indicator-offset);--forge-focus-indicator-shape: var(--_button-area-shape)}forge-state-layer{--forge-state-layer-color: var(--_button-area-primary-color);border-radius:inherit}";
8
8
 
9
9
  export { styles as default };
@@ -0,0 +1,24 @@
1
+ /**
2
+ * A decorator that automatically applies global configuration values to a property.
3
+ *
4
+ * When the property is first accessed, the decorator will look up the tag name and property name
5
+ * in the global configuration object and set the initial value from it. If not found in the
6
+ * global configuration, it will use the property's initial value as the default.
7
+ *
8
+ * Works with both HTMLElement instances (Lit components) and Core classes (legacy pattern).
9
+ * For Core classes, requires an `_adapter` property that provides access to the host element.
10
+ *
11
+ * @throws {TypeError} If the global configuration value type doesn't match the property's initial value type
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // On a Lit component
16
+ * @globalConfig()
17
+ * public someProperty: boolean = false;
18
+ *
19
+ * // On a Core class
20
+ * @globalConfig()
21
+ * private _variant: FieldVariant = 'outlined';
22
+ * ```
23
+ */
24
+ export declare function globalConfig(): PropertyDecorator;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+
7
+ import { GlobalConfiguration } from '../configuration/global-configuration.js';
8
+
9
+ /**
10
+ * A decorator that automatically applies global configuration values to a property.
11
+ *
12
+ * When the property is first accessed, the decorator will look up the tag name and property name
13
+ * in the global configuration object and set the initial value from it. If not found in the
14
+ * global configuration, it will use the property's initial value as the default.
15
+ *
16
+ * Works with both HTMLElement instances (Lit components) and Core classes (legacy pattern).
17
+ * For Core classes, requires an `_adapter` property that provides access to the host element.
18
+ *
19
+ * @throws {TypeError} If the global configuration value type doesn't match the property's initial value type
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * // On a Lit component
24
+ * @globalConfig()
25
+ * public someProperty: boolean = false;
26
+ *
27
+ * // On a Core class
28
+ * @globalConfig()
29
+ * private _variant: FieldVariant = 'outlined';
30
+ * ```
31
+ */
32
+ function globalConfig() {
33
+ return function (target, propertyKey) {
34
+ if (typeof propertyKey === 'symbol') {
35
+ throw new TypeError('globalConfig decorator cannot be used on symbol properties');
36
+ }
37
+ const privateKey = Symbol(`__globalConfig_${propertyKey}`);
38
+ const initializedKey = Symbol(`__globalConfig_initialized_${propertyKey}`);
39
+ Object.defineProperty(target, propertyKey, {
40
+ get() {
41
+ // If we haven't checked global config yet, do it now
42
+ if (!this[initializedKey]) {
43
+ // Use the current value as the default (set by the property initializer)
44
+ let initialValue = this[privateKey];
45
+ // Get tag name based on whether this is an HTMLElement or a Core class
46
+ let tagName;
47
+ if (this instanceof HTMLElement) {
48
+ // Direct HTMLElement access (Lit components)
49
+ tagName = this.localName || this.tagName?.toLowerCase();
50
+ }
51
+ else if ('_adapter' in this && this._adapter?.hostElement) {
52
+ // Core class with adapter (legacy pattern)
53
+ const hostElement = this._adapter.hostElement;
54
+ tagName = hostElement.localName || hostElement.tagName?.toLowerCase();
55
+ }
56
+ // Remove leading underscore from property key for lookup (private properties like _variant -> variant)
57
+ const lookupKey = propertyKey.replace(/^_/, '');
58
+ if (tagName) {
59
+ const entry = GlobalConfiguration.get(tagName);
60
+ if (entry?.has(lookupKey)) {
61
+ const configValue = entry.valueOf(lookupKey);
62
+ if (configValue !== undefined) {
63
+ // Type check: ensure the global config value matches the default value type
64
+ const defaultType = typeof initialValue;
65
+ const configType = typeof configValue;
66
+ if (defaultType !== configType && initialValue !== null && configValue !== null) {
67
+ throw new TypeError(`Type mismatch for property "${propertyKey}" on ${tagName}: ` + `expected ${defaultType} but global configuration provided ${configType}`);
68
+ }
69
+ initialValue = configValue;
70
+ }
71
+ }
72
+ }
73
+ this[privateKey] = initialValue;
74
+ this[initializedKey] = true;
75
+ }
76
+ return this[privateKey];
77
+ },
78
+ set(value) {
79
+ this[privateKey] = value;
80
+ },
81
+ enumerable: true,
82
+ configurable: true
83
+ });
84
+ };
85
+ }
86
+
87
+ export { globalConfig };
@@ -0,0 +1 @@
1
+ export { globalConfig } from './global-configuration-decorator.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+
7
+ export { globalConfig } from './global-configuration-decorator.js';
@@ -1,5 +1,6 @@
1
1
  export * from './base/index.js';
2
2
  export * from './configuration/index.js';
3
+ export * from './decorators/index.js';
3
4
  export * from './delegates/index.js';
4
5
  export * from './utils/index.js';
5
6
  export * from './mask/index.js';
package/esm/core/index.js CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  import './base/index.js';
8
8
  import './configuration/index.js';
9
+ import './decorators/index.js';
9
10
  import './delegates/index.js';
10
11
  import './utils/index.js';
11
12
  import './mask/index.js';
@@ -27,13 +27,13 @@ export interface IFieldCore {
27
27
  export declare class FieldCore implements IFieldCore {
28
28
  private _adapter;
29
29
  private _labelPosition;
30
+ private _variant;
30
31
  private _labelAlignment;
31
32
  private _floatLabel;
32
33
  private _invalid;
33
34
  private _required;
34
35
  private _optional;
35
36
  private _disabled;
36
- private _variant;
37
37
  private _theme;
38
38
  private _shape;
39
39
  private _density;
@@ -4,19 +4,22 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
 
7
+ import { __decorate } from 'tslib';
8
+ import '../core/index.js';
7
9
  import { FIELD_CONSTANTS } from './field-constants.js';
10
+ import { globalConfig } from '../core/decorators/global-configuration-decorator.js';
8
11
 
9
12
  class FieldCore {
10
13
  constructor(_adapter) {
11
14
  this._adapter = _adapter;
12
15
  this._labelPosition = FIELD_CONSTANTS.defaults.DEFAULT_LABEL_POSITION;
16
+ this._variant = FIELD_CONSTANTS.defaults.DEFAULT_VARIANT;
13
17
  this._labelAlignment = FIELD_CONSTANTS.defaults.DEFAULT_LABEL_ALIGNMENT;
14
18
  this._floatLabel = false;
15
19
  this._invalid = false;
16
20
  this._required = false;
17
21
  this._optional = false;
18
22
  this._disabled = false;
19
- this._variant = FIELD_CONSTANTS.defaults.DEFAULT_VARIANT;
20
23
  this._theme = FIELD_CONSTANTS.defaults.DEFAULT_THEME;
21
24
  this._shape = FIELD_CONSTANTS.defaults.DEFAULT_SHAPE;
22
25
  this._density = FIELD_CONSTANTS.defaults.DEFAULT_DENSITY;
@@ -32,8 +35,15 @@ class FieldCore {
32
35
  initialize() {
33
36
  this._adapter.addRootListener('slotchange', this._slotChangeListener);
34
37
  this._adapter.initializeSlots();
35
- this._adapter.tryApplyGlobalConfiguration(['labelPosition', 'variant']);
38
+ // Setting the label position and variant here for global config decorator compatibility
39
+ // Skipping if there are already host attributes set to avoid overwriting values that may have been set externally
36
40
  this._adapter.setLabelPosition(this._labelPosition);
41
+ if (this._labelPosition !== FIELD_CONSTANTS.defaults.DEFAULT_LABEL_POSITION && !this._adapter.getHostAttribute(FIELD_CONSTANTS.attributes.LABEL_POSITION)) {
42
+ this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.LABEL_POSITION, this._labelPosition);
43
+ }
44
+ if (this._variant !== FIELD_CONSTANTS.defaults.DEFAULT_VARIANT && !this._adapter.getHostAttribute(FIELD_CONSTANTS.attributes.VARIANT)) {
45
+ this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.VARIANT, this._variant);
46
+ }
37
47
  if (this._popoverIcon) {
38
48
  this._adapter.addPopoverIconListener('click', this._popoverIconClickListener);
39
49
  this._adapter.addPopoverIconListener('mousedown', this._popoverIconMousedownListener);
@@ -69,6 +79,8 @@ class FieldCore {
69
79
  return;
70
80
  }
71
81
  this._adapter.setLabelPosition(this._labelPosition);
82
+ // Moved this out of the adapter method
83
+ this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.LABEL_POSITION, this._labelPosition);
72
84
  }
73
85
  }
74
86
  get labelAlignment() {
@@ -240,5 +252,11 @@ class FieldCore {
240
252
  this._adapter.focusIndicator.allowFocus = value;
241
253
  }
242
254
  }
255
+ __decorate([
256
+ globalConfig()
257
+ ], FieldCore.prototype, "_labelPosition", void 0);
258
+ __decorate([
259
+ globalConfig()
260
+ ], FieldCore.prototype, "_variant", void 0);
243
261
 
244
262
  export { FieldCore };
package/esm/index.js CHANGED
@@ -458,6 +458,7 @@ export { eventIncludesDate, eventIncludesElement, getAccessibleHeader, getClearB
458
458
  export { getCurrentTimeOfDayMillis, hoursToMillis, mergeDateWithTime, millisToHours, millisToMinutes, millisToMinutesClamped, millisToSeconds, millisToSecondsClamped, millisToTimeString, minutesToMillis, secondsToMillis, stripSecondsFromMillis, timeStringToMillis } from './time-picker/time-picker-utils.js';
459
459
  export { getFirstDayOfWeekForLocale, getLocalizedDayOfMonth, getLocalizedDayOfWeek, getLocalizedMonth, getLocalizedYear, getWeekendDaysForLocale, isRtlLocale } from './calendar/calendar-locale-utils.js';
460
460
  export { getGrid, getGridItems, getList, getListItems, getScrollSpy, removeAllExceptLastChild } from './calendar/calendar-menu/calendar-menu-utils.js';
461
+ export { globalConfig } from './core/decorators/global-configuration-decorator.js';
461
462
  export { isLabelAware } from './label/label-aware.js';
462
463
  export { prefersReducedMotion, supportsElementInternalsAria, supportsHover, supportsPopover } from './core/utils/feature-detection.js';
463
464
  export { randomHexColor } from './utils/color-utils.js';
@@ -4,6 +4,6 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
 
7
- var 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, 0.6));background-color:var(--forge-theme-outline, #e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:none}.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:u38yt61;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt61{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:u38yt6x;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt6x{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:u38yt7f;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt7f{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{animation-direction:reverse}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:u38yt82;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt82{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{animation-direction:reverse}.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:u38yt83;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt83{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:u38yt92;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt92{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:u38yt9n;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38yt9n{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{animation-direction:reverse}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:u38ytae;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes u38ytae{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{animation-direction:reverse}: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}";
7
+ var 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, 0.6));background-color:var(--forge-theme-outline, #e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:none}.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:udhg6cr;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6cr{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:udhg6dd;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6dd{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:udhg6e2;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6e2{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{animation-direction:reverse}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:udhg6e3;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6e3{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{animation-direction:reverse}.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:udhg6ez;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6ez{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:udhg6f6;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6f6{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:udhg6fd;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6fd{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{animation-direction:reverse}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:udhg6gb;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes udhg6gb{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{animation-direction:reverse}: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}";
8
8
 
9
9
  export { styles as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tylertech/forge",
3
- "version": "3.14.1",
3
+ "version": "3.14.2",
4
4
  "description": "Tyler Forge™ Web Components library",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Tyler Technologies, Inc.",
@@ -58,5 +58,5 @@
58
58
  "tslib": "^2.8.1",
59
59
  "@tylertech/forge-core": "3.3.0"
60
60
  },
61
- "publishedAt": "2026-04-23T18:05:24.922Z"
61
+ "publishedAt": "2026-05-11T19:23:45.440Z"
62
62
  }
@@ -31,6 +31,7 @@
31
31
  position: absolute;
32
32
  inline-size: 100%;
33
33
  block-size: 100%;
34
+ pointer-events: none;
34
35
  }
35
36
 
36
37
  @mixin slotted-element {