@ni/ok-components 1.8.3 → 1.9.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.
@@ -108,12 +108,10 @@
108
108
  try {
109
109
  // Hopefully we never get here...
110
110
  // Not all environments allow eval and Function. Use only as a last resort:
111
- // eslint-disable-next-line no-new-func
112
111
  return new Function("return this")();
113
112
  }
114
113
  catch {
115
114
  // If all fails, give up and create an object.
116
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
117
115
  return {};
118
116
  }
119
117
  })();
@@ -194,6 +192,17 @@
194
192
  ...propConfig,
195
193
  });
196
194
  }
195
+ /**
196
+ * Core services shared across FAST instances.
197
+ * @internal
198
+ */
199
+ var KernelServiceId;
200
+ (function (KernelServiceId) {
201
+ KernelServiceId[KernelServiceId["updateQueue"] = 1] = "updateQueue";
202
+ KernelServiceId[KernelServiceId["observable"] = 2] = "observable";
203
+ KernelServiceId[KernelServiceId["contextEvent"] = 3] = "contextEvent";
204
+ KernelServiceId[KernelServiceId["elementRegistry"] = 4] = "elementRegistry";
205
+ })(KernelServiceId || (KernelServiceId = {}));
197
206
  /**
198
207
  * A readonly, empty array.
199
208
  * @remarks
@@ -224,7 +233,7 @@
224
233
  };
225
234
  }
226
235
 
227
- const updateQueue = $global.FAST.getById(1 /* KernelServiceId.updateQueue */, () => {
236
+ const updateQueue = $global.FAST.getById(KernelServiceId.updateQueue, () => {
228
237
  const tasks = [];
229
238
  const pendingErrors = [];
230
239
  function throwFirstError() {
@@ -275,11 +284,9 @@
275
284
  process,
276
285
  });
277
286
  });
278
- /* eslint-disable */
279
287
  const fastHTMLPolicy = $global.trustedTypes.createPolicy("fast-html", {
280
288
  createHTML: html => html,
281
289
  });
282
- /* eslint-enable */
283
290
  let htmlPolicy = fastHTMLPolicy;
284
291
  const marker = `fast-${Math.random().toString(36).substring(2, 8)}`;
285
292
  /** @internal */
@@ -610,7 +617,7 @@
610
617
  * Common Observable APIs.
611
618
  * @public
612
619
  */
613
- const Observable = FAST.getById(2 /* KernelServiceId.observable */, () => {
620
+ const Observable = FAST.getById(KernelServiceId.observable, () => {
614
621
  const volatileRegex = /(\?\?|:|&&|\|\||if)/;
615
622
  const notifierLookup = new WeakMap();
616
623
  const queueUpdate = DOM.queueUpdate;
@@ -864,7 +871,7 @@
864
871
  },
865
872
  });
866
873
  }
