@ni/nimble-components 30.2.0 → 30.3.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.
- package/dist/all-components-bundle.js +158 -44
- package/dist/all-components-bundle.js.map +1 -1
- package/dist/all-components-bundle.min.js +4404 -4398
- package/dist/all-components-bundle.min.js.map +1 -1
- package/dist/esm/select/index.js +41 -1
- package/dist/esm/select/index.js.map +1 -1
- package/dist/esm/theme-provider/design-token-comments.js +15 -1
- package/dist/esm/theme-provider/design-token-comments.js.map +1 -1
- package/dist/esm/theme-provider/design-token-names.js +15 -1
- package/dist/esm/theme-provider/design-token-names.js.map +1 -1
- package/dist/esm/theme-provider/design-tokens.d.ts +14 -0
- package/dist/esm/theme-provider/design-tokens.js +15 -1
- package/dist/esm/theme-provider/design-tokens.js.map +1 -1
- package/dist/tokens-internal.scss +84 -0
- package/dist/tokens.scss +42 -0
- package/package.json +2 -2
package/dist/esm/select/index.js
CHANGED
|
@@ -372,14 +372,54 @@ export class Select extends FormAssociatedSelect {
|
|
|
372
372
|
*/
|
|
373
373
|
keydownHandler(e) {
|
|
374
374
|
const initialSelectedIndex = this.selectedIndex;
|
|
375
|
-
super.keydownHandler(e);
|
|
376
375
|
const key = e.key;
|
|
377
376
|
if (e.ctrlKey || e.shiftKey) {
|
|
378
377
|
return true;
|
|
379
378
|
}
|
|
379
|
+
if (key !== keyArrowDown && key !== keyArrowUp) {
|
|
380
|
+
super.keydownHandler(e);
|
|
381
|
+
}
|
|
380
382
|
let currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;
|
|
381
383
|
let commitValueThenClose = false;
|
|
382
384
|
switch (key) {
|
|
385
|
+
case keyArrowDown: {
|
|
386
|
+
const selectedOption = this.options[this.selectedIndex];
|
|
387
|
+
if (this.open
|
|
388
|
+
&& isListOption(selectedOption)
|
|
389
|
+
&& !isOptionOrGroupVisible(selectedOption)) {
|
|
390
|
+
if (this.openActiveIndex === this.selectedIndex) {
|
|
391
|
+
this.selectFirstOption();
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
this.selectNextOption();
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
super.keydownHandler(e);
|
|
399
|
+
}
|
|
400
|
+
// update currentActiveIndex again as dependent state may have changed
|
|
401
|
+
currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;
|
|
402
|
+
break;
|
|
403
|
+
}
|
|
404
|
+
case keyArrowUp: {
|
|
405
|
+
const selectedOption = this.options[this.selectedIndex];
|
|
406
|
+
if (this.open
|
|
407
|
+
&& isListOption(selectedOption)
|
|
408
|
+
&& !isOptionOrGroupVisible(selectedOption)) {
|
|
409
|
+
if (this.openActiveIndex === this.selectedIndex) {
|
|
410
|
+
this.selectLastOption();
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
this.selectPreviousOption();
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
else {
|
|
417
|
+
super.keydownHandler(e);
|
|
418
|
+
}
|
|
419
|
+
// update currentActiveIndex again as dependent state may have changed
|
|
420
|
+
currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;
|
|
421
|
+
break;
|
|
422
|
+
}
|
|
383
423
|
case keySpace: {
|
|
384
424
|
// when dropdown is open allow user to enter a space for filter text
|
|
385
425
|
if (this.open && this.filterMode !== FilterMode.none) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/select/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Based on: https://github.com/microsoft/fast/blob/%40microsoft/fast-foundation_v2.49.5/packages/web-components/fast-foundation/src/select/select.ts\nimport {\n attr,\n html,\n observable,\n Observable,\n volatile\n} from '@microsoft/fast-element';\nimport {\n AnchoredRegion,\n DesignSystem,\n Select as FoundationSelect,\n ListboxOption,\n SelectOptions,\n SelectPosition,\n applyMixins,\n StartEnd,\n DelegatesARIASelect\n} from '@microsoft/fast-foundation';\nimport {\n findLastIndex,\n keyArrowDown,\n keyArrowUp,\n keyEnd,\n keyEnter,\n keyEscape,\n keyHome,\n keySpace,\n uniqueId\n} from '@microsoft/fast-web-utilities';\nimport { arrowExpanderDown16X16 } from '@ni/nimble-tokens/dist/icons/js';\nimport { styles } from './styles';\nimport {\n DropdownAppearance,\n ListOptionOwner\n} from '../patterns/dropdown/types';\nimport { errorTextTemplate } from '../patterns/error/template';\nimport type { ErrorPattern } from '../patterns/error/types';\nimport { iconExclamationMarkTag } from '../icons/exclamation-mark';\nimport { isListOption, isListOptionGroup, template } from './template';\nimport type { ListOption } from '../list-option';\nimport { FilterMode, SelectFilterInputEventDetail } from './types';\nimport { diacriticInsensitiveStringNormalizer } from '../utilities/models/string-normalizers';\nimport { FormAssociatedSelect } from './models/select-form-associated';\nimport type { ListOptionGroup } from '../list-option-group';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-select': Select;\n }\n}\n\n// Used in overrides of base class methods\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\ntype BooleanOrVoid = boolean | void;\n\nconst isOptionSelectable = (el: ListOption): boolean => {\n return !el.visuallyHidden && !el.disabled && !el.hidden;\n};\n\nconst isOptionPlaceholder = (el: ListboxOption): boolean => {\n return el.disabled && el.hidden;\n};\n\nconst isOptionOrGroupVisible = (el: ListOption | ListOptionGroup): boolean => {\n return !el.visuallyHidden && !el.hidden;\n};\n\n/**\n * A nimble-styled HTML select.\n */\nexport class Select\n extends FormAssociatedSelect\n implements ErrorPattern, ListOptionOwner {\n @attr\n public appearance: DropdownAppearance = DropdownAppearance.underline;\n\n /**\n * Reflects the placement for the listbox when the select is open.\n *\n * @public\n */\n @attr({ attribute: 'position' })\n public positionAttribute?: SelectPosition;\n\n /**\n * A message explaining why the value is invalid.\n *\n * @public\n * @remarks\n * HTML Attribute: error-text\n */\n @attr({ attribute: 'error-text' })\n public errorText: string | undefined;\n\n @attr({ attribute: 'error-visible', mode: 'boolean' })\n public errorVisible = false;\n\n @attr({ attribute: 'filter-mode' })\n public filterMode: FilterMode = FilterMode.none;\n\n @attr({ attribute: 'clearable', mode: 'boolean' })\n public clearable = false;\n\n @attr({ attribute: 'loading-visible', mode: 'boolean' })\n public loadingVisible = false;\n\n /**\n * @internal\n */\n @observable\n public displayPlaceholder = false;\n\n /**\n * @internal\n */\n @attr({ attribute: 'open', mode: 'boolean' })\n public open = false;\n\n /**\n * Holds the current state for the calculated position of the listbox.\n *\n * @public\n */\n @observable\n public position?: SelectPosition;\n\n /**\n * The ref to the internal `.control` element.\n *\n * @internal\n */\n @observable\n public control!: HTMLElement;\n\n /**\n * Reference to the internal listbox element.\n *\n * @internal\n */\n public listbox!: HTMLDivElement;\n\n /**\n * The unique id for the internal listbox element.\n *\n * @internal\n */\n public listboxId: string = uniqueId('listbox-');\n\n /**\n * @internal\n */\n @observable\n public scrollableRegion!: HTMLElement;\n\n /**\n * @internal\n */\n @observable\n public filterInput?: HTMLInputElement;\n\n /**\n * @internal\n */\n @observable\n public anchoredRegion!: AnchoredRegion;\n\n /** @internal */\n @observable\n public hasOverflow = false;\n\n /**\n * @internal\n */\n @observable\n public filteredOptions: ListboxOption[] = [];\n\n /**\n * @internal\n */\n @observable\n public filter = '';\n\n /**\n * The space available in the viewport for the listbox when opened.\n *\n * @internal\n */\n @observable\n public availableViewportHeight = 0;\n\n /**\n * The component is collapsible when in single-selection mode with no size attribute.\n *\n * @internal\n */\n @volatile\n public get collapsible(): boolean {\n return !(this.multiple || typeof this.size === 'number');\n }\n\n private _value = '';\n private forcedPosition = false;\n private openActiveIndex?: number;\n\n /**\n * @internal\n */\n public override connectedCallback(): void {\n super.connectedCallback();\n this.forcedPosition = !!this.positionAttribute;\n if (this.open) {\n this.initializeOpenState();\n }\n }\n\n public override get value(): string {\n Observable.track(this, 'value');\n return this._value;\n }\n\n public override set value(next: string) {\n const prev = this._value;\n let newValue = next;\n\n if (this.options?.length) {\n const newValueIndex = this.options.findIndex(\n el => el.value === newValue\n );\n const prevSelectedValue = this.options[this.selectedIndex]?.value ?? null;\n const nextSelectedValue = this.options[newValueIndex]?.value ?? null;\n\n if (\n newValueIndex === -1\n || prevSelectedValue !== nextSelectedValue\n ) {\n newValue = '';\n this.selectedIndex = newValueIndex;\n }\n\n newValue = this.firstSelectedOption?.value ?? newValue;\n }\n\n if (prev !== newValue) {\n this._value = newValue;\n super.valueChanged(prev, newValue);\n Observable.notify(this, 'value');\n this.updateDisplayValue();\n }\n }\n\n /**\n * @internal\n */\n @volatile\n public get displayValue(): string {\n Observable.track(this, 'displayValue');\n return this.firstSelectedOption?.text ?? '';\n }\n\n /**\n * @internal\n */\n public anchoredRegionChanged(\n _prev: AnchoredRegion | undefined,\n _next: AnchoredRegion | undefined\n ): void {\n if (this.anchoredRegion && this.control) {\n this.anchoredRegion.anchorElement = this.control;\n }\n }\n\n /**\n * @internal\n */\n public controlChanged(\n _prev: HTMLElement | undefined,\n _next: HTMLElement | undefined\n ): void {\n if (this.anchoredRegion && this.control) {\n this.anchoredRegion.anchorElement = this.control;\n }\n }\n\n /**\n * @internal\n */\n public override slottedOptionsChanged(\n prev: Element[] | undefined,\n next: Element[] | undefined\n ): void {\n const value = this.value;\n this.options.forEach(o => {\n const notifier = Observable.getNotifier(o);\n notifier.unsubscribe(this, 'value');\n notifier.unsubscribe(this, 'hidden');\n notifier.unsubscribe(this, 'disabled');\n });\n\n prev?.filter<ListOptionGroup>(isListOptionGroup).forEach(el => {\n const notifier = Observable.getNotifier(el);\n notifier.unsubscribe(this, 'hidden');\n notifier.unsubscribe(this, 'visuallyHidden');\n notifier.unsubscribe(this, 'listOptions');\n });\n const options = this.getSlottedOptions(next);\n super.slottedOptionsChanged(prev, options);\n\n options.forEach(o => {\n const notifier = Observable.getNotifier(o);\n notifier.subscribe(this, 'value');\n notifier.subscribe(this, 'hidden');\n notifier.subscribe(this, 'disabled');\n });\n next?.filter<ListOptionGroup>(isListOptionGroup).forEach(el => {\n this.updateAdjacentSeparatorState(el);\n const notifier = Observable.getNotifier(el);\n notifier.subscribe(this, 'hidden');\n notifier.subscribe(this, 'visuallyHidden');\n notifier.subscribe(this, 'listOptions');\n });\n this.setProxyOptions();\n this.updateValue();\n // We need to force an update to the filteredOptions observable\n // (by calling 'filterOptions()) so that the template correctly updates.\n this.filterOptions();\n if (value) {\n this.value = value;\n }\n }\n\n /**\n * @internal\n */\n public override clickHandler(e: MouseEvent): BooleanOrVoid {\n // do nothing if the select is disabled\n if (this.disabled) {\n return;\n }\n\n let optionClicked = false;\n if (this.open) {\n const captured = (e.target as HTMLElement).closest<ListOption>(\n 'option,[role=option]'\n );\n optionClicked = captured !== null;\n\n if (captured?.disabled) {\n return;\n }\n }\n\n const previousSelectedIndex = this.selectedIndex;\n super.clickHandler(e);\n\n if (\n this.open\n && this.selectedIndex !== previousSelectedIndex\n && optionClicked\n ) {\n this.updateValue(true);\n }\n this.open = this.collapsible && !this.open;\n }\n\n /**\n * Updates the value when an option's value changes.\n *\n * @param source - the source object\n * @param propertyName - the property to evaluate\n *\n * @internal\n * @override\n */\n public override handleChange(source: unknown, propertyName: string): void {\n // don't call super.handleChange so hidden options can be selected programmatically\n const sourceElement = source as Element;\n switch (propertyName) {\n case 'value': {\n this.updateValue();\n break;\n }\n case 'selected': {\n if (isListOption(sourceElement) && sourceElement.selected) {\n this.selectedIndex = this.options.indexOf(sourceElement);\n } else {\n this.clearSelect();\n }\n break;\n }\n case 'hidden': {\n if (isListOption(sourceElement)) {\n sourceElement.visuallyHidden = sourceElement.hidden;\n this.updateAdjacentSeparatorState(sourceElement);\n } else if (isListOptionGroup(sourceElement)) {\n sourceElement.listOptions.forEach(e => {\n e.visuallyHidden = sourceElement.hidden;\n });\n this.updateAdjacentSeparatorState(sourceElement);\n }\n this.filterOptions();\n this.updateDisplayValue();\n break;\n }\n case 'visuallyHidden': {\n if (\n isListOptionGroup(sourceElement)\n || isListOption(sourceElement)\n ) {\n this.updateAdjacentSeparatorState(sourceElement);\n }\n break;\n }\n case 'disabled': {\n this.updateDisplayValue();\n break;\n }\n case 'listOptions': {\n // force refresh of slotted options for groups\n this.slottedOptionsChanged(\n this.slottedOptions,\n this.slottedOptions\n );\n break;\n }\n default:\n break;\n }\n }\n\n /**\n * Prevents focus when size is set and a scrollbar is clicked.\n *\n * @param e - the mouse event object\n *\n * @override\n * @internal\n */\n public override mousedownHandler(e: MouseEvent): BooleanOrVoid {\n if (e.offsetX >= 0 && e.offsetX <= this.listbox?.scrollWidth) {\n return super.mousedownHandler(e);\n }\n\n return this.collapsible;\n }\n\n /**\n * @internal\n */\n public regionLoadedHandler(): void {\n this.focusAndScrollOptionIntoView();\n }\n\n /**\n * Sets the multiple property on the proxy element.\n *\n * @param prev - the previous multiple value\n * @param next - the current multiple value\n */\n public override multipleChanged(\n prev: boolean | undefined,\n next: boolean\n ): void {\n super.multipleChanged(prev, next);\n\n if (this.proxy) {\n this.proxy.multiple = next;\n }\n }\n\n /**\n * @internal\n */\n public ignoreClickHandler(e: MouseEvent): void {\n e.stopPropagation();\n }\n\n /**\n * @internal\n */\n public clearClickHandler(e: MouseEvent): void {\n this.open = false;\n this.clearSelect();\n this.updateValue(true);\n e.stopPropagation();\n }\n\n /**\n * @internal\n */\n public updateDisplayValue(): void {\n const placeholderOption = this.getPlaceholderOption();\n if (\n placeholderOption\n && this.firstSelectedOption === placeholderOption\n ) {\n this.displayPlaceholder = true;\n } else {\n this.displayPlaceholder = false;\n }\n\n Observable.notify(this, 'displayValue');\n }\n\n /**\n * Handle content changes on the control input.\n *\n * @param e - the input event\n * @internal\n */\n public inputHandler(e: InputEvent): boolean {\n this.filter = this.filterInput?.value ?? '';\n if (this.filterMode === FilterMode.standard) {\n this.filterOptions();\n\n const enabledOptions = this.filteredOptions.filter(\n o => !o.disabled\n );\n let activeOptionIndex = this.filter !== ''\n ? (this.openActiveIndex ?? this.selectedIndex)\n : this.selectedIndex;\n\n if (\n enabledOptions.length > 0\n && !enabledOptions.find(o => o === this.options[activeOptionIndex])\n ) {\n activeOptionIndex = this.options.indexOf(enabledOptions[0]!);\n } else if (enabledOptions.length === 0) {\n activeOptionIndex = -1;\n }\n this.setActiveOption(activeOptionIndex);\n }\n\n if (this.filterMode !== FilterMode.none) {\n this.emitFilterInputEvent();\n }\n\n if (e.inputType.includes('deleteContent') || !this.filter.length) {\n return true;\n }\n\n e.stopPropagation();\n return true;\n }\n\n /**\n * @internal\n */\n public override focusoutHandler(e: FocusEvent): BooleanOrVoid {\n super.focusoutHandler(e);\n if (!this.open) {\n return true;\n }\n\n this.open = false;\n const focusTarget = e.relatedTarget as HTMLElement;\n if (this.isSameNode(focusTarget)) {\n this.focus();\n return true;\n }\n\n return true;\n }\n\n /**\n * @internal\n */\n public override keydownHandler(e: KeyboardEvent): BooleanOrVoid {\n const initialSelectedIndex = this.selectedIndex;\n super.keydownHandler(e);\n const key = e.key;\n if (e.ctrlKey || e.shiftKey) {\n return true;\n }\n\n let currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;\n let commitValueThenClose = false;\n switch (key) {\n case keySpace: {\n // when dropdown is open allow user to enter a space for filter text\n if (this.open && this.filterMode !== FilterMode.none) {\n break;\n }\n\n e.preventDefault();\n if (this.collapsible && this.typeAheadExpired) {\n this.open = !this.open;\n }\n if (!this.open) {\n this.focus();\n }\n break;\n }\n case keyHome:\n case keyEnd: {\n e.preventDefault();\n break;\n }\n case keyEnter: {\n e.preventDefault();\n if (\n this.filteredOptions.length === 0\n || this.filteredOptions.every(o => o.disabled)\n ) {\n return false;\n }\n if (this.open) {\n commitValueThenClose = true;\n } else {\n this.open = true;\n }\n\n if (commitValueThenClose) {\n this.focus();\n }\n break;\n }\n case keyEscape: {\n if (!this.open) {\n if (this.clearable) {\n this.clearSelect();\n this.updateValue(true);\n return true;\n }\n\n break;\n }\n\n if (this.collapsible && this.open) {\n e.preventDefault();\n this.open = false;\n }\n\n currentActiveIndex = this.selectedIndex;\n this.focus();\n break;\n }\n\n default: {\n break;\n }\n }\n\n if (!this.open || commitValueThenClose) {\n if (this.selectedIndex !== currentActiveIndex) {\n this.selectedIndex = currentActiveIndex;\n }\n\n if (initialSelectedIndex !== this.selectedIndex) {\n this.updateValue(true);\n }\n }\n\n if (commitValueThenClose) {\n this.open = false;\n }\n\n return !(key === keyArrowDown || key === keyArrowUp);\n }\n\n /**\n * Updates the proxy value when the selected index changes.\n *\n * @param prev - the previous selected index\n * @param next - the next selected index\n *\n * @internal\n */\n public override selectedIndexChanged(\n _: number | undefined,\n __: number\n ): void {\n // Don't call super.selectedIndexChanged as this will disallow disabled options\n // from being valid initial selected values. Our setDefaultSelectedOption\n // implementation handles skipping non-selected disabled options for the initial\n // selected value.\n this.setSelectedOptions();\n if (this.open) {\n this.setActiveOption(this.selectedIndex);\n }\n this.updateValue();\n }\n\n /**\n * @internal\n * Fork of Listbox implementation, so that the selectedIndex is not changed while the dropdown\n * is open.\n */\n public override typeaheadBufferChanged(_: string, __: string): void {\n if (this.$fastController.isConnected) {\n const typeaheadMatches = this.getTypeaheadMatches();\n\n if (typeaheadMatches.length) {\n const activeOptionIndex = this.options.indexOf(\n typeaheadMatches[0] as ListOption\n );\n if (!(this.open && this.filterMode !== FilterMode.none)) {\n this.setActiveOption(activeOptionIndex);\n }\n }\n\n this.typeaheadExpired = false;\n }\n }\n\n /**\n * Synchronize the `aria-disabled` property when the `disabled` property changes.\n *\n * @param prev - The previous disabled value\n * @param next - The next disabled value\n *\n * @internal\n */\n public override disabledChanged(prev: boolean, next: boolean): void {\n if (super.disabledChanged) {\n super.disabledChanged(prev, next);\n }\n this.ariaDisabled = this.disabled ? 'true' : 'false';\n }\n\n /**\n * Reset the element to its first selectable option when its parent form is reset.\n *\n * @internal\n */\n public override formResetCallback(): void {\n this.setProxyOptions();\n // Call the base class's implementation setDefaultSelectedOption instead of the select's\n // override, in order to reset the selectedIndex without using the value property.\n super.setDefaultSelectedOption();\n if (this.selectedIndex === -1) {\n this.selectedIndex = 0;\n }\n }\n\n /**\n * @internal\n */\n public override selectNextOption(): void {\n // don't call super.selectNextOption as that relies on side-effecty\n // behavior to not select disabled option (which no longer works)\n const startIndex = this.openActiveIndex ?? this.selectedIndex;\n for (let i = startIndex + 1; i < this.options.length; i++) {\n const listOption = this.options[i]!;\n if (isListOption(listOption) && isOptionSelectable(listOption)) {\n this.setActiveOption(i);\n break;\n }\n }\n }\n\n /**\n * @internal\n */\n public override selectPreviousOption(): void {\n // don't call super.selectPreviousOption as that relies on side-effecty\n // behavior to not select disabled option (which no longer works)\n const startIndex = this.openActiveIndex ?? this.selectedIndex;\n for (let i = startIndex - 1; i >= 0; i--) {\n const listOption = this.options[i]!;\n if (isListOption(listOption) && isOptionSelectable(listOption)) {\n this.setActiveOption(i);\n break;\n }\n }\n }\n\n /**\n * @internal\n */\n public override selectFirstOption(): void {\n const newActiveOptionIndex = this.options.findIndex(\n o => isListOption(o) && isOptionSelectable(o)\n );\n this.setActiveOption(newActiveOptionIndex);\n }\n\n /**\n * @internal\n */\n public override selectLastOption(): void {\n const newActiveOptionIndex = findLastIndex(\n this.options,\n o => isListOption(o) && isOptionSelectable(o)\n );\n this.setActiveOption(newActiveOptionIndex);\n }\n\n /**\n * @internal\n */\n public registerOption(option: ListOption): void {\n if (this.options.includes(option)) {\n return;\n }\n\n // Adding an option to the end, ultimately, isn't the correct\n // thing to do, as this will mean the option's index in the options,\n // at least temporarily, does not match the DOM order. However, it\n // is expected that a successive run of `slottedOptionsChanged` will\n // correct this order issue. See 'https://github.com/ni/nimble/issues/1915'\n // for more info.\n this.options.push(option);\n }\n\n protected override setSelectedOptions(): void {\n // Prevents parent classes from resetting selectedIndex to a positive\n // value while filtering, which can result in a disabled option being\n // selected.\n if (this.open && this.selectedIndex === -1) {\n return;\n }\n super.setSelectedOptions();\n }\n\n protected override focusAndScrollOptionIntoView(): void {\n if (this.open) {\n super.focusAndScrollOptionIntoView();\n window.requestAnimationFrame(() => {\n this.filterInput?.focus();\n });\n }\n }\n\n protected override getTypeaheadMatches(): ListboxOption[] {\n const matches = super.getTypeaheadMatches();\n // Don't allow placeholder to be matched\n return matches.filter(o => !o.hidden && !o.disabled);\n }\n\n protected positionChanged(\n _: SelectPosition | undefined,\n next: SelectPosition | undefined\n ): void {\n this.positionAttribute = next;\n this.setPositioning();\n }\n\n /**\n * Updates the proxy's size property when the size attribute changes.\n *\n * @param prev - the previous size\n * @param next - the current size\n *\n * @override\n * @internal\n */\n protected override sizeChanged(\n prev: number | undefined,\n next: number\n ): void {\n super.sizeChanged(prev, next);\n\n if (this.proxy) {\n this.proxy.size = next;\n }\n }\n\n protected openChanged(): void {\n if (!this.collapsible) {\n return;\n }\n\n if (this.open) {\n this.initializeOpenState();\n return;\n }\n\n const activeOption = this.options[this.openActiveIndex ?? this.selectedIndex];\n if (isListOption(activeOption)) {\n activeOption.activeOption = false;\n }\n this.openActiveIndex = undefined;\n this.filter = '';\n if (this.filterInput) {\n this.filterInput.value = '';\n }\n\n if (this.filterMode !== FilterMode.none) {\n this.emitFilterInputEvent();\n }\n this.ariaControls = '';\n this.ariaExpanded = 'false';\n }\n\n /**\n * Updates the selectedness of each option when the list of selected options changes.\n *\n * @param prev - the previous list of selected options\n * @param next - the current list of selected options\n *\n * @override\n * @internal\n */\n protected override selectedOptionsChanged(\n _prev: ListboxOption[] | undefined,\n next: ListboxOption[]\n ): void {\n // don't call super.selectedOptionsChanged so we don't filter out hidden elements\n // when updating 'selected' state (copied relevant super implementation)\n this.options?.forEach((o, i) => {\n const notifier = Observable.getNotifier(o);\n notifier.unsubscribe(this, 'selected');\n o.selected = next.includes(o);\n notifier.subscribe(this, 'selected');\n const proxyOption = this.proxy?.options.item(i);\n if (proxyOption) {\n proxyOption.selected = o.selected;\n }\n });\n }\n\n /**\n * Sets the selected index to match the first option with the selected attribute, or\n * the first selectable option.\n *\n * @override\n * @internal\n */\n protected override setDefaultSelectedOption(): void {\n const options: ListboxOption[] = this.options\n ?? Array.from(this.children).filter(o => isListOption(o));\n\n const optionIsSelected = (option: ListboxOption): boolean => {\n return option.hasAttribute('selected') || option.selected;\n };\n let selectedIndex = -1;\n let firstValidOptionIndex = -1;\n let placeholderIndex = -1;\n for (let i = 0; i < options?.length; i++) {\n const option = options[i]!;\n if (optionIsSelected(option) || option.value === this.value) {\n selectedIndex = i;\n break;\n } else if (placeholderIndex === -1 && isOptionPlaceholder(option)) {\n placeholderIndex = i;\n } else if (\n firstValidOptionIndex === -1\n && isOptionSelectable(option as ListOption)\n ) {\n firstValidOptionIndex = i;\n }\n }\n\n if (selectedIndex !== -1) {\n this.selectedIndex = selectedIndex;\n } else if (placeholderIndex !== -1) {\n this.selectedIndex = placeholderIndex;\n } else if (firstValidOptionIndex !== -1) {\n this.selectedIndex = firstValidOptionIndex;\n } else {\n this.selectedIndex = 0;\n }\n }\n\n private getSlottedOptions(\n slottedElements: Element[] | undefined\n ): ListboxOption[] {\n const options: ListOption[] = [];\n slottedElements?.forEach(el => {\n if (isListOption(el)) {\n options.push(el);\n } else if (isListOptionGroup(el)) {\n options.push(...this.getGroupOptions(el));\n }\n });\n\n return options;\n }\n\n private setActiveOption(newActiveIndex: number): void {\n const activeOption = this.options[newActiveIndex];\n if (this.open) {\n if (isListOption(activeOption)) {\n activeOption.activeOption = true;\n }\n\n const previousActiveIndex = this.openActiveIndex ?? this.selectedIndex;\n const previousActiveOption = this.options[previousActiveIndex];\n if (\n previousActiveIndex !== newActiveIndex\n && isListOption(previousActiveOption)\n ) {\n previousActiveOption.activeOption = false;\n }\n\n this.openActiveIndex = newActiveIndex;\n this.focusAndScrollActiveOptionIntoView();\n } else {\n this.selectedIndex = newActiveIndex;\n }\n\n this.ariaActiveDescendant = activeOption?.id ?? '';\n }\n\n private focusAndScrollActiveOptionIntoView(): void {\n const optionToFocus = this.options[this.openActiveIndex ?? this.selectedIndex];\n // Copied from FAST: To ensure that the browser handles both `focus()` and\n // `scrollIntoView()`, the timing here needs to guarantee that they happen on\n // different frames. Since this function is typically called from the `openChanged`\n // observer, `DOM.queueUpdate` causes the calls to be grouped into the same frame.\n // To prevent this, `requestAnimationFrame` is used instead of `DOM.queueUpdate`.\n if (optionToFocus !== undefined && this.contains(optionToFocus)) {\n optionToFocus.focus();\n requestAnimationFrame(() => {\n optionToFocus.scrollIntoView({ block: 'nearest' });\n });\n }\n }\n\n private getPlaceholderOption(): ListOption | undefined {\n return this.options.find(o => o.hidden && o.disabled) as ListOption;\n }\n\n private setPositioning(): void {\n if (!this.$fastController.isConnected) {\n // Don't call setPositioning() until we're connected,\n // since this.forcedPosition isn't initialized yet.\n return;\n }\n const currentBox = this.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const availableBottom = viewportHeight - currentBox.bottom;\n\n if (this.forcedPosition) {\n this.position = this.positionAttribute;\n } else if (currentBox.top > availableBottom) {\n this.position = SelectPosition.above;\n } else {\n this.position = SelectPosition.below;\n }\n\n this.positionAttribute = this.forcedPosition\n ? this.positionAttribute\n : this.position;\n\n this.availableViewportHeight = this.position === SelectPosition.above\n ? Math.trunc(currentBox.top)\n : Math.trunc(availableBottom);\n }\n\n private updateAdjacentSeparatorState(\n element: ListOptionGroup | ListOption\n ): void {\n const previousElement = this.getPreviousVisibleOptionOrGroup(element);\n const nextElement = this.getNextVisibleOptionOrGroup(element);\n\n if (isOptionOrGroupVisible(element)) {\n const topSeparatorVisible = isListOption(previousElement);\n this.setTopSeparatorState(element, topSeparatorVisible);\n const bottomSeparatorVisible = nextElement !== null;\n this.setBottomSeparatorState(element, bottomSeparatorVisible);\n this.setBottomSeparatorState(previousElement, true);\n } else {\n const nextTopSeparatorVisible = isListOption(previousElement);\n this.setTopSeparatorState(nextElement, nextTopSeparatorVisible);\n const previousBottomSeparatorVisible = nextElement !== null;\n this.setBottomSeparatorState(\n previousElement,\n previousBottomSeparatorVisible\n );\n }\n }\n\n private setTopSeparatorState(\n element: ListOptionGroup | ListOption | null,\n visible: boolean\n ): void {\n if (isListOptionGroup(element)) {\n element.topSeparatorVisible = visible;\n }\n }\n\n private setBottomSeparatorState(\n element: ListOptionGroup | ListOption | null,\n visible: boolean\n ): void {\n if (isListOptionGroup(element)) {\n element.bottomSeparatorVisible = visible;\n }\n }\n\n private getPreviousVisibleOptionOrGroup(\n element: HTMLElement\n ): ListOption | ListOptionGroup | null {\n let previousElement = element.previousElementSibling;\n while (previousElement) {\n if (\n (isListOption(previousElement)\n || isListOptionGroup(previousElement))\n && isOptionOrGroupVisible(previousElement)\n ) {\n return previousElement;\n }\n previousElement = previousElement.previousElementSibling;\n }\n return null;\n }\n\n private getNextVisibleOptionOrGroup(\n element: HTMLElement\n ): ListOption | ListOptionGroup | null {\n let nextElement = element.nextElementSibling;\n while (nextElement) {\n if (\n (isListOption(nextElement) || isListOptionGroup(nextElement))\n && isOptionOrGroupVisible(nextElement)\n ) {\n return nextElement;\n }\n nextElement = nextElement.nextElementSibling;\n }\n return null;\n }\n\n private isOptionHiddenOrFilteredOut(option: ListOption): boolean {\n if (option.hidden) {\n return true;\n }\n return this.filterMode === FilterMode.standard\n ? !this.filterMatchesText(option.text)\n : false;\n }\n\n private filterMatchesText(text: string): boolean {\n const filter = this.filter.toLowerCase();\n const normalizedFilter = diacriticInsensitiveStringNormalizer(filter);\n return diacriticInsensitiveStringNormalizer(text).includes(\n normalizedFilter\n );\n }\n\n /**\n * Filter available options by text value.\n *\n * @public\n */\n private filterOptions(): void {\n if (!this.$fastController.isConnected) {\n return;\n }\n\n const filteredOptions: ListOption[] = [];\n for (const element of this.slottedOptions) {\n if (isListOptionGroup(element)) {\n if (element.hidden) {\n continue; // no need to process hidden groups\n }\n const groupOptions = this.getGroupOptions(element);\n const groupMatchesFilter = this.filterMatchesText(\n element.labelContent\n );\n groupOptions.forEach(option => {\n option.visuallyHidden = groupMatchesFilter\n ? false\n : this.isOptionHiddenOrFilteredOut(option);\n if (!option.visuallyHidden) {\n filteredOptions.push(option);\n }\n });\n } else if (isListOption(element)) {\n element.visuallyHidden = this.isOptionHiddenOrFilteredOut(element);\n if (!element.visuallyHidden) {\n filteredOptions.push(element);\n }\n }\n }\n\n this.filteredOptions = filteredOptions;\n }\n\n private getGroupOptions(group: ListOptionGroup): ListOption[] {\n return Array.from(group.children)\n .filter(el => isListOption(el))\n .map(el => {\n if (group.hidden && isListOption(el)) {\n el.visuallyHidden = true;\n }\n\n return el;\n }) as ListOption[];\n }\n\n /**\n * Sets the value and display value to match the first selected option.\n *\n * @param shouldEmit - if true, the input and change events will be emitted\n *\n * @internal\n */\n private updateValue(shouldEmit?: boolean): void {\n if (this.$fastController.isConnected) {\n this.value = this.firstSelectedOption?.value ?? '';\n }\n\n if (shouldEmit) {\n this.$emit('input');\n this.$emit('change', this, {\n bubbles: true,\n composed: undefined\n });\n }\n }\n\n private clearSelect(): void {\n const placeholder = this.getPlaceholderOption();\n this.selectedIndex = placeholder\n ? this.options.indexOf(placeholder)\n : -1;\n }\n\n /**\n * Resets and fills the proxy to match the component's options.\n *\n * @internal\n */\n private setProxyOptions(): void {\n if (this.proxy instanceof HTMLSelectElement && this.options) {\n this.proxy.options.length = 0;\n this.options.forEach(option => {\n const proxyOption = option.proxy\n || (option instanceof HTMLOptionElement\n ? option.cloneNode()\n : null);\n\n if (proxyOption) {\n this.proxy.options.add(proxyOption);\n }\n });\n }\n }\n\n private filterChanged(): void {\n this.filterOptions();\n }\n\n private emitFilterInputEvent(): void {\n const eventDetail: SelectFilterInputEventDetail = {\n filterText: this.filter\n };\n\n this.$emit('filter-input', eventDetail, { bubbles: true });\n }\n\n private initializeOpenState(): void {\n this.setActiveOption(this.selectedIndex);\n this.ariaControls = this.listboxId;\n this.ariaExpanded = 'true';\n\n this.setPositioning();\n this.focusAndScrollOptionIntoView();\n }\n}\n\nconst nimbleSelect = Select.compose<SelectOptions>({\n baseName: 'select',\n baseClass: FoundationSelect,\n template,\n styles,\n indicator: arrowExpanderDown16X16.data,\n end: html<Select>`\n <${iconExclamationMarkTag}\n severity=\"error\"\n class=\"error-icon\"\n ></${iconExclamationMarkTag}>\n ${errorTextTemplate}\n `\n});\n\napplyMixins(Select, StartEnd, DelegatesARIASelect);\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());\nexport const selectTag = 'nimble-select';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/select/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Based on: https://github.com/microsoft/fast/blob/%40microsoft/fast-foundation_v2.49.5/packages/web-components/fast-foundation/src/select/select.ts\nimport {\n attr,\n html,\n observable,\n Observable,\n volatile\n} from '@microsoft/fast-element';\nimport {\n AnchoredRegion,\n DesignSystem,\n Select as FoundationSelect,\n ListboxOption,\n SelectOptions,\n SelectPosition,\n applyMixins,\n StartEnd,\n DelegatesARIASelect\n} from '@microsoft/fast-foundation';\nimport {\n findLastIndex,\n keyArrowDown,\n keyArrowUp,\n keyEnd,\n keyEnter,\n keyEscape,\n keyHome,\n keySpace,\n uniqueId\n} from '@microsoft/fast-web-utilities';\nimport { arrowExpanderDown16X16 } from '@ni/nimble-tokens/dist/icons/js';\nimport { styles } from './styles';\nimport {\n DropdownAppearance,\n ListOptionOwner\n} from '../patterns/dropdown/types';\nimport { errorTextTemplate } from '../patterns/error/template';\nimport type { ErrorPattern } from '../patterns/error/types';\nimport { iconExclamationMarkTag } from '../icons/exclamation-mark';\nimport { isListOption, isListOptionGroup, template } from './template';\nimport type { ListOption } from '../list-option';\nimport { FilterMode, SelectFilterInputEventDetail } from './types';\nimport { diacriticInsensitiveStringNormalizer } from '../utilities/models/string-normalizers';\nimport { FormAssociatedSelect } from './models/select-form-associated';\nimport type { ListOptionGroup } from '../list-option-group';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nimble-select': Select;\n }\n}\n\n// Used in overrides of base class methods\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\ntype BooleanOrVoid = boolean | void;\n\nconst isOptionSelectable = (el: ListOption): boolean => {\n return !el.visuallyHidden && !el.disabled && !el.hidden;\n};\n\nconst isOptionPlaceholder = (el: ListboxOption): boolean => {\n return el.disabled && el.hidden;\n};\n\nconst isOptionOrGroupVisible = (el: ListOption | ListOptionGroup): boolean => {\n return !el.visuallyHidden && !el.hidden;\n};\n\n/**\n * A nimble-styled HTML select.\n */\nexport class Select\n extends FormAssociatedSelect\n implements ErrorPattern, ListOptionOwner {\n @attr\n public appearance: DropdownAppearance = DropdownAppearance.underline;\n\n /**\n * Reflects the placement for the listbox when the select is open.\n *\n * @public\n */\n @attr({ attribute: 'position' })\n public positionAttribute?: SelectPosition;\n\n /**\n * A message explaining why the value is invalid.\n *\n * @public\n * @remarks\n * HTML Attribute: error-text\n */\n @attr({ attribute: 'error-text' })\n public errorText: string | undefined;\n\n @attr({ attribute: 'error-visible', mode: 'boolean' })\n public errorVisible = false;\n\n @attr({ attribute: 'filter-mode' })\n public filterMode: FilterMode = FilterMode.none;\n\n @attr({ attribute: 'clearable', mode: 'boolean' })\n public clearable = false;\n\n @attr({ attribute: 'loading-visible', mode: 'boolean' })\n public loadingVisible = false;\n\n /**\n * @internal\n */\n @observable\n public displayPlaceholder = false;\n\n /**\n * @internal\n */\n @attr({ attribute: 'open', mode: 'boolean' })\n public open = false;\n\n /**\n * Holds the current state for the calculated position of the listbox.\n *\n * @public\n */\n @observable\n public position?: SelectPosition;\n\n /**\n * The ref to the internal `.control` element.\n *\n * @internal\n */\n @observable\n public control!: HTMLElement;\n\n /**\n * Reference to the internal listbox element.\n *\n * @internal\n */\n public listbox!: HTMLDivElement;\n\n /**\n * The unique id for the internal listbox element.\n *\n * @internal\n */\n public listboxId: string = uniqueId('listbox-');\n\n /**\n * @internal\n */\n @observable\n public scrollableRegion!: HTMLElement;\n\n /**\n * @internal\n */\n @observable\n public filterInput?: HTMLInputElement;\n\n /**\n * @internal\n */\n @observable\n public anchoredRegion!: AnchoredRegion;\n\n /** @internal */\n @observable\n public hasOverflow = false;\n\n /**\n * @internal\n */\n @observable\n public filteredOptions: ListboxOption[] = [];\n\n /**\n * @internal\n */\n @observable\n public filter = '';\n\n /**\n * The space available in the viewport for the listbox when opened.\n *\n * @internal\n */\n @observable\n public availableViewportHeight = 0;\n\n /**\n * The component is collapsible when in single-selection mode with no size attribute.\n *\n * @internal\n */\n @volatile\n public get collapsible(): boolean {\n return !(this.multiple || typeof this.size === 'number');\n }\n\n private _value = '';\n private forcedPosition = false;\n private openActiveIndex?: number;\n\n /**\n * @internal\n */\n public override connectedCallback(): void {\n super.connectedCallback();\n this.forcedPosition = !!this.positionAttribute;\n if (this.open) {\n this.initializeOpenState();\n }\n }\n\n public override get value(): string {\n Observable.track(this, 'value');\n return this._value;\n }\n\n public override set value(next: string) {\n const prev = this._value;\n let newValue = next;\n\n if (this.options?.length) {\n const newValueIndex = this.options.findIndex(\n el => el.value === newValue\n );\n const prevSelectedValue = this.options[this.selectedIndex]?.value ?? null;\n const nextSelectedValue = this.options[newValueIndex]?.value ?? null;\n\n if (\n newValueIndex === -1\n || prevSelectedValue !== nextSelectedValue\n ) {\n newValue = '';\n this.selectedIndex = newValueIndex;\n }\n\n newValue = this.firstSelectedOption?.value ?? newValue;\n }\n\n if (prev !== newValue) {\n this._value = newValue;\n super.valueChanged(prev, newValue);\n Observable.notify(this, 'value');\n this.updateDisplayValue();\n }\n }\n\n /**\n * @internal\n */\n @volatile\n public get displayValue(): string {\n Observable.track(this, 'displayValue');\n return this.firstSelectedOption?.text ?? '';\n }\n\n /**\n * @internal\n */\n public anchoredRegionChanged(\n _prev: AnchoredRegion | undefined,\n _next: AnchoredRegion | undefined\n ): void {\n if (this.anchoredRegion && this.control) {\n this.anchoredRegion.anchorElement = this.control;\n }\n }\n\n /**\n * @internal\n */\n public controlChanged(\n _prev: HTMLElement | undefined,\n _next: HTMLElement | undefined\n ): void {\n if (this.anchoredRegion && this.control) {\n this.anchoredRegion.anchorElement = this.control;\n }\n }\n\n /**\n * @internal\n */\n public override slottedOptionsChanged(\n prev: Element[] | undefined,\n next: Element[] | undefined\n ): void {\n const value = this.value;\n this.options.forEach(o => {\n const notifier = Observable.getNotifier(o);\n notifier.unsubscribe(this, 'value');\n notifier.unsubscribe(this, 'hidden');\n notifier.unsubscribe(this, 'disabled');\n });\n\n prev?.filter<ListOptionGroup>(isListOptionGroup).forEach(el => {\n const notifier = Observable.getNotifier(el);\n notifier.unsubscribe(this, 'hidden');\n notifier.unsubscribe(this, 'visuallyHidden');\n notifier.unsubscribe(this, 'listOptions');\n });\n const options = this.getSlottedOptions(next);\n super.slottedOptionsChanged(prev, options);\n\n options.forEach(o => {\n const notifier = Observable.getNotifier(o);\n notifier.subscribe(this, 'value');\n notifier.subscribe(this, 'hidden');\n notifier.subscribe(this, 'disabled');\n });\n next?.filter<ListOptionGroup>(isListOptionGroup).forEach(el => {\n this.updateAdjacentSeparatorState(el);\n const notifier = Observable.getNotifier(el);\n notifier.subscribe(this, 'hidden');\n notifier.subscribe(this, 'visuallyHidden');\n notifier.subscribe(this, 'listOptions');\n });\n this.setProxyOptions();\n this.updateValue();\n // We need to force an update to the filteredOptions observable\n // (by calling 'filterOptions()) so that the template correctly updates.\n this.filterOptions();\n if (value) {\n this.value = value;\n }\n }\n\n /**\n * @internal\n */\n public override clickHandler(e: MouseEvent): BooleanOrVoid {\n // do nothing if the select is disabled\n if (this.disabled) {\n return;\n }\n\n let optionClicked = false;\n if (this.open) {\n const captured = (e.target as HTMLElement).closest<ListOption>(\n 'option,[role=option]'\n );\n optionClicked = captured !== null;\n\n if (captured?.disabled) {\n return;\n }\n }\n\n const previousSelectedIndex = this.selectedIndex;\n super.clickHandler(e);\n\n if (\n this.open\n && this.selectedIndex !== previousSelectedIndex\n && optionClicked\n ) {\n this.updateValue(true);\n }\n this.open = this.collapsible && !this.open;\n }\n\n /**\n * Updates the value when an option's value changes.\n *\n * @param source - the source object\n * @param propertyName - the property to evaluate\n *\n * @internal\n * @override\n */\n public override handleChange(source: unknown, propertyName: string): void {\n // don't call super.handleChange so hidden options can be selected programmatically\n const sourceElement = source as Element;\n switch (propertyName) {\n case 'value': {\n this.updateValue();\n break;\n }\n case 'selected': {\n if (isListOption(sourceElement) && sourceElement.selected) {\n this.selectedIndex = this.options.indexOf(sourceElement);\n } else {\n this.clearSelect();\n }\n break;\n }\n case 'hidden': {\n if (isListOption(sourceElement)) {\n sourceElement.visuallyHidden = sourceElement.hidden;\n this.updateAdjacentSeparatorState(sourceElement);\n } else if (isListOptionGroup(sourceElement)) {\n sourceElement.listOptions.forEach(e => {\n e.visuallyHidden = sourceElement.hidden;\n });\n this.updateAdjacentSeparatorState(sourceElement);\n }\n this.filterOptions();\n this.updateDisplayValue();\n break;\n }\n case 'visuallyHidden': {\n if (\n isListOptionGroup(sourceElement)\n || isListOption(sourceElement)\n ) {\n this.updateAdjacentSeparatorState(sourceElement);\n }\n break;\n }\n case 'disabled': {\n this.updateDisplayValue();\n break;\n }\n case 'listOptions': {\n // force refresh of slotted options for groups\n this.slottedOptionsChanged(\n this.slottedOptions,\n this.slottedOptions\n );\n break;\n }\n default:\n break;\n }\n }\n\n /**\n * Prevents focus when size is set and a scrollbar is clicked.\n *\n * @param e - the mouse event object\n *\n * @override\n * @internal\n */\n public override mousedownHandler(e: MouseEvent): BooleanOrVoid {\n if (e.offsetX >= 0 && e.offsetX <= this.listbox?.scrollWidth) {\n return super.mousedownHandler(e);\n }\n\n return this.collapsible;\n }\n\n /**\n * @internal\n */\n public regionLoadedHandler(): void {\n this.focusAndScrollOptionIntoView();\n }\n\n /**\n * Sets the multiple property on the proxy element.\n *\n * @param prev - the previous multiple value\n * @param next - the current multiple value\n */\n public override multipleChanged(\n prev: boolean | undefined,\n next: boolean\n ): void {\n super.multipleChanged(prev, next);\n\n if (this.proxy) {\n this.proxy.multiple = next;\n }\n }\n\n /**\n * @internal\n */\n public ignoreClickHandler(e: MouseEvent): void {\n e.stopPropagation();\n }\n\n /**\n * @internal\n */\n public clearClickHandler(e: MouseEvent): void {\n this.open = false;\n this.clearSelect();\n this.updateValue(true);\n e.stopPropagation();\n }\n\n /**\n * @internal\n */\n public updateDisplayValue(): void {\n const placeholderOption = this.getPlaceholderOption();\n if (\n placeholderOption\n && this.firstSelectedOption === placeholderOption\n ) {\n this.displayPlaceholder = true;\n } else {\n this.displayPlaceholder = false;\n }\n\n Observable.notify(this, 'displayValue');\n }\n\n /**\n * Handle content changes on the control input.\n *\n * @param e - the input event\n * @internal\n */\n public inputHandler(e: InputEvent): boolean {\n this.filter = this.filterInput?.value ?? '';\n if (this.filterMode === FilterMode.standard) {\n this.filterOptions();\n\n const enabledOptions = this.filteredOptions.filter(\n o => !o.disabled\n );\n let activeOptionIndex = this.filter !== ''\n ? (this.openActiveIndex ?? this.selectedIndex)\n : this.selectedIndex;\n\n if (\n enabledOptions.length > 0\n && !enabledOptions.find(o => o === this.options[activeOptionIndex])\n ) {\n activeOptionIndex = this.options.indexOf(enabledOptions[0]!);\n } else if (enabledOptions.length === 0) {\n activeOptionIndex = -1;\n }\n this.setActiveOption(activeOptionIndex);\n }\n\n if (this.filterMode !== FilterMode.none) {\n this.emitFilterInputEvent();\n }\n\n if (e.inputType.includes('deleteContent') || !this.filter.length) {\n return true;\n }\n\n e.stopPropagation();\n return true;\n }\n\n /**\n * @internal\n */\n public override focusoutHandler(e: FocusEvent): BooleanOrVoid {\n super.focusoutHandler(e);\n if (!this.open) {\n return true;\n }\n\n this.open = false;\n const focusTarget = e.relatedTarget as HTMLElement;\n if (this.isSameNode(focusTarget)) {\n this.focus();\n return true;\n }\n\n return true;\n }\n\n /**\n * @internal\n */\n public override keydownHandler(e: KeyboardEvent): BooleanOrVoid {\n const initialSelectedIndex = this.selectedIndex;\n const key = e.key;\n if (e.ctrlKey || e.shiftKey) {\n return true;\n }\n\n if (key !== keyArrowDown && key !== keyArrowUp) {\n super.keydownHandler(e);\n }\n\n let currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;\n let commitValueThenClose = false;\n switch (key) {\n case keyArrowDown: {\n const selectedOption = this.options[this.selectedIndex];\n if (\n this.open\n && isListOption(selectedOption)\n && !isOptionOrGroupVisible(selectedOption)\n ) {\n if (this.openActiveIndex === this.selectedIndex) {\n this.selectFirstOption();\n } else {\n this.selectNextOption();\n }\n } else {\n super.keydownHandler(e);\n }\n\n // update currentActiveIndex again as dependent state may have changed\n currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;\n break;\n }\n case keyArrowUp: {\n const selectedOption = this.options[this.selectedIndex];\n if (\n this.open\n && isListOption(selectedOption)\n && !isOptionOrGroupVisible(selectedOption)\n ) {\n if (this.openActiveIndex === this.selectedIndex) {\n this.selectLastOption();\n } else {\n this.selectPreviousOption();\n }\n } else {\n super.keydownHandler(e);\n }\n\n // update currentActiveIndex again as dependent state may have changed\n currentActiveIndex = this.openActiveIndex ?? this.selectedIndex;\n break;\n }\n case keySpace: {\n // when dropdown is open allow user to enter a space for filter text\n if (this.open && this.filterMode !== FilterMode.none) {\n break;\n }\n\n e.preventDefault();\n if (this.collapsible && this.typeAheadExpired) {\n this.open = !this.open;\n }\n if (!this.open) {\n this.focus();\n }\n break;\n }\n case keyHome:\n case keyEnd: {\n e.preventDefault();\n break;\n }\n case keyEnter: {\n e.preventDefault();\n if (\n this.filteredOptions.length === 0\n || this.filteredOptions.every(o => o.disabled)\n ) {\n return false;\n }\n if (this.open) {\n commitValueThenClose = true;\n } else {\n this.open = true;\n }\n\n if (commitValueThenClose) {\n this.focus();\n }\n break;\n }\n case keyEscape: {\n if (!this.open) {\n if (this.clearable) {\n this.clearSelect();\n this.updateValue(true);\n return true;\n }\n\n break;\n }\n\n if (this.collapsible && this.open) {\n e.preventDefault();\n this.open = false;\n }\n\n currentActiveIndex = this.selectedIndex;\n this.focus();\n break;\n }\n\n default: {\n break;\n }\n }\n\n if (!this.open || commitValueThenClose) {\n if (this.selectedIndex !== currentActiveIndex) {\n this.selectedIndex = currentActiveIndex;\n }\n\n if (initialSelectedIndex !== this.selectedIndex) {\n this.updateValue(true);\n }\n }\n\n if (commitValueThenClose) {\n this.open = false;\n }\n\n return !(key === keyArrowDown || key === keyArrowUp);\n }\n\n /**\n * Updates the proxy value when the selected index changes.\n *\n * @param prev - the previous selected index\n * @param next - the next selected index\n *\n * @internal\n */\n public override selectedIndexChanged(\n _: number | undefined,\n __: number\n ): void {\n // Don't call super.selectedIndexChanged as this will disallow disabled options\n // from being valid initial selected values. Our setDefaultSelectedOption\n // implementation handles skipping non-selected disabled options for the initial\n // selected value.\n this.setSelectedOptions();\n if (this.open) {\n this.setActiveOption(this.selectedIndex);\n }\n this.updateValue();\n }\n\n /**\n * @internal\n * Fork of Listbox implementation, so that the selectedIndex is not changed while the dropdown\n * is open.\n */\n public override typeaheadBufferChanged(_: string, __: string): void {\n if (this.$fastController.isConnected) {\n const typeaheadMatches = this.getTypeaheadMatches();\n\n if (typeaheadMatches.length) {\n const activeOptionIndex = this.options.indexOf(\n typeaheadMatches[0] as ListOption\n );\n if (!(this.open && this.filterMode !== FilterMode.none)) {\n this.setActiveOption(activeOptionIndex);\n }\n }\n\n this.typeaheadExpired = false;\n }\n }\n\n /**\n * Synchronize the `aria-disabled` property when the `disabled` property changes.\n *\n * @param prev - The previous disabled value\n * @param next - The next disabled value\n *\n * @internal\n */\n public override disabledChanged(prev: boolean, next: boolean): void {\n if (super.disabledChanged) {\n super.disabledChanged(prev, next);\n }\n this.ariaDisabled = this.disabled ? 'true' : 'false';\n }\n\n /**\n * Reset the element to its first selectable option when its parent form is reset.\n *\n * @internal\n */\n public override formResetCallback(): void {\n this.setProxyOptions();\n // Call the base class's implementation setDefaultSelectedOption instead of the select's\n // override, in order to reset the selectedIndex without using the value property.\n super.setDefaultSelectedOption();\n if (this.selectedIndex === -1) {\n this.selectedIndex = 0;\n }\n }\n\n /**\n * @internal\n */\n public override selectNextOption(): void {\n // don't call super.selectNextOption as that relies on side-effecty\n // behavior to not select disabled option (which no longer works)\n const startIndex = this.openActiveIndex ?? this.selectedIndex;\n for (let i = startIndex + 1; i < this.options.length; i++) {\n const listOption = this.options[i]!;\n if (isListOption(listOption) && isOptionSelectable(listOption)) {\n this.setActiveOption(i);\n break;\n }\n }\n }\n\n /**\n * @internal\n */\n public override selectPreviousOption(): void {\n // don't call super.selectPreviousOption as that relies on side-effecty\n // behavior to not select disabled option (which no longer works)\n const startIndex = this.openActiveIndex ?? this.selectedIndex;\n for (let i = startIndex - 1; i >= 0; i--) {\n const listOption = this.options[i]!;\n if (isListOption(listOption) && isOptionSelectable(listOption)) {\n this.setActiveOption(i);\n break;\n }\n }\n }\n\n /**\n * @internal\n */\n public override selectFirstOption(): void {\n const newActiveOptionIndex = this.options.findIndex(\n o => isListOption(o) && isOptionSelectable(o)\n );\n this.setActiveOption(newActiveOptionIndex);\n }\n\n /**\n * @internal\n */\n public override selectLastOption(): void {\n const newActiveOptionIndex = findLastIndex(\n this.options,\n o => isListOption(o) && isOptionSelectable(o)\n );\n this.setActiveOption(newActiveOptionIndex);\n }\n\n /**\n * @internal\n */\n public registerOption(option: ListOption): void {\n if (this.options.includes(option)) {\n return;\n }\n\n // Adding an option to the end, ultimately, isn't the correct\n // thing to do, as this will mean the option's index in the options,\n // at least temporarily, does not match the DOM order. However, it\n // is expected that a successive run of `slottedOptionsChanged` will\n // correct this order issue. See 'https://github.com/ni/nimble/issues/1915'\n // for more info.\n this.options.push(option);\n }\n\n protected override setSelectedOptions(): void {\n // Prevents parent classes from resetting selectedIndex to a positive\n // value while filtering, which can result in a disabled option being\n // selected.\n if (this.open && this.selectedIndex === -1) {\n return;\n }\n super.setSelectedOptions();\n }\n\n protected override focusAndScrollOptionIntoView(): void {\n if (this.open) {\n super.focusAndScrollOptionIntoView();\n window.requestAnimationFrame(() => {\n this.filterInput?.focus();\n });\n }\n }\n\n protected override getTypeaheadMatches(): ListboxOption[] {\n const matches = super.getTypeaheadMatches();\n // Don't allow placeholder to be matched\n return matches.filter(o => !o.hidden && !o.disabled);\n }\n\n protected positionChanged(\n _: SelectPosition | undefined,\n next: SelectPosition | undefined\n ): void {\n this.positionAttribute = next;\n this.setPositioning();\n }\n\n /**\n * Updates the proxy's size property when the size attribute changes.\n *\n * @param prev - the previous size\n * @param next - the current size\n *\n * @override\n * @internal\n */\n protected override sizeChanged(\n prev: number | undefined,\n next: number\n ): void {\n super.sizeChanged(prev, next);\n\n if (this.proxy) {\n this.proxy.size = next;\n }\n }\n\n protected openChanged(): void {\n if (!this.collapsible) {\n return;\n }\n\n if (this.open) {\n this.initializeOpenState();\n return;\n }\n\n const activeOption = this.options[this.openActiveIndex ?? this.selectedIndex];\n if (isListOption(activeOption)) {\n activeOption.activeOption = false;\n }\n this.openActiveIndex = undefined;\n this.filter = '';\n if (this.filterInput) {\n this.filterInput.value = '';\n }\n\n if (this.filterMode !== FilterMode.none) {\n this.emitFilterInputEvent();\n }\n this.ariaControls = '';\n this.ariaExpanded = 'false';\n }\n\n /**\n * Updates the selectedness of each option when the list of selected options changes.\n *\n * @param prev - the previous list of selected options\n * @param next - the current list of selected options\n *\n * @override\n * @internal\n */\n protected override selectedOptionsChanged(\n _prev: ListboxOption[] | undefined,\n next: ListboxOption[]\n ): void {\n // don't call super.selectedOptionsChanged so we don't filter out hidden elements\n // when updating 'selected' state (copied relevant super implementation)\n this.options?.forEach((o, i) => {\n const notifier = Observable.getNotifier(o);\n notifier.unsubscribe(this, 'selected');\n o.selected = next.includes(o);\n notifier.subscribe(this, 'selected');\n const proxyOption = this.proxy?.options.item(i);\n if (proxyOption) {\n proxyOption.selected = o.selected;\n }\n });\n }\n\n /**\n * Sets the selected index to match the first option with the selected attribute, or\n * the first selectable option.\n *\n * @override\n * @internal\n */\n protected override setDefaultSelectedOption(): void {\n const options: ListboxOption[] = this.options\n ?? Array.from(this.children).filter(o => isListOption(o));\n\n const optionIsSelected = (option: ListboxOption): boolean => {\n return option.hasAttribute('selected') || option.selected;\n };\n let selectedIndex = -1;\n let firstValidOptionIndex = -1;\n let placeholderIndex = -1;\n for (let i = 0; i < options?.length; i++) {\n const option = options[i]!;\n if (optionIsSelected(option) || option.value === this.value) {\n selectedIndex = i;\n break;\n } else if (placeholderIndex === -1 && isOptionPlaceholder(option)) {\n placeholderIndex = i;\n } else if (\n firstValidOptionIndex === -1\n && isOptionSelectable(option as ListOption)\n ) {\n firstValidOptionIndex = i;\n }\n }\n\n if (selectedIndex !== -1) {\n this.selectedIndex = selectedIndex;\n } else if (placeholderIndex !== -1) {\n this.selectedIndex = placeholderIndex;\n } else if (firstValidOptionIndex !== -1) {\n this.selectedIndex = firstValidOptionIndex;\n } else {\n this.selectedIndex = 0;\n }\n }\n\n private getSlottedOptions(\n slottedElements: Element[] | undefined\n ): ListboxOption[] {\n const options: ListOption[] = [];\n slottedElements?.forEach(el => {\n if (isListOption(el)) {\n options.push(el);\n } else if (isListOptionGroup(el)) {\n options.push(...this.getGroupOptions(el));\n }\n });\n\n return options;\n }\n\n private setActiveOption(newActiveIndex: number): void {\n const activeOption = this.options[newActiveIndex];\n if (this.open) {\n if (isListOption(activeOption)) {\n activeOption.activeOption = true;\n }\n\n const previousActiveIndex = this.openActiveIndex ?? this.selectedIndex;\n const previousActiveOption = this.options[previousActiveIndex];\n if (\n previousActiveIndex !== newActiveIndex\n && isListOption(previousActiveOption)\n ) {\n previousActiveOption.activeOption = false;\n }\n\n this.openActiveIndex = newActiveIndex;\n this.focusAndScrollActiveOptionIntoView();\n } else {\n this.selectedIndex = newActiveIndex;\n }\n\n this.ariaActiveDescendant = activeOption?.id ?? '';\n }\n\n private focusAndScrollActiveOptionIntoView(): void {\n const optionToFocus = this.options[this.openActiveIndex ?? this.selectedIndex];\n // Copied from FAST: To ensure that the browser handles both `focus()` and\n // `scrollIntoView()`, the timing here needs to guarantee that they happen on\n // different frames. Since this function is typically called from the `openChanged`\n // observer, `DOM.queueUpdate` causes the calls to be grouped into the same frame.\n // To prevent this, `requestAnimationFrame` is used instead of `DOM.queueUpdate`.\n if (optionToFocus !== undefined && this.contains(optionToFocus)) {\n optionToFocus.focus();\n requestAnimationFrame(() => {\n optionToFocus.scrollIntoView({ block: 'nearest' });\n });\n }\n }\n\n private getPlaceholderOption(): ListOption | undefined {\n return this.options.find(o => o.hidden && o.disabled) as ListOption;\n }\n\n private setPositioning(): void {\n if (!this.$fastController.isConnected) {\n // Don't call setPositioning() until we're connected,\n // since this.forcedPosition isn't initialized yet.\n return;\n }\n const currentBox = this.getBoundingClientRect();\n const viewportHeight = window.innerHeight;\n const availableBottom = viewportHeight - currentBox.bottom;\n\n if (this.forcedPosition) {\n this.position = this.positionAttribute;\n } else if (currentBox.top > availableBottom) {\n this.position = SelectPosition.above;\n } else {\n this.position = SelectPosition.below;\n }\n\n this.positionAttribute = this.forcedPosition\n ? this.positionAttribute\n : this.position;\n\n this.availableViewportHeight = this.position === SelectPosition.above\n ? Math.trunc(currentBox.top)\n : Math.trunc(availableBottom);\n }\n\n private updateAdjacentSeparatorState(\n element: ListOptionGroup | ListOption\n ): void {\n const previousElement = this.getPreviousVisibleOptionOrGroup(element);\n const nextElement = this.getNextVisibleOptionOrGroup(element);\n\n if (isOptionOrGroupVisible(element)) {\n const topSeparatorVisible = isListOption(previousElement);\n this.setTopSeparatorState(element, topSeparatorVisible);\n const bottomSeparatorVisible = nextElement !== null;\n this.setBottomSeparatorState(element, bottomSeparatorVisible);\n this.setBottomSeparatorState(previousElement, true);\n } else {\n const nextTopSeparatorVisible = isListOption(previousElement);\n this.setTopSeparatorState(nextElement, nextTopSeparatorVisible);\n const previousBottomSeparatorVisible = nextElement !== null;\n this.setBottomSeparatorState(\n previousElement,\n previousBottomSeparatorVisible\n );\n }\n }\n\n private setTopSeparatorState(\n element: ListOptionGroup | ListOption | null,\n visible: boolean\n ): void {\n if (isListOptionGroup(element)) {\n element.topSeparatorVisible = visible;\n }\n }\n\n private setBottomSeparatorState(\n element: ListOptionGroup | ListOption | null,\n visible: boolean\n ): void {\n if (isListOptionGroup(element)) {\n element.bottomSeparatorVisible = visible;\n }\n }\n\n private getPreviousVisibleOptionOrGroup(\n element: HTMLElement\n ): ListOption | ListOptionGroup | null {\n let previousElement = element.previousElementSibling;\n while (previousElement) {\n if (\n (isListOption(previousElement)\n || isListOptionGroup(previousElement))\n && isOptionOrGroupVisible(previousElement)\n ) {\n return previousElement;\n }\n previousElement = previousElement.previousElementSibling;\n }\n return null;\n }\n\n private getNextVisibleOptionOrGroup(\n element: HTMLElement\n ): ListOption | ListOptionGroup | null {\n let nextElement = element.nextElementSibling;\n while (nextElement) {\n if (\n (isListOption(nextElement) || isListOptionGroup(nextElement))\n && isOptionOrGroupVisible(nextElement)\n ) {\n return nextElement;\n }\n nextElement = nextElement.nextElementSibling;\n }\n return null;\n }\n\n private isOptionHiddenOrFilteredOut(option: ListOption): boolean {\n if (option.hidden) {\n return true;\n }\n return this.filterMode === FilterMode.standard\n ? !this.filterMatchesText(option.text)\n : false;\n }\n\n private filterMatchesText(text: string): boolean {\n const filter = this.filter.toLowerCase();\n const normalizedFilter = diacriticInsensitiveStringNormalizer(filter);\n return diacriticInsensitiveStringNormalizer(text).includes(\n normalizedFilter\n );\n }\n\n /**\n * Filter available options by text value.\n *\n * @public\n */\n private filterOptions(): void {\n if (!this.$fastController.isConnected) {\n return;\n }\n\n const filteredOptions: ListOption[] = [];\n for (const element of this.slottedOptions) {\n if (isListOptionGroup(element)) {\n if (element.hidden) {\n continue; // no need to process hidden groups\n }\n const groupOptions = this.getGroupOptions(element);\n const groupMatchesFilter = this.filterMatchesText(\n element.labelContent\n );\n groupOptions.forEach(option => {\n option.visuallyHidden = groupMatchesFilter\n ? false\n : this.isOptionHiddenOrFilteredOut(option);\n if (!option.visuallyHidden) {\n filteredOptions.push(option);\n }\n });\n } else if (isListOption(element)) {\n element.visuallyHidden = this.isOptionHiddenOrFilteredOut(element);\n if (!element.visuallyHidden) {\n filteredOptions.push(element);\n }\n }\n }\n\n this.filteredOptions = filteredOptions;\n }\n\n private getGroupOptions(group: ListOptionGroup): ListOption[] {\n return Array.from(group.children)\n .filter(el => isListOption(el))\n .map(el => {\n if (group.hidden && isListOption(el)) {\n el.visuallyHidden = true;\n }\n\n return el;\n }) as ListOption[];\n }\n\n /**\n * Sets the value and display value to match the first selected option.\n *\n * @param shouldEmit - if true, the input and change events will be emitted\n *\n * @internal\n */\n private updateValue(shouldEmit?: boolean): void {\n if (this.$fastController.isConnected) {\n this.value = this.firstSelectedOption?.value ?? '';\n }\n\n if (shouldEmit) {\n this.$emit('input');\n this.$emit('change', this, {\n bubbles: true,\n composed: undefined\n });\n }\n }\n\n private clearSelect(): void {\n const placeholder = this.getPlaceholderOption();\n this.selectedIndex = placeholder\n ? this.options.indexOf(placeholder)\n : -1;\n }\n\n /**\n * Resets and fills the proxy to match the component's options.\n *\n * @internal\n */\n private setProxyOptions(): void {\n if (this.proxy instanceof HTMLSelectElement && this.options) {\n this.proxy.options.length = 0;\n this.options.forEach(option => {\n const proxyOption = option.proxy\n || (option instanceof HTMLOptionElement\n ? option.cloneNode()\n : null);\n\n if (proxyOption) {\n this.proxy.options.add(proxyOption);\n }\n });\n }\n }\n\n private filterChanged(): void {\n this.filterOptions();\n }\n\n private emitFilterInputEvent(): void {\n const eventDetail: SelectFilterInputEventDetail = {\n filterText: this.filter\n };\n\n this.$emit('filter-input', eventDetail, { bubbles: true });\n }\n\n private initializeOpenState(): void {\n this.setActiveOption(this.selectedIndex);\n this.ariaControls = this.listboxId;\n this.ariaExpanded = 'true';\n\n this.setPositioning();\n this.focusAndScrollOptionIntoView();\n }\n}\n\nconst nimbleSelect = Select.compose<SelectOptions>({\n baseName: 'select',\n baseClass: FoundationSelect,\n template,\n styles,\n indicator: arrowExpanderDown16X16.data,\n end: html<Select>`\n <${iconExclamationMarkTag}\n severity=\"error\"\n class=\"error-icon\"\n ></${iconExclamationMarkTag}>\n ${errorTextTemplate}\n `\n});\n\napplyMixins(Select, StartEnd, DelegatesARIASelect);\nDesignSystem.getOrCreate().withPrefix('nimble').register(nimbleSelect());\nexport const selectTag = 'nimble-select';\n"]}
|
|
@@ -227,6 +227,20 @@ export const comments = {
|
|
|
227
227
|
mentionFontFamily: 'Font family for mention views',
|
|
228
228
|
mentionFontSize: 'Font size for mention views',
|
|
229
229
|
mentionFontWeight: 'Font weight for mention views',
|
|
230
|
-
mentionFontLineHeight: 'Font line height for mention views'
|
|
230
|
+
mentionFontLineHeight: 'Font line height for mention views',
|
|
231
|
+
calendarEventBackgroundStaticColor: 'Background color for static calendar events',
|
|
232
|
+
calendarEventBackgroundDynamicColor: 'Background color for dynamic calendar events',
|
|
233
|
+
calendarEventBackgroundTransientColor: 'Background color for transient calendar events',
|
|
234
|
+
calendarEventBorderStaticColor: 'Border color for static calendar events',
|
|
235
|
+
calendarEventBorderTransientColor: 'Border color for transient calendar events',
|
|
236
|
+
calendarEventStaticFontColor: 'Font color for static calendar events',
|
|
237
|
+
calendarEventDynamicFontColor: 'Font color for dynamic calendar events',
|
|
238
|
+
calendarEventTransientFontColor: 'Font color for transient calendar events',
|
|
239
|
+
calendarEventBackgroundHoverStaticColor: 'Color while hovering static calendar events',
|
|
240
|
+
calendarEventBackgroundHoverDynamicColor: 'Color while hovering dynamic calendar events',
|
|
241
|
+
calendarEventBackgroundHoverTransientColor: 'Color while hovering transient calendar events',
|
|
242
|
+
calendarRowBackgroundSelectedColor: 'Background color while calendar resource is selected/highlighted',
|
|
243
|
+
calendarEventFillBlockedColor: 'Background fill to indicate the occupied slots in calendar resource rows',
|
|
244
|
+
calendarGrabHandleBackgroundColor: 'Background fill color for the editable calendar event grab handle'
|
|
231
245
|
};
|
|
232
246
|
//# sourceMappingURL=design-token-comments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-token-comments.js","sourceRoot":"","sources":["../../../src/theme-provider/design-token-comments.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as TokensNamespace from './design-tokens';\n\ntype TokenName = keyof typeof TokensNamespace;\n\nexport const comments: { readonly [key in TokenName]: string } = {\n actionRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n applicationBackgroundColor: 'Primary background color for the application',\n dividerBackgroundColor: 'Divider background color',\n headerBackgroundColor: 'Background color for application headers',\n sectionBackgroundColor: 'Background color for sections',\n buttonFillPrimaryColor:\n 'Control fill color for \"primary\" appearance-variant buttons',\n buttonPrimaryFontColor:\n 'Font color for \"primary\" appearance-variant buttons',\n buttonFillAccentColor:\n 'Control fill color for \"accent\" appearance-variant buttons',\n buttonAccentBlockFontColor:\n 'Font color for \"accent\" appearance-variant block buttons',\n buttonAccentOutlineFontColor:\n 'Font color for \"accent\" appearance-variant outline buttons',\n buttonBorderAccentOutlineColor:\n 'Border color for \"accent\" appearance-variant outline buttons',\n fillSelectedColor: 'Control fill color when a control is selected',\n fillSelectedRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n fillHoverSelectedColor:\n 'Control fill color when hovering a selected control',\n fillHoverColor: 'Control fill color when hovering component',\n fillHoverRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n fillDownColor: 'Control fill color when mousedown event occurs',\n borderColor: 'Standard control outline or border color',\n borderRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n failColor: 'Used to highlight errors or invalid input',\n warningColor:\n 'Used to highlight invalid input or for icons to indicate that a process errored or failed',\n passColor:\n 'Used to highlight a correct state or the successful completion of a process',\n informationColor:\n 'Used to highlight information, which provides more details on the item',\n borderHoverColor: 'Border color when hovering component',\n iconColor: 'Equivalent to the font color for icons',\n modalBackdropColor: 'Color of background overlay behind modal dialog boxes',\n popupBorderColor: 'Border color for menus and dialog boxes',\n cardBorderColor: 'Border color for cards',\n tagFillColor: 'Background fill color for tags, chips, or pills',\n controlHeight:\n 'Standard layout height for all controls. Add \"labelHeight\" for labels on top.',\n controlSlimHeight:\n 'Height of controls that are somewhat shorter than standard height.',\n smallPadding: 'Fixed 4px size ramp token for component layout',\n mediumPadding: 'Fixed 8px size ramp token for component layout',\n standardPadding: 'Fixed 16px size ramp token for component layout',\n largePadding: 'Fixed 24px size ramp token for component layout',\n labelHeight:\n 'Standard label height for components. Set the label font rather than explicitly setting the height for a label.',\n borderWidth: 'Standard border width for most components',\n iconSize: 'Standard layout height for all icons',\n groupHeaderTextTransform: 'CSS text-transform string to use for headers',\n drawerWidth: 'TODO: delete when able',\n dialogSmallWidth:\n 'Standard width for small dialogs like a confirmation dialog.',\n dialogSmallHeight:\n 'Standard height for small dialogs like a confirmation dialog.',\n dialogSmallMaxHeight:\n 'Standard maximum height for small dialogs like a confirmation dialog.',\n dialogLargeWidth: 'Standard width for large dialogs.',\n dialogLargeHeight: 'Standard height for large dialogs.',\n dialogLargeMaxHeight: 'Standard maximum height for large dialogs.',\n menuMinWidth: 'Standard menu min width for menu popup.',\n bannerGapSize: 'Space between stacked banners',\n spinnerSmallHeight: 'Small height (16px) for a spinner component',\n spinnerMediumHeight: 'Medium height (32px) for a spinner component',\n spinnerLargeHeight: 'Large height (64px) for a spinner component',\n smallDelay:\n 'Elements with small transition areas, such as icons and selection controls, have short durations.',\n mediumDelay:\n 'Elements with larger transition areas, such as bottom sheets and expanding chips, have slightly longer durations.',\n largeDelay:\n 'Animated elements that traverse a large portion of the screen have the longest durations.',\n headlinePlus1Font: 'Font shorthand for the \"Headline_2\" base token',\n headlinePlus1FontColor: 'Font color for the \"Headline_2\" base token',\n headlinePlus1DisabledFontColor:\n 'Disabled font color for the \"Headline_2\" base token',\n headlinePlus1FontFamily: 'Font family for the \"Headline_2\" base token',\n headlinePlus1FontSize: 'Font size for the \"Headline_2\" base token',\n headlinePlus1FontWeight: 'Font weight for the \"Headline_2\" base token',\n headlinePlus1FontLineHeight:\n 'Font line height for the \"Headline_2\" base token',\n headlineFont: 'Font shorthand for the \"Headline_1\" base token',\n headlineFontColor: 'Font color for the \"Headline_1\" base token',\n headlineDisabledFontColor:\n 'Disabled font color for the \"Headline_1\" base token',\n headlineFontFamily: 'Font family for the \"Headline_1\" base token',\n headlineFontSize: 'Font size for the \"Headline_1\" base token',\n headlineFontWeight: 'Font weight for the \"Headline_1\" base token',\n headlineFontLineHeight: 'Font line height for the \"Headline_1\" base token',\n tableHeaderFont: 'Font shorthand for the \"Grid_Header\" base token',\n tableHeaderFontColor: 'Font color for the \"Grid_Header\" base token',\n tableHeaderDisabledFontColor:\n 'Disabled font color for the \"Grid_Header\" base token',\n tableHeaderFontFamily: 'Font family for the \"Grid_Header\" base token',\n tableHeaderFontSize: 'Font size for the \"Grid_Header\" base token',\n tableHeaderFontWeight: 'Font weight for the \"Grid_Header\" base token',\n tableHeaderFontLineHeight:\n 'Font line height for the \"Grid_Header\" base token',\n titlePlus2Font: 'Font shorthand for the \"Title_3\" base token',\n titlePlus2FontColor: 'Font color for the \"Title_3\" base token',\n titlePlus2DisabledFontColor:\n 'Disabled font color for the \"Title_3\" base token',\n titlePlus2FontFamily: 'Font family for the \"Title_3\" base token',\n titlePlus2FontSize: 'Font size for the \"Title_3\" base token',\n titlePlus2FontWeight: 'Font weight for the \"Title_3\" base token',\n titlePlus2FontLineHeight: 'Font line height for the \"Title_3\" base token',\n titlePlus1Font: 'Font shorthand for the \"Title_2\" base token',\n titlePlus1FontColor: 'Font color for the \"Title_2\" base token',\n titlePlus1DisabledFontColor:\n 'Disabled font color for the \"Title_2\" base token',\n titlePlus1FontFamily: 'Font family for the \"Title_2\" base token',\n titlePlus1FontSize: 'Font size for the \"Title_2\" base token',\n titlePlus1FontWeight: 'Font weight for the \"Title_2\" base token',\n titlePlus1FontLineHeight: 'Font line height for the \"Title_2\" base token',\n titleFont: 'Font shorthand for the \"Title_1\" base token',\n titleFontColor: 'Font color for the \"Title_1\" base token',\n titleDisabledFontColor: 'Disabled font color for the \"Title_1\" base token',\n titleFontFamily: 'Font family for the \"Title_1\" base token',\n titleFontSize: 'Font size for the \"Title_1\" base token',\n titleFontWeight: 'Font weight for the \"Title_1\" base token',\n titleFontLineHeight: 'Font line height for the \"Title_1\" base token',\n subtitlePlus1Font: 'Font shorthand for the \"Subtitle_2\" base token',\n subtitlePlus1FontColor: 'Font color for the \"Subtitle_2\" base token',\n subtitlePlus1DisabledFontColor:\n 'Disabled font color for the \"Subtitle_2\" base token',\n subtitlePlus1FontFamily: 'Font family for the \"Subtitle_2\" base token',\n subtitlePlus1FontSize: 'Font size for the \"Subitle_2\" base token',\n subtitlePlus1FontWeight: 'Font weight for the \"Subtitle_2\" base token',\n subtitlePlus1FontLineHeight:\n 'Font line height for the \"Subtitle_2\" base token',\n subtitleFont: 'Font shorthand for the \"Subtitle_1\" base token',\n subtitleFontColor: 'Font color for the \"Subtitle_1\" base token',\n subtitleDisabledFontColor:\n 'Disabled font color for the \"Subtitle_1\" base token',\n subtitleFontFamily: 'Font family for the \"Subtitle_1\" base token',\n subtitleFontSize: 'Font size for the \"Subitle_1\" base token',\n subtitleFontWeight: 'Font weight for the \"Subtitle_1\" base token',\n subtitleFontLineHeight: 'Font line height for the \"Subtitle_1\" base token',\n linkFont: 'Font shorthand for links',\n linkFontColor: 'Font color for links',\n linkDisabledFontColor: 'Disabled font color for links',\n linkFontFamily: 'Font family for links',\n linkFontSize: 'Font size for links',\n linkFontWeight: 'Font weight for links',\n linkFontLineHeight: 'Font line height for links',\n linkActiveFont: 'Font shorthand for active links',\n linkActiveFontColor: 'Font color for active links',\n linkActiveDisabledFontColor: 'Disabled font color for active links',\n linkActiveFontFamily: 'Font family for active links',\n linkActiveFontSize: 'Font size for active links',\n linkActiveFontWeight: 'Font weight for active links',\n linkActiveFontLineHeight: 'Font line height for active links',\n linkProminentFont: 'Font shorthand for prominent links',\n linkProminentFontColor: 'Font color for prominent links',\n linkProminentDisabledFontColor: 'Disabled font color for prominent links',\n linkProminentFontFamily: 'Font family for prominent links',\n linkProminentFontSize: 'Font size for prominent links',\n linkProminentFontWeight: 'Font weight for prominent links',\n linkProminentFontLineHeight: 'Font line height for prominent links',\n linkActiveProminentFont: 'Font shorthand for active prominent links',\n linkActiveProminentFontColor: 'Font color for active prominent links',\n linkActiveProminentDisabledFontColor:\n 'Disabled font color for active prominent links',\n linkActiveProminentFontFamily: 'Font family for active prominent links',\n linkActiveProminentFontSize: 'Font size for active prominent links',\n linkActiveProminentFontWeight: 'Font weight for active prominent links',\n linkActiveProminentFontLineHeight:\n 'Font line height for active prominent links',\n placeholderFont: 'Font shorthand for the \"Placeholder\" base token',\n placeholderFontColor: 'Font color for the \"Placeholder\" base token',\n placeholderDisabledFontColor:\n 'Disabled font color for the \"Placeholder\" base token',\n placeholderFontFamily: 'Font family for the \"Placeholder\" base token',\n placeholderFontSize: 'Font size for the \"Placeholder\" base token',\n placeholderFontWeight: 'Font weight for the \"Placeholder\" base token',\n placeholderFontLineHeight:\n 'Font line height for the \"Placeholder\" base token',\n bodyFont: 'Font shorthand for the \"Body\" base token',\n bodyFontColor: 'Font color for the \"Body\" base token',\n bodyDisabledFontColor: 'Disabled font color for the \"Body\" base token',\n bodyFontFamily: 'Font family for the \"Body\" base token',\n bodyFontSize: 'Font size for the \"Body\" base token',\n bodyFontWeight: 'Font weight for the \"Body\" base token',\n bodyFontLineHeight: 'Font line height for the \"Body\" base token',\n bodyEmphasizedFont: 'Font shorthand for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontColor: 'Font color for the \"BodyEmphasized\" base token',\n bodyEmphasizedDisabledFontColor:\n 'Disabled font color for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontFamily: 'Font family for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontSize: 'Font size for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontWeight: 'Font weight for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontLineHeight:\n 'Font line height for the \"BodyEmphasized\" base token',\n bodyPlus1Font: 'Font shorthand for the \"Body_2\" base token',\n bodyPlus1FontColor: 'Font color for the \"Body_2\" base token',\n bodyPlus1DisabledFontColor:\n 'Disabled font color for the \"Body_2\" base token',\n bodyPlus1FontFamily: 'Font family for the \"Body_2\" base token',\n bodyPlus1FontSize: 'Font size for the \"Body_2\" base token',\n bodyPlus1FontWeight: 'Font weight for the \"Body_2\" base token',\n bodyPlus1FontLineHeight: 'Font line height for the \"Body_2\" base token',\n bodyPlus1EmphasizedFont:\n 'Font shorthand for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontColor:\n 'Font color for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedDisabledFontColor:\n 'Disabled font color for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontFamily:\n 'Font family for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontSize:\n 'Font size for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontWeight:\n 'Font weight for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontLineHeight:\n 'Font line height for the \"BodyEmphasized_2\" base token',\n groupHeaderFont: 'Font shorthand for the \"Group_Header_1\" base token',\n groupHeaderFontColor: 'Font color for the \"Group_Header_1\" base token',\n groupHeaderDisabledFontColor:\n 'Disabled font color for the\"Group_Header_1\" base token',\n groupHeaderFontFamily: 'Font family for the \"Group_Header_1\" base token',\n groupHeaderFontSize: 'Font size for the \"Group_Header_1\" base token',\n groupHeaderFontWeight: 'Font weight for the \"Group_Header_1\" base token',\n groupHeaderFontLineHeight:\n 'Font line height for the \"Group_Header_1\" base token',\n controlLabelFont: 'Font shorthand for the \"Control_Label_1\" base token',\n controlLabelFontColor: 'Font color for the \"Control_Label_1\" base token',\n controlLabelDisabledFontColor:\n 'Disabled font color for the \"Control_Label_1\" base token',\n controlLabelFontFamily: 'Font family for the \"Control_Label_1\" base token',\n controlLabelFontSize: 'Font size for the \"Control_Label_1\" base token',\n controlLabelFontWeight: 'Font weight for the \"Control_Label_1\" base token',\n controlLabelFontLineHeight:\n 'Font line height for the \"Control_Label_1\" base token',\n buttonLabelFont: 'Font shorthand for the \"Button_Label_1\" base token',\n buttonLabelFontColor: 'Font color for the \"Button_Label_1\" base token',\n buttonLabelDisabledFontColor:\n 'Disabled font color for the \"Button_Label_1\" base token',\n buttonLabelFontFamily: 'Font family for the \"Button_Label_1\" base token',\n buttonLabelFontSize: 'Font size for the \"Button_Label_1\" base token',\n buttonLabelFontWeight: 'Font weight for the \"Button_Label_1\" base token',\n buttonLabelFontLineHeight:\n 'Font line height for the \"Button_Label_1\" base token',\n tooltipCaptionFont: 'Font shorthand for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontColor: 'Font color for the \"Tooltip_Caption\" base token',\n tooltipCaptionDisabledFontColor:\n 'Disabled font color for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontFamily:\n 'Font family for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontSize: 'Font size for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontWeight:\n 'Font weight for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontLineHeight:\n 'Font line height for the \"Tooltip_Caption\" base token',\n tooltipBackgroundColor: 'Default background color for tooltips',\n errorTextFont: 'Font shorthand for the \"Error_LightUi\" base token',\n errorTextFontColor: 'Font color for the \"Error_LightUi\" base token',\n errorTextDisabledFontColor:\n 'Disabled font color for the \"Error_LightUi\" base token',\n errorTextFontFamily: 'Font family for the \"Error_LightUi\" base token',\n errorTextFontSize: 'Font size for the \"Error_LightUi\" base token',\n errorTextFontWeight: 'Font weight for the \"Error_LightUi\" base token',\n errorTextFontLineHeight:\n 'Font line height for the \"Error_LightUi\" base token',\n tableRowBorderColor: 'Color for the border of rows in the table',\n elevation1BoxShadow:\n 'The box shadow for elevation 1. Used for component hover states.',\n elevation2BoxShadow:\n 'The box shadow for elevation 2. Used for components such as menus, banners, tooltips, error notifications, and scrolling.',\n elevation3BoxShadow:\n 'The box shadow for elevation 3. Used for components such as dialogs, overlays, and pop-ups.',\n graphGridlineColor: 'Gridline color for graphs',\n graphTrace1Color: 'Color for the first graph trace',\n graphTrace2Color: 'Color for the second graph trace',\n graphTrace3Color: 'Color for the third graph trace',\n graphTrace4Color: 'Color for the fourth graph trace',\n graphTrace5Color: 'Color for the fifth graph trace',\n graphTrace6Color: 'Color for the sixth graph trace',\n graphTrace7Color: 'Color for the seventh graph trace',\n graphTrace8Color: 'Color for the eighth graph trace',\n mentionFont: 'Font shorthand for mention views',\n mentionFontColor: 'Font color for mention views',\n mentionDisabledFontColor: 'Disabled font color for mention views',\n mentionFontFamily: 'Font family for mention views',\n mentionFontSize: 'Font size for mention views',\n mentionFontWeight: 'Font weight for mention views',\n mentionFontLineHeight: 'Font line height for mention views'\n};\n"]}
|
|
1
|
+
{"version":3,"file":"design-token-comments.js","sourceRoot":"","sources":["../../../src/theme-provider/design-token-comments.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as TokensNamespace from './design-tokens';\n\ntype TokenName = keyof typeof TokensNamespace;\n\nexport const comments: { readonly [key in TokenName]: string } = {\n actionRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n applicationBackgroundColor: 'Primary background color for the application',\n dividerBackgroundColor: 'Divider background color',\n headerBackgroundColor: 'Background color for application headers',\n sectionBackgroundColor: 'Background color for sections',\n buttonFillPrimaryColor:\n 'Control fill color for \"primary\" appearance-variant buttons',\n buttonPrimaryFontColor:\n 'Font color for \"primary\" appearance-variant buttons',\n buttonFillAccentColor:\n 'Control fill color for \"accent\" appearance-variant buttons',\n buttonAccentBlockFontColor:\n 'Font color for \"accent\" appearance-variant block buttons',\n buttonAccentOutlineFontColor:\n 'Font color for \"accent\" appearance-variant outline buttons',\n buttonBorderAccentOutlineColor:\n 'Border color for \"accent\" appearance-variant outline buttons',\n fillSelectedColor: 'Control fill color when a control is selected',\n fillSelectedRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n fillHoverSelectedColor:\n 'Control fill color when hovering a selected control',\n fillHoverColor: 'Control fill color when hovering component',\n fillHoverRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n fillDownColor: 'Control fill color when mousedown event occurs',\n borderColor: 'Standard control outline or border color',\n borderRgbPartialColor:\n 'DEPRECATED: *-partial tokens are used with rgba() to set color transparency in component stylesheets',\n failColor: 'Used to highlight errors or invalid input',\n warningColor:\n 'Used to highlight invalid input or for icons to indicate that a process errored or failed',\n passColor:\n 'Used to highlight a correct state or the successful completion of a process',\n informationColor:\n 'Used to highlight information, which provides more details on the item',\n borderHoverColor: 'Border color when hovering component',\n iconColor: 'Equivalent to the font color for icons',\n modalBackdropColor: 'Color of background overlay behind modal dialog boxes',\n popupBorderColor: 'Border color for menus and dialog boxes',\n cardBorderColor: 'Border color for cards',\n tagFillColor: 'Background fill color for tags, chips, or pills',\n controlHeight:\n 'Standard layout height for all controls. Add \"labelHeight\" for labels on top.',\n controlSlimHeight:\n 'Height of controls that are somewhat shorter than standard height.',\n smallPadding: 'Fixed 4px size ramp token for component layout',\n mediumPadding: 'Fixed 8px size ramp token for component layout',\n standardPadding: 'Fixed 16px size ramp token for component layout',\n largePadding: 'Fixed 24px size ramp token for component layout',\n labelHeight:\n 'Standard label height for components. Set the label font rather than explicitly setting the height for a label.',\n borderWidth: 'Standard border width for most components',\n iconSize: 'Standard layout height for all icons',\n groupHeaderTextTransform: 'CSS text-transform string to use for headers',\n drawerWidth: 'TODO: delete when able',\n dialogSmallWidth:\n 'Standard width for small dialogs like a confirmation dialog.',\n dialogSmallHeight:\n 'Standard height for small dialogs like a confirmation dialog.',\n dialogSmallMaxHeight:\n 'Standard maximum height for small dialogs like a confirmation dialog.',\n dialogLargeWidth: 'Standard width for large dialogs.',\n dialogLargeHeight: 'Standard height for large dialogs.',\n dialogLargeMaxHeight: 'Standard maximum height for large dialogs.',\n menuMinWidth: 'Standard menu min width for menu popup.',\n bannerGapSize: 'Space between stacked banners',\n spinnerSmallHeight: 'Small height (16px) for a spinner component',\n spinnerMediumHeight: 'Medium height (32px) for a spinner component',\n spinnerLargeHeight: 'Large height (64px) for a spinner component',\n smallDelay:\n 'Elements with small transition areas, such as icons and selection controls, have short durations.',\n mediumDelay:\n 'Elements with larger transition areas, such as bottom sheets and expanding chips, have slightly longer durations.',\n largeDelay:\n 'Animated elements that traverse a large portion of the screen have the longest durations.',\n headlinePlus1Font: 'Font shorthand for the \"Headline_2\" base token',\n headlinePlus1FontColor: 'Font color for the \"Headline_2\" base token',\n headlinePlus1DisabledFontColor:\n 'Disabled font color for the \"Headline_2\" base token',\n headlinePlus1FontFamily: 'Font family for the \"Headline_2\" base token',\n headlinePlus1FontSize: 'Font size for the \"Headline_2\" base token',\n headlinePlus1FontWeight: 'Font weight for the \"Headline_2\" base token',\n headlinePlus1FontLineHeight:\n 'Font line height for the \"Headline_2\" base token',\n headlineFont: 'Font shorthand for the \"Headline_1\" base token',\n headlineFontColor: 'Font color for the \"Headline_1\" base token',\n headlineDisabledFontColor:\n 'Disabled font color for the \"Headline_1\" base token',\n headlineFontFamily: 'Font family for the \"Headline_1\" base token',\n headlineFontSize: 'Font size for the \"Headline_1\" base token',\n headlineFontWeight: 'Font weight for the \"Headline_1\" base token',\n headlineFontLineHeight: 'Font line height for the \"Headline_1\" base token',\n tableHeaderFont: 'Font shorthand for the \"Grid_Header\" base token',\n tableHeaderFontColor: 'Font color for the \"Grid_Header\" base token',\n tableHeaderDisabledFontColor:\n 'Disabled font color for the \"Grid_Header\" base token',\n tableHeaderFontFamily: 'Font family for the \"Grid_Header\" base token',\n tableHeaderFontSize: 'Font size for the \"Grid_Header\" base token',\n tableHeaderFontWeight: 'Font weight for the \"Grid_Header\" base token',\n tableHeaderFontLineHeight:\n 'Font line height for the \"Grid_Header\" base token',\n titlePlus2Font: 'Font shorthand for the \"Title_3\" base token',\n titlePlus2FontColor: 'Font color for the \"Title_3\" base token',\n titlePlus2DisabledFontColor:\n 'Disabled font color for the \"Title_3\" base token',\n titlePlus2FontFamily: 'Font family for the \"Title_3\" base token',\n titlePlus2FontSize: 'Font size for the \"Title_3\" base token',\n titlePlus2FontWeight: 'Font weight for the \"Title_3\" base token',\n titlePlus2FontLineHeight: 'Font line height for the \"Title_3\" base token',\n titlePlus1Font: 'Font shorthand for the \"Title_2\" base token',\n titlePlus1FontColor: 'Font color for the \"Title_2\" base token',\n titlePlus1DisabledFontColor:\n 'Disabled font color for the \"Title_2\" base token',\n titlePlus1FontFamily: 'Font family for the \"Title_2\" base token',\n titlePlus1FontSize: 'Font size for the \"Title_2\" base token',\n titlePlus1FontWeight: 'Font weight for the \"Title_2\" base token',\n titlePlus1FontLineHeight: 'Font line height for the \"Title_2\" base token',\n titleFont: 'Font shorthand for the \"Title_1\" base token',\n titleFontColor: 'Font color for the \"Title_1\" base token',\n titleDisabledFontColor: 'Disabled font color for the \"Title_1\" base token',\n titleFontFamily: 'Font family for the \"Title_1\" base token',\n titleFontSize: 'Font size for the \"Title_1\" base token',\n titleFontWeight: 'Font weight for the \"Title_1\" base token',\n titleFontLineHeight: 'Font line height for the \"Title_1\" base token',\n subtitlePlus1Font: 'Font shorthand for the \"Subtitle_2\" base token',\n subtitlePlus1FontColor: 'Font color for the \"Subtitle_2\" base token',\n subtitlePlus1DisabledFontColor:\n 'Disabled font color for the \"Subtitle_2\" base token',\n subtitlePlus1FontFamily: 'Font family for the \"Subtitle_2\" base token',\n subtitlePlus1FontSize: 'Font size for the \"Subitle_2\" base token',\n subtitlePlus1FontWeight: 'Font weight for the \"Subtitle_2\" base token',\n subtitlePlus1FontLineHeight:\n 'Font line height for the \"Subtitle_2\" base token',\n subtitleFont: 'Font shorthand for the \"Subtitle_1\" base token',\n subtitleFontColor: 'Font color for the \"Subtitle_1\" base token',\n subtitleDisabledFontColor:\n 'Disabled font color for the \"Subtitle_1\" base token',\n subtitleFontFamily: 'Font family for the \"Subtitle_1\" base token',\n subtitleFontSize: 'Font size for the \"Subitle_1\" base token',\n subtitleFontWeight: 'Font weight for the \"Subtitle_1\" base token',\n subtitleFontLineHeight: 'Font line height for the \"Subtitle_1\" base token',\n linkFont: 'Font shorthand for links',\n linkFontColor: 'Font color for links',\n linkDisabledFontColor: 'Disabled font color for links',\n linkFontFamily: 'Font family for links',\n linkFontSize: 'Font size for links',\n linkFontWeight: 'Font weight for links',\n linkFontLineHeight: 'Font line height for links',\n linkActiveFont: 'Font shorthand for active links',\n linkActiveFontColor: 'Font color for active links',\n linkActiveDisabledFontColor: 'Disabled font color for active links',\n linkActiveFontFamily: 'Font family for active links',\n linkActiveFontSize: 'Font size for active links',\n linkActiveFontWeight: 'Font weight for active links',\n linkActiveFontLineHeight: 'Font line height for active links',\n linkProminentFont: 'Font shorthand for prominent links',\n linkProminentFontColor: 'Font color for prominent links',\n linkProminentDisabledFontColor: 'Disabled font color for prominent links',\n linkProminentFontFamily: 'Font family for prominent links',\n linkProminentFontSize: 'Font size for prominent links',\n linkProminentFontWeight: 'Font weight for prominent links',\n linkProminentFontLineHeight: 'Font line height for prominent links',\n linkActiveProminentFont: 'Font shorthand for active prominent links',\n linkActiveProminentFontColor: 'Font color for active prominent links',\n linkActiveProminentDisabledFontColor:\n 'Disabled font color for active prominent links',\n linkActiveProminentFontFamily: 'Font family for active prominent links',\n linkActiveProminentFontSize: 'Font size for active prominent links',\n linkActiveProminentFontWeight: 'Font weight for active prominent links',\n linkActiveProminentFontLineHeight:\n 'Font line height for active prominent links',\n placeholderFont: 'Font shorthand for the \"Placeholder\" base token',\n placeholderFontColor: 'Font color for the \"Placeholder\" base token',\n placeholderDisabledFontColor:\n 'Disabled font color for the \"Placeholder\" base token',\n placeholderFontFamily: 'Font family for the \"Placeholder\" base token',\n placeholderFontSize: 'Font size for the \"Placeholder\" base token',\n placeholderFontWeight: 'Font weight for the \"Placeholder\" base token',\n placeholderFontLineHeight:\n 'Font line height for the \"Placeholder\" base token',\n bodyFont: 'Font shorthand for the \"Body\" base token',\n bodyFontColor: 'Font color for the \"Body\" base token',\n bodyDisabledFontColor: 'Disabled font color for the \"Body\" base token',\n bodyFontFamily: 'Font family for the \"Body\" base token',\n bodyFontSize: 'Font size for the \"Body\" base token',\n bodyFontWeight: 'Font weight for the \"Body\" base token',\n bodyFontLineHeight: 'Font line height for the \"Body\" base token',\n bodyEmphasizedFont: 'Font shorthand for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontColor: 'Font color for the \"BodyEmphasized\" base token',\n bodyEmphasizedDisabledFontColor:\n 'Disabled font color for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontFamily: 'Font family for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontSize: 'Font size for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontWeight: 'Font weight for the \"BodyEmphasized\" base token',\n bodyEmphasizedFontLineHeight:\n 'Font line height for the \"BodyEmphasized\" base token',\n bodyPlus1Font: 'Font shorthand for the \"Body_2\" base token',\n bodyPlus1FontColor: 'Font color for the \"Body_2\" base token',\n bodyPlus1DisabledFontColor:\n 'Disabled font color for the \"Body_2\" base token',\n bodyPlus1FontFamily: 'Font family for the \"Body_2\" base token',\n bodyPlus1FontSize: 'Font size for the \"Body_2\" base token',\n bodyPlus1FontWeight: 'Font weight for the \"Body_2\" base token',\n bodyPlus1FontLineHeight: 'Font line height for the \"Body_2\" base token',\n bodyPlus1EmphasizedFont:\n 'Font shorthand for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontColor:\n 'Font color for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedDisabledFontColor:\n 'Disabled font color for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontFamily:\n 'Font family for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontSize:\n 'Font size for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontWeight:\n 'Font weight for the \"BodyEmphasized_2\" base token',\n bodyPlus1EmphasizedFontLineHeight:\n 'Font line height for the \"BodyEmphasized_2\" base token',\n groupHeaderFont: 'Font shorthand for the \"Group_Header_1\" base token',\n groupHeaderFontColor: 'Font color for the \"Group_Header_1\" base token',\n groupHeaderDisabledFontColor:\n 'Disabled font color for the\"Group_Header_1\" base token',\n groupHeaderFontFamily: 'Font family for the \"Group_Header_1\" base token',\n groupHeaderFontSize: 'Font size for the \"Group_Header_1\" base token',\n groupHeaderFontWeight: 'Font weight for the \"Group_Header_1\" base token',\n groupHeaderFontLineHeight:\n 'Font line height for the \"Group_Header_1\" base token',\n controlLabelFont: 'Font shorthand for the \"Control_Label_1\" base token',\n controlLabelFontColor: 'Font color for the \"Control_Label_1\" base token',\n controlLabelDisabledFontColor:\n 'Disabled font color for the \"Control_Label_1\" base token',\n controlLabelFontFamily: 'Font family for the \"Control_Label_1\" base token',\n controlLabelFontSize: 'Font size for the \"Control_Label_1\" base token',\n controlLabelFontWeight: 'Font weight for the \"Control_Label_1\" base token',\n controlLabelFontLineHeight:\n 'Font line height for the \"Control_Label_1\" base token',\n buttonLabelFont: 'Font shorthand for the \"Button_Label_1\" base token',\n buttonLabelFontColor: 'Font color for the \"Button_Label_1\" base token',\n buttonLabelDisabledFontColor:\n 'Disabled font color for the \"Button_Label_1\" base token',\n buttonLabelFontFamily: 'Font family for the \"Button_Label_1\" base token',\n buttonLabelFontSize: 'Font size for the \"Button_Label_1\" base token',\n buttonLabelFontWeight: 'Font weight for the \"Button_Label_1\" base token',\n buttonLabelFontLineHeight:\n 'Font line height for the \"Button_Label_1\" base token',\n tooltipCaptionFont: 'Font shorthand for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontColor: 'Font color for the \"Tooltip_Caption\" base token',\n tooltipCaptionDisabledFontColor:\n 'Disabled font color for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontFamily:\n 'Font family for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontSize: 'Font size for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontWeight:\n 'Font weight for the \"Tooltip_Caption\" base token',\n tooltipCaptionFontLineHeight:\n 'Font line height for the \"Tooltip_Caption\" base token',\n tooltipBackgroundColor: 'Default background color for tooltips',\n errorTextFont: 'Font shorthand for the \"Error_LightUi\" base token',\n errorTextFontColor: 'Font color for the \"Error_LightUi\" base token',\n errorTextDisabledFontColor:\n 'Disabled font color for the \"Error_LightUi\" base token',\n errorTextFontFamily: 'Font family for the \"Error_LightUi\" base token',\n errorTextFontSize: 'Font size for the \"Error_LightUi\" base token',\n errorTextFontWeight: 'Font weight for the \"Error_LightUi\" base token',\n errorTextFontLineHeight:\n 'Font line height for the \"Error_LightUi\" base token',\n tableRowBorderColor: 'Color for the border of rows in the table',\n elevation1BoxShadow:\n 'The box shadow for elevation 1. Used for component hover states.',\n elevation2BoxShadow:\n 'The box shadow for elevation 2. Used for components such as menus, banners, tooltips, error notifications, and scrolling.',\n elevation3BoxShadow:\n 'The box shadow for elevation 3. Used for components such as dialogs, overlays, and pop-ups.',\n graphGridlineColor: 'Gridline color for graphs',\n graphTrace1Color: 'Color for the first graph trace',\n graphTrace2Color: 'Color for the second graph trace',\n graphTrace3Color: 'Color for the third graph trace',\n graphTrace4Color: 'Color for the fourth graph trace',\n graphTrace5Color: 'Color for the fifth graph trace',\n graphTrace6Color: 'Color for the sixth graph trace',\n graphTrace7Color: 'Color for the seventh graph trace',\n graphTrace8Color: 'Color for the eighth graph trace',\n mentionFont: 'Font shorthand for mention views',\n mentionFontColor: 'Font color for mention views',\n mentionDisabledFontColor: 'Disabled font color for mention views',\n mentionFontFamily: 'Font family for mention views',\n mentionFontSize: 'Font size for mention views',\n mentionFontWeight: 'Font weight for mention views',\n mentionFontLineHeight: 'Font line height for mention views',\n calendarEventBackgroundStaticColor:\n 'Background color for static calendar events',\n calendarEventBackgroundDynamicColor:\n 'Background color for dynamic calendar events',\n calendarEventBackgroundTransientColor:\n 'Background color for transient calendar events',\n calendarEventBorderStaticColor: 'Border color for static calendar events',\n calendarEventBorderTransientColor:\n 'Border color for transient calendar events',\n calendarEventStaticFontColor: 'Font color for static calendar events',\n calendarEventDynamicFontColor: 'Font color for dynamic calendar events',\n calendarEventTransientFontColor: 'Font color for transient calendar events',\n calendarEventBackgroundHoverStaticColor:\n 'Color while hovering static calendar events',\n calendarEventBackgroundHoverDynamicColor:\n 'Color while hovering dynamic calendar events',\n calendarEventBackgroundHoverTransientColor:\n 'Color while hovering transient calendar events',\n calendarRowBackgroundSelectedColor:\n 'Background color while calendar resource is selected/highlighted',\n calendarEventFillBlockedColor:\n 'Background fill to indicate the occupied slots in calendar resource rows',\n calendarGrabHandleBackgroundColor:\n 'Background fill color for the editable calendar event grab handle'\n};\n"]}
|
|
@@ -231,7 +231,21 @@ export const tokenNames = {
|
|
|
231
231
|
mentionFontFamily: 'mention-font-family',
|
|
232
232
|
mentionFontSize: 'mention-font-size',
|
|
233
233
|
mentionFontWeight: 'mention-font-weight',
|
|
234
|
-
mentionFontLineHeight: 'mention-font-line-height'
|
|
234
|
+
mentionFontLineHeight: 'mention-font-line-height',
|
|
235
|
+
calendarEventBackgroundStaticColor: 'calendar-event-background-static-color',
|
|
236
|
+
calendarEventBackgroundDynamicColor: 'calendar-event-background-dynamic-color',
|
|
237
|
+
calendarEventBackgroundTransientColor: 'calendar-event-background-transient-color',
|
|
238
|
+
calendarEventBorderStaticColor: 'calendar-event-border-static-color',
|
|
239
|
+
calendarEventBorderTransientColor: 'calendar-event-border-transient-color',
|
|
240
|
+
calendarEventStaticFontColor: 'calendar-event-static-font-color',
|
|
241
|
+
calendarEventDynamicFontColor: 'calendar-event-dynamic-font-color',
|
|
242
|
+
calendarEventTransientFontColor: 'calendar-event-transient-font-color',
|
|
243
|
+
calendarEventBackgroundHoverStaticColor: 'calendar-event-background-hover-static-color',
|
|
244
|
+
calendarEventBackgroundHoverDynamicColor: 'calendar-event-background-hover-dynamic-color',
|
|
245
|
+
calendarEventBackgroundHoverTransientColor: 'calendar-event-background-hover-transient-color',
|
|
246
|
+
calendarRowBackgroundSelectedColor: 'calendar-row-background-selected-color',
|
|
247
|
+
calendarEventFillBlockedColor: 'calendar-event-fill-blocked-color',
|
|
248
|
+
calendarGrabHandleBackgroundColor: 'calendar-grab-handle-background-color'
|
|
235
249
|
};
|
|
236
250
|
const prefix = 'ni-nimble';
|
|
237
251
|
export const styleNameFromTokenName = (tokenName) => `${prefix}-${tokenName}`;
|