@progressive-development/pd-wizard 0.9.2 → 1.0.0

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 (75) hide show
  1. package/LICENSE +21 -2
  2. package/README.md +33 -57
  3. package/dist/default-step-address/DefaultStepAddress.d.ts +26 -0
  4. package/dist/default-step-address/DefaultStepAddress.d.ts.map +1 -0
  5. package/dist/default-step-address/DefaultStepAddress.js +66 -0
  6. package/dist/default-step-address/default-step-address.d.ts +2 -0
  7. package/dist/default-step-address/default-step-address.d.ts.map +1 -0
  8. package/dist/default-step-address.d.ts +2 -0
  9. package/dist/default-step-address.js +1 -0
  10. package/dist/default-step-summary/DefaultStepSummary.d.ts +58 -0
  11. package/dist/default-step-summary/DefaultStepSummary.d.ts.map +1 -0
  12. package/dist/default-step-summary/DefaultStepSummary.js +77 -0
  13. package/dist/default-step-summary/default-step-summary.d.ts +3 -0
  14. package/dist/default-step-summary/default-step-summary.d.ts.map +1 -0
  15. package/dist/default-step-summary.d.ts +2 -0
  16. package/dist/default-step-summary.js +1 -0
  17. package/dist/default-wizard/DefaultWizard.d.ts +57 -0
  18. package/dist/default-wizard/DefaultWizard.d.ts.map +1 -0
  19. package/dist/default-wizard/DefaultWizard.js +270 -0
  20. package/dist/default-wizard/default-wizard.d.ts +3 -0
  21. package/dist/default-wizard/default-wizard.d.ts.map +1 -0
  22. package/dist/default-wizard.d.ts +2 -0
  23. package/dist/default-wizard.js +1 -0
  24. package/dist/generated/locales/be.d.ts +17 -0
  25. package/dist/generated/locales/be.d.ts.map +1 -1
  26. package/dist/generated/locales/de.d.ts +17 -0
  27. package/dist/generated/locales/de.d.ts.map +1 -1
  28. package/dist/generated/locales/en.d.ts +17 -0
  29. package/dist/generated/locales/en.d.ts.map +1 -1
  30. package/dist/index.d.ts +10 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -0
  33. package/dist/locales/be.js +20 -1
  34. package/dist/locales/de.js +20 -1
  35. package/dist/locales/en.js +20 -1
  36. package/dist/pd-components/pd-content/dist/pd-notice-box/PdNoticeBox.js +224 -0
  37. package/dist/pd-components/pd-content/dist/pd-notice-box/pd-notice-box.js +8 -0
  38. package/dist/pd-default-wizard-step/PdDefaultWizardStep.d.ts +85 -0
  39. package/dist/pd-default-wizard-step/PdDefaultWizardStep.d.ts.map +1 -0
  40. package/dist/pd-default-wizard-step/PdDefaultWizardStep.js +167 -0
  41. package/dist/pd-default-wizard-step/pd-default-wizard-step.d.ts +2 -0
  42. package/dist/pd-default-wizard-step/pd-default-wizard-step.d.ts.map +1 -0
  43. package/dist/pd-default-wizard-step.d.ts +2 -0
  44. package/dist/pd-default-wizard-step.js +1 -0
  45. package/dist/pd-utils/dist/date-helper.js +35 -0
  46. package/dist/pd-utils/dist/locale-format.js +6 -0
  47. package/dist/pd-wizard/PdWizard.d.ts +36 -23
  48. package/dist/pd-wizard/PdWizard.d.ts.map +1 -1
  49. package/dist/pd-wizard/PdWizard.js +91 -142
  50. package/dist/pd-wizard/pd-steps/PdSteps.d.ts +26 -10
  51. package/dist/pd-wizard/pd-steps/PdSteps.d.ts.map +1 -1
  52. package/dist/pd-wizard/pd-steps/PdSteps.js +126 -59
  53. package/dist/pd-wizard/pd-steps/pd-steps.stories.d.ts +45 -37
  54. package/dist/pd-wizard/pd-steps/pd-steps.stories.d.ts.map +1 -1
  55. package/dist/pd-wizard/pd-wizard.stories.d.ts +46 -7
  56. package/dist/pd-wizard/pd-wizard.stories.d.ts.map +1 -1
  57. package/dist/wizard-close-popup/WizardClosePopup.d.ts +12 -0
  58. package/dist/wizard-close-popup/WizardClosePopup.d.ts.map +1 -0
  59. package/dist/wizard-close-popup/WizardClosePopup.js +56 -0
  60. package/dist/wizard-close-popup/wizard-close-popup.d.ts +2 -0
  61. package/dist/wizard-close-popup/wizard-close-popup.d.ts.map +1 -0
  62. package/dist/wizard-close-popup/wizard-close-popup.stories.d.ts +39 -0
  63. package/dist/wizard-close-popup/wizard-close-popup.stories.d.ts.map +1 -0
  64. package/dist/wizard-close-popup.d.ts +2 -0
  65. package/dist/wizard-close-popup.js +1 -0
  66. package/dist/wizard-reload-popup/WizardReloadPopup.d.ts +19 -0
  67. package/dist/wizard-reload-popup/WizardReloadPopup.d.ts.map +1 -0
  68. package/dist/wizard-reload-popup/WizardReloadPopup.js +88 -0
  69. package/dist/wizard-reload-popup/wizard-reload-popup.d.ts +3 -0
  70. package/dist/wizard-reload-popup/wizard-reload-popup.d.ts.map +1 -0
  71. package/dist/wizard-reload-popup/wizard-reload-popup.stories.d.ts +42 -0
  72. package/dist/wizard-reload-popup/wizard-reload-popup.stories.d.ts.map +1 -0
  73. package/dist/wizard-reload-popup.d.ts +2 -0
  74. package/dist/wizard-reload-popup.js +1 -0
  75. package/package.json +18 -5
