-
Notifications
You must be signed in to change notification settings - Fork 7
feat: add org.hyperboards.board and org.hyperboards.contributor lexicons #149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
aspiers
merged 8 commits into
hypercerts-org:develop
from
daviddao:feat/add-hyperboards-lexicons
Mar 2, 2026
Merged
Changes from 7 commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
9f124eb
feat: add org.hyperboards.board and org.hyperboards.contributor lexicons
daviddao f7fc8cf
refactor: rename and improve hyperboards lexicons
holkexyz 8395d15
refactor: make displayProfile a singleton with user-owned defaults
holkexyz 60a82b7
feat: add smallVideo def and support video uploads in hyperboards
holkexyz de3ad35
refactor: rename config to board and improve contributor override naming
holkexyz a9028d9
refactor: remove isBlueprint from contributorOverride
holkexyz 895b884
refactor: rename contributorOverrides to contributorDefaults
holkexyz fea8132
refactor: rename contributorDefault to contributorConfig
holkexyz File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| "@hypercerts-org/lexicon": minor | ||
| --- | ||
|
|
||
| Add `org.hyperboards.board` and `org.hyperboards.displayProfile` lexicons for hyperboard visual presentation records. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,152 @@ | ||
| { | ||
| "lexicon": 1, | ||
| "id": "org.hyperboards.board", | ||
| "defs": { | ||
| "main": { | ||
| "type": "record", | ||
| "description": "Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.", | ||
| "key": "tid", | ||
| "record": { | ||
| "type": "object", | ||
| "required": ["subject", "createdAt"], | ||
| "properties": { | ||
| "subject": { | ||
| "type": "ref", | ||
| "ref": "com.atproto.repo.strongRef", | ||
| "description": "Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes." | ||
| }, | ||
| "config": { | ||
| "type": "ref", | ||
| "ref": "#boardConfig", | ||
| "description": "Board-level visual configuration (background, colors, aspect ratio)." | ||
| }, | ||
| "contributorDefaults": { | ||
| "type": "array", | ||
| "description": "Per-contributor default visual settings for this board. Each entry provides fallback values for a contributor's appearance, unless the entry's override flag forces the board's values to take precedence over the contributor's own settings.", | ||
| "maxLength": 1000, | ||
| "items": { | ||
| "type": "ref", | ||
| "ref": "#contributorDefault" | ||
| } | ||
| }, | ||
| "createdAt": { | ||
| "type": "string", | ||
| "format": "datetime", | ||
| "description": "Client-declared timestamp when this record was originally created." | ||
| } | ||
| } | ||
| } | ||
| }, | ||
| "boardConfig": { | ||
| "type": "object", | ||
| "description": "Visual configuration for a hyperboard's background, colors, and layout.", | ||
| "properties": { | ||
| "backgroundType": { | ||
| "type": "string", | ||
| "description": "Type of background content.", | ||
| "knownValues": ["image", "iframe"], | ||
| "maxLength": 10 | ||
| }, | ||
| "backgroundImage": { | ||
| "type": "union", | ||
| "refs": ["org.hypercerts.defs#uri", "org.hypercerts.defs#smallImage"], | ||
| "description": "Background image as a URI or image blob." | ||
| }, | ||
| "backgroundIframeUrl": { | ||
| "type": "string", | ||
| "format": "uri", | ||
| "description": "URI of the background iframe.", | ||
| "maxLength": 2048 | ||
| }, | ||
| "backgroundGrayscale": { | ||
| "type": "boolean", | ||
| "description": "Whether the background is rendered in grayscale. Default: true." | ||
| }, | ||
| "backgroundOpacity": { | ||
| "type": "integer", | ||
| "description": "Background opacity as a percentage (0–100).", | ||
| "minimum": 0, | ||
| "maximum": 100 | ||
| }, | ||
| "backgroundColor": { | ||
| "type": "string", | ||
| "description": "Background color as a hex string (e.g. '#ffffff').", | ||
| "maxLength": 20 | ||
| }, | ||
| "borderColor": { | ||
| "type": "string", | ||
| "description": "Border color as a hex string (e.g. '#000000').", | ||
| "maxLength": 20 | ||
| }, | ||
| "grayscaleImages": { | ||
| "type": "boolean", | ||
| "description": "Whether contributor images are rendered in grayscale. Default: false." | ||
| }, | ||
| "imageShape": { | ||
| "type": "string", | ||
| "description": "Shape used to crop contributor images on this board.", | ||
| "knownValues": ["circular", "square"], | ||
| "maxLength": 20 | ||
| }, | ||
| "aspectRatio": { | ||
| "type": "string", | ||
| "description": "Display aspect ratio of the board.", | ||
| "knownValues": ["16:9", "4:3", "1:1"], | ||
| "maxLength": 10 | ||
| } | ||
| } | ||
| }, | ||
| "contributorDefault": { | ||
|
holkexyz marked this conversation as resolved.
Outdated
|
||
| "type": "object", | ||
| "description": "Default visual settings for a specific contributor within a board. Values serve as fallbacks when the contributor has not defined their own. When 'override' is true, these values take precedence over the contributor's own settings.", | ||
| "required": ["contributor"], | ||
| "properties": { | ||
| "contributor": { | ||
| "type": "union", | ||
| "refs": [ | ||
| "com.atproto.repo.strongRef", | ||
| "org.hypercerts.claim.activity#contributorIdentity" | ||
| ], | ||
| "description": "Identifies the contributor being styled. A strong reference to an org.hypercerts.claim.contributorInformation record, or a contributorIdentity (DID or identifier string) for contributors without a dedicated record." | ||
| }, | ||
| "override": { | ||
| "type": "boolean", | ||
| "description": "When true, these values take precedence over the contributor's own profile and display settings. When false or omitted, they are only used as fallbacks if the contributor has not set their own settings." | ||
| }, | ||
| "displayName": { | ||
| "type": "string", | ||
| "description": "Default display name for this contributor on this board.", | ||
| "maxLength": 640, | ||
| "maxGraphemes": 64 | ||
| }, | ||
| "image": { | ||
| "type": "union", | ||
| "refs": ["org.hypercerts.defs#uri", "org.hypercerts.defs#smallImage"], | ||
| "description": "Default avatar or face image for this contributor on this board, as a URI or image blob." | ||
| }, | ||
| "video": { | ||
| "type": "union", | ||
| "refs": ["org.hypercerts.defs#uri", "org.hypercerts.defs#smallVideo"], | ||
| "description": "Default video for this contributor, as a URI (embed/direct link) or uploaded video blob." | ||
| }, | ||
| "hoverImage": { | ||
| "type": "union", | ||
| "refs": ["org.hypercerts.defs#uri", "org.hypercerts.defs#smallImage"], | ||
| "description": "Default image overlay shown when hovering over this contributor, as a URI or image blob." | ||
| }, | ||
| "hoverIframeUrl": { | ||
| "type": "string", | ||
| "format": "uri", | ||
| "description": "Default iframe overlay shown when hovering over this contributor.", | ||
| "maxLength": 2048 | ||
| }, | ||
| "url": { | ||
| "type": "string", | ||
| "format": "uri", | ||
| "description": "Default click-through link URL for this contributor.", | ||
| "maxLength": 2048 | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| { | ||
| "lexicon": 1, | ||
| "id": "org.hyperboards.displayProfile", | ||
| "defs": { | ||
| "main": { | ||
| "type": "record", | ||
| "description": "User-declared visual presentation defaults for how a contributor appears on hyperboards. Stored in the contributor's own PDS and reusable across multiple boards.", | ||
| "key": "literal:self", | ||
| "record": { | ||
| "type": "object", | ||
| "required": ["createdAt"], | ||
| "properties": { | ||
| "displayName": { | ||
| "type": "string", | ||
| "description": "Display name override for this user on hyperboards.", | ||
| "maxLength": 640, | ||
| "maxGraphemes": 64 | ||
| }, | ||
| "image": { | ||
| "type": "union", | ||
| "refs": [ | ||
| "org.hypercerts.defs#uri", | ||
| "org.hypercerts.defs#smallImage" | ||
| ], | ||
| "description": "Avatar or face image override for this user on hyperboards, as a URI or image blob." | ||
| }, | ||
| "video": { | ||
| "type": "union", | ||
| "refs": [ | ||
| "org.hypercerts.defs#uri", | ||
| "org.hypercerts.defs#smallVideo" | ||
| ], | ||
| "description": "Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob." | ||
| }, | ||
| "hoverImage": { | ||
| "type": "union", | ||
| "refs": [ | ||
| "org.hypercerts.defs#uri", | ||
| "org.hypercerts.defs#smallImage" | ||
| ], | ||
| "description": "Default hover image for this user across boards, as a URI or image blob." | ||
| }, | ||
| "hoverIframeUrl": { | ||
| "type": "string", | ||
| "format": "uri", | ||
| "description": "Default hover iframe URL for this user across boards.", | ||
| "maxLength": 2048 | ||
| }, | ||
| "url": { | ||
| "type": "string", | ||
| "format": "uri", | ||
| "description": "Default click-through link URL for this user across boards.", | ||
| "maxLength": 2048 | ||
| }, | ||
| "createdAt": { | ||
| "type": "string", | ||
| "format": "datetime", | ||
| "description": "Client-declared timestamp when this record was originally created." | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.