@progressive-development/pd-content 1.0.3 → 1.1.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.
Files changed (84) hide show
  1. package/dist/index.d.ts +2 -4
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +0 -4
  4. package/dist/node_modules/.pnpm/@codemirror_autocomplete@6.20.1/node_modules/@codemirror/autocomplete/dist/index.js +550 -0
  5. package/dist/node_modules/.pnpm/@codemirror_lang-css@6.3.1/node_modules/@codemirror/lang-css/dist/index.js +264 -0
  6. package/dist/node_modules/.pnpm/@codemirror_lang-html@6.4.11/node_modules/@codemirror/lang-html/dist/index.js +661 -0
  7. package/dist/node_modules/.pnpm/@codemirror_lang-java@6.0.2/node_modules/@codemirror/lang-java/dist/index.js +44 -0
  8. package/dist/node_modules/.pnpm/@codemirror_lang-javascript@6.2.5/node_modules/@codemirror/lang-javascript/dist/index.js +346 -0
  9. package/dist/node_modules/.pnpm/@codemirror_lang-json@6.0.2/node_modules/@codemirror/lang-json/dist/index.js +32 -0
  10. package/dist/node_modules/.pnpm/@codemirror_lang-markdown@6.5.0/node_modules/@codemirror/lang-markdown/dist/index.js +492 -0
  11. package/dist/node_modules/.pnpm/@codemirror_lang-python@6.2.1/node_modules/@codemirror/lang-python/dist/index.js +308 -0
  12. package/dist/node_modules/.pnpm/@codemirror_language@6.12.3/node_modules/@codemirror/language/dist/index.js +1572 -0
  13. package/dist/node_modules/.pnpm/@codemirror_state@6.6.0/node_modules/@codemirror/state/dist/index.js +3881 -0
  14. package/dist/node_modules/.pnpm/@codemirror_view@6.40.0/node_modules/@codemirror/view/dist/index.js +9657 -0
  15. package/dist/node_modules/.pnpm/@lezer_common@1.5.1/node_modules/@lezer/common/dist/index.js +2196 -0
  16. package/dist/node_modules/.pnpm/@lezer_css@1.3.3/node_modules/@lezer/css/dist/index.js +147 -0
  17. package/dist/node_modules/.pnpm/@lezer_highlight@1.2.3/node_modules/@lezer/highlight/dist/index.js +898 -0
  18. package/dist/node_modules/.pnpm/@lezer_html@1.3.13/node_modules/@lezer/html/dist/index.js +349 -0
  19. package/dist/node_modules/.pnpm/@lezer_java@1.1.3/node_modules/@lezer/java/dist/index.js +67 -0
  20. package/dist/node_modules/.pnpm/@lezer_javascript@1.5.4/node_modules/@lezer/javascript/dist/index.js +192 -0
  21. package/dist/node_modules/.pnpm/@lezer_json@1.0.3/node_modules/@lezer/json/dist/index.js +37 -0
  22. package/dist/node_modules/.pnpm/@lezer_lr@1.4.8/node_modules/@lezer/lr/dist/index.js +1884 -0
  23. package/dist/node_modules/.pnpm/@lezer_markdown@1.6.3/node_modules/@lezer/markdown/dist/index.js +2335 -0
  24. package/dist/node_modules/.pnpm/@lezer_python@1.1.18/node_modules/@lezer/python/dist/index.js +326 -0
  25. package/dist/node_modules/.pnpm/@marijn_find-cluster-break@1.0.2/node_modules/@marijn/find-cluster-break/src/index.js +82 -0
  26. package/dist/node_modules/.pnpm/style-mod@4.1.3/node_modules/style-mod/src/style-mod.js +174 -0
  27. package/dist/node_modules/.pnpm/w3c-keyname@2.2.8/node_modules/w3c-keyname/index.js +121 -0
  28. package/dist/pd-badge-order/PdBadgeItem.d.ts +11 -0
  29. package/dist/pd-badge-order/PdBadgeItem.d.ts.map +1 -1
  30. package/dist/pd-badge-order/PdBadgeItem.js +162 -10
  31. package/dist/pd-badge-order/PdBadgeOrder.d.ts +56 -17
  32. package/dist/pd-badge-order/PdBadgeOrder.d.ts.map +1 -1
  33. package/dist/pd-badge-order/PdBadgeOrder.js +308 -153
  34. package/dist/pd-badge-order/types.js +3 -1
  35. package/dist/pd-code-snippet/PdCodeSnippet.d.ts +29 -0
  36. package/dist/pd-code-snippet/PdCodeSnippet.d.ts.map +1 -1
  37. package/dist/pd-code-snippet/PdCodeSnippet.js +117 -67
  38. package/dist/pd-code-snippet/codemirror-setup.d.ts +10 -0
  39. package/dist/pd-code-snippet/codemirror-setup.d.ts.map +1 -0
  40. package/dist/pd-code-snippet/codemirror-setup.js +101 -0
  41. package/dist/pd-loading-state/PdLoadingState.d.ts +4 -1
  42. package/dist/pd-loading-state/PdLoadingState.d.ts.map +1 -1
  43. package/dist/pd-loading-state/pd-loading-state.d.ts +1 -1
  44. package/dist/pd-loading-state/pd-loading-state.d.ts.map +1 -1
  45. package/dist/pd-loading-state/pd-logo-loader.js +2 -2
  46. package/dist/pd-more-info/PdMoreInfo.d.ts +52 -4
  47. package/dist/pd-more-info/PdMoreInfo.d.ts.map +1 -1
  48. package/dist/pd-more-info/PdMoreInfo.js +146 -24
  49. package/dist/pd-notice-box/PdNoticeBox.d.ts +8 -1
  50. package/dist/pd-notice-box/PdNoticeBox.d.ts.map +1 -1
  51. package/dist/pd-notice-box/PdNoticeBox.js +41 -2
  52. package/dist/pd-panel-viewer/PdPanel.d.ts +3 -0
  53. package/dist/pd-panel-viewer/PdPanel.d.ts.map +1 -1
  54. package/dist/pd-panel-viewer/PdPanel.js +8 -1
  55. package/dist/pd-panel-viewer/PdPanelViewer.d.ts +3 -0
  56. package/dist/pd-panel-viewer/PdPanelViewer.d.ts.map +1 -1
  57. package/dist/pd-panel-viewer/PdPanelViewer.js +59 -26
  58. package/dist/pd-tab/PdTab.d.ts +8 -5
  59. package/dist/pd-tab/PdTab.d.ts.map +1 -1
  60. package/dist/pd-tab/PdTab.js +110 -56
  61. package/dist/pd-timeline/PdTimeline.d.ts +2 -0
  62. package/dist/pd-timeline/PdTimeline.d.ts.map +1 -1
  63. package/dist/pd-timeline/PdTimeline.js +50 -19
  64. package/dist/types.d.ts +2 -2
  65. package/dist/types.d.ts.map +1 -1
  66. package/package.json +16 -8
  67. package/dist/pd-gallery/PdGallery.d.ts +0 -72
  68. package/dist/pd-gallery/PdGallery.d.ts.map +0 -1
  69. package/dist/pd-gallery/PdGallery.js +0 -660
  70. package/dist/pd-gallery/PdGalleryLightbox.d.ts +0 -53
  71. package/dist/pd-gallery/PdGalleryLightbox.d.ts.map +0 -1
  72. package/dist/pd-gallery/PdGalleryLightbox.js +0 -530
  73. package/dist/pd-gallery/index.d.ts +0 -4
  74. package/dist/pd-gallery/index.d.ts.map +0 -1
  75. package/dist/pd-gallery/pd-gallery-lightbox.d.ts +0 -3
  76. package/dist/pd-gallery/pd-gallery-lightbox.d.ts.map +0 -1
  77. package/dist/pd-gallery/pd-gallery.d.ts +0 -3
  78. package/dist/pd-gallery/pd-gallery.d.ts.map +0 -1
  79. package/dist/pd-gallery/types.d.ts +0 -23
  80. package/dist/pd-gallery/types.d.ts.map +0 -1
  81. package/dist/pd-gallery-lightbox.d.ts +0 -2
  82. package/dist/pd-gallery-lightbox.js +0 -8
  83. package/dist/pd-gallery.d.ts +0 -2
  84. package/dist/pd-gallery.js +0 -8
