northline 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -119,6 +119,32 @@ theme change. If you need charts to follow the theme too, re-create the
119
119
  chart (or update its options) when `data-theme`/`prefers-color-scheme`
120
120
  changes.
121
121
 
122
+ ## Responsiveness
123
+
124
+ One breakpoint, 640px (roughly phone-width), covers the patterns that
125
+ actually needed it:
126
+
127
+ - `ScoreCard`'s grid (`.scorecards`) drops from a fixed 4 columns to
128
+ `auto-fit` (min 150px) instead of squishing.
129
+ - `Table`/`.nl-table-wrap` scrolls horizontally instead of clipping content.
130
+ - `Navbar`'s `items` menu collapses behind a hamburger toggle instead of
131
+ wrapping/overflowing; `BottomNav` appears (it's `display: none` above the
132
+ breakpoint).
133
+ - `ChartCard` drops its 320px `min-width` floor so it doesn't force page-level
134
+ horizontal scroll.
135
+ - `Modal`/`Drawer` go full-bleed; `Pagination`/`SegmentedControl` wrap;
136
+ `Stepper` scrolls horizontally rather than overflowing.
137
+
138
+ For the mobile primary-navigation pattern, pair `Canvas` + `Navbar` (brand +
139
+ actions only, or omit `items` since `BottomNav` is the primary nav on
140
+ phones) + `BottomNav`, rather than `Sidebar` (a persistent rail doesn't fit
141
+ a phone viewport - it isn't auto-hidden for you, since some apps do want it
142
+ on tablet-width screens; hide/show it yourself based on viewport if needed).
143
+
144
+ Everything else - `Stack`/`Grid`/`Container` sizes, flex-wrapping button
145
+ rows, etc - was already responsive by construction (flexbox/grid with
146
+ sensible min-widths), not by a breakpoint override.
147
+
122
148
  ## Components
123
149
 
124
150
  | Component | Purpose |
