@progressive-development/pd-content 1.0.2 → 1.0.3

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 (85) hide show
  1. package/dist/index.d.ts +5 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +10 -1
  4. package/dist/pd-badge-order/DragController.d.ts +41 -0
  5. package/dist/pd-badge-order/DragController.d.ts.map +1 -0
  6. package/dist/pd-badge-order/DragController.js +239 -0
  7. package/dist/pd-badge-order/PdBadgeItem.d.ts +31 -0
  8. package/dist/pd-badge-order/PdBadgeItem.d.ts.map +1 -0
  9. package/dist/pd-badge-order/PdBadgeItem.js +320 -0
  10. package/dist/pd-badge-order/PdBadgeOrder.d.ts +68 -0
  11. package/dist/pd-badge-order/PdBadgeOrder.d.ts.map +1 -0
  12. package/dist/pd-badge-order/PdBadgeOrder.js +550 -0
  13. package/dist/pd-badge-order/flip-animator.d.ts +30 -0
  14. package/dist/pd-badge-order/flip-animator.d.ts.map +1 -0
  15. package/dist/pd-badge-order/flip-animator.js +39 -0
  16. package/dist/pd-badge-order/pd-badge-item.d.ts +3 -0
  17. package/dist/pd-badge-order/pd-badge-item.d.ts.map +1 -0
  18. package/dist/pd-badge-order/pd-badge-item.js +8 -0
  19. package/dist/pd-badge-order/pd-badge-order.d.ts +3 -0
  20. package/dist/pd-badge-order/pd-badge-order.d.ts.map +1 -0
  21. package/dist/pd-badge-order/types.d.ts +25 -0
  22. package/dist/pd-badge-order/types.d.ts.map +1 -0
  23. package/dist/pd-badge-order/types.js +3 -0
  24. package/dist/pd-badge-order.d.ts +2 -0
  25. package/dist/pd-badge-order.js +8 -0
  26. package/dist/pd-gallery/PdGallery.d.ts +72 -0
  27. package/dist/pd-gallery/PdGallery.d.ts.map +1 -0
  28. package/dist/pd-gallery/PdGallery.js +660 -0
  29. package/dist/pd-gallery/PdGalleryLightbox.d.ts +53 -0
  30. package/dist/pd-gallery/PdGalleryLightbox.d.ts.map +1 -0
  31. package/dist/pd-gallery/PdGalleryLightbox.js +530 -0
  32. package/dist/pd-gallery/index.d.ts +4 -0
  33. package/dist/pd-gallery/index.d.ts.map +1 -0
  34. package/dist/pd-gallery/pd-gallery-lightbox.d.ts +3 -0
  35. package/dist/pd-gallery/pd-gallery-lightbox.d.ts.map +1 -0
  36. package/dist/pd-gallery/pd-gallery.d.ts +3 -0
  37. package/dist/pd-gallery/pd-gallery.d.ts.map +1 -0
  38. package/dist/pd-gallery/types.d.ts +23 -0
  39. package/dist/pd-gallery/types.d.ts.map +1 -0
  40. package/dist/pd-gallery-lightbox.d.ts +2 -0
  41. package/dist/pd-gallery-lightbox.js +8 -0
  42. package/dist/pd-gallery.d.ts +2 -0
  43. package/dist/pd-gallery.js +8 -0
  44. package/dist/pd-loading-state/PdLoadingState.d.ts +25 -9
  45. package/dist/pd-loading-state/PdLoadingState.d.ts.map +1 -1
  46. package/dist/pd-loading-state/PdLoadingState.js +228 -83
  47. package/dist/pd-loading-state/pd-loading-state.d.ts.map +1 -1
  48. package/dist/pd-loading-state/pd-logo-loader.d.ts +25 -0
  49. package/dist/pd-loading-state/pd-logo-loader.d.ts.map +1 -0
  50. package/dist/pd-loading-state/pd-logo-loader.js +63 -0
  51. package/dist/pd-loading-state/register-pd-logo-loader.d.ts +6 -0
  52. package/dist/pd-loading-state/register-pd-logo-loader.d.ts.map +1 -0
  53. package/dist/pd-loading-state/register-pd-logo-loader.js +6 -0
  54. package/dist/pd-loading-state.js +8 -1
  55. package/dist/pd-panel-viewer/PdPanelViewer.d.ts.map +1 -1
  56. package/dist/pd-panel-viewer/PdPanelViewer.js +1 -1
  57. package/dist/types.d.ts +3 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/package.json +8 -3
  60. package/dist/pd-box-view/pd-box-view.stories.d.ts +0 -43
  61. package/dist/pd-box-view/pd-box-view.stories.d.ts.map +0 -1
  62. package/dist/pd-code-snippet/pd-code-snippet.stories.d.ts +0 -55
  63. package/dist/pd-code-snippet/pd-code-snippet.stories.d.ts.map +0 -1
  64. package/dist/pd-collapse/pd-collapse.stories.d.ts +0 -51
  65. package/dist/pd-collapse/pd-collapse.stories.d.ts.map +0 -1
  66. package/dist/pd-collapse-group/pd-collapse-group.stories.d.ts +0 -40
  67. package/dist/pd-collapse-group/pd-collapse-group.stories.d.ts.map +0 -1
  68. package/dist/pd-edit-content/pd-edit-content.stories.d.ts +0 -55
  69. package/dist/pd-edit-content/pd-edit-content.stories.d.ts.map +0 -1
  70. package/dist/pd-loading-state/pd-loading-state.stories.d.ts +0 -48
  71. package/dist/pd-loading-state/pd-loading-state.stories.d.ts.map +0 -1
  72. package/dist/pd-more-info/pd-more-info.stories.d.ts +0 -42
  73. package/dist/pd-more-info/pd-more-info.stories.d.ts.map +0 -1
  74. package/dist/pd-notice-box/pd-notice-box.stories.d.ts +0 -58
  75. package/dist/pd-notice-box/pd-notice-box.stories.d.ts.map +0 -1
  76. package/dist/pd-panel-viewer/pd-panel-viewer.stories.d.ts +0 -46
  77. package/dist/pd-panel-viewer/pd-panel-viewer.stories.d.ts.map +0 -1
  78. package/dist/pd-resize-content/pd-resize-content.stories.d.ts +0 -37
  79. package/dist/pd-resize-content/pd-resize-content.stories.d.ts.map +0 -1
  80. package/dist/pd-tab/pd-tab.stories.d.ts +0 -53
  81. package/dist/pd-tab/pd-tab.stories.d.ts.map +0 -1
  82. package/dist/pd-timeline/pd-timeline.stories.d.ts +0 -56
  83. package/dist/pd-timeline/pd-timeline.stories.d.ts.map +0 -1
  84. package/dist/pd-timeline-wizard/pd-timeline-wizard.stories.d.ts +0 -54
  85. package/dist/pd-timeline-wizard/pd-timeline-wizard.stories.d.ts.map +0 -1
