@plumile/ui 0.1.63 → 0.1.64

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.
@@ -1,4 +1,5 @@
1
1
  /* empty css */
2
+ /* empty css */
2
3
  /* empty css */
3
4
  //#region src/atomic/molecules/markdown/components/MarkdownArticleContainer.css.ts
4
5
  var e = "_7ez1431 _7ez1430 txvbqb9io txvbqbai6 txvbqbaoo";
@@ -1,5 +1,4 @@
1
1
  /* empty css */
2
- /* empty css */
3
2
  /* empty css */
4
3
  //#region src/atomic/molecules/markdown/components/MarkdownFootnoteReference.css.ts
5
4
  var e = "_1p5id9v1 _1p5id9v0 txvbqb8o txvbqb9jf txvbqbamo txvbqb7s";
@@ -0,0 +1,191 @@
1
+ import { cx as e } from "../../../theme/tools.js";
2
+ import { useUiTranslation as t } from "../../../i18n/useUiTranslation.js";
3
+ import { SidebarContainer as n } from "./SidebarContainer.js";
4
+ import { ChevronLeftIcon as r, ChevronRightIcon as i } from "./icons.js";
5
+ import { childIcon as a, childLabel as o, childLinkRecipe as s, collapseButton as c, collapseButtonLabel as l, collapseButtonStateRecipe as u, collapsibleContent as d, collapsibleItem as f, collapsibleSection as p, collapsibleStateRecipe as m, iconBaseLayer as h, iconHiddenOnHover as g, iconVisibleOnHover as _, iconWrapper as v, itemWrapper as y, label as b, navButton as x, navGapRecipe as ee, navLinkRecipe as S, navWithTrailingAction as C, trailingActionButton as w, trailingActionIconHidden as T, trailingActionIconVisible as E, trailingActionIconWrapper as D, trailingIconWrapper as te } from "./navigationSidebar.css.js";
6
+ import { Fragment as O, jsx as k, jsxs as A } from "react/jsx-runtime";
7
+ import { useCallback as j, useMemo as M, useState as N } from "react";
8
+ import { Link as P, useLocation as F } from "@plumile/router";
9
+ //#region src/atomic/organisms/sidebar/NavigationSidebar.tsx
10
+ var I = ({ id: t, isExpanded: n, children: r }) => {
11
+ let i = "collapsed";
12
+ return n && (i = "expanded"), /* @__PURE__ */ k("div", {
13
+ id: t,
14
+ "aria-hidden": !n,
15
+ className: e(p, m({ state: i })),
16
+ children: /* @__PURE__ */ k("div", {
17
+ className: d,
18
+ children: r
19
+ })
20
+ });
21
+ }, L = ({ items: d, headerSlot: p, isCollapsed: m, onCollapsedChange: L, showCollapseToggle: R = !0 }) => {
22
+ let { t: z } = t(), [B, V] = N(!1), [H, U] = N({}), W = m != null, G = m ?? B, { pathname: K } = F(), q = (e, t) => t === !0 ? K === e : K === e ? !0 : K.startsWith(`${e}/`), J = j((e, t) => {
23
+ U((n) => ({
24
+ ...n,
25
+ [e]: t
26
+ }));
27
+ }, []), Y = j(() => {
28
+ let e = !G;
29
+ W || V(e), L?.(e);
30
+ }, [
31
+ G,
32
+ W,
33
+ L
34
+ ]), X;
35
+ G || (X = p ?? void 0);
36
+ let Z = M(() => {
37
+ if (!R) return null;
38
+ let t = r, n = z("navigation.sidebar.actions.collapseAriaLabel");
39
+ G && (t = i, n = z("navigation.sidebar.actions.expandAriaLabel"));
40
+ let a = "expanded";
41
+ G && (a = "collapsed");
42
+ let o = null;
43
+ return G || (o = /* @__PURE__ */ k("span", {
44
+ className: l,
45
+ children: z("navigation.sidebar.actions.collapse")
46
+ })), /* @__PURE__ */ A("button", {
47
+ type: "button",
48
+ onClick: Y,
49
+ className: e(c, u({ state: a })),
50
+ "aria-label": n,
51
+ children: [/* @__PURE__ */ k(t, { size: 20 }), o]
52
+ });
53
+ }, [
54
+ Y,
55
+ G,
56
+ R,
57
+ z
58
+ ]);
59
+ return /* @__PURE__ */ k(n, {
60
+ headerSlot: X,
61
+ footerSlot: Z,
62
+ isCollapsed: G,
63
+ showDefaultHeaderAction: !1,
64
+ children: d.map((t) => {
65
+ let n = t.childItems ?? null, r = n != null && n.length > 0, i = H[t.key] ?? t.defaultExpanded ?? !1, c = !i, l, u = !G && r;
66
+ u && (l = `navigation-sidebar-${t.key}-children`), r && n.some((e) => q(e.to)) && (i = !0);
67
+ let d = null;
68
+ !G && t.trailingAction != null && (d = t.trailingAction);
69
+ let p = d != null, m = t.hoverIcon !== void 0 && t.hoverIcon !== null, j = t.trailingIcon !== void 0 && t.trailingIcon !== null, M = t.trailingHoverIcon !== void 0 && t.trailingHoverIcon !== null, N = !G && !p && (j || M), F;
70
+ G && (F = t.label);
71
+ let L = "expanded";
72
+ G && (L = "collapsed");
73
+ let R = ee({ state: L }), z;
74
+ p && (z = C);
75
+ let B = null;
76
+ G || (B = /* @__PURE__ */ k("span", {
77
+ className: b,
78
+ children: t.label
79
+ }));
80
+ let V = null;
81
+ m && (V = /* @__PURE__ */ k("span", {
82
+ className: _,
83
+ children: t.hoverIcon
84
+ }));
85
+ let U = /* @__PURE__ */ A("span", {
86
+ className: v,
87
+ children: [/* @__PURE__ */ k("span", {
88
+ className: e(h, { [g]: m }),
89
+ children: t.icon
90
+ }), V]
91
+ }), W = null;
92
+ if (N) {
93
+ let n = null;
94
+ j && (n = /* @__PURE__ */ k("span", {
95
+ className: e(h, { [g]: M }),
96
+ children: t.trailingIcon
97
+ }));
98
+ let r = null;
99
+ M && (r = /* @__PURE__ */ k("span", {
100
+ className: _,
101
+ children: t.trailingHoverIcon
102
+ })), W = /* @__PURE__ */ A("span", {
103
+ className: te,
104
+ children: [n, r]
105
+ });
106
+ }
107
+ let K = /* @__PURE__ */ A(O, { children: [
108
+ U,
109
+ B,
110
+ W
111
+ ] }), Y = () => {
112
+ !r || G || J(t.key, c);
113
+ }, X;
114
+ if (r) X = e(x, R, z);
115
+ else {
116
+ let n = "default";
117
+ q(t.to, t.exact) && (n = "active"), X = e(S({ state: n }), R, z);
118
+ }
119
+ let Z;
120
+ Z = r ? /* @__PURE__ */ k("button", {
121
+ type: "button",
122
+ className: X,
123
+ "aria-expanded": i,
124
+ "aria-controls": l,
125
+ "aria-label": F,
126
+ onClick: Y,
127
+ children: K
128
+ }) : /* @__PURE__ */ k(P, {
129
+ to: t.to,
130
+ className: X,
131
+ exact: t.exact,
132
+ "aria-label": F,
133
+ children: K
134
+ });
135
+ let Q = null;
136
+ if (d != null) {
137
+ let e = (e) => {
138
+ e.preventDefault(), e.stopPropagation(), d.onClick();
139
+ }, t = d.hoverIcon, n = t != null, r = null;
140
+ n && (r = /* @__PURE__ */ k("span", {
141
+ className: E,
142
+ children: t
143
+ })), Q = /* @__PURE__ */ k("button", {
144
+ type: "button",
145
+ "aria-label": d.label,
146
+ onClick: e,
147
+ className: w,
148
+ children: /* @__PURE__ */ A("span", {
149
+ className: D,
150
+ children: [/* @__PURE__ */ k("span", {
151
+ className: T,
152
+ children: d.icon
153
+ }), r]
154
+ })
155
+ });
156
+ }
157
+ let $ = null;
158
+ return u && l != null && ($ = /* @__PURE__ */ k(I, {
159
+ id: l,
160
+ isExpanded: i,
161
+ children: n.map((e) => {
162
+ let t = null;
163
+ e.icon != null && (t = /* @__PURE__ */ k("span", {
164
+ className: a,
165
+ children: e.icon
166
+ }));
167
+ let n = "default";
168
+ return q(e.to) && (n = "active"), /* @__PURE__ */ k("div", {
169
+ className: f,
170
+ children: /* @__PURE__ */ A(P, {
171
+ to: e.to,
172
+ className: s({ state: n }),
173
+ "aria-label": e.label,
174
+ children: [t, /* @__PURE__ */ k("span", {
175
+ className: o,
176
+ children: e.label
177
+ })]
178
+ })
179
+ }, e.key);
180
+ })
181
+ })), /* @__PURE__ */ A("div", { children: [/* @__PURE__ */ A("div", {
182
+ className: y,
183
+ children: [Z, Q]
184
+ }), $] }, t.key);
185
+ })
186
+ });
187
+ };
188
+ //#endregion
189
+ export { L as NavigationSidebar };
190
+
191
+ //# sourceMappingURL=NavigationSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationSidebar.js","names":[],"sources":["../../../../../src/atomic/organisms/sidebar/NavigationSidebar.tsx"],"sourcesContent":["import {\n type JSX,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport { Link, useLocation } from '@plumile/router';\nimport type { RecipeVariants } from '@vanilla-extract/recipes';\n\nimport { useUiTranslation } from '../../../i18n/useUiTranslation.js';\nimport { cx } from '../../../theme/tools.js';\nimport { ChevronLeftIcon, ChevronRightIcon } from './icons.js';\nimport * as styles from './navigationSidebar.css.js';\nimport { SidebarContainer } from './SidebarContainer.js';\n\ntype SidebarItemTrailingAction = {\n icon: ReactNode;\n hoverIcon?: ReactNode;\n label: string;\n onClick: () => void;\n};\n\ntype SidebarItem = {\n key: string;\n to: string;\n label: string;\n icon: ReactNode;\n exact?: boolean;\n hoverIcon?: ReactNode;\n trailingIcon?: ReactNode;\n trailingHoverIcon?: ReactNode;\n trailingAction?: SidebarItemTrailingAction;\n childItems?: SidebarChildItem[];\n defaultExpanded?: boolean;\n};\n\ntype SidebarChildItem = {\n key: string;\n to: string;\n label: string;\n icon?: ReactNode;\n};\n\ntype NavigationSidebarProps = {\n items: SidebarItem[];\n headerSlot?: ReactNode;\n isCollapsed?: boolean;\n onCollapsedChange?: (nextCollapsed: boolean) => void;\n showCollapseToggle?: boolean;\n};\n\nconst CollapsibleSection = ({\n id,\n isExpanded,\n children,\n}: {\n id: string;\n isExpanded: boolean;\n children: ReactNode;\n}): JSX.Element => {\n let collapsibleStateKey: NonNullable<\n NonNullable<RecipeVariants<typeof styles.collapsibleStateRecipe>>['state']\n > = 'collapsed';\n if (isExpanded) {\n collapsibleStateKey = 'expanded';\n }\n\n return (\n <div\n id={id}\n aria-hidden={!isExpanded}\n className={cx(\n styles.collapsibleSection,\n styles.collapsibleStateRecipe({ state: collapsibleStateKey }),\n )}\n >\n <div className={styles.collapsibleContent}>{children}</div>\n </div>\n );\n};\n\nconst NavigationSidebar = ({\n items,\n headerSlot,\n isCollapsed: isCollapsedProp,\n onCollapsedChange,\n showCollapseToggle = true,\n}: NavigationSidebarProps): JSX.Element => {\n const { t } = useUiTranslation();\n const [internalCollapsed, setInternalCollapsed] = useState(false);\n const [expandedState, setExpandedState] = useState<Record<string, boolean>>(\n {},\n );\n const isControlled = isCollapsedProp != null;\n const isCollapsed = isCollapsedProp ?? internalCollapsed;\n const { pathname } = useLocation();\n\n const isPathActive = (target: string, exact?: boolean): boolean => {\n if (exact === true) {\n return pathname === target;\n }\n if (pathname === target) {\n return true;\n }\n return pathname.startsWith(`${target}/`);\n };\n\n const handleToggle = useCallback((key: string, nextState: boolean) => {\n setExpandedState((prev) => {\n return {\n ...prev,\n [key]: nextState,\n };\n });\n }, []);\n\n const handleCollapseToggle = useCallback(() => {\n const nextState = !isCollapsed;\n if (!isControlled) {\n setInternalCollapsed(nextState);\n }\n onCollapsedChange?.(nextState);\n }, [isCollapsed, isControlled, onCollapsedChange]);\n\n let headerContent: ReactNode | undefined;\n if (!isCollapsed) {\n headerContent = headerSlot ?? undefined;\n }\n\n const collapseButton = useMemo(() => {\n if (!showCollapseToggle) {\n return null;\n }\n\n let CollapseIcon = ChevronLeftIcon;\n let buttonLabel = t('navigation.sidebar.actions.collapseAriaLabel');\n if (isCollapsed) {\n CollapseIcon = ChevronRightIcon;\n buttonLabel = t('navigation.sidebar.actions.expandAriaLabel');\n }\n\n let collapseState: NonNullable<\n NonNullable<\n RecipeVariants<typeof styles.collapseButtonStateRecipe>\n >['state']\n > = 'expanded';\n if (isCollapsed) {\n collapseState = 'collapsed';\n }\n\n let collapseLabel: JSX.Element | null = null;\n if (!isCollapsed) {\n collapseLabel = (\n <span className={styles.collapseButtonLabel}>\n {t('navigation.sidebar.actions.collapse')}\n </span>\n );\n }\n\n return (\n <button\n type=\"button\"\n onClick={handleCollapseToggle}\n className={cx(\n styles.collapseButton,\n styles.collapseButtonStateRecipe({ state: collapseState }),\n )}\n aria-label={buttonLabel}\n >\n <CollapseIcon size={20} />\n {collapseLabel}\n </button>\n );\n }, [handleCollapseToggle, isCollapsed, showCollapseToggle, t]);\n\n return (\n <SidebarContainer\n headerSlot={headerContent}\n footerSlot={collapseButton}\n isCollapsed={isCollapsed}\n showDefaultHeaderAction={false}\n >\n {items.map((item) => {\n const childItems = item.childItems ?? null;\n const hasChildren = childItems != null && childItems.length > 0;\n const storedExpanded = expandedState[item.key];\n let isExpanded = storedExpanded ?? item.defaultExpanded ?? false;\n const nextExpanded = !isExpanded;\n let childSectionId: string | undefined;\n const shouldRenderChildren = !isCollapsed && hasChildren;\n if (shouldRenderChildren) {\n childSectionId = `navigation-sidebar-${item.key}-children`;\n }\n\n if (hasChildren) {\n const hasActiveChild = childItems.some((child) => {\n return isPathActive(child.to);\n });\n\n if (hasActiveChild) {\n isExpanded = true;\n }\n }\n\n let trailingAction: SidebarItemTrailingAction | null = null;\n if (!isCollapsed && item.trailingAction != null) {\n trailingAction = item.trailingAction;\n }\n const showTrailingAction = trailingAction != null;\n const hasHoverIcon =\n item.hoverIcon !== undefined && item.hoverIcon !== null;\n const hasTrailingIcon =\n item.trailingIcon !== undefined && item.trailingIcon !== null;\n const hasTrailingHoverIcon =\n item.trailingHoverIcon !== undefined &&\n item.trailingHoverIcon !== null;\n const showTrailing =\n !isCollapsed &&\n !showTrailingAction &&\n (hasTrailingIcon || hasTrailingHoverIcon);\n\n let itemAriaLabel: string | undefined;\n if (isCollapsed) {\n itemAriaLabel = item.label;\n }\n\n let gapState: NonNullable<\n NonNullable<RecipeVariants<typeof styles.navGapRecipe>>['state']\n > = 'expanded';\n if (isCollapsed) {\n gapState = 'collapsed';\n }\n const gapClassName = styles.navGapRecipe({ state: gapState });\n\n let paddingClassName: string | undefined;\n if (showTrailingAction) {\n paddingClassName = styles.navWithTrailingAction;\n }\n\n let labelNode: JSX.Element | null = null;\n if (!isCollapsed) {\n labelNode = <span className={styles.label}>{item.label}</span>;\n }\n\n let hoverLayer: JSX.Element | null = null;\n if (hasHoverIcon) {\n hoverLayer = (\n <span className={styles.iconVisibleOnHover}>{item.hoverIcon}</span>\n );\n }\n\n const leadingIcon = (\n <span className={styles.iconWrapper}>\n <span\n className={cx(styles.iconBaseLayer, {\n [styles.iconHiddenOnHover]: hasHoverIcon,\n })}\n >\n {item.icon}\n </span>\n {hoverLayer}\n </span>\n );\n\n let trailingIcons: JSX.Element | null = null;\n if (showTrailing) {\n let trailingBaseLayer: JSX.Element | null = null;\n if (hasTrailingIcon) {\n trailingBaseLayer = (\n <span\n className={cx(styles.iconBaseLayer, {\n [styles.iconHiddenOnHover]: hasTrailingHoverIcon,\n })}\n >\n {item.trailingIcon}\n </span>\n );\n }\n\n let trailingHoverLayer: JSX.Element | null = null;\n if (hasTrailingHoverIcon) {\n trailingHoverLayer = (\n <span className={styles.iconVisibleOnHover}>\n {item.trailingHoverIcon}\n </span>\n );\n }\n\n trailingIcons = (\n <span className={styles.trailingIconWrapper}>\n {trailingBaseLayer}\n {trailingHoverLayer}\n </span>\n );\n }\n\n const commonContent = (\n <>\n {leadingIcon}\n {labelNode}\n {trailingIcons}\n </>\n );\n\n const handleClick = (): void => {\n if (!hasChildren || isCollapsed) {\n return;\n }\n handleToggle(item.key, nextExpanded);\n };\n\n let interactiveClassName: string;\n if (hasChildren) {\n interactiveClassName = cx(\n styles.navButton,\n gapClassName,\n paddingClassName,\n );\n } else {\n let navState: NonNullable<\n NonNullable<RecipeVariants<typeof styles.navLinkRecipe>>['state']\n > = 'default';\n if (isPathActive(item.to, item.exact)) {\n navState = 'active';\n }\n interactiveClassName = cx(\n styles.navLinkRecipe({ state: navState }),\n gapClassName,\n paddingClassName,\n );\n }\n\n let itemNode: JSX.Element;\n if (hasChildren) {\n itemNode = (\n <button\n type=\"button\"\n className={interactiveClassName}\n aria-expanded={isExpanded}\n aria-controls={childSectionId}\n aria-label={itemAriaLabel}\n onClick={handleClick}\n >\n {commonContent}\n </button>\n );\n } else {\n itemNode = (\n <Link\n to={item.to}\n className={interactiveClassName}\n exact={item.exact}\n aria-label={itemAriaLabel}\n >\n {commonContent}\n </Link>\n );\n }\n\n let trailingActionNode: JSX.Element | null = null;\n if (trailingAction != null) {\n const handleTrailingClick = (\n event: MouseEvent<HTMLButtonElement>,\n ): void => {\n event.preventDefault();\n event.stopPropagation();\n trailingAction.onClick();\n };\n\n const trailingHoverIcon = trailingAction.hoverIcon;\n const showTrailingHoverIcon =\n trailingHoverIcon !== undefined && trailingHoverIcon !== null;\n let trailingHoverContent: JSX.Element | null = null;\n if (showTrailingHoverIcon) {\n trailingHoverContent = (\n <span className={styles.trailingActionIconVisible}>\n {trailingHoverIcon}\n </span>\n );\n }\n\n trailingActionNode = (\n <button\n type=\"button\"\n aria-label={trailingAction.label}\n onClick={handleTrailingClick}\n className={styles.trailingActionButton}\n >\n <span className={styles.trailingActionIconWrapper}>\n <span className={styles.trailingActionIconHidden}>\n {trailingAction.icon}\n </span>\n {trailingHoverContent}\n </span>\n </button>\n );\n }\n\n let childList: JSX.Element | null = null;\n if (shouldRenderChildren && childSectionId != null) {\n childList = (\n <CollapsibleSection id={childSectionId} isExpanded={isExpanded}>\n {childItems.map((child) => {\n let leading: JSX.Element | null = null;\n if (child.icon != null) {\n leading = (\n <span className={styles.childIcon}>{child.icon}</span>\n );\n }\n\n let childState: NonNullable<\n NonNullable<\n RecipeVariants<typeof styles.childLinkRecipe>\n >['state']\n > = 'default';\n if (isPathActive(child.to)) {\n childState = 'active';\n }\n\n return (\n <div key={child.key} className={styles.collapsibleItem}>\n <Link\n to={child.to}\n className={styles.childLinkRecipe({ state: childState })}\n aria-label={child.label}\n >\n {leading}\n <span className={styles.childLabel}>{child.label}</span>\n </Link>\n </div>\n );\n })}\n </CollapsibleSection>\n );\n }\n\n return (\n <div key={item.key}>\n <div className={styles.itemWrapper}>\n {itemNode}\n {trailingActionNode}\n </div>\n {childList}\n </div>\n );\n })}\n </SidebarContainer>\n );\n};\n\nexport { NavigationSidebar };\nexport type {\n NavigationSidebarProps,\n SidebarChildItem,\n SidebarItem,\n SidebarItemTrailingAction,\n};\n"],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /* empty css */
2
+ /* empty css */
3
+ import { createRuntimeFn as e } from "@vanilla-extract/recipes/createRuntimeFn";
4
+ //#region src/atomic/organisms/sidebar/navigationSidebar.css.ts
5
+ var t = "w6b4r71 w6b4r70 txvbqb9io txvbqbco txvbqbdnx txvbqb1ro txvbqb1co txvbqb1qf txvbqb106 txvbqbv9p txvbqbv4h txvbqbc76 txvbqb77 txvbqb6z txvbqb7k", n = e({
6
+ defaultClassName: "w6b4r72",
7
+ variantClassNames: { state: {
8
+ collapsed: "w6b4r73",
9
+ expanded: "w6b4r74"
10
+ } },
11
+ defaultVariants: { state: "expanded" },
12
+ compoundVariants: []
13
+ }), r = "w6b4r75 txvbqbgmo txvbqb8x txvbqbamf", i = "w6b4r76 txvbqb9ix txvbqb7b txvbqb70 txvbqb7m", a = e({
14
+ defaultClassName: "w6b4r77",
15
+ variantClassNames: { state: {
16
+ expanded: "w6b4r78",
17
+ collapsed: "w6b4r79"
18
+ } },
19
+ defaultVariants: { state: "collapsed" },
20
+ compoundVariants: []
21
+ }), o = "w6b4r7a txvbqbhwx txvbqbgnf txvbqb6gf txvbqb1qf txvbqb106 txvbqbnv6 txvbqbl6f", s = "w6b4r7b", c = "w6b4r7c txvbqbpsf", l = "w6b4r7g w6b4r7e w6b4r7d txvbqbnv6 txvbqboif txvbqbp5f txvbqblx6 txvbqb9io txvbqbco txvbqbdof txvbqbu6f txvbqb1ro txvbqb8x txvbqbf3x txvbqbt5o txvbqbuzj txvbqb77 txvbqb6z txvbqb7k w6b4r7f txvbqbamx txvbqbva3", u = e({
22
+ defaultClassName: "w6b4r7l w6b4r7i w6b4r7e w6b4r7d txvbqbnv6 txvbqboif txvbqbp5f txvbqblx6 txvbqb9io txvbqbco txvbqbdof txvbqbu6f txvbqb1ro txvbqb8x txvbqbf3x txvbqbt5o txvbqbuzj txvbqb77 txvbqb6z txvbqb7k w6b4r7h txvbqbamo txvbqb3b",
23
+ variantClassNames: { state: {
24
+ default: "w6b4r7m w6b4r7j txvbqbva3",
25
+ active: "w6b4r7n w6b4r7k txvbqbuy6 txvbqbv9z txvbqb106 txvbqb1rx"
26
+ } },
27
+ defaultVariants: { state: "default" },
28
+ compoundVariants: []
29
+ }), d = e({
30
+ defaultClassName: "w6b4r7q",
31
+ variantClassNames: { state: {
32
+ collapsed: "w6b4r7r w6b4r7o txvbqb8uo",
33
+ expanded: "w6b4r7s w6b4r7p txvbqb8vf"
34
+ } },
35
+ defaultVariants: { state: "expanded" },
36
+ compoundVariants: []
37
+ }), f = "w6b4r7t txvbqboko", p = "w6b4r7u txvbqb9mx txvbqbk4x txvbqbuw6 txvbqbl6f txvbqbt6f txvbqb7d txvbqb6z txvbqb7k", m = "w6b4r7v txvbqbpsf txvbqb9io txvbqbco txvbqbdnx txvbqbtwf txvbqbc5x txvbqbaj6", h = "w6b4r7w txvbqb7d txvbqb6z txvbqb7k", g = "w6b4r7x w6b4r7w txvbqb7d txvbqb6z txvbqb7k", _ = "w6b4r7z w6b4r7w txvbqb7d txvbqb6z txvbqb7k w6b4r7y txvbqbvab", v = "w6b4r710 txvbqbpsf txvbqbgwf txvbqb9io txvbqbco txvbqbdnx txvbqbtwf txvbqbc5x", y = "w6b4r712 w6b4r711 txvbqbps6 txvbqbtu6 txvbqbptx txvbqb9io txvbqbco txvbqbdnx txvbqbtx6 txvbqbc6o txvbqb1rf txvbqbv4h txvbqbv9p txvbqbvab txvbqb77 txvbqb6z txvbqb7k", b = "w6b4r713 txvbqbpsf txvbqb9io txvbqbco txvbqbdnx txvbqbtw6 txvbqbc5o", x = "w6b4r715 w6b4r714 txvbqb7d txvbqb6z txvbqb7k", S = "w6b4r717 w6b4r716 txvbqbvab txvbqb7d txvbqb6z txvbqb7k", C = e({
38
+ defaultClassName: "w6b4r71c w6b4r719 w6b4r718 txvbqbnv6 txvbqboif txvbqbp5f txvbqblx6 txvbqb9io txvbqbco txvbqbao6 txvbqb1ro txvbqb8x txvbqbamf txvbqbf3x txvbqb3b txvbqb78 txvbqb6z txvbqb7k",
39
+ variantClassNames: { state: {
40
+ default: "w6b4r71d w6b4r71a txvbqbva3",
41
+ active: "w6b4r71e w6b4r71b txvbqbv49 txvbqbv9z txvbqbamo"
42
+ } },
43
+ defaultVariants: { state: "default" },
44
+ compoundVariants: []
45
+ }), w = "w6b4r71f txvbqb9io txvbqbco txvbqbdnx txvbqbtw6 txvbqbc5o txvbqbaj6 txvbqbv9p", T = "w6b4r71g txvbqb9mx txvbqbk4x txvbqbuw6 txvbqbl6f txvbqbt6f";
46
+ //#endregion
47
+ export { w as childIcon, T as childLabel, C as childLinkRecipe, t as collapseButton, r as collapseButtonLabel, n as collapseButtonStateRecipe, o as collapsibleContent, s as collapsibleItem, i as collapsibleSection, a as collapsibleStateRecipe, h as iconBaseLayer, g as iconHiddenOnHover, _ as iconVisibleOnHover, m as iconWrapper, c as itemWrapper, p as label, l as navButton, d as navGapRecipe, u as navLinkRecipe, f as navWithTrailingAction, y as trailingActionButton, x as trailingActionIconHidden, S as trailingActionIconVisible, b as trailingActionIconWrapper, v as trailingIconWrapper };
48
+
49
+ //# sourceMappingURL=navigationSidebar.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigationSidebar.css.js","names":[],"sources":["../../../../../src/atomic/organisms/sidebar/navigationSidebar.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { recipe, type RecipeVariants } from '@vanilla-extract/recipes';\n\nimport { sprinkles } from '../../../theme/sprinkles.css.js';\nimport { vars } from '../../../theme/themeContract.js';\n\nexport const collapseButton = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'lg',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'brandPrimaryRed',\n color: 'brandPrimaryRed',\n backgroundColor: 'brandWhite',\n height: 10,\n transitionProperty: 'default',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.brandSecondaryOrange,\n color: vars.colors.brandWhite,\n boxShadow: vars.boxShadow.brandGlow,\n },\n '&:focus-visible': {\n outline: 'none',\n boxShadow: `0 0 0 2px ${vars.colors.brandSecondaryOrange}`,\n },\n },\n },\n]);\n\nexport const collapseButtonStateRecipe = recipe({\n variants: {\n state: {\n collapsed: {\n width: vars.spacing[10],\n paddingInline: 0,\n },\n expanded: {\n paddingInline: vars.spacing[3],\n width: 'auto',\n },\n },\n },\n defaultVariants: {\n state: 'expanded',\n },\n});\n\nexport type CollapseButtonStateVariants = RecipeVariants<\n typeof collapseButtonStateRecipe\n>;\n\nexport const collapseButtonLabel = sprinkles({\n marginLeft: 2,\n fontSize: 'sm',\n fontWeight: 'medium',\n});\n\nexport const collapsibleSection = sprinkles({\n display: 'grid',\n transitionProperty: 'gridTemplateRowsOpacity',\n transitionDuration: 300,\n transitionTimingFunction: 'ease-in-out',\n});\n\nexport const collapsibleStateRecipe = recipe({\n variants: {\n state: {\n expanded: {\n gridTemplateRows: '1fr',\n opacity: 1,\n },\n collapsed: {\n gridTemplateRows: '0fr',\n opacity: 0,\n pointerEvents: 'none',\n },\n },\n },\n defaultVariants: {\n state: 'collapsed',\n },\n});\n\nexport type CollapsibleStateVariants = RecipeVariants<\n typeof collapsibleStateRecipe\n>;\n\nexport const collapsibleContent = sprinkles({\n marginTop: 1,\n marginLeft: 5,\n borderLeftWidth: 2,\n borderStyle: 'solid',\n borderColor: 'brandPrimaryRed',\n paddingLeft: 3,\n overflow: 'hidden',\n});\n\nexport const collapsibleItem = style({\n selectors: {\n '&:not(:first-child)': {\n marginTop: vars.spacing[1],\n },\n },\n});\n\nexport const itemWrapper = sprinkles({\n position: 'relative',\n});\n\nconst interactiveBase = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n width: 'full',\n borderRadius: 'lg',\n paddingY: 2,\n paddingX: 3,\n fontSize: 'sm',\n lineHeight: 1.2,\n textAlign: 'left',\n backgroundColor: 'transparent',\n transitionProperty: 'default',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.brandLightGray,\n borderColor: vars.colors.brandSecondaryOrange,\n },\n '&:focus-visible': {\n outline: 'none',\n },\n },\n },\n]);\n\nexport const navButton = style([\n interactiveBase,\n sprinkles({ fontWeight: 'bold', color: 'brandDarkGray' }),\n]);\n\nconst navLinkBase = style([\n interactiveBase,\n sprinkles({ fontWeight: 'semibold', textDecoration: 'none' }),\n]);\n\nexport const navLinkRecipe = recipe({\n base: navLinkBase,\n variants: {\n state: {\n default: sprinkles({\n color: 'brandDarkGray',\n }),\n active: sprinkles({\n backgroundImage: 'brandDiagonal',\n color: 'brandWhite',\n borderColor: 'brandPrimaryRed',\n borderRadius: 'xl',\n }),\n },\n },\n defaultVariants: {\n state: 'default',\n },\n});\n\nexport type NavLinkVariants = RecipeVariants<typeof navLinkRecipe>;\n\nexport const navGapRecipe = recipe({\n variants: {\n state: {\n collapsed: sprinkles({ columnGap: 0 }),\n expanded: sprinkles({ columnGap: 3 }),\n },\n },\n defaultVariants: {\n state: 'expanded',\n },\n});\n\nexport type NavGapVariants = RecipeVariants<typeof navGapRecipe>;\n\nexport const navWithTrailingAction = sprinkles({\n paddingRight: 12,\n});\n\nexport const label = sprinkles({\n flex: 1,\n minWidth: 0,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n transitionProperty: 'opacity',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n});\n\nexport const iconWrapper = sprinkles({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 5,\n height: 5,\n flexShrink: 0,\n});\n\nconst fadingLayer = sprinkles({\n transitionProperty: 'opacity',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n});\n\nexport const iconBaseLayer = fadingLayer;\n\nexport const iconHiddenOnHover = style([\n fadingLayer,\n {\n selectors: {\n [`${itemWrapper}:hover &`]: { opacity: 0 },\n [`${itemWrapper}:focus-visible &`]: { opacity: 0 },\n [`${itemWrapper}:focus-within &`]: { opacity: 0 },\n },\n },\n]);\n\nexport const iconVisibleOnHover = style([\n fadingLayer,\n sprinkles({ opacity: 0 }),\n {\n selectors: {\n [`${itemWrapper}:hover &`]: { opacity: 1 },\n [`${itemWrapper}:focus-visible &`]: { opacity: 1 },\n [`${itemWrapper}:focus-within &`]: { opacity: 1 },\n },\n },\n]);\n\nexport const trailingIconWrapper = sprinkles({\n position: 'relative',\n marginLeft: 'auto',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 5,\n height: 5,\n});\n\nexport const trailingActionButton = style([\n sprinkles({\n position: 'absolute',\n top: '1/2',\n right: 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 8,\n height: 8,\n borderRadius: 'md',\n backgroundColor: 'brandWhite',\n color: 'brandPrimaryRed',\n opacity: 0,\n transitionProperty: 'default',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n }),\n {\n transform: 'translateY(-50%)',\n selectors: {\n [`${itemWrapper}:hover &`]: { opacity: 1 },\n [`${itemWrapper}:focus-within &`]: { opacity: 1 },\n '&:hover': {\n backgroundColor: vars.colors.brandSecondaryOrange,\n color: vars.colors.brandWhite,\n },\n '&:focus-visible': {\n outline: 'none',\n boxShadow: `0 0 0 2px ${vars.colors.brandSecondaryOrange}`,\n opacity: 1,\n },\n },\n },\n]);\n\nexport const trailingActionIconWrapper = sprinkles({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 4,\n height: 4,\n});\n\nexport const trailingActionIconHidden = style([\n sprinkles({\n transitionProperty: 'opacity',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n [`${trailingActionButton}:hover &`]: { opacity: 0 },\n [`${trailingActionButton}:focus-visible &`]: { opacity: 0 },\n },\n },\n]);\n\nexport const trailingActionIconVisible = style([\n sprinkles({\n opacity: 0,\n transitionProperty: 'opacity',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n [`${trailingActionButton}:hover &`]: { opacity: 1 },\n [`${trailingActionButton}:focus-visible &`]: { opacity: 1 },\n },\n },\n]);\n\nconst childLinkBase = style([\n sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n borderRadius: 'lg',\n paddingY: 2,\n paddingX: 3,\n fontSize: 'sm',\n fontWeight: 'medium',\n lineHeight: 1.2,\n textDecoration: 'none',\n transitionProperty: 'colors',\n transitionDuration: 200,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n backgroundColor: vars.colors.brandLightGray,\n color: vars.colors.brandDarkGray,\n },\n },\n },\n]);\n\nexport const childLinkRecipe = recipe({\n base: childLinkBase,\n variants: {\n state: {\n default: sprinkles({\n color: 'brandDarkGray',\n }),\n active: sprinkles({\n backgroundColor: 'brandSecondaryOrange',\n color: 'brandWhite',\n fontWeight: 'semibold',\n }),\n },\n },\n defaultVariants: {\n state: 'default',\n },\n});\n\nexport type ChildLinkVariants = RecipeVariants<typeof childLinkRecipe>;\n\nexport const childIcon = sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: 4,\n height: 4,\n flexShrink: 0,\n color: 'brandPrimaryRed',\n});\n\nexport const childLabel = sprinkles({\n flex: 1,\n minWidth: 0,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n});\n"],"mappings":""}
package/lib/esm/index.js CHANGED
@@ -37,66 +37,67 @@ import { useLoginForm as H } from "./atomic/organisms/login_form/useLoginForm.js
37
37
  import { SidebarContainer as U } from "./atomic/organisms/sidebar/SidebarContainer.js";
