@progressive-development/pd-forms 0.7.8 → 0.7.10-t

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,7 +8,8 @@ export { PdInputArea } from './pd-input-area.js';
8
8
  export { PdInputFile } from './pd-input-file.js';
9
9
  export { PdRadioGroup } from './pd-radio-group.js';
10
10
  export { PdBaseInputElement } from './pd-base-input-element.js';
11
- export type { PdAutocomplete, PdSelectOption, PdFieldType, PdFormElementStatus, PdFormValidatorFn, UNDEF, } from './types.js';
11
+ export type { PdAutocomplete, PdSelectOption, PdFieldType, PdFormElementStatus, PdFormValidatorFn, ButtonData, } from './types.js';
12
+ export { UNDEF } from './types.js';
12
13
  export * as pdValidator from './validators.js';
13
14
  export { templates as beTemplates } from './generated/locales/be.js';
14
15
  export { templates as deTemplates } from './generated/locales/de.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,GACN,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,WAAW,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ import { PdInputArea } from "./pd-input-area.js";
8
8
  import { PdInputFile } from "./pd-input-file.js";
9
9
  import { PdRadioGroup } from "./pd-radio-group.js";
10
10
  import { PdBaseInputElement } from "./pd-base-input-element.js";
11
+ import { UNDEF } from "./types.js";
11
12
  import * as validators from "./validators.js";
12
13
  import { templates } from "./locales/be.js";
13
14
  import { templates as templates2 } from "./locales/de.js";
