@knkcs/anker 0.0.4 → 0.0.6

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,15 +1,17 @@
1
1
  import { Prose, Avatar } from '../chunk-ZFBDVERP.js';
2
- import { formatRelativeToCurrentWeekDateTime, formatRelativeDateTime } from '../chunk-KVPN6T6J.js';
3
- export { StatusBadge, formatRelativeDateTime, formatRelativeToCurrentWeekDateTime } from '../chunk-KVPN6T6J.js';
4
- import { Tooltip, MenuRoot, MenuTrigger, MenuContent, MenuItem } from '../chunk-NJFF6S77.js';
2
+ import { formatRelativeToCurrentWeekDateTime, formatRelativeDateTime } from '../chunk-NQN6LXYU.js';
3
+ export { StatusBadge, formatRelativeDateTime, formatRelativeToCurrentWeekDateTime } from '../chunk-NQN6LXYU.js';
4
+ import { Tooltip, Table, MenuRoot, MenuTrigger, MenuContent, MenuItem, Badge } from '../chunk-2QFOWHTU.js';
5
5
  export { SearchInput } from '../chunk-E7KRPPCQ.js';
6
+ import { Textarea } from '../chunk-NFZMG6ZL.js';
6
7
  import { text_input_default } from '../chunk-OU6H3KU4.js';
7
8
  export { text_input_default as TextInput } from '../chunk-OU6H3KU4.js';
8
9
  import { Spinner } from '../chunk-5YDCDC4B.js';
9
10
  import { IconButton, Button } from '../chunk-SJ6YXNZW.js';
10
11
  export { Button, IconButton } from '../chunk-SJ6YXNZW.js';
11
- import { DataList as DataList$1, Text, Box, Icon, Circle, useCheckboxGroup, Stack, Clipboard, IconButton as IconButton$1, Input, Flex, HStack, chakra, Textarea, ButtonGroup, Button as Button$1, Heading, Table, Square, Badge } from '@chakra-ui/react';
12
+ import { Text, Box, Stack as Stack$1, Flex, HStack, Heading } from '../chunk-G4QMIXLC.js';
12
13
  import { jsx, jsxs } from 'react/jsx-runtime';
14
+ import { DataList as DataList$1, Icon, Circle, useCheckboxGroup, Stack, Box as Box$1, Clipboard, IconButton as IconButton$1, Input, chakra, ButtonGroup, Button as Button$1, Square } from '@chakra-ui/react';
13
15
  import { ChevronRight, ChevronDown, Pencil, Filter as Filter$1, GripVertical, X, Clipboard as Clipboard$1, Check, Link, Plus } from 'lucide-react';
14
16
  import React, { createContext, memo, useRef, useState, useCallback, useEffect, useMemo, useContext } from 'react';
15
17
  import dayjs2 from 'dayjs';
