@aquera/nile-elements 0.1.28 → 0.1.29-beta-1.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.
Files changed (77) hide show
  1. package/demo/index.html +0 -97
  2. package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
  3. package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
  4. package/dist/nile-accordion/nile-accordion.esm.js +2 -2
  5. package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js +1 -1
  6. package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js.map +1 -1
  7. package/dist/nile-circular-progressbar/nile-circular-progressbar.css.cjs.js +1 -1
  8. package/dist/nile-circular-progressbar/nile-circular-progressbar.css.cjs.js.map +1 -1
  9. package/dist/nile-circular-progressbar/nile-circular-progressbar.css.esm.js +47 -29
  10. package/dist/nile-circular-progressbar/nile-circular-progressbar.esm.js +16 -13
  11. package/dist/nile-progress-bar/nile-progress-bar.cjs.js +1 -1
  12. package/dist/nile-progress-bar/nile-progress-bar.cjs.js.map +1 -1
  13. package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js +1 -1
  14. package/dist/nile-progress-bar/nile-progress-bar.css.cjs.js.map +1 -1
  15. package/dist/nile-progress-bar/nile-progress-bar.css.esm.js +16 -3
  16. package/dist/nile-progress-bar/nile-progress-bar.esm.js +3 -3
  17. package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
  18. package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
  19. package/dist/nile-stepper/nile-stepper.css.cjs.js +1 -1
  20. package/dist/nile-stepper/nile-stepper.css.cjs.js.map +1 -1
  21. package/dist/nile-stepper/nile-stepper.css.esm.js +8 -2
  22. package/dist/nile-stepper/nile-stepper.esm.js +3 -3
  23. package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
  24. package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
  25. package/dist/nile-stepper-item/nile-stepper-item.css.cjs.js +1 -1
  26. package/dist/nile-stepper-item/nile-stepper-item.css.cjs.js.map +1 -1
  27. package/dist/nile-stepper-item/nile-stepper-item.css.esm.js +37 -16
  28. package/dist/nile-stepper-item/nile-stepper-item.esm.js +20 -17
  29. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
  30. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
  31. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.css.cjs.js +1 -1
  32. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.css.cjs.js.map +1 -1
  33. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.css.esm.js +28 -14
  34. package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +11 -13
  35. package/dist/src/nile-accordion/nile-accordion.d.ts +6 -5
  36. package/dist/src/nile-accordion/nile-accordion.js +19 -6
  37. package/dist/src/nile-accordion/nile-accordion.js.map +1 -1
  38. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.css.d.ts +5 -5
  39. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.css.js +52 -34
  40. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.css.js.map +1 -1
  41. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.d.ts +6 -2
  42. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.js +47 -32
  43. package/dist/src/nile-circular-progressbar/nile-circular-progressbar.js.map +1 -1
  44. package/dist/src/nile-progress-bar/nile-progress-bar.css.js +14 -1
  45. package/dist/src/nile-progress-bar/nile-progress-bar.css.js.map +1 -1
  46. package/dist/src/nile-progress-bar/nile-progress-bar.d.ts +1 -0
  47. package/dist/src/nile-progress-bar/nile-progress-bar.js +6 -1
  48. package/dist/src/nile-progress-bar/nile-progress-bar.js.map +1 -1
  49. package/dist/src/nile-stepper/nile-stepper.css.js +6 -0
  50. package/dist/src/nile-stepper/nile-stepper.css.js.map +1 -1
  51. package/dist/src/nile-stepper/nile-stepper.d.ts +2 -2
  52. package/dist/src/nile-stepper/nile-stepper.js +8 -8
  53. package/dist/src/nile-stepper/nile-stepper.js.map +1 -1
  54. package/dist/src/nile-stepper-item/nile-stepper-item.css.js +37 -16
  55. package/dist/src/nile-stepper-item/nile-stepper-item.css.js.map +1 -1
  56. package/dist/src/nile-stepper-item/nile-stepper-item.d.ts +5 -1
  57. package/dist/src/nile-stepper-item/nile-stepper-item.js +33 -14
  58. package/dist/src/nile-stepper-item/nile-stepper-item.js.map +1 -1
  59. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.css.js +28 -14
  60. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.css.js.map +1 -1
  61. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.d.ts +1 -0
  62. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js +10 -8
  63. package/dist/src/nile-vertical-stepper-item/nile-vertical-stepper-item.js.map +1 -1
  64. package/dist/tsconfig.tsbuildinfo +1 -1
  65. package/package.json +1 -1
  66. package/src/nile-accordion/nile-accordion.ts +13 -2
  67. package/src/nile-circular-progressbar/nile-circular-progressbar.css.ts +48 -31
  68. package/src/nile-circular-progressbar/nile-circular-progressbar.ts +49 -26
  69. package/src/nile-progress-bar/nile-progress-bar.css.ts +15 -2
  70. package/src/nile-progress-bar/nile-progress-bar.ts +6 -1
  71. package/src/nile-stepper/nile-stepper.css.ts +6 -0
  72. package/src/nile-stepper/nile-stepper.ts +11 -11
  73. package/src/nile-stepper-item/nile-stepper-item.css.ts +37 -16
  74. package/src/nile-stepper-item/nile-stepper-item.ts +34 -17
  75. package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.css.ts +28 -14
  76. package/src/nile-vertical-stepper-item/nile-vertical-stepper-item.ts +12 -8
  77. package/vscode-html-custom-data.json +30 -9
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.28",
6
+ "version": "0.1.29-beta-1.2",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Copyright Aquera Inc 2023
3
3
  *
