@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
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { JsonControl } from "./json.js";
|
|
2
|
+
import { CONTROLS } from "../engine/kit-field.js";
|
|
3
|
+
import { ComponentSlotControl } from "./slot.js";
|
|
4
|
+
import { createElement } from "react";
|
|
5
|
+
//#region src/kit/controls/slot-register.ts
|
|
6
|
+
/**
|
|
7
|
+
* Lane L3: a component slot (a json field the host marks `componentSlot`) draws the slot control; every other json
|
|
8
|
+
* field keeps the json editor. Imported after json-register (kit barrel), so it wraps the registered json control.
|
|
9
|
+
*/
|
|
10
|
+
var Json = CONTROLS.json ?? JsonControl;
|
|
11
|
+
CONTROLS.json = function JsonOrSlotControl(props) {
|
|
12
|
+
return createElement(props.field.componentSlot ? ComponentSlotControl : Json, props);
|
|
13
|
+
};
|
|
14
|
+
//#endregion
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=slot-register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-register.js","names":[],"sources":["../../src/kit/controls/slot-register.ts"],"sourcesContent":["/**\n * Lane L3: a component slot (a json field the host marks `componentSlot`) draws the slot control; every other json\n * field keeps the json editor. Imported after json-register (kit barrel), so it wraps the registered json control.\n */\nimport { createElement } from \"react\";\nimport type { ControlProps } from \"../types\";\nimport { CONTROLS } from \"../engine/kit-field\";\nimport { JsonControl } from \"./json\";\nimport { ComponentSlotControl } from \"./slot\";\n\nconst Json = CONTROLS.json ?? JsonControl;\nCONTROLS.json = function JsonOrSlotControl(props: ControlProps) {\n return createElement(props.field.componentSlot ? ComponentSlotControl : Json, props);\n};\n"],"mappings":";;;;;;;;;AAUA,IAAM,OAAO,SAAS,QAAQ;AAC9B,SAAS,OAAO,SAAS,kBAAkB,OAAqB;AAC9D,QAAO,cAAc,MAAM,MAAM,gBAAgB,uBAAuB,MAAM,MAAM"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component slots (lane L3): the services the slot control reads and the reading of a stored slot value, declared as
|
|
3
|
+
* augmentations so context.tsx and schema/types.ts stay untouched by this lane.
|
|
4
|
+
*
|
|
5
|
+
* A prod `slot` prop holds component instances, not V2 blocks:
|
|
6
|
+
* single `{ componentId, overrides? }` (a detached slot is `{ componentId: "" }`)
|
|
7
|
+
* multiple `[{ componentId, overrides?, style?, window? }, …]`; a single object reads as a list of one
|
|
8
|
+
* The host marks such a field with `componentSlot` (the dock reads it off the prop's config) and the slot control draws
|
|
9
|
+
* it; the value is written back in exactly that shape, each item spread with the keys this control does not show.
|
|
10
|
+
*
|
|
11
|
+
* useSlotCatalog → a React HOOK: the components this slot may take, with the SERVER's insertability verdicts
|
|
12
|
+
* (GET /components/section-catalog) already turned into words, and the name of any component id
|
|
13
|
+
* SlotChild → the host's editor for one child's own props (its overrides), drawn under the child's row
|
|
14
|
+
*/
|
|
15
|
+
import type { ComponentType } from "react";
|
|
16
|
+
/** One component the slot picker lists. `insertable: false` always carries `reason`, a sentence the picker shows. */
|
|
17
|
+
export interface KitSlotEntry {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
/** the section family ("Hero"), shown as the picker's group */
|
|
21
|
+
category?: string | null;
|
|
22
|
+
description?: string | null;
|
|
23
|
+
icon?: string;
|
|
24
|
+
insertable: boolean;
|
|
25
|
+
reason?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface KitSlotCatalog {
|
|
28
|
+
entries: KitSlotEntry[];
|
|
29
|
+
loading?: boolean;
|
|
30
|
+
/** a whole sentence naming what failed ("Sections couldn't be loaded: …") */
|
|
31
|
+
error?: string;
|
|
32
|
+
/** a sentence under the picker's list naming what can never fill a slot and why (built-in sections) */
|
|
33
|
+
note?: string;
|
|
34
|
+
/** a component id's name; `missing` when the project has no such component (deleted, or another project's) */
|
|
35
|
+
nameOf: (componentId: string) => {
|
|
36
|
+
title: string;
|
|
37
|
+
missing?: boolean;
|
|
38
|
+
} | undefined;
|
|
39
|
+
}
|
|
40
|
+
export interface KitSlotChildProps {
|
|
41
|
+
componentId: string;
|
|
42
|
+
title: string;
|
|
43
|
+
overrides: Record<string, unknown>;
|
|
44
|
+
onChange: (next: Record<string, unknown>) => void;
|
|
45
|
+
readOnly?: boolean;
|
|
46
|
+
/** how many slots deep this child sits (1 for a top-level slot's child) */
|
|
47
|
+
depth: number;
|
|
48
|
+
}
|
|
49
|
+
/** The slot's own rules, mirrored from the prop's config so a save is not refused (BE slot-values.ts). */
|
|
50
|
+
export interface KitComponentSlot {
|
|
51
|
+
multiple: boolean;
|
|
52
|
+
/** config.componentIds: the only components it takes (empty or absent: any) */
|
|
53
|
+
componentIds?: string[];
|
|
54
|
+
/** config.minItems (multiple only) */
|
|
55
|
+
min: number;
|
|
56
|
+
/** config.maxItems, defaulted to 12 and capped at 50 (multiple only; a single slot holds one) */
|
|
57
|
+
max: number;
|
|
58
|
+
}
|
|
59
|
+
declare module "../context" {
|
|
60
|
+
interface KitServices {
|
|
61
|
+
useSlotCatalog?: (req: {
|
|
62
|
+
componentIds?: string[];
|
|
63
|
+
}) => KitSlotCatalog;
|
|
64
|
+
SlotChild?: ComponentType<KitSlotChildProps>;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
declare module "../schema/types" {
|
|
68
|
+
interface FieldSchema {
|
|
69
|
+
/** a component slot (prod `slot` prop): drawn by the slot control instead of the json editor */
|
|
70
|
+
componentSlot?: KitComponentSlot;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/** SLOT_MAX_ITEMS / SLOT_ITEMS_CAP (@bettercms-ai/types): the default and the hard cap of a multiple slot. */
|
|
74
|
+
export declare const SLOT_MAX_ITEMS = 12;
|
|
75
|
+
export declare const SLOT_ITEMS_CAP = 50;
|
|
76
|
+
/** The renderers' nesting cap: past it a tree renders as nothing, so the editor refuses to nest further. */
|
|
77
|
+
export declare const SLOT_DEPTH_MAX = 10;
|
|
78
|
+
export interface KitSlotItem {
|
|
79
|
+
componentId: string;
|
|
80
|
+
overrides?: Record<string, unknown>;
|
|
81
|
+
[key: string]: unknown;
|
|
82
|
+
}
|
|
83
|
+
export interface SlotReading {
|
|
84
|
+
items: KitSlotItem[];
|
|
85
|
+
/** the value is the component's own content (its child blocks), shown until an item is added */
|
|
86
|
+
inherited: boolean;
|
|
87
|
+
/** entries this control can't read and would drop on a write (V2 block children, malformed rows) */
|
|
88
|
+
unreadable: number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* A stored slot value as its instances (`slotItems`, the one reading of a slot value): a list is its items, a single
|
|
92
|
+
* `{ componentId }` is a list of one, a detached `{ componentId: "" }` is none. A non-empty list with no instance and no
|
|
93
|
+
* V2 child is the component's own child blocks (the inherited value), not something to drop.
|
|
94
|
+
*/
|
|
95
|
+
export declare function readSlot(value: unknown): SlotReading;
|
|
96
|
+
/** Write a multiple slot: the items as they are (no `_key` the engine's list helpers add, which prod never stores). */
|
|
97
|
+
export declare function slotList(items: unknown[]): KitSlotItem[];
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/kit/controls/slot-services.ts
|
|
2
|
+
var isObj = (v) => !!v && typeof v === "object" && !Array.isArray(v);
|
|
3
|
+
var isItem = (v) => isObj(v) && typeof v.componentId === "string" && v.componentId !== "";
|
|
4
|
+
/**
|
|
5
|
+
* A stored slot value as its instances (`slotItems`, the one reading of a slot value): a list is its items, a single
|
|
6
|
+
* `{ componentId }` is a list of one, a detached `{ componentId: "" }` is none. A non-empty list with no instance and no
|
|
7
|
+
* V2 child is the component's own child blocks (the inherited value), not something to drop.
|
|
8
|
+
*/
|
|
9
|
+
function readSlot(value) {
|
|
10
|
+
if (Array.isArray(value)) {
|
|
11
|
+
const items = value.filter(isItem);
|
|
12
|
+
const rest = value.filter((v) => !isItem(v));
|
|
13
|
+
const v2 = rest.filter((v) => isObj(v) && v.componentId === void 0 && ("_type" in v || "_key" in v));
|
|
14
|
+
const inherited = items.length === 0 && v2.length === 0 && rest.length > 0;
|
|
15
|
+
return {
|
|
16
|
+
items,
|
|
17
|
+
inherited,
|
|
18
|
+
unreadable: inherited ? 0 : rest.length
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
items: isItem(value) ? [value] : [],
|
|
23
|
+
inherited: false,
|
|
24
|
+
unreadable: 0
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** Write a multiple slot: the items as they are (no `_key` the engine's list helpers add, which prod never stores). */
|
|
28
|
+
function slotList(items) {
|
|
29
|
+
return items.filter(isItem).map((it) => {
|
|
30
|
+
if (!("_key" in it)) return it;
|
|
31
|
+
const { _key, ...rest } = it;
|
|
32
|
+
return rest;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { readSlot, slotList };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=slot-services.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot-services.js","names":[],"sources":["../../src/kit/controls/slot-services.ts"],"sourcesContent":["/**\n * Component slots (lane L3): the services the slot control reads and the reading of a stored slot value, declared as\n * augmentations so context.tsx and schema/types.ts stay untouched by this lane.\n *\n * A prod `slot` prop holds component instances, not V2 blocks:\n * single `{ componentId, overrides? }` (a detached slot is `{ componentId: \"\" }`)\n * multiple `[{ componentId, overrides?, style?, window? }, …]`; a single object reads as a list of one\n * The host marks such a field with `componentSlot` (the dock reads it off the prop's config) and the slot control draws\n * it; the value is written back in exactly that shape, each item spread with the keys this control does not show.\n *\n * useSlotCatalog → a React HOOK: the components this slot may take, with the SERVER's insertability verdicts\n * (GET /components/section-catalog) already turned into words, and the name of any component id\n * SlotChild → the host's editor for one child's own props (its overrides), drawn under the child's row\n */\nimport type { ComponentType } from \"react\";\n\n/** One component the slot picker lists. `insertable: false` always carries `reason`, a sentence the picker shows. */\nexport interface KitSlotEntry {\n id: string;\n title: string;\n /** the section family (\"Hero\"), shown as the picker's group */\n category?: string | null;\n description?: string | null;\n icon?: string;\n insertable: boolean;\n reason?: string;\n}\n\nexport interface KitSlotCatalog {\n entries: KitSlotEntry[];\n loading?: boolean;\n /** a whole sentence naming what failed (\"Sections couldn't be loaded: …\") */\n error?: string;\n /** a sentence under the picker's list naming what can never fill a slot and why (built-in sections) */\n note?: string;\n /** a component id's name; `missing` when the project has no such component (deleted, or another project's) */\n nameOf: (componentId: string) => { title: string; missing?: boolean } | undefined;\n}\n\nexport interface KitSlotChildProps {\n componentId: string;\n title: string;\n overrides: Record<string, unknown>;\n onChange: (next: Record<string, unknown>) => void;\n readOnly?: boolean;\n /** how many slots deep this child sits (1 for a top-level slot's child) */\n depth: number;\n}\n\n/** The slot's own rules, mirrored from the prop's config so a save is not refused (BE slot-values.ts). */\nexport interface KitComponentSlot {\n multiple: boolean;\n /** config.componentIds: the only components it takes (empty or absent: any) */\n componentIds?: string[];\n /** config.minItems (multiple only) */\n min: number;\n /** config.maxItems, defaulted to 12 and capped at 50 (multiple only; a single slot holds one) */\n max: number;\n}\n\ndeclare module \"../context\" {\n interface KitServices {\n useSlotCatalog?: (req: { componentIds?: string[] }) => KitSlotCatalog;\n SlotChild?: ComponentType<KitSlotChildProps>;\n }\n}\n\ndeclare module \"../schema/types\" {\n interface FieldSchema {\n /** a component slot (prod `slot` prop): drawn by the slot control instead of the json editor */\n componentSlot?: KitComponentSlot;\n }\n}\n\n/** SLOT_MAX_ITEMS / SLOT_ITEMS_CAP (@bettercms-ai/types): the default and the hard cap of a multiple slot. */\nexport const SLOT_MAX_ITEMS = 12;\nexport const SLOT_ITEMS_CAP = 50;\n/** The renderers' nesting cap: past it a tree renders as nothing, so the editor refuses to nest further. */\nexport const SLOT_DEPTH_MAX = 10;\n\nexport interface KitSlotItem {\n componentId: string;\n overrides?: Record<string, unknown>;\n [key: string]: unknown;\n}\n\nexport interface SlotReading {\n items: KitSlotItem[];\n /** the value is the component's own content (its child blocks), shown until an item is added */\n inherited: boolean;\n /** entries this control can't read and would drop on a write (V2 block children, malformed rows) */\n unreadable: number;\n}\n\nconst isObj = (v: unknown): v is Record<string, unknown> => !!v && typeof v === \"object\" && !Array.isArray(v);\nconst isItem = (v: unknown): v is KitSlotItem => isObj(v) && typeof v.componentId === \"string\" && v.componentId !== \"\";\n\n/**\n * A stored slot value as its instances (`slotItems`, the one reading of a slot value): a list is its items, a single\n * `{ componentId }` is a list of one, a detached `{ componentId: \"\" }` is none. A non-empty list with no instance and no\n * V2 child is the component's own child blocks (the inherited value), not something to drop.\n */\nexport function readSlot(value: unknown): SlotReading {\n if (Array.isArray(value)) {\n const items = value.filter(isItem);\n const rest = value.filter((v) => !isItem(v));\n const v2 = rest.filter((v) => isObj(v) && v.componentId === undefined && (\"_type\" in v || \"_key\" in v));\n const inherited = items.length === 0 && v2.length === 0 && rest.length > 0;\n return { items, inherited, unreadable: inherited ? 0 : rest.length };\n }\n return { items: isItem(value) ? [value] : [], inherited: false, unreadable: 0 };\n}\n\n/** Write a multiple slot: the items as they are (no `_key` the engine's list helpers add, which prod never stores). */\nexport function slotList(items: unknown[]): KitSlotItem[] {\n return items.filter(isItem).map((it) => {\n if (!(\"_key\" in it)) return it;\n const { _key, ...rest } = it;\n void _key;\n return rest as KitSlotItem;\n });\n}\n"],"mappings":";AA8FA,IAAM,SAAS,MAA6C,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC,MAAM,QAAQ,EAAE;AAC7G,IAAM,UAAU,MAAiC,MAAM,EAAE,IAAI,OAAO,EAAE,gBAAgB,YAAY,EAAE,gBAAgB;;;;;;AAOpH,SAAgB,SAAS,OAA6B;AACpD,KAAI,MAAM,QAAQ,MAAM,EAAE;EACxB,MAAM,QAAQ,MAAM,OAAO,OAAO;EAClC,MAAM,OAAO,MAAM,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;EAC5C,MAAM,KAAK,KAAK,QAAQ,MAAM,MAAM,EAAE,IAAI,EAAE,gBAAgB,KAAA,MAAc,WAAW,KAAK,UAAU,GAAG;EACvG,MAAM,YAAY,MAAM,WAAW,KAAK,GAAG,WAAW,KAAK,KAAK,SAAS;AACzE,SAAO;GAAE;GAAO;GAAW,YAAY,YAAY,IAAI,KAAK;GAAQ;;AAEtE,QAAO;EAAE,OAAO,OAAO,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE;EAAE,WAAW;EAAO,YAAY;EAAG;;;AAIjF,SAAgB,SAAS,OAAiC;AACxD,QAAO,MAAM,OAAO,OAAO,CAAC,KAAK,OAAO;AACtC,MAAI,EAAE,UAAU,IAAK,QAAO;EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS;AAE1B,SAAO;GACP"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* COMPONENT SLOT — a prop that holds component instances (prod `slot`), on the engine's slot surface (engine/slot.tsx,
|
|
3
|
+
* V2 HEAD 9829bf1): the block rows (icon tile, name, ⋯ menu, drag to reorder) and the compact searchable picker.
|
|
4
|
+
*
|
|
5
|
+
* What differs from V2's block slot is where the rows come from and what they store:
|
|
6
|
+
* - the picker lists the host's slot catalog (`useSlotCatalog`): the project's components with the SERVER's
|
|
7
|
+
* insertability verdict for each; one that can't go here stays in the list, disabled, with the reason under its name;
|
|
8
|
+
* - a row opens in place and edits that child's own props through the host's `SlotChild`;
|
|
9
|
+
* - the value is written in the stored shape (slot-services.ts): one `{ componentId, overrides? }`, or a list of them
|
|
10
|
+
* for a multiple slot, every item spread back with the keys this control does not show (style, window).
|
|
11
|
+
*
|
|
12
|
+
* Refusals are said in words, never by an inert control: no catalog service, an unreadable stored value, the nesting cap.
|
|
13
|
+
*/
|
|
14
|
+
import * as React from "react";
|
|
15
|
+
import type { ControlProps } from "../types";
|
|
16
|
+
import { type KitSlotEntry } from "./slot-services";
|
|
17
|
+
/** How many slots deep the control sits: the host's SlotChild editor sits inside a provider one level down. */
|
|
18
|
+
export declare const SlotDepthContext: React.Context<number>;
|
|
19
|
+
export declare function ComponentSlotControl({ field, value, onChange, readOnly, id, path }: ControlProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* The compact block picker (engine/slot.tsx BlockPicker), over the slot catalog: grouped by family, searchable, ↵ adds.
|
|
22
|
+
* A component the server says can't go here is listed disabled with its reason in place of the description.
|
|
23
|
+
*/
|
|
24
|
+
export declare function SlotPicker({ entries, loading, error, note, current, label, disabled, onPick, }: {
|
|
25
|
+
entries: KitSlotEntry[];
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
error?: string;
|
|
28
|
+
note?: string;
|
|
29
|
+
current?: string;
|
|
30
|
+
label: string;
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
onPick: (componentId: string) => void;
|
|
33
|
+
}): import("react/jsx-runtime").JSX.Element;
|
package/controls/slot.js
ADDED
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { KitIcon } from "../lib/icons.js";
|
|
3
|
+
import { useKitServices } from "../context.js";
|
|
4
|
+
import { Button } from "../ui/button.js";
|
|
5
|
+
import { Popover, PopoverContent, PopoverTrigger } from "../ui/overlay.js";
|
|
6
|
+
import { RowList, useListOps } from "../engine/array.js";
|
|
7
|
+
import { readSlot, slotList } from "./slot-services.js";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import { IconPlus, IconSearch } from "@tabler/icons-react";
|
|
10
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
//#region src/kit/controls/slot.tsx
|
|
12
|
+
/**
|
|
13
|
+
* COMPONENT SLOT — a prop that holds component instances (prod `slot`), on the engine's slot surface (engine/slot.tsx,
|
|
14
|
+
* V2 HEAD 9829bf1): the block rows (icon tile, name, ⋯ menu, drag to reorder) and the compact searchable picker.
|
|
15
|
+
*
|
|
16
|
+
* What differs from V2's block slot is where the rows come from and what they store:
|
|
17
|
+
* - the picker lists the host's slot catalog (`useSlotCatalog`): the project's components with the SERVER's
|
|
18
|
+
* insertability verdict for each; one that can't go here stays in the list, disabled, with the reason under its name;
|
|
19
|
+
* - a row opens in place and edits that child's own props through the host's `SlotChild`;
|
|
20
|
+
* - the value is written in the stored shape (slot-services.ts): one `{ componentId, overrides? }`, or a list of them
|
|
21
|
+
* for a multiple slot, every item spread back with the keys this control does not show (style, window).
|
|
22
|
+
*
|
|
23
|
+
* Refusals are said in words, never by an inert control: no catalog service, an unreadable stored value, the nesting cap.
|
|
24
|
+
*/
|
|
25
|
+
/** How many slots deep the control sits: the host's SlotChild editor sits inside a provider one level down. */
|
|
26
|
+
var SlotDepthContext = React.createContext(0);
|
|
27
|
+
var count = (n) => `${n} component${n === 1 ? "" : "s"}`;
|
|
28
|
+
var NO_CATALOG = {
|
|
29
|
+
entries: [],
|
|
30
|
+
nameOf: () => void 0
|
|
31
|
+
};
|
|
32
|
+
/** A note in words, labelable and focusable (the field label's `for` lands on it). */
|
|
33
|
+
function SlotNote({ id, children, tone = "muted" }) {
|
|
34
|
+
return /* @__PURE__ */ jsx("output", {
|
|
35
|
+
id,
|
|
36
|
+
role: "note",
|
|
37
|
+
tabIndex: id ? 0 : void 0,
|
|
38
|
+
className: cn("block rounded-kit-sm text-kit-xs outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-kit-focus-ring focus-visible:[outline-style:solid] [html[data-input-modality=pointer]_&]:focus-visible:outline-none", tone === "warning" ? "text-kit-warning-fg" : "text-kit-fg-3"),
|
|
39
|
+
children
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
function ComponentSlotControl({ field, value, onChange, readOnly, id, path }) {
|
|
43
|
+
const slot = field.componentSlot ?? {
|
|
44
|
+
multiple: false,
|
|
45
|
+
min: 0,
|
|
46
|
+
max: 1
|
|
47
|
+
};
|
|
48
|
+
const depth = React.useContext(SlotDepthContext);
|
|
49
|
+
const { useSlotCatalog, SlotChild } = useKitServices();
|
|
50
|
+
const catalog = useSlotCatalog ? useSlotCatalog({ componentIds: slot.componentIds }) : null;
|
|
51
|
+
const read = readSlot(value);
|
|
52
|
+
const items = read.items;
|
|
53
|
+
const max = slot.multiple ? slot.max : 1;
|
|
54
|
+
const [openId, setOpenId] = React.useState(null);
|
|
55
|
+
const nameOf = (componentId) => (catalog ?? NO_CATALOG).nameOf(componentId) ?? { title: catalog?.loading ? "Loading…" : componentId };
|
|
56
|
+
const locked = readOnly || read.unreadable > 0;
|
|
57
|
+
const write = (next) => {
|
|
58
|
+
setOpenId(null);
|
|
59
|
+
if (slot.multiple) return onChange(slotList(next));
|
|
60
|
+
const [first] = slotList(next);
|
|
61
|
+
onChange(first ?? { componentId: "" });
|
|
62
|
+
};
|
|
63
|
+
const opsField = {
|
|
64
|
+
...field,
|
|
65
|
+
validation: {
|
|
66
|
+
...field.validation,
|
|
67
|
+
min: slot.multiple ? slot.min : 0,
|
|
68
|
+
max
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
const ops = useListOps(opsField, path, items, write);
|
|
72
|
+
if (depth >= 10) return /* @__PURE__ */ jsx(SlotNote, {
|
|
73
|
+
id,
|
|
74
|
+
children: "Nested component limit reached. A slot this deep would render as nothing, so it can’t hold more components here."
|
|
75
|
+
});
|
|
76
|
+
const pick = (componentId) => {
|
|
77
|
+
if (!slot.multiple) {
|
|
78
|
+
const cur = items[0];
|
|
79
|
+
onChange(cur && cur.componentId === componentId ? cur : { componentId });
|
|
80
|
+
setOpenId(null);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (items.length >= max) return;
|
|
84
|
+
onChange([...items, { componentId }]);
|
|
85
|
+
setOpenId(`i${items.length}`);
|
|
86
|
+
};
|
|
87
|
+
const setOverrides = (index, overrides) => {
|
|
88
|
+
const next = items.map((it, i) => i === index ? {
|
|
89
|
+
...it,
|
|
90
|
+
overrides
|
|
91
|
+
} : it);
|
|
92
|
+
if (slot.multiple) onChange(next);
|
|
93
|
+
else onChange({
|
|
94
|
+
componentId: next[0].componentId,
|
|
95
|
+
overrides
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
const rows = items.map((it, i) => {
|
|
99
|
+
const name = nameOf(it.componentId);
|
|
100
|
+
const entry = catalog?.entries.find((e) => e.id === it.componentId);
|
|
101
|
+
return {
|
|
102
|
+
id: `i${i}`,
|
|
103
|
+
index: i,
|
|
104
|
+
item: it,
|
|
105
|
+
path: [...path, i],
|
|
106
|
+
preview: {
|
|
107
|
+
title: name.missing ? "Missing component" : name.title,
|
|
108
|
+
icon: entry?.icon ?? "box",
|
|
109
|
+
empty: false
|
|
110
|
+
},
|
|
111
|
+
extra: name.missing ? "Deleted, or not in this project. Replace or remove it." : entry?.category ?? `Component ${i + 1} of ${items.length}`
|
|
112
|
+
};
|
|
113
|
+
});
|
|
114
|
+
const picker = catalog ? /* @__PURE__ */ jsx(SlotPicker, {
|
|
115
|
+
entries: catalog.entries,
|
|
116
|
+
loading: catalog.loading,
|
|
117
|
+
error: catalog.error,
|
|
118
|
+
note: catalog.note,
|
|
119
|
+
current: slot.multiple ? void 0 : items[0]?.componentId,
|
|
120
|
+
label: slot.multiple ? "Add component" : items.length ? "Replace component" : "Choose a component",
|
|
121
|
+
disabled: locked || slot.multiple && items.length >= max,
|
|
122
|
+
onPick: pick
|
|
123
|
+
}) : null;
|
|
124
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
125
|
+
className: "flex min-w-0 flex-col gap-1.5",
|
|
126
|
+
"data-slot": "kit-component-slot",
|
|
127
|
+
children: [
|
|
128
|
+
read.unreadable > 0 ? /* @__PURE__ */ jsxs(SlotNote, {
|
|
129
|
+
tone: "warning",
|
|
130
|
+
children: [
|
|
131
|
+
read.unreadable === 1 ? "One child here isn't a component instance" : `${read.unreadable} children here aren't component instances`,
|
|
132
|
+
" (blocks written by another editor). This editor would drop ",
|
|
133
|
+
read.unreadable === 1 ? "it" : "them",
|
|
134
|
+
" on save, so the slot is shown read-only and its value is kept."
|
|
135
|
+
]
|
|
136
|
+
}) : null,
|
|
137
|
+
read.inherited && items.length === 0 ? /* @__PURE__ */ jsx(SlotNote, { children: "Shows the component’s own content until a component is added here." }) : null,
|
|
138
|
+
/* @__PURE__ */ jsx("div", {
|
|
139
|
+
id,
|
|
140
|
+
tabIndex: -1,
|
|
141
|
+
className: "min-w-0 outline-none",
|
|
142
|
+
children: /* @__PURE__ */ jsx(RowList, {
|
|
143
|
+
field: opsField,
|
|
144
|
+
rows,
|
|
145
|
+
readOnly: locked,
|
|
146
|
+
layout: "list",
|
|
147
|
+
mode: "inline",
|
|
148
|
+
openId,
|
|
149
|
+
onOpen: (r) => setOpenId(openId === r.id ? null : r.id),
|
|
150
|
+
onCloseInline: () => setOpenId(null),
|
|
151
|
+
ops,
|
|
152
|
+
renderInline: (r) => {
|
|
153
|
+
const it = r.item;
|
|
154
|
+
const title = r.preview.title;
|
|
155
|
+
if (nameOf(it.componentId).missing) return /* @__PURE__ */ jsx(SlotNote, { children: "This component no longer exists, so its props can’t be edited. Replace it or remove it." });
|
|
156
|
+
if (!SlotChild) return /* @__PURE__ */ jsxs(SlotNote, { children: [
|
|
157
|
+
"This editor can’t open ",
|
|
158
|
+
title,
|
|
159
|
+
"’s own props."
|
|
160
|
+
] });
|
|
161
|
+
return /* @__PURE__ */ jsx(SlotDepthContext.Provider, {
|
|
162
|
+
value: depth + 1,
|
|
163
|
+
children: /* @__PURE__ */ jsx(SlotChild, {
|
|
164
|
+
componentId: it.componentId,
|
|
165
|
+
title,
|
|
166
|
+
overrides: it.overrides && typeof it.overrides === "object" ? it.overrides : {},
|
|
167
|
+
onChange: (o) => setOverrides(r.index, o),
|
|
168
|
+
readOnly: locked,
|
|
169
|
+
depth: depth + 1
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
},
|
|
173
|
+
leading: (r) => /* @__PURE__ */ jsx("span", {
|
|
174
|
+
className: "flex size-7 shrink-0 items-center justify-center rounded-kit-md border border-kit-line bg-kit-control-bg text-kit-fg-2 shadow-kit-xs",
|
|
175
|
+
children: /* @__PURE__ */ jsx(KitIcon, {
|
|
176
|
+
name: r.preview.icon,
|
|
177
|
+
className: "size-4"
|
|
178
|
+
})
|
|
179
|
+
}),
|
|
180
|
+
emptyLabel: slot.multiple ? "No components yet. Add one to start composing." : "No component yet. Choose one to fill this slot.",
|
|
181
|
+
addButton: picker ?? /* @__PURE__ */ jsxs(SlotNote, { children: [
|
|
182
|
+
"No component library is connected to this editor, so ",
|
|
183
|
+
field.title,
|
|
184
|
+
" can’t be changed here."
|
|
185
|
+
] })
|
|
186
|
+
})
|
|
187
|
+
}),
|
|
188
|
+
slot.multiple ? /* @__PURE__ */ jsxs("span", {
|
|
189
|
+
className: "text-kit-xs text-kit-fg-3",
|
|
190
|
+
children: [items.length >= max ? `This slot holds at most ${count(max)}.` : slot.min > 0 ? `Between ${slot.min} and ${count(max)}.` : `Up to ${count(max)}.`, slot.min > 0 && items.length > 0 && items.length <= slot.min ? ` It needs at least ${slot.min}, so none can be removed.` : ""]
|
|
191
|
+
}) : null
|
|
192
|
+
]
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* The compact block picker (engine/slot.tsx BlockPicker), over the slot catalog: grouped by family, searchable, ↵ adds.
|
|
197
|
+
* A component the server says can't go here is listed disabled with its reason in place of the description.
|
|
198
|
+
*/
|
|
199
|
+
function SlotPicker({ entries, loading, error, note, current, label, disabled, onPick }) {
|
|
200
|
+
const [open, setOpen] = React.useState(false);
|
|
201
|
+
const [q, setQ] = React.useState("");
|
|
202
|
+
const [active, setActive] = React.useState(0);
|
|
203
|
+
const listId = React.useId();
|
|
204
|
+
const list = entries.filter((b) => !q || `${b.title} ${b.category ?? ""} ${b.description ?? ""}`.toLowerCase().includes(q.toLowerCase()));
|
|
205
|
+
const cats = Array.from(new Set(list.map((b) => b.category || "Components")));
|
|
206
|
+
const flat = cats.flatMap((c) => list.filter((b) => (b.category || "Components") === c));
|
|
207
|
+
const choose = (b) => {
|
|
208
|
+
if (!b || !b.insertable) return;
|
|
209
|
+
onPick(b.id);
|
|
210
|
+
setOpen(false);
|
|
211
|
+
setQ("");
|
|
212
|
+
};
|
|
213
|
+
const optionId = (i) => `${listId}-${i}`;
|
|
214
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
215
|
+
open,
|
|
216
|
+
onOpenChange: (o) => {
|
|
217
|
+
setOpen(o);
|
|
218
|
+
setQ("");
|
|
219
|
+
setActive(0);
|
|
220
|
+
},
|
|
221
|
+
children: [/* @__PURE__ */ jsx(PopoverTrigger, {
|
|
222
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
223
|
+
size: "sm",
|
|
224
|
+
variant: "ghost",
|
|
225
|
+
className: "text-kit-fg-2",
|
|
226
|
+
leftIcon: /* @__PURE__ */ jsx(IconPlus, { stroke: 1.5 }),
|
|
227
|
+
disabled
|
|
228
|
+
}),
|
|
229
|
+
children: label
|
|
230
|
+
}), /* @__PURE__ */ jsxs(PopoverContent, {
|
|
231
|
+
className: "w-[300px] p-0",
|
|
232
|
+
align: "start",
|
|
233
|
+
children: [
|
|
234
|
+
/* @__PURE__ */ jsxs("label", {
|
|
235
|
+
className: "flex h-10 items-center gap-2 border-b border-kit-line px-3 text-kit-fg-3",
|
|
236
|
+
children: [/* @__PURE__ */ jsx(IconSearch, {
|
|
237
|
+
className: "size-4 shrink-0",
|
|
238
|
+
stroke: 1.5,
|
|
239
|
+
"aria-hidden": true
|
|
240
|
+
}), /* @__PURE__ */ jsx("input", {
|
|
241
|
+
autoFocus: true,
|
|
242
|
+
value: q,
|
|
243
|
+
onChange: (e) => {
|
|
244
|
+
setQ(e.target.value);
|
|
245
|
+
setActive(0);
|
|
246
|
+
},
|
|
247
|
+
onKeyDown: (e) => {
|
|
248
|
+
if (e.key === "ArrowDown") {
|
|
249
|
+
e.preventDefault();
|
|
250
|
+
setActive((a) => (a + 1) % Math.max(1, flat.length));
|
|
251
|
+
} else if (e.key === "ArrowUp") {
|
|
252
|
+
e.preventDefault();
|
|
253
|
+
setActive((a) => (a - 1 + flat.length) % Math.max(1, flat.length));
|
|
254
|
+
} else if (e.key === "Enter") {
|
|
255
|
+
e.preventDefault();
|
|
256
|
+
choose(flat[active]);
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
placeholder: "Search components",
|
|
260
|
+
"aria-label": "Search components",
|
|
261
|
+
role: "combobox",
|
|
262
|
+
"aria-expanded": true,
|
|
263
|
+
"aria-controls": listId,
|
|
264
|
+
"aria-activedescendant": flat.length ? optionId(Math.min(active, flat.length - 1)) : void 0,
|
|
265
|
+
className: "h-full min-w-0 flex-1 bg-transparent text-kit-sm text-kit-fg outline-none placeholder:text-kit-fg-3"
|
|
266
|
+
})]
|
|
267
|
+
}),
|
|
268
|
+
/* @__PURE__ */ jsxs("div", {
|
|
269
|
+
id: listId,
|
|
270
|
+
className: "max-h-80 overflow-y-auto p-1",
|
|
271
|
+
role: "listbox",
|
|
272
|
+
"aria-label": "Components",
|
|
273
|
+
"aria-busy": loading || void 0,
|
|
274
|
+
children: [
|
|
275
|
+
loading && entries.length === 0 ? /* @__PURE__ */ jsx("p", {
|
|
276
|
+
role: "status",
|
|
277
|
+
className: "px-3 py-6 text-center text-kit-sm text-kit-fg-3",
|
|
278
|
+
children: "Loading components…"
|
|
279
|
+
}) : null,
|
|
280
|
+
!loading && !error && flat.length === 0 ? /* @__PURE__ */ jsx("p", {
|
|
281
|
+
className: "px-3 py-6 text-center text-kit-sm text-kit-fg-3",
|
|
282
|
+
children: entries.length ? "No components match" : "This project has no components that can go here yet."
|
|
283
|
+
}) : null,
|
|
284
|
+
error ? /* @__PURE__ */ jsx("p", {
|
|
285
|
+
role: "alert",
|
|
286
|
+
className: "px-3 py-3 text-kit-xs text-kit-danger-fg",
|
|
287
|
+
children: error
|
|
288
|
+
}) : null,
|
|
289
|
+
cats.map((c) => /* @__PURE__ */ jsxs("div", {
|
|
290
|
+
role: "group",
|
|
291
|
+
"aria-label": c,
|
|
292
|
+
className: "pb-1",
|
|
293
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
294
|
+
"aria-hidden": true,
|
|
295
|
+
className: "px-2 pb-1 pt-1.5 text-kit-2xs font-medium text-kit-fg-3",
|
|
296
|
+
children: c
|
|
297
|
+
}), list.filter((b) => (b.category || "Components") === c).map((b) => {
|
|
298
|
+
const i = flat.indexOf(b);
|
|
299
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
300
|
+
id: optionId(i),
|
|
301
|
+
role: "option",
|
|
302
|
+
"aria-selected": b.id === current,
|
|
303
|
+
"aria-disabled": !b.insertable || void 0,
|
|
304
|
+
onMouseEnter: () => setActive(i),
|
|
305
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
306
|
+
onClick: () => choose(b),
|
|
307
|
+
className: cn("flex w-full items-center gap-2.5 rounded-kit-md p-1.5 text-left", b.insertable ? "cursor-pointer" : "cursor-not-allowed", i === active && "bg-kit-hover"),
|
|
308
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
309
|
+
className: cn("flex size-8 shrink-0 items-center justify-center rounded-kit-md border border-kit-line bg-kit-surface text-kit-fg-2 shadow-kit-xs", !b.insertable && "opacity-50"),
|
|
310
|
+
children: /* @__PURE__ */ jsx(KitIcon, {
|
|
311
|
+
name: b.icon ?? "box",
|
|
312
|
+
className: "size-4"
|
|
313
|
+
})
|
|
314
|
+
}), /* @__PURE__ */ jsxs("span", {
|
|
315
|
+
className: "min-w-0 flex-1",
|
|
316
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
317
|
+
className: cn("block truncate text-kit-sm", b.insertable ? "text-kit-fg" : "text-kit-fg-3"),
|
|
318
|
+
children: b.title
|
|
319
|
+
}), !b.insertable && b.reason ? /* @__PURE__ */ jsx("span", {
|
|
320
|
+
className: "block text-kit-xs text-kit-fg-3",
|
|
321
|
+
children: b.reason
|
|
322
|
+
}) : b.description ? /* @__PURE__ */ jsx("span", {
|
|
323
|
+
className: "block truncate text-kit-xs text-kit-fg-3",
|
|
324
|
+
children: b.description
|
|
325
|
+
}) : null]
|
|
326
|
+
})]
|
|
327
|
+
}, b.id);
|
|
328
|
+
})]
|
|
329
|
+
}, c))
|
|
330
|
+
]
|
|
331
|
+
}),
|
|
332
|
+
note ? /* @__PURE__ */ jsx("p", {
|
|
333
|
+
className: "border-t border-kit-line px-3 py-2 text-kit-xs text-kit-fg-3",
|
|
334
|
+
children: note
|
|
335
|
+
}) : null,
|
|
336
|
+
/* @__PURE__ */ jsx("div", {
|
|
337
|
+
"data-hint": "shortcuts",
|
|
338
|
+
className: "border-t border-kit-line px-3 py-1.5 text-kit-2xs text-kit-fg-3",
|
|
339
|
+
children: "↵ add · type to search"
|
|
340
|
+
})
|
|
341
|
+
]
|
|
342
|
+
})]
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
//#endregion
|
|
346
|
+
export { ComponentSlotControl };
|
|
347
|
+
|
|
348
|
+
//# sourceMappingURL=slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slot.js","names":[],"sources":["../../src/kit/controls/slot.tsx"],"sourcesContent":["/**\n * COMPONENT SLOT — a prop that holds component instances (prod `slot`), on the engine's slot surface (engine/slot.tsx,\n * V2 HEAD 9829bf1): the block rows (icon tile, name, ⋯ menu, drag to reorder) and the compact searchable picker.\n *\n * What differs from V2's block slot is where the rows come from and what they store:\n * - the picker lists the host's slot catalog (`useSlotCatalog`): the project's components with the SERVER's\n * insertability verdict for each; one that can't go here stays in the list, disabled, with the reason under its name;\n * - a row opens in place and edits that child's own props through the host's `SlotChild`;\n * - the value is written in the stored shape (slot-services.ts): one `{ componentId, overrides? }`, or a list of them\n * for a multiple slot, every item spread back with the keys this control does not show (style, window).\n *\n * Refusals are said in words, never by an inert control: no catalog service, an unreadable stored value, the nesting cap.\n */\nimport * as React from \"react\";\nimport { IconPlus, IconSearch } from \"@tabler/icons-react\";\nimport { useKitServices } from \"../context\";\nimport { KitIcon } from \"../lib/icons\";\nimport { cn } from \"../lib/cn\";\nimport { Button } from \"../ui/button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../ui/overlay\";\nimport { RowList, useListOps, type RowModel } from \"../engine/array\";\nimport type { FieldSchema } from \"../schema/types\";\nimport type { ControlProps } from \"../types\";\nimport { readSlot, slotList, SLOT_DEPTH_MAX, type KitComponentSlot, type KitSlotEntry, type KitSlotItem } from \"./slot-services\";\n\n/** How many slots deep the control sits: the host's SlotChild editor sits inside a provider one level down. */\nexport const SlotDepthContext = React.createContext(0);\n\nconst count = (n: number) => `${n} component${n === 1 ? \"\" : \"s\"}`;\nconst NO_CATALOG = { entries: [] as KitSlotEntry[], nameOf: () => undefined };\n\n/** A note in words, labelable and focusable (the field label's `for` lands on it). */\nfunction SlotNote({ id, children, tone = \"muted\" }: { id?: string; children: React.ReactNode; tone?: \"muted\" | \"warning\" }) {\n return (\n <output\n id={id}\n role=\"note\"\n tabIndex={id ? 0 : undefined}\n className={cn(\n \"block rounded-kit-sm text-kit-xs outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-kit-focus-ring focus-visible:[outline-style:solid] [html[data-input-modality=pointer]_&]:focus-visible:outline-none\",\n tone === \"warning\" ? \"text-kit-warning-fg\" : \"text-kit-fg-3\",\n )}\n >\n {children}\n </output>\n );\n}\n\nexport function ComponentSlotControl({ field, value, onChange, readOnly, id, path }: ControlProps) {\n const slot: KitComponentSlot = field.componentSlot ?? { multiple: false, min: 0, max: 1 };\n const depth = React.useContext(SlotDepthContext);\n const { useSlotCatalog, SlotChild } = useKitServices();\n // a hook service: one identity for the life of the form, so it is called on every render or never\n const catalog = useSlotCatalog ? useSlotCatalog({ componentIds: slot.componentIds }) : null; // eslint-disable-line react-hooks/rules-of-hooks\n const read = readSlot(value);\n const items = read.items;\n const max = slot.multiple ? slot.max : 1;\n const [openId, setOpenId] = React.useState<string | null>(null);\n const nameOf = (componentId: string) => (catalog ?? NO_CATALOG).nameOf(componentId) ?? { title: catalog?.loading ? \"Loading…\" : componentId };\n const locked = readOnly || read.unreadable > 0;\n\n /* writes: the stored shape, never a `_key` (useListOps' duplicate adds one) */\n const write = (next: unknown[]) => {\n setOpenId(null);\n if (slot.multiple) return onChange(slotList(next));\n const [first] = slotList(next);\n onChange(first ?? { componentId: \"\" });\n };\n const opsField: FieldSchema = { ...field, validation: { ...field.validation, min: slot.multiple ? slot.min : 0, max } };\n const ops = useListOps(opsField, path, items, write);\n if (depth >= SLOT_DEPTH_MAX) return <SlotNote id={id}>Nested component limit reached. A slot this deep would render as nothing, so it can’t hold more components here.</SlotNote>;\n const pick = (componentId: string) => {\n if (!slot.multiple) {\n const cur = items[0];\n // a different component's overrides are keyed by the old component's props: dropped, never half-applied\n onChange(cur && cur.componentId === componentId ? cur : { componentId });\n setOpenId(null);\n return;\n }\n if (items.length >= max) return;\n onChange([...items, { componentId }]);\n setOpenId(`i${items.length}`);\n };\n const setOverrides = (index: number, overrides: Record<string, unknown>) => {\n const next = items.map((it, i) => (i === index ? { ...it, overrides } : it));\n if (slot.multiple) onChange(next);\n else onChange({ componentId: next[0].componentId, overrides });\n };\n\n const rows: RowModel[] = items.map((it, i) => {\n const name = nameOf(it.componentId);\n const entry = catalog?.entries.find((e) => e.id === it.componentId);\n return {\n id: `i${i}`,\n index: i,\n item: it,\n path: [...path, i],\n preview: { title: name.missing ? \"Missing component\" : name.title, icon: entry?.icon ?? \"box\", empty: false },\n extra: name.missing ? \"Deleted, or not in this project. Replace or remove it.\" : (entry?.category ?? `Component ${i + 1} of ${items.length}`),\n };\n });\n\n const picker = catalog ? (\n <SlotPicker\n entries={catalog.entries}\n loading={catalog.loading}\n error={catalog.error}\n note={catalog.note}\n current={slot.multiple ? undefined : items[0]?.componentId}\n label={slot.multiple ? \"Add component\" : items.length ? \"Replace component\" : \"Choose a component\"}\n disabled={locked || (slot.multiple && items.length >= max)}\n onPick={pick}\n />\n ) : null;\n\n return (\n <div className=\"flex min-w-0 flex-col gap-1.5\" data-slot=\"kit-component-slot\">\n {read.unreadable > 0 ? (\n <SlotNote tone=\"warning\">\n {read.unreadable === 1 ? \"One child here isn't a component instance\" : `${read.unreadable} children here aren't component instances`} (blocks written by another editor). This editor\n would drop {read.unreadable === 1 ? \"it\" : \"them\"} on save, so the slot is shown read-only and its value is kept.\n </SlotNote>\n ) : null}\n {read.inherited && items.length === 0 ? <SlotNote>Shows the component’s own content until a component is added here.</SlotNote> : null}\n <div id={id} tabIndex={-1} className=\"min-w-0 outline-none\">\n <RowList\n field={opsField}\n rows={rows}\n readOnly={locked}\n layout=\"list\"\n mode=\"inline\"\n openId={openId}\n onOpen={(r) => setOpenId(openId === r.id ? null : r.id)}\n onCloseInline={() => setOpenId(null)}\n ops={ops}\n renderInline={(r) => {\n const it = r.item as KitSlotItem;\n const title = r.preview.title;\n if (nameOf(it.componentId).missing) return <SlotNote>This component no longer exists, so its props can’t be edited. Replace it or remove it.</SlotNote>;\n if (!SlotChild) return <SlotNote>This editor can’t open {title}’s own props.</SlotNote>;\n return (\n <SlotDepthContext.Provider value={depth + 1}>\n <SlotChild\n componentId={it.componentId}\n title={title}\n overrides={it.overrides && typeof it.overrides === \"object\" ? it.overrides : {}}\n onChange={(o) => setOverrides(r.index, o)}\n readOnly={locked}\n depth={depth + 1}\n />\n </SlotDepthContext.Provider>\n );\n }}\n leading={(r) => (\n <span className=\"flex size-7 shrink-0 items-center justify-center rounded-kit-md border border-kit-line bg-kit-control-bg text-kit-fg-2 shadow-kit-xs\">\n <KitIcon name={r.preview.icon} className=\"size-4\" />\n </span>\n )}\n emptyLabel={slot.multiple ? \"No components yet. Add one to start composing.\" : \"No component yet. Choose one to fill this slot.\"}\n addButton={picker ?? <SlotNote>No component library is connected to this editor, so {field.title} can’t be changed here.</SlotNote>}\n />\n </div>\n {slot.multiple ? (\n <span className=\"text-kit-xs text-kit-fg-3\">\n {items.length >= max ? `This slot holds at most ${count(max)}.` : slot.min > 0 ? `Between ${slot.min} and ${count(max)}.` : `Up to ${count(max)}.`}\n {slot.min > 0 && items.length > 0 && items.length <= slot.min ? ` It needs at least ${slot.min}, so none can be removed.` : \"\"}\n </span>\n ) : null}\n </div>\n );\n}\n\n/**\n * The compact block picker (engine/slot.tsx BlockPicker), over the slot catalog: grouped by family, searchable, ↵ adds.\n * A component the server says can't go here is listed disabled with its reason in place of the description.\n */\nexport function SlotPicker({\n entries,\n loading,\n error,\n note,\n current,\n label,\n disabled,\n onPick,\n}: {\n entries: KitSlotEntry[];\n loading?: boolean;\n error?: string;\n note?: string;\n current?: string;\n label: string;\n disabled?: boolean;\n onPick: (componentId: string) => void;\n}) {\n const [open, setOpen] = React.useState(false);\n const [q, setQ] = React.useState(\"\");\n const [active, setActive] = React.useState(0);\n const listId = React.useId();\n const list = entries.filter((b) => !q || `${b.title} ${b.category ?? \"\"} ${b.description ?? \"\"}`.toLowerCase().includes(q.toLowerCase()));\n const cats = Array.from(new Set(list.map((b) => b.category || \"Components\")));\n const flat = cats.flatMap((c) => list.filter((b) => (b.category || \"Components\") === c));\n const choose = (b: KitSlotEntry | undefined) => {\n if (!b || !b.insertable) return;\n onPick(b.id);\n setOpen(false);\n setQ(\"\");\n };\n const optionId = (i: number) => `${listId}-${i}`;\n return (\n <Popover\n open={open}\n onOpenChange={(o) => {\n setOpen(o);\n setQ(\"\");\n setActive(0);\n }}\n >\n <PopoverTrigger render={<Button size=\"sm\" variant=\"ghost\" className=\"text-kit-fg-2\" leftIcon={<IconPlus stroke={1.5} />} disabled={disabled} />}>{label}</PopoverTrigger>\n <PopoverContent className=\"w-[300px] p-0\" align=\"start\">\n <label className=\"flex h-10 items-center gap-2 border-b border-kit-line px-3 text-kit-fg-3\">\n <IconSearch className=\"size-4 shrink-0\" stroke={1.5} aria-hidden />\n <input\n autoFocus\n value={q}\n onChange={(e) => {\n setQ(e.target.value);\n setActive(0);\n }}\n onKeyDown={(e) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setActive((a) => (a + 1) % Math.max(1, flat.length));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActive((a) => (a - 1 + flat.length) % Math.max(1, flat.length));\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n choose(flat[active]);\n }\n }}\n placeholder=\"Search components\"\n aria-label=\"Search components\"\n role=\"combobox\"\n aria-expanded\n aria-controls={listId}\n aria-activedescendant={flat.length ? optionId(Math.min(active, flat.length - 1)) : undefined}\n className=\"h-full min-w-0 flex-1 bg-transparent text-kit-sm text-kit-fg outline-none placeholder:text-kit-fg-3\"\n />\n </label>\n <div id={listId} className=\"max-h-80 overflow-y-auto p-1\" role=\"listbox\" aria-label=\"Components\" aria-busy={loading || undefined}>\n {loading && entries.length === 0 ? (\n <p role=\"status\" className=\"px-3 py-6 text-center text-kit-sm text-kit-fg-3\">\n Loading components…\n </p>\n ) : null}\n {!loading && !error && flat.length === 0 ? <p className=\"px-3 py-6 text-center text-kit-sm text-kit-fg-3\">{entries.length ? \"No components match\" : \"This project has no components that can go here yet.\"}</p> : null}\n {error ? (\n <p role=\"alert\" className=\"px-3 py-3 text-kit-xs text-kit-danger-fg\">\n {error}\n </p>\n ) : null}\n {cats.map((c) => (\n <div key={c} role=\"group\" aria-label={c} className=\"pb-1\">\n <div aria-hidden className=\"px-2 pb-1 pt-1.5 text-kit-2xs font-medium text-kit-fg-3\">\n {c}\n </div>\n {list\n .filter((b) => (b.category || \"Components\") === c)\n .map((b) => {\n const i = flat.indexOf(b);\n return (\n <div\n key={b.id}\n id={optionId(i)}\n role=\"option\"\n aria-selected={b.id === current}\n aria-disabled={!b.insertable || undefined}\n onMouseEnter={() => setActive(i)}\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => choose(b)}\n className={cn(\"flex w-full items-center gap-2.5 rounded-kit-md p-1.5 text-left\", b.insertable ? \"cursor-pointer\" : \"cursor-not-allowed\", i === active && \"bg-kit-hover\")}\n >\n <span className={cn(\"flex size-8 shrink-0 items-center justify-center rounded-kit-md border border-kit-line bg-kit-surface text-kit-fg-2 shadow-kit-xs\", !b.insertable && \"opacity-50\")}>\n <KitIcon name={b.icon ?? \"box\"} className=\"size-4\" />\n </span>\n <span className=\"min-w-0 flex-1\">\n <span className={cn(\"block truncate text-kit-sm\", b.insertable ? \"text-kit-fg\" : \"text-kit-fg-3\")}>{b.title}</span>\n {!b.insertable && b.reason ? (\n <span className=\"block text-kit-xs text-kit-fg-3\">{b.reason}</span>\n ) : b.description ? (\n <span className=\"block truncate text-kit-xs text-kit-fg-3\">{b.description}</span>\n ) : null}\n </span>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n {note ? <p className=\"border-t border-kit-line px-3 py-2 text-kit-xs text-kit-fg-3\">{note}</p> : null}\n <div data-hint=\"shortcuts\" className=\"border-t border-kit-line px-3 py-1.5 text-kit-2xs text-kit-fg-3\">\n ↵ add · type to search\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TableControl, TableFullScreenAction } from "./table.js";
|
|
2
|
+
import { ACTIONS, CONTROLS } from "../../engine/kit-field.js";
|
|
3
|
+
//#region src/kit/controls/table/index.ts
|
|
4
|
+
/**
|
|
5
|
+
* Data table: registers the control and its label-row action (one line each, so lanes merge cleanly).
|
|
6
|
+
* Imported for its side effect by the kit entry; import the parts themselves by path.
|
|
7
|
+
*/
|
|
8
|
+
CONTROLS.table = TableControl;
|
|
9
|
+
ACTIONS.table = TableFullScreenAction;
|
|
10
|
+
//#endregion
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/kit/controls/table/index.ts"],"sourcesContent":["/**\n * Data table: registers the control and its label-row action (one line each, so lanes merge cleanly).\n * Imported for its side effect by the kit entry; import the parts themselves by path.\n */\nimport { ACTIONS, CONTROLS } from \"../../engine/kit-field\";\nimport { TableControl, TableFullScreenAction } from \"./table\";\n\nCONTROLS.table = TableControl;\nACTIONS.table = TableFullScreenAction;\n"],"mappings":";;;;;;;AAOA,SAAS,QAAQ;AACjB,QAAQ,QAAQ"}
|