@@ -3,7 +3,7 @@ import { property, state } from 'lit/decorators.js';
3
3
  import { localized, msg } from '@lit/localize';
4
4
  import { pdIcons } from '@progressive-development/pd-icon';
5
5
  import '@progressive-development/pd-icon/pd-icon';
6
- import '@progressive-development/pd-forms/pd-panel-button';
6
+ import '@progressive-development/pd-forms/pd-button';
7
7
  import './pd-steps/pd-steps.js';
8
8
 
9
9
  var __defProp = Object.defineProperty;
@@ -21,36 +21,29 @@ let PdWizard = class extends LitElement {
21
21
  super(...arguments);
22
22
  this.currentNumber = -99;
23
23
  this.wizardSteps = [];
24
- this.panelWizard = false;
25
- this._submited = false;
24
+ this._submitted = false;
26
25
  }
27
26
  render() {
28
27
  if (!this.wizardSteps.length) return html``;
29
28
  const currentStep = this.wizardSteps[this.currentNumber - 1];
30
29
  return html`
31
- <div class="wiz-header">
32
- ${this.panelWizard ? html`
33
- <div class="wiz-panel-h">
34
- <h1>${currentStep?.title ?? "No-Title"}</h1>
35
- <pd-icon
36
- class="panel-close-icon"
37
- title="Close"
38
- activeIcon
39
- icon="${pdIcons.ICON_XCLOSE}"
40
- @click="${this._closeWizard}"
41
- ></pd-icon>
42
- </div>
43
- ` : html`
44
- <div class="wiz-title">
45
- <slot name="slotLogo"></slot>
46
- <span class="title">${currentStep?.title ?? "No-Title"}</span>
47
- <pd-icon
48
- class="close"
49
- icon="${pdIcons.ICON_CLOSE}"
50
- @click="${this._closeWizard}"
51
- ></pd-icon>
52
- </div>
53
- `}
30
+ <div class="wiz-header" part="header">
31
+ <pd-icon
32
+ class="close"
33
+ activeIcon
34
+ tabindex="0"
35
+ role="button"
36
+ aria-label="${msg("Wizard schließen", {
37
+ id: "pd.wizard.close.aria"
38
+ })}"
39
+ icon="${pdIcons.ICON_XCLOSE}"
40
+ @click="${this._closeWizard}"
41
+ @keydown="${this._handleCloseKeydown}"
42
+ ></pd-icon>
43
+
44
+ <div class="wiz-title">
45
+ <span class="title">${currentStep?.title ?? "No-Title"}</span>
46
+ </div>
54
47
 
55
48
  <div class="wiz-breadcrumbs">
56
49
  <pd-steps
@@ -60,7 +53,7 @@ let PdWizard = class extends LitElement {
60
53
  </div>
61
54
  </div>
62
55
 
63
- <div class="wiz-content">
56
+ <div class="wiz-content" part="content">
64
57
  <div class="wiz-content-inner">
65
58
  ${this.wizardSteps.map(
66
59
  (step, i) => html`
@@ -74,34 +67,34 @@ let PdWizard = class extends LitElement {
74
67
  </div>
75
68
  </div>
76
69
 
77
- <div class="wiz-buttons">
70
+ <div class="wiz-buttons" part="buttons">
78
71
  ${this.currentNumber >= 1 && this.wizardSteps.length ? html`
79
- <pd-panel-button
72
+ <pd-button
80
73
  @button-clicked="${this._previousStep}"
81
- pdButtonIcon="${pdIcons.ICON_ARROW_BACK}"
82
- buttonText="${msg("Zurück", { id: "pd.wizard.button.back" })}"
74
+ icon="${pdIcons.ICON_ARROW_BACK}"
75
+ text="${msg("Zurück", { id: "pd.wizard.button.back" })}"
83
76
  style="visibility: ${this.currentNumber === 1 ? "hidden" : "visible"}"
84
- ></pd-panel-button>
77
+ ></pd-button>
85
78
 
86
79
  ${this.currentNumber !== this.wizardSteps.length && currentStep?.next !== false ? html`
87
- <pd-panel-button
80
+ <pd-button
88
81
  @button-clicked="${this._nextStep}"
89
- pdButtonIcon="${pdIcons.ICON_ARROW_NEXT}"
90
- buttonText="${msg("Weiter", {
82
+ icon="${pdIcons.ICON_ARROW_NEXT}"
83
+ text="${msg("Weiter", {
91
84
  id: "pd.wizard.button.next"
92
85
  })}"
