at.inlay.component

inlay.at

Schema Diff

+81 -14

From

CID
bafyreihctwdmnuv...
Indexed At
2026-02-08 18:28 UTC
View this version

To

CID
bafyreihajvswzsg...
Indexed At
2026-02-09 16:40 UTC
View this version
1 1
{
2 2
  "id": "at.inlay.component",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "type"
11 11
        ],
12 12
        "properties": {
13 13
          "via": {
14 14
            "refs": [
15 15
              "at.inlay.defs#viaValtown"
16 16
            ],
17 17
            "type": "union",
18 18
            "description": "Platform-managed deployment metadata"
19 19
          },
20 20
          "body": {
21 21
            "refs": [
22 -
              "#external",
23 -
              "#template"
22 +
              "#bodyExternal",
23 +
              "#bodyTemplate"
24 24
            ],
25 25
            "type": "union",
26 26
            "description": "How this component is rendered. Omit for primitives rendered by the host."
27 27
          },
28 28
          "type": {
29 29
            "type": "string",
30 30
            "format": "nsid",
31 31
            "description": "NSID this component implements (also the XRPC procedure)"
32 32
          },
33 +
          "view": {
34 +
            "type": "array",
35 +
            "items": {
36 +
              "refs": [
37 +
                "#viewRecord",
38 +
                "#viewCollection",
39 +
                "#viewIdentity"
40 +
              ],
41 +
              "type": "union"
42 +
            },
43 +
            "description": "What kinds of pages this component is a view for"
44 +
          },
45 +
          "accepts": {
46 +
            "type": "array",
47 +
            "items": {
48 +
              "ref": "#acceptsEntry",
49 +
              "type": "ref"
50 +
            },
51 +
            "description": "Data types this component can render. Used for data-driven discovery."
52 +
          },
33 53
          "imports": {
34 54
            "type": "array",
35 55
            "items": {
36 56
              "ref": "#import",
37 57
              "type": "ref"
38 58
            },
39 59
            "description": "Where to resolve types from"
40 60
          },
41 61
          "createdAt": {
42 62
            "type": "string",
43 63
            "format": "datetime"
44 64
          },
45 -
          "collection": {
46 -
            "type": "string",
47 -
            "description": "Collection type this component renders. An NSID for specific collections, or '*' for universal components (e.g. JSON viewers). Omit for generic components like layout primitives.",
48 -
            "knownValues": [
49 -
              "*"
50 -
            ]
51 -
          },
52 65
          "description": {
53 -
            "type": "string"
54 -
          },
55 -
          "displayName": {
56 66
            "type": "string"
57 67
          }
58 68
        }
59 69
      },
60 70
      "description": "Component record - declares an implementation of a type"
61 71
    },
62 72
    "import": {
63 73
      "type": "object",
64 74
      "required": [
65 75
        "types",
66 76
        "pack"
67 77
      ],
68 78
      "properties": {
69 79
        "pack": {
70 80
          "type": "string",
71 81
          "format": "at-uri",
72 82
          "description": "Pack to resolve from"
73 83
        },
74 84
        "types": {
75 85
          "type": "string",
76 86
          "description": "Type pattern to match (glob like com.alice.* or concrete like com.alice.Avatar)"
77 87
        }
78 88
      }
79 89
    },
80 -
    "external": {
90 +
    "viewRecord": {
91 +
      "type": "object",
92 +
      "properties": {
93 +
        "collection": {
94 +
          "type": "string",
95 +
          "format": "nsid",
96 +
          "description": "The collection this component views. Omit for any-collection."
97 +
        }
98 +
      },
99 +
      "description": "Component is a view for individual records of a collection. Omit collection for a generic record view."
100 +
    },
101 +
    "acceptsEntry": {
81 102
      "type": "object",
82 103
      "required": [
104 +
        "format",
105 +
        "prop"
106 +
      ],
107 +
      "properties": {
108 +
        "prop": {
109 +
          "type": "string",
110 +
          "description": "Prop to bind matched data to"
111 +
        },
112 +
        "format": {
113 +
          "type": "string",
114 +
          "description": "Data format this entry matches",
115 +
          "knownValues": [
116 +
            "at-uri",
117 +
            "did",
118 +
            "blob",
119 +
            "datetime",
120 +
            "uri"
121 +
          ]
122 +
        },
123 +
        "collection": {
124 +
          "type": "string",
125 +
          "format": "nsid",
126 +
          "description": "For at-uri format: restrict to this collection"
127 +
        }
128 +
      },
129 +
      "description": "A data type this component can render via a specific prop"
130 +
    },
131 +
    "bodyExternal": {
132 +
      "type": "object",
133 +
      "required": [
83 134
        "did"
84 135
      ],
85 136
      "properties": {
86 137
        "did": {
87 138
          "type": "string",
88 139
          "format": "did",
89 140
          "description": "DID of the service hosting this component"
90 141
        }
91 142
      },
92 143
      "description": "Component rendered by calling a remote XRPC endpoint"
93 144
    },
94 -
    "template": {
145 +
    "bodyTemplate": {
95 146
      "type": "object",
96 147
      "required": [
97 148
        "node"
98 149
      ],
99 150
      "properties": {
100 151
        "node": {
101 152
          "type": "unknown",
102 153
          "description": "Serialized element tree with bindings"
103 154
        }
104 155
      },
105 156
      "description": "Component rendered by the host from a serialized element tree"
157 +
    },
158 +
    "viewIdentity": {
159 +
      "type": "object",
160 +
      "properties": {},
161 +
      "description": "Component is a view for an identity (person/DID)."
162 +
    },
163 +
    "viewCollection": {
164 +
      "type": "object",
165 +
      "properties": {
166 +
        "collection": {
167 +
          "type": "string",
168 +
          "format": "nsid",
169 +
          "description": "The collection this component lists. Omit for any-collection."
170 +
        }
171 +
      },
172 +
      "description": "Component is a view for a collection listing. Omit collection for a generic collection view."
106 173
    }
107 174
  },
108 175
  "$type": "com.atproto.lexicon.schema",
109 176
  "lexicon": 1
110 177
}

Compare Other Versions

Lexicon Garden

@