@@ -23,6 +24,7 @@ export {
23
24
  PdInputArea,
24
25
  PdInputFile,
25
26
  PdRadioGroup,
27
+ UNDEF,
26
28
  templates as beTemplates,
27
29
  templates2 as deTemplates,
28
30
  templates3 as enTemplates,
@@ -1 +1 @@
1
- {"version":3,"file":"pd-base-input-element.d.ts","sourceRoot":"","sources":["../src/pd-base-input-element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAErC,OAAO,EACL,aAAa,EAOd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKxC;;GAEG;AACH,8BAAsB,kBAAmB,SAAQ,aAAa;IAC5D;;OAEG;IAEH,WAAW,SAAM;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,gBAAgB,EAAE,cAAc,CAAS;IAEzC,SAAS,CAAC,MAAM,EACZ,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,OAAO,CAAC;IAEZ,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAgB,MAAM,EAAE,cAAc,CAGpC;IAEO,YAAY,IAAI,IAAI;IAO7B,KAAK,IAAI,IAAI;IAIb,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAuBrC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IActC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWrC,iCAAiC,CAAC,MAAM,EAAE,OAAO;IAQ1D,SAAS,CAAC,eAAe,IAAI,MAAM;CAgBpC"}
1
+ {"version":3,"file":"pd-base-input-element.d.ts","sourceRoot":"","sources":["../src/pd-base-input-element.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAErC,OAAO,EACL,aAAa,EAOd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKxC;;GAEG;AACH,8BAAsB,kBAAmB,SAAQ,aAAa;IAC5D;;OAEG;IAEH,WAAW,SAAM;IAEjB;;OAEG;IAEH,IAAI,SAAM;IAEV;;OAEG;IAEH,gBAAgB,EAAE,cAAc,CAAS;IAEzC,SAAS,CAAC,MAAM,EACZ,gBAAgB,GAChB,mBAAmB,GACnB,iBAAiB,GACjB,OAAO,CAAC;IAEZ,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAgB,MAAM,EAAE,cAAc,CAGpC;IAEO,YAAY,IAAI,IAAI;IAO7B,KAAK,IAAI,IAAI;IAIb,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAuBrC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IActC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWrC,iCAAiC,CAAC,MAAM,EAAE,OAAO;IAO1D,SAAS,CAAC,eAAe,IAAI,MAAM;CAgBpC"}
@@ -70,7 +70,6 @@ const _PdBaseInputElement = class _PdBaseInputElement extends PdBaseUIInput {
70
70
  );
71
71
  }
72
72
  _handleStatusForInnerInputElement(status) {
73
- console.log("Override date handle:", this._input, status);
74
73
  if (this._inputType === INPUT_TYPE_DATE && this._input) {
75
74
  this._input.error = !status;
76
75
  this._input.valid = status;
@@ -323,7 +323,7 @@ const _PdBaseUIInput = class _PdBaseUIInput extends PdBaseUI {
323
323
  return Promise.resolve(true);
324
324
  });
325
325
  }
326
- if (this._inputType === INPUT_TYPE_DATE) {
326
+ if (this._inputType === INPUT_TYPE_DATE && !dryRun) {
327
327
  this._handleStatusForInnerInputElement(true);
328
328
  }
329
329
  return Promise.resolve(true);
@@ -0,0 +1,13 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { PdBaseUI } from './pd-base-ui';
3
+ import { ButtonData } from './types';
4
+ export declare class PdButtonGroup extends PdBaseUI {
5
+ buttonList: ButtonData[];
6
+ initValue: number[];
7
+ private _selectedButtons;
8
+ static styles: CSSResultGroup;
9
+ willUpdate(changedProps: Map<string, unknown>): void;
10
+ render(): import('lit-html').TemplateResult<1>;
11
+ private onClick;
12
+ }
13
+ //# sourceMappingURL=pd-button-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-button-group.d.ts","sourceRoot":"","sources":["../src/pd-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,qBACa,aAAc,SAAQ,QAAQ;IAEzC,UAAU,EAAE,UAAU,EAAE,CAAM;IAG9B,SAAS,EAAE,MAAM,EAAE,CAAM;IAGzB,OAAO,CAAC,gBAAgB,CAAgB;IAExC,OAAgB,MAAM,EAAE,cAAc,CAgDpC;IAEO,UAAU,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAMpD,MAAM;IAiBf,OAAO,CAAC,OAAO;CAYhB"}
@@ -0,0 +1,117 @@
1
+ import { css, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { PdBaseUI } from "./pd-base-ui.js";
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __decorateClass = (decorators, target, key, kind) => {
7
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
8
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
+ if (decorator = decorators[i])
10
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11
+ if (kind && result) __defProp(target, key, result);
12
+ return result;
13
+ };
14
+ let PdButtonGroup = class extends PdBaseUI {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.buttonList = [];
18
+ this.initValue = [];
19
+ this._selectedButtons = [];
20
+ }
21
+ willUpdate(changedProps) {
22
+ if (changedProps.has("initValue")) {
23
+ this._selectedButtons = [...this.initValue];
24
+ }
25
+ }
26
+ render() {
27
+ return html`
28
+ <div class="button-group">
29
+ ${this.buttonList.map(
30
+ (data, index) => html`
31
+ <pd-icon-panel-button
32
+ ?selected="${this._selectedButtons.includes(index)}"
33
+ buttonText="${data.text || ""}"
34
+ pdButtonIcon="${data.pdIcon || ""}"
35
+ @button-clicked="${() => this.onClick(index)}"
36
+ ></pd-icon-panel-button>
37
+ `
38
+ )}
39
+ </div>
40
+ `;
41
+ }
42
+ onClick(index) {
43
+ if (this._selectedButtons.includes(index)) return;
44
+ this._selectedButtons = [index];
45
+ this.dispatchEvent(
46
+ new CustomEvent("pd-button-group-change", {
47
+ detail: { selected: this._selectedButtons },
48
+ bubbles: true,
49
+ composed: true
50
+ })
51
+ );
52
+ }
53
+ };
54
+ PdButtonGroup.styles = [
55
+ PdBaseUI.styles,
56
+ css`
57
+ :host {
58
+ --group-direction: var(--pd-button-group-direction, row);
59
+ --group-border-radius: var(--pd-border-radius, 0.5rem);
60
+ --group-width: var(--pd-button-group-width, auto);
61
+ --pd-icon-button-border-radius: 0;
62
+ }
63
+
64
+ .button-group {
65
+ display: flex;
66
+ flex-direction: var(--group-direction);
67
+ width: var(--group-width);
68
+ }
69
+
70
+ .button-group pd-icon-panel-button {
71
+ flex: 1 1 auto;
72
+ margin: 0;
73
+ border-radius: 0;
74
+ border: none;
75
+ }
76
+
77
+ .button-group pd-icon-panel-button:first-child {
78
+ border-top-left-radius: var(--group-border-radius);
79
+ border-bottom-left-radius: var(--group-border-radius);
80
+ }
81
+
82
+ .button-group pd-icon-panel-button:last-child {
83
+ border-top-right-radius: var(--group-border-radius);
84
+ border-bottom-right-radius: var(--group-border-radiusm);
85
+ }
86
+
87
+ /* Optional: für vertikale Ausrichtung spezifisch abrunden */
88
+ :host([vertical]) .button-group pd-icon-panel-button:first-child {
89
+ border-top-left-radius: var(--group-border-radius);
90
+ border-top-right-radius: var(--group-border-radius);
91
+ border-bottom-left-radius: 0;
92
+ border-bottom-right-radius: 0;
93
+ }
94
+
95
+ :host([vertical]) .button-group pd-icon-panel-button:last-child {
96
+ border-bottom-left-radius: var(--group-border-radius);
97
+ border-bottom-right-radius: var(--group-border-radius);
98
+ border-top-left-radius: 0;
99
+ border-top-right-radius: 0;
100
+ }
101
+ `
102
+ ];
103
+ __decorateClass([
104
+ property({ type: Array })
105
+ ], PdButtonGroup.prototype, "buttonList", 2);
106
+ __decorateClass([
107
+ property({ type: Array })
108
+ ], PdButtonGroup.prototype, "initValue", 2);
109
+ __decorateClass([
110
+ state()
111
+ ], PdButtonGroup.prototype, "_selectedButtons", 2);
112
+ PdButtonGroup = __decorateClass([
113
+ customElement("pd-button-group")
114
+ ], PdButtonGroup);
115
+ export {
116
+ PdButtonGroup
117
+ };
@@ -0,0 +1,12 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { PdBaseUI } from './pd-base-ui';
3
+ import { ButtonData } from './types.js';
4
+ export declare class PdIconButtonSelectGroup extends PdBaseUI {
5
+ options: ButtonData[];
6
+ initValue: number;
7
+ private _selectedValue;
8
+ static styles: CSSResultGroup;
9
+ render(): import('lit-html').TemplateResult<1> | "";
10
+ private handleSelectionChange;
11
+ }
12
+ //# sourceMappingURL=pd-icon-button-select-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-icon-button-select-group.d.ts","sourceRoot":"","sources":["../src/pd-icon-button-select-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,wBAAwB,CAAC;AAChC,OAAO,mBAAmB,CAAC;AAE3B,qBACa,uBAAwB,SAAQ,QAAQ;IAEnD,OAAO,EAAE,UAAU,EAAE,CAAM;IAG3B,SAAS,EAAE,MAAM,CAAM;IAGvB,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAgB,MAAM,EAAE,cAAc,CAapC;IAEO,MAAM;IAuBf,OAAO,CAAC,qBAAqB;CAc9B"}
@@ -0,0 +1,86 @@
1
+ import { css, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { PdBaseUI } from "./pd-base-ui.js";
4
+ import "./pd-icon-panel-button.js";
5
+ import "./pd-button-group.js";
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
+ var __decorateClass = (decorators, target, key, kind) => {
9
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
10
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
11
+ if (decorator = decorators[i])
12
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
13
+ if (kind && result) __defProp(target, key, result);
14
+ return result;
15
+ };
16
+ let PdIconButtonSelectGroup = class extends PdBaseUI {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.options = [];
20
+ this.initValue = -1;
21
+ this._selectedValue = this.initValue;
22
+ }
23
+ render() {
24
+ if (!this.options || this.options.length === 0) {
25
+ return "";
26
+ }
27
+ const selectedData = this.options[this._selectedValue === -1 ? 0 : this._selectedValue];
28
+ return html`
29
+ <pd-icon-panel-button
30
+ panelButton
31
+ hideClose
32
+ .buttonText=${(selectedData == null ? void 0 : selectedData.text) ?? ""}
33
+ .pdButtonIcon=${(selectedData == null ? void 0 : selectedData.pdIcon) ?? ""}
34
+ >
35
+ <pd-button-group
36
+ class="button-group-style"
37
+ .buttonList=${this.options}
38
+ .initValue=${[this._selectedValue]}
39
+ @pd-button-group-change=${this.handleSelectionChange}
40
+ ></pd-button-group>
41
+ </pd-icon-panel-button>
42
+ `;
43
+ }
44
+ handleSelectionChange(e) {
45
+ const [newIndex] = e.detail.selected;
46
+ this._selectedValue = newIndex;
47
+ e.stopPropagation();
48
+ window.dispatchEvent(new Event("close-button-panel-event"));
49
+ this.dispatchEvent(
50
+ new CustomEvent("pd-button-selection-changed", {
51
+ detail: { selected: newIndex },
52
+ bubbles: true,
53
+ composed: true
54
+ })
55
+ );
56
+ }
57
+ };
58
+ PdIconButtonSelectGroup.styles = [
59
+ PdBaseUI.styles,
60
+ css`
61
+ :host {
62
+ display: block;
63
+ position: relative;
64
+ --pd-icon-panel-button-panel-padding: 0px;
65
+ }
66
+
67
+ .button-group-style {
68
+ --pd-button-group-direction: column;
69
+ }
70
+ `
71
+ ];
72
+ __decorateClass([
73
+ property({ type: Array })
74
+ ], PdIconButtonSelectGroup.prototype, "options", 2);
75
+ __decorateClass([
76
+ property({ type: Number })
77
+ ], PdIconButtonSelectGroup.prototype, "initValue", 2);
78
+ __decorateClass([
79
+ state()
80
+ ], PdIconButtonSelectGroup.prototype, "_selectedValue", 2);
81
+ PdIconButtonSelectGroup = __decorateClass([
82
+ customElement("pd-icon-button-select-group")
83
+ ], PdIconButtonSelectGroup);
84
+ export {
85
+ PdIconButtonSelectGroup
86
+ };
@@ -6,7 +6,9 @@ export declare class PdIconPanelButton extends PdBaseUI {
6
6
  value?: string;
7
7
  panelButton: boolean;
8
8
  loading: boolean;
9
+ selected: boolean;
9
10
  disableOnClickTime: number;
11
+ hideClose: boolean;
10
12
  private _timerDisabled;
11
13
  private _panelOpen;
12
14
  static styles: CSSResultGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"pd-icon-panel-button.d.ts","sourceRoot":"","sources":["../src/pd-icon-panel-button.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,qBACa,iBAAkB,SAAQ,QAAQ;IAE7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAQ;IAG1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,OAAO,CAAS;IAG7B,OAAO,EAAE,OAAO,CAAS;IAGzB,kBAAkB,EAAE,MAAM,CAAM;IAGhC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAgB,MAAM,EAAE,cAAc,CA+KpC;IAEF,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,WAAW,CAEjB;IAGF,MAAM;IAkCN,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;CAQrB"}
1
+ {"version":3,"file":"pd-icon-panel-button.d.ts","sourceRoot":"","sources":["../src/pd-icon-panel-button.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,0CAA0C,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAOxC,qBACa,iBAAkB,SAAQ,QAAQ;IAE7C,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,UAAU,EAAE,MAAM,CAAQ;IAG1B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,OAAO,CAAS;IAG7B,OAAO,EAAE,OAAO,CAAS;IAGzB,QAAQ,EAAE,OAAO,CAAS;IAG1B,kBAAkB,EAAE,MAAM,CAAM;IAGhC,SAAS,EAAE,OAAO,CAAS;IAI3B,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAgB,MAAM,EAAE,cAAc,CA+LpC;IAEF,iBAAiB;IAKjB,oBAAoB;IAKpB,OAAO,CAAC,WAAW,CAEjB;IAGF,MAAM;IA6CN,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;CAQrB"}
@@ -3,6 +3,7 @@ import { property, state, customElement } from "lit/decorators.js";
3
3
  import "@progressive-development/pd-icon/pd-icon";
4
4
  import { PdBaseUI } from "./pd-base-ui.js";
5
5
  import { PdColorStyles, PdFontStyles } from "@progressive-development/pd-shared-styles";
6
+ import { pdIcons } from "@progressive-development/pd-icon";
6
7
  var __defProp = Object.defineProperty;
7
8
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
9
  var __decorateClass = (decorators, target, key, kind) => {
@@ -19,7 +20,9 @@ let PdIconPanelButton = class extends PdBaseUI {
19
20
  this.buttonText = "Ok";
20
21
  this.panelButton = false;
21
22
  this.loading = false;
23
+ this.selected = false;
22
24
  this.disableOnClickTime = -1;
25
+ this.hideClose = false;
23
26
  this._timerDisabled = false;
24
27
  this._panelOpen = false;
25
28
  this._closePanel = () => {
@@ -52,12 +55,19 @@ let PdIconPanelButton = class extends PdBaseUI {
52
55
  ></pd-icon>
53
56
  ` : ""}
54
57
  <span>${this.buttonText}</span>
58
+ ${this.panelButton ? html` <pd-icon
59
+ icon=${pdIcons.ICON_TOOGLE_ARROW}
60
+ ?activeIcon=${!this._panelOpen}
61
+ class="small toggle-button"
62
+ ></pd-icon>` : ""}
55
63
  </div>
56
64
 
57
65
  <div class="panel ${this._panelOpen ? "open" : ""}">
58
- <button class="close-button" @click="${this._togglePanel}">
59
- &times;
60
- </button>
66
+ ${this.hideClose ? "" : html`
67
+ <button class="close-button" @click="${this._togglePanel}">
68
+ &times;
69
+ </button>
70
+ `}
61
71
  <div class="panel-content">
62
72
  <slot></slot>
63
73
  </div>
@@ -203,7 +213,7 @@ PdIconPanelButton.styles = [
203
213
  }
204
214
 
205
215
  .panel-content {
206
- padding: 1rem;
216
+ padding: var(--pd-icon-panel-button-panel-padding, 1rem);
207
217
  min-height: 50px;
208
218
  }
209
219
 
@@ -264,6 +274,22 @@ PdIconPanelButton.styles = [
264
274
  margin-right: 1rem;
265
275
  }
266
276
 
277
+ :host([selected]:not([disabled]):not([_timerDisabled]))
278
+ .icon-button-style {
279
+ background-color: var(
280
+ --pd-icon-button-bgcol-selected,
281
+ var(--pd-secondary-col)
282
+ );
283
+ box-shadow:
284
+ inset 0 2px 6px rgba(0, 0, 0, 0.4),
285
+ 0 0 0 2px rgba(0, 0, 0, 0.1);
286
+ text-shadow: none;
287
+ }
288
+
289
+ .toggle-button {
290
+ padding-left: 0.5rem;
291
+ }
292
+
267
293
  @keyframes spin {
268
294
  0% {
269
295
  transform: rotate(0deg);
@@ -289,9 +315,15 @@ __decorateClass([
289
315
  __decorateClass([
290
316
  property({ type: Boolean, reflect: true })
291
317
  ], PdIconPanelButton.prototype, "loading", 2);
318
+ __decorateClass([
319
+ property({ type: Boolean, reflect: true })
320
+ ], PdIconPanelButton.prototype, "selected", 2);
292
321
  __decorateClass([
293
322
  property({ type: Number })
294
323
  ], PdIconPanelButton.prototype, "disableOnClickTime", 2);
324
+ __decorateClass([
325
+ property({ type: Boolean })
326
+ ], PdIconPanelButton.prototype, "hideClose", 2);
295
327
  __decorateClass([
296
328
  property({ type: Boolean, reflect: true })
297
329
  ], PdIconPanelButton.prototype, "_timerDisabled", 2);
@@ -0,0 +1,16 @@
1
+ import { StoryObj } from '@storybook/web-components';
2
+ declare const meta: {
3
+ title: string;
4
+ component: string;
5
+ tags: string[];
6
+ };
7
+ export default meta;
8
+ type Story = StoryObj;
9
+ export declare const DefaultHorizontal: Story;
10
+ export declare const WithInitialSelection: Story;
11
+ export declare const VerticalGroup: Story;
12
+ export declare const NoInitialSelection: Story;
13
+ export declare const EventLogging: Story;
14
+ export declare const IconGroup: Story;
15
+ export declare const VerticalIconGroup: Story;
16
+ //# sourceMappingURL=pd-button-group.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-button-group.stories.d.ts","sourceRoot":"","sources":["../../src/stories/pd-button-group.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,uBAAuB,CAAC;AAS/B,QAAA,MAAM,IAAI;;;;CAIM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAEtB,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAOlC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAIhC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAS1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAWvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAY/B,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { StoryObj } from '@storybook/web-components';
2
+ declare const meta: {
3
+ title: string;
4
+ component: string;
5
+ tags: string[];
6
+ render: (args: import('@storybook/web-components').Args) => import('lit-html').TemplateResult<1>;
7
+ argTypes: {
8
+ initValue: {
9
+ control: "number";
10
+ };
11
+ options: {
12
+ control: "object";
13
+ };
14
+ };
15
+ };
16
+ export default meta;
17
+ type Story = StoryObj;
18
+ export declare const Default: Story;
19
+ export declare const InitSelectionSecond: Story;
20
+ //# sourceMappingURL=pd-icon-button-select-group.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-icon-button-select-group.stories.d.ts","sourceRoot":"","sources":["../../src/stories/pd-icon-button-select-group.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,mCAAmC,CAAC;AAG3C,QAAA,MAAM,IAAI;;;;;;;;;;;;;CAeM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAQtB,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAQjC,CAAC"}
@@ -30,4 +30,5 @@ export declare const PanelButtonWithContent: Story;
30
30
  export declare const PanelButtonWithContentRight: Story;
31
31
  export declare const PanelButtonWithContentUp: Story;
32
32
  export declare const PanelButtonWithContentRightUp: Story;
33
+ export declare const ButtonSelected: Story;
33
34
  //# sourceMappingURL=pd-icon-button.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pd-icon-button.stories.d.ts","sourceRoot":"","sources":["../../src/stories/pd-icon-button.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,4BAA4B,CAAC;AAGpC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;CAuBM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAGtB,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAQvC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,KAQ5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,KAS9C,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,KAMnC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,KAgBpC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,KAiBzC,CAAC;AAGF,eAAO,MAAM,wBAAwB,EAAE,KAiBtC,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,KAkB3C,CAAC"}
1
+ {"version":3,"file":"pd-icon-button.stories.d.ts","sourceRoot":"","sources":["../../src/stories/pd-icon-button.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,4BAA4B,CAAC;AAGpC,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;CAuBM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAGtB,eAAO,MAAM,aAAa,EAAE,KAK3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAQvC,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,KAQ5C,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,KAQtC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,KAS9C,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,KAMnC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,KAgBpC,CAAC;AAGF,eAAO,MAAM,2BAA2B,EAAE,KAiBzC,CAAC;AAGF,eAAO,MAAM,wBAAwB,EAAE,KAiBtC,CAAC;AAGF,eAAO,MAAM,6BAA6B,EAAE,KAkB3C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAuB5B,CAAC"}
package/dist/types.d.ts CHANGED
@@ -17,6 +17,10 @@ export interface PdFormElementStatus {
17
17
  export type PdFormValidatorFn = (value: any) => string | null | Promise<string | null>;
18
18
  export type PdFieldType = "text" | "number" | "mail" | "vat" | "phone";
19
19
  export declare const UNDEF = "UNDEF";
20
+ export interface ButtonData {
21
+ text?: string;
22
+ pdIcon?: string;
23
+ }
20
24
  /**
21
25
  * MDN-konforme Autocomplete-Werte.
22
26
  * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,GAAG,KACP,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvE,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,KAAK,GACL,MAAM,GACN,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,OAAO,GACP,oBAAoB,GACpB,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,aAAa,GACb,KAAK,GACL,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,WAAW,GACX,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,KAAK,GACL,KAAK,GACL,OAAO,GACP,SAAS,GACT,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,cAAc,GACd,aAAa,GACb,QAAQ,GACR,SAAS,GACT,sBAAsB,GACtB,oBAAoB,GACpB,UAAU,GACV,eAAe,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAC9B,KAAK,EAAE,GAAG,KACP,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAEvE,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,KAAK,GACL,MAAM,GACN,kBAAkB,GAClB,YAAY,GACZ,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,UAAU,GACV,UAAU,GACV,cAAc,GACd,kBAAkB,GAClB,OAAO,GACP,oBAAoB,GACpB,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,aAAa,GACb,KAAK,GACL,kBAAkB,GAClB,cAAc,GACd,eAAe,GACf,WAAW,GACX,MAAM,GACN,UAAU,GACV,YAAY,GACZ,WAAW,GACX,KAAK,GACL,KAAK,GACL,OAAO,GACP,SAAS,GACT,eAAe,GACf,oBAAoB,GACpB,gBAAgB,GAChB,WAAW,GACX,QAAQ,GACR,cAAc,GACd,aAAa,GACb,QAAQ,GACR,SAAS,GACT,sBAAsB,GACtB,oBAAoB,GACpB,UAAU,GACV,eAAe,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progressive-development/pd-forms",
3
- "version": "0.7.8",
3
+ "version": "0.7.10t",
4
4
  "description": "Webcomponent pd-forms for rendering form input elements.",
5
5
  "author": "PD Progressive Development",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -10,7 +10,9 @@
10
10
  "exports": {
11
11
  ".": "./dist/index.js",
12
12
  "./pd-button": "./dist/pd-button.js",
13
+ "./pd-button-group": "./dist/pd-button-group.js",
13
14
  "./pd-icon-panel-button": "./dist/pd-icon-panel-button.js",
15
+ "./pd-icon-button-select-group": "./dist/pd-icon-button-select-group.js",
14
16
  "./pd-checkbox": "./dist/pd-checkbox.js",
15
17
  "./pd-form-container": "./dist/pd-form-container.js",
16
18
  "./pd-form-row": "./dist/pd-form-row.js",