@@ -1,8 +1,9 @@
1
- import { css, LitElement, html } from 'lit';
2
- import { property, customElement } from 'lit/decorators.js';
1
+ import { css, LitElement, nothing, html } from 'lit';
2
+ import { property } from 'lit/decorators.js';
3
3
  import { localized, msg } from '@lit/localize';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
5
  import '@progressive-development/pd-icon/pd-icon';
6
+ import './register-pd-logo-loader.js';
6
7
 
7
8
  var __defProp = Object.defineProperty;
8
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -15,9 +16,14 @@ var __decorateClass = (decorators, target, key, kind) => {
15
16
  return result;
16
17
  };
17
18
  let PdLoadingState = class extends LitElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.loaderStyle = "spinner";
22
+ this.inline = false;
23
+ }
18
24
  render() {
19
25
  if (!this.loadingState) {
20
- return "";
26
+ return nothing;
21
27
  }
22
28
  return this.loadingState.modal ? html`
23
29
  <div
@@ -34,56 +40,107 @@ let PdLoadingState = class extends LitElement {
34
40
  </div>
35
41
  ` : this._renderContent();
36
42
  }
43
+ _renderLoader() {
44
+ switch (this.loaderStyle) {
45
+ case "dots":
46
+ return html`<div
47
+ class="loader-dots"
48
+ role="progressbar"
49
+ aria-label="${msg("Laden", {
50
+ id: "pdContent.loadingstate.ariaLoading"
51
+ })}"
52
+ >
53
+ <span></span><span></span><span></span>
54
+ </div>`;
55
+ case "pulse":
56
+ return html`<div
57
+ class="loader-pulse"
58
+ role="progressbar"
59
+ aria-label="${msg("Laden", {
60
+ id: "pdContent.loadingstate.ariaLoading"
61
+ })}"
62
+ ></div>`;
63
+ case "logo":
64
+ return html`<pd-logo-loader
65
+ role="progressbar"
66
+ aria-label="${msg("Laden", {
67
+ id: "pdContent.loadingstate.ariaLoading"
68
+ })}"
69
+ ></pd-logo-loader>`;
70
+ default:
71
+ return html`<div
72
+ class="loader-spinner"
73
+ role="progressbar"
74
+ aria-label="${msg("Laden", {
75
+ id: "pdContent.loadingstate.ariaLoading"
76
+ })}"
77
+ ></div>`;
78
+ }
79
+ }
80
+ _renderSubTasks(subTasks) {
81
+ const completed = subTasks.filter((t) => t.completed).length;
82
+ return html`
83
+ <div class="sub-tasks">
84
+ <div class="sub-task-header">
85
+ ${completed} von ${subTasks.length} Schritten
86
+ </div>
87
+ ${subTasks.map(
88
+ (task) => html`
89
+ <div class="sub-task-row">
90
+ ${task.completed ? html`<pd-icon
91
+ class="sub-icon completed"
92
+ icon="checkBox"
93
+ activeIcon
94
+ ></pd-icon>` : html`<pd-icon
95
+ class="sub-icon loading"
96
+ icon="syncIcon"
97
+ activeIcon
98
+ ></pd-icon>`}
99
+ <span>${task.loadingTxt}</span>
100
+ </div>
101
+ `
102
+ )}
103
+ </div>
104
+ `;
105
+ }
37
106
  _renderContent() {
38
107
  if (!this.loadingState) {
39
- return "";
108
+ return nothing;
109
+ }
110
+ if (this.loadingState.smallBackground) {
111
+ return html`
112
+ <div class="background-content" role="status" aria-live="polite">
113
+ <div
114
+ class="background-loader"
115
+ role="progressbar"
116
+ aria-label="${msg("Laden", {
117
+ id: "pdContent.loadingstate.ariaLoading"
118
+ })}"
119
+ ></div>
120
+ <span>
121
+ ${this.loadingState.loadingTxt || msg("Daten werden synchronisiert", {
122
+ id: "pdContent.loadingstate.syncState"
123
+ })}
124
+ </span>
125
+ </div>
126
+ `;
40
127
  }
41
128
  return html`
42
129
  <div
43
130
  class="${classMap({
44
- content: !this.loadingState.smallBackground,
45
- "no-modal-content": this.loadingState.modal !== true && this.loadingState.smallBackground !== true,
46
- "background-content": this.loadingState.smallBackground === true
131
+ content: true,
132
+ "no-modal-content": this.loadingState.modal !== true && !this.inline
47
133
  })}"
48
134
  role="status"
49
135
  aria-live="polite"
50
136
  >
51
- <div
52
- class="${this.loadingState.smallBackground ? "background-loader" : "loader"}"
53
- role="progressbar"
54
- aria-label="${msg("Laden", {
55
- id: "pdContent.loadingstate.ariaLoading"
56
- })}"
57
- ></div>
137
+ ${this._renderLoader()}
58
138
  <p>
59
- ${this.loadingState.loadingTxt || (this.loadingState.smallBackground ? msg("Daten werden synchronisiert", {
60
- id: "pdContent.loadingstate.syncState"
61
- }) : msg("Bitte warten, Daten werden geladen", {
139
+ ${this.loadingState.loadingTxt || msg("Bitte warten, Daten werden geladen", {
62
140
  id: "pdContent.loadingstate.pleaseWait"
63
- }))}
141
+ })}
64
142
  </p>
65
- ${this.loadingState.subTask && this.loadingState.subTask.length > 0 ? html`
66
- <ul class="sub-ul">
67
- ${this.loadingState.subTask.map(
68
- (task) => html`
69
- <li>
70
- <div class="sub-row">
71
- ${task.loadingTxt}
72
- ${task.completed ? html`<pd-icon
73
- class="sub-icon completed"
74
- icon="checkBox"
75
- activeIcon
76
- ></pd-icon>` : html`<pd-icon
77
- class="sub-icon loading"
78
- icon="syncIcon"
79
- activeIcon
80
- ></pd-icon>`}
81
- </div>
82
- </li>
83
- `
84
- )}
85
- </ul>
86
- ` : ""}
143
+ ${this.loadingState.subTask && this.loadingState.subTask.length > 0 ? this._renderSubTasks(this.loadingState.subTask) : nothing}
87
144
  </div>
88
145
  `;
89
146
  }