4
4
  * This source code is licensed under the BSD-3-Clause license found in the
@@ -57,6 +57,7 @@ static styles: CSSResultGroup = styles;
57
57
  @query('.accordian__header') header: HTMLElement;
58
58
  @query('.accordian__body') body: HTMLElement;
59
59
  @query('.accordian__expand-icon-slot') expandIconSlot: HTMLSlotElement;
60
+ @query('slot[name="summary"]') summarySlot: HTMLSlotElement;
60
61
 
61
62
  /**
62
63
  * Indicates whether or not the accordian is open. You can toggle this attribute to show and hide the accordian, or you
@@ -93,7 +94,17 @@ firstUpdated() {
93
94
  this.body.style.height = this.open ? 'auto' : '0';
94
95
  }
95
96
 
96
- private handleSummaryClick() {
97
+ private handleSummaryClick(event: MouseEvent) {
98
+ const path = event.composedPath();
99
+ const slotIndex = path.indexOf(this.summarySlot);
100
+ if (slotIndex !== -1) {
101
+ for (let i = 0; i < slotIndex; i++) {
102
+ const el = path[i];
103
+ if (el instanceof Element && el.matches('input, button, select, textarea, a, label')) {
104
+ return;
105
+ }
106
+ }
107
+ }
97
108
  if (!this.disabled) {
98
109
  if (this.open) {
99
110
  this.hide();
@@ -1,4 +1,4 @@
1
- /**
1
+ /**
2
2
  * Copyright Aquera Inc 2023
3
3
  *
4
4
  * This source code is licensed under the BSD-3-Clause license found in the
@@ -11,35 +11,52 @@ import { css } from 'lit';
11
11
  * Progressbar CSS
12
12
  */
13
13
  export const styles = css`
14
- :host{
15
-
16
- }
17
- .track {
18
- stroke-width: 2px;
19
- stroke: var(--nile-colors-yellow-400);
20
- opacity: 0.5;
21
- fill: none;
22
- }
23
-
24
- .progress {
25
- stroke-width: 2px;
26
- stroke: var(--nile-colors-yellow-500);
27
- stroke-linecap: round;
28
- fill: none;
29
- transform: rotate(270deg);
30
- transform-origin: center;
31
- }
32
-
33
- .circle__text {
34
- color: var(--nile-colors-dark-900);
35
- text-align: center;
36
- font-size: var(--nile-type-scale-1);
37
- font-style: normal;
38
- font-weight: var(--nile-font-weight-regular);
39
- line-height: var(--nile-type-scale-1);
40
- letter-spacing: 0.2px;
41
- text-transform: uppercase;
42
- }
43
- `;
44
14
 
