@progressive-development/pd-forms 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 (72) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -0
  4. package/dist/pd-button/PdButton.d.ts +8 -0
  5. package/dist/pd-button/PdButton.d.ts.map +1 -1
  6. package/dist/pd-button/PdButton.js +23 -0
  7. package/dist/pd-color-picker/PdColorPicker.d.ts +25 -0
  8. package/dist/pd-color-picker/PdColorPicker.d.ts.map +1 -0
  9. package/dist/pd-color-picker/PdColorPicker.js +238 -0
  10. package/dist/pd-color-picker/pd-color-picker.d.ts +3 -0
  11. package/dist/pd-color-picker/pd-color-picker.d.ts.map +1 -0
  12. package/dist/pd-color-picker.d.ts +2 -0
  13. package/dist/pd-color-picker.js +8 -0
  14. package/dist/pd-generic-form/PdGenericForm.d.ts +1 -0
  15. package/dist/pd-generic-form/PdGenericForm.d.ts.map +1 -1
  16. package/dist/pd-generic-form/PdGenericForm.js +12 -2
  17. package/dist/pd-generic-form/pd-generic-form.styles.d.ts.map +1 -1
  18. package/dist/pd-generic-form/pd-generic-form.styles.js +12 -5
  19. package/dist/pd-input-image/PdInputImage.d.ts +79 -0
  20. package/dist/pd-input-image/PdInputImage.d.ts.map +1 -0
  21. package/dist/pd-input-image/PdInputImage.js +553 -0
  22. package/dist/pd-input-image/pd-input-image.d.ts +4 -0
  23. package/dist/pd-input-image/pd-input-image.d.ts.map +1 -0
  24. package/dist/pd-input-image/pd-input-image.styles.d.ts +6 -0
  25. package/dist/pd-input-image/pd-input-image.styles.d.ts.map +1 -0
  26. package/dist/pd-input-image/pd-input-image.styles.js +300 -0
  27. package/dist/pd-input-image.d.ts +2 -0
  28. package/dist/pd-input-image.js +8 -0
  29. package/dist/pd-range/PdRange.d.ts +2 -0
  30. package/dist/pd-range/PdRange.d.ts.map +1 -1
  31. package/dist/pd-range/PdRange.js +11 -7
  32. package/package.json +5 -3
  33. package/dist/pd-button/pd-button.stories.d.ts +0 -84
  34. package/dist/pd-button/pd-button.stories.d.ts.map +0 -1
  35. package/dist/pd-button-group/pd-button-group.stories.d.ts +0 -45
  36. package/dist/pd-button-group/pd-button-group.stories.d.ts.map +0 -1
  37. package/dist/pd-button-select-group/pd-button-select-group.stories.d.ts +0 -46
  38. package/dist/pd-button-select-group/pd-button-select-group.stories.d.ts.map +0 -1
  39. package/dist/pd-checkbox/pd-checkbox.stories.d.ts +0 -45
  40. package/dist/pd-checkbox/pd-checkbox.stories.d.ts.map +0 -1
  41. package/dist/pd-form-container/pd-form-container.stories.d.ts +0 -49
  42. package/dist/pd-form-container/pd-form-container.stories.d.ts.map +0 -1
  43. package/dist/pd-form-field/pd-form-field.stories.d.ts +0 -40
  44. package/dist/pd-form-field/pd-form-field.stories.d.ts.map +0 -1
  45. package/dist/pd-form-fieldset/pd-form-fieldset.stories.d.ts +0 -38
  46. package/dist/pd-form-fieldset/pd-form-fieldset.stories.d.ts.map +0 -1
  47. package/dist/pd-form-row/pd-form-row.stories.d.ts +0 -43
  48. package/dist/pd-form-row/pd-form-row.stories.d.ts.map +0 -1
  49. package/dist/pd-generic-form/pd-generic-form.stories.d.ts +0 -35
  50. package/dist/pd-generic-form/pd-generic-form.stories.d.ts.map +0 -1
  51. package/dist/pd-hover-box/pd-hover-box.stories.d.ts +0 -31
  52. package/dist/pd-hover-box/pd-hover-box.stories.d.ts.map +0 -1
  53. package/dist/pd-input/pd-input.stories.d.ts +0 -73
  54. package/dist/pd-input/pd-input.stories.d.ts.map +0 -1
  55. package/dist/pd-input-area/pd-input-area.stories.d.ts +0 -67
  56. package/dist/pd-input-area/pd-input-area.stories.d.ts.map +0 -1
  57. package/dist/pd-input-file/pd-input-file.stories.d.ts +0 -53
  58. package/dist/pd-input-file/pd-input-file.stories.d.ts.map +0 -1
  59. package/dist/pd-input-time/pd-input-time.stories.d.ts +0 -94
  60. package/dist/pd-input-time/pd-input-time.stories.d.ts.map +0 -1
  61. package/dist/pd-panel-button/pd-panel-button.stories.d.ts +0 -57
  62. package/dist/pd-panel-button/pd-panel-button.stories.d.ts.map +0 -1
  63. package/dist/pd-radio-group/pd-radio-group.stories.d.ts +0 -39
  64. package/dist/pd-radio-group/pd-radio-group.stories.d.ts.map +0 -1
  65. package/dist/pd-range/pd-range.stories.d.ts +0 -51
  66. package/dist/pd-range/pd-range.stories.d.ts.map +0 -1
  67. package/dist/pd-select/pd-select.stories.d.ts +0 -58
  68. package/dist/pd-select/pd-select.stories.d.ts.map +0 -1
  69. package/dist/pd-suggestion-box/pd-suggestion-box.stories.d.ts +0 -79
  70. package/dist/pd-suggestion-box/pd-suggestion-box.stories.d.ts.map +0 -1
  71. package/dist/stories/pd-forms-overview.stories.d.ts +0 -48
  72. package/dist/stories/pd-forms-overview.stories.d.ts.map +0 -1
