feat(editor): instance TextInput from a library, bundled into the edi… (#13345) 289d353ac5
* feat(editor): instance TextInput from a library, bundled into the editor for now

Co-authored-by: hernan <hernan@rive.app>
diff --git a/.rive_head b/.rive_head
index 37b556f..348efd1 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-0c254772d2eedb180ca5d0d740d58dfb52942ad8
+289d353ac57d5bd7b7264b258745abc3d9c8a8b6
diff --git a/dev/defs/artboard.json b/dev/defs/artboard.json
index b703708..6dd68e3 100644
--- a/dev/defs/artboard.json
+++ b/dev/defs/artboard.json
@@ -58,7 +58,8 @@
       },
       "description": "List of expanded components",
       "runtime": false,
-      "coop": false
+      "coop": false,
+      "journal": false
     },
     "expandedFolders": {
       "type": "List<Id>",
@@ -69,7 +70,8 @@
       },
       "description": "List of expanded folders",
       "runtime": false,
-      "coop": false
+      "coop": false,
+      "journal": false
     },
     "selectedAnimations": {
       "type": "List<Id>",
@@ -134,6 +136,28 @@
       "runtime": false,
       "coop": false,
       "journal": false
+    },
+    "previewAnimationId": {
+      "type": "Id",
+      "initialValue": "Core.missingId",
+      "key": {
+        "int": 1039,
+        "string": "previewanimationid"
+      },
+      "description": "The open animation (timeline or state machine) that is a preview tab, if any.",
+      "runtime": false,
+      "coop": false,
+      "journal": false
+    },
+    "artboardKind": {
+      "type": "uint",
+      "initialValue": "0",
+      "key": {
+        "int": 1072,
+        "string": "artboardkind"
+      },
+      "description": "The kind of artboard that is being rendered. 0 is regular, 1 is textInput.",
+      "runtime": false
     }
   }
 }
\ No newline at end of file
diff --git a/src/text/text_input.cpp b/src/text/text_input.cpp
index 23fc48c..887132a 100644
--- a/src/text/text_input.cpp
+++ b/src/text/text_input.cpp
@@ -114,9 +114,11 @@
 {
     Super::update(value);
 #ifdef WITH_RIVE_TEXT
-    if (hasDirt(value, ComponentDirt::Paint | ComponentDirt::TextShape))
+    if (m_textStyle != nullptr &&
+        hasDirt(value, ComponentDirt::Paint | ComponentDirt::TextShape))
     {
         Factory* factory = artboard()->factory();
+        m_rawTextInput.font(m_textStyle->font());
         m_rawTextInput.fontSize(m_textStyle->fontSize());
         RawTextInput::Flags changed = m_rawTextInput.update(factory);
         if (enums::is_flag_set(changed, RawTextInput::Flags::shapeDirty))