15
+ :host {
16
+ display: inline-block;
17
+ }
18
+
19
+ .track {
20
+ stroke-width: 4px;
21
+ stroke: var(--nile-colors-neutral-400);
22
+ opacity: 0.5;
23
+ fill: none;
24
+ }
25
+
26
+ .progress {
27
+ stroke-width: 4px;
28
+ stroke: var(--nile-colors-primary-600);
29
+ stroke-linecap: round;
30
+ fill: none;
31
+ transform: rotate(270deg);
32
+ transform-origin: center;
33
+ transition: stroke-dashoffset 0.8s ease-in-out;
34
+ }
35
+
36
+ .circle__text {
37
+ fill: var(--nile-colors-dark-900);
38
+ text-align: center;
39
+ font-size: var(--nile-type-scale-1);
40
+ font-style: normal;
41
+ font-weight: var(--nile-font-weight-regular);
42
+ line-height: var(--nile-type-scale-1);
43
+ letter-spacing: 0.2px;
44
+ }
45
+
46
+ .nile-progress-bar__status {
47
+ display: flex;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ margin-bottom: 4px;
51
+ }
52
+
53
+ .nile-progress-bar__message {
54
+ flex-grow: 1;
55
+ }
56
+
57
+ .nile-progress-bar__percentage {
58
+ white-space: nowrap;
59
+ }
60
+
61
+ `
45
62
  export default [styles];
@@ -31,10 +31,11 @@ export class NileCircularProgressbar extends NileElement {
31
31
  public static get styles(): CSSResultArray {
32
32
  return [styles];
33
33
  }
34
- @query('.progress') progressCircle: any;
35
- @property({ type: Number, reflect: true }) progress = 50;
36
34
 
37
- /* #endregion */
35
+ @query('.progress') progressCircle!: SVGCircleElement;
36
+
37
+ @property({ type: Number, reflect: true }) value = 0;
38
+ /* #endregion */
38
39
 
39
40
  /* #region Methods */
40
41
 
@@ -43,40 +44,62 @@ export class NileCircularProgressbar extends NileElement {
43
44
  * @slot This is a slot test
44
45
  */
45
46
  // make reactive to pass through
47
+ @property({ type: String, reflect: true }) content?: string;
48
+ @property({ type: Number, reflect: true }) size = 40;
49
+
50
+ private get circleSize() {
51
+ const radius = this.size / 2 - 4;
52
+ return {
53
+ radius,
54
+ viewBox: this.size,
55
+ fontSize: `${this.size * 0.25}px`,
56
+ };
57
+ }
46
58
 
47
59
  connectedCallback() {
48
60
  super.connectedCallback();
49
61
  this.updateComplete.then(() => {
50
- if (this.progress < 0) {
51
- this.progress = 0;
52
- }
53
- if (this.progress > 100) {
54
- this.progress = 100;
55
- }
56
- this.setProgress(this.progress);
62
+ this.value = Math.max(0, Math.min(100, this.value));
63
+ this.setProgress(this.value);
57
64
  });
58
65
  }
66
+
59
67
  private setProgress(percent: number) {
60
- const circleRadius = this.progressCircle.r.baseVal.value;
61
- let circumference = circleRadius * 2 * Math.PI;
62
- this.progressCircle.style.strokeDasharray = circumference;
63
- this.progressCircle.style.strokeDashoffset =
64
- circumference - (percent / 100) * circumference;
68
+ if (this.progressCircle) {
69
+ const circleRadius = this.progressCircle.r.baseVal.value;
70
+ const circumference = circleRadius * 2 * Math.PI;
71
+
72
+ this.progressCircle.style.transition = 'stroke-dashoffset 0.8s ease-in-out';
73
+ this.progressCircle.style.strokeDasharray = `${circumference}`;
74
+ this.progressCircle.style.strokeDashoffset = `${circumference - (percent / 100) * circumference}`;
75
+ }
76
+ }
77
+
78
+ updated(changedProperties: Map<string, any>) {
79
+ if (changedProperties.has('value')) {
80
+ this.setProgress(this.value);
81
+ }
65
82
  }
66
83
 
67
84
  public render(): TemplateResult {
85
+ const { radius, viewBox, fontSize } = this.circleSize;
86
+ const innerText = this.content ?? `${Math.round(this.value)}%`;
87
+
68
88
  return html`
