@progressive-development/pd-forms 0.5.7 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/dist/generated/locale-codes.d.ts +14 -0
  2. package/dist/generated/locale-codes.d.ts.map +1 -0
  3. package/dist/generated/locales/be.d.ts +10 -0
  4. package/dist/generated/locales/be.d.ts.map +1 -0
  5. package/dist/generated/locales/de.d.ts +10 -0
  6. package/dist/generated/locales/de.d.ts.map +1 -0
  7. package/dist/generated/locales/en.d.ts +10 -0
  8. package/dist/generated/locales/en.d.ts.map +1 -0
  9. package/dist/index.d.ts +15 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +10 -10
  12. package/dist/locales/be.d.ts +2 -0
  13. package/dist/locales/de.d.ts +2 -0
  14. package/dist/locales/en.d.ts +2 -0
  15. package/dist/pd-base-input-element.d.ts +28 -0
  16. package/dist/pd-base-input-element.d.ts.map +1 -0
  17. package/dist/pd-base-input-element.js +82 -0
  18. package/dist/pd-base-ui-input.d.ts +54 -0
  19. package/dist/pd-base-ui-input.d.ts.map +1 -0
  20. package/dist/pd-base-ui-input.js +208 -0
  21. package/dist/pd-base-ui.d.ts +12 -0
  22. package/dist/pd-base-ui.d.ts.map +1 -0
  23. package/dist/{src/PdBaseUi.js → pd-base-ui.js} +9 -15
  24. package/dist/pd-button.d.ts +16 -0
  25. package/dist/pd-button.d.ts.map +1 -0
  26. package/dist/pd-button.js +154 -4
  27. package/dist/pd-checkbox.d.ts +14 -0
  28. package/dist/pd-checkbox.d.ts.map +1 -0
  29. package/dist/pd-checkbox.js +251 -4
  30. package/dist/pd-form-container.d.ts +25 -0
  31. package/dist/pd-form-container.d.ts.map +1 -0
  32. package/dist/pd-form-container.js +183 -4
  33. package/dist/pd-form-row.d.ts +12 -0
  34. package/dist/pd-form-row.d.ts.map +1 -0
  35. package/dist/pd-form-row.js +108 -4
  36. package/dist/pd-hover-box.d.ts +23 -0
  37. package/dist/pd-hover-box.d.ts.map +1 -0
  38. package/dist/pd-hover-box.js +122 -4
  39. package/dist/pd-icon-panel-button.d.ts +18 -0
  40. package/dist/pd-icon-panel-button.d.ts.map +1 -0
  41. package/dist/pd-input-area.d.ts +18 -0
  42. package/dist/pd-input-area.d.ts.map +1 -0
  43. package/dist/pd-input-area.js +74 -4
  44. package/dist/pd-input-file.d.ts +15 -0
  45. package/dist/pd-input-file.d.ts.map +1 -0
  46. package/dist/pd-input-file.js +91 -4
  47. package/dist/pd-input-time.d.ts +10 -0
  48. package/dist/pd-input-time.d.ts.map +1 -0
  49. package/dist/pd-input-time.js +68 -4
  50. package/dist/pd-input.d.ts +30 -0
  51. package/dist/pd-input.d.ts.map +1 -0
  52. package/dist/pd-input.js +99 -4
  53. package/dist/pd-radio-group.d.ts +9 -0
  54. package/dist/pd-radio-group.d.ts.map +1 -0
  55. package/dist/pd-radio-group.js +89 -4
  56. package/dist/pd-range.d.ts +16 -0
  57. package/dist/pd-range.d.ts.map +1 -0
  58. package/dist/pd-range.js +236 -4
  59. package/dist/pd-select.d.ts +14 -0
  60. package/dist/pd-select.d.ts.map +1 -0
  61. package/dist/pd-select.js +121 -4
  62. package/dist/stories/01_index.stories.d.ts +58 -0
  63. package/dist/stories/01_index.stories.d.ts.map +1 -0
  64. package/dist/stories/button.stories.d.ts +22 -0
  65. package/dist/stories/button.stories.d.ts.map +1 -0
  66. package/dist/stories/checkbox.stories.d.ts +28 -0
  67. package/dist/stories/checkbox.stories.d.ts.map +1 -0
  68. package/dist/stories/form-container.stories.d.ts +28 -0
  69. package/dist/stories/form-container.stories.d.ts.map +1 -0
  70. package/dist/stories/form-row.stories.d.ts +27 -0
  71. package/dist/stories/form-row.stories.d.ts.map +1 -0
  72. package/dist/stories/input-area.stories.d.ts +54 -0
  73. package/dist/stories/input-area.stories.d.ts.map +1 -0
  74. package/dist/stories/input-file.stories.d.ts +49 -0
  75. package/dist/stories/input-file.stories.d.ts.map +1 -0
  76. package/dist/stories/input.stories.d.ts +37 -0
  77. package/dist/stories/input.stories.d.ts.map +1 -0
  78. package/dist/stories/pd-icon-button.stories.d.ts +30 -0
  79. package/dist/stories/pd-icon-button.stories.d.ts.map +1 -0
  80. package/dist/stories/radio-group.stories.d.ts +9 -0
  81. package/dist/stories/radio-group.stories.d.ts.map +1 -0
  82. package/dist/stories/range.stories.d.ts +9 -0
  83. package/dist/stories/range.stories.d.ts.map +1 -0
  84. package/dist/stories/select.stories.d.ts +37 -0
  85. package/dist/stories/select.stories.d.ts.map +1 -0
  86. package/dist/styles/shared-input-field-styles.d.ts +9 -0
  87. package/dist/styles/shared-input-field-styles.d.ts.map +1 -0
  88. package/dist/{src → styles}/shared-input-field-styles.js +37 -25
  89. package/dist/styles/shared-input-styles.d.ts +10 -0
  90. package/dist/styles/shared-input-styles.d.ts.map +1 -0
  91. package/dist/{src → styles}/shared-input-styles.js +7 -6
  92. package/dist/types.d.ts +10 -0
  93. package/dist/types.d.ts.map +1 -0
  94. package/package.json +31 -47
  95. package/dist/src/PdBaseInputElement.js +0 -87
  96. package/dist/src/PdBaseUiInput.js +0 -231
  97. package/dist/src/PdButton.js +0 -194
  98. package/dist/src/PdCheckbox.js +0 -230
  99. package/dist/src/PdFormContainer.js +0 -167
  100. package/dist/src/PdFormRow.js +0 -92
  101. package/dist/src/PdHoverBox.js +0 -108
  102. package/dist/src/PdInput.js +0 -79
  103. package/dist/src/PdInputArea.js +0 -61
  104. package/dist/src/PdInputFile.js +0 -73
  105. package/dist/src/PdInputTime.js +0 -59
  106. package/dist/src/PdRadioGroup.js +0 -72
  107. package/dist/src/PdRange.js +0 -267
  108. package/dist/src/PdSelect.js +0 -125
