mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Add a first-class `checked: Bool?` to InstantPageListItem (orthogonal to the ordered-list `num`), replacing the prior sentinel-string-in-num prototype. - Data model: enum third associated value on .text/.blocks; Postbox + a new FlatBuffers `checkState` tri-state field (0=nil,1=unchecked,2=checked, backward-compatible); Equatable. - Transmission: read/write the native API `checkbox`=flags.0 / `checked`=flags.1 bits on all four PageListItem / PageListOrderedItem constructors, so checkbox state survives the server round-trip for sender and recipients. - Markdown: forward parser routes detected `[ ]`/`[x]` into `checked` (keeping the real number for ordered items); reverse converter emits `- [ ]`/`- [x]` so editing a rich message round-trips. - Display: V1 + V2 layout detect via `item.checked`; the V2 renderer draws real CheckNode artwork (was a placeholder); preview text shows a checkbox glyph instead of leaking the old sentinel. Spec: docs/superpowers/specs/2026-05-27-instantpage-list-checkbox-design.md Plan: docs/superpowers/plans/2026-05-27-instantpage-list-checkbox.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| InstantImageGalleryItem.swift | ||
| InstantPageAnchorItem.swift | ||
| InstantPageArticleItem.swift | ||
| InstantPageArticleNode.swift | ||
| InstantPageAudioItem.swift | ||
| InstantPageAudioNode.swift | ||
| InstantPageChecklistMarkerItem.swift | ||
| InstantPageContentNode.swift | ||
| InstantPageController.swift | ||
| InstantPageControllerNode.swift | ||
| InstantPageDetailsItem.swift | ||
| InstantPageDetailsNode.swift | ||
| InstantPageExternalMediaResource.swift | ||
| InstantPageFeedbackItem.swift | ||
| InstantPageFeedbackNode.swift | ||
| InstantPageFormulaItem.swift | ||
| InstantPageGalleryController.swift | ||
| InstantPageGalleryFooterContentNode.swift | ||
| InstantPageImageItem.swift | ||
| InstantPageImageNode.swift | ||
| InstantPageItem.swift | ||
| InstantPageLayout.swift | ||
| InstantPageLayoutSpacings.swift | ||
| InstantPageLinkSelectionView.swift | ||
| InstantPageMath.swift | ||
| InstantPageMedia.swift | ||
| InstantPageMediaOpen.swift | ||
| InstantPageMediaPlaylist.swift | ||
| InstantPageMultiTextAdapter.swift | ||
| InstantPageNavigationBar.swift | ||
| InstantPageNode.swift | ||
| InstantPagePeerReferenceItem.swift | ||
| InstantPagePeerReferenceNode.swift | ||
| InstantPagePlayableVideoItem.swift | ||
| InstantPagePlayableVideoNode.swift | ||
| InstantPageReferenceController.swift | ||
| InstantPageReferenceControllerNode.swift | ||
| InstantPageRenderer.swift | ||
| InstantPageScrollableNode.swift | ||
| InstantPageSettingsBacklightItemNode.swift | ||
| InstantPageSettingsButtonItemNode.swift | ||
| InstantPageSettingsFontFamilyItemNode.swift | ||
| InstantPageSettingsFontSizeItemNode.swift | ||
| InstantPageSettingsItemNode.swift | ||
| InstantPageSettingsItemTheme.swift | ||
| InstantPageSettingsNode.swift | ||
| InstantPageSettingsSwitchItemNode.swift | ||
| InstantPageSettingsThemeItemNode.swift | ||
| InstantPageShapeItem.swift | ||
| InstantPageSlideshowItem.swift | ||
| InstantPageSlideshowItemNode.swift | ||
| InstantPageStoredState.swift | ||
| InstantPageSubContentNode.swift | ||
| InstantPageTableItem.swift | ||
| InstantPageTextItem.swift | ||
| InstantPageTextSelectionNode.swift | ||
| InstantPageTextStyleStack.swift | ||
| InstantPageTheme.swift | ||
| InstantPageTile.swift | ||
| InstantPageTileNode.swift | ||
| InstantPageV2Layout.swift | ||
| InstantPageV2MediaViews.swift | ||
| InstantPageV2RevealCost.swift | ||
| InstantPageWebEmbedItem.swift | ||
| InstantPageWebEmbedNode.swift | ||