867
- const contextEvent = FAST.getById(3 /* KernelServiceId.contextEvent */, () => {
874
+ const contextEvent = FAST.getById(KernelServiceId.contextEvent, () => {
868
875
  let current = null;
869
876
  return {
870
877
  get() {
@@ -1821,7 +1828,9 @@
1821
1828
  function separateSheetsToPrepend(sheets) {
1822
1829
  const prepend = [];
1823
1830
  const append = [];
1824
- sheets.forEach(x => (x[prependToAdoptedStyleSheetsSymbol] ? prepend : append).push(x));
1831
+ sheets.forEach(x =>
1832
+ // @ts-expect-error
1833
+ (x[prependToAdoptedStyleSheetsSymbol] ? prepend : append).push(x));
1825
1834
  return { prepend, append };
1826
1835
  }
1827
1836
  let addAdoptedStyleSheets = (target, sheets) => {
@@ -2035,15 +2044,18 @@
2035
2044
  * @param value - The value to set the attribute/property to.
2036
2045
  */
2037
2046
  setValue(source, newValue) {
2047
+ // @ts-expect-error
2038
2048
  const oldValue = source[this.fieldName];
2039
2049
  const converter = this.converter;
2040
2050
  if (converter !== void 0) {
2041
2051
  newValue = converter.fromView(newValue);
2042
2052
  }
2043
2053
  if (oldValue !== newValue) {
2054
+ // @ts-expect-error
2044
2055
  source[this.fieldName] = newValue;
2045
2056
  this.tryReflectToAttribute(source);
2046
2057
  if (this.hasCallback) {
2058
+ // @ts-expect-error
2047
2059
  source[this.callbackName](oldValue, newValue);
2048
2060
  }
2049
2061
  source.$fastController.notify(this.name);
@@ -2055,6 +2067,7 @@
2055
2067
  */
2056
2068
  getValue(source) {
2057
2069
  Observable.track(source, this.name);
2070
+ // @ts-expect-error
2058
2071
  return source[this.fieldName];
2059
2072
  }
2060
2073
  /** @internal */
@@ -2074,6 +2087,7 @@
2074
2087
  }
2075
2088
  DOM.queueUpdate(() => {
2076
2089
  guards.add(element);
2090
+ // @ts-expect-error
2077
2091
  const latestValue = element[this.fieldName];
2078
2092
  switch (mode) {
2079
2093
  case "reflect":
@@ -2143,7 +2157,7 @@
2143
2157
 
2144
2158
  const defaultShadowOptions = { mode: "open" };
2145
2159
  const defaultElementOptions = {};
2146
- const fastRegistry = FAST.getById(4 /* KernelServiceId.elementRegistry */, () => {
2160
+ const fastRegistry = FAST.getById(KernelServiceId.elementRegistry, () => {
2147
2161
  const typeToDefinition = new Map();
2148
2162
  return Object.freeze({
2149
2163
  register(definition) {
@@ -2613,11 +2627,9 @@
2613
2627
  }
2614
2628
  }
2615
2629
 
2616
- /* eslint-disable-next-line @typescript-eslint/explicit-function-return-type */
2617
2630
  function createFASTElement(BaseType) {
2618
2631
  return class extends BaseType {
2619
2632
  constructor() {
2620
- /* eslint-disable-next-line */
2621
2633
  super();
2622
2634
  Controller.forCustomElement(this);
2623
2635
  }
@@ -3178,7 +3190,6 @@
3178
3190
  }
3179
3191
  }
3180
3192
  /* eslint-disable prefer-rest-params */
3181
- /* eslint-disable @typescript-eslint/explicit-function-return-type */
3182
3193
  /**
3183
3194
  * Enables the array observation mechanism.
3184
3195
  * @remarks
@@ -3282,7 +3293,6 @@
3282
3293
  };
3283
3294
  }
3284
3295
  /* eslint-enable prefer-rest-params */
3285
- /* eslint-enable @typescript-eslint/explicit-function-return-type */
3286
3296
 
3287
3297
  /**
3288
3298
  * The runtime behavior for template references.
@@ -3310,7 +3320,6 @@
3310
3320
  * Unbinds this behavior from the source.
3311
3321
  * @param source - The source to unbind from.
3312
3322
  */
3313
- /* eslint-disable-next-line @typescript-eslint/no-empty-function */
3314
3323
  unbind() { }
3315
3324
  }
3316
3325
  /**
@@ -3917,7 +3926,7 @@
3917
3926
  * @returns The resolver.
3918
3927
  */
3919
3928
  instance(value) {
3920
- return this.registerResolver(0 /* ResolverStrategy.instance */, value);
3929
+ return this.registerResolver(ResolverStrategy.instance, value);
3921
3930
  }
3922
3931
  /**
3923
3932
  * Creates a resolver that enforces a singleton lifetime.
@@ -3925,7 +3934,7 @@
3925
3934
  * @returns The resolver.
3926
3935
  */
3927
3936
  singleton(value) {
3928
- return this.registerResolver(1 /* ResolverStrategy.singleton */, value);
3937
+ return this.registerResolver(ResolverStrategy.singleton, value);
3929
3938
  }
3930
3939
  /**
3931
3940
  * Creates a resolver that creates a new instance for every dependency request.
@@ -3933,7 +3942,7 @@
3933
3942
  * @returns - The resolver.
3934
3943
  */
3935
3944
  transient(value) {
3936
- return this.registerResolver(2 /* ResolverStrategy.transient */, value);
3945
+ return this.registerResolver(ResolverStrategy.transient, value);
3937
3946
  }
3938
3947
  /**
3939
3948
  * Creates a resolver that invokes a callback function for every dependency resolution
@@ -3942,7 +3951,7 @@
3942
3951
  * @returns The resolver.
3943
3952
  */
3944
3953
  callback(value) {
3945
- return this.registerResolver(3 /* ResolverStrategy.callback */, value);
3954
+ return this.registerResolver(ResolverStrategy.callback, value);
3946
3955
  }
3947
3956
  /**
3948
3957
  * Creates a resolver that invokes a callback function the first time that a dependency
@@ -3952,7 +3961,7 @@
3952
3961
  * @returns The resolver.
3953
3962
  */
3954
3963
  cachedCallback(value) {
3955
- return this.registerResolver(3 /* ResolverStrategy.callback */, cacheCallbackResult(value));
3964
+ return this.registerResolver(ResolverStrategy.callback, cacheCallbackResult(value));
3956
3965
  }
3957
3966
  /**
3958
3967
  * Aliases the current key to a different key.
@@ -3960,11 +3969,10 @@
3960
3969
  * @returns The resolver.
3961
3970
  */
3962
3971
  aliasTo(destinationKey) {
3963
- return this.registerResolver(5 /* ResolverStrategy.alias */, destinationKey);
3972
+ return this.registerResolver(ResolverStrategy.alias, destinationKey);
3964
3973
  }
3965
3974
  registerResolver(strategy, state) {
3966
3975
  const { container, key } = this;
3967
- /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
3968
3976
  this.container = this.key = (void 0);
3969
3977
  return container.registerResolver(key, new ResolverImpl(key, strategy, state));
3970
3978
  }
@@ -4000,7 +4008,7 @@
4000
4008
  * @returns The resolver.
4001
4009
  */
4002
4010
  singleton(key) {
4003
- return new ResolverImpl(key, 1 /* ResolverStrategy.singleton */, key);
4011
+ return new ResolverImpl(key, ResolverStrategy.singleton, key);
4004
4012
  },
4005
4013
  /**
4006
4014
  * Provides default transient resolution behavior during auto-registration.
@@ -4008,7 +4016,7 @@
4008
4016
  * @returns The resolver.
4009
4017
  */
4010
4018
  transient(key) {
4011
- return new ResolverImpl(key, 2 /* ResolverStrategy.transient */, key);
4019
+ return new ResolverImpl(key, ResolverStrategy.transient, key);
4012
4020
  },
4013
4021
  });
4014
4022
  /**
@@ -4230,8 +4238,10 @@
4230
4238
  const handleChange = () => {
4231
4239
  const newContainer = DI.findResponsibleContainer(this);
4232
4240
  const newValue = newContainer.get(key);
4241
+ // @ts-expect-error
4233
4242
  const oldValue = this[diPropertyKey];
4234
4243
  if (newValue !== oldValue) {
4244
+ // @ts-expect-error
4235
4245
  this[diPropertyKey] = value;
4236
4246
  notifier.notify(propertyName);
4237
4247
  }
@@ -4414,6 +4424,16 @@
4414
4424
  DI.inject;
4415
4425
  const defaultSingletonOptions = { scoped: false };
4416
4426
  /** @internal */
4427
+ var ResolverStrategy;
4428
+ (function (ResolverStrategy) {
4429
+ ResolverStrategy[ResolverStrategy["instance"] = 0] = "instance";
4430
+ ResolverStrategy[ResolverStrategy["singleton"] = 1] = "singleton";
4431
+ ResolverStrategy[ResolverStrategy["transient"] = 2] = "transient";
4432
+ ResolverStrategy[ResolverStrategy["callback"] = 3] = "callback";
4433
+ ResolverStrategy[ResolverStrategy["array"] = 4] = "array";
4434
+ ResolverStrategy[ResolverStrategy["alias"] = 5] = "alias";
4435
+ })(ResolverStrategy || (ResolverStrategy = {}));
4436
+ /** @internal */
4417
4437
  class ResolverImpl {
4418
4438
  constructor(key, strategy, state) {
4419
4439
  this.key = key;
@@ -4429,9 +4449,9 @@
4429
4449
  }
4430
4450
  resolve(handler, requestor) {
4431
4451
  switch (this.strategy) {
4432
- case 0 /* ResolverStrategy.instance */:
4452
+ case ResolverStrategy.instance:
4433
4453
  return this.state;
4434
- case 1 /* ResolverStrategy.singleton */: {
4454
+ case ResolverStrategy.singleton: {
4435
4455
  if (this.resolving) {
4436
4456
  throw new Error(`Cyclic dependency found: ${this.state.name}`);
4437
4457
  }
@@ -4439,11 +4459,11 @@
4439
4459
  this.state = handler
4440
4460
  .getFactory(this.state)
4441
4461
  .construct(requestor);
4442
- this.strategy = 0 /* ResolverStrategy.instance */;
4462
+ this.strategy = ResolverStrategy.instance;
4443
4463
  this.resolving = false;
4444
4464
  return this.state;
4445
4465
  }
4446
- case 2 /* ResolverStrategy.transient */: {
4466
+ case ResolverStrategy.transient: {
4447
4467
  // Always create transients from the requesting container
4448
4468
  const factory = handler.getFactory(this.state);
4449
4469
  if (factory === null) {
@@ -4451,11 +4471,11 @@
4451
4471
  }
4452
4472
  return factory.construct(requestor);
4453
4473
  }
4454
- case 3 /* ResolverStrategy.callback */:
4474
+ case ResolverStrategy.callback:
4455
4475
  return this.state(handler, requestor, this);
4456
- case 4 /* ResolverStrategy.array */:
4476
+ case ResolverStrategy.array:
4457
4477
  return this.state[0].resolve(handler, requestor);
4458
- case 5 /* ResolverStrategy.alias */:
4478
+ case ResolverStrategy.alias:
4459
4479
  return requestor.get(this.state);
4460
4480
  default:
4461
4481
  throw new Error(`Invalid resolver strategy specified: ${this.strategy}.`);
@@ -4463,10 +4483,10 @@
4463
4483
  }
4464
4484
  getFactory(container) {
4465
4485
  switch (this.strategy) {
4466
- case 1 /* ResolverStrategy.singleton */:
4467
- case 2 /* ResolverStrategy.transient */:
4486
+ case ResolverStrategy.singleton:
4487
+ case ResolverStrategy.transient:
4468
4488
  return container.getFactory(this.state);
4469
- case 5 /* ResolverStrategy.alias */:
4489
+ case ResolverStrategy.alias:
4470
4490
  return container.getResolver(this.state)?.getFactory?.(container) ?? null;
4471
4491
  default:
4472
4492
  return null;
@@ -4653,11 +4673,11 @@
4653
4673
  resolvers.set(key, resolver);
4654
4674
  }
4655
4675
  else if (result instanceof ResolverImpl &&
4656
- result.strategy === 4 /* ResolverStrategy.array */) {
4676
+ result.strategy === ResolverStrategy.array) {
4657
4677
  result.state.push(resolver);
4658
4678
  }
4659
4679
  else {
4660
- resolvers.set(key, new ResolverImpl(key, 4 /* ResolverStrategy.array */, [result, resolver]));
4680
+ resolvers.set(key, new ResolverImpl(key, ResolverStrategy.array, [result, resolver]));
4661
4681
  }
4662
4682
  return resolver;
4663
4683
  }
@@ -4749,9 +4769,7 @@
4749
4769
  while (current != null) {
4750
4770
  resolver = current.resolvers.get(key);
4751
4771
  if (resolver != null) {
4752
- resolutions = resolutions.concat(
4753
- /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
4754
- buildAllResponse(resolver, current, requestor));
4772
+ resolutions = resolutions.concat(buildAllResponse(resolver, current, requestor));
4755
4773
  }
4756
4774
  current = current.parent;
4757
4775
  }
@@ -4857,7 +4875,7 @@
4857
4875
  * @param value - The instance to return when the key is requested.
4858
4876
  */
4859
4877
  instance(key, value) {
4860
- return new ResolverImpl(key, 0 /* ResolverStrategy.instance */, value);
4878
+ return new ResolverImpl(key, ResolverStrategy.instance, value);
4861
4879
  },
4862
4880
  /**
4863
4881
  * Creates an instance from the class.
@@ -4872,7 +4890,7 @@
4872
4890
  * @param value - The class to instantiate as a singleton when first requested.
4873
4891
  */
4874
4892
  singleton(key, value) {
4875
- return new ResolverImpl(key, 1 /* ResolverStrategy.singleton */, value);
4893
+ return new ResolverImpl(key, ResolverStrategy.singleton, value);
4876
4894
  },
4877
4895
  /**
4878
4896
  * Creates an instance from a class.
@@ -4887,7 +4905,7 @@
4887
4905
  * @param value - The class to instantiate each time the key is requested.
4888
4906
  */
4889
4907
  transient(key, value) {
4890
- return new ResolverImpl(key, 2 /* ResolverStrategy.transient */, value);
4908
+ return new ResolverImpl(key, ResolverStrategy.transient, value);
4891
4909
  },
4892
4910
  /**
4893
4911
  * Delegates to a callback function to provide the dependency.
@@ -4904,7 +4922,7 @@
4904
4922
  * @param callback - The function that is expected to return the dependency.
4905
4923
  */
4906
4924
  callback(key, callback) {
4907
- return new ResolverImpl(key, 3 /* ResolverStrategy.callback */, callback);
4925
+ return new ResolverImpl(key, ResolverStrategy.callback, callback);
4908
4926
  },
4909
4927
  /**
4910
4928
  * Delegates to a callback function to provide the dependency and then caches the
@@ -4923,7 +4941,7 @@
4923
4941
  * Should all references to the resolver returned be removed, the cache will expire.
4924
4942
  */
4925
4943
  cachedCallback(key, callback) {
4926
- return new ResolverImpl(key, 3 /* ResolverStrategy.callback */, cacheCallbackResult(callback));
4944
+ return new ResolverImpl(key, ResolverStrategy.callback, cacheCallbackResult(callback));
4927
4945
  },
4928
4946
  /**
4929
4947
  * Creates an alternate {@link Key} to retrieve an instance by.
@@ -4940,7 +4958,7 @@
4940
4958
  * @param aliasKey - The alias to the original key.
4941
4959
  */
4942
4960
  aliasTo(originalKey, aliasKey) {
4943
- return new ResolverImpl(aliasKey, 5 /* ResolverStrategy.alias */, originalKey);
4961
+ return new ResolverImpl(aliasKey, ResolverStrategy.alias, originalKey);
4944
4962
  },
4945
4963
  });
4946
4964
  /** @internal */
@@ -4951,7 +4969,7 @@
4951
4969
  }
4952
4970
  function buildAllResponse(resolver, handler, requestor) {
4953
4971
  if (resolver instanceof ResolverImpl &&
4954
- resolver.strategy === 4 /* ResolverStrategy.array */) {
4972
+ resolver.strategy === ResolverStrategy.array) {
4955
4973
  const state = resolver.state;
4956
4974
  let i = state.length;
4957
4975
  const results = new Array(i);
@@ -5268,9 +5286,7 @@
5268
5286
  baseCtors.forEach(baseCtor => {
5269
5287
  Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
5270
5288
  if (name !== "constructor") {
5271
- Object.defineProperty(derivedCtor.prototype, name,
5272
- /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
5273
- Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
5289
+ Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name));
5274
5290
  }
5275
5291
  });
5276
5292
  const baseAttributes = AttributeConfiguration.locate(baseCtor);
@@ -5366,7 +5382,7 @@
5366
5382
  styleElement.sheet.insertRule("foo:focus-visible {color:inherit}", 0);
5367
5383
  _canUseFocusVisible = true;
5368
5384
  }
5369
- catch (_a) {
5385
+ catch {
5370
5386
  _canUseFocusVisible = false;
5371
5387
  }
5372
5388
  finally {
@@ -9087,6 +9103,7 @@
9087
9103
  constructor(source) {
9088
9104
  super();
9089
9105
  const sheet = new CSSStyleSheet();
9106
+ // @ts-expect-error
9090
9107
  sheet[prependToAdoptedStyleSheetsSymbol] = true;
9091
9108
  this.target = sheet.cssRules[sheet.insertRule(":host{}")].style;
9092
9109
  source.$fastController.addStyles(ElementStyles.create([sheet]));
@@ -9266,7 +9283,6 @@
9266
9283
  };
9267
9284
  }
9268
9285
  if (propertyTargetCache.has(source)) {
9269
- /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */
9270
9286
  return propertyTargetCache.get(source);
9271
9287
  }
9272
9288
  let target;
@@ -9938,9 +9954,7 @@
9938
9954
  RootStyleSheetTarget.unregisterRoot(target);
9939
9955
  },
9940
9956
  });
9941
- /* eslint-enable @typescript-eslint/no-non-null-assertion */
9942
9957
 
9943
- /* eslint-disable @typescript-eslint/no-non-null-assertion */
9944
9958
  /**
9945
9959
  * Indicates what to do with an ambiguous (duplicate) element.
9946
9960
  * @public
@@ -10144,7 +10158,6 @@
10144
10158
  return DesignSystem.tagFor(type);
10145
10159
  }
10146
10160
  }
10147
- /* eslint-enable @typescript-eslint/no-non-null-assertion */
10148
10161
 
10149
10162
  /*!
10150
10163
  * tabbable 6.5.0
@@ -11994,6 +12007,7 @@
11994
12007
  return (this.parentToolbar ?? false);
11995
12008
  }
11996
12009
  get isInsideFoundationToolbar() {
12010
+ // @ts-expect-error
11997
12011
  return !!this.parentToolbar?.["$fastController"];
11998
12012
  }
11999
12013
  /**
@@ -12964,8 +12978,11 @@
12964
12978
  }
12965
12979
  // If the original property isn't emptied out,
12966
12980
  // the next set will morph into a grid-area style setting that is not what we want
12981
+ // @ts-expect-error
12967
12982
  tab.style[gridHorizontalProperty] = "";
12983
+ // @ts-expect-error
12968
12984
  tab.style[gridVerticalProperty] = "";
12985
+ // @ts-expect-error
12969
12986
  tab.style[gridProperty] = `${index + 1}`;
12970
12987
  if (!this.isHorizontal()) {
12971
12988
  tab.classList.add("vertical");
@@ -13183,15 +13200,20 @@
13183
13200
  ? "translateX"
13184
13201
  : "translateY";
13185
13202
  const offsetProperty = this.isHorizontal() ? "offsetLeft" : "offsetTop";
13203
+ // @ts-expect-error
13186
13204
  const prev = this.activeIndicatorRef[offsetProperty];
13205
+ // @ts-expect-error
13187
13206
  this.activeIndicatorRef.style[gridProperty] = `${this.activeTabIndex + 1}`;
13207
+ // @ts-expect-error
13188
13208
  const next = this.activeIndicatorRef[offsetProperty];
13209
+ // @ts-expect-error
13189
13210
  this.activeIndicatorRef.style[gridProperty] = `${this.prevActiveTabIndex + 1}`;
13190
13211
  const dif = next - prev;
13191
13212
  this.activeIndicatorRef.style.transform = `${translateProperty}(${dif}px)`;
13192
13213
  this.activeIndicatorRef.classList.add("activeIndicatorTransition");
13193
13214
  this.activeIndicatorRef.addEventListener("transitionend", () => {
13194
13215
  this.ticking = false;
13216
+ // @ts-expect-error
13195
13217
  this.activeIndicatorRef.style[gridProperty] = `${this.activeTabIndex + 1}`;
13196
13218
  this.activeIndicatorRef.style.transform = `${translateProperty}(0px)`;
13197
13219
  this.activeIndicatorRef.classList.remove("activeIndicatorTransition");
@@ -13590,7 +13612,10 @@
13590
13612
  * @internal
13591
13613
  */
13592
13614
  getDirectionalIncrementer(key) {
13593
- return (ToolbarArrowKeyMap[key]?.[this.orientation]?.[this.direction] ??
13615
+ return (
13616
+ // @ts-expect-error
13617
+ ToolbarArrowKeyMap[key]?.[this.orientation]?.[this.direction] ??
13618
+ // @ts-expect-error
13594
13619
  ToolbarArrowKeyMap[key]?.[this.orientation] ??
13595
13620
  0);
13596
13621
  }
@@ -14955,9 +14980,9 @@
14955
14980
  const prefix = 'ni-nimble';
14956
14981
  const styleNameFromTokenName = (tokenName) => `${prefix}-${tokenName}`;
14957
14982
 
14958
- const template$1m = html `<slot></slot>`;
14983
+ const template$1n = html `<slot></slot>`;
14959
14984
 
14960
- const styles$1C = css `
14985
+ const styles$1D = css `
14961
14986
  ${display$2('contents')}
14962
14987
 
14963
14988
  :host {
@@ -15084,8 +15109,8 @@
15084
15109
  ], ThemeProvider.prototype, "theme", void 0);
15085
15110
  const nimbleDesignSystemProvider = ThemeProvider.compose({
15086
15111
  baseName: 'theme-provider',
15087
- styles: styles$1C,
15088
- template: template$1m
15112
+ styles: styles$1D,
15113
+ template: template$1n
15089
15114
  });
15090
15115
  DesignSystem.getOrCreate()
15091
15116
  .withPrefix('nimble')
@@ -15197,6 +15222,30 @@
15197
15222
  this.b = blue;
15198
15223
  this.a = typeof alpha === "number" && !isNaN(alpha) ? alpha : 1;
15199
15224
  }
15225
+ /**
15226
+ * The red value
15227
+ * @remarks
15228
+ * Scaled to the range [0.0 , 1.0]. Values outside this range are allowed but any methods that convert or tostring the values will also be clamped
15229
+ */
15230
+ r;
15231
+ /**
15232
+ * The green value
15233
+ * @remarks
15234
+ * Scaled to the range [0.0 , 1.0]. Values outside this range are allowed but any methods that convert or tostring the values will also be clamped
15235
+ */
15236
+ g;
15237
+ /**
15238
+ * The blue value
15239
+ * @remarks
15240
+ * Scaled to the range [0.0 , 1.0]. Values outside this range are allowed but any methods that convert or tostring the values will also be clamped
15241
+ */
15242
+ b;
15243
+ /**
15244
+ * The alpha value
15245
+ * @remarks
15246
+ * Scaled to the range [0.0 , 1.0]. Values outside this range are allowed but any methods that convert or tostring the values will also be clamped
15247
+ */
15248
+ a;
15200
15249
  /**
15201
15250
  * Determines if one color is equal to another.
15202
15251
  * @param rhs - the color to compare
@@ -16550,7 +16599,7 @@
16550
16599
  const sectionBackgroundColor = createThemeColorToken(tokenNames.sectionBackgroundColor, tokenValues.sectionBackgroundColor);
16551
16600
  const sectionBackgroundImage = createThemeColorToken(tokenNames.sectionBackgroundImage, tokenValues.sectionBackgroundImage);
16552
16601
  const dividerBackgroundColor = createThemeColorToken(tokenNames.dividerBackgroundColor, tokenValues.dividerBackgroundColor);
16553
- createThemeColorToken(tokenNames.dividerBackgroundDynamicColor, tokenValues.dividerBackgroundDynamicColor);
16602
+ const dividerBackgroundDynamicColor = createThemeColorToken(tokenNames.dividerBackgroundDynamicColor, tokenValues.dividerBackgroundDynamicColor);
16554
16603
  const fillSelectedColor = createThemeColorToken(tokenNames.fillSelectedColor, tokenValues.fillSelectedColor);
16555
16604
  const fillSelectedRgbPartialColor = createThemeColorToken(tokenNames.fillSelectedRgbPartialColor, tokenValues.fillSelectedRgbPartialColor);
16556
16605
  const fillHoverSelectedColor = createThemeColorToken(tokenNames.fillHoverSelectedColor, tokenValues.fillHoverSelectedColor);
@@ -16731,7 +16780,7 @@
16731
16780
  }
16732
16781
  // #endregion
16733
16782
 
16734
- const styles$1B = css `
16783
+ const styles$1C = css `
16735
16784
  @layer base, hover, focusVisible, active, disabled, top;
16736
16785
 
16737
16786
  @layer base {
@@ -16809,7 +16858,7 @@
16809
16858
  }
16810
16859
  `;
16811
16860
 
16812
- const template$1l = (_context, definition) => html `${
16861
+ const template$1m = (_context, definition) => html `${
16813
16862
  /* top-container div is necessary because setting contenteditable directly on the native anchor instead
16814
16863
  leaves it focusable, unlike the behavior you get when the anchor is _within_ a contenteditable element.
16815
16864
  */ ''}<div
@@ -16912,8 +16961,8 @@
16912
16961
  const nimbleAnchor = Anchor.compose({
16913
16962
  baseName: 'anchor',
16914
16963
  baseClass: Anchor$1,
16915
- template: template$1l,
16916
- styles: styles$1B,
16964
+ template: template$1m,
16965
+ styles: styles$1C,
16917
16966
  shadowOptions: {
16918
16967
  delegatesFocus: true
16919
16968
  }
@@ -17022,7 +17071,7 @@
17022
17071
  padding: 0;
17023
17072
  `;
17024
17073
 
17025
- const styles$1A = css `
17074
+ const styles$1B = css `
17026
17075
  @layer base, checked, hover, focusVisible, active, disabled, top;
17027
17076
 
17028
17077
  @layer base {
@@ -17306,8 +17355,8 @@
17306
17355
  }
17307
17356
  `));
17308
17357
 
17309
- const styles$1z = css `
17310
- ${styles$1A}
17358
+ const styles$1A = css `
17359
+ ${styles$1B}
17311
17360
  ${buttonAppearanceVariantStyles}
17312
17361
 
17313
17362
  .control {
@@ -17327,7 +17376,7 @@
17327
17376
  }
17328
17377
  `;
17329
17378
 
17330
- const template$1k = (context, definition) => html `
17379
+ const template$1l = (context, definition) => html `
17331
17380
  <a
17332
17381
  class="control"
17333
17382
  part="control"
@@ -17409,8 +17458,8 @@
17409
17458
  ], AnchorButton.prototype, "disabled", void 0);
17410
17459
  const nimbleAnchorButton = AnchorButton.compose({
17411
17460
  baseName: 'anchor-button',
17412
- template: template$1k,
17413
- styles: styles$1z,
17461
+ template: template$1l,
17462
+ styles: styles$1A,
17414
17463
  shadowOptions: {
17415
17464
  delegatesFocus: true
17416
17465
  }
@@ -17418,7 +17467,7 @@
17418
17467
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorButton());
17419
17468
  const anchorButtonTag = 'nimble-anchor-button';
17420
17469
 
17421
- const styles$1y = css `
17470
+ const styles$1z = css `
17422
17471
  ${display$2('grid')}
17423
17472
 
17424
17473
  :host {
@@ -17501,7 +17550,7 @@
17501
17550
  }
17502
17551
  `;
17503
17552
 
17504
- const template$1j = (context, definition) => html `
17553
+ const template$1k = (context, definition) => html `
17505
17554
  <template
17506
17555
  role="menuitem"
17507
17556
  class="${x => (typeof x.startColumnCount === 'number'
@@ -17602,8 +17651,8 @@
17602
17651
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
17603
17652
  const nimbleAnchorMenuItem = AnchorMenuItem.compose({
17604
17653
  baseName: 'anchor-menu-item',
17605
- template: template$1j,
17606
- styles: styles$1y,
17654
+ template: template$1k,
17655
+ styles: styles$1z,
17607
17656
  shadowOptions: {
17608
17657
  delegatesFocus: true
17609
17658
  }
@@ -17615,7 +17664,7 @@
17615
17664
 
17616
17665
  // These styles end up inside a @layer block so must use the
17617
17666
  // cssPartial tag instead of the css tag
17618
- const styles$1x = cssPartial `
17667
+ const styles$1y = cssPartial `
17619
17668
  .severity-text {
17620
17669
  display: none;
17621
17670
  font: ${errorTextFont};
@@ -17725,12 +17774,12 @@
17725
17774
  const themeBehavior = (theme, styles) => new ThemeStyleSheetBehavior(theme, styles);
17726
17775
  /* eslint-enable max-classes-per-file */
17727
17776
 
17728
- const styles$1w = css `
17777
+ const styles$1x = css `
17729
17778
  @layer base, hover, focusVisible, active, disabled, top;
17730
17779
 
17731
17780
  @layer base {
17732
17781
  ${display$2('inline-flex')}
17733
- ${styles$1x}
17782
+ ${styles$1y}
17734
17783
  :host {
17735
17784
  color: ${buttonLabelFontColor};
17736
17785
  font: ${buttonLabelFont};
@@ -18410,8 +18459,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
18410
18459
  }
18411
18460
  `));
18412
18461
 
18413
- const styles$1v = css `
18414
- ${styles$1w}
18462
+ const styles$1w = css `
18463
+ ${styles$1x}
18415
18464
  ${'' /* Anchor specific styles */}
18416
18465
  @layer base {
18417
18466
  .control {
@@ -19470,13 +19519,13 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19470
19519
  };
19471
19520
 
19472
19521
  // Avoiding any whitespace in the template because this is an inline element
19473
- const template$1i = html `<div
19522
+ const template$1j = html `<div
19474
19523
  class="icon"
19475
19524
  aria-hidden="true"
19476
19525
  :innerHTML=${x => x.icon.data}
19477
19526
  ></div>`;
19478
19527
 
19479
- const styles$1u = css `
19528
+ const styles$1v = css `
19480
19529
  ${display$2('inline-flex')}
19481
19530
 
19482
19531
  :host {
@@ -19539,8 +19588,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19539
19588
  const registerIconSvg = (baseName, iconClass) => {
19540
19589
  const composedIcon = iconClass.compose({
19541
19590
  baseName,
19542
- template: template$1i,
19543
- styles: styles$1u
19591
+ template: template$1j,
19592
+ styles: styles$1v
19544
19593
  });
19545
19594
  DesignSystem.getOrCreate().withPrefix('nimble').register(composedIcon());
19546
19595
  };
@@ -19664,7 +19713,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19664
19713
  */
19665
19714
  const StepperOrientation = Orientation;
19666
19715
 
19667
- const template$1h = (context, definition) => html `
19716
+ const template$1i = (context, definition) => html `
19668
19717
  <template slot="step">
19669
19718
  <li class="
19670
19719
  container
@@ -19811,15 +19860,15 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19811
19860
  ], AnchorStep.prototype, "tabIndex", void 0);
19812
19861
  const nimbleAnchorStep = AnchorStep.compose({
19813
19862
  baseName: 'anchor-step',
19814
- template: template$1h,
19815
- styles: styles$1v,
19863
+ template: template$1i,
19864
+ styles: styles$1w,
19816
19865
  shadowOptions: {
19817
19866
  delegatesFocus: true
19818
19867
  }
19819
19868
  });
19820
19869
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorStep());
19821
19870
 
19822
- const styles$1t = css `
19871
+ const styles$1u = css `
19823
19872
  ${display$2('inline-flex')}
19824
19873
 
19825
19874
  :host {
@@ -19936,7 +19985,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19936
19985
  }
19937
19986
  `;
19938
19987
 
19939
- const template$1g = (context, definition) => html `
19988
+ const template$1h = (context, definition) => html `
19940
19989
  <template slot="anchortab" role="tab" aria-disabled="${x => x.disabled}">
19941
19990
  <a
19942
19991
  download="${x => x.download}"
@@ -19988,15 +20037,15 @@ Defines an interaction area clip-path that leaves out the severity text so it is
19988
20037
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
19989
20038
  const nimbleAnchorTab = AnchorTab.compose({
19990
20039
  baseName: 'anchor-tab',
19991
- template: template$1g,
19992
- styles: styles$1t,
20040
+ template: template$1h,
20041
+ styles: styles$1u,
19993
20042
  shadowOptions: {
19994
20043
  delegatesFocus: true
19995
20044
  }
19996
20045
  });
19997
20046
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTab());
19998
20047
 
19999
- const styles$1s = css `
20048
+ const styles$1t = css `
20000
20049
  ${display$2('flex')}
20001
20050
 
20002
20051
  :host {
@@ -20036,12 +20085,12 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20036
20085
  }
20037
20086
  `;
20038
20087
 
20039
- const styles$1r = css `
20040
- ${styles$1A}
20088
+ const styles$1s = css `
20089
+ ${styles$1B}
20041
20090
  ${buttonAppearanceVariantStyles}
20042
20091
  `;
20043
20092
 
20044
- const template$1f = (context, definition) => html `
20093
+ const template$1g = (context, definition) => html `
20045
20094
  <button
20046
20095
  class="control"
20047
20096
  part="control"
@@ -20132,8 +20181,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20132
20181
  const nimbleButton = Button.compose({
20133
20182
  baseName: 'button',
20134
20183
  baseClass: Button$1,
20135
- template: template$1f,
20136
- styles: styles$1r,
20184
+ template: template$1g,
20185
+ styles: styles$1s,
20137
20186
  shadowOptions: {
20138
20187
  delegatesFocus: true
20139
20188
  }
@@ -20167,7 +20216,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20167
20216
  registerIconSvg('icon-arrow-expander-right', IconArrowExpanderRight);
20168
20217
  const iconArrowExpanderRightTag = 'nimble-icon-arrow-expander-right';
20169
20218
 
20170
- const template$1e = (context, definition) => html `
20219
+ const template$1f = (context, definition) => html `
20171
20220
  <div
20172
20221
  class="tab-bar"
20173
20222
  >
@@ -20468,15 +20517,15 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20468
20517
  applyMixins(AnchorTabs, StartEnd);
20469
20518
  const nimbleAnchorTabs = AnchorTabs.compose({
20470
20519
  baseName: 'anchor-tabs',
20471
- template: template$1e,
20472
- styles: styles$1s,
20520
+ template: template$1f,
20521
+ styles: styles$1t,
20473
20522
  shadowOptions: {
20474
20523
  delegatesFocus: false
20475
20524
  }
20476
20525
  });
20477
20526
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleAnchorTabs());
20478
20527
 
20479
- const styles$1q = css `
20528
+ const styles$1r = css `
20480
20529
  ${display$2('block')}
20481
20530
 
20482
20531
  :host {
@@ -20581,7 +20630,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20581
20630
  }
20582
20631
  `;
20583
20632
 
20584
- const template$1d = (context, definition) => html `
20633
+ const template$1e = (context, definition) => html `
20585
20634
  <template
20586
20635
  role="treeitem"
20587
20636
  slot="${x => (x.isNestedItem() ? 'item' : null)}"
@@ -20718,8 +20767,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20718
20767
  // FoundationAnchor already applies the StartEnd mixin, so we don't need to do it here.
20719
20768
  const nimbleAnchorTreeItem = AnchorTreeItem.compose({
20720
20769
  baseName: 'anchor-tree-item',
20721
- template: template$1d,
20722
- styles: styles$1q,
20770
+ template: template$1e,
20771
+ styles: styles$1r,
20723
20772
  shadowOptions: {
20724
20773
  delegatesFocus: true
20725
20774
  }
@@ -20735,7 +20784,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20735
20784
  zIndex1000: '1000'
20736
20785
  };
20737
20786
 
20738
- const styles$1p = css `
20787
+ const styles$1q = css `
20739
20788
  ${display$2('block')}
20740
20789
 
20741
20790
  :host {
@@ -20766,14 +20815,14 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20766
20815
  baseName: 'anchored-region',
20767
20816
  baseClass: AnchoredRegion$1,
20768
20817
  template: anchoredRegionTemplate,
20769
- styles: styles$1p
20818
+ styles: styles$1q
20770
20819
  });
20771
20820
  DesignSystem.getOrCreate()
20772
20821
  .withPrefix('nimble')
20773
20822
  .register(nimbleAnchoredRegion());
20774
20823
  const anchoredRegionTag = 'nimble-anchored-region';
20775
20824
 
20776
- const styles$1o = css `
20825
+ const styles$1p = css `
20777
20826
  ${display$2('flex')}
20778
20827
 
20779
20828
  :host {
@@ -20925,7 +20974,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
20925
20974
  information: 'information'
20926
20975
  };
20927
20976
 
20928
- const template$1c = html `
20977
+ const template$1d = html `
20929
20978
  <${themeProviderTag} theme="${Theme.color}">
20930
20979
  <div class="container"
20931
20980
  role="status"
@@ -21043,8 +21092,8 @@ Defines an interaction area clip-path that leaves out the severity text so it is
21043
21092
  applyMixins(Banner, ARIAGlobalStatesAndProperties);
21044
21093
  const nimbleBanner = Banner.compose({
21045
21094
  baseName: 'banner',
21046
- template: template$1c,
21047
- styles: styles$1o
21095
+ template: template$1d,
21096
+ styles: styles$1p
21048
21097
  });
21049
21098
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBanner());
21050
21099
 
@@ -21085,7 +21134,7 @@ Defines an interaction area clip-path that leaves out the severity text so it is
21085
21134
  </template>
21086
21135
  `;
21087
21136
 
21088
- const styles$1n = css `
21137
+ const styles$1o = css `
21089
21138
  ${display$2('inline-flex')}
21090
21139
 
21091
21140
  :host {
@@ -21189,11 +21238,11 @@ Defines an interaction area clip-path that leaves out the severity text so it is
21189
21238
  baseName: 'breadcrumb',
21190
21239
  baseClass: Breadcrumb$1,
21191
21240
  template: breadcrumbTemplate,
21192
- styles: styles$1n
21241
+ styles: styles$1o
21193
21242
  });
21194
21243
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleBreadcrumb());
21195
21244
 
21196
- const styles$1m = css `
21245
+ const styles$1n = css `
21197
21246
  @layer base, hover, focusVisible, active, disabled, top;
21198
21247
 
21199
21248
  @layer base {
@@ -21290,14 +21339,14 @@ so this becomes the fallback color for the slot */ ''}
21290
21339
  baseName: 'breadcrumb-item',
21291
21340
  baseClass: BreadcrumbItem$1,
21292
21341
  template: breadcrumbItemTemplate,
21293
- styles: styles$1m,
21342
+ styles: styles$1n,
21294
21343
  separator: forwardSlash16X16.data
21295
21344
  });
21296
21345
  DesignSystem.getOrCreate()
21297
21346
  .withPrefix('nimble')
21298
21347
  .register(nimbleBreadcrumbItem());
21299
21348
 
21300
- const styles$1l = css `
21349
+ const styles$1m = css `
21301
21350
  ${display$2('flex')}
21302
21351
 
21303
21352
  :host {
@@ -21321,7 +21370,7 @@ so this becomes the fallback color for the slot */ ''}
21321
21370
  }
21322
21371
  `;
21323
21372
 
21324
- const template$1b = html `
21373
+ const template$1c = html `
21325
21374
  <section aria-labelledby="title-slot">
21326
21375
  <span id="title-slot"><slot name="title"></slot></span>
21327
21376
  <slot></slot>
@@ -21336,12 +21385,12 @@ so this becomes the fallback color for the slot */ ''}
21336
21385
  const nimbleCard = Card.compose({
21337
21386
  baseName: 'card',
21338
21387
  baseClass: Card$1,
21339
- template: template$1b,
21340
- styles: styles$1l
21388
+ template: template$1c,
21389
+ styles: styles$1m
21341
21390
  });
21342
21391
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCard());
21343
21392
 
21344
- const styles$1k = css `
21393
+ const styles$1l = css `
21345
21394
  ${display$2('inline-flex')}
21346
21395
 
21347
21396
  :host {
@@ -21499,7 +21548,7 @@ so this becomes the fallback color for the slot */ ''}
21499
21548
  const nimbleCardButton = CardButton.compose({
21500
21549
  baseName: 'card-button',
21501
21550
  template: buttonTemplate,
21502
- styles: styles$1k,
21551
+ styles: styles$1l,
21503
21552
  shadowOptions: {
21504
21553
  delegatesFocus: true
21505
21554
  }
@@ -21507,7 +21556,7 @@ so this becomes the fallback color for the slot */ ''}
21507
21556
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleCardButton());
21508
21557
  const cardButtonTag = 'nimble-card-button';
21509
21558
 
21510
- const styles$1j = css `
21559
+ const styles$1k = css `
21511
21560
  .error-icon {
21512
21561
  display: none;
21513
21562
  }
@@ -21541,9 +21590,9 @@ so this becomes the fallback color for the slot */ ''}
21541
21590
  }
21542
21591
  `;
21543
21592
 
21544
- const styles$1i = css `
21593
+ const styles$1j = css `
21545
21594
  ${display$2('inline-grid')}
21546
- ${styles$1j}
21595
+ ${styles$1k}
21547
21596
 
21548
21597
  :host {
21549
21598
  font: ${bodyFont};
@@ -21683,7 +21732,7 @@ so this becomes the fallback color for the slot */ ''}
21683
21732
  </div>
21684
21733
  `;
21685
21734
 
21686
- const template$1a = (_context, definition) => html `
21735
+ const template$1b = (_context, definition) => html `
21687
21736
  <template
21688
21737
  role="checkbox"
21689
21738
  aria-checked="${x => x.checked}"
@@ -21780,8 +21829,8 @@ so this becomes the fallback color for the slot */ ''}
21780
21829
  const nimbleCheckbox = Checkbox.compose({
21781
21830
  baseName: 'checkbox',
21782
21831
  baseClass: Checkbox$1,
21783
- template: template$1a,
21784
- styles: styles$1i,
21832
+ template: template$1b,
21833
+ styles: styles$1j,
21785
21834
  checkedIndicator: check16X16.data,
21786
21835
  indeterminateIndicator: minus16X16.data
21787
21836
  });
@@ -21793,7 +21842,7 @@ so this becomes the fallback color for the slot */ ''}
21793
21842
  block: 'block'
21794
21843
  };
21795
21844
 
21796
- const styles$1h = css `
21845
+ const styles$1i = css `
21797
21846
  ${display$2('inline-flex')}
21798
21847
 
21799
21848
  :host {
@@ -21854,7 +21903,7 @@ so this becomes the fallback color for the slot */ ''}
21854
21903
  }
21855
21904
  `));
21856
21905
 
21857
- const template$19 = (context, definition) => html `
21906
+ const template$1a = (context, definition) => html `
21858
21907
  ${startSlotTemplate(context, definition)}
21859
21908
  <span
21860
21909
  class="content"
@@ -21940,8 +21989,8 @@ so this becomes the fallback color for the slot */ ''}
21940
21989
  applyMixins(Chip, StartEnd);
21941
21990
  const nimbleChip = Chip.compose({
21942
21991
  baseName: 'chip',
21943
- template: template$19,
21944
- styles: styles$1h,
21992
+ template: template$1a,
21993
+ styles: styles$1i,
21945
21994
  shadowOptions: {
21946
21995
  delegatesFocus: true
21947
21996
  }
@@ -21949,8 +21998,8 @@ so this becomes the fallback color for the slot */ ''}
21949
21998
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleChip());
21950
21999
  const chipTag = 'nimble-chip';
21951
22000
 
21952
- const styles$1g = css `
21953
- ${styles$1A}
22001
+ const styles$1h = css `
22002
+ ${styles$1B}
21954
22003
  ${buttonAppearanceVariantStyles}
21955
22004
 
21956
22005
  @layer checked {
@@ -21997,7 +22046,7 @@ so this becomes the fallback color for the slot */ ''}
21997
22046
  }
21998
22047
  `));
21999
22048
 
22000
- const template$18 = (context, definition) => html `
22049
+ const template$19 = (context, definition) => html `
22001
22050
  <div
22002
22051
  role="button"
22003
22052
  part="control"
@@ -22092,8 +22141,8 @@ so this becomes the fallback color for the slot */ ''}
22092
22141
  applyMixins(ToggleButton, StartEnd, DelegatesARIAButton);
