From 116b6b2223af03fa4767bb41810d58c195e1baea Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 28 Oct 2026 14:12:13 +0800 Subject: [PATCH] feat(admin): make all sortable/repeater cards collapsible, collapsed by default - Add useCollapsibleItems: key-based open state, clickable/keyboard head, aria-expanded - sortable items with sub-fields and every inline repeater/group row now collapse - Repeater head summary falls back to the first filled field when no listPreview - Drop per-schema collapsible/defaultCollapsed for repeater groups (JS + PHP) - Align FloatBtnItemPanel head with the shared collapse attrs Co-Authored-By: Claude Fable 5 --- .../components/floating/FloatBtnItemPanel.vue | 4 +- assets/admin/src/components/form/AksField.vue | 80 ++++++++----------- .../src/components/form/repeater-rows.js | 15 +++- .../components/form/useCollapsibleItems.js | 46 +++++++++++ .../admin/src/schema/sections/payment/vip.js | 8 +- assets/admin/src/styles/sortable-list.css | 6 ++ src/Admin/Schema/SchemaPayment.php | 8 +- .../vip-settings-structured-contract.test.cjs | 19 ++--- .../vip-settings-structured-harness.php | 4 - 9 files changed, 114 insertions(+), 76 deletions(-) create mode 100644 assets/admin/src/components/form/useCollapsibleItems.js diff --git a/assets/admin/src/components/floating/FloatBtnItemPanel.vue b/assets/admin/src/components/floating/FloatBtnItemPanel.vue index 463ea418..07aba5ad 100644 --- a/assets/admin/src/components/floating/FloatBtnItemPanel.vue +++ b/assets/admin/src/components/floating/FloatBtnItemPanel.vue @@ -1,6 +1,6 @@