@@ -124,80 +181,139 @@ PdLoadingState.styles = [
124
181
 
125
182
  /* Main content box */
126
183
  .content {
127
- padding: 1em;
184
+ padding: var(--pd-spacing-lg, 2rem) var(--pd-spacing-lg, 2rem);
128
185
  text-align: center;
129
- background-color: var(--pd-loading-state-bg-col, #edf7fd);
130
- border: 2px solid
186
+ background-color: var(
187
+ --pd-loading-state-bg-col,
188
+ var(--pd-default-bg-light-col, #f2f9fa)
189
+ );
190
+ border: var(--pd-border-width, 1px) solid
131
191
  var(--pd-loading-state-border-col, var(--pd-default-col, #067394));
192
+ border-radius: var(--pd-radius-lg, 8px);
193
+ box-shadow: var(--pd-shadow-lg, 0 4px 8px rgba(0, 0, 0, 0.15));
194
+ min-width: 280px;
195
+ max-width: 420px;
132
196
  z-index: 101;
133
197
  }
134
198
 
135
- /* Background mode (bottom-right corner) */
199
+ /* Background mode (bottom-right pill/toast) */
136
200
  .background-content {
137
201
  position: fixed;
138
- right: 0em;
139
- bottom: 0em;
140
-
141
- padding: 1em;
202
+ right: var(--pd-spacing-md, 1rem);
203
+ bottom: var(--pd-spacing-md, 1rem);
204
+ padding: var(--pd-spacing-sm, 0.5rem) var(--pd-spacing-md, 1rem);
142
205
  z-index: 600;
143
-
144
206
  display: flex;
145
- gap: 0.5em;
207
+ gap: var(--pd-spacing-sm, 0.5rem);
146
208
  align-items: center;
147
-
148
- background-color: var(--pd-loading-state-background-bg, white);
209
+ background: var(
210
+ --pd-loading-state-background-bg,
211
+ var(--pd-default-bg-col, #fff)
212
+ );
213
+ border-radius: var(--pd-radius-lg, 8px);
214
+ box-shadow: var(--pd-shadow-lg, 0 4px 8px rgba(0, 0, 0, 0.15));
215
+ font-size: 0.8125rem;
216
+ color: var(--pd-default-font-content-col, #353738);
149
217
  }
150
218
 
151
- /* Main spinner */
152
- .loader {
153
- border: 16px solid var(--pd-loading-state-loader-bg, #0a3a48);
154
- border-top: 16px solid var(--pd-loading-state-loader-fg, #067394);
219
+ /* ====== Spinner loader ====== */
220
+ .loader-spinner {
221
+ border: 4px solid
222
+ var(--pd-loading-state-loader-bg, var(--pd-default-dark-col, #0a3a48));
223
+ border-top: 4px solid
224
+ var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394));
155
225
  border-radius: 50%;
156
- width: 30px;
157
- height: 30px;
226
+ width: 40px;
227
+ height: 40px;
158
228
  animation: spin 2s linear infinite;
159
-
160
229
  margin-left: auto;
161
230
  margin-right: auto;
162
231
  }
163
232
 
164
- /* Small spinner for background mode */
165
- .background-loader {
166
- border: 10px solid var(--pd-loading-state-loader-bg, #0a3a48);
167
- border-top: 10px solid var(--pd-loading-state-loader-fg, #067394);
168
- border-radius: 50%;
233
+ /* ====== Dots loader ====== */
234
+ .loader-dots {
235
+ display: flex;
236
+ gap: 8px;
237
+ justify-content: center;
238
+ }
239
+ .loader-dots span {
169
240
  width: 10px;
170
241
  height: 10px;
171
- animation: spin 2s linear infinite;
242
+ border-radius: 50%;
243
+ background: var(
244
+ --pd-loading-state-loader-fg,
245
+ var(--pd-default-col, #067394)
246
+ );
247
+ animation: dot-pulse 1.4s ease-in-out infinite;
248
+ }
249
+ .loader-dots span:nth-child(2) {
250
+ animation-delay: 0.2s;
251
+ }
252
+ .loader-dots span:nth-child(3) {
253
+ animation-delay: 0.4s;
254
+ }
255
+
256
+ /* ====== Pulse loader ====== */
257
+ .loader-pulse {
258
+ width: 40px;
259
+ height: 40px;
260
+ border-radius: 50%;
261
+ margin: 0 auto;
262
+ border: 3px solid
263
+ var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394));
264
+ animation: pulse-ring 1.5s ease-in-out infinite;
172
265
  }
173
266
 
174
- /* Sub-task list */
175
- .sub-ul {
176
- text-align: start;
267
+ /* ====== Background spinner (small) ====== */
268
+ .background-loader {
269
+ border: 2px solid
270
+ var(--pd-loading-state-loader-bg, var(--pd-default-dark-col, #0a3a48));
271
+ border-top: 2px solid
272
+ var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394));
273
+ border-radius: 50%;
274
+ width: 16px;
275
+ height: 16px;
276
+ animation: spin 2s linear infinite;
277
+ flex-shrink: 0;
177
278
  }
178
279
 
179
- .sub-row {
280
+ /* ====== Sub-tasks ====== */
281
+ .sub-tasks {
282
+ margin-top: var(--pd-spacing-md, 1rem);
283
+ text-align: left;
284
+ }
285
+ .sub-task-header {
286
+ font-size: 0.75rem;
287
+ color: var(--pd-default-font-muted-col, #6b7280);
288
+ margin-bottom: var(--pd-spacing-sm, 0.5rem);
289
+ }
290
+ .sub-task-row {
180
291
  display: flex;
181
292
  align-items: center;
182
- justify-content: space-between;
183
- padding-right: 10px;
293
+ gap: var(--pd-spacing-sm, 0.5rem);
294
+ padding: var(--pd-spacing-xs, 0.25rem) 0;
184
295
  }
185
-
186
- .sub-icon {
296
+ .sub-task-row .sub-icon {
187
297
  --pd-icon-size: 1rem;
188
298
  padding: 0;
189
- vertical-align: baseline;
190
- margin: 0 0.25rem 0 0;
299
+ margin: 0;
300
+ flex-shrink: 0;
191
301
  }
192
-
193
- .completed {
194
- --pd-icon-col-active: var(--pd-loading-state-completed-col, green);
302
+ .sub-task-row .completed {
303
+ --pd-icon-col-active: var(
304
+ --pd-loading-state-completed-col,
305
+ var(--pd-default-success-col, #348b11)
306
+ );
195
307
  }
196
-
197
- .loading {
198
- --pd-icon-col-active: var(--pd-loading-state-loading-col, orange);
308
+ .sub-task-row .loading {
309
+ --pd-icon-col-active: var(
310
+ --pd-loading-state-loading-col,
311
+ var(--pd-default-warning-col, #ffbf00)
312
+ );
313
+ animation: spin 2s linear infinite;
199
314
  }
200
315
 
316
+ /* ====== Keyframes ====== */
201
317
  @keyframes spin {
202
318
  0% {
203
319
  transform: rotate(0deg);
@@ -206,14 +322,43 @@ PdLoadingState.styles = [
206
322
  transform: rotate(360deg);
207
323
  }
208
324
  }
325
+
326
+ @keyframes dot-pulse {
327
+ 0%,
328
+ 80%,
329
+ 100% {
330
+ opacity: 0.3;
331
+ transform: scale(0.8);
332
+ }
333
+ 40% {
334
+ opacity: 1;
335
+ transform: scale(1);
336
+ }
337
+ }
338
+
339
+ @keyframes pulse-ring {
340
+ 0% {
341
+ transform: scale(0.8);
342
+ opacity: 1;
343
+ }
344
+ 100% {
345
+ transform: scale(1.4);
346
+ opacity: 0;
347
+ }
348
+ }
209
349
  `
210
350
  ];
211
351
  __decorateClass([
212
352
  property({ type: Object })
213
353
  ], PdLoadingState.prototype, "loadingState", 2);
354
+ __decorateClass([
355
+ property({ type: String, reflect: true })
356
+ ], PdLoadingState.prototype, "loaderStyle", 2);
357
+ __decorateClass([
358
+ property({ type: Boolean, reflect: true })
359
+ ], PdLoadingState.prototype, "inline", 2);
214
360
  PdLoadingState = __decorateClass([
215
- localized(),
216
- customElement("pd-loading-state")
361
+ localized()
217
362
  ], PdLoadingState);
218
363
 
219
364
  export { PdLoadingState };
@@ -1 +1 @@
1
- {"version":3,"file":"pd-loading-state.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/pd-loading-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"pd-loading-state.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/pd-loading-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { LitElement } from 'lit';
2
+ /**
3
+ * Animated PD logo symbol used as a loading indicator.
4
+ *
5
+ * Renders only the intertwined P/D symbol (no company text) and loops
6
+ * the stroke-draw animation continuously: lines draw forward, then
7
+ * erase backward, creating a smooth "breathing" loading effect.
8
+ *
9
+ * @tagname pd-logo-loader
10
+ * @cssprop --pd-logo-loader-col - Stroke color. Default: `var(--pd-loading-state-loader-fg)`.
11
+ * @cssprop --pd-logo-loader-size - Width and height. Default: `56px`.
12
+ * @cssprop --pd-logo-loader-stroke-width - SVG stroke width. Default: `5`.
13
+ * @cssprop --pd-logo-loader-duration - Full draw+erase cycle. Default: `2.5s`.
14
+ */
15
+ export declare class PdLogoLoader extends LitElement {
16
+ static styles: import('lit').CSSResult;
17
+ firstUpdated(): void;
18
+ render(): import('lit').TemplateResult<2>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ "pd-logo-loader": PdLogoLoader;
23
+ }
24
+ }
25
+ //# sourceMappingURL=pd-logo-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-logo-loader.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/pd-logo-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAY,MAAM,KAAK,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,MAAM,0BAsCpB;IAEO,YAAY,IAAI,IAAI;IAQpB,MAAM;CAShB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}
@@ -0,0 +1,63 @@
1
+ import { LitElement, css, svg } from 'lit';
2
+
3
+ class PdLogoLoader extends LitElement {
4
+ static {
5
+ this.styles = css`
6
+ :host {
7
+ display: block;
8
+ width: var(--pd-logo-loader-size, 56px);
9
+ height: var(--pd-logo-loader-size, 56px);
10
+ margin: 0 auto;
11
+ }
12
+
13
+ svg {
14
+ width: 100%;
15
+ height: 100%;
16
+ }
17
+
18
+ .pd-path {
19
+ stroke: var(
20
+ --pd-logo-loader-col,
21
+ var(--pd-loading-state-loader-fg, var(--pd-default-col, #067394))
22
+ );
23
+ stroke-width: var(--pd-logo-loader-stroke-width, 5);
24
+ stroke-linecap: round;
25
+ stroke-linejoin: round;
26
+ stroke-miterlimit: 10;
27
+ fill: none;
28
+ stroke-dasharray: var(--_path-len);
29
+ stroke-dashoffset: var(--_path-len);
30
+ animation: logo-draw var(--pd-logo-loader-duration, 2.5s) ease-in-out
31
+ infinite alternate;
32
+ }
33
+
34
+ .pd-path-b {
35
+ animation-delay: 0.15s;
36
+ }
37
+
38
+ @keyframes logo-draw {
39
+ to {
40
+ stroke-dashoffset: 0;
41
+ }
42
+ }
43
+ `;
44
+ }
45
+ firstUpdated() {
46
+ const path = this.shadowRoot?.querySelector(".pd-path");
47
+ if (path) {
48
+ const len = path.getTotalLength();
49
+ this.style.setProperty("--_path-len", `${len}`);
50
+ }
51
+ }
52
+ render() {
53
+ return svg`<svg viewBox="0 0 166.68 212.6" aria-hidden="true">
54
+ <path class="pd-path" d="M123.9,80.5l3.6,0.1c6.7,0,12.2-5.5,12.2-12.2s-5.5-12.2-12.2-12.2c-6.7,0-12.2,5.5-12.2,12.2v75.8
55
+ c0,15-12.2,27.2-27.2,27.2s-27.2-12.2-27.2-27.2c0-14.1,10.7-25.7,24.4-27.1V74.7c0-4.4-3.5-8-7.9-8c-4.4,0-8,3.6-8,8
56
+ c0,4.4,3.6,8,8,8"/>
57
+ <path class="pd-path pd-path-b" d="M91.7,132.1l-3.6-0.1c-6.7,0-12.2,5.5-12.2,12.2c0,6.7,5.5,12.2,12.2,12.2s12.2-5.5,12.2-12.2V68.4
58
+ c0-15,12.2-27.2,27.2-27.2s27.2,12.2,27.2,27.2c0,14.1-10.8,25.7-24.5,27.1v42.1c0,4.4,3.6,8,8,8c4.4,0,8-3.6,8-8s-3.6-8-8-8"/>
59
+ </svg>`;
60
+ }
61
+ }
62
+
63
+ export { PdLogoLoader };
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright (c) 2021 PD Progressive Development UG. All rights reserved.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=register-pd-logo-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-pd-logo-loader.d.ts","sourceRoot":"","sources":["../../src/pd-loading-state/register-pd-logo-loader.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,6 @@
1
+ import { PdLogoLoader } from './pd-logo-loader.js';
2
+
3
+ const tag = "pd-logo-loader";
4
+ if (!customElements.get(tag)) {
5
+ customElements.define(tag, PdLogoLoader);
6
+ }
@@ -1 +1,8 @@
1
- export { PdLoadingState } from './pd-loading-state/PdLoadingState.js';
1
+ import { PdLoadingState } from './pd-loading-state/PdLoadingState.js';
2
+
3
+ const tag = "pd-loading-state";
4
+ if (!customElements.get(tag)) {
5
+ customElements.define(tag, PdLoadingState);
6
+ }
7
+
8
+ export { PdLoadingState };
@@ -1 +1 @@
1
- {"version":3,"file":"PdPanelViewer.d.ts","sourceRoot":"","sources":["../../src/pd-panel-viewer/PdPanelViewer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAKrD,OAAO,0CAA0C,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAE3C,YAAY,UAAS;IAGrB,SAAS,SAAK;IAEd,cAAc;IAEd,MAAM,SAAK;IAEX,cAAc;IAEd,QAAQ,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAM;IAEtD,cAAc;IAEd,OAAO,KAAM;IAEb,cAAc;IACd,OAAO,CAAC,eAAe,CAA+B;IACtD,cAAc;IACd,OAAO,CAAC,cAAc,CAAK;IAC3B,cAAc;IACd,OAAO,CAAC,cAAc,CAAK;IAC3B,cAAc;IACd,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,cAAc;IACd,OAAO,CAAC,aAAa,CAAS;IAC9B,cAAc;IACd,OAAO,CAAC,cAAc,CAAK;IAC3B,cAAc;IACd,OAAO,CAAC,iBAAiB,CAAwB;IAEjD,MAAM,CAAC,MAAM,0BAiGX;IAEF,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAId;IAED,MAAM;IA0EN,YAAY;IAQH,oBAAoB;IAS7B,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAK9C;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAsCrB,IAAI;IASJ,QAAQ;IAUR,OAAO,CAAC,cAAc,CAUpB;IAEF,OAAO,CAAC,cAAc,CAqCpB;IAEF,OAAO,CAAC,YAAY,CAWlB;IAEF,OAAO,CAAC,gBAAgB,CAMtB;IAIF,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;CAY3B"}
1
+ {"version":3,"file":"PdPanelViewer.d.ts","sourceRoot":"","sources":["../../src/pd-panel-viewer/PdPanelViewer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAKrD,OAAO,0CAA0C,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAE3C,YAAY,UAAS;IAGrB,SAAS,SAAK;IAEd,cAAc;IAEd,MAAM,SAAK;IAEX,cAAc;IAEd,QAAQ,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAM;IAEtD,cAAc;IAEd,OAAO,KAAM;IAEb,cAAc;IACd,OAAO,CAAC,eAAe,CAA+B;IACtD,cAAc;IACd,OAAO,CAAC,cAAc,CAAK;IAC3B,cAAc;IACd,OAAO,CAAC,cAAc,CAAK;IAC3B,cAAc;IACd,OAAO,CAAC,gBAAgB,CAAuB;IAC/C,cAAc;IACd,OAAO,CAAC,aAAa,CAAS;IAC9B,cAAc;IACd,OAAO,CAAC,cAAc,CAAK;IAC3B,cAAc;IACd,OAAO,CAAC,iBAAiB,CAAwB;IAEjD,MAAM,CAAC,MAAM,0BAiGX;IAEF,IAAI,KAAK,WAER;IAED,IAAI,KAAK,CAAC,KAAK,QAAA,EAId;IAED,MAAM;IA0EN,YAAY;IAQH,oBAAoB;IAS7B,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAK9C;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAsCrB,IAAI;IASJ,QAAQ;IAUR,OAAO,CAAC,cAAc,CAQpB;IAEF,OAAO,CAAC,cAAc,CAqCpB;IAEF,OAAO,CAAC,YAAY,CAWlB;IAEF,OAAO,CAAC,gBAAgB,CAMtB;IAIF,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;CAY3B"}
@@ -43,7 +43,6 @@ class PdPanelViewer extends LitElement {
43
43
  this._pointerStartY = e.clientY;
44
44
  this._pointerMoved = false;
45
45
  this._isHorizontalDrag = null;
46
- e.currentTarget.setPointerCapture(e.pointerId);
47
46
  };
48
47
  this._onPointerMove = (e) => {
49
48
  if (e.pointerId !== this._activePointerId) return;
@@ -55,6 +54,7 @@ class PdPanelViewer extends LitElement {
55
54
  if (absDx < this._dragThreshold && absDy < this._dragThreshold) return;
56
55
  this._isHorizontalDrag = absDx > absDy;
57
56
  if (this._isHorizontalDrag) {
57
+ e.currentTarget.setPointerCapture(e.pointerId);
58
58
  this.style.userSelect = "none";
59
59
  window.getSelection()?.removeAllRanges();
60
60
  }
package/dist/types.d.ts CHANGED
@@ -47,6 +47,9 @@ export interface WizardStep {
47
47
  state?: PointState;
48
48
  labelSide?: LabelSide;
49
49
  }
50
+ export type { PdBadge, PdBadgeChangeDetail, PdBadgeReorderDetail, } from './pd-badge-order/types.js';
51
+ export { TEXT_LIMIT_TITLE, TEXT_LIMIT_DESC, DEFAULT_BADGE_COLOR, } from './pd-badge-order/types.js';
52
+ export type { GalleryImage, GalleryMode, GalleryOpenDetail, GalleryCloseDetail, GalleryNavigateDetail, } from './pd-gallery/types.js';
50
53
  /**
51
54
  * Notice types for different message contexts.
52
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAGD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,2BAA2B;IAC1C;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AACjE,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAGD,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAGD,YAAY,EACV,OAAO,EACP,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EACV,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAG/B;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progressive-development/pd-content",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Progressive Development content components. ",
5
5
  "author": "PD Progressive Development",
6
6
  "license": "MIT",
@@ -27,6 +27,9 @@
27
27
  "./pd-loading-state": "./dist/pd-loading-state.js",
28
28
  "./pd-notice-box": "./dist/pd-notice-box/pd-notice-box.js",
29
29
  "./pd-code-snippet": "./dist/pd-code-snippet/pd-code-snippet.js",
30
+ "./pd-badge-order": "./dist/pd-badge-order.js",
31
+ "./pd-gallery": "./dist/pd-gallery.js",
32
+ "./pd-gallery-lightbox": "./dist/pd-gallery-lightbox.js",
30
33
  "./locales/be": "./dist/locales/be.js",
31
34
  "./locales/de": "./dist/locales/de.js",
32
35
  "./locales/en": "./dist/locales/en.js"
@@ -44,9 +47,11 @@
44
47
  "prismjs": "^1.30.0",
45
48
  "pwa-helpers": "^0.9.1",
46
49
  "tslib": "^2.8.1",
47
- "@progressive-development/pd-dialog": "1.0.2",
50
+ "@progressive-development/pd-dialog": "1.0.3",
51
+ "@progressive-development/pd-icon": "1.0.2",
48
52
  "@progressive-development/pd-shared-styles": "0.3.2",
49
- "@progressive-development/pd-icon": "1.0.2"
53
+ "@progressive-development/pd-forms": "1.0.3",
54
+ "@progressive-development/pd-model": "1.1.1"
50
55
  },
51
56
  "customElements": "custom-elements.json",
52
57
  "keywords": [
@@ -1,43 +0,0 @@
1
- import { Meta, StoryObj } from '@storybook/web-components-vite';
2
- /**
3
- * Story arguments interface for pd-box-view component.
4
- * Maps to the component's public API via CSS custom properties.
5
- */
6
- interface PdBoxViewArgs {
7
- /** Number of columns in the grid */
8
- columns: number;
9
- /** Gap between items */
10
- gap: string;
11
- /** Minimum width of each box */
12
- minWidth: string;
13
- }
14
- /**
15
- * ## pd-box-view
16
- *
17
- * A responsive CSS Grid container for displaying content in configurable columns.
18
- *
19
- * ### Features
20
- * - Pure CSS Grid layout with no JavaScript logic
21
- * - Configurable column count via `--pd-box-columns`
22
- * - Configurable gap spacing via `--pd-box-gap`
23
- * - Minimum item width via `--pd-box-min-width` for responsive wrapping
24
- * - Items automatically wrap when they cannot maintain minimum width
25
- * - Lightweight: zero properties, zero events, all configuration via CSS
26
- *
27
- * ### Accessibility
28
- * - Pure layout component with no interactive behavior
29
- * - Content is fully accessible via standard HTML in the default slot
30
- * - Grid layout does not affect reading order for screen readers
31
- */
32
- declare const meta: Meta<PdBoxViewArgs>;
33
- export default meta;
34
- type Story = StoryObj<PdBoxViewArgs>;
35
- /** Default 4-column grid layout. Interactive via Controls panel. */
36
- export declare const Default: Story;
37
- /** Visual comparison of 1, 2, 3, and 4 column layouts. */
38
- export declare const AllVariants: Story;
39
- /** Demonstrates responsive wrapping when items cannot maintain minimum width. */
40
- export declare const ResponsiveMinWidth: Story;
41
- /** CSS Custom Properties -- Tight grid vs. spacious grid. */
42
- export declare const CustomStyling: Story;
43
- //# sourceMappingURL=pd-box-view.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pd-box-view.stories.d.ts","sourceRoot":"","sources":["../../src/pd-box-view/pd-box-view.stories.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,kBAAkB,CAAC;AAM1B;;;GAGG;AACH,UAAU,aAAa;IACrB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2CD;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,aAAa,CAmC7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAMrC,oEAAoE;AACpE,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAMF,0DAA0D;AAC1D,eAAO,MAAM,WAAW,EAAE,KA6CzB,CAAC;AAMF,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,KA4BhC,CAAC;AAMF,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,KA0D3B,CAAC"}