38
38
  import "./atomic/organisms/sidebar/Sidebar.js";
39
39
  import { ChevronLeftIcon as W, ChevronRightIcon as G, DocumentationIcon as K, HomeIcon as q, InitiativesIcon as J, PlusIcon as Y, ProjectsIcon as X, SearchIcon as Z, SettingsIcon as Q, TasksIcon as ne, TeamIcon as re } from "./atomic/organisms/sidebar/icons.js";
40
- import { AuthLayout as ie } from "./atomic/templates/auth_layout/AuthLayout.js";
41
- import { BillingUsageLineChart as ae } from "./components/charts/BillingUsageLineChart.js";
42
- import { DataTable as oe } from "./components/data-table/DataTable.js";
43
- import { ContentLayout as se } from "./components/layout/ContentLayout.js";
44
- import { PageShell as ce } from "./components/layout/PageShell.js";
45
- import { SimpleSelect as le } from "./components/select/SimpleSelect.js";
46
- import { RefetchNeededBanner as ue } from "./components/subscriptions/RefetchNeededBanner.js";
47
- import { TabsContentLayout as $ } from "./components/layout/TabsContentLayout.js";
48
- import { InfoTile as de } from "./components/tile/InfoTile.js";
49
- import { VirtualizedConnectionTable as fe } from "./components/data-table/VirtualizedConnectionTable.js";
50
- import { CopyableText as pe } from "./backoffice/atoms/copyable_text/CopyableText.js";
51
- import { BackofficeIdBadge as me } from "./backoffice/atoms/backoffice_id_badge/BackofficeIdBadge.js";
52
- import { EnvironmentBadge as he } from "./backoffice/atoms/environment_badge/EnvironmentBadge.js";
53
- import { ShortcutHint as ge } from "./backoffice/atoms/shortcut_hint/ShortcutHint.js";
54
- import { Skeleton as _e } from "./backoffice/atoms/skeleton/Skeleton.js";
55
- import { Spinner as ve } from "./backoffice/atoms/spinner/Spinner.js";
56
- import { StatusBadge as ye } from "./backoffice/atoms/status_badge/StatusBadge.js";
57
- import { Tag as be } from "./backoffice/atoms/tag/Tag.js";
58
- import { BackofficeDetailLayout as xe } from "./backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.js";
59
- import { BackofficeEmptyState as Se } from "./backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js";
60
- import { BackofficeFilterDrawer as Ce } from "./backoffice/molecules/backoffice_filter_drawer/BackofficeFilterDrawer.js";
61
- import { BackofficeFilterField as we } from "./backoffice/molecules/backoffice_filter_field/BackofficeFilterField.js";
62
- import { BackofficeFiltersBar as Te } from "./backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.js";
63
- import { BackofficeFormSection as Ee } from "./backoffice/molecules/backoffice_form_section/BackofficeFormSection.js";
64
- import { ConfirmDialog as De } from "./backoffice/molecules/confirm_dialog/ConfirmDialog.js";
65
- import { BackofficeJsonViewer as Oe } from "./backoffice/molecules/backoffice_json_viewer/BackofficeJsonViewer.js";
66
- import { BackofficeKeyValueList as ke } from "./backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js";
67
- import { BackofficeLoadMore as Ae } from "./backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js";
68
- import { BackofficePageHeader as je } from "./backoffice/molecules/backoffice_page_header/BackofficePageHeader.js";
69
- import { BackofficeRelationsMenu as Me } from "./backoffice/molecules/backoffice_relations_menu/BackofficeRelationsMenu.js";
70
- import { BackofficeTableSkeleton as Ne } from "./backoffice/molecules/backoffice_table_skeleton/BackofficeTableSkeleton.js";
71
- import { BackofficeTableToolbar as Pe } from "./backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js";
72
- import { BackofficeTabs as Fe } from "./backoffice/molecules/backoffice_tabs/BackofficeTabs.js";
73
- import { BulkActionsBar as Ie } from "./backoffice/molecules/bulk_actions_bar/BulkActionsBar.js";
74
- import { FilterChipRow as Le } from "./backoffice/molecules/filter_chip_row/FilterChipRow.js";
75
- import { GlobalSearchInput as Re } from "./backoffice/molecules/global_search_input/GlobalSearchInput.js";
76
- import { InlineBanner as ze } from "./backoffice/molecules/inline_banner/InlineBanner.js";
77
- import { SidebarNavItem as Be } from "./backoffice/molecules/sidebar_nav_item/SidebarNavItem.js";
78
- import { SidebarNavSection as Ve } from "./backoffice/molecules/sidebar_nav_section/SidebarNavSection.js";
79
- import { BackofficeSidebarProfileMenu as He } from "./backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js";
80
- import { SidebarCollapseToggle as Ue } from "./backoffice/molecules/sidebar_collapse_toggle/SidebarCollapseToggle.js";
81
- import { TableToolbar as We } from "./backoffice/molecules/table_toolbar/TableToolbar.js";
82
- import { BackofficeAppShell as Ge } from "./backoffice/organisms/backoffice_app_shell/BackofficeAppShell.js";
83
- import { AuditTimeline as Ke } from "./backoffice/organisms/audit_timeline/AuditTimeline.js";
84
- import { BackofficeDataTable as qe } from "./backoffice/organisms/backoffice_data_table/BackofficeDataTable.js";
85
- import { BackofficeSidebar as Je } from "./backoffice/organisms/backoffice_sidebar/BackofficeSidebar.js";
86
- import { BackofficeTopbar as Ye } from "./backoffice/organisms/backoffice_topbar/BackofficeTopbar.js";
87
- import { BackofficeVirtualizedConnectionTable as Xe } from "./backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js";
88
- import { EntityHeader as Ze } from "./backoffice/organisms/entity_header/EntityHeader.js";
89
- import { BackofficeShellTemplate as Qe } from "./backoffice/templates/backoffice_shell_template/BackofficeShellTemplate.js";
90
- import { DetailPageTemplate as $e } from "./backoffice/templates/detail_page_template/DetailPageTemplate.js";
91
- import { ListPageTemplate as et } from "./backoffice/templates/list_page_template/ListPageTemplate.js";
92
- import { SettingsTemplate as tt } from "./backoffice/templates/settings_template/SettingsTemplate.js";
93
- import { SplitViewTemplate as nt } from "./backoffice/templates/split_view_template/SplitViewTemplate.js";
94
- import { backofficeThemeClass as rt } from "./backoffice/theme/backofficeTheme.css.js";
95
- import { BackofficeThemeProvider as it } from "./backoffice/theme/BackofficeThemeProvider.js";
96
- import { FALLBACK_REFERENCE as at, formatNullableCurrency as ot, formatNullableNumber as st, formatNullableString as ct, formatStringList as lt } from "./shared/agentJobRequestFormatting.js";
97
- import { sanitizeAgentAnswer as ut, sanitizeAgentMarkdown as dt } from "./shared/agentText.js";
98
- import { denseTableClass as ft } from "./shared/backofficeTableDensity.css.js";
99
- import { WrapperPage as pt } from "./pages/WrapperPage.js";
100
- import { ChevronDownIcon as mt } from "./svg/ChevronDownIcon.js";
101
- import { LoginForm as ht } from "./atomic/organisms/login_form/LoginForm.js";
102
- export { Ke as AuditTimeline, ie as AuthLayout, Ge as BackofficeAppShell, qe as BackofficeDataTable, xe as BackofficeDetailLayout, Se as BackofficeEmptyState, Ce as BackofficeFilterDrawer, we as BackofficeFilterField, Te as BackofficeFiltersBar, Ee as BackofficeFormSection, me as BackofficeIdBadge, Oe as BackofficeJsonViewer, ke as BackofficeKeyValueList, Ae as BackofficeLoadMore, je as BackofficePageHeader, Me as BackofficeRelationsMenu, Qe as BackofficeShellTemplate, Je as BackofficeSidebar, He as BackofficeSidebarProfileMenu, Ne as BackofficeTableSkeleton, Pe as BackofficeTableToolbar, Fe as BackofficeTabs, it as BackofficeThemeProvider, Ye as BackofficeTopbar, Xe as BackofficeVirtualizedConnectionTable, e as Badge, ae as BillingUsageLineChart, f as BreadcrumbNavigation, Ie as BulkActionsBar, t as Button, p as Card, a as Checkbox, m as CheckboxField, mt as ChevronDownIcon, W as ChevronLeftIcon, G as ChevronRightIcon, De as ConfirmDialog, se as ContentLayout, pe as CopyableText, oe as DataTable, $e as DetailPageTemplate, K as DocumentationIcon, Ze as EntityHeader, he as EnvironmentBadge, o as ErrorMessage, at as FALLBACK_REFERENCE, Le as FilterChipRow, h as Form, v as FormActions, y as FormError, g as FormErrorBanner, b as FormField, _ as FormGroup, s as FormattedDate, Re as GlobalSearchInput, x as HighlightCode, q as HomeIcon, c as IconMenuButton, de as InfoTile, J as InitiativesIcon, ze as InlineBanner, r as Input, i as Label, S as LazyMarkdownRenderer, n as LinkButton, et as ListPageTemplate, ht as LoginForm, u as Modal, l as Overlay, ce as PageShell, Y as PlusIcon, X as ProjectsIcon, ue as RefetchNeededBanner, Z as SearchIcon, Q as SettingsIcon, tt as SettingsTemplate, ge as ShortcutHint, U as Sidebar, Ue as SidebarCollapseToggle, U as SidebarContainer, Be as SidebarNavItem, Ve as SidebarNavSection, le as SimpleSelect, _e as Skeleton, ve as Spinner, nt as SplitViewTemplate, ye as StatusBadge, j as THEME_KEY, We as TableToolbar, D as Tabs, $ as TabsContentLayout, be as Tag, ne as TasksIcon, re as TeamIcon, d as Textarea, M as ThemeProvider, k as ToastProvider, O as ToastViewport, fe as VirtualizedConnectionTable, P as VisuallyHidden, pt as WrapperPage, rt as backofficeThemeClass, w as colors, F as containerQueries, ee as cx, ft as denseTableClass, I as firstChildSprinkles, ot as formatNullableCurrency, st as formatNullableNumber, ct as formatNullableString, lt as formatStringList, L as hoverSprinkles, te as onlyDefinedStyles, z as opacity, ut as sanitizeAgentAnswer, dt as sanitizeAgentMarkdown, B as screens, T as spacing, R as sprinkles, C as themeColorValues, V as themeSpacingValues, H as useLoginForm, N as useTheme, A as useToast, E as vars };
40
+ import { NavigationSidebar as ie } from "./atomic/organisms/sidebar/NavigationSidebar.js";
41
+ import { AuthLayout as ae } from "./atomic/templates/auth_layout/AuthLayout.js";
42
+ import { BillingUsageLineChart as oe } from "./components/charts/BillingUsageLineChart.js";
43
+ import { DataTable as se } from "./components/data-table/DataTable.js";
44
+ import { ContentLayout as ce } from "./components/layout/ContentLayout.js";
45
+ import { PageShell as le } from "./components/layout/PageShell.js";
46
+ import { SimpleSelect as ue } from "./components/select/SimpleSelect.js";
47
+ import { RefetchNeededBanner as $ } from "./components/subscriptions/RefetchNeededBanner.js";
48
+ import { TabsContentLayout as de } from "./components/layout/TabsContentLayout.js";
49
+ import { InfoTile as fe } from "./components/tile/InfoTile.js";
50
+ import { VirtualizedConnectionTable as pe } from "./components/data-table/VirtualizedConnectionTable.js";
51
+ import { CopyableText as me } from "./backoffice/atoms/copyable_text/CopyableText.js";
52
+ import { BackofficeIdBadge as he } from "./backoffice/atoms/backoffice_id_badge/BackofficeIdBadge.js";
53
+ import { EnvironmentBadge as ge } from "./backoffice/atoms/environment_badge/EnvironmentBadge.js";
54
+ import { ShortcutHint as _e } from "./backoffice/atoms/shortcut_hint/ShortcutHint.js";
55
+ import { Skeleton as ve } from "./backoffice/atoms/skeleton/Skeleton.js";
56
+ import { Spinner as ye } from "./backoffice/atoms/spinner/Spinner.js";
57
+ import { StatusBadge as be } from "./backoffice/atoms/status_badge/StatusBadge.js";
58
+ import { Tag as xe } from "./backoffice/atoms/tag/Tag.js";
59
+ import { BackofficeDetailLayout as Se } from "./backoffice/molecules/backoffice_detail_layout/BackofficeDetailLayout.js";
60
+ import { BackofficeEmptyState as Ce } from "./backoffice/molecules/backoffice_empty_state/BackofficeEmptyState.js";
61
+ import { BackofficeFilterDrawer as we } from "./backoffice/molecules/backoffice_filter_drawer/BackofficeFilterDrawer.js";
62
+ import { BackofficeFilterField as Te } from "./backoffice/molecules/backoffice_filter_field/BackofficeFilterField.js";
63
+ import { BackofficeFiltersBar as Ee } from "./backoffice/molecules/backoffice_filters_bar/BackofficeFiltersBar.js";
64
+ import { BackofficeFormSection as De } from "./backoffice/molecules/backoffice_form_section/BackofficeFormSection.js";
65
+ import { ConfirmDialog as Oe } from "./backoffice/molecules/confirm_dialog/ConfirmDialog.js";
66
+ import { BackofficeJsonViewer as ke } from "./backoffice/molecules/backoffice_json_viewer/BackofficeJsonViewer.js";
67
+ import { BackofficeKeyValueList as Ae } from "./backoffice/molecules/backoffice_key_value_list/BackofficeKeyValueList.js";
68
+ import { BackofficeLoadMore as je } from "./backoffice/molecules/backoffice_load_more/BackofficeLoadMore.js";
69
+ import { BackofficePageHeader as Me } from "./backoffice/molecules/backoffice_page_header/BackofficePageHeader.js";
70
+ import { BackofficeRelationsMenu as Ne } from "./backoffice/molecules/backoffice_relations_menu/BackofficeRelationsMenu.js";
71
+ import { BackofficeTableSkeleton as Pe } from "./backoffice/molecules/backoffice_table_skeleton/BackofficeTableSkeleton.js";
72
+ import { BackofficeTableToolbar as Fe } from "./backoffice/molecules/backoffice_table_toolbar/BackofficeTableToolbar.js";
73
+ import { BackofficeTabs as Ie } from "./backoffice/molecules/backoffice_tabs/BackofficeTabs.js";
74
+ import { BulkActionsBar as Le } from "./backoffice/molecules/bulk_actions_bar/BulkActionsBar.js";
75
+ import { FilterChipRow as Re } from "./backoffice/molecules/filter_chip_row/FilterChipRow.js";
76
+ import { GlobalSearchInput as ze } from "./backoffice/molecules/global_search_input/GlobalSearchInput.js";
77
+ import { InlineBanner as Be } from "./backoffice/molecules/inline_banner/InlineBanner.js";
78
+ import { SidebarNavItem as Ve } from "./backoffice/molecules/sidebar_nav_item/SidebarNavItem.js";
79
+ import { SidebarNavSection as He } from "./backoffice/molecules/sidebar_nav_section/SidebarNavSection.js";
80
+ import { BackofficeSidebarProfileMenu as Ue } from "./backoffice/molecules/sidebar_profile_menu/BackofficeSidebarProfileMenu.js";
81
+ import { SidebarCollapseToggle as We } from "./backoffice/molecules/sidebar_collapse_toggle/SidebarCollapseToggle.js";
82
+ import { TableToolbar as Ge } from "./backoffice/molecules/table_toolbar/TableToolbar.js";
83
+ import { BackofficeAppShell as Ke } from "./backoffice/organisms/backoffice_app_shell/BackofficeAppShell.js";
84
+ import { AuditTimeline as qe } from "./backoffice/organisms/audit_timeline/AuditTimeline.js";
85
+ import { BackofficeDataTable as Je } from "./backoffice/organisms/backoffice_data_table/BackofficeDataTable.js";
86
+ import { BackofficeSidebar as Ye } from "./backoffice/organisms/backoffice_sidebar/BackofficeSidebar.js";
87
+ import { BackofficeTopbar as Xe } from "./backoffice/organisms/backoffice_topbar/BackofficeTopbar.js";
88
+ import { BackofficeVirtualizedConnectionTable as Ze } from "./backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js";
89
+ import { EntityHeader as Qe } from "./backoffice/organisms/entity_header/EntityHeader.js";
90
+ import { BackofficeShellTemplate as $e } from "./backoffice/templates/backoffice_shell_template/BackofficeShellTemplate.js";
91
+ import { DetailPageTemplate as et } from "./backoffice/templates/detail_page_template/DetailPageTemplate.js";
92
+ import { ListPageTemplate as tt } from "./backoffice/templates/list_page_template/ListPageTemplate.js";
93
+ import { SettingsTemplate as nt } from "./backoffice/templates/settings_template/SettingsTemplate.js";
94
+ import { SplitViewTemplate as rt } from "./backoffice/templates/split_view_template/SplitViewTemplate.js";
95
+ import { backofficeThemeClass as it } from "./backoffice/theme/backofficeTheme.css.js";
96
+ import { BackofficeThemeProvider as at } from "./backoffice/theme/BackofficeThemeProvider.js";
97
+ import { FALLBACK_REFERENCE as ot, formatNullableCurrency as st, formatNullableNumber as ct, formatNullableString as lt, formatStringList as ut } from "./shared/agentJobRequestFormatting.js";
98
+ import { sanitizeAgentAnswer as dt, sanitizeAgentMarkdown as ft } from "./shared/agentText.js";
99
+ import { denseTableClass as pt } from "./shared/backofficeTableDensity.css.js";
100
+ import { WrapperPage as mt } from "./pages/WrapperPage.js";
101
+ import { ChevronDownIcon as ht } from "./svg/ChevronDownIcon.js";
102
+ import { LoginForm as gt } from "./atomic/organisms/login_form/LoginForm.js";
103
+ export { qe as AuditTimeline, ae as AuthLayout, Ke as BackofficeAppShell, Je as BackofficeDataTable, Se as BackofficeDetailLayout, Ce as BackofficeEmptyState, we as BackofficeFilterDrawer, Te as BackofficeFilterField, Ee as BackofficeFiltersBar, De as BackofficeFormSection, he as BackofficeIdBadge, ke as BackofficeJsonViewer, Ae as BackofficeKeyValueList, je as BackofficeLoadMore, Me as BackofficePageHeader, Ne as BackofficeRelationsMenu, $e as BackofficeShellTemplate, Ye as BackofficeSidebar, Ue as BackofficeSidebarProfileMenu, Pe as BackofficeTableSkeleton, Fe as BackofficeTableToolbar, Ie as BackofficeTabs, at as BackofficeThemeProvider, Xe as BackofficeTopbar, Ze as BackofficeVirtualizedConnectionTable, e as Badge, oe as BillingUsageLineChart, f as BreadcrumbNavigation, Le as BulkActionsBar, t as Button, p as Card, a as Checkbox, m as CheckboxField, ht as ChevronDownIcon, W as ChevronLeftIcon, G as ChevronRightIcon, Oe as ConfirmDialog, ce as ContentLayout, me as CopyableText, se as DataTable, et as DetailPageTemplate, K as DocumentationIcon, Qe as EntityHeader, ge as EnvironmentBadge, o as ErrorMessage, ot as FALLBACK_REFERENCE, Re as FilterChipRow, h as Form, v as FormActions, y as FormError, g as FormErrorBanner, b as FormField, _ as FormGroup, s as FormattedDate, ze as GlobalSearchInput, x as HighlightCode, q as HomeIcon, c as IconMenuButton, fe as InfoTile, J as InitiativesIcon, Be as InlineBanner, r as Input, i as Label, S as LazyMarkdownRenderer, n as LinkButton, tt as ListPageTemplate, gt as LoginForm, u as Modal, ie as NavigationSidebar, l as Overlay, le as PageShell, Y as PlusIcon, X as ProjectsIcon, $ as RefetchNeededBanner, Z as SearchIcon, Q as SettingsIcon, nt as SettingsTemplate, _e as ShortcutHint, U as Sidebar, We as SidebarCollapseToggle, U as SidebarContainer, Ve as SidebarNavItem, He as SidebarNavSection, ue as SimpleSelect, ve as Skeleton, ye as Spinner, rt as SplitViewTemplate, be as StatusBadge, j as THEME_KEY, Ge as TableToolbar, D as Tabs, de as TabsContentLayout, xe as Tag, ne as TasksIcon, re as TeamIcon, d as Textarea, M as ThemeProvider, k as ToastProvider, O as ToastViewport, pe as VirtualizedConnectionTable, P as VisuallyHidden, mt as WrapperPage, it as backofficeThemeClass, w as colors, F as containerQueries, ee as cx, pt as denseTableClass, I as firstChildSprinkles, st as formatNullableCurrency, ct as formatNullableNumber, lt as formatNullableString, ut as formatStringList, L as hoverSprinkles, te as onlyDefinedStyles, z as opacity, dt as sanitizeAgentAnswer, ft as sanitizeAgentMarkdown, B as screens, T as spacing, R as sprinkles, C as themeColorValues, V as themeSpacingValues, H as useLoginForm, N as useTheme, A as useToast, E as vars };