93
- ></pd-panel-button>
86
+ ></pd-button>
94
87
  ` : ""}
95
88
  ${this.currentNumber === this.wizardSteps.length ? html`
96
- <pd-panel-button
97
- pdButtonIcon="${pdIcons.ICON_SYNC}"
89
+ <pd-button
90
+ icon="${pdIcons.ICON_SYNC}"
98
91
  primary
99
- ?disabled="${this._submited}"
92
+ ?disabled="${this._submitted}"
100
93
  @button-clicked="${this._submit}"
101
- buttonText="${msg("Absenden", {
94
+ text="${msg("Absenden", {
102
95
  id: "pd.wizard.button.send"
103
96
  })}"
104
- ></pd-panel-button>
97
+ ></pd-button>
105
98
  ` : ""}
106
99
  ` : ""}
107
100
  </div>
@@ -114,56 +107,51 @@ let PdWizard = class extends LitElement {
114
107
  this.dispatchEvent(new CustomEvent("next-step"));
115
108
  }
116
109
  _submit() {
117
- const detail = { submited: false };
110
+ const detail = { submitted: false };
118
111
  this.dispatchEvent(new CustomEvent("submit-wizard", { detail }));
119
- this._submited = detail.submited;
112
+ this._submitted = detail.submitted;
120
113
  }
121
114
  _closeWizard() {
122
115
  this.dispatchEvent(new CustomEvent("close-wizard"));
123
116
  }
117
+ /**
118
+ * Handles keyboard events on the close icon.
119
+ * Activates on Enter or Space key.
120
+ */
121
+ _handleCloseKeydown(e) {
122
+ if (e.key === "Enter" || e.key === " ") {
123
+ e.preventDefault();
124
+ this._closeWizard();
125
+ }
126
+ }
124
127
  };
