hazo_collab_forms 1.9.2 → 1.9.3

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.
Files changed (52) hide show
  1. package/CHANGE_LOG.md +13 -5
  2. package/LICENSE +21 -0
  3. package/README.md +31 -5
  4. package/dist/components/_internal_form_set.d.ts +18 -16
  5. package/dist/components/_internal_form_set.d.ts.map +1 -1
  6. package/dist/components/_internal_form_set.js +89 -65
  7. package/dist/components/_internal_form_set.js.map +1 -1
  8. package/dist/components/hazo_collab_form_view/types.d.ts +5 -0
  9. package/dist/components/hazo_collab_form_view/types.d.ts.map +1 -1
  10. package/dist/components/hazo_collab_form_view/views/summary_view.d.ts.map +1 -1
  11. package/dist/components/hazo_collab_form_view/views/summary_view.js +17 -11
  12. package/dist/components/hazo_collab_form_view/views/summary_view.js.map +1 -1
  13. package/dist/components/hazo_template_generator/components/tabs/controls_tab.d.ts.map +1 -1
  14. package/dist/components/hazo_template_generator/components/tabs/controls_tab.js +18 -6
  15. package/dist/components/hazo_template_generator/components/tabs/controls_tab.js.map +1 -1
  16. package/dist/components/hazo_template_generator/types.d.ts.map +1 -1
  17. package/dist/components/hazo_template_generator/types.js +2 -0
  18. package/dist/components/hazo_template_generator/types.js.map +1 -1
  19. package/dist/components/shared/editor_theme/icons.d.ts +3 -0
  20. package/dist/components/shared/editor_theme/icons.d.ts.map +1 -1
  21. package/dist/components/shared/editor_theme/icons.js +3 -0
  22. package/dist/components/shared/editor_theme/icons.js.map +1 -1
  23. package/dist/components/shared/role_utils/role_utils.d.ts +3 -3
  24. package/dist/components/shared/role_utils/role_utils.d.ts.map +1 -1
  25. package/dist/components/shared/role_utils/role_utils.js +8 -4
  26. package/dist/components/shared/role_utils/role_utils.js.map +1 -1
  27. package/dist/components/shared/unified_field_controls/constants.d.ts.map +1 -1
  28. package/dist/components/shared/unified_field_controls/constants.js +3 -0
  29. package/dist/components/shared/unified_field_controls/constants.js.map +1 -1
  30. package/dist/components/shared/unified_field_controls/types.d.ts +3 -0
  31. package/dist/components/shared/unified_field_controls/types.d.ts.map +1 -1
  32. package/dist/components/shared/unified_field_controls/unified_field_controls.d.ts.map +1 -1
  33. package/dist/components/shared/unified_field_controls/unified_field_controls.js +10 -1
  34. package/dist/components/shared/unified_field_controls/unified_field_controls.js.map +1 -1
  35. package/dist/components/shared/unified_field_controls/use_control_resolution.d.ts.map +1 -1
  36. package/dist/components/shared/unified_field_controls/use_control_resolution.js +3 -2
  37. package/dist/components/shared/unified_field_controls/use_control_resolution.js.map +1 -1
  38. package/dist/components/shared/unified_field_controls/use_field_control_props.d.ts +10 -2
  39. package/dist/components/shared/unified_field_controls/use_field_control_props.d.ts.map +1 -1
  40. package/dist/components/shared/unified_field_controls/use_field_control_props.js +34 -16
  41. package/dist/components/shared/unified_field_controls/use_field_control_props.js.map +1 -1
  42. package/dist/types/icons_behaviour.d.ts +11 -1
  43. package/dist/types/icons_behaviour.d.ts.map +1 -1
  44. package/dist/types/icons_behaviour.js +24 -0
  45. package/dist/types/icons_behaviour.js.map +1 -1
  46. package/dist/types/index.d.ts +1 -1
  47. package/dist/types/index.d.ts.map +1 -1
  48. package/dist/types/index.js +1 -1
  49. package/dist/types/index.js.map +1 -1
  50. package/dist/utils/field_definition_to_config.js +1 -1
  51. package/dist/utils/field_definition_to_config.js.map +1 -1
  52. package/package.json +5 -4
package/CHANGE_LOG.md CHANGED
@@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.9.2] - 2026-02-25
11
+
12
+ ### Changed
13
+
14
+ - **File Upload Split**: `accept_files` prop split into `accept_files_public` and `accept_files_private` for independent control of public and private file sections
15
+
16
+ ### Fixed
17
+
18
+ - **File Manager Prop Flow**: Fixed `file_manager` not being passed through `use_base_form_field` hook to CollabFormFileUploadSection
19
+ - **File Icon Crash**: Fixed `get_file_icon` crashing on undefined `mime_type` with defensive null handling
20
+
21
+ ## [1.9.1] - 2026-02-25
22
+
10
23
  ### Added