69
- <svg width="40" height="40">
70
- <circle r="19" cx="20" cy="20" class="track"></circle>
71
- <circle r="19" cx="20" cy="20" class="progress"></circle>
72
- <text
73
- x="50%"
74
- y="50%"
75
- text-anchor="middle"
76
- alignment-baseline="middle"
77
- class="circle__text"
78
- >
79
- ${this.progress} %
89
+ <svg width="${viewBox}" height="${viewBox}" viewBox="0 0 ${viewBox} ${viewBox}">
90
+ <circle r="${radius}" cx="${viewBox / 2}" cy="${viewBox / 2}" class="track"></circle>
91
+ <circle r="${radius}" cx="${viewBox / 2}" cy="${viewBox / 2}" class="progress"></circle>
92
+
93
+
94
+ <text
95
+ x="50%"
96
+ y="53%"
97
+ text-anchor="middle"
98
+ alignment-baseline="middle"
99
+ class="circle__text"
100
+ style="font-size: ${fontSize};"
101
+ >
102
+ ${innerText}
80
103
  </text>
81
104
  </svg>
82
105
  `;
@@ -22,6 +22,14 @@ export default css`
22
22
  width: 100%;
23
23
  height: 2px;
24
24
  background-color: var(--nile-colors-neutral-400);
25
+ transition: stroke-dashoffset 0.8s ease-in-out
26
+ }
27
+
28
+
29
+ .nile-progress-bar__progress-bar.rounded li {
30
+ height: 4px;
31
+ border-radius: 4px;
32
+ overflow: hidden;
25
33
  }
26
34
 
