@logicplanes/kaeso-ui 0.1.0 → 0.2.1
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/AGENTS.md +1 -0
- package/LICENSE +1 -1
- package/ai/component-guides.md +269 -7
- package/ai/component-registry.json +600 -800
- package/ai/component-registry.md +200 -141
- package/ai/icons.md +2 -2
- package/ai/tokens.md +1 -1
- package/dist/blocks/delete-resource.js +1 -1
- package/dist/blocks/pages.js +3 -3
- package/dist/blocks/resource-list.js +2 -2
- package/dist/chunks/app-frame-BXh-06HL.js +214 -0
- package/dist/chunks/app-frame-BXh-06HL.js.map +1 -0
- package/dist/chunks/{banner-BiziJuBZ.js → banner-DxGBPQ7p.js} +2 -2
- package/dist/chunks/{banner-BiziJuBZ.js.map → banner-DxGBPQ7p.js.map} +1 -1
- package/dist/chunks/{button-BHKAE6ui.js → button-DQvoOxVQ.js} +2 -2
- package/dist/chunks/{button-BHKAE6ui.js.map → button-DQvoOxVQ.js.map} +1 -1
- package/dist/chunks/{calendar-B5SSTE56.js → calendar-CN3YJi2k.js} +3 -3
- package/dist/chunks/{calendar-B5SSTE56.js.map → calendar-CN3YJi2k.js.map} +1 -1
- package/dist/chunks/code-BADhvsgC.js +33 -0
- package/dist/chunks/code-BADhvsgC.js.map +1 -0
- package/dist/chunks/{code-block-BbK6E4Eo.js → code-block-DxtladFW.js} +41 -37
- package/dist/chunks/code-block-DxtladFW.js.map +1 -0
- package/dist/chunks/{combobox-D8pQk22r.js → combobox-D30Wt11R.js} +4 -4
- package/dist/chunks/{combobox-D8pQk22r.js.map → combobox-D30Wt11R.js.map} +1 -1
- package/dist/chunks/{copy-button-mAzHjYXq.js → copy-button-DXxn-YYZ.js} +4 -4
- package/dist/chunks/{copy-button-mAzHjYXq.js.map → copy-button-DXxn-YYZ.js.map} +1 -1
- package/dist/chunks/{core-Bgefcs3z.js → core-K960A4OT.js} +119 -120
- package/dist/chunks/core-K960A4OT.js.map +1 -0
- package/dist/chunks/{date-popup-Er1oQwtU.js → date-popup-B-6xhb-1.js} +3 -3
- package/dist/chunks/{date-popup-Er1oQwtU.js.map → date-popup-B-6xhb-1.js.map} +1 -1
- package/dist/chunks/{de-BCg1eRVd.js → de-CTAo4KL7.js} +10 -10
- package/dist/chunks/de-CTAo4KL7.js.map +1 -0
- package/dist/chunks/dialog-LNKgPEsV.js +319 -0
- package/dist/chunks/dialog-LNKgPEsV.js.map +1 -0
- package/dist/chunks/{icon-Bha63LaN.js → icon-CBzvyEqC.js} +30 -29
- package/dist/chunks/icon-CBzvyEqC.js.map +1 -0
- package/dist/chunks/{icon-button-Bw67oKtx.js → icon-button-_x1RUphC.js} +3 -3
- package/dist/chunks/{icon-button-Bw67oKtx.js.map → icon-button-_x1RUphC.js.map} +1 -1
- package/dist/chunks/{identity-DQinp-Ep.js → identity-BtZC_d_Q.js} +3 -3
- package/dist/chunks/{identity-DQinp-Ep.js.map → identity-BtZC_d_Q.js.map} +1 -1
- package/dist/chunks/{input-Biakz6GB.js → input-CNTfI6YE.js} +2 -2
- package/dist/chunks/{input-Biakz6GB.js.map → input-CNTfI6YE.js.map} +1 -1
- package/dist/chunks/{input-group-DQqEPFj_.js → input-group-CYA1MEoZ.js} +2 -2
- package/dist/chunks/{input-group-DQqEPFj_.js.map → input-group-CYA1MEoZ.js.map} +1 -1
- package/dist/chunks/{iso-field-CznqNVrH.js → iso-field-1qmg7TP8.js} +2 -2
- package/dist/chunks/{iso-field-CznqNVrH.js.map → iso-field-1qmg7TP8.js.map} +1 -1
- package/dist/chunks/linear-scale-BWKeRqDX.js +37 -0
- package/dist/chunks/linear-scale-BWKeRqDX.js.map +1 -0
- package/dist/chunks/{link-tTapNTpM.js → link-vz9aV8WX.js} +9 -2
- package/dist/chunks/link-vz9aV8WX.js.map +1 -0
- package/dist/chunks/{list-CN8pO8lv.js → list-CzaiyNja.js} +119 -111
- package/dist/chunks/list-CzaiyNja.js.map +1 -0
- package/dist/chunks/{markdown-C-iJsYnd.js → markdown-5NyaHHfN.js} +6 -6
- package/dist/chunks/{markdown-C-iJsYnd.js.map → markdown-5NyaHHfN.js.map} +1 -1
- package/dist/chunks/{menu-OURWt_hD.js → menu-DyVPwgfF.js} +2 -2
- package/dist/chunks/{menu-OURWt_hD.js.map → menu-DyVPwgfF.js.map} +1 -1
- package/dist/chunks/nav-sheet-BIErlV74.js +58 -0
- package/dist/chunks/nav-sheet-BIErlV74.js.map +1 -0
- package/dist/chunks/{logo-VmXYhIJL.js → nav-wordmark-DLkItdvo.js} +12 -93
- package/dist/chunks/nav-wordmark-DLkItdvo.js.map +1 -0
- package/dist/chunks/observe-resize-DhxhmoyB.js +25 -0
- package/dist/chunks/observe-resize-DhxhmoyB.js.map +1 -0
- package/dist/chunks/{page-header-BIRswR73.js → page-header-CEPZzhRp.js} +2 -2
- package/dist/chunks/{page-header-BIRswR73.js.map → page-header-CEPZzhRp.js.map} +1 -1
- package/dist/chunks/{pagination-DYdLm18-.js → pagination-CCMxQ5pH.js} +3 -3
- package/dist/chunks/{pagination-DYdLm18-.js.map → pagination-CCMxQ5pH.js.map} +1 -1
- package/dist/chunks/{range-popup-AbRzgHtY.js → range-popup-DGOnGGag.js} +4 -4
- package/dist/chunks/{range-popup-AbRzgHtY.js.map → range-popup-DGOnGGag.js.map} +1 -1
- package/dist/chunks/resize-motion-CMaidkwe.js +101 -0
- package/dist/chunks/resize-motion-CMaidkwe.js.map +1 -0
- package/dist/chunks/{rights-CXo7zEf6.js → rights-BbiJ0AJB.js} +4 -4
- package/dist/chunks/{rights-CXo7zEf6.js.map → rights-BbiJ0AJB.js.map} +1 -1
- package/dist/chunks/{section-XStLtXKa.js → section-DzOLLN1p.js} +3 -3
- package/dist/chunks/section-DzOLLN1p.js.map +1 -0
- package/dist/chunks/{segmented-CDTx2n29.js → segmented-MrinfDL8.js} +36 -35
- package/dist/chunks/segmented-MrinfDL8.js.map +1 -0
- package/dist/chunks/select-Bc4kRiSG.js +227 -0
- package/dist/chunks/select-Bc4kRiSG.js.map +1 -0
- package/dist/chunks/{sidebar-C4fL_KMm.js → sidebar-5IA18LuP.js} +180 -183
- package/dist/chunks/sidebar-5IA18LuP.js.map +1 -0
- package/dist/chunks/{sidebar-menu-sd9vCpDy.js → sidebar-menu-DRWRxcJ3.js} +2 -2
- package/dist/chunks/{sidebar-menu-sd9vCpDy.js.map → sidebar-menu-DRWRxcJ3.js.map} +1 -1
- package/dist/chunks/{switch-CztLhA8F.js → switch-XMY_CQE-.js} +2 -2
- package/dist/chunks/{switch-CztLhA8F.js.map → switch-XMY_CQE-.js.map} +1 -1
- package/dist/chunks/{tag-BsmQ1xPj.js → tag-Dg89uYpV.js} +3 -3
- package/dist/chunks/{tag-BsmQ1xPj.js.map → tag-Dg89uYpV.js.map} +1 -1
- package/dist/chunks/{text-BPglS3vq.js → text--5MKh2G4.js} +3 -3
- package/dist/chunks/{text-BPglS3vq.js.map → text--5MKh2G4.js.map} +1 -1
- package/dist/chunks/{textarea-Bvk7N2bh.js → textarea-Cj8iR82R.js} +3 -3
- package/dist/chunks/{textarea-Bvk7N2bh.js.map → textarea-Cj8iR82R.js.map} +1 -1
- package/dist/chunks/theme-provider-DJhORMlc.js +72 -0
- package/dist/chunks/theme-provider-DJhORMlc.js.map +1 -0
- package/dist/chunks/tooltip-DEbCCsru.js +151 -0
- package/dist/chunks/tooltip-DEbCCsru.js.map +1 -0
- package/dist/chunks/{tooltip-root-DWhtAtFb.js → tooltip-root-DRd4ciUv.js} +2 -2
- package/dist/chunks/{tooltip-root-DWhtAtFb.js.map → tooltip-root-DRd4ciUv.js.map} +1 -1
- package/dist/chunks/use-layout-width-CbSDbRb0.js +28 -0
- package/dist/chunks/use-layout-width-CbSDbRb0.js.map +1 -0
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js +26 -0
- package/dist/chunks/use-scroll-margin-DfdTc_5D.js.map +1 -0
- package/dist/chunks/use-truncated-CW0hByYt.js +24 -0
- package/dist/chunks/use-truncated-CW0hByYt.js.map +1 -0
- package/dist/chunks/{virtual-rows-BgMdVelU.js → virtual-rows-BZe49bKi.js} +2 -2
- package/dist/chunks/{virtual-rows-BgMdVelU.js.map → virtual-rows-BZe49bKi.js.map} +1 -1
- package/dist/chunks/{zh-CN-cPjO1OOo.js → zh-CN-C7GmVswt.js} +15 -15
- package/dist/chunks/zh-CN-C7GmVswt.js.map +1 -0
- package/dist/components/app-frame.js +3 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/button-group.js +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/charts/bar.js +78 -77
- package/dist/components/charts/bar.js.map +1 -1
- package/dist/components/charts/donut.js +2 -2
- package/dist/components/charts/gauge.js +1 -1
- package/dist/components/charts/sankey.js +1 -1
- package/dist/components/charts/timeseries.js +75 -75
- package/dist/components/charts/timeseries.js.map +1 -1
- package/dist/components/charts.js +1 -1
- package/dist/components/code-block.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +105 -97
- package/dist/components/command-palette.js.map +1 -1
- package/dist/components/copy-button.js +1 -1
- package/dist/components/data-table.js +94 -95
- package/dist/components/data-table.js.map +1 -1
- package/dist/components/date-picker.js +3 -3
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dialog.js +141 -153
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/display-options.js +5 -5
- package/dist/components/filter-chip.js +1 -1
- package/dist/components/flow.js +37 -36
- package/dist/components/flow.js.map +1 -1
- package/dist/components/icon-button.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input.js +5 -5
- package/dist/components/kaeso/conversation.js +2 -2
- package/dist/components/kaeso/identity.js +1 -1
- package/dist/components/kaeso/moments.js +3 -3
- package/dist/components/kaeso/rights.js +1 -1
- package/dist/components/kaeso/usage.js +1 -1
- package/dist/components/kaeso.js +4 -4
- package/dist/components/key-value.js +3 -3
- package/dist/components/link.js +1 -1
- package/dist/components/list.js +1 -1
- package/dist/components/logo.js +101 -1
- package/dist/components/logo.js.map +1 -0
- package/dist/components/markdown.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/page-header.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/playground.js +8 -8
- package/dist/components/scroll-area.js +30 -23
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/section.js +1 -1
- package/dist/components/segmented.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sheet.js +46 -41
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/stat.js +75 -76
- package/dist/components/stat.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tag.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/theme-image.js +38 -0
- package/dist/components/theme-image.js.map +1 -0
- package/dist/components/theme-menu.js +3 -3
- package/dist/components/theme-select.js +58 -0
- package/dist/components/theme-select.js.map +1 -0
- package/dist/components/toast.js +91 -92
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/i18n-provider.js +1 -1
- package/dist/index.js +76 -74
- package/dist/kaeso.css +39 -16
- package/dist/styles.css +1 -1
- package/dist/theme.js +1 -1
- package/dist/types/components/app-frame/app-frame.d.ts +2 -10
- package/dist/types/components/app-frame/docs.d.ts +1 -0
- package/dist/types/components/app-frame/index.d.ts +1 -0
- package/dist/types/components/app-frame/nav-sheet.d.ts +11 -0
- package/dist/types/components/charts/linear-scale.d.ts +17 -0
- package/dist/types/components/code/code.d.ts +16 -0
- package/dist/types/components/code/docs.d.ts +1 -0
- package/dist/types/components/code-block/code-block.d.ts +2 -0
- package/dist/types/components/code-block/docs.d.ts +4 -0
- package/dist/types/components/command-palette/command-palette.d.ts +1 -0
- package/dist/types/components/command-palette/docs.d.ts +1 -0
- package/dist/types/components/dialog/dialog.d.ts +5 -2
- package/dist/types/components/dialog/docs.d.ts +10 -0
- package/dist/types/components/dialog/index.d.ts +1 -0
- package/dist/types/components/dialog/scope.d.ts +9 -0
- package/dist/types/components/dialog/step-dialog.d.ts +9 -1
- package/dist/types/components/link/link.d.ts +8 -0
- package/dist/types/components/logo/nav-wordmark.d.ts +6 -0
- package/dist/types/components/scroll-area/scroll-area.d.ts +3 -3
- package/dist/types/components/theme-image/docs.d.ts +13 -0
- package/dist/types/components/theme-image/index.d.ts +1 -0
- package/dist/types/components/theme-image/theme-image.d.ts +23 -0
- package/dist/types/components/theme-select/docs.d.ts +10 -0
- package/dist/types/components/theme-select/index.d.ts +1 -0
- package/dist/types/components/theme-select/theme-select.d.ts +34 -0
- package/dist/types/icons/groups.d.ts +1 -1
- package/dist/types/icons/vocabulary.d.ts +5 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/theme/theme-provider.d.ts +1 -1
- package/dist/types/utils/dialog-scope.d.ts +7 -0
- package/dist/types/utils/lazy-module.d.ts +7 -2
- package/dist/types/utils/observe-resize.d.ts +1 -0
- package/dist/types/utils/resize-motion.d.ts +2 -0
- package/foundations/motion.md +1 -0
- package/package.json +2 -2
- package/dist/chunks/app-frame-BBIMch8X.js +0 -224
- package/dist/chunks/app-frame-BBIMch8X.js.map +0 -1
- package/dist/chunks/code-DDyOlIFO.js +0 -23
- package/dist/chunks/code-DDyOlIFO.js.map +0 -1
- package/dist/chunks/code-block-BbK6E4Eo.js.map +0 -1
- package/dist/chunks/core-Bgefcs3z.js.map +0 -1
- package/dist/chunks/de-BCg1eRVd.js.map +0 -1
- package/dist/chunks/dialog-CVqSVk3T.js +0 -283
- package/dist/chunks/dialog-CVqSVk3T.js.map +0 -1
- package/dist/chunks/icon-Bha63LaN.js.map +0 -1
- package/dist/chunks/link-tTapNTpM.js.map +0 -1
- package/dist/chunks/list-CN8pO8lv.js.map +0 -1
- package/dist/chunks/logo-VmXYhIJL.js.map +0 -1
- package/dist/chunks/restore-focus-Cap1Q-R3.js +0 -19
- package/dist/chunks/restore-focus-Cap1Q-R3.js.map +0 -1
- package/dist/chunks/section-XStLtXKa.js.map +0 -1
- package/dist/chunks/segmented-CDTx2n29.js.map +0 -1
- package/dist/chunks/select-Ca3HGsN1.js +0 -223
- package/dist/chunks/select-Ca3HGsN1.js.map +0 -1
- package/dist/chunks/sidebar-C4fL_KMm.js.map +0 -1
- package/dist/chunks/theme-provider-mgUaQK7L.js +0 -69
- package/dist/chunks/theme-provider-mgUaQK7L.js.map +0 -1
- package/dist/chunks/tooltip-CDu00nzg.js +0 -124
- package/dist/chunks/tooltip-CDu00nzg.js.map +0 -1
- package/dist/chunks/use-layout-width-DZaLOQMT.js +0 -27
- package/dist/chunks/use-layout-width-DZaLOQMT.js.map +0 -1
- package/dist/chunks/use-scroll-margin-DWcfIXac.js +0 -25
- package/dist/chunks/use-scroll-margin-DWcfIXac.js.map +0 -1
- package/dist/chunks/use-truncated-DmQoePvG.js +0 -25
- package/dist/chunks/use-truncated-DmQoePvG.js.map +0 -1
- package/dist/chunks/zh-CN-cPjO1OOo.js.map +0 -1
|
@@ -4,10 +4,10 @@ import { r as t } from "./portal-context-BBbzDKmY.js";
|
|
|
4
4
|
import { n } from "./inset-BLMdxX4I.js";
|
|
5
5
|
import { i as r } from "./context-BELWW79w.js";
|
|
6
6
|
import { t as i } from "./icon-CeNQtobn.js";
|
|
7
|
-
import {
|
|
8
|
-
import { r as s } from "./text
|
|
9
|
-
import { t as c } from "./icon-button-
|
|
10
|
-
import { n as l } from "./use-layout-width-
|
|
7
|
+
import { s as a, u as o } from "./tooltip-DEbCCsru.js";
|
|
8
|
+
import { r as s } from "./text--5MKh2G4.js";
|
|
9
|
+
import { t as c } from "./icon-button-_x1RUphC.js";
|
|
10
|
+
import { n as l } from "./use-layout-width-CbSDbRb0.js";
|
|
11
11
|
import { r as u } from "./skeleton-kfuqdl1a.js";
|
|
12
12
|
import { t as d } from "./scroll-parent-WXvzQcUo.js";
|
|
13
13
|
import { forwardRef as f, useCallback as p, useEffect as m, useLayoutEffect as h, useMemo as g, useRef as _, useState as v } from "react";
|
|
@@ -15,18 +15,18 @@ import { jsx as y, jsxs as b } from "react/jsx-runtime";
|
|
|
15
15
|
import { Add01Icon as x, Cancel01Icon as S } from "@hugeicons/core-free-icons";
|
|
16
16
|
import { createPortal as C } from "react-dom";
|
|
17
17
|
//#region src/components/list/row-checkbox.tsx
|
|
18
|
-
var w = /* @__PURE__ */
|
|
19
|
-
function
|
|
20
|
-
let i =
|
|
18
|
+
var w = /* @__PURE__ */ a(() => import("./checkbox-BgRdbfCE.js").then((e) => e.o), { base: () => import.meta.url });
|
|
19
|
+
function ee({ checked: t, onToggle: n, "aria-label": r }) {
|
|
20
|
+
let [i, a] = o(w, !0), [s, c] = v(!1), [l, u] = v(!1);
|
|
21
21
|
return m(() => {
|
|
22
|
-
if (!
|
|
22
|
+
if (!l) return;
|
|
23
23
|
let e, t = () => {
|
|
24
|
-
e = setTimeout(() =>
|
|
24
|
+
e = setTimeout(() => u(!1));
|
|
25
25
|
};
|
|
26
26
|
return window.addEventListener("pointerup", t, !0), window.addEventListener("pointercancel", t, !0), () => {
|
|
27
27
|
clearTimeout(e), window.removeEventListener("pointerup", t, !0), window.removeEventListener("pointercancel", t, !0);
|
|
28
28
|
};
|
|
29
|
-
}, [
|
|
29
|
+
}, [l]), i && !s && !l ? /* @__PURE__ */ y(i.CheckboxBox, {
|
|
30
30
|
checked: t,
|
|
31
31
|
onCheckedChange: n,
|
|
32
32
|
"aria-label": r
|
|
@@ -34,11 +34,13 @@ function T({ checked: t, onToggle: n, "aria-label": r }) {
|
|
|
34
34
|
role: "checkbox",
|
|
35
35
|
"aria-checked": t,
|
|
36
36
|
"aria-label": r,
|
|
37
|
-
onPointerEnter: () =>
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
onPointerEnter: () => {
|
|
38
|
+
c(!0), a();
|
|
39
|
+
},
|
|
40
|
+
onPointerLeave: () => c(!1),
|
|
41
|
+
onPointerDown: () => u(!0),
|
|
40
42
|
onClick: () => {
|
|
41
|
-
n(),
|
|
43
|
+
n(), c(!1), u(!1);
|
|
42
44
|
},
|
|
43
45
|
className: "relative -m-3 inline-flex size-24 shrink-0 cursor-pointer items-center justify-center rounded-checkbox",
|
|
44
46
|
children: /* @__PURE__ */ y("span", {
|
|
@@ -49,26 +51,26 @@ function T({ checked: t, onToggle: n, "aria-label": r }) {
|
|
|
49
51
|
}
|
|
50
52
|
//#endregion
|
|
51
53
|
//#region src/components/list/list.tsx
|
|
52
|
-
var
|
|
54
|
+
var T = /* @__PURE__ */ a(() => import("./virtual-rows-BZe49bKi.js"), { base: () => import.meta.url }), E = { density: {
|
|
53
55
|
default: { classes: "h-44" },
|
|
54
56
|
compact: { classes: "h-36" }
|
|
55
|
-
} },
|
|
57
|
+
} }, D = { density: "default" }, O = {
|
|
56
58
|
48: "w-48",
|
|
57
59
|
64: "w-64",
|
|
58
60
|
80: "w-80",
|
|
59
61
|
96: "w-96",
|
|
60
62
|
120: "w-120"
|
|
61
|
-
},
|
|
62
|
-
function
|
|
63
|
+
}, te = 520, k = "a[href], button, input, select, textarea, [tabindex], [contenteditable=true]", ne = "input:not([type=checkbox]):not([type=radio]), textarea, select, [contenteditable=true]";
|
|
64
|
+
function A(e) {
|
|
63
65
|
for (let t of e.querySelectorAll("[role=row]")) {
|
|
64
66
|
let e = t.querySelector("[data-index]");
|
|
65
|
-
if (e) for (let n of t.querySelectorAll(
|
|
67
|
+
if (e) for (let n of t.querySelectorAll(k)) n !== e && n.getAttribute("tabindex") !== "-1" && n.setAttribute("tabindex", "-1");
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
|
-
var
|
|
69
|
-
let
|
|
70
|
-
s ||
|
|
71
|
-
}, [s, c]), [
|
|
70
|
+
var j = /* @__PURE__ */ f(function({ items: t, groups: r, onOpen: i, selectable: a, selected: s, onSelectedChange: c, idWidth: u, density: f = "default", virtualizeAbove: m = 100, selectionActions: x, selectionBar: S = !0, loading: C, empty: w, className: ee, "aria-label": E, "data-force-row": D }, O) {
|
|
71
|
+
let j = n(), [F, ae] = v(/* @__PURE__ */ new Set()), I = s ?? F, L = p((e) => {
|
|
72
|
+
s || ae(e), c?.(e);
|
|
73
|
+
}, [s, c]), [R, oe] = v(() => new Set((r ?? []).filter((e) => e.defaultCollapsed).map((e) => e.id))), [z, B] = v(-1), [se, V] = v(null), H = _(null), U = l(H), W = !!U && U < te, G = g(() => {
|
|
72
74
|
let e = (e) => e.flatMap((e) => [{
|
|
73
75
|
kind: "row",
|
|
74
76
|
item: e,
|
|
@@ -86,25 +88,25 @@ var M = /* @__PURE__ */ f(function({ items: t, groups: r, onOpen: i, selectable:
|
|
|
86
88
|
kind: "header",
|
|
87
89
|
group: t,
|
|
88
90
|
key: `h-${t.id}`
|
|
89
|
-
}, ...
|
|
91
|
+
}, ...R.has(t.id) ? [] : e(t.items)]) : e(t ?? []);
|
|
90
92
|
}, [
|
|
91
93
|
t,
|
|
92
94
|
r,
|
|
93
|
-
|
|
94
|
-
]),
|
|
95
|
-
|
|
96
|
-
let
|
|
97
|
-
|
|
98
|
-
let t = () =>
|
|
95
|
+
R
|
|
96
|
+
]), ce = G.findIndex((e) => e.kind === "row"), K = r ? r.every((e) => e.items.length === 0) : (t ?? []).length === 0, q = G.length > m, J = (e) => G[e]?.kind === "header" ? e === 0 ? 36 : 52 : W ? 64 : f === "compact" ? 36 : 44, [le, Y] = o(T, q), X = le?.VirtualRows, Z = _(null);
|
|
97
|
+
z >= G.length && B(-1);
|
|
98
|
+
let ue = z >= 0 ? z : G.length ? 0 : -1, de = (e) => {
|
|
99
|
+
B(e), q && Z.current?.(e);
|
|
100
|
+
let t = () => H.current?.querySelector(`[data-index="${e}"]`), n = t();
|
|
99
101
|
n ? n.focus() : requestAnimationFrame(() => t()?.focus());
|
|
100
|
-
},
|
|
102
|
+
}, Q = _(!!X);
|
|
101
103
|
h(() => {
|
|
102
|
-
X && !
|
|
104
|
+
X && !Q.current && z >= 0 && document.activeElement === document.body && H.current?.querySelector(`[data-index="${z}"]`)?.focus(), Q.current = !!X;
|
|
103
105
|
}), h(() => {
|
|
104
|
-
let e =
|
|
106
|
+
let e = H.current;
|
|
105
107
|
if (!e) return;
|
|
106
|
-
|
|
107
|
-
let t = new MutationObserver(() =>
|
|
108
|
+
A(e);
|
|
109
|
+
let t = new MutationObserver(() => A(e));
|
|
108
110
|
return t.observe(e, {
|
|
109
111
|
subtree: !0,
|
|
110
112
|
childList: !0,
|
|
@@ -112,109 +114,115 @@ var M = /* @__PURE__ */ f(function({ items: t, groups: r, onOpen: i, selectable:
|
|
|
112
114
|
attributeFilter: ["tabindex"]
|
|
113
115
|
}), () => t.disconnect();
|
|
114
116
|
}, []);
|
|
115
|
-
let
|
|
116
|
-
let t = new Set(
|
|
117
|
-
t.has(e) ? t.delete(e) : t.add(e),
|
|
118
|
-
},
|
|
117
|
+
let fe = (e) => {
|
|
118
|
+
let t = new Set(I);
|
|
119
|
+
t.has(e) ? t.delete(e) : t.add(e), L(t);
|
|
120
|
+
}, pe = (e) => e.flatMap((e) => e.kind === "row" && !e.item.disabled ? [e.item.id] : []), me = (e) => {
|
|
119
121
|
let t = e.target;
|
|
120
|
-
if (e.defaultPrevented || !e.currentTarget.contains(t) || t.closest(
|
|
122
|
+
if (e.defaultPrevented || !e.currentTarget.contains(t) || t.closest(ne)) return;
|
|
121
123
|
let n = t.closest("[role=row]"), r = n?.querySelector("[data-index]");
|
|
122
124
|
if (!n || !r) return;
|
|
123
|
-
let
|
|
125
|
+
let o = Number(r.dataset.index), s = t === r, c = G[o], l = c?.kind === "row" ? c.item : void 0;
|
|
124
126
|
if (e.altKey) return;
|
|
125
127
|
if (e.metaKey || e.ctrlKey) {
|
|
126
|
-
e.key.toLowerCase() === "a" &&
|
|
128
|
+
e.key.toLowerCase() === "a" && a && !e.shiftKey && (e.preventDefault(), L(new Set(pe(G))));
|
|
127
129
|
return;
|
|
128
130
|
}
|
|
129
131
|
let u = (t) => {
|
|
130
|
-
if (e.preventDefault(), e.shiftKey &&
|
|
131
|
-
let e =
|
|
132
|
-
|
|
133
|
-
let n = new Set(
|
|
134
|
-
|
|
135
|
-
} else
|
|
136
|
-
|
|
137
|
-
}, d = () => [...n.querySelectorAll(
|
|
138
|
-
if (e.key === "ArrowDown" || e.key === "j" && !e.shiftKey) u(Math.min(
|
|
139
|
-
else if (e.key === "ArrowUp" || e.key === "k" && !e.shiftKey) u(Math.max(0,
|
|
132
|
+
if (e.preventDefault(), e.shiftKey && a) {
|
|
133
|
+
let e = se ?? o;
|
|
134
|
+
V(e);
|
|
135
|
+
let n = new Set(I);
|
|
136
|
+
pe(G.slice(Math.min(e, t), Math.max(e, t) + 1)).forEach((e) => n.add(e)), L(n);
|
|
137
|
+
} else V(null);
|
|
138
|
+
de(t);
|
|
139
|
+
}, d = () => [...n.querySelectorAll(k)].filter((e) => e !== r && !e.closest("[role=checkbox], [aria-hidden=true], [hidden]") && !e.matches(":disabled, input[type=checkbox]"));
|
|
140
|
+
if (e.key === "ArrowDown" || e.key === "j" && !e.shiftKey) u(Math.min(G.length - 1, o + 1));
|
|
141
|
+
else if (e.key === "ArrowUp" || e.key === "k" && !e.shiftKey) u(Math.max(0, o - 1));
|
|
140
142
|
else if (e.key === "Home") u(0);
|
|
141
|
-
else if (e.key === "End") u(
|
|
143
|
+
else if (e.key === "End") u(G.length - 1);
|
|
142
144
|
else if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
|
|
143
145
|
let n = d(), i = s ? -1 : n.indexOf(t), a = e.key === "ArrowRight" ? n[i + 1] : i > 0 ? n[i - 1] : i === 0 ? r : void 0;
|
|
144
146
|
if (!a) return;
|
|
145
147
|
e.preventDefault(), a.focus();
|
|
146
148
|
} else if (e.key === "Escape" && !s) e.preventDefault(), r.focus();
|
|
147
149
|
else if (!s || !l || e.shiftKey) return;
|
|
148
|
-
else (e.key === " " || e.key === "x") &&
|
|
149
|
-
},
|
|
150
|
+
else (e.key === " " || e.key === "x") && a ? (e.preventDefault(), l.disabled || fe(l.id)) : e.key === "Enter" ? (e.preventDefault(), l.disabled || i?.(l)) : e.key === "Escape" && a && I.size && L(/* @__PURE__ */ new Set());
|
|
151
|
+
}, he = I.size > 0, $ = (e, t) => e.kind === "header" ? /* @__PURE__ */ y(N, {
|
|
150
152
|
title: e.group.title,
|
|
151
153
|
glyph: e.group.glyph,
|
|
152
154
|
count: e.group.count ?? e.group.items.length,
|
|
153
|
-
collapsed:
|
|
155
|
+
collapsed: R.has(e.group.id),
|
|
154
156
|
onToggle: () => {
|
|
155
|
-
let t = new Set(
|
|
156
|
-
t.has(e.group.id) ? t.delete(e.group.id) : t.add(e.group.id),
|
|
157
|
+
let t = new Set(R);
|
|
158
|
+
t.has(e.group.id) ? t.delete(e.group.id) : t.add(e.group.id), oe(t);
|
|
157
159
|
},
|
|
158
160
|
onAdd: e.group.onAdd,
|
|
159
161
|
addLabel: e.group.addLabel,
|
|
160
|
-
indent: !!
|
|
162
|
+
indent: !!a,
|
|
161
163
|
first: t === 0,
|
|
162
164
|
index: t,
|
|
163
|
-
active: t ===
|
|
164
|
-
onFocus: () =>
|
|
165
|
-
}, e.key) : /* @__PURE__ */ y(
|
|
165
|
+
active: t === ue,
|
|
166
|
+
onFocus: () => B(t)
|
|
167
|
+
}, e.key) : /* @__PURE__ */ y(M, {
|
|
166
168
|
index: t,
|
|
167
169
|
item: e.item,
|
|
168
170
|
depth: e.depth,
|
|
169
171
|
lastChild: e.lastChild,
|
|
170
172
|
idWidth: u,
|
|
171
173
|
density: f,
|
|
172
|
-
narrow:
|
|
173
|
-
active: t ===
|
|
174
|
-
selected:
|
|
175
|
-
selectable: !!
|
|
176
|
-
selecting:
|
|
177
|
-
onSelect: () =>
|
|
174
|
+
narrow: W,
|
|
175
|
+
active: t === ue,
|
|
176
|
+
selected: I.has(e.item.id),
|
|
177
|
+
selectable: !!a,
|
|
178
|
+
selecting: he,
|
|
179
|
+
onSelect: () => fe(e.item.id),
|
|
178
180
|
onOpen: () => i?.(e.item),
|
|
179
|
-
onFocus: () =>
|
|
180
|
-
...
|
|
181
|
+
onFocus: () => B(t),
|
|
182
|
+
...D && t === ce ? { "data-force": D } : {}
|
|
181
183
|
}, e.key);
|
|
182
184
|
return /* @__PURE__ */ b("div", {
|
|
183
185
|
ref: (e) => {
|
|
184
|
-
|
|
186
|
+
H.current = e, typeof O == "function" ? O(e) : O && (O.current = e);
|
|
185
187
|
},
|
|
186
188
|
role: "grid",
|
|
187
|
-
"aria-label":
|
|
188
|
-
"aria-multiselectable":
|
|
189
|
+
"aria-label": E,
|
|
190
|
+
"aria-multiselectable": a || void 0,
|
|
189
191
|
"aria-busy": C || void 0,
|
|
190
|
-
onKeyDown:
|
|
191
|
-
|
|
192
|
-
|
|
192
|
+
onKeyDown: (e) => {
|
|
193
|
+
Y(), me(e);
|
|
194
|
+
},
|
|
195
|
+
onPointerEnter: Y,
|
|
196
|
+
onPointerDown: Y,
|
|
197
|
+
onFocus: Y,
|
|
198
|
+
onWheel: Y,
|
|
199
|
+
className: e("relative flex flex-col outline-none", j && "overflow-hidden rounded-group bg-raised shadow-xs", ee),
|
|
200
|
+
children: [C && (K || G.length === 0) ? /* @__PURE__ */ y(ie, { density: f }) : K && w ? /* @__PURE__ */ y("div", {
|
|
193
201
|
role: "row",
|
|
194
202
|
children: /* @__PURE__ */ y("div", {
|
|
195
203
|
role: "gridcell",
|
|
196
204
|
children: w
|
|
197
205
|
})
|
|
198
|
-
}) :
|
|
199
|
-
count:
|
|
200
|
-
estimateSize:
|
|
201
|
-
getScrollElement: () => d(
|
|
206
|
+
}) : q && X ? /* @__PURE__ */ y(X, {
|
|
207
|
+
count: G.length,
|
|
208
|
+
estimateSize: J,
|
|
209
|
+
getScrollElement: () => d(H.current),
|
|
202
210
|
scrollTo: Z,
|
|
203
|
-
row: (e) => $(
|
|
204
|
-
measure:
|
|
205
|
-
}) :
|
|
206
|
-
count:
|
|
207
|
-
estimateSize:
|
|
208
|
-
row: (e) => $(
|
|
209
|
-
}) :
|
|
210
|
-
count:
|
|
211
|
-
onClear: () =>
|
|
211
|
+
row: (e) => $(G[e], e),
|
|
212
|
+
measure: W
|
|
213
|
+
}) : q ? /* @__PURE__ */ y(re, {
|
|
214
|
+
count: G.length,
|
|
215
|
+
estimateSize: J,
|
|
216
|
+
row: (e) => $(G[e], e)
|
|
217
|
+
}) : G.map($), a && he && S && /* @__PURE__ */ y(P, {
|
|
218
|
+
count: I.size,
|
|
219
|
+
onClear: () => L(/* @__PURE__ */ new Set()),
|
|
212
220
|
children: x
|
|
213
221
|
})]
|
|
214
222
|
});
|
|
215
223
|
});
|
|
216
|
-
process.env.NODE_ENV !== "production" && (
|
|
217
|
-
function
|
|
224
|
+
process.env.NODE_ENV !== "production" && (j.displayName = "List");
|
|
225
|
+
function re({ count: e, estimateSize: t, row: n }) {
|
|
218
226
|
let r = typeof window > "u" ? 1024 : window.innerHeight, i = [], a = 0, o = 12;
|
|
219
227
|
for (let s = 0; s < e; s++) {
|
|
220
228
|
if (a >= r && o-- <= 0) {
|
|
@@ -235,7 +243,7 @@ function ne({ count: e, estimateSize: t, row: n }) {
|
|
|
235
243
|
children: i
|
|
236
244
|
});
|
|
237
245
|
}
|
|
238
|
-
function
|
|
246
|
+
function ie({ density: t }) {
|
|
239
247
|
return /* @__PURE__ */ y("div", {
|
|
240
248
|
role: "presentation",
|
|
241
249
|
children: [
|
|
@@ -249,7 +257,7 @@ function re({ density: t }) {
|
|
|
249
257
|
role: "presentation",
|
|
250
258
|
className: "px-8",
|
|
251
259
|
children: /* @__PURE__ */ b("div", {
|
|
252
|
-
className: e("flex items-center gap-12 px-16",
|
|
260
|
+
className: e("flex items-center gap-12 px-16", E.density[t].classes),
|
|
253
261
|
children: [
|
|
254
262
|
/* @__PURE__ */ y(u, {
|
|
255
263
|
shape: "line",
|
|
@@ -266,8 +274,8 @@ function re({ density: t }) {
|
|
|
266
274
|
}, r))
|
|
267
275
|
});
|
|
268
276
|
}
|
|
269
|
-
var
|
|
270
|
-
let S = n(), C = r(), w = u && !!(t.meta || t.date),
|
|
277
|
+
var M = /* @__PURE__ */ f(function({ item: t, index: i, depth: a = 0, lastChild: o, idWidth: c, density: l = "default", narrow: u = !1, active: d, selected: f, selectable: p, selecting: m, onSelect: h, onOpen: g, onFocus: _, "data-force": v }, x) {
|
|
278
|
+
let S = n(), C = r(), w = u && !!(t.meta || t.date), T = (S || w) && !!t.subtitle;
|
|
271
279
|
return /* @__PURE__ */ y("div", {
|
|
272
280
|
role: "row",
|
|
273
281
|
className: S ? e("px-0", i !== void 0 && i > 0 && "hairline-t") : "px-8",
|
|
@@ -284,12 +292,12 @@ var N = /* @__PURE__ */ f(function({ item: t, index: i, depth: a = 0, lastChild:
|
|
|
284
292
|
e.currentTarget.contains(e.target) && !e.target.closest("button, a, [role=checkbox]") && (m && p ? h?.() : g?.());
|
|
285
293
|
},
|
|
286
294
|
...v ? { "data-force": v } : {},
|
|
287
|
-
className: e("group/row relative flex cursor-pointer items-center gap-12 px-16 text-body transition-control focus-ring-inset select-none", S ? "rounded-none" : "rounded-item", w ? "min-h-56 py-8" :
|
|
295
|
+
className: e("group/row relative flex cursor-pointer items-center gap-12 px-16 text-body transition-control focus-ring-inset select-none", S ? "rounded-none" : "rounded-item", w ? "min-h-56 py-8" : T ? "h-56" : S && l === "default" ? "h-48" : E.density[l].classes, "hover:bg-fill-1 hover:controls-on-fill", f && "bg-fill-2 controls-on-fill hover:bg-fill-2", t.disabled && "pointer-events-none text-fg-disabled"),
|
|
288
296
|
children: [
|
|
289
297
|
p && /* @__PURE__ */ y("span", {
|
|
290
298
|
className: e("flex shrink-0 transition-control", m || f ? "opacity-100" : "opacity-0 group-hover/row:opacity-100 group-focus-visible/row:opacity-100 coarse:opacity-100"),
|
|
291
299
|
onClick: (e) => e.stopPropagation(),
|
|
292
|
-
children: /* @__PURE__ */ y(
|
|
300
|
+
children: /* @__PURE__ */ y(ee, {
|
|
293
301
|
checked: !!f,
|
|
294
302
|
onToggle: () => h?.(),
|
|
295
303
|
"aria-label": C("list.selectItem", "Select {name}", { name: t.textValue ?? (typeof t.title == "string" ? t.title : t.id) })
|
|
@@ -309,23 +317,23 @@ var N = /* @__PURE__ */ f(function({ item: t, index: i, depth: a = 0, lastChild:
|
|
|
309
317
|
children: t.leading
|
|
310
318
|
}),
|
|
311
319
|
t.displayId && /* @__PURE__ */ y("span", {
|
|
312
|
-
className: e("shrink-0 truncate mono text-small text-fg-tertiary tabular", c &&
|
|
320
|
+
className: e("shrink-0 truncate mono text-small text-fg-tertiary tabular", c && O[c]),
|
|
313
321
|
children: t.displayId
|
|
314
322
|
}),
|
|
315
323
|
/* @__PURE__ */ b("span", {
|
|
316
324
|
className: e("flex min-w-0 flex-1", w ? "flex-col items-start gap-4" : "contents"),
|
|
317
325
|
children: [/* @__PURE__ */ b("span", {
|
|
318
|
-
className: e("flex min-w-0", w ? "w-full" : "flex-1",
|
|
326
|
+
className: e("flex min-w-0", w ? "w-full" : "flex-1", T ? "flex-col items-start gap-2" : "items-baseline gap-8"),
|
|
319
327
|
children: [typeof t.title == "string" ? /* @__PURE__ */ y(s, {
|
|
320
328
|
truncate: !0,
|
|
321
329
|
weight: "medium",
|
|
322
|
-
className: e("min-w-0 shrink",
|
|
330
|
+
className: e("min-w-0 shrink", T && "max-w-full"),
|
|
323
331
|
children: t.title
|
|
324
332
|
}) : /* @__PURE__ */ y("span", {
|
|
325
|
-
className: e("min-w-0 truncate font-medium text-fg",
|
|
333
|
+
className: e("min-w-0 truncate font-medium text-fg", T && "max-w-full"),
|
|
326
334
|
children: t.title
|
|
327
335
|
}), t.subtitle && /* @__PURE__ */ y("span", {
|
|
328
|
-
className: e("min-w-0 truncate text-fg-secondary",
|
|
336
|
+
className: e("min-w-0 truncate text-fg-secondary", T ? "max-w-full text-small" : "flex-1 basis-0"),
|
|
329
337
|
children: t.subtitle
|
|
330
338
|
})]
|
|
331
339
|
}), w && /* @__PURE__ */ b("span", {
|
|
@@ -365,8 +373,8 @@ var N = /* @__PURE__ */ f(function({ item: t, index: i, depth: a = 0, lastChild:
|
|
|
365
373
|
})
|
|
366
374
|
});
|
|
367
375
|
});
|
|
368
|
-
process.env.NODE_ENV !== "production" && (
|
|
369
|
-
var
|
|
376
|
+
process.env.NODE_ENV !== "production" && (M.displayName = "ListRow");
|
|
377
|
+
var N = /* @__PURE__ */ f(function({ title: t, glyph: i, count: a, collapsed: o, onToggle: s, onAdd: l, addLabel: u, indent: d, first: f, index: p, active: m, onFocus: h }, g) {
|
|
370
378
|
let _ = n(), v = r();
|
|
371
379
|
return /* @__PURE__ */ y("div", {
|
|
372
380
|
ref: g,
|
|
@@ -422,8 +430,8 @@ var P = /* @__PURE__ */ f(function({ title: t, glyph: i, count: a, collapsed: o,
|
|
|
422
430
|
})
|
|
423
431
|
});
|
|
424
432
|
});
|
|
425
|
-
process.env.NODE_ENV !== "production" && (
|
|
426
|
-
function
|
|
433
|
+
process.env.NODE_ENV !== "production" && (N.displayName = "GroupHeader");
|
|
434
|
+
function P({ count: e, onClear: n, children: a }) {
|
|
427
435
|
let o = t(), s = r();
|
|
428
436
|
return typeof document > "u" ? null : C(/* @__PURE__ */ y("div", {
|
|
429
437
|
role: "region",
|
|
@@ -455,8 +463,8 @@ function F({ count: e, onClear: n, children: a }) {
|
|
|
455
463
|
})
|
|
456
464
|
}), o ?? document.body);
|
|
457
465
|
}
|
|
458
|
-
process.env.NODE_ENV !== "production" && (
|
|
459
|
-
function
|
|
466
|
+
process.env.NODE_ENV !== "production" && (P.displayName = "SelectionBar");
|
|
467
|
+
function F({ children: t, onClick: n, icon: r, danger: a }) {
|
|
460
468
|
return /* @__PURE__ */ b("button", {
|
|
461
469
|
type: "button",
|
|
462
470
|
onClick: n,
|
|
@@ -468,8 +476,8 @@ function I({ children: t, onClick: n, icon: r, danger: a }) {
|
|
|
468
476
|
}), t]
|
|
469
477
|
});
|
|
470
478
|
}
|
|
471
|
-
process.env.NODE_ENV !== "production" && (
|
|
479
|
+
process.env.NODE_ENV !== "production" && (F.displayName = "SelectionAction");
|
|
472
480
|
//#endregion
|
|
473
|
-
export {
|
|
481
|
+
export { M as a, j as i, D as n, F as o, E as r, P as s, N as t };
|
|
474
482
|
|
|
475
|
-
//# sourceMappingURL=list-
|
|
483
|
+
//# sourceMappingURL=list-CzaiyNja.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-CzaiyNja.js","names":["__icon_Add01Icon","__icon_Cancel01Icon","cn","usePortalContainer","useUiText","Icon","lazyModule","useLazyModuleRetried","Text","IconButton","useLayoutWidth","Skeleton","scrollParent","checkbox","n","RowCheckbox","ariaLabel","mod","retry","over","setOver","useState","pressed","setPressed","useEffect","timer","release","onToggle","checked","virtualRows","KAESO_LIST_VARIANTS","KAESO_LIST_DEFAULT_VARIANTS","ID_W","NARROW","FOCUSABLE","TEXT_ENTRY","removeWidgetsFromTabOrder","line","root","primary","widget","List","selectedProp","forceRow","inset","useInset","selectedInner","setSelectedInner","selected","setSelected","useCallback","s","onSelectedChange","collapsed","setCollapsed","groups","g","active","setActive","anchor","setAnchor","useRef","width","narrow","flat","useMemo","rows","list","item","c","i","a","items","firstRow","f","none","virtual","virtualizeAbove","estimateSize","density","rowsModule","retryRows","VirtualRows","scrollTo","tabStop","focusLine","now","hadVirtualRows","useLayoutEffect","el","observer","toggle","id","enabledIds","lines","onKeyDown","target","index","onPrimary","row","selectable","moveTo","from","next","widgets","w","at","onOpen","selecting","render","GroupHeader","ListRow","ref","loading","className","LoadingRows","empty","FirstRows","selectionBar","SelectionBar","selectionActions","view","total","extra","count","j","force","card","t","stacked","onSelect","depth","lastChild","idWidth","first","indent","glyph","title","onAdd","Add01Icon","addLabel","container","createPortal","children","onClear","Cancel01Icon","SelectionAction","danger","icon"],"sources":["../../src/components/list/row-checkbox.tsx","../../src/components/list/list.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { lazyModule, useLazyModuleRetried } from \"../../utils/lazy-module.js\";\n\nconst checkbox = /* @__PURE__ */ lazyModule(() => import(\"../checkbox/checkbox.js\"), { base: () => import.meta.url });\n\nexport function RowCheckbox({ checked, onToggle, \"aria-label\": ariaLabel }: { checked: boolean; onToggle: () => void; \"aria-label\": string }) {\n const [mod, retry] = useLazyModuleRetried(checkbox, true);\n const [over, setOver] = useState(false);\n const [pressed, setPressed] = useState(false);\n useEffect(() => {\n if (!pressed) return;\n let timer: ReturnType<typeof setTimeout> | undefined;\n const release = () => {\n timer = setTimeout(() => setPressed(false));\n };\n window.addEventListener(\"pointerup\", release, true);\n window.addEventListener(\"pointercancel\", release, true);\n return () => {\n clearTimeout(timer);\n window.removeEventListener(\"pointerup\", release, true);\n window.removeEventListener(\"pointercancel\", release, true);\n };\n }, [pressed]);\n if (mod && !over && !pressed) return <mod.CheckboxBox checked={checked} onCheckedChange={onToggle} aria-label={ariaLabel} />;\n return (\n <span\n role=\"checkbox\"\n aria-checked={checked}\n aria-label={ariaLabel}\n onPointerEnter={() => {\n setOver(true);\n retry();\n }}\n onPointerLeave={() => setOver(false)}\n onPointerDown={() => setPressed(true)}\n onClick={() => {\n onToggle();\n setOver(false);\n setPressed(false);\n }}\n className=\"relative -m-3 inline-flex size-24 shrink-0 cursor-pointer items-center justify-center rounded-checkbox\"\n >\n <span aria-hidden className={cn(\"flex size-18 items-center justify-center rounded-checkbox\", checked ? \"bg-ink\" : \"bg-raised shadow-selector\")} />\n </span>\n );\n}\n","import { forwardRef, useCallback, useLayoutEffect, useMemo, useRef, useState, type KeyboardEvent, type MouseEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn.js\";\nimport { useInset } from \"../../utils/inset.js\";\nimport { Add01Icon as __icon_Add01Icon, Cancel01Icon as __icon_Cancel01Icon } from \"@hugeicons/core-free-icons\";\nimport { Icon, type IconData } from \"../icon/icon.js\";\nimport { IconButton } from \"../icon-button/icon-button.js\";\nimport { Text } from \"../text/text.js\";\nimport { Skeleton } from \"../skeleton/skeleton.js\";\nimport { scrollParent } from \"../../hooks/scroll-parent.js\";\nimport { useLayoutWidth } from \"../../hooks/use-layout-width.js\";\nimport { createPortal } from \"react-dom\";\nimport { usePortalContainer } from \"../../utils/portal-context.js\";\nimport { lazyModule, useLazyModuleRetried } from \"../../utils/lazy-module.js\";\nimport { RowCheckbox } from \"./row-checkbox.js\";\nimport { useUiText } from \"../../i18n/context.js\";\n\nconst virtualRows = /* @__PURE__ */ lazyModule(() => import(\"./virtual-rows.js\"), { base: () => import.meta.url });\n\nexport const KAESO_LIST_VARIANTS = {\n density: {\n default: { classes: \"h-44\" },\n compact: { classes: \"h-36\" },\n },\n} as const;\nexport const KAESO_LIST_DEFAULT_VARIANTS = { density: \"default\" } as const;\n\nexport interface ListItemData {\n id: string;\n title: ReactNode;\n textValue?: string | undefined;\n subtitle?: ReactNode | undefined;\n glyph?: ReactNode | undefined;\n leading?: ReactNode | undefined;\n displayId?: string | undefined;\n meta?: ReactNode | undefined;\n date?: ReactNode | undefined;\n avatar?: ReactNode | undefined;\n actions?: ReactNode | undefined;\n children?: ListItemData[] | undefined;\n disabled?: boolean | undefined;\n}\n\nexport interface ListGroup {\n id: string;\n title: ReactNode;\n glyph?: ReactNode | undefined;\n count?: number | undefined;\n items: ListItemData[];\n onAdd?: (() => void) | undefined;\n addLabel?: string | undefined;\n defaultCollapsed?: boolean | undefined;\n}\n\ntype Flat = { kind: \"header\"; group: ListGroup; key: string } | { kind: \"row\"; item: ListItemData; depth: 0 | 1; lastChild: boolean; key: string };\n\nexport interface ListProps {\n items?: ListItemData[] | undefined;\n groups?: ListGroup[] | undefined;\n onOpen?: ((item: ListItemData) => void) | undefined;\n selectable?: boolean | undefined;\n selected?: Set<string> | undefined;\n onSelectedChange?: ((selected: Set<string>) => void) | undefined;\n idWidth?: 48 | 64 | 80 | 96 | 120 | undefined;\n density?: keyof typeof KAESO_LIST_VARIANTS.density | undefined;\n virtualizeAbove?: number | undefined;\n selectionActions?: ReactNode | undefined;\n selectionBar?: boolean | undefined;\n loading?: boolean | undefined;\n empty?: ReactNode | undefined;\n \"aria-label\": string;\n className?: string | undefined;\n \"data-force-row\"?: string | undefined;\n}\n\nconst ID_W = { 48: \"w-48\", 64: \"w-64\", 80: \"w-80\", 96: \"w-96\", 120: \"w-120\" } as const;\n\nconst NARROW = 520;\nconst FOCUSABLE = \"a[href], button, input, select, textarea, [tabindex], [contenteditable=true]\";\nconst TEXT_ENTRY = \"input:not([type=checkbox]):not([type=radio]), textarea, select, [contenteditable=true]\";\n\nfunction removeWidgetsFromTabOrder(root: HTMLElement) {\n for (const line of root.querySelectorAll<HTMLElement>(\"[role=row]\")) {\n const primary = line.querySelector(\"[data-index]\");\n if (!primary) continue;\n for (const widget of line.querySelectorAll<HTMLElement>(FOCUSABLE)) {\n if (widget !== primary && widget.getAttribute(\"tabindex\") !== \"-1\") widget.setAttribute(\"tabindex\", \"-1\");\n }\n }\n}\n\nexport const List = /* @__PURE__ */ forwardRef<HTMLDivElement, ListProps>(function List(\n {\n items,\n groups,\n onOpen,\n selectable,\n selected: selectedProp,\n onSelectedChange,\n idWidth,\n density = \"default\",\n virtualizeAbove = 100,\n selectionActions,\n selectionBar = true,\n loading,\n empty,\n className,\n \"aria-label\": ariaLabel,\n \"data-force-row\": forceRow,\n },\n ref,\n) {\n const inset = useInset();\n const [selectedInner, setSelectedInner] = useState<Set<string>>(new Set());\n const selected = selectedProp ?? selectedInner;\n const setSelected = useCallback(\n (s: Set<string>) => {\n if (!selectedProp) setSelectedInner(s);\n onSelectedChange?.(s);\n },\n [selectedProp, onSelectedChange],\n );\n const [collapsed, setCollapsed] = useState<Set<string>>(() => new Set((groups ?? []).filter((g) => g.defaultCollapsed).map((g) => g.id)));\n const [active, setActive] = useState(-1);\n const [anchor, setAnchor] = useState<number | null>(null);\n const root = useRef<HTMLDivElement | null>(null);\n const width = useLayoutWidth(root);\n const narrow = !!width && width < NARROW;\n\n const flat = useMemo<Flat[]>(() => {\n const rows = (list: ListItemData[]): Flat[] =>\n list.flatMap((item) => [\n { kind: \"row\" as const, item, depth: 0 as const, lastChild: false, key: item.id },\n ...(item.children ?? []).map((c, i, a) => ({ kind: \"row\" as const, item: c, depth: 1 as const, lastChild: i === a.length - 1, key: c.id })),\n ]);\n if (groups) return groups.flatMap((g) => [{ kind: \"header\" as const, group: g, key: `h-${g.id}` }, ...(collapsed.has(g.id) ? [] : rows(g.items))]);\n return rows(items ?? []);\n }, [items, groups, collapsed]);\n const firstRow = flat.findIndex((f) => f.kind === \"row\");\n const none = groups ? groups.every((g) => g.items.length === 0) : (items ?? []).length === 0;\n\n const virtual = flat.length > virtualizeAbove;\n const estimateSize = (i: number) => (flat[i]?.kind === \"header\" ? (i === 0 ? 36 : 52) : narrow ? 64 : density === \"compact\" ? 36 : 44);\n const [rowsModule, retryRows] = useLazyModuleRetried(virtualRows, virtual);\n const VirtualRows = rowsModule?.VirtualRows;\n const scrollTo = useRef<((index: number) => void) | null>(null);\n\n if (active >= flat.length) setActive(-1);\n const tabStop = active >= 0 ? active : flat.length ? 0 : -1;\n const focusLine = (i: number) => {\n setActive(i);\n if (virtual) scrollTo.current?.(i);\n const line = () => root.current?.querySelector<HTMLElement>(`[data-index=\"${i}\"]`);\n const now = line();\n if (now) now.focus();\n else requestAnimationFrame(() => line()?.focus());\n };\n const hadVirtualRows = useRef(!!VirtualRows);\n useLayoutEffect(() => {\n if (VirtualRows && !hadVirtualRows.current && active >= 0 && document.activeElement === document.body) {\n root.current?.querySelector<HTMLElement>(`[data-index=\"${active}\"]`)?.focus();\n }\n hadVirtualRows.current = !!VirtualRows;\n });\n useLayoutEffect(() => {\n const el = root.current;\n if (!el) return;\n removeWidgetsFromTabOrder(el);\n const observer = new MutationObserver(() => removeWidgetsFromTabOrder(el));\n observer.observe(el, { subtree: true, childList: true, attributes: true, attributeFilter: [\"tabindex\"] });\n return () => observer.disconnect();\n }, []);\n const toggle = (id: string) => {\n const s = new Set(selected);\n if (s.has(id)) s.delete(id);\n else s.add(id);\n setSelected(s);\n };\n const enabledIds = (lines: Flat[]) => lines.flatMap((f) => (f.kind === \"row\" && !f.item.disabled ? [f.item.id] : []));\n const onKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (e.defaultPrevented || !e.currentTarget.contains(target) || target.closest(TEXT_ENTRY)) return;\n const line = target.closest<HTMLElement>(\"[role=row]\");\n const primary = line?.querySelector<HTMLElement>(\"[data-index]\");\n if (!line || !primary) return;\n const index = Number(primary.dataset.index);\n const onPrimary = target === primary;\n const f = flat[index];\n const row = f?.kind === \"row\" ? f.item : undefined;\n if (e.altKey) return;\n if (e.metaKey || e.ctrlKey) {\n if (e.key.toLowerCase() === \"a\" && selectable && !e.shiftKey) {\n e.preventDefault();\n setSelected(new Set(enabledIds(flat)));\n }\n return;\n }\n const moveTo = (next: number) => {\n e.preventDefault();\n if (e.shiftKey && selectable) {\n const from = anchor ?? index;\n setAnchor(from);\n const s = new Set(selected);\n enabledIds(flat.slice(Math.min(from, next), Math.max(from, next) + 1)).forEach((id) => s.add(id));\n setSelected(s);\n } else setAnchor(null);\n focusLine(next);\n };\n const widgets = () =>\n [...line.querySelectorAll<HTMLElement>(FOCUSABLE)].filter(\n (w) => w !== primary && !w.closest(\"[role=checkbox], [aria-hidden=true], [hidden]\") && !w.matches(\":disabled, input[type=checkbox]\"),\n );\n if (e.key === \"ArrowDown\" || (e.key === \"j\" && !e.shiftKey)) moveTo(Math.min(flat.length - 1, index + 1));\n else if (e.key === \"ArrowUp\" || (e.key === \"k\" && !e.shiftKey)) moveTo(Math.max(0, index - 1));\n else if (e.key === \"Home\") moveTo(0);\n else if (e.key === \"End\") moveTo(flat.length - 1);\n else if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n const list = widgets();\n const at = onPrimary ? -1 : list.indexOf(target);\n const next = e.key === \"ArrowRight\" ? list[at + 1] : at > 0 ? list[at - 1] : at === 0 ? primary : undefined;\n if (!next) return;\n e.preventDefault();\n next.focus();\n } else if (e.key === \"Escape\" && !onPrimary) {\n e.preventDefault();\n primary.focus();\n } else if (!onPrimary || !row || e.shiftKey) {\n return;\n } else if ((e.key === \" \" || e.key === \"x\") && selectable) {\n e.preventDefault();\n if (!row.disabled) toggle(row.id);\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (!row.disabled) onOpen?.(row);\n } else if (e.key === \"Escape\" && selectable && selected.size) {\n setSelected(new Set());\n }\n };\n const selecting = selected.size > 0;\n const render = (f: Flat, i: number) =>\n f.kind === \"header\" ? (\n <GroupHeader\n key={f.key}\n title={f.group.title}\n glyph={f.group.glyph}\n count={f.group.count ?? f.group.items.length}\n collapsed={collapsed.has(f.group.id)}\n onToggle={() => {\n const s = new Set(collapsed);\n if (s.has(f.group.id)) s.delete(f.group.id);\n else s.add(f.group.id);\n setCollapsed(s);\n }}\n onAdd={f.group.onAdd}\n addLabel={f.group.addLabel}\n indent={!!selectable}\n first={i === 0}\n index={i}\n active={i === tabStop}\n onFocus={() => setActive(i)}\n />\n ) : (\n <ListRow\n key={f.key}\n index={i}\n item={f.item}\n depth={f.depth}\n lastChild={f.lastChild}\n idWidth={idWidth}\n density={density}\n narrow={narrow}\n active={i === tabStop}\n selected={selected.has(f.item.id)}\n selectable={!!selectable}\n selecting={selecting}\n onSelect={() => toggle(f.item.id)}\n onOpen={() => onOpen?.(f.item)}\n onFocus={() => setActive(i)}\n {...(forceRow && i === firstRow ? { \"data-force\": forceRow } : {})}\n />\n );\n\n return (\n <div\n ref={(e) => {\n root.current = e;\n if (typeof ref === \"function\") ref(e);\n else if (ref) ref.current = e;\n }}\n role=\"grid\"\n aria-label={ariaLabel}\n aria-multiselectable={selectable || undefined}\n aria-busy={loading || undefined}\n onKeyDown={(e) => {\n retryRows();\n onKeyDown(e);\n }}\n onPointerEnter={retryRows}\n onPointerDown={retryRows}\n onFocus={retryRows}\n onWheel={retryRows}\n className={cn(\"relative flex flex-col outline-none\", inset && \"overflow-hidden rounded-group bg-raised shadow-xs\", className)}\n >\n {loading && (none || flat.length === 0) ? (\n <LoadingRows density={density} />\n ) : none && empty ? (\n <div role=\"row\">\n <div role=\"gridcell\">{empty}</div>\n </div>\n ) : virtual && VirtualRows ? (\n <VirtualRows\n count={flat.length}\n estimateSize={estimateSize}\n getScrollElement={() => scrollParent(root.current)}\n scrollTo={scrollTo}\n row={(i) => render(flat[i]!, i)}\n measure={narrow}\n />\n ) : virtual ? (\n <FirstRows count={flat.length} estimateSize={estimateSize} row={(i) => render(flat[i]!, i)} />\n ) : (\n flat.map(render)\n )}\n {selectable && selecting && selectionBar && (\n <SelectionBar count={selected.size} onClear={() => setSelected(new Set())}>\n {selectionActions}\n </SelectionBar>\n )}\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") List.displayName = \"List\";\n\nfunction FirstRows({ count, estimateSize, row }: { count: number; estimateSize: (index: number) => number; row: (index: number) => ReactNode }) {\n const view = typeof window === \"undefined\" ? 1024 : window.innerHeight;\n const rows: ReactNode[] = [];\n let total = 0;\n let extra = 12;\n for (let i = 0; i < count; i++) {\n if (total >= view && extra-- <= 0) {\n for (let j = i; j < count; j++) total += estimateSize(j);\n break;\n }\n rows.push(\n <div key={i} role=\"presentation\" className=\"absolute top-0 left-0 w-full\" style={{ transform: `translateY(${Math.round(total)}px)` }}>\n {row(i)}\n </div>,\n );\n total += estimateSize(i);\n }\n return (\n <div role=\"presentation\" className=\"relative w-full\" style={{ height: total }}>\n {rows}\n </div>\n );\n}\n\nfunction LoadingRows({ density }: { density: keyof typeof KAESO_LIST_VARIANTS.density }) {\n return (\n <div role=\"presentation\">\n {[62, 48, 70, 54, 40, 58].map((w, i) => (\n <div key={i} role=\"presentation\" className=\"px-8\">\n <div className={cn(\"flex items-center gap-12 px-16\", KAESO_LIST_VARIANTS.density[density].classes)}>\n <Skeleton shape=\"line\" className=\"min-w-0\" style={{ width: `${w}%` }} />\n <span className=\"flex-1\" />\n <Skeleton shape=\"line\" className=\"w-64 shrink-0\" />\n </div>\n </div>\n ))}\n </div>\n );\n}\n\nexport interface ListRowProps {\n item: ListItemData;\n index?: number | undefined;\n depth?: 0 | 1 | undefined;\n lastChild?: boolean | undefined;\n idWidth?: keyof typeof ID_W | undefined;\n density?: keyof typeof KAESO_LIST_VARIANTS.density | undefined;\n narrow?: boolean | undefined;\n active?: boolean | undefined;\n selected?: boolean | undefined;\n selectable?: boolean | undefined;\n selecting?: boolean | undefined;\n onSelect?: (() => void) | undefined;\n onOpen?: (() => void) | undefined;\n onFocus?: (() => void) | undefined;\n \"data-force\"?: string | undefined;\n}\n\nexport const ListRow = /* @__PURE__ */ forwardRef<HTMLDivElement, ListRowProps>(function ListRow(\n {\n item,\n index,\n depth = 0,\n lastChild,\n idWidth,\n density = \"default\",\n narrow = false,\n active,\n selected,\n selectable,\n selecting,\n onSelect,\n onOpen,\n onFocus,\n \"data-force\": force,\n },\n ref,\n) {\n const card = useInset();\n const t = useUiText();\n const lines = narrow && !!(item.meta || item.date);\n const stacked = (card || lines) && !!item.subtitle;\n return (\n <div role=\"row\" className={card ? cn(\"px-0\", index !== undefined && index > 0 && \"hairline-t\") : \"px-8\"}>\n <div\n ref={ref}\n role=\"gridcell\"\n aria-selected={selectable ? !!selected : undefined}\n aria-disabled={item.disabled || undefined}\n data-index={index}\n data-row=\"\"\n tabIndex={active === false ? -1 : 0}\n onFocus={onFocus}\n onClick={(e: MouseEvent<HTMLElement>) => {\n if (!e.currentTarget.contains(e.target as Node) || (e.target as HTMLElement).closest(\"button, a, [role=checkbox]\")) return;\n if (selecting && selectable) onSelect?.();\n else onOpen?.();\n }}\n {...(force ? { \"data-force\": force } : {})}\n className={cn(\n \"group/row relative flex cursor-pointer items-center gap-12 px-16 text-body transition-control focus-ring-inset select-none\",\n card ? \"rounded-none\" : \"rounded-item\",\n lines ? \"min-h-56 py-8\" : stacked ? \"h-56\" : card && density === \"default\" ? \"h-48\" : KAESO_LIST_VARIANTS.density[density].classes,\n \"hover:bg-fill-1 hover:controls-on-fill\",\n selected && \"bg-fill-2 controls-on-fill hover:bg-fill-2\",\n item.disabled && \"pointer-events-none text-fg-disabled\",\n )}\n >\n {selectable && (\n <span\n className={cn(\n \"flex shrink-0 transition-control\",\n selecting || selected ? \"opacity-100\" : \"opacity-0 group-hover/row:opacity-100 group-focus-visible/row:opacity-100 coarse:opacity-100\",\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <RowCheckbox\n checked={!!selected}\n onToggle={() => onSelect?.()}\n aria-label={t(\"list.selectItem\", \"Select {name}\", { name: item.textValue ?? (typeof item.title === \"string\" ? item.title : item.id) })}\n />\n </span>\n )}\n {depth === 1 && (\n <span aria-hidden className=\"relative -ml-4 h-full w-16 shrink-0\">\n <span className={cn(\"absolute left-6 w-1 bg-line-strong\", lastChild ? \"top-0 h-1/2\" : \"inset-y-0\")} />\n <span className=\"absolute top-1/2 left-6 h-1 w-10 bg-line-strong\" />\n </span>\n )}\n {item.glyph && <span className=\"flex size-16 shrink-0 items-center justify-center\">{item.glyph}</span>}\n {item.leading && <span className=\"-mr-4 flex shrink-0\">{item.leading}</span>}\n {item.displayId && <span className={cn(\"shrink-0 truncate mono text-small text-fg-tertiary tabular\", idWidth && ID_W[idWidth])}>{item.displayId}</span>}\n <span className={cn(\"flex min-w-0 flex-1\", lines ? \"flex-col items-start gap-4\" : \"contents\")}>\n <span className={cn(\"flex min-w-0\", lines ? \"w-full\" : \"flex-1\", stacked ? \"flex-col items-start gap-2\" : \"items-baseline gap-8\")}>\n {typeof item.title === \"string\" ? (\n <Text truncate weight=\"medium\" className={cn(\"min-w-0 shrink\", stacked && \"max-w-full\")}>\n {item.title}\n </Text>\n ) : (\n <span className={cn(\"min-w-0 truncate font-medium text-fg\", stacked && \"max-w-full\")}>{item.title}</span>\n )}\n {item.subtitle && (\n <span className={cn(\"min-w-0 truncate text-fg-secondary\", stacked ? \"max-w-full text-small\" : \"flex-1 basis-0\")}>{item.subtitle}</span>\n )}\n </span>\n {lines && (\n <span className=\"flex min-w-0 flex-wrap items-center gap-x-8 gap-y-4\">\n {item.meta && <span className=\"flex min-w-0 flex-wrap items-center gap-6\">{item.meta}</span>}\n {item.date && <span className=\"text-small whitespace-nowrap text-fg-secondary tabular\">{item.date}</span>}\n </span>\n )}\n </span>\n {lines && item.actions && <span className=\"flex shrink-0 items-center gap-2\">{item.actions}</span>}\n {!lines && (item.meta || item.actions) && (\n <span className=\"relative flex shrink-0 items-center gap-6\">\n <span className={cn(\"flex items-center gap-6\", item.actions && \"transition-control group-hover/row:opacity-0 group-focus-within/row:opacity-0\")}>\n {item.meta}\n </span>\n {item.actions && (\n <span\n className={cn(\n \"flex items-center gap-2 opacity-0 transition-control group-hover/row:opacity-100 group-focus-within/row:opacity-100 coarse:opacity-100\",\n item.meta && \"absolute inset-y-0 right-0 coarse:static\",\n )}\n >\n {item.actions}\n </span>\n )}\n </span>\n )}\n {!lines && item.date && <span className=\"min-w-80 shrink-0 text-right text-small whitespace-nowrap text-fg-secondary tabular\">{item.date}</span>}\n {item.avatar && <span className=\"flex shrink-0\">{item.avatar}</span>}\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") ListRow.displayName = \"ListRow\";\n\nexport interface GroupHeaderProps {\n title: ReactNode;\n glyph?: ReactNode | undefined;\n count?: number | undefined;\n collapsed?: boolean | undefined;\n onToggle?: (() => void) | undefined;\n onAdd?: (() => void) | undefined;\n addLabel?: string | undefined;\n indent?: boolean | undefined;\n first?: boolean | undefined;\n index?: number | undefined;\n active?: boolean | undefined;\n onFocus?: (() => void) | undefined;\n}\n\nexport const GroupHeader = /* @__PURE__ */ forwardRef<HTMLDivElement, GroupHeaderProps>(function GroupHeader(\n { title, glyph, count, collapsed, onToggle, onAdd, addLabel, indent, first, index, active, onFocus },\n ref,\n) {\n const card = useInset();\n const t = useUiText();\n return (\n <div ref={ref} role=\"row\" onFocus={onFocus} className={card ? cn(\"group/gh bg-fill-1\", !first && \"hairline-t\") : \"group/gh px-8 pt-16 first:pt-0\"}>\n <div role=\"gridcell\" className={cn(\"flex items-center gap-4 pr-8\", card ? \"h-36 pl-6\" : \"h-36\", !card && (indent ? \"pl-36\" : \"pl-6\"))}>\n <button\n type=\"button\"\n aria-expanded={!collapsed}\n data-index={index}\n tabIndex={active === false ? -1 : 0}\n onClick={onToggle}\n className=\"relative flex h-28 min-w-0 cursor-pointer items-center gap-8 rounded-pill px-10 text-small transition-control hover:bg-fill-1 focus-ring tap-target\"\n >\n {glyph && <span className=\"flex size-16 items-center justify-center\">{glyph}</span>}\n <span className=\"truncate font-medium text-fg-secondary\">{title}</span>\n {count !== undefined && <span className=\"text-fg-tertiary tabular\">{count}</span>}\n <svg viewBox=\"0 0 8 8\" aria-hidden className={cn(\"size-8 text-fg-tertiary transition-transform duration-180\", !collapsed && \"rotate-90\")}>\n <path d=\"M2.5 1.5 5.5 4l-3 2.5z\" fill=\"currentColor\" />\n </svg>\n </button>\n <span className=\"flex-1\" />\n {onAdd && (\n <span className=\"flex opacity-0 transition-control group-hover/gh:opacity-100 group-focus-within/gh:opacity-100 coarse:opacity-100\">\n <IconButton icon={__icon_Add01Icon} aria-label={addLabel ?? t(\"list.add\", \"Add\")} size=\"xs\" onClick={onAdd} />\n </span>\n )}\n </div>\n </div>\n );\n});\nif (process.env.NODE_ENV !== \"production\") GroupHeader.displayName = \"GroupHeader\";\n\nexport function SelectionBar({ count, onClear, children }: { count: number; onClear: () => void; children?: ReactNode | undefined }) {\n const container = usePortalContainer();\n const t = useUiText();\n if (typeof document === \"undefined\") return null;\n return createPortal(\n <div\n role=\"region\"\n aria-label={t(\"list.selection\", \"Selection\")}\n className=\"pointer-events-none fixed right-0 bottom-24 left-0 z-50 flex justify-center px-16\"\n >\n <div className=\"pointer-events-auto flex min-h-44 items-center gap-4 rounded-pill bg-toast py-6 pr-6 pl-16 text-body font-medium text-toast-fg shadow-toast popup-motion\">\n <span className=\"pr-8 tabular\">{t(\"list.selected\", \"{count} selected\", { count: String(count) })}</span>\n <span className=\"mr-4 h-20 w-1 bg-toast-action\" aria-hidden />\n {children}\n <button\n type=\"button\"\n onClick={onClear}\n aria-label={t(\"list.clearSelection\", \"Clear selection\")}\n className=\"inline-flex size-32 cursor-pointer items-center justify-center rounded-pill text-toast-fg-secondary transition-control hover:bg-toast-action hover:text-toast-fg focus-ring\"\n >\n <Icon icon={__icon_Cancel01Icon} size=\"sm\" />\n </button>\n </div>\n </div>,\n container ?? document.body,\n );\n}\nif (process.env.NODE_ENV !== \"production\") SelectionBar.displayName = \"SelectionBar\";\n\nexport function SelectionAction({\n children,\n onClick,\n icon,\n danger,\n}: {\n children: ReactNode;\n onClick?: (() => void) | undefined;\n icon?: IconData | undefined;\n danger?: boolean | undefined;\n}) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n \"inline-flex h-32 cursor-pointer items-center gap-6 rounded-pill px-12 text-body font-medium transition-control hover:bg-toast-action focus-ring\",\n danger ? \"text-toast-danger\" : \"text-toast-fg\",\n icon && \"pl-10\",\n )}\n >\n {icon && <Icon icon={icon} size=\"sm\" className={danger ? undefined : \"text-toast-fg-secondary\"} />}\n {children}\n </button>\n );\n}\nif (process.env.NODE_ENV !== \"production\") SelectionAction.displayName = \"SelectionAction\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAMa,IAA2B,wBAAiB,OAAO,yBAAA,CAAA,MAAA,MAAAC,EAAA,CAAA,GAA4B,EAAE,YAAY,YAAY,IAAI,CAAC;AAEpH,SAAgBC,GAAY,EAAE,YAAS,aAAU,cAAcC,KAA+E;CAC5I,IAAM,CAACC,GAAKC,KAASX,EAAqBM,GAAU,EAAI,GAClD,CAACM,GAAMC,KAAWC,EAAS,EAAK,GAChC,CAACC,GAASC,KAAcF,EAAS,EAAK;CAgB5C,OAfAG,QAAgB;EACd,IAAI,CAACF,GAAS;EACd,IAAIG,GACEC,UAAgB;GACpB,IAAQ,iBAAiBH,EAAW,EAAK,CAAC;EAC5C;EAGA,OAFA,OAAO,iBAAiB,aAAaG,GAAS,EAAI,GAClD,OAAO,iBAAiB,iBAAiBA,GAAS,EAAI,SACzC;GAGX,AAFA,aAAaD,CAAK,GAClB,OAAO,oBAAoB,aAAaC,GAAS,EAAI,GACrD,OAAO,oBAAoB,iBAAiBA,GAAS,EAAI;EAC3D;CACF,GAAG,CAACJ,CAAO,CAAC,GACRL,KAAO,CAACE,KAAQ,CAACG,IAAgB,kBAACL,EAAI,aAAL;EAA0B;EAAS,iBAAiBU;EAAU,cAAYX;CAAY,CAAA,IAEzH,kBAAC,QAAD;EACE,MAAK;EACL,gBAAcY;EACd,cAAYZ;EACZ,sBAAsB;GAEpB,AADAI,EAAQ,EAAI,GACZF,EAAM;EACR;EACA,sBAAsBE,EAAQ,EAAK;EACnC,qBAAqBG,EAAW,EAAI;EACpC,eAAe;GAGb,AAFAI,EAAS,GACTP,EAAQ,EAAK,GACbG,EAAW,EAAK;EAClB;EACA,WAAU;EAEV,UAAA,kBAAC,QAAD;GAAM,eAAA;GAAY,WAAWrB,EAAG,6DAA6D0B,IAAU,WAAW,2BAA2B;EAAI,CAAA;CAC7I,CAAA;AAEV;;;AC9BA,IAAMC,IAA8B,wBAAiB,OAAO,+BAAsB,EAAE,YAAY,YAAY,IAAI,CAAC,GAEpGC,IAAsB,EACjC,SAAS;CACP,SAAS,EAAE,SAAS,OAAO;CAC3B,SAAS,EAAE,SAAS,OAAO;AAC7B,EACF,GACaC,IAA8B,EAAE,SAAS,UAAU,GAkD1DC,IAAO;CAAE,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,IAAI;CAAQ,KAAK;AAAQ,GAEtEC,KAAS,KACTC,IAAY,gFACZC,KAAa;AAEnB,SAASC,EAA0B,GAAmB;CACpD,KAAK,IAAMC,KAAQC,EAAK,iBAA8B,YAAY,GAAG;EACnE,IAAMC,IAAUF,EAAK,cAAc,cAAc;EACjD,IAAKE,GACL,KAAK,IAAMC,KAAUH,EAAK,iBAA8BH,CAAS,GAC/D,AAAIM,MAAWD,KAAWC,EAAO,aAAa,UAAU,MAAM,QAAMA,EAAO,aAAa,YAAY,IAAI;CAE5G;AACF;AAEA,IAAaC,IAAuB,kBAAsC,SACxE,EACE,UACA,WACA,WACA,eACA,UAAUC,GACV,qBACA,YACA,aAAU,WACV,qBAAkB,KAClB,qBACA,kBAAe,IACf,YACA,UACA,eACA,cAAc1B,GACd,kBAAkB2B,KAEpB,GACA;CACA,IAAMC,IAAQC,EAAS,GACjB,CAACC,GAAeC,MAAoB1B,kBAAsB,IAAI,IAAI,CAAC,GACnE2B,IAAWN,KAAgBI,GAC3BG,IAAcC,GACjB,MAAmB;EAElB,AADKR,KAAcK,GAAiBI,CAAC,GACrCC,IAAmBD,CAAC;CACtB,GACA,CAACT,GAAcU,CAAgB,CACjC,GACM,CAACC,GAAWC,MAAgBjC,QAA4B,IAAI,KAAKkC,KAAU,CAAC,EAAA,CAAG,QAAQ,MAAMC,EAAE,gBAAgB,CAAC,CAAC,KAAK,MAAMA,EAAE,EAAE,CAAC,CAAC,GAClI,CAACC,GAAQC,KAAarC,EAAS,EAAE,GACjC,CAACsC,IAAQC,KAAavC,EAAwB,IAAI,GAClDiB,IAAOuB,EAA8B,IAAI,GACzCC,IAAQpD,EAAe4B,CAAI,GAC3ByB,IAAS,CAAC,CAACD,KAASA,IAAQ7B,IAE5B+B,IAAOC,QAAsB;EACjC,IAAMC,KAAQ,MACZC,EAAK,SAAS,MAAS,CACrB;GAAE,MAAM;GAAgB;GAAM,OAAO;GAAY,WAAW;GAAO,KAAKC,EAAK;EAAG,GAChF,IAAIA,EAAK,YAAY,CAAC,EAAA,CAAG,KAAK,GAAG,GAAG,OAAO;GAAE,MAAM;GAAgB,MAAMC;GAAG,OAAO;GAAY,WAAWC,MAAMC,EAAE,SAAS;GAAG,KAAKF,EAAE;EAAG,EAAE,CAC5I,CAAC;EAEH,OADId,IAAeA,EAAO,SAAS,MAAM,CAAC;GAAE,MAAM;GAAmB,OAAOC;GAAG,KAAK,KAAKA,EAAE;EAAK,GAAG,GAAIH,EAAU,IAAIG,EAAE,EAAE,IAAI,CAAC,IAAIU,EAAKV,EAAE,KAAK,CAAE,CAAC,IAC1IU,EAAKM,KAAS,CAAC,CAAC;CACzB,GAAG;EAACA;EAAOjB;EAAQF;CAAS,CAAC,GACvBoB,KAAWT,EAAK,WAAW,MAAMU,EAAE,SAAS,KAAK,GACjDC,IAAOpB,IAASA,EAAO,OAAO,MAAMC,EAAE,MAAM,WAAW,CAAC,KAAKgB,KAAS,CAAC,EAAA,CAAG,WAAW,GAErFI,IAAUZ,EAAK,SAASa,GACxBC,KAAgB,MAAed,EAAKM,EAAE,EAAE,SAAS,WAAYA,MAAM,IAAI,KAAK,KAAMP,IAAS,KAAKgB,MAAY,YAAY,KAAK,IAC7H,CAACC,IAAYC,KAAa1E,EAAqBsB,GAAa+C,CAAO,GACnEM,IAAcF,IAAY,aAC1BG,IAAWtB,EAAyC,IAAI;CAE9D,AAAIJ,KAAUO,EAAK,UAAQN,EAAU,EAAE;CACvC,IAAM0B,KAAU3B,KAAU,IAAIA,IAASO,EAAK,SAAS,IAAI,IACnDqB,MAAa,MAAc;EAE/B,AADA3B,EAAUY,CAAC,GACPM,KAASO,EAAS,UAAUb,CAAC;EACjC,IAAMjC,UAAaC,EAAK,SAAS,cAA2B,gBAAgBgC,EAAE,GAAG,GAC3EgB,IAAMjD,EAAK;EACjB,AAAIiD,IAAKA,EAAI,MAAM,IACd,4BAA4BjD,EAAK,CAAC,EAAE,MAAM,CAAC;CAClD,GACMkD,IAAiB1B,EAAO,CAAC,CAACqB,CAAW;CAO3C,AANAM,QAAsB;EAIpB,AAHIN,KAAe,CAACK,EAAe,WAAW9B,KAAU,KAAK,SAAS,kBAAkB,SAAS,QAC/FnB,EAAK,SAAS,cAA2B,gBAAgBmB,EAAO,GAAG,CAAC,EAAE,MAAM,GAE9E,EAAe,UAAU,CAAC,CAACyB;CAC7B,CAAC,GACDM,QAAsB;EACpB,IAAMC,IAAKnD,EAAK;EAChB,IAAI,CAACmD,GAAI;EACT,EAA0BA,CAAE;EAC5B,IAAMC,IAAW,IAAI,uBAAuBtD,EAA0BqD,CAAE,CAAC;EAEzE,OADAC,EAAS,QAAQD,GAAI;GAAE,SAAS;GAAM,WAAW;GAAM,YAAY;GAAM,iBAAiB,CAAC,UAAU;EAAE,CAAC,SAC3FC,EAAS,WAAW;CACnC,GAAG,CAAC,CAAC;CACL,IAAMC,MAAU,MAAe;EAC7B,IAAMxC,IAAI,IAAI,IAAIH,CAAQ;EAG1B,AAFIG,EAAE,IAAIyC,CAAE,IAAGzC,EAAE,OAAOyC,CAAE,IACrBzC,EAAE,IAAIyC,CAAE,GACb3C,EAAYE,CAAC;CACf,GACM0C,MAAc,MAAkBC,EAAM,SAAS,MAAOpB,EAAE,SAAS,SAAS,CAACA,EAAE,KAAK,WAAW,CAACA,EAAE,KAAK,EAAE,IAAI,CAAC,CAAE,GAC9GqB,MAAa,MAAqC;EACtD,IAAMC,IAAS,EAAE;EACjB,IAAI,EAAE,oBAAoB,CAAC,EAAE,cAAc,SAASA,CAAM,KAAKA,EAAO,QAAQ7D,EAAU,GAAG;EAC3F,IAAME,IAAO2D,EAAO,QAAqB,YAAY,GAC/CzD,IAAUF,GAAM,cAA2B,cAAc;EAC/D,IAAI,CAACA,KAAQ,CAACE,GAAS;EACvB,IAAM0D,IAAQ,OAAO1D,EAAQ,QAAQ,KAAK,GACpC2D,IAAYF,MAAWzD,GACvBmC,IAAIV,EAAKiC,IACTE,IAAMzB,GAAG,SAAS,QAAQA,EAAE,OAAO,KAAA;EACzC,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE,WAAW,EAAE,SAAS;GAC1B,AAAI,EAAE,IAAI,YAAY,MAAM,OAAO0B,KAAc,CAAC,EAAE,aAClD,EAAE,eAAe,GACjBnD,EAAY,IAAI,IAAI4C,GAAW7B,CAAI,CAAC,CAAC;GAEvC;EACF;EACA,IAAMqC,KAAU,MAAiB;GAE/B,IADA,EAAE,eAAe,GACb,EAAE,YAAYD,GAAY;IAC5B,IAAME,IAAO3C,MAAUsC;IACvB,EAAUK,CAAI;IACd,IAAMnD,IAAI,IAAI,IAAIH,CAAQ;IAE1B,AADA6C,GAAW7B,EAAK,MAAM,KAAK,IAAIsC,GAAMC,CAAI,GAAG,KAAK,IAAID,GAAMC,CAAI,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,MAAOpD,EAAE,IAAIyC,CAAE,CAAC,GAChG3C,EAAYE,CAAC;GACf,OAAO,EAAU,IAAI;GACrB,GAAUoD,CAAI;EAChB,GACMC,UACJ,CAAC,GAAGnE,EAAK,iBAA8BH,CAAS,CAAC,CAAC,CAAC,QAChD,MAAMuE,MAAMlE,KAAW,CAACkE,EAAE,QAAQ,+CAA+C,KAAK,CAACA,EAAE,QAAQ,iCAAiC,CACrI;EACF,IAAI,EAAE,QAAQ,eAAgB,EAAE,QAAQ,OAAO,CAAC,EAAE,UAAW,EAAO,KAAK,IAAIzC,EAAK,SAAS,GAAGiC,IAAQ,CAAC,CAAC;OACnG,IAAI,EAAE,QAAQ,aAAc,EAAE,QAAQ,OAAO,CAAC,EAAE,UAAW,EAAO,KAAK,IAAI,GAAGA,IAAQ,CAAC,CAAC;OACxF,IAAI,EAAE,QAAQ,QAAQ,EAAO,CAAC;OAC9B,IAAI,EAAE,QAAQ,OAAO,EAAOjC,EAAK,SAAS,CAAC;OAC3C,IAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aAAa;GACxD,IAAMG,IAAOqC,EAAQ,GACfE,IAAKR,IAAY,KAAK/B,EAAK,QAAQ6B,CAAM,GACzCO,IAAO,EAAE,QAAQ,eAAepC,EAAKuC,IAAK,KAAKA,IAAK,IAAIvC,EAAKuC,IAAK,KAAKA,MAAO,IAAInE,IAAU,KAAA;GAClG,IAAI,CAACgE,GAAM;GAEX,AADA,EAAE,eAAe,GACjBA,EAAK,MAAM;EACb,OAAO,IAAI,EAAE,QAAQ,YAAY,CAACL,GAEhC,AADA,EAAE,eAAe,GACjB3D,EAAQ,MAAM;OACT,IAAI,CAAC2D,KAAa,CAACC,KAAO,EAAE,UACjC;OACK,CAAK,EAAE,QAAQ,OAAO,EAAE,QAAQ,QAAQC,KAC7C,EAAE,eAAe,GACZD,EAAI,YAAUR,GAAOQ,EAAI,EAAE,KACvB,EAAE,QAAQ,WACnB,EAAE,eAAe,GACZA,EAAI,YAAUQ,IAASR,CAAG,KACtB,EAAE,QAAQ,YAAYC,KAAcpD,EAAS,QACtDC,kBAAY,IAAI,IAAI,CAAC;CAEzB,GACM2D,KAAY5D,EAAS,OAAO,GAC5B6D,KAAU,GAAS,MACvBnC,EAAE,SAAS,WACT,kBAACoC,GAAD;EAEE,OAAOpC,EAAE,MAAM;EACf,OAAOA,EAAE,MAAM;EACf,OAAOA,EAAE,MAAM,SAASA,EAAE,MAAM,MAAM;EACtC,WAAWrB,EAAU,IAAIqB,EAAE,MAAM,EAAE;EACnC,gBAAgB;GACd,IAAMvB,IAAI,IAAI,IAAIE,CAAS;GAG3B,AAFIF,EAAE,IAAIuB,EAAE,MAAM,EAAE,IAAGvB,EAAE,OAAOuB,EAAE,MAAM,EAAE,IACrCvB,EAAE,IAAIuB,EAAE,MAAM,EAAE,GACrBpB,GAAaH,CAAC;EAChB;EACA,OAAOuB,EAAE,MAAM;EACf,UAAUA,EAAE,MAAM;EAClB,QAAQ,CAAC,CAAC0B;EACV,OAAO9B,MAAM;EACb,OAAOA;EACP,QAAQA,MAAMc;EACd,eAAe1B,EAAUY,CAAC;CAC3B,GAlBMI,EAAE,GAkBR,IAED,kBAACqC,GAAD;EAEE,OAAOzC;EACP,MAAMI,EAAE;EACR,OAAOA,EAAE;EACT,WAAWA,EAAE;EACJ;EACA;EACD;EACR,QAAQJ,MAAMc;EACd,UAAUpC,EAAS,IAAI0B,EAAE,KAAK,EAAE;EAChC,YAAY,CAAC,CAAC0B;EACH;EACX,gBAAgBT,GAAOjB,EAAE,KAAK,EAAE;EAChC,cAAciC,IAASjC,EAAE,IAAI;EAC7B,eAAehB,EAAUY,CAAC;EAC1B,GAAK3B,KAAY2B,MAAMG,KAAW,EAAE,cAAc9B,EAAS,IAAI,CAAC;CACjE,GAhBM+B,EAAE,GAgBR;CAGL,OACE,kBAAC,OAAD;EACE,MAAM,MAAM;GAEV,AADA,EAAK,UAAU,GACX,OAAOsC,KAAQ,aAAYA,EAAI,CAAC,IAC3BA,MAAK,EAAI,UAAU;EAC9B;EACA,MAAK;EACL,cAAYhG;EACZ,wBAAsBoF,KAAc,KAAA;EACpC,aAAWa,KAAW,KAAA;EACtB,YAAY,MAAM;GAEhB,AADAhC,EAAU,GACVc,GAAU,CAAC;EACb;EACA,gBAAgBd;EAChB,eAAeA;EACf,SAASA;EACT,SAASA;EACT,WAAW/E,EAAG,uCAAuC0C,KAAS,qDAAqDsE,EAAS;EAlB9H,UAAA,CAoBGD,MAAYtC,KAAQX,EAAK,WAAW,KACnC,kBAACmD,IAAD,EAAsB,WAAU,CAAA,IAC9BxC,KAAQyC,IACV,kBAAC,OAAD;GAAK,MAAK;GACR,UAAA,kBAAC,OAAD;IAAK,MAAK;IAAY,UAAAA;GAAW,CAAA;EAC9B,CAAA,IACHxC,KAAWM,IACb,kBAACA,GAAD;GACE,OAAOlB,EAAK;GACE;GACd,wBAAwBpD,EAAa0B,EAAK,OAAO;GACvC;GACV,MAAM,MAAMuE,EAAO7C,EAAKM,IAAKA,CAAC;GAC9B,SAASP;EACV,CAAA,IACCa,IACF,kBAACyC,IAAD;GAAW,OAAOrD,EAAK;GAAsB;GAAc,MAAM,MAAM6C,EAAO7C,EAAKM,IAAKA,CAAC;EAAI,CAAA,IAE7FN,EAAK,IAAI6C,CAAM,GAEhBT,KAAcQ,MAAaU,KAC1B,kBAACC,GAAD;GAAc,OAAOvE,EAAS;GAAM,eAAeC,kBAAY,IAAI,IAAI,CAAC;GACrE,UAAAuE;EACW,CAAA,CAEb;;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAK,cAAc;AAE9D,SAASH,GAAU,EAAE,UAAO,iBAAc,UAAsG;CAC9I,IAAMI,IAAO,OAAO,SAAW,MAAc,OAAO,OAAO,aACrDvD,IAAoB,CAAC,GACvBwD,IAAQ,GACRC,IAAQ;CACZ,KAAK,IAAIrD,IAAI,GAAGA,IAAIsD,GAAO,KAAK;EAC9B,IAAIF,KAASD,KAAQ,OAAW,GAAG;GACjC,KAAK,IAAII,IAAIvD,GAAGuD,IAAID,GAAO,KAAK,KAAS9C,EAAa+C,CAAC;GACvD;EACF;EAMA,AALA3D,EAAK,KACH,kBAAC,OAAD;GAAa,MAAK;GAAe,WAAU;GAA+B,OAAO,EAAE,WAAW,cAAc,KAAK,MAAMwD,CAAK,EAAE,KAAK;GAChI,UAAAvB,EAAI7B,CAAC;EACH,GAFKA,CAEL,CACP,GACA,KAASQ,EAAaR,CAAC;CACzB;CACA,OACE,kBAAC,OAAD;EAAK,MAAK;EAAe,WAAU;EAAkB,OAAO,EAAE,QAAQoD,EAAM;EACzE,UAAAxD;CACE,CAAA;AAET;AAEA,SAASiD,GAAY,EAAE,cAAkE;CACvF,OACE,kBAAC,OAAD;EAAK,MAAK;EACP,UAAA;GAAC;GAAI;GAAI;GAAI;GAAI;GAAI;EAAE,CAAC,CAAC,KAAK,GAAG,MAChC,kBAAC,OAAD;GAAa,MAAK;GAAe,WAAU;GACzC,UAAA,kBAAC,OAAD;IAAK,WAAWjH,EAAG,kCAAkC4B,EAAoB,QAAQiD,EAAQ,CAAC,OAAO;IAAjG,UAAA;KACE,kBAACpE,GAAD;MAAU,OAAM;MAAO,WAAU;MAAU,OAAO,EAAE,OAAO,GAAG8F,EAAE,GAAG;KAAI,CAAA;KACvE,kBAAC,QAAD,EAAM,WAAU,SAAU,CAAA;KAC1B,kBAAC9F,GAAD;MAAU,OAAM;MAAO,WAAU;KAAiB,CAAA;IAC/C;;EACF,GANK2D,CAML,CACN;CACE,CAAA;AAET;AAoBA,IAAayC,IAA0B,kBAAyC,SAC9E,EACE,SACA,UACA,WAAQ,GACR,cACA,YACA,aAAU,WACV,YAAS,IACT,WACA,aACA,eACA,cACA,aACA,WACA,YACA,cAAce,KAEhB,GACA;CACA,IAAMC,IAAOlF,EAAS,GAChBmF,IAAI5H,EAAU,GACd0F,IAAQ/B,KAAU,CAAC,EAAEK,EAAK,QAAQA,EAAK,OACvC6D,KAAWF,KAAQjC,MAAU,CAAC,CAAC1B,EAAK;CAC1C,OACE,kBAAC,OAAD;EAAK,MAAK;EAAM,WAAW2D,IAAO7H,EAAG,QAAQ+F,MAAU,KAAA,KAAaA,IAAQ,KAAK,YAAY,IAAI;EAC/F,UAAA,kBAAC,OAAD;GACO;GACL,MAAK;GACL,iBAAeG,IAAa,CAAC,CAACpD,IAAW,KAAA;GACzC,iBAAeoB,EAAK,YAAY,KAAA;GAChC,cAAY6B;GACZ,YAAS;GACT,UAAUxC,MAAW,KAAQ,KAAK;GACzB;GACT,UAAU,MAA+B;IACvC,AAAK,EAAE,cAAc,SAAS,EAAE,MAAc,KAAM,GAAE,OAAuB,QAAQ,4BAA4B,MAC7GmD,KAAaR,IAAY8B,IAAW,IACnCvB,IAAS;GAChB;GACA,GAAKmB,IAAQ,EAAE,cAAcA,EAAM,IAAI,CAAC;GACxC,WAAW5H,EACT,8HACA6H,IAAO,iBAAiB,gBACxBjC,IAAQ,kBAAkBmC,IAAU,SAASF,KAAQhD,MAAY,YAAY,SAASjD,EAAoB,QAAQiD,EAAQ,CAAC,SAC3H,0CACA/B,KAAY,8CACZoB,EAAK,YAAY,sCACnB;GAtBF,UAAA;IAwBGgC,KACC,kBAAC,QAAD;KACE,WAAWlG,EACT,oCACA0G,KAAa5D,IAAW,gBAAgB,8FAC1C;KACA,UAAU,MAAM,EAAE,gBAAgB;KAElC,UAAA,kBAACjC,IAAD;MACE,SAAS,CAAC,CAACiC;MACX,gBAAgBkF,IAAW;MAC3B,cAAYF,EAAE,mBAAmB,iBAAiB,EAAE,MAAM5D,EAAK,cAAc,OAAOA,EAAK,SAAU,WAAWA,EAAK,QAAQA,EAAK,IAAI,CAAC;KACtI,CAAA;IACG,CAAA;IAEP+D,MAAU,KACT,kBAAC,QAAD;KAAM,eAAA;KAAY,WAAU;KAA5B,UAAA,CACE,kBAAC,QAAD,EAAM,WAAWjI,EAAG,sCAAsCkI,IAAY,gBAAgB,WAAW,EAAI,CAAA,GACrG,kBAAC,QAAD,EAAM,WAAU,kDAAmD,CAAA,CAC/D;;IAEPhE,EAAK,SAAS,kBAAC,QAAD;KAAM,WAAU;KAAqD,UAAAA,EAAK;IAAY,CAAA;IACpGA,EAAK,WAAW,kBAAC,QAAD;KAAM,WAAU;KAAuB,UAAAA,EAAK;IAAc,CAAA;IAC1EA,EAAK,aAAa,kBAAC,QAAD;KAAM,WAAWlE,EAAG,8DAA8DmI,KAAWrG,EAAKqG,EAAQ;KAAI,UAAAjE,EAAK;IAAgB,CAAA;IACtJ,kBAAC,QAAD;KAAM,WAAWlE,EAAG,uBAAuB4F,IAAQ,+BAA+B,UAAU;KAA5F,UAAA,CACE,kBAAC,QAAD;MAAM,WAAW5F,EAAG,gBAAgB4F,IAAQ,WAAW,UAAUmC,IAAU,+BAA+B,sBAAsB;MAAhI,UAAA,CACG,OAAO7D,EAAK,SAAU,WACrB,kBAAC5D,GAAD;OAAM,UAAA;OAAS,QAAO;OAAS,WAAWN,EAAG,kBAAkB+H,KAAW,YAAY;OACnF,UAAA7D,EAAK;MACF,CAAA,IAEN,kBAAC,QAAD;OAAM,WAAWlE,EAAG,wCAAwC+H,KAAW,YAAY;OAAI,UAAA7D,EAAK;MAAY,CAAA,GAEzGA,EAAK,YACJ,kBAAC,QAAD;OAAM,WAAWlE,EAAG,sCAAsC+H,IAAU,0BAA0B,gBAAgB;OAAI,UAAA7D,EAAK;MAAe,CAAA,CAEpI;KACL,CAAA,GAAA0B,KACC,kBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CACG1B,EAAK,QAAQ,kBAAC,QAAD;OAAM,WAAU;OAA6C,UAAAA,EAAK;MAAW,CAAA,GAC1FA,EAAK,QAAQ,kBAAC,QAAD;OAAM,WAAU;OAA0D,UAAAA,EAAK;MAAW,CAAA,CACpG;KAEJ,CAAA,CAAA;;IACL0B,KAAS1B,EAAK,WAAW,kBAAC,QAAD;KAAM,WAAU;KAAoC,UAAAA,EAAK;IAAc,CAAA;IAChG,CAAC0B,MAAU1B,EAAK,QAAQA,EAAK,YAC5B,kBAAC,QAAD;KAAM,WAAU;KAAhB,UAAA,CACE,kBAAC,QAAD;MAAM,WAAWlE,EAAG,2BAA2BkE,EAAK,WAAW,+EAA+E;MAC3I,UAAAA,EAAK;KACF,CAAA,GACLA,EAAK,WACJ,kBAAC,QAAD;MACE,WAAWlE,EACT,0IACAkE,EAAK,QAAQ,0CACf;MAEC,UAAAA,EAAK;KACF,CAAA,CAEJ;;IAEP,CAAC0B,KAAS1B,EAAK,QAAQ,kBAAC,QAAD;KAAM,WAAU;KAAuF,UAAAA,EAAK;IAAW,CAAA;IAC9IA,EAAK,UAAU,kBAAC,QAAD;KAAM,WAAU;KAAiB,UAAAA,EAAK;IAAa,CAAA;GAChE;;CACF,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAQ,cAAc;AAiBjE,IAAa0C,IAA8B,kBAA6C,SACtF,EAAE,UAAO,UAAO,UAAO,cAAW,aAAU,UAAO,aAAU,WAAQ,UAAO,UAAO,WAAQ,cAC3F,GACA;CACA,IAAMiB,IAAOlF,EAAS,GAChBmF,IAAI5H,EAAU;CACpB,OACE,kBAAC,OAAD;EAAU;EAAK,MAAK;EAAe;EAAS,WAAW2H,IAAO7H,EAAG,sBAAsB,CAACoI,KAAS,YAAY,IAAI;EAC/G,UAAA,kBAAC,OAAD;GAAK,MAAK;GAAW,WAAWpI,EAAG,gCAAgC6H,IAAO,cAAc,QAAQ,CAACA,MAASQ,IAAS,UAAU,OAAO;GAApI,UAAA;IACE,kBAAC,UAAD;KACE,MAAK;KACL,iBAAe,CAAClF;KAChB,cAAY4C;KACZ,UAAUxC,MAAW,KAAQ,KAAK;KAClC,SAAS9B;KACT,WAAU;KANZ,UAAA;MAQG6G,KAAS,kBAAC,QAAD;OAAM,WAAU;OAA4C,UAAAA;MAAY,CAAA;MAClF,kBAAC,QAAD;OAAM,WAAU;OAA0C,UAAAC;MAAY,CAAA;MACrEb,MAAU,KAAA,KAAa,kBAAC,QAAD;OAAM,WAAU;OAA4B,UAAAA;MAAY,CAAA;MAChF,kBAAC,OAAD;OAAK,SAAQ;OAAU,eAAA;OAAY,WAAW1H,EAAG,6DAA6D,CAACmD,KAAa,WAAW;OACrI,UAAA,kBAAC,QAAD;QAAM,GAAE;QAAyB,MAAK;OAAgB,CAAA;MACnD,CAAA;KACC;;IACR,kBAAC,QAAD,EAAM,WAAU,SAAU,CAAA;IACzBqF,KACC,kBAAC,QAAD;KAAM,WAAU;KACd,UAAA,kBAACjI,GAAD;MAAY,MAAMT;MAAkB,cAAY4I,KAAYZ,EAAE,YAAY,KAAK;MAAG,MAAK;MAAK,SAASU;KAAQ,CAAA;IACzG,CAAA;GAEL;;CACF,CAAA;AAET,CAAC;AACD,QAAA,IAAA,aAA6B,iBAAc,EAAY,cAAc;AAErE,SAAgBnB,EAAa,EAAE,UAAO,YAAS,eAAsF;CACnI,IAAMsB,IAAY1I,EAAmB,GAC/B6H,IAAI5H,EAAU;CAEpB,OADI,OAAO,WAAa,MAAoB,OACrC0I,EACL,kBAAC,OAAD;EACE,MAAK;EACL,cAAYd,EAAE,kBAAkB,WAAW;EAC3C,WAAU;EAEV,UAAA,kBAAC,OAAD;GAAK,WAAU;GAAf,UAAA;IACE,kBAAC,QAAD;KAAM,WAAU;KAAgB,UAAAA,EAAE,iBAAiB,oBAAoB,EAAE,OAAO,OAAOJ,CAAK,EAAE,CAAC;IAAQ,CAAA;IACvG,kBAAC,QAAD;KAAM,WAAU;KAAgC,eAAA;IAAa,CAAA;IAC5DmB;IACD,kBAAC,UAAD;KACE,MAAK;KACL,SAASC;KACT,cAAYhB,EAAE,uBAAuB,iBAAiB;KACtD,WAAU;KAEV,UAAA,kBAAC3H,GAAD;MAAM,MAAMJ;MAAqB,MAAK;KAAM,CAAA;IACtC,CAAA;GACL;;CACF,CAAA,GACL4I,KAAa,SAAS,IACxB;AACF;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAa,cAAc;AAEtE,SAAgBK,EAAgB,EAC9B,aACA,YACA,SACA,aAMC;CACD,OACE,kBAAC,UAAD;EACE,MAAK;EACI;EACT,WAAWhJ,EACT,mJACAiJ,IAAS,sBAAsB,iBAC/BC,KAAQ,OACV;EAPF,UAAA,CASGA,KAAQ,kBAAC/I,GAAD;GAAY;GAAM,MAAK;GAAK,WAAW8I,IAAS,KAAA,IAAY;EAA4B,CAAA,GAChGJ,CACK;;AAEZ;AACA,QAAA,IAAA,aAA6B,iBAAc,EAAgB,cAAc"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { l as e } from "./styles-Btvg2DCf.js";
|
|
3
3
|
import { t } from "./cn-CidVUKMm.js";
|
|
4
4
|
import { i as n } from "./context-BELWW79w.js";
|
|
5
|
-
import { r } from "./text
|
|
6
|
-
import { r as i } from "./link-
|
|
7
|
-
import { t as a } from "./code-
|
|
5
|
+
import { r } from "./text--5MKh2G4.js";
|
|
6
|
+
import { r as i } from "./link-vz9aV8WX.js";
|
|
7
|
+
import { t as a } from "./code-BADhvsgC.js";
|
|
8
8
|
import { r as o } from "./separator-D5AzVFTS.js";
|
|
9
|
-
import { n as s } from "./button-
|
|
10
|
-
import { t as c } from "./code-block-
|
|
9
|
+
import { n as s } from "./button-DQvoOxVQ.js";
|
|
10
|
+
import { t as c } from "./code-block-DxtladFW.js";
|
|
11
11
|
import { r as l } from "./table-DYKa86af.js";
|
|
12
12
|
import { t as u } from "./safe-href-G5DBNVwm.js";
|
|
13
13
|
import { forwardRef as d, memo as f, useMemo as p, useState as m } from "react";
|
|
@@ -310,4 +310,4 @@ process.env.NODE_ENV !== "production" && (I.displayName = "Markdown");
|
|
|
310
310
|
//#endregion
|
|
311
311
|
export { D as a, T as i, x as n, b as o, I as r, E as s, S as t };
|
|
312
312
|
|
|
313
|
-
//# sourceMappingURL=markdown-
|
|
313
|
+
//# sourceMappingURL=markdown-5NyaHHfN.js.map
|