@bettercms-ai/kit 0.1.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_virtual/_rolldown/runtime.js +13 -0
- package/adapters/icons.d.ts +15 -0
- package/adapters/icons.js +27 -0
- package/adapters/icons.js.map +1 -0
- package/adapters/lossy.d.ts +267 -0
- package/adapters/lossy.js +233 -0
- package/adapters/lossy.js.map +1 -0
- package/adapters/prod-types.d.ts +468 -0
- package/adapters/prod-types.js +646 -0
- package/adapters/prod-types.js.map +1 -0
- package/adapters/schema.d.ts +115 -0
- package/adapters/schema.js +2203 -0
- package/adapters/schema.js.map +1 -0
- package/adapters/values.d.ts +200 -0
- package/adapters/values.js +553 -0
- package/adapters/values.js.map +1 -0
- package/brand/logo.d.ts +17 -0
- package/brand/logo.js +9 -0
- package/brand/logo.js.map +1 -0
- package/context.d.ts +269 -0
- package/context.js +214 -0
- package/context.js.map +1 -0
- package/controls/button.d.ts +58 -0
- package/controls/button.js +507 -0
- package/controls/button.js.map +1 -0
- package/controls/c1.d.ts +11 -0
- package/controls/c1.js +24 -0
- package/controls/c1.js.map +1 -0
- package/controls/c2.d.ts +10 -0
- package/controls/c2.js +19 -0
- package/controls/c2.js.map +1 -0
- package/controls/choice.d.ts +39 -0
- package/controls/choice.js +410 -0
- package/controls/choice.js.map +1 -0
- package/controls/code-register.d.ts +1 -0
- package/controls/code-register.js +8 -0
- package/controls/code-register.js.map +1 -0
- package/controls/code.d.ts +42 -0
- package/controls/code.js +396 -0
- package/controls/code.js.map +1 -0
- package/controls/color.d.ts +5 -0
- package/controls/color.js +130 -0
- package/controls/color.js.map +1 -0
- package/controls/component-services.d.ts +114 -0
- package/controls/date-register.d.ts +1 -0
- package/controls/date-register.js +9 -0
- package/controls/date-register.js.map +1 -0
- package/controls/date-zone.d.ts +104 -0
- package/controls/date-zone.js +272 -0
- package/controls/date-zone.js.map +1 -0
- package/controls/date.d.ts +7 -0
- package/controls/date.js +458 -0
- package/controls/date.js.map +1 -0
- package/controls/form-picker-register.d.ts +1 -0
- package/controls/form-picker-register.js +19 -0
- package/controls/form-picker-register.js.map +1 -0
- package/controls/form-picker.d.ts +43 -0
- package/controls/form-picker.js +83 -0
- package/controls/form-picker.js.map +1 -0
- package/controls/icon-register.d.ts +1 -0
- package/controls/icon-register.js +8 -0
- package/controls/icon-register.js.map +1 -0
- package/controls/icon.d.ts +38 -0
- package/controls/icon.js +355 -0
- package/controls/icon.js.map +1 -0
- package/controls/index.d.ts +5 -0
- package/controls/index.js +37 -0
- package/controls/index.js.map +1 -0
- package/controls/json-register.d.ts +1 -0
- package/controls/json-register.js +8 -0
- package/controls/json-register.js.map +1 -0
- package/controls/json.d.ts +2 -0
- package/controls/json.js +72 -0
- package/controls/json.js.map +1 -0
- package/controls/link.d.ts +260 -0
- package/controls/link.js +1186 -0
- package/controls/link.js.map +1 -0
- package/controls/location-register.d.ts +1 -0
- package/controls/location-register.js +8 -0
- package/controls/location-register.js.map +1 -0
- package/controls/location.d.ts +16 -0
- package/controls/location.js +197 -0
- package/controls/location.js.map +1 -0
- package/controls/media-register.d.ts +1 -0
- package/controls/media-register.js +12 -0
- package/controls/media-register.js.map +1 -0
- package/controls/media-services.d.ts +40 -0
- package/controls/media.d.ts +73 -0
- package/controls/media.js +1076 -0
- package/controls/media.js.map +1 -0
- package/controls/number.d.ts +22 -0
- package/controls/number.js +195 -0
- package/controls/number.js.map +1 -0
- package/controls/reference-register.d.ts +1 -0
- package/controls/reference-register.js +10 -0
- package/controls/reference-register.js.map +1 -0
- package/controls/reference-services.d.ts +54 -0
- package/controls/reference.d.ts +23 -0
- package/controls/reference.js +761 -0
- package/controls/reference.js.map +1 -0
- package/controls/rich-text/blocks.d.ts +28 -0
- package/controls/rich-text/blocks.js +1532 -0
- package/controls/rich-text/blocks.js.map +1 -0
- package/controls/rich-text/catalog.d.ts +98 -0
- package/controls/rich-text/catalog.js +613 -0
- package/controls/rich-text/catalog.js.map +1 -0
- package/controls/rich-text/codec.d.ts +56 -0
- package/controls/rich-text/codec.js +32 -0
- package/controls/rich-text/codec.js.map +1 -0
- package/controls/rich-text/component-card.d.ts +14 -0
- package/controls/rich-text/component-card.js +706 -0
- package/controls/rich-text/component-card.js.map +1 -0
- package/controls/rich-text/control.d.ts +21 -0
- package/controls/rich-text/control.js +254 -0
- package/controls/rich-text/control.js.map +1 -0
- package/controls/rich-text/dom.d.ts +190 -0
- package/controls/rich-text/dom.js +690 -0
- package/controls/rich-text/dom.js.map +1 -0
- package/controls/rich-text/editor.d.ts +50 -0
- package/controls/rich-text/editor.js +1530 -0
- package/controls/rich-text/editor.js.map +1 -0
- package/controls/rich-text/floating.d.ts +23 -0
- package/controls/rich-text/floating.js +137 -0
- package/controls/rich-text/floating.js.map +1 -0
- package/controls/rich-text/index.d.ts +1 -0
- package/controls/rich-text/index.js +12 -0
- package/controls/rich-text/index.js.map +1 -0
- package/controls/rich-text/link-form.d.ts +13 -0
- package/controls/rich-text/link-form.js +111 -0
- package/controls/rich-text/link-form.js.map +1 -0
- package/controls/rich-text/markdown.d.ts +6 -0
- package/controls/rich-text/markdown.js +179 -0
- package/controls/rich-text/markdown.js.map +1 -0
- package/controls/rich-text/ops.d.ts +35 -0
- package/controls/rich-text/ops.js +314 -0
- package/controls/rich-text/ops.js.map +1 -0
- package/controls/rich-text/toolbar.d.ts +85 -0
- package/controls/rich-text/toolbar.js +338 -0
- package/controls/rich-text/toolbar.js.map +1 -0
- package/controls/scale.d.ts +56 -0
- package/controls/scale.js +563 -0
- package/controls/scale.js.map +1 -0
- package/controls/slot-register.d.ts +1 -0
- package/controls/slot-register.js +16 -0
- package/controls/slot-register.js.map +1 -0
- package/controls/slot-services.d.ts +97 -0
- package/controls/slot-services.js +38 -0
- package/controls/slot-services.js.map +1 -0
- package/controls/slot.d.ts +33 -0
- package/controls/slot.js +348 -0
- package/controls/slot.js.map +1 -0
- package/controls/table/index.d.ts +1 -0
- package/controls/table/index.js +12 -0
- package/controls/table/index.js.map +1 -0
- package/controls/table/prod.d.ts +21 -0
- package/controls/table/prod.js +79 -0
- package/controls/table/prod.js.map +1 -0
- package/controls/table/refs.d.ts +50 -0
- package/controls/table/refs.js +68 -0
- package/controls/table/refs.js.map +1 -0
- package/controls/table/stored.d.ts +15 -0
- package/controls/table/stored.js +44 -0
- package/controls/table/stored.js.map +1 -0
- package/controls/table/table-editor.d.ts +103 -0
- package/controls/table/table-editor.js +2722 -0
- package/controls/table/table-editor.js.map +1 -0
- package/controls/table/table-link.d.ts +24 -0
- package/controls/table/table-link.js +180 -0
- package/controls/table/table-link.js.map +1 -0
- package/controls/table/table.d.ts +9 -0
- package/controls/table/table.js +103 -0
- package/controls/table/table.js.map +1 -0
- package/controls/text.d.ts +17 -0
- package/controls/text.js +287 -0
- package/controls/text.js.map +1 -0
- package/engine/array.d.ts +101 -0
- package/engine/array.js +893 -0
- package/engine/array.js.map +1 -0
- package/engine/bits.d.ts +24 -0
- package/engine/bits.js +60 -0
- package/engine/bits.js.map +1 -0
- package/engine/breadcrumb.d.ts +45 -0
- package/engine/breadcrumb.js +87 -0
- package/engine/breadcrumb.js.map +1 -0
- package/engine/expand.d.ts +68 -0
- package/engine/expand.js +170 -0
- package/engine/expand.js.map +1 -0
- package/engine/field-list.d.ts +20 -0
- package/engine/field-list.js +19 -0
- package/engine/field-list.js.map +1 -0
- package/engine/field-shell.d.ts +49 -0
- package/engine/field-shell.js +860 -0
- package/engine/field-shell.js.map +1 -0
- package/engine/frame.d.ts +120 -0
- package/engine/frame.js +599 -0
- package/engine/frame.js.map +1 -0
- package/engine/group-summary.d.ts +4 -0
- package/engine/group-summary.js +66 -0
- package/engine/group-summary.js.map +1 -0
- package/engine/grouping.d.ts +224 -0
- package/engine/grouping.js +824 -0
- package/engine/grouping.js.map +1 -0
- package/engine/item-list.d.ts +89 -0
- package/engine/item-list.js +703 -0
- package/engine/item-list.js.map +1 -0
- package/engine/kit-field.d.ts +72 -0
- package/engine/kit-field.js +523 -0
- package/engine/kit-field.js.map +1 -0
- package/engine/schema-form.d.ts +91 -0
- package/engine/schema-form.js +320 -0
- package/engine/schema-form.js.map +1 -0
- package/engine/slot.d.ts +13 -0
- package/engine/slot.js +226 -0
- package/engine/slot.js.map +1 -0
- package/index.d.ts +46 -0
- package/index.js +55 -0
- package/index.js.map +1 -0
- package/kit.css +56 -0
- package/lib/cn.d.ts +4 -0
- package/lib/cn.js +53 -0
- package/lib/cn.js.map +1 -0
- package/lib/columns.d.ts +14 -0
- package/lib/columns.js +27 -0
- package/lib/columns.js.map +1 -0
- package/lib/frames.d.ts +36 -0
- package/lib/frames.js +214 -0
- package/lib/frames.js.map +1 -0
- package/lib/icons.d.ts +16 -0
- package/lib/icons.js +172 -0
- package/lib/icons.js.map +1 -0
- package/lib/path.d.ts +29 -0
- package/lib/path.js +64 -0
- package/lib/path.js.map +1 -0
- package/lib/schema.d.ts +49 -0
- package/lib/schema.js +287 -0
- package/lib/schema.js.map +1 -0
- package/lib/utils.d.ts +7 -0
- package/lib/utils.js +37 -0
- package/lib/utils.js.map +1 -0
- package/lib/validate.d.ts +20 -0
- package/lib/validate.js +150 -0
- package/lib/validate.js.map +1 -0
- package/package.json +31 -59
- package/schema/adapters.d.ts +28 -0
- package/schema/adapters.js +493 -0
- package/schema/adapters.js.map +1 -0
- package/schema/help.d.ts +25 -0
- package/schema/help.js +54 -0
- package/schema/help.js.map +1 -0
- package/schema/scale.d.ts +69 -0
- package/schema/scale.js +250 -0
- package/schema/scale.js.map +1 -0
- package/schema/sources.d.ts +103 -0
- package/schema/sources.js +65 -0
- package/schema/sources.js.map +1 -0
- package/schema/table.d.ts +319 -0
- package/schema/table.js +1198 -0
- package/schema/table.js.map +1 -0
- package/schema/types.d.ts +269 -0
- package/schema/types.js +14 -0
- package/schema/types.js.map +1 -0
- package/types.d.ts +17 -0
- package/ui/action-tray.d.ts +54 -0
- package/ui/action-tray.js +153 -0
- package/ui/action-tray.js.map +1 -0
- package/ui/button.d.ts +57 -0
- package/ui/button.js +202 -0
- package/ui/button.js.map +1 -0
- package/ui/choice-switch.d.ts +36 -0
- package/ui/choice-switch.js +57 -0
- package/ui/choice-switch.js.map +1 -0
- package/ui/controls.d.ts +83 -0
- package/ui/controls.js +319 -0
- package/ui/controls.js.map +1 -0
- package/ui/display.d.ts +156 -0
- package/ui/display.js +444 -0
- package/ui/display.js.map +1 -0
- package/ui/expanded-editor-modal.d.ts +26 -0
- package/ui/expanded-editor-modal.js +140 -0
- package/ui/expanded-editor-modal.js.map +1 -0
- package/ui/field-context.d.ts +12 -0
- package/ui/field-context.js +23 -0
- package/ui/field-context.js.map +1 -0
- package/ui/floating-panel.d.ts +152 -0
- package/ui/floating-panel.js +912 -0
- package/ui/floating-panel.js.map +1 -0
- package/ui/index.d.ts +12 -0
- package/ui/index.js +13 -0
- package/ui/input.d.ts +78 -0
- package/ui/input.js +250 -0
- package/ui/input.js.map +1 -0
- package/ui/mode-bar.d.ts +31 -0
- package/ui/mode-bar.js +65 -0
- package/ui/mode-bar.js.map +1 -0
- package/ui/overlay.d.ts +123 -0
- package/ui/overlay.js +378 -0
- package/ui/overlay.js.map +1 -0
- package/ui/path-crumbs.d.ts +90 -0
- package/ui/path-crumbs.js +532 -0
- package/ui/path-crumbs.js.map +1 -0
- package/ui/presence.d.ts +16 -0
- package/ui/presence.js +65 -0
- package/ui/presence.js.map +1 -0
- package/ui/select.d.ts +66 -0
- package/ui/select.js +405 -0
- package/ui/select.js.map +1 -0
- package/ui/shortcut-hint.d.ts +14 -0
- package/ui/shortcut-hint.js +35 -0
- package/ui/shortcut-hint.js.map +1 -0
- package/ui/surfaces.d.ts +23 -0
- package/ui/surfaces.js +26 -0
- package/ui/surfaces.js.map +1 -0
- package/ui/tooltip-root.d.ts +12 -0
- package/ui/tooltip-root.js +76 -0
- package/ui/tooltip-root.js.map +1 -0
- package/ui/variants.d.ts +15 -0
- package/ui/variants.js +14 -0
- package/ui/variants.js.map +1 -0
- package/LICENSE +0 -21
- package/README.md +0 -27
- package/dist/_chunks-cjs/_visual-editing.js +0 -5898
- package/dist/_chunks-cjs/refractor.js +0 -22
- package/dist/_chunks-es/_visual-editing.mjs +0 -5904
- package/dist/_chunks-es/refractor.mjs +0 -25
- package/dist/_color.d.mts +0 -119
- package/dist/_color.d.ts +0 -119
- package/dist/_color.js +0 -1412
- package/dist/_color.mjs +0 -1411
- package/dist/_visual-editing.d.mts +0 -1126
- package/dist/_visual-editing.d.ts +0 -1126
- package/dist/_visual-editing.js +0 -30
- package/dist/_visual-editing.mjs +0 -30
- package/dist/index.d.mts +0 -3140
- package/dist/index.d.ts +0 -3140
- package/dist/index.js +0 -2036
- package/dist/index.mjs +0 -2044
- package/dist/theme.d.mts +0 -1506
- package/dist/theme.d.ts +0 -1506
- package/dist/theme.js +0 -4126
- package/dist/theme.mjs +0 -4126
- package/exports/_visual-editing.ts +0 -31
- package/exports/index.ts +0 -1
- package/exports/theme.ts +0 -1
- package/src/color/index.d.mts +0 -119
- package/src/color/index.mjs +0 -1411
- package/src/core/__workshop__/constants.ts +0 -293
- package/src/core/_compat.ts +0 -264
- package/src/core/components/autocomplete/__mocks__/apiStore.ts +0 -49
- package/src/core/components/autocomplete/__mocks__/countries.ts +0 -245
- package/src/core/components/autocomplete/__workshop__/async.tsx +0 -156
- package/src/core/components/autocomplete/__workshop__/constrainedHeight.tsx +0 -137
- package/src/core/components/autocomplete/__workshop__/custom.tsx +0 -89
- package/src/core/components/autocomplete/__workshop__/example.tsx +0 -79
- package/src/core/components/autocomplete/__workshop__/focusAndBlur.tsx +0 -36
- package/src/core/components/autocomplete/__workshop__/fullscreen.tsx +0 -294
- package/src/core/components/autocomplete/__workshop__/index.ts +0 -39
- package/src/core/components/autocomplete/__workshop__/types.ts +0 -4
- package/src/core/components/autocomplete/autocomplete.styles.tsx +0 -39
- package/src/core/components/autocomplete/autocomplete.tsx +0 -767
- package/src/core/components/autocomplete/autocompleteOption.tsx +0 -45
- package/src/core/components/autocomplete/autocompleteReducer.ts +0 -47
- package/src/core/components/autocomplete/constants.ts +0 -28
- package/src/core/components/autocomplete/index.ts +0 -2
- package/src/core/components/autocomplete/types.ts +0 -108
- package/src/core/components/breadcrumbs/__workshop__/example.tsx +0 -62
- package/src/core/components/breadcrumbs/__workshop__/index.ts +0 -14
- package/src/core/components/breadcrumbs/breadcrumbs.styles.ts +0 -18
- package/src/core/components/breadcrumbs/breadcrumbs.test.tsx +0 -51
- package/src/core/components/breadcrumbs/breadcrumbs.tsx +0 -133
- package/src/core/components/breadcrumbs/index.ts +0 -1
- package/src/core/components/dialog/__workshop__/activate.tsx +0 -134
- package/src/core/components/dialog/__workshop__/autoFocus.tsx +0 -29
- package/src/core/components/dialog/__workshop__/index.ts +0 -19
- package/src/core/components/dialog/__workshop__/layering.tsx +0 -41
- package/src/core/components/dialog/__workshop__/nested.tsx +0 -72
- package/src/core/components/dialog/__workshop__/onScroll.tsx +0 -39
- package/src/core/components/dialog/__workshop__/panes.tsx +0 -82
- package/src/core/components/dialog/__workshop__/position.tsx +0 -30
- package/src/core/components/dialog/__workshop__/props.tsx +0 -75
- package/src/core/components/dialog/__workshop__/provider.tsx +0 -11
- package/src/core/components/dialog/__workshop__/wrapped.tsx +0 -76
- package/src/core/components/dialog/dialog.tsx +0 -430
- package/src/core/components/dialog/dialogContext.ts +0 -20
- package/src/core/components/dialog/dialogProvider.tsx +0 -35
- package/src/core/components/dialog/index.ts +0 -4
- package/src/core/components/dialog/styles.ts +0 -77
- package/src/core/components/dialog/useDialog.ts +0 -11
- package/src/core/components/hotkeys/__workshop__/index.ts +0 -14
- package/src/core/components/hotkeys/__workshop__/plain.tsx +0 -9
- package/src/core/components/hotkeys/hotkeys.test.tsx +0 -42
- package/src/core/components/hotkeys/hotkeys.tsx +0 -66
- package/src/core/components/hotkeys/index.ts +0 -1
- package/src/core/components/index.ts +0 -9
- package/src/core/components/menu/__workshop__/asComponent.tsx +0 -45
- package/src/core/components/menu/__workshop__/avatarMenu.tsx +0 -51
- package/src/core/components/menu/__workshop__/closableMenuButton.tsx +0 -46
- package/src/core/components/menu/__workshop__/constrainedInBoundary.tsx +0 -134
- package/src/core/components/menu/__workshop__/customMenuItem.tsx +0 -45
- package/src/core/components/menu/__workshop__/customSelectedState.tsx +0 -39
- package/src/core/components/menu/__workshop__/disableFocusOnClose.tsx +0 -40
- package/src/core/components/menu/__workshop__/groups.tsx +0 -156
- package/src/core/components/menu/__workshop__/index.ts +0 -89
- package/src/core/components/menu/__workshop__/menuButton.tsx +0 -80
- package/src/core/components/menu/__workshop__/menuGroupRight.tsx +0 -58
- package/src/core/components/menu/__workshop__/nestedMenu.tsx +0 -22
- package/src/core/components/menu/__workshop__/onCloseMenuButton.tsx +0 -41
- package/src/core/components/menu/__workshop__/selectedItem.tsx +0 -69
- package/src/core/components/menu/__workshop__/shouldFocus.tsx +0 -47
- package/src/core/components/menu/__workshop__/tones.tsx +0 -25
- package/src/core/components/menu/__workshop__/withoutArrow.tsx +0 -32
- package/src/core/components/menu/helpers.ts +0 -82
- package/src/core/components/menu/index.ts +0 -5
- package/src/core/components/menu/menu.spacing.test.tsx +0 -63
- package/src/core/components/menu/menu.test.tsx +0 -125
- package/src/core/components/menu/menu.tsx +0 -178
- package/src/core/components/menu/menuButton.tsx +0 -268
- package/src/core/components/menu/menuContext.ts +0 -18
- package/src/core/components/menu/menuDivider.ts +0 -23
- package/src/core/components/menu/menuGroup.spacing.test.tsx +0 -63
- package/src/core/components/menu/menuGroup.tsx +0 -233
- package/src/core/components/menu/menuItem.spacing.test.tsx +0 -59
- package/src/core/components/menu/menuItem.tsx +0 -197
- package/src/core/components/menu/useMenu.ts +0 -21
- package/src/core/components/menu/useMenuController.ts +0 -231
- package/src/core/components/skeleton/__workshop__/delay.tsx +0 -70
- package/src/core/components/skeleton/__workshop__/index.ts +0 -11
- package/src/core/components/skeleton/__workshop__/skeleton.tsx +0 -64
- package/src/core/components/skeleton/index.ts +0 -2
- package/src/core/components/skeleton/skeleton.tsx +0 -57
- package/src/core/components/skeleton/styles.ts +0 -50
- package/src/core/components/skeleton/textSkeleton.tsx +0 -122
- package/src/core/components/tab/__workshop__/example.tsx +0 -79
- package/src/core/components/tab/__workshop__/index.ts +0 -14
- package/src/core/components/tab/index.ts +0 -3
- package/src/core/components/tab/tab.tsx +0 -101
- package/src/core/components/tab/tabList.test.tsx +0 -48
- package/src/core/components/tab/tabList.tsx +0 -70
- package/src/core/components/tab/tabPanel.tsx +0 -39
- package/src/core/components/toast/__workshop__/hook.tsx +0 -71
- package/src/core/components/toast/__workshop__/index.ts +0 -19
- package/src/core/components/toast/__workshop__/toast.tsx +0 -26
- package/src/core/components/toast/index.ts +0 -4
- package/src/core/components/toast/styles.ts +0 -77
- package/src/core/components/toast/toast.test.tsx +0 -101
- package/src/core/components/toast/toast.tsx +0 -198
- package/src/core/components/toast/toastContext.ts +0 -7
- package/src/core/components/toast/toastLayer.tsx +0 -51
- package/src/core/components/toast/toastProvider.tsx +0 -113
- package/src/core/components/toast/toastState.ts +0 -6
- package/src/core/components/toast/types.ts +0 -26
- package/src/core/components/toast/useToast.ts +0 -25
- package/src/core/components/tree/__workshop__/basic.perf.ts +0 -19
- package/src/core/components/tree/__workshop__/basic.tsx +0 -105
- package/src/core/components/tree/__workshop__/index.ts +0 -21
- package/src/core/components/tree/__workshop__/tabFromElement.tsx +0 -84
- package/src/core/components/tree/helpers.ts +0 -105
- package/src/core/components/tree/index.ts +0 -4
- package/src/core/components/tree/style.ts +0 -105
- package/src/core/components/tree/tree.test.tsx +0 -55
- package/src/core/components/tree/tree.tsx +0 -240
- package/src/core/components/tree/treeContext.ts +0 -10
- package/src/core/components/tree/treeGroup.tsx +0 -28
- package/src/core/components/tree/treeItem.test.tsx +0 -65
- package/src/core/components/tree/treeItem.tsx +0 -224
- package/src/core/components/tree/types.ts +0 -25
- package/src/core/components/tree/useTree.ts +0 -17
- package/src/core/constants.ts +0 -79
- package/src/core/helpers/animation.ts +0 -27
- package/src/core/helpers/element.ts +0 -55
- package/src/core/helpers/focus.ts +0 -100
- package/src/core/helpers/index.ts +0 -4
- package/src/core/helpers/scroll.ts +0 -15
- package/src/core/hooks/index.ts +0 -12
- package/src/core/hooks/useArrayProp.ts +0 -17
- package/src/core/hooks/useClickOutside.test.tsx +0 -482
- package/src/core/hooks/useClickOutside.ts +0 -118
- package/src/core/hooks/useClickOutsideEvent.test.tsx +0 -115
- package/src/core/hooks/useClickOutsideEvent.ts +0 -73
- package/src/core/hooks/useCustomValidity.ts +0 -13
- package/src/core/hooks/useDelayed.test.ts +0 -88
- package/src/core/hooks/useDelayedState.ts +0 -36
- package/src/core/hooks/useElementRect/__workshop__/example.tsx +0 -32
- package/src/core/hooks/useElementRect/__workshop__/index.ts +0 -14
- package/src/core/hooks/useElementRect/index.ts +0 -1
- package/src/core/hooks/useElementRect/useElementRect.ts +0 -13
- package/src/core/hooks/useElementSize.ts +0 -19
- package/src/core/hooks/useForwardedRef.ts +0 -19
- package/src/core/hooks/useGlobalKeyDown.ts +0 -24
- package/src/core/hooks/useIsomorphicEffect.ts +0 -7
- package/src/core/hooks/useMatchMedia.ts +0 -28
- package/src/core/hooks/useMediaIndex/__workshop__/index.ts +0 -14
- package/src/core/hooks/useMediaIndex/__workshop__/test.tsx +0 -14
- package/src/core/hooks/useMediaIndex/index.ts +0 -1
- package/src/core/hooks/useMediaIndex/useMediaIndex.test.tsx +0 -36
- package/src/core/hooks/useMediaIndex/useMediaIndex.ts +0 -102
- package/src/core/hooks/useMounted.ts +0 -15
- package/src/core/hooks/usePrefersDark.hydration.test.tsx +0 -56
- package/src/core/hooks/usePrefersDark.test.tsx +0 -19
- package/src/core/hooks/usePrefersDark.ts +0 -16
- package/src/core/hooks/usePrefersReducedMotion.hydration.test.tsx +0 -56
- package/src/core/hooks/usePrefersReducedMotion.test.tsx +0 -19
- package/src/core/hooks/usePrefersReducedMotion.ts +0 -16
- package/src/core/index.ts +0 -10
- package/src/core/lib/createGlobalScopedContext.ts +0 -36
- package/src/core/lib/globalScope.ts +0 -19
- package/src/core/lib/isRecord.ts +0 -3
- package/src/core/middleware/origin.ts +0 -47
- package/src/core/observers/elementSizeObserver.ts +0 -116
- package/src/core/observers/index.ts +0 -2
- package/src/core/observers/resizeObserver.ts +0 -9
- package/src/core/primitives/_selectable/index.ts +0 -1
- package/src/core/primitives/_selectable/selectable.tsx +0 -15
- package/src/core/primitives/_selectable/style.ts +0 -115
- package/src/core/primitives/avatar/__workshop__/asButton.tsx +0 -14
- package/src/core/primitives/avatar/__workshop__/index.ts +0 -29
- package/src/core/primitives/avatar/__workshop__/stack.tsx +0 -25
- package/src/core/primitives/avatar/__workshop__/withinButton.tsx +0 -63
- package/src/core/primitives/avatar/__workshop__/withinMenuItem.tsx +0 -70
- package/src/core/primitives/avatar/avatar.tsx +0 -200
- package/src/core/primitives/avatar/avatarCounter.tsx +0 -91
- package/src/core/primitives/avatar/avatarStack.tsx +0 -100
- package/src/core/primitives/avatar/index.ts +0 -4
- package/src/core/primitives/avatar/styles.ts +0 -167
- package/src/core/primitives/avatar/types.ts +0 -17
- package/src/core/primitives/badge/__workshop__/index.ts +0 -19
- package/src/core/primitives/badge/__workshop__/props.tsx +0 -30
- package/src/core/primitives/badge/__workshop__/tones.tsx +0 -21
- package/src/core/primitives/badge/badge.test.tsx +0 -16
- package/src/core/primitives/badge/badge.tsx +0 -70
- package/src/core/primitives/badge/index.ts +0 -1
- package/src/core/primitives/badge/styles.ts +0 -20
- package/src/core/primitives/badge/types.ts +0 -8
- package/src/core/primitives/box/__workshop__/asComponent.tsx +0 -31
- package/src/core/primitives/box/__workshop__/index.ts +0 -24
- package/src/core/primitives/box/__workshop__/props.tsx +0 -20
- package/src/core/primitives/box/__workshop__/responsive.tsx +0 -20
- package/src/core/primitives/box/box.test.tsx +0 -142
- package/src/core/primitives/box/box.tsx +0 -154
- package/src/core/primitives/box/index.ts +0 -1
- package/src/core/primitives/button/__workshop__/custom.tsx +0 -51
- package/src/core/primitives/button/__workshop__/customIcons.tsx +0 -30
- package/src/core/primitives/button/__workshop__/disabled.tsx +0 -74
- package/src/core/primitives/button/__workshop__/index.ts +0 -59
- package/src/core/primitives/button/__workshop__/labelUploadButton.tsx +0 -36
- package/src/core/primitives/button/__workshop__/mixedChildren.tsx +0 -12
- package/src/core/primitives/button/__workshop__/props.tsx +0 -55
- package/src/core/primitives/button/__workshop__/stacked.tsx +0 -58
- package/src/core/primitives/button/__workshop__/styled1.tsx +0 -17
- package/src/core/primitives/button/__workshop__/styled2.tsx +0 -19
- package/src/core/primitives/button/__workshop__/uploadButton.tsx +0 -28
- package/src/core/primitives/button/button.test.tsx +0 -82
- package/src/core/primitives/button/button.tsx +0 -210
- package/src/core/primitives/button/index.ts +0 -1
- package/src/core/primitives/button/styles.ts +0 -117
- package/src/core/primitives/card/__workshop__/allTones.tsx +0 -25
- package/src/core/primitives/card/__workshop__/asButton.tsx +0 -107
- package/src/core/primitives/card/__workshop__/asComponent.tsx +0 -27
- package/src/core/primitives/card/__workshop__/checkered.tsx +0 -26
- package/src/core/primitives/card/__workshop__/index.ts +0 -18
- package/src/core/primitives/card/__workshop__/interactive.tsx +0 -30
- package/src/core/primitives/card/__workshop__/listNavigation.tsx +0 -80
- package/src/core/primitives/card/__workshop__/props.tsx +0 -53
- package/src/core/primitives/card/__workshop__/selected.tsx +0 -94
- package/src/core/primitives/card/__workshop__/styled.tsx +0 -14
- package/src/core/primitives/card/card.tsx +0 -128
- package/src/core/primitives/card/index.ts +0 -2
- package/src/core/primitives/card/styles.ts +0 -147
- package/src/core/primitives/card/types.ts +0 -11
- package/src/core/primitives/checkbox/__workshop__/example.tsx +0 -25
- package/src/core/primitives/checkbox/__workshop__/index.ts +0 -13
- package/src/core/primitives/checkbox/__workshop__/props.tsx +0 -33
- package/src/core/primitives/checkbox/__workshop__/readOnly.tsx +0 -16
- package/src/core/primitives/checkbox/__workshop__/tones.tsx +0 -28
- package/src/core/primitives/checkbox/checkbox.tsx +0 -73
- package/src/core/primitives/checkbox/index.ts +0 -1
- package/src/core/primitives/checkbox/styles.ts +0 -128
- package/src/core/primitives/code/__workshop__/index.ts +0 -19
- package/src/core/primitives/code/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/code/__workshop__/props.tsx +0 -21
- package/src/core/primitives/code/code.tsx +0 -55
- package/src/core/primitives/code/index.ts +0 -1
- package/src/core/primitives/code/refractor.tsx +0 -20
- package/src/core/primitives/code/styles.ts +0 -77
- package/src/core/primitives/container/__workshop__/example.tsx +0 -20
- package/src/core/primitives/container/__workshop__/index.ts +0 -8
- package/src/core/primitives/container/container.tsx +0 -54
- package/src/core/primitives/container/index.ts +0 -2
- package/src/core/primitives/container/styles.ts +0 -23
- package/src/core/primitives/container/types.ts +0 -6
- package/src/core/primitives/flex/__workshop__/example.tsx +0 -34
- package/src/core/primitives/flex/__workshop__/gap.tsx +0 -25
- package/src/core/primitives/flex/__workshop__/index.ts +0 -11
- package/src/core/primitives/flex/flex.tsx +0 -64
- package/src/core/primitives/flex/index.ts +0 -1
- package/src/core/primitives/grid/__workshop__/index.ts +0 -10
- package/src/core/primitives/grid/__workshop__/responsive.tsx +0 -54
- package/src/core/primitives/grid/grid.test.tsx +0 -80
- package/src/core/primitives/grid/grid.tsx +0 -74
- package/src/core/primitives/grid/index.ts +0 -1
- package/src/core/primitives/heading/__workshop__/index.ts +0 -19
- package/src/core/primitives/heading/__workshop__/opticalAlignment.tsx +0 -54
- package/src/core/primitives/heading/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/heading/heading.tsx +0 -88
- package/src/core/primitives/heading/index.ts +0 -1
- package/src/core/primitives/heading/styles.ts +0 -64
- package/src/core/primitives/heading/types.ts +0 -7
- package/src/core/primitives/index.ts +0 -27
- package/src/core/primitives/inline/__workshop__/index.ts +0 -8
- package/src/core/primitives/inline/__workshop__/plain.tsx +0 -27
- package/src/core/primitives/inline/index.ts +0 -1
- package/src/core/primitives/inline/inline.test.tsx +0 -51
- package/src/core/primitives/inline/inline.tsx +0 -63
- package/src/core/primitives/inline/styles.ts +0 -32
- package/src/core/primitives/inline/types.ts +0 -6
- package/src/core/primitives/kbd/__workshop__/index.ts +0 -8
- package/src/core/primitives/kbd/__workshop__/plain.tsx +0 -9
- package/src/core/primitives/kbd/index.ts +0 -1
- package/src/core/primitives/kbd/kbd.tsx +0 -69
- package/src/core/primitives/label/__workshop__/index.ts +0 -19
- package/src/core/primitives/label/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/label/__workshop__/plain.tsx +0 -24
- package/src/core/primitives/label/index.ts +0 -1
- package/src/core/primitives/label/label.tsx +0 -87
- package/src/core/primitives/label/styles.ts +0 -45
- package/src/core/primitives/popover/__workshop__/AlignedStory.tsx +0 -77
- package/src/core/primitives/popover/__workshop__/MarginsStory.tsx +0 -31
- package/src/core/primitives/popover/__workshop__/MatchReferenceWidthStory.tsx +0 -32
- package/src/core/primitives/popover/__workshop__/OpenOnMountStory.tsx +0 -11
- package/src/core/primitives/popover/__workshop__/PlainStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/RecursiveStory.tsx +0 -71
- package/src/core/primitives/popover/__workshop__/SidePanelStory.tsx +0 -89
- package/src/core/primitives/popover/__workshop__/TestStory.tsx +0 -97
- package/src/core/primitives/popover/__workshop__/index.ts +0 -49
- package/src/core/primitives/popover/constants.ts +0 -22
- package/src/core/primitives/popover/floating-ui/size.ts +0 -99
- package/src/core/primitives/popover/helpers.ts +0 -31
- package/src/core/primitives/popover/index.ts +0 -2
- package/src/core/primitives/popover/popover.tsx +0 -511
- package/src/core/primitives/popover/popoverCard.tsx +0 -166
- package/src/core/primitives/popover/types.ts +0 -7
- package/src/core/primitives/radio/__workshop__/example.tsx +0 -63
- package/src/core/primitives/radio/__workshop__/index.ts +0 -11
- package/src/core/primitives/radio/__workshop__/plain.tsx +0 -28
- package/src/core/primitives/radio/index.ts +0 -1
- package/src/core/primitives/radio/radio.tsx +0 -51
- package/src/core/primitives/radio/styles.ts +0 -117
- package/src/core/primitives/select/__workshop__/index.ts +0 -11
- package/src/core/primitives/select/__workshop__/plain.tsx +0 -27
- package/src/core/primitives/select/__workshop__/readOnly.tsx +0 -23
- package/src/core/primitives/select/index.ts +0 -1
- package/src/core/primitives/select/select.test.tsx +0 -52
- package/src/core/primitives/select/select.tsx +0 -94
- package/src/core/primitives/select/styles.ts +0 -166
- package/src/core/primitives/spinner/__workshop__/Props.tsx +0 -15
- package/src/core/primitives/spinner/__workshop__/index.ts +0 -14
- package/src/core/primitives/spinner/index.ts +0 -1
- package/src/core/primitives/spinner/spinner.tsx +0 -46
- package/src/core/primitives/stack/__workshop__/index.ts +0 -14
- package/src/core/primitives/stack/__workshop__/plain.tsx +0 -32
- package/src/core/primitives/stack/index.ts +0 -1
- package/src/core/primitives/stack/stack.test.tsx +0 -57
- package/src/core/primitives/stack/stack.tsx +0 -57
- package/src/core/primitives/stack/styles.ts +0 -32
- package/src/core/primitives/switch/__workshop__/example.tsx +0 -23
- package/src/core/primitives/switch/__workshop__/index.ts +0 -11
- package/src/core/primitives/switch/__workshop__/props.tsx +0 -21
- package/src/core/primitives/switch/index.ts +0 -1
- package/src/core/primitives/switch/styles.ts +0 -173
- package/src/core/primitives/switch/switch.tsx +0 -68
- package/src/core/primitives/text/__workshop__/colored.tsx +0 -30
- package/src/core/primitives/text/__workshop__/example.tsx +0 -39
- package/src/core/primitives/text/__workshop__/index.ts +0 -24
- package/src/core/primitives/text/__workshop__/opticalAlignment.tsx +0 -48
- package/src/core/primitives/text/index.ts +0 -1
- package/src/core/primitives/text/styles.ts +0 -74
- package/src/core/primitives/text/text.tsx +0 -89
- package/src/core/primitives/textArea/__workshop__/index.ts +0 -14
- package/src/core/primitives/textArea/__workshop__/plain.tsx +0 -50
- package/src/core/primitives/textArea/index.ts +0 -1
- package/src/core/primitives/textArea/textArea.tsx +0 -120
- package/src/core/primitives/textInput/__workshop__/clearButton.tsx +0 -30
- package/src/core/primitives/textInput/__workshop__/customValidity.tsx +0 -17
- package/src/core/primitives/textInput/__workshop__/index.ts +0 -44
- package/src/core/primitives/textInput/__workshop__/plain.tsx +0 -98
- package/src/core/primitives/textInput/__workshop__/readOnly.tsx +0 -9
- package/src/core/primitives/textInput/__workshop__/states.tsx +0 -53
- package/src/core/primitives/textInput/__workshop__/tones.tsx +0 -277
- package/src/core/primitives/textInput/__workshop__/typed.tsx +0 -23
- package/src/core/primitives/textInput/index.ts +0 -1
- package/src/core/primitives/textInput/textInput.test.tsx +0 -48
- package/src/core/primitives/textInput/textInput.tsx +0 -395
- package/src/core/primitives/tooltip/__workshop__/customPortal.tsx +0 -102
- package/src/core/primitives/tooltip/__workshop__/index.ts +0 -29
- package/src/core/primitives/tooltip/__workshop__/overflowingBoundary.tsx +0 -74
- package/src/core/primitives/tooltip/__workshop__/props.tsx +0 -107
- package/src/core/primitives/tooltip/__workshop__/resizableBoundary.tsx +0 -86
- package/src/core/primitives/tooltip/constants.ts +0 -23
- package/src/core/primitives/tooltip/index.ts +0 -2
- package/src/core/primitives/tooltip/tooltip.test.tsx +0 -452
- package/src/core/primitives/tooltip/tooltip.tsx +0 -495
- package/src/core/primitives/tooltip/tooltipCard.tsx +0 -109
- package/src/core/primitives/tooltip/tooltipDelayGroup/index.ts +0 -4
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx +0 -11
- package/src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx +0 -57
- package/src/core/primitives/tooltip/tooltipDelayGroup/types.ts +0 -10
- package/src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts +0 -13
- package/src/core/primitives/types.ts +0 -179
- package/src/core/styles/border/borderStyle.ts +0 -56
- package/src/core/styles/border/index.ts +0 -2
- package/src/core/styles/border/types.ts +0 -10
- package/src/core/styles/box/boxStyle.ts +0 -69
- package/src/core/styles/box/index.ts +0 -2
- package/src/core/styles/box/types.ts +0 -11
- package/src/core/styles/card/_cardColorStyle.ts +0 -108
- package/src/core/styles/card/index.ts +0 -1
- package/src/core/styles/flex/flexItemStyle.ts +0 -27
- package/src/core/styles/flex/flexStyle.ts +0 -70
- package/src/core/styles/flex/index.ts +0 -3
- package/src/core/styles/flex/types.ts +0 -25
- package/src/core/styles/focusRing/index.ts +0 -25
- package/src/core/styles/font/codeFontStyle.ts +0 -13
- package/src/core/styles/font/headingFontStyle.ts +0 -13
- package/src/core/styles/font/index.ts +0 -6
- package/src/core/styles/font/labelFontStyle.ts +0 -13
- package/src/core/styles/font/responsiveFont.ts +0 -103
- package/src/core/styles/font/textAlignStyle.ts +0 -19
- package/src/core/styles/font/textFontStyle.ts +0 -13
- package/src/core/styles/font/types.ts +0 -35
- package/src/core/styles/grid/gridItemStyle.ts +0 -82
- package/src/core/styles/grid/gridStyle.ts +0 -108
- package/src/core/styles/grid/index.ts +0 -3
- package/src/core/styles/grid/types.ts +0 -37
- package/src/core/styles/helpers.ts +0 -72
- package/src/core/styles/index.ts +0 -5
- package/src/core/styles/input/index.ts +0 -2
- package/src/core/styles/input/responsiveInputPaddingStyle.ts +0 -78
- package/src/core/styles/input/textInputStyle.ts +0 -263
- package/src/core/styles/internal.ts +0 -12
- package/src/core/styles/margin/index.ts +0 -2
- package/src/core/styles/margin/marginStyle.ts +0 -21
- package/src/core/styles/margin/marginsStyle.test.ts +0 -33
- package/src/core/styles/margin/types.ts +0 -9
- package/src/core/styles/padding/index.ts +0 -2
- package/src/core/styles/padding/paddingStyle.test.ts +0 -33
- package/src/core/styles/padding/paddingStyle.ts +0 -21
- package/src/core/styles/padding/types.ts +0 -12
- package/src/core/styles/radius/index.ts +0 -2
- package/src/core/styles/radius/radiusStyle.ts +0 -23
- package/src/core/styles/radius/types.ts +0 -8
- package/src/core/styles/shadow/index.ts +0 -2
- package/src/core/styles/shadow/shadowStyle.ts +0 -29
- package/src/core/styles/shadow/types.ts +0 -6
- package/src/core/styles/types.ts +0 -8
- package/src/core/theme/__workshop__/build/Root.tsx +0 -367
- package/src/core/theme/__workshop__/build/helpers.ts +0 -46
- package/src/core/theme/__workshop__/build/story.tsx +0 -465
- package/src/core/theme/__workshop__/canvas.tsx +0 -352
- package/src/core/theme/__workshop__/color.tsx +0 -62
- package/src/core/theme/__workshop__/debug/story.tsx +0 -408
- package/src/core/theme/__workshop__/index.ts +0 -39
- package/src/core/theme/__workshop__/layer.tsx +0 -78
- package/src/core/theme/__workshop__/nestedProvider.tsx +0 -15
- package/src/core/theme/index.ts +0 -5
- package/src/core/theme/theme.test.tsx +0 -73
- package/src/core/theme/themeColorProvider.tsx +0 -29
- package/src/core/theme/themeContext.ts +0 -10
- package/src/core/theme/themeProvider.tsx +0 -62
- package/src/core/theme/types.ts +0 -12
- package/src/core/theme/useRootTheme.ts +0 -17
- package/src/core/theme/useTheme.ts +0 -16
- package/src/core/types/avatar.ts +0 -14
- package/src/core/types/badge.ts +0 -12
- package/src/core/types/box.ts +0 -19
- package/src/core/types/button.ts +0 -21
- package/src/core/types/card.ts +0 -6
- package/src/core/types/component.ts +0 -32
- package/src/core/types/dialog.ts +0 -4
- package/src/core/types/flex.ts +0 -30
- package/src/core/types/grid.ts +0 -14
- package/src/core/types/gridItem.ts +0 -29
- package/src/core/types/index.ts +0 -15
- package/src/core/types/placement.ts +0 -18
- package/src/core/types/popover.ts +0 -4
- package/src/core/types/radius.ts +0 -4
- package/src/core/types/selectable.ts +0 -6
- package/src/core/types/text.ts +0 -4
- package/src/core/utils/arrow/arrow.tsx +0 -123
- package/src/core/utils/arrow/cmds.ts +0 -91
- package/src/core/utils/arrow/index.ts +0 -1
- package/src/core/utils/boundaryElement/__workshop__/index.ts +0 -14
- package/src/core/utils/boundaryElement/__workshop__/plain.tsx +0 -19
- package/src/core/utils/boundaryElement/boundaryElement.test.tsx +0 -100
- package/src/core/utils/boundaryElement/boundaryElementContext.ts +0 -7
- package/src/core/utils/boundaryElement/boundaryElementProvider.tsx +0 -24
- package/src/core/utils/boundaryElement/index.ts +0 -3
- package/src/core/utils/boundaryElement/types.ts +0 -7
- package/src/core/utils/boundaryElement/useBoundaryElement.ts +0 -26
- package/src/core/utils/conditionalWrapper/conditionalWrapper.tsx +0 -21
- package/src/core/utils/conditionalWrapper/index.ts +0 -1
- package/src/core/utils/elementQuery/__workshop__/customMedia.tsx +0 -30
- package/src/core/utils/elementQuery/__workshop__/index.ts +0 -14
- package/src/core/utils/elementQuery/elementQuery.tsx +0 -53
- package/src/core/utils/elementQuery/helpers.ts +0 -27
- package/src/core/utils/elementQuery/index.ts +0 -1
- package/src/core/utils/errorBoundary.tsx +0 -48
- package/src/core/utils/getElementRef.ts +0 -26
- package/src/core/utils/index.ts +0 -9
- package/src/core/utils/layer/__workshop__/_debug.tsx +0 -17
- package/src/core/utils/layer/__workshop__/index.ts +0 -24
- package/src/core/utils/layer/__workshop__/multipleRoots.tsx +0 -49
- package/src/core/utils/layer/__workshop__/nested.tsx +0 -98
- package/src/core/utils/layer/__workshop__/responsiveZOffset.tsx +0 -13
- package/src/core/utils/layer/getLayerContext.test.ts +0 -30
- package/src/core/utils/layer/getLayerContext.ts +0 -21
- package/src/core/utils/layer/index.ts +0 -4
- package/src/core/utils/layer/layer.test.tsx +0 -108
- package/src/core/utils/layer/layer.tsx +0 -98
- package/src/core/utils/layer/layerContext.ts +0 -7
- package/src/core/utils/layer/layerProvider.tsx +0 -111
- package/src/core/utils/layer/types.ts +0 -9
- package/src/core/utils/layer/useLayer.ts +0 -26
- package/src/core/utils/portal/__workshop__/index.ts +0 -14
- package/src/core/utils/portal/__workshop__/named.tsx +0 -63
- package/src/core/utils/portal/index.ts +0 -4
- package/src/core/utils/portal/portal.test.tsx +0 -103
- package/src/core/utils/portal/portal.ts +0 -32
- package/src/core/utils/portal/portalContext.ts +0 -31
- package/src/core/utils/portal/portalProvider.tsx +0 -47
- package/src/core/utils/portal/types.ts +0 -9
- package/src/core/utils/portal/usePortal.ts +0 -25
- package/src/core/utils/spanWithTextOverflow.tsx +0 -10
- package/src/core/utils/srOnly/index.ts +0 -1
- package/src/core/utils/srOnly/srOnly.tsx +0 -36
- package/src/core/utils/virtualList/__workshop__/changingProps.tsx +0 -36
- package/src/core/utils/virtualList/__workshop__/elementScroll.tsx +0 -24
- package/src/core/utils/virtualList/__workshop__/index.ts +0 -29
- package/src/core/utils/virtualList/__workshop__/infiniteList.tsx +0 -48
- package/src/core/utils/virtualList/__workshop__/windowScrolll.tsx +0 -22
- package/src/core/utils/virtualList/index.ts +0 -1
- package/src/core/utils/virtualList/virtualList.tsx +0 -200
- package/src/theme/build/_deprecated/color/_selectable/createSelectableTones.ts +0 -76
- package/src/theme/build/_deprecated/color/_solid/createSolidTones.ts +0 -54
- package/src/theme/build/_deprecated/color/button/createButtonModes.ts +0 -22
- package/src/theme/build/_deprecated/color/button/createButtonTones.ts +0 -55
- package/src/theme/build/_deprecated/color/card/createCardStates.ts +0 -60
- package/src/theme/build/_deprecated/color/color.test.ts +0 -63
- package/src/theme/build/_deprecated/color/defaults.ts +0 -390
- package/src/theme/build/_deprecated/color/factory.ts +0 -142
- package/src/theme/build/_deprecated/color/index.ts +0 -1
- package/src/theme/build/_deprecated/color/input/createInputModes.ts +0 -81
- package/src/theme/build/_deprecated/color/muted/createMuted.ts +0 -54
- package/src/theme/build/_deprecated/color/spot/createSpot.ts +0 -20
- package/src/theme/build/buildColorTheme.test.ts +0 -183
- package/src/theme/build/buildColorTheme.ts +0 -499
- package/src/theme/build/buildTheme.test.ts +0 -87
- package/src/theme/build/buildTheme.ts +0 -36
- package/src/theme/build/colorToken/colorToken.ts +0 -19
- package/src/theme/build/colorToken/compileColorToken.ts +0 -21
- package/src/theme/build/colorToken/index.ts +0 -2
- package/src/theme/build/colorToken/types.ts +0 -6
- package/src/theme/build/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/index.ts +0 -3
- package/src/theme/build/lib/color-fns/blend/mix.ts +0 -21
- package/src/theme/build/lib/color-fns/blend/multiply.ts +0 -18
- package/src/theme/build/lib/color-fns/blend/screen.ts +0 -18
- package/src/theme/build/lib/color-fns/color-fns.test.ts +0 -68
- package/src/theme/build/lib/color-fns/contrastRatio.ts +0 -31
- package/src/theme/build/lib/color-fns/convert.ts +0 -150
- package/src/theme/build/lib/color-fns/index.ts +0 -6
- package/src/theme/build/lib/color-fns/parse.ts +0 -60
- package/src/theme/build/lib/color-fns/rgba.ts +0 -10
- package/src/theme/build/lib/color-fns/types.ts +0 -28
- package/src/theme/build/lib/isRecord.ts +0 -3
- package/src/theme/build/lib/lazy.ts +0 -30
- package/src/theme/build/lib/utils.ts +0 -19
- package/src/theme/build/merge.ts +0 -26
- package/src/theme/build/mixThemeColor.test.ts +0 -21
- package/src/theme/build/mixThemeColor.ts +0 -53
- package/src/theme/build/renderColorTheme.ts +0 -532
- package/src/theme/build/renderColorValue.ts +0 -85
- package/src/theme/build/resolveColorTokens.ts +0 -268
- package/src/theme/build/theme.test.ts +0 -27
- package/src/theme/config/helpers.ts +0 -55
- package/src/theme/config/index.ts +0 -4
- package/src/theme/config/system.ts +0 -115
- package/src/theme/config/tokens/color/index.ts +0 -1
- package/src/theme/config/tokens/color/types.ts +0 -133
- package/src/theme/config/tokens/index.ts +0 -4
- package/src/theme/config/tokens/parseTokenKey.test.ts +0 -64
- package/src/theme/config/tokens/parseTokenKey.ts +0 -67
- package/src/theme/config/tokens/parseTokenValue.test.ts +0 -42
- package/src/theme/config/tokens/parseTokenValue.ts +0 -133
- package/src/theme/config/tokens/types.ts +0 -53
- package/src/theme/config/types.ts +0 -46
- package/src/theme/defaults/colorPalette.ts +0 -5
- package/src/theme/defaults/colorTokens.ts +0 -648
- package/src/theme/defaults/config.ts +0 -84
- package/src/theme/defaults/fonts.ts +0 -227
- package/src/theme/getScopedTheme.ts +0 -98
- package/src/theme/index.ts +0 -5
- package/src/theme/system/avatar.ts +0 -14
- package/src/theme/system/color/_constants.ts +0 -45
- package/src/theme/system/color/_helpers.ts +0 -24
- package/src/theme/system/color/_system.ts +0 -40
- package/src/theme/system/color/avatar.ts +0 -15
- package/src/theme/system/color/badge.ts +0 -16
- package/src/theme/system/color/button.ts +0 -17
- package/src/theme/system/color/color.ts +0 -34
- package/src/theme/system/color/index.ts +0 -13
- package/src/theme/system/color/input.ts +0 -25
- package/src/theme/system/color/kbd.ts +0 -8
- package/src/theme/system/color/selectable.ts +0 -12
- package/src/theme/system/color/shadow.ts +0 -7
- package/src/theme/system/color/state.ts +0 -43
- package/src/theme/system/color/syntax.ts +0 -41
- package/src/theme/system/css.ts +0 -14
- package/src/theme/system/focusRing.ts +0 -7
- package/src/theme/system/font.ts +0 -52
- package/src/theme/system/index.ts +0 -11
- package/src/theme/system/input.ts +0 -33
- package/src/theme/system/layer.ts +0 -8
- package/src/theme/system/shadow.ts +0 -19
- package/src/theme/system/styles.ts +0 -13
- package/src/theme/system/theme.ts +0 -138
- package/src/theme/system/v0/avatar.ts +0 -10
- package/src/theme/system/v0/color/_generic.ts +0 -35
- package/src/theme/system/v0/color/_system.ts +0 -17
- package/src/theme/system/v0/color/base.ts +0 -21
- package/src/theme/system/v0/color/button.ts +0 -42
- package/src/theme/system/v0/color/card.ts +0 -19
- package/src/theme/system/v0/color/color.ts +0 -40
- package/src/theme/system/v0/color/index.ts +0 -11
- package/src/theme/system/v0/color/input.ts +0 -34
- package/src/theme/system/v0/color/muted.ts +0 -26
- package/src/theme/system/v0/color/selectable.ts +0 -31
- package/src/theme/system/v0/color/solid.ts +0 -26
- package/src/theme/system/v0/color/spot.ts +0 -13
- package/src/theme/system/v0/index.ts +0 -3
- package/src/theme/system/v0/input.ts +0 -23
- package/src/theme/versioning/getTheme_v2.ts +0 -57
- package/src/theme/versioning/index.ts +0 -5
- package/src/theme/versioning/is_v0.ts +0 -6
- package/src/theme/versioning/is_v2.ts +0 -6
- package/src/theme/versioning/themeColor_v0_v2.ts +0 -243
- package/src/theme/versioning/themeColor_v2_v2_9.ts +0 -49
- package/src/theme/versioning/v0_v2.ts +0 -94
- package/src/theme/versioning/v2_v0.ts +0 -135
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-bar.js","names":[],"sources":["../../src/kit/ui/mode-bar.tsx"],"sourcesContent":["/**\n * MODE BAR (D61 §3.7, shared with D58 view-as). One 36px strip that says \"you are in a mode\": an icon, a sentence and\n * its actions, with a polite live-region announcement. The primitive is shared; the placement is not:\n *\n * - View as (D58): app-wide, above the top bar (it changes who you are). `tone=\"info\"`, centred. Esc does not exit.\n * - Revision preview (D61): inside the editor, under its header (it changes what you are looking at).\n * `tone=\"raised\"`, start-aligned. Esc goes back to current (the host wires it).\n *\n * If both apply, both show: view-as on top. Tokens only, both themes (D56).\n * The strip sits in the app shell, outside any kit host, so its root carries the kit scope itself (like the portalled layers).\n */\nimport * as React from \"react\";\nimport { cn } from \"../lib/cn\";\nimport { KIT_SCOPE, SURFACE_RAISED } from \"./surfaces\";\n\nexport type ModeBarTone = \"info\" | \"raised\";\n\nconst TONE: Record<ModeBarTone, string> = {\n info: \"border-kit-info-line bg-kit-info-soft\",\n raised: cn(\"border-kit-line\", SURFACE_RAISED),\n};\n\nexport interface ModeBarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"role\"> {\n /** the region's accessible name (\"View as\", \"Version preview\") */\n label: string;\n /** a 16px glyph, decorative */\n icon?: React.ReactNode;\n tone?: ModeBarTone;\n /** \"center\" (view-as) or \"start\" (revision preview) */\n align?: \"center\" | \"start\";\n /** polite announcement, read once when it changes */\n announce?: string;\n}\n\nexport const ModeBar = React.forwardRef<HTMLDivElement, ModeBarProps>(function ModeBar(\n { label, icon, tone = \"info\", align = \"center\", announce, className, children, ...rest },\n ref,\n) {\n return (\n <div\n ref={ref}\n role=\"region\"\n aria-label={label}\n data-mode-bar={tone}\n {...KIT_SCOPE}\n className={cn(\n \"relative flex h-9 shrink-0 items-center gap-2 border-b px-4 text-kit-sm text-kit-fg\",\n align === \"center\" ? \"justify-center\" : \"justify-start\",\n TONE[tone],\n className,\n )}\n {...rest}\n >\n <span aria-live=\"polite\" className=\"sr-only\">{announce ?? \"\"}</span>\n {icon ? <span aria-hidden className=\"flex shrink-0 text-kit-fg-2 [&>svg]:size-4\">{icon}</span> : null}\n {children}\n </div>\n );\n});\n\n/** The quiet \"·\" between parts of a mode bar sentence. */\nexport function ModeBarDot({ className }: { className?: string }) {\n return <span aria-hidden className={cn(\"text-kit-fg-3\", className)}>·</span>;\n}\n\n/** A text action in a mode bar (\"Exit\"): underlined, not a button chip. */\nexport const ModeBarLink = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>(function ModeBarLink(\n { className, ...rest },\n ref,\n) {\n return (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n \"shrink-0 rounded-kit-sm px-1 font-medium text-kit-fg underline decoration-kit-fg-3 underline-offset-2 hover:decoration-kit-fg\",\n className,\n )}\n {...rest}\n />\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,IAAM,OAAoC;CACxC,MAAM;CACN,QAAQ,GAAG,mBAAmB,eAAe;CAC9C;AAcD,IAAa,UAAU,MAAM,WAAyC,SAAS,QAC7E,EAAE,OAAO,MAAM,OAAO,QAAQ,QAAQ,UAAU,UAAU,WAAW,UAAU,GAAG,QAClF,KACA;AACA,QACE,qBAAC,OAAD;EACO;EACL,MAAK;EACL,cAAY;EACZ,iBAAe;EACf,GAAI;EACJ,WAAW,GACT,uFACA,UAAU,WAAW,mBAAmB,iBACxC,KAAK,OACL,UACD;EACD,GAAI;YAZN;GAcE,oBAAC,QAAD;IAAM,aAAU;IAAS,WAAU;cAAW,YAAY;IAAU,CAAA;GACnE,OAAO,oBAAC,QAAD;IAAM,eAAA;IAAY,WAAU;cAA8C;IAAY,CAAA,GAAG;GAChG;GACG;;EAER;;AAGF,SAAgB,WAAW,EAAE,aAAqC;AAChE,QAAO,oBAAC,QAAD;EAAM,eAAA;EAAY,WAAW,GAAG,iBAAiB,UAAU;YAAE;EAAQ,CAAA;;;AAI9E,IAAa,cAAc,MAAM,WAA6E,SAAS,YACrH,EAAE,WAAW,GAAG,QAChB,KACA;AACA,QACE,oBAAC,UAAD;EACO;EACL,MAAK;EACL,WAAW,GACT,iIACA,UACD;EACD,GAAI;EACJ,CAAA;EAEJ"}
|
package/ui/overlay.d.ts
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
|
|
3
|
+
import { Menu as MenuPrimitive } from "@base-ui/react/menu";
|
|
4
|
+
import { Popover as PopoverPrimitive } from "@base-ui/react/popover";
|
|
5
|
+
import { PreviewCard as PreviewCardPrimitive } from "@base-ui/react/preview-card";
|
|
6
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
7
|
+
/** Base UI parts accept a className function; the kit takes plain strings so cn() can merge them. */
|
|
8
|
+
type Cls<P> = Omit<P, "className"> & {
|
|
9
|
+
className?: string;
|
|
10
|
+
};
|
|
11
|
+
export declare const FLOATING_LAYER = "[data-floating-layer]";
|
|
12
|
+
export declare const TooltipProvider: React.FC<import("@base-ui/react").TooltipProviderProps>;
|
|
13
|
+
export declare function Tooltip({ content, children, side, shortcut, delay, disabled, }: {
|
|
14
|
+
content: React.ReactNode;
|
|
15
|
+
/** the trigger: one element that forwards its ref and spreads props */
|
|
16
|
+
children: React.ReactElement;
|
|
17
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
18
|
+
/** a key hint (D44): shown only while keyboard hints are on */
|
|
19
|
+
shortcut?: string;
|
|
20
|
+
delay?: number;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export declare function Popover({ onOpenChange, ...props }: PopoverPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export declare const PopoverTrigger: PopoverPrimitive.Trigger;
|
|
25
|
+
export declare const PopoverClose: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").PopoverCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
26
|
+
/** Positions the popover against this element instead of the trigger; presses on it count as inside. */
|
|
27
|
+
export declare function PopoverAnchor({ render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
28
|
+
export declare function PopoverContent({ className, align, side, sideOffset, keepFocus, onMouseDown, collisionBoundary, collisionPadding, collisionAvoidance, ...props }: Cls<PopoverPrimitive.Popup.Props> & {
|
|
29
|
+
align?: "start" | "center" | "end";
|
|
30
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
31
|
+
sideOffset?: number;
|
|
32
|
+
/** keep the popup inside this area (e.g. the scrolling panel under a sticky header) instead of the viewport */
|
|
33
|
+
collisionBoundary?: PopoverPrimitive.Positioner.Props["collisionBoundary"];
|
|
34
|
+
collisionPadding?: PopoverPrimitive.Positioner.Props["collisionPadding"];
|
|
35
|
+
/** e.g. `{ align: "shift" }`: slide along the edge to fit instead of flipping start ↔ end (V2's Radix behaviour) */
|
|
36
|
+
collisionAvoidance?: PopoverPrimitive.Positioner.Props["collisionAvoidance"];
|
|
37
|
+
/** §12 no-focus-steal: typing stays in the input the list hangs off. The popup takes no focus on open, gives none
|
|
38
|
+
* back on close, and a mouse-down inside it never blurs the input (text fields inside the popup still focus). */
|
|
39
|
+
keepFocus?: boolean;
|
|
40
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
export declare const HoverCard: typeof PreviewCardPrimitive.Root;
|
|
42
|
+
export declare const HoverCardTrigger: PreviewCardPrimitive.Trigger;
|
|
43
|
+
export declare function HoverCardContent({ className, ...props }: Cls<PreviewCardPrimitive.Popup.Props>): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
/** Arrowing past the last item stays put (loopFocus false), like V2's Radix menus. */
|
|
45
|
+
export declare function Menu({ onOpenChange, loopFocus, ...props }: MenuPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export declare const MenuTrigger: MenuPrimitive.Trigger;
|
|
47
|
+
export declare const MenuGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
48
|
+
export declare const MenuSub: typeof MenuPrimitive.SubmenuRoot;
|
|
49
|
+
export declare const MenuRadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react").ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
50
|
+
export declare function MenuContent({ className, align, side, sideOffset, ...props }: Cls<MenuPrimitive.Popup.Props> & {
|
|
51
|
+
align?: "start" | "center" | "end";
|
|
52
|
+
side?: "top" | "bottom" | "left" | "right";
|
|
53
|
+
sideOffset?: number;
|
|
54
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export declare function MenuItem({ className, icon, shortcut, danger, children, ...props }: Cls<MenuPrimitive.Item.Props> & {
|
|
56
|
+
icon?: React.ReactNode;
|
|
57
|
+
shortcut?: string;
|
|
58
|
+
danger?: boolean;
|
|
59
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
/** Checking an item closes the menu, like V2's Radix items (pass closeOnClick={false} to keep it open). */
|
|
61
|
+
export declare function MenuCheckItem({ className, children, closeOnClick, ...props }: Cls<MenuPrimitive.CheckboxItem.Props>): import("react/jsx-runtime").JSX.Element;
|
|
62
|
+
export declare function MenuRadioItem({ className, children, closeOnClick, ...props }: Cls<MenuPrimitive.RadioItem.Props>): import("react/jsx-runtime").JSX.Element;
|
|
63
|
+
export declare function MenuSubTrigger({ className, icon, children, ...props }: Cls<MenuPrimitive.SubmenuTrigger.Props> & {
|
|
64
|
+
icon?: React.ReactNode;
|
|
65
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
66
|
+
export declare function MenuSubContent({ className, ...props }: Cls<MenuPrimitive.Popup.Props>): import("react/jsx-runtime").JSX.Element;
|
|
67
|
+
export declare function MenuLabel({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
export declare function MenuSeparator({ className }: {
|
|
69
|
+
className?: string;
|
|
70
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
71
|
+
type FinalFocus = DialogPrimitive.Popup.Props["finalFocus"];
|
|
72
|
+
export declare function useFocusReturn(finalFocus?: FinalFocus): {
|
|
73
|
+
ref: (el: HTMLElement | null) => void;
|
|
74
|
+
finalFocus: NonNullable<FinalFocus>;
|
|
75
|
+
};
|
|
76
|
+
export declare function Modal({ onOpenChange, ...props }: DialogPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
|
|
77
|
+
export declare const ModalTrigger: DialogPrimitive.Trigger;
|
|
78
|
+
export declare const ModalClose: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
79
|
+
declare const sizes: {
|
|
80
|
+
sm: string;
|
|
81
|
+
md: string;
|
|
82
|
+
lg: string;
|
|
83
|
+
xl: string;
|
|
84
|
+
full: string;
|
|
85
|
+
};
|
|
86
|
+
export declare function ModalContent({ className, size, children, hideClose, finalFocus, ref, ...props }: Cls<DialogPrimitive.Popup.Props> & {
|
|
87
|
+
size?: keyof typeof sizes;
|
|
88
|
+
hideClose?: boolean;
|
|
89
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
90
|
+
export declare function ModalHeader({ title, description, className, children, }: {
|
|
91
|
+
title: React.ReactNode;
|
|
92
|
+
description?: React.ReactNode;
|
|
93
|
+
/** D15: no icon tiles in dialog headers (accepted for compatibility, intentionally not rendered) */
|
|
94
|
+
icon?: React.ReactNode;
|
|
95
|
+
className?: string;
|
|
96
|
+
children?: React.ReactNode;
|
|
97
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
98
|
+
export declare function ModalBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
99
|
+
export declare function ModalFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
|
|
100
|
+
/** A sheet is a dialog that slides in from an edge: open it with Sheet (= Modal) and its trigger. */
|
|
101
|
+
export declare const Sheet: typeof Modal;
|
|
102
|
+
export declare const SheetTrigger: DialogPrimitive.Trigger;
|
|
103
|
+
export declare const SheetClose: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
104
|
+
declare const sheetSides: {
|
|
105
|
+
readonly right: "inset-y-0 right-0 border-l data-[open]:animate-[kit-sheet-in-r_260ms_var(--kit-ease-out-soft)]";
|
|
106
|
+
readonly left: "inset-y-0 left-0 border-r data-[open]:animate-[kit-sheet-in-l_260ms_var(--kit-ease-out-soft)]";
|
|
107
|
+
readonly bottom: "inset-x-0 bottom-0 h-[52%] overflow-hidden rounded-t-kit-2xl border-t data-[open]:animate-[kit-sheet-in-b_300ms_cubic-bezier(0.32,0.72,0,1)]";
|
|
108
|
+
};
|
|
109
|
+
export declare function SheetContent({ className, side, children, width, label, noScrim, finalFocus, ref, style, backdropClassName, keepMounted, ...props }: Cls<DialogPrimitive.Popup.Props> & {
|
|
110
|
+
side?: keyof typeof sheetSides;
|
|
111
|
+
/** side sheets only: the panel width in px (a bottom sheet spans the viewport) */
|
|
112
|
+
width?: number;
|
|
113
|
+
/** the dialog's accessible name (V2's tablet inspector sheet is "Inspector") */
|
|
114
|
+
label?: string;
|
|
115
|
+
/** no backdrop: the page behind stays visible and, with <Sheet modal={false}>, live (V2's Comments and History sheets) */
|
|
116
|
+
noScrim?: boolean;
|
|
117
|
+
style?: React.CSSProperties;
|
|
118
|
+
/** extra classes for the backdrop, a sibling portal: a host that themes its own scope (light/dark) passes the same class here */
|
|
119
|
+
backdropClassName?: string;
|
|
120
|
+
/** keep the content mounted (hidden) while closed: a host whose content holds live state, like the editor's inspector */
|
|
121
|
+
keepMounted?: boolean;
|
|
122
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
123
|
+
export {};
|
package/ui/overlay.js
ADDED
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import { cn } from "../lib/cn.js";
|
|
2
|
+
import { FLOATING_LINE, GLASS, INK_ACTIVE, KIT_SCOPE, SURFACE_RAISED, TRAY } from "./surfaces.js";
|
|
3
|
+
import { MODAL_LAYER, TooltipLayer, TooltipRoot } from "./tooltip-root.js";
|
|
4
|
+
import { IconButton, TooltipScope } from "./button.js";
|
|
5
|
+
import { useShortcutHints } from "./shortcut-hint.js";
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
import { IconCheck, IconChevronRight, IconX } from "@tabler/icons-react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Tooltip } from "@base-ui/react/tooltip";
|
|
10
|
+
import { Dialog } from "@base-ui/react/dialog";
|
|
11
|
+
import { Menu } from "@base-ui/react/menu";
|
|
12
|
+
import { Popover } from "@base-ui/react/popover";
|
|
13
|
+
import { PreviewCard } from "@base-ui/react/preview-card";
|
|
14
|
+
import { Separator } from "@base-ui/react/separator";
|
|
15
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
16
|
+
//#region src/kit/ui/overlay.tsx
|
|
17
|
+
var layer = { [MODAL_LAYER]: "" };
|
|
18
|
+
var FLOATING_LAYER = "[data-floating-layer]";
|
|
19
|
+
function keepOpen(details, anchor) {
|
|
20
|
+
const target = details.event?.target;
|
|
21
|
+
const keep = details.reason === "escape-key" && details.event.defaultPrevented || details.reason === "outside-press" && target instanceof Element && (!!target.closest("[data-floating-layer]") || !!anchor?.contains(target));
|
|
22
|
+
if (keep) details.cancel();
|
|
23
|
+
return keep;
|
|
24
|
+
}
|
|
25
|
+
function guard(onOpenChange, anchor) {
|
|
26
|
+
return (open, details) => {
|
|
27
|
+
if (!open && keepOpen(details, anchor?.())) return;
|
|
28
|
+
onOpenChange?.(open, details);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
var TooltipProvider = Tooltip.Provider;
|
|
32
|
+
function Tooltip$1({ content, children, side = "top", shortcut, delay = 350, disabled }) {
|
|
33
|
+
const hints = useShortcutHints();
|
|
34
|
+
if (disabled || !content) return /* @__PURE__ */ jsx(TooltipScope.Provider, {
|
|
35
|
+
value: true,
|
|
36
|
+
children
|
|
37
|
+
});
|
|
38
|
+
return /* @__PURE__ */ jsx(TooltipScope.Provider, {
|
|
39
|
+
value: true,
|
|
40
|
+
children: /* @__PURE__ */ jsxs(TooltipRoot, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
|
|
41
|
+
delay,
|
|
42
|
+
render: children
|
|
43
|
+
}), /* @__PURE__ */ jsxs(TooltipLayer, {
|
|
44
|
+
side,
|
|
45
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
46
|
+
className: "line-clamp-[8] min-w-0 whitespace-normal [overflow-wrap:anywhere]",
|
|
47
|
+
children: content
|
|
48
|
+
}), shortcut && hints ? /* @__PURE__ */ jsx("kbd", {
|
|
49
|
+
"data-hint": "shortcuts",
|
|
50
|
+
className: cn("mt-px shrink-0 rounded-kit-sm px-1 font-kit-sans text-kit-2xs", INK_ACTIVE),
|
|
51
|
+
children: shortcut
|
|
52
|
+
}) : null]
|
|
53
|
+
})] })
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
var AnchorContext = React.createContext(null);
|
|
57
|
+
function Popover$1({ onOpenChange, ...props }) {
|
|
58
|
+
const anchor = React.useRef(null);
|
|
59
|
+
return /* @__PURE__ */ jsx(AnchorContext.Provider, {
|
|
60
|
+
value: anchor,
|
|
61
|
+
children: /* @__PURE__ */ jsx(Popover.Root, {
|
|
62
|
+
...props,
|
|
63
|
+
onOpenChange: guard(onOpenChange, () => anchor.current)
|
|
64
|
+
})
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
var PopoverTrigger = Popover.Trigger;
|
|
68
|
+
var PopoverClose = Popover.Close;
|
|
69
|
+
/** Positions the popover against this element instead of the trigger; presses on it count as inside. */
|
|
70
|
+
function PopoverAnchor({ render, ...props }) {
|
|
71
|
+
const anchor = React.useContext(AnchorContext);
|
|
72
|
+
return useRender({
|
|
73
|
+
render: render ?? /* @__PURE__ */ jsx("div", {}),
|
|
74
|
+
ref: anchor ?? void 0,
|
|
75
|
+
props
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function PopoverContent({ className, align = "start", side, sideOffset = 6, keepFocus, onMouseDown, collisionBoundary, collisionPadding = 12, collisionAvoidance, ...props }) {
|
|
79
|
+
const anchor = React.useContext(AnchorContext);
|
|
80
|
+
return /* @__PURE__ */ jsx(Popover.Portal, { children: /* @__PURE__ */ jsx(Popover.Positioner, {
|
|
81
|
+
align,
|
|
82
|
+
side,
|
|
83
|
+
sideOffset,
|
|
84
|
+
collisionBoundary,
|
|
85
|
+
collisionPadding,
|
|
86
|
+
collisionAvoidance,
|
|
87
|
+
anchor: anchor?.current ? anchor : void 0,
|
|
88
|
+
className: "z-[80]",
|
|
89
|
+
...KIT_SCOPE,
|
|
90
|
+
children: /* @__PURE__ */ jsx(Popover.Popup, {
|
|
91
|
+
initialFocus: keepFocus ? false : void 0,
|
|
92
|
+
finalFocus: keepFocus ? false : void 0,
|
|
93
|
+
onMouseDown: (e) => {
|
|
94
|
+
onMouseDown?.(e);
|
|
95
|
+
if (keepFocus && !e.target.closest("input, textarea, select, [contenteditable=true]")) e.preventDefault();
|
|
96
|
+
},
|
|
97
|
+
className: cn(GLASS, "w-72 max-w-[calc(100vw-24px)] rounded-kit-xl border p-3 text-kit-fg outline-none data-[open]:animate-kit-pop-in", className),
|
|
98
|
+
...props
|
|
99
|
+
})
|
|
100
|
+
}) });
|
|
101
|
+
}
|
|
102
|
+
var HoverCard = PreviewCard.Root;
|
|
103
|
+
var HoverCardTrigger = PreviewCard.Trigger;
|
|
104
|
+
function HoverCardContent({ className, ...props }) {
|
|
105
|
+
return /* @__PURE__ */ jsx(PreviewCard.Portal, { children: /* @__PURE__ */ jsx(PreviewCard.Positioner, {
|
|
106
|
+
sideOffset: 8,
|
|
107
|
+
collisionPadding: 12,
|
|
108
|
+
className: "z-[80]",
|
|
109
|
+
...KIT_SCOPE,
|
|
110
|
+
children: /* @__PURE__ */ jsx(PreviewCard.Popup, {
|
|
111
|
+
className: cn(GLASS, "w-72 rounded-kit-xl border p-3 data-[open]:animate-kit-pop-in", className),
|
|
112
|
+
...props
|
|
113
|
+
})
|
|
114
|
+
}) });
|
|
115
|
+
}
|
|
116
|
+
/** Arrowing past the last item stays put (loopFocus false), like V2's Radix menus. */
|
|
117
|
+
function Menu$1({ onOpenChange, loopFocus = false, ...props }) {
|
|
118
|
+
return /* @__PURE__ */ jsx(Menu.Root, {
|
|
119
|
+
loopFocus,
|
|
120
|
+
...props,
|
|
121
|
+
onOpenChange: guard(onOpenChange)
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
var MenuTrigger = Menu.Trigger;
|
|
125
|
+
var MenuGroup = Menu.Group;
|
|
126
|
+
var MenuSub = Menu.SubmenuRoot;
|
|
127
|
+
var MenuRadioGroup = Menu.RadioGroup;
|
|
128
|
+
function MenuContent({ className, align = "start", side, sideOffset = 6, ...props }) {
|
|
129
|
+
return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
130
|
+
align,
|
|
131
|
+
side,
|
|
132
|
+
sideOffset,
|
|
133
|
+
collisionPadding: 12,
|
|
134
|
+
className: "z-[80]",
|
|
135
|
+
...KIT_SCOPE,
|
|
136
|
+
children: /* @__PURE__ */ jsx(Menu.Popup, {
|
|
137
|
+
...layer,
|
|
138
|
+
className: cn(GLASS, "min-w-48 overflow-hidden rounded-kit-lg border p-1 text-kit-fg outline-none data-[open]:animate-kit-pop-in", className),
|
|
139
|
+
...props
|
|
140
|
+
})
|
|
141
|
+
}) });
|
|
142
|
+
}
|
|
143
|
+
var itemCls = "relative flex h-8 cursor-pointer select-none items-center gap-2 rounded-kit-md px-2 text-kit-sm text-kit-fg outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-kit-hover [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-kit-fg-2";
|
|
144
|
+
function MenuItem({ className, icon, shortcut, danger, children, ...props }) {
|
|
145
|
+
return /* @__PURE__ */ jsxs(Menu.Item, {
|
|
146
|
+
className: cn(itemCls, danger && "text-kit-danger-fg data-[highlighted]:bg-kit-danger-soft [&>svg]:text-kit-danger-fg", className),
|
|
147
|
+
...props,
|
|
148
|
+
children: [
|
|
149
|
+
icon,
|
|
150
|
+
/* @__PURE__ */ jsx("span", {
|
|
151
|
+
className: "min-w-0 flex-1 truncate",
|
|
152
|
+
children
|
|
153
|
+
}),
|
|
154
|
+
shortcut ? /* @__PURE__ */ jsx("span", {
|
|
155
|
+
className: "text-kit-xs text-kit-fg-3",
|
|
156
|
+
children: shortcut
|
|
157
|
+
}) : null
|
|
158
|
+
]
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
/** Checking an item closes the menu, like V2's Radix items (pass closeOnClick={false} to keep it open). */
|
|
162
|
+
function MenuCheckItem({ className, children, closeOnClick = true, ...props }) {
|
|
163
|
+
return /* @__PURE__ */ jsxs(Menu.CheckboxItem, {
|
|
164
|
+
className: cn(itemCls, "pr-8", className),
|
|
165
|
+
closeOnClick,
|
|
166
|
+
...props,
|
|
167
|
+
children: [children, /* @__PURE__ */ jsx(Menu.CheckboxItemIndicator, {
|
|
168
|
+
className: "absolute right-2",
|
|
169
|
+
children: /* @__PURE__ */ jsx(IconCheck, { className: "size-4" })
|
|
170
|
+
})]
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
function MenuRadioItem({ className, children, closeOnClick = true, ...props }) {
|
|
174
|
+
return /* @__PURE__ */ jsxs(Menu.RadioItem, {
|
|
175
|
+
className: cn(itemCls, "pr-8", className),
|
|
176
|
+
closeOnClick,
|
|
177
|
+
...props,
|
|
178
|
+
children: [children, /* @__PURE__ */ jsx(Menu.RadioItemIndicator, {
|
|
179
|
+
className: "absolute right-2",
|
|
180
|
+
children: /* @__PURE__ */ jsx(IconCheck, { className: "size-4" })
|
|
181
|
+
})]
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
function MenuSubTrigger({ className, icon, children, ...props }) {
|
|
185
|
+
return /* @__PURE__ */ jsxs(Menu.SubmenuTrigger, {
|
|
186
|
+
className: cn(itemCls, "data-[popup-open]:bg-kit-hover", className),
|
|
187
|
+
...props,
|
|
188
|
+
children: [
|
|
189
|
+
icon,
|
|
190
|
+
/* @__PURE__ */ jsx("span", {
|
|
191
|
+
className: "flex-1",
|
|
192
|
+
children
|
|
193
|
+
}),
|
|
194
|
+
/* @__PURE__ */ jsx(IconChevronRight, { className: "size-3.5 text-kit-fg-3" })
|
|
195
|
+
]
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
function MenuSubContent({ className, ...props }) {
|
|
199
|
+
return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
200
|
+
sideOffset: 6,
|
|
201
|
+
collisionPadding: 12,
|
|
202
|
+
className: "z-[81]",
|
|
203
|
+
...KIT_SCOPE,
|
|
204
|
+
children: /* @__PURE__ */ jsx(Menu.Popup, {
|
|
205
|
+
className: cn(GLASS, "min-w-44 rounded-kit-lg border p-1 text-kit-fg outline-none data-[open]:animate-kit-pop-in", className),
|
|
206
|
+
...props
|
|
207
|
+
})
|
|
208
|
+
}) });
|
|
209
|
+
}
|
|
210
|
+
function MenuLabel({ className, ...props }) {
|
|
211
|
+
return /* @__PURE__ */ jsx("div", {
|
|
212
|
+
className: cn("px-2 pb-1 pt-1.5 text-kit-xs font-medium text-kit-fg-3", className),
|
|
213
|
+
...props
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
function MenuSeparator({ className }) {
|
|
217
|
+
return /* @__PURE__ */ jsx(Separator, { className: cn("-mx-1 my-1 h-px bg-kit-line", className) });
|
|
218
|
+
}
|
|
219
|
+
var recent = [];
|
|
220
|
+
if (typeof document !== "undefined") document.addEventListener("focusin", (e) => {
|
|
221
|
+
recent.unshift(e.target);
|
|
222
|
+
recent.length = Math.min(recent.length, 4);
|
|
223
|
+
}, true);
|
|
224
|
+
function useFocusReturn(finalFocus) {
|
|
225
|
+
const ret = React.useRef(null);
|
|
226
|
+
const popup = React.useRef(null);
|
|
227
|
+
return {
|
|
228
|
+
ref: React.useCallback((el) => {
|
|
229
|
+
if (el === popup.current) return;
|
|
230
|
+
popup.current = el;
|
|
231
|
+
if (!el) return;
|
|
232
|
+
const active = document.activeElement;
|
|
233
|
+
const outside = (n) => !!n && n !== document.body && !el.contains(n);
|
|
234
|
+
ret.current = outside(active) ? active : recent.find(outside) ?? null;
|
|
235
|
+
}, []),
|
|
236
|
+
finalFocus: finalFocus ?? (() => {
|
|
237
|
+
const t = ret.current;
|
|
238
|
+
return t && t.isConnected ? t : true;
|
|
239
|
+
})
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/** One stable callback ref for both refs, so React does not detach and re-attach them on every render. */
|
|
243
|
+
function useMergedRef(a, b) {
|
|
244
|
+
return React.useCallback((el) => {
|
|
245
|
+
for (const r of [a, b]) if (typeof r === "function") r(el);
|
|
246
|
+
else if (r) r.current = el;
|
|
247
|
+
}, [a, b]);
|
|
248
|
+
}
|
|
249
|
+
function Modal({ onOpenChange, ...props }) {
|
|
250
|
+
return /* @__PURE__ */ jsx(Dialog.Root, {
|
|
251
|
+
...props,
|
|
252
|
+
onOpenChange: guard(onOpenChange)
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
var ModalTrigger = Dialog.Trigger;
|
|
256
|
+
var ModalClose = Dialog.Close;
|
|
257
|
+
var sizes = {
|
|
258
|
+
sm: "max-w-[400px]",
|
|
259
|
+
md: "max-w-[480px]",
|
|
260
|
+
lg: "max-w-[640px]",
|
|
261
|
+
xl: "max-w-[800px]",
|
|
262
|
+
full: "max-w-[min(1280px,calc(100vw-48px))] h-[min(860px,calc(100vh-48px))]"
|
|
263
|
+
};
|
|
264
|
+
function ModalContent({ className, size = "md", children, hideClose, finalFocus, ref, ...props }) {
|
|
265
|
+
const focusReturn = useFocusReturn(finalFocus);
|
|
266
|
+
const merged = useMergedRef(ref, focusReturn.ref);
|
|
267
|
+
return /* @__PURE__ */ jsxs(Dialog.Portal, { children: [/* @__PURE__ */ jsx(Dialog.Backdrop, {
|
|
268
|
+
...KIT_SCOPE,
|
|
269
|
+
className: "fixed inset-0 z-[60] bg-kit-overlay backdrop-blur-[2px] data-[open]:animate-kit-fade-in"
|
|
270
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
271
|
+
...KIT_SCOPE,
|
|
272
|
+
className: "pointer-events-none fixed inset-0 z-[61] flex items-center justify-center p-4 sm:p-6",
|
|
273
|
+
children: /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
274
|
+
...layer,
|
|
275
|
+
className: cn("pointer-events-auto relative flex max-h-[calc(100vh-32px)] w-full flex-col overflow-hidden rounded-kit-xl border text-kit-fg shadow-kit-xl outline-none data-[open]:animate-kit-pop-in", FLOATING_LINE, SURFACE_RAISED, sizes[size], className),
|
|
276
|
+
...props,
|
|
277
|
+
ref: merged,
|
|
278
|
+
finalFocus: focusReturn.finalFocus,
|
|
279
|
+
children: [children, hideClose ? null : /* @__PURE__ */ jsx(Dialog.Close, {
|
|
280
|
+
render: /* @__PURE__ */ jsx(IconButton, {
|
|
281
|
+
label: "Close",
|
|
282
|
+
size: "sm",
|
|
283
|
+
className: "absolute right-3 top-3 z-10"
|
|
284
|
+
}),
|
|
285
|
+
children: /* @__PURE__ */ jsx(IconX, {})
|
|
286
|
+
})]
|
|
287
|
+
})
|
|
288
|
+
})] });
|
|
289
|
+
}
|
|
290
|
+
function ModalHeader({ title, description, className, children }) {
|
|
291
|
+
return /* @__PURE__ */ jsx("div", {
|
|
292
|
+
className: cn("flex shrink-0 items-start gap-2.5 px-5 pb-1 pt-5 pr-12", className),
|
|
293
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
294
|
+
className: "min-w-0 flex-1",
|
|
295
|
+
children: [
|
|
296
|
+
/* @__PURE__ */ jsx(Dialog.Title, {
|
|
297
|
+
className: "text-kit-md font-semibold tracking-[-0.01em] text-kit-fg",
|
|
298
|
+
children: title
|
|
299
|
+
}),
|
|
300
|
+
description ? /* @__PURE__ */ jsx(Dialog.Description, {
|
|
301
|
+
className: "mt-1 text-kit-sm text-kit-fg-2",
|
|
302
|
+
children: description
|
|
303
|
+
}) : /* @__PURE__ */ jsx(Dialog.Description, {
|
|
304
|
+
className: "sr-only",
|
|
305
|
+
children: typeof title === "string" ? title : "Dialog"
|
|
306
|
+
}),
|
|
307
|
+
children
|
|
308
|
+
]
|
|
309
|
+
})
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
function ModalBody({ className, ...props }) {
|
|
313
|
+
return /* @__PURE__ */ jsx("div", {
|
|
314
|
+
className: cn("min-h-0 flex-1 overflow-y-auto px-5 pb-5 pt-4", className),
|
|
315
|
+
...props
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
function ModalFooter({ className, ...props }) {
|
|
319
|
+
return /* @__PURE__ */ jsx("div", {
|
|
320
|
+
className: cn("flex shrink-0 items-center justify-end gap-2 border-t px-5 py-3", TRAY, className),
|
|
321
|
+
...props
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
/** A sheet is a dialog that slides in from an edge: open it with Sheet (= Modal) and its trigger. */
|
|
325
|
+
var Sheet = Modal;
|
|
326
|
+
var SheetTrigger = Dialog.Trigger;
|
|
327
|
+
var SheetClose = Dialog.Close;
|
|
328
|
+
var sheetSides = {
|
|
329
|
+
right: "inset-y-0 right-0 border-l data-[open]:animate-[kit-sheet-in-r_260ms_var(--kit-ease-out-soft)]",
|
|
330
|
+
left: "inset-y-0 left-0 border-r data-[open]:animate-[kit-sheet-in-l_260ms_var(--kit-ease-out-soft)]",
|
|
331
|
+
bottom: "inset-x-0 bottom-0 h-[52%] overflow-hidden rounded-t-kit-2xl border-t data-[open]:animate-[kit-sheet-in-b_300ms_cubic-bezier(0.32,0.72,0,1)]"
|
|
332
|
+
};
|
|
333
|
+
function SheetContent({ className, side = "right", children, width = 440, label = "Panel", noScrim = false, finalFocus, ref, style, backdropClassName, keepMounted = false, ...props }) {
|
|
334
|
+
const focusReturn = useFocusReturn(finalFocus);
|
|
335
|
+
const merged = useMergedRef(ref, focusReturn.ref);
|
|
336
|
+
const bottom = side === "bottom";
|
|
337
|
+
return /* @__PURE__ */ jsxs(Dialog.Portal, {
|
|
338
|
+
keepMounted,
|
|
339
|
+
children: [noScrim ? null : /* @__PURE__ */ jsx(Dialog.Backdrop, {
|
|
340
|
+
...KIT_SCOPE,
|
|
341
|
+
className: cn("fixed inset-0 z-[55] bg-kit-overlay data-[open]:animate-kit-fade-in", backdropClassName)
|
|
342
|
+
}), /* @__PURE__ */ jsxs(Dialog.Popup, {
|
|
343
|
+
...KIT_SCOPE,
|
|
344
|
+
...layer,
|
|
345
|
+
style: bottom ? style : {
|
|
346
|
+
width: `min(${width}px, 100vw)`,
|
|
347
|
+
...style
|
|
348
|
+
},
|
|
349
|
+
className: cn("fixed z-[56] flex flex-col text-kit-fg shadow-kit-xl outline-none transition-transform motion-reduce:animate-none", SURFACE_RAISED, "border-kit-line", sheetSides[side], className),
|
|
350
|
+
...props,
|
|
351
|
+
ref: merged,
|
|
352
|
+
finalFocus: focusReturn.finalFocus,
|
|
353
|
+
children: [
|
|
354
|
+
/* @__PURE__ */ jsx(Dialog.Title, {
|
|
355
|
+
className: "sr-only",
|
|
356
|
+
children: label
|
|
357
|
+
}),
|
|
358
|
+
/* @__PURE__ */ jsx(Dialog.Description, {
|
|
359
|
+
className: "sr-only",
|
|
360
|
+
children: bottom ? "Bottom panel" : "Side panel"
|
|
361
|
+
}),
|
|
362
|
+
bottom ? /* @__PURE__ */ jsx("div", {
|
|
363
|
+
"aria-hidden": true,
|
|
364
|
+
className: "flex shrink-0 justify-center pt-2",
|
|
365
|
+
children: /* @__PURE__ */ jsx("span", {
|
|
366
|
+
"data-sheet-grabber": true,
|
|
367
|
+
className: "h-1 w-10 rounded-full bg-kit-line-strong"
|
|
368
|
+
})
|
|
369
|
+
}) : null,
|
|
370
|
+
children
|
|
371
|
+
]
|
|
372
|
+
})]
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
//#endregion
|
|
376
|
+
export { FLOATING_LAYER, HoverCard, HoverCardContent, HoverCardTrigger, Menu$1 as Menu, MenuCheckItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuRadioGroup, MenuRadioItem, MenuSeparator, MenuSub, MenuSubContent, MenuSubTrigger, MenuTrigger, Modal, ModalBody, ModalClose, ModalContent, ModalFooter, ModalHeader, ModalTrigger, Popover$1 as Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, Sheet, SheetClose, SheetContent, SheetTrigger, Tooltip$1 as Tooltip, TooltipProvider, useFocusReturn };
|
|
377
|
+
|
|
378
|
+
//# sourceMappingURL=overlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.js","names":[],"sources":["../../src/kit/ui/overlay.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\";\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\";\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\";\nimport { Separator } from \"@base-ui/react/separator\";\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { IconCheck, IconChevronRight, IconX } from \"@tabler/icons-react\";\nimport { cn } from \"../lib/cn\";\nimport { IconButton, TooltipScope } from \"./button\";\nimport { useShortcutHints } from \"./shortcut-hint\";\nimport { FLOATING_LINE, GLASS, INK_ACTIVE, KIT_SCOPE, SURFACE_RAISED, TRAY } from \"./surfaces\";\nimport { MODAL_LAYER, TooltipLayer, TooltipRoot } from \"./tooltip-root\";\n\n/* Z-index scale: popover/menu 80 · modal overlay 60 / content 61 · sheet 55 · toast 100 · tooltip 90 */\n\n/** Base UI parts accept a className function; the kit takes plain strings so cn() can merge them. */\ntype Cls<P> = Omit<P, \"className\"> & { className?: string };\nconst layer = { [MODAL_LAYER]: \"\" };\n\n/* ── Dismiss guards (DESIGN.md §12) ──────────────────────────────────────────\n Every kit layer runs its close requests through keepOpen():\n - Escape owned by an inner list: an inner element that handles Escape calls event.preventDefault(); the layer\n keeps itself open. (Base UI's own nested layers already close innermost first.)\n - Floating layers portalled outside (an editor's selection toolbar, a slash menu) carry data-floating-layer:\n a press there counts as inside, so it never dismisses the layer underneath.\n - A press on a popover's anchor (the input a list hangs off) counts as inside. */\ntype CloseDetails = { reason: string; event: Event; cancel: () => void };\nexport const FLOATING_LAYER = \"[data-floating-layer]\";\nfunction keepOpen(details: CloseDetails, anchor?: Element | null) {\n const target = details.event?.target;\n const keep =\n (details.reason === \"escape-key\" && details.event.defaultPrevented) ||\n (details.reason === \"outside-press\" &&\n target instanceof Element &&\n (!!target.closest(FLOATING_LAYER) || !!anchor?.contains(target)));\n if (keep) details.cancel();\n return keep;\n}\nfunction guard<D extends CloseDetails>(onOpenChange: ((open: boolean, d: D) => void) | undefined, anchor?: () => Element | null) {\n return (open: boolean, details: D) => {\n if (!open && keepOpen(details, anchor?.())) return;\n onOpenChange?.(open, details);\n };\n}\n\n/* ── Tooltip ───────────────────────────────────────────────────────────── */\nexport const TooltipProvider = TooltipPrimitive.Provider;\nexport function Tooltip({\n content,\n children,\n side = \"top\",\n shortcut,\n delay = 350,\n disabled,\n}: {\n content: React.ReactNode;\n /** the trigger: one element that forwards its ref and spreads props */\n children: React.ReactElement;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /** a key hint (D44): shown only while keyboard hints are on */\n shortcut?: string;\n delay?: number;\n disabled?: boolean;\n}) {\n const hints = useShortcutHints();\n if (disabled || !content) return <TooltipScope.Provider value>{children}</TooltipScope.Provider>;\n return (\n <TooltipScope.Provider value>\n <TooltipRoot>\n <TooltipPrimitive.Trigger delay={delay} render={children} />\n {/* Fixed max width: long text (truncated titles, help) wraps into a calm block instead of a viewport-wide strip. */}\n <TooltipLayer side={side}>\n <span className=\"line-clamp-[8] min-w-0 whitespace-normal [overflow-wrap:anywhere]\">{content}</span>\n {shortcut && hints ? (\n <kbd data-hint=\"shortcuts\" className={cn(\"mt-px shrink-0 rounded-kit-sm px-1 font-kit-sans text-kit-2xs\", INK_ACTIVE)}>\n {shortcut}\n </kbd>\n ) : null}\n </TooltipLayer>\n </TooltipRoot>\n </TooltipScope.Provider>\n );\n}\n\n/* ── Popover ───────────────────────────────────────────────────────────── */\nconst AnchorContext = React.createContext<React.RefObject<HTMLElement | null> | null>(null);\n\nexport function Popover({ onOpenChange, ...props }: PopoverPrimitive.Root.Props) {\n const anchor = React.useRef<HTMLElement | null>(null);\n return (\n <AnchorContext.Provider value={anchor}>\n <PopoverPrimitive.Root {...props} onOpenChange={guard(onOpenChange, () => anchor.current)} />\n </AnchorContext.Provider>\n );\n}\nexport const PopoverTrigger = PopoverPrimitive.Trigger;\nexport const PopoverClose = PopoverPrimitive.Close;\n\n/** Positions the popover against this element instead of the trigger; presses on it count as inside. */\nexport function PopoverAnchor({ render, ...props }: useRender.ComponentProps<\"div\">) {\n const anchor = React.useContext(AnchorContext);\n return useRender({ render: render ?? <div />, ref: anchor ?? undefined, props });\n}\n\nexport function PopoverContent({\n className,\n align = \"start\",\n side,\n sideOffset = 6,\n keepFocus,\n onMouseDown,\n collisionBoundary,\n collisionPadding = 12,\n collisionAvoidance,\n ...props\n}: Cls<PopoverPrimitive.Popup.Props> & {\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n sideOffset?: number;\n /** keep the popup inside this area (e.g. the scrolling panel under a sticky header) instead of the viewport */\n collisionBoundary?: PopoverPrimitive.Positioner.Props[\"collisionBoundary\"];\n collisionPadding?: PopoverPrimitive.Positioner.Props[\"collisionPadding\"];\n /** e.g. `{ align: \"shift\" }`: slide along the edge to fit instead of flipping start ↔ end (V2's Radix behaviour) */\n collisionAvoidance?: PopoverPrimitive.Positioner.Props[\"collisionAvoidance\"];\n /** §12 no-focus-steal: typing stays in the input the list hangs off. The popup takes no focus on open, gives none\n * back on close, and a mouse-down inside it never blurs the input (text fields inside the popup still focus). */\n keepFocus?: boolean;\n}) {\n const anchor = React.useContext(AnchorContext);\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n side={side}\n sideOffset={sideOffset}\n collisionBoundary={collisionBoundary}\n collisionPadding={collisionPadding}\n collisionAvoidance={collisionAvoidance}\n anchor={anchor?.current ? anchor : undefined}\n className=\"z-[80]\"\n {...KIT_SCOPE}\n >\n <PopoverPrimitive.Popup\n initialFocus={keepFocus ? false : undefined}\n finalFocus={keepFocus ? false : undefined}\n onMouseDown={(e) => {\n onMouseDown?.(e);\n if (keepFocus && !(e.target as Element).closest(\"input, textarea, select, [contenteditable=true]\")) e.preventDefault();\n }}\n className={cn(GLASS, \"w-72 max-w-[calc(100vw-24px)] rounded-kit-xl border p-3 text-kit-fg outline-none data-[open]:animate-kit-pop-in\", className)}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n );\n}\n\n/* ── Hover card ────────────────────────────────────────────────────────── */\nexport const HoverCard = PreviewCardPrimitive.Root;\nexport const HoverCardTrigger = PreviewCardPrimitive.Trigger;\nexport function HoverCardContent({ className, ...props }: Cls<PreviewCardPrimitive.Popup.Props>) {\n return (\n <PreviewCardPrimitive.Portal>\n <PreviewCardPrimitive.Positioner sideOffset={8} collisionPadding={12} className=\"z-[80]\" {...KIT_SCOPE}>\n <PreviewCardPrimitive.Popup\n className={cn(GLASS, \"w-72 rounded-kit-xl border p-3 data-[open]:animate-kit-pop-in\", className)}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n );\n}\n\n/* ── Dropdown menu ─────────────────────────────────────────────────────── */\n/** Arrowing past the last item stays put (loopFocus false), like V2's Radix menus. */\nexport function Menu({ onOpenChange, loopFocus = false, ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root loopFocus={loopFocus} {...props} onOpenChange={guard(onOpenChange)} />;\n}\nexport const MenuTrigger = MenuPrimitive.Trigger;\nexport const MenuGroup = MenuPrimitive.Group;\nexport const MenuSub = MenuPrimitive.SubmenuRoot;\nexport const MenuRadioGroup = MenuPrimitive.RadioGroup;\n\nexport function MenuContent({\n className,\n align = \"start\",\n side,\n sideOffset = 6,\n ...props\n}: Cls<MenuPrimitive.Popup.Props> & {\n align?: \"start\" | \"center\" | \"end\";\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n sideOffset?: number;\n}) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner align={align} side={side} sideOffset={sideOffset} collisionPadding={12} className=\"z-[80]\" {...KIT_SCOPE}>\n <MenuPrimitive.Popup\n {...layer}\n className={cn(GLASS, \"min-w-48 overflow-hidden rounded-kit-lg border p-1 text-kit-fg outline-none data-[open]:animate-kit-pop-in\", className)}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\n\nconst itemCls =\n \"relative flex h-8 cursor-pointer select-none items-center gap-2 rounded-kit-md px-2 text-kit-sm text-kit-fg outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-40 data-[highlighted]:bg-kit-hover [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-kit-fg-2\";\n\nexport function MenuItem({\n className,\n icon,\n shortcut,\n danger,\n children,\n ...props\n}: Cls<MenuPrimitive.Item.Props> & { icon?: React.ReactNode; shortcut?: string; danger?: boolean }) {\n return (\n <MenuPrimitive.Item\n className={cn(itemCls, danger && \"text-kit-danger-fg data-[highlighted]:bg-kit-danger-soft [&>svg]:text-kit-danger-fg\", className)}\n {...props}\n >\n {icon}\n <span className=\"min-w-0 flex-1 truncate\">{children}</span>\n {/* menu shortcut columns are not hints (D44): they always show */}\n {shortcut ? <span className=\"text-kit-xs text-kit-fg-3\">{shortcut}</span> : null}\n </MenuPrimitive.Item>\n );\n}\n\n/** Checking an item closes the menu, like V2's Radix items (pass closeOnClick={false} to keep it open). */\nexport function MenuCheckItem({ className, children, closeOnClick = true, ...props }: Cls<MenuPrimitive.CheckboxItem.Props>) {\n return (\n <MenuPrimitive.CheckboxItem className={cn(itemCls, \"pr-8\", className)} closeOnClick={closeOnClick} {...props}>\n {children}\n <MenuPrimitive.CheckboxItemIndicator className=\"absolute right-2\">\n <IconCheck className=\"size-4\" />\n </MenuPrimitive.CheckboxItemIndicator>\n </MenuPrimitive.CheckboxItem>\n );\n}\n\nexport function MenuRadioItem({ className, children, closeOnClick = true, ...props }: Cls<MenuPrimitive.RadioItem.Props>) {\n return (\n <MenuPrimitive.RadioItem className={cn(itemCls, \"pr-8\", className)} closeOnClick={closeOnClick} {...props}>\n {children}\n <MenuPrimitive.RadioItemIndicator className=\"absolute right-2\">\n <IconCheck className=\"size-4\" />\n </MenuPrimitive.RadioItemIndicator>\n </MenuPrimitive.RadioItem>\n );\n}\n\nexport function MenuSubTrigger({\n className,\n icon,\n children,\n ...props\n}: Cls<MenuPrimitive.SubmenuTrigger.Props> & { icon?: React.ReactNode }) {\n return (\n <MenuPrimitive.SubmenuTrigger className={cn(itemCls, \"data-[popup-open]:bg-kit-hover\", className)} {...props}>\n {icon}\n <span className=\"flex-1\">{children}</span>\n <IconChevronRight className=\"size-3.5 text-kit-fg-3\" />\n </MenuPrimitive.SubmenuTrigger>\n );\n}\nexport function MenuSubContent({ className, ...props }: Cls<MenuPrimitive.Popup.Props>) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner sideOffset={6} collisionPadding={12} className=\"z-[81]\" {...KIT_SCOPE}>\n <MenuPrimitive.Popup\n className={cn(GLASS, \"min-w-44 rounded-kit-lg border p-1 text-kit-fg outline-none data-[open]:animate-kit-pop-in\", className)}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n );\n}\nexport function MenuLabel({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"px-2 pb-1 pt-1.5 text-kit-xs font-medium text-kit-fg-3\", className)} {...props} />;\n}\nexport function MenuSeparator({ className }: { className?: string }) {\n return <Separator className={cn(\"-mx-1 my-1 h-px bg-kit-line\", className)} />;\n}\n\n/* ── Focus return (a11y) ───────────────────────────────────────────────────\n A dialog library remembers the focused element when the dialog opens and refocuses it on close. When a field\n inside autofocuses, that element is already the field, so focus fell to <body> on close. We keep the last few\n focused elements and hand focus back to the real trigger: the newest one that is outside the popup and still\n in the document. Without one, the library's default applies. */\nconst recent: HTMLElement[] = [];\nif (typeof document !== \"undefined\") {\n document.addEventListener(\n \"focusin\",\n (e) => {\n recent.unshift(e.target as HTMLElement);\n recent.length = Math.min(recent.length, 4);\n },\n true,\n );\n}\ntype FinalFocus = DialogPrimitive.Popup.Props[\"finalFocus\"];\nexport function useFocusReturn(finalFocus?: FinalFocus): {\n ref: (el: HTMLElement | null) => void;\n finalFocus: NonNullable<FinalFocus>;\n} {\n const ret = React.useRef<HTMLElement | null>(null);\n const popup = React.useRef<HTMLElement | null>(null);\n const ref = React.useCallback((el: HTMLElement | null) => {\n // Capture once per open (per popup element). A callback ref can be called again on a re-render while open, when\n // focus is already inside the popup and the trigger may have dropped out of `recent`.\n if (el === popup.current) return;\n popup.current = el;\n if (!el) return;\n const active = document.activeElement as HTMLElement | null;\n const outside = (n: HTMLElement | null): n is HTMLElement => !!n && n !== document.body && !el.contains(n);\n ret.current = outside(active) ? active : (recent.find(outside) ?? null);\n }, []);\n return {\n ref,\n finalFocus:\n finalFocus ??\n (() => {\n const t = ret.current;\n return t && t.isConnected ? t : true;\n }),\n };\n}\n\n/** One stable callback ref for both refs, so React does not detach and re-attach them on every render. */\nfunction useMergedRef<T>(a: React.Ref<T> | undefined, b: React.Ref<T> | undefined) {\n return React.useCallback(\n (el: T | null) => {\n for (const r of [a, b]) {\n if (typeof r === \"function\") r(el);\n else if (r) (r as React.RefObject<T | null>).current = el;\n }\n },\n [a, b],\n );\n}\n\n/* ── Modal (Dialog) ────────────────────────────────────────────────────── */\nexport function Modal({ onOpenChange, ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root {...props} onOpenChange={guard(onOpenChange)} />;\n}\nexport const ModalTrigger = DialogPrimitive.Trigger;\nexport const ModalClose = DialogPrimitive.Close;\n\nconst sizes = {\n sm: \"max-w-[400px]\",\n md: \"max-w-[480px]\",\n lg: \"max-w-[640px]\",\n xl: \"max-w-[800px]\",\n full: \"max-w-[min(1280px,calc(100vw-48px))] h-[min(860px,calc(100vh-48px))]\",\n};\n\nexport function ModalContent({\n className,\n size = \"md\",\n children,\n hideClose,\n finalFocus,\n ref,\n ...props\n}: Cls<DialogPrimitive.Popup.Props> & { size?: keyof typeof sizes; hideClose?: boolean }) {\n const focusReturn = useFocusReturn(finalFocus);\n const merged = useMergedRef(ref, focusReturn.ref);\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Backdrop\n {...KIT_SCOPE}\n className=\"fixed inset-0 z-[60] bg-kit-overlay backdrop-blur-[2px] data-[open]:animate-kit-fade-in\"\n />\n <div {...KIT_SCOPE} className=\"pointer-events-none fixed inset-0 z-[61] flex items-center justify-center p-4 sm:p-6\">\n <DialogPrimitive.Popup\n {...layer}\n className={cn(\n \"pointer-events-auto relative flex max-h-[calc(100vh-32px)] w-full flex-col overflow-hidden rounded-kit-xl border text-kit-fg shadow-kit-xl outline-none data-[open]:animate-kit-pop-in\",\n FLOATING_LINE,\n SURFACE_RAISED,\n sizes[size],\n className,\n )}\n {...props}\n ref={merged}\n finalFocus={focusReturn.finalFocus}\n >\n {children}\n {hideClose ? null : (\n <DialogPrimitive.Close render={<IconButton label=\"Close\" size=\"sm\" className=\"absolute right-3 top-3 z-10\" />}>\n <IconX />\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </div>\n </DialogPrimitive.Portal>\n );\n}\n\nexport function ModalHeader({\n title,\n description,\n className,\n children,\n}: {\n title: React.ReactNode;\n description?: React.ReactNode;\n /** D15: no icon tiles in dialog headers (accepted for compatibility, intentionally not rendered) */\n icon?: React.ReactNode;\n className?: string;\n children?: React.ReactNode;\n}) {\n return (\n <div className={cn(\"flex shrink-0 items-start gap-2.5 px-5 pb-1 pt-5 pr-12\", className)}>\n <div className=\"min-w-0 flex-1\">\n <DialogPrimitive.Title className=\"text-kit-md font-semibold tracking-[-0.01em] text-kit-fg\">{title}</DialogPrimitive.Title>\n {description ? (\n <DialogPrimitive.Description className=\"mt-1 text-kit-sm text-kit-fg-2\">{description}</DialogPrimitive.Description>\n ) : (\n <DialogPrimitive.Description className=\"sr-only\">{typeof title === \"string\" ? title : \"Dialog\"}</DialogPrimitive.Description>\n )}\n {children}\n </div>\n </div>\n );\n}\nexport function ModalBody({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"min-h-0 flex-1 overflow-y-auto px-5 pb-5 pt-4\", className)} {...props} />;\n}\nexport function ModalFooter({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"flex shrink-0 items-center justify-end gap-2 border-t px-5 py-3\", TRAY /* action tray (Figma 61014:66265) */, className)}\n {...props}\n />\n );\n}\n\n/* ── Sheet (side or bottom drawer) ─────────────────────────────────────── */\n/** A sheet is a dialog that slides in from an edge: open it with Sheet (= Modal) and its trigger. */\nexport const Sheet = Modal;\nexport const SheetTrigger = DialogPrimitive.Trigger;\nexport const SheetClose = DialogPrimitive.Close;\nconst sheetSides = {\n // V2: the sheet-in keyframe (24px slide + fade, 260ms ease-out-soft) on open; no exit motion\n right: \"inset-y-0 right-0 border-l data-[open]:animate-[kit-sheet-in-r_260ms_var(--kit-ease-out-soft)]\",\n left: \"inset-y-0 left-0 border-r data-[open]:animate-[kit-sheet-in-l_260ms_var(--kit-ease-out-soft)]\",\n // V2 TabletSheet / CommentsSheet / HistorySheet (editor.tsx:443-513): 52% tall, rounded-t-2xl, border-t, rises from\n // y 100% (V2's spring 420/42 settles in ~300ms with no overshoot; the drawer curve matches it without a motion import)\n bottom:\n \"inset-x-0 bottom-0 h-[52%] overflow-hidden rounded-t-kit-2xl border-t data-[open]:animate-[kit-sheet-in-b_300ms_cubic-bezier(0.32,0.72,0,1)]\",\n} as const;\nexport function SheetContent({\n className,\n side = \"right\",\n children,\n width = 440,\n label = \"Panel\",\n noScrim = false,\n finalFocus,\n ref,\n style,\n backdropClassName,\n keepMounted = false,\n ...props\n}: Cls<DialogPrimitive.Popup.Props> & {\n side?: keyof typeof sheetSides;\n /** side sheets only: the panel width in px (a bottom sheet spans the viewport) */\n width?: number;\n /** the dialog's accessible name (V2's tablet inspector sheet is \"Inspector\") */\n label?: string;\n /** no backdrop: the page behind stays visible and, with <Sheet modal={false}>, live (V2's Comments and History sheets) */\n noScrim?: boolean;\n style?: React.CSSProperties;\n /** extra classes for the backdrop, a sibling portal: a host that themes its own scope (light/dark) passes the same class here */\n backdropClassName?: string;\n /** keep the content mounted (hidden) while closed: a host whose content holds live state, like the editor's inspector */\n keepMounted?: boolean;\n}) {\n const focusReturn = useFocusReturn(finalFocus);\n const merged = useMergedRef(ref, focusReturn.ref);\n const bottom = side === \"bottom\";\n return (\n <DialogPrimitive.Portal keepMounted={keepMounted}>\n {noScrim ? null : (\n <DialogPrimitive.Backdrop {...KIT_SCOPE} className={cn(\"fixed inset-0 z-[55] bg-kit-overlay data-[open]:animate-kit-fade-in\", backdropClassName)} />\n )}\n <DialogPrimitive.Popup\n {...KIT_SCOPE}\n {...layer}\n style={bottom ? style : { width: `min(${width}px, 100vw)`, ...style }}\n className={cn(\n \"fixed z-[56] flex flex-col text-kit-fg shadow-kit-xl outline-none transition-transform motion-reduce:animate-none\",\n SURFACE_RAISED,\n // V2's cn() lets the later border-line win over border-floating-line: the sheet edge is --line in both themes\n \"border-kit-line\",\n sheetSides[side],\n className,\n )}\n {...props}\n ref={merged}\n finalFocus={focusReturn.finalFocus}\n >\n <DialogPrimitive.Title className=\"sr-only\">{label}</DialogPrimitive.Title>\n <DialogPrimitive.Description className=\"sr-only\">{bottom ? \"Bottom panel\" : \"Side panel\"}</DialogPrimitive.Description>\n {bottom ? (\n <div aria-hidden className=\"flex shrink-0 justify-center pt-2\">\n <span data-sheet-grabber className=\"h-1 w-10 rounded-full bg-kit-line-strong\" />\n </div>\n ) : null}\n {children}\n </DialogPrimitive.Popup>\n </DialogPrimitive.Portal>\n );\n}\n"],"mappings":"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"}
|