@knkcs/anker 1.12.0 → 2.0.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/CLAUDE-ANKER.md CHANGED
@@ -65,6 +65,7 @@ The full human-facing spec lives at the anker GitHub Pages docs site (linked fro
65
65
  - **No `maxW` on a Card inside a settings/detail template body.** The template controls width; per-card overrides break visual rhythm and produce orphaned narrow cards on full-width pages. Why: the template is the contract for body width — cards are the contract for content surfacing.
66
66
  - **No inline create-forms above a DataTable.** Use a header-action button (or `usePageActions` from a tab) that opens a `Modal`. Why: inline forms steal vertical space, drift from the master pattern, and split form state from the rest of the page.
67
67
  - **Don't own `<Tabs.Root>` for an owned-panels tab page.** Use `SettingsPageTemplate.bodyTabs` or `DetailPageTemplate.bodyTabs`. Why: the template enforces `lazyMount unmountOnExit` so `usePageActions` registrations from inactive tabs can't collide with the active tab's. Consumer-owned `<Tabs.Root>` was the cause of the "stuck Add button" bug fixed in anker 1.12. The `tabs` prop on those templates is for nav-mode/filter-mode strips only (Tabs.List, no Tabs.Content).
68
+ - **Don't wrap Card children in `<Box p="N">`.** `<Card>` body has built-in padding via Chakra's CardBody (~24px). Wrapping in `<Box p>` doubles it. Pass content directly (use `<Stack>` for layout). Why: a uniform Card body padding is the visual contract; per-Card overrides break visual rhythm and make Cards look heavier than the rest of the design system.
68
69
 
69
70
  ---
70
71
 
@@ -1,8 +1,8 @@
1
1
  export { A as AuthCard, a as AuthCardProps, P as PageHeader, b as PageHeaderBreadcrumb, c as PageHeaderProps } from '../page-header-D-kxNn-f.js';
2
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
3
3
  import * as React$1 from 'react';
4
- import React__default, { MouseEventHandler } from 'react';
5
- import { CardRootProps, TextProps, IconButtonProps, DrawerRootProps, DialogRootProps, HTMLChakraProps, Timeline, TreeView } from '@chakra-ui/react';
4
+ import React__default, { ReactNode, MouseEventHandler } from 'react';
5
+ import { CardRootProps, TextProps, IconButtonProps, DrawerRootProps, HTMLChakraProps, DialogRootProps, Timeline, TreeView } from '@chakra-ui/react';
6
6
  export { TreeCollection, createTreeCollection } from '@chakra-ui/react';
7
7
  import { ColumnDef, RowSelectionState, OnChangeFn, SortingState, Row } from '@tanstack/react-table';
8
8
  import { a as SwitchProps } from '../switch-B0o6G2XE.js';
@@ -425,6 +425,26 @@ declare const DataTable: typeof DataTableInner & {
425
425
  displayName: string;
426
426
  };
427
427
 
428
+ interface DescriptionListProps {
429
+ orientation?: "horizontal" | "vertical";
430
+ gap?: string;
431
+ children: ReactNode;
432
+ }
433
+ declare function DescriptionList({ orientation, gap, children, }: DescriptionListProps): react_jsx_runtime.JSX.Element;
434
+ declare namespace DescriptionList {
435
+ var displayName: string;
436
+ var Row: typeof DescriptionListRow;
437
+ }
438
+ interface DescriptionListRowProps {
439
+ label: ReactNode;
440
+ mono?: boolean;
441
+ children: ReactNode;
442
+ }
443
+ declare function DescriptionListRow({ label, mono, children, }: DescriptionListRowProps): react_jsx_runtime.JSX.Element;
444
+ declare namespace DescriptionListRow {
445
+ var displayName: string;
446
+ }
447
+
428
448
  interface DrawerProps extends Omit<DrawerRootProps, "open" | "onOpenChange"> {
429
449
  /** Whether the drawer is open. */
430
450
  open: boolean;
@@ -494,6 +514,28 @@ interface InlineCreatableListProps<T> {
494
514
  }
495
515
  declare const InlineCreatableList: <T>(props: InlineCreatableListProps<T>) => React$1.ReactElement;
496
516
 
517
+ interface KnkLogoProps extends Omit<HTMLChakraProps<"img">, "as" | "src" | "alt" | "invert"> {
518
+ /** Pixel or token size; controls width. Default 48. */
519
+ boxSize?: number | string;
520
+ /**
521
+ * When true, applies a CSS filter to render the logo in white,
522
+ * suitable for dark backgrounds like the primary-colored sidebar.
523
+ */
524
+ invert?: boolean;
525
+ /** Override the default "knkcms" alt text. */
526
+ alt?: string;
527
+ }
528
+ /**
529
+ * KnkLogo renders the knkcms brand mark via an <img> referencing the
530
+ * SVG asset. Use the `invert` prop on dark backgrounds (e.g. the
531
+ * primary-colored sidebar) until the source SVG is rewritten to use
532
+ * `currentColor` for fills.
533
+ */
534
+ declare const KnkLogo: {
535
+ ({ boxSize, invert, alt, ...rest }: KnkLogoProps): react_jsx_runtime.JSX.Element;
536
+ displayName: string;
537
+ };
538
+
497
539
  interface LabeledSwitchProps extends SwitchProps {
498
540
  name: string;
499
541
  label: string;
@@ -603,8 +645,8 @@ interface SidebarProps {
603
645
  children: React__default.ReactNode;
604
646
  }
605
647
  interface SidebarLogoProps {
606
- wordmark: string;
607
- subtitle?: string;
648
+ /** Lowercase product name, e.g. "odon", "core", "mediahub". */
649
+ productName: string;
608
650
  }
609
651
  interface SidebarSectionProps$1 {
610
652
  label: string;
@@ -652,7 +694,7 @@ declare const Sidebar: {
652
694
  displayName: string;
653
695
  };
654
696
  Logo: {
655
- ({ wordmark, subtitle }: SidebarLogoProps): react_jsx_runtime.JSX.Element;
697
+ ({ productName }: SidebarLogoProps): react_jsx_runtime.JSX.Element;
656
698
  displayName: string;
657
699
  };
658
700
  Slot: {
@@ -960,4 +1002,4 @@ interface WidgetProps {
960
1002
  }
961
1003
  declare const Widget: React__default.FC<WidgetProps>;
962
1004
 
963
- export { ActionCell, type ActionCellAction, type ActionCellProps, BooleanCell, type BooleanCellProps, BulkActionBar, type BulkActionBarProps, type BulkActionProps, type BulkPopoverActionProps, Card, CardList, CardListData, type CardListDataProps, CardListItem, type CardListItemProps, type CardListMenuItem, type CardListProps, type CardProps, ChipPicker, type ChipPickerProps, CodeCell, type CodeCellProps, ColorSwatchCell, type ColorSwatchCellProps, ContextRail, type ContextRailHeaderProps, type ContextRailProps, type ContextRailSectionProps, CountCell, type CountCellProps, DataTable, type DataTableProps, DateCell, type DateCellProps, DeviceCell, type DeviceCellProps, type DrawerProps, DrawerRoot, FactBox, type FactBoxAction, type FactBoxProps, IdentityCell, type IdentityCellProps, InlineCreatableList, type InlineCreatableListProps, LabeledSwitch, type LabeledSwitchProps, LinkCell, type LinkCellProps, MenuCell, type MenuCellAction, type MenuCellProps, Modal, type ModalProps, NumberCell, type NumberCellProps, Pagination, type PaginationProps, SelectableCard, type SelectableCardBodyProps, type SelectableCardFooterProps, type SelectableCardProps, type SelectableCardThumbnailProps, Sidebar, type SidebarItemProps, type SidebarLogoProps, type SidebarSectionProps$1 as SidebarNavSectionProps, type SidebarProps, SidebarSection, type SidebarSectionProps, type SidebarUserMenuItemProps, type SidebarUserMenuProps, SlugCell, type SlugCellProps, StatusBadgeCell, type StatusBadgeCellProps, Stepper, StepperCompleted, StepperContainer, StepperContent, type StepperContentProps, StepperIcon, type StepperIconProps, type StepperProps, StepperProvider, StepperSeparator, type StepperSeparatorProps, StepperStep, type StepperStepProps, StepperStepTitle, StepperSteps, type StepperStepsProps, SwitchCell, type SwitchCellProps, CardList as Table, CardListData as TableData, type CardListDataProps as TableDataProps, CardListItem as TableItem, type CardListItemProps as TableItemProps, type CardListMenuItem as TableMenuItem, type CardListProps as TableProps, TimelineConnector, TimelineContent, TimelineDescription, TimelineIndicator, TimelineItem, type TimelineItemProps, TimelineRoot, type TimelineRootProps, TimelineSeparator, TimelineTitle, Toolbar, type ToolbarFilterChipProps, type ToolbarSearchProps, TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, type TreeViewBranchProps, TreeViewBranchText, TreeViewBranchTrigger, TreeViewItem, TreeViewItemIndicator, type TreeViewItemProps, TreeViewItemText, TreeViewLabel, TreeViewNode, TreeViewRoot, type TreeViewRootProps, TreeViewTree, TruncatedTextCell, type TruncatedTextCellProps, UploadDropZone, type UploadDropZoneProps, UrlCell, type UrlCellProps, type UseStepProps, type UseStepperProps, type UseStepperReturn, Widget, type WidgetProps, emptyCellValue, formatUserAgent, parseUserAgent, pluralize, truncateText, useSidebarContext, useStep, useStepper, useStepperContext, useStepperNextButton, useStepperPrevButton };
1005
+ export { ActionCell, type ActionCellAction, type ActionCellProps, BooleanCell, type BooleanCellProps, BulkActionBar, type BulkActionBarProps, type BulkActionProps, type BulkPopoverActionProps, Card, CardList, CardListData, type CardListDataProps, CardListItem, type CardListItemProps, type CardListMenuItem, type CardListProps, type CardProps, ChipPicker, type ChipPickerProps, CodeCell, type CodeCellProps, ColorSwatchCell, type ColorSwatchCellProps, ContextRail, type ContextRailHeaderProps, type ContextRailProps, type ContextRailSectionProps, CountCell, type CountCellProps, DataTable, type DataTableProps, DateCell, type DateCellProps, DescriptionList, type DescriptionListProps, type DescriptionListRowProps, DeviceCell, type DeviceCellProps, type DrawerProps, DrawerRoot, FactBox, type FactBoxAction, type FactBoxProps, IdentityCell, type IdentityCellProps, InlineCreatableList, type InlineCreatableListProps, KnkLogo, type KnkLogoProps, LabeledSwitch, type LabeledSwitchProps, LinkCell, type LinkCellProps, MenuCell, type MenuCellAction, type MenuCellProps, Modal, type ModalProps, NumberCell, type NumberCellProps, Pagination, type PaginationProps, SelectableCard, type SelectableCardBodyProps, type SelectableCardFooterProps, type SelectableCardProps, type SelectableCardThumbnailProps, Sidebar, type SidebarItemProps, type SidebarLogoProps, type SidebarSectionProps$1 as SidebarNavSectionProps, type SidebarProps, SidebarSection, type SidebarSectionProps, type SidebarUserMenuItemProps, type SidebarUserMenuProps, SlugCell, type SlugCellProps, StatusBadgeCell, type StatusBadgeCellProps, Stepper, StepperCompleted, StepperContainer, StepperContent, type StepperContentProps, StepperIcon, type StepperIconProps, type StepperProps, StepperProvider, StepperSeparator, type StepperSeparatorProps, StepperStep, type StepperStepProps, StepperStepTitle, StepperSteps, type StepperStepsProps, SwitchCell, type SwitchCellProps, CardList as Table, CardListData as TableData, type CardListDataProps as TableDataProps, CardListItem as TableItem, type CardListItemProps as TableItemProps, type CardListMenuItem as TableMenuItem, type CardListProps as TableProps, TimelineConnector, TimelineContent, TimelineDescription, TimelineIndicator, TimelineItem, type TimelineItemProps, TimelineRoot, type TimelineRootProps, TimelineSeparator, TimelineTitle, Toolbar, type ToolbarFilterChipProps, type ToolbarSearchProps, TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, type TreeViewBranchProps, TreeViewBranchText, TreeViewBranchTrigger, TreeViewItem, TreeViewItemIndicator, type TreeViewItemProps, TreeViewItemText, TreeViewLabel, TreeViewNode, TreeViewRoot, type TreeViewRootProps, TreeViewTree, TruncatedTextCell, type TruncatedTextCellProps, UploadDropZone, type UploadDropZoneProps, UrlCell, type UrlCellProps, type UseStepProps, type UseStepperProps, type UseStepperReturn, Widget, type WidgetProps, emptyCellValue, formatUserAgent, parseUserAgent, pluralize, truncateText, useSidebarContext, useStep, useStepper, useStepperContext, useStepperNextButton, useStepperPrevButton };
@@ -8,7 +8,7 @@ export { AuthCard, PageHeader } from '../chunk-D5ICTOCW.js';
8
8
  import { Box, Flex, Heading, Text, HStack, Grid, GridItem, Code, VStack, Link, Spacer, Stack } from '../chunk-G4QMIXLC.js';
9
9
  import { PanelRightOpen, PanelRightClose, ChevronRight, Search, PanelLeftOpen, PanelLeftClose, X, Ellipsis, Plus, ChevronLeft, ArrowUp, ArrowDown, ArrowUpDown, ChevronDown, Check, Upload } from 'lucide-react';
10
10
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
11
- import { createContext as createContext$1, Timeline, TreeView, Card as Card$1, Menu, Portal, Checkbox, Drawer, ButtonGroup, Dialog, useSlotRecipe, chakra } from '@chakra-ui/react';
11
+ import { createContext as createContext$1, Timeline, TreeView, chakra, Card as Card$1, Menu, Portal, Checkbox, Drawer, ButtonGroup, Dialog, useSlotRecipe } from '@chakra-ui/react';
12
12
  export { createTreeCollection } from '@chakra-ui/react';
13
13
  import React3, { createContext, useState, useEffect, useMemo, useContext, useRef, Children, useCallback } from 'react';
14
14
  import dayjs from 'dayjs';
@@ -1175,6 +1175,53 @@ function DataTableInner(props) {
1175
1175
  }
1176
1176
  var DataTable = DataTableInner;
1177
1177
  DataTable.displayName = "DataTable";
1178
+ var DescriptionListContext = createContext({
1179
+ orientation: "horizontal"
1180
+ });
1181
+ function DescriptionList({
1182
+ orientation = "horizontal",
1183
+ gap = "3",
1184
+ children
1185
+ }) {
1186
+ return /* @__PURE__ */ jsx(DescriptionListContext.Provider, { value: { orientation }, children: /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", gap, children }) }) });
1187
+ }
1188
+ DescriptionList.displayName = "DescriptionList";
1189
+ function DescriptionListRow({
1190
+ label,
1191
+ mono,
1192
+ children
1193
+ }) {
1194
+ const { orientation } = useContext(DescriptionListContext);
1195
+ if (orientation === "vertical") {
1196
+ return /* @__PURE__ */ jsxs(Box, { children: [
1197
+ /* @__PURE__ */ jsx(Text, { fontSize: "xs", color: "muted", mb: "0.5", children: label }),
1198
+ /* @__PURE__ */ jsx(
1199
+ Text,
1200
+ {
1201
+ fontSize: "sm",
1202
+ fontFamily: mono ? "mono" : void 0,
1203
+ wordBreak: "break-all",
1204
+ children
1205
+ }
1206
+ )
1207
+ ] });
1208
+ }
1209
+ return /* @__PURE__ */ jsxs(Flex, { justify: "space-between", align: "baseline", gap: "3", children: [
1210
+ /* @__PURE__ */ jsx(Text, { color: "muted", fontSize: "sm", children: label }),
1211
+ /* @__PURE__ */ jsx(
1212
+ Text,
1213
+ {
1214
+ fontSize: "sm",
1215
+ fontFamily: mono ? "mono" : void 0,
1216
+ textAlign: "right",
1217
+ wordBreak: "break-all",
1218
+ children
1219
+ }
1220
+ )
1221
+ ] });
1222
+ }
1223
+ DescriptionListRow.displayName = "DescriptionList.Row";
1224
+ DescriptionList.Row = DescriptionListRow;
1178
1225
  var DrawerRoot = ({
1179
1226
  children,
1180
1227
  title,
@@ -1539,6 +1586,26 @@ function InlineCreatableListInner(props) {
1539
1586
  }
1540
1587
  var InlineCreatableList = InlineCreatableListInner;
1541
1588
  InlineCreatableList.displayName = "InlineCreatableList";
1589
+
1590
+ // src/assets/knk-logo.svg
1591
+ var knk_logo_default = "../knk-logo-P6UYZTG6.svg";
1592
+ var KnkLogo = ({
1593
+ boxSize = 48,
1594
+ invert = false,
1595
+ alt = "knkcms",
1596
+ ...rest
1597
+ }) => /* @__PURE__ */ jsx(
1598
+ chakra.img,
1599
+ {
1600
+ src: knk_logo_default,
1601
+ alt,
1602
+ width: boxSize,
1603
+ height: "auto",
1604
+ filter: invert ? "brightness(0) invert(1)" : void 0,
1605
+ ...rest
1606
+ }
1607
+ );
1608
+ KnkLogo.displayName = "KnkLogo";
1542
1609
  var LabeledSwitch = ({
1543
1610
  ref,
1544
1611
  ...props
@@ -1761,7 +1828,7 @@ var SidebarBody = ({ children }) => /* @__PURE__ */ jsx(Box, { flex: "1", overfl
1761
1828
  SidebarBody.displayName = "Sidebar.Body";
1762
1829
  var SidebarFooter = ({ children }) => /* @__PURE__ */ jsx(Box, { p: "3", borderTopWidth: "1px", borderTopColor: "border", children });
1763
1830
  SidebarFooter.displayName = "Sidebar.Footer";
1764
- var SidebarLogo = ({ wordmark, subtitle }) => {
1831
+ var SidebarLogo = ({ productName }) => {
1765
1832
  const { collapsed, toggle } = useSidebarContext();
1766
1833
  const toggleButton = /* @__PURE__ */ jsx(
1767
1834
  IconButton,
@@ -1776,58 +1843,35 @@ var SidebarLogo = ({ wordmark, subtitle }) => {
1776
1843
  );
1777
1844
  if (collapsed) {
1778
1845
  return /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "center", gap: "2", children: [
1779
- /* @__PURE__ */ jsx(
1780
- Heading,
1781
- {
1782
- as: "span",
1783
- fontSize: "lg",
1784
- fontWeight: "bold",
1785
- color: "primary.700",
1786
- letterSpacing: "tight",
1787
- children: wordmark.charAt(0)
1788
- }
1789
- ),
1846
+ /* @__PURE__ */ jsx(KnkLogo, { boxSize: 28, invert: true }),
1790
1847
  toggleButton
1791
1848
  ] });
1792
1849
  }
1793
- return /* @__PURE__ */ jsxs(
1794
- Flex,
1795
- {
1796
- direction: "row",
1797
- align: "center",
1798
- justify: "space-between",
1799
- gap: "2",
1800
- w: "full",
1801
- children: [
1802
- /* @__PURE__ */ jsxs(Box, { mb: subtitle ? "0" : "0", children: [
1803
- /* @__PURE__ */ jsx(
1804
- Heading,
1805
- {
1806
- as: "span",
1807
- fontSize: "lg",
1808
- fontWeight: "bold",
1809
- color: "primary.700",
1810
- letterSpacing: "tight",
1811
- children: wordmark
1812
- }
1813
- ),
1814
- subtitle && /* @__PURE__ */ jsx(
1815
- Text,
1816
- {
1817
- fontSize: "2xs",
1818
- fontWeight: "semibold",
1819
- letterSpacing: "wider",
1820
- textTransform: "uppercase",
1821
- color: "muted",
1822
- mt: "0.5",
1823
- children: subtitle
1824
- }
1825
- )
1826
- ] }),
1827
- toggleButton
1828
- ]
1829
- }
1830
- );
1850
+ return /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "center", gap: "2", w: "full", children: [
1851
+ /* @__PURE__ */ jsxs(Flex, { direction: "column", align: "center", gap: "2", pb: "3", children: [
1852
+ /* @__PURE__ */ jsx(KnkLogo, { boxSize: 48, invert: true }),
1853
+ /* @__PURE__ */ jsx(
1854
+ Text,
1855
+ {
1856
+ fontSize: "sm",
1857
+ fontWeight: "semibold",
1858
+ color: "currentColor",
1859
+ lineHeight: "1",
1860
+ children: productName
1861
+ }
1862
+ )
1863
+ ] }),
1864
+ /* @__PURE__ */ jsx(
1865
+ Box,
1866
+ {
1867
+ w: "full",
1868
+ borderBottomWidth: "1px",
1869
+ borderBottomColor: "whiteAlpha.200",
1870
+ mb: "2"
1871
+ }
1872
+ ),
1873
+ /* @__PURE__ */ jsx(Flex, { w: "full", justify: "flex-end", children: toggleButton })
1874
+ ] });
1831
1875
  };
1832
1876
  SidebarLogo.displayName = "Sidebar.Logo";
1833
1877
  var SidebarSlot = ({ children }) => /* @__PURE__ */ jsx(Box, { mt: "3", children });
@@ -2647,6 +2691,6 @@ var Widget = ({
2647
2691
  };
2648
2692
  Widget.displayName = "Widget";
2649
2693
 
2650
- export { ActionCell, BooleanCell, BulkActionBar, Card, CardList, CardListData, CardListItem, ChipPicker, CodeCell, ColorSwatchCell, ContextRail, CountCell, DataTable, DateCell, DeviceCell, DrawerRoot, FactBox, IdentityCell, InlineCreatableList, LabeledSwitch, LinkCell, MenuCell, Modal, NumberCell, Pagination, SelectableCard, Sidebar, SidebarSection2 as SidebarSection, SlugCell, StatusBadgeCell, Stepper, StepperCompleted, StepperContainer, StepperContent, StepperIcon, StepperProvider, StepperSeparator, StepperStep, StepperStepTitle, StepperSteps, SwitchCell, CardList as Table, CardListData as TableData, CardListItem as TableItem, TimelineConnector, TimelineContent, TimelineDescription, TimelineIndicator, TimelineItem, TimelineRoot, TimelineSeparator, TimelineTitle, Toolbar, TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, TreeViewBranchText, TreeViewBranchTrigger, TreeViewItem, TreeViewItemIndicator, TreeViewItemText, TreeViewLabel, TreeViewNode, TreeViewRoot, TreeViewTree, TruncatedTextCell, UploadDropZone, UrlCell, Widget, emptyCellValue, formatUserAgent, parseUserAgent, pluralize, truncateText, useSidebarContext, useStep, useStepper, useStepperContext, useStepperNextButton, useStepperPrevButton };
2694
+ export { ActionCell, BooleanCell, BulkActionBar, Card, CardList, CardListData, CardListItem, ChipPicker, CodeCell, ColorSwatchCell, ContextRail, CountCell, DataTable, DateCell, DescriptionList, DeviceCell, DrawerRoot, FactBox, IdentityCell, InlineCreatableList, KnkLogo, LabeledSwitch, LinkCell, MenuCell, Modal, NumberCell, Pagination, SelectableCard, Sidebar, SidebarSection2 as SidebarSection, SlugCell, StatusBadgeCell, Stepper, StepperCompleted, StepperContainer, StepperContent, StepperIcon, StepperProvider, StepperSeparator, StepperStep, StepperStepTitle, StepperSteps, SwitchCell, CardList as Table, CardListData as TableData, CardListItem as TableItem, TimelineConnector, TimelineContent, TimelineDescription, TimelineIndicator, TimelineItem, TimelineRoot, TimelineSeparator, TimelineTitle, Toolbar, TreeViewBranch, TreeViewBranchContent, TreeViewBranchControl, TreeViewBranchIndicator, TreeViewBranchText, TreeViewBranchTrigger, TreeViewItem, TreeViewItemIndicator, TreeViewItemText, TreeViewLabel, TreeViewNode, TreeViewRoot, TreeViewTree, TruncatedTextCell, UploadDropZone, UrlCell, Widget, emptyCellValue, formatUserAgent, parseUserAgent, pluralize, truncateText, useSidebarContext, useStep, useStepper, useStepperContext, useStepperNextButton, useStepperPrevButton };
2651
2695
  //# sourceMappingURL=index.js.map
2652
2696
  //# sourceMappingURL=index.js.map