27
35
  .nile-progress-bar__progress-bar li.changeColor::after {
@@ -33,13 +41,18 @@ export default css`
33
41
  top: 0;
34
42
  left: 0;
35
43
  background-color: var(--nile-colors-primary-600);
36
- height: 2px;
44
+ height: 100%;
37
45
  transition: all 1s linear;
38
46
  }
39
47
 
48
+
49
+ .nile-progress-bar__progress-bar.rounded li span {
50
+ border-radius: 4px;
51
+ }
52
+
40
53
  .nile-progress-bar__reset {
41
54
  background-color: var(--nile-colors-neutral-400);
42
55
  position: absolute;
43
56
  z-index: 1;
44
57
  }
45
- `;
58
+ `;
@@ -7,11 +7,16 @@ export class NileProgressBar extends LitElement {
7
7
  static override styles: CSSResultGroup = styles;
8
8
 
9
9
  @property({ type: Number }) value = 0;
10
+ @property({ type: String }) variant: 'normal' | 'rounded' = 'normal';
10
11
 
11
12
  override render() {
13
+ const variantClass = this.variant === 'rounded' ? 'rounded' : '';
14
+
15
+
16
+
12
17
  return html`
13
18
  <div class="nile-progress-bar__container">
14
- <ul class="nile-progress-bar__progress-bar">
19
+ <ul class="nile-progress-bar__progress-bar ${variantClass}">
15
20
  <li><span style="width: ${this.value}%"></span></li>
16
21
  </ul>
17
22
  </div>
@@ -11,6 +11,9 @@ import {css} from 'lit';
11
11
  * Stepper CSS
12
12
  */
13
13
  export const styles = css`
14
+ *{
15
+ box-sizing:border-box;
16
+ }
14
17
  :host {
15
18
  display:block;
16
19
  height:100%;
@@ -18,11 +21,14 @@ export const styles = css`
18
21
  .nile-stepper--horizontal{
19
22
  display:flex;
20
23
  align-items:center;
24
+ padding: var(--nile-spacing-spacing-3xl) 0;
21
25
  }
26
+
22
27
  .nile-stepper--vertical{
23
28
  height:100%;
24
29
  display:flex;
25
30
  flex-direction:column;
31
+ padding: var(--nile-spacing-spacing-3xl) var(--nile-spacing-spacing-3xl) 0;
26
32
  }
27
33
  `;
28
34
 
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { LitElement, html, CSSResultArray, TemplateResult } from 'lit';
8
+ import { LitElement, html, CSSResultArray, TemplateResult, PropertyValueMap } from 'lit';
9
9
  import { customElement, property } from 'lit/decorators.js';
10
10
  import { styles } from './nile-stepper.css';
11
11
  import NileElement from '../internal/nile-element';
@@ -23,17 +23,17 @@ import { classMap } from 'lit/directives/class-map.js';
23
23
  export class NileStepper extends NileElement {
24
24
 
25
25
  @property({ type: Boolean, attribute: 'vertical' }) isVertical: boolean = false;
26
- @property({ type: Boolean, attribute: 'content-below', reflect:true }) contentBelow: boolean = false;
27
- @property({ type: Number, attribute: 'currentStep', reflect:true }) currentStep: number = 0;
28
- @property({ type: Number, attribute: 'completedStep', reflect:true }) completedStep: number = 0;
29
- @property({ type: String, attribute: 'size', reflect:true }) size: 'sm' | 'md' | 'lg' = 'md';
26
+ @property({ type: Boolean, attribute: true, reflect:true }) contentBelow: boolean = false;
27
+ @property({ type: Number, attribute: true, reflect:true }) currentStep: number = 0;
28
+ @property({ type: Number, attribute: true, reflect:true }) completedStep: number = 0;
29
+ @property({ type: String, attribute: true, reflect:true }) size: 'sm' | 'md' | 'lg' = 'md';
30
30
  @property() icon: string = 'tick';
31
31
 
32
- connectedCallback() {
33
- super.connectedCallback();
34
- this.updateComplete.then(() => {
32
+ protected update(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void{
33
+ super.update(changedProperties);
34
+ if(changedProperties.has('currentStep') || changedProperties.has('completedStep')){
35
35
  this.updateItems();
36
- });
36
+ }
37
37
  }
38
38
 
39
39
  @watch('currentStep')
@@ -47,9 +47,9 @@ export class NileStepper extends NileElement {
47
47
  this.updateItems()
48
48
  this.emit('nile-completed-change', { value: this.completedStep });
49
49
  }
50
-
50
+
51
51
  private updateItems() {
52
- const items: any = [...this.querySelectorAll(this.isVertical?'nile-vertical-stepper-item':'nile-stepper-item')];
52
+ const items: any = [...this.querySelectorAll(this.isVertical ? 'nile-vertical-stepper-item' : 'nile-stepper-item')];
53
53
  if (!items.length) return;
54
54
  const haveFlex = items.length < 3;
55
55
 
@@ -15,7 +15,7 @@ export const styles = css`
15
15
  --stepper-flex-val:1;
16
16
  --bulletin--dot--seperation:30%;
17
17
 
18
- display:inline-block;
18
+ display: inline-block;
19
19
  flex-grow:var(--stepper-flex-val);
20
20
  min-width:var(--nile-stepper-min-width);
21
21
  }
@@ -25,7 +25,7 @@ export const styles = css`
25
25
  }
26
26
 
27
27
  .stepper__item--sm {
28
- --item-spacing: var(--nile-spacing-spacing-lg,12px);
28
+ --item-spacing: var(--nile-spacing-spacing-md);
29
29
  --stepper-item-title-size:14px;
30
30
  --stepper-item-subtitle-size:14px;
31
31
  --stepper-item-text-line-height:20px;
@@ -33,17 +33,17 @@ export const styles = css`
33
33
  }
