@aurodesignsystem-dev/auro-formkit 0.0.0-pr1422.0 → 0.0.0-pr1422.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/bibtemplate/dist/auro-bibtemplate.d.ts +66 -0
- package/components/bibtemplate/dist/buttonVersion.d.ts +2 -0
- package/components/bibtemplate/dist/headerVersion.d.ts +2 -0
- package/components/bibtemplate/dist/iconVersion.d.ts +2 -0
- package/components/bibtemplate/dist/index.d.ts +2 -0
- package/components/bibtemplate/dist/index.js +395 -0
- package/components/bibtemplate/dist/registered.js +395 -0
- package/components/bibtemplate/dist/styles/color-css.d.ts +2 -0
- package/components/bibtemplate/dist/styles/style-css.d.ts +2 -0
- package/components/bibtemplate/dist/styles/tokens-css.d.ts +2 -0
- package/components/checkbox/demo/api.md +489 -0
- package/components/checkbox/demo/api.min.js +2133 -0
- package/components/checkbox/demo/index.md +55 -0
- package/components/checkbox/demo/index.min.js +2108 -0
- package/components/checkbox/demo/keyboardBehavior.md +0 -0
- package/components/checkbox/demo/readme.md +142 -0
- package/components/checkbox/dist/auro-checkbox-group.d.ts +176 -0
- package/components/checkbox/dist/auro-checkbox.d.ts +209 -0
- package/components/checkbox/dist/index.d.ts +3 -0
- package/components/checkbox/dist/index.js +2057 -0
- package/components/checkbox/dist/registered.js +2058 -0
- package/components/checkbox/dist/styles/auro-checkbox-css.d.ts +2 -0
- package/components/checkbox/dist/styles/auro-checkbox-group-css.d.ts +2 -0
- package/components/checkbox/dist/styles/color-css.d.ts +2 -0
- package/components/checkbox/dist/styles/colorGroup-css.d.ts +2 -0
- package/components/checkbox/dist/styles/tokens-css.d.ts +2 -0
- package/components/combobox/demo/api.md +2287 -0
- package/components/combobox/demo/api.min.js +18025 -0
- package/components/combobox/demo/index.md +196 -0
- package/components/combobox/demo/index.min.js +17930 -0
- package/components/combobox/demo/keyboardBehavior.md +281 -0
- package/components/combobox/demo/readme.md +158 -0
- package/components/combobox/dist/auro-combobox.d.ts +578 -0
- package/components/combobox/dist/comboboxKeyboardStrategy.d.ts +9 -0
- package/components/combobox/dist/index.d.ts +2 -0
- package/components/combobox/dist/index.js +15845 -0
- package/components/combobox/dist/registered.js +15847 -0
- package/components/combobox/dist/styles/emphasized/style-css.d.ts +2 -0
- package/components/combobox/dist/styles/snowflake/style-css.d.ts +2 -0
- package/components/combobox/dist/styles/style-css.d.ts +2 -0
- package/components/counter/demo/api.md +1285 -0
- package/components/counter/demo/api.min.js +8237 -0
- package/components/counter/demo/index.md +92 -0
- package/components/counter/demo/index.min.js +8218 -0
- package/components/counter/demo/keyboardBehavior.md +127 -0
- package/components/counter/demo/readme.md +161 -0
- package/components/counter/dist/auro-counter-button.d.ts +14 -0
- package/components/counter/dist/auro-counter-group.d.ts +390 -0
- package/components/counter/dist/auro-counter-wrapper.d.ts +17 -0
- package/components/counter/dist/auro-counter.d.ts +136 -0
- package/components/counter/dist/buttonVersion.d.ts +2 -0
- package/components/counter/dist/iconVersion.d.ts +2 -0
- package/components/counter/dist/index.d.ts +3 -0
- package/components/counter/dist/index.js +8140 -0
- package/components/counter/dist/keyboardStrategy.d.ts +4 -0
- package/components/counter/dist/registered.js +8141 -0
- package/components/counter/dist/styles/color-css.d.ts +2 -0
- package/components/counter/dist/styles/counter-button-color-css.d.ts +2 -0
- package/components/counter/dist/styles/counter-button-css.d.ts +2 -0
- package/components/counter/dist/styles/counter-group-css.d.ts +2 -0
- package/components/counter/dist/styles/counter-wrapper-color-css.d.ts +2 -0
- package/components/counter/dist/styles/counter-wrapper-css.d.ts +2 -0
- package/components/counter/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/counter/dist/styles/style-css.d.ts +2 -0
- package/components/counter/dist/styles/tokens-css.d.ts +2 -0
- package/components/datepicker/demo/api.md +1824 -0
- package/components/datepicker/demo/api.min.js +24654 -0
- package/components/datepicker/demo/index.md +158 -0
- package/components/datepicker/demo/index.min.js +24375 -0
- package/components/datepicker/demo/keyboardBehavior.md +19 -0
- package/components/datepicker/demo/readme.md +137 -0
- package/components/datepicker/dist/auro-calendar-cell.d.ts +169 -0
- package/components/datepicker/dist/auro-calendar-month.d.ts +20 -0
- package/components/datepicker/dist/auro-calendar.d.ts +173 -0
- package/components/datepicker/dist/auro-datepicker.d.ts +716 -0
- package/components/datepicker/dist/buttonVersion.d.ts +2 -0
- package/components/datepicker/dist/datepickerKeyboardStrategy.d.ts +1 -0
- package/components/datepicker/dist/iconVersion.d.ts +2 -0
- package/components/datepicker/dist/index.d.ts +2 -0
- package/components/datepicker/dist/index.js +24290 -0
- package/components/datepicker/dist/popoverVersion.d.ts +2 -0
- package/components/datepicker/dist/registered.js +24290 -0
- package/components/datepicker/dist/styles/classic/color-css.d.ts +2 -0
- package/components/datepicker/dist/styles/classic/style-css.d.ts +2 -0
- package/components/datepicker/dist/styles/color-calendar-css.d.ts +2 -0
- package/components/datepicker/dist/styles/color-cell-css.d.ts +2 -0
- package/components/datepicker/dist/styles/color-css.d.ts +2 -0
- package/components/datepicker/dist/styles/color-month-css.d.ts +2 -0
- package/components/datepicker/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/datepicker/dist/styles/snowflake/color-css.d.ts +2 -0
- package/components/datepicker/dist/styles/snowflake/style-css.d.ts +2 -0
- package/components/datepicker/dist/styles/style-auro-calendar-cell-css.d.ts +2 -0
- package/components/datepicker/dist/styles/style-auro-calendar-css.d.ts +2 -0
- package/components/datepicker/dist/styles/style-auro-calendar-month-css.d.ts +2 -0
- package/components/datepicker/dist/styles/style-css.d.ts +2 -0
- package/components/datepicker/dist/styles/tokens-css.d.ts +2 -0
- package/components/datepicker/dist/utilities.d.ts +78 -0
- package/components/datepicker/dist/utilitiesCalendar.d.ts +38 -0
- package/components/datepicker/dist/utilitiesCalendarRender.d.ts +50 -0
- package/components/datepicker/dist/vendor/wc-range-datepicker/day.d.ts +5 -0
- package/components/datepicker/dist/vendor/wc-range-datepicker/range-datepicker-calendar.d.ts +60 -0
- package/components/datepicker/dist/vendor/wc-range-datepicker/range-datepicker-cell.d.ts +1 -0
- package/components/datepicker/dist/vendor/wc-range-datepicker/range-datepicker.d.ts +57 -0
- package/components/dropdown/demo/api.md +1358 -0
- package/components/dropdown/demo/api.min.js +5019 -0
- package/components/dropdown/demo/index.md +283 -0
- package/components/dropdown/demo/index.min.js +4954 -0
- package/components/dropdown/demo/keyboardBehavior.md +77 -0
- package/components/dropdown/demo/readme.md +160 -0
- package/components/dropdown/dist/auro-dropdown.d.ts +482 -0
- package/components/dropdown/dist/auro-dropdownBib.d.ts +128 -0
- package/components/dropdown/dist/dropdownBibKeyboardStrategy.d.ts +7 -0
- package/components/dropdown/dist/iconVersion.d.ts +2 -0
- package/components/dropdown/dist/index.d.ts +2 -0
- package/components/dropdown/dist/index.js +4847 -0
- package/components/dropdown/dist/registered.js +4847 -0
- package/components/dropdown/dist/styles/classic/bibColors-css.d.ts +2 -0
- package/components/dropdown/dist/styles/classic/bibStyles-css.d.ts +2 -0
- package/components/dropdown/dist/styles/classic/color-css.d.ts +2 -0
- package/components/dropdown/dist/styles/classic/style-css.d.ts +2 -0
- package/components/dropdown/dist/styles/color-css.d.ts +2 -0
- package/components/dropdown/dist/styles/emphasized/style-css.d.ts +2 -0
- package/components/dropdown/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/dropdown/dist/styles/snowflake/style-css.d.ts +2 -0
- package/components/dropdown/dist/styles/style-css.d.ts +2 -0
- package/components/dropdown/dist/styles/tokens-css.d.ts +2 -0
- package/components/form/demo/api.md +319 -0
- package/components/form/demo/api.min.js +71170 -0
- package/components/form/demo/index.md +128 -0
- package/components/form/demo/index.min.js +71170 -0
- package/components/form/demo/keyboardBehavior.md +0 -0
- package/components/form/demo/readme.md +145 -0
- package/components/form/dist/auro-form.d.ts +280 -0
- package/components/form/dist/index.d.ts +2 -0
- package/components/form/dist/index.js +718 -0
- package/components/form/dist/registered.d.ts +1 -0
- package/components/form/dist/registered.js +718 -0
- package/components/form/dist/styles/style-css.d.ts +2 -0
- package/components/helptext/dist/auro-helptext.d.ts +69 -0
- package/components/helptext/dist/index.d.ts +2 -0
- package/components/helptext/dist/index.js +231 -0
- package/components/helptext/dist/registered.js +231 -0
- package/components/helptext/dist/styles/color-css.d.ts +2 -0
- package/components/helptext/dist/styles/style-css.d.ts +2 -0
- package/components/helptext/dist/styles/tokens-css.d.ts +2 -0
- package/components/input/demo/api.md +1397 -0
- package/components/input/demo/api.min.js +7473 -0
- package/components/input/demo/index.md +161 -0
- package/components/input/demo/index.min.js +7393 -0
- package/components/input/demo/keyboardBehavior.md +0 -0
- package/components/input/demo/readme.md +134 -0
- package/components/input/dist/auro-input.d.ts +207 -0
- package/components/input/dist/base-input.d.ts +628 -0
- package/components/input/dist/buttonVersion.d.ts +2 -0
- package/components/input/dist/i18n.d.ts +18 -0
- package/components/input/dist/iconVersion.d.ts +2 -0
- package/components/input/dist/index.d.ts +2 -0
- package/components/input/dist/index.js +7305 -0
- package/components/input/dist/registered.js +7305 -0
- package/components/input/dist/styles/classic/color-css.d.ts +2 -0
- package/components/input/dist/styles/classic/style-css.d.ts +2 -0
- package/components/input/dist/styles/color-css.d.ts +2 -0
- package/components/input/dist/styles/default/borders-css.d.ts +2 -0
- package/components/input/dist/styles/default/color-css.d.ts +2 -0
- package/components/input/dist/styles/default/mixins-css.d.ts +2 -0
- package/components/input/dist/styles/default/notificationIcons-css.d.ts +2 -0
- package/components/input/dist/styles/default/style-css.d.ts +2 -0
- package/components/input/dist/styles/emphasized/color-css.d.ts +2 -0
- package/components/input/dist/styles/emphasized/style-css.d.ts +2 -0
- package/components/input/dist/styles/mixins-css.d.ts +2 -0
- package/components/input/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/input/dist/styles/snowflake/style-css.d.ts +2 -0
- package/components/input/dist/styles/style-css.d.ts +2 -0
- package/components/input/dist/styles/tokens-css.d.ts +2 -0
- package/components/input/dist/utilities.d.ts +25 -0
- package/components/layoutElement/dist/auroElement.d.ts +40 -0
- package/components/layoutElement/dist/index.d.ts +2 -0
- package/components/layoutElement/dist/index.js +107 -0
- package/components/layoutElement/dist/registered.js +107 -0
- package/components/menu/demo/api.md +1201 -0
- package/components/menu/demo/api.min.js +2397 -0
- package/components/menu/demo/index.md +72 -0
- package/components/menu/demo/index.min.js +2290 -0
- package/components/menu/demo/keyboardBehavior.md +0 -0
- package/components/menu/demo/readme.md +145 -0
- package/components/menu/dist/auro-menu-utils.d.ts +34 -0
- package/components/menu/dist/auro-menu.context.d.ts +239 -0
- package/components/menu/dist/auro-menu.d.ts +317 -0
- package/components/menu/dist/auro-menuoption.d.ts +210 -0
- package/components/menu/dist/iconVersion.d.ts +2 -0
- package/components/menu/dist/index.d.ts +4 -0
- package/components/menu/dist/index.js +2253 -0
- package/components/menu/dist/registered.js +2201 -0
- package/components/menu/dist/styles/default/color-menu-css.d.ts +2 -0
- package/components/menu/dist/styles/default/color-menuoption-css.d.ts +2 -0
- package/components/menu/dist/styles/default/style-menu-css.d.ts +2 -0
- package/components/menu/dist/styles/default/style-menuoption-css.d.ts +2 -0
- package/components/menu/dist/styles/default/tokens-css.d.ts +2 -0
- package/components/radio/demo/api.md +675 -0
- package/components/radio/demo/api.min.js +2210 -0
- package/components/radio/demo/index.md +73 -0
- package/components/radio/demo/index.min.js +2167 -0
- package/components/radio/demo/keyboardBehavior.md +0 -0
- package/components/radio/demo/readme.md +141 -0
- package/components/radio/dist/auro-radio-group.d.ts +250 -0
- package/components/radio/dist/auro-radio.d.ts +180 -0
- package/components/radio/dist/index.d.ts +3 -0
- package/components/radio/dist/index.js +2116 -0
- package/components/radio/dist/registered.js +2117 -0
- package/components/radio/dist/styles/auro-radio-group-css.d.ts +2 -0
- package/components/radio/dist/styles/color-css.d.ts +2 -0
- package/components/radio/dist/styles/groupColor-css.d.ts +2 -0
- package/components/radio/dist/styles/style-css.d.ts +2 -0
- package/components/radio/dist/styles/tokens-css.d.ts +2 -0
- package/components/select/demo/api.md +2378 -0
- package/components/select/demo/api.min.js +10542 -0
- package/components/select/demo/index.md +355 -0
- package/components/select/demo/index.min.js +10449 -0
- package/components/select/demo/keyboardBehavior.md +245 -0
- package/components/select/demo/readme.md +148 -0
- package/components/select/dist/auro-select.d.ts +553 -0
- package/components/select/dist/index.d.ts +2 -0
- package/components/select/dist/index.js +8376 -0
- package/components/select/dist/registered.js +8376 -0
- package/components/select/dist/selectKeyboardStrategy.d.ts +11 -0
- package/components/select/dist/styles/emphasized/color-css.d.ts +2 -0
- package/components/select/dist/styles/shapeSize-css.d.ts +2 -0
- package/components/select/dist/styles/style-css.d.ts +2 -0
- package/components/select/dist/styles/tokens-css.d.ts +2 -0
- package/custom-elements.json +18806 -0
- package/package.json +2 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Displays help text or error messages within form elements - Internal Use Only.
|
|
3
|
+
*/
|
|
4
|
+
export class AuroHelpText extends LitElement {
|
|
5
|
+
static get styles(): import("lit").CSSResult[];
|
|
6
|
+
static get properties(): {
|
|
7
|
+
/**
|
|
8
|
+
* Defines whether the component will be on lighter or darker backgrounds.
|
|
9
|
+
* @property {'default', 'inverse'} - The appearance of the help text, either default (for light backgrounds) or inverse (for dark backgrounds).
|
|
10
|
+
* @default 'default'
|
|
11
|
+
*/
|
|
12
|
+
appearance: {
|
|
13
|
+
type: StringConstructor;
|
|
14
|
+
reflect: boolean;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
slotNodes: {
|
|
20
|
+
type: BooleanConstructor;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
hasTextContent: {
|
|
26
|
+
type: BooleanConstructor;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* If declared, make font color red.
|
|
30
|
+
*/
|
|
31
|
+
error: {
|
|
32
|
+
type: BooleanConstructor;
|
|
33
|
+
reflect: boolean;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* DEPRECATED - use `appearance` instead.
|
|
37
|
+
*/
|
|
38
|
+
onDark: {
|
|
39
|
+
type: BooleanConstructor;
|
|
40
|
+
reflect: boolean;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* This will register this element with the browser.
|
|
45
|
+
* @param {string} [name="auro-helptext"] - The name of element that you want to register to.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
static register(name?: string): void;
|
|
52
|
+
error: boolean;
|
|
53
|
+
appearance: string;
|
|
54
|
+
onDark: boolean;
|
|
55
|
+
hasTextContent: boolean;
|
|
56
|
+
updated(): void;
|
|
57
|
+
handleSlotChange(event: any): void;
|
|
58
|
+
slotNodes: any;
|
|
59
|
+
/**
|
|
60
|
+
* Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
|
|
61
|
+
*
|
|
62
|
+
* @param {NodeList|Array} nodes - The list of nodes to check for content.
|
|
63
|
+
* @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
private checkSlotsForContent;
|
|
67
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
68
|
+
}
|
|
69
|
+
import { LitElement } from "lit";
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { css, LitElement, html } from 'lit';
|
|
2
|
+
|
|
3
|
+
var colorCss = css`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]),:host([appearance=inverse]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]),:host([appearance=inverse][error]){--ds-auro-helptext-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
4
|
+
|
|
5
|
+
var styleCss = css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:host{position:relative;display:block}.helptext-wrapper{display:none}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
|
|
6
|
+
|
|
7
|
+
var tokensCss = css`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
8
|
+
|
|
9
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
10
|
+
// See LICENSE in the project root for license information.
|
|
11
|
+
|
|
12
|
+
// ---------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
15
|
+
|
|
16
|
+
class AuroLibraryRuntimeUtils {
|
|
17
|
+
|
|
18
|
+
/* eslint-disable jsdoc/require-param */
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* This will register a new custom element with the browser.
|
|
22
|
+
* @param {String} name - The name of the custom element.
|
|
23
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
registerComponent(name, componentClass) {
|
|
27
|
+
if (!customElements.get(name)) {
|
|
28
|
+
customElements.define(name, class extends componentClass {});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
34
|
+
* @returns {void}
|
|
35
|
+
*/
|
|
36
|
+
closestElement(
|
|
37
|
+
selector, // selector like in .closest()
|
|
38
|
+
base = this, // extra functionality to skip a parent
|
|
39
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
40
|
+
!el || el === document || el === window
|
|
41
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
42
|
+
: found
|
|
43
|
+
? found // found a selector INside this element
|
|
44
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
45
|
+
) {
|
|
46
|
+
return __Closest(base);
|
|
47
|
+
}
|
|
48
|
+
/* eslint-enable jsdoc/require-param */
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
52
|
+
* @param {Object} elem - The element to check.
|
|
53
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
54
|
+
* @returns {void}
|
|
55
|
+
*/
|
|
56
|
+
handleComponentTagRename(elem, tagName) {
|
|
57
|
+
const tag = tagName.toLowerCase();
|
|
58
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
59
|
+
|
|
60
|
+
if (elemTag !== tag) {
|
|
61
|
+
elem.setAttribute(tag, true);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Validates if an element is a specific Auro component.
|
|
67
|
+
* @param {Object} elem - The element to validate.
|
|
68
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
69
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
70
|
+
*/
|
|
71
|
+
elementMatch(elem, tagName) {
|
|
72
|
+
const tag = tagName.toLowerCase();
|
|
73
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
74
|
+
|
|
75
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Gets the text content of a named slot.
|
|
80
|
+
* @returns {String}
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
getSlotText(elem, name) {
|
|
84
|
+
const slot = elem.shadowRoot?.querySelector(`slot[name="${name}"]`);
|
|
85
|
+
const nodes = slot?.assignedNodes({ flatten: true }) || [];
|
|
86
|
+
const text = nodes.map(n => n.textContent?.trim()).join(' ').trim();
|
|
87
|
+
|
|
88
|
+
return text || null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
93
|
+
// See LICENSE in the project root for license information.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Displays help text or error messages within form elements - Internal Use Only.
|
|
98
|
+
*/
|
|
99
|
+
class AuroHelpText extends LitElement {
|
|
100
|
+
|
|
101
|
+
constructor() {
|
|
102
|
+
super();
|
|
103
|
+
|
|
104
|
+
this.error = false;
|
|
105
|
+
this.appearance = "default";
|
|
106
|
+
this.onDark = false;
|
|
107
|
+
this.hasTextContent = false;
|
|
108
|
+
|
|
109
|
+
AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static get styles() {
|
|
113
|
+
return [
|
|
114
|
+
colorCss,
|
|
115
|
+
styleCss,
|
|
116
|
+
tokensCss
|
|
117
|
+
];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// function to define props used within the scope of this component
|
|
121
|
+
static get properties() {
|
|
122
|
+
return {
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Defines whether the component will be on lighter or darker backgrounds.
|
|
126
|
+
* @property {'default', 'inverse'} - The appearance of the help text, either default (for light backgrounds) or inverse (for dark backgrounds).
|
|
127
|
+
* @default 'default'
|
|
128
|
+
*/
|
|
129
|
+
appearance: {
|
|
130
|
+
type: String,
|
|
131
|
+
reflect: true
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
slotNodes: {
|
|
138
|
+
type: Boolean,
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
hasTextContent: {
|
|
145
|
+
type: Boolean,
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* If declared, make font color red.
|
|
150
|
+
*/
|
|
151
|
+
error: {
|
|
152
|
+
type: Boolean,
|
|
153
|
+
reflect: true,
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* DEPRECATED - use `appearance` instead.
|
|
158
|
+
*/
|
|
159
|
+
onDark: {
|
|
160
|
+
type: Boolean,
|
|
161
|
+
reflect: true
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* This will register this element with the browser.
|
|
168
|
+
* @param {string} [name="auro-helptext"] - The name of element that you want to register to.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
|
|
172
|
+
*
|
|
173
|
+
*/
|
|
174
|
+
static register(name = "auro-helptext") {
|
|
175
|
+
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHelpText);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
updated() {
|
|
179
|
+
this.handleSlotChange();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
handleSlotChange(event) {
|
|
183
|
+
if (event) {
|
|
184
|
+
this.slotNodes = event.target.assignedNodes();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
this.hasTextContent = this.checkSlotsForContent(this.slotNodes);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
|
|
192
|
+
*
|
|
193
|
+
* @param {NodeList|Array} nodes - The list of nodes to check for content.
|
|
194
|
+
* @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
|
|
195
|
+
* @private
|
|
196
|
+
*/
|
|
197
|
+
checkSlotsForContent(nodes) {
|
|
198
|
+
if (!nodes) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return nodes.some((node) => {
|
|
203
|
+
if (node.textContent.trim()) {
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (!node.querySelector) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const nestedSlot = node.tagName === 'SLOT' ? node : node.querySelector('slot');
|
|
212
|
+
if (!nestedSlot) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const nestedSlotNodes = nestedSlot.assignedNodes();
|
|
217
|
+
return this.checkSlotsForContent(nestedSlotNodes);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
222
|
+
render() {
|
|
223
|
+
return html`
|
|
224
|
+
<div class="helptext-wrapper body-xs" ?visible="${this.hasTextContent}">
|
|
225
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
226
|
+
</div>
|
|
227
|
+
`;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export { AuroHelpText };
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { css, LitElement, html } from 'lit';
|
|
2
|
+
|
|
3
|
+
var colorCss = css`:host([error]){--ds-auro-helptext-color: var(--ds-basic-color-status-error, #e31f26)}:host([onDark]),:host([appearance=inverse]){--ds-auro-helptext-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][error]),:host([appearance=inverse][error]){--ds-auro-helptext-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}.helptext-wrapper{color:var(--ds-auro-helptext-color)}`;
|
|
4
|
+
|
|
5
|
+
var styleCss = css`.body-default{font-size:var(--wcss-body-default-font-size, 1rem);line-height:var(--wcss-body-default-line-height, 1.5rem)}.body-default,.body-lg{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-lg{font-size:var(--wcss-body-lg-font-size, 1.125rem);line-height:var(--wcss-body-lg-line-height, 1.625rem)}.body-sm{font-size:var(--wcss-body-sm-font-size, 0.875rem);line-height:var(--wcss-body-sm-line-height, 1.25rem)}.body-sm,.body-xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0)}.body-xs{font-size:var(--wcss-body-xs-font-size, 0.75rem);line-height:var(--wcss-body-xs-line-height, 1rem)}.body-2xs{font-family:var(--wcss-body-family, "AS Circular"),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:var(--wcss-body-2xs-font-size, 0.625rem);font-weight:var(--wcss-body-weight, 450);letter-spacing:var(--wcss-body-letter-spacing, 0);line-height:var(--wcss-body-2xs-line-height, 0.875rem)}.display-2xl{font-family:var(--wcss-display-2xl-family, "AS Circular"),var(--wcss-display-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-2xl-font-size, clamp(3.5rem, 6vw, 5.375rem));font-weight:var(--wcss-display-2xl-weight, 300);letter-spacing:var(--wcss-display-2xl-letter-spacing, 0);line-height:var(--wcss-display-2xl-line-height, 1.3)}.display-xl{font-family:var(--wcss-display-xl-family, "AS Circular"),var(--wcss-display-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xl-font-size, clamp(3rem, 5.3333333333vw, 4.5rem));font-weight:var(--wcss-display-xl-weight, 300);letter-spacing:var(--wcss-display-xl-letter-spacing, 0);line-height:var(--wcss-display-xl-line-height, 1.3)}.display-lg{font-family:var(--wcss-display-lg-family, "AS Circular"),var(--wcss-display-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-lg-font-size, clamp(2.75rem, 4.6666666667vw, 4rem));font-weight:var(--wcss-display-lg-weight, 300);letter-spacing:var(--wcss-display-lg-letter-spacing, 0);line-height:var(--wcss-display-lg-line-height, 1.3)}.display-md{font-family:var(--wcss-display-md-family, "AS Circular"),var(--wcss-display-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-md-font-size, clamp(2.5rem, 4vw, 3.5rem));font-weight:var(--wcss-display-md-weight, 300);letter-spacing:var(--wcss-display-md-letter-spacing, 0);line-height:var(--wcss-display-md-line-height, 1.3)}.display-sm{font-family:var(--wcss-display-sm-family, "AS Circular"),var(--wcss-display-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-sm-font-size, clamp(2rem, 3.6666666667vw, 3rem));font-weight:var(--wcss-display-sm-weight, 300);letter-spacing:var(--wcss-display-sm-letter-spacing, 0);line-height:var(--wcss-display-sm-line-height, 1.3)}.display-xs{font-family:var(--wcss-display-xs-family, "AS Circular"),var(--wcss-display-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-display-xs-font-size, clamp(1.75rem, 3vw, 2.375rem));font-weight:var(--wcss-display-xs-weight, 300);letter-spacing:var(--wcss-display-xs-letter-spacing, 0);line-height:var(--wcss-display-xs-line-height, 1.3)}.heading-xl{font-family:var(--wcss-heading-xl-family, "AS Circular"),var(--wcss-heading-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xl-font-size, clamp(2rem, 3vw, 2.5rem));font-weight:var(--wcss-heading-xl-weight, 300);letter-spacing:var(--wcss-heading-xl-letter-spacing, 0);line-height:var(--wcss-heading-xl-line-height, 1.3)}.heading-lg{font-family:var(--wcss-heading-lg-family, "AS Circular"),var(--wcss-heading-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-lg-font-size, clamp(1.75rem, 2.6666666667vw, 2.25rem));font-weight:var(--wcss-heading-lg-weight, 300);letter-spacing:var(--wcss-heading-lg-letter-spacing, 0);line-height:var(--wcss-heading-lg-line-height, 1.3)}.heading-md{font-family:var(--wcss-heading-md-family, "AS Circular"),var(--wcss-heading-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-md-font-size, clamp(1.625rem, 2.3333333333vw, 1.75rem));font-weight:var(--wcss-heading-md-weight, 300);letter-spacing:var(--wcss-heading-md-letter-spacing, 0);line-height:var(--wcss-heading-md-line-height, 1.3)}.heading-sm{font-family:var(--wcss-heading-sm-family, "AS Circular"),var(--wcss-heading-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-sm-font-size, clamp(1.375rem, 2vw, 1.5rem));font-weight:var(--wcss-heading-sm-weight, 300);letter-spacing:var(--wcss-heading-sm-letter-spacing, 0);line-height:var(--wcss-heading-sm-line-height, 1.3)}.heading-xs{font-family:var(--wcss-heading-xs-family, "AS Circular"),var(--wcss-heading-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-xs-font-size, clamp(1.25rem, 1.6666666667vw, 1.25rem));font-weight:var(--wcss-heading-xs-weight, 450);letter-spacing:var(--wcss-heading-xs-letter-spacing, 0);line-height:var(--wcss-heading-xs-line-height, 1.3)}.heading-2xs{font-family:var(--wcss-heading-2xs-family, "AS Circular"),var(--wcss-heading-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-heading-2xs-font-size, clamp(1.125rem, 1.5vw, 1.125rem));font-weight:var(--wcss-heading-2xs-weight, 450);letter-spacing:var(--wcss-heading-2xs-letter-spacing, 0);line-height:var(--wcss-heading-2xs-line-height, 1.3)}.accent-2xl{font-family:var(--wcss-accent-2xl-family, "Good OT"),var(--wcss-accent-2xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xl-font-size, clamp(2rem, 3.1666666667vw, 2.375rem));font-weight:var(--wcss-accent-2xl-weight, 450);letter-spacing:var(--wcss-accent-2xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-2xl-line-height, 1)}.accent-2xl,.accent-xl{text-transform:uppercase}.accent-xl{font-family:var(--wcss-accent-xl-family, "Good OT"),var(--wcss-accent-xl-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xl-font-size, clamp(1.625rem, 2.3333333333vw, 2rem));font-weight:var(--wcss-accent-xl-weight, 450);letter-spacing:var(--wcss-accent-xl-letter-spacing, 0.05em);line-height:var(--wcss-accent-xl-line-height, 1.3)}.accent-lg{font-family:var(--wcss-accent-lg-family, "Good OT"),var(--wcss-accent-lg-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-lg-font-size, clamp(1.5rem, 2.1666666667vw, 1.75rem));font-weight:var(--wcss-accent-lg-weight, 450);letter-spacing:var(--wcss-accent-lg-letter-spacing, 0.05em);line-height:var(--wcss-accent-lg-line-height, 1.3)}.accent-lg,.accent-md{text-transform:uppercase}.accent-md{font-family:var(--wcss-accent-md-family, "Good OT"),var(--wcss-accent-md-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-md-font-size, clamp(1.375rem, 1.8333333333vw, 1.5rem));font-weight:var(--wcss-accent-md-weight, 500);letter-spacing:var(--wcss-accent-md-letter-spacing, 0.05em);line-height:var(--wcss-accent-md-line-height, 1.3)}.accent-sm{font-family:var(--wcss-accent-sm-family, "Good OT"),var(--wcss-accent-sm-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-sm-font-size, clamp(1.125rem, 1.5vw, 1.25rem));font-weight:var(--wcss-accent-sm-weight, 500);letter-spacing:var(--wcss-accent-sm-letter-spacing, 0.05em);line-height:var(--wcss-accent-sm-line-height, 1.3)}.accent-sm,.accent-xs{text-transform:uppercase}.accent-xs{font-family:var(--wcss-accent-xs-family, "Good OT"),var(--wcss-accent-xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-xs-font-size, clamp(1rem, 1.3333333333vw, 1rem));font-weight:var(--wcss-accent-xs-weight, 500);letter-spacing:var(--wcss-accent-xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-xs-line-height, 1.3)}.accent-2xs{font-family:var(--wcss-accent-2xs-family, "Good OT"),var(--wcss-accent-2xs-family-fallback, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif);font-size:var(--wcss-accent-2xs-font-size, clamp(0.875rem, 1.1666666667vw, 0.875rem));font-weight:var(--wcss-accent-2xs-weight, 450);letter-spacing:var(--wcss-accent-2xs-letter-spacing, 0.1em);line-height:var(--wcss-accent-2xs-line-height, 1.3);text-transform:uppercase}:host{position:relative;display:block}.helptext-wrapper{display:none}.helptext-wrapper[visible]{display:block}::slotted(*:not(:empty)){margin-top:var(--ds-size-50, 0.25rem);margin-bottom:0}::slotted(p){margin-block:0}`;
|
|
6
|
+
|
|
7
|
+
var tokensCss = css`:host{--ds-auro-helptext-color: var(--ds-basic-color-texticon-muted, #676767)}`;
|
|
8
|
+
|
|
9
|
+
// Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
|
|
10
|
+
// See LICENSE in the project root for license information.
|
|
11
|
+
|
|
12
|
+
// ---------------------------------------------------------------------
|
|
13
|
+
|
|
14
|
+
/* eslint-disable line-comment-position, no-inline-comments, no-confusing-arrow, no-nested-ternary, implicit-arrow-linebreak */
|
|
15
|
+
|
|
16
|
+
class AuroLibraryRuntimeUtils {
|
|
17
|
+
|
|
18
|
+
/* eslint-disable jsdoc/require-param */
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* This will register a new custom element with the browser.
|
|
22
|
+
* @param {String} name - The name of the custom element.
|
|
23
|
+
* @param {Object} componentClass - The class to register as a custom element.
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
registerComponent(name, componentClass) {
|
|
27
|
+
if (!customElements.get(name)) {
|
|
28
|
+
customElements.define(name, class extends componentClass {});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Finds and returns the closest HTML Element based on a selector.
|
|
34
|
+
* @returns {void}
|
|
35
|
+
*/
|
|
36
|
+
closestElement(
|
|
37
|
+
selector, // selector like in .closest()
|
|
38
|
+
base = this, // extra functionality to skip a parent
|
|
39
|
+
__Closest = (el, found = el && el.closest(selector)) =>
|
|
40
|
+
!el || el === document || el === window
|
|
41
|
+
? null // standard .closest() returns null for non-found selectors also
|
|
42
|
+
: found
|
|
43
|
+
? found // found a selector INside this element
|
|
44
|
+
: __Closest(el.getRootNode().host) // recursion!! break out to parent DOM
|
|
45
|
+
) {
|
|
46
|
+
return __Closest(base);
|
|
47
|
+
}
|
|
48
|
+
/* eslint-enable jsdoc/require-param */
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* If the element passed is registered with a different tag name than what is passed in, the tag name is added as an attribute to the element.
|
|
52
|
+
* @param {Object} elem - The element to check.
|
|
53
|
+
* @param {String} tagName - The name of the Auro component to check for or add as an attribute.
|
|
54
|
+
* @returns {void}
|
|
55
|
+
*/
|
|
56
|
+
handleComponentTagRename(elem, tagName) {
|
|
57
|
+
const tag = tagName.toLowerCase();
|
|
58
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
59
|
+
|
|
60
|
+
if (elemTag !== tag) {
|
|
61
|
+
elem.setAttribute(tag, true);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Validates if an element is a specific Auro component.
|
|
67
|
+
* @param {Object} elem - The element to validate.
|
|
68
|
+
* @param {String} tagName - The name of the Auro component to check against.
|
|
69
|
+
* @returns {Boolean} - Returns true if the element is the specified Auro component.
|
|
70
|
+
*/
|
|
71
|
+
elementMatch(elem, tagName) {
|
|
72
|
+
const tag = tagName.toLowerCase();
|
|
73
|
+
const elemTag = elem.tagName.toLowerCase();
|
|
74
|
+
|
|
75
|
+
return elemTag === tag || elem.hasAttribute(tag);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Gets the text content of a named slot.
|
|
80
|
+
* @returns {String}
|
|
81
|
+
* @private
|
|
82
|
+
*/
|
|
83
|
+
getSlotText(elem, name) {
|
|
84
|
+
const slot = elem.shadowRoot?.querySelector(`slot[name="${name}"]`);
|
|
85
|
+
const nodes = slot?.assignedNodes({ flatten: true }) || [];
|
|
86
|
+
const text = nodes.map(n => n.textContent?.trim()).join(' ').trim();
|
|
87
|
+
|
|
88
|
+
return text || null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Copyright (c) 2025 Alaska Airlines. All right reserved. Licensed under the Apache-2.0 license
|
|
93
|
+
// See LICENSE in the project root for license information.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Displays help text or error messages within form elements - Internal Use Only.
|
|
98
|
+
*/
|
|
99
|
+
class AuroHelpText extends LitElement {
|
|
100
|
+
|
|
101
|
+
constructor() {
|
|
102
|
+
super();
|
|
103
|
+
|
|
104
|
+
this.error = false;
|
|
105
|
+
this.appearance = "default";
|
|
106
|
+
this.onDark = false;
|
|
107
|
+
this.hasTextContent = false;
|
|
108
|
+
|
|
109
|
+
AuroLibraryRuntimeUtils.prototype.handleComponentTagRename(this, 'auro-helptext');
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
static get styles() {
|
|
113
|
+
return [
|
|
114
|
+
colorCss,
|
|
115
|
+
styleCss,
|
|
116
|
+
tokensCss
|
|
117
|
+
];
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// function to define props used within the scope of this component
|
|
121
|
+
static get properties() {
|
|
122
|
+
return {
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Defines whether the component will be on lighter or darker backgrounds.
|
|
126
|
+
* @property {'default', 'inverse'} - The appearance of the help text, either default (for light backgrounds) or inverse (for dark backgrounds).
|
|
127
|
+
* @default 'default'
|
|
128
|
+
*/
|
|
129
|
+
appearance: {
|
|
130
|
+
type: String,
|
|
131
|
+
reflect: true
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* @private
|
|
136
|
+
*/
|
|
137
|
+
slotNodes: {
|
|
138
|
+
type: Boolean,
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* @private
|
|
143
|
+
*/
|
|
144
|
+
hasTextContent: {
|
|
145
|
+
type: Boolean,
|
|
146
|
+
},
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* If declared, make font color red.
|
|
150
|
+
*/
|
|
151
|
+
error: {
|
|
152
|
+
type: Boolean,
|
|
153
|
+
reflect: true,
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* DEPRECATED - use `appearance` instead.
|
|
158
|
+
*/
|
|
159
|
+
onDark: {
|
|
160
|
+
type: Boolean,
|
|
161
|
+
reflect: true
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* This will register this element with the browser.
|
|
168
|
+
* @param {string} [name="auro-helptext"] - The name of element that you want to register to.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* AuroCheckbox.register("custom-helptext") // this will register this element to <custom-helptext/>
|
|
172
|
+
*
|
|
173
|
+
*/
|
|
174
|
+
static register(name = "auro-helptext") {
|
|
175
|
+
AuroLibraryRuntimeUtils.prototype.registerComponent(name, AuroHelpText);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
updated() {
|
|
179
|
+
this.handleSlotChange();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
handleSlotChange(event) {
|
|
183
|
+
if (event) {
|
|
184
|
+
this.slotNodes = event.target.assignedNodes();
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
this.hasTextContent = this.checkSlotsForContent(this.slotNodes);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Checks if any of the provided nodes or their nested slot nodes contain non-empty text content.
|
|
192
|
+
*
|
|
193
|
+
* @param {NodeList|Array} nodes - The list of nodes to check for content.
|
|
194
|
+
* @returns {boolean} - Returns true if any node or nested slot node contains non-empty text content, otherwise false.
|
|
195
|
+
* @private
|
|
196
|
+
*/
|
|
197
|
+
checkSlotsForContent(nodes) {
|
|
198
|
+
if (!nodes) {
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return nodes.some((node) => {
|
|
203
|
+
if (node.textContent.trim()) {
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
if (!node.querySelector) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const nestedSlot = node.tagName === 'SLOT' ? node : node.querySelector('slot');
|
|
212
|
+
if (!nestedSlot) {
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const nestedSlotNodes = nestedSlot.assignedNodes();
|
|
217
|
+
return this.checkSlotsForContent(nestedSlotNodes);
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// function that renders the HTML and CSS into the scope of the component
|
|
222
|
+
render() {
|
|
223
|
+
return html`
|
|
224
|
+
<div class="helptext-wrapper body-xs" ?visible="${this.hasTextContent}">
|
|
225
|
+
<slot @slotchange=${this.handleSlotChange}></slot>
|
|
226
|
+
</div>
|
|
227
|
+
`;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
AuroHelpText.register();
|