From 790eaf4f44bc5d7ab2fbfdf37b1c67fc53843266 Mon Sep 17 00:00:00 2001 From: Duncan McClean Date: Wed, 1 Jul 2026 17:05:24 +0100 Subject: [PATCH 1/9] bring over from the other branch --- resources/js/components/forms/FieldNumber.vue | 13 +++ .../components/forms/FieldNumberingToggle.vue | 22 +++++ .../components/forms/builder/ImportField.vue | 19 +++- .../forms/builder/RegularFormField.vue | 14 ++- .../js/components/forms/logic/FieldLogic.vue | 13 +++ .../components/forms/logic/FieldLogicRule.vue | 2 + .../forms/logic/LogicRulePicker.vue | 2 +- .../js/composables/forms/field-numbering.js | 92 +++++++++++++++++++ resources/js/pages/forms/Builder.vue | 14 ++- resources/js/pages/forms/Logic.vue | 9 ++ 10 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 resources/js/components/forms/FieldNumber.vue create mode 100644 resources/js/components/forms/FieldNumberingToggle.vue create mode 100644 resources/js/composables/forms/field-numbering.js diff --git a/resources/js/components/forms/FieldNumber.vue b/resources/js/components/forms/FieldNumber.vue new file mode 100644 index 00000000000..b976cfe56f3 --- /dev/null +++ b/resources/js/components/forms/FieldNumber.vue @@ -0,0 +1,13 @@ + + + diff --git a/resources/js/components/forms/FieldNumberingToggle.vue b/resources/js/components/forms/FieldNumberingToggle.vue new file mode 100644 index 00000000000..641a152851f --- /dev/null +++ b/resources/js/components/forms/FieldNumberingToggle.vue @@ -0,0 +1,22 @@ + + + diff --git a/resources/js/components/forms/builder/ImportField.vue b/resources/js/components/forms/builder/ImportField.vue index b6da8fd7898..a6ca9a2dfd7 100644 --- a/resources/js/components/forms/builder/ImportField.vue +++ b/resources/js/components/forms/builder/ImportField.vue @@ -2,6 +2,8 @@ import { Button, Description, Field, Icon, Label } from '@ui'; import { computed } from 'vue'; import { usePage } from '@inertiajs/vue3'; +import FieldNumber from '@/components/forms/FieldNumber.vue'; +import { fieldNumberFromMap } from '@/composables/forms/field-numbering'; import { injectBuilderContext, InspectorType } from '@/pages/forms/Builder.vue'; import { categoryColorClasses } from './categories'; import { __ } from '@/bootstrap/globals'; @@ -16,7 +18,21 @@ defineEmits<{ (e: 'remove'): void; }>(); -const { errors, inspect, inspecting, inspectorType } = injectBuilderContext(); +const { errors, fieldNumbers, inspect, inspecting, inspectorType, showFieldNumbers } = injectBuilderContext(); + +const fieldsetFieldNumber = (fieldsetField) => { + if (! showFieldNumbers?.value) { + return null; + } + + const prefix = props.field.prefix || ''; + + return fieldNumberFromMap( + fieldNumbers?.value, + `${prefix}${fieldsetField.handle}`, + `${props.field._id}:${fieldsetField.handle}`, + ); +}; const fieldsets = Object.values(usePage().props.fieldsets); @@ -77,6 +93,7 @@ const errorMessage = computed(() => { From 54da8d3d97e90d16c4e96081e06925679e7f9ceb Mon Sep 17 00:00:00 2001 From: Duncan McClean Date: Thu, 2 Jul 2026 12:22:00 +0100 Subject: [PATCH 2/9] simplify how field numbering works - the Builder and Logic components are now responsible for generating the field numbers, rather than the composable. - the FieldNumber component now injects the fieldNumbers and checks the "show" state itself. saving us from needing to pass it in. - the composable is now only responsible for the toggle state. --- resources/js/components/forms/FieldNumber.vue | 10 ++- .../components/forms/FieldNumberingToggle.vue | 4 +- .../components/forms/builder/ImportField.vue | 19 +--- .../forms/builder/RegularFormField.vue | 15 +--- .../js/components/forms/logic/FieldLogic.vue | 13 --- .../components/forms/logic/FieldLogicRule.vue | 2 +- .../forms/logic/LogicRulePicker.vue | 3 +- .../js/composables/forms/field-numbering.js | 86 +------------------ resources/js/pages/forms/Builder.vue | 37 ++++++-- resources/js/pages/forms/Logic.vue | 16 ++-- 10 files changed, 62 insertions(+), 143 deletions(-) diff --git a/resources/js/components/forms/FieldNumber.vue b/resources/js/components/forms/FieldNumber.vue index b976cfe56f3..fc2872b0d78 100644 --- a/resources/js/components/forms/FieldNumber.vue +++ b/resources/js/components/forms/FieldNumber.vue @@ -1,7 +1,13 @@