package/dist/index.d.ts CHANGED
@@ -3,14 +3,18 @@ export { PdFormField } from './pd-form-field/pd-form-field.js';
3
3
  export { PdFormFieldset } from './pd-form-fieldset/pd-form-fieldset.js';
4
4
  export { PdButton } from './pd-button/pd-button.js';
5
5
  export { PdCheckbox } from './pd-checkbox/pd-checkbox.js';
6
+ export { PdColorPicker } from './pd-color-picker/pd-color-picker.js';
6
7
  export { PdFormContainer } from './pd-form-container/pd-form-container.js';
7
8
  export { PdHoverBox } from './pd-hover-box/pd-hover-box.js';
8
9
  export { PdInput } from './pd-input/pd-input.js';
9
10
  export { PdInputArea } from './pd-input-area/pd-input-area.js';
10
11
  export { PdInputFile } from './pd-input-file/pd-input-file.js';
12
+ export { PdInputImage } from './pd-input-image/pd-input-image.js';
13
+ export type { ImageSelection } from './pd-input-image/pd-input-image.js';
11
14
  export { PdInputTime } from './pd-input-time/pd-input-time.js';
12
15
  export { PdRadioGroup } from './pd-radio-group/pd-radio-group.js';
13
16
  export { PdBaseInputElement } from './base/pd-base-input-element.js';
17
+ export { PdBaseUIInput } from './base/pd-base-ui-input.js';
14
18
  export { PdGenericForm } from './pd-generic-form/pd-generic-form.js';
15
19
  export type { PdAutocomplete, PdSelectOption, PdFieldType, PdFormElementStatus, PdFormValidatorFn, ButtonData, SuggestedElement, } from './types.js';
16
20
  export { UNDEF } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,YAAY,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,gBAAgB,GACjB,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
@@ -3,14 +3,17 @@ import './pd-form-field.js';
3
3
  import './pd-form-fieldset/pd-form-fieldset.js';
4
4
  import './pd-button.js';
5
5
  import './pd-checkbox.js';
6
+ import './pd-color-picker.js';
6
7
  import './pd-form-container.js';
7
8
  import './pd-hover-box.js';
8
9
  import './pd-input.js';
9
10
  import './pd-input-area.js';
10
11
  import './pd-input-file.js';
12
+ import './pd-input-image.js';
11
13
  import './pd-input-time.js';
12
14
  import './pd-radio-group.js';
13
15
  export { PdBaseInputElement } from './base/pd-base-input-element.js';
16
+ export { PdBaseUIInput } from './base/pd-base-ui-input.js';
14
17
  import './pd-generic-form.js';
15
18
  export { UNDEF } from './types.js';
16
19
  import * as validators from './validators.js';
@@ -20,6 +23,7 @@ export { templates as deTemplates } from './locales/de.js';
20
23
  export { templates as enTemplates } from './locales/en.js';
21
24
  export { PdButton } from './pd-button/PdButton.js';
22
25
  export { PdCheckbox } from './pd-checkbox/PdCheckbox.js';
26
+ export { PdColorPicker } from './pd-color-picker/PdColorPicker.js';
23
27
  export { PdFormContainer } from './pd-form-container/PdFormContainer.js';
24
28
  export { PdFormField } from './pd-form-field/PdFormField.js';
25
29
  export { PdFormFieldset } from './pd-form-fieldset/PdFormFieldset.js';
@@ -29,5 +33,6 @@ export { PdHoverBox } from './pd-hover-box/PdHoverBox.js';
29
33
  export { PdInput } from './pd-input/PdInput.js';
30
34
  export { PdInputArea } from './pd-input-area/PdInputArea.js';
31
35
  export { PdInputFile } from './pd-input-file/PdInputFile.js';
36
+ export { PdInputImage } from './pd-input-image/PdInputImage.js';
32
37
  export { PdInputTime } from './pd-input-time/PdInputTime.js';
33
38
  export { PdRadioGroup } from './pd-radio-group/PdRadioGroup.js';
@@ -53,6 +53,9 @@ export type PdButtonType = "button" | "submit" | "reset";
53
53
  * @cssprop --pd-button-icon-size - Icon size.
54
54
  * @cssprop --pd-button-white-space - Text wrapping behavior. Default: `nowrap`.
55
55
  * @cssprop --pd-button-font-weight - Font weight for button text. Default: `600`.
56
+ * @cssprop --pd-button-outline-border-col - Outline variant border color.
57
+ * @cssprop --pd-button-outline-font-col - Outline variant text color.
58
+ * @cssprop --pd-button-outline-bg-col-hover - Outline variant hover background.
56
59
  */