11
24
 
12
25
  - **hazo_files Integration**: File upload system now uses FileManagerCallbacks for improved architecture
@@ -25,11 +38,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
25
38
  - Uses `file_manager.callbacks` for upload, remove, get_download_url, get_status, reupload operations
26
39
  - Returns empty div when `file_manager` is not provided
27
40
 
28
- ### Fixed
29
-
30
- - **File Manager Prop Flow**: Fixed `file_manager` not being passed through `use_base_form_field` hook to CollabFormFileUploadSection
31
- - **File Icon Crash**: Fixed `get_file_icon` crashing on undefined `mime_type` with defensive null handling
32
-
33
41
  ## [1.8.14] - 2026-02-02
34
42
 
35
43
  ### Added
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024-2026 Pubs Abayasiri
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1429,11 +1429,15 @@ const icons_behaviour: IconsBehaviour = {
1429
1429
  // Display order (left to right)
1430
1430
  icon_order: [
1431
1431
  'control_data_ok',
1432
+ 'control_skip',
1432
1433
  'control_notes',
1433
1434
  'control_chat',
1434
1435
  'control_visibility',
1435
1436
  'control_lock',
1436
- 'control_delete'
1437
+ 'control_delete',
1438
+ 'control_edit_field',
1439
+ 'control_edit_group',
1440
+ 'control_delete_field',
1437
1441
  ],
1438
1442
 
1439
1443
  // Always shown individually (never in kebab)
@@ -1455,6 +1459,9 @@ const icons_behaviour: IconsBehaviour = {
1455
1459
  control_visibility: { visible: true, enabled: true },
1456
1460
  control_lock: { visible: true, enabled: true },
1457
1461
  control_delete: { visible: true, enabled: false },
1462
+ control_edit_field: { visible: true, enabled: true },
1463
+ control_edit_group: { visible: true, enabled: true },
1464
+ control_delete_field: { visible: true, enabled: true },
1458
1465
  control_private_files: { visible: true, enabled: true } // Can see private file sections
1459
1466
  }
1460
1467
  },
@@ -1469,6 +1476,9 @@ const icons_behaviour: IconsBehaviour = {
1469
1476
  control_visibility: { visible: false, enabled: false },
1470
1477
  control_lock: { visible: false, enabled: false },
1471
1478
  control_delete: { visible: false, enabled: false },
1479
+ control_edit_field: { visible: false, enabled: false },
1480
+ control_edit_group: { visible: false, enabled: false },
1481
+ control_delete_field: { visible: false, enabled: false },
1472
1482
  control_private_files: { visible: false, enabled: false } // Cannot see private file sections
1473
1483
  }
1474
1484
  }