22093
22142
  const nimbleToggleButton = ToggleButton.compose({
22094
22143
  baseName: 'toggle-button',
22095
- template: template$18,
22096
- styles: styles$1g,
22144
+ template: template$19,
22145
+ styles: styles$1h,
22097
22146
  shadowOptions: {
22098
22147
  delegatesFocus: true
22099
22148
  }
@@ -22123,7 +22172,7 @@ so this becomes the fallback color for the slot */ ''}
22123
22172
  frameless: 'frameless'
22124
22173
  };
22125
22174
 
22126
- const styles$1f = css `
22175
+ const styles$1g = css `
22127
22176
  ${display$2('inline-flex')}
22128
22177
 
22129
22178
  :host {
@@ -22413,7 +22462,7 @@ so this becomes the fallback color for the slot */ ''}
22413
22462
  }
22414
22463
  `));
22415
22464
 
22416
- const styles$1e = css `
22465
+ const styles$1f = css `
22417
22466
  .annotated-label {
22418
22467
  display: flex;
22419
22468
  flex-direction: row;
@@ -22440,10 +22489,10 @@ so this becomes the fallback color for the slot */ ''}
22440
22489
  none: undefined,
22441
22490
  standard: 'standard'};
22442
22491
 
22443
- const styles$1d = css `
22492
+ const styles$1e = css `
22493
+ ${styles$1g}
22494
+ ${styles$1k}
22444
22495
  ${styles$1f}
22445
- ${styles$1j}
22446
- ${styles$1e}
22447
22496
 
22448
22497
  :host {
22449
22498
  field-sizing: fixed;
@@ -22571,7 +22620,7 @@ so this becomes the fallback color for the slot */ ''}
22571
22620
  <slot></slot>
22572
22621
  </label>
22573
22622
  `);
22574
- const template$17 = (context, definition) => html `
22623
+ const template$18 = (context, definition) => html `
22575
22624
  <template
22576
22625
  aria-disabled="${x => x.ariaDisabled}"
22577
22626
  autocomplete="${x => x.autocomplete}"
@@ -23346,8 +23395,8 @@ so this becomes the fallback color for the slot */ ''}
23346
23395
  const nimbleCombobox = Combobox.compose({
23347
23396
  baseName: 'combobox',
23348
23397
  baseClass: FormAssociatedCombobox,
23349
- template: template$17,
23350
- styles: styles$1d,
23398
+ template: template$18,
23399
+ styles: styles$1e,
23351
23400
  shadowOptions: {
23352
23401
  delegatesFocus: true
23353
23402
  },
@@ -23391,7 +23440,7 @@ so this becomes the fallback color for the slot */ ''}
23391
23440
  */
23392
23441
  const UserDismissed = Symbol('user dismissed');
23393
23442
 
23394
- const styles$1c = css `
23443
+ const styles$1d = css `
23395
23444
  ${display$2('grid')}
23396
23445
 
23397
23446
  dialog {
@@ -23484,7 +23533,7 @@ so this becomes the fallback color for the slot */ ''}
23484
23533
  }
23485
23534
  `;
23486
23535
 
23487
- const template$16 = html `
23536
+ const template$17 = html `
23488
23537
  <template>
23489
23538
  <dialog
23490
23539
  ${ref('dialogElement')}
@@ -23632,13 +23681,13 @@ so this becomes the fallback color for the slot */ ''}
23632
23681
  applyMixins(Dialog, ARIAGlobalStatesAndProperties);
23633
23682
  const nimbleDialog = Dialog.compose({
23634
23683
  baseName: 'dialog',
23635
- template: template$16,
23636
- styles: styles$1c,
23684
+ template: template$17,
23685
+ styles: styles$1d,
23637
23686
  baseClass: Dialog
23638
23687
  });
23639
23688
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDialog());
23640
23689
 
23641
- const styles$1b = css `
23690
+ const styles$1c = css `
23642
23691
  ${display$2('block')}
23643
23692
 
23644
23693
  :host {
@@ -23781,7 +23830,7 @@ so this becomes the fallback color for the slot */ ''}
23781
23830
  }
23782
23831
  `;
23783
23832
 
23784
- const template$15 = html `
23833
+ const template$16 = html `
23785
23834
  <dialog
23786
23835
  ${ref('dialog')}
23787
23836
  aria-label="${x => x.ariaLabel}"
@@ -23923,8 +23972,8 @@ so this becomes the fallback color for the slot */ ''}
23923
23972
  applyMixins(Drawer, ARIAGlobalStatesAndProperties);
23924
23973
  const nimbleDrawer = Drawer.compose({
23925
23974
  baseName: 'drawer',
23926
- template: template$15,
23927
- styles: styles$1b
23975
+ template: template$16,
23976
+ styles: styles$1c
23928
23977
  });
23929
23978
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleDrawer());
23930
23979
 
@@ -26764,7 +26813,7 @@ so this becomes the fallback color for the slot */ ''}
26764
26813
  }
26765
26814
  }
26766
26815
 
26767
- const styles$1a = css `
26816
+ const styles$1b = css `
26768
26817
  ${display$2('none')}
26769
26818
  `;
26770
26819
 
@@ -26837,7 +26886,7 @@ so this becomes the fallback color for the slot */ ''}
26837
26886
  ], LabelProviderCore.prototype, "itemRemove", void 0);
26838
26887
  const nimbleLabelProviderCore = LabelProviderCore.compose({
26839
26888
  baseName: 'label-provider-core',
26840
- styles: styles$1a
26889
+ styles: styles$1b
26841
26890
  });
26842
26891
  DesignSystem.getOrCreate()
26843
26892
  .withPrefix('nimble')
@@ -27004,13 +27053,13 @@ so this becomes the fallback color for the slot */ ''}
27004
27053
  ], LabelProviderTable.prototype, "groupRowPlaceholderEmpty", void 0);
27005
27054
  const nimbleLabelProviderTable = LabelProviderTable.compose({
27006
27055
  baseName: 'label-provider-table',
27007
- styles: styles$1a
27056
+ styles: styles$1b
27008
27057
  });
27009
27058
  DesignSystem.getOrCreate()
27010
27059
  .withPrefix('nimble')
27011
27060
  .register(nimbleLabelProviderTable());
27012
27061
 
27013
- const styles$19 = css `
27062
+ const styles$1a = css `
27014
27063
  ${display$2('flex')}
27015
27064
 
27016
27065
  :host {
@@ -27086,7 +27135,7 @@ so this becomes the fallback color for the slot */ ''}
27086
27135
  * The template for the {@link @ni/fast-foundation#(ListboxOption:class)} component.
27087
27136
  * @public
27088
27137
  */
27089
- const template$14 = (context, definition) => html `
27138
+ const template$15 = (context, definition) => html `
27090
27139
  <template
27091
27140
  aria-checked="${x => x.ariaChecked}"
27092
27141
  aria-disabled="${x => x.ariaDisabled}"
@@ -27188,13 +27237,13 @@ so this becomes the fallback color for the slot */ ''}
27188
27237
  const nimbleListOption = ListOption.compose({
27189
27238
  baseName: 'list-option',
27190
27239
  baseClass: ListboxOption,
27191
- template: template$14,
27192
- styles: styles$19
27240
+ template: template$15,
27241
+ styles: styles$1a
27193
27242
  });
27194
27243
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleListOption());
27195
27244
  const listOptionTag = 'nimble-list-option';
27196
27245
 
27197
- const styles$18 = css `
27246
+ const styles$19 = css `
27198
27247
  ${display$2('flex')}
27199
27248
 
27200
27249
  :host {
@@ -27256,7 +27305,7 @@ so this becomes the fallback color for the slot */ ''}
27256
27305
  const isListOption$1 = (n) => {
27257
27306
  return n instanceof ListOption;
27258
27307
  };
27259
- const template$13 = html `
27308
+ const template$14 = html `
27260
27309
  <template
27261
27310
  role="group"
27262
27311
  aria-label="${x => x.labelContent}"
@@ -27398,8 +27447,8 @@ so this becomes the fallback color for the slot */ ''}
27398
27447
  const nimbleListOptionGroup = ListOptionGroup.compose({
27399
27448
  baseName: 'list-option-group',
27400
27449
  baseClass: FoundationElement,
27401
- template: template$13,
27402
- styles: styles$18
27450
+ template: template$14,
27451
+ styles: styles$19
27403
27452
  });
27404
27453
  DesignSystem.getOrCreate()
27405
27454
  .withPrefix('nimble')
@@ -27426,9 +27475,9 @@ so this becomes the fallback color for the slot */ ''}
27426
27475
  attr()
27427
27476
  ], Mapping$1.prototype, "key", void 0);
27428
27477
 
27429
- const template$12 = html `<template slot="mapping"></template>`;
27478
+ const template$13 = html `<template slot="mapping"></template>`;
27430
27479
 
27431
- const styles$17 = css `
27480
+ const styles$18 = css `
27432
27481
  ${display$2('none')}
27433
27482
  `;
27434
27483
 
@@ -27444,8 +27493,8 @@ so this becomes the fallback color for the slot */ ''}
27444
27493
  ], MappingEmpty.prototype, "text", void 0);
27445
27494
  const emptyMapping = MappingEmpty.compose({
27446
27495
  baseName: 'mapping-empty',
27447
- template: template$12,
27448
- styles: styles$17
27496
+ template: template$13,
27497
+ styles: styles$18
27449
27498
  });
27450
27499
  DesignSystem.getOrCreate().withPrefix('nimble').register(emptyMapping());
27451
27500
 
@@ -27515,8 +27564,8 @@ so this becomes the fallback color for the slot */ ''}
27515
27564
  ], MappingIcon.prototype, "resolvedIcon", void 0);
27516
27565
  const iconMapping = MappingIcon.compose({
27517
27566
  baseName: 'mapping-icon',
27518
- template: template$12,
27519
- styles: styles$17
27567
+ template: template$13,
27568
+ styles: styles$18
27520
27569
  });
27521
27570
  DesignSystem.getOrCreate().withPrefix('nimble').register(iconMapping());
27522
27571
 
@@ -27539,8 +27588,8 @@ so this becomes the fallback color for the slot */ ''}
27539
27588
  ], MappingSpinner.prototype, "textHidden", void 0);
27540
27589
  const spinnerMapping = MappingSpinner.compose({
27541
27590
  baseName: 'mapping-spinner',
27542
- template: template$12,
27543
- styles: styles$17
27591
+ template: template$13,
27592
+ styles: styles$18
27544
27593
  });
27545
27594
  DesignSystem.getOrCreate().withPrefix('nimble').register(spinnerMapping());
27546
27595
 
@@ -27556,8 +27605,8 @@ so this becomes the fallback color for the slot */ ''}
27556
27605
  ], MappingText.prototype, "text", void 0);
27557
27606
  const textMapping = MappingText.compose({
27558
27607
  baseName: 'mapping-text',
27559
- template: template$12,
27560
- styles: styles$17
27608
+ template: template$13,
27609
+ styles: styles$18
27561
27610
  });
27562
27611
  DesignSystem.getOrCreate().withPrefix('nimble').register(textMapping());
27563
27612
 
@@ -27859,7 +27908,7 @@ so this becomes the fallback color for the slot */ ''}
27859
27908
  observable
27860
27909
  ], Menu$1.prototype, "itemIcons", void 0);
27861
27910
 
27862
- const template$11 = () => html `
27911
+ const template$12 = () => html `
27863
27912
  <template
27864
27913
  slot="${x => {
27865
27914
  if (x.slot) {
@@ -27876,7 +27925,7 @@ so this becomes the fallback color for the slot */ ''}
27876
27925
  </template>
27877
27926
  `;
27878
27927
 
27879
- const styles$16 = css `
27928
+ const styles$17 = css `
27880
27929
  ${display$2('grid')}
27881
27930
 
27882
27931
  :host {
@@ -27947,8 +27996,8 @@ so this becomes the fallback color for the slot */ ''}
27947
27996
  const nimbleMenu = Menu.compose({
27948
27997
  baseName: 'menu',
27949
27998
  baseClass: Menu$1,
27950
- template: template$11,
27951
- styles: styles$16
27999
+ template: template$12,
28000
+ styles: styles$17
27952
28001
  });
27953
28002
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenu());
27954
28003
  const menuTag = 'nimble-menu';
@@ -27965,7 +28014,7 @@ so this becomes the fallback color for the slot */ ''}
27965
28014
  auto: 'auto'
27966
28015
  };
27967
28016
 
27968
- const styles$15 = css `
28017
+ const styles$16 = css `
27969
28018
  ${display$2('inline-block')}
27970
28019
 
27971
28020
  :host {
@@ -27983,7 +28032,7 @@ so this becomes the fallback color for the slot */ ''}
27983
28032
  }
27984
28033
  `;
27985
28034
 
27986
- const template$10 = html `
28035
+ const template$11 = html `
27987
28036
  <template
27988
28037
  ?open="${x => x.open}"
27989
28038
  @focusout="${(x, c) => x.focusoutHandler(c.event)}"
@@ -28233,8 +28282,8 @@ so this becomes the fallback color for the slot */ ''}
28233
28282
  ], MenuButton.prototype, "slottedMenus", void 0);
28234
28283
  const nimbleMenuButton = MenuButton.compose({
28235
28284
  baseName: 'menu-button',
28236
- template: template$10,
28237
- styles: styles$15,
28285
+ template: template$11,
28286
+ styles: styles$16,
28238
28287
  shadowOptions: {
28239
28288
  delegatesFocus: true
28240
28289
  }
@@ -28242,7 +28291,7 @@ so this becomes the fallback color for the slot */ ''}
28242
28291
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuButton());
28243
28292
  const menuButtonTag = 'nimble-menu-button';
28244
28293
 
28245
- const styles$14 = css `
28294
+ const styles$15 = css `
28246
28295
  ${display$2('grid')}
28247
28296
 
28248
28297
  :host {
@@ -28339,7 +28388,7 @@ so this becomes the fallback color for the slot */ ''}
28339
28388
  baseName: 'menu-item',
28340
28389
  baseClass: MenuItem$1,
28341
28390
  template: menuItemTemplate,
28342
- styles: styles$14,
28391
+ styles: styles$15,
28343
28392
  expandCollapseGlyph: arrowExpanderRight16X16.data
28344
28393
  });
28345
28394
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleMenuItem());
@@ -28355,10 +28404,10 @@ so this becomes the fallback color for the slot */ ''}
28355
28404
  frameless: 'frameless'
28356
28405
  };
28357
28406
 
28358
- const styles$13 = css `
28407
+ const styles$14 = css `
28359
28408
  ${display$2('inline-block')}
28360
- ${styles$1j}
28361
- ${styles$1e}
28409
+ ${styles$1k}
28410
+ ${styles$1f}
28362
28411
 
28363
28412
  :host {
28364
28413
  font: ${bodyFont};
@@ -28589,7 +28638,7 @@ so this becomes the fallback color for the slot */ ''}
28589
28638
  * The template for the {@link @ni/fast-foundation#(NumberField:class)} component.
28590
28639
  * @public
28591
28640
  */
28592
- const template$$ = (context, definition) => html `
28641
+ const template$10 = (context, definition) => html `
28593
28642
  <template class="${x => (x.readOnly ? 'readonly' : '')}">
28594
28643
  ${labelTemplate$4}
28595
28644
  <div class="root" part="root">
@@ -28743,8 +28792,8 @@ so this becomes the fallback color for the slot */ ''}
28743
28792
  const nimbleNumberField = NumberField.compose({
28744
28793
  baseName: 'number-field',
28745
28794
  baseClass: NumberField$1,
28746
- template: template$$,
28747
- styles: styles$13,
28795
+ template: template$10,
28796
+ styles: styles$14,
28748
28797
  shadowOptions: {
28749
28798
  delegatesFocus: true
28750
28799
  },
@@ -28787,7 +28836,7 @@ so this becomes the fallback color for the slot */ ''}
28787
28836
  });
28788
28837
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleNumberField());
28789
28838
 
28790
- const styles$12 = css `
28839
+ const styles$13 = css `
28791
28840
  ${display$2('inline-flex')}
28792
28841
 
28793
28842
  :host {
@@ -28887,15 +28936,15 @@ so this becomes the fallback color for the slot */ ''}
28887
28936
  baseName: 'radio',
28888
28937
  baseClass: Radio$1,
28889
28938
  template: radioTemplate,
28890
- styles: styles$12,
28939
+ styles: styles$13,
28891
28940
  checkedIndicator: circleFilled16X16.data
28892
28941
  });
28893
28942
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleRadio());
28894
28943
 
28895
- const styles$11 = css `
28944
+ const styles$12 = css `
28896
28945
  ${display$2('inline-block')}
28897
- ${styles$1j}
28898
- ${styles$1e}
28946
+ ${styles$1k}
28947
+ ${styles$1f}
28899
28948
 
28900
28949
  .positioning-region {
28901
28950
  display: flex;
@@ -28934,7 +28983,7 @@ so this becomes the fallback color for the slot */ ''}
28934
28983
  `;
28935
28984
 
28936
28985
  const labelTemplate$3 = createRequiredVisibleLabelTemplate(html `<slot name="label"></slot>`);
28937
- const template$_ = html `
28986
+ const template$$ = html `
28938
28987
  <template
28939
28988
  role="radiogroup"
28940
28989
  aria-disabled="${x => x.disabled}"
@@ -28974,8 +29023,8 @@ so this becomes the fallback color for the slot */ ''}
28974
29023
  const nimbleRadioGroup = RadioGroup.compose({
28975
29024
  baseName: 'radio-group',
28976
29025
  baseClass: RadioGroup$1,
28977
- template: template$_,
28978
- styles: styles$11,
29026
+ template: template$$,
29027
+ styles: styles$12,
28979
29028
  shadowOptions: {
28980
29029
  delegatesFocus: true
28981
29030
  }
@@ -48741,7 +48790,7 @@ img.ProseMirror-separator {
48741
48790
  //#region src/index.ts
48742
48791
  var src_default$7 = HardBreak;
48743
48792
 
48744
- const styles$10 = css `
48793
+ const styles$11 = css `
48745
48794
  ${display$2('inline')}
48746
48795
 
48747
48796
  .positioning-region {
@@ -48778,7 +48827,7 @@ img.ProseMirror-separator {
48778
48827
  baseName: 'toolbar',
48779
48828
  baseClass: Toolbar$1,
48780
48829
  template: toolbarTemplate,
48781
- styles: styles$10
48830
+ styles: styles$11
48782
48831
  });
48783
48832
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleToolbar());
48784
48833
  const toolbarTag = 'nimble-toolbar';
@@ -48807,8 +48856,8 @@ img.ProseMirror-separator {
48807
48856
  cssCustomPropertyName: null
48808
48857
  }).withDefault(richTextLabelDefaults.richTextToggleNumberedListLabel);
48809
48858
 
48810
- const styles$$ = css `
48811
- ${styles$1f}
48859
+ const styles$10 = css `
48860
+ ${styles$1g}
48812
48861
 
48813
48862
  :host {
48814
48863
  height: auto;
@@ -48826,7 +48875,7 @@ img.ProseMirror-separator {
48826
48875
  }
48827
48876
  `;
48828
48877
 
48829
- const template$Z = html `
48878
+ const template$_ = html `
48830
48879
  <template>
48831
48880
  <${anchoredRegionTag}
48832
48881
  ${ref('region')}
@@ -49114,15 +49163,15 @@ img.ProseMirror-separator {
49114
49163
  ], RichTextMentionListbox.prototype, "anchorElement", void 0);
49115
49164
  const nimbleRichTextMentionListbox = RichTextMentionListbox.compose({
49116
49165
  baseName: 'rich-text-mention-listbox',
49117
- template: template$Z,
49118
- styles: styles$$
49166
+ template: template$_,
49167
+ styles: styles$10
49119
49168
  });
