@oods/components-vue 0.3.3 → 0.4.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.
- package/README.md +1 -1
- package/dist/index.cjs +184 -100
- package/dist/index.d.cts +229 -14
- package/dist/index.d.ts +229 -14
- package/dist/index.js +185 -103
- package/dist/ported.cjs +163 -93
- package/dist/ported.d.cts +2 -1
- package/dist/ported.d.ts +2 -1
- package/dist/ported.js +165 -95
- package/evidence/vue-readiness.v1.json +147 -1
- package/package.json +3 -3
package/dist/ported.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { dateTimeInputValue, formatDateTime, formatReadOnlyValue, currencyMinorUnits } from '@oods/component-contracts';
|
|
2
|
-
import { defineComponent, h,
|
|
1
|
+
import { dateTimeInputValue, formatDateTime, formatReadOnlyValue, STATUS_ICON_SVG_ATTRS, STATUS_ICON_SHAPES, getStatusPresentation, resolveStatusIcon, currencyMinorUnits } from '@oods/component-contracts';
|
|
2
|
+
import { defineComponent, h, useId, computed, ref, onMounted, watch, onBeforeUnmount } from 'vue';
|
|
3
3
|
|
|
4
4
|
// src/ported.ts
|
|
5
|
+
function statusIcon(name) {
|
|
6
|
+
return h("svg", { ...STATUS_ICON_SVG_ATTRS }, STATUS_ICON_SHAPES[name].map((shape) => h(shape.tag, { ...shape.attrs })));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/primitives.ts
|
|
5
10
|
var toneProp = String;
|
|
6
11
|
var emphasisProp = String;
|
|
7
12
|
var sizeProp = String;
|
|
@@ -142,7 +147,7 @@ defineComponent({
|
|
|
142
147
|
class: "oods-banner-dismiss oods-banner__dismiss",
|
|
143
148
|
"aria-label": props.dismissLabel,
|
|
144
149
|
onClick: () => emit("dismiss")
|
|
145
|
-
}, [
|
|
150
|
+
}, [statusIcon("x")]) : null
|
|
146
151
|
]);
|
|
147
152
|
};
|
|
148
153
|
}
|
|
@@ -152,7 +157,7 @@ defineComponent({
|
|
|
152
157
|
props: {
|
|
153
158
|
content: { type: [String, Number], default: "" },
|
|
154
159
|
intent: { type: String, default: "neutral" },
|
|
155
|
-
size: { type:
|
|
160
|
+
size: { type: String, default: "md" },
|
|
156
161
|
disabled: Boolean,
|
|
157
162
|
type: { type: String, default: "button" }
|
|
158
163
|
},
|
|
@@ -179,6 +184,83 @@ defineComponent({
|
|
|
179
184
|
}, [slotOrValue(slots.default, props.content)]);
|
|
180
185
|
}
|
|
181
186
|
});
|
|
187
|
+
var canShowModal = () => typeof HTMLDialogElement !== "undefined" && typeof HTMLDialogElement.prototype.showModal === "function";
|
|
188
|
+
defineComponent({
|
|
189
|
+
name: "OodsDialog",
|
|
190
|
+
props: {
|
|
191
|
+
id: String,
|
|
192
|
+
open: Boolean,
|
|
193
|
+
modal: { type: Boolean, default: true },
|
|
194
|
+
title: { type: String, default: "" },
|
|
195
|
+
description: String,
|
|
196
|
+
dismissLabel: { type: String, default: "Close" },
|
|
197
|
+
size: { type: String, default: "md" },
|
|
198
|
+
actions: { type: [String, Number, Object, Array], default: void 0 }
|
|
199
|
+
},
|
|
200
|
+
emits: {
|
|
201
|
+
close: () => true
|
|
202
|
+
},
|
|
203
|
+
setup(props, { emit, slots }) {
|
|
204
|
+
const generatedId = useId().replace(/[^\w-]/g, "");
|
|
205
|
+
const dialogId = computed(() => props.id || `oods-dialog-${generatedId}`);
|
|
206
|
+
const element = ref(null);
|
|
207
|
+
const mounted = ref(false);
|
|
208
|
+
const managed = computed(() => props.modal && mounted.value && canShowModal());
|
|
209
|
+
const sync = () => {
|
|
210
|
+
const dialog = element.value;
|
|
211
|
+
if (!dialog || !managed.value) return;
|
|
212
|
+
if (props.open && !dialog.open) dialog.showModal();
|
|
213
|
+
else if (!props.open && dialog.open) dialog.close();
|
|
214
|
+
};
|
|
215
|
+
onMounted(() => {
|
|
216
|
+
mounted.value = true;
|
|
217
|
+
});
|
|
218
|
+
watch([() => props.open, managed], sync, { flush: "post" });
|
|
219
|
+
const requestClose = (event) => {
|
|
220
|
+
event.preventDefault();
|
|
221
|
+
emit("close");
|
|
222
|
+
};
|
|
223
|
+
return () => {
|
|
224
|
+
const titleId = `${dialogId.value}-title`;
|
|
225
|
+
const descriptionId = `${dialogId.value}-description`;
|
|
226
|
+
const actions = slotOrValue(slots.actions, props.actions);
|
|
227
|
+
return h("dialog", {
|
|
228
|
+
ref: element,
|
|
229
|
+
id: dialogId.value,
|
|
230
|
+
class: "oods-dialog",
|
|
231
|
+
"data-oods-component": "Dialog",
|
|
232
|
+
"data-size": props.size,
|
|
233
|
+
"aria-labelledby": titleId,
|
|
234
|
+
"aria-describedby": props.description ? descriptionId : void 0,
|
|
235
|
+
open: managed.value ? void 0 : props.open,
|
|
236
|
+
onKeydown: (event) => {
|
|
237
|
+
if (event.key === "Escape" && !event.defaultPrevented) requestClose(event);
|
|
238
|
+
},
|
|
239
|
+
onCancel: requestClose,
|
|
240
|
+
// The browser closed it (a close request it would not let be cancelled) while open is still true. A close event
|
|
241
|
+
// from moving a mounted dialog into the top layer finds it open again, and is not reported.
|
|
242
|
+
onClose: () => {
|
|
243
|
+
if (props.open && !element.value?.open) emit("close");
|
|
244
|
+
}
|
|
245
|
+
}, [
|
|
246
|
+
h("div", { class: "oods-dialog__header" }, [
|
|
247
|
+
h("div", { class: "oods-dialog__heading" }, [
|
|
248
|
+
h("h2", { id: titleId, class: "oods-dialog__title" }, props.title),
|
|
249
|
+
props.description ? h("p", { id: descriptionId, class: "oods-dialog__description" }, props.description) : null
|
|
250
|
+
]),
|
|
251
|
+
h("button", {
|
|
252
|
+
type: "button",
|
|
253
|
+
class: "oods-dialog__close",
|
|
254
|
+
"aria-label": props.dismissLabel,
|
|
255
|
+
onClick: () => emit("close")
|
|
256
|
+
}, [statusIcon("x")])
|
|
257
|
+
]),
|
|
258
|
+
slots.default ? h("div", { class: "oods-dialog__body" }, slots.default()) : null,
|
|
259
|
+
actions !== void 0 && actions !== null && actions !== "" ? h("div", { class: "oods-dialog__footer" }, [actions]) : null
|
|
260
|
+
]);
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
});
|
|
182
264
|
var SAFE_CARD_ELEMENTS = /* @__PURE__ */ new Set(["div", "article", "section", "aside"]);
|
|
183
265
|
defineComponent({
|
|
184
266
|
name: "OodsCard",
|
|
@@ -573,82 +655,75 @@ defineComponent({
|
|
|
573
655
|
};
|
|
574
656
|
}
|
|
575
657
|
});
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
},
|
|
590
|
-
active: {
|
|
591
|
-
description: "Subscription is paid and service is provisioned.",
|
|
592
|
-
tone: "success",
|
|
593
|
-
icon: "\u2714\uFE0E"
|
|
594
|
-
},
|
|
595
|
-
paused: {
|
|
596
|
-
description: "Billing paused temporarily by finance or customer request.",
|
|
597
|
-
tone: "neutral",
|
|
598
|
-
icon: "\u23F8"
|
|
599
|
-
},
|
|
600
|
-
pending_cancellation: {
|
|
601
|
-
description: "Subscription will cancel at period end but remains active now.",
|
|
602
|
-
tone: "info",
|
|
603
|
-
icon: "\u2026"
|
|
604
|
-
},
|
|
605
|
-
past_due: {
|
|
606
|
-
description: "Renewal payment failed; smart retries ongoing and access retained during the grace window.",
|
|
607
|
-
tone: "critical",
|
|
608
|
-
icon: "\u26A0\uFE0E"
|
|
609
|
-
},
|
|
610
|
-
unpaid: {
|
|
611
|
-
description: "Payment retries exhausted; service access revoked.",
|
|
612
|
-
tone: "critical",
|
|
613
|
-
icon: "\u2A2F"
|
|
614
|
-
},
|
|
615
|
-
terminated: {
|
|
616
|
-
description: "Subscription ended; service access revoked and billing stopped.",
|
|
617
|
-
tone: "neutral",
|
|
618
|
-
icon: "\u2205"
|
|
619
|
-
}
|
|
658
|
+
defineComponent({
|
|
659
|
+
name: "OodsSwitch",
|
|
660
|
+
props: {
|
|
661
|
+
id: String,
|
|
662
|
+
label: String,
|
|
663
|
+
modelValue: { type: Boolean, default: void 0 },
|
|
664
|
+
checked: { type: Boolean, default: void 0 },
|
|
665
|
+
defaultChecked: Boolean,
|
|
666
|
+
required: Boolean,
|
|
667
|
+
disabled: Boolean,
|
|
668
|
+
help: String,
|
|
669
|
+
validation: Object,
|
|
670
|
+
size: { type: String, default: "md" }
|
|
620
671
|
},
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
672
|
+
emits: {
|
|
673
|
+
"update:modelValue": (_value) => true,
|
|
674
|
+
change: (_value) => true
|
|
675
|
+
},
|
|
676
|
+
setup(props, { emit, slots }) {
|
|
677
|
+
const internalChecked = ref(props.defaultChecked);
|
|
678
|
+
const currentChecked = computed(() => props.modelValue ?? props.checked ?? internalChecked.value);
|
|
679
|
+
const metadata = useFieldMetadata("Switch", props, slots);
|
|
680
|
+
const toggle = () => {
|
|
681
|
+
const next = !currentChecked.value;
|
|
682
|
+
if (props.modelValue === void 0 && props.checked === void 0) internalChecked.value = next;
|
|
683
|
+
emit("update:modelValue", next);
|
|
684
|
+
emit("change", next);
|
|
685
|
+
};
|
|
686
|
+
return () => {
|
|
687
|
+
const label = slots.label?.() ?? props.label;
|
|
688
|
+
const help = slots.help?.() ?? props.help;
|
|
689
|
+
const validation = slots.validation?.() ?? props.validation?.message;
|
|
690
|
+
const controlId = metadata.controlId.value;
|
|
691
|
+
return h("div", {
|
|
692
|
+
class: "oods-field oods-switch",
|
|
693
|
+
style: validationStyle(props.validation),
|
|
694
|
+
"data-oods-component": "Switch",
|
|
695
|
+
"data-size": props.size,
|
|
696
|
+
"data-validation-state": props.validation?.state
|
|
697
|
+
}, [
|
|
698
|
+
h("div", { class: "oods-switch__row" }, [
|
|
699
|
+
h("button", {
|
|
700
|
+
id: controlId,
|
|
701
|
+
type: "button",
|
|
702
|
+
role: "switch",
|
|
703
|
+
class: "oods-switch__control",
|
|
704
|
+
"aria-checked": currentChecked.value ? "true" : "false",
|
|
705
|
+
"aria-labelledby": `${controlId}-label`,
|
|
706
|
+
"aria-describedby": metadata.describedBy.value,
|
|
707
|
+
"aria-required": props.required ? "true" : void 0,
|
|
708
|
+
"aria-invalid": props.validation?.state === "error" ? "true" : void 0,
|
|
709
|
+
disabled: props.disabled,
|
|
710
|
+
onClick: toggle
|
|
711
|
+
}, [h("span", { class: "oods-switch__thumb", "aria-hidden": "true" })]),
|
|
712
|
+
h("label", { id: `${controlId}-label`, class: "oods-field-label oods-switch__label", for: controlId }, [
|
|
713
|
+
label,
|
|
714
|
+
props.required ? h("span", { class: "oods-field-required", "aria-hidden": "true" }, "*") : null
|
|
715
|
+
])
|
|
716
|
+
]),
|
|
717
|
+
help ? h("p", { id: metadata.helpId.value, class: "oods-field-help" }, help) : null,
|
|
718
|
+
validation ? h("p", {
|
|
719
|
+
id: metadata.validationId.value,
|
|
720
|
+
class: "oods-field-error",
|
|
721
|
+
role: props.validation?.state === "error" ? "alert" : void 0
|
|
722
|
+
}, validation) : null
|
|
723
|
+
]);
|
|
724
|
+
};
|
|
647
725
|
}
|
|
648
|
-
};
|
|
649
|
-
var STATUS_ALIASES = {
|
|
650
|
-
subscription: { delinquent: "unpaid" }
|
|
651
|
-
};
|
|
726
|
+
});
|
|
652
727
|
function isRecord(value) {
|
|
653
728
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
654
729
|
}
|
|
@@ -665,18 +740,13 @@ function statusLabel2(status) {
|
|
|
665
740
|
return status.split(/[_-]/).filter(Boolean).map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1)).join(" ");
|
|
666
741
|
}
|
|
667
742
|
function getPortedStatusPresentation(domain, status) {
|
|
668
|
-
const
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
description: "Status not found in registry; falling back to the requested token set.",
|
|
676
|
-
tone: "neutral"
|
|
677
|
-
};
|
|
678
|
-
}
|
|
679
|
-
return { ...metadata, label: statusLabel2(status) };
|
|
743
|
+
const presentation = getStatusPresentation(domain.toLowerCase(), status);
|
|
744
|
+
return {
|
|
745
|
+
label: statusLabel2(status || "Unknown"),
|
|
746
|
+
description: presentation.description,
|
|
747
|
+
tone: presentation.tone,
|
|
748
|
+
icon: resolveStatusIcon(presentation.iconName)
|
|
749
|
+
};
|
|
680
750
|
}
|
|
681
751
|
function formatPrice(amountCents, amount, currency) {
|
|
682
752
|
const normalizedAmount = amount;
|
|
@@ -820,11 +890,10 @@ var StatusBadge = defineComponent({
|
|
|
820
890
|
domain: props.domain,
|
|
821
891
|
tone,
|
|
822
892
|
emphasis: props.variant === "solid" ? "solid" : props.emphasis,
|
|
823
|
-
icon: props.showIcon ? presentation.icon : void 0,
|
|
824
893
|
title: stringValue(attrs.title) ?? presentation.description,
|
|
825
894
|
"aria-label": ariaLabel,
|
|
826
895
|
"data-oods-component": "StatusBadge"
|
|
827
|
-
}, slots);
|
|
896
|
+
}, props.showIcon && presentation.icon && !slots.icon ? { ...slots, icon: () => statusIcon(presentation.icon) } : slots);
|
|
828
897
|
};
|
|
829
898
|
}
|
|
830
899
|
});
|
|
@@ -1137,7 +1206,7 @@ var SearchInput = defineComponent({
|
|
|
1137
1206
|
"aria-label": "Clear search",
|
|
1138
1207
|
disabled: props.disabled,
|
|
1139
1208
|
onClick: clear
|
|
1140
|
-
}, "
|
|
1209
|
+
}, [statusIcon("x")]) : null
|
|
1141
1210
|
]);
|
|
1142
1211
|
};
|
|
1143
1212
|
}
|
|
@@ -1284,17 +1353,18 @@ var RelativeTimestamp = defineComponent({
|
|
|
1284
1353
|
props.createdAt
|
|
1285
1354
|
) ?? "";
|
|
1286
1355
|
if (props.hideWhenEmpty && (!datetime || Number.isNaN(Date.parse(datetime)))) return null;
|
|
1356
|
+
const absolute = formatDateTime(datetime, { timeZone: props.timezone });
|
|
1287
1357
|
const content = firstDefined(
|
|
1288
1358
|
props.relative,
|
|
1289
1359
|
props.label,
|
|
1290
1360
|
props.text,
|
|
1291
|
-
props.now === void 0 ?
|
|
1361
|
+
!absolute ? "Unknown time" : props.now === void 0 ? absolute : relativeTimestampLabel(datetime, props.now)
|
|
1292
1362
|
) ?? "";
|
|
1293
1363
|
return h("time", {
|
|
1294
1364
|
...attrs,
|
|
1295
1365
|
class: mergedClass("oods-relative-timestamp", attrs.class),
|
|
1296
1366
|
datetime: datetime || void 0,
|
|
1297
|
-
title: stringValue(attrs.title) ??
|
|
1367
|
+
title: stringValue(attrs.title) ?? absolute,
|
|
1298
1368
|
"data-oods-component": "RelativeTimestamp"
|
|
1299
1369
|
}, content);
|
|
1300
1370
|
};
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"mission": "s193-m05",
|
|
4
4
|
"target": "vue",
|
|
5
5
|
"contractVersion": "1.1.0",
|
|
6
|
-
"derivation": "Each emissionEligible value is asserted with @oods/component-contracts evaluateEmissionEligibility. Sprint 185 adds five root exports; the original Sprint 182 row objects are preserved. Sprint 186 wave 2 appends ClassificationPanel, FilterPanel, PriceSummary, AddressCollectionPanel, MembershipPanel, PreferencePanel, TagManager, AddressSummaryBadge, MessageStatusBadge, PreferenceSummaryBadge, RoleBadgeList, TagPills, AddressValidationTimeline, AuditEvent, MembershipAuditTimeline, MessageEventTimeline, PreferenceTimeline, AddressEditor, PreferenceEditor, RoleAssignmentForm, StatusSelector, TagInput and TemplatePicker root exports with the same six evidence classes; prior rows are preserved. Sprint 186 m06 folds the former eight ported families into the root contract, exports, declarations and shared scenarios. Historical readiness files remain as evidence; readiness-ported resolved to this root document from Sprint 186 m06 until Sprint 200 m04 retired that subpath, and this root document is now the only readiness export. Sprint 187 m02 adds five naming/classification families with the same six evidence classes. Native classification controls are presentational; no save or domain-change action is claimed. Sprint 187 m03 adds OwnerBadge, OwnershipSummary, OwnershipMeta and TagSummary with the same six reference classes and explicit scalar/trait-array semantics. No ownership transfer or tagging action is claimed. Sprint 192 m03 projects passing per-root axe and executable scenario results into accessibility and interaction evidence; native unwired controls are measured without claiming a domain action. Sprint 192 m04 projects per-root six-cell browser contrast/token checks and screenshot hashes into visualThemes. Sprint 192 m05 adds the three retained roots and derives all accessibility, interaction and theme claims from passing 75-root measurements. Sprint 193 m04 adds nine declared non-Viz recipes and derives all accessibility, interaction and theme claims from passing 84-root measurements. Sprint 193 m05 adds 25 typed Viz recipes and derives all accessibility, interaction and theme claims from passing 109-root measurements.",
|
|
6
|
+
"derivation": "Each emissionEligible value is asserted with @oods/component-contracts evaluateEmissionEligibility. Sprint 185 adds five root exports; the original Sprint 182 row objects are preserved. Sprint 186 wave 2 appends ClassificationPanel, FilterPanel, PriceSummary, AddressCollectionPanel, MembershipPanel, PreferencePanel, TagManager, AddressSummaryBadge, MessageStatusBadge, PreferenceSummaryBadge, RoleBadgeList, TagPills, AddressValidationTimeline, AuditEvent, MembershipAuditTimeline, MessageEventTimeline, PreferenceTimeline, AddressEditor, PreferenceEditor, RoleAssignmentForm, StatusSelector, TagInput and TemplatePicker root exports with the same six evidence classes; prior rows are preserved. Sprint 186 m06 folds the former eight ported families into the root contract, exports, declarations and shared scenarios. Historical readiness files remain as evidence; readiness-ported resolved to this root document from Sprint 186 m06 until Sprint 200 m04 retired that subpath, and this root document is now the only readiness export. Sprint 187 m02 adds five naming/classification families with the same six evidence classes. Native classification controls are presentational; no save or domain-change action is claimed. Sprint 187 m03 adds OwnerBadge, OwnershipSummary, OwnershipMeta and TagSummary with the same six reference classes and explicit scalar/trait-array semantics. No ownership transfer or tagging action is claimed. Sprint 192 m03 projects passing per-root axe and executable scenario results into accessibility and interaction evidence; native unwired controls are measured without claiming a domain action. Sprint 192 m04 projects per-root six-cell browser contrast/token checks and screenshot hashes into visualThemes. Sprint 192 m05 adds the three retained roots and derives all accessibility, interaction and theme claims from passing 75-root measurements. Sprint 193 m04 adds nine declared non-Viz recipes and derives all accessibility, interaction and theme claims from passing 84-root measurements. Sprint 193 m05 adds 25 typed Viz recipes and derives all accessibility, interaction and theme claims from passing 109-root measurements. Sprint 222 m02 adds Switch and Dialog with the same six evidence classes and derives their accessibility, interaction and theme claims from passing 112-root measurements.",
|
|
7
7
|
"rows": [
|
|
8
8
|
{
|
|
9
9
|
"componentId": "AddressCollectionPanel",
|
|
@@ -2554,6 +2554,79 @@
|
|
|
2554
2554
|
}
|
|
2555
2555
|
}
|
|
2556
2556
|
},
|
|
2557
|
+
{
|
|
2558
|
+
"componentId": "Dialog",
|
|
2559
|
+
"state": "implemented-evidence-complete",
|
|
2560
|
+
"emissionEligible": true,
|
|
2561
|
+
"evidence": {
|
|
2562
|
+
"versionedContract": {
|
|
2563
|
+
"status": "passed",
|
|
2564
|
+
"refs": [
|
|
2565
|
+
"packages/component-contracts/src/contracts.ts#Dialog"
|
|
2566
|
+
]
|
|
2567
|
+
},
|
|
2568
|
+
"targetImplementation": {
|
|
2569
|
+
"status": "passed",
|
|
2570
|
+
"refs": [
|
|
2571
|
+
"packages/components-vue/src/primitives.ts#Dialog"
|
|
2572
|
+
]
|
|
2573
|
+
},
|
|
2574
|
+
"packageExport": {
|
|
2575
|
+
"status": "passed",
|
|
2576
|
+
"refs": [
|
|
2577
|
+
"packages/components-vue/src/index.ts#Dialog"
|
|
2578
|
+
]
|
|
2579
|
+
},
|
|
2580
|
+
"publicDeclaration": {
|
|
2581
|
+
"status": "passed",
|
|
2582
|
+
"refs": [
|
|
2583
|
+
"packages/components-vue/dist/index.d.ts#Dialog"
|
|
2584
|
+
]
|
|
2585
|
+
},
|
|
2586
|
+
"dependencyClosure": {
|
|
2587
|
+
"status": "passed",
|
|
2588
|
+
"refs": [
|
|
2589
|
+
"packages/components-vue/test/package-contract.spec.ts#dependency-closure"
|
|
2590
|
+
]
|
|
2591
|
+
},
|
|
2592
|
+
"frameworkScenario": {
|
|
2593
|
+
"status": "passed",
|
|
2594
|
+
"refs": [
|
|
2595
|
+
"packages/components-vue/test/scenarios.spec.ts#dialog-confirm"
|
|
2596
|
+
]
|
|
2597
|
+
},
|
|
2598
|
+
"accessibility": {
|
|
2599
|
+
"status": "passed",
|
|
2600
|
+
"classification": "verified",
|
|
2601
|
+
"refs": [
|
|
2602
|
+
"artifacts/product-reality/sprint-222/m02/switch-dialog/vue-measured.json#Dialog"
|
|
2603
|
+
]
|
|
2604
|
+
},
|
|
2605
|
+
"interaction": {
|
|
2606
|
+
"status": "passed",
|
|
2607
|
+
"classification": "verified",
|
|
2608
|
+
"refs": [
|
|
2609
|
+
"artifacts/product-reality/sprint-222/m02/switch-dialog/vue-measured.json#Dialog"
|
|
2610
|
+
]
|
|
2611
|
+
},
|
|
2612
|
+
"visualThemes": {
|
|
2613
|
+
"status": "passed",
|
|
2614
|
+
"classification": "verified",
|
|
2615
|
+
"cells": [
|
|
2616
|
+
"A-light",
|
|
2617
|
+
"A-dark",
|
|
2618
|
+
"A-hc",
|
|
2619
|
+
"B-light",
|
|
2620
|
+
"B-dark",
|
|
2621
|
+
"B-hc"
|
|
2622
|
+
],
|
|
2623
|
+
"refs": [
|
|
2624
|
+
"artifacts/product-reality/sprint-222/m02/switch-dialog/vue-theme/report.json#Dialog"
|
|
2625
|
+
]
|
|
2626
|
+
}
|
|
2627
|
+
},
|
|
2628
|
+
"measurementRoot": "artifacts/product-reality/sprint-222/m02/switch-dialog"
|
|
2629
|
+
},
|
|
2557
2630
|
{
|
|
2558
2631
|
"componentId": "FilterPanel",
|
|
2559
2632
|
"state": "implemented-evidence-complete",
|
|
@@ -5321,6 +5394,79 @@
|
|
|
5321
5394
|
}
|
|
5322
5395
|
}
|
|
5323
5396
|
},
|
|
5397
|
+
{
|
|
5398
|
+
"componentId": "Switch",
|
|
5399
|
+
"state": "implemented-evidence-complete",
|
|
5400
|
+
"emissionEligible": true,
|
|
5401
|
+
"evidence": {
|
|
5402
|
+
"versionedContract": {
|
|
5403
|
+
"status": "passed",
|
|
5404
|
+
"refs": [
|
|
5405
|
+
"packages/component-contracts/src/contracts.ts#Switch"
|
|
5406
|
+
]
|
|
5407
|
+
},
|
|
5408
|
+
"targetImplementation": {
|
|
5409
|
+
"status": "passed",
|
|
5410
|
+
"refs": [
|
|
5411
|
+
"packages/components-vue/src/fields.ts#Switch"
|
|
5412
|
+
]
|
|
5413
|
+
},
|
|
5414
|
+
"packageExport": {
|
|
5415
|
+
"status": "passed",
|
|
5416
|
+
"refs": [
|
|
5417
|
+
"packages/components-vue/src/index.ts#Switch"
|
|
5418
|
+
]
|
|
5419
|
+
},
|
|
5420
|
+
"publicDeclaration": {
|
|
5421
|
+
"status": "passed",
|
|
5422
|
+
"refs": [
|
|
5423
|
+
"packages/components-vue/dist/index.d.ts#Switch"
|
|
5424
|
+
]
|
|
5425
|
+
},
|
|
5426
|
+
"dependencyClosure": {
|
|
5427
|
+
"status": "passed",
|
|
5428
|
+
"refs": [
|
|
5429
|
+
"packages/components-vue/test/package-contract.spec.ts#dependency-closure"
|
|
5430
|
+
]
|
|
5431
|
+
},
|
|
5432
|
+
"frameworkScenario": {
|
|
5433
|
+
"status": "passed",
|
|
5434
|
+
"refs": [
|
|
5435
|
+
"packages/components-vue/test/scenarios.spec.ts#switch-controlled"
|
|
5436
|
+
]
|
|
5437
|
+
},
|
|
5438
|
+
"accessibility": {
|
|
5439
|
+
"status": "passed",
|
|
5440
|
+
"classification": "verified",
|
|
5441
|
+
"refs": [
|
|
5442
|
+
"artifacts/product-reality/sprint-222/m02/switch-dialog/vue-measured.json#Switch"
|
|
5443
|
+
]
|
|
5444
|
+
},
|
|
5445
|
+
"interaction": {
|
|
5446
|
+
"status": "passed",
|
|
5447
|
+
"classification": "verified",
|
|
5448
|
+
"refs": [
|
|
5449
|
+
"artifacts/product-reality/sprint-222/m02/switch-dialog/vue-measured.json#Switch"
|
|
5450
|
+
]
|
|
5451
|
+
},
|
|
5452
|
+
"visualThemes": {
|
|
5453
|
+
"status": "passed",
|
|
5454
|
+
"classification": "verified",
|
|
5455
|
+
"cells": [
|
|
5456
|
+
"A-light",
|
|
5457
|
+
"A-dark",
|
|
5458
|
+
"A-hc",
|
|
5459
|
+
"B-light",
|
|
5460
|
+
"B-dark",
|
|
5461
|
+
"B-hc"
|
|
5462
|
+
],
|
|
5463
|
+
"refs": [
|
|
5464
|
+
"artifacts/product-reality/sprint-222/m02/switch-dialog/vue-theme/report.json#Switch"
|
|
5465
|
+
]
|
|
5466
|
+
}
|
|
5467
|
+
},
|
|
5468
|
+
"measurementRoot": "artifacts/product-reality/sprint-222/m02/switch-dialog"
|
|
5469
|
+
},
|
|
5324
5470
|
{
|
|
5325
5471
|
"componentId": "Table",
|
|
5326
5472
|
"state": "implemented-evidence-complete",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oods/components-vue",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Vue 3 components for OODS Foundry: the controls, layouts and domain views its generated screens use.",
|
|
5
5
|
"homepage": "https://oods-foundry.com/",
|
|
6
6
|
"bugs": {
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"**/*.css"
|
|
54
54
|
],
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"@oods/component-contracts": "0.
|
|
57
|
-
"@oods/component-styles": "0.
|
|
56
|
+
"@oods/component-contracts": "0.4.0",
|
|
57
|
+
"@oods/component-styles": "0.4.0"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"vue": "^3.5.0"
|