34
34
 
35
35
  .stepper__item--md {
36
- --item-spacing: var(--nile-spacing-spacing-xl, 16px);
36
+ --item-spacing: var(--nile-spacing-spacing-md);
37
37
  --stepper-item-title-size:16px;
38
- --stepper-item-subtitle-size:16px;
39
- --stepper-item-text-line-heightt:24px;
38
+ --stepper-item-subtitle-size:14px;
39
+ --stepper-item-text-line-height:24px;
40
40
  --circle-height:20px;
41
41
  }
42
42
 
43
43
  .stepper__item--lg {
44
- --item-spacing: var(--nile-spacing-spacing-xl, 16px);
44
+ --item-spacing: var(--nile-spacing-spacing-lg);
45
45
  --stepper-item-title-size:16px;
46
- --stepper-item-subtitle-size:16px;
46
+ --stepper-item-subtitle-size:14px;
47
47
  --stepper-item-text-line-height:24px;
48
48
  --circle-height:28px;
49
49
  }
@@ -67,13 +67,24 @@ export const styles = css`
67
67
  .stepper__line {
68
68
  display: block;
69
69
  border: 0;
70
- border-top: 2px solid var(--nile-colors-gray-light-mode-200);
70
+ border-top: 2px solid var(--nile-colors-neutral-500);
71
71
  }
72
72
 
73
73
  .stepper__line--active {
74
74
  border-top: 2px solid var(--nile-colors-primary-600);
75
75
  }
76
76
 
77
+ .stepper__item__content--above{
78
+ position:relative;
79
+ padding: 0 var(--nile-spacing-spacing-md);
80
+ }
81
+
82
+ .stepper__item__content--above .stepper__content__subtitle{
83
+ position: absolute;
84
+ top: 100%;
85
+ white-space: nowrap;
86
+ }
87
+
77
88
  .stepper__item__content--below {
78
89
  margin-top: var(--item-spacing);
79
90
  display:flex;
@@ -87,25 +98,35 @@ export const styles = css`
87
98
  margin:0 -1px;
88
99
  }
89
100
 
101
+ .stepper__item__bulletin{
102
+ margin-left: 6px;
103
+ margin-right: 6px;
104
+ }
105
+
106
+ .stepper__item__bulletin--inline{
107
+ margin-right: 0px;
108
+ }
109
+
90
110
  .stepper__content__title {
91
- color:var(--nile-colors-gray-light-mode-700);
111
+ color:var(--nile-colors-dark-900);
92
112
  font-size: var(--stepper-item-title-size);
93
113
  line-height: var(--stepper-item-text-line-height);
94
114
  font-family: var(--nile-font-family-medium);
95
- font-weight: 600;
115
+ font-weight: 400;
96
116
  }
97
117
 
98
118
  .stepper__content__title--inline{
99
119
  padding: 0 8px;
100
- color:var(--nile-colors-gray-light-mode-500);
120
+ color:var(--nile-colors-dark-900);
101
121
  }
102
122
 
103
123
  .stepper__content__title--active{
104
- color:var(--nile-colors-primary-700);
124
+ color:var(--nile-colors-primary-600);
125
+ font-weight: 600;
105
126
  }
106
127
 