49120
49169
  DesignSystem.getOrCreate()
49121
49170
  .withPrefix('nimble')
49122
49171
  .register(nimbleRichTextMentionListbox());
49123
49172
  const richTextMentionListboxTag = 'nimble-rich-text-mention-listbox';
49124
49173
 
49125
- const template$Y = html `
49174
+ const template$Z = html `
49126
49175
  <template
49127
49176
  ${children$1({ property: 'childItems', filter: elements() })}
49128
49177
  @focusout="${x => x.focusoutHandler()}"
@@ -49224,9 +49273,9 @@ img.ProseMirror-separator {
49224
49273
  </template>
49225
49274
  `;
49226
49275
 
49227
- const styles$_ = css `
49276
+ const styles$$ = css `
49228
49277
  ${display$2('inline-flex')}
49229
- ${styles$1j}
49278
+ ${styles$1k}
49230
49279
 
49231
49280
  :host {
49232
49281
  font: ${bodyFont};
@@ -52306,6 +52355,19 @@ img.ProseMirror-separator {
52306
52355
  const QUOTE_TEST_RE = /['"]/;
52307
52356
  const QUOTE_RE = /['"]/g;
52308
52357
  const APOSTROPHE$1 = '\u2019'; /* ’ */
52358
+ // Caps memory on malicious input
52359
+ const MAX_OPENERS = 1000;
52360
+
52361
+ function truncateStack (stack, heads, length) {
52362
+ while (stack.length > length) {
52363
+ const item = stack.pop();
52364
+ if (item.isSingleQuote) {
52365
+ heads.single = item.prevSameQuoteIdx;
52366
+ } else {
52367
+ heads.double = item.prevSameQuoteIdx;
52368
+ }
52369
+ }
52370
+ }
52309
52371
 
52310
52372
  function addReplacement (replacements, tokenIdx, pos, ch) {
52311
52373
  if (!replacements[tokenIdx]) {
@@ -52335,6 +52397,8 @@ img.ProseMirror-separator {
52335
52397
  let j;
52336
52398
 
52337
52399
  const stack = [];
52400
+ // stack indexes of topmost openers of each type (-1 if none)
52401
+ const heads = { single: -1, double: -1 };
52338
52402
  // token index -> list of replacements in the original token content
52339
52403
  const replacements = {};
52340
52404
 
@@ -52346,7 +52410,7 @@ img.ProseMirror-separator {
52346
52410
  for (j = stack.length - 1; j >= 0; j--) {
52347
52411
  if (stack[j].level <= thisLevel) { break }
52348
52412
  }
52349
- stack.length = j + 1;
52413
+ truncateStack(stack, heads, j + 1);
52350
52414
 
52351
52415
  if (token.type !== 'text') { continue }
52352
52416
 
@@ -52450,39 +52514,45 @@ img.ProseMirror-separator {
52450
52514
  }
52451
52515
 
52452
52516
  if (canClose) {
52453
- // this could be a closing quote, rewind the stack to get a match
52454
- for (j = stack.length - 1; j >= 0; j--) {
52455
- let item = stack[j];
52456
- if (stack[j].level < thisLevel) { break }
52457
- if (item.single === isSingle && stack[j].level === thisLevel) {
52458
- item = stack[j];
52459
-
52460
- let openQuote;
52461
- let closeQuote;
52462
- if (isSingle) {
52463
- openQuote = state.md.options.quotes[2];
52464
- closeQuote = state.md.options.quotes[3];
52465
- } else {
52466
- openQuote = state.md.options.quotes[0];
52467
- closeQuote = state.md.options.quotes[1];
52468
- }
52517
+ // Stack levels never decrease, so an opener of this type below
52518
+ // the current level means there is no match
52519
+ j = isSingle ? heads.single : heads.double;
52520
+ if (j >= 0 && stack[j].level === thisLevel) {
52521
+ const item = stack[j];
52522
+
52523
+ let openQuote;
52524
+ let closeQuote;
52525
+ if (isSingle) {
52526
+ openQuote = state.md.options.quotes[2];
52527
+ closeQuote = state.md.options.quotes[3];
52528
+ } else {
52529
+ openQuote = state.md.options.quotes[0];
52530
+ closeQuote = state.md.options.quotes[1];
52531
+ }
52469
52532
 
52470
- addReplacement(replacements, i, t.index, closeQuote);
52471
- addReplacement(replacements, item.token, item.pos, openQuote);
52533
+ addReplacement(replacements, i, t.index, closeQuote);
52534
+ addReplacement(replacements, item.tokenIdx, item.contentPos, openQuote);
52472
52535
 
52473
- stack.length = j;
52474
- continue OUTER
52475
- }
52536
+ truncateStack(stack, heads, j);
52537
+ continue OUTER
52476
52538
  }
52477
52539
  }
52478
52540
 
52479
52541
  if (canOpen) {
52542
+ if (stack.length >= MAX_OPENERS) { return }
52480
52543
  stack.push({
52481
- token: i,
52482
- pos: t.index,
52483
- single: isSingle,
52484
- level: thisLevel
52544
+ tokenIdx: i,
52545
+ contentPos: t.index,
52546
+ isSingleQuote: isSingle,
52547
+ level: thisLevel,
52548
+ // stack index of the previous opener of the same quote type, -1 if none
52549
+ prevSameQuoteIdx: isSingle ? heads.single : heads.double
52485
52550
  });
52551
+ if (isSingle) {
52552
+ heads.single = stack.length - 1;
52553
+ } else {
52554
+ heads.double = stack.length - 1;
52555
+ }
52486
52556
  } else if (canClose && isSingle) {
52487
52557
  addReplacement(replacements, i, t.index, APOSTROPHE$1);
52488
52558
  }
@@ -68431,8 +68501,8 @@ img.ProseMirror-separator {
68431
68501
  applyMixins(RichTextEditor, ARIAGlobalStatesAndProperties);
68432
68502
  const nimbleRichTextEditor = RichTextEditor.compose({
68433
68503
  baseName: 'rich-text-editor',
68434
- template: template$Y,
68435
- styles: styles$_,
68504
+ template: template$Z,
68505
+ styles: styles$$,
68436
68506
  shadowOptions: {
68437
68507
  delegatesFocus: true
68438
68508
  }
@@ -68441,13 +68511,13 @@ img.ProseMirror-separator {
68441
68511
  .withPrefix('nimble')
68442
68512
  .register(nimbleRichTextEditor());
68443
68513
 
68444
- const template$X = html `
68514
+ const template$Y = html `
68445
68515
  <template ${children$1({ property: 'childItems', filter: elements() })}>
68446
68516
  <div ${ref('viewer')} class="viewer"></div>
68447
68517
  </template>
68448
68518
  `;
68449
68519
 
68450
- const styles$Z = css `
68520
+ const styles$_ = css `
68451
68521
  ${display$2('flex')}
68452
68522
 
68453
68523
  :host {
@@ -68560,17 +68630,17 @@ img.ProseMirror-separator {
68560
68630
  ], RichTextViewer.prototype, "markdown", void 0);
68561
68631
  const nimbleRichTextViewer = RichTextViewer.compose({
68562
68632
  baseName: 'rich-text-viewer',
68563
- template: template$X,
68564
- styles: styles$Z
68633
+ template: template$Y,
68634
+ styles: styles$_
68565
68635
  });
68566
68636
  DesignSystem.getOrCreate()
68567
68637
  .withPrefix('nimble')
68568
68638
  .register(nimbleRichTextViewer());
68569
68639
 
68570
- const styles$Y = css `
68640
+ const styles$Z = css `
68641
+ ${styles$1g}
68642
+ ${styles$1k}
68571
68643
  ${styles$1f}
68572
- ${styles$1j}
68573
- ${styles$1e}
68574
68644
 
68575
68645
  ${
68576
68646
  /* We are using flex `order` to define the visual ordering of the selected value,
@@ -68733,7 +68803,7 @@ img.ProseMirror-separator {
68733
68803
  }
68734
68804
  `));
68735
68805
 
68736
- const styles$X = css `
68806
+ const styles$Y = css `
68737
68807
  ${display$2('inline-grid')}
68738
68808
 
68739
68809
  :host {
@@ -68903,7 +68973,7 @@ img.ProseMirror-separator {
68903
68973
  }
68904
68974
  `));
68905
68975
 
68906
- const template$W = html `
68976
+ const template$X = html `
68907
68977
  <template role="progressbar">
68908
68978
  ${''
68909
68979
  /**
@@ -68950,8 +69020,8 @@ img.ProseMirror-separator {
68950
69020
  ], Spinner.prototype, "appearance", void 0);
68951
69021
  const nimbleSpinner = Spinner.compose({
68952
69022
  baseName: 'spinner',
68953
- template: template$W,
68954
- styles: styles$X
69023
+ template: template$X,
69024
+ styles: styles$Y
68955
69025
  });
68956
69026
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSpinner());
68957
69027
  const spinnerTag = 'nimble-spinner';
@@ -68967,7 +69037,7 @@ img.ProseMirror-separator {
68967
69037
  <slot ${ref('labelSlot')}></slot>
68968
69038
  </label>
68969
69039
  `);
68970
- const template$V = (context, definition) => html `
69040
+ const template$W = (context, definition) => html `
68971
69041
  <template
68972
69042
  class="${x => [
68973
69043
  x.collapsible && 'collapsible',
@@ -70179,8 +70249,8 @@ img.ProseMirror-separator {
70179
70249
  const nimbleSelect = Select.compose({
70180
70250
  baseName: 'select',
70181
70251
  baseClass: Select$2,
70182
- template: template$V,
70183
- styles: styles$Y,
70252
+ template: template$W,
70253
+ styles: styles$Z,
70184
70254
  indicator: arrowExpanderDown16X16.data,
70185
70255
  end: html `
70186
70256
  <${iconExclamationMarkTag}
@@ -70193,8 +70263,8 @@ img.ProseMirror-separator {
70193
70263
  applyMixins(Select, StartEnd, DelegatesARIASelect);
70194
70264
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());
70195
70265
 
70196
- const styles$W = css `
70197
- ${styles$1w}
70266
+ const styles$X = css `
70267
+ ${styles$1x}
70198
70268
  ${'' /* Button specific styles */}
70199
70269
  @layer base {
70200
70270
  .control {
@@ -70205,7 +70275,7 @@ img.ProseMirror-separator {
70205
70275
  }
70206
70276
  `;
70207
70277
 
70208
- const template$U = (context, definition) => html `
70278
+ const template$V = (context, definition) => html `
70209
70279
  <template slot="step">
70210
70280
  <li class="
70211
70281
  container
@@ -70327,15 +70397,15 @@ img.ProseMirror-separator {
70327
70397
  ], Step.prototype, "tabIndex", void 0);
70328
70398
  const nimbleStep = Step.compose({
70329
70399
  baseName: 'step',
70330
- template: template$U,
70331
- styles: styles$W,
70400
+ template: template$V,
70401
+ styles: styles$X,
70332
70402
  shadowOptions: {
70333
70403
  delegatesFocus: true
70334
70404
  }
70335
70405
  });
70336
70406
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleStep());
70337
70407
 
70338
- const styles$V = css `
70408
+ const styles$W = css `
70339
70409
  ${display$2('inline-flex')}
70340
70410
 
70341
70411
  :host {
@@ -70406,7 +70476,7 @@ img.ProseMirror-separator {
70406
70476
  }
70407
70477
  `;
70408
70478
 
70409
- const template$T = html `
70479
+ const template$U = html `
70410
70480
  ${when(x => x.showScrollButtons, html `
70411
70481
  <${buttonTag}
70412
70482
  content-hidden
@@ -70551,12 +70621,12 @@ img.ProseMirror-separator {
70551
70621
  ], Stepper.prototype, "steps", void 0);
70552
70622
  const nimbleStepper = Stepper.compose({
70553
70623
  baseName: 'stepper',
70554
- template: template$T,
70555
- styles: styles$V
70624
+ template: template$U,
70625
+ styles: styles$W
70556
70626
  });
70557
70627
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleStepper());
70558
70628
 
70559
- const styles$U = css `
70629
+ const styles$V = css `
70560
70630
  ${display$2('inline-flex')}
70561
70631
 
70562
70632
  :host {
@@ -70786,7 +70856,7 @@ img.ProseMirror-separator {
70786
70856
  }
70787
70857
  `));
70788
70858
 
70789
- const template$S = html `
70859
+ const template$T = html `
70790
70860
  <template
70791
70861
  role="switch"
70792
70862
  aria-checked="${x => x.checked}"
@@ -70830,12 +70900,12 @@ img.ProseMirror-separator {
70830
70900
  const nimbleSwitch = Switch.compose({
70831
70901
  baseClass: Switch$1,
70832
70902
  baseName: 'switch',
70833
- template: template$S,
70834
- styles: styles$U
70903
+ template: template$T,
70904
+ styles: styles$V
70835
70905
  });
70836
70906
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSwitch());
70837
70907
 
70838
- const styles$T = css `
70908
+ const styles$U = css `
70839
70909
  ${display$2('inline-flex')}
70840
70910
 
70841
70911
  :host {
@@ -70946,11 +71016,11 @@ img.ProseMirror-separator {
70946
71016
  baseName: 'tab',
70947
71017
  baseClass: Tab$1,
70948
71018
  template: tabTemplate,
70949
- styles: styles$T
71019
+ styles: styles$U
70950
71020
  });
70951
71021
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTab());
70952
71022
 
70953
- const styles$S = css `
71023
+ const styles$T = css `
70954
71024
  ${display$2('block')}
70955
71025
 
70956
71026
  :host {
@@ -70969,7 +71039,7 @@ img.ProseMirror-separator {
70969
71039
  baseName: 'tab-panel',
70970
71040
  baseClass: TabPanel$1,
70971
71041
  template: tabPanelTemplate,
70972
- styles: styles$S
71042
+ styles: styles$T
70973
71043
  });
70974
71044
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabPanel());
70975
71045
 
@@ -74712,7 +74782,7 @@ img.ProseMirror-separator {
74712
74782
  }
74713
74783
  }
74714
74784
 
74715
- const styles$R = css `
74785
+ const styles$S = css `
74716
74786
  ${display$2('flex')}
74717
74787
 
74718
74788
  :host {
@@ -74950,7 +75020,7 @@ focus outline in that case.
74950
75020
  }
74951
75021
  `));
74952
75022
 
74953
- const styles$Q = css `
75023
+ const styles$R = css `
74954
75024
  ${display$2('flex')}
74955
75025
 
74956
75026
  :host {
@@ -74983,7 +75053,7 @@ focus outline in that case.
74983
75053
  }
74984
75054
  `;
74985
75055
 
74986
- const template$R = html `
75056
+ const template$S = html `
74987
75057
  <template role="columnheader"
74988
75058
  class="${x => (x.alignment === TableColumnAlignment.right ? 'right-align' : '')}"
74989
75059
  aria-sort="${x => x.ariaSort}"
@@ -75069,13 +75139,13 @@ focus outline in that case.
75069
75139
  ], TableHeader.prototype, "isGrouped", void 0);
75070
75140
  const nimbleTableHeader = TableHeader.compose({
75071
75141
  baseName: 'table-header',
75072
- template: template$R,
75073
- styles: styles$Q
75142
+ template: template$S,
75143
+ styles: styles$R
75074
75144
  });
75075
75145
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableHeader());
75076
75146
  const tableHeaderTag = 'nimble-table-header';
75077
75147
 
75078
- const styles$P = css `
75148
+ const styles$Q = css `
75079
75149
  :host .animating {
75080
75150
  transition: ${mediumDelay} ease-in;
75081
75151
  }
@@ -75100,9 +75170,9 @@ focus outline in that case.
75100
75170
  }
75101
75171
  `;
75102
75172
 
75103
- const styles$O = css `
75173
+ const styles$P = css `
75104
75174
  ${display$2('flex')}
75105
- ${styles$P}
75175
+ ${styles$Q}
75106
75176
 
75107
75177
  :host {
75108
75178
  width: fit-content;
@@ -75348,7 +75418,7 @@ focus outline in that case.
75348
75418
  }
75349
75419
  `));
75350
75420
 
75351
- const styles$N = css `
75421
+ const styles$O = css `
75352
75422
  ${display$2('flex')}
75353
75423
 
75354
75424
  :host {
@@ -75393,7 +75463,7 @@ focus outline in that case.
75393
75463
  }
75394
75464
  `;
75395
75465
 
75396
- const template$Q = html `
75466
+ const template$R = html `
75397
75467
  <template role="cell" style="--ni-private-table-cell-nesting-level: ${x => x.nestingLevel}"
75398
75468
  @focusin="${x => x.onCellFocusIn()}"
75399
75469
  @blur="${x => x.onCellBlur()}"
@@ -75490,8 +75560,8 @@ focus outline in that case.
75490
75560
  ], TableCell.prototype, "nestingLevel", void 0);
75491
75561
  const nimbleTableCell = TableCell.compose({
75492
75562
  baseName: 'table-cell',
75493
- template: template$Q,
75494
- styles: styles$N
75563
+ template: template$R,
75564
+ styles: styles$O
75495
75565
  });
75496
75566
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableCell());
75497
75567
  const tableCellTag = 'nimble-table-cell';
@@ -75527,7 +75597,7 @@ focus outline in that case.
75527
75597
  `)}
75528
75598
  </${tableCellTag}>
75529
75599
  `;
75530
- const template$P = html `
75600
+ const template$Q = html `
75531
75601
  <template
75532
75602
  role="row"
75533
75603
  aria-selected=${x => x.ariaSelected}
@@ -75903,15 +75973,15 @@ focus outline in that case.
75903
75973
  ], TableRow.prototype, "ariaSelected", null);
75904
75974
  const nimbleTableRow = TableRow.compose({
75905
75975
  baseName: 'table-row',
75906
- template: template$P,
75907
- styles: styles$O
75976
+ template: template$Q,
75977
+ styles: styles$P
75908
75978
  });
75909
75979
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableRow());
75910
75980
  const tableRowTag = 'nimble-table-row';
75911
75981
 
75912
- const styles$M = css `
75982
+ const styles$N = css `
75913
75983
  ${display$2('grid')}
75914
- ${styles$P}
75984
+ ${styles$Q}
75915
75985
 
75916
75986
  :host {
75917
75987
  align-items: center;
@@ -76084,7 +76154,7 @@ focus outline in that case.
76084
76154
  }
76085
76155
  `));
76086
76156
 
76087
- const template$O = html `
76157
+ const template$P = html `
76088
76158
  <template
76089
76159
  role="row"
76090
76160
  @click=${x => x.onGroupExpandToggle()}
@@ -76260,8 +76330,8 @@ focus outline in that case.
76260
76330
  ], TableGroupRow.prototype, "allowHover", void 0);
76261
76331
  const nimbleTableGroupRow = TableGroupRow.compose({
76262
76332
  baseName: 'table-group-row',
76263
- template: template$O,
76264
- styles: styles$M
76333
+ template: template$P,
76334
+ styles: styles$N
76265
76335
  });
76266
76336
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTableGroupRow());
76267
76337
  const tableGroupRowTag = 'nimble-table-group-row';
@@ -76281,7 +76351,7 @@ focus outline in that case.
76281
76351
  <slot name="${x => x.slot}"></slot>
76282
76352
  </${tableHeaderTag}>
76283
76353
  `;
76284
- const template$N = html `
76354
+ const template$O = html `
76285
76355
  <template
76286
76356
  role="treegrid"
76287
76357
  ${'' /* tabindex managed dynamically by KeyboardNavigationManager */}
@@ -76449,8 +76519,11 @@ focus outline in that case.
76449
76519
  </template>
76450
76520
  `;
76451
76521
 
