@bettercms-ai/kit 0.1.1 → 1.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/_virtual/_rolldown/runtime.js +13 -0
- package/adapters/icons.d.ts +15 -0
- package/adapters/icons.js +27 -0
- package/adapters/icons.js.map +1 -0
- package/adapters/lossy.d.ts +267 -0
- package/adapters/lossy.js +233 -0
- package/adapters/lossy.js.map +1 -0
- package/adapters/prod-types.d.ts +468 -0
- package/adapters/prod-types.js +646 -0
- package/adapters/prod-types.js.map +1 -0
- package/adapters/schema.d.ts +115 -0
- package/adapters/schema.js +2203 -0
- package/adapters/schema.js.map +1 -0
- package/adapters/values.d.ts +200 -0
- package/adapters/values.js +553 -0
- package/adapters/values.js.map +1 -0
- package/brand/logo.d.ts +17 -0
- package/brand/logo.js +9 -0
- package/brand/logo.js.map +1 -0
- package/context.d.ts +269 -0
- package/context.js +214 -0
- package/context.js.map +1 -0
- package/controls/button.d.ts +58 -0
- package/controls/button.js +507 -0
- package/controls/button.js.map +1 -0
- package/controls/c1.d.ts +11 -0
- package/controls/c1.js +24 -0
- package/controls/c1.js.map +1 -0
- package/controls/c2.d.ts +10 -0
- package/controls/c2.js +19 -0
- package/controls/c2.js.map +1 -0
- package/controls/choice.d.ts +39 -0
- package/controls/choice.js +410 -0
- package/controls/choice.js.map +1 -0
- package/controls/code-register.d.ts +1 -0
- package/controls/code-register.js +8 -0
- package/controls/code-register.js.map +1 -0
- package/controls/code.d.ts +42 -0
- package/controls/code.js +396 -0
- package/controls/code.js.map +1 -0
- package/controls/color.d.ts +5 -0
- package/controls/color.js +130 -0
- package/controls/color.js.map +1 -0
- package/controls/component-services.d.ts +114 -0
- package/controls/date-register.d.ts +1 -0
- package/controls/date-register.js +9 -0
- package/controls/date-register.js.map +1 -0
- package/controls/date-zone.d.ts +104 -0
- package/controls/date-zone.js +272 -0
- package/controls/date-zone.js.map +1 -0
- package/controls/date.d.ts +7 -0
- package/controls/date.js +458 -0
- package/controls/date.js.map +1 -0
- package/controls/form-picker-register.d.ts +1 -0
- package/controls/form-picker-register.js +19 -0
- package/controls/form-picker-register.js.map +1 -0
- package/controls/form-picker.d.ts +43 -0
- package/controls/form-picker.js +83 -0
- package/controls/form-picker.js.map +1 -0
- package/controls/icon-register.d.ts +1 -0
- package/controls/icon-register.js +8 -0
- package/controls/icon-register.js.map +1 -0
- package/controls/icon.d.ts +38 -0
- package/controls/icon.js +355 -0
- package/controls/icon.js.map +1 -0
- package/controls/index.d.ts +5 -0
- package/controls/index.js +37 -0
- package/controls/index.js.map +1 -0
- package/controls/json-register.d.ts +1 -0
- package/controls/json-register.js +8 -0
- package/controls/json-register.js.map +1 -0
- package/controls/json.d.ts +2 -0
- package/controls/json.js +72 -0
- package/controls/json.js.map +1 -0
- package/controls/link.d.ts +260 -0
- package/controls/link.js +1186 -0
- package/controls/link.js.map +1 -0
- package/controls/location-register.d.ts +1 -0
- package/controls/location-register.js +8 -0
- package/controls/location-register.js.map +1 -0
- package/controls/location.d.ts +16 -0
- package/controls/location.js +197 -0
- package/controls/location.js.map +1 -0
- package/controls/media-register.d.ts +1 -0
- package/controls/media-register.js +12 -0
- package/controls/media-register.js.map +1 -0
- package/controls/media-services.d.ts +40 -0
- package/controls/media.d.ts +73 -0
- package/controls/media.js +1076 -0
- package/controls/media.js.map +1 -0
- package/controls/number.d.ts +22 -0
- package/controls/number.js +195 -0
- package/controls/number.js.map +1 -0
- package/controls/reference-register.d.ts +1 -0
- package/controls/reference-register.js +10 -0
- package/controls/reference-register.js.map +1 -0
- package/controls/reference-services.d.ts +54 -0
- package/controls/reference.d.ts +23 -0
- package/controls/reference.js +761 -0
- package/controls/reference.js.map +1 -0
- package/controls/rich-text/blocks.d.ts +28 -0
- package/controls/rich-text/blocks.js +1532 -0
- package/controls/rich-text/blocks.js.map +1 -0
- package/controls/rich-text/catalog.d.ts +98 -0
- package/controls/rich-text/catalog.js +613 -0
- package/controls/rich-text/catalog.js.map +1 -0
- package/controls/rich-text/codec.d.ts +56 -0
- package/controls/rich-text/codec.js +32 -0
- package/controls/rich-text/codec.js.map +1 -0
- package/controls/rich-text/component-card.d.ts +14 -0
- package/controls/rich-text/component-card.js +706 -0
- package/controls/rich-text/component-card.js.map +1 -0
- package/controls/rich-text/control.d.ts +21 -0
- package/controls/rich-text/control.js +254 -0
- package/controls/rich-text/control.js.map +1 -0
- package/controls/rich-text/dom.d.ts +190 -0
- package/controls/rich-text/dom.js +690 -0
- package/controls/rich-text/dom.js.map +1 -0
- package/controls/rich-text/editor.d.ts +50 -0
- package/controls/rich-text/editor.js +1530 -0
- package/controls/rich-text/editor.js.map +1 -0
- package/controls/rich-text/floating.d.ts +23 -0
- package/controls/rich-text/floating.js +137 -0
- package/controls/rich-text/floating.js.map +1 -0
- package/controls/rich-text/index.d.ts +1 -0
- package/controls/rich-text/index.js +12 -0
- package/controls/rich-text/index.js.map +1 -0
- package/controls/rich-text/link-form.d.ts +13 -0
- package/controls/rich-text/link-form.js +111 -0
- package/controls/rich-text/link-form.js.map +1 -0
- package/controls/rich-text/markdown.d.ts +6 -0
- package/controls/rich-text/markdown.js +179 -0
- package/controls/rich-text/markdown.js.map +1 -0
- package/controls/rich-text/ops.d.ts +35 -0
- package/controls/rich-text/ops.js +314 -0
- package/controls/rich-text/ops.js.map +1 -0
- package/controls/rich-text/toolbar.d.ts +85 -0
- package/controls/rich-text/toolbar.js +338 -0
- package/controls/rich-text/toolbar.js.map +1 -0
- package/controls/scale.d.ts +56 -0
- package/controls/scale.js +563 -0
- package/controls/scale.js.map +1 -0
- package/controls/slot-register.d.ts +1 -0
- package/controls/slot-register.js +16 -0
- package/controls/slot-register.js.map +1 -0
- package/controls/slot-services.d.ts +97 -0
- package/controls/slot-services.js +38 -0
- package/controls/slot-services.js.map +1 -0
- package/controls/slot.d.ts +33 -0
- package/controls/slot.js +348 -0
- package/controls/slot.js.map +1 -0
- package/controls/table/index.d.ts +1 -0
- package/controls/table/index.js +12 -0
- package/controls/table/index.js.map +1 -0
- package/controls/table/prod.d.ts +21 -0
- package/controls/table/prod.js +79 -0
- package/controls/table/prod.js.map +1 -0
- package/controls/table/refs.d.ts +50 -0
- package/controls/table/refs.js +68 -0
- package/controls/table/refs.js.map +1 -0
- package/controls/table/stored.d.ts +15 -0
- package/controls/table/stored.js +44 -0
- package/controls/table/stored.js.map +1 -0
- package/controls/table/table-editor.d.ts +103 -0
- package/controls/table/table-editor.js +2722 -0
- package/controls/table/table-editor.js.map +1 -0
- package/controls/table/table-link.d.ts +24 -0
- package/controls/table/table-link.js +180 -0
- package/controls/table/table-link.js.map +1 -0
- package/controls/table/table.d.ts +9 -0
- package/controls/table/table.js +103 -0
- package/controls/table/table.js.map +1 -0
- package/controls/text.d.ts +17 -0
- package/controls/text.js +287 -0
- package/controls/text.js.map +1 -0
- package/engine/array.d.ts +101 -0
- package/engine/array.js +893 -0
- package/engine/array.js.map +1 -0
- package/engine/bits.d.ts +24 -0
- package/engine/bits.js +60 -0
- package/engine/bits.js.map +1 -0
- package/engine/breadcrumb.d.ts +45 -0
- package/engine/breadcrumb.js +87 -0
- package/engine/breadcrumb.js.map +1 -0
- package/engine/expand.d.ts +68 -0
- package/engine/expand.js +170 -0
- package/engine/expand.js.map +1 -0
- package/engine/field-list.d.ts +20 -0
- package/engine/field-list.js +19 -0
- package/engine/field-list.js.map +1 -0
- package/engine/field-shell.d.ts +49 -0
- package/engine/field-shell.js +860 -0
- package/engine/field-shell.js.map +1 -0
- package/engine/frame.d.ts +120 -0
- package/engine/frame.js +599 -0
- package/engine/frame.js.map +1 -0
- package/engine/group-summary.d.ts +4 -0
- package/engine/group-summary.js +66 -0
- package/engine/group-summary.js.map +1 -0
- package/engine/grouping.d.ts +224 -0
- package/engine/grouping.js +824 -0
- package/engine/grouping.js.map +1 -0
- package/engine/item-list.d.ts +89 -0
- package/engine/item-list.js +703 -0
- package/engine/item-list.js.map +1 -0
- package/engine/kit-field.d.ts +72 -0
- package/engine/kit-field.js +523 -0
- package/engine/kit-field.js.map +1 -0
- package/engine/schema-form.d.ts +91 -0
- package/engine/schema-form.js +320 -0
- package/engine/schema-form.js.map +1 -0
- package/engine/slot.d.ts +13 -0
- package/engine/slot.js +226 -0
- package/engine/slot.js.map +1 -0
- package/index.d.ts +46 -0
- package/index.js +55 -0
- package/index.js.map +1 -0
- package/kit.css +56 -0
- package/lib/cn.d.ts +4 -0
- package/lib/cn.js +53 -0
- package/lib/cn.js.map +1 -0
- package/lib/columns.d.ts +14 -0
- package/lib/columns.js +27 -0
- package/lib/columns.js.map +1 -0
- package/lib/frames.d.ts +36 -0
- package/lib/frames.js +214 -0
- package/lib/frames.js.map +1 -0
- package/lib/icons.d.ts +16 -0
- package/lib/icons.js +172 -0
- package/lib/icons.js.map +1 -0
- package/lib/path.d.ts +29 -0
- package/lib/path.js +64 -0
- package/lib/path.js.map +1 -0
- package/lib/schema.d.ts +49 -0
- package/lib/schema.js +287 -0
- package/lib/schema.js.map +1 -0
- package/lib/utils.d.ts +7 -0
- package/lib/utils.js +37 -0
- package/lib/utils.js.map +1 -0
- package/lib/validate.d.ts +20 -0
- package/lib/validate.js +150 -0
- package/lib/validate.js.map +1 -0
- package/package.json +31 -59
- package/schema/adapters.d.ts +28 -0
- package/schema/adapters.js +493 -0
- package/schema/adapters.js.map +1 -0
- package/schema/help.d.ts +25 -0
- package/schema/help.js +54 -0
- package/schema/help.js.map +1 -0
- package/schema/scale.d.ts +69 -0
- package/schema/scale.js +250 -0
- package/schema/scale.js.map +1 -0
- package/schema/sources.d.ts +103 -0
- package/schema/sources.js +65 -0
- package/schema/sources.js.map +1 -0
- package/schema/table.d.ts +319 -0
- package/schema/table.js +1198 -0
- package/schema/table.js.map +1 -0
- package/schema/types.d.ts +269 -0
- package/schema/types.js +14 -0
- package/schema/types.js.map +1 -0
- package/types.d.ts +17 -0
- package/ui/action-tray.d.ts +54 -0
- package/ui/action-tray.js +153 -0
- package/ui/action-tray.js.map +1 -0
- package/ui/button.d.ts +57 -0
- package/ui/button.js +202 -0
- package/ui/button.js.map +1 -0
- package/ui/choice-switch.d.ts +36 -0
- package/ui/choice-switch.js +57 -0
- package/ui/choice-switch.js.map +1 -0
- package/ui/controls.d.ts +83 -0
- package/ui/controls.js +319 -0
- package/ui/controls.js.map +1 -0
- package/ui/display.d.ts +156 -0
- package/ui/display.js +444 -0
- package/ui/display.js.map +1 -0
- package/ui/expanded-editor-modal.d.ts +26 -0
- package/ui/expanded-editor-modal.js +140 -0
- package/ui/expanded-editor-modal.js.map +1 -0
- package/ui/field-context.d.ts +12 -0
- package/ui/field-context.js +23 -0
- package/ui/field-context.js.map +1 -0
- package/ui/floating-panel.d.ts +152 -0
- package/ui/floating-panel.js +912 -0
- package/ui/floating-panel.js.map +1 -0
- package/ui/index.d.ts +12 -0
- package/ui/index.js +13 -0
- package/ui/input.d.ts +78 -0
- package/ui/input.js +250 -0
- package/ui/input.js.map +1 -0
- package/ui/mode-bar.d.ts +31 -0
- package/ui/mode-bar.js +65 -0
- package/ui/mode-bar.js.map +1 -0
- package/ui/overlay.d.ts +123 -0
- package/ui/overlay.js +378 -0
- package/ui/overlay.js.map +1 -0
- package/ui/path-crumbs.d.ts +90 -0
- package/ui/path-crumbs.js +532 -0
- package/ui/path-crumbs.js.map +1 -0
- package/ui/presence.d.ts +16 -0
- package/ui/presence.js +65 -0
- package/ui/presence.js.map +1 -0
- package/ui/select.d.ts +66 -0
- package/ui/select.js +405 -0
- package/ui/select.js.map +1 -0
- package/ui/shortcut-hint.d.ts +14 -0
- package/ui/shortcut-hint.js +35 -0
- package/ui/shortcut-hint.js.map +1 -0
- package/ui/surfaces.d.ts +23 -0
- package/ui/surfaces.js +26 -0
- package/ui/surfaces.js.map +1 -0
- package/ui/tooltip-root.d.ts +12 -0
- package/ui/tooltip-root.js +76 -0
- package/ui/tooltip-root.js.map +1 -0
- package/ui/variants.d.ts +15 -0
- package/ui/variants.js +14 -0
- package/ui/variants.js.map +1 -0
- package/LICENSE +0 -21
- package/README.md +0 -27
- 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.d.ts +0 -3140
- package/dist/index.js +0 -2036
- package/dist/index.mjs +0 -2044
- package/dist/theme.d.mts +0 -1506
- package/dist/theme.d.ts +0 -1506
- package/dist/theme.js +0 -4126
- 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":"field-shell.js","names":[],"sources":["../../src/kit/engine/field-shell.tsx"],"sourcesContent":["/**\n * FIELD SHELL — the one field chrome (V2 HEAD 9829bf1 kit/engine/field-shell.tsx; production FieldShell + CPO D8).\n *\n * [Label *] [ⓘ] [override dot] [changed dot] [synced] [EN] …… [42 / 60] [action] [Reset] [undo] [comments] [presence] [⋯]\n * help text (CPO D39: 12/16 --fg-3, 4px under the label, 1–2 lines; hidden while an error shows)\n * ┌ control ───────────────────────────────┐ ← peer editing: the control's border in their colour\n * └────────────────────────────────────────┘\n * error / warning message ……………………… meta (42 / 60)\n *\n * Accessories (add-comment, ⋯) take NO space at rest; they appear on hover/focus (always on touch). A comment\n * COUNT chip is always visible. AI lives in ⋯ (\"Rewrite with AI\"), never as a label sparkle (CPO-142).\n *\n * Services (toast, AI rewrite, in-place comments) come from KitServices; a missing service hides its surface.\n */\nimport * as React from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n IconAlertCircle, IconAlertTriangle, IconArrowBackUp, IconBraces, IconClipboard, IconCopy, IconDots, IconHistory,\n IconMessage, IconMessagePlus, IconRefresh, IconRotate, IconWorld,\n} from \"@tabler/icons-react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { Button, Sparkle } from \"../ui/button\";\nimport { Avatar, avatarRingSpread } from \"../ui/display\";\nimport { HelpMore } from \"../ui/input\";\nimport { Menu, MenuContent, MenuItem, MenuSeparator, MenuTrigger, Popover, PopoverAnchor, PopoverContent, Tooltip } from \"../ui/overlay\";\nimport { presenceColor } from \"../ui/presence\";\nimport { cn } from \"../lib/cn\";\nimport { HISTORY_SEGMENT, type FieldPath, type FieldSchema } from \"../schema/types\";\nimport { resolveHelp } from \"../schema/help\";\nimport { AI_PRESETS, FieldHeaderSlot, seesDevSurfaces, useForm, useKitEnv, useKitServices, type AiPreset, type KitPeer } from \"../context\";\nimport { pathKey, same } from \"../lib/path\";\nimport { isTextual, plainText } from \"../lib/schema\";\nimport { textLength, type KitIssue } from \"../lib/validate\";\nimport { RowChrome } from \"./bits\";\n\n/* ── Clipboard shared by every field (typed, so Paste can refuse with a reason) ── */\n/** `html`: a rich text value as its editor html (read through the host's codec), so Paste re-stores it for the target field. */\nlet clip: { type: string; value: unknown; label: string; html?: string } | null = null;\n/** Test seam: forget the shared field clipboard. */\nexport const resetFieldClipboard = () => {\n clip = null;\n};\nconst KIND: Record<string, string> = { image: \"an image\", file: \"a file\", video: \"a video\", reference: \"a reference\", link: \"a link\", button: \"a button\", array: \"a list\", slot: \"blocks\", object: \"a group of fields\", boolean: \"an on/off value\", number: \"a number\", color: \"a colour\" };\nconst kindOf = (t: string) => (isTextual(t as FieldSchema[\"type\"]) ? \"text\" : KIND[t] ?? t);\n\ntype RichTextCodec = NonNullable<ReturnType<typeof useKitServices>[\"richText\"]>;\nconst escHtml = (s: string) => s.replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\");\n/** Plain text as editor html: one escaped paragraph per line. */\nconst paragraphs = (text: string) =>\n text\n .split(/\\n+/)\n .map((l) => l.trim())\n .filter(Boolean)\n .map((l) => `<p>${escHtml(l)}</p>`)\n .join(\"\");\n/**\n * Html into a rich text field, stored in the field's own shape through the host's codec. A write that would drop\n * something is refused with the words the codec names; nothing is stored.\n */\nfunction richTextWrite(codec: RichTextCodec, field: FieldSchema, path: FieldPath, html: string, prev: unknown): { value: unknown } | { refused: string } {\n try {\n const out = codec.write(html, { field, path }, prev);\n return out.losses.length ? { refused: `${field.title} can't keep ${out.losses.join(\", \")}` } : { value: out.value };\n } catch (err) {\n return { refused: `${field.title} could not store this text (${err instanceof Error ? err.message : String(err)})` };\n }\n}\n/** A rich text value as editor html, when the host's codec reads it. */\nfunction richTextHtml(codec: RichTextCodec | undefined, field: FieldSchema, path: FieldPath, value: unknown): string | undefined {\n if (!codec || field.type !== \"richtext\") return undefined;\n try {\n return codec.read(value, { field, path }).html;\n } catch {\n return undefined; // Paste falls back to the value's words\n }\n}\n\nexport const apiName = (schemaName: string, path: FieldPath) =>\n [schemaName, ...path.filter((s) => s !== HISTORY_SEGMENT)].reduce<string>((a, s) => (typeof s === \"number\" ? `${a}[${s}]` : a ? `${a}.${s}` : String(s)), \"\");\n\n/** A long label truncates on one line; past this many characters a native `title` carries the full label (DESIGN 4.4). */\nexport const LABEL_HINT_AT = 28;\n\nconst REVEAL =\n \"hidden group-hover/field:inline-flex group-focus-within/field:inline-flex data-[state=open]:inline-flex data-[popup-open]:inline-flex [@media(pointer:coarse)]:inline-flex\";\n\nexport interface FieldShellProps {\n field: FieldSchema;\n path: FieldPath;\n id: string;\n value: unknown;\n onChange: (v: unknown) => void;\n readOnly?: boolean;\n issue?: KitIssue;\n /** label-row action (e.g. slug \"Generate\") */\n action?: React.ReactNode;\n /** \"card\" = the boolean switch card · \"row\" = the control IS a labelled row (a drill-in object, CPO D45): no label row,\n * the chrome goes into the row through `RowChrome` */\n layout?: \"stack\" | \"card\" | \"row\";\n /** layout fields get no comment control */\n noComments?: boolean;\n /** right side of the message line (counters, \"3 items · max 6\") */\n meta?: React.ReactNode;\n className?: string;\n children: React.ReactNode;\n}\n\nexport function FieldShell({ field, path, id, value, onChange, readOnly, issue, action, layout = \"stack\", noComments, meta, className, children }: FieldShellProps) {\n const env = useKitEnv();\n const form = useForm();\n const services = useKitServices();\n const key = pathKey(path);\n /* A host can lift this field's chrome into its own header (All fields: a block whose only field is \"Stats\" under a\n \"Stats\" section) — then there is no label row at all; the label stays for screen readers. */\n const slot = React.useContext(FieldHeaderSlot);\n const lifted = slot && slot.key === key && layout === \"stack\" ? slot.el : null;\n const [ai, setAi] = React.useState(false);\n const [commentsOpen, setCommentsOpen] = React.useState(false);\n /* V2 fieldPopoverCollision: the comments popover stays inside the scrolling area the field sits in */\n const [commentArea, setCommentArea] = React.useState<CommentCollision>({ collisionPadding: 12 });\n const peers = env.presence[key] ?? [];\n const editor = peers.find((p) => p.status !== \"viewing\");\n const InPlaceComments = services.FieldComments;\n const canComment = !noComments && (!!env.onComment || !!InPlaceComments);\n const openCount = env.comments[key] ?? 0; // with no env.onComment and a count hook, CommentButton reads the store\n const useStoreCount = env.onComment ? undefined : services.useFieldCommentCount;\n const changed = !!form?.hasPublished && !same(value, form.publishedAt(path));\n /* component instance (D28): a top-level field either inherits the component's value or overrides it */\n const inh = form?.inherited && path.length === 1 ? form.inherited : undefined;\n const overridden = !!inh && inh.isOverridden(key);\n const canUndo = !!form?.canUndo(key) && !readOnly;\n const synced = field.synced?.from; // a whole synced form shows one notice at its root, not a chip per field\n const limit = field.validation?.max ?? field.validation?.recommendedMax;\n const len = textLength(value);\n /* counters stay quiet: shown while the field has focus, or when the value nears its limit */\n const near = !!limit && len >= limit * 0.8;\n const counter =\n limit && (field.type === \"string\" || field.type === \"text\" || field.type === \"richtext\") ? (\n <span\n data-slot=\"field-counter\"\n className={cn(\n \"tabular-nums text-kit-xs\",\n !near && \"hidden group-focus-within/field:inline\",\n field.validation?.max && len > field.validation.max ? \"text-kit-danger-fg\" : field.validation?.recommendedMax && len > field.validation.recommendedMax ? \"text-kit-warning-fg\" : \"text-kit-fg-3\",\n )}\n >\n {len} / {limit}\n </span>\n ) : null;\n\n /* ── Help (CPO D39) ── one line under the label; longer text behind ⓘ. Dense hosts (env.helpDisplay \"tooltip\")\n move the line into the ⓘ too. An error REPLACES the help (warnings keep it: they're advice, not a block). */\n const dense = env.helpDisplay === \"tooltip\";\n const help = resolveHelp(field); // arrays / slots / objects reach the shell without KitField: conventions apply here too\n const more = field.helpMore || undefined;\n const erroring = issue?.level === \"error\";\n const helpInline = !!help && !dense && !erroring;\n const tip = dense ? [help, more].filter(Boolean).join(\" \") : more;\n const helpId = `${id}-help`;\n const moreId = `${id}-more`;\n const msgId = `${id}-msg`;\n const describedBy = [helpInline && helpId, tip && moreId, issue && msgId].filter(Boolean).join(\" \");\n /* Controls are many (input, textarea, contenteditable, pickers); the shell owns the ids, so it wires\n aria-describedby onto whatever element carries the field id, keeping any ids the control set itself. */\n React.useEffect(() => {\n const el = document.getElementById(id);\n if (!el) return;\n const own = (el.getAttribute(\"aria-describedby\") ?? \"\").split(\" \").filter((t) => t && !t.startsWith(`${id}-`));\n const next = [...own, ...describedBy.split(\" \").filter(Boolean)].join(\" \");\n if (next) el.setAttribute(\"aria-describedby\", next);\n else el.removeAttribute(\"aria-describedby\");\n }, [id, describedBy]);\n const info = tip ? (\n <HelpMore id={moreId} label={field.title}>\n {tip}\n </HelpMore>\n ) : null;\n\n const label = (\n <>\n <span className=\"truncate\">{field.title}</span>\n {field.validation?.required ? (\n <>\n <span aria-hidden className=\"text-kit-fg-2\">*</span>\n <span className=\"sr-only\">(required)</span>\n </>\n ) : null}\n </>\n );\n const badges = (\n <>\n {overridden ? (\n <Tooltip content={`Overrides ${inh!.from}. Changes to the component no longer reach this field.`}>\n <span role=\"img\" className=\"size-1.5 shrink-0 rounded-full bg-kit-accent\" aria-label={`Overrides ${inh!.from}`} />\n </Tooltip>\n ) : null}\n {changed ? (\n <Tooltip content=\"Changed since publish\">\n <span role=\"img\" className=\"size-1.5 shrink-0 rounded-full bg-kit-warning\" aria-label=\"Changed since publish\" />\n </Tooltip>\n ) : null}\n {synced ? (\n <Tooltip content={`Synced from ${synced}. Changes apply on every page that uses it.`}>\n <span className=\"inline-flex h-4 shrink-0 items-center gap-0.5 rounded-kit-md bg-kit-info-soft px-1 text-kit-2xs font-medium text-kit-info-fg\">\n <IconRefresh className=\"size-2.5\" stroke={2} aria-hidden />\n Synced\n </span>\n </Tooltip>\n ) : null}\n {field.localized ? (\n <Tooltip content=\"Translatable · English (default). Spanish and French are missing.\">\n <span className=\"inline-flex h-4 shrink-0 items-center gap-0.5 rounded-kit-md bg-kit-muted px-1 text-kit-2xs font-medium text-kit-fg-3\">\n <IconWorld className=\"size-2.5\" stroke={2} aria-hidden />\n EN\n </span>\n </Tooltip>\n ) : null}\n </>\n );\n const accessories = (\n <>\n {action}\n {overridden && !readOnly ? (\n <Tooltip content={`Use ${inh!.from}'s value again`}>\n <button\n type=\"button\"\n onClick={(e) => {\n const box = (e.currentTarget as HTMLElement).closest<HTMLElement>(\"[data-field-key]\");\n inh!.reset(key);\n // the button goes away with the override: keep focus in the field, never on <body>\n requestAnimationFrame(() => (document.getElementById(id) ?? box?.querySelector<HTMLElement>(\"textarea, input, [contenteditable=true], button\"))?.focus({ preventScroll: true }));\n }}\n aria-label={`Reset ${field.title} to ${inh!.from}`}\n className=\"inline-flex h-5 items-center rounded-kit-md px-1 text-kit-xs text-kit-fg-3 hover:bg-kit-hover hover:text-kit-fg\"\n >\n Reset\n </button>\n </Tooltip>\n ) : null}\n {canUndo ? (\n <Tooltip content={`Undo last change to ${field.title}`}>\n <button type=\"button\" aria-label={`Undo last change to ${field.title}`} onClick={() => form?.undo(key)} className=\"inline-flex size-5 items-center justify-center rounded-kit-md text-kit-fg-3 hover:bg-kit-hover hover:text-kit-fg\">\n <IconArrowBackUp className=\"size-3.5\" stroke={1.5} aria-hidden />\n </button>\n </Tooltip>\n ) : null}\n {canComment ? (\n <CommentButton\n count={openCount}\n useCount={useStoreCount ? () => useStoreCount(env.docId, key) : undefined}\n label={field.title}\n open={commentsOpen}\n onOpen={(el) => {\n if (env.onComment) return env.onComment(path, field); // the host owns comments (e.g. the document editor)\n setCommentArea(fieldPopoverCollision(el.closest(\"[data-field-key]\")));\n setCommentsOpen(true);\n }}\n />\n ) : null}\n <PeerStack peers={peers} />\n <FieldMenu field={field} path={path} value={value} onChange={onChange} readOnly={!!readOnly} changed={changed} onAi={() => setAi(true)} />\n </>\n );\n\n // Peer editing (Figma / Notion / Sanity): only the field's own input border takes their --presence-n colour (full strength:\n // the old 70% mix read as a validation error at 1.96:1) —\n // no outline around the input + preview, no name tag over the border, no layout shift. Who it is: the face in the label row.\n const control = (\n <div\n className={cn(\"relative\", editor && \"[&_.border-kit-field-border]:border-[var(--peer)]\")}\n style={editor ? ({ \"--peer\": editor.color ?? presenceColor(editor.id ?? editor.name) } as React.CSSProperties) : undefined}\n >\n {children}\n </div>\n );\n\n const message =\n issue || meta ? (\n <div className=\"flex min-h-4 items-start justify-between gap-3\">\n <AnimatePresence initial={false}>\n {issue ? (\n <motion.p\n key={issue.message}\n id={msgId}\n initial={{ opacity: 0, y: -2 }}\n animate={{ opacity: 1, y: 0 }}\n role={issue.level === \"error\" ? \"alert\" : \"status\"}\n className={cn(\"flex min-w-0 items-start gap-1 text-kit-xs\", issue.level === \"error\" ? \"text-kit-danger-fg\" : \"text-kit-warning-fg\")}\n >\n {issue.level === \"error\" ? <IconAlertCircle className=\"mt-px size-3.5 shrink-0\" stroke={1.5} aria-hidden /> : <IconAlertTriangle className=\"mt-px size-3.5 shrink-0\" stroke={1.5} aria-hidden />}\n {issue.message}\n </motion.p>\n ) : (\n <span />\n )}\n </AnimatePresence>\n {meta ? <span className=\"flex shrink-0 items-center gap-2\">{meta}</span> : null}\n </div>\n ) : null;\n\n const labelEl = (\n <label\n htmlFor={id}\n id={`${id}-label`}\n className=\"flex min-w-0 items-center gap-1 text-kit-sm font-medium text-kit-fg-2 transition-colors group-focus-within/field:text-kit-fg\"\n title={field.title.length > LABEL_HINT_AT ? field.title : undefined}\n >\n {label}\n </label>\n );\n\n const body =\n layout === \"row\" ? (\n <div className={cn(\"group/field flex min-w-0 flex-col gap-1.5\", className)} data-field-key={key} data-field={path.length === 1 ? key : undefined} data-slot=\"kit-field\">\n <RowChrome.Provider value={<>{info}{badges}{accessories}</>}>{control}</RowChrome.Provider>\n {message}\n </div>\n ) : layout === \"card\" ? (\n <div className={cn(\"group/field flex flex-col gap-1.5\", className)} data-field-key={key} data-field={path.length === 1 ? key : undefined} data-slot=\"kit-field\">\n <div className={cn(\"flex items-center gap-3 rounded-kit-lg border bg-kit-surface px-3 py-2.5 transition-colors\", issue?.level === \"error\" ? \"border-[var(--kit-field-invalid)]\" : \"border-kit-line hover:border-kit-line-strong\")}>\n {control}\n <label htmlFor={id} id={`${id}-label`} className=\"min-w-0 flex-1 cursor-pointer\">\n <span className=\"flex min-w-0 items-center gap-1.5 text-kit-sm font-medium text-kit-fg\">\n {label}\n {info}\n {badges}\n </span>\n {helpInline ? (\n <span id={helpId} data-slot=\"field-help\" className=\"block text-kit-xs leading-4 text-kit-fg-3\">\n {help}\n </span>\n ) : null}\n </label>\n <span className=\"shrink-0 text-kit-xs text-kit-fg-3\">{value ? \"On\" : \"Off\"}</span>\n <span className=\"flex shrink-0 items-center gap-0.5 empty:hidden\">{accessories}</span>\n </div>\n {message}\n </div>\n ) : (\n <div\n className={cn(\"group/field flex min-w-0 flex-col gap-1.5\", className)}\n data-field-key={key}\n data-field={path.length === 1 ? key : undefined}\n data-slot=\"kit-field\"\n data-inherited={inh && !overridden ? \"\" : undefined}\n data-overridden={overridden ? \"\" : undefined}\n >\n {lifted ? (\n <>\n <label htmlFor={id} id={`${id}-label`} className=\"sr-only\">\n {label}\n </label>\n {createPortal(\n <span className=\"flex items-center gap-0.5 [&>button]:!inline-flex\">\n {info}\n {badges}\n {counter}\n {accessories}\n </span>,\n lifted,\n )}\n </>\n ) : (\n <div data-slot=\"field-label-row\" className=\"flex min-h-5 min-w-0 items-center gap-1.5\">\n {labelEl}\n {info}\n {badges}\n <span className=\"flex-1\" />\n {counter}\n <span className=\"flex shrink-0 items-center gap-0.5\">{accessories}</span>\n </div>\n )}\n {helpInline ? (\n <p id={helpId} data-slot=\"field-help\" className=\"-mt-0.5 text-kit-xs leading-4 text-kit-fg-3\">\n {help}\n </p>\n ) : null}\n {control}\n {message}\n </div>\n );\n\n /* The AI popover and the comments popover both anchor to the field (two stacked anchor divs). */\n return (\n <Popover open={ai} onOpenChange={setAi}>\n <PopoverAnchor className=\"min-w-0\">\n <Popover\n open={commentsOpen}\n onOpenChange={(open, d) => {\n /* V2 guardEscape: Escape inside the composer (data-esc-owner) belongs to the draft, not the popover */\n if (!open && d.reason === \"escape-key\" && (document.activeElement as HTMLElement | null)?.hasAttribute(\"data-esc-owner\")) return d.cancel();\n setCommentsOpen(open);\n }}\n >\n <PopoverAnchor className=\"min-w-0\">{body}</PopoverAnchor>\n {commentsOpen && InPlaceComments ? (\n <PopoverContent align=\"start\" sideOffset={8} {...commentArea} initialFocus={false} className=\"w-[clamp(280px,var(--anchor-width),420px)] p-0\">\n <InPlaceComments\n docId={env.docId}\n fieldKey={key}\n label={field.title}\n quote={plainText(value).slice(0, 80) || undefined}\n onClose={() => setCommentsOpen(false)}\n onOpenPanel={\n env.onComment\n ? () => {\n env.onComment?.(path, field);\n setCommentsOpen(false);\n }\n : undefined\n }\n />\n </PopoverContent>\n ) : null}\n </Popover>\n </PopoverAnchor>\n {ai ? (\n <PopoverContent align=\"start\" sideOffset={8} className=\"w-[clamp(300px,var(--anchor-width),440px)] p-0\">\n <AiRewrite field={field} path={path} value={value} onChange={onChange} onClose={() => setAi(false)} />\n </PopoverContent>\n ) : null}\n </Popover>\n );\n}\n\ntype CommentCollision = { collisionBoundary?: Element; collisionPadding: number | Partial<Record<\"top\" | \"right\" | \"bottom\" | \"left\", number>> };\n/** V2 features/comments fieldPopoverCollision: inside a scrolling panel, collide with that panel below its sticky header. */\nfunction fieldPopoverCollision(anchor: Element | null): CommentCollision {\n let area = anchor?.parentElement ?? null;\n while (area && !/(auto|scroll)/.test(getComputedStyle(area).overflowY)) area = area.parentElement;\n if (!area || area === document.scrollingElement) return { collisionPadding: 12 };\n const sticky = parseFloat(getComputedStyle(area).getPropertyValue(\"--kit-sticky-top\")) || 0;\n return { collisionBoundary: area, collisionPadding: { top: sticky + 8, right: 8, bottom: 8, left: 8 } };\n}\n\n/** Comment count chip (always visible) or the hover-revealed \"Add comment\" icon. `useCount` (the host's store hook)\n * replaces `count` when the kit draws the comments in place. */\nfunction CommentButton({ useCount, ...props }: CommentButtonProps & { useCount?: () => number }) {\n return useCount ? <StoreCommentButton useCount={useCount} {...props} /> : <CountedCommentButton {...props} />;\n}\ninterface CommentButtonProps {\n count: number;\n label: string;\n open: boolean;\n onOpen: (el: HTMLElement) => void;\n}\nfunction StoreCommentButton({ useCount, ...props }: CommentButtonProps & { useCount: () => number }) {\n return <CountedCommentButton {...props} count={useCount()} />;\n}\nfunction CountedCommentButton({ count, label, open, onOpen }: CommentButtonProps) {\n if (count > 0)\n return (\n <Tooltip content={`${count} open comment${count === 1 ? \"\" : \"s\"} on ${label}`}>\n <button\n type=\"button\"\n onClick={(e) => onOpen(e.currentTarget)}\n data-state={open ? \"open\" : \"closed\"}\n aria-label={`${count} open comments on ${label}`}\n className=\"inline-flex h-5 items-center gap-1 rounded-full bg-[var(--kit-chip-ink-bg)] px-1.5 text-kit-2xs font-medium text-[var(--kit-chip-ink-fg)] hover:opacity-90\"\n >\n <IconMessage className=\"size-3\" stroke={2} aria-hidden />\n <span className=\"tabular-nums\">{count}</span>\n </button>\n </Tooltip>\n );\n return (\n <Tooltip content=\"Add comment\">\n <button\n type=\"button\"\n onClick={(e) => onOpen(e.currentTarget)}\n data-state={open ? \"open\" : \"closed\"}\n aria-label={`Add comment to ${label}`}\n className={cn(REVEAL, \"-my-0.5 size-6 items-center justify-center rounded-kit-md text-kit-fg-3 hover:bg-kit-hover hover:text-kit-fg\")}\n >\n <IconMessagePlus className=\"size-3.5\" stroke={1.5} aria-hidden />\n </button>\n </Tooltip>\n );\n}\n\n/** Who is in this field: 16px faces in the label row's action slot (no overlap with the label or the input), name on hover. */\nexport function PeerStack({ peers, size = 16 }: { peers: KitPeer[]; size?: number }) {\n const shown = peers.slice(0, 3);\n const rest = peers.length - shown.length;\n // Each slot reserves the ring band (1px surface gap + 1px presence colour) on every side, so the ring sits inside\n // the slot: a clipping ancestor or the row's edge can never shave it. Faces still overlap by 25% of their size.\n const ring = \"var(--kit-avatar-ring, var(--kit-surface))\";\n const band = avatarRingSpread({ ring, ringWidth: 1, ringAccent: \"x\" });\n const box = size + band * 2;\n const overlap = -(Math.round(size * 0.25) + band * 2);\n return (\n <AnimatePresence initial={false}>\n {shown.length ? (\n <motion.span key=\"peers\" initial={{ opacity: 0 }} animate={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.25 }} className=\"flex h-5 items-center\" data-slot=\"field-presence\">\n {/* D34 stack rules: same size, 25% overlap, first face on top; the ring is box-shadow (surface gap + the\n peer's presence colour) so the photo keeps its full size. */}\n {shown.map((p, i) => (\n <Tooltip key={p.name + i} content={`${p.name} · ${p.status === \"viewing\" ? \"Viewing\" : \"Editing\"} this field`}>\n <span\n style={{ marginLeft: i ? overlap : 0, zIndex: shown.length - i + 1, width: box, height: box }}\n className={cn(\"relative inline-flex shrink-0 rounded-full transition-transform duration-150 hover:!z-30 hover:-translate-y-px\", p.status === \"viewing\" && \"opacity-60\")}\n >\n <Avatar name={p.name} src={p.avatar} size={size} ring={ring} ringWidth={1} ringAccent={p.color ?? presenceColor(p.id ?? p.name)} decorative />\n </span>\n </Tooltip>\n ))}\n {rest > 0 ? (\n <Tooltip content={peers.slice(shown.length).map((p) => p.name).join(\", \")}>\n <span style={{ marginLeft: overlap, width: box, height: box, padding: band }} className=\"relative z-[1] inline-flex shrink-0\">\n <span\n style={{ width: size, height: size, boxShadow: `0 0 0 ${band}px var(--kit-surface)`, fontSize: Math.max(8, Math.round(size * 0.5)) }}\n className=\"inline-flex items-center justify-center rounded-full bg-kit-muted font-medium leading-none tabular-nums text-kit-fg-2\"\n >\n +{rest}\n </span>\n </span>\n </Tooltip>\n ) : null}\n </motion.span>\n ) : null}\n </AnimatePresence>\n );\n}\n\n/* ── ⋯ Field actions (DESIGN 8.25) ─────────────────────────────────── */\nfunction FieldMenu({ field, path, value, onChange, readOnly, changed, onAi }: { field: FieldSchema; path: FieldPath; value: unknown; onChange: (v: unknown) => void; readOnly: boolean; changed: boolean; onAi: () => void }) {\n const form = useForm();\n const env = useKitEnv();\n const { toast, aiRewrite, richText } = useKitServices();\n const key = pathKey(path);\n const api = apiName(form?.schema.name ?? \"doc\", path);\n const textual = isTextual(field.type);\n // rich text is rewritten only where the host's codec can store the result in the field's own shape\n const prose = field.type === \"string\" || field.type === \"text\" || (field.type === \"richtext\" && !!richText);\n const editable = !readOnly;\n const dev = seesDevSurfaces(env);\n return (\n <Menu>\n <Tooltip content=\"Field actions\">\n <MenuTrigger\n aria-label={`${field.title} actions`}\n className={cn(REVEAL, \"-my-0.5 size-6 items-center justify-center rounded-kit-md text-kit-fg-3 hover:bg-kit-hover hover:text-kit-fg data-[popup-open]:bg-kit-hover data-[popup-open]:text-kit-fg\")}\n >\n <IconDots className=\"size-3.5\" stroke={1.5} aria-hidden />\n </MenuTrigger>\n </Tooltip>\n <MenuContent align=\"end\" className=\"w-60\">\n <MenuItem\n icon={<IconCopy stroke={1.5} />}\n onClick={() => {\n const html = richTextHtml(richText, field, path, value);\n clip = { type: field.type, value: structuredCloneish(value), label: field.title, ...(html !== undefined ? { html } : {}) };\n const text = textual ? plainText(value) || \"\" : typeof value === \"string\" ? value : JSON.stringify(value ?? null, null, 2);\n void navigator.clipboard?.writeText(text).catch(() => {});\n toast?.success(`${field.title} copied`);\n }}\n >\n Copy value\n </MenuItem>\n {editable ? <PasteItem field={field} path={path} value={value} onChange={onChange} /> : null}\n {editable && form?.hasPublished && changed ? (\n <MenuItem\n icon={<IconRotate stroke={1.5} />}\n onClick={() => {\n const prev = value;\n onChange(form.publishedAt(path));\n toast?.(`${field.title} reset to published`, { action: { label: \"Undo\", onClick: () => onChange(prev) }, duration: 10_000 });\n }}\n >\n Reset to published\n </MenuItem>\n ) : null}\n {form?.canNavigate ? (\n <MenuItem icon={<IconHistory stroke={1.5} />} onClick={() => form.navigate([...path, HISTORY_SEGMENT])}>\n History\n </MenuItem>\n ) : null}\n {editable && prose && aiRewrite ? (\n <>\n <MenuSeparator />\n {form?.aiKeys.has(key) ? (\n <MenuItem\n icon={<IconArrowBackUp stroke={1.5} />}\n onClick={() => {\n form.undo(key);\n form.markAi(key, false);\n }}\n >\n Undo AI change\n </MenuItem>\n ) : null}\n <MenuItem icon={<Sparkle size={16} />} onClick={() => window.setTimeout(onAi, 0)}>\n Rewrite with AI\n </MenuItem>\n </>\n ) : null}\n {dev ? <MenuSeparator /> : null}\n {dev ? (\n <MenuItem\n icon={<IconBraces stroke={1.5} />}\n onClick={() => {\n void navigator.clipboard?.writeText(api).catch(() => {});\n toast?.success(`Copied ${api}`);\n }}\n >\n <span className=\"flex w-full items-center justify-between gap-3\">\n Copy API name\n <span className=\"truncate font-kit-mono text-kit-2xs text-kit-fg-3\">{api.length > 22 ? `…${api.slice(-20)}` : api}</span>\n </span>\n </MenuItem>\n ) : null}\n </MenuContent>\n </Menu>\n );\n}\n/** Reads the shared clipboard when the menu opens (it mounts with the popup), so a copy in another field is seen. */\nfunction PasteItem({ field, path, value, onChange }: { field: FieldSchema; path: FieldPath; value: unknown; onChange: (v: unknown) => void }) {\n const { toast, richText } = useKitServices();\n const textual = isTextual(field.type);\n // text into rich text needs the host's codec to store it in the field's shape\n const needsCodec = !!clip && field.type === \"richtext\" && clip.type !== \"richtext\" && !richText;\n const pasteOk = clip && !needsCodec && (clip.type === field.type || (textual && isTextual(clip.type as FieldSchema[\"type\"])));\n const pasteReason = !clip\n ? \"Copy a value from a field first.\"\n : needsCodec\n ? \"This rich text field takes a copied rich text value only.\"\n : pasteOk\n ? null\n : `Clipboard holds ${kindOf(clip.type)}. This field takes ${kindOf(field.type)}.`;\n return (\n <MenuItem\n icon={<IconClipboard stroke={1.5} />}\n disabled={!pasteOk}\n className={cn(pasteReason && \"h-auto py-1.5\")}\n onClick={() => {\n if (!clip) return;\n const prev = value;\n let next: unknown;\n if (field.type === \"richtext\" && richText && (clip.type !== \"richtext\" || clip.html !== undefined)) {\n // through the codec: the target field's own shape and Accept list, refused by name when it would drop something\n const out = richTextWrite(richText, field, path, clip.html ?? paragraphs(plainText(clip.value)), prev);\n if (\"refused\" in out) {\n toast?.(`Not pasted: ${out.refused}.`);\n return;\n }\n next = out.value;\n } else next = textual && clip.type === \"richtext\" && field.type !== \"richtext\" ? plainText(clip.value) : structuredCloneish(clip.value);\n onChange(next);\n toast?.(`Pasted into ${field.title}`, { action: { label: \"Undo\", onClick: () => onChange(prev) }, duration: 10_000 });\n }}\n >\n <span className=\"flex flex-col\">\n Paste value\n {pasteReason ? <span className=\"whitespace-normal text-kit-xs text-kit-fg-3\">{pasteReason}</span> : null}\n </span>\n </MenuItem>\n );\n}\nfunction structuredCloneish<T>(v: T): T {\n try {\n return structuredClone(v);\n } catch {\n return v;\n }\n}\n\n/* ── Rewrite with AI (preview before apply) ────────────────────────── */\nfunction AiRewrite({ field, path, value, onChange, onClose }: { field: FieldSchema; path: FieldPath; value: unknown; onChange: (v: unknown) => void; onClose: () => void }) {\n const form = useForm();\n const { toast, aiRewrite, richText } = useKitServices();\n const key = pathKey(path);\n const [preset, setPreset] = React.useState<AiPreset | null>(null);\n const [out, setOut] = React.useState<string | null>(null);\n const [failed, setFailed] = React.useState(false);\n const attempt = React.useRef(0);\n const latest = React.useRef(0);\n const source = plainText(value);\n const run = (p: AiPreset) => {\n if (!aiRewrite) return;\n setPreset(p);\n setOut(null);\n setFailed(false);\n const ticket = ++latest.current;\n Promise.resolve()\n .then(() => aiRewrite(source, p, attempt.current++))\n .then(\n (result) => {\n if (latest.current === ticket) setOut(result);\n },\n () => {\n if (latest.current === ticket) setFailed(true);\n },\n );\n };\n const apply = () => {\n if (!out) return;\n const prev = value;\n let next: unknown = out;\n if (field.type === \"richtext\") {\n const stored = richText ? richTextWrite(richText, field, path, paragraphs(out), prev) : { refused: `${field.title} has no rich text storage here` };\n if (\"refused\" in stored) {\n toast?.(`Not applied: ${stored.refused}.`);\n return;\n }\n next = stored.value;\n }\n onChange(next);\n form?.markAi(key, true);\n toast?.(\"Rewritten with AI\", {\n icon: <Sparkle size={14} />,\n action: {\n label: \"Undo\",\n onClick: () => {\n onChange(prev);\n form?.markAi(key, false);\n },\n },\n duration: 10_000,\n });\n onClose();\n };\n return (\n <div className=\"flex flex-col\">\n <div className=\"flex items-center gap-2 border-b border-kit-line px-3 py-2.5\">\n <Sparkle size={16} />\n <span className=\"text-kit-sm font-medium text-kit-fg\">Rewrite {field.title.toLowerCase()}</span>\n </div>\n <div className=\"flex flex-wrap gap-1 px-3 pt-2.5\">\n {AI_PRESETS.map((p) => (\n <button\n key={p.id}\n type=\"button\"\n onClick={() => run(p.id)}\n className={cn(\"h-6 rounded-full border px-2 text-kit-xs transition-colors\", preset === p.id ? \"border-[var(--kit-emphasis-line)] bg-kit-surface text-kit-fg\" : \"border-kit-line text-kit-fg-2 hover:border-kit-line-strong hover:text-kit-fg\")}\n >\n {p.label}\n </button>\n ))}\n </div>\n <div className=\"px-3 py-3\">\n {!preset ? (\n <p className=\"text-kit-xs text-kit-fg-3\">Pick a direction. You'll see the suggestion before anything changes.</p>\n ) : failed ? (\n <p role=\"alert\" className=\"text-kit-xs text-kit-danger-fg\">\n Couldn't rewrite {field.title.toLowerCase()}. Try again.\n </p>\n ) : out == null ? (\n <p className=\"text-kit-sm\">\n <Shimmer>Rewriting {field.title.toLowerCase()}…</Shimmer>\n </p>\n ) : (\n <div className=\"rounded-kit-lg bg-kit-subtle p-2.5 text-kit-sm leading-5 text-kit-fg\">\n <TypeOut text={out} />\n </div>\n )}\n </div>\n <div className=\"flex items-center justify-between gap-2 border-t border-kit-line px-3 py-2\">\n <Button size=\"xs\" variant=\"ghost\" onClick={onClose}>\n Discard\n </Button>\n <div className=\"flex gap-1\">\n {out || failed ? (\n <Button size=\"xs\" variant=\"ghost\" leftIcon={<IconRefresh stroke={1.5} />} onClick={() => preset && run(preset)}>\n Try again\n </Button>\n ) : null}\n <Button size=\"xs\" variant=\"primary\" disabled={!out} onClick={apply}>\n Apply\n </Button>\n </div>\n </div>\n </div>\n );\n}\n\n/* V2 components/motion.tsx Shimmer + TypeOut, kept local to the AI popover (their only kit user). */\nfunction Shimmer({ children }: { children: React.ReactNode }) {\n return (\n <span className=\"bg-[linear-gradient(90deg,var(--kit-fg-3)_0%,var(--kit-fg)_45%,var(--kit-fg-3)_90%)] bg-[length:200%_100%] bg-clip-text text-transparent [animation:kit-shimmer-text_1.6s_linear_infinite] motion-reduce:[animation:none]\">\n {children}\n </span>\n );\n}\nfunction TypeOut({ text, speed = 14 }: { text: string; speed?: number }) {\n const [n, setN] = React.useState(0);\n React.useEffect(() => {\n setN(0);\n const id = setInterval(() => {\n setN((x) => {\n const next = Math.min(text.length, x + Math.max(1, Math.round(text.length / 120)));\n if (next >= text.length) clearInterval(id);\n return next;\n });\n }, speed);\n return () => clearInterval(id);\n }, [text, speed]);\n return (\n <span>\n {text.slice(0, n)}\n {n < text.length ? <span className=\"ml-0.5 inline-block h-[1em] w-[2px] translate-y-[2px] animate-pulse bg-kit-fg\" /> : null}\n </span>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FrameView — what the panel shows for the current breadcrumb: the root fields, a drilled object / array item /
|
|
3
|
+
* slot block (with "2 of 4" stepper, variant switcher and per-slot layout settings), the one button screen,
|
|
4
|
+
* or a field's history as a stacked panel. Port of V2 engine/frame.tsx.
|
|
5
|
+
*
|
|
6
|
+
* FrameStage + useFrameNavigation — V2 schema-form's drill-in stage (direction-aware slide, scroll memory per frame,
|
|
7
|
+
* focus on the entering frame, Esc / ⌥↑↓). Exported here so SchemaForm wires them without re-deriving the motion.
|
|
8
|
+
*
|
|
9
|
+
* FrameSlots — the frame draws other lanes' pieces (FieldList / FieldSection from grouping, ButtonScreen from link,
|
|
10
|
+
* TableFrame from table). They arrive through context so this file never imports a module that does not exist yet;
|
|
11
|
+
* a missing slot falls back to a plain field list (FieldList), the raw value (ButtonScreen, through
|
|
12
|
+
* FallbackControl), a named note (TableFrame) or nothing (FieldSection). SchemaForm always hands ButtonScreen and TableFrame.
|
|
13
|
+
*/
|
|
14
|
+
import * as React from "react";
|
|
15
|
+
import { HISTORY_SEGMENT, type FieldGroup, type FieldPath, type FieldSchema, type Fieldset } from "../schema/types";
|
|
16
|
+
import type { Frame } from "../lib/frames";
|
|
17
|
+
export interface FrameFieldListProps {
|
|
18
|
+
fields: FieldSchema[];
|
|
19
|
+
fieldsets?: Fieldset[];
|
|
20
|
+
groups?: FieldGroup[];
|
|
21
|
+
basePath: FieldPath;
|
|
22
|
+
memoryKey: string;
|
|
23
|
+
}
|
|
24
|
+
export interface FrameSlots {
|
|
25
|
+
/** grouping lane: engine/field-list.tsx `FieldList` */
|
|
26
|
+
FieldList?: React.ComponentType<FrameFieldListProps>;
|
|
27
|
+
/** grouping lane: engine/grouping.tsx `FieldSection` (the slot-settings section of a slot block) */
|
|
28
|
+
FieldSection?: React.ComponentType<{
|
|
29
|
+
title: string;
|
|
30
|
+
description?: string;
|
|
31
|
+
collapsible?: boolean;
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
}>;
|
|
34
|
+
/** link lane: controls/link.tsx `ButtonScreen` + `normLink` (the "button" frame) */
|
|
35
|
+
ButtonScreen?: React.ComponentType<{
|
|
36
|
+
value: unknown;
|
|
37
|
+
onChange: (v: unknown) => void;
|
|
38
|
+
title: string;
|
|
39
|
+
readOnly?: boolean;
|
|
40
|
+
}>;
|
|
41
|
+
normLink?: (v: unknown) => {
|
|
42
|
+
label?: string;
|
|
43
|
+
};
|
|
44
|
+
/** table lane: controls/table.tsx `TableFrame` (tableRow / tableColumn frames) */
|
|
45
|
+
TableFrame?: React.ComponentType<{
|
|
46
|
+
frame: Frame;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export declare const FrameSlotsProvider: React.Provider<FrameSlots>;
|
|
50
|
+
export declare const useFrameSlots: () => FrameSlots;
|
|
51
|
+
export declare function FrameView({ frame, parentTitle }: {
|
|
52
|
+
frame: Frame;
|
|
53
|
+
parentTitle?: string;
|
|
54
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
/**
|
|
56
|
+
* The context line under a drilled frame's title: "Tier 1 of 3 in Tiers" for an item (the item noun is the item
|
|
57
|
+
* schema's title, which the adapter reads back from prod `ui.itemLabel`), "Address in Author" for an object.
|
|
58
|
+
*/
|
|
59
|
+
export declare function frameContext(frame: Frame, parentTitle?: string): string;
|
|
60
|
+
/**
|
|
61
|
+
* CPO D43 — the drilled frame's header answers "what am I editing, and where does it live?":
|
|
62
|
+
* [media?] Starter [↑] [↓] [⋯]
|
|
63
|
+
* Tier 1 of 3 in Tiers
|
|
64
|
+
* The big title lives HERE only; the breadcrumb above is the path (its current crumb is small, D38). Prev / next are
|
|
65
|
+
* labelled icon buttons whose tooltips name the sibling ("Previous tier: Starter"). No eyebrow, no duplicate counter.
|
|
66
|
+
* Title 14/24 semibold (owner call). The native title= on the truncating h2 is V2 parity (kit-engine deviation from
|
|
67
|
+
* the dashboard's no-title rule, see run ledger #32).
|
|
68
|
+
*/
|
|
69
|
+
export declare function FrameHeader({ frame, context, title }: {
|
|
70
|
+
frame: Frame;
|
|
71
|
+
context: string;
|
|
72
|
+
title: string;
|
|
73
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
74
|
+
/**
|
|
75
|
+
* V2 drew demo people (seed `currentUser` / `members`, a fixed "26 hours ago" / "3 days ago"). The kit has no seed:
|
|
76
|
+
* session versions carry their own `by` and `at`; the opened and published baselines have no author or time here, so
|
|
77
|
+
* their row says only what they are.
|
|
78
|
+
*/
|
|
79
|
+
export declare function HistoryView({ field, path }: {
|
|
80
|
+
field: FieldSchema;
|
|
81
|
+
path: FieldPath;
|
|
82
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
83
|
+
/** Navigate back from a field's history to the frame that shows the field. */
|
|
84
|
+
export declare function parentOfField(path: FieldPath): FieldPath;
|
|
85
|
+
/** The title shown as `parentTitle` for the current frame (the root crumb's label for depth 1). */
|
|
86
|
+
export declare function parentTitleOf(frames: Frame[], rootLabel: string): string | undefined;
|
|
87
|
+
/** Slide direction for a frame change: deeper → 1, shallower → −1, a sibling step → by index. */
|
|
88
|
+
export declare function frameDirection(prev: {
|
|
89
|
+
depth: number;
|
|
90
|
+
index: number;
|
|
91
|
+
key: string;
|
|
92
|
+
}, frames: Frame[], key: string): 0 | 1 | -1;
|
|
93
|
+
/**
|
|
94
|
+
* The drill-in stack's behaviour. `root` wraps the form (keys bubble to it), `scroller` is the scrolling element (or
|
|
95
|
+
* null when the host scrolls). Returns the current frame, its key, the slide direction and the form's onKeyDown.
|
|
96
|
+
*/
|
|
97
|
+
export declare function useFrameNavigation({ frames, navigate, root, scroller, }: {
|
|
98
|
+
frames: Frame[];
|
|
99
|
+
navigate: (path: FieldPath) => void;
|
|
100
|
+
root: React.RefObject<HTMLElement | null>;
|
|
101
|
+
scroller: React.RefObject<HTMLElement | null>;
|
|
102
|
+
}): {
|
|
103
|
+
current: Frame;
|
|
104
|
+
frameKey: string;
|
|
105
|
+
dir: number;
|
|
106
|
+
onKeyDown: (e: React.KeyboardEvent) => void;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* The frame body with V2's slide: 24px along the travel direction + fade, 220ms, ease [0.22, 1, 0.36, 1]; reduced
|
|
110
|
+
* motion keeps only the fade. `before` renders inside the root frame above its fields (the synced-from note).
|
|
111
|
+
*/
|
|
112
|
+
export declare function FrameStage({ frames, frameKey, dir, rootLabel, variant, before, }: {
|
|
113
|
+
frames: Frame[];
|
|
114
|
+
frameKey: string;
|
|
115
|
+
dir: number;
|
|
116
|
+
rootLabel: string;
|
|
117
|
+
variant: "panel" | "document";
|
|
118
|
+
before?: React.ReactNode;
|
|
119
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
120
|
+
export { HISTORY_SEGMENT };
|