@k2b/ui 0.3.0 → 0.4.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/dist/browser/actions/index.js +2 -2
- package/dist/browser/actions/index.js.map +1 -1
- package/dist/browser/chat/ChatComposer.js +1 -1
- package/dist/browser/chat/ChatComposer.js.map +1 -1
- package/dist/browser/chat/ChatContextPopup.js.map +1 -1
- package/dist/browser/chat/ChatPrimitives.js +2 -2
- package/dist/browser/chat/ChatPrimitives.js.map +1 -1
- package/dist/browser/chat/ChatTasks.js +1 -1
- package/dist/browser/chat/ChatTasks.js.map +1 -1
- package/dist/browser/chat/ChatTimeline.js +1 -1
- package/dist/browser/chat/ChatTimeline.js.map +1 -1
- package/dist/browser/chat/composer-document.js.map +1 -1
- package/dist/browser/chat/index.js.map +1 -1
- package/dist/browser/content/Chart.js +3 -3
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +4 -4
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/ChartExplorerControls.js +1 -1
- package/dist/browser/content/ChartExplorerControls.js.map +1 -1
- package/dist/browser/content/ChartFilterControls.js +2 -2
- package/dist/browser/content/ChartFilterControls.js.map +1 -1
- package/dist/browser/content/ChartSnapshotView.js +2 -1
- package/dist/browser/content/ChartSnapshotView.js.map +1 -1
- package/dist/browser/content/FileView.js +7 -3
- package/dist/browser/content/FileView.js.map +1 -1
- package/dist/browser/content/MarkdownView.js.map +1 -1
- package/dist/browser/content/Pagination.js.map +1 -1
- package/dist/browser/content/chart-explorer.js.map +1 -1
- package/dist/browser/content/chart-inspection.js.map +1 -1
- package/dist/browser/content/chart-line-gaps.js.map +1 -1
- package/dist/browser/content/chart-snapshot.js.map +1 -1
- package/dist/browser/content/file-view-preview.js.map +1 -1
- package/dist/browser/content/index.js +9 -9
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/feedback/toast.js.map +1 -1
- package/dist/browser/inputs/ChoiceGroups.js.map +1 -1
- package/dist/browser/inputs/Select.js.map +1 -1
- package/dist/browser/inputs/markdown/behaviors.js +1 -1
- package/dist/browser/inputs/markdown/behaviors.js.map +1 -1
- package/dist/browser/layout/AppWorkspace.js +3 -3
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +1 -1
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/ScrollArea.js.map +1 -1
- package/dist/browser/layout/SidebarItemPreview.js +1 -1
- package/dist/browser/layout/SidebarItemPreview.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +1 -1
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/app-workspace-state.js.map +1 -1
- package/dist/browser/layout/index.js +3 -3
- package/dist/browser/layout/index.js.map +1 -1
- package/dist/ssr/actions/index.js +2 -2
- package/dist/ssr/actions/index.js.map +1 -1
- package/dist/ssr/chat/ChatComposer.js +1 -1
- package/dist/ssr/chat/ChatComposer.js.map +1 -1
- package/dist/ssr/chat/ChatContextPopup.js.map +1 -1
- package/dist/ssr/chat/ChatPrimitives.js +2 -2
- package/dist/ssr/chat/ChatPrimitives.js.map +1 -1
- package/dist/ssr/chat/ChatTasks.js +1 -1
- package/dist/ssr/chat/ChatTasks.js.map +1 -1
- package/dist/ssr/chat/ChatTimeline.js +1 -1
- package/dist/ssr/chat/ChatTimeline.js.map +1 -1
- package/dist/ssr/chat/composer-document.js.map +1 -1
- package/dist/ssr/chat/index.js.map +1 -1
- package/dist/ssr/content/Chart.js +3 -3
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +4 -4
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/ChartExplorerControls.js +1 -1
- package/dist/ssr/content/ChartExplorerControls.js.map +1 -1
- package/dist/ssr/content/ChartFilterControls.js +2 -2
- package/dist/ssr/content/ChartFilterControls.js.map +1 -1
- package/dist/ssr/content/ChartSnapshotView.js +2 -1
- package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
- package/dist/ssr/content/FileView.js +7 -3
- package/dist/ssr/content/FileView.js.map +1 -1
- package/dist/ssr/content/MarkdownView.js.map +1 -1
- package/dist/ssr/content/Pagination.js.map +1 -1
- package/dist/ssr/content/chart-explorer.js.map +1 -1
- package/dist/ssr/content/chart-inspection.js.map +1 -1
- package/dist/ssr/content/chart-line-gaps.js.map +1 -1
- package/dist/ssr/content/chart-snapshot.js.map +1 -1
- package/dist/ssr/content/file-view-preview.js.map +1 -1
- package/dist/ssr/content/index.js +9 -9
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/feedback/toast.js.map +1 -1
- package/dist/ssr/inputs/ChoiceGroups.js.map +1 -1
- package/dist/ssr/inputs/Select.js.map +1 -1
- package/dist/ssr/inputs/markdown/behaviors.js +1 -1
- package/dist/ssr/inputs/markdown/behaviors.js.map +1 -1
- package/dist/ssr/layout/AppWorkspace.js +3 -3
- package/dist/ssr/layout/AppWorkspace.js.map +1 -1
- package/dist/ssr/layout/DetailPanel.js +1 -1
- package/dist/ssr/layout/DetailPanel.js.map +1 -1
- package/dist/ssr/layout/ScrollArea.js.map +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js +1 -1
- package/dist/ssr/layout/SidebarItemPreview.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +1 -1
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/app-workspace-state.js.map +1 -1
- package/dist/ssr/layout/index.js +3 -3
- package/dist/ssr/layout/index.js.map +1 -1
- package/dist/types/actions/index.d.ts +4 -4
- package/dist/types/chat/ChatComposer.d.ts +1 -1
- package/dist/types/chat/index.d.ts +1 -1
- package/dist/types/content/Chart.d.ts +2 -2
- package/dist/types/content/ChartExplorer.d.ts +2 -2
- package/dist/types/content/ChartExplorerControls.d.ts +1 -1
- package/dist/types/content/ChartSnapshotView.d.ts +1 -1
- package/dist/types/content/chart-inspection.d.ts +1 -1
- package/dist/types/content/index.d.ts +15 -15
- package/dist/types/layout/AppWorkspace.d.ts +1 -1
- package/dist/types/layout/SidebarItemPreview.d.ts +1 -1
- package/dist/types/layout/index.d.ts +3 -3
- package/package.json +1 -3
|
@@ -39,10 +39,10 @@ var _tmpl$ = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__header-leadin
|
|
|
39
39
|
_tmpl$25 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-actions>`),
|
|
40
40
|
_tmpl$26 = /*#__PURE__*/_$template(`<div class=k2b-detail-panel__section-body>`),
|
|
41
41
|
_tmpl$27 = /*#__PURE__*/_$template(`<section><header class=k2b-detail-panel__section-header><!$><!/><div class=k2b-detail-panel__section-copy><h3></h3><!$><!/></div><!$><!/><!$><!/></header><!$><!/>`);
|
|
42
|
-
import { createScrollFade } from "./scroll-fade";
|
|
43
42
|
import { children, createEffect, createSignal, createUniqueId, Show, splitProps } from "solid-js";
|
|
44
43
|
import { Button, ButtonLink } from "../actions/Button";
|
|
45
44
|
import { Dropdown } from "../actions/Dropdown";
|
|
45
|
+
import { createScrollFade } from "./scroll-fade";
|
|
46
46
|
const classNames = (base, extra) => extra ? `${base} ${extra}` : base;
|
|
47
47
|
const DetailPanelHeader = props => (() => {
|
|
48
48
|
var _el$ = _$getNextElement(_tmpl$7),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createScrollFade","children","createEffect","createSignal","createUniqueId","Show","splitProps","Button","ButtonLink","Dropdown","classNames","base","extra","DetailPanelHeader","props","_el$","_$getNextElement","_tmpl$7","_el$2","firstChild","_el$14","_el$15","_co$4","_$getNextMarker","nextSibling","_el$16","_el$17","_co$5","_el$4","_el$5","_el$11","_el$12","_co$3","_el$18","_el$19","_co$6","_el$21","_el$22","_co$7","_$insert","_$createComponent","when","icon","_el$23","_tmpl$8","_el$24","_$effect","_$className","leading","_el$3","_tmpl$","title","subtitle","meta","_el$6","_tmpl$4","_el$9","_el$0","_co$","_el$1","_el$10","_co$2","_el$7","_tmpl$2","_el$8","_tmpl$3","actions","_el$13","_tmpl$5","primaryActions","_el$20","_tmpl$6","class","DetailPanelBody","body","scrollFade","_el$25","_tmpl$9","_ref$","_$use","_p$","_v$","_v$2","undefined","_v$3","scrollPreserveKey","e","t","_$setAttribute","a","DetailPanelSummary","headingId","_el$26","_tmpl$1","_el$27","_el$28","_el$30","_el$31","_co$8","_el$32","_el$29","_tmpl$0","DetailPanelGroup","_el$33","_tmpl$10","_v$4","_v$5","label","DetailPanelSectionIcon","_el$34","_tmpl$11","_el$35","_v$6","tone","_v$7","DetailPanelActionContent","_el$36","_tmpl$12","_el$37","_tmpl$14","_el$38","_el$40","_el$41","_co$9","description","_el$39","_tmpl$13","trailing","_el$42","_tmpl$15","DetailPanelAction","local","rest","className","content","action","href","fallback","_$mergeProps","variant","size","menuItems","length","_el$43","_tmpl$17","_el$45","_el$46","_co$0","_el$47","_el$48","_co$1","Root","items","align","menuLabel","Trigger","iconOnly","_tmpl$16","DetailPanelSection","bodyId","internalOpen","setInternalOpen","defaultOpen","open","expand","collapse","toggle","next","disabled","onOpenChange","expanded","queueMicrotask","active","ownerDocument","activeElement","focus","contains","resolved","collapsible","_el$74","_tmpl$27","_el$75","_el$83","_el$84","_co$16","_el$76","_el$77","_el$79","_el$80","_co$15","_el$85","_el$86","_co$17","_el$87","_el$88","_co$18","_el$90","_el$91","_co$19","_el$78","_el$81","_tmpl$22","_el$82","_tmpl$25","_el$89","_tmpl$26","_el$49","_tmpl$24","_el$50","_el$58","_el$59","_el$67","_el$68","_co$12","_el$60","_el$61","_el$63","_el$64","_co$11","_el$69","_el$70","_co$13","_el$71","_el$72","_co$14","_el$73","ref","r$","_ref$2","onClick","_el$51","_tmpl$19","_el$52","_el$54","_el$55","_co$10","_el$53","_tmpl$18","_el$56","_tmpl$20","_tmpl$21","_el$62","_el$65","_ref$3","_tmpl$23","_ref$4","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","o","_$setProperty","i","n","DetailPanel","_el$92","Header","Body","Summary","Group","Section","Action"],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { createScrollFade } from \"./scroll-fade\";\nimport { children, createEffect, createSignal, createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n scrollFade?: boolean;\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n open?: never;\n onOpenChange?: never;\n disabled?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => {\n let body!: HTMLDivElement;\n createScrollFade(() => body, () => props.scrollFade !== false);\n return <div ref={body} class={classNames(\"k2b-detail-panel__body\", props.class)} data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined} data-scroll-preserve={props.scrollPreserveKey}>\n {props.children}\n </div>;\n};\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const bodyId = `${headingId}-body`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? internalOpen();\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n let body: HTMLDivElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n const expanded = open();\n // Restore focus only when its current control becomes hidden, including\n // a parent-controlled collapse while focus is inside an editor.\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = expand?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && (active === collapse || (active && body?.contains(active)))) expand?.focus();\n });\n });\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n // Resolve once: reading `props.children` twice would instantiate the section body twice.\n const resolved = children(() => props.children);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={resolved()}>\n <div class=\"k2b-detail-panel__section-body\">{resolved()}</div>\n </Show>\n </section>\n }\n >\n <section class={className()} aria-labelledby={open() ? headingId : `${headingId}-closed`} data-open={open()}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-detail-panel__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={bodyId}\n onClick={() => toggle(true)}\n >\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={`${headingId}-closed`} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </Button>\n </div>\n <div hidden={!open()}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={headingId}\n aria-expanded={true}\n aria-controls={bodyId}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-chevron-up\" aria-hidden=\"true\" />\n </Button>\n </header>\n </div>\n <div ref={body} id={bodyId} hidden={!open()} class=\"k2b-detail-panel__section-body\">\n {props.children}\n </div>\n </section>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["children","createEffect","createSignal","createUniqueId","Show","splitProps","Button","ButtonLink","Dropdown","createScrollFade","classNames","base","extra","DetailPanelHeader","props","_el$","_$getNextElement","_tmpl$7","_el$2","firstChild","_el$14","_el$15","_co$4","_$getNextMarker","nextSibling","_el$16","_el$17","_co$5","_el$4","_el$5","_el$11","_el$12","_co$3","_el$18","_el$19","_co$6","_el$21","_el$22","_co$7","_$insert","_$createComponent","when","icon","_el$23","_tmpl$8","_el$24","_$effect","_$className","leading","_el$3","_tmpl$","title","subtitle","meta","_el$6","_tmpl$4","_el$9","_el$0","_co$","_el$1","_el$10","_co$2","_el$7","_tmpl$2","_el$8","_tmpl$3","actions","_el$13","_tmpl$5","primaryActions","_el$20","_tmpl$6","class","DetailPanelBody","body","scrollFade","_el$25","_tmpl$9","_ref$","_$use","_p$","_v$","_v$2","undefined","_v$3","scrollPreserveKey","e","t","_$setAttribute","a","DetailPanelSummary","headingId","_el$26","_tmpl$1","_el$27","_el$28","_el$30","_el$31","_co$8","_el$32","_el$29","_tmpl$0","DetailPanelGroup","_el$33","_tmpl$10","_v$4","_v$5","label","DetailPanelSectionIcon","_el$34","_tmpl$11","_el$35","_v$6","tone","_v$7","DetailPanelActionContent","_el$36","_tmpl$12","_el$37","_tmpl$14","_el$38","_el$40","_el$41","_co$9","description","_el$39","_tmpl$13","trailing","_el$42","_tmpl$15","DetailPanelAction","local","rest","className","content","action","href","fallback","_$mergeProps","variant","size","menuItems","length","_el$43","_tmpl$17","_el$45","_el$46","_co$0","_el$47","_el$48","_co$1","Root","items","align","menuLabel","Trigger","iconOnly","_tmpl$16","DetailPanelSection","bodyId","internalOpen","setInternalOpen","defaultOpen","open","expand","collapse","toggle","next","disabled","onOpenChange","expanded","queueMicrotask","active","ownerDocument","activeElement","focus","contains","resolved","collapsible","_el$74","_tmpl$27","_el$75","_el$83","_el$84","_co$16","_el$76","_el$77","_el$79","_el$80","_co$15","_el$85","_el$86","_co$17","_el$87","_el$88","_co$18","_el$90","_el$91","_co$19","_el$78","_el$81","_tmpl$22","_el$82","_tmpl$25","_el$89","_tmpl$26","_el$49","_tmpl$24","_el$50","_el$58","_el$59","_el$67","_el$68","_co$12","_el$60","_el$61","_el$63","_el$64","_co$11","_el$69","_el$70","_co$13","_el$71","_el$72","_co$14","_el$73","ref","r$","_ref$2","onClick","_el$51","_tmpl$19","_el$52","_el$54","_el$55","_co$10","_el$53","_tmpl$18","_el$56","_tmpl$20","_tmpl$21","_el$62","_el$65","_ref$3","_tmpl$23","_ref$4","_v$8","_v$9","_v$0","_v$1","_v$10","_v$11","o","_$setProperty","i","n","DetailPanel","_el$92","Header","Body","Summary","Group","Section","Action"],"sources":["layout/DetailPanel.tsx"],"sourcesContent":["import { children, createEffect, createSignal, createUniqueId, type JSX, Show, splitProps } from \"solid-js\";\nimport { Button, ButtonLink, type ButtonLinkProps, type ButtonProps } from \"../actions/Button\";\nimport { Dropdown, type DropdownItem } from \"../actions/Dropdown\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type DetailPanelProps = {\n children: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelHeaderBaseProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n meta?: JSX.Element;\n actions?: JSX.Element;\n primaryActions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelHeaderProps = DetailPanelHeaderBaseProps &\n (\n | {\n leading?: JSX.Element;\n icon?: never;\n }\n | {\n leading?: never;\n icon?: string;\n }\n );\n\nexport type DetailPanelBodyProps = {\n scrollFade?: boolean;\n children: JSX.Element;\n scrollPreserveKey?: string;\n class?: string;\n};\n\nexport type DetailPanelSummaryProps = {\n title: JSX.Element;\n children: JSX.Element;\n actions?: JSX.Element;\n class?: string;\n};\n\nexport type DetailPanelGroupProps = {\n children: JSX.Element;\n label?: string;\n class?: string;\n};\n\nexport type DetailPanelTone = \"accent\" | \"neutral\" | \"success\" | \"warning\" | \"danger\";\n\ntype DetailPanelSectionBaseProps = {\n title: JSX.Element;\n icon?: string;\n tone?: DetailPanelTone;\n description?: JSX.Element;\n meta?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionBaseProps = {\n title: JSX.Element;\n description?: JSX.Element;\n leading?: JSX.Element;\n trailing?: JSX.Element;\n class?: string;\n};\n\ntype DetailPanelActionMenuProps =\n | {\n menuItems?: never;\n menuLabel?: never;\n }\n | {\n menuItems: readonly DropdownItem[];\n menuLabel: string;\n };\n\nexport type DetailPanelActionLinkProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonLinkProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href: string;\n };\n\nexport type DetailPanelActionButtonProps = DetailPanelActionBaseProps &\n DetailPanelActionMenuProps &\n Omit<ButtonProps, \"children\" | \"class\" | \"size\" | \"title\" | \"variant\"> & {\n href?: never;\n };\n\nexport type DetailPanelActionProps = DetailPanelActionLinkProps | DetailPanelActionButtonProps;\n\nexport type DetailPanelSectionProps = DetailPanelSectionBaseProps &\n (\n | {\n children?: JSX.Element;\n actions?: JSX.Element;\n collapsible?: false;\n defaultOpen?: never;\n open?: never;\n onOpenChange?: never;\n disabled?: never;\n }\n | {\n children: JSX.Element;\n actions?: never;\n collapsible: true;\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n disabled?: boolean;\n }\n );\n\ntype DetailPanelComponent = ((props: DetailPanelProps) => JSX.Element) & {\n Header: (props: DetailPanelHeaderProps) => JSX.Element;\n Body: (props: DetailPanelBodyProps) => JSX.Element;\n Summary: (props: DetailPanelSummaryProps) => JSX.Element;\n Group: (props: DetailPanelGroupProps) => JSX.Element;\n Section: (props: DetailPanelSectionProps) => JSX.Element;\n Action: (props: DetailPanelActionProps) => JSX.Element;\n};\n\nconst classNames = (base: string, extra?: string): string => (extra ? `${base} ${extra}` : base);\n\nconst DetailPanelHeader = (props: DetailPanelHeaderProps): JSX.Element => (\n <header class={classNames(\"k2b-detail-panel__header\", props.class)}>\n <div class=\"k2b-detail-panel__header-main\">\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__header-icon\" aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <Show when={props.leading}>\n <div class=\"k2b-detail-panel__header-leading\">{props.leading}</div>\n </Show>\n <div class=\"k2b-detail-panel__heading\">\n <h2>{props.title}</h2>\n <Show when={props.subtitle || props.meta}>\n <div class=\"k2b-detail-panel__supporting\">\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__meta\">{props.meta}</div>\n </Show>\n </div>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__actions\">{props.actions}</div>\n </Show>\n </div>\n <Show when={props.primaryActions}>\n <div class=\"k2b-detail-panel__primary-actions\">{props.primaryActions}</div>\n </Show>\n </header>\n);\n\nconst DetailPanelBody = (props: DetailPanelBodyProps): JSX.Element => {\n let body!: HTMLDivElement;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class={classNames(\"k2b-detail-panel__body\", props.class)}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n data-scroll-preserve={props.scrollPreserveKey}\n >\n {props.children}\n </div>\n );\n};\n\nconst DetailPanelSummary = (props: DetailPanelSummaryProps): JSX.Element => {\n const headingId = `k2b-detail-panel-summary-${createUniqueId()}`;\n\n return (\n <section class={classNames(\"k2b-detail-panel__summary\", props.class)} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__summary-header\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__summary-actions\">{props.actions}</div>\n </Show>\n </header>\n <div class=\"k2b-detail-panel__summary-body\">{props.children}</div>\n </section>\n );\n};\n\nconst DetailPanelGroup = (props: DetailPanelGroupProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel__group\", props.class)} role=\"group\" aria-label={props.label}>\n {props.children}\n </div>\n);\n\nconst DetailPanelSectionIcon = (props: Pick<DetailPanelSectionBaseProps, \"icon\" | \"tone\">): JSX.Element => (\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-detail-panel__section-icon\" data-tone={props.tone ?? \"neutral\"} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n);\n\nconst DetailPanelActionContent = (props: DetailPanelActionBaseProps): JSX.Element => (\n <>\n <Show when={props.leading}>\n <span class=\"k2b-detail-panel__action-leading\">{props.leading}</span>\n </Show>\n <span class=\"k2b-detail-panel__action-copy\">\n <span class=\"k2b-detail-panel__action-title\">{props.title}</span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__action-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.trailing}>\n <span class=\"k2b-detail-panel__action-trailing\">{props.trailing}</span>\n </Show>\n </>\n);\n\nconst DetailPanelAction = (props: DetailPanelActionProps): JSX.Element => {\n const [local, rest] = splitProps(props, [\"class\", \"description\", \"href\", \"leading\", \"menuItems\", \"menuLabel\", \"title\", \"trailing\"]);\n const className = classNames(\"k2b-detail-panel__action\", local.class);\n const content = () => (\n <DetailPanelActionContent title={local.title} description={local.description} leading={local.leading} trailing={local.trailing} />\n );\n\n const action = () => (\n <Show\n when={local.href !== undefined}\n fallback={\n <Button\n {...(rest as Omit<DetailPanelActionButtonProps, keyof DetailPanelActionBaseProps>)}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </Button>\n }\n >\n <ButtonLink\n {...(rest as Omit<DetailPanelActionLinkProps, keyof DetailPanelActionBaseProps | \"href\">)}\n href={local.href as string}\n class={className}\n variant=\"ghost\"\n size=\"sm\"\n >\n {content()}\n </ButtonLink>\n </Show>\n );\n\n return (\n <Show when={local.menuItems?.length} fallback={action()}>\n <div class=\"k2b-detail-panel__action-row\">\n {action()}\n <Dropdown.Root items={local.menuItems ?? []} align=\"end\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu\">\n <Dropdown.Trigger iconOnly size=\"sm\" variant=\"ghost\" label={local.menuLabel} class=\"k2b-detail-panel__action-menu-trigger\">\n <i class=\"ti ti-dots\" aria-hidden=\"true\" />\n </Dropdown.Trigger>\n </Dropdown.Root>\n </div>\n </Show>\n );\n};\n\nconst DetailPanelSection = (props: DetailPanelSectionProps): JSX.Element => {\n const headingId = `k2b-detail-panel-section-${createUniqueId()}`;\n const bodyId = `${headingId}-body`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => props.open ?? internalOpen();\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n let body: HTMLDivElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n const expanded = open();\n // Restore focus only when its current control becomes hidden, including\n // a parent-controlled collapse while focus is inside an editor.\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = expand?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && (active === collapse || (active && body?.contains(active)))) expand?.focus();\n });\n });\n const className = () => classNames(\"k2b-detail-panel__section\", props.class);\n // Resolve once: reading `props.children` twice would instantiate the section body twice.\n const resolved = children(() => props.children);\n\n return (\n <Show\n when={props.collapsible}\n fallback={\n <section class={className()} aria-labelledby={headingId}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Show when={props.actions}>\n <div class=\"k2b-detail-panel__section-actions\">{props.actions}</div>\n </Show>\n </header>\n <Show when={resolved()}>\n <div class=\"k2b-detail-panel__section-body\">{resolved()}</div>\n </Show>\n </section>\n }\n >\n <section class={className()} aria-labelledby={open() ? headingId : `${headingId}-closed`} data-open={open()}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-detail-panel__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={bodyId}\n onClick={() => toggle(true)}\n >\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <span class=\"k2b-detail-panel__section-copy\">\n <span id={`${headingId}-closed`} class=\"k2b-detail-panel__section-title\">\n {props.title}\n </span>\n <Show when={props.description}>\n <span class=\"k2b-detail-panel__section-description\">{props.description}</span>\n </Show>\n </span>\n <Show when={props.meta}>\n <span class=\"k2b-detail-panel__section-meta\">{props.meta}</span>\n </Show>\n <i class=\"ti ti-chevron-down\" aria-hidden=\"true\" />\n </Button>\n </div>\n <div hidden={!open()}>\n <header class=\"k2b-detail-panel__section-header\">\n <DetailPanelSectionIcon icon={props.icon} tone={props.tone} />\n <div class=\"k2b-detail-panel__section-copy\">\n <h3 id={headingId}>{props.title}</h3>\n <Show when={props.description}>\n <p>{props.description}</p>\n </Show>\n </div>\n <Show when={props.meta}>\n <div class=\"k2b-detail-panel__section-meta\">{props.meta}</div>\n </Show>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n disabled={props.disabled}\n aria-labelledby={headingId}\n aria-expanded={true}\n aria-controls={bodyId}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-chevron-up\" aria-hidden=\"true\" />\n </Button>\n </header>\n </div>\n <div ref={body} id={bodyId} hidden={!open()} class=\"k2b-detail-panel__section-body\">\n {props.children}\n </div>\n </section>\n </Show>\n );\n};\n\nconst DetailPanel = ((props: DetailPanelProps): JSX.Element => (\n <div class={classNames(\"k2b-detail-panel\", props.class)}>{props.children}</div>\n)) as DetailPanelComponent;\n\nDetailPanel.Header = DetailPanelHeader;\nDetailPanel.Body = DetailPanelBody;\nDetailPanel.Summary = DetailPanelSummary;\nDetailPanel.Group = DetailPanelGroup;\nDetailPanel.Section = DetailPanelSection;\nDetailPanel.Action = DetailPanelAction;\n\nexport default DetailPanel;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["splitProps","createScrollFade","ScrollArea","props","local","elementProps","body","scrollFade","className","class","trim","_el$","_$getNextElement","_tmpl$","_$use","el","ref","_$spread","_$mergeProps","data-scroll-fade-axis","orientation","data-viewport-size","viewportSize","data-orientation","data-scroll-fade-mode","undefined","_$memo","data-scroll-preserve","scrollPreserveKey","_$insert","children","_$runHydrationEvents"],"sources":["layout/ScrollArea.tsx"],"sourcesContent":["import { type JSX, splitProps } from \"solid-js\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type ScrollAreaProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"class\"> & {\n children: JSX.Element;\n scrollFade?: boolean;\n /** Stable compact catalog height, clamped to 60% of the dynamic viewport. */\n viewportSize?: \"compact\";\n orientation?: \"vertical\" | \"horizontal\";\n scrollPreserveKey?: string | false;\n class?: string;\n};\n\nexport function ScrollArea(props: ScrollAreaProps): JSX.Element {\n const [local, elementProps] = splitProps(props, [\"children\"
|
|
1
|
+
{"version":3,"names":["splitProps","createScrollFade","ScrollArea","props","local","elementProps","body","scrollFade","className","class","trim","_el$","_$getNextElement","_tmpl$","_$use","el","ref","_$spread","_$mergeProps","data-scroll-fade-axis","orientation","data-viewport-size","viewportSize","data-orientation","data-scroll-fade-mode","undefined","_$memo","data-scroll-preserve","scrollPreserveKey","_$insert","children","_$runHydrationEvents"],"sources":["layout/ScrollArea.tsx"],"sourcesContent":["import { type JSX, splitProps } from \"solid-js\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type ScrollAreaProps = Omit<JSX.HTMLAttributes<HTMLDivElement>, \"children\" | \"class\"> & {\n children: JSX.Element;\n scrollFade?: boolean;\n /** Stable compact catalog height, clamped to 60% of the dynamic viewport. */\n viewportSize?: \"compact\";\n orientation?: \"vertical\" | \"horizontal\";\n scrollPreserveKey?: string | false;\n class?: string;\n};\n\nexport function ScrollArea(props: ScrollAreaProps): JSX.Element {\n const [local, elementProps] = splitProps(props, [\n \"children\",\n \"scrollPreserveKey\",\n \"class\",\n \"scrollFade\",\n \"orientation\",\n \"viewportSize\",\n \"ref\",\n ]);\n let body!: HTMLDivElement;\n createScrollFade(\n () => body,\n () => local.scrollFade !== false,\n );\n const className = () => local.class?.trim();\n\n return (\n <div\n {...elementProps}\n ref={(el) => {\n body = el;\n if (typeof local.ref === \"function\") local.ref(el);\n }}\n data-scroll-fade-axis={local.orientation ?? \"vertical\"}\n data-viewport-size={local.viewportSize}\n data-orientation={local.orientation ?? \"vertical\"}\n data-scroll-fade-mode={local.scrollFade !== false ? \"both\" : undefined}\n class={className() ? `k2b-scroll-area ${className()}` : \"k2b-scroll-area\"}\n data-scroll-preserve={local.scrollPreserveKey || undefined}\n >\n {local.children}\n </div>\n );\n}\n\nexport default ScrollArea;\n"],"mappings":";;;;;;;;;AAAA,SAAmBA,UAAU,QAAQ,UAAU;AAC/C,SAASC,gBAAgB,QAAQ,eAAe;AAYhD,OAAO,SAASC,UAAUA,CAACC,KAAsB,EAAe;EAC9D,MAAM,CAACC,KAAK,EAAEC,YAAY,CAAC,GAAGL,UAAU,CAACG,KAAK,EAAE,CAC9C,UAAU,EACV,mBAAmB,EACnB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,EACd,KAAK,CACN,CAAC;EACF,IAAIG,IAAqB;EACzBL,gBAAgB,CACd,MAAMK,IAAI,EACV,MAAMF,KAAK,CAACG,UAAU,KAAK,KAC7B,CAAC;EACD,MAAMC,SAAS,GAAGA,CAAA,KAAMJ,KAAK,CAACK,KAAK,EAAEC,IAAI,CAAC,CAAC;EAE3C;IAAA,IAAAC,IAAA,GAAAC,gBAAA,CAAAC,MAAA;IAAAC,KAAA,CAGUC,EAAE,IAAK;MACXT,IAAI,GAAGS,EAAE;MACT,IAAI,OAAOX,KAAK,CAACY,GAAG,KAAK,UAAU,EAAEZ,KAAK,CAACY,GAAG,CAACD,EAAE,CAAC;IACpD,CAAC,EAAAJ,IAAA;IAAAM,QAAA,CAAAN,IAAA,EAAAO,YAAA,CAJGb,YAAY;MAAA,6BAAAc,CAAA;QAAA,OAKOf,KAAK,CAACgB,WAAW,IAAI,UAAU;MAAA;MAAA,0BAAAC,CAAA;QAAA,OAClCjB,KAAK,CAACkB,YAAY;MAAA;MAAA,wBAAAC,CAAA;QAAA,OACpBnB,KAAK,CAACgB,WAAW,IAAI,UAAU;MAAA;MAAA,6BAAAI,CAAA;QAAA,OAC1BpB,KAAK,CAACG,UAAU,KAAK,KAAK,GAAG,MAAM,GAAGkB,SAAS;MAAA;MAAA,aAAAhB,CAAA;QAAA,OAC/DiB,MAAA,SAAAlB,SAAS,CAAC,CAAC,MAAG,mBAAmBA,SAAS,CAAC,CAAC,EAAE,GAAG,iBAAiB;MAAA;MAAA,4BAAAmB,CAAA;QAAA,OACnDvB,KAAK,CAACwB,iBAAiB,IAAIH,SAAS;MAAA;IAAA;IAAAI,QAAA,CAAAlB,IAAA,QAEzDP,KAAK,CAAC0B,QAAQ;IAAAC,oBAAA;IAAA,OAAApB,IAAA;EAAA;AAGrB;AAEA,eAAeT,UAAU","ignoreList":[]}
|
|
@@ -11,9 +11,9 @@ import { setAttribute as _$setAttribute } from "solid-js/web";
|
|
|
11
11
|
import { use as _$use } from "solid-js/web";
|
|
12
12
|
var _tmpl$ = /*#__PURE__*/_$template(`<button type=button class="k2b-app-workspace__sidebar-item-action k2b-app-workspace__sidebar-preview-trigger"data-visibility=hover aria-haspopup=dialog><i aria-hidden=true>`),
|
|
13
13
|
_tmpl$2 = /*#__PURE__*/_$template(`<div popover=auto role=dialog tabindex=-1 class=k2b-app-workspace__sidebar-preview>`);
|
|
14
|
-
import { ScrollArea } from "./ScrollArea";
|
|
15
14
|
import { createSignal, createUniqueId, onCleanup, onMount } from "solid-js";
|
|
16
15
|
import { positionTooltipSurface } from "../feedback/tooltip-position";
|
|
16
|
+
import { ScrollArea } from "./ScrollArea";
|
|
17
17
|
|
|
18
18
|
/** A non-modal, interactive row preview. Native popover owns light dismissal. */
|
|
19
19
|
export function SidebarItemPreview(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ScrollArea","createSignal","createUniqueId","onCleanup","onMount","positionTooltipSurface","SidebarItemPreview","props","id","open","setOpen","button","panel","row","main","timer","pinned","dismissed","clear","clearTimeout","undefined","close","hidePopover","position","target","align","height","getBoundingClientRect","bottom","style","top","Math","round","max","min","window","innerHeight","show","showPopover","enter","setTimeout","leave","contains","document","activeElement","dismiss","restore","focus","toggle","closest","trigger","querySelector","setAttribute","label","addEventListener","pointerEnter","event","pointerType","focusOut","next","relatedTarget","Node","escape","key","reposition","observer","ResizeObserver","observe","disconnect","removeEventListener","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","$$click","_ref$","_$use","_$setAttribute","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","t","a","o","_$className","_$runHydrationEvents","_el$3","_tmpl$2","visible","newState","String","onOpenChange","_ref$2","_$insert","_$createComponent","viewportSize","children","_$memo","_$delegateEvents"],"sources":["layout/SidebarItemPreview.tsx"],"sourcesContent":["import { ScrollArea, type ScrollAreaProps } from \"./ScrollArea\";\nimport { createSignal, createUniqueId, type JSX, onCleanup, onMount } from \"solid-js\";\nimport { positionTooltipSurface } from \"../feedback/tooltip-position\";\n\n/** A non-modal, interactive row preview. Native popover owns light dismissal. */\nexport function SidebarItemPreview(props: { label: string; children: JSX.Element | ((close: () => void) => JSX.Element); trigger?: \"action\" | \"row\"; align?: \"center\" | \"end\"; viewportSize?: ScrollAreaProps[\"viewportSize\"]; onOpenChange?: (open: boolean) => void }) {\n const id = `sidebar-preview-${createUniqueId()}`;\n const [open, setOpen] = createSignal(false);\n let button!: HTMLButtonElement;\n let panel!: HTMLDivElement;\n let row: HTMLElement | null = null;\n let main: HTMLButtonElement | null = null;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let pinned = false;\n let dismissed = false;\n const clear = () => { clearTimeout(timer); timer = undefined; };\n const close = () => { clear(); panel.hidePopover(); };\n const position = () => {\n const target = row ?? button;\n positionTooltipSurface(panel, target, \"right\");\n if (props.align === \"end\") {\n const height = panel.getBoundingClientRect().height;\n const bottom = target.getBoundingClientRect().bottom;\n panel.style.top = `${Math.round(Math.max(8, Math.min(bottom - height, window.innerHeight - height - 8)))}px`;\n }\n };\n const show = () => {\n clear();\n if (dismissed || open()) return;\n panel.showPopover();\n position();\n };\n const enter = () => { clear(); if (!dismissed && !open()) timer = setTimeout(show, 250); };\n const leave = () => {\n clear();\n dismissed = false;\n if (!pinned) timer = setTimeout(() => {\n if (!panel.contains(document.activeElement) && !row?.contains(document.activeElement)) close();\n }, 180);\n };\n const dismiss = () => {\n const restore = panel.contains(document.activeElement);\n dismissed = true;\n close();\n if (restore) (main ?? button).focus();\n };\n const toggle = () => {\n clear();\n if (open() && pinned) { dismiss(); return; }\n dismissed = false; pinned = true; show(); panel.focus();\n };\n onMount(() => {\n row = button.closest<HTMLElement>(\".k2b-app-workspace__sidebar-item\");\n if (props.trigger === \"row\") {\n main = row?.querySelector<HTMLButtonElement>(\":scope > button.k2b-app-workspace__sidebar-item-main\") ?? null;\n main?.setAttribute(\"aria-label\", props.label);\n main?.setAttribute(\"aria-haspopup\", \"dialog\");\n main?.setAttribute(\"aria-controls\", id);\n main?.setAttribute(\"aria-expanded\", \"false\");\n main?.addEventListener(\"click\", toggle);\n }\n const pointerEnter = (event: PointerEvent) => { if (event.pointerType === \"mouse\") enter(); };\n const focusOut = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (next instanceof Node && (panel.contains(next) || row?.contains(next))) return;\n pinned = false;\n leave();\n };\n const escape = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\" || !open()) return;\n dismiss();\n };\n const reposition = () => { if (open()) position(); };\n row?.addEventListener(\"pointerenter\", pointerEnter);\n row?.addEventListener(\"pointerleave\", leave);\n row?.addEventListener(\"focusin\", enter);\n row?.addEventListener(\"focusout\", focusOut);\n panel.addEventListener(\"focusout\", focusOut);\n document.addEventListener(\"keydown\", escape);\n window.addEventListener(\"resize\", reposition);\n window.addEventListener(\"scroll\", reposition, true);\n const observer = new ResizeObserver(reposition);\n observer.observe(panel);\n onCleanup(() => {\n clear(); observer.disconnect();\n main?.removeEventListener(\"click\", toggle);\n row?.removeEventListener(\"pointerenter\", pointerEnter);\n row?.removeEventListener(\"pointerleave\", leave);\n row?.removeEventListener(\"focusin\", enter);\n row?.removeEventListener(\"focusout\", focusOut);\n panel.removeEventListener(\"focusout\", focusOut);\n document.removeEventListener(\"keydown\", escape);\n window.removeEventListener(\"resize\", reposition);\n window.removeEventListener(\"scroll\", reposition, true);\n });\n });\n return <>\n <button ref={button} type=\"button\" class=\"k2b-app-workspace__sidebar-item-action k2b-app-workspace__sidebar-preview-trigger\"\n data-visibility=\"hover\" aria-label={props.label} aria-haspopup=\"dialog\" aria-expanded={open()} aria-controls={id}\n data-row-trigger={props.trigger === \"row\" ? \"true\" : undefined}\n onClick={toggle}><i class={props.trigger === \"row\" ? \"ti ti-chevron-right\" : \"ti ti-info-circle\"} aria-hidden=\"true\" /></button>\n <div ref={panel} id={id} popover=\"auto\" role=\"dialog\" aria-label={props.label} tabIndex={-1}\n class=\"k2b-app-workspace__sidebar-preview\" onPointerEnter={clear} onPointerLeave={leave}\n onToggle={(event) => { const visible = event.newState === \"open\"; setOpen(visible); main?.setAttribute(\"aria-expanded\", String(visible)); props.onOpenChange?.(visible); if (!visible) pinned = false; }}>\n <ScrollArea viewportSize={props.viewportSize} class=\"k2b-app-workspace__sidebar-preview-body\">\n {typeof props.children === \"function\" ? props.children(dismiss) : props.children}\n </ScrollArea>\n </div>\n </>;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["createSignal","createUniqueId","onCleanup","onMount","positionTooltipSurface","ScrollArea","SidebarItemPreview","props","id","open","setOpen","button","panel","row","main","timer","pinned","dismissed","clear","clearTimeout","undefined","close","hidePopover","position","target","align","height","getBoundingClientRect","bottom","style","top","Math","round","max","min","window","innerHeight","show","showPopover","enter","setTimeout","leave","contains","document","activeElement","dismiss","restore","focus","toggle","closest","trigger","querySelector","setAttribute","label","addEventListener","pointerEnter","event","pointerType","focusOut","next","relatedTarget","Node","escape","key","reposition","observer","ResizeObserver","observe","disconnect","removeEventListener","_el$","_$getNextElement","_tmpl$","_el$2","firstChild","$$click","_ref$","_$use","_$setAttribute","_$effect","_p$","_v$","_v$2","_v$3","_v$4","e","t","a","o","_$className","_$runHydrationEvents","_el$3","_tmpl$2","visible","newState","String","onOpenChange","_ref$2","_$insert","_$createComponent","viewportSize","children","_$memo","_$delegateEvents"],"sources":["layout/SidebarItemPreview.tsx"],"sourcesContent":["import { createSignal, createUniqueId, type JSX, onCleanup, onMount } from \"solid-js\";\nimport { positionTooltipSurface } from \"../feedback/tooltip-position\";\nimport { ScrollArea, type ScrollAreaProps } from \"./ScrollArea\";\n\n/** A non-modal, interactive row preview. Native popover owns light dismissal. */\nexport function SidebarItemPreview(props: {\n label: string;\n children: JSX.Element | ((close: () => void) => JSX.Element);\n trigger?: \"action\" | \"row\";\n align?: \"center\" | \"end\";\n viewportSize?: ScrollAreaProps[\"viewportSize\"];\n onOpenChange?: (open: boolean) => void;\n}) {\n const id = `sidebar-preview-${createUniqueId()}`;\n const [open, setOpen] = createSignal(false);\n let button!: HTMLButtonElement;\n let panel!: HTMLDivElement;\n let row: HTMLElement | null = null;\n let main: HTMLButtonElement | null = null;\n let timer: ReturnType<typeof setTimeout> | undefined;\n let pinned = false;\n let dismissed = false;\n const clear = () => {\n clearTimeout(timer);\n timer = undefined;\n };\n const close = () => {\n clear();\n panel.hidePopover();\n };\n const position = () => {\n const target = row ?? button;\n positionTooltipSurface(panel, target, \"right\");\n if (props.align === \"end\") {\n const height = panel.getBoundingClientRect().height;\n const bottom = target.getBoundingClientRect().bottom;\n panel.style.top = `${Math.round(Math.max(8, Math.min(bottom - height, window.innerHeight - height - 8)))}px`;\n }\n };\n const show = () => {\n clear();\n if (dismissed || open()) return;\n panel.showPopover();\n position();\n };\n const enter = () => {\n clear();\n if (!dismissed && !open()) timer = setTimeout(show, 250);\n };\n const leave = () => {\n clear();\n dismissed = false;\n if (!pinned)\n timer = setTimeout(() => {\n if (!panel.contains(document.activeElement) && !row?.contains(document.activeElement)) close();\n }, 180);\n };\n const dismiss = () => {\n const restore = panel.contains(document.activeElement);\n dismissed = true;\n close();\n if (restore) (main ?? button).focus();\n };\n const toggle = () => {\n clear();\n if (open() && pinned) {\n dismiss();\n return;\n }\n dismissed = false;\n pinned = true;\n show();\n panel.focus();\n };\n onMount(() => {\n row = button.closest<HTMLElement>(\".k2b-app-workspace__sidebar-item\");\n if (props.trigger === \"row\") {\n main = row?.querySelector<HTMLButtonElement>(\":scope > button.k2b-app-workspace__sidebar-item-main\") ?? null;\n main?.setAttribute(\"aria-label\", props.label);\n main?.setAttribute(\"aria-haspopup\", \"dialog\");\n main?.setAttribute(\"aria-controls\", id);\n main?.setAttribute(\"aria-expanded\", \"false\");\n main?.addEventListener(\"click\", toggle);\n }\n const pointerEnter = (event: PointerEvent) => {\n if (event.pointerType === \"mouse\") enter();\n };\n const focusOut = (event: FocusEvent) => {\n const next = event.relatedTarget;\n if (next instanceof Node && (panel.contains(next) || row?.contains(next))) return;\n pinned = false;\n leave();\n };\n const escape = (event: KeyboardEvent) => {\n if (event.key !== \"Escape\" || !open()) return;\n dismiss();\n };\n const reposition = () => {\n if (open()) position();\n };\n row?.addEventListener(\"pointerenter\", pointerEnter);\n row?.addEventListener(\"pointerleave\", leave);\n row?.addEventListener(\"focusin\", enter);\n row?.addEventListener(\"focusout\", focusOut);\n panel.addEventListener(\"focusout\", focusOut);\n document.addEventListener(\"keydown\", escape);\n window.addEventListener(\"resize\", reposition);\n window.addEventListener(\"scroll\", reposition, true);\n const observer = new ResizeObserver(reposition);\n observer.observe(panel);\n onCleanup(() => {\n clear();\n observer.disconnect();\n main?.removeEventListener(\"click\", toggle);\n row?.removeEventListener(\"pointerenter\", pointerEnter);\n row?.removeEventListener(\"pointerleave\", leave);\n row?.removeEventListener(\"focusin\", enter);\n row?.removeEventListener(\"focusout\", focusOut);\n panel.removeEventListener(\"focusout\", focusOut);\n document.removeEventListener(\"keydown\", escape);\n window.removeEventListener(\"resize\", reposition);\n window.removeEventListener(\"scroll\", reposition, true);\n });\n });\n return (\n <>\n <button\n ref={button}\n type=\"button\"\n class=\"k2b-app-workspace__sidebar-item-action k2b-app-workspace__sidebar-preview-trigger\"\n data-visibility=\"hover\"\n aria-label={props.label}\n aria-haspopup=\"dialog\"\n aria-expanded={open()}\n aria-controls={id}\n data-row-trigger={props.trigger === \"row\" ? \"true\" : undefined}\n onClick={toggle}\n >\n <i class={props.trigger === \"row\" ? \"ti ti-chevron-right\" : \"ti ti-info-circle\"} aria-hidden=\"true\" />\n </button>\n <div\n ref={panel}\n id={id}\n popover=\"auto\"\n role=\"dialog\"\n aria-label={props.label}\n tabIndex={-1}\n class=\"k2b-app-workspace__sidebar-preview\"\n onPointerEnter={clear}\n onPointerLeave={leave}\n onToggle={(event) => {\n const visible = event.newState === \"open\";\n setOpen(visible);\n main?.setAttribute(\"aria-expanded\", String(visible));\n props.onOpenChange?.(visible);\n if (!visible) pinned = false;\n }}\n >\n <ScrollArea viewportSize={props.viewportSize} class=\"k2b-app-workspace__sidebar-preview-body\">\n {typeof props.children === \"function\" ? props.children(dismiss) : props.children}\n </ScrollArea>\n </div>\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { installScrollFades } from "./scroll-fade";
|
|
2
1
|
import { APP_WORKSPACE_DETAIL_MAX, APP_WORKSPACE_DETAIL_MIN, APP_WORKSPACE_DRAWER_MAX, APP_WORKSPACE_DRAWER_MIN, APP_WORKSPACE_MAIN_MIN, APP_WORKSPACE_PANE_MAX, APP_WORKSPACE_PANE_MIN, APP_WORKSPACE_SIDEBAR_COLLAPSED, APP_WORKSPACE_SIDEBAR_MAX, APP_WORKSPACE_SIDEBAR_MIN, appWorkspacePanelVariable, appWorkspaceResizeLimits, fitAppWorkspacePaneSizes, normalizeAppWorkspaceLayoutState, resolveAppWorkspaceSidebarWidth, safeAppWorkspacePanelId, shouldCollapseAppWorkspaceSidebar } from "./app-workspace-state";
|
|
2
|
+
import { installScrollFades } from "./scroll-fade";
|
|
3
3
|
const HANDLE_SELECTOR = "[data-app-workspace-resize]";
|
|
4
4
|
const ROOT_SELECTOR = "[data-k2b-app-workspace]";
|
|
5
5
|
const LAYOUT_REGION_SELECTOR = [ROOT_SELECTOR, ".k2b-app-workspace__sidebar", ".k2b-app-workspace__main-pane", ".k2b-app-workspace__detail", ".k2b-app-workspace__drawer", HANDLE_SELECTOR].join(",");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["installScrollFades","APP_WORKSPACE_DETAIL_MAX","APP_WORKSPACE_DETAIL_MIN","APP_WORKSPACE_DRAWER_MAX","APP_WORKSPACE_DRAWER_MIN","APP_WORKSPACE_MAIN_MIN","APP_WORKSPACE_PANE_MAX","APP_WORKSPACE_PANE_MIN","APP_WORKSPACE_SIDEBAR_COLLAPSED","APP_WORKSPACE_SIDEBAR_MAX","APP_WORKSPACE_SIDEBAR_MIN","appWorkspacePanelVariable","appWorkspaceResizeLimits","fitAppWorkspacePaneSizes","normalizeAppWorkspaceLayoutState","resolveAppWorkspaceSidebarWidth","safeAppWorkspacePanelId","shouldCollapseAppWorkspaceSidebar","HANDLE_SELECTOR","ROOT_SELECTOR","LAYOUT_REGION_SELECTOR","join","LABEL_SELECTOR","LABEL_TEXT_SELECTOR","ITEM_SELECTOR","clamp","value","min","max","Math","round","eventElement","event","target","Element","resizeHandle","closest","resizeKind","handle","dataset","appWorkspaceResize","resizeDirection","kind","workspaceResizeEdge","workspaceRoot","workspaceResizable","root","rootElements","selector","Array","from","querySelectorAll","filter","element","sidebarElement","mainElement","sidebarCollapsible","workspaceCollapsible","isVisible","Boolean","hidden","getComputedStyle","display","elementSize","rect","getBoundingClientRect","height","width","controlledPanel","controls","getAttribute","panel","document","getElementById","controlsResizableRegion","panelId","workspacePanelId","numberData","key","fallback","Number","isFinite","sizeLimits","controlled","main","panes","pane","classList","contains","details","sidebarWidth","otherDetailWidth","reduce","total","detail","defaultMin","defaultMax","workspaceSize","reservedSize","currentSize","updateHandleValue","size","limits","setAttribute","String","applySize","requestedSize","options","collapsible","sidebar","snapSidebar","collapsed","style","setProperty","sidebarCollapsed","reconcilePanes","layoutState","active","handles","length","Set","map","fixedWidth","has","fits","flatMap","preferred","moved","liveSize","paneWidths","desired","sizes","forEach","fit","index","measureLabel","label","text","querySelector","overflow","scrollWidth","clientWidth","installAppWorkspaceController","eventRoot","stopScrollFades","readState","version","resizeFrame","pendingClient","persistSize","writeState","flushPointerMove","cancelAnimationFrame","client","startClient","startSize","direction","onPointerMove","pointerId","clientY","clientX","requestAnimationFrame","stopResize","PointerEvent","finished","workspaceResizeActive","hasPointerCapture","releasePointerCapture","body","userSelect","previousUserSelect","window","removeEventListener","onPointerDown","button","preventDefault","setPointerCapture","addEventListener","onKeyDown","current","step","shiftKey","requested","collapsibleSidebar","allRoots","nested","HTMLElement","matches","roots","reconcile","persisted","detailWidths","drawerHeights","undefined","onFocusIn","onPointerOver","relatedTarget","Node","clearMeasuredLabels","removeProperty","reconcileFrame","scheduleReconcile","clearLabels","onResize","observedRoots","resizeObserver","ResizeObserver","syncObservedRoots","next","unobserve","delete","add","observe","layoutNode","node","mutationObserver","MutationObserver","records","changed","some","record","type","addedNodes","removedNodes","attributes","attributeFilter","childList","subtree","disconnect","clear"],"sources":["layout/app-workspace-controller.ts"],"sourcesContent":["import { installScrollFades } from \"./scroll-fade\";\nimport {\n APP_WORKSPACE_DETAIL_MAX,\n APP_WORKSPACE_DETAIL_MIN,\n APP_WORKSPACE_DRAWER_MAX,\n APP_WORKSPACE_DRAWER_MIN,\n APP_WORKSPACE_MAIN_MIN,\n APP_WORKSPACE_PANE_MAX,\n APP_WORKSPACE_PANE_MIN,\n APP_WORKSPACE_SIDEBAR_COLLAPSED,\n APP_WORKSPACE_SIDEBAR_MAX,\n APP_WORKSPACE_SIDEBAR_MIN,\n type AppWorkspaceLayoutState,\n type AppWorkspaceResizeKind,\n appWorkspacePanelVariable,\n appWorkspaceResizeLimits,\n fitAppWorkspacePaneSizes,\n normalizeAppWorkspaceLayoutState,\n resolveAppWorkspaceSidebarWidth,\n safeAppWorkspacePanelId,\n shouldCollapseAppWorkspaceSidebar,\n} from \"./app-workspace-state\";\n\nexport type AppWorkspaceControllerOptions = {\n root?: Document | HTMLElement;\n readState?: () => AppWorkspaceLayoutState | null | undefined;\n writeState?: (state: AppWorkspaceLayoutState) => void;\n};\n\ntype ActiveResize = {\n handle: HTMLElement;\n root: HTMLElement;\n kind: AppWorkspaceResizeKind;\n pointerId: number;\n startClient: number;\n startSize: number;\n liveSize: number;\n moved: boolean;\n direction: 1 | -1;\n previousUserSelect: string;\n};\n\nconst HANDLE_SELECTOR = \"[data-app-workspace-resize]\";\nconst ROOT_SELECTOR = \"[data-k2b-app-workspace]\";\nconst LAYOUT_REGION_SELECTOR = [\n ROOT_SELECTOR,\n \".k2b-app-workspace__sidebar\",\n \".k2b-app-workspace__main-pane\",\n \".k2b-app-workspace__detail\",\n \".k2b-app-workspace__drawer\",\n HANDLE_SELECTOR,\n].join(\",\");\nconst LABEL_SELECTOR = \".k2b-app-workspace__sidebar-item-label[data-marquee='true']\";\nconst LABEL_TEXT_SELECTOR = \".k2b-app-workspace__sidebar-item-label-text\";\nconst ITEM_SELECTOR = \".k2b-app-workspace__sidebar-item\";\nconst clamp = (value: number, min: number, max: number) => Math.round(Math.min(max, Math.max(min, value)));\nconst eventElement = (event: Event) => (event.target instanceof Element ? event.target : null);\nconst resizeHandle = (event: Event) => eventElement(event)?.closest<HTMLElement>(HANDLE_SELECTOR) ?? null;\nconst resizeKind = (handle: HTMLElement): AppWorkspaceResizeKind | null => {\n const value = handle.dataset.appWorkspaceResize;\n return value === \"sidebar\" || value === \"pane\" || value === \"detail\" || value === \"drawer\" ? value : null;\n};\nconst resizeDirection = (handle: HTMLElement, kind: AppWorkspaceResizeKind): 1 | -1 =>\n (handle.dataset.workspaceResizeEdge ?? (kind === \"sidebar\" ? \"end\" : \"start\")) === \"end\" ? 1 : -1;\nconst workspaceRoot = (handle: HTMLElement) => handle.closest<HTMLElement>(ROOT_SELECTOR);\nconst workspaceResizable = (root: HTMLElement) => root.dataset.workspaceResizable !== \"false\";\nconst rootElements = (root: HTMLElement, selector: string) =>\n Array.from(root.querySelectorAll<HTMLElement>(selector)).filter((element) => element.closest(ROOT_SELECTOR) === root);\nconst sidebarElement = (root: HTMLElement) => rootElements(root, \".k2b-app-workspace__sidebar\")[0] ?? null;\nconst mainElement = (root: HTMLElement) => rootElements(root, \".k2b-app-workspace__main\")[0] ?? null;\nconst sidebarCollapsible = (root: HTMLElement) => sidebarElement(root)?.dataset.workspaceCollapsible === \"true\";\nconst isVisible = (element: HTMLElement | null): element is HTMLElement =>\n Boolean(element && !element.hidden && getComputedStyle(element).display !== \"none\");\nconst elementSize = (element: HTMLElement | null, kind: AppWorkspaceResizeKind) => {\n if (!isVisible(element)) return 0;\n const rect = element.getBoundingClientRect();\n return kind === \"drawer\" ? rect.height : rect.width;\n};\nconst controlledPanel = (root: HTMLElement, handle: HTMLElement) => {\n const controls = handle.getAttribute(\"aria-controls\");\n if (!controls) return null;\n const panel = document.getElementById(controls);\n return panel?.closest(ROOT_SELECTOR) === root ? panel : null;\n};\nconst controlsResizableRegion = (root: HTMLElement, handle: HTMLElement, kind: AppWorkspaceResizeKind) =>\n (kind === \"sidebar\" ? sidebarElement(root) : controlledPanel(root, handle))?.dataset.workspaceResizable === \"true\";\nconst panelId = (handle: HTMLElement) => safeAppWorkspacePanelId(handle.dataset.workspacePanelId ?? \"primary\") || \"primary\";\nconst numberData = (handle: HTMLElement, key: \"workspaceDefaultSize\" | \"workspaceMinSize\" | \"workspaceMaxSize\", fallback: number) => {\n const value = Number(handle.dataset[key]);\n return Number.isFinite(value) ? value : fallback;\n};\n\nconst sizeLimits = (root: HTMLElement, handle: HTMLElement, kind: AppWorkspaceResizeKind) => {\n const controlled = controlledPanel(root, handle);\n const main = kind === \"pane\" ? handle.closest<HTMLElement>(\".k2b-app-workspace__main\") : mainElement(root);\n const panes = main\n ? Array.from(main.querySelectorAll<HTMLElement>(\".k2b-app-workspace__main-pane\")).filter(\n (pane) => pane.closest(\".k2b-app-workspace__main\") === main && !pane.classList.contains(\"is-primary\") && isVisible(pane),\n )\n : [];\n const details = rootElements(root, \".k2b-app-workspace__detail\").filter(isVisible);\n const sidebarWidth = elementSize(sidebarElement(root), \"sidebar\");\n const otherDetailWidth = details.reduce((total, detail) => total + (detail === controlled ? 0 : elementSize(detail, \"detail\")), 0);\n const defaultMin =\n kind === \"sidebar\"\n ? APP_WORKSPACE_SIDEBAR_MIN\n : kind === \"pane\"\n ? APP_WORKSPACE_PANE_MIN\n : kind === \"detail\"\n ? APP_WORKSPACE_DETAIL_MIN\n : APP_WORKSPACE_DRAWER_MIN;\n const defaultMax =\n kind === \"sidebar\"\n ? APP_WORKSPACE_SIDEBAR_MAX\n : kind === \"pane\"\n ? APP_WORKSPACE_PANE_MAX\n : kind === \"detail\"\n ? APP_WORKSPACE_DETAIL_MAX\n : APP_WORKSPACE_DRAWER_MAX;\n return appWorkspaceResizeLimits({\n kind,\n workspaceSize:\n kind === \"drawer\"\n ? root.getBoundingClientRect().height\n : kind === \"pane\" && main\n ? main.getBoundingClientRect().width\n : root.getBoundingClientRect().width,\n reservedSize:\n kind === \"sidebar\"\n ? otherDetailWidth\n : kind === \"pane\"\n ? panes.reduce((total, pane) => total + (pane === controlled ? 0 : elementSize(pane, \"pane\")), 0)\n : kind === \"detail\"\n ? sidebarWidth + otherDetailWidth\n : 0,\n min: numberData(handle, \"workspaceMinSize\", defaultMin),\n max: numberData(handle, \"workspaceMaxSize\", defaultMax),\n sidebarCollapsible: kind === \"sidebar\" && sidebarCollapsible(root),\n });\n};\n\nconst currentSize = (root: HTMLElement, handle: HTMLElement, kind: AppWorkspaceResizeKind) =>\n kind === \"sidebar\" ? elementSize(sidebarElement(root), kind) : elementSize(controlledPanel(root, handle), kind);\n\nconst updateHandleValue = (\n root: HTMLElement,\n handle: HTMLElement,\n kind: AppWorkspaceResizeKind,\n size: number,\n limits = sizeLimits(root, handle, kind),\n) => {\n const { min, max } = limits;\n handle.setAttribute(\"aria-valuemin\", String(min));\n handle.setAttribute(\"aria-valuemax\", String(max));\n handle.setAttribute(\"aria-valuenow\", String(clamp(size, min, max)));\n};\n\nconst applySize = (\n root: HTMLElement,\n handle: HTMLElement,\n kind: AppWorkspaceResizeKind,\n requestedSize: number,\n /**\n * `snapSidebar: false` tracks the pointer continuously and only *previews*\n * the collapsed state. Snapping (the default, and what keyboard steps and\n * reconciliation want) quantises the width to either the collapsed rail or\n * the sidebar minimum, which during a live drag makes the handle jump.\n */\n options: { snapSidebar?: boolean } = {},\n) => {\n const { min, max } = sizeLimits(root, handle, kind);\n if (kind === \"sidebar\") {\n const collapsible = sidebarCollapsible(root);\n const sidebar =\n options.snapSidebar === false\n ? { width: clamp(requestedSize, min, max), collapsed: shouldCollapseAppWorkspaceSidebar(requestedSize, collapsible) }\n : resolveAppWorkspaceSidebarWidth(requestedSize, max, collapsible);\n root.style.setProperty(\"--k2b-workspace-sidebar-width\", `${sidebar.width}px`);\n // Cloud removes the attribute rather than writing \"false\", so that a\n // presence selector (`[data-sidebar-collapsed]`) means \"collapsed\".\n if (sidebar.collapsed) root.dataset.sidebarCollapsed = \"true\";\n else delete root.dataset.sidebarCollapsed;\n updateHandleValue(root, handle, kind, sidebar.width, { min, max });\n return sidebar.width;\n }\n const size = clamp(requestedSize, min, max);\n root.style.setProperty(appWorkspacePanelVariable(kind, panelId(handle)), `${size}px`);\n updateHandleValue(root, handle, kind, size, { min, max });\n return size;\n};\n\ntype PaneFit = {\n desired: number;\n handle: HTMLElement;\n min: number;\n};\n\n/**\n * Fits all auxiliary main panes as one group. One main region remains the\n * flexible anchor; the others keep their preferred sizes while space permits\n * and give up the same share of their optional space when the container,\n * navigation or detail panels reduce the available width.\n */\nconst reconcilePanes = (root: HTMLElement, layoutState: AppWorkspaceLayoutState, active: ActiveResize | null = null) => {\n const main = mainElement(root);\n if (!main || !isVisible(main)) return;\n const handles = rootElements(root, HANDLE_SELECTOR).filter(\n (handle) => resizeKind(handle) === \"pane\" && controlsResizableRegion(root, handle, \"pane\"),\n );\n if (!handles.length) return;\n\n const controlled = new Set(handles.map((handle) => controlledPanel(root, handle)).filter(Boolean));\n const fixedWidth = Array.from(main.querySelectorAll<HTMLElement>(\".k2b-app-workspace__main-pane\"))\n .filter(\n (pane) =>\n pane.closest(\".k2b-app-workspace__main\") === main &&\n !pane.classList.contains(\"is-primary\") &&\n isVisible(pane) &&\n !controlled.has(pane),\n )\n .reduce((total, pane) => total + elementSize(pane, \"pane\"), 0);\n const fits: PaneFit[] = handles.flatMap((handle) => {\n const panel = controlledPanel(root, handle);\n if (!isVisible(panel)) return [];\n const min = numberData(handle, \"workspaceMinSize\", APP_WORKSPACE_PANE_MIN);\n const max = Math.max(min, numberData(handle, \"workspaceMaxSize\", APP_WORKSPACE_PANE_MAX));\n const preferred =\n active?.moved && active.root === root && active.kind === \"pane\" && active.handle === handle\n ? active.liveSize\n : (layoutState.paneWidths?.[panelId(handle)] ?? numberData(handle, \"workspaceDefaultSize\", elementSize(panel, \"pane\")));\n const desired = clamp(preferred, min, max);\n return [{ desired, handle, min }];\n });\n if (!fits.length) return;\n\n const sizes = fitAppWorkspacePaneSizes(fits, main.getBoundingClientRect().width - fixedWidth - APP_WORKSPACE_MAIN_MIN);\n fits.forEach((fit, index) => {\n root.style.setProperty(appWorkspacePanelVariable(\"pane\", panelId(fit.handle)), `${sizes[index]}px`);\n });\n fits.forEach((fit, index) => updateHandleValue(root, fit.handle, \"pane\", sizes[index]!));\n};\n\n/**\n * Marquee support for a truncated sidebar label.\n *\n * The animation needs to know how far to travel, and that is only knowable\n * once the label has been laid out — so it is measured lazily, on the same\n * hover/focus that triggers it, and published as a custom property. Labels\n * that fit get no `data-overflow`, so they never animate.\n */\nconst measureLabel = (label: HTMLElement) => {\n const text = label.querySelector<HTMLElement>(LABEL_TEXT_SELECTOR);\n if (!text) return;\n const overflow = Math.max(0, text.scrollWidth - label.clientWidth);\n label.style.setProperty(\"--k2b-sidebar-label-overflow\", `${overflow}px`);\n if (overflow > 2) label.dataset.overflow = \"true\";\n else delete label.dataset.overflow;\n};\n\nexport const installAppWorkspaceController = (options: AppWorkspaceControllerOptions = {}): (() => void) => {\n const eventRoot = options.root ?? document;\n const stopScrollFades = installScrollFades(eventRoot);\n let layoutState = normalizeAppWorkspaceLayoutState(options.readState?.()) ?? { version: 2 as const };\n let active: ActiveResize | null = null;\n let resizeFrame: number | null = null;\n let pendingClient: number | null = null;\n\n const persistSize = (handle: HTMLElement, kind: AppWorkspaceResizeKind, size: number) => {\n if (kind === \"sidebar\") {\n const collapsed = size === APP_WORKSPACE_SIDEBAR_COLLAPSED;\n layoutState = {\n ...layoutState,\n sidebarWidth: collapsed ? layoutState.sidebarWidth : size,\n sidebarCollapsed: collapsed,\n };\n } else {\n const key = kind === \"pane\" ? \"paneWidths\" : kind === \"detail\" ? \"detailWidths\" : \"drawerHeights\";\n layoutState = { ...layoutState, [key]: { ...layoutState[key], [panelId(handle)]: size } };\n }\n options.writeState?.(layoutState);\n };\n\n const flushPointerMove = () => {\n if (resizeFrame !== null) {\n cancelAnimationFrame(resizeFrame);\n resizeFrame = null;\n }\n if (!active || pendingClient === null) return;\n const client = pendingClient;\n pendingClient = null;\n active.moved ||= client !== active.startClient;\n active.liveSize = applySize(\n active.root,\n active.handle,\n active.kind,\n active.startSize + (client - active.startClient) * active.direction,\n { snapSidebar: active.kind !== \"sidebar\" },\n );\n if (active.kind === \"sidebar\" || active.kind === \"detail\") reconcilePanes(active.root, layoutState, active);\n };\n const onPointerMove = (event: PointerEvent) => {\n if (!active || event.pointerId !== active.pointerId) return;\n pendingClient = active.kind === \"drawer\" ? event.clientY : event.clientX;\n if (resizeFrame !== null) return;\n resizeFrame = requestAnimationFrame(flushPointerMove);\n };\n const stopResize = (event?: Event) => {\n if (!active || (event instanceof PointerEvent && event.pointerId !== active.pointerId)) return;\n flushPointerMove();\n const finished = active;\n active = null;\n delete finished.root.dataset.workspaceResizeActive;\n delete finished.handle.dataset.workspaceResizeActive;\n if (finished.moved) {\n // A pane's rendered width may have been fitted below the pointer's live\n // preference to keep the main region usable. Persist that preference,\n // then fit the visible panes from the updated state. Reapplying it through\n // the per-handle limits here would count the already-fitted sibling panes\n // a second time and permanently shrink the preference on release.\n const size =\n finished.kind === \"pane\" ? finished.liveSize : applySize(finished.root, finished.handle, finished.kind, finished.liveSize);\n persistSize(finished.handle, finished.kind, size);\n if (finished.kind !== \"drawer\") reconcilePanes(finished.root, layoutState);\n }\n if (finished.handle.hasPointerCapture?.(finished.pointerId)) finished.handle.releasePointerCapture(finished.pointerId);\n document.body.style.userSelect = finished.previousUserSelect;\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", stopResize);\n window.removeEventListener(\"pointercancel\", stopResize);\n window.removeEventListener(\"blur\", stopResize);\n };\n const onPointerDown = (event: PointerEvent) => {\n const handle = resizeHandle(event);\n const kind = handle ? resizeKind(handle) : null;\n const root = handle ? workspaceRoot(handle) : null;\n if (!handle || !kind || !root || !workspaceResizable(root) || !controlsResizableRegion(root, handle, kind) || event.button !== 0)\n return;\n event.preventDefault();\n stopResize();\n pendingClient = null;\n const startSize = currentSize(root, handle, kind);\n active = {\n handle,\n root,\n kind,\n pointerId: event.pointerId,\n startClient: kind === \"drawer\" ? event.clientY : event.clientX,\n startSize,\n liveSize: startSize,\n moved: false,\n direction: resizeDirection(handle, kind),\n previousUserSelect: document.body.style.userSelect,\n };\n root.dataset.workspaceResizeActive = kind;\n handle.dataset.workspaceResizeActive = \"true\";\n document.body.style.userSelect = \"none\";\n handle.setPointerCapture?.(event.pointerId);\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", stopResize);\n window.addEventListener(\"pointercancel\", stopResize);\n window.addEventListener(\"blur\", stopResize);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n const handle = resizeHandle(event);\n const kind = handle ? resizeKind(handle) : null;\n const root = handle ? workspaceRoot(handle) : null;\n if (!handle || !kind || !root || !workspaceResizable(root) || !controlsResizableRegion(root, handle, kind)) return;\n const current = currentSize(root, handle, kind);\n const { min, max } = sizeLimits(root, handle, kind);\n const step = event.shiftKey ? 32 : 8;\n let requested: number | null = null;\n const direction = resizeDirection(handle, kind);\n const collapsibleSidebar = kind === \"sidebar\" && sidebarCollapsible(root);\n if (event.key === \"Home\") requested = min;\n else if (event.key === \"End\") requested = max;\n // The drawer arrows follow the handle's edge like every other kind; the\n // hard-coded +/- here inverted for a handle on the `end` edge.\n else if (kind === \"drawer\" && event.key === \"ArrowUp\") requested = current - step * direction;\n else if (kind === \"drawer\" && event.key === \"ArrowDown\") requested = current + step * direction;\n // A collapsible sidebar is already at its minimum when the rail is the\n // next step: without these two branches a keyboard step of 8 (or 32) is\n // clamped straight back to the minimum, so the handle is simply stuck and\n // collapse/expand is unreachable without a pointer.\n else if (kind !== \"drawer\" && event.key === \"ArrowLeft\")\n requested = collapsibleSidebar && current <= APP_WORKSPACE_SIDEBAR_MIN ? APP_WORKSPACE_SIDEBAR_COLLAPSED : current - step * direction;\n else if (kind !== \"drawer\" && event.key === \"ArrowRight\")\n requested =\n collapsibleSidebar && current <= APP_WORKSPACE_SIDEBAR_COLLAPSED\n ? (layoutState.sidebarWidth ?? APP_WORKSPACE_SIDEBAR_MIN)\n : current + step * direction;\n if (requested === null) return;\n event.preventDefault();\n persistSize(handle, kind, applySize(root, handle, kind, requested));\n if (kind === \"sidebar\" || kind === \"detail\") reconcilePanes(root, layoutState);\n };\n\n const allRoots = () => {\n const nested = Array.from(eventRoot.querySelectorAll<HTMLElement>(ROOT_SELECTOR));\n return eventRoot instanceof HTMLElement && eventRoot.matches(ROOT_SELECTOR) ? [eventRoot, ...nested] : nested;\n };\n const roots = () => {\n // A hidden or zero-width workspace measures 0, which drives every limit\n // down to its minimum — reconciling one would overwrite its variables and\n // `aria-valuenow` with that minimum for good.\n return allRoots().filter((root) => getComputedStyle(root).display !== \"none\" && root.getBoundingClientRect().width > 0);\n };\n const reconcile = () => {\n roots().forEach((root) => {\n // `data-workspace-resizable=\"false\"` already refuses pointer and keyboard\n // resizing; without this the same workspace still had persisted sizes\n // forced onto it on load and on every window resize.\n if (!workspaceResizable(root)) return;\n const handles = rootElements(root, HANDLE_SELECTOR);\n // Chrome establishes the space available to the work area. Auxiliary\n // panes are then fitted together into what remains, so DOM order cannot\n // give the last pane an accidental sizing priority.\n handles\n .filter((handle) => resizeKind(handle) !== \"pane\")\n .forEach((handle) => {\n const kind = resizeKind(handle);\n if (!kind || !controlsResizableRegion(root, handle, kind)) return;\n if (active?.moved && active.root === root && active.handle === handle && active.kind === kind) {\n applySize(root, handle, kind, active.liveSize, { snapSidebar: kind !== \"sidebar\" });\n return;\n }\n const persisted =\n kind === \"sidebar\"\n ? layoutState.sidebarCollapsed && sidebarCollapsible(root)\n ? APP_WORKSPACE_SIDEBAR_COLLAPSED\n : layoutState.sidebarWidth\n : kind === \"detail\"\n ? layoutState.detailWidths?.[panelId(handle)]\n : layoutState.drawerHeights?.[panelId(handle)];\n if (persisted !== undefined) applySize(root, handle, kind, persisted);\n else updateHandleValue(root, handle, kind, currentSize(root, handle, kind));\n });\n reconcilePanes(root, layoutState, active?.root === root ? active : null);\n });\n };\n /**\n * A handle's limits move whenever anything around it does — opening a detail\n * panel, showing a pane. Only `applySize` refreshed them, so a keyboard user\n * arriving at a handle was announced whatever `aria-valuenow`/`valuemax` the\n * last drag left behind.\n */\n const onFocusIn = (event: FocusEvent) => {\n const handle = resizeHandle(event);\n const kind = handle ? resizeKind(handle) : null;\n const root = handle ? workspaceRoot(handle) : null;\n if (handle && kind && root && controlsResizableRegion(root, handle, kind)) {\n updateHandleValue(root, handle, kind, currentSize(root, handle, kind));\n }\n const label = eventElement(event)?.closest<HTMLElement>(ITEM_SELECTOR)?.querySelector<HTMLElement>(LABEL_SELECTOR);\n if (label) requestAnimationFrame(() => measureLabel(label));\n };\n\n // Measured on entry rather than on every render: `scrollWidth` forces layout,\n // and a sidebar can hold hundreds of rows.\n const onPointerOver = (event: PointerEvent) => {\n const label = eventElement(event)?.closest<HTMLElement>(LABEL_SELECTOR);\n if (!label || (event.relatedTarget instanceof Node && label.contains(event.relatedTarget))) return;\n requestAnimationFrame(() => measureLabel(label));\n };\n\n // A resize changes every label's available width, so the cached measurement\n // is dropped and taken again on the next hover or focus.\n const clearMeasuredLabels = () => {\n eventRoot.querySelectorAll<HTMLElement>(LABEL_SELECTOR).forEach((label) => {\n delete label.dataset.overflow;\n label.style.removeProperty(\"--k2b-sidebar-label-overflow\");\n });\n };\n\n // Geometry can change without a window resize: a parent can resize the\n // workspace, or a detail/pane can open. All sources share one frame so a\n // transition performs at most one layout reconciliation.\n let reconcileFrame: number | null = null;\n const scheduleReconcile = (clearLabels = false) => {\n if (clearLabels) clearMeasuredLabels();\n if (reconcileFrame !== null) return;\n reconcileFrame = requestAnimationFrame(() => {\n reconcileFrame = null;\n reconcile();\n });\n };\n const onResize = () => scheduleReconcile(true);\n\n const observedRoots = new Set<HTMLElement>();\n const resizeObserver =\n typeof ResizeObserver === \"undefined\"\n ? null\n : new ResizeObserver(() => {\n scheduleReconcile(true);\n });\n const syncObservedRoots = () => {\n if (!resizeObserver) return;\n const next = new Set(allRoots());\n observedRoots.forEach((root) => {\n if (!next.has(root)) {\n resizeObserver.unobserve(root);\n observedRoots.delete(root);\n }\n });\n next.forEach((root) => {\n if (observedRoots.has(root)) return;\n observedRoots.add(root);\n resizeObserver.observe(root);\n });\n };\n const layoutNode = (node: Node) =>\n node instanceof Element && (node.matches(LAYOUT_REGION_SELECTOR) || Boolean(node.querySelector(LAYOUT_REGION_SELECTOR)));\n const mutationObserver =\n typeof MutationObserver === \"undefined\"\n ? null\n : new MutationObserver((records) => {\n const changed = records.some((record) =>\n record.type === \"attributes\"\n ? record.target instanceof Element && record.target.matches(LAYOUT_REGION_SELECTOR)\n : [...Array.from(record.addedNodes), ...Array.from(record.removedNodes)].some(layoutNode),\n );\n if (!changed) return;\n syncObservedRoots();\n scheduleReconcile();\n });\n\n eventRoot.addEventListener(\"pointerdown\", onPointerDown as EventListener);\n eventRoot.addEventListener(\"keydown\", onKeyDown as EventListener);\n eventRoot.addEventListener(\"focusin\", onFocusIn as EventListener);\n eventRoot.addEventListener(\"pointerover\", onPointerOver as EventListener);\n window.addEventListener(\"resize\", onResize);\n syncObservedRoots();\n mutationObserver?.observe(eventRoot, {\n attributes: true,\n attributeFilter: [\"hidden\"],\n childList: true,\n subtree: true,\n });\n scheduleReconcile();\n return () => {\n stopScrollFades();\n // Flush the latest coalesced pointer sample before listeners and frames are\n // torn down, so unmounting during a drag cannot lose the final size.\n stopResize();\n if (reconcileFrame !== null) cancelAnimationFrame(reconcileFrame);\n mutationObserver?.disconnect();\n resizeObserver?.disconnect();\n observedRoots.clear();\n eventRoot.removeEventListener(\"pointerdown\", onPointerDown as EventListener);\n eventRoot.removeEventListener(\"keydown\", onKeyDown as EventListener);\n eventRoot.removeEventListener(\"focusin\", onFocusIn as EventListener);\n eventRoot.removeEventListener(\"pointerover\", onPointerOver as EventListener);\n window.removeEventListener(\"resize\", onResize);\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["APP_WORKSPACE_DETAIL_MAX","APP_WORKSPACE_DETAIL_MIN","APP_WORKSPACE_DRAWER_MAX","APP_WORKSPACE_DRAWER_MIN","APP_WORKSPACE_MAIN_MIN","APP_WORKSPACE_PANE_MAX","APP_WORKSPACE_PANE_MIN","APP_WORKSPACE_SIDEBAR_COLLAPSED","APP_WORKSPACE_SIDEBAR_MAX","APP_WORKSPACE_SIDEBAR_MIN","appWorkspacePanelVariable","appWorkspaceResizeLimits","fitAppWorkspacePaneSizes","normalizeAppWorkspaceLayoutState","resolveAppWorkspaceSidebarWidth","safeAppWorkspacePanelId","shouldCollapseAppWorkspaceSidebar","installScrollFades","HANDLE_SELECTOR","ROOT_SELECTOR","LAYOUT_REGION_SELECTOR","join","LABEL_SELECTOR","LABEL_TEXT_SELECTOR","ITEM_SELECTOR","clamp","value","min","max","Math","round","eventElement","event","target","Element","resizeHandle","closest","resizeKind","handle","dataset","appWorkspaceResize","resizeDirection","kind","workspaceResizeEdge","workspaceRoot","workspaceResizable","root","rootElements","selector","Array","from","querySelectorAll","filter","element","sidebarElement","mainElement","sidebarCollapsible","workspaceCollapsible","isVisible","Boolean","hidden","getComputedStyle","display","elementSize","rect","getBoundingClientRect","height","width","controlledPanel","controls","getAttribute","panel","document","getElementById","controlsResizableRegion","panelId","workspacePanelId","numberData","key","fallback","Number","isFinite","sizeLimits","controlled","main","panes","pane","classList","contains","details","sidebarWidth","otherDetailWidth","reduce","total","detail","defaultMin","defaultMax","workspaceSize","reservedSize","currentSize","updateHandleValue","size","limits","setAttribute","String","applySize","requestedSize","options","collapsible","sidebar","snapSidebar","collapsed","style","setProperty","sidebarCollapsed","reconcilePanes","layoutState","active","handles","length","Set","map","fixedWidth","has","fits","flatMap","preferred","moved","liveSize","paneWidths","desired","sizes","forEach","fit","index","measureLabel","label","text","querySelector","overflow","scrollWidth","clientWidth","installAppWorkspaceController","eventRoot","stopScrollFades","readState","version","resizeFrame","pendingClient","persistSize","writeState","flushPointerMove","cancelAnimationFrame","client","startClient","startSize","direction","onPointerMove","pointerId","clientY","clientX","requestAnimationFrame","stopResize","PointerEvent","finished","workspaceResizeActive","hasPointerCapture","releasePointerCapture","body","userSelect","previousUserSelect","window","removeEventListener","onPointerDown","button","preventDefault","setPointerCapture","addEventListener","onKeyDown","current","step","shiftKey","requested","collapsibleSidebar","allRoots","nested","HTMLElement","matches","roots","reconcile","persisted","detailWidths","drawerHeights","undefined","onFocusIn","onPointerOver","relatedTarget","Node","clearMeasuredLabels","removeProperty","reconcileFrame","scheduleReconcile","clearLabels","onResize","observedRoots","resizeObserver","ResizeObserver","syncObservedRoots","next","unobserve","delete","add","observe","layoutNode","node","mutationObserver","MutationObserver","records","changed","some","record","type","addedNodes","removedNodes","attributes","attributeFilter","childList","subtree","disconnect","clear"],"sources":["layout/app-workspace-controller.ts"],"sourcesContent":["import {\n APP_WORKSPACE_DETAIL_MAX,\n APP_WORKSPACE_DETAIL_MIN,\n APP_WORKSPACE_DRAWER_MAX,\n APP_WORKSPACE_DRAWER_MIN,\n APP_WORKSPACE_MAIN_MIN,\n APP_WORKSPACE_PANE_MAX,\n APP_WORKSPACE_PANE_MIN,\n APP_WORKSPACE_SIDEBAR_COLLAPSED,\n APP_WORKSPACE_SIDEBAR_MAX,\n APP_WORKSPACE_SIDEBAR_MIN,\n type AppWorkspaceLayoutState,\n type AppWorkspaceResizeKind,\n appWorkspacePanelVariable,\n appWorkspaceResizeLimits,\n fitAppWorkspacePaneSizes,\n normalizeAppWorkspaceLayoutState,\n resolveAppWorkspaceSidebarWidth,\n safeAppWorkspacePanelId,\n shouldCollapseAppWorkspaceSidebar,\n} from \"./app-workspace-state\";\nimport { installScrollFades } from \"./scroll-fade\";\n\nexport type AppWorkspaceControllerOptions = {\n root?: Document | HTMLElement;\n readState?: () => AppWorkspaceLayoutState | null | undefined;\n writeState?: (state: AppWorkspaceLayoutState) => void;\n};\n\ntype ActiveResize = {\n handle: HTMLElement;\n root: HTMLElement;\n kind: AppWorkspaceResizeKind;\n pointerId: number;\n startClient: number;\n startSize: number;\n liveSize: number;\n moved: boolean;\n direction: 1 | -1;\n previousUserSelect: string;\n};\n\nconst HANDLE_SELECTOR = \"[data-app-workspace-resize]\";\nconst ROOT_SELECTOR = \"[data-k2b-app-workspace]\";\nconst LAYOUT_REGION_SELECTOR = [\n ROOT_SELECTOR,\n \".k2b-app-workspace__sidebar\",\n \".k2b-app-workspace__main-pane\",\n \".k2b-app-workspace__detail\",\n \".k2b-app-workspace__drawer\",\n HANDLE_SELECTOR,\n].join(\",\");\nconst LABEL_SELECTOR = \".k2b-app-workspace__sidebar-item-label[data-marquee='true']\";\nconst LABEL_TEXT_SELECTOR = \".k2b-app-workspace__sidebar-item-label-text\";\nconst ITEM_SELECTOR = \".k2b-app-workspace__sidebar-item\";\nconst clamp = (value: number, min: number, max: number) => Math.round(Math.min(max, Math.max(min, value)));\nconst eventElement = (event: Event) => (event.target instanceof Element ? event.target : null);\nconst resizeHandle = (event: Event) => eventElement(event)?.closest<HTMLElement>(HANDLE_SELECTOR) ?? null;\nconst resizeKind = (handle: HTMLElement): AppWorkspaceResizeKind | null => {\n const value = handle.dataset.appWorkspaceResize;\n return value === \"sidebar\" || value === \"pane\" || value === \"detail\" || value === \"drawer\" ? value : null;\n};\nconst resizeDirection = (handle: HTMLElement, kind: AppWorkspaceResizeKind): 1 | -1 =>\n (handle.dataset.workspaceResizeEdge ?? (kind === \"sidebar\" ? \"end\" : \"start\")) === \"end\" ? 1 : -1;\nconst workspaceRoot = (handle: HTMLElement) => handle.closest<HTMLElement>(ROOT_SELECTOR);\nconst workspaceResizable = (root: HTMLElement) => root.dataset.workspaceResizable !== \"false\";\nconst rootElements = (root: HTMLElement, selector: string) =>\n Array.from(root.querySelectorAll<HTMLElement>(selector)).filter((element) => element.closest(ROOT_SELECTOR) === root);\nconst sidebarElement = (root: HTMLElement) => rootElements(root, \".k2b-app-workspace__sidebar\")[0] ?? null;\nconst mainElement = (root: HTMLElement) => rootElements(root, \".k2b-app-workspace__main\")[0] ?? null;\nconst sidebarCollapsible = (root: HTMLElement) => sidebarElement(root)?.dataset.workspaceCollapsible === \"true\";\nconst isVisible = (element: HTMLElement | null): element is HTMLElement =>\n Boolean(element && !element.hidden && getComputedStyle(element).display !== \"none\");\nconst elementSize = (element: HTMLElement | null, kind: AppWorkspaceResizeKind) => {\n if (!isVisible(element)) return 0;\n const rect = element.getBoundingClientRect();\n return kind === \"drawer\" ? rect.height : rect.width;\n};\nconst controlledPanel = (root: HTMLElement, handle: HTMLElement) => {\n const controls = handle.getAttribute(\"aria-controls\");\n if (!controls) return null;\n const panel = document.getElementById(controls);\n return panel?.closest(ROOT_SELECTOR) === root ? panel : null;\n};\nconst controlsResizableRegion = (root: HTMLElement, handle: HTMLElement, kind: AppWorkspaceResizeKind) =>\n (kind === \"sidebar\" ? sidebarElement(root) : controlledPanel(root, handle))?.dataset.workspaceResizable === \"true\";\nconst panelId = (handle: HTMLElement) => safeAppWorkspacePanelId(handle.dataset.workspacePanelId ?? \"primary\") || \"primary\";\nconst numberData = (handle: HTMLElement, key: \"workspaceDefaultSize\" | \"workspaceMinSize\" | \"workspaceMaxSize\", fallback: number) => {\n const value = Number(handle.dataset[key]);\n return Number.isFinite(value) ? value : fallback;\n};\n\nconst sizeLimits = (root: HTMLElement, handle: HTMLElement, kind: AppWorkspaceResizeKind) => {\n const controlled = controlledPanel(root, handle);\n const main = kind === \"pane\" ? handle.closest<HTMLElement>(\".k2b-app-workspace__main\") : mainElement(root);\n const panes = main\n ? Array.from(main.querySelectorAll<HTMLElement>(\".k2b-app-workspace__main-pane\")).filter(\n (pane) => pane.closest(\".k2b-app-workspace__main\") === main && !pane.classList.contains(\"is-primary\") && isVisible(pane),\n )\n : [];\n const details = rootElements(root, \".k2b-app-workspace__detail\").filter(isVisible);\n const sidebarWidth = elementSize(sidebarElement(root), \"sidebar\");\n const otherDetailWidth = details.reduce((total, detail) => total + (detail === controlled ? 0 : elementSize(detail, \"detail\")), 0);\n const defaultMin =\n kind === \"sidebar\"\n ? APP_WORKSPACE_SIDEBAR_MIN\n : kind === \"pane\"\n ? APP_WORKSPACE_PANE_MIN\n : kind === \"detail\"\n ? APP_WORKSPACE_DETAIL_MIN\n : APP_WORKSPACE_DRAWER_MIN;\n const defaultMax =\n kind === \"sidebar\"\n ? APP_WORKSPACE_SIDEBAR_MAX\n : kind === \"pane\"\n ? APP_WORKSPACE_PANE_MAX\n : kind === \"detail\"\n ? APP_WORKSPACE_DETAIL_MAX\n : APP_WORKSPACE_DRAWER_MAX;\n return appWorkspaceResizeLimits({\n kind,\n workspaceSize:\n kind === \"drawer\"\n ? root.getBoundingClientRect().height\n : kind === \"pane\" && main\n ? main.getBoundingClientRect().width\n : root.getBoundingClientRect().width,\n reservedSize:\n kind === \"sidebar\"\n ? otherDetailWidth\n : kind === \"pane\"\n ? panes.reduce((total, pane) => total + (pane === controlled ? 0 : elementSize(pane, \"pane\")), 0)\n : kind === \"detail\"\n ? sidebarWidth + otherDetailWidth\n : 0,\n min: numberData(handle, \"workspaceMinSize\", defaultMin),\n max: numberData(handle, \"workspaceMaxSize\", defaultMax),\n sidebarCollapsible: kind === \"sidebar\" && sidebarCollapsible(root),\n });\n};\n\nconst currentSize = (root: HTMLElement, handle: HTMLElement, kind: AppWorkspaceResizeKind) =>\n kind === \"sidebar\" ? elementSize(sidebarElement(root), kind) : elementSize(controlledPanel(root, handle), kind);\n\nconst updateHandleValue = (\n root: HTMLElement,\n handle: HTMLElement,\n kind: AppWorkspaceResizeKind,\n size: number,\n limits = sizeLimits(root, handle, kind),\n) => {\n const { min, max } = limits;\n handle.setAttribute(\"aria-valuemin\", String(min));\n handle.setAttribute(\"aria-valuemax\", String(max));\n handle.setAttribute(\"aria-valuenow\", String(clamp(size, min, max)));\n};\n\nconst applySize = (\n root: HTMLElement,\n handle: HTMLElement,\n kind: AppWorkspaceResizeKind,\n requestedSize: number,\n /**\n * `snapSidebar: false` tracks the pointer continuously and only *previews*\n * the collapsed state. Snapping (the default, and what keyboard steps and\n * reconciliation want) quantises the width to either the collapsed rail or\n * the sidebar minimum, which during a live drag makes the handle jump.\n */\n options: { snapSidebar?: boolean } = {},\n) => {\n const { min, max } = sizeLimits(root, handle, kind);\n if (kind === \"sidebar\") {\n const collapsible = sidebarCollapsible(root);\n const sidebar =\n options.snapSidebar === false\n ? { width: clamp(requestedSize, min, max), collapsed: shouldCollapseAppWorkspaceSidebar(requestedSize, collapsible) }\n : resolveAppWorkspaceSidebarWidth(requestedSize, max, collapsible);\n root.style.setProperty(\"--k2b-workspace-sidebar-width\", `${sidebar.width}px`);\n // Cloud removes the attribute rather than writing \"false\", so that a\n // presence selector (`[data-sidebar-collapsed]`) means \"collapsed\".\n if (sidebar.collapsed) root.dataset.sidebarCollapsed = \"true\";\n else delete root.dataset.sidebarCollapsed;\n updateHandleValue(root, handle, kind, sidebar.width, { min, max });\n return sidebar.width;\n }\n const size = clamp(requestedSize, min, max);\n root.style.setProperty(appWorkspacePanelVariable(kind, panelId(handle)), `${size}px`);\n updateHandleValue(root, handle, kind, size, { min, max });\n return size;\n};\n\ntype PaneFit = {\n desired: number;\n handle: HTMLElement;\n min: number;\n};\n\n/**\n * Fits all auxiliary main panes as one group. One main region remains the\n * flexible anchor; the others keep their preferred sizes while space permits\n * and give up the same share of their optional space when the container,\n * navigation or detail panels reduce the available width.\n */\nconst reconcilePanes = (root: HTMLElement, layoutState: AppWorkspaceLayoutState, active: ActiveResize | null = null) => {\n const main = mainElement(root);\n if (!main || !isVisible(main)) return;\n const handles = rootElements(root, HANDLE_SELECTOR).filter(\n (handle) => resizeKind(handle) === \"pane\" && controlsResizableRegion(root, handle, \"pane\"),\n );\n if (!handles.length) return;\n\n const controlled = new Set(handles.map((handle) => controlledPanel(root, handle)).filter(Boolean));\n const fixedWidth = Array.from(main.querySelectorAll<HTMLElement>(\".k2b-app-workspace__main-pane\"))\n .filter(\n (pane) =>\n pane.closest(\".k2b-app-workspace__main\") === main &&\n !pane.classList.contains(\"is-primary\") &&\n isVisible(pane) &&\n !controlled.has(pane),\n )\n .reduce((total, pane) => total + elementSize(pane, \"pane\"), 0);\n const fits: PaneFit[] = handles.flatMap((handle) => {\n const panel = controlledPanel(root, handle);\n if (!isVisible(panel)) return [];\n const min = numberData(handle, \"workspaceMinSize\", APP_WORKSPACE_PANE_MIN);\n const max = Math.max(min, numberData(handle, \"workspaceMaxSize\", APP_WORKSPACE_PANE_MAX));\n const preferred =\n active?.moved && active.root === root && active.kind === \"pane\" && active.handle === handle\n ? active.liveSize\n : (layoutState.paneWidths?.[panelId(handle)] ?? numberData(handle, \"workspaceDefaultSize\", elementSize(panel, \"pane\")));\n const desired = clamp(preferred, min, max);\n return [{ desired, handle, min }];\n });\n if (!fits.length) return;\n\n const sizes = fitAppWorkspacePaneSizes(fits, main.getBoundingClientRect().width - fixedWidth - APP_WORKSPACE_MAIN_MIN);\n fits.forEach((fit, index) => {\n root.style.setProperty(appWorkspacePanelVariable(\"pane\", panelId(fit.handle)), `${sizes[index]}px`);\n });\n fits.forEach((fit, index) => updateHandleValue(root, fit.handle, \"pane\", sizes[index]!));\n};\n\n/**\n * Marquee support for a truncated sidebar label.\n *\n * The animation needs to know how far to travel, and that is only knowable\n * once the label has been laid out — so it is measured lazily, on the same\n * hover/focus that triggers it, and published as a custom property. Labels\n * that fit get no `data-overflow`, so they never animate.\n */\nconst measureLabel = (label: HTMLElement) => {\n const text = label.querySelector<HTMLElement>(LABEL_TEXT_SELECTOR);\n if (!text) return;\n const overflow = Math.max(0, text.scrollWidth - label.clientWidth);\n label.style.setProperty(\"--k2b-sidebar-label-overflow\", `${overflow}px`);\n if (overflow > 2) label.dataset.overflow = \"true\";\n else delete label.dataset.overflow;\n};\n\nexport const installAppWorkspaceController = (options: AppWorkspaceControllerOptions = {}): (() => void) => {\n const eventRoot = options.root ?? document;\n const stopScrollFades = installScrollFades(eventRoot);\n let layoutState = normalizeAppWorkspaceLayoutState(options.readState?.()) ?? { version: 2 as const };\n let active: ActiveResize | null = null;\n let resizeFrame: number | null = null;\n let pendingClient: number | null = null;\n\n const persistSize = (handle: HTMLElement, kind: AppWorkspaceResizeKind, size: number) => {\n if (kind === \"sidebar\") {\n const collapsed = size === APP_WORKSPACE_SIDEBAR_COLLAPSED;\n layoutState = {\n ...layoutState,\n sidebarWidth: collapsed ? layoutState.sidebarWidth : size,\n sidebarCollapsed: collapsed,\n };\n } else {\n const key = kind === \"pane\" ? \"paneWidths\" : kind === \"detail\" ? \"detailWidths\" : \"drawerHeights\";\n layoutState = { ...layoutState, [key]: { ...layoutState[key], [panelId(handle)]: size } };\n }\n options.writeState?.(layoutState);\n };\n\n const flushPointerMove = () => {\n if (resizeFrame !== null) {\n cancelAnimationFrame(resizeFrame);\n resizeFrame = null;\n }\n if (!active || pendingClient === null) return;\n const client = pendingClient;\n pendingClient = null;\n active.moved ||= client !== active.startClient;\n active.liveSize = applySize(\n active.root,\n active.handle,\n active.kind,\n active.startSize + (client - active.startClient) * active.direction,\n { snapSidebar: active.kind !== \"sidebar\" },\n );\n if (active.kind === \"sidebar\" || active.kind === \"detail\") reconcilePanes(active.root, layoutState, active);\n };\n const onPointerMove = (event: PointerEvent) => {\n if (!active || event.pointerId !== active.pointerId) return;\n pendingClient = active.kind === \"drawer\" ? event.clientY : event.clientX;\n if (resizeFrame !== null) return;\n resizeFrame = requestAnimationFrame(flushPointerMove);\n };\n const stopResize = (event?: Event) => {\n if (!active || (event instanceof PointerEvent && event.pointerId !== active.pointerId)) return;\n flushPointerMove();\n const finished = active;\n active = null;\n delete finished.root.dataset.workspaceResizeActive;\n delete finished.handle.dataset.workspaceResizeActive;\n if (finished.moved) {\n // A pane's rendered width may have been fitted below the pointer's live\n // preference to keep the main region usable. Persist that preference,\n // then fit the visible panes from the updated state. Reapplying it through\n // the per-handle limits here would count the already-fitted sibling panes\n // a second time and permanently shrink the preference on release.\n const size =\n finished.kind === \"pane\" ? finished.liveSize : applySize(finished.root, finished.handle, finished.kind, finished.liveSize);\n persistSize(finished.handle, finished.kind, size);\n if (finished.kind !== \"drawer\") reconcilePanes(finished.root, layoutState);\n }\n if (finished.handle.hasPointerCapture?.(finished.pointerId)) finished.handle.releasePointerCapture(finished.pointerId);\n document.body.style.userSelect = finished.previousUserSelect;\n window.removeEventListener(\"pointermove\", onPointerMove);\n window.removeEventListener(\"pointerup\", stopResize);\n window.removeEventListener(\"pointercancel\", stopResize);\n window.removeEventListener(\"blur\", stopResize);\n };\n const onPointerDown = (event: PointerEvent) => {\n const handle = resizeHandle(event);\n const kind = handle ? resizeKind(handle) : null;\n const root = handle ? workspaceRoot(handle) : null;\n if (!handle || !kind || !root || !workspaceResizable(root) || !controlsResizableRegion(root, handle, kind) || event.button !== 0)\n return;\n event.preventDefault();\n stopResize();\n pendingClient = null;\n const startSize = currentSize(root, handle, kind);\n active = {\n handle,\n root,\n kind,\n pointerId: event.pointerId,\n startClient: kind === \"drawer\" ? event.clientY : event.clientX,\n startSize,\n liveSize: startSize,\n moved: false,\n direction: resizeDirection(handle, kind),\n previousUserSelect: document.body.style.userSelect,\n };\n root.dataset.workspaceResizeActive = kind;\n handle.dataset.workspaceResizeActive = \"true\";\n document.body.style.userSelect = \"none\";\n handle.setPointerCapture?.(event.pointerId);\n window.addEventListener(\"pointermove\", onPointerMove);\n window.addEventListener(\"pointerup\", stopResize);\n window.addEventListener(\"pointercancel\", stopResize);\n window.addEventListener(\"blur\", stopResize);\n };\n const onKeyDown = (event: KeyboardEvent) => {\n const handle = resizeHandle(event);\n const kind = handle ? resizeKind(handle) : null;\n const root = handle ? workspaceRoot(handle) : null;\n if (!handle || !kind || !root || !workspaceResizable(root) || !controlsResizableRegion(root, handle, kind)) return;\n const current = currentSize(root, handle, kind);\n const { min, max } = sizeLimits(root, handle, kind);\n const step = event.shiftKey ? 32 : 8;\n let requested: number | null = null;\n const direction = resizeDirection(handle, kind);\n const collapsibleSidebar = kind === \"sidebar\" && sidebarCollapsible(root);\n if (event.key === \"Home\") requested = min;\n else if (event.key === \"End\") requested = max;\n // The drawer arrows follow the handle's edge like every other kind; the\n // hard-coded +/- here inverted for a handle on the `end` edge.\n else if (kind === \"drawer\" && event.key === \"ArrowUp\") requested = current - step * direction;\n else if (kind === \"drawer\" && event.key === \"ArrowDown\") requested = current + step * direction;\n // A collapsible sidebar is already at its minimum when the rail is the\n // next step: without these two branches a keyboard step of 8 (or 32) is\n // clamped straight back to the minimum, so the handle is simply stuck and\n // collapse/expand is unreachable without a pointer.\n else if (kind !== \"drawer\" && event.key === \"ArrowLeft\")\n requested = collapsibleSidebar && current <= APP_WORKSPACE_SIDEBAR_MIN ? APP_WORKSPACE_SIDEBAR_COLLAPSED : current - step * direction;\n else if (kind !== \"drawer\" && event.key === \"ArrowRight\")\n requested =\n collapsibleSidebar && current <= APP_WORKSPACE_SIDEBAR_COLLAPSED\n ? (layoutState.sidebarWidth ?? APP_WORKSPACE_SIDEBAR_MIN)\n : current + step * direction;\n if (requested === null) return;\n event.preventDefault();\n persistSize(handle, kind, applySize(root, handle, kind, requested));\n if (kind === \"sidebar\" || kind === \"detail\") reconcilePanes(root, layoutState);\n };\n\n const allRoots = () => {\n const nested = Array.from(eventRoot.querySelectorAll<HTMLElement>(ROOT_SELECTOR));\n return eventRoot instanceof HTMLElement && eventRoot.matches(ROOT_SELECTOR) ? [eventRoot, ...nested] : nested;\n };\n const roots = () => {\n // A hidden or zero-width workspace measures 0, which drives every limit\n // down to its minimum — reconciling one would overwrite its variables and\n // `aria-valuenow` with that minimum for good.\n return allRoots().filter((root) => getComputedStyle(root).display !== \"none\" && root.getBoundingClientRect().width > 0);\n };\n const reconcile = () => {\n roots().forEach((root) => {\n // `data-workspace-resizable=\"false\"` already refuses pointer and keyboard\n // resizing; without this the same workspace still had persisted sizes\n // forced onto it on load and on every window resize.\n if (!workspaceResizable(root)) return;\n const handles = rootElements(root, HANDLE_SELECTOR);\n // Chrome establishes the space available to the work area. Auxiliary\n // panes are then fitted together into what remains, so DOM order cannot\n // give the last pane an accidental sizing priority.\n handles\n .filter((handle) => resizeKind(handle) !== \"pane\")\n .forEach((handle) => {\n const kind = resizeKind(handle);\n if (!kind || !controlsResizableRegion(root, handle, kind)) return;\n if (active?.moved && active.root === root && active.handle === handle && active.kind === kind) {\n applySize(root, handle, kind, active.liveSize, { snapSidebar: kind !== \"sidebar\" });\n return;\n }\n const persisted =\n kind === \"sidebar\"\n ? layoutState.sidebarCollapsed && sidebarCollapsible(root)\n ? APP_WORKSPACE_SIDEBAR_COLLAPSED\n : layoutState.sidebarWidth\n : kind === \"detail\"\n ? layoutState.detailWidths?.[panelId(handle)]\n : layoutState.drawerHeights?.[panelId(handle)];\n if (persisted !== undefined) applySize(root, handle, kind, persisted);\n else updateHandleValue(root, handle, kind, currentSize(root, handle, kind));\n });\n reconcilePanes(root, layoutState, active?.root === root ? active : null);\n });\n };\n /**\n * A handle's limits move whenever anything around it does — opening a detail\n * panel, showing a pane. Only `applySize` refreshed them, so a keyboard user\n * arriving at a handle was announced whatever `aria-valuenow`/`valuemax` the\n * last drag left behind.\n */\n const onFocusIn = (event: FocusEvent) => {\n const handle = resizeHandle(event);\n const kind = handle ? resizeKind(handle) : null;\n const root = handle ? workspaceRoot(handle) : null;\n if (handle && kind && root && controlsResizableRegion(root, handle, kind)) {\n updateHandleValue(root, handle, kind, currentSize(root, handle, kind));\n }\n const label = eventElement(event)?.closest<HTMLElement>(ITEM_SELECTOR)?.querySelector<HTMLElement>(LABEL_SELECTOR);\n if (label) requestAnimationFrame(() => measureLabel(label));\n };\n\n // Measured on entry rather than on every render: `scrollWidth` forces layout,\n // and a sidebar can hold hundreds of rows.\n const onPointerOver = (event: PointerEvent) => {\n const label = eventElement(event)?.closest<HTMLElement>(LABEL_SELECTOR);\n if (!label || (event.relatedTarget instanceof Node && label.contains(event.relatedTarget))) return;\n requestAnimationFrame(() => measureLabel(label));\n };\n\n // A resize changes every label's available width, so the cached measurement\n // is dropped and taken again on the next hover or focus.\n const clearMeasuredLabels = () => {\n eventRoot.querySelectorAll<HTMLElement>(LABEL_SELECTOR).forEach((label) => {\n delete label.dataset.overflow;\n label.style.removeProperty(\"--k2b-sidebar-label-overflow\");\n });\n };\n\n // Geometry can change without a window resize: a parent can resize the\n // workspace, or a detail/pane can open. All sources share one frame so a\n // transition performs at most one layout reconciliation.\n let reconcileFrame: number | null = null;\n const scheduleReconcile = (clearLabels = false) => {\n if (clearLabels) clearMeasuredLabels();\n if (reconcileFrame !== null) return;\n reconcileFrame = requestAnimationFrame(() => {\n reconcileFrame = null;\n reconcile();\n });\n };\n const onResize = () => scheduleReconcile(true);\n\n const observedRoots = new Set<HTMLElement>();\n const resizeObserver =\n typeof ResizeObserver === \"undefined\"\n ? null\n : new ResizeObserver(() => {\n scheduleReconcile(true);\n });\n const syncObservedRoots = () => {\n if (!resizeObserver) return;\n const next = new Set(allRoots());\n observedRoots.forEach((root) => {\n if (!next.has(root)) {\n resizeObserver.unobserve(root);\n observedRoots.delete(root);\n }\n });\n next.forEach((root) => {\n if (observedRoots.has(root)) return;\n observedRoots.add(root);\n resizeObserver.observe(root);\n });\n };\n const layoutNode = (node: Node) =>\n node instanceof Element && (node.matches(LAYOUT_REGION_SELECTOR) || Boolean(node.querySelector(LAYOUT_REGION_SELECTOR)));\n const mutationObserver =\n typeof MutationObserver === \"undefined\"\n ? null\n : new MutationObserver((records) => {\n const changed = records.some((record) =>\n record.type === \"attributes\"\n ? record.target instanceof Element && record.target.matches(LAYOUT_REGION_SELECTOR)\n : [...Array.from(record.addedNodes), ...Array.from(record.removedNodes)].some(layoutNode),\n );\n if (!changed) return;\n syncObservedRoots();\n scheduleReconcile();\n });\n\n eventRoot.addEventListener(\"pointerdown\", onPointerDown as EventListener);\n eventRoot.addEventListener(\"keydown\", onKeyDown as EventListener);\n eventRoot.addEventListener(\"focusin\", onFocusIn as EventListener);\n eventRoot.addEventListener(\"pointerover\", onPointerOver as EventListener);\n window.addEventListener(\"resize\", onResize);\n syncObservedRoots();\n mutationObserver?.observe(eventRoot, {\n attributes: true,\n attributeFilter: [\"hidden\"],\n childList: true,\n subtree: true,\n });\n scheduleReconcile();\n return () => {\n stopScrollFades();\n // Flush the latest coalesced pointer sample before listeners and frames are\n // torn down, so unmounting during a drag cannot lose the final size.\n stopResize();\n if (reconcileFrame !== null) cancelAnimationFrame(reconcileFrame);\n mutationObserver?.disconnect();\n resizeObserver?.disconnect();\n observedRoots.clear();\n eventRoot.removeEventListener(\"pointerdown\", onPointerDown as EventListener);\n eventRoot.removeEventListener(\"keydown\", onKeyDown as EventListener);\n eventRoot.removeEventListener(\"focusin\", onFocusIn as EventListener);\n eventRoot.removeEventListener(\"pointerover\", onPointerOver as EventListener);\n window.removeEventListener(\"resize\", onResize);\n };\n};\n"],"mappings":"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","ignoreList":[]}
|