125
128
  PdWizard.styles = [
126
129
  css`
127
130
  :host {
128
- /* These values are used more than onnce and dfined here for short access */
129
- --my-height: var(--pd-wizard-title-height, 110px);
130
- --my-header-font-color: var(
131
- --pd-wizard-header-font-col,
132
- var(--pd-default-bg-col)
133
- );
134
- --my-header-bg-col: var(
135
- --pd-wizard-header-bg-col,
136
- var(--pd-default-col)
137
- );
138
-
139
131
  display: flex;
140
132
  flex-direction: column;
141
133
  height: 100%;
134
+
135
+ --_border-radius: var(--pd-wizard-border-radius, 0);
142
136
  }
143
137
 
144
138
  .wiz-header {
145
- flex-grow: 0;
139
+ position: relative;
140
+ flex-shrink: 0;
141
+ background: var(--pd-wizard-header-bg, var(--pd-default-col));
142
+ color: var(--pd-wizard-header-color, var(--pd-on-primary-col));
143
+ border-radius: var(--_border-radius) var(--_border-radius) 0 0;
146
144
  }
147
145
 
148
146
  .wiz-title {
149
- position: relative;
150
147
  text-align: center;
151
- background-color: var(--my-header-bg-col);
152
- height: var(---my-height);
153
- padding-left: var(--pd-wizard-title-padding-left, 0);
154
- color: var(--my-header-font-color);
155
- }
156
-
157
- :host(.top-rounded) .wiz-title {
158
- border-top-left-radius: var(--pd-wizard-top-borderradius, 5px);
159
- border-top-right-radius: var(--pd-wizard-top-borderradius, 5px);
148
+ padding-top: var(--pd-spacing-md);
160
149
  }
161
150
 
162
151
  .title {
163
152
  font-family: var(--pd-default-font-title-family);
164
153
  font-size: var(--pd-wizard-header-font-size, 2em);
165
154
  font-weight: bolder;
166
- line-height: var(--my-height);
167
155
  }
168
156
 
169
157
  /* The Close Icon */
@@ -171,101 +159,65 @@ PdWizard.styles = [
171
159
  position: absolute;
172
160
  top: 6px;
173
161
  right: 6px;
174
-
175
162
  cursor: pointer;
176
-
177
163
  --pd-icon-size: 2em;
178
- --pd-icon-col-active: white;
164
+ --pd-icon-col-active: var(
165
+ --pd-wizard-close-icon-col,
166
+ var(--pd-on-primary-col)
167
+ );
179
168
  }
180
169
 
181
170
  .close:hover,
182
- .close:focus {
183
- color: var(--pd-default-hover-col);
171
+ .close:focus-visible {
172
+ --pd-icon-col-active: var(
173
+ --pd-wizard-close-icon-hover-col,
174
+ var(--pd-default-hover-col)
175
+ );
176
+ }
177
+
178
+ .close:focus-visible {
179
+ outline: 2px solid var(--pd-focus-ring-col, currentColor);
180
+ outline-offset: 2px;
181
+ border-radius: var(--pd-radius-sm);
184
182
  }
185
183
 
186
184
  .wiz-content {
187
- display: flex;
188
- justify-content: var(--pd-wizard-justify-content, center);
189
185
  flex-grow: 1;
190
-
191
- background-color: var(
192
- --pd-wizard-content-bg-col,
193
- var(--pd-default-bg-col)
194
- );
195
- padding: var(--pd-wizard-content-padding, 1em);
196
- overflow-y: var(--pd-wizard-content-scroll, auto);
186
+ overflow-y: var(--pd-wizard-content-overflow, auto);
187
+ background: var(--pd-wizard-content-bg, var(--pd-default-bg-col));
188
+ padding: var(--pd-wizard-content-padding, 2rem 3.5rem 0.5rem 3.5rem);
197
189
  }
198
190
 
199
191
  .wiz-content-inner {
200
- background-color: var(
201
- --pd-wizard-content-inner-bg-col,
202
- var(--pd-default-bg-col)
192
+ max-width: var(
193
+ --pd-wizard-content-max-width,
194
+ var(--pd-content-max-width)
203
195
  );
204
- max-width: var(--pd-wizard-content-max-width, 1024px);
205
- width: var(--pd-wizard-content-width, 75%);
196
+ margin: 0 auto;
206
197
  }
207
198
 
208
199
  .wiz-buttons {
200
+ flex-shrink: 0;
209
201
  display: flex;
210
- justify-content: var(--pd-wizard-justify-buttons, space-around);
211
- flex-grow: 0;
212
- padding: 1em;
213
-
214
- background: linear-gradient(
215
- to top,
216
- var(--pd-wizard-buttons-bg-col1, var(--pd-default-light-col)) 0%,
217
- var(--pd-wizard-buttons-bg-col2, var(--pd-default-disabled-light-col))
218
- 100%
219
- );
220
- }
221
-
222
- :host(.bottom-rounded) .wiz-buttons {
223
- border-bottom-left-radius: var(--pd-wizard-bottom-borderradius, 5px);
224
- border-bottom-right-radius: var(--pd-wizard-bottom-borderradius, 5px);
225
- }
226
-
227
- /*
228
- * CSS for panel wizard
229
- */
230
- .wiz-panel-h {
231
- padding: var(--pd-wizard-header-panel-padding, 0);
232
- display: flex;
233
- align-items: center;
234
- justify-content: center;
235
- background-color: var(
236
- --pd-wizard-header-panel-bg-col,
237
- var(--pd-default-col)
238
- );
239
- position: relative;
240
- }
202
+ justify-content: var(--pd-wizard-buttons-justify, space-around);
203
+ background: var(--pd-wizard-buttons-bg, var(--pd-default-light-col));
204
+ padding: var(--pd-wizard-buttons-padding, var(--pd-spacing-md));
241
205
 
242
- .wiz-panel-h h1 {
243
- color: var(--pd-wizard-header-panel-title-col, white);
244
- padding: 0;
245
- margin: 0.8em 0 0.5em 0;
246
- font-size: var(--pd-wizard-header-font-size, 1.2em);
247
- font-family: var(--pd-default-font-title-family);
206
+ border-radius: 0 0 var(--_border-radius) var(--_border-radius);
248
207
  }
249
208
 
250
- .panel-close-icon {
251
- --pd-icon-size: 2em;
252
- --pd-icon-col-active: white;
253
- cursor: pointer;
254
- position: absolute;
255
- right: 0px;
256
- top: 0px;
209
+ @media (max-width: 768px) {
210
+ .wiz-content {
211
+ padding: var(--pd-wizard-content-padding, 2rem 2.5rem 0.5rem 2.5rem);
212
+ }
257
213
  }
258
214
 
259
- /* Size Elements for small width */
260
- @media (max-width: 700px) {
261
- .close {
262
- font-size: 0.7rem;
263
- --pd-icon-size: 1.2rem;
264
- top: 3px;
265
- right: 3px;
215
+ @media (max-width: 440px) {
216
+ .wiz-content {
217
+ padding: var(--pd-wizard-content-padding, 1rem 1rem 0.5rem 1rem);
266
218
  }
267
- .title {
268
- margin-left: 50px;
219
+ .close {
220
+ --pd-icon-size: 1em;
269
221
  }
270
222
  }
271
223
  `
@@ -276,12 +228,9 @@ __decorateClass([
276
228
  __decorateClass([
277
229
  property({ type: Array })
278
230
  ], PdWizard.prototype, "wizardSteps", 2);
279
- __decorateClass([
280
- property({ type: Boolean })
281
- ], PdWizard.prototype, "panelWizard", 2);
282
231
  __decorateClass([
283
232
  state()
284
- ], PdWizard.prototype, "_submited", 2);
233
+ ], PdWizard.prototype, "_submitted", 2);
285
234
  PdWizard = __decorateClass([
286
235
  localized()
287
236
  ], PdWizard);
@@ -1,28 +1,44 @@
1
1
  import { LitElement, CSSResultGroup } from 'lit';
2
2
  import { PdWizardStep } from '../../types';
3
3
  /**
4
- * @tag pd-steps
5
- * @summary Fortschrittsanzeige in Kreis- oder Tab-Optik
4
+ * Progress indicator component with circle or tab style.
5
+ *
6
+ * @summary Step progress indicator with current, passed, and future states.
6
7
  *
7
- * @fires go-to - wenn ein abgeschlossener Schritt erneut geklickt wird
8
8
  * @tagname pd-steps
9
+ *
10
+ * @event go-to - Fired when a passed step is clicked with `{step}` detail.
11
+ *
12
+ * @cssprop --pd-step-circle-size - Circle diameter. Default: `40px`.
13
+ * @cssprop --pd-step-bg - Background color. Default: `var(--pd-default-col)`.
14
+ * @cssprop --pd-step-color - Foreground color (border, line, text). Default: `var(--pd-on-primary-col)`.
15
+ * @cssprop --pd-step-name-font-size - Step name font size. Default: `1em`.
16
+ * @cssprop --pd-step-current-color - Current step accent color. Default: `var(--pd-default-hover-col)`.
17
+ * @cssprop --pd-step-passed-bg - Passed circle background. Default: `var(--pd-default-success-light-col)`.
18
+ * @cssprop --pd-step-passed-nr-color - Passed number color (dark on light bg). Default: `var(--pd-default-col)`.
9
19
  */
10
20
  export declare class PdSteps extends LitElement {
11
- /**
12
- * Schritte mit Namen
13
- */
21
+ /** Step definitions with names. */
14
22
  steps: PdWizardStep[];
15
- /**
16
- * Der aktuell sichtbare Schritt (1-basiert)
17
- */
23
+ /** Current visible step (1-based). */
18
24
  currentStepNr: number;
19
25
  /**
20
- * Darstellungsmodus: `circle` oder `tab` (aktuell beide gleich)
26
+ * Display mode: circle or tab.
27
+ * @remarks Currently only "circle" is implemented. "tab" is reserved for future use.
21
28
  */
22
29
  styleTyp: "circle" | "tab";
23
30
  static styles: CSSResultGroup;
24
31
  render(): import('lit').TemplateResult<1>;
25
32
  private _renderCircle;
26
33
  private _stepClicked;
34
+ /**
35
+ * Handles keyboard events on step circles.
36
+ * Activates on Enter or Space key.
37
+ */
38
+ private _handleStepKeydown;
39
+ /**
40
+ * Navigates to a specific step if it's a passed step.
41
+ */
42
+ private _navigateToStep;
27
43
  }
28
44
  //# sourceMappingURL=PdSteps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PdSteps.d.ts","sourceRoot":"","sources":["../../../src/pd-wizard/pd-steps/PdSteps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC;;OAEG;IAEH,KAAK,EAAE,YAAY,EAAE,CAAM;IAE3B;;OAEG;IAEH,aAAa,SAAO;IAEpB;;OAEG;IAEH,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAY;IAEtC,OAAgB,MAAM,EAAE,cAAc,CAyGpC;IAEO,MAAM;IAIf,OAAO,CAAC,aAAa;IAyCrB,OAAO,CAAC,YAAY;CAcrB"}
1
+ {"version":3,"file":"PdSteps.d.ts","sourceRoot":"","sources":["../../../src/pd-wizard/pd-steps/PdSteps.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,OAAQ,SAAQ,UAAU;IACrC,mCAAmC;IAEnC,KAAK,EAAE,YAAY,EAAE,CAAM;IAE3B,sCAAsC;IAEtC,aAAa,SAAO;IAEpB;;;OAGG;IAEH,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAAY;IAEtC,OAAgB,MAAM,EAAE,cAAc,CA8IpC;IAEO,MAAM;IAIf,OAAO,CAAC,aAAa;IAuDrB,OAAO,CAAC,YAAY;IAKpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;OAEG;IACH,OAAO,CAAC,eAAe;CAaxB"}