76452
- function createLazyMeasurementsView(count, flat, getItemKey) {
76453
- const cache = new Array(count);
76522
+ function getMeasurementKey(item) {
76523
+ return typeof item === "object" ? item.key : item;
76524
+ }
76525
+ function createLazyMeasurementsView(cache, flat) {
76526
+ const count = cache.length;
76454
76527
  return new Proxy(cache, {
76455
76528
  get(target, prop, receiver) {
76456
76529
  if (typeof prop === "string") {
@@ -76459,11 +76532,11 @@ focus outline in that case.
76459
76532
  const i = +prop;
76460
76533
  if (Number.isInteger(i) && i >= 0 && i < count) {
76461
76534
  let v = target[i];
76462
- if (!v) {
76535
+ if (typeof v !== "object") {
76463
76536
  const s = flat[i * 2];
76464
76537
  v = target[i] = {
76465
76538
  index: i,
76466
- key: getItemKey(i),
76539
+ key: v,
76467
76540
  start: s,
76468
76541
  size: flat[i * 2 + 1],
76469
76542
  end: s + flat[i * 2 + 1],
@@ -76635,7 +76708,7 @@ focus outline in that case.
76635
76708
  let offset = 0;
76636
76709
  const fallback = registerScrollendEvent ? null : debounce(
76637
76710
  targetWindow,
76638
- () => cb(offset, false),
76711
+ () => cb(readOffset(element), false),
76639
76712
  instance.options.isScrollingResetDelay
76640
76713
  );
76641
76714
  const createHandler = (isScrolling) => () => {
@@ -76697,6 +76770,27 @@ focus outline in that case.
76697
76770
  });
76698
76771
  };
76699
76772
  const elementScroll = scrollWithAdjustments;
76773
+ function isAppendWithTrim(prevCount, nextCount, getPreviousKey, getNextKey) {
76774
+ if (nextCount === 0) return false;
76775
+ const firstKey = getNextKey(0);
76776
+ const removedKeys = /* @__PURE__ */ new Set();
76777
+ let removedCount = 0;
76778
+ while (removedCount < prevCount) {
76779
+ const key = getPreviousKey(removedCount);
76780
+ if (key === firstKey) break;
76781
+ removedKeys.add(key);
76782
+ removedCount++;
76783
+ }
76784
+ const retainedCount = prevCount - removedCount;
76785
+ if (retainedCount === 0 || retainedCount >= nextCount) return false;
76786
+ for (let i = 0; i < retainedCount; i++) {
76787
+ if (getNextKey(i) !== getPreviousKey(removedCount + i)) return false;
76788
+ }
76789
+ for (let i = retainedCount; i < nextCount; i++) {
76790
+ if (removedKeys.has(getNextKey(i))) return false;
76791
+ }
76792
+ return true;
76793
+ }
76700
76794
  let Virtualizer$1 = class Virtualizer {
76701
76795
  constructor(opts) {
76702
76796
  this.unsubs = [];
@@ -76705,7 +76799,7 @@ focus outline in that case.
76705
76799
  this.isScrolling = false;
76706
76800
  this.scrollState = null;
76707
76801
  this.measurementsCache = [];
76708
- this._flatMeasurements = null;
76802
+ this._singleLaneMeasurements = null;
76709
76803
  this.itemSizeCache = /* @__PURE__ */ new Map();
76710
76804
  this.itemSizeCacheVersion = 0;
76711
76805
  this.laneAssignments = /* @__PURE__ */ new Map();
@@ -76723,6 +76817,7 @@ focus outline in that case.
76723
76817
  this._iosJustTouchEnded = false;
76724
76818
  this._iosTouchEndTimerId = null;
76725
76819
  this._intendedScrollOffset = null;
76820
+ this._clampedAdjustment = null;
76726
76821
  this.elementsCache = /* @__PURE__ */ new Map();
76727
76822
  this.now = () => {
76728
76823
  var _a, _b, _c;
@@ -76782,7 +76877,7 @@ focus outline in that case.
76782
76877
  })();
76783
76878
  this.range = null;
76784
76879
  this.setOptions = (opts2) => {
76785
- var _a, _b;
76880
+ var _a;
76786
76881
  const merged = {
76787
76882
  debug: false,
76788
76883
  initialOffset: 0,
@@ -76826,8 +76921,10 @@ focus outline in that case.
76826
76921
  const prevCount = prevOptions.count;
76827
76922
  const nextCount = merged.count;
76828
76923
  const measurements = this.getMeasurements();
76829
- const prevFirstKey = prevCount > 0 ? ((_a = measurements[0]) == null ? void 0 : _a.key) ?? prevOptions.getItemKey(0) : null;
76830
- const prevLastKey = prevCount > 0 ? ((_b = measurements[prevCount - 1]) == null ? void 0 : _b.key) ?? prevOptions.getItemKey(prevCount - 1) : null;
76924
+ const previousItems = ((_a = this._singleLaneMeasurements) == null ? void 0 : _a.items) ?? measurements;
76925
+ const getPreviousKey = (index) => getMeasurementKey(previousItems[index]);
76926
+ const prevFirstKey = prevCount > 0 ? getPreviousKey(0) : null;
76927
+ const prevLastKey = prevCount > 0 ? getPreviousKey(prevCount - 1) : null;
76831
76928
  const didCountChange = nextCount !== prevCount;
76832
76929
  const didEdgeKeysChange = didCountChange || prevCount > 0 && nextCount > 0 && (merged.getItemKey(0) !== prevFirstKey || merged.getItemKey(nextCount - 1) !== prevLastKey);
76833
76930
  if (didEdgeKeysChange) {
@@ -76837,8 +76934,15 @@ focus outline in that case.
76837
76934
  anchor = [item.key, this.getScrollOffset() - item.start];
76838
76935
  }
76839
76936
  const behavior = merged.followOnAppend === true ? "auto" : merged.followOnAppend || null;
76840
- if (behavior && nextCount > prevCount && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {
76841
- followOnAppend = behavior;
76937
+ if (behavior && nextCount > 0 && this.isAtEnd(prevOptions.scrollEndThreshold) && (prevCount === 0 || merged.getItemKey(nextCount - 1) !== prevLastKey)) {
76938
+ if (nextCount > prevCount || isAppendWithTrim(
76939
+ prevCount,
76940
+ nextCount,
76941
+ getPreviousKey,
76942
+ merged.getItemKey
76943
+ )) {
76944
+ followOnAppend = behavior;
76945
+ }
76842
76946
  }
76843
76947
  }
76844
76948
  }
@@ -76861,7 +76965,7 @@ focus outline in that case.
76861
76965
  const anchorItem = newMeasurements[idx];
76862
76966
  if (anchorItem) {
76863
76967
  const newOffset = Math.max(0, anchorItem.start + anchorOffset);
76864
- if (newOffset !== this.scrollOffset) {
76968
+ if (!followOnAppend && newOffset !== this.scrollOffset) {
76865
76969
  anchorDelta = newOffset - this.scrollOffset;
76866
76970
  this.scrollOffset = newOffset;
76867
76971
  anchorResolved = true;
@@ -76918,6 +77022,7 @@ focus outline in that case.
76918
77022
  this._iosDeferredAdjustment = 0;
76919
77023
  this._iosTouching = false;
76920
77024
  this._iosJustTouchEnded = false;
77025
+ this._clampedAdjustment = null;
76921
77026
  this.scrollElement = null;
76922
77027
  this.targetWindow = null;
76923
77028
  };
@@ -76927,7 +77032,7 @@ focus outline in that case.
76927
77032
  };
76928
77033
  };
76929
77034
  this._willUpdate = () => {
76930
- var _a;
77035
+ var _a, _b;
76931
77036
  const scrollElement = this.options.enabled ? this.options.getScrollElement() : null;
76932
77037
  if (this.scrollElement !== scrollElement) {
76933
77038
  this.cleanup();
@@ -76959,6 +77064,9 @@ focus outline in that case.
76959
77064
  offset = this._intendedScrollOffset;
76960
77065
  }
76961
77066
  this._intendedScrollOffset = null;
77067
+ if (this._clampedAdjustment !== null && Math.abs(offset - this._clampedAdjustment.maxAtWrite) >= 1.5) {
77068
+ this._clampedAdjustment = null;
77069
+ }
76962
77070
  this.scrollAdjustments = 0;
76963
77071
  const prevOffset = this.getScrollOffset();
76964
77072
  this.scrollDirection = isScrolling ? prevOffset === offset ? this.scrollDirection : prevOffset < offset ? "forward" : "backward" : null;
@@ -77026,7 +77134,11 @@ focus outline in that case.
77026
77134
  if (anchorDelta !== 0) {
77027
77135
  this._iosDeferredAdjustment += anchorDelta;
77028
77136
  }
77029
- } else {
77137
+ } else if (((_b = this.scrollState) == null ? void 0 : _b.behavior) === "smooth" && !approxEqual(
77138
+ this.getScrollOffset() - anchorDelta,
77139
+ this.scrollState.lastTargetOffset
77140
+ )) ;
77141
+ else {
77030
77142
  this._scrollToOffset(this.getScrollOffset(), {
77031
77143
  adjustments: void 0,
77032
77144
  behavior: void 0
@@ -77037,6 +77149,21 @@ focus outline in that case.
77037
77149
  this.scrollToEnd({ behavior: followOnAppend });
77038
77150
  }
77039
77151
  }
77152
+ this._retryClampedAdjustment();
77153
+ };
77154
+ this._retryClampedAdjustment = () => {
77155
+ if (this._clampedAdjustment === null || !this.scrollElement || !this.options.enabled) {
77156
+ return;
77157
+ }
77158
+ const { target, maxAtWrite } = this._clampedAdjustment;
77159
+ const max = this.getMaxScrollOffset();
77160
+ if (max > maxAtWrite + 0.5) {
77161
+ this._clampedAdjustment = target > max + 0.5 ? { target, maxAtWrite: max } : null;
77162
+ this._scrollToOffset(target, {
77163
+ adjustments: void 0,
77164
+ behavior: void 0
77165
+ });
77166
+ }
77040
77167
  };
77041
77168
  this._flushIosDeferredIfReady = () => {
77042
77169
  if (this._iosDeferredAdjustment === 0) return;
@@ -77120,9 +77247,11 @@ focus outline in that case.
77120
77247
  laneAssignmentMode,
77121
77248
  gap
77122
77249
  }, _itemSizeCacheVersion) => {
77250
+ var _a;
77123
77251
  const itemSizeCache = this.itemSizeCache;
77124
77252
  if (!enabled) {
77125
77253
  this.measurementsCache = [];
77254
+ this._singleLaneMeasurements = null;
77126
77255
  this.itemSizeCache.clear();
77127
77256
  this.laneAssignments.clear();
77128
77257
  return [];
@@ -77138,6 +77267,7 @@ focus outline in that case.
77138
77267
  this.lanesChangedFlag = false;
77139
77268
  this.lanesSettling = true;
77140
77269
  this.measurementsCache = [];
77270
+ this._singleLaneMeasurements = null;
77141
77271
  this.itemSizeCache.clear();
77142
77272
  this.laneAssignments.clear();
77143
77273
  this.pendingMin = null;
@@ -77155,13 +77285,13 @@ focus outline in that case.
77155
77285
  }
77156
77286
  if (lanes === 1) {
77157
77287
  const need = count * 2;
77158
- let flat = this._flatMeasurements;
77288
+ let flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;
77159
77289
  if (!flat || flat.length < need) {
77160
77290
  const next = new Float64Array(need);
77161
77291
  if (flat && min > 0) next.set(flat.subarray(0, min * 2));
77162
77292
  flat = next;
77163
- this._flatMeasurements = flat;
77164
77293
  }
77294
+ const items = min === 0 ? new Array(count) : this._singleLaneMeasurements.items.slice();
77165
77295
  let runningStart;
77166
77296
  if (min === 0) {
77167
77297
  runningStart = paddingStart + scrollMargin;
@@ -77171,13 +77301,15 @@ focus outline in that case.
77171
77301
  }
77172
77302
  for (let i = min; i < count; i++) {
77173
77303
  const key = getItemKey(i);
77304
+ items[i] = key;
77174
77305
  const measuredSize = itemSizeCache.get(key);
77175
77306
  const size = typeof measuredSize === "number" ? measuredSize : this.options.estimateSize(i);
77176
77307
  flat[i * 2] = runningStart;
77177
77308
  flat[i * 2 + 1] = size;
77178
77309
  runningStart += size + gap;
77179
77310
  }
77180
- const view = createLazyMeasurementsView(count, flat, getItemKey);
77311
+ this._singleLaneMeasurements = { flat, items };
77312
+ const view = createLazyMeasurementsView(items, flat);
77181
77313
  this.measurementsCache = view;
77182
77314
  return view;
77183
77315
  }
@@ -77272,7 +77404,7 @@ focus outline in that case.
77272
77404
  lanes,
77273
77405
  // Pass the typed array so binary search + forward-walk can read
77274
77406
  // start/end directly from Float64Array, skipping the Proxy traps.
77275
- lanes === 1 && this._flatMeasurements != null ? this._flatMeasurements : null
77407
+ lanes === 1 && this._singleLaneMeasurements !== null ? this._singleLaneMeasurements.flat : null
77276
77408
  );
77277
77409
  return this.range;
77278
77410
  },
@@ -77369,13 +77501,13 @@ focus outline in that case.
77369
77501
  }
77370
77502
  };
77371
77503
  this.resizeItem = (index, size) => {
77372
- var _a, _b;
77504
+ var _a, _b, _c;
77373
77505
  if (!this.isIndexInRange(index)) return;
77374
77506
  let cachedSize;
77375
77507
  let itemStart;
77376
77508
  let key;
77377
- const flat = this._flatMeasurements;
77378
- if (this.options.lanes === 1 && flat !== null) {
77509
+ const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;
77510
+ if (this.options.lanes === 1 && flat != null) {
77379
77511
  key = this.options.getItemKey(index);
77380
77512
  itemStart = flat[index * 2];
77381
77513
  cachedSize = flat[index * 2 + 1];
@@ -77389,7 +77521,7 @@ focus outline in that case.
77389
77521
  const itemSize = this.itemSizeCache.get(key) ?? cachedSize;
77390
77522
  const delta = size - itemSize;
77391
77523
  if (delta !== 0) {
77392
- const wasAtEnd = this.options.anchorTo === "end" && ((_a = this.scrollState) == null ? void 0 : _a.behavior) !== "smooth" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;
77524
+ const wasAtEnd = this.options.anchorTo === "end" && ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== "smooth" && this.getVirtualDistanceFromEnd() <= this.options.scrollEndThreshold;
77393
77525
  const prevTotalSize = wasAtEnd ? this.getTotalSize() : 0;
77394
77526
  const scrollOffsetWithAdj = this.getScrollOffset() + this.scrollAdjustments;
77395
77527
  const isFirstMeasure = !this.itemSizeCache.has(key);
@@ -77408,7 +77540,7 @@ focus outline in that case.
77408
77540
  // scrolling up" cascade.
77409
77541
  itemStart + itemSize <= scrollOffsetWithAdj && this.scrollDirection !== "backward"
77410
77542
  );
77411
- const shouldAdjustScroll = ((_b = this.scrollState) == null ? void 0 : _b.behavior) !== "smooth" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(
77543
+ const shouldAdjustScroll = ((_c = this.scrollState) == null ? void 0 : _c.behavior) !== "smooth" && (this.shouldAdjustScrollPositionOnItemSizeChange !== void 0 ? this.shouldAdjustScrollPositionOnItemSizeChange(
77412
77544
  // The callback expects a VirtualItem; build one lazily only
77413
77545
  // when the consumer actually supplied a custom predicate.
77414
77546
  this.measurementsCache[index] ?? {
@@ -77436,6 +77568,7 @@ focus outline in that case.
77436
77568
  adjustedSync = this.applyScrollAdjustment(delta);
77437
77569
  }
77438
77570
  this.notify(adjustedSync);
77571
+ this._retryClampedAdjustment();
77439
77572
  }
77440
77573
  };
77441
77574
  this.getVirtualItems = memo(
@@ -77455,11 +77588,12 @@ focus outline in that case.
77455
77588
  }
77456
77589
  );
77457
77590
  this.getVirtualItemForOffset = (offset) => {
77591
+ var _a;
77458
77592
  const measurements = this.getMeasurements();
77459
77593
  if (measurements.length === 0) {
77460
77594
  return void 0;
77461
77595
  }
77462
- const flat = this._flatMeasurements;
77596
+ const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;
77463
77597
  const useFlat = this.options.lanes === 1 && flat != null;
77464
77598
  const idx = findNearestBinarySearch(
77465
77599
  0,
@@ -77594,18 +77728,18 @@ focus outline in that case.
77594
77728
  });
77595
77729
  };
77596
77730
  this.getTotalSize = () => {
77597
- var _a;
77731
+ var _a, _b;
77598
77732
  const measurements = this.getMeasurements();
77599
77733
  let end;
77600
77734
  if (measurements.length === 0) {
77601
77735
  end = this.options.paddingStart;
77602
77736
  } else if (this.options.lanes === 1) {
77603
77737
  const lastIdx = measurements.length - 1;
77604
- const flat = this._flatMeasurements;
77738
+ const flat = (_a = this._singleLaneMeasurements) == null ? void 0 : _a.flat;
77605
77739
  if (flat != null) {
77606
77740
  end = flat[lastIdx * 2] + flat[lastIdx * 2 + 1];
77607
77741
  } else {
77608
- end = ((_a = measurements[lastIdx]) == null ? void 0 : _a.end) ?? 0;
77742
+ end = ((_b = measurements[lastIdx]) == null ? void 0 : _b.end) ?? 0;
77609
77743
  }
77610
77744
  } else {
77611
77745
  const endByLane = Array(this.options.lanes).fill(null);
@@ -77671,6 +77805,10 @@ focus outline in that case.
77671
77805
  this._iosDeferredAdjustment += delta;
77672
77806
  return false;
77673
77807
  } else {
77808
+ const target = this.getScrollOffset() + this.scrollAdjustments + delta;
77809
+ const el = this.scrollElement;
77810
+ const maxAtWrite = el !== null && ("scrollHeight" in el || "document" in el) ? this.getMaxScrollOffset() : null;
77811
+ this._clampedAdjustment = maxAtWrite !== null && target > maxAtWrite + 0.5 ? { target, maxAtWrite } : null;
77674
77812
  this._scrollToOffset(this.getScrollOffset(), {
77675
77813
  adjustments: this.scrollAdjustments += delta,
77676
77814
  behavior
@@ -81085,12 +81223,12 @@ focus outline in that case.
81085
81223
  ], Table$1.prototype, "windowShiftKeyDown", void 0);
81086
81224
  const nimbleTable = Table$1.compose({
81087
81225
  baseName: 'table',
81088
- template: template$N,
81089
- styles: styles$R
81226
+ template: template$O,
81227
+ styles: styles$S
81090
81228
  });
81091
81229
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTable());
81092
81230
 
81093
- const styles$L = css `
81231
+ const styles$M = css `
81094
81232
  ${display$2('contents')}
81095
81233
 
81096
81234
  .header-content {
@@ -81102,7 +81240,7 @@ focus outline in that case.
81102
81240
 
81103
81241
  // Avoiding a wrapping <template> and be careful about starting and ending whitspace
81104
81242
  // so the template can be composed into other column header templates
81105
- const template$M = html `<span
81243
+ const template$N = html `<span
81106
81244
  ${overflow('hasOverflow')}
81107
81245
  class="header-content"
81108
81246
  title=${x => (x.hasOverflow && x.headerTextContent ? x.headerTextContent : null)}
@@ -81167,7 +81305,7 @@ focus outline in that case.
81167
81305
  return ColumnWithPlaceholder;
81168
81306
  }
81169
81307
 
81170
- const styles$K = css `
81308
+ const styles$L = css `
81171
81309
  ${display$2('flex')}
81172
81310
 
81173
81311
  :host {
@@ -81198,7 +81336,7 @@ focus outline in that case.
81198
81336
  }
81199
81337
  `;
81200
81338
 
81201
- const template$L = html `
81339
+ const template$M = html `
81202
81340
  <template
81203
81341
  @click="${(x, c) => {
81204
81342
  if (typeof x.cellRecord?.href === 'string') {
@@ -81290,8 +81428,8 @@ focus outline in that case.
81290
81428
  ], TableColumnAnchorCellView.prototype, "showAnchor", null);
81291
81429
  const anchorCellView = TableColumnAnchorCellView.compose({
81292
81430
  baseName: 'table-column-anchor-cell-view',
81293
- template: template$L,
81294
- styles: styles$K
81431
+ template: template$M,
81432
+ styles: styles$L
81295
81433
  });
81296
81434
  DesignSystem.getOrCreate().withPrefix('nimble').register(anchorCellView());
81297
81435
  const tableColumnAnchorCellViewTag = 'nimble-table-column-anchor-cell-view';
@@ -81368,7 +81506,7 @@ focus outline in that case.
81368
81506
  observable
81369
81507
  ], TableColumnTextGroupHeaderViewBase.prototype, "text", void 0);
81370
81508
 
81371
- const template$K = html `
81509
+ const template$L = html `
81372
81510
  <span
81373
81511
  ${overflow('hasOverflow')}
81374
81512
  title="${x => (x.hasOverflow && x.text ? x.text : null)}"
@@ -81377,7 +81515,7 @@ focus outline in that case.
81377
81515
  </span>
81378
81516
  `;
81379
81517
 
81380
- const styles$J = css `
81518
+ const styles$K = css `
81381
81519
  ${display$2('flex')}
81382
81520
 
81383
81521
  span {
@@ -81401,8 +81539,8 @@ focus outline in that case.
81401
81539
  }
81402
81540
  const tableColumnTextGroupHeaderView = TableColumnTextGroupHeaderView.compose({
81403
81541
  baseName: 'table-column-text-group-header-view',
81404
- template: template$K,
81405
- styles: styles$J
81542
+ template: template$L,
81543
+ styles: styles$K
81406
81544
  });
81407
81545
  DesignSystem.getOrCreate()
81408
81546
  .withPrefix('nimble')
@@ -81646,8 +81784,8 @@ focus outline in that case.
81646
81784
  ], TableColumnAnchor.prototype, "download", void 0);
81647
81785
  const nimbleTableColumnAnchor = TableColumnAnchor.compose({
81648
81786
  baseName: 'table-column-anchor',
81649
- template: template$M,
81650
- styles: styles$L
81787
+ template: template$N,
81788
+ styles: styles$M
81651
81789
  });
81652
81790
  DesignSystem.getOrCreate()
81653
81791
  .withPrefix('nimble')
@@ -81699,15 +81837,15 @@ focus outline in that case.
81699
81837
  }
81700
81838
  const tableColumnDateTextGroupHeaderView = TableColumnDateTextGroupHeaderView.compose({
81701
81839
  baseName: 'table-column-date-text-group-header-view',
81702
- template: template$K,
81703
- styles: styles$J
81840
+ template: template$L,
81841
+ styles: styles$K
81704
81842
  });
81705
81843
  DesignSystem.getOrCreate()
81706
81844
  .withPrefix('nimble')
81707
81845
  .register(tableColumnDateTextGroupHeaderView());
81708
81846
  const tableColumnDateTextGroupHeaderViewTag = 'nimble-table-column-date-text-group-header-view';
81709
81847
 
81710
- const template$J = html `
81848
+ const template$K = html `
81711
81849
  <template
81712
81850
  class="
81713
81851
  ${x => (x.alignment === TableColumnAlignment.right ? 'right-align' : '')}
@@ -81723,7 +81861,7 @@ focus outline in that case.
81723
81861
  </template>
81724
81862
  `;
81725
81863
 
81726
- const styles$I = css `
81864
+ const styles$J = css `
81727
81865
  ${display$2('flex')}
81728
81866
 
81729
81867
  :host {
@@ -81825,8 +81963,8 @@ focus outline in that case.
81825
81963
  }
81826
81964
  const dateTextCellView = TableColumnDateTextCellView.compose({
81827
81965
  baseName: 'table-column-date-text-cell-view',
81828
- template: template$J,
81829
- styles: styles$I
81966
+ template: template$K,
81967
+ styles: styles$J
81830
81968
  });
81831
81969
  DesignSystem.getOrCreate().withPrefix('nimble').register(dateTextCellView());
81832
81970
  const tableColumnDateTextCellViewTag = 'nimble-table-column-date-text-cell-view';
@@ -82084,8 +82222,8 @@ focus outline in that case.
82084
82222
  ], TableColumnDateText.prototype, "customHourCycle", void 0);
82085
82223
  const nimbleTableColumnDateText = TableColumnDateText.compose({
82086
82224
  baseName: 'table-column-date-text',
82087
- template: template$M,
82088
- styles: styles$L
82225
+ template: template$N,
82226
+ styles: styles$M
82089
82227
  });
82090
82228
  DesignSystem.getOrCreate()
82091
82229
  .withPrefix('nimble')
@@ -82101,8 +82239,8 @@ focus outline in that case.
82101
82239
  }
82102
82240
  const durationTextCellView = TableColumnDurationTextCellView.compose({
82103
82241
  baseName: 'table-column-duration-text-cell-view',
82104
- template: template$J,
82105
- styles: styles$I
82242
+ template: template$K,
82243
+ styles: styles$J
82106
82244
  });
82107
82245
  DesignSystem.getOrCreate()
82108
82246
  .withPrefix('nimble')
@@ -82203,8 +82341,8 @@ focus outline in that case.
82203
82341
  }
82204
82342
  const tableColumnDurationTextGroupHeaderView = TableColumnDurationTextGroupHeaderView.compose({
82205
82343
  baseName: 'table-column-duration-text-group-header-view',
82206
- template: template$K,
82207
- styles: styles$J
82344
+ template: template$L,
82345
+ styles: styles$K
82208
82346
  });
82209
82347
  DesignSystem.getOrCreate()
82210
82348
  .withPrefix('nimble')
@@ -82256,8 +82394,8 @@ focus outline in that case.
82256
82394
  }
82257
82395
  const nimbleTableColumnDurationText = TableColumnDurationText.compose({
82258
82396
  baseName: 'table-column-duration-text',
82259
- template: template$M,
82260
- styles: styles$L
82397
+ template: template$N,
82398
+ styles: styles$M
82261
82399
  });
82262
82400
  DesignSystem.getOrCreate()
82263
82401
  .withPrefix('nimble')
@@ -82365,15 +82503,15 @@ focus outline in that case.
82365
82503
  attr({ attribute: 'key-type' })
82366
82504
  ], TableColumnEnumBase.prototype, "keyType", void 0);
82367
82505
 
82368
- const styles$H = css `
82369
- ${styles$L}
82506
+ const styles$I = css `
82507
+ ${styles$M}
82370
82508
 
82371
82509
  slot[name='mapping'] {
82372
82510
  display: none;
82373
82511
  }
82374
82512
  `;
82375
82513
 
82376
- const template$I = html `${template$M}<slot ${slotted('mappings')} name="mapping"></slot>`;
82514
+ const template$J = html `${template$N}<slot ${slotted('mappings')} name="mapping"></slot>`;
82377
82515
 
82378
82516
  // As the returned class is internal to the function, we can't write a signature that uses is directly, so rely on inference
82379
82517
  // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type
@@ -82476,7 +82614,7 @@ focus outline in that case.
82476
82614
  }
82477
82615
  }
82478
82616
 
82479
- const styles$G = css `
82617
+ const styles$H = css `
82480
82618
  ${display$2('inline-flex')}
82481
82619
 
82482
82620
  :host {
@@ -82500,7 +82638,7 @@ focus outline in that case.
82500
82638
  }
82501
82639
  `;
82502
82640
 
82503
- const template$H = html `
82641
+ const template$I = html `
82504
82642
  ${when(x => x.visualizationTemplate, html `
82505
82643
  <span class="reserve-icon-size">
82506
82644
  ${x => x.visualizationTemplate}
@@ -82644,15 +82782,15 @@ focus outline in that case.
82644
82782
  ], TableColumnMappingGroupHeaderView.prototype, "visualizationTemplate", void 0);
82645
82783
  const mappingGroupHeaderView = TableColumnMappingGroupHeaderView.compose({
82646
82784
  baseName: 'table-column-mapping-group-header-view',
82647
- template: template$H,
82648
- styles: styles$G
82785
+ template: template$I,
82786
+ styles: styles$H
82649
82787
  });
82650
82788
  DesignSystem.getOrCreate()
82651
82789
  .withPrefix('nimble')
82652
82790
  .register(mappingGroupHeaderView());
82653
82791
  const tableColumnMappingGroupHeaderViewTag = 'nimble-table-column-mapping-group-header-view';
82654
82792
 
82655
- const styles$F = css `
82793
+ const styles$G = css `
82656
82794
  ${display$2('inline-flex')}
82657
82795
 
82658
82796
  :host {
@@ -82676,7 +82814,7 @@ focus outline in that case.
82676
82814
  }
82677
82815
  `;
82678
82816
 
82679
- const template$G = html `
82817
+ const template$H = html `
82680
82818
  ${when(x => x.visualizationTemplate, html `
82681
82819
  <span class="reserve-icon-size">
82682
82820
  ${x => x.visualizationTemplate}
@@ -82763,8 +82901,8 @@ focus outline in that case.
82763
82901
  ], TableColumnMappingCellView.prototype, "hasOverflow", void 0);
82764
82902
  const mappingCellView = TableColumnMappingCellView.compose({
82765
82903
  baseName: 'table-column-mapping-cell-view',
82766
- template: template$G,
82767
- styles: styles$F
82904
+ template: template$H,
82905
+ styles: styles$G
82768
82906
  });
82769
82907
  DesignSystem.getOrCreate().withPrefix('nimble').register(mappingCellView());
82770
82908
  const tableColumnMappingCellViewTag = 'nimble-table-column-mapping-cell-view';
@@ -82847,23 +82985,23 @@ focus outline in that case.
82847
82985
  ], TableColumnMapping.prototype, "widthMode", void 0);
