@k2b/ui 0.31.0 → 0.32.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/base.css +2 -0
- package/dist/browser/actions/ViewTabs.js +8 -0
- package/dist/browser/actions/ViewTabs.js.map +1 -1
- package/dist/browser/content/Chart.js +104 -55
- package/dist/browser/content/Chart.js.map +1 -1
- package/dist/browser/content/ChartExplorer.js +5 -3
- package/dist/browser/content/ChartExplorer.js.map +1 -1
- package/dist/browser/content/MapView.js +4 -4
- package/dist/browser/content/MapView.js.map +1 -1
- package/dist/browser/content/chart-inspection-core.js +4 -1
- package/dist/browser/content/chart-inspection-core.js.map +1 -1
- package/dist/browser/content/code-highlight.js +66 -0
- package/dist/browser/content/code-highlight.js.map +1 -1
- package/dist/browser/content/index.js +1 -0
- package/dist/browser/content/index.js.map +1 -1
- package/dist/browser/content/map-view-live.js +47 -10
- package/dist/browser/content/map-view-live.js.map +1 -1
- package/dist/browser/content/map-view-types.js.map +1 -1
- package/dist/browser/inputs/AutocompleteEditor.js +167 -104
- package/dist/browser/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/browser/inputs/RichSelect.js +1474 -0
- package/dist/browser/inputs/RichSelect.js.map +1 -0
- package/dist/browser/inputs/TextInput.js +95 -60
- package/dist/browser/inputs/TextInput.js.map +1 -1
- package/dist/browser/inputs/choice.js +19 -8
- package/dist/browser/inputs/choice.js.map +1 -1
- package/dist/browser/inputs/index.js +1 -0
- package/dist/browser/inputs/index.js.map +1 -1
- package/dist/browser/inputs/rich-select-messages.js +46 -0
- package/dist/browser/inputs/rich-select-messages.js.map +1 -0
- package/dist/browser/layout/AppWorkspace.js +177 -135
- package/dist/browser/layout/AppWorkspace.js.map +1 -1
- package/dist/browser/layout/DetailPanel.js +10 -1
- package/dist/browser/layout/DetailPanel.js.map +1 -1
- package/dist/browser/layout/Navigation.js +14 -5
- package/dist/browser/layout/Navigation.js.map +1 -1
- package/dist/browser/layout/PageTitle.js +9 -3
- package/dist/browser/layout/PageTitle.js.map +1 -1
- package/dist/browser/layout/ResizeSeparator.js +8 -2
- package/dist/browser/layout/ResizeSeparator.js.map +1 -1
- package/dist/browser/layout/app-workspace-controller.js +192 -31
- package/dist/browser/layout/app-workspace-controller.js.map +1 -1
- package/dist/browser/layout/navigation-model.js.map +1 -1
- package/dist/browser/layout/resize-separator.js +25 -1
- package/dist/browser/layout/resize-separator.js.map +1 -1
- package/dist/browser/surfaces/Skeleton.js +14 -0
- package/dist/browser/surfaces/Skeleton.js.map +1 -0
- package/dist/browser/surfaces/index.js +1 -0
- package/dist/browser/surfaces/index.js.map +1 -1
- package/dist/ssr/actions/ViewTabs.js +8 -0
- package/dist/ssr/actions/ViewTabs.js.map +1 -1
- package/dist/ssr/content/Chart.js +27 -7
- package/dist/ssr/content/Chart.js.map +1 -1
- package/dist/ssr/content/ChartExplorer.js +5 -3
- package/dist/ssr/content/ChartExplorer.js.map +1 -1
- package/dist/ssr/content/MapView.js +4 -4
- package/dist/ssr/content/MapView.js.map +1 -1
- package/dist/ssr/content/chart-inspection-core.js +4 -1
- package/dist/ssr/content/chart-inspection-core.js.map +1 -1
- package/dist/ssr/content/code-highlight.js +66 -0
- package/dist/ssr/content/code-highlight.js.map +1 -1
- package/dist/ssr/content/index.js +1 -0
- package/dist/ssr/content/index.js.map +1 -1
- package/dist/ssr/content/map-view-types.js.map +1 -1
- package/dist/ssr/inputs/AutocompleteEditor.js +64 -24
- package/dist/ssr/inputs/AutocompleteEditor.js.map +1 -1
- package/dist/ssr/inputs/RichSelect.js +950 -0
- package/dist/ssr/inputs/RichSelect.js.map +1 -0
- package/dist/ssr/inputs/TextInput.js +40 -16
- package/dist/ssr/inputs/TextInput.js.map +1 -1
- package/dist/ssr/inputs/choice.js +19 -8
- package/dist/ssr/inputs/choice.js.map +1 -1
- package/dist/ssr/inputs/index.js +1 -0
- package/dist/ssr/inputs/index.js.map +1 -1
- package/dist/ssr/inputs/rich-select-messages.js +46 -0
- package/dist/ssr/inputs/rich-select-messages.js.map +1 -0
- package/dist/ssr/layout/AppWorkspace.js +36 -7
- 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/Navigation.js +1 -1
- package/dist/ssr/layout/Navigation.js.map +1 -1
- package/dist/ssr/layout/PageTitle.js +9 -3
- package/dist/ssr/layout/PageTitle.js.map +1 -1
- package/dist/ssr/layout/ResizeSeparator.js +4 -1
- package/dist/ssr/layout/ResizeSeparator.js.map +1 -1
- package/dist/ssr/layout/app-workspace-controller.js +192 -31
- package/dist/ssr/layout/app-workspace-controller.js.map +1 -1
- package/dist/ssr/layout/navigation-model.js.map +1 -1
- package/dist/ssr/layout/resize-separator.js +25 -1
- package/dist/ssr/layout/resize-separator.js.map +1 -1
- package/dist/ssr/surfaces/Skeleton.js +8 -0
- package/dist/ssr/surfaces/Skeleton.js.map +1 -0
- package/dist/ssr/surfaces/index.js +1 -0
- package/dist/ssr/surfaces/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/content/Chart.d.ts +4 -2
- package/dist/types/content/ChartExplorer.d.ts +0 -1
- package/dist/types/content/code-highlight.d.ts +3 -1
- package/dist/types/content/index.d.ts +1 -0
- package/dist/types/content/map-view-live.d.ts +1 -1
- package/dist/types/content/map-view-types.d.ts +2 -0
- package/dist/types/inputs/AutocompleteEditor.d.ts +6 -1
- package/dist/types/inputs/RichSelect.d.ts +93 -0
- package/dist/types/inputs/TextInput.d.ts +5 -2
- package/dist/types/inputs/choice.d.ts +24 -4
- package/dist/types/inputs/index.d.ts +2 -0
- package/dist/types/inputs/rich-select-messages.d.ts +21 -0
- package/dist/types/layout/AppWorkspace.d.ts +7 -0
- package/dist/types/layout/DetailPanel.d.ts +2 -0
- package/dist/types/layout/app-workspace-controller.d.ts +2 -0
- package/dist/types/layout/navigation-model.d.ts +2 -0
- package/dist/types/layout/resize-separator.d.ts +1 -0
- package/dist/types/surfaces/Skeleton.d.ts +6 -0
- package/dist/types/surfaces/index.d.ts +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["layout/navigation-model.ts"],"sourcesContent":["import type { LinkNavigateEvent, NavigationScrollMode } from \"@k2b/ssr/nav\";\nimport type { Accessor } from \"solid-js\";\nimport type { IntentTone } from \"../semantics\";\nimport type { AppWorkspaceSidebarSwitcherProps } from \"./SidebarSwitcher\";\n\n/** A status icon at a row's end, such as \"running\". `label` names it for screen readers and as its tooltip. */\nexport type NavigationStatus = { icon: string; label: string; tone?: IntentTone };\n\ntype NavigationEntry = {\n id: string;\n label: string;\n icon?: string;\n /** Names a meaningful icon for screen readers, such as \"Homepage\"; without it the icon is decorative. */\n iconLabel?: string;\n badge?: string | number;\n description?: string;\n /**\n * Status icon in a fixed-size slot at the row's end. Set `null` on a row whose status comes and goes: the empty slot\n * keeps its place, so a status change never rewraps the label or moves the rows below.\n */\n status?: NavigationStatus | null;\n active?: boolean;\n disabled?: boolean;\n color?: string;\n children?: readonly NavigationItem[];\n /** Initial disclosure state; subsequent toggles remain local to the renderer. */\n defaultExpanded?: boolean;\n /** Owner-held disclosure state. The renderer shows it and reports toggles through `onExpandedChange`. */\n expanded?: boolean;\n actions?: readonly NavigationItem[];\n /**\n * Square icon buttons in the row, before the `actions` menu. They run an `action`; a destination belongs in a row,\n * where its link keeps modified clicks and new tabs.\n */\n inlineActions?: readonly { id: string; label: string; icon: string; action: string; disabled?: boolean }[];\n};\n\n/** Serializable presentation. Functions stay with the controller's owning island. */\nexport type NavigationItem = NavigationEntry &\n (\n | {\n href: string;\n action?: string;\n navigation?: \"document\" | \"enhanced\";\n scroll?: NavigationScrollMode;\n section?: never;\n keepOpen?: never;\n }\n | {\n action: string;\n href?: never;\n navigation?: never;\n scroll?: never;\n section?: never;\n /**\n * Runs the action while the host's menu stays open, without `beforeSelect`. Only for an action that changes\n * what the menu shows, such as a filter or a sort order; an action that opens something lets the menu close.\n */\n keepOpen?: boolean;\n }\n | {\n href?: never;\n action?: never;\n navigation?: never;\n scroll?: never;\n keepOpen?: never;\n children: readonly NavigationItem[];\n /** Shows the group as a plain heading over its rows, always open and not indented, instead of a disclosure. */\n section?: boolean;\n }\n );\n\nexport type NavigationOptions = {\n items: Accessor<readonly NavigationItem[]>;\n /** The container the navigation works in, shown above the items with the same switcher as the sidebar's head. */\n switcher?: Accessor<AppWorkspaceSidebarSwitcherProps>;\n onAction?: (action: string) => void | Promise<void>;\n onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;\n /** Receives disclosure toggles of items that carry `expanded`; the owner decides the next state. */\n onExpandedChange?: (id: string, expanded: boolean) => void;\n};\n\nexport function findNavigationItem(items: readonly NavigationItem[], id: string): NavigationItem | undefined {\n for (const item of items) {\n if (item.disabled) continue;\n if (item.id === id) return item;\n const found =\n findNavigationItem(item.children ?? [], id) ??\n findNavigationItem(item.inlineActions ?? [], id) ??\n findNavigationItem(item.actions ?? [], id);\n if (found) return found;\n }\n}\n\n/** One live source for renderers; no router, registry, fetching or persisted state. */\nexport function createNavigation(options: NavigationOptions) {\n return {\n items: options.items,\n switcher: options.switcher,\n onNavigate: options.onNavigate,\n onExpandedChange: options.onExpandedChange,\n async activate(id: string) {\n const item = findNavigationItem(options.items(), id);\n if (item?.action) await options.onAction?.(item.action);\n },\n };\n}\n\nexport type NavigationController = ReturnType<typeof createNavigation>;\n"],"mappings":"AAKA;;
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/navigation-model.ts"],"sourcesContent":["import type { LinkNavigateEvent, NavigationScrollMode } from \"@k2b/ssr/nav\";\nimport type { Accessor } from \"solid-js\";\nimport type { IntentTone } from \"../semantics\";\nimport type { AppWorkspaceSidebarSwitcherProps } from \"./SidebarSwitcher\";\n\n/** A status icon at a row's end, such as \"running\". `label` names it for screen readers and as its tooltip. */\nexport type NavigationStatus = { icon: string; label: string; tone?: IntentTone };\n\ntype NavigationEntry = {\n id: string;\n label: string;\n icon?: string;\n /** Names a meaningful icon for screen readers, such as \"Homepage\"; without it the icon is decorative. */\n iconLabel?: string;\n badge?: string | number;\n description?: string;\n /**\n * Status icon in a fixed-size slot at the row's end. Set `null` on a row whose status comes and goes: the empty slot\n * keeps its place, so a status change never rewraps the label or moves the rows below.\n */\n status?: NavigationStatus | null;\n active?: boolean;\n /** Current container, independently of its active destination. `false` quiets this row; omitted keeps the default ink. */\n context?: boolean;\n disabled?: boolean;\n color?: string;\n children?: readonly NavigationItem[];\n /** Initial disclosure state; subsequent toggles remain local to the renderer. */\n defaultExpanded?: boolean;\n /** Owner-held disclosure state. The renderer shows it and reports toggles through `onExpandedChange`. */\n expanded?: boolean;\n actions?: readonly NavigationItem[];\n /**\n * Square icon buttons in the row, before the `actions` menu. They run an `action`; a destination belongs in a row,\n * where its link keeps modified clicks and new tabs.\n */\n inlineActions?: readonly { id: string; label: string; icon: string; action: string; disabled?: boolean }[];\n};\n\n/** Serializable presentation. Functions stay with the controller's owning island. */\nexport type NavigationItem = NavigationEntry &\n (\n | {\n href: string;\n action?: string;\n navigation?: \"document\" | \"enhanced\";\n scroll?: NavigationScrollMode;\n section?: never;\n keepOpen?: never;\n }\n | {\n action: string;\n href?: never;\n navigation?: never;\n scroll?: never;\n section?: never;\n /**\n * Runs the action while the host's menu stays open, without `beforeSelect`. Only for an action that changes\n * what the menu shows, such as a filter or a sort order; an action that opens something lets the menu close.\n */\n keepOpen?: boolean;\n }\n | {\n href?: never;\n action?: never;\n navigation?: never;\n scroll?: never;\n keepOpen?: never;\n children: readonly NavigationItem[];\n /** Shows the group as a plain heading over its rows, always open and not indented, instead of a disclosure. */\n section?: boolean;\n }\n );\n\nexport type NavigationOptions = {\n items: Accessor<readonly NavigationItem[]>;\n /** The container the navigation works in, shown above the items with the same switcher as the sidebar's head. */\n switcher?: Accessor<AppWorkspaceSidebarSwitcherProps>;\n onAction?: (action: string) => void | Promise<void>;\n onNavigate?: (event: LinkNavigateEvent) => void | Promise<void>;\n /** Receives disclosure toggles of items that carry `expanded`; the owner decides the next state. */\n onExpandedChange?: (id: string, expanded: boolean) => void;\n};\n\nexport function findNavigationItem(items: readonly NavigationItem[], id: string): NavigationItem | undefined {\n for (const item of items) {\n if (item.disabled) continue;\n if (item.id === id) return item;\n const found =\n findNavigationItem(item.children ?? [], id) ??\n findNavigationItem(item.inlineActions ?? [], id) ??\n findNavigationItem(item.actions ?? [], id);\n if (found) return found;\n }\n}\n\n/** One live source for renderers; no router, registry, fetching or persisted state. */\nexport function createNavigation(options: NavigationOptions) {\n return {\n items: options.items,\n switcher: options.switcher,\n onNavigate: options.onNavigate,\n onExpandedChange: options.onExpandedChange,\n async activate(id: string) {\n const item = findNavigationItem(options.items(), id);\n if (item?.action) await options.onAction?.(item.action);\n },\n };\n}\n\nexport type NavigationController = ReturnType<typeof createNavigation>;\n"],"mappings":"AAKA;;AAkCA;;AA6CA,OAAO,SAAS,kBAAkB,CAAC,KAAgC,EAAE,EAAU,EAA8B;EAC3G,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;IACxB,IAAI,IAAI,CAAC,QAAQ,EAAE;IACnB,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI;IAC/B,MAAM,KAAK,GACT,kBAAkB,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC,IAC3C,kBAAkB,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE,EAAE,CAAC,IAChD,kBAAkB,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5C,IAAI,KAAK,EAAE,OAAO,KAAK;EACzB;AACF;;AAEA;AACA,OAAO,SAAS,gBAAgB,CAAC,OAA0B,EAAE;EAC3D,OAAO;IACL,KAAK,EAAE,OAAO,CAAC,KAAK;IACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;IAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;IAC1C,MAAM,QAAQ,CAAC,EAAU,EAAE;MACzB,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;MACpD,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;IACzD;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { suppressTextSelection } from "../internal/text-selection";
|
|
2
2
|
/** Adds resizing to a server-rendered separator; orientation comes from aria-orientation. */
|
|
3
3
|
export function attachResizeSeparator(element, options) {
|
|
4
|
+
element.dataset.resizeEdge = options.grow;
|
|
4
5
|
const clamp = value => Math.min(options.max, Math.max(options.min, value));
|
|
5
6
|
const setAria = value => element.setAttribute("aria-valuenow", String(Math.round(value * 100) / 100));
|
|
6
7
|
const vertical = () => element.getAttribute("aria-orientation") !== "horizontal";
|
|
7
|
-
const direction = () =>
|
|
8
|
+
const direction = () => {
|
|
9
|
+
const value = (options.grow === "end" ? 1 : -1) * (vertical() && getComputedStyle(element).direction === "rtl" ? -1 : 1);
|
|
10
|
+
element.dataset.orientation = vertical() ? "vertical" : "horizontal";
|
|
11
|
+
element.dataset.resizePhysicalEdge = value < 0 ? "start" : "end";
|
|
12
|
+
return value;
|
|
13
|
+
};
|
|
14
|
+
const syncCue = () => {
|
|
15
|
+
direction();
|
|
16
|
+
};
|
|
17
|
+
syncCue();
|
|
8
18
|
let drag;
|
|
9
19
|
const resize = raw => {
|
|
10
20
|
const value = clamp(raw);
|
|
@@ -57,8 +67,16 @@ export function attachResizeSeparator(element, options) {
|
|
|
57
67
|
if (event.pointerId === drag?.id) finish(false);
|
|
58
68
|
};
|
|
59
69
|
const cancel = () => finish(false);
|
|
70
|
+
const reset = () => {
|
|
71
|
+
if (!drag) options.onReset?.();
|
|
72
|
+
};
|
|
60
73
|
const key = event => {
|
|
61
74
|
if (event.defaultPrevented || event.isComposing || event.altKey || event.ctrlKey || event.metaKey || drag) return;
|
|
75
|
+
if (event.key === "Enter" && options.onReset) {
|
|
76
|
+
event.preventDefault();
|
|
77
|
+
reset();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
62
80
|
const decrease = vertical() ? "ArrowLeft" : "ArrowUp";
|
|
63
81
|
const increase = vertical() ? "ArrowRight" : "ArrowDown";
|
|
64
82
|
const step = event.shiftKey ? options.largeStep ?? (options.step ?? 1) * 4 : options.step ?? 1;
|
|
@@ -75,6 +93,9 @@ export function attachResizeSeparator(element, options) {
|
|
|
75
93
|
window.addEventListener("pointercancel", cancelPointer);
|
|
76
94
|
element.addEventListener("lostpointercapture", cancelPointer);
|
|
77
95
|
element.addEventListener("keydown", key);
|
|
96
|
+
element.addEventListener("dblclick", reset);
|
|
97
|
+
element.addEventListener("pointerenter", syncCue);
|
|
98
|
+
element.addEventListener("focusin", syncCue);
|
|
78
99
|
window.addEventListener("blur", cancel);
|
|
79
100
|
return () => {
|
|
80
101
|
cancel();
|
|
@@ -84,6 +105,9 @@ export function attachResizeSeparator(element, options) {
|
|
|
84
105
|
window.removeEventListener("pointercancel", cancelPointer);
|
|
85
106
|
element.removeEventListener("lostpointercapture", cancelPointer);
|
|
86
107
|
element.removeEventListener("keydown", key);
|
|
108
|
+
element.removeEventListener("dblclick", reset);
|
|
109
|
+
element.removeEventListener("pointerenter", syncCue);
|
|
110
|
+
element.removeEventListener("focusin", syncCue);
|
|
87
111
|
window.removeEventListener("blur", cancel);
|
|
88
112
|
};
|
|
89
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["layout/resize-separator.ts"],"sourcesContent":["import { suppressTextSelection } from \"../internal/text-selection\";\n\nexport type ResizeSeparatorOptions = {\n min: number;\n max: number;\n value: () => number;\n /** Pixels per value unit. Defaults to 1. */\n unit?: number;\n step?: number;\n largeStep?: number;\n grow: \"start\" | \"end\";\n collapseBelow?: number;\n onResize: (value: number) => void;\n onResizeEnd?: (value: number) => void;\n onCollapseIntent?: (armed: boolean) => void;\n onCollapse?: () => void;\n onDragChange?: (dragging: boolean) => void;\n};\n\n/** Adds resizing to a server-rendered separator; orientation comes from aria-orientation. */\nexport function attachResizeSeparator(element: HTMLElement, options: ResizeSeparatorOptions): () => void {\n const clamp = (value: number) => Math.min(options.max, Math.max(options.min, value));\n const setAria = (value: number) => element.setAttribute(\"aria-valuenow\", String(Math.round(value * 100) / 100));\n const vertical = () => element.getAttribute(\"aria-orientation\") !== \"horizontal\";\n const direction = () => (options.grow === \"end\" ? 1 : -1) * (vertical() && getComputedStyle(element).direction === \"rtl\" ? -1 : 1);\n let drag: { id: number; start: number; value: number; current: number; armed: boolean; releaseSelection: () => void } | undefined;\n const resize = (raw: number) => {\n const value = clamp(raw);\n setAria(value);\n options.onResize(value);\n return value;\n };\n const finish = (commit: boolean) => {\n if (!drag) return;\n const ended = drag;\n drag = undefined;\n element.removeAttribute(\"data-active\");\n ended.releaseSelection();\n if (element.hasPointerCapture?.(ended.id)) element.releasePointerCapture(ended.id);\n options.onDragChange?.(false);\n if (ended.armed) options.onCollapseIntent?.(false);\n if (!commit) resize(ended.value);\n else if (ended.armed) options.onCollapse?.();\n else options.onResizeEnd?.(ended.current);\n };\n const down = (event: PointerEvent) => {\n if (event.button !== 0 || event.isPrimary === false || drag) return;\n event.preventDefault();\n element.focus();\n drag = {\n id: event.pointerId,\n start: vertical() ? event.clientX : event.clientY,\n value: options.value(),\n current: options.value(),\n armed: false,\n releaseSelection: suppressTextSelection(event.pointerId),\n };\n element.setPointerCapture?.(event.pointerId);\n element.dataset.active = \"true\";\n options.onDragChange?.(true);\n };\n const move = (event: PointerEvent) => {\n if (!drag || event.pointerId !== drag.id) return;\n event.preventDefault();\n const raw = drag.value + (((vertical() ? event.clientX : event.clientY) - drag.start) * direction()) / (options.unit ?? 1);\n const armed = options.collapseBelow !== undefined && raw < options.collapseBelow;\n if (armed !== drag.armed) {\n drag.armed = armed;\n options.onCollapseIntent?.(armed);\n }\n drag.current = resize(raw);\n };\n const up = (event: PointerEvent) => {\n if (event.pointerId === drag?.id) finish(true);\n };\n const cancelPointer = (event: PointerEvent) => {\n if (event.pointerId === drag?.id) finish(false);\n };\n const cancel = () => finish(false);\n const key = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.isComposing || event.altKey || event.ctrlKey || event.metaKey || drag) return;\n const decrease = vertical() ? \"ArrowLeft\" : \"ArrowUp\";\n const increase = vertical() ? \"ArrowRight\" : \"ArrowDown\";\n const step = event.shiftKey ? (options.largeStep ?? (options.step ?? 1) * 4) : (options.step ?? 1);\n let value: number;\n if (event.key === \"Home\") value = options.min;\n else if (event.key === \"End\") value = options.max;\n else if (event.key === decrease || event.key === increase)\n value = options.value() + (event.key === increase ? 1 : -1) * direction() * step;\n else return;\n event.preventDefault();\n const resized = resize(value);\n options.onResizeEnd?.(resized);\n };\n setAria(clamp(options.value()));\n element.addEventListener(\"pointerdown\", down);\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n window.addEventListener(\"pointercancel\", cancelPointer);\n element.addEventListener(\"lostpointercapture\", cancelPointer);\n element.addEventListener(\"keydown\", key);\n window.addEventListener(\"blur\", cancel);\n return () => {\n cancel();\n element.removeEventListener(\"pointerdown\", down);\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n window.removeEventListener(\"pointercancel\", cancelPointer);\n element.removeEventListener(\"lostpointercapture\", cancelPointer);\n element.removeEventListener(\"keydown\", key);\n window.removeEventListener(\"blur\", cancel);\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["layout/resize-separator.ts"],"sourcesContent":["import { suppressTextSelection } from \"../internal/text-selection\";\n\nexport type ResizeSeparatorOptions = {\n min: number;\n max: number;\n value: () => number;\n /** Pixels per value unit. Defaults to 1. */\n unit?: number;\n step?: number;\n largeStep?: number;\n grow: \"start\" | \"end\";\n collapseBelow?: number;\n onResize: (value: number) => void;\n onResizeEnd?: (value: number) => void;\n onReset?: () => void;\n onCollapseIntent?: (armed: boolean) => void;\n onCollapse?: () => void;\n onDragChange?: (dragging: boolean) => void;\n};\n\n/** Adds resizing to a server-rendered separator; orientation comes from aria-orientation. */\nexport function attachResizeSeparator(element: HTMLElement, options: ResizeSeparatorOptions): () => void {\n element.dataset.resizeEdge = options.grow;\n const clamp = (value: number) => Math.min(options.max, Math.max(options.min, value));\n const setAria = (value: number) => element.setAttribute(\"aria-valuenow\", String(Math.round(value * 100) / 100));\n const vertical = () => element.getAttribute(\"aria-orientation\") !== \"horizontal\";\n const direction = () => {\n const value = (options.grow === \"end\" ? 1 : -1) * (vertical() && getComputedStyle(element).direction === \"rtl\" ? -1 : 1);\n element.dataset.orientation = vertical() ? \"vertical\" : \"horizontal\";\n element.dataset.resizePhysicalEdge = value < 0 ? \"start\" : \"end\";\n return value;\n };\n const syncCue = () => {\n direction();\n };\n syncCue();\n let drag: { id: number; start: number; value: number; current: number; armed: boolean; releaseSelection: () => void } | undefined;\n const resize = (raw: number) => {\n const value = clamp(raw);\n setAria(value);\n options.onResize(value);\n return value;\n };\n const finish = (commit: boolean) => {\n if (!drag) return;\n const ended = drag;\n drag = undefined;\n element.removeAttribute(\"data-active\");\n ended.releaseSelection();\n if (element.hasPointerCapture?.(ended.id)) element.releasePointerCapture(ended.id);\n options.onDragChange?.(false);\n if (ended.armed) options.onCollapseIntent?.(false);\n if (!commit) resize(ended.value);\n else if (ended.armed) options.onCollapse?.();\n else options.onResizeEnd?.(ended.current);\n };\n const down = (event: PointerEvent) => {\n if (event.button !== 0 || event.isPrimary === false || drag) return;\n event.preventDefault();\n element.focus();\n drag = {\n id: event.pointerId,\n start: vertical() ? event.clientX : event.clientY,\n value: options.value(),\n current: options.value(),\n armed: false,\n releaseSelection: suppressTextSelection(event.pointerId),\n };\n element.setPointerCapture?.(event.pointerId);\n element.dataset.active = \"true\";\n options.onDragChange?.(true);\n };\n const move = (event: PointerEvent) => {\n if (!drag || event.pointerId !== drag.id) return;\n event.preventDefault();\n const raw = drag.value + (((vertical() ? event.clientX : event.clientY) - drag.start) * direction()) / (options.unit ?? 1);\n const armed = options.collapseBelow !== undefined && raw < options.collapseBelow;\n if (armed !== drag.armed) {\n drag.armed = armed;\n options.onCollapseIntent?.(armed);\n }\n drag.current = resize(raw);\n };\n const up = (event: PointerEvent) => {\n if (event.pointerId === drag?.id) finish(true);\n };\n const cancelPointer = (event: PointerEvent) => {\n if (event.pointerId === drag?.id) finish(false);\n };\n const cancel = () => finish(false);\n const reset = () => {\n if (!drag) options.onReset?.();\n };\n const key = (event: KeyboardEvent) => {\n if (event.defaultPrevented || event.isComposing || event.altKey || event.ctrlKey || event.metaKey || drag) return;\n if (event.key === \"Enter\" && options.onReset) {\n event.preventDefault();\n reset();\n return;\n }\n const decrease = vertical() ? \"ArrowLeft\" : \"ArrowUp\";\n const increase = vertical() ? \"ArrowRight\" : \"ArrowDown\";\n const step = event.shiftKey ? (options.largeStep ?? (options.step ?? 1) * 4) : (options.step ?? 1);\n let value: number;\n if (event.key === \"Home\") value = options.min;\n else if (event.key === \"End\") value = options.max;\n else if (event.key === decrease || event.key === increase)\n value = options.value() + (event.key === increase ? 1 : -1) * direction() * step;\n else return;\n event.preventDefault();\n const resized = resize(value);\n options.onResizeEnd?.(resized);\n };\n setAria(clamp(options.value()));\n element.addEventListener(\"pointerdown\", down);\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n window.addEventListener(\"pointercancel\", cancelPointer);\n element.addEventListener(\"lostpointercapture\", cancelPointer);\n element.addEventListener(\"keydown\", key);\n element.addEventListener(\"dblclick\", reset);\n element.addEventListener(\"pointerenter\", syncCue);\n element.addEventListener(\"focusin\", syncCue);\n window.addEventListener(\"blur\", cancel);\n return () => {\n cancel();\n element.removeEventListener(\"pointerdown\", down);\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n window.removeEventListener(\"pointercancel\", cancelPointer);\n element.removeEventListener(\"lostpointercapture\", cancelPointer);\n element.removeEventListener(\"keydown\", key);\n element.removeEventListener(\"dblclick\", reset);\n element.removeEventListener(\"pointerenter\", syncCue);\n element.removeEventListener(\"focusin\", syncCue);\n window.removeEventListener(\"blur\", cancel);\n };\n}\n"],"mappings":"AAAA,SAAS,qBAAqB,QAAQ,4BAA4B;AAoBlE;AACA,OAAO,SAAS,qBAAqB,CAAC,OAAoB,EAAE,OAA+B,EAAc;EACvG,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI;EACzC,MAAM,KAAK,GAAI,KAAa,IAAK,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;EACpF,MAAM,OAAO,GAAI,KAAa,IAAK,OAAO,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;EAC/G,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,YAAY;EAChF,MAAM,SAAS,GAAG,MAAM;IACtB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACxH,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,CAAC,GAAG,UAAU,GAAG,YAAY;IACpE,OAAO,CAAC,OAAO,CAAC,kBAAkB,GAAG,KAAK,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK;IAChE,OAAO,KAAK;EACd,CAAC;EACD,MAAM,OAAO,GAAG,MAAM;IACpB,SAAS,CAAC,CAAC;EACb,CAAC;EACD,OAAO,CAAC,CAAC;EACT,IAAI,IAA6H;EACjI,MAAM,MAAM,GAAI,GAAW,IAAK;IAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,KAAK,CAAC;IACd,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IACvB,OAAO,KAAK;EACd,CAAC;EACD,MAAM,MAAM,GAAI,MAAe,IAAK;IAClC,IAAI,CAAC,IAAI,EAAE;IACX,MAAM,KAAK,GAAG,IAAI;IAClB,IAAI,GAAG,SAAS;IAChB,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC;IACtC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;IAClF,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;IAC7B,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAClD,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAC5B,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,KACxC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;EAC3C,CAAC;EACD,MAAM,IAAI,GAAI,KAAmB,IAAK;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,EAAE;IAC7D,KAAK,CAAC,cAAc,CAAC,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,CAAC;IACf,IAAI,GAAG;MACL,EAAE,EAAE,KAAK,CAAC,SAAS;MACnB,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO;MACjD,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;MACtB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;MACxB,KAAK,EAAE,KAAK;MACZ,gBAAgB,EAAE,qBAAqB,CAAC,KAAK,CAAC,SAAS;IACzD,CAAC;IACD,OAAO,CAAC,iBAAiB,GAAG,KAAK,CAAC,SAAS,CAAC;IAC5C,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM;IAC/B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;EAC9B,CAAC;EACD,MAAM,IAAI,GAAI,KAAmB,IAAK;IACpC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,EAAE,EAAE;IAC1C,KAAK,CAAC,cAAc,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,IAAK,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAC1H,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa;IAChF,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;MACxB,IAAI,CAAC,KAAK,GAAG,KAAK;MAClB,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACnC;IACA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC;EAC5B,CAAC;EACD,MAAM,EAAE,GAAI,KAAmB,IAAK;IAClC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC;EAChD,CAAC;EACD,MAAM,aAAa,GAAI,KAAmB,IAAK;IAC7C,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC;EACjD,CAAC;EACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;EAClC,MAAM,KAAK,GAAG,MAAM;IAClB,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,GAAG,CAAC;EAChC,CAAC;EACD,MAAM,GAAG,GAAI,KAAoB,IAAK;IACpC,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;IAC3G,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;MAC5C,KAAK,CAAC,cAAc,CAAC,CAAC;MACtB,KAAK,CAAC,CAAC;MACP;IACF;IACA,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,WAAW,GAAG,SAAS;IACrD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,YAAY,GAAG,WAAW;IACxD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,GAAI,OAAO,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAK,OAAO,CAAC,IAAI,IAAI,CAAE;IAClG,IAAI,KAAa;IACjB,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KACzC,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAC7C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EACvD,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,KAC9E;IACL,KAAK,CAAC,cAAc,CAAC,CAAC;IACtB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;IAC7B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC;EAChC,CAAC;EACD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;EAC/B,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;EAC7C,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC;EAC5C,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC;EACxC,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,aAAa,CAAC;EACvD,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,aAAa,CAAC;EAC7D,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC;EACxC,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,KAAK,CAAC;EAC3C,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,OAAO,CAAC;EACjD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC;EAC5C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;EACvC,OAAO,MAAM;IACX,MAAM,CAAC,CAAC;IACR,OAAO,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;IAChD,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC;IAC/C,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,EAAE,CAAC;IAC3C,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,aAAa,CAAC;IAC1D,OAAO,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,aAAa,CAAC;IAChE,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,GAAG,CAAC;IAC3C,OAAO,CAAC,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC;IAC9C,OAAO,CAAC,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC;IACpD,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC;IAC/C,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;EAC5C,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ssr as _$ssr } from "solid-js/web";
|
|
2
|
+
import { escape as _$escape } from "solid-js/web";
|
|
3
|
+
var _tmpl$ = ["<div class=\"", "\" aria-hidden=\"true\"></div>"];
|
|
4
|
+
/** Decorative loading geometry. The consumer owns dimensions and one accessible loading status. */
|
|
5
|
+
export function Skeleton(props) {
|
|
6
|
+
return _$ssr(_tmpl$, `k2b-skeleton ${_$escape(props.class ?? "", true)}`);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["surfaces/Skeleton.tsx"],"sourcesContent":["import type { JSX } from \"solid-js\";\n\nexport type SkeletonProps = { class?: string };\n\n/** Decorative loading geometry. The consumer owns dimensions and one accessible loading status. */\nexport function Skeleton(props: SkeletonProps): JSX.Element {\n return <div class={`k2b-skeleton ${props.class ?? \"\"}`} aria-hidden=\"true\" />;\n}\n"],"mappings":";;;AAIA;AACA,OAAO,SAAS,QAAQ,CAAC,KAAoB,EAAe;EAC1D,qBAAmB,yBAAgB,KAAK,CAAC,KAAK,IAAI,EAAE,SAAE;AACxD","ignoreList":[]}
|
|
@@ -9,6 +9,7 @@ export { default as Placeholder } from "./Placeholder";
|
|
|
9
9
|
export { ProgressBar } from "./ProgressBar";
|
|
10
10
|
export { ProgressRing } from "./ProgressRing";
|
|
11
11
|
export { ResourceCard } from "./ResourceCard";
|
|
12
|
+
export { Skeleton } from "./Skeleton";
|
|
12
13
|
export { StatCell } from "./StatCell";
|
|
13
14
|
export { StatGrid } from "./StatGrid";
|
|
14
15
|
export { StatusBadge } from "./StatusBadge";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["surfaces/index.ts"],"sourcesContent":["export type { AvatarProps, AvatarRing, AvatarShape, AvatarSize } from \"./Avatar\";\nexport { Avatar } from \"./Avatar\";\nexport type { AvatarStackPerson, AvatarStackProps } from \"./AvatarStack\";\nexport { AvatarStack } from \"./AvatarStack\";\nexport type { DescriptionListItem, DescriptionListProps } from \"./DescriptionList\";\nexport { DescriptionList } from \"./DescriptionList\";\nexport type { LinkCardColor, LinkCardProps } from \"./LinkCard\";\nexport { LinkCard } from \"./LinkCard\";\nexport type { NotFoundStateAction, NotFoundStateProps } from \"./NotFoundState\";\nexport { NotFoundState } from \"./NotFoundState\";\nexport type { NoticeCardProps, NoticeGridProps, NoticeTone } from \"./NoticeCard\";\nexport { NOTICE_CARD_CLASSES, NoticeCard } from \"./NoticeCard\";\nexport type { PaperProps, PaperTag } from \"./Paper\";\nexport { Paper } from \"./Paper\";\nexport type {\n PlaceholderAlign,\n PlaceholderProps,\n PlaceholderState,\n PlaceholderSurface,\n PlaceholderVariant,\n} from \"./Placeholder\";\nexport { default as Placeholder } from \"./Placeholder\";\nexport type { ProgressBarProps, ProgressBarTone } from \"./ProgressBar\";\nexport { ProgressBar } from \"./ProgressBar\";\nexport type { ProgressRingProps, ProgressRingTone } from \"./ProgressRing\";\nexport { ProgressRing } from \"./ProgressRing\";\nexport type { ResourceCardProps, ResourceCardState } from \"./ResourceCard\";\nexport { ResourceCard } from \"./ResourceCard\";\nexport type { StatCellAccent, StatCellProps, StatCellTone } from \"./StatCell\";\nexport { StatCell } from \"./StatCell\";\nexport type {\n StatGridAction,\n StatGridColumns,\n StatGridProps,\n StatGridSize,\n StatGridSurface,\n} from \"./StatGrid\";\nexport { StatGrid } from \"./StatGrid\";\nexport type { StatusBadgeProps, StatusTone } from \"./StatusBadge\";\nexport { StatusBadge } from \"./StatusBadge\";\nexport type { TagProps, TagSize } from \"./Tag\";\nexport { Tag } from \"./Tag\";\n"],"mappings":"AACA,SAAS,MAAM,QAAQ,UAAU;AAEjC,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,eAAe,QAAQ,mBAAmB;AAEnD,SAAS,QAAQ,QAAQ,YAAY;AAErC,SAAS,aAAa,QAAQ,iBAAiB;AAE/C,SAAS,mBAAmB,EAAE,UAAU,QAAQ,cAAc;AAE9D,SAAS,KAAK,QAAQ,SAAS;AAQ/B,SAAS,OAAO,IAAI,WAAW,QAAQ,eAAe;AAEtD,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,YAAY,QAAQ,gBAAgB;AAE7C,SAAS,YAAY,QAAQ,gBAAgB;
|
|
1
|
+
{"version":3,"names":[],"sources":["surfaces/index.ts"],"sourcesContent":["export type { AvatarProps, AvatarRing, AvatarShape, AvatarSize } from \"./Avatar\";\nexport { Avatar } from \"./Avatar\";\nexport type { AvatarStackPerson, AvatarStackProps } from \"./AvatarStack\";\nexport { AvatarStack } from \"./AvatarStack\";\nexport type { DescriptionListItem, DescriptionListProps } from \"./DescriptionList\";\nexport { DescriptionList } from \"./DescriptionList\";\nexport type { LinkCardColor, LinkCardProps } from \"./LinkCard\";\nexport { LinkCard } from \"./LinkCard\";\nexport type { NotFoundStateAction, NotFoundStateProps } from \"./NotFoundState\";\nexport { NotFoundState } from \"./NotFoundState\";\nexport type { NoticeCardProps, NoticeGridProps, NoticeTone } from \"./NoticeCard\";\nexport { NOTICE_CARD_CLASSES, NoticeCard } from \"./NoticeCard\";\nexport type { PaperProps, PaperTag } from \"./Paper\";\nexport { Paper } from \"./Paper\";\nexport type {\n PlaceholderAlign,\n PlaceholderProps,\n PlaceholderState,\n PlaceholderSurface,\n PlaceholderVariant,\n} from \"./Placeholder\";\nexport { default as Placeholder } from \"./Placeholder\";\nexport type { ProgressBarProps, ProgressBarTone } from \"./ProgressBar\";\nexport { ProgressBar } from \"./ProgressBar\";\nexport type { ProgressRingProps, ProgressRingTone } from \"./ProgressRing\";\nexport { ProgressRing } from \"./ProgressRing\";\nexport type { ResourceCardProps, ResourceCardState } from \"./ResourceCard\";\nexport { ResourceCard } from \"./ResourceCard\";\nexport { Skeleton, type SkeletonProps } from \"./Skeleton\";\nexport type { StatCellAccent, StatCellProps, StatCellTone } from \"./StatCell\";\nexport { StatCell } from \"./StatCell\";\nexport type {\n StatGridAction,\n StatGridColumns,\n StatGridProps,\n StatGridSize,\n StatGridSurface,\n} from \"./StatGrid\";\nexport { StatGrid } from \"./StatGrid\";\nexport type { StatusBadgeProps, StatusTone } from \"./StatusBadge\";\nexport { StatusBadge } from \"./StatusBadge\";\nexport type { TagProps, TagSize } from \"./Tag\";\nexport { Tag } from \"./Tag\";\n"],"mappings":"AACA,SAAS,MAAM,QAAQ,UAAU;AAEjC,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,eAAe,QAAQ,mBAAmB;AAEnD,SAAS,QAAQ,QAAQ,YAAY;AAErC,SAAS,aAAa,QAAQ,iBAAiB;AAE/C,SAAS,mBAAmB,EAAE,UAAU,QAAQ,cAAc;AAE9D,SAAS,KAAK,QAAQ,SAAS;AAQ/B,SAAS,OAAO,IAAI,WAAW,QAAQ,eAAe;AAEtD,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,YAAY,QAAQ,gBAAgB;AAE7C,SAAS,YAAY,QAAQ,gBAAgB;AAC7C,SAAS,QAAQ,QAA4B,YAAY;AAEzD,SAAS,QAAQ,QAAQ,YAAY;AAQrC,SAAS,QAAQ,QAAQ,YAAY;AAErC,SAAS,WAAW,QAAQ,eAAe;AAE3C,SAAS,GAAG,QAAQ,OAAO","ignoreList":[]}
|