{
  "page_ir": {
    "page_id": "notes_list",
    "page_goal": "Display all notes across productions with search, filtering, and CRUD operations via modal and drawer",
    "style": {
      "tone": "professional",
      "theme": "light",
      "density": "comfortable",
      "color_intent": "neutral with indigo accents"
    },
    "accessibility": {
      "required_labels": [
        "search_input",
        "filter_production",
        "filter_author",
        "note_content",
        "note_production"
      ],
      "skip_navigation": true,
      "focus_management": true,
      "announce_changes": []
    },
    "responsive": {
      "breakpoints": {
        "sm": 576,
        "md": 768,
        "lg": 1024,
        "xl": 1440
      },
      "collapse_rules": [
        "filters_row collapses to vertical on sm"
      ],
      "hidden_on_small": [
        "date_range_filter"
      ],
      "stack_on_small": []
    },
    "constraints": [
      "Notes are displayed in a table with content preview truncated to 100 chars"
    ],
    "seo_title": null,
    "seo_description": null
  },
  "data_ir": {
    "types": {},
    "state": {
      "notes": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "productions": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "users": {
        "type": "array",
        "initial": [],
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "searchText": {
        "type": "string",
        "initial": "",
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "filterProductionId": {
        "type": "string",
        "initial": "",
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "filterAuthorId": {
        "type": "string",
        "initial": "",
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "addNoteModalVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "detailDrawerVisible": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "selectedNote": {
        "type": "object",
        "initial": null,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "editMode": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      },
      "loading": {
        "type": "boolean",
        "initial": false,
        "required": false,
        "constraints": {},
        "item_type": null
      }
    },
    "derived": {
      "filteredNotes": {
        "type": "array",
        "expr": "state.notes.filter(n => (!state.searchText || n.content.toLowerCase().includes(state.searchText.toLowerCase())) && (!state.filterProductionId || n.production_id === state.filterProductionId) && (!state.filterAuthorId || n.created_by_user_id === state.filterAuthorId))",
        "deps": []
      }
    }
  },
  "data_fetch_ir": {
    "endpoints": {
      "6c7bc92556d24ec09442bd1c12466203": {
        "endpoint_id": "6c7bc92556d24ec09442bd1c12466203",
        "module": "Notes",
        "endpoint": "/notes/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 100
        },
        "body": null,
        "fields": [
          "id",
          "created_by_user_id",
          "production_id",
          "venue_id",
          "performance_id",
          "rehearsal_id",
          "content",
          "is_private",
          "created_at",
          "updated_at"
        ],
        "response_target": "notes",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "3b6e7987b5994cce95a837f373b05e2f": {
        "endpoint_id": "3b6e7987b5994cce95a837f373b05e2f",
        "module": "Productions",
        "endpoint": "/productions/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 100
        },
        "body": null,
        "fields": [
          "id",
          "title",
          "venue_id",
          "status"
        ],
        "response_target": "productions",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "d3a070dce58e41ad8472276522a05955": {
        "endpoint_id": "d3a070dce58e41ad8472276522a05955",
        "module": "Users",
        "endpoint": "/users/",
        "method": "GET",
        "path_params": {},
        "query_params": {
          "limit": 100
        },
        "body": null,
        "fields": [
          "id",
          "first_name",
          "last_name",
          "email",
          "role"
        ],
        "response_target": "users",
        "response_transform": null,
        "trigger": "on_mount",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "cdca3695dc134ba5808c579c0d8d68be": {
        "endpoint_id": "cdca3695dc134ba5808c579c0d8d68be",
        "module": "Notes",
        "endpoint": "/notes/",
        "method": "POST",
        "path_params": {},
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "created_by_user_id",
          "production_id",
          "content",
          "is_private",
          "created_at",
          "updated_at"
        ],
        "response_target": "selectedNote",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "345f0205e2a541dfa125887575059967": {
        "endpoint_id": "345f0205e2a541dfa125887575059967",
        "module": "Notes",
        "endpoint": "/notes/{note_id}",
        "method": "PUT",
        "path_params": {
          "note_id": "$state.selectedNote.id"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "created_by_user_id",
          "production_id",
          "content",
          "is_private",
          "created_at",
          "updated_at"
        ],
        "response_target": "selectedNote",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "1ba6736c85ae4e1f9ec54baba6e0a85a": {
        "endpoint_id": "1ba6736c85ae4e1f9ec54baba6e0a85a",
        "module": "Notes",
        "endpoint": "/notes/{note_id}",
        "method": "DELETE",
        "path_params": {
          "note_id": "$state.selectedNote.id"
        },
        "query_params": {},
        "body": null,
        "fields": [],
        "response_target": "1ba6736c85ae4e1f9ec54baba6e0a85a_data",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      },
      "62aade56aef74d579e1360ffd5fa8d5f": {
        "endpoint_id": "62aade56aef74d579e1360ffd5fa8d5f",
        "module": "Notes",
        "endpoint": "/notes/{note_id}/details",
        "method": "GET",
        "path_params": {
          "note_id": "$state.selectedNote.id"
        },
        "query_params": {},
        "body": null,
        "fields": [
          "id",
          "created_by_user_id",
          "production_id",
          "venue_id",
          "content",
          "is_private",
          "created_at",
          "updated_at",
          "created_by_user_first_name",
          "created_by_user_last_name",
          "production_title"
        ],
        "response_target": "selectedNote",
        "response_transform": null,
        "trigger": "manual",
        "depends_on": [],
        "debounce_ms": null,
        "loading_field": null,
        "error_field": null
      }
    }
  },
  "data_model_ir": {
    "entities": {
      "note": {
        "name": "Note",
        "backend_module": "Notes",
        "fields": [
          "id",
          "created_by_user_id",
          "production_id",
          "venue_id",
          "performance_id",
          "rehearsal_id",
          "content",
          "is_private",
          "created_at",
          "updated_at"
        ],
        "computed": [],
        "display_fields": [
          "content",
          "created_by_user_id",
          "production_id",
          "created_at",
          "is_private"
        ],
        "search_fields": [
          "content"
        ],
        "filters": [
          "production_id",
          "created_by_user_id"
        ],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "production": {
        "name": "Production",
        "backend_module": "Productions",
        "fields": [
          "id",
          "title",
          "venue_id",
          "status"
        ],
        "computed": [],
        "display_fields": [
          "title"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      },
      "user": {
        "name": "User",
        "backend_module": "Users",
        "fields": [
          "id",
          "first_name",
          "last_name",
          "email",
          "role"
        ],
        "computed": [],
        "display_fields": [
          "first_name",
          "last_name"
        ],
        "search_fields": [],
        "filters": [],
        "default_sort": null,
        "default_sort_dir": "asc"
      }
    },
    "relationships": []
  },
  "behaviour_ir": {
    "events": {
      "onSearchChange": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.searchText",
            "expr": "event.target.value"
          }
        ],
        "description": ""
      },
      "onFilterProductionChange": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.filterProductionId",
            "expr": "value"
          }
        ],
        "description": ""
      },
      "onFilterAuthorChange": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.filterAuthorId",
            "expr": "value"
          }
        ],
        "description": ""
      },
      "openAddNoteModal": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.addNoteModalVisible",
            "expr": "true"
          }
        ],
        "description": ""
      },
      "closeAddNoteModal": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.addNoteModalVisible",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "openDetailDrawer": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.detailDrawerVisible",
            "expr": "true"
          },
          {
            "target": "state.editMode",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "closeDetailDrawer": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.detailDrawerVisible",
            "expr": "false"
          },
          {
            "target": "state.selectedNote",
            "expr": "null"
          },
          {
            "target": "state.editMode",
            "expr": "false"
          }
        ],
        "description": ""
      },
      "enableEditMode": {
        "type": "mutation",
        "updates": [
          {
            "target": "state.editMode",
            "expr": "true"
          }
        ],
        "description": ""
      }
    },
    "actions": {
      "618306125e5b474fad99b0042bff1ca3": {
        "action_id": "618306125e5b474fad99b0042bff1ca3",
        "trigger": "form_submit",
        "target_component_id": "add_note_modal",
        "operation": "create",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"content\", \"message\": \"Note content is required\", \"rule_id\": \"val_content\", \"type\": \"required\"}",
            "message": "{\"field\": \"content\", \"message\": \"Note content is required\", \"rule_id\": \"val_content\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.addNoteModalVisible",
            "expr": "false"
          }
        ],
        "api_endpoint": "cdca3695dc134ba5808c579c0d8d68be",
        "api_body": "{created_by_user_id: appContext.currentUser?.id, production_id: formValues.production_id || null, content: formValues.content, is_private: formValues.is_private || false}",
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Note created successfully",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchNotes"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "b3e491ee84d44b44954fda0f42374ac8": {
        "action_id": "b3e491ee84d44b44954fda0f42374ac8",
        "trigger": "row_click",
        "target_component_id": "notes_table",
        "operation": "read",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.selectedNote",
            "expr": "record"
          },
          {
            "target": "state.detailDrawerVisible",
            "expr": "true"
          },
          {
            "target": "state.editMode",
            "expr": "false"
          }
        ],
        "api_endpoint": "62aade56aef74d579e1360ffd5fa8d5f",
        "api_body": null,
        "side_effects": [],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "345f0205e2a541dfa125887575059967": {
        "action_id": "345f0205e2a541dfa125887575059967",
        "trigger": "form_submit",
        "target_component_id": "detail_drawer",
        "operation": "update",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [
          {
            "rule_id": "val_0",
            "field": null,
            "type": "custom",
            "value": null,
            "expression": "{\"field\": \"content\", \"message\": \"Note content is required\", \"rule_id\": \"val_edit_content\", \"type\": \"required\"}",
            "message": "{\"field\": \"content\", \"message\": \"Note content is required\", \"rule_id\": \"val_edit_content\", \"type\": \"required\"}"
          }
        ],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.editMode",
            "expr": "false"
          }
        ],
        "api_endpoint": "345f0205e2a541dfa125887575059967",
        "api_body": "{content: formValues.content, production_id: formValues.production_id || null, is_private: formValues.is_private}",
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Note updated successfully",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchNotes"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "1ba6736c85ae4e1f9ec54baba6e0a85a": {
        "action_id": "1ba6736c85ae4e1f9ec54baba6e0a85a",
        "trigger": "button_click",
        "target_component_id": "delete_note_btn",
        "operation": "delete",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": true,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [
          {
            "target": "state.detailDrawerVisible",
            "expr": "false"
          },
          {
            "target": "state.selectedNote",
            "expr": "null"
          }
        ],
        "api_endpoint": "1ba6736c85ae4e1f9ec54baba6e0a85a",
        "api_body": null,
        "side_effects": [
          {
            "type": "toast",
            "config": {
              "message": "Note deleted successfully",
              "type": "success"
            }
          },
          {
            "type": "refresh",
            "config": {
              "target": "fetchNotes"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      },
      "e74fb95f1aa14c5393cee11471a9eddf": {
        "action_id": "e74fb95f1aa14c5393cee11471a9eddf",
        "trigger": "button_click",
        "target_component_id": "production_link",
        "operation": "custom",
        "description": "",
        "payload": {},
        "guard": null,
        "requires_confirmation": false,
        "confirmation_message": null,
        "validation_rules": [],
        "validation_messages": {},
        "updates": [],
        "api_endpoint": null,
        "api_body": null,
        "side_effects": [
          {
            "type": "navigate",
            "config": {
              "path": "/productions/${state.selectedNote.production_id}"
            }
          }
        ],
        "then": null,
        "catch": null,
        "data_action": null
      }
    },
    "feedback": {
      "618306125e5b474fad99b0042bff1ca3": {
        "action_id": "618306125e5b474fad99b0042bff1ca3",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Note created successfully",
        "error_message": "Failed to create note",
        "ui_updates": []
      },
      "345f0205e2a541dfa125887575059967": {
        "action_id": "345f0205e2a541dfa125887575059967",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Note updated successfully",
        "error_message": "Failed to update note",
        "ui_updates": []
      },
      "1ba6736c85ae4e1f9ec54baba6e0a85a": {
        "action_id": "1ba6736c85ae4e1f9ec54baba6e0a85a",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": "Note deleted successfully",
        "error_message": "Failed to delete note",
        "ui_updates": []
      },
      "b3e491ee84d44b44954fda0f42374ac8": {
        "action_id": "b3e491ee84d44b44954fda0f42374ac8",
        "loading_indicator": "spinner",
        "loading_text": null,
        "success_message": null,
        "error_message": "Failed to load note details",
        "ui_updates": []
      },
      "e74fb95f1aa14c5393cee11471a9eddf": {
        "action_id": "e74fb95f1aa14c5393cee11471a9eddf",
        "loading_indicator": null,
        "loading_text": null,
        "success_message": null,
        "error_message": null,
        "ui_updates": []
      }
    }
  },
  "component_ir": {
    "library": "antd",
    "theme": {
      "primaryColor": "#6366f1",
      "secondaryColor": "#4f46e5",
      "successColor": null,
      "warningColor": null,
      "errorColor": null,
      "fontFamily": "sans-serif",
      "fontSize": null,
      "borderRadius": 8
    },
    "components": {
      "main_container": {
        "type": "Layout",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "minHeight": "100vh",
          "width": "100%",
          "background": "#f5f5f5"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "page_header": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "justifyContent": "space-between",
          "alignItems": "center",
          "padding": "24px 24px 0 24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "page_title": {
        "type": "Typography.Title",
        "label": "Notes",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "level": 2
        },
        "dynamic_props": {},
        "styles": {
          "margin": 0
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "add_note_btn": {
        "type": "Button",
        "label": "Add Note",
        "description": null,
        "bind": null,
        "onClick": "openAddNoteModal",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "primary",
          "icon": "PlusOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "filters_row": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "gap": "16px",
          "padding": "16px 24px",
          "flexWrap": "wrap",
          "alignItems": "center"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "search_input": {
        "type": "Input.Search",
        "label": "Search notes",
        "description": null,
        "bind": "state.searchText",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Search by content...",
          "allowClear": true
        },
        "dynamic_props": {},
        "styles": {
          "width": "280px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "filter_production": {
        "type": "Select",
        "label": "Filter by Production",
        "description": null,
        "bind": "state.filterProductionId",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "All Productions",
          "allowClear": true,
          "options": "state.productions.map(p => ({label: p.title, value: p.id}))"
        },
        "dynamic_props": {},
        "styles": {
          "width": "220px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "filter_author": {
        "type": "Select",
        "label": "Filter by Author",
        "description": null,
        "bind": "state.filterAuthorId",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "All Authors",
          "allowClear": true,
          "options": "state.users.map(u => ({label: u.first_name + ' ' + u.last_name, value: u.id}))"
        },
        "dynamic_props": {},
        "styles": {
          "width": "220px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "content_area": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "padding": "0 24px 24px 24px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "notes_table": {
        "type": "Table",
        "label": null,
        "description": null,
        "bind": "derived.filteredNotes",
        "onClick": "selectNote",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "columns": [
            {
              "title": "Content",
              "dataIndex": "content",
              "key": "content",
              "ellipsis": true,
              "width": "40%"
            },
            {
              "title": "Author",
              "dataIndex": "created_by_user_id",
              "key": "author",
              "render": "userId => { const u = state.users.find(u => u.id === userId); return u ? u.first_name + ' ' + u.last_name : '-'; }"
            },
            {
              "title": "Production",
              "dataIndex": "production_id",
              "key": "production",
              "render": "prodId => { const p = state.productions.find(p => p.id === prodId); return p ? p.title : '-'; }"
            },
            {
              "title": "Created",
              "dataIndex": "created_at",
              "key": "created_at",
              "render": "date => new Date(date).toLocaleDateString()"
            },
            {
              "title": "Private",
              "dataIndex": "is_private",
              "key": "is_private",
              "render": "val => val ? 'Yes' : 'No'"
            }
          ],
          "rowKey": "id",
          "pagination": {
            "pageSize": 20
          },
          "loading": "state.loading"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "add_note_modal": {
        "type": "Modal",
        "label": "Add Note",
        "description": null,
        "bind": "state.addNoteModalVisible",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Add Note",
          "okText": "Save",
          "cancelText": "Cancel",
          "onCancel": "closeAddNoteModal",
          "onOk": "submitNote",
          "destroyOnClose": true
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "modal_form": {
        "type": "Form",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "layout": "vertical"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "form_content_field": {
        "type": "Form.Item",
        "label": "Content",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "name": "content",
          "rules": [
            {
              "required": true,
              "message": "Note content is required"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "form_content_input": {
        "type": "Input.TextArea",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "rows": 6,
          "placeholder": "Write your note here..."
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "form_production_field": {
        "type": "Form.Item",
        "label": "Production",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "name": "production_id"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "form_production_select": {
        "type": "Select",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "placeholder": "Select production (optional)",
          "allowClear": true,
          "options": "state.productions.map(p => ({label: p.title, value: p.id}))"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "form_private_field": {
        "type": "Form.Item",
        "label": "Private Note",
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "name": "is_private",
          "valuePropName": "checked"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "form_private_switch": {
        "type": "Switch",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "detail_drawer": {
        "type": "Drawer",
        "label": "Note Details",
        "description": null,
        "bind": "state.detailDrawerVisible",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "title": "Note Details",
          "width": 520,
          "onClose": "closeDetailDrawer",
          "destroyOnClose": true
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "drawer_content": {
        "type": "div",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "display": "flex",
          "flexDirection": "column",
          "gap": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "drawer_author_info": {
        "type": "Descriptions",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "column": 1,
          "size": "small",
          "bordered": true,
          "items": [
            {
              "label": "Author",
              "value": "state.selectedNote?.created_by_user_first_name + ' ' + state.selectedNote?.created_by_user_last_name"
            },
            {
              "label": "Production",
              "value": "state.selectedNote?.production_title || 'N/A'"
            },
            {
              "label": "Created",
              "value": "state.selectedNote?.created_at ? new Date(state.selectedNote.created_at).toLocaleString() : ''"
            },
            {
              "label": "Updated",
              "value": "state.selectedNote?.updated_at ? new Date(state.selectedNote.updated_at).toLocaleString() : ''"
            },
            {
              "label": "Private",
              "value": "state.selectedNote?.is_private ? 'Yes' : 'No'"
            }
          ]
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "drawer_note_content": {
        "type": "Typography.Paragraph",
        "label": null,
        "description": null,
        "bind": "state.selectedNote?.content",
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "whiteSpace": "pre-wrap",
          "padding": "16px",
          "background": "#fafafa",
          "borderRadius": "8px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "drawer_actions": {
        "type": "Space",
        "label": null,
        "description": null,
        "bind": null,
        "onClick": null,
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {},
        "dynamic_props": {},
        "styles": {
          "marginTop": "16px"
        },
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "edit_note_btn": {
        "type": "Button",
        "label": "Edit",
        "description": null,
        "bind": null,
        "onClick": "enableEditMode",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "primary",
          "icon": "EditOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "delete_note_btn": {
        "type": "Button",
        "label": "Delete",
        "description": null,
        "bind": null,
        "onClick": "deleteNote",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "danger": true,
          "icon": "DeleteOutlined"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      },
      "production_link": {
        "type": "Button",
        "label": "View Production",
        "description": null,
        "bind": null,
        "onClick": "navigateToProduction",
        "onChange": null,
        "onSubmit": null,
        "onHover": null,
        "onKeyPress": null,
        "props": {
          "type": "link",
          "disabled": "!state.selectedNote?.production_id"
        },
        "dynamic_props": {},
        "styles": {},
        "dynamic_styles": {},
        "class_name": null,
        "dynamic_class": null,
        "transitions": [],
        "visible_when": null,
        "disabled_when": null,
        "repeat": null,
        "slots": {},
        "a11y_role": null,
        "a11y_label": null
      }
    }
  },
  "layout_ir": {
    "root": "main_container",
    "children": {
      "main_container": [
        "page_header",
        "filters_row",
        "content_area",
        "add_note_modal",
        "detail_drawer"
      ],
      "page_header": [
        "page_title",
        "add_note_btn"
      ],
      "filters_row": [
        "search_input",
        "filter_production",
        "filter_author"
      ],
      "content_area": [
        "notes_table"
      ],
      "add_note_modal": [
        "modal_form"
      ],
      "modal_form": [
        "form_content_field",
        "form_production_field",
        "form_private_field"
      ],
      "form_content_field": [
        "form_content_input"
      ],
      "form_production_field": [
        "form_production_select"
      ],
      "form_private_field": [
        "form_private_switch"
      ],
      "detail_drawer": [
        "drawer_content"
      ],
      "drawer_content": [
        "drawer_author_info",
        "drawer_note_content",
        "drawer_actions"
      ],
      "drawer_actions": [
        "edit_note_btn",
        "delete_note_btn",
        "production_link"
      ]
    },
    "layout": {
      "main_container": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "page_header": {
        "type": "horizontal",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "filters_row": {
        "type": "horizontal",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "content_area": {
        "type": "vertical",
        "gap": 0,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "modal_form": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "drawer_content": {
        "type": "vertical",
        "gap": 16,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      },
      "drawer_actions": {
        "type": "horizontal",
        "gap": 12,
        "padding": null,
        "columns": null,
        "column_template": null,
        "row_template": null,
        "align_items": null,
        "justify_content": null,
        "wrap": false,
        "min_height": null,
        "overflow": null
      }
    },
    "layout_zones": [
      {
        "zone_id": "main_zone",
        "component": "main_container",
        "anchor": "center",
        "size_hint": "full-width",
        "z_layer": "base",
        "notes": "Main page container"
      },
      {
        "zone_id": "modal_zone",
        "component": "add_note_modal",
        "anchor": "center",
        "size_hint": "auto",
        "z_layer": "overlay",
        "notes": "Add note modal overlay"
      },
      {
        "zone_id": "drawer_zone",
        "component": "detail_drawer",
        "anchor": "center",
        "size_hint": "auto",
        "z_layer": "overlay",
        "notes": "Note detail drawer overlay"
      }
    ],
    "responsive_overrides": []
  },
  "navigation_ir": {
    "tabs": [],
    "modals": {},
    "drawers": {},
    "routes": [],
    "breadcrumb": null,
    "default_tab": null
  },
  "realtime_ir": {
    "timers": {},
    "polling": {}
  },
  "metadata": {
    "ir_version": "3.5",
    "generated_at": "",
    "source_prompt": null,
    "schema_session_id": null,
    "warnings": []
  },
  "page_data_contract": null,
  "schema_ir": null
}