package/dist/pd-input.js CHANGED
@@ -1,4 +1,99 @@
1
- import { PdInput } from "./src/PdInput.js";
2
- if (!customElements.get("pd-input")) {
3
- window.customElements.define("pd-input", PdInput);
4
- }
1
+ import { css, html } from "lit";
2
+ import { property, customElement } from "lit/decorators.js";
3
+ import "@progressive-development/pd-icon/pd-icon";
4
+ import { INPUT_TYPE_TEXT } from "./pd-base-ui-input.js";
5
+ import { PdBaseInputElement } from "./pd-base-input-element.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
+ const onlyContainsNumbers = (str) => /^\d+$/.test(str);
17
+ let PdInput = class extends PdBaseInputElement {
18
+ constructor() {
19
+ super();
20
+ this.icon = "";
21
+ this.secret = false;
22
+ this.maxlength = 500;
23
+ this.onlyNumbers = false;
24
+ this._inputType = INPUT_TYPE_TEXT;
25
+ }
26
+ render() {
27
+ const inputId = `${this.id}Input`;
28
+ return html`
29
+ ${this._renderLabel(inputId)}
30
+ <div class="input ${this.errorMsg.length > 0 ? "error" : ""}">
31
+ ${this.icon ? html`
32
+ <pd-icon
33
+ icon=${this.icon}
34
+ activeIcon
35
+ @click=${this._iconClicked}
36
+ ></pd-icon>
37
+ ` : ""}
38
+ <input
39
+ id=${inputId}
40
+ name=${this.name || this.valueName || this.autoCompleteName}
41
+ autocomplete=${this.autoCompleteName ?? "off"}
42
+ class="input-style ${this.gradient ? "gradient" : ""}"
43
+ type=${this.secret ? "password" : "text"}
44
+ placeholder=${this.placeHolder}
45
+ .value=${this.value}
46
+ minlength=${this.minlength ?? ""}
47
+ maxlength=${this.maxlength ?? ""}
48
+ ?readonly=${this.readonly}
49
+ ?disabled=${this.disabled}
50
+ @keyup=${this._onKeyUp}
51
+ @blur=${this._onBlur}
52
+ />
53
+ </div>
54
+ ${this._renderErrorMsg()}
55
+ `;
56
+ }
57
+ _onKeyUp(e) {
58
+ var _a;
59
+ if (this.onlyNumbers && ((_a = this._input) == null ? void 0 : _a.value) && !onlyContainsNumbers(this._input.value)) {
60
+ this._input.value = this._input.value.replace(/\D/g, "");
61
+ } else {
62
+ super._onKeyUp(e);
63
+ }
64
+ }
65
+ _iconClicked() {
66
+ this.dispatchEvent(
67
+ new CustomEvent("input-icon-click", { bubbles: true, composed: true })
68
+ );
69
+ }
70
+ };
71
+ PdInput.styles = [
72
+ PdBaseInputElement.styles,
73
+ css`
74
+ * {
75
+ box-sizing: border-box;
76
+ }
77
+ `
78
+ ];
79
+ __decorateClass([
80
+ property({ type: String })
81
+ ], PdInput.prototype, "icon", 2);
82
+ __decorateClass([
83
+ property({ type: Boolean })
84
+ ], PdInput.prototype, "secret", 2);
85
+ __decorateClass([
86
+ property({ type: Number })
87
+ ], PdInput.prototype, "minlength", 2);
88
+ __decorateClass([
89
+ property({ type: Number })
90
+ ], PdInput.prototype, "maxlength", 2);
91
+ __decorateClass([
92
+ property({ type: Boolean })
93
+ ], PdInput.prototype, "onlyNumbers", 2);
94
+ PdInput = __decorateClass([
95
+ customElement("pd-input")
96
+ ], PdInput);
97
+ export {
98
+ PdInput
99
+ };
@@ -0,0 +1,9 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { PdBaseUIInput } from './pd-base-ui-input.js';
3
+ export declare class PdRadioGroup extends PdBaseUIInput {
4
+ static styles: CSSResultGroup;
5
+ firstUpdated(): void;
6
+ render(): import('lit-html').TemplateResult<1>;
7
+ private _dispatchValidation;
8
+ }
9
+ //# sourceMappingURL=pd-radio-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-radio-group.d.ts","sourceRoot":"","sources":["../src/pd-radio-group.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,qBACa,YAAa,SAAQ,aAAa;IAC7C,OAAgB,MAAM,EAAE,cAAc,CAmBpC;IAEO,YAAY,IAAI,IAAI;IA4BpB,MAAM;IAgBf,OAAO,CAAC,mBAAmB;CAY5B"}
@@ -1,4 +1,89 @@
1
- import { PdRadioGroup } from "./src/PdRadioGroup.js";
2
- if (!customElements.get("pd-radio-group")) {
3
- window.customElements.define("pd-radio-group", PdRadioGroup);
4
- }
1
+ import { css, html } from "lit";
2
+ import { customElement } from "lit/decorators.js";
3
+ import { classMap } from "lit/directives/class-map.js";
4
+ import { PdBaseUIInput } from "./pd-base-ui-input.js";
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 = decorator(result) || result;
11
+ return result;
12
+ };
13
+ let PdRadioGroup = class extends PdBaseUIInput {
14
+ firstUpdated() {
15
+ this.addEventListener("field-change", (e) => {
16
+ const target = e.target;
17
+ const checkboxes2 = this.querySelectorAll("pd-checkbox");
18
+ checkboxes2.forEach((el) => {
19
+ const isActive = el === target;
20
+ el.value = isActive ? "true" : "false";
21
+ el.readonly = isActive;
22
+ if (isActive) {
23
+ this.value = el.valueName;
24
+ }
25
+ });
26
+ this._dispatchValidation();
27
+ });
28
+ const checkboxes = this.querySelectorAll("pd-checkbox");
29
+ checkboxes.forEach((el) => {
30
+ if (el.value === "true") {
31
+ el.readonly = true;
32
+ this.value = el.valueName;
33
+ }
34
+ });
35
+ }
36
+ render() {
37
+ const radioInputId = `${this.id}RadioGroup`;
38
+ return html`
39
+ ${this._renderLabel(radioInputId)}
40
+ <div
41
+ id=${radioInputId}
42
+ class="group-style input ${classMap({
43
+ error: this.errorMsg.length > 0
44
+ })}"
45
+ >
46
+ <slot></slot>
47
+ </div>
48
+ ${this._renderErrorMsg()}
49
+ `;
50
+ }
51
+ _dispatchValidation() {
52
+ this.dispatchEvent(
53
+ new CustomEvent("validate-form", {
54
+ detail: {
55
+ singleElement: this,
56
+ errorMap: /* @__PURE__ */ new Map()
57
+ },
58
+ composed: true,
59
+ bubbles: true
60
+ })
61
+ );
62
+ }
63
+ };
64
+ PdRadioGroup.styles = [
65
+ PdBaseUIInput.styles,
66
+ css`
67
+ .group-style {
68
+ display: flex;
69
+ gap: var(--pd-cb-group-gap, 20px);
70
+ flex-direction: var(--pd-cb-group-direction, row);
71
+ flex-wrap: wrap;
72
+ padding: var(--pd-input-label-padding, 0);
73
+ padding-top: 5px;
74
+ }
75
+
76
+ ::slotted(pd-checkbox) {
77
+ --pd-cb-border-col-readonly: var(
78
+ --pd-cb-border-col,
79
+ var(--pd-default-col)
80
+ );
81
+ }
82
+ `
83
+ ];
84
+ PdRadioGroup = __decorateClass([
85
+ customElement("pd-radio-group")
86
+ ], PdRadioGroup);
87
+ export {
88
+ PdRadioGroup
89
+ };
@@ -0,0 +1,16 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { PdBaseUIInput } from './pd-base-ui-input.js';
3
+ export declare class PdRange extends PdBaseUIInput {
4
+ min: number;
5
+ max: number;
6
+ step: number;
7
+ optionValueMapper: Record<string, string>;
8
+ name: string;
9
+ protected _input: HTMLInputElement | null | undefined;
10
+ static styles: CSSResultGroup;
11
+ constructor();
12
+ protected firstUpdated(): void;
13
+ protected _onChange(e: Event): void;
14
+ render(): import('lit-html').TemplateResult<1>;
15
+ }
16
+ //# sourceMappingURL=pd-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-range.d.ts","sourceRoot":"","sources":["../src/pd-range.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAoB,MAAM,uBAAuB,CAAC;AAExE,qBACa,OAAQ,SAAQ,aAAa;IAExC,GAAG,EAAE,MAAM,CAAK;IAGhB,GAAG,EAAE,MAAM,CAAM;IAGjB,IAAI,SAAK;IAGT,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAG/C,IAAI,SAAM;IAGV,SAAS,CAAC,MAAM,EAAG,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC;IAEvD,OAAgB,MAAM,EAAE,cAAc,CAqJpC;;cAOiB,YAAY,IAAI,IAAI;IAIvC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAI1B,MAAM;CA8BhB"}
package/dist/pd-range.js CHANGED
@@ -1,4 +1,236 @@
1
- import { PdRange } from "./src/PdRange.js";
2
- if (!customElements.get("pd-range")) {
3
- window.customElements.define("pd-range", PdRange);
4
- }
1
+ import { css, html } from "lit";
2
+ import { property, state, customElement } from "lit/decorators.js";
3
+ import { classMap } from "lit/directives/class-map.js";
4
+ import { PdBaseUIInput, INPUT_TYPE_RANGE } from "./pd-base-ui-input.js";
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __decorateClass = (decorators, target, key, kind) => {
8
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
9
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
+ if (decorator = decorators[i])
11
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12
+ if (kind && result) __defProp(target, key, result);
13
+ return result;
14
+ };
15
+ let PdRange = class extends PdBaseUIInput {
16
+ constructor() {
17
+ super();
18
+ this.min = 0;
19
+ this.max = 10;
20
+ this.step = 1;
21
+ this.optionValueMapper = {};
22
+ this.name = "";
23
+ this._inputType = INPUT_TYPE_RANGE;
24
+ }
25
+ firstUpdated() {
26
+ var _a;
27
+ this._input = (_a = this.shadowRoot) == null ? void 0 : _a.querySelector("input");
28
+ }
29
+ _onChange(e) {
30
+ var _a;
31
+ this._handleChangedValue(((_a = this._input) == null ? void 0 : _a.value) ?? "", e, false);
32
+ }
33
+ render() {
34
+ const inputId = `${this.id}Range`;
35
+ const labelDetail = this.optionValueMapper[this.value] || this.value;
36
+ return html`
37
+ ${this._renderLabel(inputId, labelDetail)}
38
+ <div class="input-range ${classMap({ error: this.errorMsg.length > 0 })}">
39
+ <input
40
+ id=${inputId}
41
+ name=${this.name || this.valueName || ""}
42
+ class="input-range-style ${this.gradient ? "gradient" : ""}"
43
+ type="range"
44
+ .value=${this.value}
45
+ ?readonly=${this.readonly}
46
+ ?disabled=${this.disabled}
47
+ min=${this.min}
48
+ max=${this.max}
49
+ step=${this.step}
50
+ @change=${this._onChange}
51
+ @input=${this._onChange}
52
+ />
53
+ <div class="ticks ${this.disabled ? "disabled" : "enabled"}">
54
+ ${Array.from({ length: 5 }).map(
55
+ () => html`<span class="tick">|</span>`
56
+ )}
57
+ </div>
58
+ </div>
59
+ ${this._renderErrorMsg()}
60
+ `;
61
+ }
62
+ };
63
+ PdRange.styles = [
64
+ PdBaseUIInput.styles,
65
+ css`
66
+ :host([disabled]) {
67
+ --pd-range-bg-col: grey;
68
+ --pd-range-thumb-col: lightgrey;
69
+ }
70
+
71
+ input[type="range"] {
72
+ -webkit-appearance: none;
73
+ width: var(--pd-input-field-width, 250px);
74
+ background: transparent;
75
+ background-color: var(--pd-range-bg-col, var(--pd-default-col));
76
+ padding: 0.5rem;
77
+ height: var(--pd-input-field-range-height, 1.7rem);
78
+ box-sizing: border-box;
79
+ border-radius: 0.75rem;
80
+ }
81
+
82
+ input[type="range"]:focus {
83
+ outline: none;
84
+ }
85
+
86
+ input[type="range"]::-webkit-slider-thumb {
87
+ -webkit-appearance: none;
88
+ margin-top: -6px;
89
+ cursor: pointer;
90
+ height: 15px;
91
+ width: 39px;
92
+ background: var(--pd-range-thumb-col, var(--pd-default-hover-col));
93
+ border: 1px solid var(--pd-default-dark-col);
94
+ border-radius: 3px;
95
+ box-shadow:
96
+ 1px 1px 1px #000000,
97
+ 0px 0px 1px #0d0d0d;
98
+ }
99
+
100
+ input[type="range"]::-moz-range-thumb {
101
+ cursor: pointer;
102
+ height: 15px;
103
+ width: 39px;
104
+ background: var(--pd-range-thumb-col, var(--pd-default-hover-col));
105
+ border: 1px solid var(--pd-default-dark-col);
106
+ border-radius: 3px;
107
+ box-shadow:
108
+ 1px 1px 1px #000000,
109
+ 0px 0px 1px #0d0d0d;
110
+ }
111
+
112
+ input[type="range"]::-ms-thumb {
113
+ cursor: pointer;
114
+ height: 15px;
115
+ width: 39px;
116
+ background: var(--pd-range-thumb-col, var(--pd-default-hover-col));
117
+ border: 1px solid var(--pd-default-dark-col);
118
+ border-radius: 3px;
119
+ box-shadow:
120
+ 1px 1px 1px #000000,
121
+ 0px 0px 1px #0d0d0d;
122
+ }
123
+
124
+ input[type="range"]::-webkit-slider-runnable-track {
125
+ width: 100%;
126
+ height: 8.4px;
127
+ cursor: pointer;
128
+ box-shadow:
129
+ 1px 1px 1px #000000,
130
+ 0px 0px 1px #0d0d0d;
131
+ background: var(--pd-range-track-col, var(--pd-default-light-col));
132
+ border: 0.2px solid #010101;
133
+ border-radius: 0.75rem;
134
+ }
135
+
136
+ input[type="range"]:focus::-webkit-slider-runnable-track {
137
+ background: var(
138
+ --pd-range-track-hover-col,
139
+ var(--pd-default-light-col)
140
+ );
141
+ border: 0.2px solid var(--pd-default-hover-col);
142
+ }
143
+
144
+ input[type="range"]::-moz-range-track {
145
+ width: 100%;
146
+ height: 8.4px;
147
+ cursor: pointer;
148
+ box-shadow:
149
+ 1px 1px 1px #000000,
150
+ 0px 0px 1px #0d0d0d;
151
+ background: var(--pd-range-track-col, var(--pd-default-light-col));
152
+ border-radius: 0.75rem;
153
+ border: 0.2px solid #010101;
154
+ }
155
+
156
+ input[type="range"]::-ms-track {
157
+ height: 8.4px;
158
+ width: 100%;
159
+ cursor: pointer;
160
+ background: transparent;
161
+ border-color: transparent;
162
+ color: transparent;
163
+ border-width: 16px 0;
164
+ }
165
+
166
+ input[type="range"]::-ms-fill-lower,
167
+ input[type="range"]::-ms-fill-upper {
168
+ background: var(--pd-range-track-col, var(--pd-default-light-col));
169
+ border: 0.2px solid #010101;
170
+ border-radius: 0.75rem;
171
+ box-shadow:
172
+ 1px 1px 1px #000000,
173
+ 0px 0px 1px #0d0d0d;
174
+ }
175
+
176
+ input[type="range"]:focus::-ms-fill-lower {
177
+ background: #3071a9;
178
+ }
179
+
180
+ input[type="range"]:focus::-ms-fill-upper {
181
+ background: #367ebd;
182
+ }
183
+
184
+ .ticks {
185
+ display: flex;
186
+ justify-content: space-between;
187
+ padding: 10px 30px;
188
+ }
189
+
190
+ .tick {
191
+ line-height: 5px;
192
+ height: 5px;
193
+ margin-top: -13px;
194
+ font-size: 8pt;
195
+ font-weight: bolder;
196
+ }
197
+
198
+ .ticks.disabled {
199
+ color: grey;
200
+ }
201
+
202
+ .ticks.enabled {
203
+ color: var(--pd-default-col);
204
+ }
205
+
206
+ @media (max-width: 650px) {
207
+ label {
208
+ font-size: 12px;
209
+ }
210
+ }
211
+ `
212
+ ];
213
+ __decorateClass([
214
+ property({ type: Number })
215
+ ], PdRange.prototype, "min", 2);
216
+ __decorateClass([
217
+ property({ type: Number })
218
+ ], PdRange.prototype, "max", 2);
219
+ __decorateClass([
220
+ property({ type: Number })
221
+ ], PdRange.prototype, "step", 2);
222
+ __decorateClass([
223
+ property({ type: Object })
224
+ ], PdRange.prototype, "optionValueMapper", 2);
225
+ __decorateClass([
226
+ property({ type: String })
227
+ ], PdRange.prototype, "name", 2);
228
+ __decorateClass([
229
+ state()
230
+ ], PdRange.prototype, "_input", 2);
231
+ PdRange = __decorateClass([
232
+ customElement("pd-range")
233
+ ], PdRange);
234
+ export {
235
+ PdRange
236
+ };
@@ -0,0 +1,14 @@
1
+ import { CSSResultGroup } from 'lit';
2
+ import { PdBaseInputElement } from './pd-base-input-element.js';
3
+ import { PdSelectOption } from './types.js';
4
+ export declare class PdSelect extends PdBaseInputElement {
5
+ values: PdSelectOption[];
6
+ constructor();
7
+ static styles: CSSResultGroup;
8
+ render(): import('lit-html').TemplateResult<1>;
9
+ /**
10
+ * Empty, reserved for possible future enhancements on keyup for select.
11
+ */
12
+ protected _onSelectKeyUp(): void;
13
+ }
14
+ //# sourceMappingURL=pd-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pd-select.d.ts","sourceRoot":"","sources":["../src/pd-select.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAIhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,qBACa,QAAS,SAAQ,kBAAkB;IAE9C,MAAM,EAAE,cAAc,EAAE,CAAM;;IAO9B,OAAgB,MAAM,EAAE,cAAc,CA0DpC;IAEO,MAAM;IA6Bf;;OAEG;IACH,SAAS,CAAC,cAAc,IAAI,IAAI;CAGjC"}
package/dist/pd-select.js CHANGED
@@ -1,4 +1,121 @@
1
- import { PdSelect } from "./src/PdSelect.js";
2
- if (!customElements.get("pd-select")) {
3
- window.customElements.define("pd-select", PdSelect);
4
- }
1
+ import { css, html } from "lit";
2
+ import { property, customElement } from "lit/decorators.js";
3
+ import { INPUT_TYPE_SELECT } from "./pd-base-ui-input.js";
4
+ import { PdBaseInputElement } from "./pd-base-input-element.js";
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __decorateClass = (decorators, target, key, kind) => {
8
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
9
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
+ if (decorator = decorators[i])
11
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
12
+ if (kind && result) __defProp(target, key, result);
13
+ return result;
14
+ };
15
+ let PdSelect = class extends PdBaseInputElement {
16
+ constructor() {
17
+ super();
18
+ this.values = [];
19
+ this._inputType = INPUT_TYPE_SELECT;
20
+ }
21
+ render() {
22
+ const selectId = `${this.id}Select`;
23
+ return html`
24
+ ${this._renderLabel(selectId)}
25
+ <div class="input ${this.errorMsg.length > 0 ? "error" : ""}">
26
+ <select
27
+ id=${selectId}
28
+ class="input-style select-css ${this.gradient ? "gradient" : ""}"
29
+ ?disabled=${this.disabled}
30
+ name=${this.name || this.valueName || this.autoCompleteName}
31
+ autocomplete=${this.autoCompleteName ?? "off"}
32
+ @change=${this._onKeyUp}
33
+ @keyup=${this._onSelectKeyUp}
34
+ @blur=${this._onBlur}
35
+ >
36
+ ${this.values.map(
37
+ (val) => html`
38
+ <option value=${val.value} ?selected=${this.value == val.value}>
39
+ ${val.name}
40
+ </option>
41
+ `
42
+ )}
43
+ </select>
44
+ </div>
45
+ ${this._renderErrorMsg()}
46
+ `;
47
+ }
48
+ /**
49
+ * Empty, reserved for possible future enhancements on keyup for select.
50
+ */
51
+ _onSelectKeyUp() {
52
+ }
53
+ };
54
+ PdSelect.styles = [
55
+ PdBaseInputElement.styles,
56
+ css`
57
+ .select-css {
58
+ display: block;
59
+ -moz-appearance: none;
60
+ -webkit-appearance: none;
61
+ appearance: none;
62
+ padding: 5px;
63
+ background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
64
+ background-repeat: no-repeat, repeat;
65
+ background-position:
66
+ right 0.5em top 50%,
67
+ 0 0;
68
+ background-size:
69
+ 0.65em auto,
70
+ 100%;
71
+ max-width: 100%;
72
+ }
73
+
74
+ .select-css::-ms-expand {
75
+ display: none;
76
+ }
77
+
78
+ .select-css option {
79
+ font-weight: normal;
80
+ text-indent: 5px;
81
+ }
82
+
83
+ .gradient {
84
+ background-image:
85
+ url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"),
86
+ linear-gradient(
87
+ to bottom,
88
+ var(--my-background-gradient-color),
89
+ var(--my-background-color)
90
+ );
91
+ background-color: var(--my-background-color);
92
+ }
93
+
94
+ .error .gradient {
95
+ background-image:
96
+ url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"),
97
+ linear-gradient(
98
+ to bottom,
99
+ var(--my-background-gradient-color) 10%,
100
+ #f5979b 100%
101
+ );
102
+ background-repeat: no-repeat, repeat;
103
+ background-position:
104
+ right 0.5em top 50%,
105
+ 0 0;
106
+ background-size:
107
+ 0.65em auto,
108
+ 100%;
109
+ background-color: var(--my-error-background-color);
110
+ }
111
+ `
112
+ ];
113
+ __decorateClass([
114
+ property({ type: Array })
115
+ ], PdSelect.prototype, "values", 2);
116
+ PdSelect = __decorateClass([
117
+ customElement("pd-select")
118
+ ], PdSelect);
119
+ export {
120
+ PdSelect
121
+ };
@@ -0,0 +1,58 @@
1
+ import { StoryObj } from '@storybook/web-components';
2
+ declare const meta: {
3
+ title: string;
4
+ argTypes: {
5
+ backgroundColor: {
6
+ control: "color";
7
+ };
8
+ onClick: {
9
+ action: string;
10
+ };
11
+ size: {
12
+ control: {
13
+ type: "select";
14
+ };
15
+ options: string[];
16
+ };
17
+ gradient: {
18
+ control: "boolean";
19
+ };
20
+ primaryColor: {
21
+ control: "color";
22
+ };
23
+ secondaryColor: {
24
+ control: "color";
25
+ };
26
+ thirdColor: {
27
+ control: "color";
28
+ };
29
+ textColor: {
30
+ control: "color";
31
+ };
32
+ highlightColor: {
33
+ control: "color";
34
+ };
35
+ errorColor: {
36
+ control: "color";
37
+ };
38
+ errorBackgroundColor: {
39
+ control: "color";
40
+ };
41
+ borderRadius: {
42
+ control: "text";
43
+ };
44
+ displayFont: {
45
+ control: "text";
46
+ };
47
+ fontSize: {
48
+ control: "text";
49
+ };
50
+ inputHeigth: {
51
+ control: "text";
52
+ };
53
+ };
54
+ };
55
+ export default meta;
56
+ type Story = StoryObj;
57
+ export declare const FormExamples: Story;
58
+ //# sourceMappingURL=01_index.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"01_index.stories.d.ts","sourceRoot":"","sources":["../../src/stories/01_index.stories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,iBAAiB,CAAC;AAGzB,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsBM,CAAC;AAEjB,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC;AAGtB,eAAO,MAAM,YAAY,EAAE,KAgL1B,CAAC"}