@progressive-development/pd-forms 0.9.2 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -2
- package/README.md +56 -62
- package/dist/base/pd-base-input-element.d.ts +10 -10
- package/dist/base/pd-base-input-element.d.ts.map +1 -1
- package/dist/base/pd-base-input-element.js +8 -1
- package/dist/base/pd-base-ui-input.d.ts +41 -16
- package/dist/base/pd-base-ui-input.d.ts.map +1 -1
- package/dist/base/pd-base-ui-input.js +25 -6
- package/dist/base/pd-base-ui.js +0 -18
- package/dist/generated/locales/be.d.ts +3 -0
- package/dist/generated/locales/be.d.ts.map +1 -1
- package/dist/generated/locales/de.d.ts +3 -0
- package/dist/generated/locales/de.d.ts.map +1 -1
- package/dist/generated/locales/en.d.ts +3 -0
- package/dist/generated/locales/en.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/locales/be.js +4 -1
- package/dist/locales/de.js +4 -1
- package/dist/locales/en.js +4 -1
- package/dist/pd-button/PdButton.d.ts +172 -37
- package/dist/pd-button/PdButton.d.ts.map +1 -1
- package/dist/pd-button/PdButton.js +507 -71
- package/dist/pd-button/pd-button.stories.d.ts +82 -10
- package/dist/pd-button/pd-button.stories.d.ts.map +1 -1
- package/dist/pd-button-group/PdButtonGroup.d.ts +25 -0
- package/dist/pd-button-group/PdButtonGroup.d.ts.map +1 -1
- package/dist/pd-button-group/PdButtonGroup.js +52 -27
- package/dist/pd-button-group/pd-button-group.stories.d.ts +42 -17
- package/dist/pd-button-group/pd-button-group.stories.d.ts.map +1 -1
- package/dist/pd-button-select-group/PdButtonSelectGroup.d.ts +17 -3
- package/dist/pd-button-select-group/PdButtonSelectGroup.d.ts.map +1 -1
- package/dist/pd-button-select-group/PdButtonSelectGroup.js +23 -19
- package/dist/pd-button-select-group/pd-button-select-group.stories.d.ts +43 -18
- package/dist/pd-button-select-group/pd-button-select-group.stories.d.ts.map +1 -1
- package/dist/pd-checkbox/PdCheckbox.d.ts +23 -2
- package/dist/pd-checkbox/PdCheckbox.d.ts.map +1 -1
- package/dist/pd-checkbox/PdCheckbox.js +85 -21
- package/dist/pd-checkbox/pd-checkbox.stories.d.ts +43 -27
- package/dist/pd-checkbox/pd-checkbox.stories.d.ts.map +1 -1
- package/dist/pd-form-container/PdFormContainer.d.ts +30 -9
- package/dist/pd-form-container/PdFormContainer.d.ts.map +1 -1
- package/dist/pd-form-container/PdFormContainer.js +59 -8
- package/dist/pd-form-container/pd-form-container.stories.d.ts +49 -0
- package/dist/pd-form-container/pd-form-container.stories.d.ts.map +1 -0
- package/dist/pd-form-field/PdFormField.d.ts +35 -0
- package/dist/pd-form-field/PdFormField.d.ts.map +1 -0
- package/dist/pd-form-field/PdFormField.js +38 -0
- package/dist/pd-form-field/pd-form-field.d.ts +3 -0
- package/dist/pd-form-field/pd-form-field.d.ts.map +1 -0
- package/dist/pd-form-field/pd-form-field.stories.d.ts +40 -0
- package/dist/pd-form-field/pd-form-field.stories.d.ts.map +1 -0
- package/dist/pd-form-field.d.ts +2 -0
- package/dist/pd-form-field.js +8 -0
- package/dist/pd-form-fieldset/PdFormFieldset.d.ts +144 -0
- package/dist/pd-form-fieldset/PdFormFieldset.d.ts.map +1 -0
- package/dist/pd-form-fieldset/PdFormFieldset.js +364 -0
- package/dist/pd-form-fieldset/index.d.ts +2 -0
- package/dist/pd-form-fieldset/index.d.ts.map +1 -0
- package/dist/pd-form-fieldset/pd-form-fieldset.d.ts +3 -0
- package/dist/pd-form-fieldset/pd-form-fieldset.d.ts.map +1 -0
- package/dist/pd-form-fieldset/pd-form-fieldset.js +8 -0
- package/dist/pd-form-fieldset/pd-form-fieldset.stories.d.ts +38 -0
- package/dist/pd-form-fieldset/pd-form-fieldset.stories.d.ts.map +1 -0
- package/dist/pd-form-row/PdFormRow.d.ts +35 -5
- package/dist/pd-form-row/PdFormRow.d.ts.map +1 -1
- package/dist/pd-form-row/PdFormRow.js +135 -69
- package/dist/pd-form-row/pd-form-row.stories.d.ts +41 -25
- package/dist/pd-form-row/pd-form-row.stories.d.ts.map +1 -1
- package/dist/pd-generic-form/PdGenericForm.d.ts +50 -0
- package/dist/pd-generic-form/PdGenericForm.d.ts.map +1 -0
- package/dist/pd-generic-form/PdGenericForm.js +334 -0
- package/dist/pd-generic-form/pd-generic-form.d.ts +3 -0
- package/dist/pd-generic-form/pd-generic-form.d.ts.map +1 -0
- package/dist/pd-generic-form/pd-generic-form.stories.d.ts +35 -0
- package/dist/pd-generic-form/pd-generic-form.stories.d.ts.map +1 -0
- package/dist/pd-generic-form/pd-generic-form.styles.d.ts +2 -0
- package/dist/pd-generic-form/pd-generic-form.styles.d.ts.map +1 -0
- package/dist/pd-generic-form/pd-generic-form.styles.js +110 -0
- package/dist/pd-generic-form/pd-generic-form.test.d.ts +1 -0
- package/dist/pd-generic-form/pd-generic-form.test.d.ts.map +1 -0
- package/dist/pd-generic-form.d.ts +2 -0
- package/dist/pd-generic-form.js +8 -0
- package/dist/pd-hover-box/PdHoverBox.d.ts +61 -11
- package/dist/pd-hover-box/PdHoverBox.d.ts.map +1 -1
- package/dist/pd-hover-box/PdHoverBox.js +130 -28
- package/dist/pd-hover-box/pd-hover-box.stories.d.ts +28 -5
- package/dist/pd-hover-box/pd-hover-box.stories.d.ts.map +1 -1
- package/dist/pd-input/PdComboboxInput.d.ts +20 -0
- package/dist/pd-input/PdComboboxInput.d.ts.map +1 -0
- package/dist/pd-input/PdComboboxInput.js +67 -0
- package/dist/pd-input/PdInput.d.ts +33 -15
- package/dist/pd-input/PdInput.d.ts.map +1 -1
- package/dist/pd-input/PdInput.js +49 -21
- package/dist/pd-input/pd-input.stories.d.ts +71 -35
- package/dist/pd-input/pd-input.stories.d.ts.map +1 -1
- package/dist/pd-input-area/PdInputArea.d.ts +19 -6
- package/dist/pd-input-area/PdInputArea.d.ts.map +1 -1
- package/dist/pd-input-area/PdInputArea.js +17 -15
- package/dist/pd-input-area/pd-input-area.stories.d.ts +65 -52
- package/dist/pd-input-area/pd-input-area.stories.d.ts.map +1 -1
- package/dist/pd-input-file/PdInputFile.d.ts +24 -0
- package/dist/pd-input-file/PdInputFile.d.ts.map +1 -1
- package/dist/pd-input-file/PdInputFile.js +53 -22
- package/dist/pd-input-file/pd-input-file.stories.d.ts +51 -47
- package/dist/pd-input-file/pd-input-file.stories.d.ts.map +1 -1
- package/dist/pd-input-time/PdInputTime.d.ts +21 -0
- package/dist/pd-input-time/PdInputTime.d.ts.map +1 -1
- package/dist/pd-input-time/PdInputTime.js +48 -22
- package/dist/pd-input-time/pd-input-time.stories.d.ts +94 -0
- package/dist/pd-input-time/pd-input-time.stories.d.ts.map +1 -0
- package/dist/pd-panel-button/PdPanelButton.d.ts +50 -34
- package/dist/pd-panel-button/PdPanelButton.d.ts.map +1 -1
- package/dist/pd-panel-button/PdPanelButton.js +149 -262
- package/dist/pd-panel-button/pd-panel-button.stories.d.ts +55 -25
- package/dist/pd-panel-button/pd-panel-button.stories.d.ts.map +1 -1
- package/dist/pd-radio-group/PdRadioGroup.d.ts +14 -0
- package/dist/pd-radio-group/PdRadioGroup.d.ts.map +1 -1
- package/dist/pd-radio-group/PdRadioGroup.js +48 -11
- package/dist/pd-radio-group/pd-radio-group.stories.d.ts +37 -7
- package/dist/pd-radio-group/pd-radio-group.stories.d.ts.map +1 -1
- package/dist/pd-range/PdRange.d.ts +22 -2
- package/dist/pd-range/PdRange.d.ts.map +1 -1
- package/dist/pd-range/PdRange.js +54 -43
- package/dist/pd-range/pd-range.stories.d.ts +49 -7
- package/dist/pd-range/pd-range.stories.d.ts.map +1 -1
- package/dist/pd-select/PdSelect.d.ts +16 -4
- package/dist/pd-select/PdSelect.d.ts.map +1 -1
- package/dist/pd-select/PdSelect.js +23 -21
- package/dist/pd-select/pd-select.stories.d.ts +56 -35
- package/dist/pd-select/pd-select.stories.d.ts.map +1 -1
- package/dist/pd-suggestion-box/PdSuggestionBox.d.ts +74 -0
- package/dist/pd-suggestion-box/PdSuggestionBox.d.ts.map +1 -0
- package/dist/pd-suggestion-box/PdSuggestionBox.js +277 -0
- package/dist/pd-suggestion-box/PdSuggestionPanel.d.ts +42 -0
- package/dist/pd-suggestion-box/PdSuggestionPanel.d.ts.map +1 -0
- package/dist/pd-suggestion-box/PdSuggestionPanel.js +227 -0
- package/dist/pd-suggestion-box/pd-suggestion-box.d.ts +3 -0
- package/dist/pd-suggestion-box/pd-suggestion-box.d.ts.map +1 -0
- package/dist/pd-suggestion-box/pd-suggestion-box.stories.d.ts +79 -0
- package/dist/pd-suggestion-box/pd-suggestion-box.stories.d.ts.map +1 -0
- package/dist/pd-suggestion-box.d.ts +2 -0
- package/dist/pd-suggestion-box.js +8 -0
- package/dist/pd-utils/dist/position-helper.js +35 -0
- package/dist/stories/pd-forms-overview.stories.d.ts +48 -0
- package/dist/stories/pd-forms-overview.stories.d.ts.map +1 -0
- package/dist/stories/story-helpers.d.ts +10 -0
- package/dist/stories/story-helpers.d.ts.map +1 -0
- package/dist/styles/shared-input-field-styles.d.ts.map +1 -1
- package/dist/styles/shared-input-field-styles.js +13 -19
- package/dist/styles/shared-input-styles.d.ts.map +1 -1
- package/dist/styles/shared-input-styles.js +18 -14
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +11 -4
- package/dist/pd-form-container/form-container.stories.d.ts +0 -28
- package/dist/pd-form-container/form-container.stories.d.ts.map +0 -1
- package/dist/pd-form-container/form-container2.stories.d.ts +0 -8
- package/dist/pd-form-container/form-container2.stories.d.ts.map +0 -1
- package/dist/pd-form-container/form-container3.stories.d.ts +0 -11
- package/dist/pd-form-container/form-container3.stories.d.ts.map +0 -1
- package/dist/stories/01_index.stories.d.ts +0 -58
- package/dist/stories/01_index.stories.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PdFormRow.d.ts","sourceRoot":"","sources":["../../src/pd-form-row/PdFormRow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PdFormRow.d.ts","sourceRoot":"","sources":["../../src/pd-form-row/PdFormRow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAsB,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAIzE,OAAO,0CAA0C,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,iCAAiC,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,SAAU,SAAQ,QAAQ;IACrC;;;OAGG;IAEH,UAAU,EAAE,MAAM,CAAM;IAExB,OAAgB,MAAM,EAAE,cAAc,CA8HpC;IAEO,MAAM,IAAI,cAAc;CAsBlC"}
|
|
@@ -1,110 +1,176 @@
|
|
|
1
|
-
import { css, html } from 'lit';
|
|
1
|
+
import { css, nothing, html } from 'lit';
|
|
2
|
+
import { property } from 'lit/decorators.js';
|
|
3
|
+
import { pdIcons } from '@progressive-development/pd-icon';
|
|
4
|
+
import '@progressive-development/pd-icon/pd-icon';
|
|
2
5
|
import { PdBaseUI } from '../base/pd-base-ui.js';
|
|
6
|
+
import '../pd-hover-box.js';
|
|
3
7
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
10
|
+
var result = void 0 ;
|
|
11
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
12
|
+
if (decorator = decorators[i])
|
|
13
|
+
result = (decorator(target, key, result) ) || result;
|
|
14
|
+
if (result) __defProp(target, key, result);
|
|
15
|
+
return result;
|
|
16
|
+
};
|
|
8
17
|
class PdFormRow extends PdBaseUI {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.helperText = "";
|
|
21
|
+
}
|
|
9
22
|
static {
|
|
10
23
|
this.styles = [
|
|
11
24
|
PdBaseUI.styles,
|
|
12
25
|
css`
|
|
13
26
|
:host {
|
|
14
|
-
|
|
15
|
-
--
|
|
16
|
-
--
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
27
|
+
--_gap: var(--pd-form-row-gap, 20px);
|
|
28
|
+
--_align: var(--pd-form-row-align-items, flex-start);
|
|
29
|
+
--_helper-width: var(--pd-form-row-helper-width, 0);
|
|
30
|
+
|
|
31
|
+
display: grid;
|
|
32
|
+
grid-template-columns: repeat(12, 1fr) var(--_helper-width);
|
|
33
|
+
column-gap: var(--_gap);
|
|
34
|
+
row-gap: 0;
|
|
35
|
+
align-items: var(--_align);
|
|
21
36
|
width: 100%;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
padding-top: var(--pd-form-row-padding-top, 0.8rem);
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
container-type: inline-size;
|
|
39
|
+
container-name: form-row;
|
|
26
40
|
}
|
|
27
41
|
|
|
28
|
-
|
|
29
|
-
|
|
42
|
+
/* Reserve space for helper icon column (for consistent alignment across rows) */
|
|
43
|
+
:host([with-helper-space]) {
|
|
44
|
+
--_helper-width: var(--pd-form-row-helper-width, 32px);
|
|
30
45
|
}
|
|
31
46
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
);
|
|
47
|
+
/* Extra top margin for visually separating sections (e.g. button rows) */
|
|
48
|
+
:host([gap-top]) {
|
|
49
|
+
margin-top: var(--pd-form-row-gap-top, 1.2rem);
|
|
36
50
|
}
|
|
37
51
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
52
|
+
/* Default: full width (12 columns) */
|
|
53
|
+
::slotted(*) {
|
|
54
|
+
grid-column: span 12;
|
|
55
|
+
/* Override fixed width from pd-input etc. to fill grid cell */
|
|
56
|
+
--pd-input-field-width: 100%;
|
|
42
57
|
}
|
|
43
58
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
);
|
|
59
|
+
/* Semantic span values */
|
|
60
|
+
::slotted([span="quarter"]) {
|
|
61
|
+
grid-column: span 3;
|
|
48
62
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
--pd-input-field-width: calc(
|
|
52
|
-
((var(--my-row-width) - 8px) * 0.5) - (var(--my-gap) / 2)
|
|
53
|
-
);
|
|
63
|
+
::slotted([span="third"]) {
|
|
64
|
+
grid-column: span 4;
|
|
54
65
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
--pd-input-field-width: calc(
|
|
58
|
-
var(--my-row-width) * 0.75 - (var(--my-gap) * 0.25)
|
|
59
|
-
);
|
|
66
|
+
::slotted([span="half"]) {
|
|
67
|
+
grid-column: span 6;
|
|
60
68
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
--pd-input-field-width: calc(
|
|
64
|
-
(var(--my-row-width) - 10px) * 0.75 - (var(--my-gap) * 0.25)
|
|
65
|
-
);
|
|
69
|
+
::slotted([span="two-thirds"]) {
|
|
70
|
+
grid-column: span 8;
|
|
66
71
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
::slotted([span="three-quarters"]) {
|
|
73
|
+
grid-column: span 9;
|
|
74
|
+
}
|
|
75
|
+
::slotted([span="full"]) {
|
|
76
|
+
grid-column: span 12;
|
|
70
77
|
}
|
|
71
78
|
|
|
72
|
-
|
|
73
|
-
|
|
79
|
+
/* Numeric span values */
|
|
80
|
+
::slotted([span="1"]) {
|
|
81
|
+
grid-column: span 1;
|
|
82
|
+
}
|
|
83
|
+
::slotted([span="2"]) {
|
|
84
|
+
grid-column: span 2;
|
|
85
|
+
}
|
|
86
|
+
::slotted([span="3"]) {
|
|
87
|
+
grid-column: span 3;
|
|
88
|
+
}
|
|
89
|
+
::slotted([span="4"]) {
|
|
90
|
+
grid-column: span 4;
|
|
91
|
+
}
|
|
92
|
+
::slotted([span="5"]) {
|
|
93
|
+
grid-column: span 5;
|
|
94
|
+
}
|
|
95
|
+
::slotted([span="6"]) {
|
|
96
|
+
grid-column: span 6;
|
|
97
|
+
}
|
|
98
|
+
::slotted([span="7"]) {
|
|
99
|
+
grid-column: span 7;
|
|
100
|
+
}
|
|
101
|
+
::slotted([span="8"]) {
|
|
102
|
+
grid-column: span 8;
|
|
103
|
+
}
|
|
104
|
+
::slotted([span="9"]) {
|
|
105
|
+
grid-column: span 9;
|
|
106
|
+
}
|
|
107
|
+
::slotted([span="10"]) {
|
|
108
|
+
grid-column: span 10;
|
|
109
|
+
}
|
|
110
|
+
::slotted([span="11"]) {
|
|
111
|
+
grid-column: span 11;
|
|
112
|
+
}
|
|
113
|
+
::slotted([span="12"]) {
|
|
114
|
+
grid-column: span 12;
|
|
74
115
|
}
|
|
75
116
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
117
|
+
/* Helper column - always present for consistent alignment */
|
|
118
|
+
.helper-column {
|
|
119
|
+
display: flex;
|
|
120
|
+
align-items: center;
|
|
121
|
+
justify-content: center;
|
|
122
|
+
align-self: stretch;
|
|
123
|
+
min-height: 1px;
|
|
124
|
+
/* Offset to align with input field (below label) */
|
|
125
|
+
padding-top: 1.2em;
|
|
80
126
|
}
|
|
81
127
|
|
|
82
|
-
|
|
83
|
-
:
|
|
84
|
-
|
|
85
|
-
--my-gap: 10px;
|
|
86
|
-
}
|
|
128
|
+
.help-icon {
|
|
129
|
+
--pd-icon-size: 20px;
|
|
130
|
+
cursor: help;
|
|
87
131
|
}
|
|
88
132
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
133
|
+
/* Responsive stacking: when row width < 400px, stack all elements vertically */
|
|
134
|
+
@container form-row (max-width: 400px) {
|
|
135
|
+
::slotted(*) {
|
|
136
|
+
grid-column: 1 / -2 !important;
|
|
137
|
+
margin-top: 0.3em;
|
|
138
|
+
}
|
|
139
|
+
::slotted(*:first-child) {
|
|
140
|
+
margin-top: 0;
|
|
93
141
|
}
|
|
94
142
|
}
|
|
95
143
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
--my-gap: 8px;
|
|
100
|
-
}
|
|
144
|
+
/* Disable stacking behavior - elements keep their span values regardless of container width */
|
|
145
|
+
:host([no-stack]) {
|
|
146
|
+
container-type: normal;
|
|
101
147
|
}
|
|
102
148
|
`
|
|
103
149
|
];
|
|
104
150
|
}
|
|
105
151
|
render() {
|
|
106
|
-
return html
|
|
152
|
+
return html`
|
|
153
|
+
<slot></slot>
|
|
154
|
+
<div class="helper-column">
|
|
155
|
+
${this.helperText ? html`
|
|
156
|
+
<pd-hover-box>
|
|
157
|
+
<pd-icon
|
|
158
|
+
slot="normal-view"
|
|
159
|
+
icon="${pdIcons.ICON_HELP}"
|
|
160
|
+
?activeIcon="${true}"
|
|
161
|
+
class="help-icon"
|
|
162
|
+
aria-label="Help"
|
|
163
|
+
role="img"
|
|
164
|
+
></pd-icon>
|
|
165
|
+
<p slot="info-view">${this.helperText}</p>
|
|
166
|
+
</pd-hover-box>
|
|
167
|
+
` : nothing}
|
|
168
|
+
</div>
|
|
169
|
+
`;
|
|
107
170
|
}
|
|
108
171
|
}
|
|
172
|
+
__decorateClass([
|
|
173
|
+
property({ type: String, attribute: "helper-text" })
|
|
174
|
+
], PdFormRow.prototype, "helperText");
|
|
109
175
|
|
|
110
176
|
export { PdFormRow };
|
|
@@ -1,27 +1,43 @@
|
|
|
1
|
-
import { StoryObj } from '@storybook/web-components';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
1
|
+
import { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
interface PdFormRowArgs {
|
|
3
|
+
"helper-text": string;
|
|
4
|
+
"no-stack": boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* ## pd-form-row
|
|
8
|
+
*
|
|
9
|
+
* Responsive 12-column grid container for form elements.
|
|
10
|
+
*
|
|
11
|
+
* ### Features
|
|
12
|
+
* - CSS Grid with 12 columns for precise layout control
|
|
13
|
+
* - Container Query based responsive behavior (stacks below 400px)
|
|
14
|
+
* - `no-stack` attribute to disable stacking
|
|
15
|
+
* - Optional helper text with hover icon
|
|
16
|
+
* - Configurable gap and alignment
|
|
17
|
+
*
|
|
18
|
+
* ### Span Values
|
|
19
|
+
* Semantic: `quarter` (25%), `third` (33%), `half` (50%), `two-thirds` (66%), `three-quarters` (75%), `full` (100%)
|
|
20
|
+
* Numeric: `1` through `12` for fine-grained control
|
|
21
|
+
*/
|
|
22
|
+
declare const meta: Meta<PdFormRowArgs>;
|
|
24
23
|
export default meta;
|
|
25
|
-
type Story = StoryObj
|
|
26
|
-
|
|
24
|
+
type Story = StoryObj<PdFormRowArgs>;
|
|
25
|
+
/** Default form row with a single full-width input. */
|
|
26
|
+
export declare const Default: Story;
|
|
27
|
+
/** Overview of all semantic span values. */
|
|
28
|
+
export declare const AllSpanValues: Story;
|
|
29
|
+
/** Common layout patterns with mixed span values. */
|
|
30
|
+
export declare const CommonPatterns: Story;
|
|
31
|
+
/** Rows with helper text hover icons. */
|
|
32
|
+
export declare const WithHelperText: Story;
|
|
33
|
+
/** Disable responsive stacking with no-stack attribute. */
|
|
34
|
+
export declare const NoStack: Story;
|
|
35
|
+
/** Buttons alongside inputs in the same row. */
|
|
36
|
+
export declare const ButtonWithInput: Story;
|
|
37
|
+
/** Using pd-form-field wrapper for custom content in the grid. */
|
|
38
|
+
export declare const WithFormFieldWrapper: Story;
|
|
39
|
+
/** Complete address form as a real-world pattern. */
|
|
40
|
+
export declare const AddressFormExample: Story;
|
|
41
|
+
/** CSS Custom Properties -- Branded and Redesigned variants. */
|
|
42
|
+
export declare const CustomStyling: Story;
|
|
27
43
|
//# sourceMappingURL=pd-form-row.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pd-form-row.stories.d.ts","sourceRoot":"","sources":["../../src/pd-form-row/pd-form-row.stories.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pd-form-row.stories.d.ts","sourceRoot":"","sources":["../../src/pd-form-row/pd-form-row.stories.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,kBAAkB,CAAC;AAC1B,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,2BAA2B,CAAC;AACnC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,yCAAyC,CAAC;AACjD,OAAO,2BAA2B,CAAC;AAMnC,UAAU,aAAa;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;CACrB;AAgBD;;;;;;;;;;;;;;;GAeG;AACH,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,aAAa,CA2E7B,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;AAMrC,uDAAuD;AACvD,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAMF,4CAA4C;AAC5C,eAAO,MAAM,aAAa,EAAE,KAgD3B,CAAC;AAMF,qDAAqD;AACrD,eAAO,MAAM,cAAc,EAAE,KAyD5B,CAAC;AAMF,yCAAyC;AACzC,eAAO,MAAM,cAAc,EAAE,KAwB5B,CAAC;AAMF,2DAA2D;AAC3D,eAAO,MAAM,OAAO,EAAE,KAwCrB,CAAC;AAMF,gDAAgD;AAChD,eAAO,MAAM,eAAe,EAAE,KAgD7B,CAAC;AAMF,kEAAkE;AAClE,eAAO,MAAM,oBAAoB,EAAE,KAwBlC,CAAC;AAMF,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,EAAE,KA8BhC,CAAC;AAMF,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,KAuD3B,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { LitElement, CSSResultGroup, TemplateResult } from 'lit';
|
|
2
|
+
import { pdSchema } from '@progressive-development/pd-model';
|
|
3
|
+
type SchemaEntry = pdSchema.SchemaEntry;
|
|
4
|
+
type SchemaFieldData = pdSchema.SchemaFieldData;
|
|
5
|
+
export declare class PdGenericForm extends LitElement {
|
|
6
|
+
/** Schema definition of the form fields. */
|
|
7
|
+
schema: SchemaEntry[];
|
|
8
|
+
/** Current data (Key = fieldId). */
|
|
9
|
+
data: SchemaFieldData;
|
|
10
|
+
/** Display mode: 'view' = data display, 'edit' = form. */
|
|
11
|
+
mode: "view" | "edit";
|
|
12
|
+
/** Disables all fields in edit mode. */
|
|
13
|
+
disabled: boolean;
|
|
14
|
+
/** Tracked form values for conditional visibility (showWhen). */
|
|
15
|
+
private _formValues;
|
|
16
|
+
static styles: CSSResultGroup;
|
|
17
|
+
connectedCallback(): void;
|
|
18
|
+
disconnectedCallback(): void;
|
|
19
|
+
private _onFieldChange;
|
|
20
|
+
private _isVisible;
|
|
21
|
+
/**
|
|
22
|
+
* Extracts schema fields from raw form values
|
|
23
|
+
* and converts them into typed SchemaFieldData.
|
|
24
|
+
*
|
|
25
|
+
* @param formValues - Raw values from pd-form-container.getValues().origin
|
|
26
|
+
*/
|
|
27
|
+
extractFormData(formValues: Record<string, unknown>): SchemaFieldData;
|
|
28
|
+
private _extractField;
|
|
29
|
+
protected render(): TemplateResult;
|
|
30
|
+
private _renderView;
|
|
31
|
+
private _renderViewField;
|
|
32
|
+
private _formatForView;
|
|
33
|
+
private _renderEdit;
|
|
34
|
+
/** InputType → pd-input fieldType mapping */
|
|
35
|
+
private static _fieldTypeMap;
|
|
36
|
+
/** Single field wrapped in its own pd-form-row. */
|
|
37
|
+
private _renderFieldInRow;
|
|
38
|
+
/** Multiple fields in a single pd-form-row. */
|
|
39
|
+
private _renderRow;
|
|
40
|
+
/** Fieldset with nested pd-form-rows per row entry. */
|
|
41
|
+
private _renderFieldset;
|
|
42
|
+
/** Renders a field control (without pd-form-row wrapper), respecting field.span. */
|
|
43
|
+
private _renderFieldControl;
|
|
44
|
+
private _renderBooleanControl;
|
|
45
|
+
private _renderTextareaControl;
|
|
46
|
+
private _renderSelectControl;
|
|
47
|
+
private _renderInputControl;
|
|
48
|
+
}
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=PdGenericForm.d.ts.map
|
|
@@ -0,0 +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"}
|