107
128
  .stepper__content__subtitle {
108
- color:var(--nile-colors-gray-light-mode-600);
129
+ color:var(--nile-colors-dark-500);
109
130
  font-size: var(--stepper-item-subtitle-size);
110
131
  line-height: var(--stepper-item-text-line-height);
111
132
  font-family: var(--nile-font-family-sans-serif);
@@ -120,13 +141,13 @@ export const styles = css`
120
141
  width: var(--circle-height);
121
142
  aspect-ratio: 1 / 1;
122
143
  border-radius: 50%;
123
- background: radial-gradient(var(--nile-colors-gray-light-mode-300) var(--bulletin--dot--seperation), var(--nile-colors-gray-neutral-50) var(--bulletin--dot--seperation));
124
- border: 2px solid var(--nile-colors-gray-light-mode-200);
144
+ background: radial-gradient(var(--nile-colors-neutral-500) var(--bulletin--dot--seperation), var(--nile-colors-dark-200) var(--bulletin--dot--seperation));
145
+ border: 2px solid var(--nile-colors-neutral-500);
125
146
  }
126
147
 
127
148
  .stepper__bulletin__dot--active{
128
149
  background: radial-gradient(var(--nile-colors-white-base) var(--bulletin--dot--seperation), var(--nile-colors-primary-600) var(--bulletin--dot--seperation));
129
- border: 2px solid var(--nile-colors-primary-400);
150
+ border: 2px solid var(--nile-colors-primary-500);
130
151
  }
131
152
 
132
153
  .stepper__bulletin--icon {
@@ -5,8 +5,8 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { LitElement, nothing, html, CSSResultArray, TemplateResult } from 'lit';
9
- import { customElement, property, state } from 'lit/decorators.js';
8
+ import { LitElement, nothing, html, CSSResultArray, TemplateResult, PropertyValues } from 'lit';
9
+ import { customElement, property, state, query } from 'lit/decorators.js';
10
10
  import { classMap } from 'lit/directives/class-map.js';
11
11
  import { styles } from './nile-stepper-item.css';
12
12
  import NileElement from '../internal/nile-element';
@@ -20,11 +20,14 @@ import NileElement from '../internal/nile-element';
20
20
  */
21
21
  @customElement('nile-stepper-item')
22
22
  export class NileStepperItem extends NileElement {
23
+
24
+ @query('.stepper__item__content--above .stepper__content__title') absoluteTitle:HTMLDivElement;
25
+ @query('.stepper__item__content--above .stepper__content__subtitle') absoluteSubtitle:HTMLDivElement;
26
+
23
27
  /* Properties passed directly */
24
28
  @property() title: string = '';
25
29
  @property() subtitle: string = '';
26
30
 
27
-
28
31
  /* Properties passed to parent component: NileStepper */
29
32
  @state() private contentBelow = false;
30
33
  @state() private size : 'sm' | 'md' | 'lg' = 'md';
@@ -44,7 +47,6 @@ export class NileStepperItem extends NileElement {
44
47
  @state() private value :Number;
45
48
  @state() private haveFlex :Boolean=true;
46
49
 
47
-
48
50
  /**
49
51
  * The styles for nile-stepper-item
50
52
  * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
@@ -53,6 +55,13 @@ export class NileStepperItem extends NileElement {
53
55
  return [styles];
54
56
  }
55
57
 
58
+ protected updated(_changedProperties: PropertyValues): void {
59
+ if(_changedProperties.has('subtitle') && this.isLast && !this.contentBelow && this.subtitle){
60
+ const subtitleWidth=this.absoluteSubtitle?.scrollWidth as number ?? '0';
61
+ this.absoluteTitle.style.minWidth=subtitleWidth+"px"
62
+ }
63
+ }
64
+
56
65
  /* #endregion */
57
66
 
58
67
  /* #region Methods */
@@ -75,14 +84,13 @@ export class NileStepperItem extends NileElement {
75
84
  suffixStepperLineActive = true;
76
85
  if (this.calculatedCompletedStepValue == this.value) suffixStepperLineActive = false;
77
86
  }
78
- let iconSize = this.size == 'sm' ? 20 : this.size == 'md' ? 24 : 28;
79
87
  return html`
80
88
  <div class="${classMap({
81
89
  'stepper__item':true,
82
90
  'stepper__item--selected':isCurrent,
83
91
  'stepper__item--sm':this.size=='sm',
84
92
  'stepper__item--md':this.size=='md',
85
- 'stepper__item--lg':this.size=='lg',
93
+ 'stepper__item--lg':this.size=='lg'
86
94
  })}">
87
95
  <div class="stepper__line__content">