@@ -1502,16 +1512,28 @@ const icons_behaviour: IconsBehaviour = {
1502
1512
 
1503
1513
  When 2+ non-extracted controls are visible, they consolidate into a kebab menu:
1504
1514
 
1505
- 1. **Data OK**: Always inline (hardcoded, never in kebab)
1515
+ 1. **Data OK, Skip, Edit Field, Edit Group**: Always inline (hardcoded, never in kebab)
1506
1516
  2. **Controls in always_extracted**: Always inline
1507
1517
  3. **Controls in extracted_on_value with activity**: Extracted from kebab (shown inline)
1508
1518
  - `control_notes`: Extracted when notes exist
1509
1519
  - `control_chat`: Extracted when messages exist
1510
1520
  4. **Remaining visible controls**: Kebab menu if 2+, otherwise inline
1511
1521
 
1522
+ **Icon Categories:**
1523
+
1524
+ Icons are split into two categories with independent overrides:
1525
+
1526
+ | Category | Controls | Override Prop |
1527
+ |----------|----------|---------------|
1528
+ | **Edit Icons** | `control_edit_field`, `control_edit_group`, `control_delete_field` | `show_edit_icons` |
1529
+ | **Control Icons** | `control_data_ok`, `control_skip`, `control_notes`, `control_chat`, `control_lock`, `control_visibility`, `control_delete`, `control_private_files` | `show_control_icons` |
1530
+ | **Standalone** | `control_add_elements`, `control_edit_elements` | None (always role-driven) |
1531
+
1532
+ Groups use `control_edit_group` (not `control_edit_field`) for their edit pencil icon, allowing roles to independently control group vs field editing.
1533
+
1512
1534
  **Field/Group Level Override:**
1513
1535
 
1514
- Set `show_icons: true` on fields or groups to show icons according to the active role:
1536
+ Icons show automatically based on role config. Use `show_edit_icons: false` or `show_control_icons: false` to force-hide on specific fields/groups:
1515
1537
 
1516
1538
  ```typescript
1517
1539
  const fields: FieldConfig[] = [
@@ -1519,13 +1541,15 @@ const fields: FieldConfig[] = [
1519
1541
  id: "sensitive_group",
1520
1542
  field_type: "group",
1521
1543
  label: "Sensitive Information",
1522
- show_icons: true, // Show role-based icons for this group
1544
+ // Icons show automatically from role config - no show_icons needed
1545
+ // Use overrides only to force-hide:
1546
+ // show_edit_icons: false, // Hide edit/delete icons on this group
1547
+ // show_control_icons: false, // Hide data_ok/notes/chat/etc on this group
1523
1548
  sub_fields: [
1524
1549
  {
1525
1550
  id: "ssn",
1526
1551
  label: "Social Security Number",
1527
1552
  component_type: "HazoCollabFormInputbox",
1528
- show_icons: true, // Show role-based icons for this field
1529
1553
  value: ""
1530
1554
  }
1531
1555
  ]
@@ -1533,6 +1557,8 @@ const fields: FieldConfig[] = [
1533
1557
  ];
1534
1558
  ```
1535
1559
 
1560
+ > **Migration from `show_icons`:** The `show_icons` prop is deprecated. Remove all `show_icons: true` from your form configs — icons now show automatically from role config. If you used `show_icons: false` to hide icons, replace with `show_edit_icons: false` and/or `show_control_icons: false`.
1561
+
1536
1562
  **Role-Level Permissions:**
1537
1563
 
1538
1564
  Private file access is controlled via the `control_private_files` control in the role's controls object:
@@ -337,24 +337,26 @@ export interface FieldConfig {
337
337
  */
338
338
  extract_active_notes?: boolean;
339
339
  /**
340
- * Whether to show control icons (data_ok, notes, chat, visibility, lock, delete) at this level
341
- *
342
- * - At group level (field_type='group'): shows icons on the group header
343
- * - At field level (field_type='field'): shows icons on the field
344
- *
345
- * Icons visibility and enabled state are determined by `icons_behaviour` configuration:
346
- * - Which icons are visible/enabled depends on `active_role` matching a role in `icons_behaviour.roles`
347
- * - Icon display order follows `icons_behaviour.icon_order`
348
- * - Which icons have borders follows `icons_behaviour.border_on`
349
- * - Icon consolidation: 2+ non-extracted controls go in kebab menu
350
- * - `always_extracted` controls are always inline
351
- * - `extracted_on_value` controls are inline when they have activity
352
- *
353
- * Group and field `show_icons` are independent - setting one does not affect the other.
354
- *
355
- * @default false - icons are hidden unless explicitly enabled
340
+ * @deprecated Use `show_edit_icons` and `show_control_icons` instead.
341
+ * When set, acts as fallback for both: `show_edit_icons ?? show_icons`, `show_control_icons ?? show_icons`.
342
+ * Icons now show automatically based on role config in `icons_behaviour` - this override is only
343
+ * needed to force-hide icons on specific fields/groups.
356
344
  */
357
345
  show_icons?: boolean;
346
+ /**
347
+ * Override for edit icon visibility (control_edit_field, control_edit_group, control_delete_field).
348
+ * - `undefined` (default): edit icons show based on role config in `icons_behaviour`
349
+ * - `false`: force-hide edit icons on this field/group regardless of role config
350
+ * Falls back to `show_icons` if not set.
351
+ */
352
+ show_edit_icons?: boolean;
353
+ /**
354
+ * Override for control icon visibility (data_ok, skip, notes, chat, lock, visibility, delete, private_files).
355
+ * - `undefined` (default): control icons show based on role config in `icons_behaviour`
356
+ * - `false`: force-hide control icons on this field/group regardless of role config
357
+ * Falls back to `show_icons` if not set.
358
+ */
359
+ show_control_icons?: boolean;
358
360
  /**
359
361
  * Whether to show the edit element control (pencil icon) for this field/group.
360
362
  *
@@ -1 +1 @@
1
- {"version":3,"file":"_internal_form_set.d.ts","sourceRoot":"","sources":["../../src/components/_internal_form_set.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,OAAO,EAA2B,KAAK,eAAe,EAAqB,KAAK,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACxI,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAc,sBAAsB,EAAY,MAAM,4BAA4B,CAAC;AAC/H,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAuC,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAA2C,MAAM,kCAAkC,CAAC;AAGzM,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAIlE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAE9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;IAEjC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IAExB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;IAErD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,IAAI,CAAC;IAE/C;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,MAAM,GAAG,IAAI,CAAC;IAEhE;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC;IAE3B;;OAEG;IACH,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAEvB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,8BAA8B,CAAC,EAAE,MAAM,CAAC;IAExC;;;OAGG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IAE1C;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IAExD;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IAMtC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAMlC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAMhC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAMxB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAMjB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAMlB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAMxD;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAM/B;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;;;;;;;;OAWG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAElC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAEhC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAE/B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAElC;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,kBAAkB,GAAG;IACzE,UAAU,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAiBA;AAED;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,cAAc,CAAC;CAClC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,EAAE,CAElE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,CAElE;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;IAE1D;;;OAGG;IACH,sBAAsB,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAE5C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAEzD;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAE/D;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAEjE;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,KAAK,IAAI,CAAC;IAEvE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC;IAE9C;;;OAGG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAEtC;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAElC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE1C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,UAAU,GAAG,aAAa,CAAC;IAE1C;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IAExD;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IAMtC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAE1C;;;;;OAKG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAC;IAEnC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IAMpF;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAMxC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAM7D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE9D;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,KAAK,IAAI,CAAC;IAM7E;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAC;IAMxD;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAM/B;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAMpC;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAM5C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAEpD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAMjE;;;;;OAKG;IACH,eAAe,CAAC,EAAE,cAAc,CAAC;IAEjC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAMrB;;;OAGG;IACH,YAAY,CAAC,EAAE;QACb,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAMF;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAE/E;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;IAElF;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,KAAK,IAAI,CAAC;IAE/E;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,KAAK,IAAI,CAAC;IAE/E;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C;;;OAGG;IACH,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;IAEzC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAMjC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAMnC;;;;OAIG;IACH,YAAY,CAAC,EAAE,iBAAiB,CAAC;IAEjC;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAEhF;;;;;;OAMG;IACH,6BAA6B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,IAAI,CAAC;IAExF;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAE7C;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CACrB,MAAM,EACN;QACE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CACF,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,aAAa,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEzC;;OAEG;IACH,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAEnD;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;IAEvB;;;OAGG;IACH,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAElD;;;;OAIG;IACH,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAE3D;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;CACpE;AAqED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,qGAw1D5B,CAAC"}
1
+ {"version":3,"file":"_internal_form_set.d.ts","sourceRoot":"","sources":["../../src/components/_internal_form_set.tsx"],"names":[],"mappings":"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"}
@@ -25,7 +25,7 @@ import { ChatStatusColorsContext, DEFAULT_CHAT_STATUS_COLORS, CollabFormAddField
25
25
  import { HazoAddFieldDialog } from './hazo_add_field_dialog/index.js';
26
26
  import { HazoAddGroupDialog } from './hazo_add_group_dialog/index.js';
27
27
  import { new_field_definition_to_config } from '../utils/field_definition_to_config.js';
28
- import { DEFAULT_EXTRACTED_ON_VALUE } from '../types/icons_behaviour.js';
28
+ import { DEFAULT_EXTRACTED_ON_VALUE, EDIT_CONTROL_NAMES, CONTROL_ICON_NAMES } from '../types/icons_behaviour.js';
29
29
  import { resolve_role_controls } from './shared/role_utils/index.js';
30
30
  /**
31
31
  * Normalize field metadata input to canonical format
@@ -1100,7 +1100,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1100
1100
  /**
1101
1101
  * Render a single field instance (used for both original and additional entries)
1102
1102
  */
1103
- const render_field_instance = (field, entry_index, entry_count, field_vis, dependency_satisfied) => {
1103
+ const render_field_instance = (field, entry_index, entry_count, field_vis, dependency_satisfied, parent_show_add_elements, parent_add_elements_enabled) => {
1104
1104
  // Build the field_data_id with entry index suffix for additional entries
1105
1105
  const field_data_id = entry_index === 0 ? field.id : `${field.id}:${entry_index}`;
1106
1106
  const is_additional_entry = entry_index > 0;
@@ -1131,31 +1131,43 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1131
1131
  }
1132
1132
  // Determine if field should be required (only original entry can be required)
1133
1133
  const is_required = !is_additional_entry && dependency_satisfied && field.required === true;
1134
- // Resolve icon controls from icons_behaviour when show_icons is true
1135
- // When show_icons is false or absent, no icons are shown at field level
1136
- const field_show_icons = field.show_icons === true;
1137
- const field_role_controls = field_show_icons
1138
- ? resolve_role_controls(resolved_icons_behaviour, active_role)
1139
- : null;
1140
- // Determine if add field control should be shown (based on icons_behaviour)
1141
- // Note: control_add_elements is shown below the field, not in the icons row
1142
- const field_show_add_elements = field_show_icons && field_role_controls?.control_add_elements?.visible && (on_add_field || on_add_field_config);
1143
- const field_add_elements_enabled = field_show_icons && field_role_controls?.control_add_elements?.enabled;
1144
- // Determine if edit/delete field structure controls should be shown
1145
- // These allow editing field properties and removing fields from the form
1146
- const field_show_edit_field = field_show_icons && field_role_controls?.control_edit_field?.visible && on_edit_field_config;
1147
- const field_edit_field_enabled = field_show_icons && field_role_controls?.control_edit_field?.enabled;
1148
- const field_show_delete_field = field_show_icons && field_role_controls?.control_delete_field?.visible && on_delete_field;
1149
- const field_delete_field_enabled = field_show_icons && field_role_controls?.control_delete_field?.enabled;
1150
- // Determine control visibility based on icons_behaviour when show_icons=true
1151
- const field_show_notes = field_show_icons && field_role_controls?.control_notes?.visible;
1152
- const field_show_chat = field_show_icons && field_role_controls?.control_chat?.visible;
1153
- const field_show_data_ok = field_show_icons && field_role_controls?.control_data_ok?.visible;
1154
- const field_show_skip = field_show_icons && field_role_controls?.control_skip?.visible;
1155
- const field_show_visibility = field_show_icons && field_role_controls?.control_visibility?.visible;
1156
- const field_show_delete = field_show_icons && field_role_controls?.control_delete?.visible;
1157
- const field_show_lock = field_show_icons && field_role_controls?.control_lock?.visible;
1158
- const field_data_ok_enabled = field_show_icons && field_role_controls?.control_data_ok?.enabled;
1134
+ // Resolve icon controls from icons_behaviour based on role
1135
+ // Icons now show by default based on role config; show_edit_icons/show_control_icons are optional overrides to force-hide
1136
+ const field_role_controls = resolve_role_controls(resolved_icons_behaviour, active_role);
1137
+ const field_edit_override = field.show_edit_icons ?? field.show_icons;
1138
+ const field_control_override = field.show_control_icons ?? field.show_icons;
1139
+ // Helper: check if a control is visible given role config and category overrides
1140
+ const is_field_control_visible = (name) => {
1141
+ if (!field_role_controls?.[name]?.visible)
1142
+ return false;
1143
+ if (EDIT_CONTROL_NAMES.includes(name))
1144
+ return field_edit_override !== false;
1145
+ if (CONTROL_ICON_NAMES.includes(name))
1146
+ return field_control_override !== false;
1147
+ return true; // standalone controls (add_elements, edit_elements) - always role-driven
1148
+ };
1149
+ const is_field_control_enabled = (name) => {
1150
+ return !!field_role_controls?.[name]?.enabled;
1151
+ };
1152
+ // Determine if add field control should be shown (standalone - always role-driven)
1153
+ // control_add_elements is structural (template editing) — inherit from parent group,
1154
+ // not the field's own overrides.
1155
+ const field_show_add_elements = parent_show_add_elements ?? (is_field_control_visible('control_add_elements') && (on_add_field || on_add_field_config));
1156
+ const field_add_elements_enabled = parent_add_elements_enabled ?? is_field_control_enabled('control_add_elements');
1157
+ // Edit/delete field structure controls (edit category)
1158
+ const field_show_edit_field = is_field_control_visible('control_edit_field') && !!on_edit_field_config;
1159
+ const field_edit_field_enabled = is_field_control_enabled('control_edit_field');
1160
+ const field_show_delete_field = is_field_control_visible('control_delete_field') && !!on_delete_field;
1161
+ const field_delete_field_enabled = is_field_control_enabled('control_delete_field');
1162
+ // Control icon visibility (control category)
1163
+ const field_show_notes = is_field_control_visible('control_notes');
1164
+ const field_show_chat = is_field_control_visible('control_chat');
1165
+ const field_show_data_ok = is_field_control_visible('control_data_ok');
1166
+ const field_show_skip = is_field_control_visible('control_skip');
1167
+ const field_show_visibility = is_field_control_visible('control_visibility');
1168
+ const field_show_delete = is_field_control_visible('control_delete');
1169
+ const field_show_lock = is_field_control_visible('control_lock');
1170
+ const field_data_ok_enabled = is_field_control_enabled('control_data_ok');
1159
1171
  // Base props for all components (key is passed separately)
1160
1172
  const base_props = {
1161
1173
  label: is_additional_entry ? `${field.label} (${entry_index})` : field.label,
@@ -1204,7 +1216,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1204
1216
  field_width_class_name,
1205
1217
  required: is_required,
1206
1218
  chat_status: field_chat_status[field_data_id] || 'none',
1207
- // Notes control - determined by icons_behaviour when show_icons=true
1219
+ // Notes control - determined by icons_behaviour role config
1208
1220
  enable_notes: field_show_notes,
1209
1221
  // Notes props depend on notes_mode:
1210
1222
  // - 'controlled': pass notes and on_notes_change for local state management
@@ -1220,15 +1232,15 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1220
1232
  notes_save_mode,
1221
1233
  // Notes UI components (required for hazo_notes v1.1.5+)
1222
1234
  current_user: current_user_prop,
1223
- // Chat control - determined by icons_behaviour when show_icons=true
1235
+ // Chat control - determined by icons_behaviour role config
1224
1236
  disable_chat: !field_show_chat,
1225
- // Data OK control - determined by icons_behaviour when show_icons=true
1237
+ // Data OK control - determined by icons_behaviour role config
1226
1238
  disable_data_ok: !field_show_data_ok,
1227
1239
  // Reference tag props - merge form-level reference_data with field-level props (field-level takes precedence)
1228
1240
  reference_value: field.reference_value ?? reference_data?.[field.id]?.value,
1229
1241
  reference_label: field.reference_label ?? reference_data?.[field.id]?.label,
1230
1242
  reference_tag_background_color: field.reference_tag_background_color ?? reference_data?.[field.id]?.background_color,
1231
- // Data OK editable - determined by icons_behaviour when show_icons=true
1243
+ // Data OK editable - determined by icons_behaviour role config
1232
1244
  data_ok_editable: field_data_ok_enabled ?? false,
1233
1245
  // Data OK mode - field-level overrides form-level
1234
1246
  data_ok_mode: field.data_ok_mode ?? data_ok_mode_prop,
@@ -1244,7 +1256,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1244
1256
  // Data OK callbacks - handle both checkbox and multi-state modes
1245
1257
  on_data_ok_change: (checked) => handle_data_ok_change(field_data_id, checked),
1246
1258
  on_data_ok_value_change: (value) => handle_data_ok_change(field_data_id, value),
1247
- // Visibility toggle - determined by icons_behaviour when show_icons=true (only on original entry)
1259
+ // Visibility toggle - determined by icons_behaviour role config (only on original entry)
1248
1260
  enable_visibility_toggle: !is_additional_entry && field_show_visibility,
1249
1261
  visibility: field_vis,
1250
1262
  on_visibility_change: (visibility) => handle_visibility_change(field.id, visibility),
@@ -1257,14 +1269,14 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1257
1269
  is_additional_entry,
1258
1270
  on_add_entry: () => handle_add_entry(field.id),
1259
1271
  on_delete_entry: () => handle_delete_entry(field_data_id),
1260
- // Delete control - determined by icons_behaviour when show_icons=true (only on original entry)
1272
+ // Delete control - determined by icons_behaviour role config (only on original entry)
1261
1273
  enable_delete: !is_additional_entry && field_show_delete,
1262
1274
  on_delete: () => handle_delete_field(field_data_id),
1263
- // Lock control - determined by icons_behaviour when show_icons=true (only on original entry)
1275
+ // Lock control - determined by icons_behaviour role config (only on original entry)
1264
1276
  enable_lock: !is_additional_entry && field_show_lock,
1265
1277
  locked: field_locked[field.id] ?? field.locked ?? locked_default ?? false,
1266
1278
  on_lock_change: (locked) => handle_lock_change(field.id, locked),
1267
- // Skip/N/A control - determined by icons_behaviour when show_icons=true (only on original entry)
1279
+ // Skip/N/A control - determined by icons_behaviour role config (only on original entry)
1268
1280
  enable_skip: !is_additional_entry && field_show_skip,
1269
1281
  skipped: field_skipped[field.id] ?? field.skipped ?? skipped_default ?? false,
1270
1282
  on_skip_change: (skipped) => handle_skip_change(field.id, skipped),
@@ -1334,7 +1346,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1334
1346
  /**
1335
1347
  * Render a single field (with all its additional entries if applicable)
1336
1348
  */
1337
- const render_field = (field) => {
1349
+ const render_field = (field, parent_show_add_elements, parent_add_elements_enabled) => {
1338
1350
  // Check if original field is deleted
1339
1351
  if (deleted_fields.has(field.id)) {
1340
1352
  // Show undo option for authors
@@ -1355,29 +1367,41 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1355
1367
  }
1356
1368
  // Handle group fields (groups don't support additional entries)
1357
1369
  if (field.field_type === 'group') {
1358
- // Resolve icon controls from icons_behaviour when show_icons is true
1359
- // When show_icons is false or absent, no icons are shown
1360
- const group_show_icons = field.show_icons === true;
1361
- const role_controls = group_show_icons
1362
- ? resolve_role_controls(resolved_icons_behaviour, active_role)
1363
- : null;
1364
- // Determine control visibility and enabled state based on icons_behaviour
1365
- const show_notes = group_show_icons && role_controls?.control_notes?.visible;
1366
- const show_chat = group_show_icons && role_controls?.control_chat?.visible;
1367
- const show_data_ok = group_show_icons && role_controls?.control_data_ok?.visible;
1368
- const show_skip = group_show_icons && role_controls?.control_skip?.visible;
1369
- const show_visibility = group_show_icons && role_controls?.control_visibility?.visible;
1370
- const show_delete = group_show_icons && role_controls?.control_delete?.visible;
1371
- const show_lock = group_show_icons && role_controls?.control_lock?.visible;
1372
- const show_add_elements = group_show_icons && role_controls?.control_add_elements?.visible && (on_add_field || on_add_field_config);
1373
- const add_elements_enabled = role_controls?.control_add_elements?.enabled;
1374
- // Edit/delete field structure controls for groups
1375
- const show_edit_field = group_show_icons && role_controls?.control_edit_field?.visible && on_edit_field_config;
1376
- const edit_field_enabled = role_controls?.control_edit_field?.enabled;
1377
- const show_delete_field = group_show_icons && role_controls?.control_delete_field?.visible && on_delete_field;
1378
- const delete_field_enabled = role_controls?.control_delete_field?.enabled;
1370
+ // Resolve icon controls from icons_behaviour based on role
1371
+ // Icons show by default based on role config; overrides force-hide specific categories
1372
+ const role_controls = resolve_role_controls(resolved_icons_behaviour, active_role);
1373
+ const group_edit_override = field.show_edit_icons ?? field.show_icons;
1374
+ const group_control_override = field.show_control_icons ?? field.show_icons;
1375
+ const is_group_control_visible = (name) => {
1376
+ if (!role_controls?.[name]?.visible)
1377
+ return false;
1378
+ if (EDIT_CONTROL_NAMES.includes(name))
1379
+ return group_edit_override !== false;
1380
+ if (CONTROL_ICON_NAMES.includes(name))
1381
+ return group_control_override !== false;
1382
+ return true; // standalone controls - always role-driven
1383
+ };
1384
+ const is_group_control_enabled = (name) => {
1385
+ return !!role_controls?.[name]?.enabled;
1386
+ };
1387
+ // Control icon visibility (control category)
1388
+ const show_notes = is_group_control_visible('control_notes');
1389
+ const show_chat = is_group_control_visible('control_chat');
1390
+ const show_data_ok = is_group_control_visible('control_data_ok');
1391
+ const show_skip = is_group_control_visible('control_skip');
1392
+ const show_visibility = is_group_control_visible('control_visibility');
1393
+ const show_delete = is_group_control_visible('control_delete');
1394
+ const show_lock = is_group_control_visible('control_lock');
1395
+ // Standalone controls - always role-driven
1396
+ const show_add_elements = is_group_control_visible('control_add_elements') && (on_add_field || on_add_field_config);
1397
+ const add_elements_enabled = is_group_control_enabled('control_add_elements');
1398
+ // Edit controls for groups - use control_edit_group instead of control_edit_field
1399
+ const show_edit_group = is_group_control_visible('control_edit_group') && !!on_edit_field_config;
1400
+ const edit_group_enabled = is_group_control_enabled('control_edit_group');
1401
+ const show_delete_field = is_group_control_visible('control_delete_field') && !!on_delete_field;
1402
+ const delete_field_enabled = is_group_control_enabled('control_delete_field');
1379
1403
  // Enabled state for controls (clickable/editable)
1380
- const data_ok_is_enabled = group_show_icons && role_controls?.control_data_ok?.enabled;
1404
+ const data_ok_is_enabled = is_group_control_enabled('control_data_ok');
1381
1405
  return (_jsx(HazoCollabFormGroup, { label: field.label, tooltip: field.tooltip, field_data_id: field.id, field_name: field.label, accept_files_public: field.accept_files_public ?? resolved_accept_files_public, accept_files_private: field.accept_files_private ?? resolved_accept_files_private, files_dir: field.files_dir, max_size: field.max_size, min_files: field.min_files, max_files: field.max_files, file_accept: field.file_accept, file_validator: field.file_validator, field_validator: field.field_validator, ...(file_manager ? { file_manager: file_manager.callbacks } : {}),
1382
1406
  // File persistence - read from form_data using __files_ prefix
1383
1407
  files: form_data[`__files_${field.id}`] || [], on_files_change: (new_files) => handle_files_change(field.id, new_files),
@@ -1392,7 +1416,7 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1392
1416
  scope_id: file_manager.scope_id,
1393
1417
  uploaded_by: file_manager.uploaded_by,
1394
1418
  } : {}), hazo_chat_group_id: chat_group_id, hazo_chat_read_only: field.chat_read_only ?? chat_read_only_prop, hazo_chat_realtime_mode: chat_realtime_mode, chat_status: field_chat_status[field.id] || 'none',
1395
- // Notes control - determined by icons_behaviour when show_icons=true
1419
+ // Notes control - determined by icons_behaviour role config
1396
1420
  enable_notes: show_notes, ...(notes_mode === 'controlled' ? {
1397
1421
  notes: field_notes[field.id] || [],
1398
1422
  on_notes_change: (new_notes) => handle_notes_change(field.id, new_notes),
@@ -1402,9 +1426,9 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1402
1426
  notes_panel_style: notes_panel_style, notes_background_color: notes_background_color, notes_save_mode: notes_save_mode, current_user: current_user_prop,
1403
1427
  // Consolidated dropdown props
1404
1428
  include_notes_in_dropdown: field.include_notes_in_dropdown ?? include_notes_in_dropdown, include_chat_in_dropdown: field.include_chat_in_dropdown ?? include_chat_in_dropdown, extract_active_notes: field.extract_active_notes ?? extract_active_notes ?? (resolved_icons_behaviour?.extracted_on_value ?? DEFAULT_EXTRACTED_ON_VALUE).includes('control_notes'), extract_active_chat: field.extract_active_chat ?? extract_active_chat ?? (resolved_icons_behaviour?.extracted_on_value ?? DEFAULT_EXTRACTED_ON_VALUE).includes('control_chat'), reference_value: field.reference_value, reference_label: field.reference_label, reference_tag_background_color: field.reference_tag_background_color,
1405
- // Chat control - determined by icons_behaviour when show_icons=true
1429
+ // Chat control - determined by icons_behaviour role config
1406
1430
  disable_chat: !show_chat,
1407
- // Data OK visibility and editability - determined by icons_behaviour when show_icons=true
1431
+ // Data OK visibility and editability - determined by icons_behaviour role config
1408
1432
  disable_data_ok: !show_data_ok, data_ok_editable: data_ok_is_enabled ?? false, data_ok_mode: field.data_ok_mode ?? data_ok_mode_prop, data_ok_default: field.data_ok_default ?? data_ok_default_prop, data_ok_hidden_states: field.data_ok_hidden_states ?? data_ok_hidden_states_prop,
1409
1433
  // Data OK controlled value and callbacks for groups
1410
1434
  data_ok_checked: typeof field_data_ok[field.id] === 'boolean' ? field_data_ok[field.id] : undefined, data_ok_value: (field_data_ok[field.id] === 'ok' || field_data_ok[field.id] === 'not_ok' || field_data_ok[field.id] === 'pending')
@@ -1422,18 +1446,18 @@ export const HazoCollabFormSet = React.forwardRef((props, ref) => {
1422
1446
  icons_behaviour: resolved_icons_behaviour,
1423
1447
  // Active role for role-based icon visibility
1424
1448
  active_role: active_role,
1425
- // Edit/delete field structure controls (control_edit_field/control_delete_field)
1426
- on_edit_field: show_edit_field && edit_field_enabled ? () => on_edit_field_config?.(field.id, field) : undefined, on_delete_field: show_delete_field && delete_field_enabled ? () => on_delete_field?.(field.id) : undefined, children: field.fields && field.fields.length > 0 ? (_jsx(_Fragment, { children: field.fields.map(render_field) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "cls_empty_group_placeholder text-sm text-muted-foreground italic py-4 text-center", children: "No fields in this group yet" }), show_add_elements && (_jsx(CollabFormAddFieldIcon, { field_id: field.id, on_click: () => handle_open_add_field_dialog(field.id, 'group'), disabled: !add_elements_enabled, variant: "field" }))] })) }, field.id));
1449
+ // Edit/delete group structure controls (control_edit_group/control_delete_field)
1450
+ on_edit_field: show_edit_group && edit_group_enabled ? () => on_edit_field_config?.(field.id, field) : undefined, on_delete_field: show_delete_field && delete_field_enabled ? () => on_delete_field?.(field.id) : undefined, children: field.fields && field.fields.length > 0 ? (_jsx(_Fragment, { children: field.fields.map(f => render_field(f, !!show_add_elements, !!add_elements_enabled)) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "cls_empty_group_placeholder text-sm text-muted-foreground italic py-4 text-center", children: "No fields in this group yet" }), show_add_elements && (_jsx(CollabFormAddFieldIcon, { field_id: field.id, on_click: () => handle_open_add_field_dialog(field.id, 'group'), disabled: !add_elements_enabled, variant: "field" }))] })) }, field.id));
1427
1451
  }
1428
1452
  // Get additional entries for this field
1429
1453
  const entries = additional_entries[field.id] || [0];
1430
1454
  const entry_count = entries.length;
1431
1455
  // If no additional entry support or only original entry, render single field
1432
1456
  if (!field.additional_entry || entry_count <= 1) {
1433
- return render_field_instance(field, 0, entry_count, field_vis, dependency_satisfied);
1457
+ return render_field_instance(field, 0, entry_count, field_vis, dependency_satisfied, parent_show_add_elements, parent_add_elements_enabled);
1434
1458
  }
1435
1459
  // Render all entries (original + additional)
1436
- return (_jsx(React.Fragment, { children: entries.map((entry_idx) => render_field_instance(field, entry_idx, entry_count, field_vis, dependency_satisfied)) }, `${field.id}_entries`));
1460
+ return (_jsx(React.Fragment, { children: entries.map((entry_idx) => render_field_instance(field, entry_idx, entry_count, field_vis, dependency_satisfied, parent_show_add_elements, parent_add_elements_enabled)) }, `${field.id}_entries`));
1437
1461
  };
1438
1462
  // Resolve section-level role controls for control_add_elements (between groups)
1439
1463
  const section_role_controls = resolve_role_controls(resolved_icons_behaviour, active_role);