82848
82986
  const nimbleTableColumnMapping = TableColumnMapping.compose({
82849
82987
  baseName: 'table-column-mapping',
82850
- template: template$I,
82851
- styles: styles$H
82988
+ template: template$J,
82989
+ styles: styles$I
82852
82990
  });
82853
82991
  DesignSystem.getOrCreate()
82854
82992
  .withPrefix('nimble')
82855
82993
  .register(nimbleTableColumnMapping());
82856
82994
 
82857
- const template$F = html `
82995
+ const template$G = html `
82858
82996
  <template @delegated-event="${(x, c) => x.onDelegatedEvent(c.event)}"
82859
- >${template$M}</template
82997
+ >${template$N}</template
82860
82998
  >
82861
82999
  `;
82862
83000
 
82863
83001
  /** @internal */
82864
83002
  const cellViewMenuSlotName = 'menu-button-menu';
82865
83003
 
82866
- const template$E = html `
83004
+ const template$F = html `
82867
83005
  ${when(x => x.showMenuButton, html `
82868
83006
  <${menuButtonTag}
82869
83007
  ${ref('menuButton')}
@@ -82882,7 +83020,7 @@ focus outline in that case.
82882
83020
  `)}
82883
83021
  `;
82884
83022
 
82885
- const styles$E = css `
83023
+ const styles$F = css `
82886
83024
  :host {
82887
83025
  align-self: center;
82888
83026
  width: 100%;
@@ -82957,8 +83095,8 @@ focus outline in that case.
82957
83095
  ], TableColumnMenuButtonCellView.prototype, "showMenuButton", null);
82958
83096
  const menuButtonCellView = TableColumnMenuButtonCellView.compose({
82959
83097
  baseName: 'table-column-menu-button-cell-view',
82960
- template: template$E,
82961
- styles: styles$E
83098
+ template: template$F,
83099
+ styles: styles$F
82962
83100
  });
82963
83101
  DesignSystem.getOrCreate().withPrefix('nimble').register(menuButtonCellView());
82964
83102
  const tableColumnMenuButtonCellViewTag = 'nimble-table-column-menu-button-cell-view';
@@ -83013,8 +83151,8 @@ focus outline in that case.
83013
83151
  ], TableColumnMenuButton.prototype, "menuSlot", void 0);
83014
83152
  const nimbleTableColumnMenuButton = TableColumnMenuButton.compose({
83015
83153
  baseName: 'table-column-menu-button',
83016
- template: template$F,
83017
- styles: styles$L
83154
+ template: template$G,
83155
+ styles: styles$M
83018
83156
  });
83019
83157
  DesignSystem.getOrCreate()
83020
83158
  .withPrefix('nimble')
@@ -83022,7 +83160,7 @@ focus outline in that case.
83022
83160
 
83023
83161
  // Avoiding a wrapping <template> and be careful about starting and ending whitespace
83024
83162
  // so the template can be composed into other column header templates
83025
- const template$D = html `<span
83163
+ const template$E = html `<span
83026
83164
  ${overflow('hasOverflow')}
83027
83165
  class="header-content"
83028
83166
  title=${x => (x.hasOverflow && x.headerTextContent ? x.headerTextContent : null)}
@@ -83041,8 +83179,8 @@ focus outline in that case.
83041
83179
  }
83042
83180
  const tableColumnNumberTextGroupHeaderView = TableColumnNumberTextGroupHeaderView.compose({
83043
83181
  baseName: 'table-column-number-text-group-header-view',
83044
- template: template$K,
83045
- styles: styles$J
83182
+ template: template$L,
83183
+ styles: styles$K
83046
83184
  });
83047
83185
  DesignSystem.getOrCreate()
83048
83186
  .withPrefix('nimble')
@@ -83063,8 +83201,8 @@ focus outline in that case.
83063
83201
  }
83064
83202
  const numberTextCellView = TableColumnNumberTextCellView.compose({
83065
83203
  baseName: 'table-column-number-text-cell-view',
83066
- template: template$J,
83067
- styles: styles$I
83204
+ template: template$K,
83205
+ styles: styles$J
83068
83206
  });
83069
83207
  DesignSystem.getOrCreate().withPrefix('nimble').register(numberTextCellView());
83070
83208
  const tableColumnNumberTextCellViewTag = 'nimble-table-column-number-text-cell-view';
@@ -83604,8 +83742,8 @@ focus outline in that case.
83604
83742
  ], TableColumnNumberText.prototype, "unit", void 0);
83605
83743
  const nimbleTableColumnNumberText = TableColumnNumberText.compose({
83606
83744
  baseName: 'table-column-number-text',
83607
- template: template$D,
83608
- styles: styles$L
83745
+ template: template$E,
83746
+ styles: styles$M
83609
83747
  });
83610
83748
  DesignSystem.getOrCreate()
83611
83749
  .withPrefix('nimble')
@@ -83623,8 +83761,8 @@ focus outline in that case.
83623
83761
  }
83624
83762
  const textCellView = TableColumnTextCellView.compose({
83625
83763
  baseName: 'table-column-text-cell-view',
83626
- template: template$J,
83627
- styles: styles$I
83764
+ template: template$K,
83765
+ styles: styles$J
83628
83766
  });
83629
83767
  DesignSystem.getOrCreate().withPrefix('nimble').register(textCellView());
83630
83768
  const tableColumnTextCellViewTag = 'nimble-table-column-text-cell-view';
@@ -83678,15 +83816,15 @@ focus outline in that case.
83678
83816
  }
83679
83817
  const nimbleTableColumnText = TableColumnText.compose({
83680
83818
  baseName: 'table-column-text',
83681
- template: template$M,
83682
- styles: styles$L
83819
+ template: template$N,
83820
+ styles: styles$M
83683
83821
  });
83684
83822
  DesignSystem.getOrCreate()
83685
83823
  .withPrefix('nimble')
83686
83824
  .register(nimbleTableColumnText());
83687
83825
 
83688
- const styles$D = css `
83689
- ${styles$1s}
83826
+ const styles$E = css `
83827
+ ${styles$1t}
83690
83828
 
83691
83829
  .tabpanel {
83692
83830
  overflow: auto;
@@ -83767,12 +83905,12 @@ focus outline in that case.
83767
83905
  const nimbleTabs = Tabs.compose({
83768
83906
  baseName: 'tabs',
83769
83907
  baseClass: Tabs$1,
83770
- template: template$1e,
83771
- styles: styles$D
83908
+ template: template$1f,
83909
+ styles: styles$E
83772
83910
  });
83773
83911
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabs());
83774
83912
 
83775
- const styles$C = css `
83913
+ const styles$D = css `
83776
83914
  ${display$2('flex')}
83777
83915
 
83778
83916
  :host {
@@ -83804,7 +83942,7 @@ focus outline in that case.
83804
83942
  }
83805
83943
  `;
83806
83944
 
83807
- const template$C = (context, definition) => html `
83945
+ const template$D = (context, definition) => html `
83808
83946
  <template slot="end">
83809
83947
  ${when(x => x.defaultSlottedElements.length > 0, html `
83810
83948
  <div class="separator"></div>
@@ -83836,8 +83974,8 @@ focus outline in that case.
83836
83974
  ], TabsToolbar.prototype, "defaultSlottedElements", void 0);
83837
83975
  const nimbleTabsToolbar = TabsToolbar.compose({
83838
83976
  baseName: 'tabs-toolbar',
83839
- template: template$C,
83840
- styles: styles$C
83977
+ template: template$D,
83978
+ styles: styles$D
83841
83979
  });
83842
83980
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTabsToolbar());
83843
83981
  applyMixins(TabsToolbar, StartEnd);
@@ -83847,10 +83985,10 @@ focus outline in that case.
83847
83985
  block: 'block'
83848
83986
  };
83849
83987
 
83850
- const styles$B = css `
83988
+ const styles$C = css `
83851
83989
  ${display$2('inline-flex')}
83852
- ${styles$1j}
83853
- ${styles$1e}
83990
+ ${styles$1k}
83991
+ ${styles$1f}
83854
83992
 
83855
83993
  :host {
83856
83994
  font: ${bodyFont};
@@ -84045,7 +84183,7 @@ focus outline in that case.
84045
84183
  <slot ${slotted('defaultSlottedNodes')}></slot>
84046
84184
  </label>
84047
84185
  `);
84048
- const template$B = () => html `
84186
+ const template$C = () => html `
84049
84187
  ${labelTemplate$1}
84050
84188
  <div class="container">
84051
84189
  <textarea
@@ -84193,8 +84331,8 @@ focus outline in that case.
84193
84331
  const nimbleTextArea = TextArea.compose({
84194
84332
  baseName: 'text-area',
84195
84333
  baseClass: TextArea$1,
84196
- template: template$B,
84197
- styles: styles$B,
84334
+ template: template$C,
84335
+ styles: styles$C,
84198
84336
  shadowOptions: {
84199
84337
  delegatesFocus: true
84200
84338
  }
@@ -84211,10 +84349,10 @@ focus outline in that case.
84211
84349
  frameless: 'frameless'
84212
84350
  };
84213
84351
 
84214
- const styles$A = css `
84352
+ const styles$B = css `
84215
84353
  ${display$2('inline-block')}
84216
- ${styles$1j}
84217
- ${styles$1e}
84354
+ ${styles$1k}
84355
+ ${styles$1f}
84218
84356
 
84219
84357
  :host {
84220
84358
  font: ${bodyFont};
@@ -84491,7 +84629,7 @@ focus outline in that case.
84491
84629
  * The template for the {@link @ni/fast-foundation#(TextField:class)} component.
84492
84630
  * @public
84493
84631
  */
84494
- const template$A = (context, definition) => html `
84632
+ const template$B = (context, definition) => html `
84495
84633
  <template
84496
84634
  class="
84497
84635
  ${x => (x.readOnly ? 'readonly' : '')}
@@ -84580,8 +84718,8 @@ focus outline in that case.
84580
84718
  const nimbleTextField = TextField.compose({
84581
84719
  baseName: 'text-field',
84582
84720
  baseClass: TextField$1,
84583
- template: template$A,
84584
- styles: styles$A,
84721
+ template: template$B,
84722
+ styles: styles$B,
84585
84723
  shadowOptions: {
84586
84724
  delegatesFocus: true
84587
84725
  },
@@ -84598,7 +84736,7 @@ focus outline in that case.
84598
84736
  });
84599
84737
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTextField());
84600
84738
 
84601
- const styles$z = css `
84739
+ const styles$A = css `
84602
84740
  ${display$2('inline-flex')}
84603
84741
 
84604
84742
  :host {
@@ -84684,7 +84822,7 @@ focus outline in that case.
84684
84822
  }
84685
84823
  `));
84686
84824
 
84687
- const template$z = html `
84825
+ const template$A = html `
84688
84826
  ${when(x => x.tooltipVisible, html `
84689
84827
  <${anchoredRegionTag}
84690
84828
  class="anchored-region"
@@ -84736,8 +84874,8 @@ focus outline in that case.
84736
84874
  const nimbleTooltip = Tooltip.compose({
84737
84875
  baseName: 'tooltip',
84738
84876
  baseClass: Tooltip$1,
84739
- template: template$z,
84740
- styles: styles$z
84877
+ template: template$A,
84878
+ styles: styles$A
84741
84879
  });
84742
84880
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTooltip());
84743
84881
  const tooltipTag = 'nimble-tooltip';
@@ -84826,7 +84964,7 @@ focus outline in that case.
84826
84964
  }
84827
84965
  }
84828
84966
 
84829
- const styles$y = css `
84967
+ const styles$z = css `
84830
84968
  ${display$2('block')}
84831
84969
 
84832
84970
  :host {
@@ -85043,12 +85181,12 @@ focus outline in that case.
85043
85181
  baseName: 'tree-item',
85044
85182
  baseClass: TreeItem$1,
85045
85183
  template: treeItemTemplate,
85046
- styles: styles$y,
85184
+ styles: styles$z,
85047
85185
  expandCollapseGlyph: arrowExpanderUp16X16.data
85048
85186
  });
85049
85187
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeItem());
85050
85188
 
85051
- const styles$x = css `
85189
+ const styles$y = css `
85052
85190
  ${display$2('flex')}
85053
85191
 
85054
85192
  :host {
@@ -85062,7 +85200,7 @@ focus outline in that case.
85062
85200
  }
85063
85201
  `;
85064
85202
 
85065
- const template$y = html `
85203
+ const template$z = html `
85066
85204
  <template
85067
85205
  role="tree"
85068
85206
  ${ref('treeView')}
@@ -85158,8 +85296,8 @@ focus outline in that case.
85158
85296
  const nimbleTreeView = TreeView.compose({
85159
85297
  baseName: 'tree-view',
85160
85298
  baseClass: TreeView$1,
85161
- template: template$y,
85162
- styles: styles$x
85299
+ template: template$z,
85300
+ styles: styles$y
85163
85301
  });
85164
85302
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleTreeView());
85165
85303
 
@@ -85275,9 +85413,9 @@ focus outline in that case.
85275
85413
  }
85276
85414
  const unitScaleByte = new UnitScaleByte();
85277
85415
 
85278
- const template$x = html `<template slot="unit"></template>`;
85416
+ const template$y = html `<template slot="unit"></template>`;
85279
85417
 
85280
- const styles$w = css `
85418
+ const styles$x = css `
85281
85419
  ${display$2('none')}
85282
85420
  `;
85283
85421
 
@@ -85305,8 +85443,8 @@ focus outline in that case.
85305
85443
  ], UnitByte.prototype, "binary", void 0);
85306
85444
  const nimbleUnitByte = UnitByte.compose({
85307
85445
  baseName: 'unit-byte',
85308
- template: template$x,
85309
- styles: styles$w
85446
+ template: template$y,
85447
+ styles: styles$x
85310
85448
  });
85311
85449
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleUnitByte());
85312
85450
 
@@ -85358,8 +85496,8 @@ focus outline in that case.
85358
85496
  }
85359
85497
  const nimbleUnitVolt = UnitVolt.compose({
85360
85498
  baseName: 'unit-volt',
85361
- template: template$x,
85362
- styles: styles$w
85499
+ template: template$y,
85500
+ styles: styles$x
85363
85501
  });
85364
85502
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleUnitVolt());
85365
85503
 
@@ -100403,7 +100541,7 @@ focus outline in that case.
100403
100541
  return new Table(reader.readAll());
100404
100542
  }
100405
100543
 
100406
- const template$w = html `
100544
+ const template$x = html `
100407
100545
  <div class="wafer-map-container">
100408
100546
  <svg class="svg-root">
100409
100547
  <g ${ref('zoomContainer')} transform=${x => x.transform.toString()}>
@@ -100436,7 +100574,7 @@ focus outline in that case.
100436
100574
  </div>
100437
100575
  `;
100438
100576
 
100439
- const styles$v = css `
100577
+ const styles$w = css `
100440
100578
  ${display$2('inline-block')}
100441
100579
 
100442
100580
  :host {
@@ -103461,8 +103599,8 @@ focus outline in that case.
103461
103599
  ], WaferMap.prototype, "colorScale", void 0);
103462
103600
  const nimbleWaferMap = WaferMap.compose({
103463
103601
  baseName: 'wafer-map',
103464
- template: template$w,
103465
- styles: styles$v
103602
+ template: template$x,
103603
+ styles: styles$w
103466
103604
  });
103467
103605
  DesignSystem.getOrCreate().withPrefix('nimble').register(nimbleWaferMap());
103468
103606
 
@@ -103474,7 +103612,7 @@ focus outline in that case.
103474
103612
  */
103475
103613
  const display$1 = (displayValue) => `${display$3(displayValue)}:host{box-sizing:border-box;}*{box-sizing:border-box;}:host::before,:host::after,::before,::after{box-sizing:border-box;}`;
103476
103614
 
103477
- const styles$u = css `
103615
+ const styles$v = css `
103478
103616
  ${display$1('flex')}
103479
103617
 
103480
103618
  :host {
@@ -103564,7 +103702,7 @@ focus outline in that case.
103564
103702
  }
103565
103703
  `;
103566
103704
 
103567
- const template$v = html `
103705
+ const template$w = html `
103568
103706
  <div class="toolbar ${x => (x.toolbarEmpty ? 'toolbar-empty' : '')}">
103569
103707
  <slot name="toolbar" ${slotted({ property: 'slottedToolbarElements' })}></slot>
103570
103708
  </div>
@@ -103955,16 +104093,16 @@ focus outline in that case.
103955
104093
  ], ChatConversation.prototype, "slottedEndElements", void 0);
103956
104094
  const sprightChatConversation = ChatConversation.compose({
103957
104095
  baseName: 'chat-conversation',
103958
- template: template$v,
103959
- styles: styles$u
104096
+ template: template$w,
104097
+ styles: styles$v
103960
104098
  });
103961
104099
  DesignSystem.getOrCreate()
103962
104100
  .withPrefix('spright')
103963
104101
  .register(sprightChatConversation());
103964
104102
 
103965
- const styles$t = css `
104103
+ const styles$u = css `
103966
104104
  ${display$1('flex')}
103967
- ${styles$1j}
104105
+ ${styles$1k}
103968
104106
 
103969
104107
  :host {
103970
104108
  width: 100%;
@@ -104108,7 +104246,7 @@ focus outline in that case.
104108
104246
  }
104109
104247
  `;
104110
104248
 
104111
- const template$u = html `
104249
+ const template$v = html `
104112
104250
  <div class="container">
104113
104251
  <section class="attachments ${x => (x.attachmentsIsEmpty ? '' : 'has-content')}">
104114
104252
  <slot
@@ -104360,8 +104498,8 @@ focus outline in that case.
104360
104498
  ], ChatInput.prototype, "slottedAttachmentsElements", void 0);