88
96
  <div class="stepper__line__container">
@@ -94,13 +102,9 @@ export class NileStepperItem extends NileElement {
94
102
  `}
95
103
  </div>
96
104
 
97
- <div class="stepper__item__bulletin">
105
+ <div class=${classMap({ 'stepper__item__bulletin':true, 'stepper__item__bulletin--inline': !this.contentBelow })}>
98
106
  ${showCompletedIcon ?
99
- html`<div class="stepper__bulletin--icon">
100
- <svg width="${iconSize}" height="${iconSize}" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
101
- <path fill-rule="evenodd" clip-rule="evenodd" d="M22.7953 9.85334L13.2487 19.0667L10.7153 16.36C10.2487 15.92 9.51534 15.8933 8.982 16.2667C8.462 16.6533 8.31534 17.3333 8.63534 17.88L11.6353 22.76C11.9287 23.2133 12.4353 23.4933 13.0087 23.4933C13.5553 23.4933 14.0753 23.2133 14.3687 22.76C14.8487 22.1333 24.0087 11.2133 24.0087 11.2133C25.2087 9.98668 23.7553 8.90668 22.7953 9.84001V9.85334Z" fill="white"/>
102
- </svg>
103
- </div>`
107
+ html`<div class="stepper__bulletin--icon">${this.getSvg()}</div>`
104
108
  : html`<div class="${classMap({ 'stepper__bulletin--dot':true, 'stepper__bulletin__dot--active':isCurrent })}"></div>`
105
109
  }
106
110
  </div>
@@ -110,9 +114,12 @@ export class NileStepperItem extends NileElement {
110
114
  'stepper__line--hastitle':!this.contentBelow
111
115
  })}">
112
116
  ${this.contentBelow || !this.title ? nothing:html`
113
- <div
114
- class="${classMap({ 'stepper__content__title stepper__content__title--inline':true, 'stepper__content__title--active':isCurrent, })}">
115
- ${this.title}
117
+
118
+ <div class="stepper__item__content--above">
119
+ <div class="${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}">
120
+ ${this.title}
121
+ </div>
122
+ <div class="${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}">${this.subtitle}</div>
116
123
  </div>
117
124
  `}
118
125
  ${this.isLast ? nothing : html`
@@ -123,18 +130,28 @@ export class NileStepperItem extends NileElement {
123
130
  `}
124
131
  </div>
125
132
  </div>
126
- ${!this.contentBelow?nothing:html`
133
+ ${this.contentBelow?
134
+ html`
127
135
  <div class="stepper__item__content--below">
128
136
  <div class="${classMap({ 'stepper__content__title':true, 'stepper__content__title--active':isCurrent })}">
129
137
  ${this.title}
130
138
  </div>
131
139
  <div class="${classMap({ 'stepper__content__subtitle':true, 'stepper__content__subtitle--active':isCurrent })}">${this.subtitle}</div>
132
140
  </div>
133
- `}
141
+ `:nothing}
134
142
  </div>
135
143
  `;
136
144
  }
137
145
 
146
+ getSvg():TemplateResult{
147
+ let iconSize = this.size == 'sm' ? 20 : this.size == 'md' ? 24 : 28;
148
+ return html`
149
+ <svg width="${iconSize}" height="${iconSize}" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
150
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M22.7953 9.85334L13.2487 19.0667L10.7153 16.36C10.2487 15.92 9.51534 15.8933 8.982 16.2667C8.462 16.6533 8.31534 17.3333 8.63534 17.88L11.6353 22.76C11.9287 23.2133 12.4353 23.4933 13.0087 23.4933C13.5553 23.4933 14.0753 23.2133 14.3687 22.76C14.8487 22.1333 24.0087 11.2133 24.0087 11.2133C25.2087 9.98668 23.7553 8.90668 22.7953 9.84001V9.85334Z" fill="white"/>
151
+ </svg>
152
+ `
153
+ }
154
+
138
155
  /* #endregion */
139
156
  }
140
157