@@ -191,7 +217,9 @@ Generic, non-dashboard-specific primitives (typography/layout, feedback, remaini
191
217
  | `CodeBlock` | Monospace code snippet frame with optional language tag + copy button |
192
218
  | `Kbd` | Keyboard-shortcut chip |
193
219
  | `Tree` | Nested expandable hierarchy (file trees, category trees) |
194
- | `Navbar` | App header bar: brand + arbitrary nav items/actions |
220
+ | `Canvas` | Full-viewport app shell wrapper (background + flex column) - mount `Navbar`/routed content/`BottomNav` inside it |
221
+ | `Navbar` | App header bar: brand, an optional `items` nav menu (collapses behind a hamburger under 640px), and arbitrary actions |
222
+ | `BottomNav` | Fixed mobile bottom tab bar (icon + label), hidden above 640px - the mobile counterpart to `Navbar`'s menu/`Sidebar` |
195
223
  | `Sidebar` | Persistent side navigation rail, with a `collapsed` icon-only mode |
196
224
  | `ButtonGroup` | Visually merges adjacent `Button`s into one segmented-looking group |
197
225
  | `ColorPicker` | Preset swatch grid plus a native color input for anything else |
@@ -0,0 +1,12 @@
1
+ import { ReactNode } from 'react';
2
+ export interface BottomNavItem {
3
+ id: string;
4
+ label: ReactNode;
5
+ icon: ReactNode;
6
+ onClick?: () => void;
7
+ }
8
+ export interface BottomNavProps {
9
+ items: BottomNavItem[];
10
+ activeId?: string;
11
+ }
12
+ export default function BottomNav({ items, activeId }: BottomNavProps): import('react').JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ export interface CanvasProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ /** Escape hatch, e.g. to constrain height when embedding a Canvas demo inside another layout. */
6
+ style?: CSSProperties;
7
+ }
8
+ export default function Canvas({ children, className, style }: CanvasProps): import('react').JSX.Element;
@@ -1,4 +1,4 @@
1
- export type IconName = 'close' | 'check' | 'chevron-left' | 'chevron-right' | 'kebab' | 'drag-handle' | 'copy' | 'trash' | 'plus' | 'minus' | 'upload' | 'star' | 'info' | 'warning' | 'settings' | 'inbox' | 'search' | 'calendar' | 'eye' | 'eye-off';
1
+ export type IconName = 'close' | 'check' | 'chevron-left' | 'chevron-right' | 'kebab' | 'drag-handle' | 'copy' | 'trash' | 'plus' | 'minus' | 'upload' | 'star' | 'info' | 'warning' | 'settings' | 'inbox' | 'search' | 'calendar' | 'eye' | 'eye-off' | 'menu' | 'home';
2
2
  export interface IconProps {
3
3
  name: IconName;
4
4
  size?: number;
@@ -1,7 +1,14 @@
1
1
  import { ReactNode } from 'react';
2
+ export interface NavbarItem {
3
+ id: string;
4
+ label: ReactNode;
5
+ onClick?: () => void;
6
+ }
2
7
  export interface NavbarProps {
3
8
  brand?: ReactNode;
9
+ items?: NavbarItem[];
10
+ activeId?: string;
4
11
  children?: ReactNode;
5
12
  sticky?: boolean;
6
13
  }
7
- export default function Navbar({ brand, children, sticky }: NavbarProps): import('react').JSX.Element;
14
+ export default function Navbar({ brand, items, activeId, children, sticky }: NavbarProps): import('react').JSX.Element;
package/dist/index.d.ts CHANGED
@@ -61,7 +61,9 @@ export { default as AvatarGroup } from './components/AvatarGroup';
61
61
  export { default as CodeBlock } from './components/CodeBlock';
62
62
  export { default as Kbd } from './components/Kbd';
63
63
  export { default as Tree } from './components/Tree';
64
+ export { default as Canvas } from './components/Canvas';
64
65
  export { default as Navbar } from './components/Navbar';
66
+ export { default as BottomNav } from './components/BottomNav';
65
67
  export { default as Sidebar } from './components/Sidebar';
66
68
  export { default as ButtonGroup } from './components/ButtonGroup';
67
69
  export { default as ColorPicker } from './components/ColorPicker';
package/dist/index.js CHANGED
@@ -208,7 +208,16 @@ var v = {
208
208
  /* @__PURE__ */ t("path", { d: "M3 3l18 18" }),
209
209
  /* @__PURE__ */ t("path", { d: "M10.6 5.2A10.6 10.6 0 0 1 12 5c6.5 0 10 7 10 7a15.6 15.6 0 0 1-3.4 4.3M6.6 6.6A15.7 15.7 0 0 0 2 12s3.5 7 10 7a10.4 10.4 0 0 0 3.4-.6" }),
210
210
  /* @__PURE__ */ t("path", { d: "M9.9 9.9a3 3 0 0 0 4.2 4.2" })
211
- ] })
211
+ ] }),
212
+ menu: /* @__PURE__ */ n(e, { children: [
213
+ /* @__PURE__ */ t("path", { d: "M4 6h16" }),
214
+ /* @__PURE__ */ t("path", { d: "M4 12h16" }),
215
+ /* @__PURE__ */ t("path", { d: "M4 18h16" })
216
+ ] }),
217
+ home: /* @__PURE__ */ n(e, { children: [/* @__PURE__ */ t("path", { d: "M4 11l8-7 8 7" }), /* @__PURE__ */ t("path", {
218
+ d: "M6 9.5V20a1 1 0 0 0 1 1h4v-6h2v6h4a1 1 0 0 0 1-1V9.5",
219
+ strokeLinejoin: "round"
220
+ })] })
212
221
  };