@@ -133,7 +135,7 @@ var CheckboxCard = (props) => {
133
135
  const { checkboxProps, children, ...rest } = props;
134
136
  const id = React.useId();
135
137
  return /* @__PURE__ */ jsx(
136
- Box,
138
+ Box$1,
137
139
  {
138
140
  cursor: "pointer",
139
141
  css: {
@@ -145,7 +147,7 @@ var CheckboxCard = (props) => {
145
147
  asChild: true,
146
148
  children: /* @__PURE__ */ jsxs("label", { children: [
147
149
  /* @__PURE__ */ jsx("input", { type: "checkbox", "aria-labelledby": id, ...checkboxProps }),
148
- /* @__PURE__ */ jsx(Box, { ...rest, children: /* @__PURE__ */ jsx(Stack, { direction: "row", children: /* @__PURE__ */ jsx(Box, { flex: "1", id, children }) }) })
150
+ /* @__PURE__ */ jsx(Box$1, { ...rest, children: /* @__PURE__ */ jsx(Stack, { direction: "row", children: /* @__PURE__ */ jsx(Box$1, { flex: "1", id, children }) }) })
149
151
  ] })
150
152
  }
151
153
  );
@@ -208,7 +210,7 @@ var ColorSwatchPicker = ({
208
210
  onChange(trimmed);
209
211
  }
210
212
  };
211
- return /* @__PURE__ */ jsxs(Stack, { gap: 3, children: [
213
+ return /* @__PURE__ */ jsxs(Stack$1, { gap: 3, children: [
212
214
  /* @__PURE__ */ jsx(Flex, { wrap: "wrap", gap: 2, children: presets.map((color) => /* @__PURE__ */ jsx(
213
215
  Box,
214
216
  {
@@ -346,8 +348,8 @@ var Comment = (props) => {
346
348
  };
347
349
  return /* @__PURE__ */ jsx(chakra.div, { css: styles.container, "data-id": id, ...rest, children: /* @__PURE__ */ jsxs(CommentStylesContext.Provider, { value: styles, children: [
348
350
  avatar && /* @__PURE__ */ jsx(AvatarSlot, { children: avatar }),
349
- (content || isDeleted) && /* @__PURE__ */ jsx(ContentContainer, { children: /* @__PURE__ */ jsxs(Stack, { gap: 3, children: [
350
- /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
351
+ (content || isDeleted) && /* @__PURE__ */ jsx(ContentContainer, { children: /* @__PURE__ */ jsxs(Stack$1, { gap: 3, children: [
352
+ /* @__PURE__ */ jsxs(Stack$1, { gap: 2, children: [
351
353
  /* @__PURE__ */ jsx(CommentHeader, { ...headerProps }),
352
354
  /* @__PURE__ */ jsx(
353
355
  Prose,
@@ -369,7 +371,7 @@ var Comment = (props) => {
369
371
  ] }),
370
372
  /* @__PURE__ */ jsx(CommentFooter, { ...footerProps })
371
373
  ] }) }),
372
- children && /* @__PURE__ */ jsx(Stack, { gap: 4, css: styles.children, children })
374
+ children && /* @__PURE__ */ jsx(Stack$1, { gap: 4, css: styles.children, children })
373
375
  ] }) });
374
376
  };
375
377
  Comment.displayName = "Comment";
@@ -479,7 +481,16 @@ var CommentReplyBox = ({
479
481
  children: cancelLabel
480
482
  }
481
483
  ),
482
- /* @__PURE__ */ jsx(Button$1, { type: "submit", variant: "solid", loading: isSubmitting, children: replyLabel })
484
+ /* @__PURE__ */ jsx(
485
+ Button$1,
486
+ {
487
+ type: "submit",
488
+ variant: "solid",
489
+ colorPalette: "primary",
490
+ loading: isSubmitting,
491
+ children: replyLabel
492
+ }
493
+ )
483
494
  ] })
484
495
  }
485
496
  )
@@ -539,7 +550,7 @@ var date_input_default = DateInput;
539
550
  var EmptyState = (props) => {
540
551
  const { header, description, icon, actions } = props;
541
552
  return /* @__PURE__ */ jsxs(
542
- Stack,
553
+ Stack$1,
543
554
  {
544
555
  justifyContent: "center",
545
556
  alignItems: "center",
@@ -551,7 +562,7 @@ var EmptyState = (props) => {
551
562
  icon,
552
563
  /* @__PURE__ */ jsx(Heading, { size: "lg", children: header }),
553
564
  description && /* @__PURE__ */ jsx(Text, { color: "muted", fontSize: "sm", children: description }),
554
- actions && /* @__PURE__ */ jsx(Stack, { pt: 4, gap: 2, children: actions })
565
+ actions && /* @__PURE__ */ jsx(Stack$1, { pt: 4, gap: 2, children: actions })
555
566
  ]
556
567
  }
557
568
  );
@@ -889,12 +900,12 @@ var Stat = (props) => {
889
900
  borderRadius: "lg",
890
901
  boxShadow: "sm",
891
902
  ...boxProps,
892
- children: /* @__PURE__ */ jsxs(Stack, { gap: { base: "5", md: "6" }, children: [
893
- /* @__PURE__ */ jsx(Stack, { direction: "row", justify: "space-between", children: /* @__PURE__ */ jsxs(HStack, { gap: "4", children: [
903
+ children: /* @__PURE__ */ jsxs(Stack$1, { gap: { base: "5", md: "6" }, children: [
904
+ /* @__PURE__ */ jsx(Stack$1, { direction: "row", justify: "space-between", children: /* @__PURE__ */ jsxs(HStack, { gap: "4", children: [
894
905
  icon && /* @__PURE__ */ jsx(Square, { size: "8", bg: "bg-accent-subtle", borderRadius: "md", children: icon }),
895
906
  /* @__PURE__ */ jsx(Text, { fontWeight: "medium", children: label })
896
907
  ] }) }),
897
- /* @__PURE__ */ jsx(Stack, { gap: "4", children: loading ? /* @__PURE__ */ jsx(Spinner, {}) : /* @__PURE__ */ jsx(Heading, { size: { base: "sm", md: "md" }, children: value ?? 0 }) })
908
+ /* @__PURE__ */ jsx(Stack$1, { gap: "4", children: loading ? /* @__PURE__ */ jsx(Spinner, {}) : /* @__PURE__ */ jsx(Heading, { size: { base: "sm", md: "md" }, children: value ?? 0 }) })
898
909
  ] })
899
910
  }
900
911
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/atoms/actions/action.tsx","../../src/atoms/actions/collapse.tsx","../../src/atoms/actions/edit.tsx","../../src/atoms/actions/filter.tsx","../../src/atoms/actions/handle.tsx","../../src/atoms/actions/remove.tsx","../../src/atoms/checkbox-card/checkbox-card.tsx","../../src/atoms/clipboard/clipboard.tsx","../../src/atoms/color-swatch-picker/color-swatch-picker.tsx","../../src/atoms/datetime/utils/format-date-time-utils.ts","../../src/atoms/datetime/relative-datetime.tsx","../../src/atoms/comment/comment.tsx","../../src/atoms/comment/comment-reply-box.tsx","../../src/atoms/data-list/data-list.tsx","../../src/atoms/date-input/date-input.tsx","../../src/atoms/empty-state/empty-state.tsx","../../src/atoms/persona/persona.tsx","../../src/atoms/select/base-select.tsx","../../src/atoms/select/table-menu-list.tsx","../../src/atoms/split-button/split-button.tsx","../../src/atoms/stat/stat.tsx","../../src/atoms/text-overflow/text-overflow.tsx","../../src/atoms/type-badge/type-badge.tsx"],"names":["jsx","Icon","Box","FilterIcon","jsxs","ClipboardButton","ChakraClipboard","IconButton","Clipboard","ClipboardInput","ClipboardLink","Stack","dayjs","utcPlugin","HStack","useState","e","Flex","Button","DataList","ChakraDataList","Input","Text","createContext","useContext","chakra","Circle","chakraComponents","ChevronDown","Heading","useRef","useEffect"],"mappings":"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","file":"index.js","sourcesContent":["import { Box } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface ActionProps extends React.HTMLAttributes<HTMLButtonElement> {\n\tcursor?: string;\n}\n\nexport const Action = ({\n\tref,\n\tcursor,\n\tcolor,\n\t...props\n}: ActionProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Box\n\t\t\tdisplay=\"flex\"\n\t\t\talignItems={\"center\"}\n\t\t\tjustifyContent={\"center\"}\n\t\t\tborderRadius={\"5px\"}\n\t\t\tp={\"15px\"}\n\t\t\ttabIndex={0}\n\t\t\tcursor={cursor}\n\t\t\ttransition={\"background-color 150ms, color 150ms, opacity 150ms\"}\n\t\t\tbg={color}\n\t\t\tasChild\n\t\t>\n\t\t\t<button type=\"button\" ref={ref} {...props} />\n\t\t</Box>\n\t);\n};\nAction.displayName = \"Action\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface CollapseProps extends ActionProps {\n\tcollapsed: boolean;\n\t/** Accessible label for the collapse button */\n\tcollapseLabel?: string;\n}\n\nexport const Collapse = ({\n\tref,\n\tcollapseLabel = \"Collapse\",\n\t...props\n}: CollapseProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\tconst { collapsed, ...rest } = props;\n\n\treturn (\n\t\t<Action ref={ref} cursor=\"pointer\" aria-label={collapseLabel} {...rest}>\n\t\t\t<Icon color=\"subtle\">\n\t\t\t\t{collapsed ? <ChevronRight /> : <ChevronDown />}\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nCollapse.displayName = \"Collapse\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { Pencil } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface EditProps extends ActionProps {\n\t/** Accessible label for the edit button */\n\teditLabel?: string;\n}\n\nexport const Edit = ({\n\tref,\n\teditLabel = \"Edit\",\n\t...props\n}: EditProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Action ref={ref} cursor=\"pointer\" aria-label={editLabel} {...props}>\n\t\t\t<Icon color=\"subtle\" asChild>\n\t\t\t\t<Pencil />\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nEdit.displayName = \"Edit\";\n","import { Box, Circle, Text } from \"@chakra-ui/react\";\nimport { Filter as FilterIcon } from \"lucide-react\";\nimport type React from \"react\";\nimport { IconButton, type IconButtonProps } from \"../button\";\n\nexport type FilterProps = Omit<\n\tIconButtonProps,\n\t\"aria-label\" | \"cursor\" | \"icon\"\n> & {\n\tactiveFilterCount?: number;\n\t/** Accessible label for the filter button */\n\tfilterLabel?: string;\n};\n\nexport const Filter = ({\n\tref,\n\tfilterLabel = \"Filter\",\n\t...props\n}: FilterProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\tconst { activeFilterCount, ...rest } = props;\n\n\treturn (\n\t\t<Box position=\"relative\">\n\t\t\t<IconButton\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tcursor=\"pointer\"\n\t\t\t\tref={ref}\n\t\t\t\taria-label={filterLabel}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t<FilterIcon />\n\t\t\t</IconButton>\n\t\t\t{activeFilterCount && activeFilterCount > 0 ? (\n\t\t\t\t<Circle\n\t\t\t\t\tsize=\"24px\"\n\t\t\t\t\tbg=\"accent\"\n\t\t\t\t\tcolor=\"on-accent\"\n\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\ttop={5}\n\t\t\t\t\tinsetInlineEnd={-1.5}\n\t\t\t\t>\n\t\t\t\t\t<Text fontSize=\"xs\" fontWeight={800}>\n\t\t\t\t\t\t{activeFilterCount}\n\t\t\t\t\t</Text>\n\t\t\t\t</Circle>\n\t\t\t) : null}\n\t\t</Box>\n\t);\n};\nFilter.displayName = \"Filter\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { GripVertical } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface HandleProps extends ActionProps {\n\t/** Accessible label for the drag handle */\n\thandleLabel?: string;\n}\n\nexport const Handle = ({\n\tref,\n\thandleLabel = \"Drag to reorder\",\n\t...props\n}: HandleProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Action ref={ref} cursor=\"grab\" aria-label={handleLabel} {...props}>\n\t\t\t<Icon color=\"subtle\" asChild>\n\t\t\t\t<GripVertical />\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nHandle.displayName = \"Handle\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface RemoveProps extends ActionProps {\n\t/** Accessible label for the remove button */\n\tremoveLabel?: string;\n}\n\nexport const Remove = ({\n\tref,\n\tremoveLabel = \"Remove\",\n\t...props\n}: RemoveProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Action ref={ref} aria-label={removeLabel} {...props}>\n\t\t\t<Icon color=\"subtle\" asChild>\n\t\t\t\t<X />\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nRemove.displayName = \"Remove\";\n","import {\n\tBox,\n\ttype BoxProps,\n\tStack,\n\ttype StackProps,\n\ttype UseCheckboxGroupProps,\n\tuseCheckboxGroup,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\n\nexport type CheckboxCardGroupProps = StackProps & {\n\tdefaultValue?: UseCheckboxGroupProps[\"defaultValue\"];\n\tvalue?: UseCheckboxGroupProps[\"value\"];\n\tonValueChange?: (value: string[]) => void;\n};\n\nexport const CheckboxCardGroup = (props: CheckboxCardGroupProps) => {\n\tconst { children, defaultValue, value, onValueChange, ...rest } = props;\n\tconst group = useCheckboxGroup({\n\t\tdefaultValue,\n\t\tvalue,\n\t\tonValueChange,\n\t});\n\n\tconst cards = React.useMemo(\n\t\t() =>\n\t\t\tReact.Children.toArray(children)\n\t\t\t\t.filter<React.ReactElement<CheckboxCardProps>>(React.isValidElement)\n\t\t\t\t.map((card) => {\n\t\t\t\t\treturn React.cloneElement(card, {\n\t\t\t\t\t\tcheckboxProps: group.getItemProps({\n\t\t\t\t\t\t\tvalue: card.props.value,\n\t\t\t\t\t\t}),\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t[children, group],\n\t);\n\n\treturn <Stack {...rest}>{cards}</Stack>;\n};\n\nCheckboxCardGroup.displayName = \"CheckboxCardGroup\";\n\n// Infer the item props type directly from the hook to avoid invalid imports\ntype CheckboxItemProps = ReturnType<\n\tReturnType<typeof useCheckboxGroup>[\"getItemProps\"]\n>;\n\nexport interface CheckboxCardProps extends BoxProps {\n\tvalue: string;\n\tcheckboxProps?: CheckboxItemProps;\n}\n\nexport const CheckboxCard = (props: CheckboxCardProps) => {\n\tconst { checkboxProps, children, ...rest } = props;\n\n\tconst id = React.useId();\n\n\treturn (\n\t\t<Box\n\t\t\tcursor=\"pointer\"\n\t\t\tcss={{\n\t\t\t\t\"& .focus-visible + [data-focus]\": {\n\t\t\t\t\tboxShadow: \"outline\",\n\t\t\t\t\tzIndex: 1,\n\t\t\t\t},\n\t\t\t}}\n\t\t\tasChild\n\t\t>\n\t\t\t<label>\n\t\t\t\t<input type=\"checkbox\" aria-labelledby={id} {...checkboxProps} />\n\t\t\t\t<Box {...rest}>\n\t\t\t\t\t<Stack direction=\"row\">\n\t\t\t\t\t\t<Box flex=\"1\" id={id}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Stack>\n\t\t\t\t</Box>\n\t\t\t</label>\n\t\t</Box>\n\t);\n};\n\nCheckboxCard.displayName = \"CheckboxCard\";\n","import {\n\tClipboard as ChakraClipboard,\n\tIconButton,\n\tInput,\n\ttype InputProps,\n} from \"@chakra-ui/react\";\nimport { Check, Clipboard, Link } from \"lucide-react\";\nimport type * as React from \"react\";\n\nexport interface ClipboardButtonProps extends ChakraClipboard.RootProps {\n\t/** Label for the copy button. @default \"Copy\" */\n\tlabel?: string;\n}\n\nexport const ClipboardButton = function ClipboardButton({\n\tref,\n\t...props\n}: ClipboardButtonProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { label = \"Copy\", ...rest } = props;\n\treturn (\n\t\t<ChakraClipboard.Root ref={ref} {...rest}>\n\t\t\t<ChakraClipboard.Trigger asChild>\n\t\t\t\t<IconButton variant=\"ghost\" size=\"sm\" aria-label={label}>\n\t\t\t\t\t<ChakraClipboard.Indicator copied={<Check size={16} />}>\n\t\t\t\t\t\t<Clipboard size={16} />\n\t\t\t\t\t</ChakraClipboard.Indicator>\n\t\t\t\t</IconButton>\n\t\t\t</ChakraClipboard.Trigger>\n\t\t</ChakraClipboard.Root>\n\t);\n};\nClipboardButton.displayName = \"ClipboardButton\";\n\nexport interface ClipboardInputProps extends ChakraClipboard.RootProps {\n\t/** Props passed to the input element. */\n\tinputProps?: InputProps;\n\t/** Label for the copy button. @default \"Copy\" */\n\tlabel?: string;\n}\n\nexport const ClipboardInput = function ClipboardInput({\n\tref,\n\t...props\n}: ClipboardInputProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { inputProps, label = \"Copy\", ...rest } = props;\n\treturn (\n\t\t<ChakraClipboard.Root ref={ref} {...rest}>\n\t\t\t<ChakraClipboard.Control>\n\t\t\t\t<ChakraClipboard.Input asChild>\n\t\t\t\t\t<Input readOnly {...inputProps} />\n\t\t\t\t</ChakraClipboard.Input>\n\t\t\t\t<ChakraClipboard.Trigger asChild>\n\t\t\t\t\t<IconButton variant=\"outline\" size=\"sm\" aria-label={label}>\n\t\t\t\t\t\t<ChakraClipboard.Indicator copied={<Check size={16} />}>\n\t\t\t\t\t\t\t<Clipboard size={16} />\n\t\t\t\t\t\t</ChakraClipboard.Indicator>\n\t\t\t\t\t</IconButton>\n\t\t\t\t</ChakraClipboard.Trigger>\n\t\t\t</ChakraClipboard.Control>\n\t\t</ChakraClipboard.Root>\n\t);\n};\nClipboardInput.displayName = \"ClipboardInput\";\n\nexport interface ClipboardLinkProps extends ChakraClipboard.RootProps {\n\t/** Label for the copy link button. @default \"Copy Link\" */\n\tlabel?: string;\n}\n\nexport const ClipboardLink = function ClipboardLink({\n\tref,\n\t...props\n}: ClipboardLinkProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { label = \"Copy Link\", ...rest } = props;\n\treturn (\n\t\t<ChakraClipboard.Root ref={ref} {...rest}>\n\t\t\t<ChakraClipboard.Trigger asChild>\n\t\t\t\t<IconButton variant=\"ghost\" size=\"xs\" aria-label={label}>\n\t\t\t\t\t<ChakraClipboard.Indicator copied={<Check size={14} />}>\n\t\t\t\t\t\t<Link size={14} />\n\t\t\t\t\t</ChakraClipboard.Indicator>\n\t\t\t\t</IconButton>\n\t\t\t</ChakraClipboard.Trigger>\n\t\t</ChakraClipboard.Root>\n\t);\n};\nClipboardLink.displayName = \"ClipboardLink\";\n","import { Box, Flex, HStack, Stack } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { TextInput } from \"../text-input\";\n\nconst DEFAULT_PRESETS = [\n\t\"#3b82f6\",\n\t\"#10b981\",\n\t\"#f59e0b\",\n\t\"#ef4444\",\n\t\"#8b5cf6\",\n\t\"#ec4899\",\n\t\"#14b8a6\",\n\t\"#6b7280\",\n];\n\nexport interface ColorSwatchPickerProps {\n\tvalue?: string;\n\tonChange: (color: string) => void;\n\tpresets?: string[];\n\tshowHexInput?: boolean;\n\tshowPreview?: boolean;\n\tsize?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst SWATCH_SIZES = { sm: 4, md: 5, lg: 7 } as const;\n\nexport const ColorSwatchPicker: React.FC<ColorSwatchPickerProps> = ({\n\tvalue,\n\tonChange,\n\tpresets = DEFAULT_PRESETS,\n\tshowHexInput = false,\n\tshowPreview = false,\n\tsize = \"md\",\n}) => {\n\tconst [hexInput, setHexInput] = useState(value ?? \"\");\n\n\tuseEffect(() => {\n\t\tsetHexInput(value ?? \"\");\n\t}, [value]);\n\n\tconst swatchSize = SWATCH_SIZES[size];\n\n\tconst handleHexSubmit = () => {\n\t\tconst trimmed = hexInput.trim();\n\t\tif (/^#[0-9a-fA-F]{6}$/.test(trimmed)) {\n\t\t\tonChange(trimmed);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Stack gap={3}>\n\t\t\t<Flex wrap=\"wrap\" gap={2}>\n\t\t\t\t{presets.map((color) => (\n\t\t\t\t\t<Box\n\t\t\t\t\t\tkey={color}\n\t\t\t\t\t\tw={swatchSize}\n\t\t\t\t\t\th={swatchSize}\n\t\t\t\t\t\trounded=\"sm\"\n\t\t\t\t\t\tbg={color}\n\t\t\t\t\t\tcursor=\"pointer\"\n\t\t\t\t\t\tborderWidth=\"2px\"\n\t\t\t\t\t\tborderColor={value === color ? \"border.emphasized\" : \"transparent\"}\n\t\t\t\t\t\tonClick={() => onChange(color)}\n\t\t\t\t\t\t_hover={{ transform: \"scale(1.1)\" }}\n\t\t\t\t\t\ttransition=\"transform 0.1s\"\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Flex>\n\t\t\t{(showHexInput || showPreview) && (\n\t\t\t\t<HStack gap={2}>\n\t\t\t\t\t{showPreview && (\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tw={9}\n\t\t\t\t\t\t\th={9}\n\t\t\t\t\t\t\trounded=\"md\"\n\t\t\t\t\t\t\tbg={value || \"transparent\"}\n\t\t\t\t\t\t\tborderWidth=\"1px\"\n\t\t\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t\t\t\tflexShrink={0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showHexInput && (\n\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\tvalue={hexInput}\n\t\t\t\t\t\t\tonChange={(e) => setHexInput(e.target.value)}\n\t\t\t\t\t\t\tonBlur={handleHexSubmit}\n\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\tif (e.key === \"Enter\") handleHexSubmit();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tplaceholder=\"#000000\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tmaxW=\"120px\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</HStack>\n\t\t\t)}\n\t\t</Stack>\n\t);\n};\nColorSwatchPicker.displayName = \"ColorSwatchPicker\";\n","import dayjs from \"dayjs\";\nimport utcPlugin from \"dayjs/plugin/utc.js\";\n\ndayjs.extend(utcPlugin);\n\nimport type { DateFormat, DateType } from \"../types\";\n\n/**\n * A function that will return a formatted date string. The format will depend on the option\n * passed in the second argument.\n * By default, it will return a string with \"full\" format (e.g. Tue, 17 Aug 2021 at 3:45 PM)\n *\n * @param date - the date to be formatted\n * @param format - the desired format (\"full\", \"day\", \"weekday\", or \"time\")\n * @returns a formatted date\n *\n * @example\n * formatDateAndTime('2021-08-17T15:45:00') // returns \"Tue, 17 Aug 2021 at 3:45 PM\"\n *\n * @example\n * formatDateAndTime('2021-08-17T15:45:00', 'day') // returns \"17 Aug 2021\"\n */\nexport function formatDateAndTime(\n\tdate: DateType,\n\tformat: DateFormat = \"full\",\n): string {\n\tlet template: string;\n\n\tswitch (format) {\n\t\tcase \"day\":\n\t\t\ttemplate = \"DD MMM YYYY\"; // 17 Aug 2021\n\t\t\tbreak;\n\t\tcase \"weekday\":\n\t\t\ttemplate = \"ddd, DD MMM\"; // Tue, 17 Aug\n\t\t\tbreak;\n\t\tcase \"time\":\n\t\t\ttemplate = \"h:mm A\"; // 3:45 PM\n\t\t\tbreak;\n\t\tcase \"fullWithSeconds\":\n\t\t\ttemplate = \"ddd, DD MMM YYYY [at] h:mm:ss A\"; // Tue, 17 Aug 2021 at 3:45:67 PM\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ttemplate = \"ddd, DD MMM YYYY [at] h:mm A\"; // Tue, 17 Aug 2021 at 3:45 PM\n\t}\n\n\treturn dayjs(date).format(template);\n}\n\n/**\n * A function that will return a machine-readable date string that should be passed to the `datetime` attribute of a `<time>` tag\n * By default, it will return a string with \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\" format\n *\n * @param date - the date to be formatted\n * @param format - the desired format (\"full\", \"day\", \"weekday\", or \"time\")\n * @returns a formatted date\n *\n * @example\n * formatMachineReadableDateTime(date) // returns 2019-08-13T10:00:00.000Z\n *\n * @example\n * formatMachineReadableDateTime(date, 'day') // returns 2019-08-13\n */\nexport function formatMachineReadableDateTime(\n\tdate: DateType,\n\tformat: DateFormat = \"full\",\n): string {\n\tlet template: string;\n\n\tswitch (format) {\n\t\tcase \"day\":\n\t\t\ttemplate = \"YYYY-MM-DD\"; // 2019-08-24\n\t\t\tbreak;\n\t\tcase \"weekday\":\n\t\t\ttemplate = \"MM-DD\"; // 08-24\n\t\t\tbreak;\n\t\tcase \"time\":\n\t\t\ttemplate = \"HH:mm:ss.SSS\"; // 15:44:07.000\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ttemplate = \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\"; // 2019-08-24T15:44:07.000Z\n\t}\n\n\treturn dayjs(date).utc().format(template);\n}\n\n/**\n * @example\n * > formatDate(date)\n * 13 Aug 2019\n */\nexport const formatDate = (date: DateType): string => {\n\treturn formatDateAndTime(date, \"day\");\n};\n\n/**\n * @example\n * > formatTime(date)\n * 8:00 AM\n */\nexport const formatTime = (date: DateType): string => {\n\treturn formatDateAndTime(date, \"time\");\n};\n\n/**\n * @example\n * > formatWeekdayDate(date)\n * Mon, 12 Aug\n */\nexport const formatWeekdayDate = (date: DateType): string => {\n\treturn formatDateAndTime(date, \"weekday\");\n};\n","import dayjs from \"dayjs\";\nimport calendarPlugin from \"dayjs/plugin/calendar.js\";\nimport relativeTime from \"dayjs/plugin/relativeTime.js\";\nimport utcPlugin from \"dayjs/plugin/utc.js\";\nimport type React from \"react\";\nimport type { DateType } from \"./types\";\nimport { formatMachineReadableDateTime } from \"./utils/format-date-time-utils\";\nimport {\n\tformatRelativeDateTime,\n\tformatRelativeToCurrentWeekDateTime,\n} from \"./utils/relative-date-time-utils\";\n\ndayjs.extend(utcPlugin);\ndayjs.extend(relativeTime);\ndayjs.extend(calendarPlugin);\n\nexport interface RelativeDateTimeProps {\n\t/**\n\t * The date that will be displayed. It accepts a JS Date, an ISO8601 Timestamp string, or Unix Epoch Milliseconds number\n\t */\n\tdate: DateType;\n\t/**\n\t * If a value is passed to baseDate, then the component will compare both dates and return the time between them.\n\t * If no value is passed then the date will be compared to \"now\"\n\t *\n\t * @default \"Now\"\n\t */\n\tbaseDate?: DateType;\n\t/**\n\t * Sets the date to be relative only if it is in the current week\n\t * @default false\n\t */\n\tisRelativeToCurrentWeek?: boolean;\n}\n\nexport const RelativeDateTime: React.FC<RelativeDateTimeProps> = (props) => {\n\tconst { date, baseDate, isRelativeToCurrentWeek, ...otherProps } = props;\n\n\tconst now = new Date();\n\tconst referenceDate = baseDate ?? now;\n\tconst dayjsDate = dayjs(date);\n\tconst machineReadableDate = formatMachineReadableDateTime(date);\n\n\tlet relativeDate: string;\n\n\tif (isRelativeToCurrentWeek && !dayjsDate.isSame(referenceDate, \"day\")) {\n\t\trelativeDate = formatRelativeToCurrentWeekDateTime(date, referenceDate);\n\t} else {\n\t\trelativeDate = formatRelativeDateTime(date, referenceDate);\n\t}\n\n\treturn (\n\t\t<time dateTime={machineReadableDate} {...otherProps}>\n\t\t\t{relativeDate}\n\t\t</time>\n\t);\n};\nRelativeDateTime.displayName = \"RelativeDateTime\";\n","import { chakra, HStack, Stack } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { createContext, useContext } from \"react\";\nimport { Prose } from \"../../primitives/prose\";\nimport { Button, type ButtonProps } from \"../button\";\nimport { RelativeDateTime } from \"../datetime/relative-datetime\";\nimport type {\n\tCommentFooterProps,\n\tCommentHeaderProps,\n\tCommentProps,\n} from \"./types\";\n\ntype CommentStyles = Record<string, React.CSSProperties | object>;\n\nconst CommentStylesContext = createContext<CommentStyles>({});\nconst useStyles = () => useContext(CommentStylesContext);\n\nexport const Comment: React.FC<CommentProps> = (props) => {\n\tconst {\n\t\tavatar,\n\t\tcontent,\n\t\tchildren,\n\t\tauthor,\n\t\tcommentedAt,\n\t\tactions,\n\t\tid,\n\t\tisDeleted,\n\t\tdeletedLabel = \"This comment has been deleted\",\n\t\t...rest\n\t} = props;\n\n\tconst styles: CommentStyles = {};\n\n\tconst headerProps = {\n\t\tauthor,\n\t\tcommentedAt,\n\t};\n\n\tconst footerProps = {\n\t\tactions,\n\t};\n\n\treturn (\n\t\t<chakra.div css={styles.container} data-id={id} {...rest}>\n\t\t\t<CommentStylesContext.Provider value={styles}>\n\t\t\t\t{avatar && <AvatarSlot>{avatar}</AvatarSlot>}\n\t\t\t\t{(content || isDeleted) && (\n\t\t\t\t\t<ContentContainer>\n\t\t\t\t\t\t<Stack gap={3}>\n\t\t\t\t\t\t\t<Stack gap={2}>\n\t\t\t\t\t\t\t\t<CommentHeader {...headerProps} />\n\t\t\t\t\t\t\t\t<Prose\n\t\t\t\t\t\t\t\t\tcss={{\n\t\t\t\t\t\t\t\t\t\t\"& p\": {\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"inherit!important\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"& *:first-child\": {\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"& *:last-child\": {\n\t\t\t\t\t\t\t\t\t\t\tmarginBottom: 0,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{isDeleted ? (\n\t\t\t\t\t\t\t\t\t\t<chakra.span css={styles.deletedText}>\n\t\t\t\t\t\t\t\t\t\t\t{deletedLabel}\n\t\t\t\t\t\t\t\t\t\t</chakra.span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Prose>\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t<CommentFooter {...footerProps} />\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</ContentContainer>\n\t\t\t\t)}\n\t\t\t\t{children && (\n\t\t\t\t\t<Stack gap={4} css={styles.children}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</CommentStylesContext.Provider>\n\t\t</chakra.div>\n\t);\n};\n\nComment.displayName = \"Comment\";\n\nconst AvatarSlot: React.FC<{\n\tchildren: React.ReactNode;\n}> = ({ children }) => {\n\tconst styles = useStyles();\n\n\treturn <chakra.div css={styles.avatar}>{children}</chakra.div>;\n};\n\nconst ContentContainer = ({ children }: { children: React.ReactNode }) => {\n\tconst styles = useStyles();\n\n\treturn <chakra.div css={styles.contentContainer}>{children}</chakra.div>;\n};\n\nconst CommentHeader: React.FC<CommentHeaderProps> = (props) => {\n\tconst { author, commentedAt } = props;\n\n\tconst shouldRender = !!author || !!commentedAt;\n\n\treturn shouldRender ? (\n\t\t<HStack>\n\t\t\t{author && <Author>{author.name}</Author>}\n\t\t\t{commentedAt && <RelativeDateTime date={commentedAt} />}\n\t\t</HStack>\n\t) : null;\n};\n\nconst Author: React.FC<{\n\tchildren: React.ReactNode;\n}> = (props) => {\n\tconst { children } = props;\n\tconst styles = useStyles();\n\n\treturn <chakra.span css={styles.field}>{children}</chakra.span>;\n};\n\nconst CommentFooter: React.FC<CommentFooterProps> = (props) => {\n\tconst { actions } = props;\n\treturn (\n\t\t<HStack alignItems=\"center\" gap={4} flexWrap=\"wrap\">\n\t\t\t{actions?.map((item, key) => Object.assign({}, item, { key }))}\n\t\t</HStack>\n\t);\n};\n\nexport interface CommentActionProps extends ButtonProps {\n\tchildren: React.ReactNode;\n}\n\nexport const CommentAction: React.FC<CommentActionProps> = (props) => {\n\treturn <Button variant=\"outline\" size=\"xs\" {...props} />;\n};\nCommentAction.displayName = \"CommentAction\";\n","import { Box, Button, ButtonGroup, Flex, Textarea } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { useRef, useState } from \"react\";\n\nexport interface CommentReplyBoxProps {\n\tonReply: (value: string) => Promise<void>;\n\tonCancel?: () => void;\n\t/** Placeholder text for the reply textarea */\n\tplaceholder?: string;\n\t/** Label for the cancel button */\n\tcancelLabel?: string;\n\t/** Label for the reply/submit button */\n\treplyLabel?: string;\n}\n\nexport const CommentReplyBox = ({\n\tref,\n\t...props\n}: CommentReplyBoxProps & { ref?: React.Ref<HTMLTextAreaElement> }) => {\n\tconst {\n\t\tonReply,\n\t\tonCancel,\n\t\tplaceholder = \"Write a reply...\",\n\t\tcancelLabel = \"Cancel\",\n\t\treplyLabel = \"Reply\",\n\t} = props;\n\n\tconst textBoxRef = useRef<HTMLTextAreaElement>(null);\n\n\tconst mergedRef = (node: HTMLTextAreaElement | null) => {\n\t\t(textBoxRef as React.MutableRefObject<HTMLTextAreaElement | null>).current =\n\t\t\tnode;\n\t\tif (typeof ref === \"function\") {\n\t\t\tref(node);\n\t\t} else if (ref) {\n\t\t\t(ref as React.MutableRefObject<HTMLTextAreaElement | null>).current =\n\t\t\t\tnode;\n\t\t}\n\t};\n\n\tconst [isFocused, setIsFocused] = useState<boolean>(false);\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\tconst [value, setValue] = useState<string>(\"\");\n\n\tconst handleReply = async (e: React.FormEvent) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tif (!value || !value.trim() || value === \"\") {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tsetIsSubmitting(true);\n\t\t\tawait onReply?.(value);\n\t\t\tsetValue(\"\");\n\t\t\tsetIsFocused(false);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\n\t\tsetIsSubmitting(false);\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetValue(\"\");\n\t\tsetIsFocused(false);\n\t\tonCancel?.();\n\t};\n\n\treturn (\n\t\t<Box w=\"full\" onFocus={() => setIsFocused(true)}>\n\t\t\t<form onSubmit={handleReply}>\n\t\t\t\t<Textarea\n\t\t\t\t\tvalue={String(value)}\n\t\t\t\t\tonChange={(e) => setValue(e.target.value)}\n\t\t\t\t\tminH={isFocused ? undefined : \"2.5rem\"}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t// modifier + enter\n\t\t\t\t\t\tif ((e.ctrlKey || e.metaKey) && e.key === \"Enter\") {\n\t\t\t\t\t\t\thandleReply(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={isSubmitting}\n\t\t\t\t/>\n\n\t\t\t\t<Flex\n\t\t\t\t\tmt={2}\n\t\t\t\t\tdisplay={isFocused ? \"flex\" : \"none\"}\n\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t>\n\t\t\t\t\t<ButtonGroup marginInlineStart=\"auto\" size=\"sm\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\tloading={isSubmitting}\n\t\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{cancelLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button type=\"submit\" variant=\"solid\" loading={isSubmitting}>\n\t\t\t\t\t\t\t{replyLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</ButtonGroup>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Box>\n\t);\n};\nCommentReplyBox.displayName = \"CommentReplyBox\";\n","import { DataList as ChakraDataList } from \"@chakra-ui/react\";\nimport type * as React from \"react\";\n\nexport interface DataListItemType {\n\tlabel: React.ReactNode;\n\tvalue: React.ReactNode;\n}\n\nexport interface DataListProps extends ChakraDataList.RootProps {\n\t/** Items to render as label-value pairs. If provided, renders automatically. */\n\titems?: DataListItemType[];\n}\n\nexport const DataList = function DataList({\n\tref,\n\t...props\n}: DataListProps & { ref?: React.Ref<HTMLDListElement> }) {\n\tconst { items, children, ...rest } = props;\n\treturn (\n\t\t<ChakraDataList.Root ref={ref} {...rest}>\n\t\t\t{items\n\t\t\t\t? items.map((item) => (\n\t\t\t\t\t\t<ChakraDataList.Item key={String(item.label)}>\n\t\t\t\t\t\t\t<ChakraDataList.ItemLabel>{item.label}</ChakraDataList.ItemLabel>\n\t\t\t\t\t\t\t<ChakraDataList.ItemValue>{item.value}</ChakraDataList.ItemValue>\n\t\t\t\t\t\t</ChakraDataList.Item>\n\t\t\t\t\t))\n\t\t\t\t: children}\n\t\t</ChakraDataList.Root>\n\t);\n};\nDataList.displayName = \"DataList\";\n\n// Pass-through exports for manual composition\nexport const DataListItem = ChakraDataList.Item;\nDataListItem.displayName = \"DataListItem\";\n\nexport const DataListItemLabel = ChakraDataList.ItemLabel;\nDataListItemLabel.displayName = \"DataListItemLabel\";\n\nexport const DataListItemValue = ChakraDataList.ItemValue;\nDataListItemValue.displayName = \"DataListItemValue\";\n\nexport type DataListRootProps = ChakraDataList.RootProps;\n","import { Input, type InputProps } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface DateInputProps\n\textends Omit<InputProps, \"type\" | \"value\" | \"onChange\"> {\n\t/** The date value as an ISO date string (YYYY-MM-DD) or ISO datetime string */\n\tvalue?: string;\n\t/** Called when the date value changes */\n\tonChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\t/** Minimum date in YYYY-MM-DD format */\n\tminDate?: string;\n\t/** Maximum date in YYYY-MM-DD format */\n\tmaxDate?: string;\n}\n\nconst datePattern = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Extracts a YYYY-MM-DD date string from various input formats.\n */\nfunction toDateString(value: string): string {\n\tif (!value) return \"\";\n\tif (datePattern.test(value)) return value;\n\t// Try to parse ISO datetime strings\n\ttry {\n\t\tconst date = new Date(value);\n\t\tif (Number.isNaN(date.getTime())) return \"\";\n\t\treturn date.toISOString().slice(0, 10);\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nconst DateInput = ({\n\tref,\n\t...props\n}: DateInputProps & { ref?: React.Ref<HTMLInputElement> }) => {\n\tconst { value, minDate, maxDate, onChange, ...rest } = props;\n\n\tconst dateValue = value ? toDateString(value) : \"\";\n\n\treturn (\n\t\t<Input\n\t\t\ttype=\"date\"\n\t\t\tvalue={dateValue}\n\t\t\tmin={minDate}\n\t\t\tmax={maxDate}\n\t\t\tonChange={onChange}\n\t\t\tref={ref}\n\t\t\t{...rest}\n\t\t/>\n\t);\n};\nDateInput.displayName = \"DateInput\";\n\nexport default DateInput;\n","import { Heading, Stack, Text } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface EmptyStateProps {\n\t/** Main heading text. */\n\theader: string;\n\t/** Description text or rich content. */\n\tdescription?: React.ReactNode;\n\t/** Optional icon displayed above the heading. */\n\ticon?: React.ReactNode;\n\t/** Optional action buttons below the description. */\n\tactions?: React.ReactNode;\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = (props) => {\n\tconst { header, description, icon, actions } = props;\n\n\treturn (\n\t\t<Stack\n\t\t\tjustifyContent=\"center\"\n\t\t\talignItems=\"center\"\n\t\t\ttextAlign=\"center\"\n\t\t\tgap={4}\n\t\t\tp={16}\n\t\t\tborderRadius=\"lg\"\n\t\t>\n\t\t\t{icon}\n\t\t\t<Heading size=\"lg\">{header}</Heading>\n\t\t\t{description && (\n\t\t\t\t<Text color=\"muted\" fontSize=\"sm\">\n\t\t\t\t\t{description}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{actions && (\n\t\t\t\t<Stack pt={4} gap={2}>\n\t\t\t\t\t{actions}\n\t\t\t\t</Stack>\n\t\t\t)}\n\t\t</Stack>\n\t);\n};\n\nEmptyState.displayName = \"EmptyState\";\n","import { chakra, type HTMLChakraProps } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { createContext, useContext } from \"react\";\nimport { Avatar, type AvatarProps } from \"../../primitives/avatar\";\n\nexport interface PersonaProps {\n\t/**\n\t * The name of the person in the avatar.\n\t *\n\t * - if `src` has loaded, the name will be used as the `alt` attribute of the `img`\n\t * - If `src` is not loaded, the name will be used to create the initials\n\t */\n\tname?: string;\n\n\t/**\n\t * Primary label of the persona, defaults to the name\n\t */\n\tlabel?: React.ReactNode;\n\t/**\n\t * Hide the persona details next to the avatar.\n\t */\n\thideDetails?: boolean;\n\t/**\n\t * The size of the persona, from 2xs to 2xl.\n\t */\n\tsize?: \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n\t/**\n\t * When true, adds hover styling and pointer cursor for clickable personas.\n\t */\n\tinteractive?: boolean;\n}\n\ninterface PersonaStyles {\n\tcontainer?: React.CSSProperties;\n\tdetails?: React.CSSProperties;\n\tlabel?: React.CSSProperties;\n}\n\nconst PersonaStylesContext = createContext<PersonaStyles>({});\nconst usePersonaStyles = () => useContext(PersonaStylesContext);\n\nexport const Persona: React.FC<PersonaProps> = (props) => {\n\tconst { name, size = \"sm\", hideDetails, label, interactive } = props;\n\n\treturn (\n\t\t<PersonaContainer interactive={interactive}>\n\t\t\t<PersonaAvatar name={name} size={size} />\n\t\t\t{!hideDetails && (\n\t\t\t\t<PersonaDetails>\n\t\t\t\t\t<PersonaLabel>{label || name}</PersonaLabel>\n\t\t\t\t</PersonaDetails>\n\t\t\t)}\n\t\t</PersonaContainer>\n\t);\n};\n\nPersona.displayName = \"Persona\";\n\nexport interface PersonaContainerProps extends HTMLChakraProps<\"div\"> {\n\tchildren: React.ReactNode;\n\t/**\n\t * Optional style overrides passed down to child components via context.\n\t */\n\tstyles?: PersonaStyles;\n\t/**\n\t * When true, adds hover styling and pointer cursor for clickable personas.\n\t */\n\tinteractive?: boolean;\n}\n\nexport const PersonaContainer = ({\n\tref,\n\t...props\n}: PersonaContainerProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { children, styles = {}, interactive, ...rest } = props;\n\n\treturn (\n\t\t<PersonaStylesContext.Provider value={styles}>\n\t\t\t<chakra.div\n\t\t\t\tref={ref}\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\tflexDirection=\"row\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\t{...(interactive && {\n\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\tborderRadius: \"md\",\n\t\t\t\t\ttransition: \"background-color 150ms\",\n\t\t\t\t\t_hover: { bg: \"bg-subtle\" },\n\t\t\t\t\tpx: 2,\n\t\t\t\t\tpy: 1,\n\t\t\t\t})}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</chakra.div>\n\t\t</PersonaStylesContext.Provider>\n\t);\n};\n\ninterface PersonaAvatarOptions extends Pick<PersonaProps, \"name\" | \"size\"> {}\n\ninterface PersonaAvatarProps\n\textends PersonaAvatarOptions,\n\t\tOmit<AvatarProps, \"size\"> {}\n\nexport const PersonaAvatar = ({\n\tref,\n\t...props\n}: PersonaAvatarProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { name, size, ...rest } = props;\n\n\treturn <Avatar ref={ref} name={name} size={size} {...rest} />;\n};\nPersonaAvatar.displayName = \"PersonaAvatar\";\n\nexport const PersonaDetails = ({\n\tref,\n\t...props\n}: HTMLChakraProps<\"div\"> & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { children, ...rest } = props;\n\tconst styles = usePersonaStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\tref={ref}\n\t\t\tdisplay=\"flex\"\n\t\t\tflexDirection=\"column\"\n\t\t\tstyle={styles.details}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</chakra.div>\n\t);\n};\nPersonaDetails.displayName = \"PersonaDetails\";\n\nexport const PersonaLabel = ({\n\tref,\n\t...props\n}: HTMLChakraProps<\"span\"> & { ref?: React.Ref<HTMLSpanElement> }) => {\n\tconst styles = usePersonaStyles();\n\n\treturn <chakra.span ref={ref} style={styles.label} {...props} />;\n};\nPersonaLabel.displayName = \"PersonaLabel\";\n","import { Circle, HStack, Text } from \"@chakra-ui/react\";\nimport {\n\ttype ActionMeta,\n\tchakraComponents,\n\ttype GroupBase,\n\ttype MultiValue,\n\ttype MultiValueProps,\n\ttype OptionProps,\n\ttype Props,\n\tSelect,\n\ttype SelectInstance,\n\ttype SingleValue,\n\ttype SingleValueProps,\n} from \"chakra-react-select\";\nimport type React from \"react\";\nimport { Avatar } from \"../../primitives/avatar\";\nimport type { BaseOption } from \"./types\";\n\nexport interface BaseSelectProps<T extends BaseOption>\n\textends Omit<\n\t\tProps<T, boolean, GroupBase<T>>,\n\t\t\"value\" | \"onChange\" | \"isLoading\" | \"isDisabled\"\n\t> {\n\tvalue: T | T[] | null;\n\tonChange?: (\n\t\tnewValue: MultiValue<T> | SingleValue<T>,\n\t\tactionMeta: ActionMeta<T>,\n\t) => void;\n\tloading?: boolean;\n\tdisabled?: boolean;\n}\n\nconst BaseSingleValue = <T extends BaseOption>({\n\tdata,\n\t...props\n}: SingleValueProps<T, boolean, GroupBase<T>>) => {\n\treturn (\n\t\t<chakraComponents.SingleValue data={data} {...props}>\n\t\t\t<HStack gap={2}>\n\t\t\t\t{data.avatar && <Avatar name={data.avatar} size=\"xs\" />}\n\t\t\t\t{data.color && <Circle bg={data.color} size={5} />}\n\t\t\t\t{data.icon && data.icon}\n\t\t\t\t<Text>{data.label}</Text>\n\t\t\t</HStack>\n\t\t</chakraComponents.SingleValue>\n\t);\n};\n\nconst BaseMultiValue = <T extends BaseOption>({\n\tchildren,\n\t...props\n}: MultiValueProps<T, boolean, GroupBase<T>>) => {\n\tconst { data } = props;\n\n\treturn (\n\t\t// @ts-expect-error -- strict mode: duplicate property\n\t\t<chakraComponents.MultiValue data={data} {...props}>\n\t\t\t<HStack gap={2}>\n\t\t\t\t{data.avatar && <Avatar name={data.avatar} size=\"xs\" />}\n\t\t\t\t{data.color && <Circle bg={data.color} size={5} />}\n\t\t\t\t{data.icon && data.icon}\n\t\t\t\t<Text>{data.label}</Text>\n\t\t\t</HStack>\n\t\t</chakraComponents.MultiValue>\n\t);\n};\n\nconst BaseSelectOption = <T extends BaseOption>({\n\tdata,\n\t...props\n}: OptionProps<T, boolean, GroupBase<T>>) => {\n\treturn (\n\t\t<chakraComponents.Option data={data} {...props}>\n\t\t\t<HStack gap={2}>\n\t\t\t\t{data.avatar && <Avatar name={data.avatar} size=\"xs\" />}\n\t\t\t\t{data.color && <Circle bg={data.color} size={5} />}\n\t\t\t\t{data.icon && data.icon}\n\t\t\t\t<Text>{data.label}</Text>\n\t\t\t</HStack>\n\t\t</chakraComponents.Option>\n\t);\n};\n\nconst getSelectComponents = (\n\tvariant?: string,\n\tcustomComponents?: Record<string, React.ComponentType<unknown>>,\n) => ({\n\t...(variant === \"link\"\n\t\t? {\n\t\t\t\tDropdownIndicator: null,\n\t\t\t\tIndicatorSeparator: null,\n\t\t\t}\n\t\t: {}),\n\tSingleValue: BaseSingleValue,\n\tMultiValue: BaseMultiValue,\n\tOption: BaseSelectOption,\n\t...customComponents,\n});\n\nexport const BaseSelect = <T extends BaseOption>({\n\tref,\n\tvalue,\n\tonChange,\n\toptions,\n\tisMulti = false,\n\tloading = false,\n\tdisabled = false,\n\tisClearable = true,\n\tplaceholder,\n\tmenuPortalTarget = document.body,\n\tvariant = \"outline\",\n\tstyles,\n\t...restSelectProps\n}: BaseSelectProps<T> & {\n\tref?: React.Ref<SelectInstance<T, boolean, GroupBase<T>>>;\n}) => {\n\treturn (\n\t\t<Select<T, boolean, GroupBase<T>>\n\t\t\t{...restSelectProps}\n\t\t\tref={ref}\n\t\t\tvalue={value}\n\t\t\tvariant={variant}\n\t\t\tonChange={onChange}\n\t\t\toptions={options}\n\t\t\tisMulti={isMulti}\n\t\t\tisLoading={loading}\n\t\t\tisDisabled={disabled}\n\t\t\tisClearable={isClearable}\n\t\t\tplaceholder={placeholder}\n\t\t\tmenuPortalTarget={menuPortalTarget}\n\t\t\tstyles={{\n\t\t\t\tmenuPortal: (provided) => ({\n\t\t\t\t\t...provided,\n\t\t\t\t\tzIndex: 1800,\n\t\t\t\t\tpointerEvents: \"auto\" as const,\n\t\t\t\t}),\n\t\t\t\t...styles,\n\t\t\t}}\n\t\t\tgetOptionValue={(option) => option.id}\n\t\t\tgetOptionLabel={(option) => option.label}\n\t\t\tcomponents={getSelectComponents(\n\t\t\t\tvariant as string,\n\t\t\t\t// @ts-expect-error -- strict mode: argument type\n\t\t\t\trestSelectProps.components,\n\t\t\t)}\n\t\t/>\n\t);\n};\n(BaseSelect as { displayName?: string }).displayName = \"BaseSelect\";\n","import { Box, Table } from \"@chakra-ui/react\";\nimport {\n\tchakraComponents,\n\ttype GroupBase,\n\ttype MenuListProps,\n\ttype OptionProps,\n} from \"chakra-react-select\";\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport type { BaseOption } from \"./types\";\n\nexport interface TableMenuColumn {\n\tkey: string;\n\theader: string;\n\twidth?: string;\n}\n\nexport interface TableMenuListProps<T extends BaseOption>\n\textends MenuListProps<T, boolean, GroupBase<T>> {\n\tcolumns?: TableMenuColumn[];\n\t/** Minimum width of the table menu. Defaults to \"400px\" */\n\tminWidth?: string;\n\t/** Maximum width of the table menu. Defaults to \"600px\" */\n\tmaxWidth?: string;\n}\n\n/**\n * A custom MenuList component that renders options as table rows.\n *\n * Use with BaseSelect by passing it via the `components` prop:\n * ```tsx\n * <BaseSelect\n * components={{\n * MenuList: (props) => (\n * <TableMenuList\n * {...props}\n * columns={[\n * { key: \"label\", header: \"Name\" },\n * { key: \"valid_from\", header: \"Valid From\" },\n * ]}\n * />\n * ),\n * Option: TableOption,\n * }}\n * />\n * ```\n */\nexport const TableMenuList = <T extends BaseOption>({\n\tchildren,\n\tcolumns,\n\tminWidth = \"400px\",\n\tmaxWidth = \"600px\",\n\t...props\n}: TableMenuListProps<T>) => {\n\tconst { options } = props;\n\n\t// If no columns specified, derive from first option's data keys\n\tconst derivedColumns = useMemo<TableMenuColumn[]>(() => {\n\t\tif (columns) return columns;\n\n\t\tconst firstOption = options?.[0] as T | undefined;\n\t\tif (!firstOption?.data) {\n\t\t\treturn [{ key: \"label\", header: \"Name\" }];\n\t\t}\n\n\t\treturn [\n\t\t\t{ key: \"label\", header: \"Name\" },\n\t\t\t...Object.keys(firstOption.data).map((key) => ({\n\t\t\t\tkey,\n\t\t\t\theader: key.charAt(0).toUpperCase() + key.slice(1).replace(/_/g, \" \"),\n\t\t\t})),\n\t\t];\n\t}, [columns, options]);\n\n\treturn (\n\t\t<chakraComponents.MenuList {...props}>\n\t\t\t<Box\n\t\t\t\toverflowX=\"auto\"\n\t\t\t\tminWidth={minWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\twidth=\"max-content\"\n\t\t\t>\n\t\t\t\t<Table.Root size=\"sm\">\n\t\t\t\t\t<Table.Header>\n\t\t\t\t\t\t<Table.Row>\n\t\t\t\t\t\t\t{derivedColumns.map((col) => (\n\t\t\t\t\t\t\t\t<Table.ColumnHeader\n\t\t\t\t\t\t\t\t\tkey={col.key}\n\t\t\t\t\t\t\t\t\twidth={col.width}\n\t\t\t\t\t\t\t\t\twhiteSpace=\"nowrap\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{col.header}\n\t\t\t\t\t\t\t\t</Table.ColumnHeader>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t</Table.Header>\n\t\t\t\t\t<Table.Body>{children}</Table.Body>\n\t\t\t\t</Table.Root>\n\t\t\t</Box>\n\t\t</chakraComponents.MenuList>\n\t);\n};\n(TableMenuList as { displayName?: string }).displayName = \"TableMenuList\";\n\n/**\n * A custom Option component that renders as a table row.\n * Use together with TableMenuList.\n */\nexport const TableOption = <T extends BaseOption>({\n\tdata,\n\tinnerProps,\n\tisSelected,\n\tisFocused,\n\tcolumns,\n}: OptionProps<T, boolean, GroupBase<T>> & { columns?: TableMenuColumn[] }) => {\n\t// Derive columns from data if not provided\n\tconst derivedColumns = useMemo<TableMenuColumn[]>(() => {\n\t\tif (columns) return columns;\n\n\t\tif (!data.data) {\n\t\t\treturn [{ key: \"label\", header: \"Name\" }];\n\t\t}\n\n\t\treturn [\n\t\t\t{ key: \"label\", header: \"Name\" },\n\t\t\t...Object.keys(data.data).map((key) => ({\n\t\t\t\tkey,\n\t\t\t\theader: key,\n\t\t\t})),\n\t\t];\n\t}, [columns, data.data]);\n\n\tconst getCellValue = (col: TableMenuColumn): React.ReactNode => {\n\t\tif (col.key === \"label\") {\n\t\t\treturn data.label;\n\t\t}\n\t\tif (col.key === \"id\") {\n\t\t\treturn data.id;\n\t\t}\n\t\tif (data.data && col.key in data.data) {\n\t\t\tconst value = data.data[col.key];\n\t\t\tif (value === null || value === undefined) return \"-\";\n\t\t\treturn String(value);\n\t\t}\n\t\treturn \"-\";\n\t};\n\n\t// Extract only the event handlers and data attributes from innerProps\n\t// The ref is incompatible with table rows, so we exclude it\n\tconst { ref: _ref, ...rowProps } = innerProps;\n\n\treturn (\n\t\t<Table.Row\n\t\t\t{...rowProps}\n\t\t\t_hover={{ bg: isFocused ? \"bg-muted\" : \"bg-subtle\" }}\n\t\t\tcursor=\"pointer\"\n\t\t\t_even={{\n\t\t\t\tbg: isSelected ? \"primary.subtle\" : isFocused ? \"bg-muted\" : undefined,\n\t\t\t}}\n\t\t>\n\t\t\t{derivedColumns.map((col) => (\n\t\t\t\t<Table.Cell key={col.key} width={col.width} whiteSpace=\"nowrap\">\n\t\t\t\t\t{getCellValue(col)}\n\t\t\t\t</Table.Cell>\n\t\t\t))}\n\t\t</Table.Row>\n\t);\n};\n(TableOption as { displayName?: string }).displayName = \"TableOption\";\n\nexport interface CreateTableMenuComponentsOptions {\n\tcolumns: TableMenuColumn[];\n\t/** Minimum width of the table menu. Defaults to \"400px\" */\n\tminWidth?: string;\n\t/** Maximum width of the table menu. Defaults to \"600px\" */\n\tmaxWidth?: string;\n}\n\n/**\n * Helper to create table menu components with predefined columns.\n *\n * Usage:\n * ```tsx\n * const { MenuList, Option } = createTableMenuComponents({\n * columns: [\n * { key: \"label\", header: \"Release\" },\n * { key: \"valid_from\", header: \"Valid From\" },\n * { key: \"valid_until\", header: \"Valid Until\" },\n * ],\n * minWidth: \"500px\",\n * maxWidth: \"800px\",\n * });\n *\n * <BaseSelect components={{ MenuList, Option }} />\n * ```\n */\nexport const createTableMenuComponents = <T extends BaseOption>(\n\toptions: CreateTableMenuComponentsOptions,\n) => ({\n\tMenuList: (props: MenuListProps<T, boolean, GroupBase<T>>) => (\n\t\t<TableMenuList\n\t\t\t{...props}\n\t\t\tcolumns={options.columns}\n\t\t\tminWidth={options.minWidth}\n\t\t\tmaxWidth={options.maxWidth}\n\t\t/>\n\t),\n\tOption: (props: OptionProps<T, boolean, GroupBase<T>>) => (\n\t\t<TableOption {...props} columns={options.columns} />\n\t),\n});\n","import { HStack } from \"@chakra-ui/react\";\nimport { ChevronDown, Plus } from \"lucide-react\";\nimport type React from \"react\";\nimport {\n\tMenuContent,\n\tMenuItem,\n\tMenuRoot,\n\tMenuTrigger,\n} from \"../../primitives/menu\";\nimport { Button, type ButtonProps } from \"../button\";\n\nexport interface SplitButtonMenuItem {\n\tlabel: string;\n\tonClick: () => void;\n\ticon?: React.ReactNode;\n\tcolor?: string;\n}\n\nexport interface SplitButtonProps extends ButtonProps {\n\tlabel: string;\n\tmenuItems?: SplitButtonMenuItem[];\n}\n\nexport const SplitButton: React.FC<SplitButtonProps> = (props) => {\n\tconst { label, menuItems, onClick, ...rest } = props;\n\tconst hasMenuItems = menuItems && menuItems.length > 0;\n\n\treturn (\n\t\t<HStack gap={0.5}>\n\t\t\t{onClick && (\n\t\t\t\t<Button\n\t\t\t\t\t{...rest}\n\t\t\t\t\tcolorPalette=\"blue\"\n\t\t\t\t\tonClick={onClick}\n\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\tborderEndRadius={hasMenuItems ? \"none\" : undefined}\n\t\t\t\t>\n\t\t\t\t\t<Plus size={16} />\n\t\t\t\t\t{label}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t\t{hasMenuItems && (\n\t\t\t\t<MenuRoot>\n\t\t\t\t\t<MenuTrigger asChild>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\tcolorPalette=\"blue\"\n\t\t\t\t\t\t\tborderStartRadius={onClick ? \"none\" : undefined}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ChevronDown size={16} />\n\t\t\t\t\t\t\t{onClick ? null : label}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MenuTrigger>\n\t\t\t\t\t<MenuContent>\n\t\t\t\t\t\t{menuItems.map((menuItem) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={menuItem.label}\n\t\t\t\t\t\t\t\tvalue={menuItem.label}\n\t\t\t\t\t\t\t\tonClick={menuItem.onClick}\n\t\t\t\t\t\t\t\tcolor={menuItem.color}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{menuItem.icon}\n\t\t\t\t\t\t\t\t{menuItem.label}\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</MenuContent>\n\t\t\t\t</MenuRoot>\n\t\t\t)}\n\t\t</HStack>\n\t);\n};\nSplitButton.displayName = \"SplitButton\";\n","import {\n\tBox,\n\ttype BoxProps,\n\tHeading,\n\tHStack,\n\tSquare,\n\tStack,\n\tText,\n} from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { Spinner } from \"../../primitives/spinner\";\n\nexport interface StatProps extends BoxProps {\n\t/** An icon element rendered as React node (e.g., a lucide-react icon) */\n\ticon?: React.ReactNode;\n\tlabel: string;\n\tvalue?: React.ReactNode;\n\tloading?: boolean;\n}\n\nexport const Stat: React.FC<StatProps> = (props) => {\n\tconst { label, value, icon, loading, ...boxProps } = props;\n\n\treturn (\n\t\t<Box\n\t\t\tpx={{ base: \"4\", md: \"6\" }}\n\t\t\tpy={{ base: \"5\", md: \"6\" }}\n\t\t\tbg=\"bg-surface\"\n\t\t\tborderRadius=\"lg\"\n\t\t\tboxShadow=\"sm\"\n\t\t\t{...boxProps}\n\t\t>\n\t\t\t<Stack gap={{ base: \"5\", md: \"6\" }}>\n\t\t\t\t<Stack direction=\"row\" justify=\"space-between\">\n\t\t\t\t\t<HStack gap=\"4\">\n\t\t\t\t\t\t{icon && (\n\t\t\t\t\t\t\t<Square size=\"8\" bg=\"bg-accent-subtle\" borderRadius=\"md\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</Square>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text fontWeight=\"medium\">{label}</Text>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Stack>\n\t\t\t\t<Stack gap=\"4\">\n\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Heading size={{ base: \"sm\", md: \"md\" }}>{value ?? 0}</Heading>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t</Box>\n\t);\n};\n\nStat.displayName = \"Stat\";\n","import { Text, type TextProps } from \"@chakra-ui/react\";\nimport { memo, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Tooltip } from \"../../primitives/tooltip\";\n\nexport interface TextOverflowProps extends TextProps {}\n\nexport const TextOverflow: React.FC<TextOverflowProps> = memo((props) => {\n\tconst { children, ...rest } = props;\n\tconst textElementRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflown, setIsOverflown] = useState(false);\n\n\tconst compareSize = useCallback(() => {\n\t\tconst element = textElementRef.current;\n\n\t\tconst compare = element\n\t\t\t? element.scrollWidth > element.clientWidth ||\n\t\t\t\telement.offsetWidth < element.scrollWidth ||\n\t\t\t\telement.offsetHeight < element.scrollHeight\n\t\t\t: false;\n\n\t\tsetIsOverflown(compare);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tcompareSize();\n\t\tconst element = textElementRef.current;\n\t\tif (!element) return;\n\t\tconst observer = new ResizeObserver(compareSize);\n\t\tobserver.observe(element);\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [compareSize]);\n\n\treturn (\n\t\t<Tooltip content={children} disabled={!isOverflown}>\n\t\t\t<Text\n\t\t\t\tas=\"div\"\n\t\t\t\tposition=\"relative\"\n\t\t\t\twhiteSpace={isOverflown ? \"nowrap\" : \"normal\"}\n\t\t\t\t{...rest}\n\t\t\t\tref={textElementRef}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</Tooltip>\n\t);\n});\n\nTextOverflow.displayName = \"TextOverflow\";\n","import { Badge, type BadgeProps } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface TypeBadgeProps extends Omit<BadgeProps, \"children\"> {\n\t/** Display name for the badge. */\n\tname: string;\n\t/** Chakra color palette for visual differentiation. @default \"gray\" */\n\tcolorPalette?: string;\n}\n\nexport const TypeBadge: React.FC<TypeBadgeProps> = ({\n\tname,\n\tcolorPalette = \"gray\",\n\t...rest\n}) => {\n\treturn (\n\t\t<Badge\n\t\t\trounded=\"base\"\n\t\t\tpx={2}\n\t\t\tmarginInlineStart={1}\n\t\t\tcolorPalette={colorPalette}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{name}\n\t\t</Badge>\n\t);\n};\nTypeBadge.displayName = \"TypeBadge\";\n"]}
1
+ {"version":3,"sources":["../../src/atoms/actions/action.tsx","../../src/atoms/actions/collapse.tsx","../../src/atoms/actions/edit.tsx","../../src/atoms/actions/filter.tsx","../../src/atoms/actions/handle.tsx","../../src/atoms/actions/remove.tsx","../../src/atoms/checkbox-card/checkbox-card.tsx","../../src/atoms/clipboard/clipboard.tsx","../../src/atoms/color-swatch-picker/color-swatch-picker.tsx","../../src/atoms/datetime/utils/format-date-time-utils.ts","../../src/atoms/datetime/relative-datetime.tsx","../../src/atoms/comment/comment.tsx","../../src/atoms/comment/comment-reply-box.tsx","../../src/atoms/data-list/data-list.tsx","../../src/atoms/date-input/date-input.tsx","../../src/atoms/empty-state/empty-state.tsx","../../src/atoms/persona/persona.tsx","../../src/atoms/select/base-select.tsx","../../src/atoms/select/table-menu-list.tsx","../../src/atoms/split-button/split-button.tsx","../../src/atoms/stat/stat.tsx","../../src/atoms/text-overflow/text-overflow.tsx","../../src/atoms/type-badge/type-badge.tsx"],"names":["jsx","Icon","FilterIcon","Stack","Box","jsxs","ClipboardButton","ChakraClipboard","IconButton","Clipboard","ClipboardInput","ClipboardLink","dayjs","utcPlugin","useState","e","Button","DataList","ChakraDataList","Input","createContext","useContext","chakra","Circle","chakraComponents","ChevronDown","useRef","useEffect"],"mappings":"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","file":"index.js","sourcesContent":["import type React from \"react\";\nimport { Box } from \"../../primitives/layout\";\n\nexport interface ActionProps extends React.HTMLAttributes<HTMLButtonElement> {\n\tcursor?: string;\n}\n\nexport const Action = ({\n\tref,\n\tcursor,\n\tcolor,\n\t...props\n}: ActionProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Box\n\t\t\tdisplay=\"flex\"\n\t\t\talignItems={\"center\"}\n\t\t\tjustifyContent={\"center\"}\n\t\t\tborderRadius={\"5px\"}\n\t\t\tp={\"15px\"}\n\t\t\ttabIndex={0}\n\t\t\tcursor={cursor}\n\t\t\ttransition={\"background-color 150ms, color 150ms, opacity 150ms\"}\n\t\t\tbg={color}\n\t\t\tasChild\n\t\t>\n\t\t\t<button type=\"button\" ref={ref} {...props} />\n\t\t</Box>\n\t);\n};\nAction.displayName = \"Action\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface CollapseProps extends ActionProps {\n\tcollapsed: boolean;\n\t/** Accessible label for the collapse button */\n\tcollapseLabel?: string;\n}\n\nexport const Collapse = ({\n\tref,\n\tcollapseLabel = \"Collapse\",\n\t...props\n}: CollapseProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\tconst { collapsed, ...rest } = props;\n\n\treturn (\n\t\t<Action ref={ref} cursor=\"pointer\" aria-label={collapseLabel} {...rest}>\n\t\t\t<Icon color=\"subtle\">\n\t\t\t\t{collapsed ? <ChevronRight /> : <ChevronDown />}\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nCollapse.displayName = \"Collapse\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { Pencil } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface EditProps extends ActionProps {\n\t/** Accessible label for the edit button */\n\teditLabel?: string;\n}\n\nexport const Edit = ({\n\tref,\n\teditLabel = \"Edit\",\n\t...props\n}: EditProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Action ref={ref} cursor=\"pointer\" aria-label={editLabel} {...props}>\n\t\t\t<Icon color=\"subtle\" asChild>\n\t\t\t\t<Pencil />\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nEdit.displayName = \"Edit\";\n","import { Circle } from \"@chakra-ui/react\";\nimport { Filter as FilterIcon } from \"lucide-react\";\nimport type React from \"react\";\nimport { Box } from \"../../primitives/layout\";\nimport { Text } from \"../../primitives/typography\";\nimport { IconButton, type IconButtonProps } from \"../button\";\n\nexport type FilterProps = Omit<\n\tIconButtonProps,\n\t\"aria-label\" | \"cursor\" | \"icon\"\n> & {\n\tactiveFilterCount?: number;\n\t/** Accessible label for the filter button */\n\tfilterLabel?: string;\n};\n\nexport const Filter = ({\n\tref,\n\tfilterLabel = \"Filter\",\n\t...props\n}: FilterProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\tconst { activeFilterCount, ...rest } = props;\n\n\treturn (\n\t\t<Box position=\"relative\">\n\t\t\t<IconButton\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tcursor=\"pointer\"\n\t\t\t\tref={ref}\n\t\t\t\taria-label={filterLabel}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t<FilterIcon />\n\t\t\t</IconButton>\n\t\t\t{activeFilterCount && activeFilterCount > 0 ? (\n\t\t\t\t<Circle\n\t\t\t\t\tsize=\"24px\"\n\t\t\t\t\tbg=\"accent\"\n\t\t\t\t\tcolor=\"on-accent\"\n\t\t\t\t\tposition=\"absolute\"\n\t\t\t\t\ttop={5}\n\t\t\t\t\tinsetInlineEnd={-1.5}\n\t\t\t\t>\n\t\t\t\t\t<Text fontSize=\"xs\" fontWeight={800}>\n\t\t\t\t\t\t{activeFilterCount}\n\t\t\t\t\t</Text>\n\t\t\t\t</Circle>\n\t\t\t) : null}\n\t\t</Box>\n\t);\n};\nFilter.displayName = \"Filter\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { GripVertical } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface HandleProps extends ActionProps {\n\t/** Accessible label for the drag handle */\n\thandleLabel?: string;\n}\n\nexport const Handle = ({\n\tref,\n\thandleLabel = \"Drag to reorder\",\n\t...props\n}: HandleProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Action ref={ref} cursor=\"grab\" aria-label={handleLabel} {...props}>\n\t\t\t<Icon color=\"subtle\" asChild>\n\t\t\t\t<GripVertical />\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nHandle.displayName = \"Handle\";\n","import { Icon } from \"@chakra-ui/react\";\nimport { X } from \"lucide-react\";\nimport type React from \"react\";\nimport { Action, type ActionProps } from \"./action\";\n\nexport interface RemoveProps extends ActionProps {\n\t/** Accessible label for the remove button */\n\tremoveLabel?: string;\n}\n\nexport const Remove = ({\n\tref,\n\tremoveLabel = \"Remove\",\n\t...props\n}: RemoveProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<Action ref={ref} aria-label={removeLabel} {...props}>\n\t\t\t<Icon color=\"subtle\" asChild>\n\t\t\t\t<X />\n\t\t\t</Icon>\n\t\t</Action>\n\t);\n};\nRemove.displayName = \"Remove\";\n","import {\n\tBox,\n\ttype BoxProps,\n\tStack,\n\ttype StackProps,\n\ttype UseCheckboxGroupProps,\n\tuseCheckboxGroup,\n} from \"@chakra-ui/react\";\nimport React from \"react\";\n\nexport type CheckboxCardGroupProps = StackProps & {\n\tdefaultValue?: UseCheckboxGroupProps[\"defaultValue\"];\n\tvalue?: UseCheckboxGroupProps[\"value\"];\n\tonValueChange?: (value: string[]) => void;\n};\n\nexport const CheckboxCardGroup = (props: CheckboxCardGroupProps) => {\n\tconst { children, defaultValue, value, onValueChange, ...rest } = props;\n\tconst group = useCheckboxGroup({\n\t\tdefaultValue,\n\t\tvalue,\n\t\tonValueChange,\n\t});\n\n\tconst cards = React.useMemo(\n\t\t() =>\n\t\t\tReact.Children.toArray(children)\n\t\t\t\t.filter<React.ReactElement<CheckboxCardProps>>(React.isValidElement)\n\t\t\t\t.map((card) => {\n\t\t\t\t\treturn React.cloneElement(card, {\n\t\t\t\t\t\tcheckboxProps: group.getItemProps({\n\t\t\t\t\t\t\tvalue: card.props.value,\n\t\t\t\t\t\t}),\n\t\t\t\t\t});\n\t\t\t\t}),\n\t\t[children, group],\n\t);\n\n\treturn <Stack {...rest}>{cards}</Stack>;\n};\n\nCheckboxCardGroup.displayName = \"CheckboxCardGroup\";\n\n// Infer the item props type directly from the hook to avoid invalid imports\ntype CheckboxItemProps = ReturnType<\n\tReturnType<typeof useCheckboxGroup>[\"getItemProps\"]\n>;\n\nexport interface CheckboxCardProps extends BoxProps {\n\tvalue: string;\n\tcheckboxProps?: CheckboxItemProps;\n}\n\nexport const CheckboxCard = (props: CheckboxCardProps) => {\n\tconst { checkboxProps, children, ...rest } = props;\n\n\tconst id = React.useId();\n\n\treturn (\n\t\t<Box\n\t\t\tcursor=\"pointer\"\n\t\t\tcss={{\n\t\t\t\t\"& .focus-visible + [data-focus]\": {\n\t\t\t\t\tboxShadow: \"outline\",\n\t\t\t\t\tzIndex: 1,\n\t\t\t\t},\n\t\t\t}}\n\t\t\tasChild\n\t\t>\n\t\t\t<label>\n\t\t\t\t<input type=\"checkbox\" aria-labelledby={id} {...checkboxProps} />\n\t\t\t\t<Box {...rest}>\n\t\t\t\t\t<Stack direction=\"row\">\n\t\t\t\t\t\t<Box flex=\"1\" id={id}>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</Box>\n\t\t\t\t\t</Stack>\n\t\t\t\t</Box>\n\t\t\t</label>\n\t\t</Box>\n\t);\n};\n\nCheckboxCard.displayName = \"CheckboxCard\";\n","import {\n\tClipboard as ChakraClipboard,\n\tIconButton,\n\tInput,\n\ttype InputProps,\n} from \"@chakra-ui/react\";\nimport { Check, Clipboard, Link } from \"lucide-react\";\nimport type * as React from \"react\";\n\nexport interface ClipboardButtonProps extends ChakraClipboard.RootProps {\n\t/** Label for the copy button. @default \"Copy\" */\n\tlabel?: string;\n}\n\nexport const ClipboardButton = function ClipboardButton({\n\tref,\n\t...props\n}: ClipboardButtonProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { label = \"Copy\", ...rest } = props;\n\treturn (\n\t\t<ChakraClipboard.Root ref={ref} {...rest}>\n\t\t\t<ChakraClipboard.Trigger asChild>\n\t\t\t\t<IconButton variant=\"ghost\" size=\"sm\" aria-label={label}>\n\t\t\t\t\t<ChakraClipboard.Indicator copied={<Check size={16} />}>\n\t\t\t\t\t\t<Clipboard size={16} />\n\t\t\t\t\t</ChakraClipboard.Indicator>\n\t\t\t\t</IconButton>\n\t\t\t</ChakraClipboard.Trigger>\n\t\t</ChakraClipboard.Root>\n\t);\n};\nClipboardButton.displayName = \"ClipboardButton\";\n\nexport interface ClipboardInputProps extends ChakraClipboard.RootProps {\n\t/** Props passed to the input element. */\n\tinputProps?: InputProps;\n\t/** Label for the copy button. @default \"Copy\" */\n\tlabel?: string;\n}\n\nexport const ClipboardInput = function ClipboardInput({\n\tref,\n\t...props\n}: ClipboardInputProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { inputProps, label = \"Copy\", ...rest } = props;\n\treturn (\n\t\t<ChakraClipboard.Root ref={ref} {...rest}>\n\t\t\t<ChakraClipboard.Control>\n\t\t\t\t<ChakraClipboard.Input asChild>\n\t\t\t\t\t<Input readOnly {...inputProps} />\n\t\t\t\t</ChakraClipboard.Input>\n\t\t\t\t<ChakraClipboard.Trigger asChild>\n\t\t\t\t\t<IconButton variant=\"outline\" size=\"sm\" aria-label={label}>\n\t\t\t\t\t\t<ChakraClipboard.Indicator copied={<Check size={16} />}>\n\t\t\t\t\t\t\t<Clipboard size={16} />\n\t\t\t\t\t\t</ChakraClipboard.Indicator>\n\t\t\t\t\t</IconButton>\n\t\t\t\t</ChakraClipboard.Trigger>\n\t\t\t</ChakraClipboard.Control>\n\t\t</ChakraClipboard.Root>\n\t);\n};\nClipboardInput.displayName = \"ClipboardInput\";\n\nexport interface ClipboardLinkProps extends ChakraClipboard.RootProps {\n\t/** Label for the copy link button. @default \"Copy Link\" */\n\tlabel?: string;\n}\n\nexport const ClipboardLink = function ClipboardLink({\n\tref,\n\t...props\n}: ClipboardLinkProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { label = \"Copy Link\", ...rest } = props;\n\treturn (\n\t\t<ChakraClipboard.Root ref={ref} {...rest}>\n\t\t\t<ChakraClipboard.Trigger asChild>\n\t\t\t\t<IconButton variant=\"ghost\" size=\"xs\" aria-label={label}>\n\t\t\t\t\t<ChakraClipboard.Indicator copied={<Check size={14} />}>\n\t\t\t\t\t\t<Link size={14} />\n\t\t\t\t\t</ChakraClipboard.Indicator>\n\t\t\t\t</IconButton>\n\t\t\t</ChakraClipboard.Trigger>\n\t\t</ChakraClipboard.Root>\n\t);\n};\nClipboardLink.displayName = \"ClipboardLink\";\n","import type React from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { Box, Flex, HStack, Stack } from \"../../primitives/layout\";\nimport { TextInput } from \"../text-input\";\n\nconst DEFAULT_PRESETS = [\n\t\"#3b82f6\",\n\t\"#10b981\",\n\t\"#f59e0b\",\n\t\"#ef4444\",\n\t\"#8b5cf6\",\n\t\"#ec4899\",\n\t\"#14b8a6\",\n\t\"#6b7280\",\n];\n\nexport interface ColorSwatchPickerProps {\n\tvalue?: string;\n\tonChange: (color: string) => void;\n\tpresets?: string[];\n\tshowHexInput?: boolean;\n\tshowPreview?: boolean;\n\tsize?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst SWATCH_SIZES = { sm: 4, md: 5, lg: 7 } as const;\n\nexport const ColorSwatchPicker: React.FC<ColorSwatchPickerProps> = ({\n\tvalue,\n\tonChange,\n\tpresets = DEFAULT_PRESETS,\n\tshowHexInput = false,\n\tshowPreview = false,\n\tsize = \"md\",\n}) => {\n\tconst [hexInput, setHexInput] = useState(value ?? \"\");\n\n\tuseEffect(() => {\n\t\tsetHexInput(value ?? \"\");\n\t}, [value]);\n\n\tconst swatchSize = SWATCH_SIZES[size];\n\n\tconst handleHexSubmit = () => {\n\t\tconst trimmed = hexInput.trim();\n\t\tif (/^#[0-9a-fA-F]{6}$/.test(trimmed)) {\n\t\t\tonChange(trimmed);\n\t\t}\n\t};\n\n\treturn (\n\t\t<Stack gap={3}>\n\t\t\t<Flex wrap=\"wrap\" gap={2}>\n\t\t\t\t{presets.map((color) => (\n\t\t\t\t\t<Box\n\t\t\t\t\t\tkey={color}\n\t\t\t\t\t\tw={swatchSize}\n\t\t\t\t\t\th={swatchSize}\n\t\t\t\t\t\trounded=\"sm\"\n\t\t\t\t\t\tbg={color}\n\t\t\t\t\t\tcursor=\"pointer\"\n\t\t\t\t\t\tborderWidth=\"2px\"\n\t\t\t\t\t\tborderColor={value === color ? \"border.emphasized\" : \"transparent\"}\n\t\t\t\t\t\tonClick={() => onChange(color)}\n\t\t\t\t\t\t_hover={{ transform: \"scale(1.1)\" }}\n\t\t\t\t\t\ttransition=\"transform 0.1s\"\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Flex>\n\t\t\t{(showHexInput || showPreview) && (\n\t\t\t\t<HStack gap={2}>\n\t\t\t\t\t{showPreview && (\n\t\t\t\t\t\t<Box\n\t\t\t\t\t\t\tw={9}\n\t\t\t\t\t\t\th={9}\n\t\t\t\t\t\t\trounded=\"md\"\n\t\t\t\t\t\t\tbg={value || \"transparent\"}\n\t\t\t\t\t\t\tborderWidth=\"1px\"\n\t\t\t\t\t\t\tborderColor=\"border\"\n\t\t\t\t\t\t\tflexShrink={0}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showHexInput && (\n\t\t\t\t\t\t<TextInput\n\t\t\t\t\t\t\tvalue={hexInput}\n\t\t\t\t\t\t\tonChange={(e) => setHexInput(e.target.value)}\n\t\t\t\t\t\t\tonBlur={handleHexSubmit}\n\t\t\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t\t\tif (e.key === \"Enter\") handleHexSubmit();\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tplaceholder=\"#000000\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tmaxW=\"120px\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</HStack>\n\t\t\t)}\n\t\t</Stack>\n\t);\n};\nColorSwatchPicker.displayName = \"ColorSwatchPicker\";\n","import dayjs from \"dayjs\";\nimport utcPlugin from \"dayjs/plugin/utc.js\";\n\ndayjs.extend(utcPlugin);\n\nimport type { DateFormat, DateType } from \"../types\";\n\n/**\n * A function that will return a formatted date string. The format will depend on the option\n * passed in the second argument.\n * By default, it will return a string with \"full\" format (e.g. Tue, 17 Aug 2021 at 3:45 PM)\n *\n * @param date - the date to be formatted\n * @param format - the desired format (\"full\", \"day\", \"weekday\", or \"time\")\n * @returns a formatted date\n *\n * @example\n * formatDateAndTime('2021-08-17T15:45:00') // returns \"Tue, 17 Aug 2021 at 3:45 PM\"\n *\n * @example\n * formatDateAndTime('2021-08-17T15:45:00', 'day') // returns \"17 Aug 2021\"\n */\nexport function formatDateAndTime(\n\tdate: DateType,\n\tformat: DateFormat = \"full\",\n): string {\n\tlet template: string;\n\n\tswitch (format) {\n\t\tcase \"day\":\n\t\t\ttemplate = \"DD MMM YYYY\"; // 17 Aug 2021\n\t\t\tbreak;\n\t\tcase \"weekday\":\n\t\t\ttemplate = \"ddd, DD MMM\"; // Tue, 17 Aug\n\t\t\tbreak;\n\t\tcase \"time\":\n\t\t\ttemplate = \"h:mm A\"; // 3:45 PM\n\t\t\tbreak;\n\t\tcase \"fullWithSeconds\":\n\t\t\ttemplate = \"ddd, DD MMM YYYY [at] h:mm:ss A\"; // Tue, 17 Aug 2021 at 3:45:67 PM\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ttemplate = \"ddd, DD MMM YYYY [at] h:mm A\"; // Tue, 17 Aug 2021 at 3:45 PM\n\t}\n\n\treturn dayjs(date).format(template);\n}\n\n/**\n * A function that will return a machine-readable date string that should be passed to the `datetime` attribute of a `<time>` tag\n * By default, it will return a string with \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\" format\n *\n * @param date - the date to be formatted\n * @param format - the desired format (\"full\", \"day\", \"weekday\", or \"time\")\n * @returns a formatted date\n *\n * @example\n * formatMachineReadableDateTime(date) // returns 2019-08-13T10:00:00.000Z\n *\n * @example\n * formatMachineReadableDateTime(date, 'day') // returns 2019-08-13\n */\nexport function formatMachineReadableDateTime(\n\tdate: DateType,\n\tformat: DateFormat = \"full\",\n): string {\n\tlet template: string;\n\n\tswitch (format) {\n\t\tcase \"day\":\n\t\t\ttemplate = \"YYYY-MM-DD\"; // 2019-08-24\n\t\t\tbreak;\n\t\tcase \"weekday\":\n\t\t\ttemplate = \"MM-DD\"; // 08-24\n\t\t\tbreak;\n\t\tcase \"time\":\n\t\t\ttemplate = \"HH:mm:ss.SSS\"; // 15:44:07.000\n\t\t\tbreak;\n\t\tdefault:\n\t\t\ttemplate = \"YYYY-MM-DDTHH:mm:ss.SSS[Z]\"; // 2019-08-24T15:44:07.000Z\n\t}\n\n\treturn dayjs(date).utc().format(template);\n}\n\n/**\n * @example\n * > formatDate(date)\n * 13 Aug 2019\n */\nexport const formatDate = (date: DateType): string => {\n\treturn formatDateAndTime(date, \"day\");\n};\n\n/**\n * @example\n * > formatTime(date)\n * 8:00 AM\n */\nexport const formatTime = (date: DateType): string => {\n\treturn formatDateAndTime(date, \"time\");\n};\n\n/**\n * @example\n * > formatWeekdayDate(date)\n * Mon, 12 Aug\n */\nexport const formatWeekdayDate = (date: DateType): string => {\n\treturn formatDateAndTime(date, \"weekday\");\n};\n","import dayjs from \"dayjs\";\nimport calendarPlugin from \"dayjs/plugin/calendar.js\";\nimport relativeTime from \"dayjs/plugin/relativeTime.js\";\nimport utcPlugin from \"dayjs/plugin/utc.js\";\nimport type React from \"react\";\nimport type { DateType } from \"./types\";\nimport { formatMachineReadableDateTime } from \"./utils/format-date-time-utils\";\nimport {\n\tformatRelativeDateTime,\n\tformatRelativeToCurrentWeekDateTime,\n} from \"./utils/relative-date-time-utils\";\n\ndayjs.extend(utcPlugin);\ndayjs.extend(relativeTime);\ndayjs.extend(calendarPlugin);\n\nexport interface RelativeDateTimeProps {\n\t/**\n\t * The date that will be displayed. It accepts a JS Date, an ISO8601 Timestamp string, or Unix Epoch Milliseconds number\n\t */\n\tdate: DateType;\n\t/**\n\t * If a value is passed to baseDate, then the component will compare both dates and return the time between them.\n\t * If no value is passed then the date will be compared to \"now\"\n\t *\n\t * @default \"Now\"\n\t */\n\tbaseDate?: DateType;\n\t/**\n\t * Sets the date to be relative only if it is in the current week\n\t * @default false\n\t */\n\tisRelativeToCurrentWeek?: boolean;\n}\n\nexport const RelativeDateTime: React.FC<RelativeDateTimeProps> = (props) => {\n\tconst { date, baseDate, isRelativeToCurrentWeek, ...otherProps } = props;\n\n\tconst now = new Date();\n\tconst referenceDate = baseDate ?? now;\n\tconst dayjsDate = dayjs(date);\n\tconst machineReadableDate = formatMachineReadableDateTime(date);\n\n\tlet relativeDate: string;\n\n\tif (isRelativeToCurrentWeek && !dayjsDate.isSame(referenceDate, \"day\")) {\n\t\trelativeDate = formatRelativeToCurrentWeekDateTime(date, referenceDate);\n\t} else {\n\t\trelativeDate = formatRelativeDateTime(date, referenceDate);\n\t}\n\n\treturn (\n\t\t<time dateTime={machineReadableDate} {...otherProps}>\n\t\t\t{relativeDate}\n\t\t</time>\n\t);\n};\nRelativeDateTime.displayName = \"RelativeDateTime\";\n","import { chakra } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { createContext, useContext } from \"react\";\nimport { HStack, Stack } from \"../../primitives/layout\";\nimport { Prose } from \"../../primitives/prose\";\nimport { Button, type ButtonProps } from \"../button\";\nimport { RelativeDateTime } from \"../datetime/relative-datetime\";\nimport type {\n\tCommentFooterProps,\n\tCommentHeaderProps,\n\tCommentProps,\n} from \"./types\";\n\ntype CommentStyles = Record<string, React.CSSProperties | object>;\n\nconst CommentStylesContext = createContext<CommentStyles>({});\nconst useStyles = () => useContext(CommentStylesContext);\n\nexport const Comment: React.FC<CommentProps> = (props) => {\n\tconst {\n\t\tavatar,\n\t\tcontent,\n\t\tchildren,\n\t\tauthor,\n\t\tcommentedAt,\n\t\tactions,\n\t\tid,\n\t\tisDeleted,\n\t\tdeletedLabel = \"This comment has been deleted\",\n\t\t...rest\n\t} = props;\n\n\tconst styles: CommentStyles = {};\n\n\tconst headerProps = {\n\t\tauthor,\n\t\tcommentedAt,\n\t};\n\n\tconst footerProps = {\n\t\tactions,\n\t};\n\n\treturn (\n\t\t<chakra.div css={styles.container} data-id={id} {...rest}>\n\t\t\t<CommentStylesContext.Provider value={styles}>\n\t\t\t\t{avatar && <AvatarSlot>{avatar}</AvatarSlot>}\n\t\t\t\t{(content || isDeleted) && (\n\t\t\t\t\t<ContentContainer>\n\t\t\t\t\t\t<Stack gap={3}>\n\t\t\t\t\t\t\t<Stack gap={2}>\n\t\t\t\t\t\t\t\t<CommentHeader {...headerProps} />\n\t\t\t\t\t\t\t\t<Prose\n\t\t\t\t\t\t\t\t\tcss={{\n\t\t\t\t\t\t\t\t\t\t\"& p\": {\n\t\t\t\t\t\t\t\t\t\t\tfontSize: \"inherit!important\",\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"& *:first-child\": {\n\t\t\t\t\t\t\t\t\t\t\tmarginTop: 0,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"& *:last-child\": {\n\t\t\t\t\t\t\t\t\t\t\tmarginBottom: 0,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{isDeleted ? (\n\t\t\t\t\t\t\t\t\t\t<chakra.span css={styles.deletedText}>\n\t\t\t\t\t\t\t\t\t\t\t{deletedLabel}\n\t\t\t\t\t\t\t\t\t\t</chakra.span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tcontent\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Prose>\n\t\t\t\t\t\t\t</Stack>\n\t\t\t\t\t\t\t<CommentFooter {...footerProps} />\n\t\t\t\t\t\t</Stack>\n\t\t\t\t\t</ContentContainer>\n\t\t\t\t)}\n\t\t\t\t{children && (\n\t\t\t\t\t<Stack gap={4} css={styles.children}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</Stack>\n\t\t\t\t)}\n\t\t\t</CommentStylesContext.Provider>\n\t\t</chakra.div>\n\t);\n};\n\nComment.displayName = \"Comment\";\n\nconst AvatarSlot: React.FC<{\n\tchildren: React.ReactNode;\n}> = ({ children }) => {\n\tconst styles = useStyles();\n\n\treturn <chakra.div css={styles.avatar}>{children}</chakra.div>;\n};\n\nconst ContentContainer = ({ children }: { children: React.ReactNode }) => {\n\tconst styles = useStyles();\n\n\treturn <chakra.div css={styles.contentContainer}>{children}</chakra.div>;\n};\n\nconst CommentHeader: React.FC<CommentHeaderProps> = (props) => {\n\tconst { author, commentedAt } = props;\n\n\tconst shouldRender = !!author || !!commentedAt;\n\n\treturn shouldRender ? (\n\t\t<HStack>\n\t\t\t{author && <Author>{author.name}</Author>}\n\t\t\t{commentedAt && <RelativeDateTime date={commentedAt} />}\n\t\t</HStack>\n\t) : null;\n};\n\nconst Author: React.FC<{\n\tchildren: React.ReactNode;\n}> = (props) => {\n\tconst { children } = props;\n\tconst styles = useStyles();\n\n\treturn <chakra.span css={styles.field}>{children}</chakra.span>;\n};\n\nconst CommentFooter: React.FC<CommentFooterProps> = (props) => {\n\tconst { actions } = props;\n\treturn (\n\t\t<HStack alignItems=\"center\" gap={4} flexWrap=\"wrap\">\n\t\t\t{actions?.map((item, key) => Object.assign({}, item, { key }))}\n\t\t</HStack>\n\t);\n};\n\nexport interface CommentActionProps extends ButtonProps {\n\tchildren: React.ReactNode;\n}\n\nexport const CommentAction: React.FC<CommentActionProps> = (props) => {\n\treturn <Button variant=\"outline\" size=\"xs\" {...props} />;\n};\nCommentAction.displayName = \"CommentAction\";\n","import { Button, ButtonGroup } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { useRef, useState } from \"react\";\nimport { Box, Flex } from \"../../primitives/layout\";\nimport { Textarea } from \"../../primitives/textarea\";\n\nexport interface CommentReplyBoxProps {\n\tonReply: (value: string) => Promise<void>;\n\tonCancel?: () => void;\n\t/** Placeholder text for the reply textarea */\n\tplaceholder?: string;\n\t/** Label for the cancel button */\n\tcancelLabel?: string;\n\t/** Label for the reply/submit button */\n\treplyLabel?: string;\n}\n\nexport const CommentReplyBox = ({\n\tref,\n\t...props\n}: CommentReplyBoxProps & { ref?: React.Ref<HTMLTextAreaElement> }) => {\n\tconst {\n\t\tonReply,\n\t\tonCancel,\n\t\tplaceholder = \"Write a reply...\",\n\t\tcancelLabel = \"Cancel\",\n\t\treplyLabel = \"Reply\",\n\t} = props;\n\n\tconst textBoxRef = useRef<HTMLTextAreaElement>(null);\n\n\tconst mergedRef = (node: HTMLTextAreaElement | null) => {\n\t\t(textBoxRef as React.MutableRefObject<HTMLTextAreaElement | null>).current =\n\t\t\tnode;\n\t\tif (typeof ref === \"function\") {\n\t\t\tref(node);\n\t\t} else if (ref) {\n\t\t\t(ref as React.MutableRefObject<HTMLTextAreaElement | null>).current =\n\t\t\t\tnode;\n\t\t}\n\t};\n\n\tconst [isFocused, setIsFocused] = useState<boolean>(false);\n\tconst [isSubmitting, setIsSubmitting] = useState<boolean>(false);\n\tconst [value, setValue] = useState<string>(\"\");\n\n\tconst handleReply = async (e: React.FormEvent) => {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tif (!value || !value.trim() || value === \"\") {\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\tsetIsSubmitting(true);\n\t\t\tawait onReply?.(value);\n\t\t\tsetValue(\"\");\n\t\t\tsetIsFocused(false);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t}\n\n\t\tsetIsSubmitting(false);\n\t};\n\n\tconst handleCancel = () => {\n\t\tsetValue(\"\");\n\t\tsetIsFocused(false);\n\t\tonCancel?.();\n\t};\n\n\treturn (\n\t\t<Box w=\"full\" onFocus={() => setIsFocused(true)}>\n\t\t\t<form onSubmit={handleReply}>\n\t\t\t\t<Textarea\n\t\t\t\t\tvalue={String(value)}\n\t\t\t\t\tonChange={(e) => setValue(e.target.value)}\n\t\t\t\t\tminH={isFocused ? undefined : \"2.5rem\"}\n\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\tonKeyDown={(e) => {\n\t\t\t\t\t\t// modifier + enter\n\t\t\t\t\t\tif ((e.ctrlKey || e.metaKey) && e.key === \"Enter\") {\n\t\t\t\t\t\t\thandleReply(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tdisabled={isSubmitting}\n\t\t\t\t/>\n\n\t\t\t\t<Flex\n\t\t\t\t\tmt={2}\n\t\t\t\t\tdisplay={isFocused ? \"flex\" : \"none\"}\n\t\t\t\t\tjustifyContent=\"flex-end\"\n\t\t\t\t>\n\t\t\t\t\t<ButtonGroup marginInlineStart=\"auto\" size=\"sm\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\tloading={isSubmitting}\n\t\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{cancelLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tvariant=\"solid\"\n\t\t\t\t\t\t\tcolorPalette=\"primary\"\n\t\t\t\t\t\t\tloading={isSubmitting}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{replyLabel}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</ButtonGroup>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Box>\n\t);\n};\nCommentReplyBox.displayName = \"CommentReplyBox\";\n","import { DataList as ChakraDataList } from \"@chakra-ui/react\";\nimport type * as React from \"react\";\n\nexport interface DataListItemType {\n\tlabel: React.ReactNode;\n\tvalue: React.ReactNode;\n}\n\nexport interface DataListProps extends ChakraDataList.RootProps {\n\t/** Items to render as label-value pairs. If provided, renders automatically. */\n\titems?: DataListItemType[];\n}\n\nexport const DataList = function DataList({\n\tref,\n\t...props\n}: DataListProps & { ref?: React.Ref<HTMLDListElement> }) {\n\tconst { items, children, ...rest } = props;\n\treturn (\n\t\t<ChakraDataList.Root ref={ref} {...rest}>\n\t\t\t{items\n\t\t\t\t? items.map((item) => (\n\t\t\t\t\t\t<ChakraDataList.Item key={String(item.label)}>\n\t\t\t\t\t\t\t<ChakraDataList.ItemLabel>{item.label}</ChakraDataList.ItemLabel>\n\t\t\t\t\t\t\t<ChakraDataList.ItemValue>{item.value}</ChakraDataList.ItemValue>\n\t\t\t\t\t\t</ChakraDataList.Item>\n\t\t\t\t\t))\n\t\t\t\t: children}\n\t\t</ChakraDataList.Root>\n\t);\n};\nDataList.displayName = \"DataList\";\n\n// Pass-through exports for manual composition\nexport const DataListItem = ChakraDataList.Item;\nDataListItem.displayName = \"DataListItem\";\n\nexport const DataListItemLabel = ChakraDataList.ItemLabel;\nDataListItemLabel.displayName = \"DataListItemLabel\";\n\nexport const DataListItemValue = ChakraDataList.ItemValue;\nDataListItemValue.displayName = \"DataListItemValue\";\n\nexport type DataListRootProps = ChakraDataList.RootProps;\n","import { Input, type InputProps } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface DateInputProps\n\textends Omit<InputProps, \"type\" | \"value\" | \"onChange\"> {\n\t/** The date value as an ISO date string (YYYY-MM-DD) or ISO datetime string */\n\tvalue?: string;\n\t/** Called when the date value changes */\n\tonChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n\t/** Minimum date in YYYY-MM-DD format */\n\tminDate?: string;\n\t/** Maximum date in YYYY-MM-DD format */\n\tmaxDate?: string;\n}\n\nconst datePattern = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Extracts a YYYY-MM-DD date string from various input formats.\n */\nfunction toDateString(value: string): string {\n\tif (!value) return \"\";\n\tif (datePattern.test(value)) return value;\n\t// Try to parse ISO datetime strings\n\ttry {\n\t\tconst date = new Date(value);\n\t\tif (Number.isNaN(date.getTime())) return \"\";\n\t\treturn date.toISOString().slice(0, 10);\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nconst DateInput = ({\n\tref,\n\t...props\n}: DateInputProps & { ref?: React.Ref<HTMLInputElement> }) => {\n\tconst { value, minDate, maxDate, onChange, ...rest } = props;\n\n\tconst dateValue = value ? toDateString(value) : \"\";\n\n\treturn (\n\t\t<Input\n\t\t\ttype=\"date\"\n\t\t\tvalue={dateValue}\n\t\t\tmin={minDate}\n\t\t\tmax={maxDate}\n\t\t\tonChange={onChange}\n\t\t\tref={ref}\n\t\t\t{...rest}\n\t\t/>\n\t);\n};\nDateInput.displayName = \"DateInput\";\n\nexport default DateInput;\n","import type React from \"react\";\nimport { Stack } from \"../../primitives/layout\";\nimport { Heading, Text } from \"../../primitives/typography\";\n\nexport interface EmptyStateProps {\n\t/** Main heading text. */\n\theader: string;\n\t/** Description text or rich content. */\n\tdescription?: React.ReactNode;\n\t/** Optional icon displayed above the heading. */\n\ticon?: React.ReactNode;\n\t/** Optional action buttons below the description. */\n\tactions?: React.ReactNode;\n}\n\nexport const EmptyState: React.FC<EmptyStateProps> = (props) => {\n\tconst { header, description, icon, actions } = props;\n\n\treturn (\n\t\t<Stack\n\t\t\tjustifyContent=\"center\"\n\t\t\talignItems=\"center\"\n\t\t\ttextAlign=\"center\"\n\t\t\tgap={4}\n\t\t\tp={16}\n\t\t\tborderRadius=\"lg\"\n\t\t>\n\t\t\t{icon}\n\t\t\t<Heading size=\"lg\">{header}</Heading>\n\t\t\t{description && (\n\t\t\t\t<Text color=\"muted\" fontSize=\"sm\">\n\t\t\t\t\t{description}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t\t{actions && (\n\t\t\t\t<Stack pt={4} gap={2}>\n\t\t\t\t\t{actions}\n\t\t\t\t</Stack>\n\t\t\t)}\n\t\t</Stack>\n\t);\n};\n\nEmptyState.displayName = \"EmptyState\";\n","import { chakra, type HTMLChakraProps } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { createContext, useContext } from \"react\";\nimport { Avatar, type AvatarProps } from \"../../primitives/avatar\";\n\nexport interface PersonaProps {\n\t/**\n\t * The name of the person in the avatar.\n\t *\n\t * - if `src` has loaded, the name will be used as the `alt` attribute of the `img`\n\t * - If `src` is not loaded, the name will be used to create the initials\n\t */\n\tname?: string;\n\n\t/**\n\t * Primary label of the persona, defaults to the name\n\t */\n\tlabel?: React.ReactNode;\n\t/**\n\t * Hide the persona details next to the avatar.\n\t */\n\thideDetails?: boolean;\n\t/**\n\t * The size of the persona, from 2xs to 2xl.\n\t */\n\tsize?: \"2xs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\";\n\t/**\n\t * When true, adds hover styling and pointer cursor for clickable personas.\n\t */\n\tinteractive?: boolean;\n}\n\ninterface PersonaStyles {\n\tcontainer?: React.CSSProperties;\n\tdetails?: React.CSSProperties;\n\tlabel?: React.CSSProperties;\n}\n\nconst PersonaStylesContext = createContext<PersonaStyles>({});\nconst usePersonaStyles = () => useContext(PersonaStylesContext);\n\nexport const Persona: React.FC<PersonaProps> = (props) => {\n\tconst { name, size = \"sm\", hideDetails, label, interactive } = props;\n\n\treturn (\n\t\t<PersonaContainer interactive={interactive}>\n\t\t\t<PersonaAvatar name={name} size={size} />\n\t\t\t{!hideDetails && (\n\t\t\t\t<PersonaDetails>\n\t\t\t\t\t<PersonaLabel>{label || name}</PersonaLabel>\n\t\t\t\t</PersonaDetails>\n\t\t\t)}\n\t\t</PersonaContainer>\n\t);\n};\n\nPersona.displayName = \"Persona\";\n\nexport interface PersonaContainerProps extends HTMLChakraProps<\"div\"> {\n\tchildren: React.ReactNode;\n\t/**\n\t * Optional style overrides passed down to child components via context.\n\t */\n\tstyles?: PersonaStyles;\n\t/**\n\t * When true, adds hover styling and pointer cursor for clickable personas.\n\t */\n\tinteractive?: boolean;\n}\n\nexport const PersonaContainer = ({\n\tref,\n\t...props\n}: PersonaContainerProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { children, styles = {}, interactive, ...rest } = props;\n\n\treturn (\n\t\t<PersonaStylesContext.Provider value={styles}>\n\t\t\t<chakra.div\n\t\t\t\tref={ref}\n\t\t\t\tdisplay=\"flex\"\n\t\t\t\tflexDirection=\"row\"\n\t\t\t\talignItems=\"center\"\n\t\t\t\t{...(interactive && {\n\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\tborderRadius: \"md\",\n\t\t\t\t\ttransition: \"background-color 150ms\",\n\t\t\t\t\t_hover: { bg: \"bg-subtle\" },\n\t\t\t\t\tpx: 2,\n\t\t\t\t\tpy: 1,\n\t\t\t\t})}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</chakra.div>\n\t\t</PersonaStylesContext.Provider>\n\t);\n};\n\ninterface PersonaAvatarOptions extends Pick<PersonaProps, \"name\" | \"size\"> {}\n\ninterface PersonaAvatarProps\n\textends PersonaAvatarOptions,\n\t\tOmit<AvatarProps, \"size\"> {}\n\nexport const PersonaAvatar = ({\n\tref,\n\t...props\n}: PersonaAvatarProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { name, size, ...rest } = props;\n\n\treturn <Avatar ref={ref} name={name} size={size} {...rest} />;\n};\nPersonaAvatar.displayName = \"PersonaAvatar\";\n\nexport const PersonaDetails = ({\n\tref,\n\t...props\n}: HTMLChakraProps<\"div\"> & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst { children, ...rest } = props;\n\tconst styles = usePersonaStyles();\n\n\treturn (\n\t\t<chakra.div\n\t\t\tref={ref}\n\t\t\tdisplay=\"flex\"\n\t\t\tflexDirection=\"column\"\n\t\t\tstyle={styles.details}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</chakra.div>\n\t);\n};\nPersonaDetails.displayName = \"PersonaDetails\";\n\nexport const PersonaLabel = ({\n\tref,\n\t...props\n}: HTMLChakraProps<\"span\"> & { ref?: React.Ref<HTMLSpanElement> }) => {\n\tconst styles = usePersonaStyles();\n\n\treturn <chakra.span ref={ref} style={styles.label} {...props} />;\n};\nPersonaLabel.displayName = \"PersonaLabel\";\n","import { Circle } from \"@chakra-ui/react\";\nimport {\n\ttype ActionMeta,\n\tchakraComponents,\n\ttype GroupBase,\n\ttype MultiValue,\n\ttype MultiValueProps,\n\ttype OptionProps,\n\ttype Props,\n\tSelect,\n\ttype SelectInstance,\n\ttype SingleValue,\n\ttype SingleValueProps,\n} from \"chakra-react-select\";\nimport type React from \"react\";\nimport { Avatar } from \"../../primitives/avatar\";\nimport { HStack } from \"../../primitives/layout\";\nimport { Text } from \"../../primitives/typography\";\nimport type { BaseOption } from \"./types\";\n\nexport interface BaseSelectProps<T extends BaseOption>\n\textends Omit<\n\t\tProps<T, boolean, GroupBase<T>>,\n\t\t\"value\" | \"onChange\" | \"isLoading\" | \"isDisabled\"\n\t> {\n\tvalue: T | T[] | null;\n\tonChange?: (\n\t\tnewValue: MultiValue<T> | SingleValue<T>,\n\t\tactionMeta: ActionMeta<T>,\n\t) => void;\n\tloading?: boolean;\n\tdisabled?: boolean;\n}\n\nconst BaseSingleValue = <T extends BaseOption>({\n\tdata,\n\t...props\n}: SingleValueProps<T, boolean, GroupBase<T>>) => {\n\treturn (\n\t\t<chakraComponents.SingleValue data={data} {...props}>\n\t\t\t<HStack gap={2}>\n\t\t\t\t{data.avatar && <Avatar name={data.avatar} size=\"xs\" />}\n\t\t\t\t{data.color && <Circle bg={data.color} size={5} />}\n\t\t\t\t{data.icon && data.icon}\n\t\t\t\t<Text>{data.label}</Text>\n\t\t\t</HStack>\n\t\t</chakraComponents.SingleValue>\n\t);\n};\n\nconst BaseMultiValue = <T extends BaseOption>({\n\tchildren,\n\t...props\n}: MultiValueProps<T, boolean, GroupBase<T>>) => {\n\tconst { data } = props;\n\n\treturn (\n\t\t// @ts-expect-error -- strict mode: duplicate property\n\t\t<chakraComponents.MultiValue data={data} {...props}>\n\t\t\t<HStack gap={2}>\n\t\t\t\t{data.avatar && <Avatar name={data.avatar} size=\"xs\" />}\n\t\t\t\t{data.color && <Circle bg={data.color} size={5} />}\n\t\t\t\t{data.icon && data.icon}\n\t\t\t\t<Text>{data.label}</Text>\n\t\t\t</HStack>\n\t\t</chakraComponents.MultiValue>\n\t);\n};\n\nconst BaseSelectOption = <T extends BaseOption>({\n\tdata,\n\t...props\n}: OptionProps<T, boolean, GroupBase<T>>) => {\n\treturn (\n\t\t<chakraComponents.Option data={data} {...props}>\n\t\t\t<HStack gap={2}>\n\t\t\t\t{data.avatar && <Avatar name={data.avatar} size=\"xs\" />}\n\t\t\t\t{data.color && <Circle bg={data.color} size={5} />}\n\t\t\t\t{data.icon && data.icon}\n\t\t\t\t<Text>{data.label}</Text>\n\t\t\t</HStack>\n\t\t</chakraComponents.Option>\n\t);\n};\n\nconst getSelectComponents = (\n\tvariant?: string,\n\tcustomComponents?: Record<string, React.ComponentType<unknown>>,\n) => ({\n\t...(variant === \"link\"\n\t\t? {\n\t\t\t\tDropdownIndicator: null,\n\t\t\t\tIndicatorSeparator: null,\n\t\t\t}\n\t\t: {}),\n\tSingleValue: BaseSingleValue,\n\tMultiValue: BaseMultiValue,\n\tOption: BaseSelectOption,\n\t...customComponents,\n});\n\nexport const BaseSelect = <T extends BaseOption>({\n\tref,\n\tvalue,\n\tonChange,\n\toptions,\n\tisMulti = false,\n\tloading = false,\n\tdisabled = false,\n\tisClearable = true,\n\tplaceholder,\n\tmenuPortalTarget = document.body,\n\tvariant = \"outline\",\n\tstyles,\n\t...restSelectProps\n}: BaseSelectProps<T> & {\n\tref?: React.Ref<SelectInstance<T, boolean, GroupBase<T>>>;\n}) => {\n\treturn (\n\t\t<Select<T, boolean, GroupBase<T>>\n\t\t\t{...restSelectProps}\n\t\t\tref={ref}\n\t\t\tvalue={value}\n\t\t\tvariant={variant}\n\t\t\tonChange={onChange}\n\t\t\toptions={options}\n\t\t\tisMulti={isMulti}\n\t\t\tisLoading={loading}\n\t\t\tisDisabled={disabled}\n\t\t\tisClearable={isClearable}\n\t\t\tplaceholder={placeholder}\n\t\t\tmenuPortalTarget={menuPortalTarget}\n\t\t\tstyles={{\n\t\t\t\tmenuPortal: (provided) => ({\n\t\t\t\t\t...provided,\n\t\t\t\t\tzIndex: 1800,\n\t\t\t\t\tpointerEvents: \"auto\" as const,\n\t\t\t\t}),\n\t\t\t\t...styles,\n\t\t\t}}\n\t\t\tgetOptionValue={(option) => option.id}\n\t\t\tgetOptionLabel={(option) => option.label}\n\t\t\tcomponents={getSelectComponents(\n\t\t\t\tvariant as string,\n\t\t\t\t// @ts-expect-error -- strict mode: argument type\n\t\t\t\trestSelectProps.components,\n\t\t\t)}\n\t\t/>\n\t);\n};\n(BaseSelect as { displayName?: string }).displayName = \"BaseSelect\";\n","import {\n\tchakraComponents,\n\ttype GroupBase,\n\ttype MenuListProps,\n\ttype OptionProps,\n} from \"chakra-react-select\";\nimport type React from \"react\";\nimport { useMemo } from \"react\";\nimport { Box } from \"../../primitives/layout\";\nimport { Table } from \"../../primitives/table\";\nimport type { BaseOption } from \"./types\";\n\nexport interface TableMenuColumn {\n\tkey: string;\n\theader: string;\n\twidth?: string;\n}\n\nexport interface TableMenuListProps<T extends BaseOption>\n\textends MenuListProps<T, boolean, GroupBase<T>> {\n\tcolumns?: TableMenuColumn[];\n\t/** Minimum width of the table menu. Defaults to \"400px\" */\n\tminWidth?: string;\n\t/** Maximum width of the table menu. Defaults to \"600px\" */\n\tmaxWidth?: string;\n}\n\n/**\n * A custom MenuList component that renders options as table rows.\n *\n * Use with BaseSelect by passing it via the `components` prop:\n * ```tsx\n * <BaseSelect\n * components={{\n * MenuList: (props) => (\n * <TableMenuList\n * {...props}\n * columns={[\n * { key: \"label\", header: \"Name\" },\n * { key: \"valid_from\", header: \"Valid From\" },\n * ]}\n * />\n * ),\n * Option: TableOption,\n * }}\n * />\n * ```\n */\nexport const TableMenuList = <T extends BaseOption>({\n\tchildren,\n\tcolumns,\n\tminWidth = \"400px\",\n\tmaxWidth = \"600px\",\n\t...props\n}: TableMenuListProps<T>) => {\n\tconst { options } = props;\n\n\t// If no columns specified, derive from first option's data keys\n\tconst derivedColumns = useMemo<TableMenuColumn[]>(() => {\n\t\tif (columns) return columns;\n\n\t\tconst firstOption = options?.[0] as T | undefined;\n\t\tif (!firstOption?.data) {\n\t\t\treturn [{ key: \"label\", header: \"Name\" }];\n\t\t}\n\n\t\treturn [\n\t\t\t{ key: \"label\", header: \"Name\" },\n\t\t\t...Object.keys(firstOption.data).map((key) => ({\n\t\t\t\tkey,\n\t\t\t\theader: key.charAt(0).toUpperCase() + key.slice(1).replace(/_/g, \" \"),\n\t\t\t})),\n\t\t];\n\t}, [columns, options]);\n\n\treturn (\n\t\t<chakraComponents.MenuList {...props}>\n\t\t\t<Box\n\t\t\t\toverflowX=\"auto\"\n\t\t\t\tminWidth={minWidth}\n\t\t\t\tmaxWidth={maxWidth}\n\t\t\t\twidth=\"max-content\"\n\t\t\t>\n\t\t\t\t<Table.Root size=\"sm\">\n\t\t\t\t\t<Table.Header>\n\t\t\t\t\t\t<Table.Row>\n\t\t\t\t\t\t\t{derivedColumns.map((col) => (\n\t\t\t\t\t\t\t\t<Table.ColumnHeader\n\t\t\t\t\t\t\t\t\tkey={col.key}\n\t\t\t\t\t\t\t\t\twidth={col.width}\n\t\t\t\t\t\t\t\t\twhiteSpace=\"nowrap\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{col.header}\n\t\t\t\t\t\t\t\t</Table.ColumnHeader>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</Table.Row>\n\t\t\t\t\t</Table.Header>\n\t\t\t\t\t<Table.Body>{children}</Table.Body>\n\t\t\t\t</Table.Root>\n\t\t\t</Box>\n\t\t</chakraComponents.MenuList>\n\t);\n};\n(TableMenuList as { displayName?: string }).displayName = \"TableMenuList\";\n\n/**\n * A custom Option component that renders as a table row.\n * Use together with TableMenuList.\n */\nexport const TableOption = <T extends BaseOption>({\n\tdata,\n\tinnerProps,\n\tisSelected,\n\tisFocused,\n\tcolumns,\n}: OptionProps<T, boolean, GroupBase<T>> & { columns?: TableMenuColumn[] }) => {\n\t// Derive columns from data if not provided\n\tconst derivedColumns = useMemo<TableMenuColumn[]>(() => {\n\t\tif (columns) return columns;\n\n\t\tif (!data.data) {\n\t\t\treturn [{ key: \"label\", header: \"Name\" }];\n\t\t}\n\n\t\treturn [\n\t\t\t{ key: \"label\", header: \"Name\" },\n\t\t\t...Object.keys(data.data).map((key) => ({\n\t\t\t\tkey,\n\t\t\t\theader: key,\n\t\t\t})),\n\t\t];\n\t}, [columns, data.data]);\n\n\tconst getCellValue = (col: TableMenuColumn): React.ReactNode => {\n\t\tif (col.key === \"label\") {\n\t\t\treturn data.label;\n\t\t}\n\t\tif (col.key === \"id\") {\n\t\t\treturn data.id;\n\t\t}\n\t\tif (data.data && col.key in data.data) {\n\t\t\tconst value = data.data[col.key];\n\t\t\tif (value === null || value === undefined) return \"-\";\n\t\t\treturn String(value);\n\t\t}\n\t\treturn \"-\";\n\t};\n\n\t// Extract only the event handlers and data attributes from innerProps\n\t// The ref is incompatible with table rows, so we exclude it\n\tconst { ref: _ref, ...rowProps } = innerProps;\n\n\treturn (\n\t\t<Table.Row\n\t\t\t{...rowProps}\n\t\t\t_hover={{ bg: isFocused ? \"bg-muted\" : \"bg-subtle\" }}\n\t\t\tcursor=\"pointer\"\n\t\t\t_even={{\n\t\t\t\tbg: isSelected ? \"primary.subtle\" : isFocused ? \"bg-muted\" : undefined,\n\t\t\t}}\n\t\t>\n\t\t\t{derivedColumns.map((col) => (\n\t\t\t\t<Table.Cell key={col.key} width={col.width} whiteSpace=\"nowrap\">\n\t\t\t\t\t{getCellValue(col)}\n\t\t\t\t</Table.Cell>\n\t\t\t))}\n\t\t</Table.Row>\n\t);\n};\n(TableOption as { displayName?: string }).displayName = \"TableOption\";\n\nexport interface CreateTableMenuComponentsOptions {\n\tcolumns: TableMenuColumn[];\n\t/** Minimum width of the table menu. Defaults to \"400px\" */\n\tminWidth?: string;\n\t/** Maximum width of the table menu. Defaults to \"600px\" */\n\tmaxWidth?: string;\n}\n\n/**\n * Helper to create table menu components with predefined columns.\n *\n * Usage:\n * ```tsx\n * const { MenuList, Option } = createTableMenuComponents({\n * columns: [\n * { key: \"label\", header: \"Release\" },\n * { key: \"valid_from\", header: \"Valid From\" },\n * { key: \"valid_until\", header: \"Valid Until\" },\n * ],\n * minWidth: \"500px\",\n * maxWidth: \"800px\",\n * });\n *\n * <BaseSelect components={{ MenuList, Option }} />\n * ```\n */\nexport const createTableMenuComponents = <T extends BaseOption>(\n\toptions: CreateTableMenuComponentsOptions,\n) => ({\n\tMenuList: (props: MenuListProps<T, boolean, GroupBase<T>>) => (\n\t\t<TableMenuList\n\t\t\t{...props}\n\t\t\tcolumns={options.columns}\n\t\t\tminWidth={options.minWidth}\n\t\t\tmaxWidth={options.maxWidth}\n\t\t/>\n\t),\n\tOption: (props: OptionProps<T, boolean, GroupBase<T>>) => (\n\t\t<TableOption {...props} columns={options.columns} />\n\t),\n});\n","import { ChevronDown, Plus } from \"lucide-react\";\nimport type React from \"react\";\nimport { HStack } from \"../../primitives/layout\";\nimport {\n\tMenuContent,\n\tMenuItem,\n\tMenuRoot,\n\tMenuTrigger,\n} from \"../../primitives/menu\";\nimport { Button, type ButtonProps } from \"../button\";\n\nexport interface SplitButtonMenuItem {\n\tlabel: string;\n\tonClick: () => void;\n\ticon?: React.ReactNode;\n\tcolor?: string;\n}\n\nexport interface SplitButtonProps extends ButtonProps {\n\tlabel: string;\n\tmenuItems?: SplitButtonMenuItem[];\n}\n\nexport const SplitButton: React.FC<SplitButtonProps> = (props) => {\n\tconst { label, menuItems, onClick, ...rest } = props;\n\tconst hasMenuItems = menuItems && menuItems.length > 0;\n\n\treturn (\n\t\t<HStack gap={0.5}>\n\t\t\t{onClick && (\n\t\t\t\t<Button\n\t\t\t\t\t{...rest}\n\t\t\t\t\tcolorPalette=\"blue\"\n\t\t\t\t\tonClick={onClick}\n\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\tborderEndRadius={hasMenuItems ? \"none\" : undefined}\n\t\t\t\t>\n\t\t\t\t\t<Plus size={16} />\n\t\t\t\t\t{label}\n\t\t\t\t</Button>\n\t\t\t)}\n\t\t\t{hasMenuItems && (\n\t\t\t\t<MenuRoot>\n\t\t\t\t\t<MenuTrigger asChild>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\tsize=\"lg\"\n\t\t\t\t\t\t\tcolorPalette=\"blue\"\n\t\t\t\t\t\t\tborderStartRadius={onClick ? \"none\" : undefined}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ChevronDown size={16} />\n\t\t\t\t\t\t\t{onClick ? null : label}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MenuTrigger>\n\t\t\t\t\t<MenuContent>\n\t\t\t\t\t\t{menuItems.map((menuItem) => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tkey={menuItem.label}\n\t\t\t\t\t\t\t\tvalue={menuItem.label}\n\t\t\t\t\t\t\t\tonClick={menuItem.onClick}\n\t\t\t\t\t\t\t\tcolor={menuItem.color}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{menuItem.icon}\n\t\t\t\t\t\t\t\t{menuItem.label}\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</MenuContent>\n\t\t\t\t</MenuRoot>\n\t\t\t)}\n\t\t</HStack>\n\t);\n};\nSplitButton.displayName = \"SplitButton\";\n","import { Square } from \"@chakra-ui/react\";\nimport type React from \"react\";\nimport { Box, type BoxProps, HStack, Stack } from \"../../primitives/layout\";\nimport { Spinner } from \"../../primitives/spinner\";\nimport { Heading, Text } from \"../../primitives/typography\";\n\nexport interface StatProps extends BoxProps {\n\t/** An icon element rendered as React node (e.g., a lucide-react icon) */\n\ticon?: React.ReactNode;\n\tlabel: string;\n\tvalue?: React.ReactNode;\n\tloading?: boolean;\n}\n\nexport const Stat: React.FC<StatProps> = (props) => {\n\tconst { label, value, icon, loading, ...boxProps } = props;\n\n\treturn (\n\t\t<Box\n\t\t\tpx={{ base: \"4\", md: \"6\" }}\n\t\t\tpy={{ base: \"5\", md: \"6\" }}\n\t\t\tbg=\"bg-surface\"\n\t\t\tborderRadius=\"lg\"\n\t\t\tboxShadow=\"sm\"\n\t\t\t{...boxProps}\n\t\t>\n\t\t\t<Stack gap={{ base: \"5\", md: \"6\" }}>\n\t\t\t\t<Stack direction=\"row\" justify=\"space-between\">\n\t\t\t\t\t<HStack gap=\"4\">\n\t\t\t\t\t\t{icon && (\n\t\t\t\t\t\t\t<Square size=\"8\" bg=\"bg-accent-subtle\" borderRadius=\"md\">\n\t\t\t\t\t\t\t\t{icon}\n\t\t\t\t\t\t\t</Square>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Text fontWeight=\"medium\">{label}</Text>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Stack>\n\t\t\t\t<Stack gap=\"4\">\n\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<Heading size={{ base: \"sm\", md: \"md\" }}>{value ?? 0}</Heading>\n\t\t\t\t\t)}\n\t\t\t\t</Stack>\n\t\t\t</Stack>\n\t\t</Box>\n\t);\n};\n\nStat.displayName = \"Stat\";\n","import { memo, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Tooltip } from \"../../primitives/tooltip\";\nimport { Text, type TextProps } from \"../../primitives/typography\";\n\nexport interface TextOverflowProps extends TextProps {}\n\nexport const TextOverflow: React.FC<TextOverflowProps> = memo((props) => {\n\tconst { children, ...rest } = props;\n\tconst textElementRef = useRef<HTMLDivElement>(null);\n\tconst [isOverflown, setIsOverflown] = useState(false);\n\n\tconst compareSize = useCallback(() => {\n\t\tconst element = textElementRef.current;\n\n\t\tconst compare = element\n\t\t\t? element.scrollWidth > element.clientWidth ||\n\t\t\t\telement.offsetWidth < element.scrollWidth ||\n\t\t\t\telement.offsetHeight < element.scrollHeight\n\t\t\t: false;\n\n\t\tsetIsOverflown(compare);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tcompareSize();\n\t\tconst element = textElementRef.current;\n\t\tif (!element) return;\n\t\tconst observer = new ResizeObserver(compareSize);\n\t\tobserver.observe(element);\n\t\treturn () => {\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [compareSize]);\n\n\treturn (\n\t\t<Tooltip content={children} disabled={!isOverflown}>\n\t\t\t<Text\n\t\t\t\tas=\"div\"\n\t\t\t\tposition=\"relative\"\n\t\t\t\twhiteSpace={isOverflown ? \"nowrap\" : \"normal\"}\n\t\t\t\t{...rest}\n\t\t\t\tref={textElementRef}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</Tooltip>\n\t);\n});\n\nTextOverflow.displayName = \"TextOverflow\";\n","import type React from \"react\";\nimport { Badge, type BadgeProps } from \"../../primitives/badge\";\n\nexport interface TypeBadgeProps extends Omit<BadgeProps, \"children\"> {\n\t/** Display name for the badge. */\n\tname: string;\n\t/** Chakra color palette for visual differentiation. @default \"gray\" */\n\tcolorPalette?: string;\n}\n\nexport const TypeBadge: React.FC<TypeBadgeProps> = ({\n\tname,\n\tcolorPalette = \"gray\",\n\t...rest\n}) => {\n\treturn (\n\t\t<Badge\n\t\t\trounded=\"base\"\n\t\t\tpx={2}\n\t\t\tmarginInlineStart={1}\n\t\t\tcolorPalette={colorPalette}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{name}\n\t\t</Badge>\n\t);\n};\nTypeBadge.displayName = \"TypeBadge\";\n"]}
@@ -1,8 +1,9 @@
1
1
  import { Menu, Portal, AbsoluteCenter, Tooltip as Tooltip$1 } from '@chakra-ui/react';
2
+ export { Badge, Table } from '@chakra-ui/react';
2
3
  import { Check, ChevronRight } from 'lucide-react';
3
4
  import { jsx, jsxs } from 'react/jsx-runtime';
4
5
 
5
- // src/primitives/menu.tsx
6
+ // src/primitives/badge.tsx
6
7
  var MenuContent = function MenuContent2({
7
8
  ref,
8
9
  ...props
@@ -104,5 +105,5 @@ var Tooltip = function Tooltip2({
104
105
  Tooltip.displayName = "Tooltip";
105
106
 
106
107
  export { MenuArrow, MenuCheckboxItem, MenuContent, MenuContextTrigger, MenuItem, MenuItemCommand, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, Tooltip };
107
- //# sourceMappingURL=chunk-NJFF6S77.js.map
108
- //# sourceMappingURL=chunk-NJFF6S77.js.map
108
+ //# sourceMappingURL=chunk-2QFOWHTU.js.map
109
+ //# sourceMappingURL=chunk-2QFOWHTU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/primitives/menu.tsx","../src/primitives/tooltip.tsx"],"names":["MenuContent","ChakraMenu","MenuArrow","MenuCheckboxItem","MenuRadioItem","MenuItemGroup","MenuTriggerItem","Tooltip","jsxs","ChakraTooltip","jsx","Portal"],"mappings":"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","file":"chunk-2QFOWHTU.js","sourcesContent":["\"use client\";\n\nimport { AbsoluteCenter, Menu as ChakraMenu, Portal } from \"@chakra-ui/react\";\nimport { Check, ChevronRight } from \"lucide-react\";\nimport type * as React from \"react\";\n\ninterface MenuContentProps extends ChakraMenu.ContentProps {\n\t/** Whether to render the menu content inside a portal. @default true */\n\tportalled?: boolean;\n\t/** Container ref for the portal. */\n\tportalRef?: React.RefObject<HTMLElement | null>;\n}\n\nexport const MenuContent = function MenuContent({\n\tref,\n\t...props\n}: MenuContentProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { portalled = true, portalRef, ...rest } = props;\n\treturn (\n\t\t<Portal disabled={!portalled} container={portalRef}>\n\t\t\t<ChakraMenu.Positioner>\n\t\t\t\t<ChakraMenu.Content ref={ref} {...rest} />\n\t\t\t</ChakraMenu.Positioner>\n\t\t</Portal>\n\t);\n};\nMenuContent.displayName = \"MenuContent\";\n\nexport const MenuArrow = function MenuArrow({\n\tref,\n\t...props\n}: ChakraMenu.ArrowProps & { ref?: React.Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<ChakraMenu.Arrow ref={ref} {...props}>\n\t\t\t<ChakraMenu.ArrowTip />\n\t\t</ChakraMenu.Arrow>\n\t);\n};\nMenuArrow.displayName = \"MenuArrow\";\n\nexport const MenuCheckboxItem = function MenuCheckboxItem({\n\tref,\n\t...props\n}: ChakraMenu.CheckboxItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<ChakraMenu.CheckboxItem ps=\"8\" ref={ref} {...props}>\n\t\t\t<AbsoluteCenter axis=\"horizontal\" insetStart=\"4\" asChild>\n\t\t\t\t<ChakraMenu.ItemIndicator>\n\t\t\t\t\t<Check />\n\t\t\t\t</ChakraMenu.ItemIndicator>\n\t\t\t</AbsoluteCenter>\n\t\t\t{props.children}\n\t\t</ChakraMenu.CheckboxItem>\n\t);\n};\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport const MenuRadioItem = function MenuRadioItem({\n\tref,\n\t...props\n}: ChakraMenu.RadioItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { children, ...rest } = props;\n\treturn (\n\t\t<ChakraMenu.RadioItem ps=\"8\" ref={ref} {...rest}>\n\t\t\t<AbsoluteCenter axis=\"horizontal\" insetStart=\"4\" asChild>\n\t\t\t\t<ChakraMenu.ItemIndicator>\n\t\t\t\t\t<Check />\n\t\t\t\t</ChakraMenu.ItemIndicator>\n\t\t\t</AbsoluteCenter>\n\t\t\t<ChakraMenu.ItemText>{children}</ChakraMenu.ItemText>\n\t\t</ChakraMenu.RadioItem>\n\t);\n};\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport const MenuItemGroup = function MenuItemGroup({\n\tref,\n\t...props\n}: ChakraMenu.ItemGroupProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { title, children, ...rest } = props;\n\treturn (\n\t\t<ChakraMenu.ItemGroup ref={ref} {...rest}>\n\t\t\t{title && (\n\t\t\t\t<ChakraMenu.ItemGroupLabel userSelect=\"none\">\n\t\t\t\t\t{title}\n\t\t\t\t</ChakraMenu.ItemGroupLabel>\n\t\t\t)}\n\t\t\t{children}\n\t\t</ChakraMenu.ItemGroup>\n\t);\n};\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport interface MenuTriggerItemProps extends ChakraMenu.ItemProps {\n\t/** Icon rendered before the trigger item label. */\n\tstartIcon?: React.ReactNode;\n}\n\nexport const MenuTriggerItem = function MenuTriggerItem({\n\tref,\n\t...props\n}: MenuTriggerItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { startIcon, children, ...rest } = props;\n\treturn (\n\t\t<ChakraMenu.TriggerItem ref={ref} {...rest}>\n\t\t\t{startIcon}\n\t\t\t{children}\n\t\t\t<ChevronRight />\n\t\t</ChakraMenu.TriggerItem>\n\t);\n};\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport const MenuRadioItemGroup = ChakraMenu.RadioItemGroup;\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\nexport const MenuContextTrigger = ChakraMenu.ContextTrigger;\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\nexport const MenuRoot = ChakraMenu.Root;\nMenuRoot.displayName = \"MenuRoot\";\nexport const MenuSeparator = ChakraMenu.Separator;\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport const MenuItem = ChakraMenu.Item;\nMenuItem.displayName = \"MenuItem\";\nexport const MenuItemText = ChakraMenu.ItemText;\nMenuItemText.displayName = \"MenuItemText\";\nexport const MenuItemCommand = ChakraMenu.ItemCommand;\nMenuItemCommand.displayName = \"MenuItemCommand\";\nexport const MenuTrigger = ChakraMenu.Trigger;\nMenuTrigger.displayName = \"MenuTrigger\";\n","import { Tooltip as ChakraTooltip, Portal } from \"@chakra-ui/react\";\nimport type * as React from \"react\";\n\nexport interface TooltipProps extends ChakraTooltip.RootProps {\n\tshowArrow?: boolean;\n\tportalled?: boolean;\n\tportalRef?: React.RefObject<HTMLElement | null>;\n\tcontent: React.ReactNode;\n\tcontentProps?: ChakraTooltip.ContentProps;\n\tdisabled?: boolean;\n}\n\nexport const Tooltip = function Tooltip({\n\tref,\n\t...props\n}: TooltipProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst {\n\t\tshowArrow,\n\t\tchildren,\n\t\tdisabled,\n\t\tportalled = true,\n\t\tcontent,\n\t\tcontentProps,\n\t\tportalRef,\n\t\t...rest\n\t} = props;\n\n\tif (disabled) return children;\n\n\treturn (\n\t\t<ChakraTooltip.Root {...rest}>\n\t\t\t<ChakraTooltip.Trigger asChild>{children}</ChakraTooltip.Trigger>\n\t\t\t<Portal disabled={!portalled} container={portalRef}>\n\t\t\t\t<ChakraTooltip.Positioner>\n\t\t\t\t\t<ChakraTooltip.Content ref={ref} {...contentProps}>\n\t\t\t\t\t\t{showArrow && (\n\t\t\t\t\t\t\t<ChakraTooltip.Arrow>\n\t\t\t\t\t\t\t\t<ChakraTooltip.ArrowTip />\n\t\t\t\t\t\t\t</ChakraTooltip.Arrow>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</ChakraTooltip.Content>\n\t\t\t\t</ChakraTooltip.Positioner>\n\t\t\t</Portal>\n\t\t</ChakraTooltip.Root>\n\t);\n};\nTooltip.displayName = \"Tooltip\";\n"]}