57
60
  export declare class PdButton extends PdBaseUI {
58
61
  /**
@@ -65,6 +68,11 @@ export declare class PdButton extends PdBaseUI {
65
68
  * Customize gradient colors via `--pd-button-gradient-start` and `--pd-button-gradient-end`.
66
69
  */
67
70
  gradient: boolean;
71
+ /**
72
+ * Displays the button with outline styling — transparent background, dashed border.
73
+ * Use for add/action triggers like "Add field" or "Add step".
74
+ */
75
+ outline: boolean;
68
76
  /**
69
77
  * Indicates toggle/selected state for toggle buttons.
70
78
  * When true, the button displays with selected styling and sets `aria-pressed="true"`.
@@ -1 +1 @@
1
- {"version":3,"file":"PdButton.d.ts","sourceRoot":"","sources":["../../src/pd-button/PdButton.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAa,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,0CAA0C,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IAKpC;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,SAAS,UAAS;IAElB;;;;OAIG;IAEH,IAAI,SAAQ;IAEZ;;;;OAIG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IAEH,YAAY,EAAE,OAAO,GAAG,KAAK,CAAW;IAExC;;OAEG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IAEH,IAAI,EAAE,YAAY,CAAQ;IAE1B;;;OAGG;IAEH,IAAI,EAAE,YAAY,CAAY;IAE9B;;;;OAIG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd;iBACa;IAEb,OAAO,CAAC,UAAU,CAAS;IAM3B,OAAgB,MAAM,EAAE,cAAc,CA2VpC;IAMO,MAAM;IAgEf;;;OAGG;IACH,SAAS,KAAK,kBAAkB,IAAI,MAAM,GAAG,OAAO,GAAG,WAAW,CAEjE;IAED;;;OAGG;IACH,SAAS,KAAK,kBAAkB,IAC5B,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,CAEX;IAED;;;OAGG;IACH,SAAS,KAAK,kBAAkB,IAAI,MAAM,GAAG,OAAO,OAAO,CAE1D;IAED;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;IAIhE;;;OAGG;IACH,SAAS,CAAC,iBAAiB,IAAI,cAAc,GAAG,OAAO,OAAO;IAI9D;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;IAWvD;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAM7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAS3B"}
1
+ {"version":3,"file":"PdButton.d.ts","sourceRoot":"","sources":["../../src/pd-button/PdButton.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAa,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,0CAA0C,CAAC;AAElD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IAKpC;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;;;OAIG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,SAAS,UAAS;IAElB;;;;OAIG;IAEH,IAAI,SAAQ;IAEZ;;;;OAIG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IAEH,YAAY,EAAE,OAAO,GAAG,KAAK,CAAW;IAExC;;OAEG;IAEH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IAEH,IAAI,EAAE,YAAY,CAAQ;IAE1B;;;OAGG;IAEH,IAAI,EAAE,YAAY,CAAY;IAE9B;;;;OAIG;IAEH,IAAI,CAAC,EAAE,MAAM,CAAC;IAMd;iBACa;IAEb,OAAO,CAAC,UAAU,CAAS;IAM3B,OAAgB,MAAM,EAAE,cAAc,CA8WpC;IAMO,MAAM;IAgEf;;;OAGG;IACH,SAAS,KAAK,kBAAkB,IAAI,MAAM,GAAG,OAAO,GAAG,WAAW,CAEjE;IAED;;;OAGG;IACH,SAAS,KAAK,kBAAkB,IAC5B,MAAM,GACN,OAAO,GACP,MAAM,GACN,SAAS,GACT,MAAM,GACN,MAAM,GACN,QAAQ,CAEX;IAED;;;OAGG;IACH,SAAS,KAAK,kBAAkB,IAAI,MAAM,GAAG,OAAO,OAAO,CAE1D;IAED;;;OAGG;IACH,SAAS,CAAC,mBAAmB,IAAI,cAAc,GAAG,OAAO,OAAO;IAIhE;;;OAGG;IACH,SAAS,CAAC,iBAAiB,IAAI,cAAc,GAAG,OAAO,OAAO;IAI9D;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,cAAc,GAAG,OAAO,OAAO;IAWvD;;;OAGG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;IAM7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -18,6 +18,7 @@ class PdButton extends PdBaseUI {
18
18
  super(...arguments);
19
19
  this.primary = false;
20
20
  this.gradient = false;
21
+ this.outline = false;
21
22
  this.selected = false;
22
23
  this.disabled = false;
23
24
  this.loading = false;
@@ -303,6 +304,25 @@ class PdButton extends PdBaseUI {
303
304
  opacity: 0.9;
304
305
  }
305
306
 
307
+ /* ========================================
308
+ OUTLINE VARIANT
309
+ Transparent bg, dashed border, used for add/action triggers.
310
+ ======================================== */
311
+ :host([outline]) button {
312
+ background: transparent;
313
+ background-image: none;
314
+ border: 1px dashed
315
+ var(--pd-button-outline-border-col, var(--pd-default-col));
316
+ color: var(--pd-button-outline-font-col, var(--pd-default-col));
317
+ text-shadow: none;
318
+ }
319
+ :host([outline]) button:hover:not(:disabled) {
320
+ background: var(
321
+ --pd-button-outline-bg-col-hover,
322
+ var(--pd-default-lightest-col)
323
+ );
324
+ }
325
+
306
326
  /* ========================================
307
327
  DISABLED STATE (matches pd-panel-button)
308
328
  ======================================== */
@@ -545,6 +565,9 @@ __decorateClass([
545
565
  __decorateClass([
546
566
  property({ type: Boolean, reflect: true })
547
567
  ], PdButton.prototype, "gradient");
568
+ __decorateClass([
569
+ property({ type: Boolean, reflect: true })
570
+ ], PdButton.prototype, "outline");
548
571
  __decorateClass([
549
572
  property({ type: Boolean, reflect: true })
550
573
  ], PdButton.prototype, "selected");
@@ -0,0 +1,25 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { PdBaseUIInput } from '../base/pd-base-ui-input.js';
3
+ /**
4
+ * Color picker input component.
5
+ *
6
+ * Renders a native `<input type="color">` with a hex text input and color preview swatch.
7
+ *
8
+ * @tagname pd-color-picker
9
+ * @summary Color picker with hex input and swatch preview.
10
+ *
11
+ * @event pd-form-element-change - Fired when color value changes. Detail: `{ value, name, parsedValue, state }`.
12
+ */
13
+ export declare class PdColorPicker extends PdBaseUIInput {
14
+ /** Placeholder shown in hex text input (without #). */
15
+ placeholder: string;
16
+ private _colorInput;
17
+ private _textInput;
18
+ static styles: CSSResultGroup;
19
+ render(): import('lit').TemplateResult<1>;
20
+ private _onColorInput;
21
+ private _onColorChange;
22
+ private _onHexInput;
23
+ private _onHexBlur;
24
+ }
25
+ //# sourceMappingURL=PdColorPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PdColorPicker.d.ts","sourceRoot":"","sources":["../../src/pd-color-picker/PdColorPicker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D;;;;;;;;;GASG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,uDAAuD;IAEvD,WAAW,SAAY;IAGvB,OAAO,CAAC,WAAW,CAAoB;IAGvC,OAAO,CAAC,UAAU,CAAoB;IAEtC,OAAgB,MAAM,EAAE,cAAc,CAqIpC;IAEO,MAAM;IAwCf,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,UAAU;CAmBnB"}
@@ -0,0 +1,238 @@
1
+ import { css, html } from 'lit';
2
+ import { property, query } from 'lit/decorators.js';
3
+ import { classMap } from 'lit/directives/class-map.js';
4
+ import { PdBaseUIInput } from '../base/pd-base-ui-input.js';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __decorateClass = (decorators, target, key, kind) => {
8
+ var result = void 0 ;
9
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
+ if (decorator = decorators[i])
11
+ result = (decorator(target, key, result) ) || result;
12
+ if (result) __defProp(target, key, result);
13
+ return result;
14
+ };
15
+ class PdColorPicker extends PdBaseUIInput {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.placeholder = "000000";
19
+ }
20
+ static {
21
+ this.styles = [
22
+ PdBaseUIInput.styles,
23
+ css`
24
+ :host {
25
+ display: block;
26
+ }
27
+
28
+ .color-container {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 0.5rem;
32
+ width: var(--pd-input-field-width, 250px);
33
+ max-width: 100%;
34
+ }
35
+
36
+ .color-swatch {
37
+ position: relative;
38
+ width: 42px;
39
+ height: 42px;
40
+ min-width: 42px;
41
+ border-radius: var(--pd-radius-md, 6px);
42
+ border: 2px solid var(--pd-default-light-col, #cbd5e1);
43
+ overflow: hidden;
44
+ cursor: pointer;
45
+ }
46
+
47
+ .color-swatch input[type="color"] {
48
+ position: absolute;
49
+ top: -4px;
50
+ left: -4px;
51
+ width: calc(100% + 8px);
52
+ height: calc(100% + 8px);
53
+ border: none;
54
+ padding: 0;
55
+ cursor: pointer;
56
+ background: none;
57
+ }
58
+
59
+ .color-swatch input[type="color"]::-webkit-color-swatch-wrapper {
60
+ padding: 0;
61
+ }
62
+
63
+ .color-swatch input[type="color"]::-webkit-color-swatch {
64
+ border: none;
65
+ }
66
+
67
+ .color-swatch input[type="color"]::-moz-color-swatch {
68
+ border: none;
69
+ }
70
+
71
+ .hex-field {
72
+ flex: 1;
73
+ display: flex;
74
+ align-items: center;
75
+ height: var(--pd-input-field-height, 2.5rem);
76
+ background: var(
77
+ --pd-input-field-bg-col,
78
+ var(--pd-default-bg-col, #fff)
79
+ );
80
+ border: var(
81
+ --pd-input-field-border,
82
+ 1px solid var(--pd-default-light-col, #cbd5e1)
83
+ );
84
+ border-bottom: var(
85
+ --pd-input-field-border-bottom,
86
+ 2px solid var(--pd-default-col, #2563eb)
87
+ );
88
+ border-radius: var(--pd-radius-md, 6px);
89
+ box-sizing: border-box;
90
+ overflow: hidden;
91
+ }
92
+
93
+ .hex-field:focus-within {
94
+ border: var(
95
+ --pd-input-field-border-focus,
96
+ 2px solid var(--pd-default-col, #2563eb)
97
+ );
98
+ }
99
+
100
+ .hex-field.disabled {
101
+ background: var(--pd-input-field-bg-col-disabled, #e9e9e9);
102
+ border-bottom: var(
103
+ --pd-input-field-border-bottom-disabled,
104
+ 2px solid var(--pd-default-disabled-col, #94a3b8)
105
+ );
106
+ cursor: not-allowed;
107
+ }
108
+
109
+ .hex-prefix {
110
+ padding-left: 0.5rem;
111
+ font-family: var(--pd-default-font-input-family, monospace);
112
+ font-size: var(--pd-default-font-input-size, 0.95rem);
113
+ color: var(--pd-default-font-muted-col, #94a3b8);
114
+ user-select: none;
115
+ line-height: 1;
116
+ }
117
+
118
+ .hex-input {
119
+ flex: 1;
120
+ height: 100%;
121
+ padding: var(--pd-input-field-padding, 0.25rem) 0.5rem
122
+ var(--pd-input-field-padding, 0.25rem) 0.25rem;
123
+ font-family: var(--pd-default-font-input-family, monospace);
124
+ font-size: var(--pd-default-font-input-size, 0.95rem);
125
+ color: var(--pd-default-font-input-col, #1e293b);
126
+ background: transparent;
127
+ border: none;
128
+ box-sizing: border-box;
129
+ text-transform: uppercase;
130
+ outline: none;
131
+ }
132
+
133
+ .hex-input:disabled {
134
+ cursor: not-allowed;
135
+ }
136
+
137
+ .color-container.error .hex-field {
138
+ border-color: var(--pd-default-error-col, #ef4444);
139
+ }
140
+
141
+ .color-container.valid .hex-field {
142
+ border-color: var(--pd-default-success-col, #22c55e);
143
+ }
144
+
145
+ .color-swatch.disabled {
146
+ opacity: 0.5;
147
+ cursor: not-allowed;
148
+ }
149
+
150
+ .color-swatch.disabled input[type="color"] {
151
+ pointer-events: none;
152
+ }
153
+ `
154
+ ];
155
+ }
156
+ render() {
157
+ const inputId = `${this.id}ColorPicker`;
158
+ const errorId = `${this.id}Error`;
159
+ const currentColor = this._value || "#000000";
160
+ const displayValue = this._value ? this._value.replace(/^#/, "") : "";
161
+ return html`
162
+ ${this._renderLabel(inputId)}
163
+ <div class="${classMap(this.getClassmap({ "color-container": true }))}">
164
+ <div class="color-swatch ${this.disabled ? "disabled" : ""}">
165
+ <input
166
+ type="color"
167
+ .value="${currentColor}"
168
+ ?disabled="${this.disabled}"
169
+ @input="${this._onColorInput}"
170
+ @change="${this._onColorChange}"
171
+ aria-label="${this.label || "Farbauswahl"}"
172
+ />
173
+ </div>
174
+ <div class="hex-field ${this.disabled ? "disabled" : ""}">
175
+ <span class="hex-prefix">#</span>
176
+ <input
177
+ id="${inputId}"
178
+ type="text"
179
+ class="hex-input"
180
+ .value="${displayValue}"
181
+ placeholder="${this.placeholder}"
182
+ ?disabled="${this.disabled}"
183
+ ?readonly="${this.readonly}"
184
+ maxlength="6"
185
+ @input="${this._onHexInput}"
186
+ @blur="${this._onHexBlur}"
187
+ aria-describedby="${errorId}"
188
+ />
189
+ </div>
190
+ </div>
191
+ ${this._renderErrorMsg(errorId)}
192
+ `;
193
+ }
194
+ _onColorInput(event) {
195
+ const input = event.target;
196
+ this._handleChangedValue(input.value, event, true);
197
+ }
198
+ _onColorChange(event) {
199
+ const input = event.target;
200
+ this._handleChangedValue(input.value, event, true);
201
+ }
202
+ _onHexInput(event) {
203
+ const input = event.target;
204
+ const raw = input.value.replace(/#/g, "").trim();
205
+ if (raw === "") {
206
+ this._handleChangedValue("", event, true);
207
+ return;
208
+ }
209
+ if (/^[0-9a-fA-F]{6}$/.test(raw)) {
210
+ this._handleChangedValue("#" + raw.toLowerCase(), event, true);
211
+ }
212
+ }
213
+ _onHexBlur(event) {
214
+ const input = event.target;
215
+ const raw = input.value.replace(/#/g, "").trim();
216
+ if (raw === "") {
217
+ this._handleChangedValue("", event, true);
218
+ return;
219
+ }
220
+ if (/^[0-9a-fA-F]{6}$/.test(raw)) {
221
+ this._handleChangedValue("#" + raw.toLowerCase(), event, true);
222
+ } else if (/^[0-9a-fA-F]{3}$/.test(raw)) {
223
+ const expanded = "#" + raw[0] + raw[0] + raw[1] + raw[1] + raw[2] + raw[2];
224
+ this._handleChangedValue(expanded.toLowerCase(), event, true);
225
+ }
226
+ }
227
+ }
228
+ __decorateClass([
229
+ property({ type: String })
230
+ ], PdColorPicker.prototype, "placeholder");
231
+ __decorateClass([
232
+ query('input[type="color"]')
233
+ ], PdColorPicker.prototype, "_colorInput");
234
+ __decorateClass([
235
+ query('input[type="text"]')
236
+ ], PdColorPicker.prototype, "_textInput");
237
+
238
+ export { PdColorPicker };
@@ -0,0 +1,3 @@
1
+ import { PdColorPicker } from './PdColorPicker.js';
2
+ export { PdColorPicker };
3
+ //# sourceMappingURL=pd-color-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-color-picker.d.ts","sourceRoot":"","sources":["../../src/pd-color-picker/pd-color-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './pd-color-picker/pd-color-picker'
2
+ export {}
@@ -0,0 +1,8 @@
1
+ import { PdColorPicker } from './pd-color-picker/PdColorPicker.js';
2
+
3
+ const tag = "pd-color-picker";
4
+ if (!customElements.get(tag)) {
5
+ customElements.define(tag, PdColorPicker);
6
+ }
7
+
8
+ export { PdColorPicker };
@@ -18,6 +18,7 @@ export declare class PdGenericForm extends LitElement {
18
18
  disconnectedCallback(): void;
19
19
  private _onFieldChange;
20
20
  private _isVisible;
21
+ private _valuesMatch;
21
22
  /**
22
23
  * Extracts schema fields from raw form values
23
24
  * and converts them into typed SchemaFieldData.
@@ -1 +1 @@
1
- {"version":3,"file":"PdGenericForm.d.ts","sourceRoot":"","sources":["../../src/pd-generic-form/PdGenericForm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAKb,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAM7D,KAAK,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AACxC,KAAK,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;AAIhD,OAAO,+BAA+B,CAAC;AACvC,OAAO,yCAAyC,CAAC;AACjD,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AAInC,qBAAa,aAAc,SAAQ,UAAU;IAC3C,4CAA4C;IAE5C,MAAM,EAAE,WAAW,EAAE,CAAM;IAE3B,oCAAoC;IAEpC,IAAI,EAAE,eAAe,CAAM;IAE3B,0DAA0D;IAE1D,IAAI,EAAE,MAAM,GAAG,MAAM,CAAU;IAE/B,wCAAwC;IAExC,QAAQ,EAAE,OAAO,CAAS;IAE1B,iEAAiE;IAEjE,OAAO,CAAC,WAAW,CAA+B;IAElD,OAAgB,MAAM,EAAE,cAAc,CAAyB;IAEtD,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAQrC,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,UAAU;IAclB;;;;;OAKG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;IAyB5E,OAAO,CAAC,aAAa;cAqBF,MAAM,IAAI,cAAc;IAM3C,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,WAAW;IAYnB,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,aAAa,CAM1B;IAEF,mDAAmD;IACnD,OAAO,CAAC,iBAAiB;IAMzB,+CAA+C;IAC/C,OAAO,CAAC,UAAU;IAQlB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAoBvB,oFAAoF;IACpF,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,mBAAmB;CAsB5B"}
1
+ {"version":3,"file":"PdGenericForm.d.ts","sourceRoot":"","sources":["../../src/pd-generic-form/PdGenericForm.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAKb,OAAO,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAM7D,KAAK,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AACxC,KAAK,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;AAIhD,OAAO,+BAA+B,CAAC;AACvC,OAAO,yCAAyC,CAAC;AACjD,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,qCAAqC,CAAC;AAC7C,OAAO,+BAA+B,CAAC;AACvC,OAAO,2BAA2B,CAAC;AAInC,qBAAa,aAAc,SAAQ,UAAU;IAC3C,4CAA4C;IAE5C,MAAM,EAAE,WAAW,EAAE,CAAM;IAE3B,oCAAoC;IAEpC,IAAI,EAAE,eAAe,CAAM;IAE3B,0DAA0D;IAE1D,IAAI,EAAE,MAAM,GAAG,MAAM,CAAU;IAE/B,wCAAwC;IAExC,QAAQ,EAAE,OAAO,CAAS;IAE1B,iEAAiE;IAEjE,OAAO,CAAC,WAAW,CAA+B;IAElD,OAAgB,MAAM,EAAE,cAAc,CAAyB;IAEtD,iBAAiB,IAAI,IAAI;IAQzB,oBAAoB,IAAI,IAAI;IAQrC,OAAO,CAAC,cAAc,CAKpB;IAEF,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,YAAY;IAapB;;;;;OAKG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;IAyB5E,OAAO,CAAC,aAAa;cAqBF,MAAM,IAAI,cAAc;IAM3C,OAAO,CAAC,WAAW;IA8BnB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,WAAW;IAYnB,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,aAAa,CAM1B;IAEF,mDAAmD;IACnD,OAAO,CAAC,iBAAiB;IAMzB,+CAA+C;IAC/C,OAAO,CAAC,UAAU;IAQlB,uDAAuD;IACvD,OAAO,CAAC,eAAe;IAoBvB,oFAAoF;IACpF,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,qBAAqB;IAwB7B,OAAO,CAAC,sBAAsB;IAqB9B,OAAO,CAAC,oBAAoB;IAkB5B,OAAO,CAAC,mBAAmB;CAuB5B"}
@@ -57,11 +57,19 @@ const _PdGenericForm = class _PdGenericForm extends LitElement {
57
57
  if (!showWhen) return true;
58
58
  const currentValue = this._formValues[showWhen.fieldId];
59
59
  if (currentValue !== void 0) {
60
- return currentValue === showWhen.equals;
60
+ return this._valuesMatch(currentValue, showWhen.equals);
61
61
  }
62
62
  const fieldValue = this.data[showWhen.fieldId];
63
63
  if (!fieldValue) return false;
64
- return fieldValue.value === showWhen.equals;
64
+ return this._valuesMatch(fieldValue.value, showWhen.equals);
65
+ }
66
+ _valuesMatch(actual, expected) {
67
+ if (actual === expected) return true;
68
+ if (typeof expected === "boolean") {
69
+ if (expected === true) return actual === "yes" || actual === "true";
70
+ return actual === "no" || actual === "false";
71
+ }
72
+ return false;
65
73
  }
66
74
  /**
67
75
  * Extracts schema fields from raw form values
@@ -273,6 +281,7 @@ const _PdGenericForm = class _PdGenericForm extends LitElement {
273
281
  ?disabled="${this.disabled}"
274
282
  ?handleChangeForInitVal="${true}"
275
283
  initValue="${initValue}"
284
+ .aiOptions="${field.aiOptions}"
276
285
  ></pd-input-area>
277
286
  `;
278
287
  }
@@ -310,6 +319,7 @@ const _PdGenericForm = class _PdGenericForm extends LitElement {
310
319
  ?disabled="${this.disabled}"
311
320
  ?handleChangeForInitVal="${true}"
312
321
  initValue="${initValue}"
322
+ .aiOptions="${field.aiOptions}"
313
323
  ></pd-input>
314
324
  `;
315
325
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pd-generic-form.styles.d.ts","sourceRoot":"","sources":["../../src/pd-generic-form/pd-generic-form.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAyG/B,CAAC"}
1
+ {"version":3,"file":"pd-generic-form.styles.d.ts","sourceRoot":"","sources":["../../src/pd-generic-form/pd-generic-form.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,mBAAmB,yBAgH/B,CAAC"}
@@ -20,8 +20,8 @@ const pdGenericFormStyles = css`
20
20
 
21
21
  .view-item {
22
22
  display: flex;
23
- align-items: center;
24
- justify-content: space-between;
23
+ align-items: baseline;
24
+ gap: 1rem;
25
25
  background: var(
26
26
  --pd-generic-form-view-item-bg,
27
27
  var(--pd-default-bg-light-col, #f8f9fc)
@@ -38,6 +38,8 @@ const pdGenericFormStyles = css`
38
38
  }
39
39
 
40
40
  .view-label {
41
+ flex: 0 0 auto;
42
+ max-width: 40%;
41
43
  font-weight: var(--pd-generic-form-view-label-weight, 500);
42
44
  font-size: var(
43
45
  --pd-generic-form-view-label-size,
@@ -51,13 +53,16 @@ const pdGenericFormStyles = css`
51
53
  }
52
54
 
53
55
  .view-value {
56
+ flex: 1 1 0;
57
+ min-width: 0;
58
+ text-align: right;
59
+ word-break: break-word;
54
60
  font-weight: var(--pd-generic-form-view-value-weight, 600);
55
61
  color: var(
56
62
  --pd-generic-form-view-value-col,
57
63
  var(--pd-default-col, #067394)
58
64
  );
59
65
  font-family: var(--pd-default-font-content-family);
60
- white-space: nowrap;
61
66
  }
62
67
 
63
68
  .view-value a {
@@ -99,10 +104,12 @@ const pdGenericFormStyles = css`
99
104
  flex-direction: column;
100
105
  align-items: flex-start;
101
106
  }
107
+ .view-label {
108
+ max-width: none;
109
+ }
102
110
  .view-value {
103
111
  margin-top: 0.25rem;
104
- white-space: normal;
105
- word-break: break-word;
112
+ text-align: left;
106
113
  }
107
114
  }
108
115
  `;
@@ -0,0 +1,79 @@
1
+ import { CSSResultGroup, PropertyValues } from 'lit';
2
+ import { PdBaseUIInput } from '../base/pd-base-ui-input.js';
3
+ export interface ImageSelection {
4
+ /** Bild-URL (Data-URL oder externe URL) */
5
+ src: string;
6
+ /** Optionaler Kommentar zum Bild (Phase 2) */
7
+ comment?: string;
8
+ /** Whether this image is selected (only used when selectable mode is enabled) */
9
+ selected?: boolean;
10
+ }
11
+ /**
12
+ * Multi-image input component with file upload and optional AI image generation.
13
+ *
14
+ * @tagname pd-input-image
15
+ * @summary Multi-image picker with thumbnail grid, file upload, and AI integration.
16
+ *
17
+ * @event pd-form-element-change - Fired when the images array changes.
18
+ * @event pd-form-element-register - Fired on first render for form integration.
19
+ * @event pd-form-element-unregister - Fired on disconnect for form cleanup.
20
+ * @event pd-ai-trigger - Fired when AI sparkle icon is clicked (requires aiOptions).
21
+ *
22
+ * @cssprop --pd-input-field-width - Container width. Default: `300px`.
23
+ * @cssprop --pd-input-field-bg-col - Background color. Default: `var(--pd-default-bg-col)`.
24
+ * @cssprop --pd-input-field-border - Border style. Default: `1px solid var(--pd-default-light-col)`.
25
+ * @cssprop --pd-input-field-border-bottom - Bottom border. Default: `2px solid var(--pd-default-col)`.
26
+ * @cssprop --pd-input-image-grid-gap - Gap between thumbnails. Default: `var(--pd-spacing-sm, 8px)`.
27
+ * @cssprop --pd-input-image-thumb-size - Thumbnail tile size. Default: `120px`.
28
+ * @cssprop --pd-input-image-thumb-radius - Thumbnail border-radius. Default: `var(--pd-radius-md)`.
29
+ * @cssprop --pd-input-image-remove-bg - Remove button background. Default: `rgba(0,0,0,0.5)`.
30
+ * @cssprop --pd-input-image-remove-size - Remove button size. Default: `24px`.
31
+ */
32
+ export declare class PdInputImage extends PdBaseUIInput {
33
+ /** Accepted file types for the file picker. */
34
+ accept: string;
35
+ /** Placeholder text shown when no image is set. */
36
+ placeholder: string;
37
+ /** Maximum number of images allowed. */
38
+ max: number;
39
+ /** Enable single-select mode: user can click a thumbnail to select it. */
40
+ selectable: boolean;
41
+ /** Internal images array – primary data source. */
42
+ private _images;
43
+ /** Index of the image currently shown in the preview overlay, or null. */
44
+ private _previewIndex;
45
+ /** Whether the URL input row is visible. */
46
+ private _showUrlInput;
47
+ /** Current value of the URL input field. */
48
+ private _urlInputValue;
49
+ static styles: CSSResultGroup;
50
+ private _boundHandleKeyDown;
51
+ connectedCallback(): void;
52
+ disconnectedCallback(): void;
53
+ get value(): ImageSelection[];
54
+ set value(val: ImageSelection[]);
55
+ private _updateImages;
56
+ protected _dispatchChange(_value: string, eventName?: string): void;
57
+ protected _registerAtContainer(valid: boolean): void;
58
+ protected _getParsedValue(): ImageSelection[];
59
+ aiAdopt(value: string): void;
60
+ reset(): void;
61
+ clear(): void;
62
+ update(changedProps: PropertyValues<this>): void;
63
+ render(): import('lit').TemplateResult<1>;
64
+ private _onPlaceholderClick;
65
+ private _onSelectClick;
66
+ private _openFilePicker;
67
+ private _onContainerKeyDown;
68
+ private _onFileSelect;
69
+ private _openPreview;
70
+ private _closePreview;
71
+ private _onBackdropClick;
72
+ private _handleGlobalKeyDown;
73
+ private _removeImage;
74
+ private _selectImage;
75
+ private _getSelectedImage;
76
+ private _onUrlAddClick;
77
+ private _onUrlConfirm;
78
+ }
79
+ //# sourceMappingURL=PdInputImage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PdInputImage.d.ts","sourceRoot":"","sources":["../../src/pd-input-image/PdInputImage.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAiB,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAMpE,OAAO,0CAA0C,CAAC;AAElD,OAAO,2BAA2B,CAAC;AACnC,OAAO,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAI5D,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAa,SAAQ,aAAa;IAC7C,+CAA+C;IAE/C,MAAM,SAAa;IAEnB,mDAAmD;IAEnD,WAAW,SAAoB;IAE/B,wCAAwC;IAExC,GAAG,SAAY;IAEf,0EAA0E;IAE1E,UAAU,UAAS;IAEnB,mDAAmD;IAEnD,OAAO,CAAC,OAAO,CAAwB;IAEvC,0EAA0E;IAE1E,OAAO,CAAC,aAAa,CAAuB;IAE5C,4CAA4C;IAE5C,OAAO,CAAC,aAAa,CAAS;IAE9B,4CAA4C;IAE5C,OAAO,CAAC,cAAc,CAAM;IAE5B,OAAgB,MAAM,EAAE,cAAc,CAIpC;IAEF,OAAO,CAAC,mBAAmB,CAAwC;IAE1D,iBAAiB,IAAI,IAAI;IAkBzB,oBAAoB,IAAI,IAAI;IASrC,IAAI,KAAK,IAAI,cAAc,EAAE,CAE5B;IAGD,IAAI,KAAK,CAAC,GAAG,EAAE,cAAc,EAAE,EAE9B;IAID,OAAO,CAAC,aAAa;cAaF,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;cAyBzD,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;cAyB1C,eAAe,IAAI,cAAc,EAAE;IAItC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM5B,KAAK,IAAI,IAAI;IAqCb,KAAK,IAAI,IAAI;IAMpB,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAoChD,MAAM;IAkQf,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;CAiBtB"}