@bettercms-ai/kit 0.1.1 → 2.0.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 +1 -0
- package/dist/controls/form-picker-register.js +19 -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 +1 -0
- package/dist/controls/slot-register.js +16 -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 +47 -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 +76 -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 @@
|
|
|
1
|
+
{"version":3,"file":"events.entries.js","names":[],"sources":["../../../src/library/entries/events.entries.ts"],"sourcesContent":["/**\n * KIT LIBRARY · Events & places — things that happen at a time, and places with an address and opening hours.\n *\n * Events and locations are COLLECTIONS (each has a page, a map pin, Event / LocalBusiness / Restaurant JSON-LD, and\n * shows up in lists and on other pages). Listing sections query them. Times use 24-hour \"HH:MM\" strings with a pattern\n * plus an explicit time zone, because the schema language has no time-of-day or time-zone type (see the gaps list).\n *\n * SEO is native: no meta fields. Event, Restaurant, LocalBusiness and Menu JSON-LD are derived from these fields.\n */\nimport type { FieldGroup, FieldSchema, Option } from \"../../schema/types\";\nimport type { KitEntry } from \"../types\";\n\nconst pic = (seed: string, w = 1600, h = 1000) => `https://picsum.photos/seed/${seed}/${w}/${h}`;\nconst image = (seed: string, alt: string, w = 1600, h = 1000) => ({ url: pic(seed, w, h), alt, name: `${seed}.jpg`, width: w * 2, height: h * 2 });\n\nconst CONTENT: FieldGroup = { name: \"content\", title: \"Content\", icon: \"file-text\", default: true };\nconst DESIGN: FieldGroup = { name: \"design\", title: \"Design\", icon: \"palette\" };\n\nconst TIME = \"^([01]\\\\d|2[0-3]):[0-5]\\\\d$\";\nconst TIME_MSG = \"Use 24-hour time, like 09:00 or 17:30.\";\n\nconst DAYS: Option[] = [\n { value: \"mon\", label: \"Monday\" },\n { value: \"tue\", label: \"Tuesday\" },\n { value: \"wed\", label: \"Wednesday\" },\n { value: \"thu\", label: \"Thursday\" },\n { value: \"fri\", label: \"Friday\" },\n { value: \"sat\", label: \"Saturday\" },\n { value: \"sun\", label: \"Sunday\" },\n];\n\nconst TIMEZONES: Option[] = [\n { value: \"America/Los_Angeles\", label: \"Pacific (Los Angeles)\" },\n { value: \"America/Denver\", label: \"Mountain (Denver)\" },\n { value: \"America/Chicago\", label: \"Central (Chicago)\" },\n { value: \"America/New_York\", label: \"Eastern (New York)\" },\n { value: \"Europe/London\", label: \"London\" },\n { value: \"Europe/Berlin\", label: \"Berlin\" },\n];\n\nconst collectionField = (id: string, label: string): FieldSchema => ({\n name: \"collection\",\n title: \"Collection\",\n type: \"select\",\n access: { edit: \"schema.manage\" },\n lockReason: \"The collection is wired to the card template in code.\",\n initialValue: id,\n options: [{ value: id, label }],\n description: \"\",\n});\n\n/** One day of opening hours: closed, or open from → to. `closed` must default to false so the times show. */\nconst dayHours = (extra: FieldSchema[] = []): FieldSchema => ({\n name: \"day\",\n title: \"Day\",\n type: \"object\",\n icon: \"clock\",\n preview: { title: \"day\", subtitle: \"opens\" },\n fields: [\n { name: \"day\", title: \"Day\", type: \"select\", options: DAYS, validation: { required: true }, description: \"\" },\n { name: \"isClosed\", title: \"Closed\", type: \"boolean\", initialValue: false, description: \"\" },\n { name: \"opens\", title: \"Opens\", type: \"string\", hidden: { field: \"isClosed\", equals: false }, validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"10:00\", description: \"\" },\n { name: \"closes\", title: \"Closes\", type: \"string\", hidden: { field: \"isClosed\", equals: false }, validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"18:00\", description: \"After midnight? Use the next morning's time, e.g. 01:00.\" },\n ...extra,\n ],\n});\n\n/* ─────────────────────────────────────────────────────────────────────────────────────────────── */\n\nconst eventsList: KitEntry = {\n id: \"events-list\",\n label: \"Events list\",\n category: \"Events & places\",\n brand: \"Caldera\",\n previewLayout: \"list\",\n tags: [\"dynamic-query\", \"conditional\", \"variants\", \"references\", \"a11y\"],\n proves: \"Upcoming / past split from one query · past events offer recordings · time-zone display rule · list, cards, calendar or map\",\n docTitle: \"Workshops & cookouts\",\n urlPrefix: \"caldera.bettercms.site/\",\n schema: {\n name: \"eventsList\",\n title: \"Events list\",\n kind: \"block\",\n icon: \"calendar-event\",\n category: \"Events & places\",\n description: \"Upcoming and past events with filters\",\n variants: [{ id: \"list\", name: \"Date list\" }, { id: \"cards\", name: \"Cards\" }, { id: \"calendar\", name: \"Month calendar\" }, { id: \"map\", name: \"Map + list\" }],\n groups: [CONTENT, { name: \"query\", title: \"Events\", icon: \"database\" }, DESIGN],\n fieldsets: [{ name: \"empty\", title: \"When nothing is scheduled\", collapsed: true }],\n preview: { title: \"heading\", subtitle: \"show\", icon: \"calendar-event\" },\n fields: [\n { name: \"heading\", title: \"Heading\", type: \"string\", group: \"content\", validation: { required: true, max: 48 }, localized: true },\n { name: \"intro\", title: \"Intro\", type: \"text\", rows: 2, group: \"content\", description: \"\" },\n {\n name: \"query\",\n title: \"Which events\",\n type: \"object\",\n group: \"query\",\n fields: [\n collectionField(\"col_events\", \"Events\"),\n { name: \"types\", title: \"Types\", type: \"multiselect\", options: [{ value: \"workshop\", label: \"Workshops\" }, { value: \"cookout\", label: \"Cookouts\" }, { value: \"popup\", label: \"Pop-ups\" }, { value: \"talk\", label: \"Talks\" }], description: \"Leave empty for every type.\" },\n { name: \"locations\", title: \"Locations\", type: \"array\", description: \"Leave empty for everywhere.\", of: [{ name: \"location\", title: \"Location\", type: \"reference\", reference: { to: [\"col_locations\"] } }] },\n { name: \"showOnlineEvents\", title: \"Include online events\", type: \"boolean\", initialValue: true, description: \"\" },\n ],\n },\n {\n name: \"show\",\n title: \"Show\",\n type: \"select\",\n group: \"query\",\n layout: \"radio\",\n initialValue: \"both\",\n options: [\n { value: \"upcoming\", label: \"Upcoming only\" },\n { value: \"both\", label: \"Upcoming, with a Past tab\" },\n { value: \"past\", label: \"Past only\", description: \"For an archive page\" },\n ],\n },\n { name: \"upcomingLimit\", title: \"Upcoming to show\", type: \"number\", group: \"query\", layout: \"slider\", hidden: { field: \"show\", equals: [\"upcoming\", \"both\"] }, numeric: { min: 3, max: 24, step: 1 }, initialValue: 12, description: \"\" },\n { name: \"pastLimit\", title: \"Past to show\", type: \"number\", group: \"query\", layout: \"slider\", hidden: { field: \"show\", equals: [\"both\", \"past\"] }, numeric: { min: 3, max: 48, step: 3 }, initialValue: 12 },\n { name: \"hasRecordings\", title: \"Offer recordings\", type: \"boolean\", group: \"query\", hidden: { field: \"show\", equals: [\"both\", \"past\"] }, initialValue: true, description: \"Past events with a recording get a Watch button.\" },\n { name: \"filters\", title: \"Filters\", type: \"multiselect\", group: \"content\", layout: \"checkbox\", initialValue: [\"type\", \"location\"], options: [{ value: \"type\", label: \"Type\" }, { value: \"location\", label: \"Location\" }, { value: \"month\", label: \"Month\" }, { value: \"format\", label: \"In person / online\" }], description: \"\" },\n {\n name: \"timeDisplay\",\n title: \"Show times in\",\n type: \"select\",\n group: \"content\",\n layout: \"radio\",\n initialValue: \"event\",\n options: [\n { value: \"event\", label: \"The event's local time\", description: \"Best for in-person events\" },\n { value: \"visitor\", label: \"The visitor's time zone\", description: \"Best for online events\" },\n ],\n description: \"\",\n },\n { name: \"emptyHeading\", title: \"Heading\", type: \"string\", group: \"content\", fieldset: \"empty\", initialValue: \"Nothing on the calendar yet\", validation: { max: 48 }, description: \"\" },\n { name: \"emptyButton\", title: \"Empty button\", type: \"button\", group: \"content\", fieldset: \"empty\" },\n { name: \"showDateBadge\", title: \"Show date badge\", type: \"boolean\", group: \"design\", initialValue: true },\n ],\n },\n value: {\n _variant: \"list\",\n heading: \"Workshops & cookouts\",\n intro: \"Learn to cook over fire with the people who make the pans. Small groups, all gear provided.\",\n query: { collection: \"col_events\", types: [], locations: [], showOnlineEvents: true },\n show: \"both\",\n upcomingLimit: 12,\n pastLimit: 12,\n hasRecordings: true,\n filters: [\"type\", \"location\"],\n timeDisplay: \"event\",\n emptyHeading: \"Nothing on the calendar yet\",\n emptyButton: { label: \"Get event emails\", href: \"/newsletter\", type: \"page\", title: \"Newsletter\", style: \"secondary\" },\n showDateBadge: true,\n },\n notes: {\n why:\n \"Events are entries (each has a page, a time, a place and Event JSON-LD), so the list is a query with types/locations filters. The upcoming/past split is computed from each event's end time, never a status someone has to flip — the section only decides what to show and how many. Recordings only make sense for past events, so that toggle appears only when past events are shown. Time display is an explicit rule because 'Thursday 6pm' is ambiguous the moment an event is online.\",\n sanity:\n \"Sanity: `event` documents with `startDate`/`endDate`; two GROQ queries split by `endDate > now()`. The time-zone rule is frontend code.\",\n htmlSignals: [\n \"Rows with a big day number + short month (12 NOV), title, time and city\",\n \"Tabs 'Upcoming' / 'Past', or 'Past events' heading further down\",\n \"'Register', 'Get tickets' or 'Watch recording' buttons per row\",\n \"Embedded Eventbrite/Luma/Meetup links or widgets\",\n ],\n mcp:\n \"Import each row as an Events entry (follow the link for details — see event-detail). Place one eventsList with show 'both' if a Past section exists. If rows link to Eventbrite/Luma pages, keep the ticket URL on each event as its button link, not on the list. Filters from visible dropdowns.\",\n pitfalls: [\n \"Past events lingering as 'upcoming' because a status field was never flipped — the split is computed.\",\n \"Times shown without a zone on online events.\",\n \"Deleting past events loses their recordings and links — keep them, the list hides them.\",\n \"Calendar variant with three events looks empty — use the list until there are ~8 a month.\",\n ],\n },\n};\n\n/* ─────────────────────────────────────────────────────────────────────────────────────────────── */\n\nconst eventDetail: KitEntry = {\n id: \"event-detail\",\n label: \"Event detail (conference)\",\n category: \"Events & places\",\n brand: \"Signal Summit\",\n previewLayout: \"table\",\n tags: [\"deep-nesting\", \"references\", \"seo-structured\", \"conditional\", \"commerce\", \"repeater\", \"validation\"],\n proves: \"Days → sessions → speakers (references) · attendance mode reveals venue or stream · ticket tiers with sale windows · status maps to Event JSON-LD\",\n docTitle: \"Signal Summit 2027\",\n urlPrefix: \"signalsummit.com/\",\n schema: {\n name: \"event\",\n title: \"Event\",\n kind: \"entry\",\n icon: \"calendar-star\",\n category: \"Events & places\",\n description: \"A conference or event with agenda, venue and tickets\",\n preview: { title: \"title\", subtitle: \"startDate\", media: \"coverImage\" },\n groups: [\n { name: \"overview\", title: \"Overview\", icon: \"file-text\", default: true },\n { name: \"agenda\", title: \"Agenda\", icon: \"list-details\" },\n { name: \"place\", title: \"Venue\", icon: \"map-pin\" },\n { name: \"tickets\", title: \"Tickets\", icon: \"ticket\" },\n ],\n fieldsets: [{ name: \"when\", title: \"When\" }],\n fields: [\n { name: \"title\", title: \"Title\", type: \"string\", group: \"overview\", validation: { required: true, max: 70 } },\n { name: \"slug\", title: \"Slug\", type: \"slug\", group: \"overview\", validation: { required: true } },\n { name: \"tagline\", title: \"Tagline\", type: \"string\", group: \"overview\", validation: { recommendedMax: 90 } },\n { name: \"startDate\", title: \"Starts\", type: \"datetime\", group: \"overview\", fieldset: \"when\", validation: { required: true } },\n { name: \"endDate\", title: \"Ends\", type: \"datetime\", group: \"overview\", fieldset: \"when\", validation: { required: true }, description: \"Must be after the start.\" },\n { name: \"timezone\", title: \"Time zone\", type: \"select\", group: \"overview\", fieldset: \"when\", options: TIMEZONES, validation: { required: true }, description: \"Agenda times and calendar files use this zone.\" },\n {\n name: \"status\",\n title: \"Status\",\n type: \"select\",\n group: \"overview\",\n initialValue: \"scheduled\",\n options: [\n { value: \"scheduled\", label: \"Scheduled\" },\n { value: \"postponed\", label: \"Postponed\", description: \"New date not known yet\" },\n { value: \"rescheduled\", label: \"Rescheduled\" },\n { value: \"moved-online\", label: \"Moved online\" },\n { value: \"cancelled\", label: \"Cancelled\" },\n ],\n description: \"Anything but Scheduled shows a banner and tells Google.\",\n },\n { name: \"statusNote\", title: \"Banner text\", type: \"text\", rows: 2, group: \"overview\", hidden: { field: \"status\", equals: [\"postponed\", \"rescheduled\", \"moved-online\", \"cancelled\"] }, validation: { required: true, max: 240 } },\n { name: \"coverImage\", title: \"Cover image\", type: \"image\", group: \"overview\", validation: { required: true } },\n { name: \"about\", title: \"About\", type: \"richtext\", group: \"overview\", validation: { required: true } },\n { name: \"featuredSpeakers\", title: \"Featured speakers\", type: \"array\", group: \"overview\", validation: { max: 8, unique: true }, of: [{ name: \"speaker\", title: \"Speaker\", type: \"reference\", reference: { to: [\"col_speakers\"] } }] },\n {\n name: \"days\",\n title: \"Days\",\n type: \"array\",\n group: \"agenda\",\n itemNoun: \"day\",\n validation: { max: 7 },\n of: [\n {\n name: \"agendaDay\",\n title: \"Day\",\n type: \"object\",\n icon: \"calendar\",\n preview: { title: \"label\", subtitle: \"date\", fallback: \"Untitled day\" },\n fields: [\n { name: \"date\", title: \"Date\", type: \"date\", validation: { required: true } },\n { name: \"label\", title: \"Label\", type: \"string\", validation: { max: 32 }, placeholder: \"Day 1 · Build\", description: \"\" },\n {\n name: \"sessions\",\n title: \"Sessions\",\n type: \"array\",\n itemNoun: \"session\",\n validation: { min: 1, max: 40 },\n of: [\n {\n name: \"session\",\n title: \"Session\",\n type: \"object\",\n icon: \"microphone\",\n preview: { title: \"title\", subtitle: \"start\", fallback: \"Untitled session\" },\n fields: [\n { name: \"start\", title: \"Starts\", type: \"string\", validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"09:30\", description: \"\" },\n { name: \"end\", title: \"Ends\", type: \"string\", validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"10:15\", description: \"\" },\n { name: \"title\", title: \"Title\", type: \"string\", validation: { required: true, max: 100 } },\n {\n name: \"format\",\n title: \"Format\",\n type: \"select\",\n validation: { required: true },\n initialValue: \"talk\",\n options: [\n { value: \"keynote\", label: \"Keynote\" },\n { value: \"talk\", label: \"Talk\" },\n { value: \"panel\", label: \"Panel\" },\n { value: \"workshop\", label: \"Workshop\" },\n { value: \"break\", label: \"Break\" },\n { value: \"meal\", label: \"Meal\" },\n ],\n description: \"Breaks and meals span every track and have no speakers.\",\n },\n { name: \"speakers\", title: \"Speakers\", type: \"array\", hidden: { field: \"format\", equals: [\"keynote\", \"talk\", \"panel\", \"workshop\"] }, validation: { min: 1, max: 6, unique: true }, of: [{ name: \"speaker\", title: \"Speaker\", type: \"reference\", reference: { to: [\"col_speakers\"] } }] },\n { name: \"track\", title: \"Track\", type: \"select\", hidden: { field: \"format\", equals: [\"talk\", \"panel\", \"workshop\"] }, options: [{ value: \"main\", label: \"Main stage\" }, { value: \"build\", label: \"Build\" }, { value: \"scale\", label: \"Scale\" }], description: \"\" },\n { name: \"room\", title: \"Room\", type: \"string\", validation: { max: 32 } },\n { name: \"abstract\", title: \"Abstract\", type: \"richtext\", hidden: { field: \"format\", equals: [\"keynote\", \"talk\", \"panel\", \"workshop\"] } },\n { name: \"level\", title: \"Level\", type: \"select\", hidden: { field: \"format\", equals: [\"talk\", \"workshop\"] }, options: [{ value: \"intro\", label: \"Introductory\" }, { value: \"intermediate\", label: \"Intermediate\" }, { value: \"advanced\", label: \"Advanced\" }], description: \"\" },\n { name: \"capacity\", title: \"Seats\", type: \"number\", hidden: { field: \"format\", equals: \"workshop\" }, numeric: { min: 1, step: 1 }, description: \"Caps workshop bookings.\" },\n { name: \"recording\", title: \"Recording\", type: \"video\" },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: \"attendance\",\n title: \"Attendance\",\n type: \"select\",\n group: \"place\",\n layout: \"segmented\",\n validation: { required: true },\n initialValue: \"in-person\",\n options: [{ value: \"in-person\", label: \"In person\" }, { value: \"online\", label: \"Online\" }, { value: \"hybrid\", label: \"Hybrid\" }],\n description: \"\",\n },\n { name: \"venue\", title: \"Venue\", type: \"reference\", group: \"place\", reference: { to: [\"col_venues\"] }, hidden: { field: \"attendance\", equals: [\"in-person\", \"hybrid\"] }, validation: { required: true }, description: \"Address, map pin and directions come from the venue.\" },\n { name: \"gettingThere\", title: \"Getting there\", type: \"richtext\", group: \"place\", hidden: { field: \"attendance\", equals: [\"in-person\", \"hybrid\"] } },\n { name: \"streamPlatform\", title: \"Stream on\", type: \"select\", group: \"place\", hidden: { field: \"attendance\", equals: [\"online\", \"hybrid\"] }, options: [{ value: \"youtube\", label: \"YouTube Live\" }, { value: \"zoom\", label: \"Zoom Webinar\" }, { value: \"hopin\", label: \"RingCentral Events\" }, { value: \"custom\", label: \"Our own player\" }], description: \"\" },\n { name: \"streamUrl\", title: \"Stream link\", type: \"url\", group: \"place\", hidden: { field: \"attendance\", equals: [\"online\", \"hybrid\"] }, description: \"Shown to ticket holders on the day.\" },\n { name: \"currency\", title: \"Currency\", type: \"select\", group: \"tickets\", initialValue: \"USD\", options: [{ value: \"USD\", label: \"USD\" }, { value: \"EUR\", label: \"EUR\" }, { value: \"GBP\", label: \"GBP\" }], description: \"\" },\n {\n name: \"tiers\",\n title: \"Ticket tiers\",\n type: \"array\",\n group: \"tickets\",\n itemNoun: \"tier\",\n validation: { max: 6 },\n of: [\n {\n name: \"tier\",\n title: \"Tier\",\n type: \"object\",\n icon: \"ticket\",\n preview: { title: \"name\", subtitle: \"price\", fallback: \"Untitled tier\" },\n fields: [\n { name: \"name\", title: \"Name\", type: \"string\", validation: { required: true, max: 32 } },\n { name: \"price\", title: \"Price\", type: \"number\", numeric: { min: 0, step: 1 }, validation: { required: true }, description: \"0 shows as Free.\" },\n { name: \"salesStart\", title: \"On sale from\", type: \"datetime\" },\n { name: \"salesEnd\", title: \"On sale until\", type: \"datetime\", description: \"Early-bird tiers switch off on their own at this time.\" },\n { name: \"availability\", title: \"Availability\", type: \"select\", layout: \"segmented\", initialValue: \"on-sale\", options: [{ value: \"on-sale\", label: \"On sale\" }, { value: \"sold-out\", label: \"Sold out\" }, { value: \"soon\", label: \"Coming soon\" }], description: \"\" },\n { name: \"includes\", title: \"Includes\", type: \"array\", itemNoun: \"perk\", validation: { max: 8 }, of: [{ name: \"perk\", title: \"Perk\", type: \"string\", validation: { max: 60 } }] },\n { name: \"button\", title: \"Button\", type: \"button\", hidden: { field: \"availability\", equals: \"on-sale\" }, validation: { required: true } },\n { name: \"isHighlighted\", title: \"Most popular\", type: \"boolean\" },\n ],\n },\n ],\n },\n ],\n },\n value: {\n title: \"Signal Summit 2027\",\n slug: \"2027\",\n tagline: \"Two days on building and scaling real-time products.\",\n startDate: \"2027-04-14T09:00:00-07:00[America/Los_Angeles]\",\n endDate: \"2027-04-15T18:00:00-07:00[America/Los_Angeles]\",\n timezone: \"America/Los_Angeles\",\n status: \"scheduled\",\n coverImage: image(\"signal-summit-stage\", \"A packed auditorium facing a stage lit in teal, a speaker mid-talk\"),\n about: \"<p>Signal Summit brings 1,200 engineers and product leaders to San Francisco for two days of talks, workshops and hallway conversations about real-time systems.</p>\",\n featuredSpeakers: [\"en_spk_kelsey-hightower\", \"en_spk_mira-tanaka\", \"en_spk_dev-patel\"],\n days: [\n {\n _key: \"d1\",\n date: \"2027-04-14\",\n label: \"Day 1 · Build\",\n sessions: [\n { _key: \"s1\", start: \"08:00\", end: \"09:00\", title: \"Registration & breakfast\", format: \"meal\", room: \"Lobby\" },\n { _key: \"s2\", start: \"09:00\", end: \"09:45\", title: \"The latency budget nobody wrote down\", format: \"keynote\", speakers: [\"en_spk_mira-tanaka\"], room: \"Main stage\", abstract: \"<p>Every real-time product has a latency budget. Most teams discover theirs in an incident review.</p>\" },\n { _key: \"s3\", start: \"10:00\", end: \"10:40\", title: \"CRDTs in production: three years in\", format: \"talk\", speakers: [\"en_spk_dev-patel\"], track: \"build\", room: \"Hall B\", level: \"advanced\", abstract: \"<p>What we got wrong about merge semantics, and what we'd do again.</p>\" },\n { _key: \"s4\", start: \"10:00\", end: \"12:00\", title: \"Hands-on: a presence layer in 90 minutes\", format: \"workshop\", speakers: [\"en_spk_ana-silva\", \"en_spk_tom-ruiz\"], track: \"build\", room: \"Workshop 1\", level: \"intermediate\", capacity: 60 },\n { _key: \"s5\", start: \"12:00\", end: \"13:00\", title: \"Lunch\", format: \"meal\", room: \"Terrace\" },\n ],\n },\n {\n _key: \"d2\",\n date: \"2027-04-15\",\n label: \"Day 2 · Scale\",\n sessions: [\n { _key: \"s6\", start: \"09:30\", end: \"10:15\", title: \"Panel: When to stop self-hosting\", format: \"panel\", speakers: [\"en_spk_kelsey-hightower\", \"en_spk_mira-tanaka\", \"en_spk_lena-fischer\"], track: \"main\", room: \"Main stage\" },\n ],\n },\n ],\n attendance: \"hybrid\",\n venue: \"en_venue_sf-masonic\",\n gettingThere: \"<p>Enter on California Street. BART to Montgomery, then the 1 bus. A hotel block at the Fairmont holds rates until March 15.</p>\",\n streamPlatform: \"youtube\",\n streamUrl: \"https://www.youtube.com/live/signalsummit2027\",\n currency: \"USD\",\n tiers: [\n { _key: \"t1\", name: \"Early bird\", price: 499, salesEnd: \"2027-01-31T23:59:00-08:00[America/Los_Angeles]\", availability: \"sold-out\", includes: [\"Both days\", \"Workshops (first come)\", \"Recordings\"] },\n { _key: \"t2\", name: \"General\", price: 749, salesStart: \"2027-02-01T00:00:00-08:00[America/Los_Angeles]\", availability: \"on-sale\", includes: [\"Both days\", \"Workshops (first come)\", \"Recordings\"], button: { label: \"Get tickets\", href: \"https://tickets.signalsummit.com/2027/general\", type: \"url\", style: \"primary\" }, isHighlighted: true },\n { _key: \"t3\", name: \"Online\", price: 0, availability: \"on-sale\", includes: [\"Live stream\", \"Recordings\"], button: { label: \"Register free\", href: \"/2027/register-online\", type: \"page\", style: \"secondary\" } },\n ],\n },\n notes: {\n why:\n \"An event is an entry: it has a page and emits Event JSON-LD natively (startDate/endDate with the zone, eventStatus from Status, eventAttendanceMode from Attendance, location from the venue reference or a VirtualLocation from the stream, offers from tiers with validFrom/price/availability, performer from speakers). The agenda is days → sessions → speaker references — three nested levels plus the speaker CMS items — and a session's FORMAT reveals speakers, abstract, track and level (breaks have none). Venues and speakers are collections because they recur across years. Ticket tiers are commerce data with sale windows that switch themselves off.\",\n sanity:\n \"Sanity: `event` { schedule: array<object day{date, sessions: array<object{start, end, title, speakers: array<reference→speaker>}>}>, venue: reference→venue, tickets: array<object> }. Time-of-day is also a string in Sanity (no time type).\",\n htmlSignals: [\n \"An agenda table/grid with time ranges (09:00–09:45), rooms/tracks and speaker avatars\",\n \"Day tabs (Day 1 / Day 2) or dated headings\",\n \"Ticket cards with prices, 'Early bird ends …', 'Sold out' badges\",\n \"A venue block with address and map; 'Watch online' or 'Livestream' mentions\",\n \"Event JSON-LD with eventStatus / eventAttendanceMode\",\n ],\n mcp:\n \"Speakers → Speakers entries (photo, name, title, company, bio from the speaker modal). Venue → Venues entry. Agenda: each day tab → day; each row → session (start/end parsed to 24-hour HH:MM in the event's zone, format from labels like 'Keynote'/'Break'/'Lunch', speakers matched by name). Ticket cards → tiers (price as a number; 'Sold out' → availability). If tickets are sold on Tito/Eventbrite, use those URLs as each tier's button link.\",\n pitfalls: [\n \"Agenda times in the visitor's zone instead of the event's — store HH:MM + the event zone.\",\n \"Speakers typed into session titles ('… with Mira Tanaka') instead of referenced.\",\n \"End time before start (cross-field) — not expressible in validation yet; the renderer must refuse it.\",\n \"Cancelled events deleted rather than marked — Google keeps showing the old date.\",\n \"Sold-out early-bird tiers left 'On sale' after salesEnd — use the window, not the badge.\",\n ],\n },\n};\n\n/* ─────────────────────────────────────────────────────────────────────────────────────────────── */\n\nconst webinar: KitEntry = {\n id: \"webinar-registration\",\n label: \"Webinar registration\",\n category: \"Events & places\",\n brand: \"Ledgerline\",\n previewLayout: \"form\",\n tags: [\"form\", \"conditional\", \"references\", \"embed\", \"validation\", \"variants\"],\n proves: \"One section across the lifecycle: upcoming (form) → live (stream) → on demand (recording, optionally gated) · CRM campaign locked\",\n docTitle: \"Webinar: Closing the books in 3 days\",\n urlPrefix: \"ledgerline.com/webinars/\",\n schema: {\n name: \"webinarRegistration\",\n title: \"Webinar registration\",\n kind: \"block\",\n icon: \"presentation\",\n category: \"Events & places\",\n description: \"Register before, watch live, or watch the recording\",\n variants: [{ id: \"split\", name: \"Details + form\" }, { id: \"centered\", name: \"Centered\" }],\n groups: [CONTENT, { name: \"stage\", title: \"Before · live · after\", icon: \"broadcast\" }, DESIGN],\n fieldsets: [{ name: \"confirm\", title: \"After registering\", collapsed: true }],\n preview: { title: \"heading\", subtitle: \"stage\", icon: \"presentation\" },\n fields: [\n { name: \"eyebrow\", title: \"Eyebrow\", type: \"string\", group: \"content\", initialValue: \"Live webinar\", validation: { max: 32 } },\n { name: \"heading\", title: \"Heading\", type: \"string\", group: \"content\", validation: { required: true, recommendedMax: 60 }, ai: true },\n { name: \"summary\", title: \"Summary\", type: \"text\", rows: 3, group: \"content\", validation: { recommendedMax: 280 } },\n { name: \"takeaways\", title: \"You'll learn\", type: \"array\", group: \"content\", itemNoun: \"point\", validation: { max: 6 }, of: [{ name: \"point\", title: \"Point\", type: \"string\", validation: { max: 100 } }] },\n { name: \"speakers\", title: \"Speakers\", type: \"array\", group: \"content\", validation: { min: 1, max: 4 }, of: [{ name: \"speaker\", title: \"Speaker\", type: \"reference\", reference: { to: [\"col_people\"] } }] },\n {\n name: \"stage\",\n title: \"Stage\",\n type: \"select\",\n group: \"stage\",\n layout: \"segmented\",\n initialValue: \"upcoming\",\n options: [{ value: \"upcoming\", label: \"Upcoming\" }, { value: \"live\", label: \"Live now\" }, { value: \"on-demand\", label: \"On demand\" }],\n },\n { name: \"startsAt\", title: \"Starts\", type: \"datetime\", group: \"stage\", hidden: { field: \"stage\", equals: [\"upcoming\", \"live\"] }, validation: { required: true }, description: \"Shown in each visitor's time zone.\" },\n { name: \"minutes\", title: \"Length\", type: \"number\", group: \"stage\", hidden: { field: \"stage\", equals: [\"upcoming\", \"live\"] }, numeric: { unit: \"min\", min: 15, max: 180, step: 15 }, initialValue: 45, description: \"\" },\n { name: \"form\", title: \"Registration form\", type: \"reference\", group: \"stage\", reference: { to: [\"form\"] }, hidden: { field: \"stage\", equals: \"upcoming\" }, validation: { required: true } },\n { name: \"showCalendarLinks\", title: \"Show add-to-calendar links\", type: \"boolean\", group: \"stage\", hidden: { field: \"stage\", equals: \"upcoming\" }, initialValue: true },\n { name: \"streamUrl\", title: \"Stream\", type: \"url\", group: \"stage\", hidden: { field: \"stage\", equals: \"live\" }, validation: { required: true }, description: \"A YouTube Live, Vimeo or Zoom webinar link.\" },\n { name: \"recording\", title: \"Recording\", type: \"video\", group: \"stage\", hidden: { field: \"stage\", equals: \"on-demand\" }, validation: { required: true } },\n { name: \"isGated\", title: \"Ask for details first\", type: \"boolean\", group: \"stage\", hidden: { field: \"stage\", equals: \"on-demand\" } },\n { name: \"slides\", title: \"Slides\", type: \"file\", group: \"stage\", hidden: { field: \"stage\", equals: \"on-demand\" } },\n { name: \"confirmHeading\", title: \"Heading\", type: \"string\", group: \"stage\", fieldset: \"confirm\", initialValue: \"You're in\", validation: { max: 40 }, description: \"\" },\n { name: \"confirmBody\", title: \"Text\", type: \"text\", rows: 2, group: \"stage\", fieldset: \"confirm\" },\n { name: \"campaign\", title: \"CRM campaign\", type: \"string\", group: \"stage\", access: { edit: \"schema.manage\" }, advanced: true, lockReason: \"Set by marketing ops; registrations sync to it.\", description: \"Registrations sync to this campaign.\" },\n ],\n },\n value: {\n _variant: \"split\",\n eyebrow: \"Live webinar\",\n heading: \"Closing the books in 3 days, without the overtime\",\n summary: \"Northbeam's controller walks through the exact checklist, bank rules and review cadence that cut their close from 11 days to 3.\",\n takeaways: [\"The 40-item close checklist, trimmed to 18\", \"Bank rules that match 92% of transactions\", \"How to run review without a war room\", \"Live Q&A\"],\n speakers: [\"en_p_dana-whitfield\", \"en_p_priya-raman\"],\n stage: \"upcoming\",\n startsAt: \"2026-10-22T13:00:00-04:00[America/New_York]\",\n minutes: 45,\n form: \"form_webinar-registration\",\n showCalendarLinks: true,\n isGated: false,\n confirmHeading: \"You're in\",\n confirmBody: \"We've emailed your join link. We'll send the recording to the same address, even if you can't make it live.\",\n campaign: \"701Hp00000ClOse3D\",\n },\n notes: {\n why:\n \"A webinar page lives through three states, and the same URL must work in each: before (time + registration form), during (embedded stream), after (recording, optionally behind the same form). One STAGE select reveals the fields each state needs, so nobody builds a second page for the replay. The form is a reference (submissions land in Forms and sync to the locked CRM campaign). Speakers are People references. Webinars with many sessions graduate to the Event entry (event-detail).\",\n sanity:\n \"Sanity: `webinar` document { status: string, startsAt: datetime, registrationForm: reference (or an external HubSpot form id), recording: mux.video } with `hidden: ({document}) => document.status !== 'onDemand'`.\",\n htmlSignals: [\n \"A date/time with time zone and a registration form beside a speaker list\",\n \"'Register now', 'Save my seat', 'Watch on demand', 'Watch the recording'\",\n \"HubSpot/Marketo/Pardot form embeds; Zoom/ON24/Livestorm links\",\n \"'What you'll learn' bullet list\",\n ],\n mcp:\n \"Stage from the page: a form + future date → upcoming; a video + 'on demand' → on-demand (isGated true if a form shows first). Rebuild the embedded HubSpot/Marketo form as a BetterCMS form with the same fields and reference it; keep the original campaign id for the developer. Bullets → takeaways. Speaker cards → People.\",\n pitfalls: [\n \"A second '/webinar-replay' page splits links and SEO — switch the stage instead.\",\n \"Times without a zone ('Thursday 10am').\",\n \"Leaving stage 'live' after the event — the page shows a dead stream.\",\n \"Gating on-demand recordings of public talks lowers reach; gate deliberately.\",\n ],\n },\n};\n\n/* ─────────────────────────────────────────────────────────────────────────────────────────────── */\n\nconst locationsDirectory: KitEntry = {\n id: \"locations-directory\",\n label: \"Locations directory\",\n category: \"Events & places\",\n brand: \"Caldera\",\n previewLayout: \"media\",\n tags: [\"dynamic-query\", \"conditional\", \"repeater\", \"deep-nesting\", \"validation\", \"a11y\", \"responsive-layout\"],\n proves: \"Map + list from a Locations query or written here · per-day hours array (isClosed reveals nothing) · services filter · near-me search\",\n docTitle: \"Stores & workshops\",\n urlPrefix: \"caldera.bettercms.site/\",\n schema: {\n name: \"locationsDirectory\",\n title: \"Locations directory\",\n kind: \"block\",\n icon: \"map-pins\",\n category: \"Events & places\",\n description: \"Every store or workshop on a map and in a list\",\n variants: [{ id: \"map-left\", name: \"Map beside list\" }, { id: \"map-top\", name: \"Map above list\" }, { id: \"list\", name: \"List only\" }],\n groups: [CONTENT, { name: \"map\", title: \"Map\", icon: \"map\" }, DESIGN],\n preview: { title: \"heading\", subtitle: \"source\", icon: \"map-pins\" },\n fields: [\n { name: \"heading\", title: \"Heading\", type: \"string\", group: \"content\", validation: { required: true, max: 48 }, localized: true },\n { name: \"intro\", title: \"Intro\", type: \"text\", rows: 2, group: \"content\", description: \"\" },\n {\n name: \"source\",\n title: \"Locations come from\",\n type: \"select\",\n group: \"content\",\n layout: \"segmented\",\n initialValue: \"collection\",\n options: [{ value: \"collection\", label: \"Locations collection\" }, { value: \"inline\", label: \"Written here\" }],\n },\n {\n name: \"query\",\n title: \"Which locations\",\n type: \"object\",\n group: \"content\",\n openMode: \"inline\",\n hidden: { field: \"source\", equals: \"collection\" },\n fields: [\n collectionField(\"col_locations\", \"Locations\"),\n { name: \"types\", title: \"Types\", type: \"multiselect\", options: [{ value: \"flagship\", label: \"Flagship stores\" }, { value: \"workshop\", label: \"Workshops\" }, { value: \"stockist\", label: \"Stockists\" }], description: \"Leave empty for every type.\" },\n { name: \"regions\", title: \"Regions\", type: \"multiselect\", options: [{ value: \"pnw\", label: \"Pacific Northwest\" }, { value: \"mountain\", label: \"Mountain\" }, { value: \"northeast\", label: \"Northeast\" }], description: \"\" },\n ],\n },\n {\n name: \"locations\",\n title: \"Locations\",\n type: \"array\",\n group: \"content\",\n itemNoun: \"location\",\n hidden: { field: \"source\", equals: \"inline\" },\n validation: { min: 1, max: 30 },\n of: [\n {\n name: \"location\",\n title: \"Location\",\n type: \"object\",\n icon: \"map-pin\",\n preview: { title: \"name\", subtitle: \"address\", media: \"image\", fallback: \"Untitled location\" },\n fields: [\n { name: \"name\", title: \"Name\", type: \"string\", validation: { required: true, max: 48 } },\n { name: \"type\", title: \"Type\", type: \"select\", options: [{ value: \"flagship\", label: \"Flagship store\" }, { value: \"workshop\", label: \"Workshop\" }, { value: \"stockist\", label: \"Stockist\" }], description: \"\" },\n { name: \"address\", title: \"Address\", type: \"text\", rows: 3, validation: { required: true }, description: \"As it should appear, one line per row.\" },\n { name: \"pin\", title: \"Map pin\", type: \"geopoint\", validation: { required: true }, description: \"Drop it on the entrance.\" },\n { name: \"phone\", title: \"Phone\", type: \"string\", validation: { pattern: \"^\\\\+?[0-9 ()-]{7,20}$\", patternMessage: \"Use digits, spaces and + ( ) -, like +1 (541) 555-0182.\" } },\n { name: \"hours\", title: \"Opening hours\", type: \"array\", itemNoun: \"day\", openMode: \"inline\", validation: { max: 7 }, description: \"Days left out show as closed.\", of: [dayHours()] },\n { name: \"services\", title: \"Services\", type: \"multiselect\", options: [{ value: \"workshops\", label: \"Workshops\" }, { value: \"reseasoning\", label: \"Re-seasoning\" }, { value: \"engraving\", label: \"Engraving\" }, { value: \"pickup\", label: \"Click & collect\" }, { value: \"repairs\", label: \"Warranty repairs\" }] },\n { name: \"image\", title: \"Image\", type: \"image\" },\n { name: \"page\", title: \"Location page\", type: \"link\" },\n ],\n },\n ],\n },\n { name: \"searchPlaceholder\", title: \"Search placeholder\", type: \"string\", group: \"content\", initialValue: \"City or ZIP code\", validation: { max: 32 }, description: \"\" },\n { name: \"showNearMe\", title: \"Show Near me button\", type: \"boolean\", group: \"content\", initialValue: true },\n { name: \"showServiceFilter\", title: \"Show services filter\", type: \"boolean\", group: \"content\", initialValue: true, description: \"\" },\n { name: \"center\", title: \"Starting view\", type: \"geopoint\", group: \"map\", description: \"Leave empty to fit all pins.\" },\n { name: \"zoom\", title: \"Starting zoom\", type: \"number\", group: \"map\", layout: \"slider\", numeric: { min: 3, max: 15, step: 1 }, initialValue: 5, description: \"3 shows a continent, 15 a few streets.\" },\n { name: \"useClustering\", title: \"Group nearby pins\", type: \"boolean\", group: \"map\", initialValue: true },\n { name: \"mobileView\", title: \"On phones show\", type: \"select\", group: \"design\", layout: \"segmented\", initialValue: \"list\", options: [{ value: \"list\", label: \"List first\" }, { value: \"map\", label: \"Map first\" }] },\n ],\n },\n value: {\n _variant: \"map-left\",\n heading: \"Stores & workshops\",\n intro: \"Pick up a pan, get yours re-seasoned, or book a fire-cooking class.\",\n source: \"inline\",\n query: { collection: \"col_locations\", types: [], regions: [] },\n locations: [\n {\n _key: \"l1\",\n name: \"Caldera Bend — Foundry Store\",\n type: \"flagship\",\n address: \"1180 SE Centennial Ct\\nBend, OR 97702\",\n pin: { label: \"Caldera Foundry Store, Bend\", lat: 44.0471, lng: -121.2831 },\n phone: \"+1 541 555 0142\",\n hours: [\n { _key: \"h1\", day: \"mon\", isClosed: true },\n { _key: \"h2\", day: \"tue\", isClosed: false, opens: \"10:00\", closes: \"18:00\" },\n { _key: \"h3\", day: \"wed\", isClosed: false, opens: \"10:00\", closes: \"18:00\" },\n { _key: \"h4\", day: \"thu\", isClosed: false, opens: \"10:00\", closes: \"19:00\" },\n { _key: \"h5\", day: \"fri\", isClosed: false, opens: \"10:00\", closes: \"19:00\" },\n { _key: \"h6\", day: \"sat\", isClosed: false, opens: \"09:00\", closes: \"17:00\" },\n { _key: \"h7\", day: \"sun\", isClosed: false, opens: \"11:00\", closes: \"16:00\" },\n ],\n services: [\"workshops\", \"reseasoning\", \"engraving\", \"repairs\"],\n image: image(\"caldera-bend-store\", \"The Caldera Foundry Store: skillets on a long timber wall, the foundry visible through glass\", 1200, 800),\n page: { type: \"page\", href: \"/stores/bend\", title: \"Bend store\" },\n },\n {\n _key: \"l2\",\n name: \"Caldera Portland\",\n type: \"flagship\",\n address: \"2235 NW Thurman St\\nPortland, OR 97210\",\n pin: { label: \"Caldera Portland\", lat: 45.5354, lng: -122.6982 },\n phone: \"+1 503 555 0198\",\n hours: [\n { _key: \"h8\", day: \"tue\", isClosed: false, opens: \"11:00\", closes: \"19:00\" },\n { _key: \"h9\", day: \"wed\", isClosed: false, opens: \"11:00\", closes: \"19:00\" },\n { _key: \"h10\", day: \"sat\", isClosed: false, opens: \"10:00\", closes: \"18:00\" },\n ],\n services: [\"reseasoning\", \"pickup\"],\n },\n {\n _key: \"l3\",\n name: \"Basecamp Outfitters (stockist)\",\n type: \"stockist\",\n address: \"1420 Pearl St\\nBoulder, CO 80302\",\n pin: { label: \"Basecamp Outfitters, Boulder\", lat: 40.0189, lng: -105.2747 },\n services: [\"pickup\"],\n },\n ],\n searchPlaceholder: \"City or ZIP code\",\n showNearMe: true,\n showServiceFilter: true,\n zoom: 5,\n useClustering: true,\n mobileView: \"list\",\n },\n notes: {\n why:\n \"Each location is a pin, an address, a phone, per-day hours and services. Small brands write them right in the section; once a location needs its own page (location-page) or appears in events and job posts, the source flips to the Locations collection with the same item shape. Hours are an array of day objects where `isClosed` reveals or hides open/close times — the item shape both the directory and LocalBusiness openingHoursSpecification need. Map behavior (view, zoom, clustering) is its own group; phone layout is design.\",\n sanity:\n \"Sanity: `location` documents { geo: geopoint, address, hours: array<object{day, closed, opens, closes}>, services: array<string> } rendered with a map lib; the directory is GROQ + client-side distance sort.\",\n htmlSignals: [\n \"A map (Google Maps / Mapbox / Leaflet container) beside a scrollable list of addresses\",\n \"'Find a store', 'Store locator', 'Stockists', 'Locations' headings; a ZIP/city search box\",\n \"Hours tables Mon–Sun, 'Closed' on some days, 'Open now' badges\",\n \"data-lat / data-lng attributes or a locations JSON blob in a <script>\",\n \"'Get directions' links to maps.google.com\",\n ],\n mcp:\n \"Look for the locations JSON the map is fed (script tag or XHR) — it usually has lat/lng, hours and services; prefer it over scraping. Each location → an item (or a Locations entry if it has its own page; then use source 'collection'). Parse hours into seven day objects: 'Mon–Fri 10–6' expands to five days with 10:00/18:00; 'Closed' → isClosed true. Pin = lat/lng from data attributes or geocode the address.\",\n pitfalls: [\n \"closed must default to false or the time fields stay hidden on new rows.\",\n \"Hours as one text line ('Tue–Sat 10–6') can't drive 'Open now' or JSON-LD.\",\n \"Overnight hours (18:00–02:00): closes earlier than opens means next day — say so in help, handle in the renderer.\",\n \"Pins at the geocoded centroid of a mall instead of the door.\",\n \"A map without a list fails keyboard and screen-reader users — the list is the primary UI.\",\n ],\n },\n};\n\n/* ─────────────────────────────────────────────────────────────────────────────────────────────── */\n\nconst DIETARY: Option[] = [\n { value: \"v\", label: \"Vegetarian\" },\n { value: \"vg\", label: \"Vegan\" },\n { value: \"gf\", label: \"Gluten-free\" },\n { value: \"df\", label: \"Dairy-free\" },\n];\nconst ALLERGENS: Option[] = [\n { value: \"gluten\", label: \"Gluten\" },\n { value: \"dairy\", label: \"Milk\" },\n { value: \"egg\", label: \"Egg\" },\n { value: \"nuts\", label: \"Tree nuts\" },\n { value: \"peanut\", label: \"Peanut\" },\n { value: \"fish\", label: \"Fish\" },\n { value: \"shellfish\", label: \"Shellfish\" },\n { value: \"sesame\", label: \"Sesame\" },\n { value: \"soy\", label: \"Soy\" },\n];\n\nconst restaurantMenu: KitEntry = {\n id: \"restaurant-menu\",\n label: \"Restaurant menu\",\n category: \"Events & places\",\n brand: \"Fiamma\",\n previewLayout: \"tabs\",\n tags: [\"deep-nesting\", \"repeater\", \"commerce\", \"conditional\", \"variants\", \"localized\", \"validation\", \"seo-structured\"],\n proves: \"Menus → sections → items → price variants (4 levels) · fixed, variant or market price · dietary and allergen tags · 86'd items gray out\",\n docTitle: \"Menu — Fiamma Mission\",\n urlPrefix: \"fiamma.co/\",\n schema: {\n name: \"restaurantMenu\",\n title: \"Restaurant menu\",\n kind: \"block\",\n icon: \"tools-kitchen-2\",\n category: \"Events & places\",\n description: \"Lunch, dinner and drinks with prices and dietary tags\",\n variants: [{ id: \"tabs\", name: \"Menus as tabs\" }, { id: \"stacked\", name: \"All menus stacked\" }, { id: \"two-column\", name: \"Two columns\" }],\n groups: [CONTENT, DESIGN],\n fieldsets: [{ name: \"small\", title: \"Small print\" }],\n preview: { title: \"heading\", icon: \"tools-kitchen-2\" },\n fields: [\n { name: \"heading\", title: \"Heading\", type: \"string\", group: \"content\", validation: { max: 48 }, localized: true },\n { name: \"locations\", title: \"Served at\", type: \"array\", group: \"content\", description: \"Leave empty if every restaurant serves this menu.\", of: [{ name: \"location\", title: \"Restaurant\", type: \"reference\", reference: { to: [\"col_locations\"] } }] },\n { name: \"currency\", title: \"Currency\", type: \"select\", group: \"content\", initialValue: \"USD\", options: [{ value: \"USD\", label: \"$ USD\" }, { value: \"EUR\", label: \"€ EUR\" }, { value: \"GBP\", label: \"£ GBP\" }], description: \"\" },\n {\n name: \"menus\",\n title: \"Menus\",\n type: \"array\",\n group: \"content\",\n itemNoun: \"menu\",\n validation: { min: 1, max: 6 },\n of: [\n {\n name: \"menu\",\n title: \"Menu\",\n type: \"object\",\n icon: \"book-2\",\n preview: { title: \"name\", subtitle: \"servedFrom\", fallback: \"Untitled menu\" },\n fields: [\n { name: \"name\", title: \"Name\", type: \"string\", validation: { required: true, max: 24 }, localized: true, placeholder: \"Dinner\" },\n { name: \"servedFrom\", title: \"From\", type: \"string\", validation: { pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"17:00\", description: \"\" },\n { name: \"servedUntil\", title: \"Until\", type: \"string\", validation: { pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"22:00\", description: \"\" },\n { name: \"days\", title: \"Days\", type: \"multiselect\", options: DAYS, description: \"Leave empty for every day we're open.\" },\n { name: \"note\", title: \"Note\", type: \"string\", validation: { max: 120 }, localized: true, placeholder: \"Kitchen closes 30 minutes before the restaurant\" },\n {\n name: \"sections\",\n title: \"Sections\",\n type: \"array\",\n itemNoun: \"section\",\n validation: { min: 1, max: 12 },\n of: [\n {\n name: \"menuSection\",\n title: \"Section\",\n type: \"object\",\n icon: \"list\",\n preview: { title: \"title\", subtitle: \"description\", fallback: \"Untitled section\" },\n fields: [\n { name: \"title\", title: \"Title\", type: \"string\", validation: { required: true, max: 32 }, localized: true, placeholder: \"Antipasti\" },\n { name: \"description\", title: \"Description\", type: \"string\", validation: { max: 120 }, localized: true },\n {\n name: \"items\",\n title: \"Dishes\",\n type: \"array\",\n itemNoun: \"dish\",\n validation: { min: 1, max: 30 },\n of: [\n {\n name: \"menuItem\",\n title: \"Dish\",\n type: \"object\",\n icon: \"salad\",\n preview: { title: \"name\", subtitle: \"description\", media: \"image\", fallback: \"Untitled dish\" },\n fields: [\n { name: \"name\", title: \"Name\", type: \"string\", validation: { required: true, max: 60 }, localized: true },\n { name: \"description\", title: \"Description\", type: \"text\", rows: 2, validation: { recommendedMax: 140 }, localized: true, description: \"Ingredients, lowercase, comma-separated.\" },\n { name: \"priceType\", title: \"Price\", type: \"select\", layout: \"segmented\", initialValue: \"fixed\", options: [{ value: \"fixed\", label: \"One price\" }, { value: \"variants\", label: \"Sizes\" }, { value: \"market\", label: \"Market price\" }], description: \"\" },\n { name: \"price\", title: \"Price\", type: \"number\", hidden: { field: \"priceType\", equals: \"fixed\" }, numeric: { min: 0, step: 0.5 }, validation: { required: true } },\n {\n name: \"variants\",\n title: \"Sizes\",\n type: \"array\",\n itemNoun: \"size\",\n openMode: \"inline\",\n hidden: { field: \"priceType\", equals: \"variants\" },\n validation: { min: 2, max: 4 },\n of: [\n {\n name: \"variant\",\n title: \"Size\",\n type: \"object\",\n icon: \"ruler\",\n preview: { title: \"label\", subtitle: \"price\" },\n fields: [\n { name: \"label\", title: \"Label\", type: \"string\", validation: { required: true, max: 16 }, placeholder: \"Glass\" },\n { name: \"price\", title: \"Price\", type: \"number\", numeric: { min: 0, step: 0.5 }, validation: { required: true } },\n ],\n },\n ],\n },\n { name: \"dietary\", title: \"Dietary\", type: \"multiselect\", options: DIETARY, description: \"Shown as letters after the name, with a key at the bottom.\" },\n { name: \"allergens\", title: \"Contains\", type: \"multiselect\", options: ALLERGENS },\n { name: \"spice\", title: \"Heat\", type: \"number\", layout: \"slider\", numeric: { min: 0, max: 3, step: 1 }, initialValue: 0, description: \"0 is none. Shown as chilli icons.\" },\n { name: \"image\", title: \"Image\", type: \"image\" },\n { name: \"isSignature\", title: \"House favorite\", type: \"boolean\" },\n { name: \"isAvailable\", title: \"Available today\", type: \"boolean\", initialValue: true, description: \"Off shows it grayed out as \\\"Sold out\\\".\" },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n { name: \"showLegend\", title: \"Show dietary key\", type: \"boolean\", group: \"content\", fieldset: \"small\", initialValue: true },\n { name: \"footnote\", title: \"Footnote\", type: \"text\", rows: 2, group: \"content\", fieldset: \"small\", localized: true },\n { name: \"showPhotos\", title: \"Dish photos\", type: \"boolean\", group: \"design\" },\n { name: \"pdf\", title: \"Printable PDF\", type: \"file\", group: \"design\", description: \"Adds a \\\"Download menu\\\" link.\" },\n ],\n },\n value: {\n _variant: \"tabs\",\n heading: \"Menu\",\n locations: [\"en_loc_fiamma-mission\"],\n currency: \"USD\",\n menus: [\n {\n _key: \"m1\",\n name: \"Dinner\",\n servedFrom: \"17:00\",\n servedUntil: \"22:00\",\n days: [],\n note: \"Kitchen closes 30 minutes before the restaurant.\",\n sections: [\n {\n _key: \"s1\",\n title: \"Antipasti\",\n items: [\n { _key: \"i1\", name: \"Burrata\", description: \"charred stone fruit, basil, aged balsamic, wood-fired bread\", priceType: \"fixed\", price: 19, dietary: [\"v\"], allergens: [\"dairy\", \"gluten\"], spice: 0, isSignature: true, isAvailable: true, image: image(\"fiamma-burrata\", \"Burrata torn open over grilled peaches on a speckled plate\", 1200, 900) },\n { _key: \"i2\", name: \"Calamari alla griglia\", description: \"Calabrian chilli, lemon, parsley\", priceType: \"fixed\", price: 18, dietary: [\"gf\", \"df\"], allergens: [\"shellfish\"], spice: 2, isAvailable: true },\n ],\n },\n {\n _key: \"s2\",\n title: \"Pizze\",\n description: \"48-hour dough, baked at 480°C in our wood oven.\",\n items: [\n { _key: \"i3\", name: \"Margherita\", description: \"San Marzano, fior di latte, basil, olive oil\", priceType: \"fixed\", price: 17, dietary: [\"v\"], allergens: [\"gluten\", \"dairy\"], spice: 0, isAvailable: true },\n { _key: \"i4\", name: \"Diavola\", description: \"spicy salami, fior di latte, hot honey\", priceType: \"fixed\", price: 21, dietary: [], allergens: [\"gluten\", \"dairy\"], spice: 2, isAvailable: false },\n ],\n },\n {\n _key: \"s3\",\n title: \"Pesce\",\n items: [{ _key: \"i5\", name: \"Whole branzino\", description: \"salsa verde, roasted fennel\", priceType: \"market\", dietary: [\"gf\", \"df\"], allergens: [\"fish\"], spice: 0, isAvailable: true }],\n },\n ],\n },\n {\n _key: \"m2\",\n name: \"Wine\",\n servedFrom: \"12:00\",\n servedUntil: \"23:00\",\n sections: [\n {\n _key: \"s4\",\n title: \"Rosso\",\n items: [\n { _key: \"i6\", name: \"Nebbiolo, G.D. Vajra 2022\", description: \"Piedmont · rose petal, red cherry, fine tannin\", priceType: \"variants\", variants: [{ _key: \"v1\", label: \"Glass\", price: 17 }, { _key: \"v2\", label: \"Bottle\", price: 68 }], dietary: [\"vg\"], allergens: [], spice: 0, isAvailable: true },\n ],\n },\n ],\n },\n ],\n showLegend: true,\n footnote: \"Please tell your server about any allergies. A 20% service charge is added to parties of 6 or more and goes entirely to our staff.\",\n showPhotos: false,\n pdf: { url: \"https://fiamma.co/media/menus/fiamma-mission-dinner-oct-2026.pdf\", name: \"fiamma-mission-dinner-oct-2026.pdf\", size: 412000 },\n },\n notes: {\n why:\n \"A menu is the canonical deep repeater: menus → sections → dishes → size variants. Price is a MODE (one price, sizes, or market price) so 'MP' never sits in a number field and sizes never get crammed into a description. Dietary and allergen values are fixed option lists (legend + filter + Menu JSON-LD suitableForDiet). 'Available today' grays a dish out instead of deleting it, so a sold-out special comes back tomorrow with one tap. It stays a section shared to restaurants by reference; a group with many locations and shared dishes would promote dishes to a collection.\",\n sanity:\n \"Sanity: `menu` document { sections: array<object{title, items: array<object{name, description, price, variants: array<object{label, price}>, dietary: array<string>}>}> } — usually exactly this shape, with dietary as a string list.\",\n htmlSignals: [\n \"Section headings (Antipasti, Mains, Wine) with dish name + price on the same line, dotted leaders\",\n \"Small letter codes after names (V, VG, GF) and a key at the bottom\",\n \"Two prices per row with labels ('Glass / Bottle', 'Small / Large')\",\n \"'MP' or 'Market price' instead of a number\",\n \"Tabs or anchors for Lunch / Dinner / Drinks; a 'Download PDF menu' link\",\n ],\n mcp:\n \"Tabs/anchors → menus (copy service hours if shown). Headings → sections. Each row → dish: name, description (the smaller line), price (strip currency symbols; 'MP' → priceType market; two labeled prices → variants), dietary from the letter codes via the page's key, spice from chilli icons. A PDF-only menu: extract its text the same way and attach the PDF. Never keep prices inside descriptions.\",\n pitfalls: [\n \"'$18 / $32' in one field — sizes must be variants.\",\n \"Allergen data that disagrees with the kitchen sheet is a safety issue — owners must sign off.\",\n \"Deleting sold-out dishes loses them; use available.\",\n \"Prices typed with symbols ('$18') break sorting and JSON-LD.\",\n \"Four nesting levels: keep sizes inline (openMode inline) so the deepest level isn't another drill.\",\n ],\n },\n};\n\n/* ─────────────────────────────────────────────────────────────────────────────────────────────── */\n\nconst locationPage: KitEntry = {\n id: \"location-page\",\n label: \"Single location page\",\n category: \"Events & places\",\n brand: \"Fiamma\",\n previewLayout: \"split\",\n tags: [\"seo-structured\", \"repeater\", \"conditional\", \"references\", \"media-heavy\", \"a11y\", \"validation\", \"deep-nesting\"],\n proves: \"Address object + pin · per-day hours with split shifts · holiday overrides · booking provider reveals its own fields · Restaurant JSON-LD\",\n docTitle: \"Fiamma Mission\",\n urlPrefix: \"fiamma.co/locations/\",\n schema: {\n name: \"restaurantLocation\",\n title: \"Restaurant location\",\n kind: \"entry\",\n icon: \"building-store\",\n category: \"Events & places\",\n description: \"One restaurant: where, when, how to book\",\n preview: { title: \"name\", subtitle: \"city\", media: \"coverImage\" },\n groups: [\n { name: \"overview\", title: \"Overview\", icon: \"file-text\", default: true },\n { name: \"hours\", title: \"Hours\", icon: \"clock\" },\n { name: \"booking\", title: \"Booking\", icon: \"calendar-plus\" },\n { name: \"media\", title: \"Media\", icon: \"photo\" },\n ],\n fieldsets: [\n { name: \"address\", title: \"Address\" },\n { name: \"contact\", title: \"Contact\" },\n { name: \"private\", title: \"Private dining\", collapsed: true },\n ],\n fields: [\n { name: \"name\", title: \"Name\", type: \"string\", group: \"overview\", validation: { required: true, max: 48 } },\n { name: \"slug\", title: \"Slug\", type: \"slug\", group: \"overview\", validation: { required: true } },\n { name: \"tagline\", title: \"Tagline\", type: \"string\", group: \"overview\", validation: { recommendedMax: 90 }, localized: true },\n { name: \"about\", title: \"About\", type: \"richtext\", group: \"overview\", localized: true },\n { name: \"street\", title: \"Street\", type: \"string\", group: \"overview\", fieldset: \"address\", validation: { required: true } },\n { name: \"city\", title: \"City\", type: \"string\", group: \"overview\", fieldset: \"address\", validation: { required: true } },\n { name: \"region\", title: \"State / region\", type: \"string\", group: \"overview\", fieldset: \"address\" },\n { name: \"postalCode\", title: \"Postal code\", type: \"string\", group: \"overview\", fieldset: \"address\", validation: { required: true } },\n { name: \"country\", title: \"Country\", type: \"select\", group: \"overview\", fieldset: \"address\", initialValue: \"US\", options: [{ value: \"US\", label: \"United States\" }, { value: \"CA\", label: \"Canada\" }, { value: \"GB\", label: \"United Kingdom\" }, { value: \"IT\", label: \"Italy\" }], description: \"\" },\n { name: \"pin\", title: \"Map pin\", type: \"geopoint\", group: \"overview\", validation: { required: true }, description: \"Drop it on the entrance.\" },\n { name: \"phone\", title: \"Phone\", type: \"string\", group: \"overview\", fieldset: \"contact\", validation: { required: true, pattern: \"^\\\\+?[0-9 ()-]{7,20}$\", patternMessage: \"Use digits, spaces and + ( ) -, like +1 (541) 555-0182.\" } },\n { name: \"email\", title: \"Email\", type: \"email\", group: \"overview\", fieldset: \"contact\" },\n { name: \"services\", title: \"Services\", type: \"multiselect\", group: \"overview\", options: [{ value: \"dine-in\", label: \"Dine-in\" }, { value: \"takeout\", label: \"Takeout\" }, { value: \"delivery\", label: \"Delivery\" }, { value: \"outdoor\", label: \"Outdoor seating\" }, { value: \"bar\", label: \"Bar seating\" }, { value: \"private\", label: \"Private dining\" }], description: \"\" },\n { name: \"priceRange\", title: \"Price range\", type: \"select\", group: \"overview\", layout: \"segmented\", options: [{ value: \"$\", label: \"$\" }, { value: \"$$\", label: \"$$\" }, { value: \"$$$\", label: \"$$$\" }, { value: \"$$$$\", label: \"$$$$\" }], description: \"Per person with a drink, roughly. Shown in search results.\" },\n { name: \"menus\", title: \"Menus\", type: \"array\", group: \"overview\", validation: { max: 6 }, of: [{ name: \"menu\", title: \"Menu\", type: \"reference\", reference: { to: [\"col_menus\"] } }] },\n { name: \"chef\", title: \"Head chef\", type: \"reference\", group: \"overview\", reference: { to: [\"col_people\"] } },\n { name: \"accessibility\", title: \"Accessibility\", type: \"text\", rows: 2, group: \"overview\" },\n { name: \"parking\", title: \"Getting here\", type: \"text\", rows: 2, group: \"overview\" },\n {\n name: \"hours\",\n title: \"Weekly hours\",\n type: \"array\",\n group: \"hours\",\n itemNoun: \"day\",\n validation: { min: 1, max: 7 },\n description: \"One row per day. Lunch and dinner are two shifts on the same day.\",\n of: [\n {\n name: \"day\",\n title: \"Day\",\n type: \"object\",\n icon: \"clock\",\n preview: { title: \"day\", fallback: \"Untitled day\" },\n fields: [\n { name: \"day\", title: \"Day\", type: \"select\", options: DAYS, validation: { required: true, unique: true }, description: \"\" },\n { name: \"isClosed\", title: \"Closed\", type: \"boolean\", initialValue: false },\n {\n name: \"shifts\",\n title: \"Open\",\n type: \"array\",\n itemNoun: \"shift\",\n openMode: \"inline\",\n hidden: { field: \"isClosed\", equals: false },\n validation: { min: 1, max: 3 },\n of: [\n {\n name: \"shift\",\n title: \"Shift\",\n type: \"object\",\n icon: \"clock-hour-4\",\n preview: { title: \"opens\", subtitle: \"closes\" },\n fields: [\n { name: \"label\", title: \"Label\", type: \"string\", validation: { max: 16 }, placeholder: \"Dinner\", description: \"\" },\n { name: \"opens\", title: \"Opens\", type: \"string\", validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"17:00\", description: \"\" },\n { name: \"closes\", title: \"Closes\", type: \"string\", validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, placeholder: \"22:00\", description: \"\" },\n ],\n },\n ],\n },\n ],\n },\n ],\n },\n {\n name: \"specialHours\",\n title: \"Holidays & special hours\",\n type: \"array\",\n group: \"hours\",\n itemNoun: \"date\",\n validation: { max: 30 },\n description: \"Overrides the weekly hours on these dates.\",\n of: [\n {\n name: \"special\",\n title: \"Date\",\n type: \"object\",\n icon: \"calendar-exclamation\",\n preview: { title: \"label\", subtitle: \"date\" },\n fields: [\n { name: \"date\", title: \"Date\", type: \"date\", validation: { required: true } },\n { name: \"label\", title: \"Label\", type: \"string\", validation: { max: 32 }, placeholder: \"Thanksgiving\" },\n { name: \"isClosed\", title: \"Closed all day\", type: \"boolean\", initialValue: false },\n { name: \"opens\", title: \"Opens\", type: \"string\", hidden: { field: \"isClosed\", equals: false }, validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, description: \"\" },\n { name: \"closes\", title: \"Closes\", type: \"string\", hidden: { field: \"isClosed\", equals: false }, validation: { required: true, pattern: TIME, patternMessage: TIME_MSG }, description: \"\" },\n ],\n },\n ],\n },\n {\n name: \"bookingProvider\",\n title: \"Reservations\",\n type: \"select\",\n group: \"booking\",\n layout: \"radio\",\n initialValue: \"resy\",\n options: [\n { value: \"resy\", label: \"Resy\" },\n { value: \"opentable\", label: \"OpenTable\" },\n { value: \"tock\", label: \"Tock\" },\n { value: \"phone\", label: \"By phone\" },\n { value: \"none\", label: \"Walk-ins only\" },\n ],\n description: \"\",\n },\n { name: \"venueId\", title: \"Venue ID\", type: \"string\", group: \"booking\", hidden: { field: \"bookingProvider\", equals: [\"resy\", \"opentable\", \"tock\"] }, validation: { required: true }, description: \"From the provider's widget code.\" },\n { name: \"bookButton\", title: \"Book button\", type: \"button\", group: \"booking\", hidden: { field: \"bookingProvider\", equals: [\"resy\", \"opentable\", \"tock\", \"phone\"] }, description: \"Phone bookings use a tel: link.\" },\n { name: \"walkInNote\", title: \"Walk-in note\", type: \"string\", group: \"booking\", validation: { max: 100 }, placeholder: \"The bar is always kept for walk-ins\" },\n { name: \"hasPrivateDining\", title: \"Offers private dining\", type: \"boolean\", group: \"booking\", fieldset: \"private\" },\n { name: \"privateCapacity\", title: \"Seats up to\", type: \"number\", group: \"booking\", fieldset: \"private\", hidden: { field: \"hasPrivateDining\", equals: true }, numeric: { unit: \"guests\", min: 2, step: 1 }, validation: { required: true } },\n { name: \"privateForm\", title: \"Enquiry form\", type: \"reference\", group: \"booking\", fieldset: \"private\", hidden: { field: \"hasPrivateDining\", equals: true }, reference: { to: [\"form\"] }, validation: { required: true } },\n { name: \"privateBrochure\", title: \"Brochure\", type: \"file\", group: \"booking\", fieldset: \"private\", hidden: { field: \"hasPrivateDining\", equals: true } },\n { name: \"coverImage\", title: \"Cover image\", type: \"image\", group: \"media\", validation: { required: true } },\n { name: \"gallery\", title: \"Gallery\", type: \"array\", group: \"media\", arrayLayout: \"grid\", validation: { max: 12 }, of: [{ name: \"photo\", title: \"Photo\", type: \"image\" }] },\n ],\n },\n value: {\n name: \"Fiamma Mission\",\n slug: \"mission\",\n tagline: \"Wood-fired pizza and Ligurian seafood on Valencia Street.\",\n about: \"<p>Our first restaurant, opened in 2016 around a 4-ton oven built by hand in Naples. Chef Giulia Ferraro cooks almost everything over oak.</p>\",\n street: \"742 Valencia St\",\n city: \"San Francisco\",\n region: \"CA\",\n postalCode: \"94110\",\n country: \"US\",\n pin: { label: \"Fiamma Mission, 742 Valencia St\", lat: 37.7609, lng: -122.4216 },\n phone: \"+1 415 555 0173\",\n email: \"mission@fiamma.co\",\n services: [\"dine-in\", \"takeout\", \"bar\", \"private\"],\n priceRange: \"$$$\",\n menus: [\"en_menu_dinner\", \"en_menu_wine\"],\n chef: \"en_p_giulia-ferraro\",\n accessibility: \"Step-free entrance on Valencia St, accessible restroom at the back of the dining room, high chairs on request.\",\n parking: \"Street parking is tight after 6pm. 16th St BART is a 6-minute walk; bike racks out front.\",\n hours: [\n { _key: \"h1\", day: \"mon\", isClosed: true },\n { _key: \"h2\", day: \"tue\", isClosed: false, shifts: [{ _key: \"a\", label: \"Dinner\", opens: \"17:00\", closes: \"22:00\" }] },\n { _key: \"h3\", day: \"wed\", isClosed: false, shifts: [{ _key: \"a\", label: \"Dinner\", opens: \"17:00\", closes: \"22:00\" }] },\n { _key: \"h4\", day: \"thu\", isClosed: false, shifts: [{ _key: \"a\", label: \"Dinner\", opens: \"17:00\", closes: \"22:00\" }] },\n { _key: \"h5\", day: \"fri\", isClosed: false, shifts: [{ _key: \"a\", label: \"Lunch\", opens: \"11:30\", closes: \"14:30\" }, { _key: \"b\", label: \"Dinner\", opens: \"17:00\", closes: \"23:00\" }] },\n { _key: \"h6\", day: \"sat\", isClosed: false, shifts: [{ _key: \"a\", label: \"Lunch\", opens: \"11:30\", closes: \"14:30\" }, { _key: \"b\", label: \"Dinner\", opens: \"17:00\", closes: \"23:00\" }] },\n { _key: \"h7\", day: \"sun\", isClosed: false, shifts: [{ _key: \"a\", label: \"All day\", opens: \"12:00\", closes: \"21:00\" }] },\n ],\n specialHours: [\n { _key: \"sp1\", date: \"2026-11-26\", label: \"Thanksgiving\", isClosed: true },\n { _key: \"sp2\", date: \"2026-12-31\", label: \"New Year's Eve\", isClosed: false, opens: \"17:00\", closes: \"01:00\" },\n ],\n bookingProvider: \"resy\",\n venueId: \"58231\",\n walkInNote: \"The bar and the counter by the oven are always kept for walk-ins.\",\n hasPrivateDining: true,\n privateCapacity: 24,\n privateForm: \"form_private-dining-mission\",\n privateBrochure: { url: \"https://fiamma.co/media/private-dining-mission.pdf\", name: \"private-dining-mission.pdf\", size: 2400000 },\n coverImage: image(\"fiamma-mission-oven\", \"The dining room at Fiamma Mission, a tiled wood oven glowing at the back\"),\n gallery: [pic(\"fiamma-mission-bar\", 900, 900), pic(\"fiamma-mission-pizza\", 900, 900), pic(\"fiamma-mission-terrace\", 900, 900)],\n },\n notes: {\n why:\n \"Each restaurant is an entry because it has its own page and emits Restaurant JSON-LD natively: address (PostalAddress from the address fields), geo, telephone, priceRange, servesCuisine, hasMenu (menu references), acceptsReservations (from the provider), and openingHoursSpecification from the hours array — with special dates mapped to specialOpeningHoursSpecification. Hours are days → shifts, so lunch + dinner and 'closed Mondays' are both data, and a day's shifts appear only when it isn't closed. The booking provider reveals exactly the field it needs (a venue ID for Resy/OpenTable/Tock, a tel: button for phone). Address parts are separate fields because search engines and maps need them separately.\",\n sanity:\n \"Sanity: `location` { address: object, geo: geopoint, openingHours: array<object{day, closed, slots: array<object{open, close}>}>, specialHours: array<object>, reservation: object{provider, id} }. Same shape.\",\n htmlSignals: [\n \"An address block, phone link (tel:), and a map or 'Get directions' link\",\n \"An hours table with day names and one or two time ranges per day; 'Closed' on some days\",\n \"A Resy/OpenTable/Tock widget or button (resy.com, opentable.com, exploretock.com URLs)\",\n \"'Holiday hours' notices; 'Private dining' section with a form or PDF\",\n \"LocalBusiness / Restaurant JSON-LD in the source\",\n ],\n mcp:\n \"Prefer the page's Restaurant JSON-LD for address, geo, phone, priceRange and openingHoursSpecification. Expand compressed hours ('Tue–Thu 5–10pm' → three days, one shift each; 'Fri–Sat 11:30–2:30, 5–11' → two shifts). Holiday notices → specialHours. Booking widget host → bookingProvider and venue ID from its URL/params. Menus → Menus entries/sections (see restaurant-menu) referenced here. Photos → gallery with alt.\",\n pitfalls: [\n \"Overnight closes (01:00) read as earlier than opens — mean next day; the renderer must handle it.\",\n \"Hours duplicated on Google Business Profile drift — this entry should be the source you sync from.\",\n \"Special hours never cleaned up — past dates hide themselves but stay as history.\",\n \"A booking widget without a phone fallback excludes people who can't use it.\",\n \"closed defaults to false or new days hide their shifts.\",\n ],\n },\n};\n\nexport const ENTRIES: KitEntry[] = [eventsList, eventDetail, webinar, locationsDirectory, restaurantMenu, locationPage];\n"],"mappings":"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"}
|