104361
104499
  const sprightChatInput = ChatInput.compose({
104362
104500
  baseName: 'chat-input',
104363
- template: template$u,
104364
- styles: styles$t,
104501
+ template: template$v,
104502
+ styles: styles$u,
104365
104503
  shadowOptions: {
104366
104504
  delegatesFocus: true
104367
104505
  }
@@ -104379,7 +104517,7 @@ focus outline in that case.
104379
104517
  inbound: 'inbound'
104380
104518
  };
104381
104519
 
104382
- const styles$s = css `
104520
+ const styles$t = css `
104383
104521
  ${display$1('flex')}
104384
104522
 
104385
104523
  :host {
@@ -104453,7 +104591,7 @@ focus outline in that case.
104453
104591
  }
104454
104592
  `;
104455
104593
 
104456
- const template$t = (context, definition) => html `
104594
+ const template$u = (context, definition) => html `
104457
104595
  <div class="container">
104458
104596
  ${startSlotTemplate(context, definition)}
104459
104597
  <section class="message-content">
@@ -104502,12 +104640,12 @@ focus outline in that case.
104502
104640
  applyMixins(ChatMessage, StartEnd);
104503
104641
  const sprightChatMessage = ChatMessage.compose({
104504
104642
  baseName: 'chat-message',
104505
- template: template$t,
104506
- styles: styles$s
104643
+ template: template$u,
104644
+ styles: styles$t
104507
104645
  });
104508
104646
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatMessage());
104509
104647
 
104510
- const styles$r = css `
104648
+ const styles$s = css `
104511
104649
  ${display$1('flex')}
104512
104650
 
104513
104651
  :host {
@@ -104565,7 +104703,7 @@ focus outline in that case.
104565
104703
  }
104566
104704
  `;
104567
104705
 
104568
- const template$s = (context, definition) => html `
104706
+ const template$t = (context, definition) => html `
104569
104707
  <div class="container">
104570
104708
  ${startSlotTemplate(context, definition)}
104571
104709
  <section class="message-content">
@@ -104605,12 +104743,12 @@ focus outline in that case.
104605
104743
  applyMixins(ChatMessageInbound, StartEnd);
104606
104744
  const sprightChatMessageInbound = ChatMessageInbound.compose({
104607
104745
  baseName: 'chat-message-inbound',
104608
- template: template$s,
104609
- styles: styles$r
104746
+ template: template$t,
104747
+ styles: styles$s
104610
104748
  });
104611
104749
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatMessageInbound());
104612
104750
 
104613
- const styles$q = css `
104751
+ const styles$r = css `
104614
104752
  ${display$1('flex')}
104615
104753
 
104616
104754
  :host {
@@ -104644,7 +104782,7 @@ focus outline in that case.
104644
104782
  }
104645
104783
  `;
104646
104784
 
104647
- const template$r = () => html `
104785
+ const template$s = () => html `
104648
104786
  <div class="container">
104649
104787
  <section class="message-content">
104650
104788
  <slot></slot>
@@ -104666,12 +104804,12 @@ focus outline in that case.
104666
104804
  }
104667
104805
  const sprightChatMessageOutbound = ChatMessageOutbound.compose({
104668
104806
  baseName: 'chat-message-outbound',
104669
- template: template$r,
104670
- styles: styles$q
104807
+ template: template$s,
104808
+ styles: styles$r
104671
104809
  });
104672
104810
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatMessageOutbound());
104673
104811
 
104674
- const styles$p = css `
104812
+ const styles$q = css `
104675
104813
  ${display$1('flex')}
104676
104814
 
104677
104815
  :host {
@@ -104698,7 +104836,7 @@ focus outline in that case.
104698
104836
  }
104699
104837
  `;
104700
104838
 
104701
- const template$q = () => html `
104839
+ const template$r = () => html `
104702
104840
  <div class="container">
104703
104841
  <section class="message-content">
104704
104842
  <slot></slot>
@@ -104718,12 +104856,12 @@ focus outline in that case.
104718
104856
  }
104719
104857
  const sprightChatMessageSystem = ChatMessageSystem.compose({
104720
104858
  baseName: 'chat-message-system',
104721
- template: template$q,
104722
- styles: styles$p
104859
+ template: template$r,
104860
+ styles: styles$q
104723
104861
  });
104724
104862
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatMessageSystem());
104725
104863
 
104726
- const styles$o = css `
104864
+ const styles$p = css `
104727
104865
  ${display$1('flex')}
104728
104866
 
104729
104867
  :host {
@@ -104827,13 +104965,13 @@ focus outline in that case.
104827
104965
  <path class="nigel-chat-dark-0" d="M11.36,7.6l-.03.02c-1.12.61-2.04,1.53-2.65,2.65l-.02.03c-.1.18-.35.18-.45,0l-.02-.03c-.61-1.12-1.53-2.04-2.65-2.65l-.03-.02c-.18-.1-.18-.35,0-.45l.03-.02c1.12-.61,2.04-1.53,2.65-2.65l.02-.03c.1-.18.35-.18.45,0l.02.03c.61,1.12,1.53,2.04,2.65,2.65l.03.02c.18.1.18.35,0,.45Z"/>
104828
104966
  </svg>`;
104829
104967
 
104830
- const template$p = html `
104968
+ const template$q = html `
104831
104969
  <div class="icon light-icon" aria-hidden="true" :innerHTML="${() => nigelChatLightData}"></div>
104832
104970
  <div class="icon dark-icon" aria-hidden="true" :innerHTML="${() => nigelChatDarkData}"></div>
104833
104971
  `;
104834
104972
 
104835
- const styles$n = css `
104836
- ${styles$1u}
104973
+ const styles$o = css `
104974
+ ${styles$1v}
104837
104975
 
104838
104976
  .dark-icon {
104839
104977
  display: none;
@@ -104856,15 +104994,15 @@ focus outline in that case.
104856
104994
  }
104857
104995
  const sprightIconNigelChat = IconNigelChat.compose({
104858
104996
  baseName: 'icon-nigel-chat',
104859
- template: template$p,
104860
- styles: styles$n
104997
+ template: template$q,
104998
+ styles: styles$o
104861
104999
  });
104862
105000
  DesignSystem.getOrCreate()
104863
105001
  .withPrefix('spright')
104864
105002
  .register(sprightIconNigelChat());
104865
105003
  const iconNigelChatTag = 'spright-icon-nigel-chat';
104866
105004
 
104867
- const template$o = () => html `
105005
+ const template$p = () => html `
104868
105006
  <div class="container">
104869
105007
  <div class="brand-icon">
104870
105008
  <slot name="brand-icon">
@@ -104896,8 +105034,8 @@ focus outline in that case.
104896
105034
  ], ChatMessageWelcome.prototype, "subtitle", void 0);
104897
105035
  const sprightChatMessageWelcome = ChatMessageWelcome.compose({
104898
105036
  baseName: 'chat-message-welcome',
104899
- template: template$o,
104900
- styles: styles$o
105037
+ template: template$p,
105038
+ styles: styles$p
104901
105039
  });
104902
105040
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightChatMessageWelcome());
104903
105041
 
@@ -104918,13 +105056,13 @@ focus outline in that case.
104918
105056
  */
104919
105057
  class IconBreakpointConditional extends Icon {
104920
105058
  }
104921
- const template$n = html `
105059
+ const template$o = html `
104922
105060
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData$6}"></div>
104923
105061
  `;
104924
105062
  const sprightIconBreakpointConditional = IconBreakpointConditional.compose({
104925
105063
  baseName: 'icon-breakpoint-conditional',
104926
- template: template$n,
104927
- styles: styles$1u
105064
+ template: template$o,
105065
+ styles: styles$1v
104928
105066
  });
104929
105067
  DesignSystem.getOrCreate()
104930
105068
  .withPrefix('spright')
@@ -104949,13 +105087,13 @@ focus outline in that case.
104949
105087
  */
104950
105088
  class IconBreakpointDisabled extends Icon {
104951
105089
  }
104952
- const template$m = html `
105090
+ const template$n = html `
104953
105091
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData$5}"></div>
104954
105092
  `;
104955
105093
  const sprightIconBreakpointDisabled = IconBreakpointDisabled.compose({
104956
105094
  baseName: 'icon-breakpoint-disabled',
104957
- template: template$m,
104958
- styles: styles$1u
105095
+ template: template$n,
105096
+ styles: styles$1v
104959
105097
  });
104960
105098
  DesignSystem.getOrCreate()
104961
105099
  .withPrefix('spright')
@@ -104979,13 +105117,13 @@ focus outline in that case.
104979
105117
  */
104980
105118
  class IconBreakpointEnabled extends Icon {
104981
105119
  }
104982
- const template$l = html `
105120
+ const template$m = html `
104983
105121
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData$4}"></div>
104984
105122
  `;
104985
105123
  const sprightIconBreakpointEnabled = IconBreakpointEnabled.compose({
104986
105124
  baseName: 'icon-breakpoint-enabled',
104987
- template: template$l,
104988
- styles: styles$1u
105125
+ template: template$m,
105126
+ styles: styles$1v
104989
105127
  });
104990
105128
  DesignSystem.getOrCreate()
104991
105129
  .withPrefix('spright')
@@ -105009,13 +105147,13 @@ focus outline in that case.
105009
105147
  */
105010
105148
  class IconBreakpointExecutionPointer extends Icon {
105011
105149
  }
105012
- const template$k = html `
105150
+ const template$l = html `
105013
105151
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData$3}"></div>
105014
105152
  `;
105015
105153
  const sprightIconBreakpointExecutionPointer = IconBreakpointExecutionPointer.compose({
105016
105154
  baseName: 'icon-breakpoint-execution-pointer',
105017
- template: template$k,
105018
- styles: styles$1u
105155
+ template: template$l,
105156
+ styles: styles$1v
105019
105157
  });
105020
105158
  DesignSystem.getOrCreate()
105021
105159
  .withPrefix('spright')
@@ -105043,13 +105181,13 @@ focus outline in that case.
105043
105181
  */
105044
105182
  class IconBreakpointHitDisabled extends Icon {
105045
105183
  }
105046
- const template$j = html `
105184
+ const template$k = html `
105047
105185
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData$2}"></div>
105048
105186
  `;
105049
105187
  const sprightIconBreakpointHitDisabled = IconBreakpointHitDisabled.compose({
105050
105188
  baseName: 'icon-breakpoint-hit-disabled',
105051
- template: template$j,
105052
- styles: styles$1u
105189
+ template: template$k,
105190
+ styles: styles$1v
105053
105191
  });
105054
105192
  DesignSystem.getOrCreate()
105055
105193
  .withPrefix('spright')
@@ -105078,13 +105216,13 @@ focus outline in that case.
105078
105216
  */
105079
105217
  class IconBreakpointHit extends Icon {
105080
105218
  }
105081
- const template$i = html `
105219
+ const template$j = html `
105082
105220
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData$1}"></div>
105083
105221
  `;
105084
105222
  const sprightIconBreakpointHit = IconBreakpointHit.compose({
105085
105223
  baseName: 'icon-breakpoint-hit',
105086
- template: template$i,
105087
- styles: styles$1u
105224
+ template: template$j,
105225
+ styles: styles$1v
105088
105226
  });
105089
105227
  DesignSystem.getOrCreate()
105090
105228
  .withPrefix('spright')
@@ -105109,21 +105247,21 @@ focus outline in that case.
105109
105247
  */
105110
105248
  class IconBreakpointHover extends Icon {
105111
105249
  }
105112
- const template$h = html `
105250
+ const template$i = html `
105113
105251
  <div class="icon" aria-hidden="true" :innerHTML="${() => iconData}"></div>
105114
105252
  `;
105115
105253
  const sprightIconBreakpointHover = IconBreakpointHover.compose({
105116
105254
  baseName: 'icon-breakpoint-hover',
105117
- template: template$h,
105118
- styles: styles$1u
105255
+ template: template$i,
105256
+ styles: styles$1v
105119
105257
  });
105120
105258
  DesignSystem.getOrCreate()
105121
105259
  .withPrefix('spright')
105122
105260
  .register(sprightIconBreakpointHover());
105123
105261
  const iconBreakpointHoverTag = 'spright-icon-breakpoint-hover';
105124
105262
 
105125
- const styles$m = css `
105126
- ${styles$1u}
105263
+ const styles$n = css `
105264
+ ${styles$1v}
105127
105265
 
105128
105266
  .icon svg {
105129
105267
  fill: ${calendarEventBorderReservationColor};
@@ -105140,15 +105278,15 @@ focus outline in that case.
105140
105278
  }
105141
105279
  const sprightIconWorkItemCalendarWeek = IconWorkItemCalendarWeek.compose({
105142
105280
  baseName: 'icon-work-item-calendar-week',
105143
- template: template$1i,
105144
- styles: styles$m
105281
+ template: template$1j,
105282
+ styles: styles$n
105145
105283
  });
105146
105284
  DesignSystem.getOrCreate()
105147
105285
  .withPrefix('spright')
105148
105286
  .register(sprightIconWorkItemCalendarWeek());
105149
105287
 
105150
- const styles$l = css `
105151
- ${styles$1u}
105288
+ const styles$m = css `
105289
+ ${styles$1v}
105152
105290
 
105153
105291
  .icon svg {
105154
105292
  fill: ${calendarEventBorderCalibrationColor};
@@ -105165,15 +105303,15 @@ focus outline in that case.
105165
105303
  }
105166
105304
  const sprightIconWorkItemCalipers = IconWorkItemCalipers.compose({
105167
105305
  baseName: 'icon-work-item-calipers',
105168
- template: template$1i,
105169
- styles: styles$l
105306
+ template: template$1j,
105307
+ styles: styles$m
105170
105308
  });
105171
105309
  DesignSystem.getOrCreate()
105172
105310
  .withPrefix('spright')
105173
105311
  .register(sprightIconWorkItemCalipers());
105174
105312
 
105175
- const styles$k = css `
105176
- ${styles$1u}
105313
+ const styles$l = css `
105314
+ ${styles$1v}
105177
105315
 
105178
105316
  .icon svg {
105179
105317
  fill: ${calendarEventBorderTransportOrderColor};
@@ -105190,15 +105328,15 @@ focus outline in that case.
105190
105328
  }
105191
105329
  const sprightIconWorkItemForklift = IconWorkItemForklift.compose({
105192
105330
  baseName: 'icon-work-item-forklift',
105193
- template: template$1i,
105194
- styles: styles$k
105331
+ template: template$1j,
105332
+ styles: styles$l
105195
105333
  });
105196
105334
  DesignSystem.getOrCreate()
105197
105335
  .withPrefix('spright')
105198
105336
  .register(sprightIconWorkItemForklift());
105199
105337
 
105200
- const styles$j = css `
105201
- ${styles$1u}
105338
+ const styles$k = css `
105339
+ ${styles$1v}
105202
105340
 
105203
105341
  .icon svg {
105204
105342
  fill: ${calendarEventBorderStaticColor};
@@ -105215,15 +105353,15 @@ focus outline in that case.
105215
105353
  }
105216
105354
  const sprightIconWorkItemRectangleCheckLines = IconWorkItemRectangleCheckLines.compose({
105217
105355
  baseName: 'icon-work-item-rectangle-check-lines',
105218
- template: template$1i,
105219
- styles: styles$j
105356
+ template: template$1j,
105357
+ styles: styles$k
105220
105358
  });
105221
105359
  DesignSystem.getOrCreate()
105222
105360
  .withPrefix('spright')
105223
105361
  .register(sprightIconWorkItemRectangleCheckLines());
105224
105362
 
105225
- const styles$i = css `
105226
- ${styles$1u}
105363
+ const styles$j = css `
105364
+ ${styles$1v}
105227
105365
 
105228
105366
  .icon svg {
105229
105367
  fill: ${calendarEventBorderWorkOrderColor};
@@ -105240,15 +105378,15 @@ focus outline in that case.
105240
105378
  }
105241
105379
  const sprightIconWorkItemSquareListCog = IconWorkItemSquareListCog.compose({
105242
105380
  baseName: 'icon-work-item-square-list-cog',
105243
- template: template$1i,
105244
- styles: styles$i
105381
+ template: template$1j,
105382
+ styles: styles$j
105245
105383
  });
105246
105384
  DesignSystem.getOrCreate()
105247
105385
  .withPrefix('spright')
105248
105386
  .register(sprightIconWorkItemSquareListCog());
105249
105387
 
105250
- const styles$h = css `
105251
- ${styles$1u}
105388
+ const styles$i = css `
105389
+ ${styles$1v}
105252
105390
 
105253
105391
  .icon svg {
105254
105392
  fill: ${calendarEventBorderJobColor};
@@ -105265,15 +105403,15 @@ focus outline in that case.
105265
105403
  }
105266
105404
  const sprightIconWorkItemUserHelmetSafety = IconWorkItemUserHelmetSafety.compose({
105267
105405
  baseName: 'icon-work-item-user-helmet-safety',
105268
- template: template$1i,
105269
- styles: styles$h
105406
+ template: template$1j,
105407
+ styles: styles$i
105270
105408
  });
105271
105409
  DesignSystem.getOrCreate()
105272
105410
  .withPrefix('spright')
105273
105411
  .register(sprightIconWorkItemUserHelmetSafety());
105274
105412
 
105275
- const styles$g = css `
105276
- ${styles$1u}
105413
+ const styles$h = css `
105414
+ ${styles$1v}
105277
105415
 
105278
105416
  .icon svg {
105279
105417
  fill: ${calendarEventBorderMaintenanceColor};
@@ -105290,14 +105428,14 @@ focus outline in that case.
105290
105428
  }
105291
105429
  const sprightIconWorkItemWrenchHammer = IconWorkItemWrenchHammer.compose({
105292
105430
  baseName: 'icon-work-item-wrench-hammer',
105293
- template: template$1i,
105294
- styles: styles$g
105431
+ template: template$1j,
105432
+ styles: styles$h
105295
105433
  });
105296
105434
  DesignSystem.getOrCreate()
105297
105435
  .withPrefix('spright')
105298
105436
  .register(sprightIconWorkItemWrenchHammer());
105299
105437
 
105300
- const styles$f = css `
105438
+ const styles$g = css `
105301
105439
  ${display$1('inline-block')}
105302
105440
 
105303
105441
  :host {
@@ -105322,7 +105460,7 @@ focus outline in that case.
105322
105460
  }
105323
105461
  `;
105324
105462
 
105325
- const template$g = html `<slot></slot>`;
105463
+ const template$h = html `<slot></slot>`;
105326
105464
 
