@bettercms-ai/kit 0.1.1 → 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 +22 -16
- package/dist/_virtual/_rolldown/runtime.js +13 -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/dist/adapters/icons.d.ts +15 -0
- package/dist/adapters/icons.js +27 -0
- package/dist/adapters/icons.js.map +1 -0
- package/dist/adapters/lossy.d.ts +326 -0
- package/dist/adapters/lossy.js +414 -0
- package/dist/adapters/lossy.js.map +1 -0
- package/dist/adapters/prod-types.d.ts +546 -0
- package/dist/adapters/prod-types.js +714 -0
- package/dist/adapters/prod-types.js.map +1 -0
- package/dist/adapters/schema.d.ts +154 -0
- package/dist/adapters/schema.js +3020 -0
- package/dist/adapters/schema.js.map +1 -0
- package/dist/adapters/values.d.ts +221 -0
- package/dist/adapters/values.js +623 -0
- package/dist/adapters/values.js.map +1 -0
- package/dist/brand/logo.d.ts +17 -0
- package/dist/brand/logo.js +96 -0
- package/dist/brand/logo.js.map +1 -0
- package/dist/context.d.ts +359 -0
- package/dist/context.js +217 -0
- package/dist/context.js.map +1 -0
- package/dist/controls/button.d.ts +72 -0
- package/dist/controls/button.js +578 -0
- package/dist/controls/button.js.map +1 -0
- package/dist/controls/c1.d.ts +11 -0
- package/dist/controls/c1.js +24 -0
- package/dist/controls/c1.js.map +1 -0
- package/dist/controls/c2.d.ts +10 -0
- package/dist/controls/c2.js +19 -0
- package/dist/controls/c2.js.map +1 -0
- package/dist/controls/choice.d.ts +44 -0
- package/dist/controls/choice.js +463 -0
- package/dist/controls/choice.js.map +1 -0
- package/dist/controls/code-register.d.ts +1 -0
- package/dist/controls/code-register.js +8 -0
- package/dist/controls/code-register.js.map +1 -0
- package/dist/controls/code.d.ts +42 -0
- package/dist/controls/code.js +397 -0
- package/dist/controls/code.js.map +1 -0
- package/dist/controls/color.d.ts +5 -0
- package/dist/controls/color.js +130 -0
- package/dist/controls/color.js.map +1 -0
- package/dist/controls/component-services.d.ts +156 -0
- package/dist/controls/component-services.js +7 -0
- package/dist/controls/component-services.js.map +1 -0
- package/dist/controls/date-register.d.ts +1 -0
- package/dist/controls/date-register.js +9 -0
- package/dist/controls/date-register.js.map +1 -0
- package/dist/controls/date-zone.d.ts +104 -0
- package/dist/controls/date-zone.js +278 -0
- package/dist/controls/date-zone.js.map +1 -0
- package/dist/controls/date.d.ts +7 -0
- package/dist/controls/date.js +466 -0
- package/dist/controls/date.js.map +1 -0
- package/dist/controls/form-picker-register.d.ts +7 -0
- package/dist/controls/form-picker-register.js +15 -0
- package/dist/controls/form-picker-register.js.map +1 -0
- package/dist/controls/form-picker.d.ts +43 -0
- package/dist/controls/form-picker.js +85 -0
- package/dist/controls/form-picker.js.map +1 -0
- package/dist/controls/icon-register.d.ts +1 -0
- package/dist/controls/icon-register.js +8 -0
- package/dist/controls/icon-register.js.map +1 -0
- package/dist/controls/icon.d.ts +40 -0
- package/dist/controls/icon.js +360 -0
- package/dist/controls/icon.js.map +1 -0
- package/dist/controls/index.d.ts +5 -0
- package/dist/controls/index.js +38 -0
- package/dist/controls/index.js.map +1 -0
- package/dist/controls/json-register.d.ts +1 -0
- package/dist/controls/json-register.js +8 -0
- package/dist/controls/json-register.js.map +1 -0
- package/dist/controls/json.d.ts +2 -0
- package/dist/controls/json.js +82 -0
- package/dist/controls/json.js.map +1 -0
- package/dist/controls/link.d.ts +260 -0
- package/dist/controls/link.js +1186 -0
- package/dist/controls/link.js.map +1 -0
- package/dist/controls/location-register.d.ts +1 -0
- package/dist/controls/location-register.js +8 -0
- package/dist/controls/location-register.js.map +1 -0
- package/dist/controls/location.d.ts +16 -0
- package/dist/controls/location.js +221 -0
- package/dist/controls/location.js.map +1 -0
- package/dist/controls/media-register.d.ts +1 -0
- package/dist/controls/media-register.js +12 -0
- package/dist/controls/media-register.js.map +1 -0
- package/dist/controls/media-services.d.ts +46 -0
- package/dist/controls/media-services.js +0 -0
- package/dist/controls/media.d.ts +104 -0
- package/dist/controls/media.js +1396 -0
- package/dist/controls/media.js.map +1 -0
- package/dist/controls/number.d.ts +22 -0
- package/dist/controls/number.js +196 -0
- package/dist/controls/number.js.map +1 -0
- package/dist/controls/reference-register.d.ts +1 -0
- package/dist/controls/reference-register.js +10 -0
- package/dist/controls/reference-register.js.map +1 -0
- package/dist/controls/reference-services.d.ts +58 -0
- package/dist/controls/reference-services.js +0 -0
- package/dist/controls/reference.d.ts +23 -0
- package/dist/controls/reference.js +777 -0
- package/dist/controls/reference.js.map +1 -0
- package/dist/controls/rich-text/blocks.d.ts +49 -0
- package/dist/controls/rich-text/blocks.js +1859 -0
- package/dist/controls/rich-text/blocks.js.map +1 -0
- package/dist/controls/rich-text/catalog.d.ts +101 -0
- package/dist/controls/rich-text/catalog.js +623 -0
- package/dist/controls/rich-text/catalog.js.map +1 -0
- package/dist/controls/rich-text/codec.d.ts +64 -0
- package/dist/controls/rich-text/codec.js +34 -0
- package/dist/controls/rich-text/codec.js.map +1 -0
- package/dist/controls/rich-text/component-card.d.ts +14 -0
- package/dist/controls/rich-text/component-card.js +1024 -0
- 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/dist/controls/rich-text/control.d.ts +20 -0
- package/dist/controls/rich-text/control.js +296 -0
- package/dist/controls/rich-text/control.js.map +1 -0
- package/dist/controls/rich-text/dom.d.ts +233 -0
- package/dist/controls/rich-text/dom.js +1019 -0
- package/dist/controls/rich-text/dom.js.map +1 -0
- package/dist/controls/rich-text/editor.d.ts +57 -0
- package/dist/controls/rich-text/editor.js +1630 -0
- package/dist/controls/rich-text/editor.js.map +1 -0
- package/dist/controls/rich-text/floating.d.ts +28 -0
- package/dist/controls/rich-text/floating.js +154 -0
- package/dist/controls/rich-text/floating.js.map +1 -0
- package/dist/controls/rich-text/index.d.ts +1 -0
- package/dist/controls/rich-text/index.js +12 -0
- package/dist/controls/rich-text/index.js.map +1 -0
- package/dist/controls/rich-text/link-form.d.ts +13 -0
- package/dist/controls/rich-text/link-form.js +147 -0
- package/dist/controls/rich-text/link-form.js.map +1 -0
- package/dist/controls/rich-text/markdown.d.ts +6 -0
- package/dist/controls/rich-text/markdown.js +181 -0
- package/dist/controls/rich-text/markdown.js.map +1 -0
- package/dist/controls/rich-text/ops.d.ts +35 -0
- package/dist/controls/rich-text/ops.js +316 -0
- 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/toolbar.d.ts +89 -0
- package/dist/controls/rich-text/toolbar.js +343 -0
- package/dist/controls/rich-text/toolbar.js.map +1 -0
- package/dist/controls/scale.d.ts +56 -0
- package/dist/controls/scale.js +563 -0
- package/dist/controls/scale.js.map +1 -0
- package/dist/controls/slot-register.d.ts +6 -0
- package/dist/controls/slot-register.js +13 -0
- package/dist/controls/slot-register.js.map +1 -0
- package/dist/controls/slot-services.d.ts +122 -0
- package/dist/controls/slot-services.js +155 -0
- package/dist/controls/slot-services.js.map +1 -0
- package/dist/controls/slot.d.ts +33 -0
- package/dist/controls/slot.js +366 -0
- package/dist/controls/slot.js.map +1 -0
- package/dist/controls/table/index.d.ts +1 -0
- package/dist/controls/table/index.js +12 -0
- package/dist/controls/table/index.js.map +1 -0
- package/dist/controls/table/prod.d.ts +21 -0
- package/dist/controls/table/prod.js +79 -0
- package/dist/controls/table/prod.js.map +1 -0
- package/dist/controls/table/refs.d.ts +50 -0
- package/dist/controls/table/refs.js +79 -0
- package/dist/controls/table/refs.js.map +1 -0
- package/dist/controls/table/stored.d.ts +15 -0
- package/dist/controls/table/stored.js +44 -0
- package/dist/controls/table/stored.js.map +1 -0
- package/dist/controls/table/table-editor.d.ts +103 -0
- package/dist/controls/table/table-editor.js +2725 -0
- package/dist/controls/table/table-editor.js.map +1 -0
- package/dist/controls/table/table-link.d.ts +24 -0
- package/dist/controls/table/table-link.js +180 -0
- package/dist/controls/table/table-link.js.map +1 -0
- package/dist/controls/table/table.d.ts +9 -0
- package/dist/controls/table/table.js +103 -0
- package/dist/controls/table/table.js.map +1 -0
- package/dist/controls/text.d.ts +17 -0
- package/dist/controls/text.js +322 -0
- 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/dist/engine/array.d.ts +101 -0
- package/dist/engine/array.js +906 -0
- package/dist/engine/array.js.map +1 -0
- package/dist/engine/bits.d.ts +24 -0
- package/dist/engine/bits.js +60 -0
- package/dist/engine/bits.js.map +1 -0
- package/dist/engine/breadcrumb.d.ts +45 -0
- package/dist/engine/breadcrumb.js +63 -0
- package/dist/engine/breadcrumb.js.map +1 -0
- package/dist/engine/expand.d.ts +66 -0
- package/dist/engine/expand.js +153 -0
- package/dist/engine/expand.js.map +1 -0
- package/dist/engine/field-list.d.ts +20 -0
- package/dist/engine/field-list.js +19 -0
- package/dist/engine/field-list.js.map +1 -0
- package/dist/engine/field-shell.d.ts +49 -0
- package/dist/engine/field-shell.js +988 -0
- package/dist/engine/field-shell.js.map +1 -0
- package/dist/engine/frame.d.ts +122 -0
- package/dist/engine/frame.js +601 -0
- package/dist/engine/frame.js.map +1 -0
- package/dist/engine/group-summary.d.ts +5 -0
- package/dist/engine/group-summary.js +70 -0
- package/dist/engine/group-summary.js.map +1 -0
- package/dist/engine/grouping.d.ts +238 -0
- package/dist/engine/grouping.js +996 -0
- package/dist/engine/grouping.js.map +1 -0
- package/dist/engine/item-list.d.ts +99 -0
- package/dist/engine/item-list.js +725 -0
- package/dist/engine/item-list.js.map +1 -0
- package/dist/engine/kit-field.d.ts +72 -0
- package/dist/engine/kit-field.js +558 -0
- package/dist/engine/kit-field.js.map +1 -0
- package/dist/engine/schema-form.d.ts +116 -0
- package/dist/engine/schema-form.js +462 -0
- package/dist/engine/schema-form.js.map +1 -0
- package/dist/engine/slot.d.ts +13 -0
- package/dist/engine/slot.js +216 -0
- package/dist/engine/slot.js.map +1 -0
- package/dist/index.d.ts +45 -3139
- package/dist/index.js +58 -2036
- package/dist/index.js.map +1 -0
- package/dist/kit.css +75 -0
- package/dist/lib/cn.d.ts +4 -0
- package/dist/lib/cn.js +56 -0
- package/dist/lib/cn.js.map +1 -0
- package/dist/lib/columns.d.ts +14 -0
- package/dist/lib/columns.js +30 -0
- package/dist/lib/columns.js.map +1 -0
- package/dist/lib/frames.d.ts +36 -0
- package/dist/lib/frames.js +214 -0
- 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/dist/lib/icons.d.ts +16 -0
- package/dist/lib/icons.js +173 -0
- 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/dist/lib/path.d.ts +29 -0
- package/dist/lib/path.js +66 -0
- package/dist/lib/path.js.map +1 -0
- package/dist/lib/schema.d.ts +80 -0
- package/dist/lib/schema.js +384 -0
- package/dist/lib/schema.js.map +1 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.js +37 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/validate.d.ts +30 -0
- package/dist/lib/validate.js +224 -0
- 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/dist/schema/adapters.d.ts +28 -0
- package/dist/schema/adapters.js +492 -0
- package/dist/schema/adapters.js.map +1 -0
- package/dist/schema/help.d.ts +27 -0
- package/dist/schema/help.js +56 -0
- package/dist/schema/help.js.map +1 -0
- package/dist/schema/scale.d.ts +69 -0
- package/dist/schema/scale.js +250 -0
- package/dist/schema/scale.js.map +1 -0
- package/dist/schema/sources.d.ts +103 -0
- package/dist/schema/sources.js +65 -0
- package/dist/schema/sources.js.map +1 -0
- package/dist/schema/table.d.ts +319 -0
- package/dist/schema/table.js +1199 -0
- package/dist/schema/table.js.map +1 -0
- package/dist/schema/types.d.ts +297 -0
- package/dist/schema/types.js +14 -0
- 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 +20 -1504
- package/dist/theme.js +43 -4126
- package/dist/theme.js.map +1 -0
- package/dist/tokens.css +542 -0
- package/dist/types.d.ts +17 -0
- package/dist/types.js +0 -0
- package/dist/ui/action-tray.d.ts +54 -0
- package/dist/ui/action-tray.js +154 -0
- 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/dist/ui/button.d.ts +57 -0
- package/dist/ui/button.js +201 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/choice-switch.d.ts +36 -0
- package/dist/ui/choice-switch.js +57 -0
- package/dist/ui/choice-switch.js.map +1 -0
- package/dist/ui/controls.d.ts +83 -0
- package/dist/ui/controls.js +331 -0
- package/dist/ui/controls.js.map +1 -0
- package/dist/ui/display.d.ts +163 -0
- package/dist/ui/display.js +455 -0
- package/dist/ui/display.js.map +1 -0
- package/dist/ui/expanded-editor-modal.d.ts +26 -0
- package/dist/ui/expanded-editor-modal.js +140 -0
- package/dist/ui/expanded-editor-modal.js.map +1 -0
- package/dist/ui/field-context.d.ts +12 -0
- package/dist/ui/field-context.js +23 -0
- package/dist/ui/field-context.js.map +1 -0
- package/dist/ui/floating-panel.d.ts +152 -0
- package/dist/ui/floating-panel.js +928 -0
- package/dist/ui/floating-panel.js.map +1 -0
- package/dist/ui/index.d.ts +16 -0
- package/dist/ui/index.js +18 -0
- package/dist/ui/input.d.ts +78 -0
- package/dist/ui/input.js +250 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/mode-bar.d.ts +31 -0
- package/dist/ui/mode-bar.js +65 -0
- package/dist/ui/mode-bar.js.map +1 -0
- package/dist/ui/overlay.d.ts +195 -0
- package/dist/ui/overlay.js +697 -0
- package/dist/ui/overlay.js.map +1 -0
- package/dist/ui/path-crumbs.d.ts +90 -0
- package/dist/ui/path-crumbs.js +566 -0
- package/dist/ui/path-crumbs.js.map +1 -0
- package/dist/ui/presence.d.ts +16 -0
- package/dist/ui/presence.js +65 -0
- package/dist/ui/presence.js.map +1 -0
- package/dist/ui/select.d.ts +66 -0
- package/dist/ui/select.js +407 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/shortcut-hint.d.ts +14 -0
- package/dist/ui/shortcut-hint.js +35 -0
- 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/dist/ui/surfaces.d.ts +23 -0
- package/dist/ui/surfaces.js +26 -0
- 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/dist/ui/tooltip-root.d.ts +13 -0
- package/dist/ui/tooltip-root.js +77 -0
- package/dist/ui/tooltip-root.js.map +1 -0
- package/dist/ui/variants.d.ts +15 -0
- package/dist/ui/variants.js +14 -0
- package/dist/ui/variants.js.map +1 -0
- package/package.json +80 -50
- package/LICENSE +0 -21
- package/dist/_chunks-cjs/_visual-editing.js +0 -5898
- package/dist/_chunks-cjs/refractor.js +0 -22
- package/dist/_chunks-es/_visual-editing.mjs +0 -5904
- package/dist/_chunks-es/refractor.mjs +0 -25
- package/dist/_color.d.mts +0 -119
- package/dist/_color.d.ts +0 -119
- package/dist/_color.js +0 -1412
- package/dist/_color.mjs +0 -1411
- package/dist/_visual-editing.d.mts +0 -1126
- package/dist/_visual-editing.d.ts +0 -1126
- package/dist/_visual-editing.js +0 -30
- package/dist/_visual-editing.mjs +0 -30
- package/dist/index.d.mts +0 -3140
- package/dist/index.mjs +0 -2044
- package/dist/theme.d.mts +0 -1506
- package/dist/theme.mjs +0 -4126
- package/exports/_visual-editing.ts +0 -31
- package/exports/index.ts +0 -1
- package/exports/theme.ts +0 -1
- package/src/color/index.d.mts +0 -119
- package/src/color/index.mjs +0 -1411
- package/src/core/__workshop__/constants.ts +0 -293
- package/src/core/_compat.ts +0 -264
- package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
- package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
- package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
- package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
- package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
- package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
- package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
- package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
- package/src/core/components/autocomplete/autocomplete.tsx +0 -767
- package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
- package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/core/components/autocomplete/constants.ts +0 -28
- package/src/core/components/autocomplete/index.ts +0 -2
- package/src/core/components/autocomplete/types.ts +0 -108
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
- package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
- package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
- package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -51
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -133
- package/src/core/components/breadcrumbs/index.ts +0 -1
- package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/core/components/dialog/__workshop__/index.ts +0 -19
- package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
- package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
- package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
- package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
- package/src/core/components/dialog/__workshop__/position.tsx +0 -30
- package/src/core/components/dialog/__workshop__/props.tsx +0 -75
- package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
- package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/core/components/dialog/dialog.tsx +0 -430
- package/src/core/components/dialog/dialogContext.ts +0 -20
- package/src/core/components/dialog/dialogProvider.tsx +0 -35
- package/src/core/components/dialog/index.ts +0 -4
- package/src/core/components/dialog/styles.ts +0 -77
- package/src/core/components/dialog/useDialog.ts +0 -11
- package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
- package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
- package/src/core/components/hotkeys/hotkeys.test.tsx +0 -42
- package/src/core/components/hotkeys/hotkeys.tsx +0 -66
- package/src/core/components/hotkeys/index.ts +0 -1
- package/src/core/components/index.ts +0 -9
- package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/core/components/menu/__workshop__/groups.tsx +0 -156
- package/src/core/components/menu/__workshop__/index.ts +0 -89
- package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -58
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
- package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
- package/src/core/components/menu/__workshop__/tones.tsx +0 -25
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/core/components/menu/helpers.ts +0 -82
- package/src/core/components/menu/index.ts +0 -5
- package/src/core/components/menu/menu.spacing.test.tsx +0 -63
- package/src/core/components/menu/menu.test.tsx +0 -125
- package/src/core/components/menu/menu.tsx +0 -178
- package/src/core/components/menu/menuButton.tsx +0 -268
- package/src/core/components/menu/menuContext.ts +0 -18
- package/src/core/components/menu/menuDivider.ts +0 -23
- package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -63
- package/src/core/components/menu/menuGroup.tsx +0 -233
- package/src/core/components/menu/menuItem.spacing.test.tsx +0 -59
- package/src/core/components/menu/menuItem.tsx +0 -197
- package/src/core/components/menu/useMenu.ts +0 -21
- package/src/core/components/menu/useMenuController.ts +0 -231
- package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
- package/src/core/components/skeleton/__workshop__/index.ts +0 -11
- package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/core/components/skeleton/index.ts +0 -2
- package/src/core/components/skeleton/skeleton.tsx +0 -57
- package/src/core/components/skeleton/styles.ts +0 -50
- package/src/core/components/skeleton/textSkeleton.tsx +0 -122
- package/src/core/components/tab/__workshop__/example.tsx +0 -79
- package/src/core/components/tab/__workshop__/index.ts +0 -14
- package/src/core/components/tab/index.ts +0 -3
- package/src/core/components/tab/tab.tsx +0 -101
- package/src/core/components/tab/tabList.test.tsx +0 -48
- package/src/core/components/tab/tabList.tsx +0 -70
- package/src/core/components/tab/tabPanel.tsx +0 -39
- package/src/core/components/toast/__workshop__/hook.tsx +0 -71
- package/src/core/components/toast/__workshop__/index.ts +0 -19
- package/src/core/components/toast/__workshop__/toast.tsx +0 -26
- package/src/core/components/toast/index.ts +0 -4
- package/src/core/components/toast/styles.ts +0 -77
- package/src/core/components/toast/toast.test.tsx +0 -101
- package/src/core/components/toast/toast.tsx +0 -198
- package/src/core/components/toast/toastContext.ts +0 -7
- package/src/core/components/toast/toastLayer.tsx +0 -51
- package/src/core/components/toast/toastProvider.tsx +0 -113
- package/src/core/components/toast/toastState.ts +0 -6
- package/src/core/components/toast/types.ts +0 -26
- package/src/core/components/toast/useToast.ts +0 -25
- package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/core/components/tree/__workshop__/basic.tsx +0 -105
- package/src/core/components/tree/__workshop__/index.ts +0 -21
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/core/components/tree/helpers.ts +0 -105
- package/src/core/components/tree/index.ts +0 -4
- package/src/core/components/tree/style.ts +0 -105
- package/src/core/components/tree/tree.test.tsx +0 -55
- package/src/core/components/tree/tree.tsx +0 -240
- package/src/core/components/tree/treeContext.ts +0 -10
- package/src/core/components/tree/treeGroup.tsx +0 -28
- package/src/core/components/tree/treeItem.test.tsx +0 -65
- package/src/core/components/tree/treeItem.tsx +0 -224
- package/src/core/components/tree/types.ts +0 -25
- package/src/core/components/tree/useTree.ts +0 -17
- package/src/core/constants.ts +0 -79
- package/src/core/helpers/animation.ts +0 -27
- package/src/core/helpers/element.ts +0 -55
- package/src/core/helpers/focus.ts +0 -100
- package/src/core/helpers/index.ts +0 -4
- package/src/core/helpers/scroll.ts +0 -15
- package/src/core/hooks/index.ts +0 -12
- package/src/core/hooks/useArrayProp.ts +0 -17
- package/src/core/hooks/useClickOutside.test.tsx +0 -482
- package/src/core/hooks/useClickOutside.ts +0 -118
- package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -115
- package/src/core/hooks/useClickOutsideEvent.ts +0 -73
- package/src/core/hooks/useCustomValidity.ts +0 -13
- package/src/core/hooks/useDelayed.test.ts +0 -88
- package/src/core/hooks/useDelayedState.ts +0 -36
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
- package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
- package/src/core/hooks/useElementRect/index.ts +0 -1
- package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
- package/src/core/hooks/useElementSize.ts +0 -19
- package/src/core/hooks/useForwardedRef.ts +0 -19
- package/src/core/hooks/useGlobalKeyDown.ts +0 -24
- package/src/core/hooks/useIsomorphicEffect.ts +0 -7
- package/src/core/hooks/useMatchMedia.ts +0 -28
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/core/hooks/useMediaIndex/index.ts +0 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
- package/src/core/hooks/useMounted.ts +0 -15
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/core/hooks/usePrefersDark.test.tsx +0 -19
- package/src/core/hooks/usePrefersDark.ts +0 -16
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -19
- package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
- package/src/core/index.ts +0 -10
- package/src/core/lib/createGlobalScopedContext.ts +0 -36
- package/src/core/lib/globalScope.ts +0 -19
- package/src/core/lib/isRecord.ts +0 -3
- package/src/core/middleware/origin.ts +0 -47
- package/src/core/observers/elementSizeObserver.ts +0 -116
- package/src/core/observers/index.ts +0 -2
- package/src/core/observers/resizeObserver.ts +0 -9
- package/src/core/primitives/_selectable/index.ts +0 -1
- package/src/core/primitives/_selectable/selectable.tsx +0 -15
- package/src/core/primitives/_selectable/style.ts +0 -115
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
- package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
- package/src/core/primitives/avatar/avatar.tsx +0 -200
- package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
- package/src/core/primitives/avatar/avatarStack.tsx +0 -100
- package/src/core/primitives/avatar/index.ts +0 -4
- package/src/core/primitives/avatar/styles.ts +0 -167
- package/src/core/primitives/avatar/types.ts +0 -17
- package/src/core/primitives/badge/__workshop__/index.ts +0 -19
- package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
- package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
- package/src/core/primitives/badge/badge.test.tsx +0 -16
- package/src/core/primitives/badge/badge.tsx +0 -70
- package/src/core/primitives/badge/index.ts +0 -1
- package/src/core/primitives/badge/styles.ts +0 -20
- package/src/core/primitives/badge/types.ts +0 -8
- package/src/core/primitives/box/__workshop__/asComponent.tsx +0 -31
- package/src/core/primitives/box/__workshop__/index.ts +0 -24
- package/src/core/primitives/box/__workshop__/props.tsx +0 -20
- package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/core/primitives/box/box.test.tsx +0 -142
- package/src/core/primitives/box/box.tsx +0 -154
- package/src/core/primitives/box/index.ts +0 -1
- package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
- package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
- package/src/core/primitives/button/__workshop__/index.ts +0 -59
- package/src/core/primitives/button/__workshop__/labelUploadButton.tsx +0 -36
- package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
- package/src/core/primitives/button/__workshop__/props.tsx +0 -55
- package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
- package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
- package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
- package/src/core/primitives/button/button.test.tsx +0 -82
- package/src/core/primitives/button/button.tsx +0 -210
- package/src/core/primitives/button/index.ts +0 -1
- package/src/core/primitives/button/styles.ts +0 -117
- package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
- package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/core/primitives/card/__workshop__/index.ts +0 -18
- package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
- package/src/core/primitives/card/__workshop__/props.tsx +0 -53
- package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
- package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
- package/src/core/primitives/card/card.tsx +0 -128
- package/src/core/primitives/card/index.ts +0 -2
- package/src/core/primitives/card/styles.ts +0 -147
- package/src/core/primitives/card/types.ts +0 -11
- package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
- package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
- package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
- package/src/core/primitives/checkbox/checkbox.tsx +0 -73
- package/src/core/primitives/checkbox/index.ts +0 -1
- package/src/core/primitives/checkbox/styles.ts +0 -128
- package/src/core/primitives/code/__workshop__/index.ts +0 -19
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/code/__workshop__/props.tsx +0 -21
- package/src/core/primitives/code/code.tsx +0 -55
- package/src/core/primitives/code/index.ts +0 -1
- package/src/core/primitives/code/refractor.tsx +0 -20
- package/src/core/primitives/code/styles.ts +0 -77
- package/src/core/primitives/container/__workshop__/example.tsx +0 -20
- package/src/core/primitives/container/__workshop__/index.ts +0 -8
- package/src/core/primitives/container/container.tsx +0 -54
- package/src/core/primitives/container/index.ts +0 -2
- package/src/core/primitives/container/styles.ts +0 -23
- package/src/core/primitives/container/types.ts +0 -6
- package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
- package/src/core/primitives/flex/__workshop__/index.ts +0 -11
- package/src/core/primitives/flex/flex.tsx +0 -64
- package/src/core/primitives/flex/index.ts +0 -1
- package/src/core/primitives/grid/__workshop__/index.ts +0 -10
- package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
- package/src/core/primitives/grid/grid.test.tsx +0 -80
- package/src/core/primitives/grid/grid.tsx +0 -74
- package/src/core/primitives/grid/index.ts +0 -1
- package/src/core/primitives/heading/__workshop__/index.ts +0 -19
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/heading/heading.tsx +0 -88
- package/src/core/primitives/heading/index.ts +0 -1
- package/src/core/primitives/heading/styles.ts +0 -64
- package/src/core/primitives/heading/types.ts +0 -7
- package/src/core/primitives/index.ts +0 -27
- package/src/core/primitives/inline/__workshop__/index.ts +0 -8
- package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
- package/src/core/primitives/inline/index.ts +0 -1
- package/src/core/primitives/inline/inline.test.tsx +0 -51
- package/src/core/primitives/inline/inline.tsx +0 -63
- package/src/core/primitives/inline/styles.ts +0 -32
- package/src/core/primitives/inline/types.ts +0 -6
- package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
- package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
- package/src/core/primitives/kbd/index.ts +0 -1
- package/src/core/primitives/kbd/kbd.tsx +0 -69
- package/src/core/primitives/label/__workshop__/index.ts +0 -19
- package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
- package/src/core/primitives/label/index.ts +0 -1
- package/src/core/primitives/label/label.tsx +0 -87
- package/src/core/primitives/label/styles.ts +0 -45
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
- package/src/core/primitives/popover/__workshop__/index.ts +0 -49
- package/src/core/primitives/popover/constants.ts +0 -22
- package/src/core/primitives/popover/floating-ui/size.ts +0 -99
- package/src/core/primitives/popover/helpers.ts +0 -31
- package/src/core/primitives/popover/index.ts +0 -2
- package/src/core/primitives/popover/popover.tsx +0 -511
- package/src/core/primitives/popover/popoverCard.tsx +0 -166
- package/src/core/primitives/popover/types.ts +0 -7
- package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/core/primitives/radio/__workshop__/index.ts +0 -11
- package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/core/primitives/radio/index.ts +0 -1
- package/src/core/primitives/radio/radio.tsx +0 -51
- package/src/core/primitives/radio/styles.ts +0 -117
- package/src/core/primitives/select/__workshop__/index.ts +0 -11
- package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
- package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/core/primitives/select/index.ts +0 -1
- package/src/core/primitives/select/select.test.tsx +0 -52
- package/src/core/primitives/select/select.tsx +0 -94
- package/src/core/primitives/select/styles.ts +0 -166
- package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
- package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
- package/src/core/primitives/spinner/index.ts +0 -1
- package/src/core/primitives/spinner/spinner.tsx +0 -46
- package/src/core/primitives/stack/__workshop__/index.ts +0 -14
- package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/stack/index.ts +0 -1
- package/src/core/primitives/stack/stack.test.tsx +0 -57
- package/src/core/primitives/stack/stack.tsx +0 -57
- package/src/core/primitives/stack/styles.ts +0 -32
- package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
- package/src/core/primitives/switch/__workshop__/index.ts +0 -11
- package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
- package/src/core/primitives/switch/index.ts +0 -1
- package/src/core/primitives/switch/styles.ts +0 -173
- package/src/core/primitives/switch/switch.tsx +0 -68
- package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
- package/src/core/primitives/text/__workshop__/example.tsx +0 -39
- package/src/core/primitives/text/__workshop__/index.ts +0 -24
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/text/index.ts +0 -1
- package/src/core/primitives/text/styles.ts +0 -74
- package/src/core/primitives/text/text.tsx +0 -89
- package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
- package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
- package/src/core/primitives/textArea/index.ts +0 -1
- package/src/core/primitives/textArea/textArea.tsx +0 -120
- package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
- package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
- package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
- package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/core/primitives/textInput/index.ts +0 -1
- package/src/core/primitives/textInput/textInput.test.tsx +0 -48
- package/src/core/primitives/textInput/textInput.tsx +0 -395
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/core/primitives/tooltip/constants.ts +0 -23
- package/src/core/primitives/tooltip/index.ts +0 -2
- package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
- package/src/core/primitives/tooltip/tooltip.tsx +0 -495
- package/src/core/primitives/tooltip/tooltipCard.tsx +0 -109
- package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
- package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/core/primitives/types.ts +0 -179
- package/src/core/styles/border/borderStyle.ts +0 -56
- package/src/core/styles/border/index.ts +0 -2
- package/src/core/styles/border/types.ts +0 -10
- package/src/core/styles/box/boxStyle.ts +0 -69
- package/src/core/styles/box/index.ts +0 -2
- package/src/core/styles/box/types.ts +0 -11
- package/src/core/styles/card/_cardColorStyle.ts +0 -108
- package/src/core/styles/card/index.ts +0 -1
- package/src/core/styles/flex/flexItemStyle.ts +0 -27
- package/src/core/styles/flex/flexStyle.ts +0 -70
- package/src/core/styles/flex/index.ts +0 -3
- package/src/core/styles/flex/types.ts +0 -25
- package/src/core/styles/focusRing/index.ts +0 -25
- package/src/core/styles/font/codeFontStyle.ts +0 -13
- package/src/core/styles/font/headingFontStyle.ts +0 -13
- package/src/core/styles/font/index.ts +0 -6
- package/src/core/styles/font/labelFontStyle.ts +0 -13
- package/src/core/styles/font/responsiveFont.ts +0 -103
- package/src/core/styles/font/textAlignStyle.ts +0 -19
- package/src/core/styles/font/textFontStyle.ts +0 -13
- package/src/core/styles/font/types.ts +0 -35
- package/src/core/styles/grid/gridItemStyle.ts +0 -82
- package/src/core/styles/grid/gridStyle.ts +0 -108
- package/src/core/styles/grid/index.ts +0 -3
- package/src/core/styles/grid/types.ts +0 -37
- package/src/core/styles/helpers.ts +0 -72
- package/src/core/styles/index.ts +0 -5
- package/src/core/styles/input/index.ts +0 -2
- package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
- package/src/core/styles/input/textInputStyle.ts +0 -263
- package/src/core/styles/internal.ts +0 -12
- package/src/core/styles/margin/index.ts +0 -2
- package/src/core/styles/margin/marginStyle.ts +0 -21
- package/src/core/styles/margin/marginsStyle.test.ts +0 -33
- package/src/core/styles/margin/types.ts +0 -9
- package/src/core/styles/padding/index.ts +0 -2
- package/src/core/styles/padding/paddingStyle.test.ts +0 -33
- package/src/core/styles/padding/paddingStyle.ts +0 -21
- package/src/core/styles/padding/types.ts +0 -12
- package/src/core/styles/radius/index.ts +0 -2
- package/src/core/styles/radius/radiusStyle.ts +0 -23
- package/src/core/styles/radius/types.ts +0 -8
- package/src/core/styles/shadow/index.ts +0 -2
- package/src/core/styles/shadow/shadowStyle.ts +0 -29
- package/src/core/styles/shadow/types.ts +0 -6
- package/src/core/styles/types.ts +0 -8
- package/src/core/theme/__workshop__/build/Root.tsx +0 -367
- package/src/core/theme/__workshop__/build/helpers.ts +0 -46
- package/src/core/theme/__workshop__/build/story.tsx +0 -465
- package/src/core/theme/__workshop__/canvas.tsx +0 -352
- package/src/core/theme/__workshop__/color.tsx +0 -62
- package/src/core/theme/__workshop__/debug/story.tsx +0 -408
- package/src/core/theme/__workshop__/index.ts +0 -39
- package/src/core/theme/__workshop__/layer.tsx +0 -78
- package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
- package/src/core/theme/index.ts +0 -5
- package/src/core/theme/theme.test.tsx +0 -73
- package/src/core/theme/themeColorProvider.tsx +0 -29
- package/src/core/theme/themeContext.ts +0 -10
- package/src/core/theme/themeProvider.tsx +0 -62
- package/src/core/theme/types.ts +0 -12
- package/src/core/theme/useRootTheme.ts +0 -17
- package/src/core/theme/useTheme.ts +0 -16
- package/src/core/types/avatar.ts +0 -14
- package/src/core/types/badge.ts +0 -12
- package/src/core/types/box.ts +0 -19
- package/src/core/types/button.ts +0 -21
- package/src/core/types/card.ts +0 -6
- package/src/core/types/component.ts +0 -32
- package/src/core/types/dialog.ts +0 -4
- package/src/core/types/flex.ts +0 -30
- package/src/core/types/grid.ts +0 -14
- package/src/core/types/gridItem.ts +0 -29
- package/src/core/types/index.ts +0 -15
- package/src/core/types/placement.ts +0 -18
- package/src/core/types/popover.ts +0 -4
- package/src/core/types/radius.ts +0 -4
- package/src/core/types/selectable.ts +0 -6
- package/src/core/types/text.ts +0 -4
- package/src/core/utils/arrow/arrow.tsx +0 -123
- package/src/core/utils/arrow/cmds.ts +0 -91
- package/src/core/utils/arrow/index.ts +0 -1
- package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
- package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -100
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
- package/src/core/utils/boundaryElement/index.ts +0 -3
- package/src/core/utils/boundaryElement/types.ts +0 -7
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
- package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -21
- package/src/core/utils/conditionalWrapper/index.ts +0 -1
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
- package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
- package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
- package/src/core/utils/elementQuery/helpers.ts +0 -27
- package/src/core/utils/elementQuery/index.ts +0 -1
- package/src/core/utils/errorBoundary.tsx +0 -48
- package/src/core/utils/getElementRef.ts +0 -26
- package/src/core/utils/index.ts +0 -9
- package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
- package/src/core/utils/layer/__workshop__/index.ts +0 -24
- package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
- package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
- package/src/core/utils/layer/getLayerContext.test.ts +0 -30
- package/src/core/utils/layer/getLayerContext.ts +0 -21
- package/src/core/utils/layer/index.ts +0 -4
- package/src/core/utils/layer/layer.test.tsx +0 -108
- package/src/core/utils/layer/layer.tsx +0 -98
- package/src/core/utils/layer/layerContext.ts +0 -7
- package/src/core/utils/layer/layerProvider.tsx +0 -111
- package/src/core/utils/layer/types.ts +0 -9
- package/src/core/utils/layer/useLayer.ts +0 -26
- package/src/core/utils/portal/__workshop__/index.ts +0 -14
- package/src/core/utils/portal/__workshop__/named.tsx +0 -63
- package/src/core/utils/portal/index.ts +0 -4
- package/src/core/utils/portal/portal.test.tsx +0 -103
- package/src/core/utils/portal/portal.ts +0 -32
- package/src/core/utils/portal/portalContext.ts +0 -31
- package/src/core/utils/portal/portalProvider.tsx +0 -47
- package/src/core/utils/portal/types.ts +0 -9
- package/src/core/utils/portal/usePortal.ts +0 -25
- package/src/core/utils/spanWithTextOverflow.tsx +0 -10
- package/src/core/utils/srOnly/index.ts +0 -1
- package/src/core/utils/srOnly/srOnly.tsx +0 -36
- package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
- package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
- package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
- package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
- package/src/core/utils/virtualList/index.ts +0 -1
- package/src/core/utils/virtualList/virtualList.tsx +0 -200
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -22
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
- package/src/theme/build/_deprecated/color/color.test.ts +0 -63
- package/src/theme/build/_deprecated/color/defaults.ts +0 -390
- package/src/theme/build/_deprecated/color/factory.ts +0 -142
- package/src/theme/build/_deprecated/color/index.ts +0 -1
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
- package/src/theme/build/buildColorTheme.test.ts +0 -183
- package/src/theme/build/buildColorTheme.ts +0 -499
- package/src/theme/build/buildTheme.test.ts +0 -87
- package/src/theme/build/buildTheme.ts +0 -36
- package/src/theme/build/colorToken/colorToken.ts +0 -19
- package/src/theme/build/colorToken/compileColorToken.ts +0 -21
- package/src/theme/build/colorToken/index.ts +0 -2
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
- package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
- package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
- package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
- package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
- package/src/theme/build/lib/color-fns/convert.ts +0 -150
- package/src/theme/build/lib/color-fns/index.ts +0 -6
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/lib/color-fns/rgba.ts +0 -10
- package/src/theme/build/lib/color-fns/types.ts +0 -28
- package/src/theme/build/lib/isRecord.ts +0 -3
- package/src/theme/build/lib/lazy.ts +0 -30
- package/src/theme/build/lib/utils.ts +0 -19
- package/src/theme/build/merge.ts +0 -26
- package/src/theme/build/mixThemeColor.test.ts +0 -21
- package/src/theme/build/mixThemeColor.ts +0 -53
- package/src/theme/build/renderColorTheme.ts +0 -532
- package/src/theme/build/renderColorValue.ts +0 -85
- package/src/theme/build/resolveColorTokens.ts +0 -268
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/helpers.ts +0 -55
- package/src/theme/config/index.ts +0 -4
- package/src/theme/config/system.ts +0 -115
- package/src/theme/config/tokens/color/index.ts +0 -1
- package/src/theme/config/tokens/color/types.ts +0 -133
- package/src/theme/config/tokens/index.ts +0 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
- package/src/theme/config/tokens/parseTokenValue.ts +0 -133
- package/src/theme/config/tokens/types.ts +0 -53
- package/src/theme/config/types.ts +0 -46
- package/src/theme/defaults/colorPalette.ts +0 -5
- package/src/theme/defaults/colorTokens.ts +0 -648
- package/src/theme/defaults/config.ts +0 -84
- package/src/theme/defaults/fonts.ts +0 -227
- package/src/theme/getScopedTheme.ts +0 -98
- package/src/theme/index.ts +0 -5
- package/src/theme/system/avatar.ts +0 -14
- package/src/theme/system/color/_constants.ts +0 -45
- package/src/theme/system/color/_helpers.ts +0 -24
- package/src/theme/system/color/_system.ts +0 -40
- package/src/theme/system/color/avatar.ts +0 -15
- package/src/theme/system/color/badge.ts +0 -16
- package/src/theme/system/color/button.ts +0 -17
- package/src/theme/system/color/color.ts +0 -34
- package/src/theme/system/color/index.ts +0 -13
- package/src/theme/system/color/input.ts +0 -25
- package/src/theme/system/color/kbd.ts +0 -8
- package/src/theme/system/color/selectable.ts +0 -12
- package/src/theme/system/color/shadow.ts +0 -7
- package/src/theme/system/color/state.ts +0 -43
- package/src/theme/system/color/syntax.ts +0 -41
- package/src/theme/system/css.ts +0 -14
- package/src/theme/system/focusRing.ts +0 -7
- package/src/theme/system/font.ts +0 -52
- package/src/theme/system/index.ts +0 -11
- package/src/theme/system/input.ts +0 -33
- package/src/theme/system/layer.ts +0 -8
- package/src/theme/system/shadow.ts +0 -19
- package/src/theme/system/styles.ts +0 -13
- package/src/theme/system/theme.ts +0 -138
- package/src/theme/system/v0/avatar.ts +0 -10
- package/src/theme/system/v0/color/_generic.ts +0 -35
- package/src/theme/system/v0/color/_system.ts +0 -17
- package/src/theme/system/v0/color/base.ts +0 -21
- package/src/theme/system/v0/color/button.ts +0 -42
- package/src/theme/system/v0/color/card.ts +0 -19
- package/src/theme/system/v0/color/color.ts +0 -40
- package/src/theme/system/v0/color/index.ts +0 -11
- package/src/theme/system/v0/color/input.ts +0 -34
- package/src/theme/system/v0/color/muted.ts +0 -26
- package/src/theme/system/v0/color/selectable.ts +0 -31
- package/src/theme/system/v0/color/solid.ts +0 -26
- package/src/theme/system/v0/color/spot.ts +0 -13
- package/src/theme/system/v0/index.ts +0 -3
- package/src/theme/system/v0/input.ts +0 -23
- package/src/theme/versioning/getTheme_v2.ts +0 -57
- package/src/theme/versioning/index.ts +0 -5
- package/src/theme/versioning/is_v0.ts +0 -6
- package/src/theme/versioning/is_v2.ts +0 -6
- package/src/theme/versioning/themeColor_v0_v2.ts +0 -243
- package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
- package/src/theme/versioning/v0_v2.ts +0 -94
- package/src/theme/versioning/v2_v0.ts +0 -135
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { resolveFieldAccess, useForm, useKitEnv, useKitServices } from "../context.js";
|
|
3
|
+
import { isObj, pathKey } from "../lib/path.js";
|
|
4
|
+
import { KitIcon } from "../lib/icons.js";
|
|
5
|
+
import { Button } from "../ui/button.js";
|
|
6
|
+
import { Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Popover, PopoverContent, PopoverTrigger } from "../ui/overlay.js";
|
|
7
|
+
import { condCtx, isHidden, objectOpenMode, plainText, summarize } from "../lib/schema.js";
|
|
8
|
+
import { IssueDot, RowChrome } from "./bits.js";
|
|
9
|
+
import { resolveHelp } from "../schema/help.js";
|
|
10
|
+
import { FieldShell } from "./field-shell.js";
|
|
11
|
+
import { groupSummary } from "./group-summary.js";
|
|
12
|
+
import { isIconImage } from "../lib/icon-image.js";
|
|
13
|
+
import { FieldInset, FieldRun, useInsetDepth } from "./grouping.js";
|
|
14
|
+
import { FieldList } from "./field-list.js";
|
|
15
|
+
import { ArrayField } from "./array.js";
|
|
16
|
+
import { ExpandAction, ExpandedField, expandKey, expandSpecFor, isExpandShortcut, openExpanded } from "./expand.js";
|
|
17
|
+
import { SchemaForm } from "./schema-form.js";
|
|
18
|
+
import { SlotField } from "./slot.js";
|
|
19
|
+
import { JsonControl } from "../controls/json.js";
|
|
20
|
+
import * as React from "react";
|
|
21
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
import { IconChevronRight } from "@tabler/icons-react";
|
|
23
|
+
//#region src/engine/kit-field.tsx
|
|
24
|
+
/**
|
|
25
|
+
* KitField — renders ONE field of the schema at `path` (must be inside <SchemaForm>): the shell + the control for its
|
|
26
|
+
* type (V2 HEAD 9829bf1 kit/engine/kit-field.tsx).
|
|
27
|
+
*
|
|
28
|
+
* Arrays (array.tsx) and slots (slot.tsx) get their rows; objects open inline (FieldInset), drill (NavRow -> a frame),
|
|
29
|
+
* popover or dialog (NestedForm: its own navigation stack). Primitive types dispatch through the CONTROLS table, which
|
|
30
|
+
* the controls lanes fill. Every SchemaType has a control there; a type that is none of them (a schema newer than this
|
|
31
|
+
* kit) edits its raw value in the JSON control (FallbackControl), never nothing and never a stand-in.
|
|
32
|
+
*/
|
|
33
|
+
/** Type → control. Registered by the controls lane; a type with no entry edits its raw value (FallbackControl). */
|
|
34
|
+
var CONTROLS = {};
|
|
35
|
+
/**
|
|
36
|
+
* Type → label-row action (DESIGN 4.4: slug Generate, rich text expand, table Edit in full screen), registered by the
|
|
37
|
+
* controls lane next to its control. It gets the control's props. V2 draws it only while the field is editable, except
|
|
38
|
+
* the types in ACTION_WHEN_READ_ONLY, whose action takes `readOnly` and decides for itself (slug Generate).
|
|
39
|
+
*/
|
|
40
|
+
var ACTIONS = {};
|
|
41
|
+
var ACTION_WHEN_READ_ONLY = /* @__PURE__ */ new Set(["slug"]);
|
|
42
|
+
/** D58: the field for the lens: read-only (plain text) when it can't edit it. Hidden fields never reach here
|
|
43
|
+
* (SchemaForm drops them from the schema). */
|
|
44
|
+
function useFieldAccess(field) {
|
|
45
|
+
const env = useKitEnv();
|
|
46
|
+
return { readOnly: resolveFieldAccess(field, env).readOnly };
|
|
47
|
+
}
|
|
48
|
+
/** CPO D39: the field's help line — schema text first, then a line computed from its settings, then the house convention. */
|
|
49
|
+
function withDefaultHelp(field, isPublished, readOnly) {
|
|
50
|
+
let computed;
|
|
51
|
+
if (readOnly && field.lockReason) return {
|
|
52
|
+
...field,
|
|
53
|
+
description: field.lockReason.replace(/\.?$/, ".")
|
|
54
|
+
};
|
|
55
|
+
if (field.type === "slug" && !isPublished) computed = "Follows the title until you change it or publish.";
|
|
56
|
+
else if (field.type === "number" && !field.scale && field.layout !== "slider" && field.numeric?.unit) {
|
|
57
|
+
const { min, max, unit } = field.numeric;
|
|
58
|
+
computed = unit.startsWith("/") || max != null && unit.includes(String(max)) || min == null && max == null ? "" : min != null && max != null ? `Between ${min} and ${max} ${unit}.` : min != null ? `${min} ${unit} or more.` : `Up to ${max} ${unit}.`;
|
|
59
|
+
} else if (field.type === "number" && !field.scale && field.layout !== "slider" && (field.numeric?.min != null || field.numeric?.max != null)) {
|
|
60
|
+
const { min, max } = field.numeric ?? {};
|
|
61
|
+
computed = min != null && max != null ? `Between ${min} and ${max}.` : min != null ? `${min} or more.` : `Up to ${max}.`;
|
|
62
|
+
}
|
|
63
|
+
const help = resolveHelp(field, computed) ?? "";
|
|
64
|
+
return help === field.description ? field : {
|
|
65
|
+
...field,
|
|
66
|
+
description: help
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function KitField({ field, path, parent }) {
|
|
70
|
+
const form = useForm();
|
|
71
|
+
const env = useKitEnv();
|
|
72
|
+
const id = React.useId();
|
|
73
|
+
const { readOnly } = useFieldAccess(field);
|
|
74
|
+
if (!form) return null;
|
|
75
|
+
const Custom = env.controls?.[pathKey(path)];
|
|
76
|
+
if (Custom) {
|
|
77
|
+
const ck = pathKey(path);
|
|
78
|
+
const cissue = form.visibleIssue(ck);
|
|
79
|
+
const cf = withDefaultHelp(field, env.isPublished, readOnly);
|
|
80
|
+
return /* @__PURE__ */ jsx(FieldShell, {
|
|
81
|
+
field: cf,
|
|
82
|
+
path,
|
|
83
|
+
id,
|
|
84
|
+
value: form.getAt(path),
|
|
85
|
+
onChange: (v) => form.setAt(path, v),
|
|
86
|
+
readOnly,
|
|
87
|
+
issue: cissue,
|
|
88
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
89
|
+
onBlur: () => form.touch(ck),
|
|
90
|
+
className: "min-w-0",
|
|
91
|
+
children: /* @__PURE__ */ jsx(Custom, {
|
|
92
|
+
field: cf,
|
|
93
|
+
value: form.getAt(path),
|
|
94
|
+
onChange: (v) => form.setAt(path, v),
|
|
95
|
+
id,
|
|
96
|
+
invalid: cissue?.level === "error",
|
|
97
|
+
readOnly,
|
|
98
|
+
path,
|
|
99
|
+
parent,
|
|
100
|
+
onBlur: () => form.touch(ck)
|
|
101
|
+
})
|
|
102
|
+
})
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (field.type === "array") return /* @__PURE__ */ jsx(ArrayField, {
|
|
106
|
+
field,
|
|
107
|
+
path,
|
|
108
|
+
parent
|
|
109
|
+
});
|
|
110
|
+
if (field.type === "slot") return /* @__PURE__ */ jsx(SlotField, {
|
|
111
|
+
field,
|
|
112
|
+
path
|
|
113
|
+
});
|
|
114
|
+
if (field.type === "object") return /* @__PURE__ */ jsx(ObjectField, {
|
|
115
|
+
field,
|
|
116
|
+
path
|
|
117
|
+
});
|
|
118
|
+
const key = pathKey(path);
|
|
119
|
+
const value = form.getAt(path);
|
|
120
|
+
const onChange = (v) => form.setAt(path, v);
|
|
121
|
+
const onBlur = () => form.touch(key);
|
|
122
|
+
const issue = form.visibleIssue(key);
|
|
123
|
+
const Control = CONTROLS[field.type] ?? FallbackControl;
|
|
124
|
+
const Action = ACTIONS[field.type];
|
|
125
|
+
const f = withDefaultHelp(field, env.isPublished, readOnly);
|
|
126
|
+
const plain = readOnly && PLAIN_TYPES.has(field.type);
|
|
127
|
+
const card = field.type === "boolean" && field.layout !== "checkbox";
|
|
128
|
+
const iconRow = isIconImage(field, value);
|
|
129
|
+
const expand = plain || Action ? null : expandSpecFor(field, {
|
|
130
|
+
readOnly,
|
|
131
|
+
hasKitControl: !!CONTROLS[field.type],
|
|
132
|
+
variant: env.variant
|
|
133
|
+
});
|
|
134
|
+
const action = Action && (!readOnly || ACTION_WHEN_READ_ONLY.has(field.type)) ? /* @__PURE__ */ jsx(Action, {
|
|
135
|
+
field: f,
|
|
136
|
+
value,
|
|
137
|
+
onChange,
|
|
138
|
+
id,
|
|
139
|
+
readOnly,
|
|
140
|
+
path,
|
|
141
|
+
parent
|
|
142
|
+
}) : expand ? /* @__PURE__ */ jsx(ExpandAction, {
|
|
143
|
+
field: f,
|
|
144
|
+
path,
|
|
145
|
+
spec: expand
|
|
146
|
+
}) : void 0;
|
|
147
|
+
return /* @__PURE__ */ jsxs(FieldShell, {
|
|
148
|
+
field: f,
|
|
149
|
+
path,
|
|
150
|
+
id,
|
|
151
|
+
value,
|
|
152
|
+
onChange,
|
|
153
|
+
readOnly,
|
|
154
|
+
issue,
|
|
155
|
+
layout: card ? "card" : iconRow ? "row" : "stack",
|
|
156
|
+
action,
|
|
157
|
+
children: [plain ? card ? null : /* @__PURE__ */ jsx(PlainValue, {
|
|
158
|
+
field: f,
|
|
159
|
+
value,
|
|
160
|
+
id
|
|
161
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
162
|
+
onBlur,
|
|
163
|
+
onKeyDown: expand ? (e) => {
|
|
164
|
+
if (!isExpandShortcut(e)) return;
|
|
165
|
+
e.preventDefault();
|
|
166
|
+
openExpanded(expandKey(env.docId, path));
|
|
167
|
+
} : void 0,
|
|
168
|
+
className: "min-w-0",
|
|
169
|
+
children: /* @__PURE__ */ jsx(Control, {
|
|
170
|
+
field: f,
|
|
171
|
+
value,
|
|
172
|
+
onChange,
|
|
173
|
+
id,
|
|
174
|
+
invalid: issue?.level === "error",
|
|
175
|
+
readOnly,
|
|
176
|
+
path,
|
|
177
|
+
parent,
|
|
178
|
+
onBlur
|
|
179
|
+
})
|
|
180
|
+
}), expand ? /* @__PURE__ */ jsx(ExpandedField, {
|
|
181
|
+
field: f,
|
|
182
|
+
path,
|
|
183
|
+
spec: expand,
|
|
184
|
+
Control,
|
|
185
|
+
value,
|
|
186
|
+
onChange,
|
|
187
|
+
onBlur,
|
|
188
|
+
invalid: issue?.level === "error",
|
|
189
|
+
id,
|
|
190
|
+
parent
|
|
191
|
+
}) : null]
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* A row that opens something (V2 NavRow): type tile, title over a summary line, the field's chrome (from RowChrome),
|
|
196
|
+
* the issue rollup and a chevron.
|
|
197
|
+
* Like V2 it always draws its button and chevron, also with no `onClick` (a popover trigger around it opens on the
|
|
198
|
+
* click). Only `inert` (the form draws no frames, so nothing can open) leaves both out.
|
|
199
|
+
*/
|
|
200
|
+
function NavRow({ icon, title, subtitle, path, onClick, inert, className, trailing }) {
|
|
201
|
+
const form = useForm();
|
|
202
|
+
const roll = path && form ? form.rollup(path) : {
|
|
203
|
+
errors: 0,
|
|
204
|
+
warnings: 0
|
|
205
|
+
};
|
|
206
|
+
const subId = React.useId();
|
|
207
|
+
const chrome = React.useContext(RowChrome);
|
|
208
|
+
const text = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("span", {
|
|
209
|
+
className: "block truncate text-kit-sm text-kit-fg",
|
|
210
|
+
children: title
|
|
211
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
212
|
+
id: subId,
|
|
213
|
+
className: "block truncate text-kit-xs text-kit-fg-3",
|
|
214
|
+
children: subtitle || "Nothing set yet"
|
|
215
|
+
})] });
|
|
216
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
217
|
+
className: cn("group/nav relative flex min-h-11 w-full min-w-0 items-center gap-2.5 rounded-kit-lg border border-kit-line bg-kit-control-bg py-1.5 pl-2 pr-2 text-left transition-colors hover:border-kit-line-strong hover:bg-kit-subtle", className),
|
|
218
|
+
children: [
|
|
219
|
+
/* @__PURE__ */ jsx("span", {
|
|
220
|
+
className: "flex size-7 shrink-0 items-center justify-center rounded-kit-md bg-kit-muted text-kit-fg-2",
|
|
221
|
+
children: /* @__PURE__ */ jsx(KitIcon, {
|
|
222
|
+
name: icon,
|
|
223
|
+
fallback: "folder",
|
|
224
|
+
className: "size-4"
|
|
225
|
+
})
|
|
226
|
+
}),
|
|
227
|
+
!inert ? /* @__PURE__ */ jsx("button", {
|
|
228
|
+
type: "button",
|
|
229
|
+
"data-nav-main": true,
|
|
230
|
+
onClick,
|
|
231
|
+
"aria-label": `Open ${title}${roll.errors ? `, ${roll.errors} ${roll.errors === 1 ? "issue" : "issues"}` : ""}`,
|
|
232
|
+
"aria-describedby": subId,
|
|
233
|
+
className: "min-w-0 flex-1 text-left outline-none after:absolute after:inset-0 after:rounded-kit-lg after:content-[''] focus-visible:after:outline-2 focus-visible:after:outline-offset-2 focus-visible:after:outline-kit-focus-ring focus-visible:after:[outline-style:solid] [html[data-input-modality=pointer]_&]:focus-visible:after:outline-none",
|
|
234
|
+
children: text
|
|
235
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
236
|
+
"data-nav-main": true,
|
|
237
|
+
className: "min-w-0 flex-1 text-left",
|
|
238
|
+
children: text
|
|
239
|
+
}),
|
|
240
|
+
/* @__PURE__ */ jsx(IssueDot, {
|
|
241
|
+
errors: roll.errors,
|
|
242
|
+
warnings: roll.warnings,
|
|
243
|
+
className: "relative"
|
|
244
|
+
}),
|
|
245
|
+
chrome ? /* @__PURE__ */ jsx("span", {
|
|
246
|
+
className: "relative z-[1] flex shrink-0 items-center gap-0.5 empty:hidden",
|
|
247
|
+
children: chrome
|
|
248
|
+
}) : null,
|
|
249
|
+
trailing,
|
|
250
|
+
!inert ? /* @__PURE__ */ jsx(IconChevronRight, {
|
|
251
|
+
"aria-hidden": true,
|
|
252
|
+
className: "pointer-events-none size-4 shrink-0 text-kit-fg-3 transition-transform group-hover/nav:translate-x-0.5",
|
|
253
|
+
stroke: 1.5
|
|
254
|
+
}) : null
|
|
255
|
+
]
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
function ObjectField({ field, path }) {
|
|
259
|
+
const form = useForm();
|
|
260
|
+
const id = React.useId();
|
|
261
|
+
const { readOnly } = useFieldAccess(field);
|
|
262
|
+
const depth = useInsetDepth();
|
|
263
|
+
const value = form.getAt(path);
|
|
264
|
+
const obj = isObj(value) ? value : {};
|
|
265
|
+
const fields = field.fields ?? [];
|
|
266
|
+
const wanted = objectOpenMode(field);
|
|
267
|
+
const mode = wanted === "inline" && depth > 0 ? "drill" : wanted;
|
|
268
|
+
const [open, setOpen] = React.useState(false);
|
|
269
|
+
const sum = groupSummary(fields, obj) || summarize(fields, obj);
|
|
270
|
+
const nav = React.useRef(null);
|
|
271
|
+
const shell = (control, layout) => /* @__PURE__ */ jsx(FieldShell, {
|
|
272
|
+
field,
|
|
273
|
+
path,
|
|
274
|
+
id,
|
|
275
|
+
value,
|
|
276
|
+
onChange: (v) => form.setAt(path, v),
|
|
277
|
+
readOnly,
|
|
278
|
+
issue: form.visibleIssue(pathKey(path)),
|
|
279
|
+
layout,
|
|
280
|
+
children: control
|
|
281
|
+
});
|
|
282
|
+
if (mode === "inline") {
|
|
283
|
+
const cc = condCtx(form, path);
|
|
284
|
+
const visible = fields.filter((f) => !isHidden(f, obj, cc));
|
|
285
|
+
return shell(/* @__PURE__ */ jsx(FieldInset, {
|
|
286
|
+
label: field.title,
|
|
287
|
+
children: /* @__PURE__ */ jsx(FieldRun, {
|
|
288
|
+
fields: visible,
|
|
289
|
+
values: obj,
|
|
290
|
+
render: (f) => /* @__PURE__ */ jsx(KitField, {
|
|
291
|
+
field: f,
|
|
292
|
+
path: [...path, f.name],
|
|
293
|
+
parent: obj
|
|
294
|
+
})
|
|
295
|
+
})
|
|
296
|
+
}));
|
|
297
|
+
}
|
|
298
|
+
const help = resolveHelp(field) ?? "";
|
|
299
|
+
if (mode === "popover") return shell(/* @__PURE__ */ jsxs(Popover, {
|
|
300
|
+
open,
|
|
301
|
+
onOpenChange: setOpen,
|
|
302
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
303
|
+
nativeButton: false,
|
|
304
|
+
render: /* @__PURE__ */ jsx("div", {}),
|
|
305
|
+
children: /* @__PURE__ */ jsx(NavRow, {
|
|
306
|
+
icon: field.icon,
|
|
307
|
+
title: field.title,
|
|
308
|
+
subtitle: sum || help,
|
|
309
|
+
path
|
|
310
|
+
})
|
|
311
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
312
|
+
className: "w-[340px] p-3",
|
|
313
|
+
align: "start",
|
|
314
|
+
children: /* @__PURE__ */ jsx(FieldList, {
|
|
315
|
+
fields,
|
|
316
|
+
basePath: path,
|
|
317
|
+
memoryKey: `pop:${pathKey(path)}`
|
|
318
|
+
})
|
|
319
|
+
})]
|
|
320
|
+
}), "row");
|
|
321
|
+
if (mode === "dialog") return shell(/* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(NavRow, {
|
|
322
|
+
icon: field.icon,
|
|
323
|
+
title: field.title,
|
|
324
|
+
subtitle: sum || help,
|
|
325
|
+
path,
|
|
326
|
+
onClick: () => setOpen(true)
|
|
327
|
+
}), /* @__PURE__ */ jsx(Modal, {
|
|
328
|
+
open,
|
|
329
|
+
onOpenChange: (o, d) => {
|
|
330
|
+
if (!o && d.reason === "escape-key" && nav.current?.back()) return d.cancel();
|
|
331
|
+
setOpen(o);
|
|
332
|
+
},
|
|
333
|
+
children: /* @__PURE__ */ jsxs(ModalContent, {
|
|
334
|
+
size: "lg",
|
|
335
|
+
children: [
|
|
336
|
+
/* @__PURE__ */ jsx(ModalHeader, {
|
|
337
|
+
title: field.title,
|
|
338
|
+
description: field.description,
|
|
339
|
+
icon: /* @__PURE__ */ jsx(KitIcon, {
|
|
340
|
+
name: field.icon,
|
|
341
|
+
fallback: "folder"
|
|
342
|
+
})
|
|
343
|
+
}),
|
|
344
|
+
/* @__PURE__ */ jsx(ModalBody, {
|
|
345
|
+
className: "flex min-h-[320px] flex-col gap-5",
|
|
346
|
+
children: /* @__PURE__ */ jsx(NestedForm, {
|
|
347
|
+
fields,
|
|
348
|
+
title: field.title,
|
|
349
|
+
icon: field.icon,
|
|
350
|
+
path,
|
|
351
|
+
navRef: nav
|
|
352
|
+
})
|
|
353
|
+
}),
|
|
354
|
+
/* @__PURE__ */ jsxs(ModalFooter, { children: [/* @__PURE__ */ jsx("span", {
|
|
355
|
+
className: "mr-auto text-kit-xs text-kit-fg-3",
|
|
356
|
+
children: "Changes save as you type"
|
|
357
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
358
|
+
variant: "primary",
|
|
359
|
+
onClick: () => setOpen(false),
|
|
360
|
+
children: "Done"
|
|
361
|
+
})] })
|
|
362
|
+
]
|
|
363
|
+
})
|
|
364
|
+
})] }), "row");
|
|
365
|
+
return shell(/* @__PURE__ */ jsx(NavRow, {
|
|
366
|
+
icon: field.icon,
|
|
367
|
+
title: field.title,
|
|
368
|
+
subtitle: sum || help,
|
|
369
|
+
path,
|
|
370
|
+
onClick: () => form.navigate(path),
|
|
371
|
+
inert: !form.canNavigate
|
|
372
|
+
}), "row");
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* A dialog gets its OWN navigation stack: lists inside it drill inside the dialog (breadcrumb, Esc, stepper), never the
|
|
376
|
+
* panel behind. Writes go straight into the parent form at `path`.
|
|
377
|
+
*/
|
|
378
|
+
function NestedForm({ fields, title, icon, path, navRef }) {
|
|
379
|
+
const form = useForm();
|
|
380
|
+
const env = useKitEnv();
|
|
381
|
+
const key = pathKey(path);
|
|
382
|
+
const schema = React.useMemo(() => ({
|
|
383
|
+
name: key || "nested",
|
|
384
|
+
title,
|
|
385
|
+
icon,
|
|
386
|
+
kind: "object",
|
|
387
|
+
fields
|
|
388
|
+
}), [
|
|
389
|
+
key,
|
|
390
|
+
title,
|
|
391
|
+
icon,
|
|
392
|
+
fields
|
|
393
|
+
]);
|
|
394
|
+
const raw = form.getAt(path);
|
|
395
|
+
const pub = form.hasPublished ? form.publishedAt(path) : void 0;
|
|
396
|
+
const presence = React.useMemo(() => {
|
|
397
|
+
const out = {};
|
|
398
|
+
for (const [k, v] of Object.entries(env.presence)) if (k.startsWith(`${key}.`)) out[k.slice(key.length + 1)] = v;
|
|
399
|
+
return out;
|
|
400
|
+
}, [env.presence, key]);
|
|
401
|
+
return /* @__PURE__ */ jsx(SchemaForm, {
|
|
402
|
+
schema,
|
|
403
|
+
value: isObj(raw) ? raw : {},
|
|
404
|
+
onChange: (v) => form.setAt(path, v),
|
|
405
|
+
variant: "document",
|
|
406
|
+
scroll: false,
|
|
407
|
+
navRef,
|
|
408
|
+
resolveSchema: form.resolveSchema,
|
|
409
|
+
blockLibrary: form.blockLibrary,
|
|
410
|
+
published: isObj(pub) ? pub : void 0,
|
|
411
|
+
presence,
|
|
412
|
+
readOnly: env.readOnly,
|
|
413
|
+
showErrors: form.showAllErrors,
|
|
414
|
+
onOpenReference: env.onOpenReference,
|
|
415
|
+
env: {
|
|
416
|
+
docId: `${env.docId}:${key}`,
|
|
417
|
+
docTitle: env.docTitle,
|
|
418
|
+
urlPrefix: env.urlPrefix,
|
|
419
|
+
isPublished: env.isPublished,
|
|
420
|
+
palette: env.palette,
|
|
421
|
+
helpDisplay: env.helpDisplay
|
|
422
|
+
}
|
|
423
|
+
});
|
|
424
|
+
}
|
|
425
|
+
var PLAIN_TYPES = /* @__PURE__ */ new Set([
|
|
426
|
+
"string",
|
|
427
|
+
"text",
|
|
428
|
+
"richtext",
|
|
429
|
+
"number",
|
|
430
|
+
"slug",
|
|
431
|
+
"url",
|
|
432
|
+
"email",
|
|
433
|
+
"date",
|
|
434
|
+
"datetime",
|
|
435
|
+
"select",
|
|
436
|
+
"multiselect",
|
|
437
|
+
"tags",
|
|
438
|
+
"boolean",
|
|
439
|
+
"rating"
|
|
440
|
+
]);
|
|
441
|
+
function plainOf(field, value) {
|
|
442
|
+
if (value == null || value === "") return "";
|
|
443
|
+
const label = (v) => field.options?.find((o) => o.value === v)?.label ?? String(v);
|
|
444
|
+
if (field.type === "boolean") return value ? "On" : "Off";
|
|
445
|
+
if (field.type === "select") return label(value);
|
|
446
|
+
if (field.type === "richtext") return plainText(value);
|
|
447
|
+
if (Array.isArray(value)) return value.map(label).join(", ");
|
|
448
|
+
if (field.type === "date" || field.type === "datetime") {
|
|
449
|
+
const d = new Date(String(value).replace(/\[.*\]$/, ""));
|
|
450
|
+
return Number.isNaN(+d) ? String(value) : d.toLocaleString("en-US", field.type === "date" ? {
|
|
451
|
+
month: "short",
|
|
452
|
+
day: "numeric",
|
|
453
|
+
year: "numeric"
|
|
454
|
+
} : {
|
|
455
|
+
month: "short",
|
|
456
|
+
day: "numeric",
|
|
457
|
+
year: "numeric",
|
|
458
|
+
hour: "numeric",
|
|
459
|
+
minute: "2-digit"
|
|
460
|
+
});
|
|
461
|
+
}
|
|
462
|
+
if (field.type === "number" && isObj(value)) return String(value.value ?? "");
|
|
463
|
+
return typeof value === "object" ? "" : String(value);
|
|
464
|
+
}
|
|
465
|
+
function PlainValue({ field, value, id }) {
|
|
466
|
+
const text = plainOf(field, value);
|
|
467
|
+
return /* @__PURE__ */ jsx("p", {
|
|
468
|
+
id,
|
|
469
|
+
tabIndex: 0,
|
|
470
|
+
"data-slot": "kit-plain",
|
|
471
|
+
className: cn("min-w-0 whitespace-pre-wrap break-words text-kit-sm leading-6 text-kit-fg outline-none", (field.type === "slug" || field.type === "url") && "font-kit-mono text-kit-xs leading-6"),
|
|
472
|
+
children: text || /* @__PURE__ */ jsx("span", {
|
|
473
|
+
className: "text-kit-fg-3",
|
|
474
|
+
children: "Empty"
|
|
475
|
+
})
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Every SchemaType has a kit control (kit-field.test checks CONTROLS against the type list in schema/types.ts). A field
|
|
480
|
+
* whose type is none of them edits its raw stored value in the JSON control, tagged `data-kit-fallback="<type>"`: the
|
|
481
|
+
* value is shown and kept, and an edit is written only once it parses.
|
|
482
|
+
*/
|
|
483
|
+
function FallbackControl(props) {
|
|
484
|
+
return /* @__PURE__ */ jsx("div", {
|
|
485
|
+
"data-kit-fallback": props.field.type,
|
|
486
|
+
className: "min-w-0",
|
|
487
|
+
children: /* @__PURE__ */ jsx(JsonControl, { ...props })
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* A control that cannot carry a stored value unchanged (rich text holding formatting its editor would drop) hands that
|
|
492
|
+
* value to the host's control for the type (KitServices.LegacyControl: the dashboard's FieldRenderer arm), bare inside
|
|
493
|
+
* the kit FieldShell, which owns the label and the help; the control names its reason above it. The box carries
|
|
494
|
+
* `data-kit-legacy="<type>"`, so the parity harness counts it (mismatch class `legacy-control`). A host with no legacy
|
|
495
|
+
* service, or a control that throws while rendering, says why in words; the form around it keeps working.
|
|
496
|
+
*/
|
|
497
|
+
function LegacyFallback(props) {
|
|
498
|
+
const { LegacyControl } = useKitServices();
|
|
499
|
+
const { field, id } = props;
|
|
500
|
+
return /* @__PURE__ */ jsx("div", {
|
|
501
|
+
"data-kit-legacy": field.type,
|
|
502
|
+
className: "min-w-0",
|
|
503
|
+
children: LegacyControl ? /* @__PURE__ */ jsx(LegacyBoundary, {
|
|
504
|
+
field,
|
|
505
|
+
id,
|
|
506
|
+
value: props.value,
|
|
507
|
+
children: /* @__PURE__ */ jsx(LegacyControl, { ...props })
|
|
508
|
+
}, JSON.stringify(field)) : /* @__PURE__ */ jsxs(LegacyRefusal, {
|
|
509
|
+
id,
|
|
510
|
+
children: [
|
|
511
|
+
"This view has no control for ",
|
|
512
|
+
field.type,
|
|
513
|
+
" fields."
|
|
514
|
+
]
|
|
515
|
+
})
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* An `<output>`: a labelable element, so the FieldShell label's `for` lands on it, and focusable, so a keyboard user
|
|
520
|
+
* reaches the reason. The neutral focus ring shows under keyboard modality only.
|
|
521
|
+
*/
|
|
522
|
+
function LegacyRefusal({ id, children }) {
|
|
523
|
+
return /* @__PURE__ */ jsx("output", {
|
|
524
|
+
id,
|
|
525
|
+
role: "note",
|
|
526
|
+
tabIndex: 0,
|
|
527
|
+
"data-slot": "kit-legacy-refusal",
|
|
528
|
+
className: "block rounded-kit-sm text-kit-xs text-kit-fg-3 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-kit-focus-ring focus-visible:[outline-style:solid] [html[data-input-modality=pointer]_&]:focus-visible:outline-0",
|
|
529
|
+
children
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
/** Retries the control once its field or value changes (a schema edit, a save from elsewhere, an undo). */
|
|
533
|
+
var LegacyBoundary = class extends React.Component {
|
|
534
|
+
state = { reason: null };
|
|
535
|
+
static getDerivedStateFromError(error) {
|
|
536
|
+
return { reason: error instanceof Error ? error.message : String(error) };
|
|
537
|
+
}
|
|
538
|
+
componentDidUpdate(prev) {
|
|
539
|
+
if (this.state.reason === null) return;
|
|
540
|
+
if (prev.value !== this.props.value || JSON.stringify(prev.field) !== JSON.stringify(this.props.field)) this.setState({ reason: null });
|
|
541
|
+
}
|
|
542
|
+
render() {
|
|
543
|
+
if (this.state.reason === null) return this.props.children;
|
|
544
|
+
return /* @__PURE__ */ jsxs(LegacyRefusal, {
|
|
545
|
+
id: this.props.id,
|
|
546
|
+
children: [
|
|
547
|
+
"The ",
|
|
548
|
+
this.props.field.title,
|
|
549
|
+
" control could not load: ",
|
|
550
|
+
this.state.reason
|
|
551
|
+
]
|
|
552
|
+
});
|
|
553
|
+
}
|
|
554
|
+
};
|
|
555
|
+
//#endregion
|
|
556
|
+
export { ACTIONS, ACTION_WHEN_READ_ONLY, CONTROLS, FallbackControl, KitField, LegacyFallback, NavRow, NestedForm, plainOf, useFieldAccess, withDefaultHelp };
|
|
557
|
+
|
|
558
|
+
//# sourceMappingURL=kit-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kit-field.js","names":[],"sources":["../../src/engine/kit-field.tsx"],"sourcesContent":["/**\n * KitField — renders ONE field of the schema at `path` (must be inside <SchemaForm>): the shell + the control for its\n * type (V2 HEAD 9829bf1 kit/engine/kit-field.tsx).\n *\n * Arrays (array.tsx) and slots (slot.tsx) get their rows; objects open inline (FieldInset), drill (NavRow -> a frame),\n * popover or dialog (NestedForm: its own navigation stack). Primitive types dispatch through the CONTROLS table, which\n * the controls lanes fill. Every SchemaType has a control there; a type that is none of them (a schema newer than this\n * kit) edits its raw value in the JSON control (FallbackControl), never nothing and never a stand-in.\n */\nimport * as React from \"react\";\nimport type { ComponentType } from \"react\";\nimport { IconChevronRight } from \"@tabler/icons-react\";\nimport { KitIcon } from \"../lib/icons\";\nimport { cn } from \"../lib/cn\";\nimport type { FieldPath, FieldSchema, PrimitiveType, SchemaType } from \"../schema/types\";\nimport { resolveHelp } from \"../schema/help\";\nimport type { ControlProps } from \"../types\";\nimport { resolveFieldAccess, useForm, useKitEnv, useKitServices, type KitPeer } from \"../context\";\nimport { Button } from \"../ui/button\";\nimport { Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, Popover, PopoverContent, PopoverTrigger } from \"../ui/overlay\";\nimport { isObj, pathKey } from \"../lib/path\";\nimport { condCtx, isHidden, objectOpenMode, plainText, summarize } from \"../lib/schema\";\nimport { isIconImage } from \"../lib/icon-image\";\nimport { ArrayField, type NestedFormProps } from \"./array\";\nimport { ExpandAction, ExpandedField, expandKey, expandSpecFor, isExpandShortcut, openExpanded } from \"./expand\";\nimport { FieldShell } from \"./field-shell\";\nimport { FieldList } from \"./field-list\";\nimport { IssueDot, RowChrome } from \"./bits\";\nimport { FieldInset, FieldRun, groupSummary, useInsetDepth } from \"./grouping\";\nimport { SchemaForm } from \"./schema-form\";\nimport { SlotField } from \"./slot\";\nimport { JsonControl } from \"../controls/json\";\n\nexport interface KitFieldProps {\n field: FieldSchema;\n path: (string | number)[];\n parent?: Record<string, unknown>;\n}\n\n/** Type → control. Registered by the controls lane; a type with no entry edits its raw value (FallbackControl). */\nexport const CONTROLS: Partial<Record<SchemaType, ComponentType<ControlProps>>> = {};\n\n/**\n * Type → label-row action (DESIGN 4.4: slug Generate, rich text expand, table Edit in full screen), registered by the\n * controls lane next to its control. It gets the control's props. V2 draws it only while the field is editable, except\n * the types in ACTION_WHEN_READ_ONLY, whose action takes `readOnly` and decides for itself (slug Generate).\n */\nexport const ACTIONS: Partial<Record<SchemaType, ComponentType<ControlProps>>> = {};\nexport const ACTION_WHEN_READ_ONLY = new Set<SchemaType>([\"slug\"]);\n\n/** D58: the field for the lens: read-only (plain text) when it can't edit it. Hidden fields never reach here\n * (SchemaForm drops them from the schema). */\nexport function useFieldAccess(field: FieldSchema) {\n const env = useKitEnv();\n return { readOnly: resolveFieldAccess(field, env).readOnly };\n}\n\n/** CPO D39: the field's help line — schema text first, then a line computed from its settings, then the house convention. */\nexport function withDefaultHelp(field: FieldSchema, isPublished?: boolean, readOnly?: boolean): FieldSchema {\n let computed: string | undefined;\n /* a value set elsewhere says where, in one plain line (never a lock or a key) */\n if (readOnly && field.lockReason) return { ...field, description: field.lockReason.replace(/\\.?$/, \".\") };\n if (field.type === \"slug\" && !isPublished) computed = \"Follows the title until you change it or publish.\";\n else if (field.type === \"number\" && !field.scale && field.layout !== \"slider\" && field.numeric?.unit) {\n /* D63: the unit sits in the input (\"/ 5\", \"min\"), so a line that only restates it or its range is noise. A range\n still earns a line when the unit does not already say it (\"Between 1 and 12 items.\"). */\n const { min, max, unit } = field.numeric;\n const said = unit.startsWith(\"/\") || (max != null && unit.includes(String(max)));\n computed = said || (min == null && max == null) ? \"\" : min != null && max != null ? `Between ${min} and ${max} ${unit}.` : min != null ? `${min} ${unit} or more.` : `Up to ${max} ${unit}.`;\n } else if (field.type === \"number\" && !field.scale && field.layout !== \"slider\" && (field.numeric?.min != null || field.numeric?.max != null)) {\n const { min, max } = field.numeric ?? {};\n computed = min != null && max != null ? `Between ${min} and ${max}.` : min != null ? `${min} or more.` : `Up to ${max}.`;\n }\n /* resolve here so the computed line wins over the house convention; \"\" survives as \"deliberately none\" */\n const help = resolveHelp(field, computed) ?? \"\";\n return help === field.description ? field : { ...field, description: help };\n}\n\nexport function KitField({ field, path, parent }: KitFieldProps) {\n const form = useForm();\n const env = useKitEnv();\n const id = React.useId();\n const { readOnly } = useFieldAccess(field);\n if (!form) return null;\n\n /* a host's own control for this field (KitEnv.controls), inside the usual shell */\n const Custom = env.controls?.[pathKey(path)];\n if (Custom) {\n const ck = pathKey(path);\n const cissue = form.visibleIssue(ck);\n const cf = withDefaultHelp(field, env.isPublished, readOnly);\n return (\n <FieldShell field={cf} path={path} id={id} value={form.getAt(path)} onChange={(v) => form.setAt(path, v)} readOnly={readOnly} issue={cissue}>\n <div onBlur={() => form.touch(ck)} className=\"min-w-0\">\n <Custom field={cf} value={form.getAt(path)} onChange={(v) => form.setAt(path, v)} id={id} invalid={cissue?.level === \"error\"} readOnly={readOnly} path={path} parent={parent} onBlur={() => form.touch(ck)} />\n </div>\n </FieldShell>\n );\n }\n\n if (field.type === \"array\") return <ArrayField field={field} path={path} parent={parent} />;\n if (field.type === \"slot\") return <SlotField field={field} path={path} />;\n if (field.type === \"object\") return <ObjectField field={field} path={path} />;\n\n const key = pathKey(path);\n const value = form.getAt(path);\n const onChange = (v: unknown) => form.setAt(path, v);\n const onBlur = () => form.touch(key);\n const issue = form.visibleIssue(key);\n const Control = CONTROLS[field.type] ?? FallbackControl;\n const Action = ACTIONS[field.type];\n const f = withDefaultHelp(field, env.isPublished, readOnly);\n const plain = readOnly && PLAIN_TYPES.has(field.type as PrimitiveType);\n const card = field.type === \"boolean\" && field.layout !== \"checkbox\";\n /* an icon's row carries its own name (controls/media.tsx IconImageRow): no label above it as well */\n const iconRow = isIconImage(field, value);\n /* D49: rich text, code and tables open the shared expanded editor (expand.tsx). A lane that registers its\n own ACTIONS[type] owns its expansion too (rich text's editor modal, the table's spreadsheet): the engine draws no\n second modal and binds no second ⌘↵ for it. */\n const expand = plain || Action ? null : expandSpecFor(field, { readOnly, hasKitControl: !!CONTROLS[field.type], variant: env.variant });\n const action =\n Action && (!readOnly || ACTION_WHEN_READ_ONLY.has(field.type)) ? (\n <Action field={f} value={value} onChange={onChange} id={id} readOnly={readOnly} path={path} parent={parent} />\n ) : expand ? (\n <ExpandAction field={f} path={path} spec={expand} />\n ) : undefined;\n return (\n <FieldShell field={f} path={path} id={id} value={value} onChange={onChange} readOnly={readOnly} issue={issue} layout={card ? \"card\" : iconRow ? \"row\" : \"stack\"} action={action}>\n {plain ? (\n card ? null /* the switch card already reads On / Off */ : <PlainValue field={f} value={value} id={id} />\n ) : (\n <div\n onBlur={onBlur}\n onKeyDown={\n expand\n ? (e) => {\n if (!isExpandShortcut(e)) return;\n e.preventDefault();\n openExpanded(expandKey(env.docId, path));\n }\n : undefined\n }\n className=\"min-w-0\"\n >\n <Control field={f} value={value} onChange={onChange} id={id} invalid={issue?.level === \"error\"} readOnly={readOnly} path={path} parent={parent} onBlur={onBlur} />\n </div>\n )}\n {expand ? (\n <ExpandedField field={f} path={path} spec={expand} Control={Control} value={value} onChange={onChange} onBlur={onBlur} invalid={issue?.level === \"error\"} id={id} parent={parent} />\n ) : null}\n </FieldShell>\n );\n}\n\n/**\n * A row that opens something (V2 NavRow): type tile, title over a summary line, the field's chrome (from RowChrome),\n * the issue rollup and a chevron.\n * Like V2 it always draws its button and chevron, also with no `onClick` (a popover trigger around it opens on the\n * click). Only `inert` (the form draws no frames, so nothing can open) leaves both out.\n */\nexport function NavRow({\n icon,\n title,\n subtitle,\n path,\n onClick,\n inert,\n className,\n trailing,\n}: {\n icon?: string;\n title: string;\n subtitle?: string;\n path?: FieldPath;\n onClick?: () => void;\n inert?: boolean;\n className?: string;\n trailing?: React.ReactNode;\n}) {\n const form = useForm();\n const roll = path && form ? form.rollup(path) : { errors: 0, warnings: 0 };\n const subId = React.useId();\n const chrome = React.useContext(RowChrome);\n const text = (\n <>\n <span className=\"block truncate text-kit-sm text-kit-fg\">{title}</span>\n <span id={subId} className=\"block truncate text-kit-xs text-kit-fg-3\">\n {subtitle || \"Nothing set yet\"}\n </span>\n </>\n );\n return (\n <div\n className={cn(\n \"group/nav relative flex min-h-11 w-full min-w-0 items-center gap-2.5 rounded-kit-lg border border-kit-line bg-kit-control-bg py-1.5 pl-2 pr-2 text-left transition-colors hover:border-kit-line-strong hover:bg-kit-subtle\",\n className,\n )}\n >\n <span className=\"flex size-7 shrink-0 items-center justify-center rounded-kit-md bg-kit-muted text-kit-fg-2\">\n <KitIcon name={icon} fallback=\"folder\" className=\"size-4\" />\n </span>\n {!inert ? (\n <button\n type=\"button\"\n data-nav-main\n onClick={onClick}\n aria-label={`Open ${title}${roll.errors ? `, ${roll.errors} ${roll.errors === 1 ? \"issue\" : \"issues\"}` : \"\"}`}\n aria-describedby={subId}\n className=\"min-w-0 flex-1 text-left outline-none after:absolute after:inset-0 after:rounded-kit-lg after:content-[''] focus-visible:after:outline-2 focus-visible:after:outline-offset-2 focus-visible:after:outline-kit-focus-ring focus-visible:after:[outline-style:solid] [html[data-input-modality=pointer]_&]:focus-visible:after:outline-none\"\n >\n {text}\n </button>\n ) : (\n <div data-nav-main className=\"min-w-0 flex-1 text-left\">\n {text}\n </div>\n )}\n <IssueDot errors={roll.errors} warnings={roll.warnings} className=\"relative\" />\n {chrome ? <span className=\"relative z-[1] flex shrink-0 items-center gap-0.5 empty:hidden\">{chrome}</span> : null}\n {trailing}\n {!inert ? <IconChevronRight aria-hidden className=\"pointer-events-none size-4 shrink-0 text-kit-fg-3 transition-transform group-hover/nav:translate-x-0.5\" stroke={1.5} /> : null}\n </div>\n );\n}\n\n/* ── Object: inline · drill · popover · dialog (V2 ObjectField) ───── */\n\nfunction ObjectField({ field, path }: { field: FieldSchema; path: FieldPath }) {\n const form = useForm()!;\n const id = React.useId();\n const { readOnly } = useFieldAccess(field);\n const depth = useInsetDepth();\n const value = form.getAt(path);\n const obj = isObj(value) ? value : {};\n const fields = field.fields ?? [];\n /* D45 nesting rule: one container per level. Inside an inset (or an expanded row) an \"inline\" object would be a box in a\n box, so it drills instead — level 3+ is always a new frame, never more indentation. */\n const wanted = objectOpenMode(field);\n const mode = wanted === \"inline\" && depth > 0 ? \"drill\" : wanted;\n const [open, setOpen] = React.useState(false);\n const sum = groupSummary(fields, obj) || summarize(fields, obj);\n const nav = React.useRef<{ back: () => boolean }>(null);\n const shell = (control: React.ReactNode, layout?: \"row\") => (\n <FieldShell field={field} path={path} id={id} value={value} onChange={(v) => form.setAt(path, v)} readOnly={readOnly} issue={form.visibleIssue(pathKey(path))} layout={layout}>\n {control}\n </FieldShell>\n );\n if (mode === \"inline\") {\n const cc = condCtx(form, path);\n const visible = fields.filter((f) => !isHidden(f, obj, cc));\n /* D63: label, then the children behind one inset line; short neighbours pair up only on a wide form */\n return shell(\n <FieldInset label={field.title}>\n <FieldRun fields={visible} values={obj} render={(f) => <KitField field={f} path={[...path, f.name]} parent={obj} />} />\n </FieldInset>,\n );\n }\n const help = resolveHelp(field) ?? \"\";\n if (mode === \"popover\")\n /* V2: Radix <PopoverTrigger asChild><div> — the whole row is the trigger (aria-expanded, aria-haspopup=\"dialog\");\n NavRow gets no onClick but still draws its button (\"Open <title>\") and chevron, whose click opens the popover. */\n return shell(\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger nativeButton={false} render={<div />}>\n <NavRow icon={field.icon} title={field.title} subtitle={sum || help} path={path} />\n </PopoverTrigger>\n <PopoverContent className=\"w-[340px] p-3\" align=\"start\">\n <FieldList fields={fields} basePath={path} memoryKey={`pop:${pathKey(path)}`} />\n </PopoverContent>\n </Popover>,\n \"row\",\n );\n if (mode === \"dialog\")\n return shell(\n <>\n <NavRow icon={field.icon} title={field.title} subtitle={sum || help} path={path} onClick={() => setOpen(true)} />\n <Modal\n open={open}\n onOpenChange={(o, d) => {\n // Escape steps back inside the dialog's own frames first (V2: onEscapeKeyDown + nav.back())\n if (!o && d.reason === \"escape-key\" && nav.current?.back()) return d.cancel();\n setOpen(o);\n }}\n >\n <ModalContent size=\"lg\">\n <ModalHeader title={field.title} description={field.description} icon={<KitIcon name={field.icon} fallback=\"folder\" />} />\n <ModalBody className=\"flex min-h-[320px] flex-col gap-5\">\n <NestedForm fields={fields} title={field.title} icon={field.icon} path={path} navRef={nav} />\n </ModalBody>\n <ModalFooter>\n <span className=\"mr-auto text-kit-xs text-kit-fg-3\">Changes save as you type</span>\n <Button variant=\"primary\" onClick={() => setOpen(false)}>\n Done\n </Button>\n </ModalFooter>\n </ModalContent>\n </Modal>\n </>,\n \"row\",\n );\n return shell(<NavRow icon={field.icon} title={field.title} subtitle={sum || help} path={path} onClick={() => form.navigate(path)} inert={!form.canNavigate} />, \"row\");\n}\n\n/**\n * A dialog gets its OWN navigation stack: lists inside it drill inside the dialog (breadcrumb, Esc, stepper), never the\n * panel behind. Writes go straight into the parent form at `path`.\n */\nexport function NestedForm({ fields, title, icon, path, navRef }: NestedFormProps) {\n const form = useForm()!;\n const env = useKitEnv();\n const key = pathKey(path);\n const schema = React.useMemo(() => ({ name: key || \"nested\", title, icon, kind: \"object\" as const, fields }), [key, title, icon, fields]);\n const raw = form.getAt(path);\n const pub = form.hasPublished ? form.publishedAt(path) : undefined;\n const presence = React.useMemo(() => {\n const out: Record<string, KitPeer[]> = {};\n for (const [k, v] of Object.entries(env.presence)) if (k.startsWith(`${key}.`)) out[k.slice(key.length + 1)] = v;\n return out;\n }, [env.presence, key]);\n return (\n <SchemaForm\n schema={schema}\n value={isObj(raw) ? raw : {}}\n onChange={(v) => form.setAt(path, v)}\n variant=\"document\"\n scroll={false}\n navRef={navRef}\n resolveSchema={form.resolveSchema}\n blockLibrary={form.blockLibrary}\n published={isObj(pub) ? pub : undefined}\n presence={presence}\n readOnly={env.readOnly}\n showErrors={form.showAllErrors}\n onOpenReference={env.onOpenReference}\n env={{ docId: `${env.docId}:${key}`, docTitle: env.docTitle, urlPrefix: env.urlPrefix, isPublished: env.isPublished, palette: env.palette, helpDisplay: env.helpDisplay }}\n />\n );\n}\n\n/* ── Read-only as plain text (D58 §0): no greyed input, just the value ── */\nconst PLAIN_TYPES = new Set<PrimitiveType>([\"string\", \"text\", \"richtext\", \"number\", \"slug\", \"url\", \"email\", \"date\", \"datetime\", \"select\", \"multiselect\", \"tags\", \"boolean\", \"rating\"]);\nexport function plainOf(field: FieldSchema, value: unknown): string {\n if (value == null || value === \"\") return \"\";\n const label = (v: unknown) => field.options?.find((o) => o.value === v)?.label ?? String(v);\n if (field.type === \"boolean\") return value ? \"On\" : \"Off\";\n if (field.type === \"select\") return label(value);\n // before the list arm: stored rich text may be a Portable Text block array\n if (field.type === \"richtext\") return plainText(value);\n if (Array.isArray(value)) return value.map(label).join(\", \");\n if (field.type === \"date\" || field.type === \"datetime\") {\n const d = new Date(String(value).replace(/\\[.*\\]$/, \"\"));\n return Number.isNaN(+d) ? String(value) : d.toLocaleString(\"en-US\", field.type === \"date\" ? { month: \"short\", day: \"numeric\", year: \"numeric\" } : { month: \"short\", day: \"numeric\", year: \"numeric\", hour: \"numeric\", minute: \"2-digit\" });\n }\n if (field.type === \"number\" && isObj(value)) return String((value as { value?: unknown }).value ?? \"\");\n return typeof value === \"object\" ? \"\" : String(value);\n}\nfunction PlainValue({ field, value, id }: { field: FieldSchema; value: unknown; id: string }) {\n const text = plainOf(field, value);\n return (\n <p id={id} tabIndex={0} data-slot=\"kit-plain\" className={cn(\"min-w-0 whitespace-pre-wrap break-words text-kit-sm leading-6 text-kit-fg outline-none\", (field.type === \"slug\" || field.type === \"url\") && \"font-kit-mono text-kit-xs leading-6\")}>\n {text || <span className=\"text-kit-fg-3\">Empty</span>}\n </p>\n );\n}\n\n/* ── Unknown type: the raw value, in the JSON control ── */\n/**\n * Every SchemaType has a kit control (kit-field.test checks CONTROLS against the type list in schema/types.ts). A field\n * whose type is none of them edits its raw stored value in the JSON control, tagged `data-kit-fallback=\"<type>\"`: the\n * value is shown and kept, and an edit is written only once it parses.\n */\nexport function FallbackControl(props: ControlProps) {\n return (\n <div data-kit-fallback={props.field.type} className=\"min-w-0\">\n <JsonControl {...props} />\n </div>\n );\n}\n\n/* ── Hand-off: the host's own control for a value the kit refuses ── */\n/**\n * A control that cannot carry a stored value unchanged (rich text holding formatting its editor would drop) hands that\n * value to the host's control for the type (KitServices.LegacyControl: the dashboard's FieldRenderer arm), bare inside\n * the kit FieldShell, which owns the label and the help; the control names its reason above it. The box carries\n * `data-kit-legacy=\"<type>\"`, so the parity harness counts it (mismatch class `legacy-control`). A host with no legacy\n * service, or a control that throws while rendering, says why in words; the form around it keeps working.\n */\nexport function LegacyFallback(props: ControlProps) {\n const { LegacyControl } = useKitServices();\n const { field, id } = props;\n return (\n <div data-kit-legacy={field.type} className=\"min-w-0\">\n {LegacyControl ? (\n // keyed by the schema's content: a schema edit remounts the control (KitField hands over a fresh field object on\n // every render, so identity would remount on every keystroke). A value change retries in place (componentDidUpdate).\n <LegacyBoundary key={JSON.stringify(field)} field={field} id={id} value={props.value}>\n <LegacyControl {...props} />\n </LegacyBoundary>\n ) : (\n <LegacyRefusal id={id}>This view has no control for {field.type} fields.</LegacyRefusal>\n )}\n </div>\n );\n}\n\n/**\n * An `<output>`: a labelable element, so the FieldShell label's `for` lands on it, and focusable, so a keyboard user\n * reaches the reason. The neutral focus ring shows under keyboard modality only.\n */\nfunction LegacyRefusal({ id, children }: { id: string; children: React.ReactNode }) {\n return (\n <output\n id={id}\n role=\"note\"\n tabIndex={0}\n data-slot=\"kit-legacy-refusal\"\n className=\"block rounded-kit-sm text-kit-xs text-kit-fg-3 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-kit-focus-ring focus-visible:[outline-style:solid] [html[data-input-modality=pointer]_&]:focus-visible:outline-0\"\n >\n {children}\n </output>\n );\n}\n\n/** Retries the control once its field or value changes (a schema edit, a save from elsewhere, an undo). */\nclass LegacyBoundary extends React.Component<{ field: FieldSchema; id: string; value: unknown; children: React.ReactNode }, { reason: string | null }> {\n state = { reason: null as string | null };\n static getDerivedStateFromError(error: unknown) {\n return { reason: error instanceof Error ? error.message : String(error) };\n }\n componentDidUpdate(prev: { field: FieldSchema; value: unknown }) {\n if (this.state.reason === null) return;\n // by content: KitField hands over a fresh field object (withDefaultHelp) on every render\n if (prev.value !== this.props.value || JSON.stringify(prev.field) !== JSON.stringify(this.props.field)) this.setState({ reason: null });\n }\n render() {\n if (this.state.reason === null) return this.props.children;\n return (\n <LegacyRefusal id={this.props.id}>\n The {this.props.field.title} control could not load: {this.state.reason}\n </LegacyRefusal>\n );\n }\n}\n"],"mappings":"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"}
|