@bettercms-ai/kit 1.0.0 → 2.0.0-next.0
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 +90 -31
- package/dist/adapters/lossy.js +414 -0
- package/dist/adapters/lossy.js.map +1 -0
- package/{adapters → dist/adapters}/prod-types.d.ts +82 -4
- package/{adapters → dist/adapters}/prod-types.js +71 -3
- package/dist/adapters/prod-types.js.map +1 -0
- package/{adapters → dist/adapters}/schema.d.ts +40 -1
- package/{adapters → dist/adapters}/schema.js +996 -179
- 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} +92 -2
- package/{context.js → dist/context.js} +5 -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 +6 -6
- 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 +64 -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 +35 -4
- package/{controls → dist/controls}/media.js +491 -171
- 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/blocks.d.ts +49 -0
- package/{controls → dist/controls}/rich-text/blocks.js +471 -144
- package/dist/controls/rich-text/blocks.js.map +1 -0
- package/{controls → dist/controls}/rich-text/catalog.d.ts +4 -1
- package/{controls → dist/controls}/rich-text/catalog.js +75 -65
- package/dist/controls/rich-text/catalog.js.map +1 -0
- package/{controls → dist/controls}/rich-text/codec.d.ts +9 -1
- package/{controls → dist/controls}/rich-text/codec.js +3 -1
- package/dist/controls/rich-text/codec.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 +52 -9
- package/{controls → dist/controls}/rich-text/dom.js +379 -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 +148 -48
- package/dist/controls/rich-text/editor.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/{controls → dist/controls}/rich-text/index.js +1 -1
- package/dist/controls/rich-text/index.js.map +1 -0
- 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/{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 +63 -0
- package/dist/core/core.js +171 -0
- package/dist/core/core.js.map +1 -0
- package/dist/core/facets.d.ts +347 -0
- package/dist/core/facets.js +334 -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 +1510 -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 +29 -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 +30 -0
- package/dist/ui/autocomplete.js +139 -0
- package/dist/ui/autocomplete.js.map +1 -0
- package/{ui → dist/ui}/button.d.ts +3 -3
- package/{ui → dist/ui}/button.js +6 -7
- 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 +81 -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/link-form.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,334 @@
|
|
|
1
|
+
//#region src/core/facets.ts
|
|
2
|
+
/** Prod keys with no V2 concept (facet table §B.1): never written from V2, carried through a write from the stored definition. */
|
|
3
|
+
var OUT_OF_DOMAIN = {
|
|
4
|
+
"prop target": "a prop's binding: props[].target (+ stale, origin)",
|
|
5
|
+
"host config": "HOST_CONFIG_KEYS + SERVER_CONFIG_KEYS in a field's or prop's config (adapters/lossy.ts)"
|
|
6
|
+
};
|
|
7
|
+
var corpusFix = (props, fields, bound) => ({
|
|
8
|
+
row: "B corpus-fix",
|
|
9
|
+
carrier: "value",
|
|
10
|
+
props: [props],
|
|
11
|
+
fields: [fields],
|
|
12
|
+
bound,
|
|
13
|
+
status: "landed"
|
|
14
|
+
});
|
|
15
|
+
var FACETS = {
|
|
16
|
+
ai: {
|
|
17
|
+
row: "A1",
|
|
18
|
+
carrier: "value",
|
|
19
|
+
props: ["props[].ai"],
|
|
20
|
+
fields: ["fields[].ai"],
|
|
21
|
+
status: "pending:C3"
|
|
22
|
+
},
|
|
23
|
+
category: {
|
|
24
|
+
row: "A2",
|
|
25
|
+
carrier: "value",
|
|
26
|
+
props: ["components.category"],
|
|
27
|
+
fields: ["content_models.v2.category"],
|
|
28
|
+
bound: "CATEGORY_ORDER",
|
|
29
|
+
status: "pending:C3+C5"
|
|
30
|
+
},
|
|
31
|
+
variants: {
|
|
32
|
+
row: "A3",
|
|
33
|
+
carrier: "value",
|
|
34
|
+
props: ["component_variant_groups (+ components.variant_group_id, variant_input_mappings; order/icon/description → component_variant_groups.v2.variants)"],
|
|
35
|
+
fields: ["fields[_variant] select + showIf {field:_variant}; content_models.v2.variants{slug → {icon, description}}"],
|
|
36
|
+
status: "pending:C4"
|
|
37
|
+
},
|
|
38
|
+
"block icon": {
|
|
39
|
+
row: "A4",
|
|
40
|
+
carrier: "value",
|
|
41
|
+
props: ["components.icon"],
|
|
42
|
+
fields: ["content_models.icon"],
|
|
43
|
+
bound: "DOCK_ICON_NAMES",
|
|
44
|
+
status: "pending:C1-model-settings"
|
|
45
|
+
},
|
|
46
|
+
"document preview": {
|
|
47
|
+
row: "A5",
|
|
48
|
+
carrier: "value",
|
|
49
|
+
props: ["components.preview"],
|
|
50
|
+
fields: ["content_models.list_preview"],
|
|
51
|
+
status: "pending:C3"
|
|
52
|
+
},
|
|
53
|
+
"document preview path": {
|
|
54
|
+
row: "B catalog",
|
|
55
|
+
carrier: "value",
|
|
56
|
+
props: ["components.preview (path rule widened)"],
|
|
57
|
+
fields: [],
|
|
58
|
+
status: "pending:C3"
|
|
59
|
+
},
|
|
60
|
+
"kind:global": {
|
|
61
|
+
row: "A6",
|
|
62
|
+
carrier: "value",
|
|
63
|
+
props: ["components.v2.shape"],
|
|
64
|
+
fields: ["content_models.v2.shape"],
|
|
65
|
+
status: "pending:C5"
|
|
66
|
+
},
|
|
67
|
+
"kind:entry (props)": {
|
|
68
|
+
row: "A6",
|
|
69
|
+
carrier: "value",
|
|
70
|
+
props: ["components.v2.shape"],
|
|
71
|
+
fields: [],
|
|
72
|
+
status: "pending:C5",
|
|
73
|
+
foldedInto: "kind:global"
|
|
74
|
+
},
|
|
75
|
+
"kind:block (fields)": {
|
|
76
|
+
row: "A6",
|
|
77
|
+
carrier: "value",
|
|
78
|
+
props: [],
|
|
79
|
+
fields: ["content_models.v2.shape"],
|
|
80
|
+
status: "pending:C5",
|
|
81
|
+
foldedInto: "kind:global"
|
|
82
|
+
},
|
|
83
|
+
"kind:page": {
|
|
84
|
+
row: "A22",
|
|
85
|
+
carrier: "value",
|
|
86
|
+
props: [],
|
|
87
|
+
fields: ["content_models.v2.shape"],
|
|
88
|
+
status: "pending:C5",
|
|
89
|
+
foldedInto: "kind:global"
|
|
90
|
+
},
|
|
91
|
+
"kind:object": {
|
|
92
|
+
row: "A6",
|
|
93
|
+
carrier: "value",
|
|
94
|
+
props: [],
|
|
95
|
+
fields: ["content_models.v2.shape"],
|
|
96
|
+
status: "pending:C5",
|
|
97
|
+
foldedInto: "kind:global"
|
|
98
|
+
},
|
|
99
|
+
"groups>3": {
|
|
100
|
+
row: "A7",
|
|
101
|
+
carrier: "value",
|
|
102
|
+
props: ["components.tabs"],
|
|
103
|
+
fields: ["content_models.fieldsets[kind:tab]"],
|
|
104
|
+
bound: "TAB_MAX",
|
|
105
|
+
status: "pending:C3+C8"
|
|
106
|
+
},
|
|
107
|
+
"item openMode": {
|
|
108
|
+
row: "A8",
|
|
109
|
+
carrier: "value",
|
|
110
|
+
props: ["config.item.openMode (object item)", "config.itemTypes[i].openMode (polymorphic)"],
|
|
111
|
+
fields: ["ui.blocks[slug].openMode (modular)"],
|
|
112
|
+
status: "pending:C3"
|
|
113
|
+
},
|
|
114
|
+
"reference target": {
|
|
115
|
+
row: "A9",
|
|
116
|
+
carrier: "value",
|
|
117
|
+
props: ["config.targets"],
|
|
118
|
+
fields: ["config.targets"],
|
|
119
|
+
bound: "REF_TARGET_KINDS",
|
|
120
|
+
status: "landed"
|
|
121
|
+
},
|
|
122
|
+
"type:slot": {
|
|
123
|
+
row: "A10",
|
|
124
|
+
carrier: "value",
|
|
125
|
+
props: ["props[] type slot (config.allow)"],
|
|
126
|
+
fields: ["fields[] type slot (config.blockSlugs)"],
|
|
127
|
+
bound: "SLOT_BLOCK_SLUGS_REQUIRED",
|
|
128
|
+
status: "landed"
|
|
129
|
+
},
|
|
130
|
+
"block model field": {
|
|
131
|
+
row: "A11",
|
|
132
|
+
carrier: "value",
|
|
133
|
+
props: [],
|
|
134
|
+
fields: ["kind:'block' model fields[]"],
|
|
135
|
+
bound: "BLOCK_FIELD_TYPES",
|
|
136
|
+
status: "pending:G7"
|
|
137
|
+
},
|
|
138
|
+
"shopify reference": {
|
|
139
|
+
row: "A12",
|
|
140
|
+
carrier: "excluded",
|
|
141
|
+
props: [],
|
|
142
|
+
fields: [],
|
|
143
|
+
status: "landed"
|
|
144
|
+
},
|
|
145
|
+
"type:table": {
|
|
146
|
+
row: "A13",
|
|
147
|
+
carrier: "value",
|
|
148
|
+
props: ["props[] type table (config.mode data)"],
|
|
149
|
+
fields: ["fields[] type table"],
|
|
150
|
+
status: "landed"
|
|
151
|
+
},
|
|
152
|
+
"group (nested)": {
|
|
153
|
+
row: "A14",
|
|
154
|
+
carrier: "value",
|
|
155
|
+
props: ["ui.tab {id}"],
|
|
156
|
+
fields: ["ui.tab {id} (nested field)"],
|
|
157
|
+
bound: "TAB_MAX",
|
|
158
|
+
status: "landed"
|
|
159
|
+
},
|
|
160
|
+
"fieldset collision": {
|
|
161
|
+
row: "A15",
|
|
162
|
+
carrier: "value",
|
|
163
|
+
props: ["ui.group {id}"],
|
|
164
|
+
fields: ["fieldsetId"],
|
|
165
|
+
bound: "TAB_FIELDSET_ID_UNIQUE",
|
|
166
|
+
status: "landed"
|
|
167
|
+
},
|
|
168
|
+
"segmented fallback": {
|
|
169
|
+
row: "A16",
|
|
170
|
+
carrier: "value",
|
|
171
|
+
props: ["ui.control segmented"],
|
|
172
|
+
fields: ["ui.control segmented"],
|
|
173
|
+
bound: "SEGMENTED_MAX",
|
|
174
|
+
status: "pending:C3"
|
|
175
|
+
},
|
|
176
|
+
"fieldset (derived)": {
|
|
177
|
+
row: "A17",
|
|
178
|
+
carrier: "value",
|
|
179
|
+
props: ["ui.group (prop group)"],
|
|
180
|
+
fields: ["content_models.fieldsets"],
|
|
181
|
+
status: "landed"
|
|
182
|
+
},
|
|
183
|
+
"itemNoun (derived)": {
|
|
184
|
+
row: "A18",
|
|
185
|
+
carrier: "value",
|
|
186
|
+
props: ["ui.itemLabel"],
|
|
187
|
+
fields: ["ui.itemTitle"],
|
|
188
|
+
status: "landed"
|
|
189
|
+
},
|
|
190
|
+
"reference filter": {
|
|
191
|
+
row: "A19",
|
|
192
|
+
carrier: "value",
|
|
193
|
+
props: ["config.filter"],
|
|
194
|
+
fields: ["config.filter"],
|
|
195
|
+
bound: "REFERENCE_FILTER_MAX",
|
|
196
|
+
status: "landed"
|
|
197
|
+
},
|
|
198
|
+
condition: {
|
|
199
|
+
row: "A20",
|
|
200
|
+
carrier: "value",
|
|
201
|
+
props: ["showIf (+ scope)"],
|
|
202
|
+
fields: ["showIf (+ scope)"],
|
|
203
|
+
bound: "SHOW_IF_SCOPES",
|
|
204
|
+
status: "pending:C3"
|
|
205
|
+
},
|
|
206
|
+
openMode: {
|
|
207
|
+
row: "A21",
|
|
208
|
+
carrier: "value",
|
|
209
|
+
props: ["props[].openMode"],
|
|
210
|
+
fields: ["fields[].openMode"],
|
|
211
|
+
bound: "OPEN_MODE_TYPES",
|
|
212
|
+
status: "pending:C9"
|
|
213
|
+
},
|
|
214
|
+
"slot allow": {
|
|
215
|
+
row: "A23",
|
|
216
|
+
carrier: "value",
|
|
217
|
+
props: ["config.allow"],
|
|
218
|
+
fields: ["config.blockSlugs"],
|
|
219
|
+
bound: "SLOT_ALLOW",
|
|
220
|
+
status: "landed"
|
|
221
|
+
},
|
|
222
|
+
"type:polymorphic-array": {
|
|
223
|
+
row: "B structural",
|
|
224
|
+
carrier: "value",
|
|
225
|
+
props: ["props[] type table (config.mode types)"],
|
|
226
|
+
fields: ["fields[] type modular"],
|
|
227
|
+
status: "pending:C3"
|
|
228
|
+
},
|
|
229
|
+
"item chrome (types)": {
|
|
230
|
+
row: "B structural",
|
|
231
|
+
carrier: "value",
|
|
232
|
+
props: ["config.itemTypes[i] {icon, preview}"],
|
|
233
|
+
fields: ["ui.blocks[slug] {icon, preview}"],
|
|
234
|
+
status: "pending:C3"
|
|
235
|
+
},
|
|
236
|
+
"type:primitive-array": {
|
|
237
|
+
row: "B decided",
|
|
238
|
+
carrier: "value",
|
|
239
|
+
props: ["config.itemType (widened)"],
|
|
240
|
+
fields: ["config.itemType (widened)"],
|
|
241
|
+
status: "pending:C3"
|
|
242
|
+
},
|
|
243
|
+
"depth>10": {
|
|
244
|
+
row: "B decided",
|
|
245
|
+
carrier: "value",
|
|
246
|
+
props: ["nesting"],
|
|
247
|
+
fields: ["nesting"],
|
|
248
|
+
bound: "DEPTH_MAX",
|
|
249
|
+
status: "landed"
|
|
250
|
+
},
|
|
251
|
+
slotSettings: {
|
|
252
|
+
row: "B decided (BUILD)",
|
|
253
|
+
carrier: "value",
|
|
254
|
+
props: ["config.settings: FieldDef[]"],
|
|
255
|
+
fields: ["config.settings: FieldDef[]"],
|
|
256
|
+
bound: "SLOT_SETTINGS_MAX",
|
|
257
|
+
status: "pending:C3"
|
|
258
|
+
},
|
|
259
|
+
"block placement": {
|
|
260
|
+
row: "B catalog",
|
|
261
|
+
carrier: "value",
|
|
262
|
+
props: ["components.v2.placement"],
|
|
263
|
+
fields: ["content_models.v2.placement"],
|
|
264
|
+
status: "pending:C5"
|
|
265
|
+
},
|
|
266
|
+
"seeded instance": {
|
|
267
|
+
row: "B catalog",
|
|
268
|
+
carrier: "excluded",
|
|
269
|
+
props: [],
|
|
270
|
+
fields: [],
|
|
271
|
+
status: "landed"
|
|
272
|
+
},
|
|
273
|
+
"not applicable (props)": {
|
|
274
|
+
row: "B catalog",
|
|
275
|
+
carrier: "excluded",
|
|
276
|
+
props: [],
|
|
277
|
+
fields: [],
|
|
278
|
+
status: "landed"
|
|
279
|
+
},
|
|
280
|
+
"type name": corpusFix("components.slug", "content_models.slug", "SLUG_RE"),
|
|
281
|
+
"group name>40": corpusFix("components.tabs[].id", "content_models.fieldsets[].id", "TAB_NAME_MAX"),
|
|
282
|
+
"group title": corpusFix("components.tabs[].name", "content_models.fieldsets[].name", "TAB_TITLE"),
|
|
283
|
+
"group default": corpusFix("components.tabs[0]", "content_models.fieldsets[0]", "TAB_DEFAULT_FIRST"),
|
|
284
|
+
"group icon": corpusFix("components.tabs[].icon", "content_models.fieldsets[].icon", "DOCK_ICON_NAMES"),
|
|
285
|
+
"group name collision": corpusFix("components.tabs[].name", "content_models.fieldsets[].name", "TAB_NAME_UNIQUE"),
|
|
286
|
+
"prop tab limit": corpusFix("components.tabs", "content_models.fieldsets", "PROP_TAB_MAX"),
|
|
287
|
+
"fieldset spans groups": corpusFix("ui.group.tab", "fieldsets[].tab", "FIELDSET_ONE_TAB"),
|
|
288
|
+
"fieldset (props)": corpusFix("ui.group (first prop)", "content_models.fieldsets", "PROP_GROUP_DEFINED_ON_USE"),
|
|
289
|
+
"fieldset name>limit": corpusFix("ui.group.label", "content_models.fieldsets[].name", "FIELDSET_NAME_MAX"),
|
|
290
|
+
"duplicate name": corpusFix("props[].key", "fields[].key", "KEY_UNIQUE"),
|
|
291
|
+
"reserved name": {
|
|
292
|
+
row: "B corpus-fix",
|
|
293
|
+
carrier: "value",
|
|
294
|
+
props: [],
|
|
295
|
+
fields: ["fields[].key"],
|
|
296
|
+
bound: "KEY_RESERVED + KEY_FORMAT",
|
|
297
|
+
status: "landed"
|
|
298
|
+
},
|
|
299
|
+
rows: corpusFix("ui.rows", "ui.rows", "UI_ROWS_MAX"),
|
|
300
|
+
synced: corpusFix("ui.synced", "ui.synced", "SYNCED_FROM_MAX"),
|
|
301
|
+
valueShape: corpusFix("ui.valueShape", "ui.valueShape", "VALUE_SHAPE_TYPES"),
|
|
302
|
+
"default value": corpusFix("props[].defaultValue", "fields[].defaultValue", "VALUE_SCHEMAS"),
|
|
303
|
+
icon: corpusFix("ui.icon", "ui.icon", "DOCK_ICON_NAMES"),
|
|
304
|
+
layout: corpusFix("ui.control / ui.layout", "ui.control / ui.layout", "CONTROL_TYPES"),
|
|
305
|
+
"help>limit": corpusFix("helpText / placeholder / helpMore", "helpText / ui.placeholder / helpMore", "HELP_CAPS"),
|
|
306
|
+
"option icon": corpusFix("options[].icon", "options[].icon", "DOCK_ICON_NAMES"),
|
|
307
|
+
"option description": corpusFix("options[].description", "options[].description", "OPTION_DESCRIPTION_MAX"),
|
|
308
|
+
access: corpusFix("ui.access", "ui.access", "ACCESS_CAPS"),
|
|
309
|
+
timezone: corpusFix("config.timezone", "config.timezone", "TIMEZONE"),
|
|
310
|
+
"reference order": corpusFix("config.contentModelId|allowedModelSlugs, config.targets", "config.contentModelId|allowedModelSlugs, config.targets", "REFERENCE_TO_ORDER"),
|
|
311
|
+
"numeric unit": corpusFix("config.unit", "config.unit", "NUMBER_UNIT_MAX"),
|
|
312
|
+
"rating bounds": corpusFix("config.min/max/step (rating)", "config.min/max/step (rating)", "RATING_BOUNDS"),
|
|
313
|
+
"scale rules": corpusFix("config.scale", "config.scale", "SCALE_RULES"),
|
|
314
|
+
"validation.patternMessage": corpusFix("config.patternMessage", "config.patternMessage", "PATTERN_MESSAGE_MAX"),
|
|
315
|
+
"validation.pattern": corpusFix("config.pattern", "config.pattern", "PATTERN_MAX"),
|
|
316
|
+
"validation.length": corpusFix("config.minLength/maxLength", "config.minLength/maxLength", "LENGTH_TYPES"),
|
|
317
|
+
"validation.items": corpusFix("config.minItems/maxItems", "config.minItems/maxItems", "LIST_ITEMS_CAP"),
|
|
318
|
+
"validation.unique": corpusFix("props[].unique", "fields[].unique", "UNIQUE_TYPES"),
|
|
319
|
+
"validation.recommendedMax": corpusFix("props[].recommendedMax", "fields[].recommendedMax", "RECOMMENDED_MAX"),
|
|
320
|
+
"item identity": corpusFix("ui.itemName / ui.itemTitle", "ui.itemName / ui.itemTitle", "ITEM_NAME_RE"),
|
|
321
|
+
"item settings": corpusFix("config.item", "config.item", "ARRAY_ITEM_SETTINGS"),
|
|
322
|
+
itemNoun: corpusFix("ui.itemLabel", "ui.itemLabel", "ITEM_LABEL_MAX"),
|
|
323
|
+
"item icon": corpusFix("ui.icon (list)", "ui.icon (list)", "DOCK_ICON_NAMES"),
|
|
324
|
+
"preview icon": corpusFix("ui.preview.icon", "ui.preview.icon", "DOCK_ICON_NAMES"),
|
|
325
|
+
"preview path": corpusFix("ui.preview.{title,subtitle,media}", "ui.preview.{title,subtitle,media}", "PREVIEW_PATH"),
|
|
326
|
+
"unsupported key": corpusFix("—", "—", "V2_SCHEMA_KEYS")
|
|
327
|
+
};
|
|
328
|
+
var facetOf = (feature) => FACETS[feature];
|
|
329
|
+
/** The owner-signed exclusions: what may be lost by design (shopify until its pipeline, and two deliberate backend rules). */
|
|
330
|
+
var EXCLUDED = Object.keys(FACETS).filter((f) => FACETS[f].carrier === "excluded");
|
|
331
|
+
//#endregion
|
|
332
|
+
export { EXCLUDED, FACETS, OUT_OF_DOMAIN, facetOf };
|
|
333
|
+
|
|
334
|
+
//# sourceMappingURL=facets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facets.js","names":[],"sources":["../../src/core/facets.ts"],"sourcesContent":["/**\n * THE FACET TABLE (kit-facet-table.v3.md, G0b closed 2026-10-23): every V2 schema facet the adapter can name, with the\n * ONE prod key per lane that stores it. `satisfies Record<V2Facet, FacetRow>` makes it total: a feature added to\n * FEATURES or CATALOG (adapters/lossy.ts) without a row here fails tsc.\n *\n * Carriers are `value` (an explicit stored key) and `excluded` (owner-signed). A `bound` names the one shared constant\n * the V2 authoring rule and the prod zod rule both read: a value inside it is carried, one outside it is refused with\n * the facet's name. `status` is \"landed\" when the adapter carries the facet today, else the step that lands it.\n * Prod-only keys V2 has no concept of are not facets: OUT_OF_DOMAIN, preserved on every write (PBT P8).\n */\nimport type { CatalogFeature, LossyFeature } from \"../adapters/lossy\";\n\n/** Prod keys with no V2 concept (facet table §B.1): never written from V2, carried through a write from the stored definition. */\nexport const OUT_OF_DOMAIN = {\n \"prop target\": \"a prop's binding: props[].target (+ stale, origin)\",\n \"host config\": \"HOST_CONFIG_KEYS + SERVER_CONFIG_KEYS in a field's or prop's config (adapters/lossy.ts)\",\n} as const satisfies Partial<Record<CatalogFeature, string>>;\nexport type OutOfDomainFeature = keyof typeof OUT_OF_DOMAIN;\n\nexport type V2Facet = Exclude<LossyFeature | CatalogFeature, OutOfDomainFeature>;\n\nexport interface FacetRow {\n /** facet table v3: an A row number, or the B group */\n row: string;\n carrier: \"value\" | \"excluded\";\n /** the prod key(s) per lane, one per shape the facet takes; [] = the facet does not arise in that lane */\n props: readonly string[];\n fields: readonly string[];\n /** the shared constant: inside it the facet is carried, outside it the facet is refused by name */\n bound?: string;\n status: \"landed\" | `pending:${string}`;\n /** a facet stored at another facet's key (kind:page is the shape facet's value \"page\") */\n foldedInto?: V2Facet;\n}\n\nconst corpusFix = (props: string, fields: string, bound: string): FacetRow => ({ row: \"B corpus-fix\", carrier: \"value\", props: [props], fields: [fields], bound, status: \"landed\" });\n\nexport const FACETS = {\n /* ── A: hit by the corpus ── */\n ai: { row: \"A1\", carrier: \"value\", props: [\"props[].ai\"], fields: [\"fields[].ai\"], status: \"pending:C3\" },\n category: { row: \"A2\", carrier: \"value\", props: [\"components.category\"], fields: [\"content_models.v2.category\"], bound: \"CATEGORY_ORDER\", status: \"pending:C3+C5\" },\n variants: {\n row: \"A3\",\n carrier: \"value\",\n props: [\"component_variant_groups (+ components.variant_group_id, variant_input_mappings; order/icon/description → component_variant_groups.v2.variants)\"],\n fields: [\"fields[_variant] select + showIf {field:_variant}; content_models.v2.variants{slug → {icon, description}}\"],\n status: \"pending:C4\",\n },\n \"block icon\": { row: \"A4\", carrier: \"value\", props: [\"components.icon\"], fields: [\"content_models.icon\"], bound: \"DOCK_ICON_NAMES\", status: \"pending:C1-model-settings\" },\n \"document preview\": { row: \"A5\", carrier: \"value\", props: [\"components.preview\"], fields: [\"content_models.list_preview\"], status: \"pending:C3\" },\n \"document preview path\": { row: \"B catalog\", carrier: \"value\", props: [\"components.preview (path rule widened)\"], fields: [], status: \"pending:C3\" },\n \"kind:global\": { row: \"A6\", carrier: \"value\", props: [\"components.v2.shape\"], fields: [\"content_models.v2.shape\"], status: \"pending:C5\" },\n \"kind:entry (props)\": { row: \"A6\", carrier: \"value\", props: [\"components.v2.shape\"], fields: [], status: \"pending:C5\", foldedInto: \"kind:global\" },\n \"kind:block (fields)\": { row: \"A6\", carrier: \"value\", props: [], fields: [\"content_models.v2.shape\"], status: \"pending:C5\", foldedInto: \"kind:global\" },\n \"kind:page\": { row: \"A22\", carrier: \"value\", props: [], fields: [\"content_models.v2.shape\"], status: \"pending:C5\", foldedInto: \"kind:global\" },\n \"kind:object\": { row: \"A6\", carrier: \"value\", props: [], fields: [\"content_models.v2.shape\"], status: \"pending:C5\", foldedInto: \"kind:global\" },\n \"groups>3\": { row: \"A7\", carrier: \"value\", props: [\"components.tabs\"], fields: [\"content_models.fieldsets[kind:tab]\"], bound: \"TAB_MAX\", status: \"pending:C3+C8\" },\n \"item openMode\": {\n row: \"A8\",\n carrier: \"value\",\n props: [\"config.item.openMode (object item)\", \"config.itemTypes[i].openMode (polymorphic)\"],\n fields: [\"ui.blocks[slug].openMode (modular)\"],\n status: \"pending:C3\",\n },\n \"reference target\": { row: \"A9\", carrier: \"value\", props: [\"config.targets\"], fields: [\"config.targets\"], bound: \"REF_TARGET_KINDS\", status: \"landed\" },\n \"type:slot\": { row: \"A10\", carrier: \"value\", props: [\"props[] type slot (config.allow)\"], fields: [\"fields[] type slot (config.blockSlugs)\"], bound: \"SLOT_BLOCK_SLUGS_REQUIRED\", status: \"landed\" },\n \"block model field\": { row: \"A11\", carrier: \"value\", props: [], fields: [\"kind:'block' model fields[]\"], bound: \"BLOCK_FIELD_TYPES\", status: \"pending:G7\" },\n \"shopify reference\": { row: \"A12\", carrier: \"excluded\", props: [], fields: [], status: \"landed\" },\n \"type:table\": { row: \"A13\", carrier: \"value\", props: [\"props[] type table (config.mode data)\"], fields: [\"fields[] type table\"], status: \"landed\" },\n \"group (nested)\": { row: \"A14\", carrier: \"value\", props: [\"ui.tab {id}\"], fields: [\"ui.tab {id} (nested field)\"], bound: \"TAB_MAX\", status: \"landed\" },\n \"fieldset collision\": { row: \"A15\", carrier: \"value\", props: [\"ui.group {id}\"], fields: [\"fieldsetId\"], bound: \"TAB_FIELDSET_ID_UNIQUE\", status: \"landed\" },\n \"segmented fallback\": { row: \"A16\", carrier: \"value\", props: [\"ui.control segmented\"], fields: [\"ui.control segmented\"], bound: \"SEGMENTED_MAX\", status: \"pending:C3\" },\n \"fieldset (derived)\": { row: \"A17\", carrier: \"value\", props: [\"ui.group (prop group)\"], fields: [\"content_models.fieldsets\"], status: \"landed\" },\n \"itemNoun (derived)\": { row: \"A18\", carrier: \"value\", props: [\"ui.itemLabel\"], fields: [\"ui.itemTitle\"], status: \"landed\" },\n \"reference filter\": { row: \"A19\", carrier: \"value\", props: [\"config.filter\"], fields: [\"config.filter\"], bound: \"REFERENCE_FILTER_MAX\", status: \"landed\" },\n condition: { row: \"A20\", carrier: \"value\", props: [\"showIf (+ scope)\"], fields: [\"showIf (+ scope)\"], bound: \"SHOW_IF_SCOPES\", status: \"pending:C3\" },\n openMode: { row: \"A21\", carrier: \"value\", props: [\"props[].openMode\"], fields: [\"fields[].openMode\"], bound: \"OPEN_MODE_TYPES\", status: \"pending:C9\" },\n \"slot allow\": { row: \"A23\", carrier: \"value\", props: [\"config.allow\"], fields: [\"config.blockSlugs\"], bound: \"SLOT_ALLOW\", status: \"landed\" },\n\n /* ── B: in the code, not hit by the corpus ── */\n \"type:polymorphic-array\": { row: \"B structural\", carrier: \"value\", props: [\"props[] type table (config.mode types)\"], fields: [\"fields[] type modular\"], status: \"pending:C3\" },\n \"item chrome (types)\": { row: \"B structural\", carrier: \"value\", props: [\"config.itemTypes[i] {icon, preview}\"], fields: [\"ui.blocks[slug] {icon, preview}\"], status: \"pending:C3\" },\n \"type:primitive-array\": { row: \"B decided\", carrier: \"value\", props: [\"config.itemType (widened)\"], fields: [\"config.itemType (widened)\"], status: \"pending:C3\" },\n \"depth>10\": { row: \"B decided\", carrier: \"value\", props: [\"nesting\"], fields: [\"nesting\"], bound: \"DEPTH_MAX\", status: \"landed\" },\n slotSettings: { row: \"B decided (BUILD)\", carrier: \"value\", props: [\"config.settings: FieldDef[]\"], fields: [\"config.settings: FieldDef[]\"], bound: \"SLOT_SETTINGS_MAX\", status: \"pending:C3\" },\n \"block placement\": { row: \"B catalog\", carrier: \"value\", props: [\"components.v2.placement\"], fields: [\"content_models.v2.placement\"], status: \"pending:C5\" },\n \"seeded instance\": { row: \"B catalog\", carrier: \"excluded\", props: [], fields: [], status: \"landed\" },\n \"not applicable (props)\": { row: \"B catalog\", carrier: \"excluded\", props: [], fields: [], status: \"landed\" },\n \"type name\": corpusFix(\"components.slug\", \"content_models.slug\", \"SLUG_RE\"),\n \"group name>40\": corpusFix(\"components.tabs[].id\", \"content_models.fieldsets[].id\", \"TAB_NAME_MAX\"),\n \"group title\": corpusFix(\"components.tabs[].name\", \"content_models.fieldsets[].name\", \"TAB_TITLE\"),\n \"group default\": corpusFix(\"components.tabs[0]\", \"content_models.fieldsets[0]\", \"TAB_DEFAULT_FIRST\"),\n \"group icon\": corpusFix(\"components.tabs[].icon\", \"content_models.fieldsets[].icon\", \"DOCK_ICON_NAMES\"),\n \"group name collision\": corpusFix(\"components.tabs[].name\", \"content_models.fieldsets[].name\", \"TAB_NAME_UNIQUE\"),\n \"prop tab limit\": corpusFix(\"components.tabs\", \"content_models.fieldsets\", \"PROP_TAB_MAX\"),\n \"fieldset spans groups\": corpusFix(\"ui.group.tab\", \"fieldsets[].tab\", \"FIELDSET_ONE_TAB\"),\n \"fieldset (props)\": corpusFix(\"ui.group (first prop)\", \"content_models.fieldsets\", \"PROP_GROUP_DEFINED_ON_USE\"),\n \"fieldset name>limit\": corpusFix(\"ui.group.label\", \"content_models.fieldsets[].name\", \"FIELDSET_NAME_MAX\"),\n \"duplicate name\": corpusFix(\"props[].key\", \"fields[].key\", \"KEY_UNIQUE\"),\n \"reserved name\": { row: \"B corpus-fix\", carrier: \"value\", props: [], fields: [\"fields[].key\"], bound: \"KEY_RESERVED + KEY_FORMAT\", status: \"landed\" },\n rows: corpusFix(\"ui.rows\", \"ui.rows\", \"UI_ROWS_MAX\"),\n synced: corpusFix(\"ui.synced\", \"ui.synced\", \"SYNCED_FROM_MAX\"),\n valueShape: corpusFix(\"ui.valueShape\", \"ui.valueShape\", \"VALUE_SHAPE_TYPES\"),\n \"default value\": corpusFix(\"props[].defaultValue\", \"fields[].defaultValue\", \"VALUE_SCHEMAS\"),\n icon: corpusFix(\"ui.icon\", \"ui.icon\", \"DOCK_ICON_NAMES\"),\n layout: corpusFix(\"ui.control / ui.layout\", \"ui.control / ui.layout\", \"CONTROL_TYPES\"),\n \"help>limit\": corpusFix(\"helpText / placeholder / helpMore\", \"helpText / ui.placeholder / helpMore\", \"HELP_CAPS\"),\n \"option icon\": corpusFix(\"options[].icon\", \"options[].icon\", \"DOCK_ICON_NAMES\"),\n \"option description\": corpusFix(\"options[].description\", \"options[].description\", \"OPTION_DESCRIPTION_MAX\"),\n access: corpusFix(\"ui.access\", \"ui.access\", \"ACCESS_CAPS\"),\n timezone: corpusFix(\"config.timezone\", \"config.timezone\", \"TIMEZONE\"),\n \"reference order\": corpusFix(\"config.contentModelId|allowedModelSlugs, config.targets\", \"config.contentModelId|allowedModelSlugs, config.targets\", \"REFERENCE_TO_ORDER\"),\n \"numeric unit\": corpusFix(\"config.unit\", \"config.unit\", \"NUMBER_UNIT_MAX\"),\n \"rating bounds\": corpusFix(\"config.min/max/step (rating)\", \"config.min/max/step (rating)\", \"RATING_BOUNDS\"),\n \"scale rules\": corpusFix(\"config.scale\", \"config.scale\", \"SCALE_RULES\"),\n \"validation.patternMessage\": corpusFix(\"config.patternMessage\", \"config.patternMessage\", \"PATTERN_MESSAGE_MAX\"),\n \"validation.pattern\": corpusFix(\"config.pattern\", \"config.pattern\", \"PATTERN_MAX\"),\n \"validation.length\": corpusFix(\"config.minLength/maxLength\", \"config.minLength/maxLength\", \"LENGTH_TYPES\"),\n \"validation.items\": corpusFix(\"config.minItems/maxItems\", \"config.minItems/maxItems\", \"LIST_ITEMS_CAP\"),\n \"validation.unique\": corpusFix(\"props[].unique\", \"fields[].unique\", \"UNIQUE_TYPES\"),\n \"validation.recommendedMax\": corpusFix(\"props[].recommendedMax\", \"fields[].recommendedMax\", \"RECOMMENDED_MAX\"),\n \"item identity\": corpusFix(\"ui.itemName / ui.itemTitle\", \"ui.itemName / ui.itemTitle\", \"ITEM_NAME_RE\"),\n \"item settings\": corpusFix(\"config.item\", \"config.item\", \"ARRAY_ITEM_SETTINGS\"),\n itemNoun: corpusFix(\"ui.itemLabel\", \"ui.itemLabel\", \"ITEM_LABEL_MAX\"),\n \"item icon\": corpusFix(\"ui.icon (list)\", \"ui.icon (list)\", \"DOCK_ICON_NAMES\"),\n \"preview icon\": corpusFix(\"ui.preview.icon\", \"ui.preview.icon\", \"DOCK_ICON_NAMES\"),\n \"preview path\": corpusFix(\"ui.preview.{title,subtitle,media}\", \"ui.preview.{title,subtitle,media}\", \"PREVIEW_PATH\"),\n \"unsupported key\": corpusFix(\"—\", \"—\", \"V2_SCHEMA_KEYS\"),\n} as const satisfies Record<V2Facet, FacetRow>;\n\nexport const facetOf = (feature: string): FacetRow | undefined => (FACETS as Record<string, FacetRow>)[feature];\n\n/** The owner-signed exclusions: what may be lost by design (shopify until its pipeline, and two deliberate backend rules). */\nexport const EXCLUDED: readonly V2Facet[] = (Object.keys(FACETS) as V2Facet[]).filter((f) => FACETS[f].carrier === \"excluded\");\n"],"mappings":";;AAaA,IAAa,gBAAgB;CAC3B,eAAe;CACf,eAAe;AACjB;AAmBA,IAAM,aAAa,OAAe,QAAgB,WAA6B;CAAE,KAAK;CAAgB,SAAS;CAAS,OAAO,CAAC,KAAK;CAAG,QAAQ,CAAC,MAAM;CAAG;CAAO,QAAQ;AAAS;AAElL,IAAa,SAAS;CAEpB,IAAI;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,YAAY;EAAG,QAAQ,CAAC,aAAa;EAAG,QAAQ;CAAa;CACxG,UAAU;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,qBAAqB;EAAG,QAAQ,CAAC,4BAA4B;EAAG,OAAO;EAAkB,QAAQ;CAAgB;CAClK,UAAU;EACR,KAAK;EACL,SAAS;EACT,OAAO,CAAC,iJAAiJ;EACzJ,QAAQ,CAAC,2GAA2G;EACpH,QAAQ;CACV;CACA,cAAc;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,iBAAiB;EAAG,QAAQ,CAAC,qBAAqB;EAAG,OAAO;EAAmB,QAAQ;CAA4B;CACxK,oBAAoB;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,oBAAoB;EAAG,QAAQ,CAAC,6BAA6B;EAAG,QAAQ;CAAa;CAChJ,yBAAyB;EAAE,KAAK;EAAa,SAAS;EAAS,OAAO,CAAC,wCAAwC;EAAG,QAAQ,CAAC;EAAG,QAAQ;CAAa;CACnJ,eAAe;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,qBAAqB;EAAG,QAAQ,CAAC,yBAAyB;EAAG,QAAQ;CAAa;CACxI,sBAAsB;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,qBAAqB;EAAG,QAAQ,CAAC;EAAG,QAAQ;EAAc,YAAY;CAAc;CACjJ,uBAAuB;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC;EAAG,QAAQ,CAAC,yBAAyB;EAAG,QAAQ;EAAc,YAAY;CAAc;CACtJ,aAAa;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC;EAAG,QAAQ,CAAC,yBAAyB;EAAG,QAAQ;EAAc,YAAY;CAAc;CAC7I,eAAe;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC;EAAG,QAAQ,CAAC,yBAAyB;EAAG,QAAQ;EAAc,YAAY;CAAc;CAC9I,YAAY;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,iBAAiB;EAAG,QAAQ,CAAC,oCAAoC;EAAG,OAAO;EAAW,QAAQ;CAAgB;CACjK,iBAAiB;EACf,KAAK;EACL,SAAS;EACT,OAAO,CAAC,sCAAsC,4CAA4C;EAC1F,QAAQ,CAAC,oCAAoC;EAC7C,QAAQ;CACV;CACA,oBAAoB;EAAE,KAAK;EAAM,SAAS;EAAS,OAAO,CAAC,gBAAgB;EAAG,QAAQ,CAAC,gBAAgB;EAAG,OAAO;EAAoB,QAAQ;CAAS;CACtJ,aAAa;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,kCAAkC;EAAG,QAAQ,CAAC,wCAAwC;EAAG,OAAO;EAA6B,QAAQ;CAAS;CACnM,qBAAqB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC;EAAG,QAAQ,CAAC,6BAA6B;EAAG,OAAO;EAAqB,QAAQ;CAAa;CAC1J,qBAAqB;EAAE,KAAK;EAAO,SAAS;EAAY,OAAO,CAAC;EAAG,QAAQ,CAAC;EAAG,QAAQ;CAAS;CAChG,cAAc;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,uCAAuC;EAAG,QAAQ,CAAC,qBAAqB;EAAG,QAAQ;CAAS;CAClJ,kBAAkB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,aAAa;EAAG,QAAQ,CAAC,4BAA4B;EAAG,OAAO;EAAW,QAAQ;CAAS;CACrJ,sBAAsB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,eAAe;EAAG,QAAQ,CAAC,YAAY;EAAG,OAAO;EAA0B,QAAQ;CAAS;CAC1J,sBAAsB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,sBAAsB;EAAG,QAAQ,CAAC,sBAAsB;EAAG,OAAO;EAAiB,QAAQ;CAAa;CACtK,sBAAsB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,uBAAuB;EAAG,QAAQ,CAAC,0BAA0B;EAAG,QAAQ;CAAS;CAC/I,sBAAsB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,cAAc;EAAG,QAAQ,CAAC,cAAc;EAAG,QAAQ;CAAS;CAC1H,oBAAoB;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,eAAe;EAAG,QAAQ,CAAC,eAAe;EAAG,OAAO;EAAwB,QAAQ;CAAS;CACzJ,WAAW;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,kBAAkB;EAAG,QAAQ,CAAC,kBAAkB;EAAG,OAAO;EAAkB,QAAQ;CAAa;CACpJ,UAAU;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,kBAAkB;EAAG,QAAQ,CAAC,mBAAmB;EAAG,OAAO;EAAmB,QAAQ;CAAa;CACrJ,cAAc;EAAE,KAAK;EAAO,SAAS;EAAS,OAAO,CAAC,cAAc;EAAG,QAAQ,CAAC,mBAAmB;EAAG,OAAO;EAAc,QAAQ;CAAS;CAG5I,0BAA0B;EAAE,KAAK;EAAgB,SAAS;EAAS,OAAO,CAAC,wCAAwC;EAAG,QAAQ,CAAC,uBAAuB;EAAG,QAAQ;CAAa;CAC9K,uBAAuB;EAAE,KAAK;EAAgB,SAAS;EAAS,OAAO,CAAC,qCAAqC;EAAG,QAAQ,CAAC,iCAAiC;EAAG,QAAQ;CAAa;CAClL,wBAAwB;EAAE,KAAK;EAAa,SAAS;EAAS,OAAO,CAAC,2BAA2B;EAAG,QAAQ,CAAC,2BAA2B;EAAG,QAAQ;CAAa;CAChK,YAAY;EAAE,KAAK;EAAa,SAAS;EAAS,OAAO,CAAC,SAAS;EAAG,QAAQ,CAAC,SAAS;EAAG,OAAO;EAAa,QAAQ;CAAS;CAChI,cAAc;EAAE,KAAK;EAAqB,SAAS;EAAS,OAAO,CAAC,6BAA6B;EAAG,QAAQ,CAAC,6BAA6B;EAAG,OAAO;EAAqB,QAAQ;CAAa;CAC9L,mBAAmB;EAAE,KAAK;EAAa,SAAS;EAAS,OAAO,CAAC,yBAAyB;EAAG,QAAQ,CAAC,6BAA6B;EAAG,QAAQ;CAAa;CAC3J,mBAAmB;EAAE,KAAK;EAAa,SAAS;EAAY,OAAO,CAAC;EAAG,QAAQ,CAAC;EAAG,QAAQ;CAAS;CACpG,0BAA0B;EAAE,KAAK;EAAa,SAAS;EAAY,OAAO,CAAC;EAAG,QAAQ,CAAC;EAAG,QAAQ;CAAS;CAC3G,aAAa,UAAU,mBAAmB,uBAAuB,SAAS;CAC1E,iBAAiB,UAAU,wBAAwB,iCAAiC,cAAc;CAClG,eAAe,UAAU,0BAA0B,mCAAmC,WAAW;CACjG,iBAAiB,UAAU,sBAAsB,+BAA+B,mBAAmB;CACnG,cAAc,UAAU,0BAA0B,mCAAmC,iBAAiB;CACtG,wBAAwB,UAAU,0BAA0B,mCAAmC,iBAAiB;CAChH,kBAAkB,UAAU,mBAAmB,4BAA4B,cAAc;CACzF,yBAAyB,UAAU,gBAAgB,mBAAmB,kBAAkB;CACxF,oBAAoB,UAAU,yBAAyB,4BAA4B,2BAA2B;CAC9G,uBAAuB,UAAU,kBAAkB,mCAAmC,mBAAmB;CACzG,kBAAkB,UAAU,eAAe,gBAAgB,YAAY;CACvE,iBAAiB;EAAE,KAAK;EAAgB,SAAS;EAAS,OAAO,CAAC;EAAG,QAAQ,CAAC,cAAc;EAAG,OAAO;EAA6B,QAAQ;CAAS;CACpJ,MAAM,UAAU,WAAW,WAAW,aAAa;CACnD,QAAQ,UAAU,aAAa,aAAa,iBAAiB;CAC7D,YAAY,UAAU,iBAAiB,iBAAiB,mBAAmB;CAC3E,iBAAiB,UAAU,wBAAwB,yBAAyB,eAAe;CAC3F,MAAM,UAAU,WAAW,WAAW,iBAAiB;CACvD,QAAQ,UAAU,0BAA0B,0BAA0B,eAAe;CACrF,cAAc,UAAU,qCAAqC,wCAAwC,WAAW;CAChH,eAAe,UAAU,kBAAkB,kBAAkB,iBAAiB;CAC9E,sBAAsB,UAAU,yBAAyB,yBAAyB,wBAAwB;CAC1G,QAAQ,UAAU,aAAa,aAAa,aAAa;CACzD,UAAU,UAAU,mBAAmB,mBAAmB,UAAU;CACpE,mBAAmB,UAAU,2DAA2D,2DAA2D,oBAAoB;CACvK,gBAAgB,UAAU,eAAe,eAAe,iBAAiB;CACzE,iBAAiB,UAAU,gCAAgC,gCAAgC,eAAe;CAC1G,eAAe,UAAU,gBAAgB,gBAAgB,aAAa;CACtE,6BAA6B,UAAU,yBAAyB,yBAAyB,qBAAqB;CAC9G,sBAAsB,UAAU,kBAAkB,kBAAkB,aAAa;CACjF,qBAAqB,UAAU,8BAA8B,8BAA8B,cAAc;CACzG,oBAAoB,UAAU,4BAA4B,4BAA4B,gBAAgB;CACtG,qBAAqB,UAAU,kBAAkB,mBAAmB,cAAc;CAClF,6BAA6B,UAAU,0BAA0B,2BAA2B,iBAAiB;CAC7G,iBAAiB,UAAU,8BAA8B,8BAA8B,cAAc;CACrG,iBAAiB,UAAU,eAAe,eAAe,qBAAqB;CAC9E,UAAU,UAAU,gBAAgB,gBAAgB,gBAAgB;CACpE,aAAa,UAAU,kBAAkB,kBAAkB,iBAAiB;CAC5E,gBAAgB,UAAU,mBAAmB,mBAAmB,iBAAiB;CACjF,gBAAgB,UAAU,qCAAqC,qCAAqC,cAAc;CAClH,mBAAmB,UAAU,KAAK,KAAK,gBAAgB;AACzD;AAEA,IAAa,WAAW,YAA2C,OAAoC;;AAGvG,IAAa,WAAgC,OAAO,KAAK,MAAM,CAAC,CAAe,QAAQ,MAAM,OAAO,EAAE,CAAC,YAAY,UAAU"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { EXCLUDED, FACETS, OUT_OF_DOMAIN, facetOf } from "./facets.js";
|
|
2
|
+
import { CORE_VERSION, canonical, coreHash, coreJson, embedProd, embedV2, leafDiff, normProd, normV2, preserveOutOfDomain, roundTripCore } from "./core.js";
|
|
3
|
+
export { CORE_VERSION, EXCLUDED, FACETS, OUT_OF_DOMAIN, canonical, coreHash, coreJson, embedProd, embedV2, facetOf, leafDiff, normProd, normV2, preserveOutOfDomain, roundTripCore };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { useForm, useKitEnv, useKitServices } from "../context.js";
|
|
2
3
|
import { ensureKeys, isObj, itemId, newKey, pathKey } from "../lib/path.js";
|
|
3
4
|
import { KitIcon } from "../lib/icons.js";
|
|
4
|
-
import { useForm, useKitEnv, useKitServices } from "../context.js";
|
|
5
5
|
import { FieldLabelForContext } from "../ui/field-context.js";
|
|
6
6
|
import { Button } from "../ui/button.js";
|
|
7
7
|
import { Menu, MenuContent, MenuItem, MenuLabel, MenuSeparator, MenuTrigger, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Popover, PopoverAnchor, PopoverContent, Tooltip } from "../ui/overlay.js";
|
|
@@ -10,13 +10,13 @@ import { IssueDot, Thumb } from "./bits.js";
|
|
|
10
10
|
import { FieldShell, PeerStack } from "./field-shell.js";
|
|
11
11
|
import { INSET_LINE, InsetScope } from "./grouping.js";
|
|
12
12
|
import { FieldList } from "./field-list.js";
|
|
13
|
-
import { ItemList, arrayMove, useDragReorder } from "./item-list.js";
|
|
13
|
+
import { ItemList, OrderLockSlot, arrayMove, useDragReorder } from "./item-list.js";
|
|
14
14
|
import { CONTROLS, FallbackControl, useFieldAccess } from "./kit-field.js";
|
|
15
15
|
import * as React from "react";
|
|
16
|
-
import { IconArrowDown, IconArrowUp, IconArrowsDiagonal, IconCheck, IconChevronDown, IconChevronRight, IconCopy, IconDots, IconGripVertical, IconMinus, IconPlus, IconRowInsertBottom, IconRowInsertTop, IconTrash, IconX } from "@tabler/icons-react";
|
|
17
16
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
17
|
+
import { IconArrowDown, IconArrowUp, IconArrowsDiagonal, IconCheck, IconChevronDown, IconChevronRight, IconCopy, IconDots, IconGripVertical, IconMinus, IconPlus, IconRowInsertBottom, IconRowInsertTop, IconTrash, IconX } from "@tabler/icons-react";
|
|
18
18
|
import { AnimatePresence, motion } from "framer-motion";
|
|
19
|
-
//#region src/
|
|
19
|
+
//#region src/engine/array.tsx
|
|
20
20
|
/**
|
|
21
21
|
* ARRAYS — compact PREVIEW ROWS that rest closed (CPO D8 + production; V2 HEAD 9829bf1 kit/engine/array.tsx): grip ·
|
|
22
22
|
* thumb · title + subtitle · validation dot · presence · always-visible ⋯ (Move up/down, Duplicate, Add above/below,
|
|
@@ -222,7 +222,8 @@ function InlineList({ field, item, path, list, readOnly }) {
|
|
|
222
222
|
const Control = CONTROLS[item.type] ?? FallbackControl;
|
|
223
223
|
const max = field.validation?.max;
|
|
224
224
|
const ids = list.map((_, i) => `p${i}`);
|
|
225
|
-
const sort = useDragReorder(ids, (from, to) => form.setAt(path, arrayMove(list, from, to)), { disabled: readOnly });
|
|
225
|
+
const sort = useDragReorder(ids, (from, to) => form.setAt(path, arrayMove(list, from, to)), { disabled: readOnly || !!field.orderLocked });
|
|
226
|
+
const ops = useListOps(field, path, list, (next) => form.setAt(path, next));
|
|
226
227
|
const rowControl = (v, i) => /* @__PURE__ */ jsx(Control, {
|
|
227
228
|
field: {
|
|
228
229
|
...item,
|
|
@@ -242,7 +243,8 @@ function InlineList({ field, item, path, list, readOnly }) {
|
|
|
242
243
|
labelId: `${pathKey(path)}-${i}-label`,
|
|
243
244
|
sort,
|
|
244
245
|
readOnly,
|
|
245
|
-
|
|
246
|
+
orderLocked: !!field.orderLocked,
|
|
247
|
+
onRemove: () => ops.remove(i, `${item.title} ${i + 1}`),
|
|
246
248
|
children: [/* @__PURE__ */ jsx("span", {
|
|
247
249
|
id: `${pathKey(path)}-${i}-label`,
|
|
248
250
|
className: "sr-only",
|
|
@@ -268,13 +270,13 @@ function InlineList({ field, item, path, list, readOnly }) {
|
|
|
268
270
|
]
|
|
269
271
|
});
|
|
270
272
|
}
|
|
271
|
-
function InlineRow({ id, labelId, sort, children, onRemove, readOnly }) {
|
|
273
|
+
function InlineRow({ id, labelId, sort, children, onRemove, readOnly, orderLocked }) {
|
|
272
274
|
return /* @__PURE__ */ jsxs("div", {
|
|
273
275
|
ref: sort.register(id),
|
|
274
276
|
style: sort.style(id),
|
|
275
277
|
className: cn("group/il flex items-start gap-1", sort.active === id && "relative z-10"),
|
|
276
278
|
children: [
|
|
277
|
-
readOnly ? null : /* @__PURE__ */ jsx("button", {
|
|
279
|
+
readOnly ? null : orderLocked ? /* @__PURE__ */ jsx(OrderLockSlot, { className: "mt-1.5" }) : /* @__PURE__ */ jsx("button", {
|
|
278
280
|
type: "button",
|
|
279
281
|
"aria-label": "Drag to reorder",
|
|
280
282
|
...sort.handle(id),
|
|
@@ -493,7 +495,7 @@ function AddItemButton({ field, onAdd, disabled }) {
|
|
|
493
495
|
function RowList({ field, rows, readOnly, layout, mode, openId, onOpen, onCloseInline, ops, renderInline, emptyLabel, addButton, leading, rowToggle, dialogNav, menuExtra }) {
|
|
494
496
|
const sort = useDragReorder(rows.map((r) => r.id), ops.reorder, {
|
|
495
497
|
axis: layout === "grid" ? "grid" : "y",
|
|
496
|
-
disabled: readOnly,
|
|
498
|
+
disabled: readOnly || !!field.orderLocked,
|
|
497
499
|
distance: 5
|
|
498
500
|
});
|
|
499
501
|
const openRow = rows.find((r) => r.id === openId);
|
|
@@ -580,6 +582,13 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
580
582
|
warnings: 0
|
|
581
583
|
};
|
|
582
584
|
const peers = Object.entries(env.presence).filter(([k]) => k === pathKey(r.path) || k.startsWith(`${pathKey(r.path)}.`)).flatMap(([, p]) => p);
|
|
585
|
+
const nChanged = env.review?.count(r.path) ?? 0;
|
|
586
|
+
const changeBar = nChanged ? /* @__PURE__ */ jsx("span", {
|
|
587
|
+
"aria-hidden": true,
|
|
588
|
+
className: "pointer-events-none absolute inset-y-1.5 left-0 z-[1] w-0.5 rounded-full",
|
|
589
|
+
style: { background: env.review.color(r.path) ?? "var(--kit-warning)" }
|
|
590
|
+
}) : null;
|
|
591
|
+
const changedNote = nChanged ? `${nChanged} changed` : "";
|
|
583
592
|
const menu = readOnly ? null : /* @__PURE__ */ jsxs(Menu, { children: [/* @__PURE__ */ jsx(MenuTrigger, {
|
|
584
593
|
"aria-label": `${r.preview.title} actions`,
|
|
585
594
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -594,13 +603,13 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
594
603
|
children: [
|
|
595
604
|
/* @__PURE__ */ jsx(MenuItem, {
|
|
596
605
|
icon: /* @__PURE__ */ jsx(IconArrowUp, { stroke: 1.5 }),
|
|
597
|
-
disabled: r.index === 0,
|
|
606
|
+
disabled: !!field.orderLocked || r.index === 0,
|
|
598
607
|
onClick: () => ops.move(r.index, -1),
|
|
599
608
|
children: "Move up"
|
|
600
609
|
}),
|
|
601
610
|
/* @__PURE__ */ jsx(MenuItem, {
|
|
602
611
|
icon: /* @__PURE__ */ jsx(IconArrowDown, { stroke: 1.5 }),
|
|
603
|
-
disabled: r.index === count - 1,
|
|
612
|
+
disabled: !!field.orderLocked || r.index === count - 1,
|
|
604
613
|
onClick: () => ops.move(r.index, 1),
|
|
605
614
|
children: "Move down"
|
|
606
615
|
}),
|
|
@@ -633,7 +642,7 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
633
642
|
})
|
|
634
643
|
]
|
|
635
644
|
})] });
|
|
636
|
-
const grip = readOnly ? null : /* @__PURE__ */ jsx("button", {
|
|
645
|
+
const grip = readOnly ? null : field.orderLocked ? /* @__PURE__ */ jsx(OrderLockSlot, { className: "h-7 items-center" }) : /* @__PURE__ */ jsx("button", {
|
|
637
646
|
type: "button",
|
|
638
647
|
"aria-label": `Reorder ${r.preview.title}`,
|
|
639
648
|
onClick: (e) => e.stopPropagation(),
|
|
@@ -698,7 +707,8 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
698
707
|
errors: roll.errors,
|
|
699
708
|
warnings: roll.warnings,
|
|
700
709
|
className: "absolute left-2 top-2 ring-2 ring-kit-surface"
|
|
701
|
-
})
|
|
710
|
+
}),
|
|
711
|
+
changeBar
|
|
702
712
|
]
|
|
703
713
|
})
|
|
704
714
|
});
|
|
@@ -733,9 +743,12 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
733
743
|
className: "shrink-0 rounded-kit-md bg-kit-muted px-1 text-kit-2xs font-medium text-kit-fg-2",
|
|
734
744
|
children: r.chip
|
|
735
745
|
}) : null]
|
|
736
|
-
}), r.extra ?? r.preview.subtitle ? /* @__PURE__ */
|
|
746
|
+
}), (r.extra ?? r.preview.subtitle) || changedNote ? /* @__PURE__ */ jsxs("span", {
|
|
737
747
|
className: "block truncate text-kit-xs text-kit-fg-3",
|
|
738
|
-
children:
|
|
748
|
+
children: [changedNote ? /* @__PURE__ */ jsxs("span", {
|
|
749
|
+
className: "text-kit-fg-2",
|
|
750
|
+
children: [changedNote, r.extra ?? r.preview.subtitle ? " · " : ""]
|
|
751
|
+
}) : null, r.extra ?? r.preview.subtitle]
|
|
739
752
|
}) : null]
|
|
740
753
|
})] });
|
|
741
754
|
const rowInner = /* @__PURE__ */ jsxs("div", {
|
|
@@ -744,7 +757,7 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
744
757
|
if (!onOpen || !e.currentTarget.contains(target) || target.closest("button,[role^=menuitem],a,input")) return;
|
|
745
758
|
onOpen();
|
|
746
759
|
},
|
|
747
|
-
className: cn("group/row flex min-h-12 items-center gap-2 py-1.5 pl-1.5 pr-2 transition-colors"
|
|
760
|
+
className: cn(onOpen ? "group/row flex min-h-12 cursor-pointer items-center gap-2 py-1.5 pl-1.5 pr-2 transition-colors" : "group/row flex min-h-12 items-center gap-2 py-1.5 pl-1.5 pr-2 transition-colors", open ? "bg-kit-subtle" : onOpen && "hover:bg-kit-subtle"),
|
|
748
761
|
children: [
|
|
749
762
|
grip,
|
|
750
763
|
toggle,
|
|
@@ -755,7 +768,7 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
755
768
|
"aria-expanded": mode === "drill" ? void 0 : open,
|
|
756
769
|
"aria-controls": inlineMode && open ? bodyId : void 0,
|
|
757
770
|
"aria-haspopup": mode === "popover" || mode === "dialog" ? "dialog" : void 0,
|
|
758
|
-
"aria-label": `${verb} ${r.preview.title}${r.chip ? `, ${r.chip}` : ""}, ${r.index + 1} of ${count}`,
|
|
771
|
+
"aria-label": `${verb} ${r.preview.title}${r.chip ? `, ${r.chip}` : ""}${changedNote ? `, ${changedNote}` : ""}, ${r.index + 1} of ${count}`,
|
|
759
772
|
className: "flex min-w-0 flex-1 items-center gap-2.5 rounded-kit-md text-left outline-none",
|
|
760
773
|
children: titleInner
|
|
761
774
|
}) : /* @__PURE__ */ jsx("div", {
|
|
@@ -775,12 +788,12 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
775
788
|
trailing
|
|
776
789
|
]
|
|
777
790
|
});
|
|
778
|
-
return /* @__PURE__ */
|
|
791
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
779
792
|
ref: sort.register(r.id),
|
|
780
793
|
style: sort.style(r.id),
|
|
781
794
|
"data-row-id": r.id,
|
|
782
795
|
className: cn("relative border-b border-kit-line-subtle bg-kit-surface last:border-b-0", isDragging && "z-10 rounded-kit-lg shadow-kit-lg ring-1 ring-kit-line-strong"),
|
|
783
|
-
children: /* @__PURE__ */ jsxs(motion.div, {
|
|
796
|
+
children: [changeBar, /* @__PURE__ */ jsxs(motion.div, {
|
|
784
797
|
layout: !isDragging && !dragging ? "position" : false,
|
|
785
798
|
initial: dragging ? false : {
|
|
786
799
|
opacity: 0,
|
|
@@ -856,7 +869,7 @@ function Row({ r, count, field, readOnly, grid, mode, open, onOpen, ops, sort, l
|
|
|
856
869
|
})
|
|
857
870
|
}) : null
|
|
858
871
|
}) : null]
|
|
859
|
-
})
|
|
872
|
+
})]
|
|
860
873
|
});
|
|
861
874
|
}
|
|
862
875
|
/** The included / not-included check on a feature row (D47): a real checkbox, outside the row's open button. */
|
|
@@ -875,7 +888,7 @@ function RowCheck({ on, label, title, readOnly, onToggle }) {
|
|
|
875
888
|
},
|
|
876
889
|
className: "group/chk flex size-7 shrink-0 items-center justify-center rounded-kit-md transition-colors hover:bg-kit-hover disabled:pointer-events-none",
|
|
877
890
|
children: /* @__PURE__ */ jsx("span", {
|
|
878
|
-
className: cn("flex size-[18px] items-center justify-center rounded-full transition-colors", on ? "bg-kit-
|
|
891
|
+
className: cn("flex size-[18px] items-center justify-center rounded-full transition-colors", on ? "bg-kit-control-checked text-kit-fg-inverse" : "border border-dashed border-kit-field-border-hover text-kit-fg-3 group-hover/chk:border-[var(--kit-emphasis-line)]"),
|
|
879
892
|
children: on ? /* @__PURE__ */ jsx(IconCheck, {
|
|
880
893
|
className: "size-3",
|
|
881
894
|
stroke: 2.5
|