213
222
  function y({ name: e, size: n = 16, color: r = "currentColor", filled: i = !1 }) {
214
223
  return /* @__PURE__ */ t("svg", {
@@ -2148,22 +2157,81 @@ function $e({ nodes: e, defaultExpandedIds: n = [], onSelect: r, selectedId: i }
2148
2157
  });
2149
2158
  }
2150
2159
  //#endregion
2160
+ //#region src/components/Canvas.tsx
2161
+ function et({ children: e, className: n, style: r }) {
2162
+ return /* @__PURE__ */ t("div", {
2163
+ className: `nl-canvas${n ? ` ${n}` : ""}`,
2164
+ style: r,
2165
+ children: e
2166
+ });
2167
+ }
2168
+ //#endregion
2151
2169
  //#region src/components/Navbar.tsx
2152
- function et({ brand: e, children: r, sticky: i = !1 }) {
2170
+ function tt({ brand: e, items: r, activeId: i, children: a, sticky: o = !1 }) {
2171
+ let [s, c] = d(!1);
2153
2172
  return /* @__PURE__ */ n("header", {
2154
- className: `navbar${i ? " navbar--sticky" : ""}`,
2155
- children: [e && /* @__PURE__ */ t("div", {
2156
- className: "navbar__brand",
2157
- children: e
2158
- }), /* @__PURE__ */ t("div", {
2159
- className: "navbar__actions",
2160
- children: r
2173
+ className: `navbar${o ? " navbar--sticky" : ""}`,
2174
+ children: [/* @__PURE__ */ n("div", {
2175
+ className: "navbar__row",
2176
+ children: [
2177
+ e && /* @__PURE__ */ t("div", {
2178
+ className: "navbar__brand",
2179
+ children: e
2180
+ }),
2181
+ r && r.length > 0 && /* @__PURE__ */ t("button", {
2182
+ type: "button",
2183
+ className: "navbar__menu-toggle",
2184
+ "aria-label": s ? "Close menu" : "Open menu",
2185
+ "aria-expanded": s,
2186
+ onClick: () => c((e) => !e),
2187
+ children: /* @__PURE__ */ t(y, {
2188
+ name: s ? "close" : "menu",
2189
+ size: 18
2190
+ })
2191
+ }),
2192
+ /* @__PURE__ */ t("div", {
2193
+ className: "navbar__actions",
2194
+ children: a
2195
+ })
2196
+ ]
2197
+ }), r && r.length > 0 && /* @__PURE__ */ t("nav", {
2198
+ className: `navbar__menu${s ? " navbar__menu--open" : ""}`,
2199
+ "aria-label": "Primary",
2200
+ children: r.map((e) => /* @__PURE__ */ t("button", {
2201
+ type: "button",
2202
+ className: `navbar__menu-item${e.id === i ? " navbar__menu-item--active" : ""}`,
2203
+ onClick: () => {
2204
+ c(!1), e.onClick?.();
2205
+ },
2206
+ children: e.label
2207
+ }, e.id))
2161
2208
  })]
2162
2209
  });
2163
2210
  }
2164
2211
  //#endregion
2212
+ //#region src/components/BottomNav.tsx
2213
+ function nt({ items: e, activeId: r }) {
2214
+ return /* @__PURE__ */ t("nav", {
2215
+ className: "bottom-nav",
2216
+ "aria-label": "Primary",
2217
+ children: e.map((e) => /* @__PURE__ */ n("button", {
2218
+ type: "button",
2219
+ className: `bottom-nav__item${e.id === r ? " bottom-nav__item--active" : ""}`,
2220
+ "aria-current": e.id === r ? "page" : void 0,
2221
+ onClick: e.onClick,
2222
+ children: [/* @__PURE__ */ t("span", {
2223
+ className: "bottom-nav__icon",
2224
+ children: e.icon
2225
+ }), /* @__PURE__ */ t("span", {
2226
+ className: "bottom-nav__label",
2227
+ children: e.label
2228
+ })]
2229
+ }, e.id))
2230
+ });
2231
+ }
2232
+ //#endregion
2165
2233
  //#region src/components/Sidebar.tsx
2166
- function tt({ items: e, activeId: r, collapsed: i = !1, header: a }) {
2234
+ function rt({ items: e, activeId: r, collapsed: i = !1, header: a }) {
2167
2235
  return /* @__PURE__ */ n("nav", {
2168
2236
  className: `sidebar${i ? " sidebar--collapsed" : ""}`,
2169
2237
  children: [a && /* @__PURE__ */ t("div", {
@@ -2189,7 +2257,7 @@ function tt({ items: e, activeId: r, collapsed: i = !1, header: a }) {
2189
2257
  }
2190
2258
  //#endregion
2191
2259
  //#region src/components/ButtonGroup.tsx
2192
- function nt({ children: e }) {
2260
+ function it({ children: e }) {
2193
2261
  return /* @__PURE__ */ t("div", {
2194
2262
  className: "button-group",
2195
2263
  children: e
@@ -2197,7 +2265,7 @@ function nt({ children: e }) {
2197
2265
  }
2198
2266
  //#endregion
2199
2267
  //#region src/components/ColorPicker.tsx
2200
- var rt = [
2268
+ var at = [
2201
2269
  "#8FB4F5",
2202
2270
  "#7FD8C9",
2203
2271
  "#C9A8F0",
@@ -2205,7 +2273,7 @@ var rt = [
2205
2273
  "#F19A9A",
2206
2274
  "#8FCB9E"
2207
2275
  ];
2208
- function it({ value: e, onChange: r, swatches: i = rt, label: a = "Color" }) {
2276
+ function ot({ value: e, onChange: r, swatches: i = at, label: a = "Color" }) {
2209
2277
  return /* @__PURE__ */ n("div", {
2210
2278
  className: "color-picker",
2211
2279
  role: "group",
@@ -2230,7 +2298,7 @@ function it({ value: e, onChange: r, swatches: i = rt, label: a = "Color" }) {
2230
2298
  }
2231
2299
  //#endregion
2232
2300
  //#region src/components/PasswordInput.tsx
2233
- function at({ label: e, value: r, onChange: i, placeholder: a, disabled: o = !1, error: s = !1, hint: l, id: u, autoComplete: f = "current-password" }) {
2301
+ function st({ label: e, value: r, onChange: i, placeholder: a, disabled: o = !1, error: s = !1, hint: l, id: u, autoComplete: f = "current-password" }) {
2234
2302
  let [p, m] = d(!1), h = c(), g = u ?? h;
2235
2303
  return /* @__PURE__ */ n("div", {
2236
2304
  className: `field${s ? " field--error" : ""}`,
@@ -2273,7 +2341,7 @@ function at({ label: e, value: r, onChange: i, placeholder: a, disabled: o = !1,
2273
2341
  }
2274
2342
  //#endregion
2275
2343
  //#region src/components/OTPInput.tsx
2276
- function ot({ length: e = 6, value: n, onChange: r, disabled: i = !1, label: a = "Verification code" }) {
2344
+ function ct({ length: e = 6, value: n, onChange: r, disabled: i = !1, label: a = "Verification code" }) {
2277
2345
  let o = u([]), s = Array.from({ length: e }, (e, t) => n[t] ?? ""), c = (t, n) => {
2278
2346
  let i = s.slice();
2279
2347
  i[t] = n, r(i.join("").slice(0, e));
@@ -2309,7 +2377,7 @@ function ot({ length: e = 6, value: n, onChange: r, disabled: i = !1, label: a =
2309
2377
  }
2310
2378
  //#endregion
2311
2379
  //#region src/components/LoadingOverlay.tsx
2312
- function st({ active: e, children: r, label: i = "Loading" }) {
2380
+ function lt({ active: e, children: r, label: i = "Loading" }) {
2313
2381
  return /* @__PURE__ */ n("div", {
2314
2382
  className: "loading-overlay",
2315
2383
  children: [r, e && /* @__PURE__ */ t("div", {
@@ -2322,7 +2390,7 @@ function st({ active: e, children: r, label: i = "Loading" }) {
2322
2390
  }
2323
2391
  //#endregion
2324
2392
  //#region src/components/ErrorBoundary.tsx
2325
- var ct = class extends r {
2393
+ var ut = class extends r {
2326
2394
  state = { error: null };
2327
2395
  static getDerivedStateFromError(e) {
2328
2396
  return { error: e };
@@ -2353,7 +2421,7 @@ var ct = class extends r {
2353
2421
  };
2354
2422
  //#endregion
2355
2423
  //#region src/components/Carousel.tsx
2356
- function lt({ items: r, autoPlay: i = !1, interval: a = 4e3 }) {
2424
+ function dt({ items: r, autoPlay: i = !1, interval: a = 4e3 }) {
2357
2425
  let [o, c] = d(0);
2358
2426
  if (s(() => {
2359
2427
  if (!i || r.length <= 1) return;
@@ -2407,12 +2475,12 @@ function lt({ items: r, autoPlay: i = !1, interval: a = 4e3 }) {
2407
2475
  }
2408
2476
  //#endregion
2409
2477
  //#region src/components/Portal.tsx
2410
- function ut({ children: e }) {
2478
+ function ft({ children: e }) {
2411
2479
  return typeof document > "u" ? null : f(e, document.body);
2412
2480
  }
2413
2481
  //#endregion
2414
2482
  //#region src/hooks/useClickOutside.ts
2415
- function dt(e, t, n = !0) {
2483
+ function pt(e, t, n = !0) {
2416
2484
  s(() => {
2417
2485
  if (!n) return;
2418
2486
  let r = (n) => {
@@ -2431,7 +2499,7 @@ function dt(e, t, n = !0) {
2431
2499
  }
2432
2500
  //#endregion
2433
2501
  //#region src/chartTheme.ts
2434
- var ft = [
2502
+ var mt = [
2435
2503
  "#8FB4F5",
2436
2504
  "#7FD8C9",
2437
2505
  "#C9A8F0",
@@ -2468,7 +2536,7 @@ function Z() {
2468
2536
  }
2469
2537
  };
2470
2538
  }
2471
- var pt = Z().axisColor, mt = Z().gridColor, ht = {
2539
+ var ht = Z().axisColor, gt = Z().gridColor, _t = {
2472
2540
  ...Z().tooltip,
2473
2541
  borderWidth: 1,
2474
2542
  padding: 8,
@@ -2507,7 +2575,7 @@ var $ = {
2507
2575
  family: "'IBM Plex Mono', monospace"
2508
2576
  }
2509
2577
  };
2510
- function gt(e) {
2578
+ function vt(e) {
2511
2579
  if (typeof window > "u") return () => {};
2512
2580
  let t = window.matchMedia("(prefers-color-scheme: dark)");
2513
2581
  t.addEventListener("change", e);
@@ -2519,7 +2587,7 @@ function gt(e) {
2519
2587
  t.removeEventListener("change", e), n.disconnect();
2520
2588
  };
2521
2589
  }
2522
- function _t(e, { rotateXTicks: t = !1, maxTicks: n, longLabels: r = !1 } = {}) {
2590
+ function yt(e, { rotateXTicks: t = !1, maxTicks: n, longLabels: r = !1 } = {}) {
2523
2591
  let { gridColor: i, axisColor: a } = Z();
2524
2592
  return {
2525
2593
  responsive: !0,
@@ -2580,7 +2648,7 @@ function _t(e, { rotateXTicks: t = !1, maxTicks: n, longLabels: r = !1 } = {}) {
2580
2648
  }
2581
2649
  };
2582
2650
  }
2583
- function vt({ cutout: e = "65%", showLegend: t = !0 } = {}) {
2651
+ function bt({ cutout: e = "65%", showLegend: t = !0 } = {}) {
2584
2652
  return {
2585
2653
  responsive: !0,
2586
2654
  maintainAspectRatio: !1,
@@ -2598,7 +2666,7 @@ function vt({ cutout: e = "65%", showLegend: t = !0 } = {}) {
2598
2666
  }
2599
2667
  };
2600
2668
  }
2601
- function yt({ maxTicks: e, beginAtZero: t = !0 } = {}) {
2669
+ function xt({ maxTicks: e, beginAtZero: t = !0 } = {}) {
2602
2670
  let { gridColor: n, axisColor: r } = Z();
2603
2671
  return {
2604
2672
  indexAxis: "y",
@@ -2632,7 +2700,7 @@ function yt({ maxTicks: e, beginAtZero: t = !0 } = {}) {
2632
2700
  }
2633
2701
  };
2634
2702
  }
2635
- function bt({ maxTicks: e, beginAtZero: t = !0, unit: n = "" } = {}) {
2703
+ function St({ maxTicks: e, beginAtZero: t = !0, unit: n = "" } = {}) {
2636
2704
  let { gridColor: r, axisColor: i } = Z();
2637
2705
  return {
2638
2706
  responsive: !0,
@@ -2671,7 +2739,7 @@ function bt({ maxTicks: e, beginAtZero: t = !0, unit: n = "" } = {}) {
2671
2739
  }
2672
2740
  };
2673
2741
  }
2674
- function xt({ maxTicks: e, rotateXTicks: t = !1 } = {}) {
2742
+ function Ct({ maxTicks: e, rotateXTicks: t = !1 } = {}) {
2675
2743
  let { gridColor: n, axisColor: r } = Z();
2676
2744
  return {
2677
2745
  responsive: !0,
@@ -2718,7 +2786,7 @@ function xt({ maxTicks: e, rotateXTicks: t = !1 } = {}) {
2718
2786
  }
2719
2787
  };
2720
2788
  }
2721
- function St() {
2789
+ function wt() {
2722
2790
  let { gridColor: e, axisColor: t } = Z();
2723
2791
  return {
2724
2792
  responsive: !0,
@@ -2749,7 +2817,7 @@ function St() {
2749
2817
  } }
2750
2818
  };
2751
2819
  }
2752
- function Ct(e, t, n) {
2820
+ function Tt(e, t, n) {
2753
2821
  return e.map((r, i) => {
2754
2822
  let a = Math.max(0, i - n + 1), o = e.slice(a, i + 1).filter((e) => e[t] != null);
2755
2823
  if (!o.length) return null;
@@ -2759,11 +2827,11 @@ function Ct(e, t, n) {
2759
2827
  }
2760
2828
  //#endregion
2761
2829
  //#region src/chartSetup.ts
2762
- var wt = !1;
2763
- function Tt() {
2764
- wt || (wt = !0, p.register(...m, h), p.defaults.set("plugins.datalabels", { display: !1 }));
2830
+ var Et = !1;
2831
+ function Dt() {
2832
+ Et || (Et = !0, p.register(...m, h), p.defaults.set("plugins.datalabels", { display: !1 }));
2765
2833
  }
2766
2834
  //#endregion
2767
- export { pt as AXIS_COLOR, Y as AXIS_TICK_FONT, me as Accordion, K as Alert, H as Avatar, Xe as AvatarGroup, j as Badge, se as Breadcrumbs, ve as BulletChart, A as Button, nt as ButtonGroup, fe as Card, lt as Carousel, x as ChartCard, ge as ChartLegend, z as Checkbox, Ze as CodeBlock, it as ColorPicker, ze as Combobox, ke as Container, W as CopyButton, Ke as DatePicker, O as DateRangePicker, Ee as DescriptionList, Ne as Divider, xe as Drawer, pe as EmptyState, ct as ErrorBoundary, Re as Fieldset, Ve as FileUpload, mt as GRID_COLOR, le as Gauge, Me as Grid, je as HStack, Oe as Heading, y as Icon, Ie as IconButton, b as InfoTooltip, M as Input, Qe as Kbd, Pe as Link, Je as List, st as LoadingOverlay, ie as Menu, _e as MiniBar, P as Modal, et as Navbar, Be as NumberStepper, ot as OTPInput, ft as PALETTE, oe as Pagination, at as PasswordInput, Se as Popover, ut as Portal, ce as ProgressBar, B as Radio, te as RadioGroup, qe as Rating, _ as ScoreCard, we as SearchInput, he as SegmentedControl, S as Select, tt as Sidebar, re as Skeleton, ye as Slider, g as Sparkline, U as Spinner, G as Stack, Te as StatusDot, be as Stepper, ee as Switch, ht as TOOLTIP_OPTS, N as Table, k as Tabs, Ce as TagInput, De as Text, ne as Textarea, Ye as Timeline, L as ToastProvider, Le as Tooltip, $e as Tree, Ae as VStack, bt as areaOptions, vt as donutOptions, _t as dualAxisOptions, Z as getChartColors, yt as horizontalBarOptions, Tt as installCharts, gt as onThemeChange, St as radarOptions, Ct as rollingAverage, xt as stackedBarOptions, dt as useClickOutside, R as useToast };
2835
+ export { ht as AXIS_COLOR, Y as AXIS_TICK_FONT, me as Accordion, K as Alert, H as Avatar, Xe as AvatarGroup, j as Badge, nt as BottomNav, se as Breadcrumbs, ve as BulletChart, A as Button, it as ButtonGroup, et as Canvas, fe as Card, dt as Carousel, x as ChartCard, ge as ChartLegend, z as Checkbox, Ze as CodeBlock, ot as ColorPicker, ze as Combobox, ke as Container, W as CopyButton, Ke as DatePicker, O as DateRangePicker, Ee as DescriptionList, Ne as Divider, xe as Drawer, pe as EmptyState, ut as ErrorBoundary, Re as Fieldset, Ve as FileUpload, gt as GRID_COLOR, le as Gauge, Me as Grid, je as HStack, Oe as Heading, y as Icon, Ie as IconButton, b as InfoTooltip, M as Input, Qe as Kbd, Pe as Link, Je as List, lt as LoadingOverlay, ie as Menu, _e as MiniBar, P as Modal, tt as Navbar, Be as NumberStepper, ct as OTPInput, mt as PALETTE, oe as Pagination, st as PasswordInput, Se as Popover, ft as Portal, ce as ProgressBar, B as Radio, te as RadioGroup, qe as Rating, _ as ScoreCard, we as SearchInput, he as SegmentedControl, S as Select, rt as Sidebar, re as Skeleton, ye as Slider, g as Sparkline, U as Spinner, G as Stack, Te as StatusDot, be as Stepper, ee as Switch, _t as TOOLTIP_OPTS, N as Table, k as Tabs, Ce as TagInput, De as Text, ne as Textarea, Ye as Timeline, L as ToastProvider, Le as Tooltip, $e as Tree, Ae as VStack, St as areaOptions, bt as donutOptions, yt as dualAxisOptions, Z as getChartColors, xt as horizontalBarOptions, Dt as installCharts, vt as onThemeChange, wt as radarOptions, Tt as rollingAverage, Ct as stackedBarOptions, pt as useClickOutside, R as useToast };
2768
2836
 
2769
2837
  //# sourceMappingURL=index.js.map