105327
105465
  /**
105328
105466
  * A Spright demo component (not for production use)
@@ -105331,8 +105469,8 @@ focus outline in that case.
105331
105469
  }
105332
105470
  const sprightRectangle = Rectangle.compose({
105333
105471
  baseName: 'rectangle',
105334
- template: template$g,
105335
- styles: styles$f
105472
+ template: template$h,
105473
+ styles: styles$g
105336
105474
  });
105337
105475
  DesignSystem.getOrCreate().withPrefix('spright').register(sprightRectangle());
105338
105476
 
@@ -105359,7 +105497,7 @@ focus outline in that case.
105359
105497
  block: 'block'
105360
105498
  };
105361
105499
 
105362
- const styles$e = css `
105500
+ const styles$f = css `
105363
105501
  @layer base, hover, focusVisible, active, disabled, top;
105364
105502
 
105365
105503
  @layer base {
@@ -105465,7 +105603,7 @@ focus outline in that case.
105465
105603
  }
105466
105604
  `));
105467
105605
 
105468
- const template$f = html `
105606
+ const template$g = html `
105469
105607
  <details
105470
105608
  class="accordion-item-details"
105471
105609
  ?open="${x => x.expanded}"
@@ -105516,8 +105654,8 @@ focus outline in that case.
105516
105654
  ], FvAccordionItem.prototype, "appearance", void 0);
105517
105655
  const okFvAccordionItem = FvAccordionItem.compose({
105518
105656
  baseName: 'fv-accordion-item',
105519
- template: template$f,
105520
- styles: styles$e
105657
+ template: template$g,
105658
+ styles: styles$f
105521
105659
  });
105522
105660
  DesignSystem.getOrCreate()
105523
105661
  .withPrefix('ok')
@@ -105532,7 +105670,7 @@ focus outline in that case.
105532
105670
  card: 'card'
105533
105671
  };
105534
105672
 
105535
- const styles$d = css `
105673
+ const styles$e = css `
105536
105674
  ${display('block')}
105537
105675
 
105538
105676
  :host {
@@ -105883,7 +106021,7 @@ focus outline in that case.
105883
106021
  </div>
105884
106022
  </div>
105885
106023
  `;
105886
- const template$e = html `
106024
+ const template$f = html `
105887
106025
  ${when(x => x.interactionMode === FvCardInteractionMode.card, html `
105888
106026
  <${cardButtonTag}
105889
106027
  class="card-shell card-button-shell"
@@ -106031,14 +106169,14 @@ focus outline in that case.
106031
106169
  ], FvCard.prototype, "hasFooterEndContent", void 0);
106032
106170
  const okFvCard = FvCard.compose({
106033
106171
  baseName: 'fv-card',
106034
- template: template$e,
106035
- styles: styles$d
106172
+ template: template$f,
106173
+ styles: styles$e
106036
106174
  });
106037
106175
  DesignSystem.getOrCreate()
106038
106176
  .withPrefix('ok')
106039
106177
  .register(okFvCard());
106040
106178
 
106041
- const styles$c = css `
106179
+ const styles$d = css `
106042
106180
  @layer base, hover, focusVisible, active, disabled, top;
106043
106181
 
106044
106182
  @layer base {
@@ -106286,7 +106424,7 @@ focus outline in that case.
106286
106424
  @layer top {}
106287
106425
  `;
106288
106426
 
106289
- const template$d = html `
106427
+ const template$e = html `
106290
106428
  <div class="chip-selector">
106291
106429
  ${when(x => x.label.length > 0, html `
106292
106430
  <label id="${x => x.labelId}" class="label" for="${x => x.inputId}">
@@ -106778,12 +106916,12 @@ focus outline in that case.
106778
106916
  ], FvChipSelector.prototype, "field", void 0);
106779
106917
  const okFvChipSelector = FvChipSelector.compose({
106780
106918
  baseName: 'fv-chip-selector',
106781
- template: template$d,
106782
- styles: styles$c
106919
+ template: template$e,
106920
+ styles: styles$d
106783
106921
  });
106784
106922
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvChipSelector());
106785
106923
 
106786
- const styles$b = css `
106924
+ const styles$c = css `
106787
106925
  @layer base, hover, focusVisible, active, disabled, top;
106788
106926
 
106789
106927
  @layer base {
@@ -106835,7 +106973,7 @@ focus outline in that case.
106835
106973
  @layer top {}
106836
106974
  `;
106837
106975
 
106838
- const template$c = html `
106976
+ const template$d = html `
106839
106977
  <button
106840
106978
  id="${x => x.tooltipAnchorId}"
106841
106979
  class="context-help-trigger"
@@ -106883,12 +107021,12 @@ focus outline in that case.
106883
107021
  ], FvContextHelp.prototype, "iconVisible", void 0);
106884
107022
  const okFvContextHelp = FvContextHelp.compose({
106885
107023
  baseName: 'fv-context-help',
106886
- template: template$c,
106887
- styles: styles$b
107024
+ template: template$d,
107025
+ styles: styles$c
106888
107026
  });
106889
107027
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvContextHelp());
106890
107028
 
106891
- const styles$a = css `
107029
+ const styles$b = css `
106892
107030
  @layer base, hover, selected;
106893
107031
 
106894
107032
  @layer base {
@@ -106985,7 +107123,7 @@ focus outline in that case.
106985
107123
  }
106986
107124
  `;
106987
107125
 
106988
- const template$b = html `
107126
+ const template$c = html `
106989
107127
  <div class="item" part="item">
106990
107128
  <div class="text" part="text">
106991
107129
  <div class="title" part="title">${x => x.titleText}</div>
@@ -107086,13 +107224,13 @@ focus outline in that case.
107086
107224
  ], FvMasterDetailListItem.prototype, "hasStatusSlotContent", void 0);
107087
107225
  const okFvMasterDetailListItem = FvMasterDetailListItem.compose({
107088
107226
  baseName: 'fv-master-detail-list-item',
107089
- template: template$b,
107090
- styles: styles$a
107227
+ template: template$c,
107228
+ styles: styles$b
107091
107229
  });
107092
107230
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvMasterDetailListItem());
107093
107231
  const fvMasterDetailListItemTag = 'ok-fv-master-detail-list-item';
107094
107232
 
107095
- const styles$9 = css `
107233
+ const styles$a = css `
107096
107234
  @layer base, hover, focusVisible;
107097
107235
 
107098
107236
  @layer base {
@@ -107157,7 +107295,7 @@ focus outline in that case.
107157
107295
  }
107158
107296
  `;
107159
107297
 
107160
- const template$a = html `
107298
+ const template$b = html `
107161
107299
  <div class="master-detail-list">
107162
107300
  <div class="filter-row">
107163
107301
  <input
@@ -107351,15 +107489,15 @@ focus outline in that case.
107351
107489
  ], FvMasterDetailList.prototype, "items", void 0);
107352
107490
  const okFvMasterDetailList = FvMasterDetailList.compose({
107353
107491
  baseName: 'fv-master-detail-list',
107354
- template: template$a,
107355
- styles: styles$9,
107492
+ template: template$b,
107493
+ styles: styles$a,
107356
107494
  shadowOptions: {
107357
107495
  delegatesFocus: true
107358
107496
  }
107359
107497
  });
107360
107498
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvMasterDetailList());
107361
107499
 
107362
- const styles$8 = css `
107500
+ const styles$9 = css `
107363
107501
  @layer base, hover, focusVisible, active, disabled, top;
107364
107502
 
107365
107503
  @layer base {
@@ -107576,7 +107714,7 @@ focus outline in that case.
107576
107714
  @layer top {}
107577
107715
  `;
107578
107716
 
107579
- const template$9 = html `
107717
+ const template$a = html `
107580
107718
  <div
107581
107719
  class="split-button-container"
107582
107720
  ${ref('splitButtonContainer')}
@@ -107748,12 +107886,12 @@ focus outline in that case.
107748
107886
  ], FvSplitButton.prototype, "region", void 0);
107749
107887
  const okFvSplitButton = FvSplitButton.compose({
107750
107888
  baseName: 'fv-split-button',
107751
- template: template$9,
107752
- styles: styles$8
107889
+ template: template$a,
107890
+ styles: styles$9
107753
107891
  });
107754
107892
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvSplitButton());
107755
107893
 
107756
- const styles$7 = css `
107894
+ const styles$8 = css `
107757
107895
  @layer base, hover, focusVisible, active, disabled, top;
107758
107896
 
107759
107897
  @layer base {
@@ -107978,7 +108116,7 @@ focus outline in that case.
107978
108116
  @layer top {}
107979
108117
  `;
107980
108118
 
107981
- const template$8 = html `
108119
+ const template$9 = html `
107982
108120
  <div
107983
108121
  class="split-button-container"
107984
108122
  ${ref('splitButtonContainer')}
@@ -108178,12 +108316,12 @@ focus outline in that case.
108178
108316
  ], FvSplitButtonAnchor.prototype, "region", void 0);
108179
108317
  const okFvSplitButtonAnchor = FvSplitButtonAnchor.compose({
108180
108318
  baseName: 'fv-split-button-anchor',
108181
- template: template$8,
108182
- styles: styles$7
108319
+ template: template$9,
108320
+ styles: styles$8
108183
108321
  });
108184
108322
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvSplitButtonAnchor());
108185
108323
 
108186
- const styles$6 = css `
108324
+ const styles$7 = css `
108187
108325
  ${display('block')}
108188
108326
 
108189
108327
  .sticky-header {
@@ -108202,7 +108340,7 @@ focus outline in that case.
108202
108340
  }
108203
108341
  `;
108204
108342
 
108205
- const template$7 = html `
108343
+ const template$8 = html `
108206
108344
  <div class="header" part="header">
108207
108345
  <slot
108208
108346
  name="header"
@@ -108302,12 +108440,12 @@ focus outline in that case.
108302
108440
  ], FvStickyHeader.prototype, "showStickyHeader", void 0);
108303
108441
  const okFvStickyHeader = FvStickyHeader.compose({
108304
108442
  baseName: 'fv-sticky-header',
108305
- template: template$7,
108306
- styles: styles$6
108443
+ template: template$8,
108444
+ styles: styles$7
108307
108445
  });
108308
108446
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvStickyHeader());
108309
108447
 
108310
- const styles$5 = css `
108448
+ const styles$6 = css `
108311
108449
  @layer base, hover, focusVisible, active, disabled, top;
108312
108450
 
108313
108451
  @layer base {
@@ -108375,7 +108513,7 @@ focus outline in that case.
108375
108513
  @layer top {}
108376
108514
  `;
108377
108515
 
108378
- const template$6 = html `
108516
+ const template$7 = html `
108379
108517
  <section class="summary-panel" part="panel">
108380
108518
  <div
108381
108519
  ${ref('summaryItems')}
@@ -108519,12 +108657,12 @@ focus outline in that case.
108519
108657
  ], FvSummaryPanel.prototype, "editItemsButtonLabel", void 0);
108520
108658
  const okFvSummaryPanel = FvSummaryPanel.compose({
108521
108659
  baseName: 'fv-summary-panel',
108522
- template: template$6,
108523
- styles: styles$5
108660
+ template: template$7,
108661
+ styles: styles$6
108524
108662
  });
108525
108663
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvSummaryPanel());
108526
108664
 
108527
- const styles$4 = css `
108665
+ const styles$5 = css `
108528
108666
  @layer base, hover, focusVisible, active, disabled, top;
108529
108667
 
108530
108668
  @layer base {
@@ -108682,7 +108820,7 @@ focus outline in that case.
108682
108820
  @layer top {}
108683
108821
  `;
108684
108822
 
108685
- const template$5 = html `
108823
+ const template$6 = html `
108686
108824
  <${cardButtonTag}
108687
108825
  class="summary-panel-tile"
108688
108826
  ?selected="${x => x.selected}"
@@ -108748,12 +108886,12 @@ focus outline in that case.
108748
108886
  ], FvSummaryPanelTile.prototype, "textPosition", void 0);
108749
108887
  const okFvSummaryPanelTile = FvSummaryPanelTile.compose({
108750
108888
  baseName: 'fv-summary-panel-tile',
108751
- template: template$5,
108752
- styles: styles$4
108889
+ template: template$6,
108890
+ styles: styles$5
108753
108891
  });
108754
108892
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvSummaryPanelTile());
108755
108893
 
108756
- const styles$3 = css `
108894
+ const styles$4 = css `
108757
108895
  @layer base, hover, focusVisible, active, disabled, top;
108758
108896
 
108759
108897
  @layer base {
@@ -108928,7 +109066,7 @@ focus outline in that case.
108928
109066
  }
108929
109067
  `;
108930
109068
 
108931
- const template$4 = html `
109069
+ const template$5 = html `
108932
109070
  <div class="search-input-container">
108933
109071
  <span class="search-input-icon" aria-hidden="true">
108934
109072
  <${iconMagnifyingGlassTag}></${iconMagnifyingGlassTag}>
@@ -108999,14 +109137,344 @@ focus outline in that case.
108999
109137
  const okFvSearchInput = FvSearchInput.compose({
109000
109138
  baseName: 'fv-search-input',
109001
109139
  baseClass: TextField$1,
109002
- template: template$4,
109003
- styles: styles$3,
109140
+ template: template$5,
109141
+ styles: styles$4,
109004
109142
  shadowOptions: {
109005
109143
  delegatesFocus: true
109006
109144
  }
109007
109145
  });
109008
109146
  DesignSystem.getOrCreate().withPrefix('ok').register(okFvSearchInput());
109009
109147
 
109148
+ const styles$3 = css `
109149
+ @layer base, hover, focusVisible, active;
109150
+
109151
+ @layer base {
109152
+ ${display('block')}
109153
+
109154
+ :host {
109155
+ position: relative;
109156
+ flex: 0 0 2px;
109157
+ width: 2px;
109158
+ height: 100%;
109159
+ min-height: 0;
109160
+ background: ${dividerBackgroundDynamicColor};
109161
+ outline: none;
109162
+ }
109163
+
109164
+ .splitter {
109165
+ position: absolute;
109166
+ inset: 0 -8px 0 -2px;
109167
+ cursor: col-resize;
109168
+ touch-action: none;
109169
+ user-select: none;
109170
+ -webkit-user-select: none;
109171
+ outline: none;
109172
+ }
109173
+ }
109174
+
109175
+ @layer hover {
109176
+ :host(:hover) {
109177
+ background: ${borderHoverColor};
109178
+ }
109179
+ }
109180
+
109181
+ @layer focusVisible {
109182
+ :host(:focus),
109183
+ :host(:focus-visible) {
109184
+ outline: none;
109185
+ }
109186
+
109187
+ :host(:focus-visible)::before {
109188
+ content: '';
109189
+ position: absolute;
109190
+ z-index: 1;
109191
+ inset-block: 0;
109192
+ left: 1px;
109193
+ width: 3px;
109194
+ transform: translateX(-50%);
109195
+ background: ${borderHoverColor};
109196
+ pointer-events: none;
109197
+ }
109198
+ }
109199
+
109200
+ @layer active {
109201
+ :host([resizing]) {
109202
+ background: ${borderHoverColor};
109203
+ }
109204
+ }
109205
+ `;
109206
+
109207
+ const template$4 = html `
109208
+ <div
109209
+ class="splitter"
109210
+ @pointerdown="${(x, c) => x.handlePointerDown(c.event)}"
109211
+ @pointermove="${(x, c) => x.handlePointerMove(c.event)}"
109212
+ @pointerup="${(x, c) => x.handlePointerUp(c.event)}"
109213
+ @pointercancel="${(x, c) => x.handlePointerCancel(c.event)}"
109214
+ @lostpointercapture="${(x, c) => x.handlePointerCancel(c.event)}"
109215
+ ></div>
109216
+ `;
109217
+
109218
+ /**
109219
+ * A vertical separator that enables pointer and keyboard resizing between two panes.
109220
+ */
109221
+ class FvSplitter extends FoundationElement {
109222
+ constructor() {
109223
+ super();
109224
+ /** The accessible name for the separator. */
109225
+ this.ariaLabel = 'Resize panes';
109226
+ /** The splitter position as a percentage of the containing layout's width. */
109227
+ this.position = 60;
109228
+ /** The minimum allowed position. */
109229
+ this.min = 0;
109230
+ /** The maximum allowed position. */
109231
+ this.max = 100;
109232
+ /** The percentage-point increment used for keyboard resizing. */
109233
+ this.step = 1;
109234
+ /** @internal */
109235
+ this.resizing = false;
109236
+ this.pointerStartPosition = 0;
109237
+ this.requestedPosition = this.position;
109238
+ this.applyingConstrainedPosition = false;
109239
+ this.requestedPositionResetScheduled = false;
109240
+ this.positionChangeCallbackVersion = 0;
109241
+ this.keydownHandler = (event) => {
109242
+ this.handleKeyDown(event);
109243
+ };
109244
+ const positionDescriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(this), 'position');
109245
+ if (!positionDescriptor?.get || !positionDescriptor.set) {
109246
+ return;
109247
+ }
109248
+ const getPosition = positionDescriptor.get.bind(this);
109249
+ const setPosition = positionDescriptor.set.bind(this);
109250
+ Object.defineProperty(this, 'position', {
109251
+ configurable: true,
109252
+ enumerable: positionDescriptor.enumerable,
109253
+ get: getPosition,
109254
+ set: (value) => {
109255
+ const previousPosition = getPosition();
109256
+ const callbackVersion = this.positionChangeCallbackVersion;
109257
+ setPosition(value);
109258
+ if (!this.applyingConstrainedPosition
109259
+ && callbackVersion === this.positionChangeCallbackVersion
109260
+ && previousPosition === getPosition()) {
109261
+ this.requestedPosition = getPosition();
109262
+ }
109263
+ }
109264
+ });
109265
+ }
109266
+ /** @internal */
109267
+ connectedCallback() {
109268
+ super.connectedCallback();
109269
+ this.setAttribute('role', 'separator');
109270
+ this.setAttribute('aria-orientation', 'vertical');
109271
+ this.setAttribute('aria-label', this.ariaLabel);
109272
+ this.tabIndex = 0;
109273
+ this.addEventListener('keydown', this.keydownHandler);
109274
+ this.syncAriaValueAttributes();
109275
+ }
109276
+ /** @internal */
109277
+ disconnectedCallback() {
109278
+ this.removeEventListener('keydown', this.keydownHandler);
109279
+ super.disconnectedCallback();
109280
+ }
109281
+ /** @internal */
109282
+ positionChanged() {
109283
+ this.positionChangeCallbackVersion += 1;
109284
+ if (!this.applyingConstrainedPosition) {
109285
+ this.requestedPosition = this.position;
109286
+ this.resetRequestedPositionAfterSynchronousUpdates();
109287
+ }
109288
+ this.applyConstrainedPosition();
109289
+ }
109290
+ /** @internal */
109291
+ minChanged() {
109292
+ this.applyConstrainedPosition();
109293
+ }
109294
+ /** @internal */
109295
+ maxChanged() {
109296
+ this.applyConstrainedPosition();
109297
+ }
109298
+ /** @internal */
109299
+ resizingChanged() {
109300
+ this.toggleAttribute('resizing', this.resizing);
109301
+ }
109302
+ /** @internal */
109303
+ handlePointerDown(event) {
109304
+ if (event.button !== 0 || !event.isPrimary || this.pointerId !== undefined) {
109305
+ return true;
109306
+ }
109307
+ event.preventDefault();
109308
+ const pointerTarget = event.currentTarget;
109309
+ this.focus();
109310
+ this.pointerId = event.pointerId;
109311
+ this.pointerStartPosition = this.position;
109312
+ this.resizing = true;
109313
+ if (event.pointerId !== -1) {
109314
+ pointerTarget.setPointerCapture(event.pointerId);
109315
+ }
109316
+ return true;
109317
+ }
109318
+ /** @internal */
109319
+ handlePointerMove(event) {
109320
+ if (event.pointerId !== this.pointerId) {
109321
+ return true;
109322
+ }
109323
+ const container = this.parentElement;
109324
+ if (!container) {
109325
+ return true;
109326
+ }
109327
+ const bounds = container.getBoundingClientRect();
109328
+ if (bounds.width > 0) {
109329
+ const distanceFromInlineStart = this.isRtl
109330
+ ? bounds.right - event.clientX
109331
+ : event.clientX - bounds.left;
109332
+ this.updatePosition((distanceFromInlineStart / bounds.width) * 100);
109333
+ }
109334
+ return true;
109335
+ }
109336
+ /** @internal */
109337
+ handlePointerUp(event) {
109338
+ if (event.pointerId === this.pointerId) {
109339
+ this.finishResize();
109340
+ }
109341
+ return true;
109342
+ }
109343
+ /** @internal */
109344
+ handlePointerCancel(event) {
109345
+ if (event.pointerId === this.pointerId) {
109346
+ this.updatePosition(this.pointerStartPosition);
109347
+ this.resizing = false;
109348
+ this.pointerId = undefined;
109349
+ }
109350
+ return true;
109351
+ }
109352
+ /** @internal */
109353
+ handleKeyDown(event) {
109354
+ let nextPosition;
109355
+ const direction = this.isRtl ? -1 : 1;
109356
+ switch (event.key) {
109357
+ case 'ArrowLeft':
109358
+ nextPosition = this.position - direction * this.validStep;
109359
+ break;
109360
+ case 'ArrowRight':
109361
+ nextPosition = this.position + direction * this.validStep;
109362
+ break;
109363
+ case 'Home':
109364
+ nextPosition = this.validMin;
109365
+ break;
109366
+ case 'End':
109367
+ nextPosition = this.validMax;
109368
+ break;
109369
+ default:
109370
+ return true;
109371
+ }
109372
+ event.preventDefault();
109373
+ const previousPosition = this.position;
109374
+ this.updatePosition(nextPosition);
109375
+ if (this.position !== previousPosition) {
109376
+ this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
109377
+ }
109378
+ return true;
109379
+ }
109380
+ get validMin() {
109381
+ return Number.isFinite(this.min) ? Math.min(100, Math.max(0, this.min)) : 0;
109382
+ }
109383
+ get validMax() {
109384
+ const max = Number.isFinite(this.max) ? this.max : 100;
109385
+ return Math.max(this.validMin, Math.min(100, Math.max(0, max)));
109386
+ }
109387
+ get validStep() {
109388
+ return Number.isFinite(this.step) && this.step > 0 ? this.step : 1;
109389
+ }
109390
+ get isRtl() {
109391
+ return getComputedStyle(this).direction === 'rtl';
109392
+ }
109393
+ constrain(position) {
109394
+ const finitePosition = Number.isFinite(position) ? position : 60;
109395
+ return Math.min(this.validMax, Math.max(this.validMin, finitePosition));
109396
+ }
109397
+ updatePosition(position) {
109398
+ const nextPosition = this.constrain(position);
109399
+ this.requestedPosition = nextPosition;
109400
+ if (nextPosition !== this.position) {
109401
+ this.position = nextPosition;
109402
+ this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));
109403
+ }
109404
+ }
109405
+ applyConstrainedPosition() {
109406
+ const constrainedPosition = this.constrain(this.requestedPosition);
109407
+ if (constrainedPosition !== this.position) {
109408
+ this.applyingConstrainedPosition = true;
109409
+ this.position = constrainedPosition;
109410
+ this.applyingConstrainedPosition = false;
109411
+ }
109412
+ this.syncAriaValueAttributesIfConnected();
109413
+ }
109414
+ resetRequestedPositionAfterSynchronousUpdates() {
109415
+ if (this.requestedPositionResetScheduled) {
109416
+ return;
109417
+ }
109418
+ this.requestedPositionResetScheduled = true;
109419
+ queueMicrotask(() => {
109420
+ this.requestedPositionResetScheduled = false;
109421
+ this.requestedPosition = this.position;
109422
+ });
109423
+ }
109424
+ finishResize() {
109425
+ const changed = this.position !== this.pointerStartPosition;
109426
+ this.resizing = false;
109427
+ this.pointerId = undefined;
109428
+ if (changed) {
109429
+ this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
109430
+ }
109431
+ }
109432
+ syncAriaValueAttributesIfConnected() {
109433
+ if (this.$fastController.isConnected) {
109434
+ this.syncAriaValueAttributes();
109435
+ }
109436
+ }
109437
+ syncAriaValueAttributes() {
109438
+ this.setAttribute('aria-valuemin', String(this.validMin));
109439
+ this.setAttribute('aria-valuemax', String(this.validMax));
109440
+ this.setAttribute('aria-valuenow', String(this.position));
109441
+ this.setAttribute('aria-valuetext', `${this.position} percent`);
109442
+ }
109443
+ }
109444
+ __decorate([
109445
+ attr({ attribute: 'aria-label' })
109446
+ ], FvSplitter.prototype, "ariaLabel", void 0);
109447
+ __decorate([
109448
+ attr({ attribute: 'aria-labelledby' })
109449
+ ], FvSplitter.prototype, "ariaLabelledby", void 0);
109450
+ __decorate([
109451
+ attr({ attribute: 'aria-controls' })
109452
+ ], FvSplitter.prototype, "ariaControls", void 0);
109453
+ __decorate([
109454
+ attr({ converter: nullableNumberConverter })
109455
+ ], FvSplitter.prototype, "position", void 0);
109456
+ __decorate([
109457
+ attr({ converter: nullableNumberConverter })
109458
+ ], FvSplitter.prototype, "min", void 0);
109459
+ __decorate([
109460
+ attr({ converter: nullableNumberConverter })
109461
+ ], FvSplitter.prototype, "max", void 0);
109462
+ __decorate([
109463
+ attr({ converter: nullableNumberConverter })
109464
+ ], FvSplitter.prototype, "step", void 0);
109465
+ __decorate([
109466
+ observable
109467
+ ], FvSplitter.prototype, "resizing", void 0);
109468
+ const okFvSplitter = FvSplitter.compose({
109469
+ baseName: 'fv-splitter',
109470
+ template: template$4,
109471
+ styles: styles$3,
109472
+ shadowOptions: {
109473
+ delegatesFocus: false
109474
+ }
109475
+ });
109476
+ DesignSystem.getOrCreate().withPrefix('ok').register(okFvSplitter());
109477
+
109010
109478
  const styles$2 = css `
109011
109479
  ${display('inline-block')}
109012
109480
 
@@ -109556,7 +110024,7 @@ focus outline in that case.
109556
110024
 
109557
110025
  const template = html `
109558
110026
  <template @delegated-event="${(x, c) => x.onDelegatedEvent(c.event)}"
109559
- >${template$M}</template
110027
+ >${template$N}</template
109560
110028
  >
109561
110029
  `;
109562
110030
 
@@ -109642,7 +110110,7 @@ focus outline in that case.
109642
110110
  const tsTableColumnBreakpoint = TsTableColumnBreakpoint.compose({
109643
110111
  baseName: 'ts-table-column-breakpoint',
109644
110112
  template,
109645
- styles: styles$L
110113
+ styles: styles$M
109646
110114
  });
109647
110115
  DesignSystem.getOrCreate()
109648
110116
  .withPrefix('ok')