@aquera/nile-elements 0.0.4-8 → 0.0.5-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/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/index.d.ts +2 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/index.js +2 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/index.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-error-message/nile-error-message.css.js +42 -45
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-error-message/nile-error-message.css.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-error-message/nile-error-message.d.ts +13 -5
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-error-message/nile-error-message.js +54 -84
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-error-message/nile-error-message.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-link/nile-link.css.js +2 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-link/nile-link.css.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/index.d.ts +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/index.js +2 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/index.js.map +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/nile-radio-button.css.d.ts +12 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/nile-radio-button.css.js +173 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/nile-radio-button.css.js.map +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/nile-radio-button.d.ts +57 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/nile-radio-button.js +145 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button/nile-radio-button.js.map +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/index.d.ts +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/index.js +2 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/index.js.map +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/nile-radio-button-group.css.d.ts +12 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/nile-radio-button-group.css.js +70 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/nile-radio-button-group.css.js.map +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/nile-radio-button-group.d.ts +66 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/nile-radio-button-group.js +308 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-radio-button-group/nile-radio-button-group.js.map +1 -0
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-select/nile-select.js +2 -2
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/src/nile-select/nile-select.js.map +1 -1
- package/.rollup.cache/opt/atlassian/pipelines/agent/build/packages/nile-elements/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/{index-cd83c5c8.cjs.js → index-0da7021a.cjs.js} +2 -2
- package/dist/{index-cd83c5c8.cjs.js.map → index-0da7021a.cjs.js.map} +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.iife.js +432 -143
- package/dist/nile-auto-complete/index.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.css.cjs.js +1 -1
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.css.cjs.js +1 -1
- package/dist/nile-calendar/index.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
- package/dist/nile-checkbox/index.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
- package/dist/nile-chip/index.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.css.cjs.js +1 -1
- package/dist/nile-date-picker/index.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.css.cjs.js +1 -1
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.css.cjs.js +1 -1
- package/dist/nile-dropdown/index.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.css.cjs.js +1 -1
- package/dist/nile-error-message/index.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.cjs.js.map +1 -1
- package/dist/nile-error-message/nile-error-message.css.cjs.js +1 -1
- package/dist/nile-error-message/nile-error-message.css.cjs.js.map +1 -1
- package/dist/nile-error-message/nile-error-message.css.esm.js +42 -45
- package/dist/nile-error-message/nile-error-message.esm.js +26 -28
- package/dist/nile-footer/index.cjs.js +1 -1
- package/dist/nile-footer/nile-footer.css.cjs.js +1 -1
- package/dist/nile-form-error-message/index.cjs.js +1 -1
- package/dist/nile-form-error-message/nile-form-error-message.cjs.js +1 -1
- package/dist/nile-form-error-message/nile-form-error-message.css.cjs.js +1 -1
- package/dist/nile-form-help-text/index.cjs.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.cjs.js +1 -1
- package/dist/nile-form-help-text/nile-form-help-text.css.cjs.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.css.cjs.js +1 -1
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.css.cjs.js +1 -1
- package/dist/nile-link/index.cjs.js +1 -1
- package/dist/nile-link/nile-link.cjs.js +1 -1
- package/dist/nile-link/nile-link.css.cjs.js +1 -1
- package/dist/nile-link/nile-link.css.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.css.esm.js +2 -0
- package/dist/nile-loader/index.cjs.js +1 -1
- package/dist/nile-loader/nile-loader.cjs.js +1 -1
- package/dist/nile-menu/index.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.css.cjs.js +1 -1
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.css.cjs.js +1 -1
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.css.cjs.js +1 -1
- package/dist/nile-popup/index.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.css.cjs.js +1 -1
- package/dist/nile-progress-bar/index.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js +1 -1
- package/dist/nile-radio/index.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
- package/dist/nile-radio-button/index.cjs.js +2 -0
- package/dist/nile-radio-button/index.cjs.js.map +1 -0
- package/dist/nile-radio-button/index.esm.js +1 -0
- package/dist/nile-radio-button/nile-radio-button.cjs.js +2 -0
- package/dist/nile-radio-button/nile-radio-button.cjs.js.map +1 -0
- package/dist/nile-radio-button/nile-radio-button.css.cjs.js +2 -0
- package/dist/nile-radio-button/nile-radio-button.css.cjs.js.map +1 -0
- package/dist/nile-radio-button/nile-radio-button.css.esm.js +161 -0
- package/dist/nile-radio-button/nile-radio-button.esm.js +21 -0
- package/dist/nile-radio-button-group/index.cjs.js +2 -0
- package/dist/nile-radio-button-group/index.cjs.js.map +1 -0
- package/dist/nile-radio-button-group/index.esm.js +1 -0
- package/dist/nile-radio-button-group/nile-radio-button-group.cjs.js +2 -0
- package/dist/nile-radio-button-group/nile-radio-button-group.cjs.js.map +1 -0
- package/dist/nile-radio-button-group/nile-radio-button-group.css.cjs.js +2 -0
- package/dist/nile-radio-button-group/nile-radio-button-group.css.cjs.js.map +1 -0
- package/dist/nile-radio-button-group/nile-radio-button-group.css.esm.js +58 -0
- package/dist/nile-radio-button-group/nile-radio-button-group.esm.js +56 -0
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.esm.js +1 -1
- package/dist/nile-slide-toggle/index.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
- package/dist/nile-spinner/index.cjs.js +1 -1
- package/dist/nile-spinner/nile-spinner.cjs.js +1 -1
- package/dist/nile-spinner/nile-spinner.css.cjs.js +1 -1
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.css.cjs.js +1 -1
- package/dist/nile-textarea/index.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.css.cjs.js +1 -1
- package/dist/nile-toolbar/index.cjs.js +1 -1
- package/dist/nile-toolbar/nile-toolbar.css.cjs.js +1 -1
- package/dist/nile-tooltip/index.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.css.cjs.js +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-error-message/nile-error-message.css.js +42 -45
- package/dist/src/nile-error-message/nile-error-message.css.js.map +1 -1
- package/dist/src/nile-error-message/nile-error-message.d.ts +13 -5
- package/dist/src/nile-error-message/nile-error-message.js +54 -84
- package/dist/src/nile-error-message/nile-error-message.js.map +1 -1
- package/dist/src/nile-link/nile-link.css.js +2 -0
- package/dist/src/nile-link/nile-link.css.js.map +1 -1
- package/dist/src/nile-radio-button/index.d.ts +1 -0
- package/dist/src/nile-radio-button/index.js +2 -0
- package/dist/src/nile-radio-button/index.js.map +1 -0
- package/dist/src/nile-radio-button/nile-radio-button.css.d.ts +12 -0
- package/dist/src/nile-radio-button/nile-radio-button.css.js +173 -0
- package/dist/src/nile-radio-button/nile-radio-button.css.js.map +1 -0
- package/dist/src/nile-radio-button/nile-radio-button.d.ts +57 -0
- package/dist/src/nile-radio-button/nile-radio-button.js +145 -0
- package/dist/src/nile-radio-button/nile-radio-button.js.map +1 -0
- package/dist/src/nile-radio-button-group/index.d.ts +1 -0
- package/dist/src/nile-radio-button-group/index.js +2 -0
- package/dist/src/nile-radio-button-group/index.js.map +1 -0
- package/dist/src/nile-radio-button-group/nile-radio-button-group.css.d.ts +12 -0
- package/dist/src/nile-radio-button-group/nile-radio-button-group.css.js +70 -0
- package/dist/src/nile-radio-button-group/nile-radio-button-group.css.js.map +1 -0
- package/dist/src/nile-radio-button-group/nile-radio-button-group.d.ts +66 -0
- package/dist/src/nile-radio-button-group/nile-radio-button-group.js +308 -0
- package/dist/src/nile-radio-button-group/nile-radio-button-group.js.map +1 -0
- package/dist/src/nile-select/nile-select.js +2 -2
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/nile-error-message/nile-error-message.css.ts +42 -45
- package/src/nile-error-message/nile-error-message.ts +52 -90
- package/src/nile-link/nile-link.css.ts +2 -0
- package/src/nile-radio-button/index.ts +1 -0
- package/src/nile-radio-button/nile-radio-button.css.ts +175 -0
- package/src/nile-radio-button/nile-radio-button.ts +151 -0
- package/src/nile-radio-button-group/index.ts +1 -0
- package/src/nile-radio-button-group/nile-radio-button-group.css.ts +72 -0
- package/src/nile-radio-button-group/nile-radio-button-group.ts +337 -0
- package/src/nile-select/nile-select.ts +2 -2
package/package.json
CHANGED
package/src/index.ts
CHANGED
@@ -30,3 +30,5 @@ export { NileFormErrorMessage } from './nile-form-error-message';
|
|
30
30
|
export { NileFormHelpText } from './nile-form-help-text';
|
31
31
|
export { NileCalendar } from './nile-calendar';
|
32
32
|
export { NileLink} from './nile-link';
|
33
|
+
export { NileRadioButton } from './nile-radio-button';
|
34
|
+
export { NileRadioButtonGroup } from './nile-radio-button-group';
|
@@ -12,76 +12,73 @@ import { css } from 'lit-element';
|
|
12
12
|
*/
|
13
13
|
export const styles = css`
|
14
14
|
:host {
|
15
|
-
width:100%;
|
16
15
|
}
|
17
16
|
|
18
17
|
.nile-error-message {
|
19
18
|
width: 100%;
|
19
|
+
word-break: break-all;
|
20
20
|
font-size: var(--nile-font-size-small);
|
21
|
+
letter-spacing: 0.2px;
|
21
22
|
font-weight: var(--nile-font-weight-regular);
|
22
23
|
line-height: var(--nile-font-size-small);
|
23
|
-
border: 1px solid var(--nile-colors-red-500);
|
24
|
-
border-left: 6px solid var(--nile-colors-red-500);
|
25
|
-
border-radius: var(--nile-radius-base-standard);
|
26
|
-
background: var(--nile-colors-red-100);
|
27
24
|
}
|
28
25
|
|
29
|
-
.nile-error-
|
26
|
+
.nile-error-message__error {
|
30
27
|
color: var(--nile-colors-red-500);
|
31
|
-
|
32
|
-
|
33
|
-
|
28
|
+
word-break: break-word;
|
29
|
+
}
|
30
|
+
|
31
|
+
.nile-error-message__response {
|
32
|
+
color: var(--nile-colors-dark-500);
|
34
33
|
}
|
35
34
|
|
36
|
-
.nile-error-message__icon
|
37
|
-
.nile-error-message__arrow {
|
35
|
+
.nile-error-message__icon {
|
38
36
|
vertical-align: middle;
|
39
|
-
margin-right:
|
40
|
-
transition: transform 0.3s ease-in-out;
|
37
|
+
margin-right:2px;
|
41
38
|
}
|
42
39
|
|
43
|
-
.nile-error-
|
40
|
+
.nile-error-message__more-button {
|
41
|
+
color: var(--nile-colors-primary-600);
|
44
42
|
cursor: pointer;
|
45
|
-
|
43
|
+
word-break: break-word;
|
46
44
|
}
|
47
45
|
|
48
|
-
.nile-error-
|
49
|
-
|
50
|
-
|
51
|
-
|
46
|
+
.nile-error-message__response-expanded {
|
47
|
+
height: auto;
|
48
|
+
border: 1px solid var(--nile-colors-red-500);
|
49
|
+
border-left: 6px solid var(--nile-colors-red-500);
|
50
|
+
border-radius: 4px;
|
51
|
+
margin-top: 12px;
|
52
|
+
padding: 12px;
|
53
|
+
background: var(--nile-colors-neutral-100);
|
52
54
|
}
|
53
55
|
|
54
|
-
.nile-error-
|
55
|
-
|
56
|
+
.nile-error-message__response-expanded {
|
57
|
+
max-height: 100px;
|
58
|
+
overflow-y: auto;
|
59
|
+
border: 1px solid var(--nile-colors-red-500);
|
60
|
+
border-left: 6px solid var(--nile-colors-red-500);
|
61
|
+
border-radius: 4px;
|
62
|
+
margin-top: 12px;
|
63
|
+
padding: 12px;
|
64
|
+
background: var(--nile-colors-neutral-100);
|
65
|
+
transition: max-height 0.3s ease-in-out;
|
66
|
+
flex-shrink: 0;
|
56
67
|
}
|
57
68
|
|
58
|
-
.nile-error-
|
59
|
-
|
69
|
+
.nile-error-message__response-expanded.collapsed {
|
70
|
+
max-height: 0;
|
60
71
|
overflow: hidden;
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
}
|
65
|
-
|
66
|
-
.nile-error-message__expandable.expanded .nile-error-message__summary {
|
67
|
-
white-space: normal;
|
68
|
-
max-height: 6em;
|
69
|
-
overflow-y: scroll;
|
70
|
-
}
|
71
|
-
|
72
|
-
.nile-error-message__expandable.expanded
|
73
|
-
.nile-error-message__summary::-webkit-scrollbar {
|
74
|
-
width: 8px;
|
75
|
-
}
|
76
|
-
|
77
|
-
.nile-error-message__expandable.expanded
|
78
|
-
.nile-error-message__summary::-webkit-scrollbar-thumb {
|
79
|
-
border-radius: 20px;
|
80
|
-
background: rgba(148, 159, 184, 0.25);
|
72
|
+
transition: max-height 0.3s ease-in-out;
|
73
|
+
visibility: hidden;
|
74
|
+
padding: 0 12px;
|
81
75
|
}
|
82
76
|
|
83
|
-
.nile-error-
|
84
|
-
|
77
|
+
.nile-error-message__response-expanded.expanded {
|
78
|
+
max-height: 100px;
|
79
|
+
transition: max-height 0.3s ease-in-out;
|
80
|
+
visibility: visible;
|
81
|
+
padding: 12px;
|
85
82
|
}
|
86
83
|
`;
|
87
84
|
|
@@ -8,13 +8,6 @@ import {
|
|
8
8
|
import { customElement } from 'lit/decorators.js';
|
9
9
|
import { styles } from './nile-error-message.css';
|
10
10
|
|
11
|
-
const convertToStringArray = (value: any): Array<string> => {
|
12
|
-
if (Array.isArray(value)) {
|
13
|
-
return value.map(item => String(item));
|
14
|
-
}
|
15
|
-
return [];
|
16
|
-
};
|
17
|
-
|
18
11
|
/**
|
19
12
|
* A custom error message component that displays error information to the user.
|
20
13
|
* @customElement nile-error-message
|
@@ -25,100 +18,69 @@ export class NileErrorMessage extends LitElement {
|
|
25
18
|
return [styles];
|
26
19
|
}
|
27
20
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
hasChanged: (newVal, oldVal) =>
|
32
|
-
JSON.stringify(newVal) !== JSON.stringify(oldVal), // Optional: to detect deep changes
|
33
|
-
converter: {
|
34
|
-
toAttribute: value => JSON.stringify(value),
|
35
|
-
fromAttribute: value => convertToStringArray(JSON.parse(value || '[]')),
|
36
|
-
},
|
37
|
-
})
|
38
|
-
errorMessages: Array<string> = [];
|
21
|
+
// Represents the error message to be displayed to the user.
|
22
|
+
@property({ type: String })
|
23
|
+
errorMessage: string = '';
|
39
24
|
|
40
|
-
|
41
|
-
|
25
|
+
// Represents additional details about the error, like stack trace or other info.
|
26
|
+
@property({ type: String })
|
27
|
+
errorResponse: string;
|
42
28
|
|
43
|
-
|
44
|
-
|
45
|
-
const originalHeight = element.clientHeight;
|
46
|
-
element.style.whiteSpace = 'normal';
|
47
|
-
element.style.height = 'auto';
|
48
|
-
const expandedHeight = Math.min(element.clientHeight, 5.5 * 12);
|
29
|
+
@property({ type: Boolean })
|
30
|
+
isExpanded: boolean = false;
|
49
31
|
|
50
|
-
|
32
|
+
// The maximum length before truncation.
|
33
|
+
private readonly MAX_LENGTH: number = 100;
|
51
34
|
|
52
|
-
|
53
|
-
|
54
|
-
|
35
|
+
/**
|
36
|
+
* Get a truncated version of the errorResponse if it's too long.
|
37
|
+
* @returns {string}
|
38
|
+
*/
|
39
|
+
getTruncatedResponse(): string {
|
40
|
+
if (this.errorResponse.length > this.MAX_LENGTH) {
|
41
|
+
return `${this.errorResponse.substring(0, this.MAX_LENGTH)}...`;
|
42
|
+
}
|
43
|
+
return this.errorResponse;
|
55
44
|
}
|
56
45
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
requestAnimationFrame(() => {
|
63
|
-
element.style.height = '14px';
|
64
|
-
element.style.whiteSpace = 'nowrap';
|
65
|
-
});
|
46
|
+
/**
|
47
|
+
* Toggle the expanded state of the error response.
|
48
|
+
*/
|
49
|
+
toggleExpanded() {
|
50
|
+
this.isExpanded = !this.isExpanded;
|
66
51
|
}
|
67
52
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
53
|
+
public render(): TemplateResult {
|
54
|
+
return html`
|
55
|
+
<div class="nile-error-message" part="base">
|
56
|
+
<nile-icon
|
57
|
+
name="info2"
|
58
|
+
size="14"
|
59
|
+
class="nile-error-message__icon"
|
60
|
+
part="icon"
|
61
|
+
color="#E5434D"
|
62
|
+
></nile-icon>
|
63
|
+
<span class="nile-error-message__error">${this.errorMessage}</span>
|
79
64
|
|
80
|
-
if (this.expandedIndex === index) {
|
81
|
-
this.expandedIndex = null;
|
82
|
-
this.collapseText(event.currentTarget);
|
83
|
-
} else {
|
84
|
-
this.expandedIndex = index;
|
85
|
-
this.expandText(index, event.currentTarget);
|
86
|
-
}
|
87
|
-
}
|
88
65
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
66
|
+
${this.errorResponse
|
67
|
+
? html` <span class="nile-error-message__response"
|
68
|
+
>${this.getTruncatedResponse()}</span
|
69
|
+
>
|
70
|
+
<span
|
71
|
+
class="nile-error-message__more-button"
|
72
|
+
@click=${this.toggleExpanded}
|
73
|
+
>${this.isExpanded ? 'View Less' : 'View More'}</span
|
74
|
+
>`
|
75
|
+
: ``}
|
76
|
+
|
77
|
+
<div
|
78
|
+
class="nile-error-message__response-expanded ${this.isExpanded
|
79
|
+
? 'expanded'
|
80
|
+
: 'collapsed'}"
|
81
|
+
>
|
82
|
+
${this.errorResponse}
|
102
83
|
</div>
|
103
|
-
${this.errorMessages.map(
|
104
|
-
(errorMessage, index) => html`
|
105
|
-
<div
|
106
|
-
class="nile-error-message__expandable ${index !== 0
|
107
|
-
? 'bordered'
|
108
|
-
: ''} ${this.expandedIndex === index ? 'expanded' : ''}"
|
109
|
-
@click="${(event: any) => this.toggleExpand(index, event)}"
|
110
|
-
>
|
111
|
-
<div class="nile-error-message__content">
|
112
|
-
<nile-icon
|
113
|
-
name="arrowright"
|
114
|
-
size="14"
|
115
|
-
class="nile-error-message__arrow"
|
116
|
-
></nile-icon>
|
117
|
-
<div class="nile-error-message__summary">${errorMessage}</div>
|
118
|
-
</div>
|
119
|
-
</div>
|
120
|
-
`
|
121
|
-
)}
|
122
84
|
</div>
|
123
85
|
`;
|
124
86
|
}
|
@@ -25,6 +25,7 @@ export const styles = css`
|
|
25
25
|
gap: 8px;
|
26
26
|
height: 38px;
|
27
27
|
box-sizing: border-box;
|
28
|
+
cursor: pointer
|
28
29
|
}
|
29
30
|
|
30
31
|
.link__label {
|
@@ -42,6 +43,7 @@ export const styles = css`
|
|
42
43
|
color: rgba(0, 94, 166, 0.5);
|
43
44
|
cursor: not-allowed;
|
44
45
|
opacity: 0.6;
|
46
|
+
pointer-events:none;
|
45
47
|
}
|
46
48
|
|
47
49
|
.link:not(.link--disabled):not(.link__button):hover {
|
@@ -0,0 +1 @@
|
|
1
|
+
export { NileRadioButton } from './nile-radio-button';
|
@@ -0,0 +1,175 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright Aquera Inc 2023
|
3
|
+
*
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import { css } from 'lit-element';
|
9
|
+
|
10
|
+
/**
|
11
|
+
* RadioButton CSS
|
12
|
+
*/
|
13
|
+
export const styles = css`
|
14
|
+
:host {
|
15
|
+
}
|
16
|
+
|
17
|
+
.button {
|
18
|
+
display: inline-flex;
|
19
|
+
align-items: center;
|
20
|
+
justify-content: center;
|
21
|
+
width: 100%;
|
22
|
+
color: var(--color-text-default, #000);
|
23
|
+
text-align: center;
|
24
|
+
border-radius: 4px;
|
25
|
+
font-family: Colfax-regular;
|
26
|
+
font-size: 14px;
|
27
|
+
font-style: normal;
|
28
|
+
font-weight: 400;
|
29
|
+
line-height: 14px; /* 100% */
|
30
|
+
letter-spacing: 0.2px;
|
31
|
+
text-decoration: none;
|
32
|
+
user-select: none;
|
33
|
+
white-space: nowrap;
|
34
|
+
vertical-align: middle;
|
35
|
+
padding: 12px;
|
36
|
+
cursor: pointer;
|
37
|
+
gap: 10px;
|
38
|
+
}
|
39
|
+
|
40
|
+
.button::-moz-focus-inner {
|
41
|
+
border: 0;
|
42
|
+
}
|
43
|
+
|
44
|
+
.button:focus {
|
45
|
+
outline: none;
|
46
|
+
}
|
47
|
+
|
48
|
+
.button:focus-visible {
|
49
|
+
outline: var(--nile-focus-ring);
|
50
|
+
outline-offset: var(--nile-focus-ring-offset);
|
51
|
+
}
|
52
|
+
|
53
|
+
.button--disabled {
|
54
|
+
opacity: 0.5;
|
55
|
+
cursor: not-allowed;
|
56
|
+
}
|
57
|
+
|
58
|
+
/* When disabled, prevent mouse events from bubbling up from children */
|
59
|
+
.button--disabled * {
|
60
|
+
pointer-events: none;
|
61
|
+
}
|
62
|
+
|
63
|
+
.button__prefix,
|
64
|
+
.button__suffix {
|
65
|
+
flex: 0 0 auto;
|
66
|
+
display: flex;
|
67
|
+
align-items: center;
|
68
|
+
pointer-events: none;
|
69
|
+
}
|
70
|
+
|
71
|
+
.button__label {
|
72
|
+
display: inline-block;
|
73
|
+
}
|
74
|
+
|
75
|
+
.button__label::slotted(nile-icon) {
|
76
|
+
vertical-align: -2px;
|
77
|
+
}
|
78
|
+
|
79
|
+
/* Default */
|
80
|
+
.button--default {
|
81
|
+
border: 1px solid #c7ced4;
|
82
|
+
background: #fff;
|
83
|
+
color: black;
|
84
|
+
}
|
85
|
+
|
86
|
+
.button--default:hover:not(.button--disabled) {
|
87
|
+
border: 1px solid #c7ced4;
|
88
|
+
background: #e5e9eb;
|
89
|
+
}
|
90
|
+
|
91
|
+
.button--default:active:not(.button--disabled) {
|
92
|
+
border: 1px solid #c7ced4;
|
93
|
+
background: #e5e9eb;
|
94
|
+
}
|
95
|
+
|
96
|
+
.button--checked {
|
97
|
+
border: 1px solid #c7ced4;
|
98
|
+
background: #e5e9eb;
|
99
|
+
}
|
100
|
+
|
101
|
+
.button--has-label.button--medium .button__label {
|
102
|
+
padding: 0 var(--nile-spacing-medium);
|
103
|
+
}
|
104
|
+
|
105
|
+
.button--has-prefix.button--medium {
|
106
|
+
padding-inline-start: var(--nile-spacing-small);
|
107
|
+
}
|
108
|
+
|
109
|
+
.button--has-prefix.button--medium .button__label {
|
110
|
+
padding-inline-start: var(--nile-spacing-small);
|
111
|
+
}
|
112
|
+
|
113
|
+
.button--has-suffix.button--medium,
|
114
|
+
.button--caret.button--medium {
|
115
|
+
padding-inline-end: var(--nile-spacing-small);
|
116
|
+
}
|
117
|
+
|
118
|
+
.button--has-suffix.button--medium .button__label,
|
119
|
+
.button--caret.button--medium .button__label {
|
120
|
+
padding-inline-end: var(--nile-spacing-small);
|
121
|
+
}
|
122
|
+
|
123
|
+
.nile-radio-button--first {
|
124
|
+
background-color: red;
|
125
|
+
}
|
126
|
+
|
127
|
+
:host(.nile-radio-button--first:not(.nile-radio-button--last)) .button {
|
128
|
+
border-start-end-radius: 0;
|
129
|
+
border-end-end-radius: 0;
|
130
|
+
}
|
131
|
+
|
132
|
+
:host(.nile-group-button--inner) .button {
|
133
|
+
border-radius: 0;
|
134
|
+
}
|
135
|
+
|
136
|
+
:host(.nile-radio-button--last:not(.nile-radio-button--first)) .button {
|
137
|
+
border-start-start-radius: 0;
|
138
|
+
border-end-start-radius: 0;
|
139
|
+
}
|
140
|
+
|
141
|
+
/* All except the first */
|
142
|
+
:host(.nile-radio-button__button:not(.nile-radio-button__button--first)) {
|
143
|
+
margin-inline-start: calc(-1 * var(--nile-input-border-width));
|
144
|
+
}
|
145
|
+
|
146
|
+
:host(.nile-radio-button--inner) .button {
|
147
|
+
border-radius: 0;
|
148
|
+
border-left: 0;
|
149
|
+
border-right: 0;
|
150
|
+
}
|
151
|
+
|
152
|
+
.button__prefix,
|
153
|
+
.button__suffix,
|
154
|
+
.button__label {
|
155
|
+
display: inline-flex;
|
156
|
+
position: relative;
|
157
|
+
align-items: center;
|
158
|
+
}
|
159
|
+
|
160
|
+
/* We use a hidden input so constraint validation errors work, since they don't appear to show when used with buttons.
|
161
|
+
We can't actually hide it, though, otherwise the messages will be suppressed by the browser. */
|
162
|
+
.hidden-input {
|
163
|
+
all: unset;
|
164
|
+
position: absolute;
|
165
|
+
top: 0;
|
166
|
+
left: 0;
|
167
|
+
bottom: 0;
|
168
|
+
right: 0;
|
169
|
+
outline: dotted 1px red;
|
170
|
+
opacity: 0;
|
171
|
+
z-index: -1;
|
172
|
+
}
|
173
|
+
`;
|
174
|
+
|
175
|
+
export default [styles];
|
@@ -0,0 +1,151 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright Aquera Inc 2023
|
3
|
+
*
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
import {
|
9
|
+
LitElement,
|
10
|
+
html,
|
11
|
+
property,
|
12
|
+
CSSResultArray,
|
13
|
+
TemplateResult,
|
14
|
+
} from 'lit-element';
|
15
|
+
import { customElement, query, state } from 'lit/decorators.js';
|
16
|
+
import { styles } from './nile-radio-button.css';
|
17
|
+
import NileElement from '../internal/nile-element';
|
18
|
+
import { HasSlotController } from '../slot';
|
19
|
+
import { classMap } from 'lit/directives/class-map.js';
|
20
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
21
|
+
import { watch } from '../internal/watch';
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Nile icon component.
|
25
|
+
*
|
26
|
+
* @tag nile-radio-button
|
27
|
+
*
|
28
|
+
*/
|
29
|
+
@customElement('nile-radio-button')
|
30
|
+
export class NileRadioButton extends NileElement {
|
31
|
+
/**
|
32
|
+
* The styles for RadioButton
|
33
|
+
* @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
|
34
|
+
*/
|
35
|
+
public static get styles(): CSSResultArray {
|
36
|
+
return [styles];
|
37
|
+
}
|
38
|
+
private readonly hasSlotController = new HasSlotController(
|
39
|
+
this,
|
40
|
+
'[default]',
|
41
|
+
'prefix',
|
42
|
+
'suffix'
|
43
|
+
);
|
44
|
+
|
45
|
+
@query('.button') input: HTMLInputElement;
|
46
|
+
@query('.hidden-input') hiddenInput: HTMLInputElement;
|
47
|
+
|
48
|
+
@state() protected hasFocus = false;
|
49
|
+
|
50
|
+
/**
|
51
|
+
* @internal The radio button's checked state. This is exposed as an "internal" attribute so we can reflect it, making
|
52
|
+
* it easier to style in button groups.
|
53
|
+
*/
|
54
|
+
@property({ type: Boolean, reflect: true }) checked = false;
|
55
|
+
|
56
|
+
/** The radio's value. When selected, the radio group will receive this value. */
|
57
|
+
@property() value: string;
|
58
|
+
|
59
|
+
/** Disables the radio button. */
|
60
|
+
@property({ type: Boolean, reflect: true }) disabled = false;
|
61
|
+
|
62
|
+
/**
|
63
|
+
* The radio button's size. When used inside a radio group, the size will be determined by the radio group's size so
|
64
|
+
* this attribute can typically be omitted.
|
65
|
+
*/
|
66
|
+
@property({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';
|
67
|
+
|
68
|
+
/** Draws a pill-style radio button with rounded edges. */
|
69
|
+
@property({ type: Boolean, reflect: true }) pill = false;
|
70
|
+
|
71
|
+
connectedCallback() {
|
72
|
+
super.connectedCallback();
|
73
|
+
this.setAttribute('role', 'presentation');
|
74
|
+
}
|
75
|
+
|
76
|
+
private handleBlur() {
|
77
|
+
this.hasFocus = false;
|
78
|
+
this.emit('nile-blur');
|
79
|
+
}
|
80
|
+
|
81
|
+
private handleClick(e: MouseEvent) {
|
82
|
+
if (this.disabled) {
|
83
|
+
e.preventDefault();
|
84
|
+
e.stopPropagation();
|
85
|
+
return;
|
86
|
+
}
|
87
|
+
|
88
|
+
this.checked = true;
|
89
|
+
}
|
90
|
+
|
91
|
+
private handleFocus() {
|
92
|
+
this.hasFocus = true;
|
93
|
+
this.emit('nile-focus');
|
94
|
+
}
|
95
|
+
|
96
|
+
@watch('disabled', { waitUntilFirstUpdate: true })
|
97
|
+
handleDisabledChange() {
|
98
|
+
this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');
|
99
|
+
}
|
100
|
+
|
101
|
+
/** Sets focus on the radio button. */
|
102
|
+
focus(options?: FocusOptions) {
|
103
|
+
this.input.focus(options);
|
104
|
+
}
|
105
|
+
|
106
|
+
/** Removes focus from the radio button. */
|
107
|
+
blur() {
|
108
|
+
this.input.blur();
|
109
|
+
}
|
110
|
+
|
111
|
+
render() {
|
112
|
+
return html`
|
113
|
+
<div part="base" role="presentation">
|
114
|
+
<button
|
115
|
+
part="${`button${this.checked ? ' button--checked' : ''}`}"
|
116
|
+
role="radio"
|
117
|
+
aria-checked="${this.checked}"
|
118
|
+
class=${classMap({
|
119
|
+
button: true,
|
120
|
+
'button--default': true,
|
121
|
+
'button--checked': this.checked,
|
122
|
+
'button--disabled': this.disabled,
|
123
|
+
'button--focused': this.hasFocus,
|
124
|
+
'button--has-label': this.hasSlotController.test('[default]'),
|
125
|
+
'button--has-prefix': this.hasSlotController.test('prefix'),
|
126
|
+
'button--has-suffix': this.hasSlotController.test('suffix'),
|
127
|
+
})}
|
128
|
+
aria-disabled=${this.disabled}
|
129
|
+
type="button"
|
130
|
+
value=${ifDefined(this.value)}
|
131
|
+
tabindex="${this.checked ? '0' : '-1'}"
|
132
|
+
@blur=${this.handleBlur}
|
133
|
+
@focus=${this.handleFocus}
|
134
|
+
@click=${this.handleClick}
|
135
|
+
>
|
136
|
+
<slot name="prefix" part="prefix" class="button__prefix"></slot>
|
137
|
+
<slot part="label" class="button__label"></slot>
|
138
|
+
<slot name="suffix" part="suffix" class="button__suffix"></slot>
|
139
|
+
</button>
|
140
|
+
</div>
|
141
|
+
`;
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
export default NileRadioButton;
|
146
|
+
|
147
|
+
declare global {
|
148
|
+
interface HTMLElementTagNameMap {
|
149
|
+
'nile-radio-button': NileRadioButton;
|
150
|
+
}
|
151
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { NileRadioButtonGroup } from './nile-radio-button-group';
|