@bettercms-ai/kit 1.0.0 → 2.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/adapters/dock-values.d.ts +28 -0
- package/dist/adapters/dock-values.js +41 -0
- package/dist/adapters/dock-values.js.map +1 -0
- package/{adapters → dist/adapters}/icons.js +2 -2
- package/dist/adapters/icons.js.map +1 -0
- package/{adapters → dist/adapters}/lossy.d.ts +94 -31
- package/dist/adapters/lossy.js +419 -0
- package/dist/adapters/lossy.js.map +1 -0
- package/{adapters → dist/adapters}/prod-types.d.ts +91 -26
- package/{adapters → dist/adapters}/prod-types.js +82 -13
- package/dist/adapters/prod-types.js.map +1 -0
- package/{adapters → dist/adapters}/schema.d.ts +40 -1
- package/{adapters → dist/adapters}/schema.js +1038 -204
- package/dist/adapters/schema.js.map +1 -0
- package/{adapters → dist/adapters}/values.d.ts +26 -5
- package/{adapters → dist/adapters}/values.js +87 -17
- package/dist/adapters/values.js.map +1 -0
- package/dist/brand/logo.js +96 -0
- package/dist/brand/logo.js.map +1 -0
- package/{context.d.ts → dist/context.d.ts} +131 -2
- package/{context.js → dist/context.js} +44 -2
- package/dist/context.js.map +1 -0
- package/{controls → dist/controls}/button.d.ts +19 -5
- package/{controls → dist/controls}/button.js +125 -54
- package/dist/controls/button.js.map +1 -0
- package/{controls → dist/controls}/c1.js +1 -1
- package/dist/controls/c1.js.map +1 -0
- package/{controls → dist/controls}/c2.js +1 -1
- package/dist/controls/c2.js.map +1 -0
- package/{controls → dist/controls}/choice.d.ts +7 -2
- package/{controls → dist/controls}/choice.js +71 -18
- package/dist/controls/choice.js.map +1 -0
- package/{controls → dist/controls}/code-register.js +1 -1
- package/dist/controls/code-register.js.map +1 -0
- package/{controls → dist/controls}/code.js +10 -9
- package/dist/controls/code.js.map +1 -0
- package/{controls → dist/controls}/color.js +8 -8
- package/dist/controls/color.js.map +1 -0
- package/{controls → dist/controls}/component-services.d.ts +42 -0
- package/dist/controls/component-services.js +7 -0
- package/dist/controls/component-services.js.map +1 -0
- package/{controls → dist/controls}/date-register.js +1 -1
- package/dist/controls/date-register.js.map +1 -0
- package/{controls → dist/controls}/date-zone.js +8 -2
- package/dist/controls/date-zone.js.map +1 -0
- package/{controls → dist/controls}/date.js +32 -24
- package/dist/controls/date.js.map +1 -0
- package/dist/controls/form-picker-register.d.ts +7 -0
- package/{controls → dist/controls}/form-picker-register.js +2 -6
- package/dist/controls/form-picker-register.js.map +1 -0
- package/{controls → dist/controls}/form-picker.js +11 -9
- package/dist/controls/form-picker.js.map +1 -0
- package/{controls → dist/controls}/icon-register.js +1 -1
- package/dist/controls/icon-register.js.map +1 -0
- package/{controls → dist/controls}/icon.d.ts +4 -2
- package/{controls → dist/controls}/icon.js +32 -27
- package/dist/controls/icon.js.map +1 -0
- package/{controls → dist/controls}/index.d.ts +1 -1
- package/{controls → dist/controls}/index.js +4 -3
- package/dist/controls/index.js.map +1 -0
- package/{controls → dist/controls}/json-register.js +1 -1
- package/dist/controls/json-register.js.map +1 -0
- package/{controls → dist/controls}/json.js +13 -3
- package/dist/controls/json.js.map +1 -0
- package/{controls → dist/controls}/link.js +116 -200
- package/dist/controls/link.js.map +1 -0
- package/{controls → dist/controls}/location-register.js +1 -1
- package/dist/controls/location-register.js.map +1 -0
- package/{controls → dist/controls}/location.js +59 -40
- package/dist/controls/location.js.map +1 -0
- package/{controls → dist/controls}/media-register.js +1 -1
- package/dist/controls/media-register.js.map +1 -0
- package/{controls → dist/controls}/media-services.d.ts +6 -0
- package/dist/controls/media-services.js +0 -0
- package/{controls → dist/controls}/media.d.ts +21 -4
- package/{controls → dist/controls}/media.js +407 -130
- package/dist/controls/media.js.map +1 -0
- package/{controls → dist/controls}/number.js +10 -9
- package/dist/controls/number.js.map +1 -0
- package/{controls → dist/controls}/reference-register.js +1 -1
- package/dist/controls/reference-register.js.map +1 -0
- package/{controls → dist/controls}/reference-services.d.ts +4 -0
- package/dist/controls/reference-services.js +0 -0
- package/{controls → dist/controls}/reference.d.ts +1 -1
- package/{controls → dist/controls}/reference.js +93 -77
- package/dist/controls/reference.js.map +1 -0
- package/dist/controls/rich-text/article-shell.d.ts +145 -0
- package/dist/controls/rich-text/article-shell.js +510 -0
- package/dist/controls/rich-text/article-shell.js.map +1 -0
- package/dist/controls/rich-text/author.d.ts +25 -0
- package/dist/controls/rich-text/author.js +104 -0
- package/dist/controls/rich-text/author.js.map +1 -0
- package/dist/controls/rich-text/blocks.d.ts +60 -0
- package/{controls → dist/controls}/rich-text/blocks.js +164 -389
- package/dist/controls/rich-text/blocks.js.map +1 -0
- package/dist/controls/rich-text/button.d.ts +23 -0
- package/dist/controls/rich-text/button.js +85 -0
- package/dist/controls/rich-text/button.js.map +1 -0
- package/{controls → dist/controls}/rich-text/catalog.d.ts +7 -4
- package/{controls → dist/controls}/rich-text/catalog.js +94 -68
- package/dist/controls/rich-text/catalog.js.map +1 -0
- package/dist/controls/rich-text/checklist.d.ts +24 -0
- package/dist/controls/rich-text/checklist.js +115 -0
- package/dist/controls/rich-text/checklist.js.map +1 -0
- package/{controls → dist/controls}/rich-text/codec.d.ts +9 -1
- package/{controls → dist/controls}/rich-text/codec.js +7 -2
- package/dist/controls/rich-text/codec.js.map +1 -0
- package/dist/controls/rich-text/columns.d.ts +41 -0
- package/dist/controls/rich-text/columns.js +181 -0
- package/dist/controls/rich-text/columns.js.map +1 -0
- package/{controls → dist/controls}/rich-text/component-card.d.ts +1 -1
- package/{controls → dist/controls}/rich-text/component-card.js +417 -99
- package/dist/controls/rich-text/component-card.js.map +1 -0
- package/dist/controls/rich-text/component-panel.d.ts +47 -0
- package/dist/controls/rich-text/component-panel.js +141 -0
- package/dist/controls/rich-text/component-panel.js.map +1 -0
- package/{controls → dist/controls}/rich-text/control.d.ts +1 -2
- package/{controls → dist/controls}/rich-text/control.js +84 -42
- package/dist/controls/rich-text/control.js.map +1 -0
- package/{controls → dist/controls}/rich-text/dom.d.ts +53 -9
- package/{controls → dist/controls}/rich-text/dom.js +388 -50
- package/dist/controls/rich-text/dom.js.map +1 -0
- package/{controls → dist/controls}/rich-text/editor.d.ts +7 -0
- package/{controls → dist/controls}/rich-text/editor.js +226 -44
- package/dist/controls/rich-text/editor.js.map +1 -0
- package/dist/controls/rich-text/embed.d.ts +28 -0
- package/dist/controls/rich-text/embed.js +210 -0
- package/dist/controls/rich-text/embed.js.map +1 -0
- package/{controls → dist/controls}/rich-text/floating.d.ts +6 -1
- package/{controls → dist/controls}/rich-text/floating.js +35 -18
- package/dist/controls/rich-text/floating.js.map +1 -0
- package/dist/controls/rich-text/footnote.d.ts +41 -0
- package/dist/controls/rich-text/footnote.js +185 -0
- package/dist/controls/rich-text/footnote.js.map +1 -0
- package/dist/controls/rich-text/gallery.d.ts +28 -0
- package/dist/controls/rich-text/gallery.js +167 -0
- package/dist/controls/rich-text/gallery.js.map +1 -0
- package/{controls → dist/controls}/rich-text/index.js +1 -1
- package/dist/controls/rich-text/index.js.map +1 -0
- package/{controls → dist/controls}/rich-text/link-form.d.ts +3 -1
- package/dist/controls/rich-text/link-form.js +147 -0
- package/dist/controls/rich-text/link-form.js.map +1 -0
- package/{controls → dist/controls}/rich-text/markdown.js +4 -2
- package/dist/controls/rich-text/markdown.js.map +1 -0
- package/{controls → dist/controls}/rich-text/ops.js +17 -15
- package/dist/controls/rich-text/ops.js.map +1 -0
- package/dist/controls/rich-text/plain.d.ts +17 -0
- package/dist/controls/rich-text/plain.js +44 -0
- package/dist/controls/rich-text/plain.js.map +1 -0
- package/dist/controls/rich-text/related.d.ts +36 -0
- package/dist/controls/rich-text/related.js +213 -0
- package/dist/controls/rich-text/related.js.map +1 -0
- package/dist/controls/rich-text/toc.d.ts +46 -0
- package/dist/controls/rich-text/toc.js +161 -0
- package/dist/controls/rich-text/toc.js.map +1 -0
- package/{controls → dist/controls}/rich-text/toolbar.d.ts +6 -2
- package/{controls → dist/controls}/rich-text/toolbar.js +12 -7
- package/dist/controls/rich-text/toolbar.js.map +1 -0
- package/{controls → dist/controls}/scale.js +5 -5
- package/dist/controls/scale.js.map +1 -0
- package/dist/controls/slot-register.d.ts +6 -0
- package/{controls → dist/controls}/slot-register.js +2 -5
- package/dist/controls/slot-register.js.map +1 -0
- package/{controls → dist/controls}/slot-services.d.ts +25 -0
- package/dist/controls/slot-services.js +155 -0
- package/dist/controls/slot-services.js.map +1 -0
- package/{controls → dist/controls}/slot.js +42 -24
- package/dist/controls/slot.js.map +1 -0
- package/{controls → dist/controls}/table/index.js +1 -1
- package/dist/controls/table/index.js.map +1 -0
- package/{controls → dist/controls}/table/prod.js +3 -3
- package/dist/controls/table/prod.js.map +1 -0
- package/{controls → dist/controls}/table/refs.js +13 -2
- package/dist/controls/table/refs.js.map +1 -0
- package/{controls → dist/controls}/table/stored.js +1 -1
- package/dist/controls/table/stored.js.map +1 -0
- package/{controls → dist/controls}/table/table-editor.js +51 -48
- package/dist/controls/table/table-editor.js.map +1 -0
- package/{controls → dist/controls}/table/table-link.js +3 -3
- package/dist/controls/table/table-link.js.map +1 -0
- package/{controls → dist/controls}/table/table.js +3 -3
- package/dist/controls/table/table.js.map +1 -0
- package/{controls → dist/controls}/text.d.ts +2 -2
- package/{controls → dist/controls}/text.js +78 -43
- package/dist/controls/text.js.map +1 -0
- package/dist/controls/unknown-value.d.ts +17 -0
- package/dist/controls/unknown-value.js +66 -0
- package/dist/controls/unknown-value.js.map +1 -0
- package/dist/core/core.d.ts +70 -0
- package/dist/core/core.js +187 -0
- package/dist/core/core.js.map +1 -0
- package/dist/core/facets.d.ts +355 -0
- package/dist/core/facets.js +342 -0
- package/dist/core/facets.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +3 -0
- package/{engine → dist/engine}/array.js +34 -21
- package/dist/engine/array.js.map +1 -0
- package/{engine → dist/engine}/bits.js +1 -1
- package/dist/engine/bits.js.map +1 -0
- package/{engine → dist/engine}/breadcrumb.d.ts +3 -3
- package/{engine → dist/engine}/breadcrumb.js +12 -36
- package/dist/engine/breadcrumb.js.map +1 -0
- package/{engine → dist/engine}/expand.d.ts +2 -4
- package/{engine → dist/engine}/expand.js +5 -22
- package/dist/engine/expand.js.map +1 -0
- package/{engine → dist/engine}/field-list.js +1 -1
- package/dist/engine/field-list.js.map +1 -0
- package/{engine → dist/engine}/field-shell.js +249 -121
- package/dist/engine/field-shell.js.map +1 -0
- package/{engine → dist/engine}/frame.d.ts +3 -1
- package/{engine → dist/engine}/frame.js +16 -14
- package/dist/engine/frame.js.map +1 -0
- package/{engine → dist/engine}/group-summary.d.ts +2 -1
- package/{engine → dist/engine}/group-summary.js +7 -3
- package/dist/engine/group-summary.js.map +1 -0
- package/{engine → dist/engine}/grouping.d.ts +19 -5
- package/{engine → dist/engine}/grouping.js +193 -21
- package/dist/engine/grouping.js.map +1 -0
- package/{engine → dist/engine}/item-list.d.ts +11 -1
- package/{engine → dist/engine}/item-list.js +35 -13
- package/dist/engine/item-list.js.map +1 -0
- package/{engine → dist/engine}/kit-field.js +45 -10
- package/dist/engine/kit-field.js.map +1 -0
- package/{engine → dist/engine}/schema-form.d.ts +27 -2
- package/{engine → dist/engine}/schema-form.js +182 -40
- package/dist/engine/schema-form.js.map +1 -0
- package/{engine → dist/engine}/slot.js +5 -15
- package/dist/engine/slot.js.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/{kit.css → dist/kit.css} +19 -0
- package/{lib → dist/lib}/cn.js +7 -4
- package/dist/lib/cn.js.map +1 -0
- package/{lib → dist/lib}/columns.js +4 -1
- package/dist/lib/columns.js.map +1 -0
- package/{lib → dist/lib}/frames.js +2 -2
- package/dist/lib/frames.js.map +1 -0
- package/dist/lib/icon-image.d.ts +10 -0
- package/dist/lib/icon-image.js +8 -0
- package/dist/lib/icon-image.js.map +1 -0
- package/{lib → dist/lib}/icons.js +4 -3
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/input-modality.d.ts +11 -0
- package/dist/lib/input-modality.js +47 -0
- package/dist/lib/input-modality.js.map +1 -0
- package/dist/lib/key-event.d.ts +11 -0
- package/dist/lib/key-event.js +16 -0
- package/dist/lib/key-event.js.map +1 -0
- package/{lib → dist/lib}/path.js +4 -2
- package/dist/lib/path.js.map +1 -0
- package/{lib → dist/lib}/schema.d.ts +34 -3
- package/{lib → dist/lib}/schema.js +110 -13
- package/dist/lib/schema.js.map +1 -0
- package/{lib → dist/lib}/utils.js +1 -1
- package/dist/lib/utils.js.map +1 -0
- package/{lib → dist/lib}/validate.d.ts +11 -1
- package/{lib → dist/lib}/validate.js +85 -11
- package/dist/lib/validate.js.map +1 -0
- package/dist/library/analysis.d.ts +23 -0
- package/dist/library/analysis.js +160 -0
- package/dist/library/analysis.js.map +1 -0
- package/dist/library/catalog.d.ts +57 -0
- package/dist/library/catalog.js +307 -0
- package/dist/library/catalog.js.map +1 -0
- package/dist/library/coreNotes.d.ts +8 -0
- package/dist/library/coreNotes.js +111 -0
- package/dist/library/coreNotes.js.map +1 -0
- package/dist/library/coverage.d.ts +40 -0
- package/dist/library/coverage.js +59 -0
- package/dist/library/coverage.js.map +1 -0
- package/dist/library/entries/advanced.entries.d.ts +2 -0
- package/dist/library/entries/advanced.entries.js +6579 -0
- package/dist/library/entries/advanced.entries.js.map +1 -0
- package/dist/library/entries/commerce.entries.d.ts +2 -0
- package/dist/library/entries/commerce.entries.js +4140 -0
- package/dist/library/entries/commerce.entries.js.map +1 -0
- package/dist/library/entries/company.entries.d.ts +2 -0
- package/dist/library/entries/company.entries.js +2731 -0
- package/dist/library/entries/company.entries.js.map +1 -0
- package/dist/library/entries/conversion.entries.d.ts +2 -0
- package/dist/library/entries/conversion.entries.js +3707 -0
- package/dist/library/entries/conversion.entries.js.map +1 -0
- package/dist/library/entries/data.entries.d.ts +7 -0
- package/dist/library/entries/data.entries.js +4613 -0
- package/dist/library/entries/data.entries.js.map +1 -0
- package/dist/library/entries/events.entries.d.ts +2 -0
- package/dist/library/entries/events.entries.js +3428 -0
- package/dist/library/entries/events.entries.js.map +1 -0
- package/dist/library/entries/features.entries.d.ts +2 -0
- package/dist/library/entries/features.entries.js +3157 -0
- package/dist/library/entries/features.entries.js.map +1 -0
- package/dist/library/entries/heroes.entries.d.ts +2 -0
- package/dist/library/entries/heroes.entries.js +3401 -0
- package/dist/library/entries/heroes.entries.js.map +1 -0
- package/dist/library/entries/index.d.ts +3 -0
- package/dist/library/entries/index.js +35 -0
- package/dist/library/entries/index.js.map +1 -0
- package/dist/library/entries/listings.entries.d.ts +2 -0
- package/dist/library/entries/listings.entries.js +2976 -0
- package/dist/library/entries/listings.entries.js.map +1 -0
- package/dist/library/entries/longform.entries.d.ts +2 -0
- package/dist/library/entries/longform.entries.js +4227 -0
- package/dist/library/entries/longform.entries.js.map +1 -0
- package/dist/library/entries/media.entries.d.ts +2 -0
- package/dist/library/entries/media.entries.js +2781 -0
- package/dist/library/entries/media.entries.js.map +1 -0
- package/dist/library/entries/navigation.entries.d.ts +2 -0
- package/dist/library/entries/navigation.entries.js +4011 -0
- package/dist/library/entries/navigation.entries.js.map +1 -0
- package/dist/library/entries/pricing.entries.d.ts +2 -0
- package/dist/library/entries/pricing.entries.js +2383 -0
- package/dist/library/entries/pricing.entries.js.map +1 -0
- package/dist/library/entries/social-proof.entries.d.ts +2 -0
- package/dist/library/entries/social-proof.entries.js +2297 -0
- package/dist/library/entries/social-proof.entries.js.map +1 -0
- package/dist/library/examples/bento.d.ts +92 -0
- package/dist/library/examples/bento.js +201 -0
- package/dist/library/examples/bento.js.map +1 -0
- package/dist/library/examples/blocks.d.ts +14 -0
- package/dist/library/examples/blocks.js +313 -0
- package/dist/library/examples/blocks.js.map +1 -0
- package/dist/library/examples/faq.d.ts +28 -0
- package/dist/library/examples/faq.js +230 -0
- package/dist/library/examples/faq.js.map +1 -0
- package/dist/library/examples/hero.d.ts +43 -0
- package/dist/library/examples/hero.js +222 -0
- package/dist/library/examples/hero.js.map +1 -0
- package/dist/library/examples/index.d.ts +36 -0
- package/dist/library/examples/index.js +109 -0
- package/dist/library/examples/index.js.map +1 -0
- package/dist/library/examples/journalStory.d.ts +93 -0
- package/dist/library/examples/journalStory.js +338 -0
- package/dist/library/examples/journalStory.js.map +1 -0
- package/dist/library/examples/megaMenu.d.ts +134 -0
- package/dist/library/examples/megaMenu.js +442 -0
- package/dist/library/examples/megaMenu.js.map +1 -0
- package/dist/library/examples/pricing.d.ts +103 -0
- package/dist/library/examples/pricing.js +479 -0
- package/dist/library/examples/pricing.js.map +1 -0
- package/dist/library/examples/tabs.d.ts +87 -0
- package/dist/library/examples/tabs.js +180 -0
- package/dist/library/examples/tabs.js.map +1 -0
- package/dist/library/export.d.ts +42 -0
- package/dist/library/export.js +80 -0
- package/dist/library/export.js.map +1 -0
- package/dist/library/index.d.ts +13 -0
- package/dist/library/index.js +6 -0
- package/dist/library/kit-catalog.json +1511 -0
- package/dist/library/types.d.ts +42 -0
- package/dist/library/types.js +0 -0
- package/{schema → dist/schema}/adapters.js +1 -2
- package/dist/schema/adapters.js.map +1 -0
- package/{schema → dist/schema}/help.d.ts +2 -0
- package/{schema → dist/schema}/help.js +6 -4
- package/dist/schema/help.js.map +1 -0
- package/{schema → dist/schema}/scale.js +1 -1
- package/dist/schema/scale.js.map +1 -0
- package/{schema → dist/schema}/sources.js +1 -1
- package/dist/schema/sources.js.map +1 -0
- package/{schema → dist/schema}/table.js +11 -10
- package/dist/schema/table.js.map +1 -0
- package/{schema → dist/schema}/types.d.ts +36 -1
- package/{schema → dist/schema}/types.js +1 -1
- package/dist/schema/types.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/table/table-view.d.ts +14 -0
- package/dist/table/table-view.js +140 -0
- package/dist/table/table-view.js.map +1 -0
- package/dist/table/table.css +73 -0
- package/dist/testing/corpus.d.ts +63 -0
- package/dist/testing/corpus.js +129 -0
- package/dist/testing/corpus.js.map +1 -0
- package/dist/testing/test-form.d.ts +11 -0
- package/dist/testing/test-form.js +38 -0
- package/dist/testing/test-form.js.map +1 -0
- package/dist/theme.css +345 -0
- package/dist/theme.d.ts +22 -0
- package/dist/theme.js +43 -0
- package/dist/theme.js.map +1 -0
- package/dist/tokens.css +542 -0
- package/dist/types.js +0 -0
- package/{ui → dist/ui}/action-tray.d.ts +1 -1
- package/{ui → dist/ui}/action-tray.js +20 -19
- package/dist/ui/action-tray.js.map +1 -0
- package/dist/ui/autocomplete.d.ts +58 -0
- package/dist/ui/autocomplete.js +194 -0
- package/dist/ui/autocomplete.js.map +1 -0
- package/{ui → dist/ui}/button.d.ts +3 -3
- package/{ui → dist/ui}/button.js +8 -11
- package/dist/ui/button.js.map +1 -0
- package/{ui → dist/ui}/choice-switch.js +1 -1
- package/dist/ui/choice-switch.js.map +1 -0
- package/{ui → dist/ui}/controls.js +51 -39
- package/dist/ui/controls.js.map +1 -0
- package/{ui → dist/ui}/display.d.ts +10 -3
- package/{ui → dist/ui}/display.js +57 -46
- package/dist/ui/display.js.map +1 -0
- package/{ui → dist/ui}/expanded-editor-modal.d.ts +2 -2
- package/{ui → dist/ui}/expanded-editor-modal.js +6 -6
- package/dist/ui/expanded-editor-modal.js.map +1 -0
- package/{ui → dist/ui}/field-context.js +1 -1
- package/dist/ui/field-context.js.map +1 -0
- package/{ui → dist/ui}/floating-panel.d.ts +1 -1
- package/{ui → dist/ui}/floating-panel.js +28 -12
- package/dist/ui/floating-panel.js.map +1 -0
- package/{ui → dist/ui}/index.d.ts +4 -0
- package/dist/ui/index.js +18 -0
- package/{ui → dist/ui}/input.d.ts +1 -1
- package/{ui → dist/ui}/input.js +9 -9
- package/dist/ui/input.js.map +1 -0
- package/{ui → dist/ui}/mode-bar.js +3 -3
- package/dist/ui/mode-bar.js.map +1 -0
- package/{ui → dist/ui}/overlay.d.ts +77 -5
- package/dist/ui/overlay.js +697 -0
- package/dist/ui/overlay.js.map +1 -0
- package/{ui → dist/ui}/path-crumbs.js +37 -3
- package/dist/ui/path-crumbs.js.map +1 -0
- package/{ui → dist/ui}/presence.js +2 -2
- package/dist/ui/presence.js.map +1 -0
- package/{ui → dist/ui}/select.js +89 -87
- package/dist/ui/select.js.map +1 -0
- package/{ui → dist/ui}/shortcut-hint.js +1 -1
- package/dist/ui/shortcut-hint.js.map +1 -0
- package/dist/ui/spinner.d.ts +24 -0
- package/dist/ui/spinner.js +42 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/split-button.d.ts +32 -0
- package/dist/ui/split-button.js +60 -0
- package/dist/ui/split-button.js.map +1 -0
- package/{ui → dist/ui}/surfaces.js +1 -1
- package/dist/ui/surfaces.js.map +1 -0
- package/dist/ui/tab.d.ts +38 -0
- package/dist/ui/tab.js +87 -0
- package/dist/ui/tab.js.map +1 -0
- package/dist/ui/toast.d.ts +20 -0
- package/dist/ui/toast.js +115 -0
- package/dist/ui/toast.js.map +1 -0
- package/{ui → dist/ui}/tooltip-root.d.ts +4 -3
- package/{ui → dist/ui}/tooltip-root.js +9 -8
- package/dist/ui/tooltip-root.js.map +1 -0
- package/{ui → dist/ui}/variants.js +1 -1
- package/dist/ui/variants.js.map +1 -0
- package/package.json +83 -23
- package/adapters/icons.js.map +0 -1
- package/adapters/lossy.js +0 -233
- package/adapters/lossy.js.map +0 -1
- package/adapters/prod-types.js.map +0 -1
- package/adapters/schema.js.map +0 -1
- package/adapters/values.js.map +0 -1
- package/brand/logo.js +0 -9
- package/brand/logo.js.map +0 -1
- package/context.js.map +0 -1
- package/controls/button.js.map +0 -1
- package/controls/c1.js.map +0 -1
- package/controls/c2.js.map +0 -1
- package/controls/choice.js.map +0 -1
- package/controls/code-register.js.map +0 -1
- package/controls/code.js.map +0 -1
- package/controls/color.js.map +0 -1
- package/controls/date-register.js.map +0 -1
- package/controls/date-zone.js.map +0 -1
- package/controls/date.js.map +0 -1
- package/controls/form-picker-register.d.ts +0 -1
- package/controls/form-picker-register.js.map +0 -1
- package/controls/form-picker.js.map +0 -1
- package/controls/icon-register.js.map +0 -1
- package/controls/icon.js.map +0 -1
- package/controls/index.js.map +0 -1
- package/controls/json-register.js.map +0 -1
- package/controls/json.js.map +0 -1
- package/controls/link.js.map +0 -1
- package/controls/location-register.js.map +0 -1
- package/controls/location.js.map +0 -1
- package/controls/media-register.js.map +0 -1
- package/controls/media.js.map +0 -1
- package/controls/number.js.map +0 -1
- package/controls/reference-register.js.map +0 -1
- package/controls/reference.js.map +0 -1
- package/controls/rich-text/blocks.d.ts +0 -28
- package/controls/rich-text/blocks.js.map +0 -1
- package/controls/rich-text/catalog.js.map +0 -1
- package/controls/rich-text/codec.js.map +0 -1
- package/controls/rich-text/component-card.js.map +0 -1
- package/controls/rich-text/control.js.map +0 -1
- package/controls/rich-text/dom.js.map +0 -1
- package/controls/rich-text/editor.js.map +0 -1
- package/controls/rich-text/floating.js.map +0 -1
- package/controls/rich-text/index.js.map +0 -1
- package/controls/rich-text/link-form.js +0 -111
- package/controls/rich-text/link-form.js.map +0 -1
- package/controls/rich-text/markdown.js.map +0 -1
- package/controls/rich-text/ops.js.map +0 -1
- package/controls/rich-text/toolbar.js.map +0 -1
- package/controls/scale.js.map +0 -1
- package/controls/slot-register.d.ts +0 -1
- package/controls/slot-register.js.map +0 -1
- package/controls/slot-services.js +0 -38
- package/controls/slot-services.js.map +0 -1
- package/controls/slot.js.map +0 -1
- package/controls/table/index.js.map +0 -1
- package/controls/table/prod.js.map +0 -1
- package/controls/table/refs.js.map +0 -1
- package/controls/table/stored.js.map +0 -1
- package/controls/table/table-editor.js.map +0 -1
- package/controls/table/table-link.js.map +0 -1
- package/controls/table/table.js.map +0 -1
- package/controls/text.js.map +0 -1
- package/engine/array.js.map +0 -1
- package/engine/bits.js.map +0 -1
- package/engine/breadcrumb.js.map +0 -1
- package/engine/expand.js.map +0 -1
- package/engine/field-list.js.map +0 -1
- package/engine/field-shell.js.map +0 -1
- package/engine/frame.js.map +0 -1
- package/engine/group-summary.js.map +0 -1
- package/engine/grouping.js.map +0 -1
- package/engine/item-list.js.map +0 -1
- package/engine/kit-field.js.map +0 -1
- package/engine/schema-form.js.map +0 -1
- package/engine/slot.js.map +0 -1
- package/index.js +0 -55
- package/index.js.map +0 -1
- package/lib/cn.js.map +0 -1
- package/lib/columns.js.map +0 -1
- package/lib/frames.js.map +0 -1
- package/lib/icons.js.map +0 -1
- package/lib/path.js.map +0 -1
- package/lib/schema.js.map +0 -1
- package/lib/utils.js.map +0 -1
- package/lib/validate.js.map +0 -1
- package/schema/adapters.js.map +0 -1
- package/schema/help.js.map +0 -1
- package/schema/scale.js.map +0 -1
- package/schema/sources.js.map +0 -1
- package/schema/table.js.map +0 -1
- package/schema/types.js.map +0 -1
- package/ui/action-tray.js.map +0 -1
- package/ui/button.js.map +0 -1
- package/ui/choice-switch.js.map +0 -1
- package/ui/controls.js.map +0 -1
- package/ui/display.js.map +0 -1
- package/ui/expanded-editor-modal.js.map +0 -1
- package/ui/field-context.js.map +0 -1
- package/ui/floating-panel.js.map +0 -1
- package/ui/index.js +0 -13
- package/ui/input.js.map +0 -1
- package/ui/mode-bar.js.map +0 -1
- package/ui/overlay.js +0 -378
- package/ui/overlay.js.map +0 -1
- package/ui/path-crumbs.js.map +0 -1
- package/ui/presence.js.map +0 -1
- package/ui/select.js.map +0 -1
- package/ui/shortcut-hint.js.map +0 -1
- package/ui/surfaces.js.map +0 -1
- package/ui/tooltip-root.js.map +0 -1
- package/ui/variants.js.map +0 -1
- /package/{_virtual → dist/_virtual}/_rolldown/runtime.js +0 -0
- /package/{adapters → dist/adapters}/icons.d.ts +0 -0
- /package/{brand → dist/brand}/logo.d.ts +0 -0
- /package/{controls → dist/controls}/c1.d.ts +0 -0
- /package/{controls → dist/controls}/c2.d.ts +0 -0
- /package/{controls → dist/controls}/code-register.d.ts +0 -0
- /package/{controls → dist/controls}/code.d.ts +0 -0
- /package/{controls → dist/controls}/color.d.ts +0 -0
- /package/{controls → dist/controls}/date-register.d.ts +0 -0
- /package/{controls → dist/controls}/date-zone.d.ts +0 -0
- /package/{controls → dist/controls}/date.d.ts +0 -0
- /package/{controls → dist/controls}/form-picker.d.ts +0 -0
- /package/{controls → dist/controls}/icon-register.d.ts +0 -0
- /package/{controls → dist/controls}/json-register.d.ts +0 -0
- /package/{controls → dist/controls}/json.d.ts +0 -0
- /package/{controls → dist/controls}/link.d.ts +0 -0
- /package/{controls → dist/controls}/location-register.d.ts +0 -0
- /package/{controls → dist/controls}/location.d.ts +0 -0
- /package/{controls → dist/controls}/media-register.d.ts +0 -0
- /package/{controls → dist/controls}/number.d.ts +0 -0
- /package/{controls → dist/controls}/reference-register.d.ts +0 -0
- /package/{controls → dist/controls}/rich-text/index.d.ts +0 -0
- /package/{controls → dist/controls}/rich-text/markdown.d.ts +0 -0
- /package/{controls → dist/controls}/rich-text/ops.d.ts +0 -0
- /package/{controls → dist/controls}/scale.d.ts +0 -0
- /package/{controls → dist/controls}/slot.d.ts +0 -0
- /package/{controls → dist/controls}/table/index.d.ts +0 -0
- /package/{controls → dist/controls}/table/prod.d.ts +0 -0
- /package/{controls → dist/controls}/table/refs.d.ts +0 -0
- /package/{controls → dist/controls}/table/stored.d.ts +0 -0
- /package/{controls → dist/controls}/table/table-editor.d.ts +0 -0
- /package/{controls → dist/controls}/table/table-link.d.ts +0 -0
- /package/{controls → dist/controls}/table/table.d.ts +0 -0
- /package/{engine → dist/engine}/array.d.ts +0 -0
- /package/{engine → dist/engine}/bits.d.ts +0 -0
- /package/{engine → dist/engine}/field-list.d.ts +0 -0
- /package/{engine → dist/engine}/field-shell.d.ts +0 -0
- /package/{engine → dist/engine}/kit-field.d.ts +0 -0
- /package/{engine → dist/engine}/slot.d.ts +0 -0
- /package/{index.d.ts → dist/index.d.ts} +0 -0
- /package/{lib → dist/lib}/cn.d.ts +0 -0
- /package/{lib → dist/lib}/columns.d.ts +0 -0
- /package/{lib → dist/lib}/frames.d.ts +0 -0
- /package/{lib → dist/lib}/icons.d.ts +0 -0
- /package/{lib → dist/lib}/path.d.ts +0 -0
- /package/{lib → dist/lib}/utils.d.ts +0 -0
- /package/{schema → dist/schema}/adapters.d.ts +0 -0
- /package/{schema → dist/schema}/scale.d.ts +0 -0
- /package/{schema → dist/schema}/sources.d.ts +0 -0
- /package/{schema → dist/schema}/table.d.ts +0 -0
- /package/{types.d.ts → dist/types.d.ts} +0 -0
- /package/{ui → dist/ui}/choice-switch.d.ts +0 -0
- /package/{ui → dist/ui}/controls.d.ts +0 -0
- /package/{ui → dist/ui}/field-context.d.ts +0 -0
- /package/{ui → dist/ui}/mode-bar.d.ts +0 -0
- /package/{ui → dist/ui}/path-crumbs.d.ts +0 -0
- /package/{ui → dist/ui}/presence.d.ts +0 -0
- /package/{ui → dist/ui}/select.d.ts +0 -0
- /package/{ui → dist/ui}/shortcut-hint.d.ts +0 -0
- /package/{ui → dist/ui}/surfaces.d.ts +0 -0
- /package/{ui → dist/ui}/variants.d.ts +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { useRichTextRefs } from "../../context.js";
|
|
2
|
+
import { ArticleEmpty, ArticlePopoverBlock } from "./article-shell.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { IconUserCircle } from "@tabler/icons-react";
|
|
6
|
+
//#region src/controls/rich-text/author.tsx
|
|
7
|
+
/**
|
|
8
|
+
* RICH TEXT · Author bio (kit-richtext-ui-spec.md §7): V2's article block, stored as the PT block object
|
|
9
|
+
* `{ _type: "authorBio", author: { _ref } }`. Name, avatar and bio are derived from the referenced entry, never stored.
|
|
10
|
+
*
|
|
11
|
+
* form V2 article.ts:196-202: one required reference, "Author"; its collection comes from the field's config
|
|
12
|
+
* (V2 hard-codes col_authors). One setting → the shell's popover (D54); a fresh insert opens it.
|
|
13
|
+
* preview V2 article-blocks.tsx:599-612: avatar, name and bio as the reader sees them; "Choose an author" when none
|
|
14
|
+
* data KitServices.resolveRichTextRefs through useRichTextRefs. V2 read a local store synchronously; the kit asks
|
|
15
|
+
* the host, so a resolving card keeps the card's shape (no "Choose an author" flash) and a failure is named.
|
|
16
|
+
*/
|
|
17
|
+
var AUTHOR_LABEL = "Author bio";
|
|
18
|
+
var authorDefault = () => ({ author: "" });
|
|
19
|
+
/** The popover form; `to` is the authors collection from the field's config. */
|
|
20
|
+
var authorSchema = (to) => ({
|
|
21
|
+
name: "authorBio",
|
|
22
|
+
title: AUTHOR_LABEL,
|
|
23
|
+
kind: "object",
|
|
24
|
+
icon: "user",
|
|
25
|
+
fields: [{
|
|
26
|
+
name: "author",
|
|
27
|
+
title: "Author",
|
|
28
|
+
type: "reference",
|
|
29
|
+
reference: { to },
|
|
30
|
+
validation: { required: true }
|
|
31
|
+
}]
|
|
32
|
+
});
|
|
33
|
+
function AuthorPreview({ m, onPick, ro }) {
|
|
34
|
+
const { items, loading, error } = useRichTextRefs(m.author ? {
|
|
35
|
+
kind: "authorBio",
|
|
36
|
+
ids: [m.author]
|
|
37
|
+
} : null);
|
|
38
|
+
const a = items.find((x) => x.id === m.author);
|
|
39
|
+
if (!m.author || !loading && !error && !a) return /* @__PURE__ */ jsx(ArticleEmpty, {
|
|
40
|
+
icon: /* @__PURE__ */ jsx(IconUserCircle, { stroke: 1.5 }),
|
|
41
|
+
title: AUTHOR_LABEL,
|
|
42
|
+
action: "Choose an author",
|
|
43
|
+
onAction: onPick,
|
|
44
|
+
ro
|
|
45
|
+
});
|
|
46
|
+
return /* @__PURE__ */ jsxs("aside", {
|
|
47
|
+
className: "flex items-start gap-3.5 rounded-kit-lg border border-kit-line bg-kit-surface px-4 py-3.5",
|
|
48
|
+
"aria-label": a ? `About ${a.title}` : AUTHOR_LABEL,
|
|
49
|
+
"aria-busy": loading || void 0,
|
|
50
|
+
"data-field": "author",
|
|
51
|
+
children: [a?.avatar ? /* @__PURE__ */ jsx("img", {
|
|
52
|
+
src: a.avatar,
|
|
53
|
+
alt: "",
|
|
54
|
+
draggable: false,
|
|
55
|
+
className: "size-12 shrink-0 rounded-full border border-kit-line object-cover"
|
|
56
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
57
|
+
className: "flex size-12 shrink-0 items-center justify-center rounded-full bg-kit-muted text-kit-fg-3",
|
|
58
|
+
children: /* @__PURE__ */ jsx(IconUserCircle, {
|
|
59
|
+
className: "size-6",
|
|
60
|
+
stroke: 1.5
|
|
61
|
+
})
|
|
62
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
63
|
+
className: "min-w-0 flex-1",
|
|
64
|
+
children: a ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("p", {
|
|
65
|
+
className: "text-kit-sm font-semibold text-kit-fg",
|
|
66
|
+
children: a.title
|
|
67
|
+
}), a.bio ? /* @__PURE__ */ jsx("p", {
|
|
68
|
+
className: "mt-0.5 text-kit-sm leading-relaxed text-kit-fg-2",
|
|
69
|
+
children: a.bio
|
|
70
|
+
}) : null] }) : error ? /* @__PURE__ */ jsxs("p", {
|
|
71
|
+
role: "status",
|
|
72
|
+
className: "text-kit-sm text-kit-warning-fg",
|
|
73
|
+
children: ["The author couldn't load: ", error]
|
|
74
|
+
}) : /* @__PURE__ */ jsx("p", {
|
|
75
|
+
className: "text-kit-sm text-kit-fg-3",
|
|
76
|
+
children: "Loading the author…"
|
|
77
|
+
})
|
|
78
|
+
})]
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function AuthorBlock({ m, set, el, ctx, autoFocus, collection }) {
|
|
82
|
+
const schema = React.useMemo(() => authorSchema([collection]), [collection]);
|
|
83
|
+
return /* @__PURE__ */ jsx(ArticlePopoverBlock, {
|
|
84
|
+
label: AUTHOR_LABEL,
|
|
85
|
+
kind: "author",
|
|
86
|
+
schema,
|
|
87
|
+
m,
|
|
88
|
+
set,
|
|
89
|
+
el,
|
|
90
|
+
ctx,
|
|
91
|
+
autoFocus,
|
|
92
|
+
toForm: (x) => ({ author: x.author || void 0 }),
|
|
93
|
+
fromForm: (v) => ({ author: typeof v.author === "string" ? v.author : "" }),
|
|
94
|
+
children: (open, ro) => /* @__PURE__ */ jsx(AuthorPreview, {
|
|
95
|
+
m,
|
|
96
|
+
onPick: () => open("author"),
|
|
97
|
+
ro
|
|
98
|
+
})
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
//#endregion
|
|
102
|
+
export { AUTHOR_LABEL, AuthorBlock, AuthorPreview, authorDefault, authorSchema };
|
|
103
|
+
|
|
104
|
+
//# sourceMappingURL=author.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"author.js","names":[],"sources":["../../../src/controls/rich-text/author.tsx"],"sourcesContent":["/**\n * RICH TEXT · Author bio (kit-richtext-ui-spec.md §7): V2's article block, stored as the PT block object\n * `{ _type: \"authorBio\", author: { _ref } }`. Name, avatar and bio are derived from the referenced entry, never stored.\n *\n * form V2 article.ts:196-202: one required reference, \"Author\"; its collection comes from the field's config\n * (V2 hard-codes col_authors). One setting → the shell's popover (D54); a fresh insert opens it.\n * preview V2 article-blocks.tsx:599-612: avatar, name and bio as the reader sees them; \"Choose an author\" when none\n * data KitServices.resolveRichTextRefs through useRichTextRefs. V2 read a local store synchronously; the kit asks\n * the host, so a resolving card keeps the card's shape (no \"Choose an author\" flash) and a failure is named.\n */\nimport * as React from \"react\";\nimport { IconUserCircle } from \"@tabler/icons-react\";\nimport { useRichTextRefs } from \"../../context\";\nimport type { TypeSchema } from \"../../schema/types\";\nimport { ArticleEmpty, ArticlePopoverBlock } from \"./article-shell\";\nimport type { IslandCtx } from \"./blocks\";\nimport type { IslandEl } from \"./dom\";\n\n/** The editor's model: the referenced entry's id (\"\" = none picked). The PT form wraps it as `{ _ref }`. */\nexport interface AuthorModel {\n author: string;\n}\nexport const AUTHOR_LABEL = \"Author bio\";\nexport const authorDefault = (): AuthorModel => ({ author: \"\" });\n\n/** The popover form; `to` is the authors collection from the field's config. */\nexport const authorSchema = (to: string[]): TypeSchema => ({\n name: \"authorBio\",\n title: AUTHOR_LABEL,\n kind: \"object\",\n icon: \"user\",\n fields: [{ name: \"author\", title: \"Author\", type: \"reference\", reference: { to }, validation: { required: true } }],\n});\n\nexport function AuthorPreview({ m, onPick, ro }: { m: AuthorModel; onPick: () => void; ro: boolean }) {\n const { items, loading, error } = useRichTextRefs(m.author ? { kind: \"authorBio\", ids: [m.author] } : null);\n const a = items.find((x) => x.id === m.author);\n if (!m.author || (!loading && !error && !a))\n return <ArticleEmpty icon={<IconUserCircle stroke={1.5} />} title={AUTHOR_LABEL} action=\"Choose an author\" onAction={onPick} ro={ro} />;\n return (\n <aside\n className=\"flex items-start gap-3.5 rounded-kit-lg border border-kit-line bg-kit-surface px-4 py-3.5\"\n aria-label={a ? `About ${a.title}` : AUTHOR_LABEL}\n aria-busy={loading || undefined}\n data-field=\"author\"\n >\n {a?.avatar ? (\n <img src={a.avatar} alt=\"\" draggable={false} className=\"size-12 shrink-0 rounded-full border border-kit-line object-cover\" />\n ) : (\n <span className=\"flex size-12 shrink-0 items-center justify-center rounded-full bg-kit-muted text-kit-fg-3\">\n <IconUserCircle className=\"size-6\" stroke={1.5} />\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n {a ? (\n <>\n <p className=\"text-kit-sm font-semibold text-kit-fg\">{a.title}</p>\n {a.bio ? <p className=\"mt-0.5 text-kit-sm leading-relaxed text-kit-fg-2\">{a.bio}</p> : null}\n </>\n ) : error ? (\n <p role=\"status\" className=\"text-kit-sm text-kit-warning-fg\">\n The author couldn't load: {error}\n </p>\n ) : (\n <p className=\"text-kit-sm text-kit-fg-3\">Loading the author…</p>\n )}\n </div>\n </aside>\n );\n}\n\nexport function AuthorBlock({\n m, set, el, ctx, autoFocus, collection,\n}: {\n m: AuthorModel;\n set: (fn: (m: AuthorModel) => AuthorModel, label?: string) => void;\n el: IslandEl;\n ctx: IslandCtx;\n autoFocus: boolean;\n /** the authors collection the reference picks from (the field's config) */\n collection: string;\n}) {\n const schema = React.useMemo(() => authorSchema([collection]), [collection]);\n return (\n <ArticlePopoverBlock<AuthorModel>\n label={AUTHOR_LABEL}\n kind=\"author\"\n schema={schema}\n m={m}\n set={set}\n el={el}\n ctx={ctx}\n autoFocus={autoFocus}\n toForm={(x) => ({ author: x.author || undefined })}\n fromForm={(v) => ({ author: typeof v.author === \"string\" ? v.author : \"\" })}\n >\n {(open, ro) => <AuthorPreview m={m} onPick={() => open(\"author\")} ro={ro} />}\n </ArticlePopoverBlock>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,IAAa,eAAe;AAC5B,IAAa,uBAAoC,EAAE,QAAQ,GAAG;;AAG9D,IAAa,gBAAgB,QAA8B;CACzD,MAAM;CACN,OAAO;CACP,MAAM;CACN,MAAM;CACN,QAAQ,CAAC;EAAE,MAAM;EAAU,OAAO;EAAU,MAAM;EAAa,WAAW,EAAE,GAAG;EAAG,YAAY,EAAE,UAAU,KAAK;CAAE,CAAC;AACpH;AAEA,SAAgB,cAAc,EAAE,GAAG,QAAQ,MAA2D;CACpG,MAAM,EAAE,OAAO,SAAS,UAAU,gBAAgB,EAAE,SAAS;EAAE,MAAM;EAAa,KAAK,CAAC,EAAE,MAAM;CAAE,IAAI,IAAI;CAC1G,MAAM,IAAI,MAAM,MAAM,MAAM,EAAE,OAAO,EAAE,MAAM;CAC7C,IAAI,CAAC,EAAE,UAAW,CAAC,WAAW,CAAC,SAAS,CAAC,GACvC,OAAO,oBAAC,cAAD;EAAc,MAAM,oBAAC,gBAAD,EAAgB,QAAQ,IAAM,CAAA;EAAG,OAAO;EAAc,QAAO;EAAmB,UAAU;EAAY;CAAK,CAAA;CACxI,OACE,qBAAC,SAAD;EACE,WAAU;EACV,cAAY,IAAI,SAAS,EAAE,UAAU;EACrC,aAAW,WAAW,KAAA;EACtB,cAAW;EAJb,UAAA,CAMG,GAAG,SACF,oBAAC,OAAD;GAAK,KAAK,EAAE;GAAQ,KAAI;GAAG,WAAW;GAAO,WAAU;EAAqE,CAAA,IAE5H,oBAAC,QAAD;GAAM,WAAU;GACd,UAAA,oBAAC,gBAAD;IAAgB,WAAU;IAAS,QAAQ;GAAM,CAAA;EAC7C,CAAA,GAER,oBAAC,OAAD;GAAK,WAAU;GACZ,UAAA,IACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAAC,KAAD;IAAG,WAAU;IAAyC,UAAA,EAAE;GAAS,CAAA,GAChE,EAAE,MAAM,oBAAC,KAAD;IAAG,WAAU;IAAoD,UAAA,EAAE;GAAO,CAAA,IAAI,IACvF,EAAA,CAAA,IACA,QACF,qBAAC,KAAD;IAAG,MAAK;IAAS,WAAU;IAA3B,UAAA,CAA6D,8BAChC,KAC1B;GAEH,CAAA,IAAA,oBAAC,KAAD;IAAG,WAAU;IAA4B,UAAA;GAAsB,CAAA;EAE9D,CAAA,CACA;;AAEX;AAEA,SAAgB,YAAY,EAC1B,GAAG,KAAK,IAAI,KAAK,WAAW,cAS3B;CACD,MAAM,SAAS,MAAM,cAAc,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;CAC3E,OACE,oBAAC,qBAAD;EACE,OAAO;EACP,MAAK;EACG;EACL;EACE;EACD;EACC;EACM;EACX,SAAS,OAAO,EAAE,QAAQ,EAAE,UAAU,KAAA,EAAU;EAChD,WAAW,OAAO,EAAE,QAAQ,OAAO,EAAE,WAAW,WAAW,EAAE,SAAS,GAAG;EAEvE,WAAA,MAAM,OAAO,oBAAC,eAAD;GAAkB;GAAG,cAAc,KAAK,QAAQ;GAAO;EAAK,CAAA;CACxD,CAAA;AAEzB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RICH TEXT · rich blocks ("islands", V2 HEAD controls/rich-text/blocks.tsx). Each renders through a portal into a
|
|
3
|
+
* contenteditable=false element inside the editor surface; its model lives on that element (`el.__rt`) so serialize()
|
|
4
|
+
* can write it back as static HTML.
|
|
5
|
+
*
|
|
6
|
+
* The image block is V2's: the toolbar (Replace · Align · Size S/M/L/Full · Link · Alt text · Remove) and the caption
|
|
7
|
+
* under it, each stored on production's image block (see dom.ts). The callout (tone · title · message), toggle, video,
|
|
8
|
+
* file and embedded component blocks are V2's too, limited to what their stored blocks keep: a callout's message and a
|
|
9
|
+
* toggle's body are plain text (production stores them as text), a component is a linked card (its fields are edited
|
|
10
|
+
* on the component itself).
|
|
11
|
+
*
|
|
12
|
+
* The table block is V2's TableBlock: the kit's table editor on the island's table value. The pull quote is V2's article
|
|
13
|
+
* block (article-blocks.tsx ArticleBlock + PullQuotePreview): drawn as the reader sees it, edited in the floating
|
|
14
|
+
* properties panel (4 settings → panel, CPO D54) through the kit SchemaForm. Key takeaways are V2's article block too,
|
|
15
|
+
* written in the text itself (article-blocks.tsx TakeawaysEditor, surface "inline"): a title line and a line per point.
|
|
16
|
+
* The embed island draws embed.tsx's block (V2's article Embed: Link, Title, Shape), keeping the keys it lacks absent.
|
|
17
|
+
*/
|
|
18
|
+
import * as React from "react";
|
|
19
|
+
import { type IslandEl, type IslandKind, type IslandModels } from "./dom";
|
|
20
|
+
import type { RichTextFeature } from "./codec";
|
|
21
|
+
export interface IslandCtx {
|
|
22
|
+
readOnly?: boolean;
|
|
23
|
+
dense?: boolean;
|
|
24
|
+
emit: () => void;
|
|
25
|
+
remove: (el: IslandEl) => void;
|
|
26
|
+
/** Leave the block: caret to the start of the next line. */
|
|
27
|
+
exit: (el: IslandEl) => void;
|
|
28
|
+
/** CPO D54: an island write joins the body field's ONE undo history (`before` = the model it replaces) */
|
|
29
|
+
record?: (el: IslandEl, before: IslandModels[IslandKind], label: string, coalesce?: boolean) => void;
|
|
30
|
+
/** a refusal the author must see (an address the image cannot use) */
|
|
31
|
+
notify: (message: string, description?: string) => void;
|
|
32
|
+
duplicate?: (el: IslandEl) => void;
|
|
33
|
+
move?: (el: IslandEl, dir: -1 | 1) => void;
|
|
34
|
+
/** the body field's one history (D54): ⌘Z on a focused block or in its panel */
|
|
35
|
+
undo?: () => boolean;
|
|
36
|
+
/**
|
|
37
|
+
* One action as ONE undo step, in the host's history when it keeps one (the dock's toolbar Undo), else the body's
|
|
38
|
+
* own. `write` makes the change and answers the island it changed; `before` is that island's model before it. Answers
|
|
39
|
+
* the step's undo (an Undo toast): true, or the sentence saying why nothing was undone.
|
|
40
|
+
*/
|
|
41
|
+
step?: (label: string, write: () => IslandEl | null, before?: IslandModels[IslandKind]) => () => true | string;
|
|
42
|
+
redo?: () => boolean;
|
|
43
|
+
/** Drag the block to a new position (the gutter grip's drag), for a grip drawn on the block itself */
|
|
44
|
+
drag?: (el: IslandEl, e: React.PointerEvent) => void;
|
|
45
|
+
/** what the field's stored shape keeps (the host codec's features): a setting it cannot store is not drawn */
|
|
46
|
+
allows?: (f: RichTextFeature) => boolean;
|
|
47
|
+
}
|
|
48
|
+
/** `label` names the step in the editor's one undo history ("Edit alt text"). */
|
|
49
|
+
export type Setter<K extends IslandKind> = (patch: Partial<IslandModels[K]> | ((m: IslandModels[K]) => IslandModels[K]), label?: string, record?: boolean) => void;
|
|
50
|
+
export interface BlockProps<K extends IslandKind> {
|
|
51
|
+
m: IslandModels[K];
|
|
52
|
+
set: Setter<K>;
|
|
53
|
+
el: IslandEl;
|
|
54
|
+
ctx: IslandCtx;
|
|
55
|
+
autoFocus: boolean;
|
|
56
|
+
}
|
|
57
|
+
export declare function Island({ el, ctx }: {
|
|
58
|
+
el: IslandEl;
|
|
59
|
+
ctx: IslandCtx;
|
|
60
|
+
}): import("react/jsx-runtime").JSX.Element;
|