@sfxcode/formkit-primevue 4.2.1 → 4.2.2

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.
@@ -35,6 +35,7 @@ export interface FormKitPrimeListboxProps {
35
35
  transferContainerClass?: string;
36
36
  transferListContainerClass?: string;
37
37
  transferButtonClass?: string;
38
+ transferDragDrop?: boolean;
38
39
  }
39
40
  declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
40
41
  context: {
@@ -39,6 +39,7 @@ export interface FormKitPrimeListboxProps {
39
39
  transferContainerClass?: string
40
40
  transferListContainerClass?: string
41
41
  transferButtonClass?: string
42
+ transferDragDrop?: boolean
42
43
  }
43
44
 
44
45
  const props = defineProps({
@@ -67,6 +68,14 @@ const transferButtonSeverity = computed(() => {
67
68
  return props.context.transferButtonSeverity || 'secondary'
68
69
  })
69
70
 
71
+ const transferDragDrop = computed(() => {
72
+ return props.context.transferDragDrop ?? true
73
+ })
74
+
75
+ const transferSlotNames = computed(() => {
76
+ return validSlotNames.value.filter((slotName: string) => slotName !== 'option')
77
+ })
78
+
70
79
  // Transfer List functionality
71
80
  const optionValueKey = computed(() => {
72
81
  const key = props.context.optionValue
@@ -109,6 +118,121 @@ const sourceItems = computed(() => {
109
118
  })
110
119
  })
111
120
 
121
+ type TransferList = 'source' | 'target'
122
+
123
+ const dragSource = ref<TransferList | null>(null)
124
+ const draggedItems = ref<any[]>([])
125
+ const activeDropzone = ref<TransferList | null>(null)
126
+
127
+ function getComparableValue(item: any): any {
128
+ const valueKey = optionValueKey.value
129
+ return valueKey && typeof item === 'object' ? item?.[valueKey] : item
130
+ }
131
+
132
+ function isSameOption(left: any, right: any): boolean {
133
+ return getComparableValue(left) === getComparableValue(right)
134
+ }
135
+
136
+ function getUniqueItems(items: any[]): any[] {
137
+ return items.filter((item, index) => items.findIndex(candidate => isSameOption(candidate, item)) === index)
138
+ }
139
+
140
+ function mergeUniqueItems(base: any[], toAdd: any[]): any[] {
141
+ return [...base, ...toAdd.filter(item => !base.some(candidate => isSameOption(candidate, item)))]
142
+ }
143
+
144
+ function getDraggableItems(origin: TransferList, option: any): any[] {
145
+ const selection = origin === 'source' ? sourceSelection.value : targetSelection.value
146
+ if (!selection.length)
147
+ return [option]
148
+
149
+ const hasOptionSelected = selection.some(item => isSameOption(item, option))
150
+ return hasOptionSelected ? getUniqueItems(selection) : [option]
151
+ }
152
+
153
+ function clearDragState() {
154
+ dragSource.value = null
155
+ draggedItems.value = []
156
+ activeDropzone.value = null
157
+ }
158
+
159
+ function canDropInto(target: TransferList): boolean {
160
+ return transferDragDrop.value
161
+ && !props.context.disabled
162
+ && !!dragSource.value
163
+ && dragSource.value !== target
164
+ && draggedItems.value.length > 0
165
+ }
166
+
167
+ function handleOptionDragStart(origin: TransferList, option: any, event: DragEvent) {
168
+ if (!transferDragDrop.value || props.context.disabled)
169
+ return
170
+
171
+ draggedItems.value = getDraggableItems(origin, option)
172
+ dragSource.value = origin
173
+ if (event.dataTransfer) {
174
+ event.dataTransfer.effectAllowed = 'move'
175
+ event.dataTransfer.setData('text/plain', 'formkit-primevue-transfer')
176
+ }
177
+ }
178
+
179
+ function handleOptionDragEnd() {
180
+ clearDragState()
181
+ }
182
+
183
+ function handleDropzoneDragOver(target: TransferList, event: DragEvent) {
184
+ if (!canDropInto(target))
185
+ return
186
+
187
+ event.preventDefault()
188
+ activeDropzone.value = target
189
+ if (event.dataTransfer)
190
+ event.dataTransfer.dropEffect = 'move'
191
+ }
192
+
193
+ function handleDropzoneDragLeave(target: TransferList) {
194
+ if (activeDropzone.value === target)
195
+ activeDropzone.value = null
196
+ }
197
+
198
+ function handleDropzoneDrop(target: TransferList, event: DragEvent) {
199
+ if (!canDropInto(target)) {
200
+ clearDragState()
201
+ return
202
+ }
203
+
204
+ event.preventDefault()
205
+ if (target === 'target') {
206
+ targetItems.value = mergeUniqueItems(targetItems.value, draggedItems.value)
207
+ sourceSelection.value = []
208
+ }
209
+ else {
210
+ targetItems.value = targetItems.value.filter(item => !draggedItems.value.some(dragged => isSameOption(dragged, item)))
211
+ targetSelection.value = []
212
+ }
213
+
214
+ clearDragState()
215
+ }
216
+
217
+ function resolveOptionDisabled(option: any): boolean {
218
+ const optionDisabled = props.context.optionDisabled
219
+ if (!optionDisabled)
220
+ return false
221
+ if (typeof optionDisabled === 'function')
222
+ return !!optionDisabled(option)
223
+ if (typeof optionDisabled === 'string')
224
+ return !!option?.[optionDisabled]
225
+ return !!optionDisabled
226
+ }
227
+
228
+ function resolveOptionLabel(option: any): string {
229
+ if (!props.context.optionLabel)
230
+ return String(option)
231
+ if (typeof props.context.optionLabel === 'function')
232
+ return String(props.context.optionLabel(option))
233
+ return String(option?.[props.context.optionLabel] ?? option)
234
+ }
235
+
112
236
  function transferSelected() {
113
237
  if (sourceSelection.value.length === 0)
114
238
  return
@@ -216,7 +340,12 @@ watch(() => modelValue.value, (newVal) => {
216
340
  :class="transferContainerClass"
217
341
  >
218
342
  <!-- Source List -->
219
- <div :class="transferListContainerClass">
343
+ <div
344
+ :class="[transferListContainerClass, { 'p-formkit-transfer-dropzone-active': activeDropzone === 'source' }]"
345
+ @dragover="handleDropzoneDragOver('source', $event)"
346
+ @dragleave="handleDropzoneDragLeave('source')"
347
+ @drop="handleDropzoneDrop('source', $event)"
348
+ >
220
349
  <span
221
350
  v-if="context.transferLeftHeaderText"
222
351
  :class="transferHeaderClass"
@@ -254,7 +383,23 @@ watch(() => modelValue.value, (newVal) => {
254
383
  :unstyled="unstyled"
255
384
  @blur="handleBlur"
256
385
  >
257
- <template v-for="slotName in validSlotNames" :key="slotName" #[slotName]="slotProps">
386
+ <template #option="slotProps">
387
+ <div
388
+ :draggable="transferDragDrop && !context.disabled && !resolveOptionDisabled(slotProps.option)"
389
+ class="p-formkit-transfer-option"
390
+ :class="{ 'p-formkit-transfer-option-draggable': transferDragDrop && !context.disabled && !resolveOptionDisabled(slotProps.option) }"
391
+ @dragstart="handleOptionDragStart('source', slotProps.option, $event)"
392
+ @dragend="handleOptionDragEnd"
393
+ >
394
+ <component
395
+ :is="context?.slots.option"
396
+ v-if="context?.slots?.option"
397
+ v-bind="{ ...context, ...slotProps }"
398
+ />
399
+ <span v-else>{{ resolveOptionLabel(slotProps.option) }}</span>
400
+ </div>
401
+ </template>
402
+ <template v-for="slotName in transferSlotNames" :key="slotName" #[slotName]="slotProps">
258
403
  <component :is="context?.slots[slotName]" v-bind="{ ...context, ...slotProps }" />
259
404
  </template>
260
405
  </Listbox>
@@ -303,7 +448,12 @@ watch(() => modelValue.value, (newVal) => {
303
448
  </div>
304
449
 
305
450
  <!-- Target List -->
306
- <div :class="transferListContainerClass">
451
+ <div
452
+ :class="[transferListContainerClass, { 'p-formkit-transfer-dropzone-active': activeDropzone === 'target' }]"
453
+ @dragover="handleDropzoneDragOver('target', $event)"
454
+ @dragleave="handleDropzoneDragLeave('target')"
455
+ @drop="handleDropzoneDrop('target', $event)"
456
+ >
307
457
  <span
308
458
  v-if="context.transferRightHeaderText"
309
459
  :class="transferHeaderClass"
@@ -341,7 +491,23 @@ watch(() => modelValue.value, (newVal) => {
341
491
  :unstyled="unstyled"
342
492
  @blur="handleBlur"
343
493
  >
344
- <template v-for="slotName in validSlotNames" :key="slotName" #[slotName]="slotProps">
494
+ <template #option="slotProps">
495
+ <div
496
+ :draggable="transferDragDrop && !context.disabled && !resolveOptionDisabled(slotProps.option)"
497
+ class="p-formkit-transfer-option"
498
+ :class="{ 'p-formkit-transfer-option-draggable': transferDragDrop && !context.disabled && !resolveOptionDisabled(slotProps.option) }"
499
+ @dragstart="handleOptionDragStart('target', slotProps.option, $event)"
500
+ @dragend="handleOptionDragEnd"
501
+ >
502
+ <component
503
+ :is="context?.slots.option"
504
+ v-if="context?.slots?.option"
505
+ v-bind="{ ...context, ...slotProps }"
506
+ />
507
+ <span v-else>{{ resolveOptionLabel(slotProps.option) }}</span>
508
+ </div>
509
+ </template>
510
+ <template v-for="slotName in transferSlotNames" :key="slotName" #[slotName]="slotProps">
345
511
  <component :is="context?.slots[slotName]" v-bind="{ ...context, ...slotProps }" />
346
512
  </template>
347
513
  </Listbox>
@@ -350,10 +516,6 @@ watch(() => modelValue.value, (newVal) => {
350
516
  </template>
351
517
 
352
518
  <style scoped>
353
- .p-formkit-transfer {
354
- min-width: 600px;
355
- }
356
-
357
519
  .p-formkit-transfer :deep(.p-listbox) {
358
520
  width: 100%;
359
521
  height: 100%;
@@ -362,4 +524,9 @@ watch(() => modelValue.value, (newVal) => {
362
524
  .p-formkit-transfer :deep(.p-listbox-list-container) {
363
525
  max-height: none;
364
526
  }
527
+
528
+ .p-formkit-transfer-dropzone-active :deep(.p-listbox) {
529
+ outline: 2px dashed var(--p-primary-color);
530
+ outline-offset: 2px;
531
+ }
365
532
  </style>
@@ -35,6 +35,7 @@ export interface FormKitPrimeListboxProps {
35
35
  transferContainerClass?: string;
36
36
  transferListContainerClass?: string;
37
37
  transferButtonClass?: string;
38
+ transferDragDrop?: boolean;
38
39
  }
39
40
  declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
40
41
  context: {
@@ -73,7 +73,7 @@ const primeMultiSelectDefinition = exports.primeMultiSelectDefinition = (0, _vue
73
73
  family: "PrimeInput"
74
74
  });
75
75
  const primeListboxDefinition = exports.primeListboxDefinition = (0, _vue.createInput)(_PrimeListbox.default, {
76
- props: ["pt", "ptOptions", "unstyled", "options", "optionLabel", "optionValue", "multiple", "filter", "filterIcon", "filterPlaceholder", "filterLocale", "filterMatchMode", "autoOptionFocus", "selectOnFocus", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "dataKey", "metaKeySelection", "virtualScrollerOptions", "displayMode", "transferLeftHeaderText", "transferRightHeaderText", "transferHeaderClass", "transferAll"],
76
+ props: ["pt", "ptOptions", "unstyled", "options", "optionLabel", "optionValue", "multiple", "filter", "filterIcon", "filterPlaceholder", "filterLocale", "filterMatchMode", "autoOptionFocus", "selectOnFocus", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "dataKey", "metaKeySelection", "virtualScrollerOptions", "displayMode", "transferLeftHeaderText", "transferRightHeaderText", "transferHeaderClass", "transferAll", "transferButtonSeverity", "transferContainerClass", "transferListContainerClass", "transferButtonClass", "transferDragDrop"],
77
77
  family: "PrimeInput"
78
78
  });
79
79
  const primeDatePickerDefinition = exports.primeDatePickerDefinition = (0, _vue.createInput)(_PrimeDatePicker.default, {
@@ -66,7 +66,7 @@ export const primeMultiSelectDefinition = createInput(PrimeMultiSelect, {
66
66
  family: "PrimeInput"
67
67
  });
68
68
  export const primeListboxDefinition = createInput(PrimeListbox, {
69
- props: ["pt", "ptOptions", "unstyled", "options", "optionLabel", "optionValue", "multiple", "filter", "filterIcon", "filterPlaceholder", "filterLocale", "filterMatchMode", "autoOptionFocus", "selectOnFocus", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "dataKey", "metaKeySelection", "virtualScrollerOptions", "displayMode", "transferLeftHeaderText", "transferRightHeaderText", "transferHeaderClass", "transferAll"],
69
+ props: ["pt", "ptOptions", "unstyled", "options", "optionLabel", "optionValue", "multiple", "filter", "filterIcon", "filterPlaceholder", "filterLocale", "filterMatchMode", "autoOptionFocus", "selectOnFocus", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "dataKey", "metaKeySelection", "virtualScrollerOptions", "displayMode", "transferLeftHeaderText", "transferRightHeaderText", "transferHeaderClass", "transferAll", "transferButtonSeverity", "transferContainerClass", "transferListContainerClass", "transferButtonClass", "transferDragDrop"],
70
70
  family: "PrimeInput"
71
71
  });
72
72
  export const primeDatePickerDefinition = createInput(PrimeDatePicker, {
@@ -50,6 +50,7 @@ function addDragHandle(handleClass = "", iconClass = "", render = "true") {
50
50
  const primeRepeaterDefinition = exports.primeRepeaterDefinition = (0, _vue.createInput)(addElement("div", [addList("$listName", [addInsertButton("$insertButtonLabel", "pi pi-plus", "$insertButtonClass", "$insertButtonSize", "$node.children.length == 0 || $alwaysDisplayInsertButton"), addListGroup([addElement("div", [addDragHandle("$internalDragHandleClass", "$dragHandleIconClass", "$renderDragHandle"), {
51
51
  children: "$slots.default"
52
52
  }, addButtonGroup("$buttonGroupClass", "$buttonGroupItemClass", "$buttonSize", "$renderButtons")], {
53
+ id: "$getListItemId($index)",
53
54
  class: "$getListItemClass($index)",
54
55
  draggable: "$renderDragHandle",
55
56
  onDragstart: "$dragNodeStart($node.parent, $index)",
@@ -69,6 +70,7 @@ function addRepeaterHandler(node) {
69
70
  array.splice(index2, 0, array.splice(index1, 1)[0]);
70
71
  return array;
71
72
  };
73
+ const uuid = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2);
72
74
  node.on("created", () => {
73
75
  if (node.context) {
74
76
  let dragStartIndex = null;
@@ -84,11 +86,14 @@ function addRepeaterHandler(node) {
84
86
  node.context.internalDragHandleClass = node.context.dragHandleClass ? `formkit-repeater-drag-handle ${node.context.dragHandleClass}` : "formkit-repeater-drag-handle";
85
87
  node.context.internalListClass = node.context.listClass ? `formkit-items ${node.context.listClass}` : "formkit-items";
86
88
  node.context.internalListItemClass = node.context.listItemClass ? `formkit-item ${node.context.listItemClass}` : "formkit-item";
87
- node.context.internalListId = `formkit-prime-repeater-${String(node.props.id || node.name || "list").replace(/[^\w-]/g, "-")}`;
89
+ node.context.internalListId = `formkit-items-${uuid}`;
88
90
  node.context.getListItemClass = index => {
89
91
  if (dragOverIndex === index && dragStartIndex !== index) return `${node.context?.internalListItemClass} formkit-repeater-drop-target`;
90
92
  return node.context?.internalListItemClass?.toString() ?? "";
91
93
  };
94
+ node.context.getListItemId = index => {
95
+ return `formkit-item-${index}-${uuid}`;
96
+ };
92
97
  node.context.insertNode = parentNode => () => {
93
98
  if (parentNode && Array.isArray(parentNode._value)) {
94
99
  const newArray = [{
@@ -36,6 +36,7 @@ export const primeRepeaterDefinition = createInput(
36
36
  { children: "$slots.default" },
37
37
  addButtonGroup("$buttonGroupClass", "$buttonGroupItemClass", "$buttonSize", "$renderButtons")
38
38
  ], {
39
+ id: "$getListItemId($index)",
39
40
  class: "$getListItemClass($index)",
40
41
  draggable: "$renderDragHandle",
41
42
  onDragstart: "$dragNodeStart($node.parent, $index)",
@@ -57,6 +58,7 @@ function addRepeaterHandler(node) {
57
58
  array.splice(index2, 0, array.splice(index1, 1)[0]);
58
59
  return array;
59
60
  };
61
+ const uuid = typeof crypto !== "undefined" && crypto.randomUUID ? crypto.randomUUID() : Math.random().toString(36).slice(2);
60
62
  node.on("created", () => {
61
63
  if (node.context) {
62
64
  let dragStartIndex = null;
@@ -72,12 +74,15 @@ function addRepeaterHandler(node) {
72
74
  node.context.internalDragHandleClass = node.context.dragHandleClass ? `formkit-repeater-drag-handle ${node.context.dragHandleClass}` : "formkit-repeater-drag-handle";
73
75
  node.context.internalListClass = node.context.listClass ? `formkit-items ${node.context.listClass}` : "formkit-items";
74
76
  node.context.internalListItemClass = node.context.listItemClass ? `formkit-item ${node.context.listItemClass}` : "formkit-item";
75
- node.context.internalListId = `formkit-prime-repeater-${String(node.props.id || node.name || "list").replace(/[^\w-]/g, "-")}`;
77
+ node.context.internalListId = `formkit-items-${uuid}`;
76
78
  node.context.getListItemClass = (index) => {
77
79
  if (dragOverIndex === index && dragStartIndex !== index)
78
80
  return `${node.context?.internalListItemClass} formkit-repeater-drop-target`;
79
81
  return node.context?.internalListItemClass?.toString() ?? "";
80
82
  };
83
+ node.context.getListItemId = (index) => {
84
+ return `formkit-item-${index}-${uuid}`;
85
+ };
81
86
  node.context.insertNode = (parentNode) => () => {
82
87
  if (parentNode && Array.isArray(parentNode._value)) {
83
88
  const newArray = [{ ...newItem }, ...parentNode.value];
@@ -333,6 +333,20 @@ $grid-breakpoints: (
333
333
  gap: 0.5rem;
334
334
  }
335
335
 
336
+ .p-formkit-transfer-option {
337
+ width: 100%;
338
+ }
339
+
340
+ .p-formkit-transfer-option-draggable {
341
+ cursor: grab;
342
+ }
343
+
344
+ .p-formkit-transfer-option-draggable:active {
345
+ cursor: grabbing;
346
+ }
347
+
348
+
349
+
336
350
 
337
351
  // Debug
338
352
  .p-formkit-data-debug {
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- :root{--formkit-error-color: #ef9a9a}.formkit-form .formkit-messages{margin:.125rem 0;padding-top:.5rem;padding-left:.5rem}.formkit-form .formkit-message{list-style:none;padding:0;margin:0;color:var(--formkit-error-color);font-size:.8rem}.formkit-form .formkit-outer{padding-bottom:.8rem}.formkit-form .formkit-outer .formkit-messages{margin:.125rem 0;padding-top:.25rem;padding-left:0}.formkit-form .formkit-outer .formkit-inner .p-formkit .p-formkit-icon{box-sizing:border-box;width:100%}.formkit-form .formkit-outer .formkit-inner .p-formkit .p-inputtext,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-textarea,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-password,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-multiselect,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-select,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-editor{box-sizing:border-box;width:100%}.formkit-form .formkit-outer .formkit-inner .p-formkit .p-inputtext.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-textarea.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-password.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-multiselect.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-select.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-editor.p-colorpicker-preview{width:2rem}.formkit-form .formkit-outer .formkit-help{margin:.25rem 0 0 0;font-size:.8rem;color:var(--text-color-secondary)}.formkit-form .formkit-label{display:block;margin:0;padding-bottom:.5rem;font-weight:bold;font-size:.8rem}.formkit-form .p-formkit>*{margin-right:.5rem}.formkit-form .p-formkit>*:last-child,.formkit-form .p-formkit>*:only-child{margin-right:0}.formkit-form .p-formkit-options{display:flex;flex-wrap:wrap;gap:.5rem}.formkit-form .p-formkit-options .p-formkit-option{display:flex;align-items:center}.formkit-form .p-formkit-options .p-formkit-option label{margin-left:.5rem}.formkit-form .formkit-fieldset{margin:0;padding:0;border-radius:0;border:0}.formkit-form .formkit-fieldset:focus-within{border:0}.formkit-form .formkit-fieldset>.formkit-help{margin-top:0;margin-bottom:0}.formkit-form .formkit-legend{display:block;margin:0;padding:0}.formkit-form .formkit-actions{padding-top:.5rem;display:flex}.formkit-form .formkit-actions button{margin-right:.5rem}.formkit-form .p-action-buttons{margin-top:.25rem}.formkit-form .p-action-buttons .p-button{margin-right:.5rem}.formkit-form .p-action-buttons span .p-space{margin-right:3rem}.formkit-form .p-chip-item{align-items:center;background:var(--p-surface-500);color:var(--p-surface-0);border-radius:1rem;padding:.2rem .5rem}.formkit-form .formkit-repeater-drag-handle{display:inline-flex;align-items:center;cursor:grab;user-select:none}.formkit-form .formkit-item[draggable=true]{cursor:grab}.formkit-form .formkit-item[draggable=true]:active{cursor:grabbing}.formkit-form .formkit-item[draggable=true].formkit-repeater-drop-target{outline:1px dashed var(--p-primary-color, #3b82f6);outline-offset:2px;background:color-mix(in srgb, var(--p-primary-color, #3b82f6) 12%, transparent)}.p-formkit-data-view .formkit-outer{padding-bottom:.5rem}.p-formkit-data-view.form-horizontal{padding-bottom:.8rem}.p-formkit-data-view .formkit-help{padding-top:.25rem;margin:0}.p-formkit-data-view ul,.p-formkit-data-view ol{padding-inline-start:1rem;margin-block-start:0;margin-block-end:0}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper{display:flex;flex-wrap:wrap}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .formkit-inner{width:auto !important}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label{width:auto;order:2;padding:.125rem 0}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:after{content:""}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label+.formkit-inner{margin-left:0 !important;order:1;flex-basis:2rem;flex-grow:0;flex-shrink:0;overflow:hidden}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label+.formkit-inner:has(label){flex-grow:1;flex-basis:100%}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3),.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3)~label{width:auto}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3){order:1}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3)+div.p-checkbox{order:2;width:auto}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3)~label{order:3}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .formkit-inner:first-child{margin-left:0 !important}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .formkit-inner:first-child .p-formkit{display:flex}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .p-checkbox:not(:only-child){width:2rem;overflow:hidden}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-help{width:auto !important}.p-formkit-transfer{display:flex;align-items:stretch;gap:1rem;width:100%;min-width:600px}.p-formkit-transfer-list-container{display:flex;flex-direction:column;flex:1;gap:.5rem;min-width:0}.p-formkit-transfer-buttons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.p-formkit-data-debug pre,.p-formkit-data-debug span{font-size:.75rem;line-height:1rem}@media(min-width: 1024px){.formkit-form{display:flex;flex-wrap:wrap;margin-left:-0.5rem;margin-right:-0.5rem}.formkit-form>*{flex-shrink:0;width:100%;max-width:100%;padding-left:.5rem;padding-right:.5rem}.col-1{width:8.3333333333%}.col-2{width:16.6666666667%}.col-3{width:25%}.col-4{width:33.3333333333%}.col-5{width:41.6666666667%}.col-6{width:50%}.col-7{width:58.3333333333%}.col-8{width:66.6666666667%}.col-9{width:75%}.col-10{width:83.3333333333%}.col-11{width:91.6666666667%}.col-12{width:100%}}@media(min-width: 768px){.formkit-form.form-horizontal .formkit-wrapper{display:flex}.formkit-form.form-horizontal .formkit-wrapper label{display:inline-block;padding:0 .25rem 0 0;font-size:inherit}.formkit-form.form-horizontal .formkit-wrapper label:after{content:":"}}@media(min-width: 768px)and (min-width: 768px){.formkit-form.form-horizontal.form-horizontal-checkbox-indent .formkit-outer[data-type=primeCheckbox]{padding-left:33.3333333333%}}@media(min-width: 768px){.p-formkit-data-view .formkit-form.form-horizontal label{white-space:nowrap}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-outer{width:100%}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-outer label{width:33.3333333333%;padding-top:.25rem;line-height:normal}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-outer .formkit-inner{width:66.6666666667%}.p-formkit-data-edit .formkit-form.form-horizontal div[data-type=primeCheckbox] .formkit-inner{margin-left:auto}.p-formkit-data-edit .formkit-form.form-horizontal div[data-type=primeCheckbox] .formkit-inner .p-formkit{display:flex}.p-formkit-data-edit .formkit-form.form-horizontal div[data-type=primeCheckbox] .formkit-inner label{width:auto;padding:0}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-help,.p-formkit-data-edit .formkit-form.form-horizontal .formkit-messages{width:66.6666666667%;margin-left:auto}}
1
+ :root{--formkit-error-color: #ef9a9a}.formkit-form .formkit-messages{margin:.125rem 0;padding-top:.5rem;padding-left:.5rem}.formkit-form .formkit-message{list-style:none;padding:0;margin:0;color:var(--formkit-error-color);font-size:.8rem}.formkit-form .formkit-outer{padding-bottom:.8rem}.formkit-form .formkit-outer .formkit-messages{margin:.125rem 0;padding-top:.25rem;padding-left:0}.formkit-form .formkit-outer .formkit-inner .p-formkit .p-formkit-icon{box-sizing:border-box;width:100%}.formkit-form .formkit-outer .formkit-inner .p-formkit .p-inputtext,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-textarea,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-password,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-multiselect,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-select,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-editor{box-sizing:border-box;width:100%}.formkit-form .formkit-outer .formkit-inner .p-formkit .p-inputtext.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-textarea.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-password.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-multiselect.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-select.p-colorpicker-preview,.formkit-form .formkit-outer .formkit-inner .p-formkit .p-editor.p-colorpicker-preview{width:2rem}.formkit-form .formkit-outer .formkit-help{margin:.25rem 0 0 0;font-size:.8rem;color:var(--text-color-secondary)}.formkit-form .formkit-label{display:block;margin:0;padding-bottom:.5rem;font-weight:bold;font-size:.8rem}.formkit-form .p-formkit>*{margin-right:.5rem}.formkit-form .p-formkit>*:last-child,.formkit-form .p-formkit>*:only-child{margin-right:0}.formkit-form .p-formkit-options{display:flex;flex-wrap:wrap;gap:.5rem}.formkit-form .p-formkit-options .p-formkit-option{display:flex;align-items:center}.formkit-form .p-formkit-options .p-formkit-option label{margin-left:.5rem}.formkit-form .formkit-fieldset{margin:0;padding:0;border-radius:0;border:0}.formkit-form .formkit-fieldset:focus-within{border:0}.formkit-form .formkit-fieldset>.formkit-help{margin-top:0;margin-bottom:0}.formkit-form .formkit-legend{display:block;margin:0;padding:0}.formkit-form .formkit-actions{padding-top:.5rem;display:flex}.formkit-form .formkit-actions button{margin-right:.5rem}.formkit-form .p-action-buttons{margin-top:.25rem}.formkit-form .p-action-buttons .p-button{margin-right:.5rem}.formkit-form .p-action-buttons span .p-space{margin-right:3rem}.formkit-form .p-chip-item{align-items:center;background:var(--p-surface-500);color:var(--p-surface-0);border-radius:1rem;padding:.2rem .5rem}.formkit-form .formkit-repeater-drag-handle{display:inline-flex;align-items:center;cursor:grab;user-select:none}.formkit-form .formkit-item[draggable=true]{cursor:grab}.formkit-form .formkit-item[draggable=true]:active{cursor:grabbing}.formkit-form .formkit-item[draggable=true].formkit-repeater-drop-target{outline:1px dashed var(--p-primary-color, #3b82f6);outline-offset:2px;background:color-mix(in srgb, var(--p-primary-color, #3b82f6) 12%, transparent)}.p-formkit-data-view .formkit-outer{padding-bottom:.5rem}.p-formkit-data-view.form-horizontal{padding-bottom:.8rem}.p-formkit-data-view .formkit-help{padding-top:.25rem;margin:0}.p-formkit-data-view ul,.p-formkit-data-view ol{padding-inline-start:1rem;margin-block-start:0;margin-block-end:0}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper{display:flex;flex-wrap:wrap}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .formkit-inner{width:auto !important}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label{width:auto;order:2;padding:.125rem 0}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:after{content:""}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label+.formkit-inner{margin-left:0 !important;order:1;flex-basis:2rem;flex-grow:0;flex-shrink:0;overflow:hidden}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label+.formkit-inner:has(label){flex-grow:1;flex-basis:100%}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3),.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3)~label{width:auto}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3){order:1}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3)+div.p-checkbox{order:2;width:auto}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper label:first-child:nth-last-child(3)~label{order:3}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .formkit-inner:first-child{margin-left:0 !important}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .formkit-inner:first-child .p-formkit{display:flex}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-wrapper .p-checkbox:not(:only-child){width:2rem;overflow:hidden}.p-formkit-data-edit .formkit-outer[data-type=primeCheckbox] .formkit-help{width:auto !important}.p-formkit-transfer{display:flex;align-items:stretch;gap:1rem;width:100%;min-width:600px}.p-formkit-transfer-list-container{display:flex;flex-direction:column;flex:1;gap:.5rem;min-width:0}.p-formkit-transfer-buttons{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}.p-formkit-transfer-option{width:100%}.p-formkit-transfer-option-draggable{cursor:grab}.p-formkit-transfer-option-draggable:active{cursor:grabbing}.p-formkit-data-debug pre,.p-formkit-data-debug span{font-size:.75rem;line-height:1rem}@media(min-width: 1024px){.formkit-form{display:flex;flex-wrap:wrap;margin-left:-0.5rem;margin-right:-0.5rem}.formkit-form>*{flex-shrink:0;width:100%;max-width:100%;padding-left:.5rem;padding-right:.5rem}.col-1{width:8.3333333333%}.col-2{width:16.6666666667%}.col-3{width:25%}.col-4{width:33.3333333333%}.col-5{width:41.6666666667%}.col-6{width:50%}.col-7{width:58.3333333333%}.col-8{width:66.6666666667%}.col-9{width:75%}.col-10{width:83.3333333333%}.col-11{width:91.6666666667%}.col-12{width:100%}}@media(min-width: 768px){.formkit-form.form-horizontal .formkit-wrapper{display:flex}.formkit-form.form-horizontal .formkit-wrapper label{display:inline-block;padding:0 .25rem 0 0;font-size:inherit}.formkit-form.form-horizontal .formkit-wrapper label:after{content:":"}}@media(min-width: 768px)and (min-width: 768px){.formkit-form.form-horizontal.form-horizontal-checkbox-indent .formkit-outer[data-type=primeCheckbox]{padding-left:33.3333333333%}}@media(min-width: 768px){.p-formkit-data-view .formkit-form.form-horizontal label{white-space:nowrap}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-outer{width:100%}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-outer label{width:33.3333333333%;padding-top:.25rem;line-height:normal}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-outer .formkit-inner{width:66.6666666667%}.p-formkit-data-edit .formkit-form.form-horizontal div[data-type=primeCheckbox] .formkit-inner{margin-left:auto}.p-formkit-data-edit .formkit-form.form-horizontal div[data-type=primeCheckbox] .formkit-inner .p-formkit{display:flex}.p-formkit-data-edit .formkit-form.form-horizontal div[data-type=primeCheckbox] .formkit-inner label{width:auto;padding:0}.p-formkit-data-edit .formkit-form.form-horizontal .formkit-help,.p-formkit-data-edit .formkit-form.form-horizontal .formkit-messages{width:66.6666666667%;margin-left:auto}}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sfxcode/formkit-primevue",
3
3
  "type": "module",
4
- "version": "4.2.1",
4
+ "version": "4.2.2",
5
5
  "packageManager": "pnpm@11.0.9+sha512.34ce82e6780233cf9cad8685029a8f81d2e06196c5a9bad98879f7424940c6817c4e4524fb7d38b8553ceed48b9758b8ebaf1abd3600c232c4c8cf7366086f38",
6
6
  "author": {
7
7
  "name": "Tom",