@@ -15,6 +15,7 @@ class PdTab extends LitElement {
15
15
  constructor() {
16
16
  super(...arguments);
17
17
  this.tabs = [];
18
+ this.orientation = "horizontal";
18
19
  this._resizeObserver = null;
19
20
  }
20
21
  static {
@@ -32,6 +33,17 @@ class PdTab extends LitElement {
32
33
  --_icon-size: var(--pd-tab-icon-size, 1.125em);
33
34
  }
34
35
 
36
+ /* --- Wrapper --- */
37
+ .tab-wrapper {
38
+ display: flex;
39
+ flex-direction: column;
40
+ }
41
+
42
+ :host([orientation="vertical"]) .tab-wrapper {
43
+ flex-direction: row;
44
+ }
45
+
46
+ /* --- Header container --- */
35
47
  .header-container {
36
48
  display: flex;
37
49
  flex-wrap: nowrap;
@@ -39,6 +51,12 @@ class PdTab extends LitElement {
39
51
  font-size: var(--_font-size);
40
52
  }
41
53
 
54
+ :host([orientation="vertical"]) .header-container {
55
+ flex-direction: column;
56
+ border-bottom: none;
57
+ border-right: 1px solid var(--pd-default-disabled-light-col, #e5e7eb);
58
+ }
59
+
42
60
  /* --- Tab header --- */
43
61
  .tab-header {
44
62
  padding: var(--pd-tab-header-padding, 0.5em 1em);
@@ -60,6 +78,13 @@ class PdTab extends LitElement {
60
78
  flex-shrink: 0;
61
79
  }
62
80
 
81
+ :host([orientation="vertical"]) .tab-header {
82
+ border-bottom: none;
83
+ margin-bottom: 0;
84
+ border-left: var(--_active-height) solid transparent;
85
+ margin-left: calc(-1 * var(--_active-height) + 1px);
86
+ }
87
+
63
88
  .tab-header:hover {
64
89
  background-color: var(--pd-tab-hover-bg-col, rgba(0, 0, 0, 0.04));
65
90
  }
@@ -70,6 +95,11 @@ class PdTab extends LitElement {
70
95
  font-weight: 500;
71
96
  }
72
97
 
98
+ :host([orientation="vertical"]) .tab-header.active-header {
99
+ border-bottom-color: transparent;
100
+ border-left-color: var(--_active-col);
101
+ }
102
+
73
103
  .tab-header.disabled-header {
74
104
  pointer-events: none;
75
105
  color: var(
@@ -116,6 +146,13 @@ class PdTab extends LitElement {
116
146
  flex-shrink: 0;
117
147
  }
118
148
 
149
+ /* --- Panels container --- */
150
+ .panels-container {
151
+ flex: 1;
152
+ min-width: 0;
153
+ min-height: 0;
154
+ }
155
+
119
156
  /* --- Content panels --- */
120
157
  .slot-container {
121
158
  display: none;
@@ -130,6 +167,14 @@ class PdTab extends LitElement {
130
167
  );
131
168
  border-top: none;
132
169
  }
170
+
171
+ :host([orientation="vertical"]) .active-slot {
172
+ border-top: var(
173
+ --pd-tab-content-border,
174
+ 1px solid var(--pd-default-disabled-light-col, #e5e7eb)
175
+ );
176
+ border-left: none;
177
+ }
133
178
  `
134
179
  ];
135
180
  }
@@ -155,45 +200,54 @@ class PdTab extends LitElement {
155
200
  }
156
201
  }
157
202
  render() {
203
+ const isVertical = this.orientation === "vertical";
158
204
  return html`
159
- <div
160
- id="hc"
161
- class="header-container"
162
- role="tablist"
163
- @keydown=${this._onKeyDown}
164
- >
165
- ${this.tabs.map(
205
+ <div class="tab-wrapper">
206
+ <div
207
+ id="hc"
208
+ class="header-container"
209
+ role="tablist"
210
+ aria-orientation="${isVertical ? "vertical" : "horizontal"}"
211
+ @keydown=${this._onKeyDown}
212
+ >
213
+ ${this.tabs.map(
166
214
  (t) => html`
167
- <div
168
- class="tab-header ${this._activeTab === t.key ? "active-header" : ""} ${t.disabled ? "disabled-header" : ""}"
169
- data-key="${t.key}"
170
- @click="${this._tabSelected}"
171
- role="tab"
172
- id="${`tab-${t.key}`}"
173
- aria-selected="${this._activeTab === t.key}"
174
- aria-controls="${`panel-${t.key}`}"
175
- aria-disabled="${t.disabled || false}"
176
- tabindex="${this._activeTab === t.key && !t.disabled ? 0 : -1}"
177
- >
178
- ${t.pdIcon ? html`<pd-icon class="tab-icon" .icon="${t.pdIcon}"></pd-icon>` : nothing}
179
- <span class="full-label">${t.name}</span>
180
- <span class="short-label">${t.shortLabel ?? t.name}</span>
181
- </div>
182
- `
215
+ <div
216
+ class="tab-header ${this._activeTab === t.key ? "active-header" : ""} ${t.disabled ? "disabled-header" : ""}"
217
+ data-key="${t.key}"
218
+ @click="${this._tabSelected}"
219
+ role="tab"
220
+ id="${`tab-${t.key}`}"
221
+ aria-selected="${this._activeTab === t.key}"
222
+ aria-controls="${`panel-${t.key}`}"
223
+ aria-disabled="${t.disabled || false}"
224
+ tabindex="${this._activeTab === t.key && !t.disabled ? 0 : -1}"
225
+ >
226
+ ${t.pdIcon ? html`<pd-icon
227
+ class="tab-icon"
228
+ .icon="${t.pdIcon}"
229
+ ></pd-icon>` : nothing}
230
+ <span class="full-label">${t.name}</span>
231
+ <span class="short-label">${t.shortLabel ?? t.name}</span>
232
+ </div>
233
+ `
183
234
  )}
184
- </div>
185
- ${this.tabs.map(
235
+ </div>
236
+ <div class="panels-container">
237
+ ${this.tabs.map(
186
238
  (t) => html`
187
- <div
188
- id="${`panel-${t.key}`}"
189
- role="tabpanel"
190
- aria-labelledby="${`tab-${t.key}`}"
191
- class="slot-container ${this._activeTab === t.key ? "active-slot" : ""}"
192
- >
193
- <slot name="${t.key}"></slot>
194
- </div>
195
- `
239
+ <div
240
+ id="${`panel-${t.key}`}"
241
+ role="tabpanel"
242
+ aria-labelledby="${`tab-${t.key}`}"
243
+ class="slot-container ${this._activeTab === t.key ? "active-slot" : ""}"
244
+ >
245
+ <slot name="${t.key}"></slot>
246
+ </div>
247
+ `
196
248
  )}
249
+ </div>
250
+ </div>
197
251
  `;
198
252
  }
199
253
  reset() {
@@ -205,7 +259,8 @@ class PdTab extends LitElement {
205
259
  _checkOverflow() {
206
260
  this.removeAttribute("data-compact");
207
261
  const c = this._headerContainer;
208
- if (c.scrollWidth > c.clientWidth + 1 && this.tabs.some((t) => t.shortLabel)) {
262
+ const overflows = this.orientation === "vertical" ? c.scrollHeight > c.clientHeight + 1 : c.scrollWidth > c.clientWidth + 1;
263
+ if (overflows && this.tabs.some((t) => t.shortLabel)) {
209
264
  this.setAttribute("data-compact", "");
210
265
  }
211
266
  }
@@ -219,27 +274,23 @@ class PdTab extends LitElement {
219
274
  (t) => t.key === this._activeTab
220
275
  );
221
276
  let nextIndex = -1;
222
- switch (event.key) {
223
- case "ArrowRight":
224
- case "ArrowDown":
225
- event.preventDefault();
226
- nextIndex = currentIndex < enabledTabs.length - 1 ? currentIndex + 1 : 0;
227
- break;
228
- case "ArrowLeft":
229
- case "ArrowUp":
230
- event.preventDefault();
231
- nextIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabs.length - 1;
232
- break;
233
- case "Home":
234
- event.preventDefault();
235
- nextIndex = 0;
236
- break;
237
- case "End":
238
- event.preventDefault();
239
- nextIndex = enabledTabs.length - 1;
240
- break;
241
- default:
242
- return;
277
+ const isVertical = this.orientation === "vertical";
278
+ const nextKeys = isVertical ? ["ArrowDown"] : ["ArrowRight"];
279
+ const prevKeys = isVertical ? ["ArrowUp"] : ["ArrowLeft"];
280
+ if (nextKeys.includes(event.key)) {
281
+ event.preventDefault();
282
+ nextIndex = currentIndex < enabledTabs.length - 1 ? currentIndex + 1 : 0;
283
+ } else if (prevKeys.includes(event.key)) {
284
+ event.preventDefault();
285
+ nextIndex = currentIndex > 0 ? currentIndex - 1 : enabledTabs.length - 1;
286
+ } else if (event.key === "Home") {
287
+ event.preventDefault();
288
+ nextIndex = 0;
289
+ } else if (event.key === "End") {
290
+ event.preventDefault();
291
+ nextIndex = enabledTabs.length - 1;
292
+ } else {
293
+ return;
243
294
  }
244
295
  if (nextIndex >= 0 && nextIndex < enabledTabs.length) {
245
296
  const nextTab = enabledTabs[nextIndex];
@@ -279,6 +330,9 @@ __decorateClass([
279
330
  __decorateClass([
280
331
  property({ type: String })
281
332
  ], PdTab.prototype, "defaultTab");
333
+ __decorateClass([
334
+ property({ type: String, reflect: true })
335
+ ], PdTab.prototype, "orientation");
282
336
  __decorateClass([
283
337
  state()
284
338
  ], PdTab.prototype, "_activeTab");
@@ -25,6 +25,8 @@ import { Orientation, PointItem } from '../types';
25
25
  * @cssprop --pd-timeline-label-max-width - Maximum label width.
26
26
  * @cssprop --pd-timeline-vertical-row-gap - Vertical layout row gap.
27
27
  * @cssprop --pd-timeline-vertical-block-size - Vertical layout height.
28
+ * @cssprop --pd-timeline-item-color - Per-item accent color (set via PointItem.color, overrides point-bg and point-border-color).
29
+ * @cssprop --pd-timeline-point-max-text-width - Max text width / circle diameter (default: 10ch).
28
30
  * @cssprop --pd-timeline-color-active - Active state color.
29
31
  * @cssprop --pd-timeline-color-done - Done state color.
30
32
  * @cssprop --pd-timeline-color-error - Error state color.
@@ -1 +1 @@
1
- {"version":3,"file":"PdTimeline.d.ts","sourceRoot":"","sources":["../../src/pd-timeline/PdTimeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAyB,MAAM,UAAU,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,oDAAoD;IAEpD,WAAW,EAAE,WAAW,CAAgB;IAExC,mDAAmD;IAEnD,MAAM,EAAE,SAAS,EAAE,CAAM;IAEzB,0CAA0C;IAE1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IAEpC,SAAS,UAAS;IAElB,MAAM,CAAC,MAAM,0BA+LX;IAEF,SAAS,CAAC,OAAO,IAAI,IAAI;IAKzB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,iBAAiB;IAWzB,SAAS,CAAC,MAAM;CAoDjB"}
1
+ {"version":3,"file":"PdTimeline.d.ts","sourceRoot":"","sources":["../../src/pd-timeline/PdTimeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAyB,MAAM,UAAU,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,oDAAoD;IAEpD,WAAW,EAAE,WAAW,CAAgB;IAExC,mDAAmD;IAEnD,MAAM,EAAE,SAAS,EAAE,CAAM;IAEzB,0CAA0C;IAE1C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oCAAoC;IAEpC,SAAS,UAAS;IAElB,MAAM,CAAC,MAAM,0BA2NX;IAEF,SAAS,CAAC,OAAO,IAAI,IAAI;IAKzB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,iBAAiB;IAUzB,SAAS,CAAC,MAAM;CAwDjB"}
@@ -1,6 +1,7 @@
1
1
  import { LitElement, css, html, nothing } from 'lit';
2
2
  import { property } from 'lit/decorators.js';
3
3
  import { ifDefined } from 'lit/directives/if-defined.js';
4
+ import { styleMap } from 'lit/directives/style-map.js';
4
5
 
5
6
  var __defProp = Object.defineProperty;
6
7
  var __decorateClass = (decorators, target, key, kind) => {
@@ -22,22 +23,31 @@ class PdTimeline extends LitElement {
22
23
  this.styles = css`
23
24
  :host {
24
25
  display: block;
26
+
27
+ /* Line */
25
28
  --pd-timeline-line-color: var(--pd-default-col);
26
29
  --pd-timeline-line-width: 2px;
27
30
  --pd-timeline-line-style: solid;
28
31
 
32
+ /* Point (dot) */
29
33
  --pd-timeline-point-size: 28px;
30
34
  --pd-timeline-point-bg: var(--pd-default-bg-col);
31
35
  --pd-timeline-point-color: var(--pd-default-darkest-col);
32
36
  --pd-timeline-point-border-color: var(--pd-default-disabled-col);
33
37
  --pd-timeline-point-border-width: 2px;
34
- --pd-timeline-point-font-size: 0.875rem;
38
+ --pd-timeline-point-font-size: var(
39
+ --pd-default-font-content-size,
40
+ 0.875rem
41
+ );
35
42
 
36
- --pd-timeline-label-gap: 10px;
43
+ /* Label */
44
+ --pd-timeline-label-gap: var(--pd-spacing-sm, 0.5rem);
37
45
  --pd-timeline-label-max-width: 20ch;
38
46
 
39
- --pd-timeline-vertical-row-gap: 20px;
47
+ /* Vertical layout */
48
+ --pd-timeline-vertical-row-gap: var(--pd-spacing-lg, 2rem);
40
49
 
50
+ /* State colors */
41
51
  --pd-timeline-color-active: var(--pd-default-info-col);
42
52
  --pd-timeline-color-done: var(--pd-default-success-col);
43
53
  --pd-timeline-color-error: var(--pd-default-error-col);
@@ -87,8 +97,8 @@ class PdTimeline extends LitElement {
87
97
  row-gap: var(--pd-timeline-vertical-row-gap);
88
98
  justify-items: start;
89
99
  align-content: space-around;
90
- padding-inline: 16px;
91
- padding-block: 6px;
100
+ padding-inline: var(--pd-spacing-md, 1rem);
101
+ padding-block: var(--pd-spacing-xs, 0.25rem);
92
102
  }
93
103
 
94
104
  :host([orientation="vertical"]) .rail::before {
@@ -96,7 +106,9 @@ class PdTimeline extends LitElement {
96
106
  position: absolute;
97
107
  top: 0;
98
108
  bottom: 0;
99
- left: calc(16px + (var(--pd-timeline-point-size) * 0.5));
109
+ left: calc(
110
+ var(--pd-spacing-md, 1rem) + (var(--pd-timeline-point-size) * 0.5)
111
+ );
100
112
  transform: translateX(-50%);
101
113
  border-left: var(--pd-timeline-line-width) var(--pd-timeline-line-style)
102
114
  var(--pd-timeline-line-color);
@@ -126,18 +138,39 @@ class PdTimeline extends LitElement {
126
138
  /* === Dot (point) === */
127
139
  .dot {
128
140
  box-sizing: border-box;
129
- width: var(--pd-timeline-point-size);
130
- height: var(--pd-timeline-point-size);
141
+ display: block;
142
+ width: fit-content;
143
+ min-width: var(--pd-timeline-point-size);
144
+ max-width: calc(
145
+ var(--pd-timeline-point-max-text-width, 10ch) + 1em +
146
+ var(--pd-timeline-point-border-width) * 2
147
+ );
148
+ aspect-ratio: 1;
149
+ padding: 0.5em;
131
150
  border-radius: 999px;
132
- background: var(--pd-timeline-point-bg);
151
+ overflow: hidden;
152
+ background: var(--pd-timeline-item-color, var(--pd-timeline-point-bg));
133
153
  color: var(--pd-timeline-point-color);
134
154
  border: var(--pd-timeline-point-border-width) solid
135
- var(--pd-timeline-point-border-color);
136
- display: inline-grid;
137
- place-items: center;
155
+ var(--pd-timeline-item-color, var(--pd-timeline-point-border-color));
156
+ text-align: center;
138
157
  font-size: var(--pd-timeline-point-font-size);
139
158
  line-height: 1;
140
159
  user-select: none;
160
+ flex-shrink: 0;
161
+ }
162
+
163
+ .dot-text {
164
+ position: relative;
165
+ top: 50%;
166
+ transform: translateY(-50%);
167
+ max-width: var(--pd-timeline-point-max-text-width, 10ch);
168
+ white-space: normal;
169
+ word-break: break-word;
170
+ display: -webkit-box;
171
+ -webkit-box-orient: vertical;
172
+ -webkit-line-clamp: var(--pd-timeline-point-max-lines, 3);
173
+ overflow: hidden;
141
174
  }
142
175
 
143
176
  .dot[aria-current="step"] {
@@ -181,14 +214,10 @@ class PdTimeline extends LitElement {
181
214
 
182
215
  /* Horizontal label placement */
183
216
  :host([orientation="horizontal"]) .label.top {
184
- bottom: calc(
185
- 50% + var(--pd-timeline-point-size) * 0.5 + var(--pd-timeline-label-gap)
186
- );
217
+ bottom: calc(100% + var(--pd-timeline-label-gap));
187
218
  }
188
219
  :host([orientation="horizontal"]) .label.back {
189
- top: calc(
190
- 50% + var(--pd-timeline-point-size) * 0.5 + var(--pd-timeline-label-gap)
191
- );
220
+ top: calc(100% + var(--pd-timeline-label-gap));
192
221
  }
193
222
 
194
223
  /* Vertical label placement */
@@ -247,7 +276,7 @@ class PdTimeline extends LitElement {
247
276
  return html`<span aria-hidden="true">${p.icon}</span>`;
248
277
  }
249
278
  if (p.text) {
250
- return html`${p.text}`;
279
+ return html`<span class="dot-text">${p.text}</span>`;
251
280
  }
252
281
  return nothing;
253
282
  }
@@ -264,9 +293,11 @@ class PdTimeline extends LitElement {
264
293
  const isActive = this.activeIndex === i;
265
294
  const stateClass = this._stateClass(p, i);
266
295
  const labelName = `label-${i}`;
296
+ const itemStyles = p.color ? { "--pd-timeline-item-color": p.color } : {};
267
297
  return html`
268
298
  <div
269
299
  class="item"
300
+ style=${styleMap(itemStyles)}
270
301
  role="listitem"
271
302
  aria-setsize="${this.points.length}"
272
303
  aria-posinset="${i + 1}"
package/dist/types.d.ts CHANGED
@@ -40,6 +40,7 @@ export interface PointItem {
40
40
  icon?: string;
41
41
  labelSide?: LabelSide;
42
42
  state?: PointState;
43
+ color?: string;
43
44
  }
44
45
  export interface WizardStep {
45
46
  id: string;
@@ -49,7 +50,6 @@ export interface WizardStep {
49
50
  }
50
51
  export type { PdBadge, PdBadgeChangeDetail, PdBadgeReorderDetail, } from './pd-badge-order/types.js';
51
52
  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';
53
53
  /**
54
54
  * Notice types for different message contexts.
55
55
  */
@@ -57,5 +57,5 @@ export type NoticeType = "info" | "note" | "success" | "warning" | "error";
57
57
  /**
58
58
  * Visual variants for the notice box.
59
59
  */
60
- export type NoticeVariant = "box" | "sidebar";
60
+ export type NoticeVariant = "box" | "sidebar" | "compact";
61
61
  //# sourceMappingURL=types.d.ts.map
@@ -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,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"}
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;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;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;;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,GAAG,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progressive-development/pd-content",
3
- "version": "1.0.3",
3
+ "version": "1.1.1",
4
4
  "description": "Progressive Development content components. ",
5
5
  "author": "PD Progressive Development",
6
6
  "license": "MIT",
@@ -28,8 +28,6 @@
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
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",
33
31
  "./locales/be": "./dist/locales/be.js",
34
32
  "./locales/de": "./dist/locales/de.js",
35
33
  "./locales/en": "./dist/locales/en.js"
@@ -41,17 +39,27 @@
41
39
  "LICENSE"
42
40
  ],
43
41
  "dependencies": {
42
+ "@codemirror/lang-css": "^6.3.1",
43
+ "@codemirror/lang-html": "^6.4.11",
44
+ "@codemirror/lang-java": "^6.0.2",
45
+ "@codemirror/lang-javascript": "^6.2.5",
46
+ "@codemirror/lang-json": "^6.0.2",
47
+ "@codemirror/lang-markdown": "^6.5.0",
48
+ "@codemirror/lang-python": "^6.2.1",
49
+ "@codemirror/language": "^6.12.2",
50
+ "@codemirror/state": "^6.6.0",
51
+ "@codemirror/view": "^6.40.0",
44
52
  "@lit/localize": "^0.12.2",
45
53
  "@types/prismjs": "^1.26.5",
46
54
  "lit": "^3.3.1",
47
55
  "prismjs": "^1.30.0",
48
56
  "pwa-helpers": "^0.9.1",
49
57
  "tslib": "^2.8.1",
50
- "@progressive-development/pd-dialog": "1.0.3",
51
- "@progressive-development/pd-icon": "1.0.2",
52
- "@progressive-development/pd-shared-styles": "0.3.2",
53
- "@progressive-development/pd-forms": "1.0.3",
54
- "@progressive-development/pd-model": "1.1.1"
58
+ "@progressive-development/pd-dialog": "1.1.1",
59
+ "@progressive-development/pd-icon": "1.1.1",
60
+ "@progressive-development/pd-forms": "1.1.1",
61
+ "@progressive-development/pd-model": "1.2.1",
62
+ "@progressive-development/pd-shared-styles": "0.4.1"
55
63
  },
56
64
  "customElements": "custom-elements.json",
57
65
  "keywords": [
@@ -1,72 +0,0 @@
1
- import { LitElement, nothing, CSSResultGroup } from 'lit';
2
- import { GalleryImage, GalleryMode } from './types.js';
3
- /**
4
- * Image gallery with Grid, Carousel, and Featured display modes.
5
- * Optionally opens a fullscreen lightbox on click.
6
- *
7
- * @tagname pd-gallery
8
- *
9
- * @event gallery-image-click - Fired when an image is clicked.
10
- * @event gallery-open - Fired when the lightbox opens.
11
- * @event gallery-close - Bubbles from lightbox when it closes.
12
- * @event gallery-navigate - Bubbles from lightbox on prev/next.
13
- *
14
- * @cssprop --pd-gallery-columns - Grid columns. Default: `3`.
15
- * @cssprop --pd-gallery-gap - Gap between items. Default: `0.75rem`.
16
- * @cssprop --pd-gallery-radius - Image border radius. Default: `8px`.
17
- * @cssprop --pd-gallery-aspect-ratio - Image aspect ratio. Default: `1/1`.
18
- * @cssprop --pd-gallery-hover-scale - Hover zoom factor. Default: `1.03`.
19
- * @cssprop --pd-gallery-caption-bg - Caption overlay background. Default: `rgba(0,0,0,0.6)`.
20
- * @cssprop --pd-gallery-featured-max-height - Featured image max height. Default: `500px`.
21
- * @cssprop --pd-gallery-carousel-transition - Carousel snap transition. Default: `smooth`.
22
- * @cssprop --pd-gallery-dot-size - Carousel dot size. Default: `10px`.
23
- * @cssprop --pd-gallery-dot-color - Carousel dot inactive color. Default: `rgba(0,0,0,0.25)`.
24
- * @cssprop --pd-gallery-dot-active-color - Carousel dot active color. Default: `var(--pd-default-col, #333)`.
25
- */
26
- export declare class PdGallery extends LitElement {
27
- images: GalleryImage[];
28
- mode: GalleryMode;
29
- columns: number;
30
- aspectRatio: string;
31
- lightbox: boolean;
32
- showCaptions: boolean;
33
- maxHeight: string;
34
- autoplay: boolean;
35
- autoplayInterval: number;
36
- loop: boolean;
37
- showProgress: boolean;
38
- /** @ignore */
39
- private _carouselIndex;
40
- /** @ignore */
41
- private _lightbox;
42
- /** @ignore */
43
- private _carouselTrack;
44
- /** @ignore */
45
- private _autoplayTimer?;
46
- /** @ignore */
47
- private _observer?;
48
- /** @ignore */
49
- private _hovered;
50
- static styles: CSSResultGroup;
51
- connectedCallback(): void;
52
- disconnectedCallback(): void;
53
- updated(changed: Map<string, unknown>): void;
54
- render(): import('lit').TemplateResult<1> | typeof nothing;
55
- private _renderMode;
56
- private _renderGrid;
57
- private _renderCarousel;
58
- private _setupCarouselObserver;
59
- private _carouselPrev;
60
- private _carouselNext;
61
- private _carouselGoTo;
62
- private _carouselScrollTo;
63
- private _onCarouselKeyDown;
64
- private _onCarouselEnter;
65
- private _onCarouselLeave;
66
- private _renderFeatured;
67
- private _onImageClick;
68
- private _onItemKeyDown;
69
- private _startAutoplay;
70
- private _stopAutoplay;
71
- }
72
- //# sourceMappingURL=PdGallery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PdGallery.d.ts","sourceRoot":"","sources":["../../src/pd-gallery/PdGallery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,YAAY,CAAC;AAG/E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,SAAU,SAAQ,UAAU;IAEvC,MAAM,EAAE,YAAY,EAAE,CAAM;IAG5B,IAAI,EAAE,WAAW,CAAU;IAG3B,OAAO,SAAK;IAGZ,WAAW,SAAS;IAGpB,QAAQ,UAAQ;IAGhB,YAAY,UAAS;IAGrB,SAAS,SAAM;IAGf,QAAQ,UAAS;IAGjB,gBAAgB,SAAQ;IAGxB,IAAI,UAAQ;IAGZ,YAAY,UAAQ;IAEpB,cAAc;IAEd,OAAO,CAAC,cAAc,CAAK;IAE3B,cAAc;IAEd,OAAO,CAAC,SAAS,CAAqB;IAEtC,cAAc;IAEd,OAAO,CAAC,cAAc,CAAe;IAErC,cAAc;IACd,OAAO,CAAC,cAAc,CAAC,CAAiC;IACxD,cAAc;IACd,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,cAAc;IACd,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAgB,MAAM,EAAE,cAAc,CAiRpC;IAEO,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAM5B,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA4B5C,MAAM;IAaf,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,WAAW;IAqCnB,OAAO,CAAC,eAAe;IAkGvB,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;CAMtB"}