From bf2b568ba3f4de750384c54630cbac7f3d410529 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 27 Nov 2025 20:21:30 +0000 Subject: [PATCH] feat(types): make RegistryTicket.value generic for type safety This change adds a generic value type parameter to RegistryTicket and propagates it through the entire composable hierarchy: - RegistryTicket - Base type now accepts value type - SelectionTicket - Inherits from RegistryTicket - SingleTicket, GroupTicket, StepTicket - Selection descendants - FormTicket, QueueTicket, TimelineTicket - Registry extensions - TokenTicket - Uses RegistryTicket - ThemeTicket - Uses SingleTicket - FeatureTicket - Uses GroupTicket - PermissionTicket - Extends TokenTicket with permission value type Also updates: - TokenPrimitive now includes Function for permission callbacks - Components (SelectionItem, SingleItem, GroupItem, StepItem) use generic V - ThemeRecord no longer uses index signature with `any` This provides: - Full type safety for stored values - IDE autocomplete for ticket.value - Compile-time error detection - Zero runtime cost (types only) --- packages/0/src/components/Group/GroupItem.vue | 8 ++++---- packages/0/src/components/Selection/SelectionItem.vue | 8 ++++---- packages/0/src/components/Single/SingleItem.vue | 8 ++++---- packages/0/src/components/Step/StepItem.vue | 8 ++++---- packages/0/src/composables/useFeatures/index.ts | 4 +--- packages/0/src/composables/useForm/index.ts | 2 +- packages/0/src/composables/useGroup/index.ts | 2 +- packages/0/src/composables/useQueue/index.ts | 2 +- packages/0/src/composables/useRegistry/index.ts | 4 ++-- packages/0/src/composables/useSelection/index.ts | 2 +- packages/0/src/composables/useSingle/index.ts | 4 ++-- packages/0/src/composables/useStep/index.ts | 2 +- packages/0/src/composables/useTheme/index.ts | 3 +-- packages/0/src/composables/useTimeline/index.ts | 2 +- packages/0/src/composables/useTokens/index.ts | 4 ++-- 15 files changed, 30 insertions(+), 33 deletions(-) diff --git a/packages/0/src/components/Group/GroupItem.vue b/packages/0/src/components/Group/GroupItem.vue index a8a7d2331..7d3435aa3 100644 --- a/packages/0/src/components/Group/GroupItem.vue +++ b/packages/0/src/components/Group/GroupItem.vue @@ -1,4 +1,4 @@ -