achery-ui 0.6.0 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -583,6 +583,53 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
583
583
  */
584
584
  declare function Button({ variant, size, glyph, glyphPosition, kbd, loading, loadingLabel, children, className, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
585
585
 
586
+ interface ConfirmOptions {
587
+ /** Modal title. */
588
+ title?: ReactNode;
589
+ /** Body message. */
590
+ message: ReactNode;
591
+ /** Label for the confirm button. @default 'Confirm' */
592
+ confirmLabel?: string;
593
+ /** Variant for the confirm button. @default 'accent' */
594
+ confirmVariant?: 'accent' | 'secondary' | 'ghost';
595
+ /** Label for the cancel button. @default 'Cancel' */
596
+ cancelLabel?: string;
597
+ /**
598
+ * When true, the confirm button is rendered in a destructive style
599
+ * (terracotta-deep background, matching the existing danger idiom).
600
+ * @default false
601
+ */
602
+ destructive?: boolean;
603
+ }
604
+ type ConfirmFn = (opts: ConfirmOptions) => Promise<boolean>;
605
+ /** Renders a single in-theme confirm dialog. Mount once at your app root. */
606
+ declare const ConfirmDialogProvider: ({ children }: {
607
+ children: ReactNode;
608
+ }) => react_jsx_runtime.JSX.Element;
609
+ /**
610
+ * Returns an async `confirm(opts)` function that resolves `true` if the user
611
+ * clicks confirm, `false` if they cancel or close the dialog.
612
+ *
613
+ * Requires `<ConfirmDialogProvider>` to be mounted above the calling component.
614
+ *
615
+ * @example
616
+ * ```tsx
617
+ * const confirm = useConfirm()
618
+ *
619
+ * async function handleDelete() {
620
+ * const ok = await confirm({
621
+ * title: 'Delete task',
622
+ * message: 'This cannot be undone.',
623
+ * confirmLabel: 'Delete',
624
+ * destructive: true,
625
+ * })
626
+ * if (!ok) return
627
+ * await deleteTask(id)
628
+ * }
629
+ * ```
630
+ */
631
+ declare const useConfirm: () => ConfirmFn;
632
+
586
633
  /** Props for the {@link Field} wrapper component. */
587
634
  interface FieldProps {
588
635
  /** Visible label rendered above the input. */
@@ -1901,4 +1948,4 @@ interface AvatarProps {
1901
1948
  }
1902
1949
  declare function Avatar({ initials, size, tone, loading, className }: AvatarProps): react_jsx_runtime.JSX.Element;
1903
1950
 
1904
- export { AccentColor, AcheryProvider, type AcheryProviderProps, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, type AvatarTone, Badge, type BadgeProps, type BadgeTone, Body, type BodyProps, Button, type ButtonProps, type ButtonVariant, Card, type CardProps, Checkbox, type CheckboxProps, type ColumnDef, Combobox, type ComboboxProps, type ComponentSize, DatePicker, type DatePickerProps, Display, EntityPill, type EntityPillProps, Eyebrow, type EyebrowProps, Field, type FieldProps, Glyph, type GlyphName, type GlyphProps, Heading, type HeadingProps, Input, type InputProps, type InputStatus, KpiTile, type KpiTileProps, LetterStamp, type LetterStampProps, type LetterStampSize, type LetterStampTone, Marginalia, type MarginaliaProps, Menu, type MenuItemDef, type MenuProps, type MenuSeparator, Modal, type ModalProps, Mono, type MonoProps, type NavGroupDef, type NavItemDef, ProgressBar, type ProgressBarProps, SearchInput, type SearchInputProps, Select, type SelectProps, Sidebar, type SidebarLinkProps, type SidebarProps, SingleCombobox, type SingleComboboxProps, Skeleton, type SkeletonProps, type SortDirection, Sparkline, type SparklineProps, type SparklineTone, StatePill, type StatePillProps, type SubscriptionState, type TabItem, Table, type TableProps, Tabs, type TabsProps, Textarea, type TextareaProps, type ThemeMode, type ToastData, ToastProvider, type ToastProviderProps, Toggle, type ToggleProps, Tooltip, type TooltipProps, type TransactionType, TypeTag, type TypeTagProps, useTheme, useToast, vars };
1951
+ export { AccentColor, AcheryProvider, type AcheryProviderProps, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, type AvatarTone, Badge, type BadgeProps, type BadgeTone, Body, type BodyProps, Button, type ButtonProps, type ButtonVariant, Card, type CardProps, Checkbox, type CheckboxProps, type ColumnDef, Combobox, type ComboboxProps, type ComponentSize, ConfirmDialogProvider, type ConfirmOptions, DatePicker, type DatePickerProps, Display, EntityPill, type EntityPillProps, Eyebrow, type EyebrowProps, Field, type FieldProps, Glyph, type GlyphName, type GlyphProps, Heading, type HeadingProps, Input, type InputProps, type InputStatus, KpiTile, type KpiTileProps, LetterStamp, type LetterStampProps, type LetterStampSize, type LetterStampTone, Marginalia, type MarginaliaProps, Menu, type MenuItemDef, type MenuProps, type MenuSeparator, Modal, type ModalProps, Mono, type MonoProps, type NavGroupDef, type NavItemDef, ProgressBar, type ProgressBarProps, SearchInput, type SearchInputProps, Select, type SelectProps, Sidebar, type SidebarLinkProps, type SidebarProps, SingleCombobox, type SingleComboboxProps, Skeleton, type SkeletonProps, type SortDirection, Sparkline, type SparklineProps, type SparklineTone, StatePill, type StatePillProps, type SubscriptionState, type TabItem, Table, type TableProps, Tabs, type TabsProps, Textarea, type TextareaProps, type ThemeMode, type ToastData, ToastProvider, type ToastProviderProps, Toggle, type ToggleProps, Tooltip, type TooltipProps, type TransactionType, TypeTag, type TypeTagProps, useConfirm, useTheme, useToast, vars };
package/dist/index.d.ts CHANGED
@@ -583,6 +583,53 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
583
583
  */
584
584
  declare function Button({ variant, size, glyph, glyphPosition, kbd, loading, loadingLabel, children, className, ...props }: ButtonProps): react_jsx_runtime.JSX.Element;
585
585
 
586
+ interface ConfirmOptions {
587
+ /** Modal title. */
588
+ title?: ReactNode;
589
+ /** Body message. */
590
+ message: ReactNode;
591
+ /** Label for the confirm button. @default 'Confirm' */
592
+ confirmLabel?: string;
593
+ /** Variant for the confirm button. @default 'accent' */
594
+ confirmVariant?: 'accent' | 'secondary' | 'ghost';
595
+ /** Label for the cancel button. @default 'Cancel' */
596
+ cancelLabel?: string;
597
+ /**
598
+ * When true, the confirm button is rendered in a destructive style
599
+ * (terracotta-deep background, matching the existing danger idiom).
600
+ * @default false
601
+ */
602
+ destructive?: boolean;
603
+ }
604
+ type ConfirmFn = (opts: ConfirmOptions) => Promise<boolean>;
605
+ /** Renders a single in-theme confirm dialog. Mount once at your app root. */
606
+ declare const ConfirmDialogProvider: ({ children }: {
607
+ children: ReactNode;
608
+ }) => react_jsx_runtime.JSX.Element;
609
+ /**
610
+ * Returns an async `confirm(opts)` function that resolves `true` if the user
611
+ * clicks confirm, `false` if they cancel or close the dialog.
612
+ *
613
+ * Requires `<ConfirmDialogProvider>` to be mounted above the calling component.
614
+ *
615
+ * @example
616
+ * ```tsx
617
+ * const confirm = useConfirm()
618
+ *
619
+ * async function handleDelete() {
620
+ * const ok = await confirm({
621
+ * title: 'Delete task',
622
+ * message: 'This cannot be undone.',
623
+ * confirmLabel: 'Delete',
624
+ * destructive: true,
625
+ * })
626
+ * if (!ok) return
627
+ * await deleteTask(id)
628
+ * }
629
+ * ```
630
+ */
631
+ declare const useConfirm: () => ConfirmFn;
632
+
586
633
  /** Props for the {@link Field} wrapper component. */
587
634
  interface FieldProps {
588
635
  /** Visible label rendered above the input. */
@@ -1901,4 +1948,4 @@ interface AvatarProps {
1901
1948
  }
1902
1949
  declare function Avatar({ initials, size, tone, loading, className }: AvatarProps): react_jsx_runtime.JSX.Element;
1903
1950
 
1904
- export { AccentColor, AcheryProvider, type AcheryProviderProps, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, type AvatarTone, Badge, type BadgeProps, type BadgeTone, Body, type BodyProps, Button, type ButtonProps, type ButtonVariant, Card, type CardProps, Checkbox, type CheckboxProps, type ColumnDef, Combobox, type ComboboxProps, type ComponentSize, DatePicker, type DatePickerProps, Display, EntityPill, type EntityPillProps, Eyebrow, type EyebrowProps, Field, type FieldProps, Glyph, type GlyphName, type GlyphProps, Heading, type HeadingProps, Input, type InputProps, type InputStatus, KpiTile, type KpiTileProps, LetterStamp, type LetterStampProps, type LetterStampSize, type LetterStampTone, Marginalia, type MarginaliaProps, Menu, type MenuItemDef, type MenuProps, type MenuSeparator, Modal, type ModalProps, Mono, type MonoProps, type NavGroupDef, type NavItemDef, ProgressBar, type ProgressBarProps, SearchInput, type SearchInputProps, Select, type SelectProps, Sidebar, type SidebarLinkProps, type SidebarProps, SingleCombobox, type SingleComboboxProps, Skeleton, type SkeletonProps, type SortDirection, Sparkline, type SparklineProps, type SparklineTone, StatePill, type StatePillProps, type SubscriptionState, type TabItem, Table, type TableProps, Tabs, type TabsProps, Textarea, type TextareaProps, type ThemeMode, type ToastData, ToastProvider, type ToastProviderProps, Toggle, type ToggleProps, Tooltip, type TooltipProps, type TransactionType, TypeTag, type TypeTagProps, useTheme, useToast, vars };
1951
+ export { AccentColor, AcheryProvider, type AcheryProviderProps, AppBar, type AppBarProps, Avatar, type AvatarProps, type AvatarSize, type AvatarTone, Badge, type BadgeProps, type BadgeTone, Body, type BodyProps, Button, type ButtonProps, type ButtonVariant, Card, type CardProps, Checkbox, type CheckboxProps, type ColumnDef, Combobox, type ComboboxProps, type ComponentSize, ConfirmDialogProvider, type ConfirmOptions, DatePicker, type DatePickerProps, Display, EntityPill, type EntityPillProps, Eyebrow, type EyebrowProps, Field, type FieldProps, Glyph, type GlyphName, type GlyphProps, Heading, type HeadingProps, Input, type InputProps, type InputStatus, KpiTile, type KpiTileProps, LetterStamp, type LetterStampProps, type LetterStampSize, type LetterStampTone, Marginalia, type MarginaliaProps, Menu, type MenuItemDef, type MenuProps, type MenuSeparator, Modal, type ModalProps, Mono, type MonoProps, type NavGroupDef, type NavItemDef, ProgressBar, type ProgressBarProps, SearchInput, type SearchInputProps, Select, type SelectProps, Sidebar, type SidebarLinkProps, type SidebarProps, SingleCombobox, type SingleComboboxProps, Skeleton, type SkeletonProps, type SortDirection, Sparkline, type SparklineProps, type SparklineTone, StatePill, type StatePillProps, type SubscriptionState, type TabItem, Table, type TableProps, Tabs, type TabsProps, Textarea, type TextareaProps, type ThemeMode, type ToastData, ToastProvider, type ToastProviderProps, Toggle, type ToggleProps, Tooltip, type TooltipProps, type TransactionType, TypeTag, type TypeTagProps, useConfirm, useTheme, useToast, vars };
package/dist/index.js CHANGED
@@ -2,10 +2,10 @@ import { accentColorNames, accentColors } from './chunk-NDOQ2YVM.js';
2
2
  import { createContext, useState, useCallback, useEffect, useContext, useMemo, useRef, useId } from 'react';
3
3
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
5
+ import * as RadixDialog from '@radix-ui/react-dialog';
5
6
  import * as RadixToggle from '@radix-ui/react-toggle';
6
7
  import * as RadixTabs from '@radix-ui/react-tabs';
7
8
  import * as RadixTooltip from '@radix-ui/react-tooltip';
8
- import * as RadixDialog from '@radix-ui/react-dialog';
9
9
  import { createPortal } from 'react-dom';
10
10
  import * as RadixCheckbox from '@radix-ui/react-checkbox';
11
11
  import * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu';
@@ -485,6 +485,120 @@ function Button({
485
485
  }
486
486
  );
487
487
  }
488
+ var body2 = "Modal_body__1kcb5si8";
489
+ var bodyScrollable = "Modal_bodyScrollable__1kcb5sie";
490
+ var closeButton = "Modal_closeButton__1kcb5si7";
491
+ var contentSized = createRuntimeFn({ defaultClassName: "Modal_contentSized__1kcb5sia", variantClassNames: { size: { sm: "Modal_contentSized_size_sm__1kcb5sib", md: "Modal_contentSized_size_md__1kcb5sic", lg: "Modal_contentSized_size_lg__1kcb5sid" } }, defaultVariants: { size: "sm" }, compoundVariants: [] });
492
+ var description = "Modal_description__1kcb5si6";
493
+ var footer = "Modal_footer__1kcb5si9";
494
+ var header = "Modal_header__1kcb5si4";
495
+ var overlay = "Modal_overlay__1kcb5si2";
496
+ var title = "Modal_title__1kcb5si5";
497
+ function Modal({
498
+ open,
499
+ defaultOpen,
500
+ onOpenChange,
501
+ title: title2,
502
+ description: description2,
503
+ children,
504
+ footer: footer3,
505
+ trigger: trigger2,
506
+ size = "sm",
507
+ scrollable = false,
508
+ className
509
+ }) {
510
+ return /* @__PURE__ */ jsxs(
511
+ RadixDialog.Root,
512
+ {
513
+ ...open !== void 0 ? { open } : {},
514
+ ...defaultOpen !== void 0 ? { defaultOpen } : {},
515
+ ...onOpenChange !== void 0 ? { onOpenChange } : {},
516
+ children: [
517
+ trigger2 && /* @__PURE__ */ jsx(RadixDialog.Trigger, { asChild: true, children: trigger2 }),
518
+ /* @__PURE__ */ jsxs(RadixDialog.Portal, { children: [
519
+ /* @__PURE__ */ jsx(RadixDialog.Overlay, { className: overlay }),
520
+ /* @__PURE__ */ jsxs(
521
+ RadixDialog.Content,
522
+ {
523
+ className: [contentSized({ size }), className].filter(Boolean).join(" "),
524
+ "aria-describedby": description2 ? "modal-description" : void 0,
525
+ children: [
526
+ /* @__PURE__ */ jsxs("div", { className: header, children: [
527
+ /* @__PURE__ */ jsxs("div", { children: [
528
+ title2 && /* @__PURE__ */ jsx(RadixDialog.Title, { className: title, children: title2 }),
529
+ description2 && /* @__PURE__ */ jsx(RadixDialog.Description, { id: "modal-description", className: description, children: description2 })
530
+ ] }),
531
+ /* @__PURE__ */ jsx(RadixDialog.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsx(Glyph, { name: "cross", size: 14, "aria-hidden": "true" }) })
532
+ ] }),
533
+ /* @__PURE__ */ jsx("div", { className: scrollable ? bodyScrollable : body2, children }),
534
+ footer3 && /* @__PURE__ */ jsx("div", { className: footer, children: footer3 })
535
+ ]
536
+ }
537
+ )
538
+ ] })
539
+ ]
540
+ }
541
+ );
542
+ }
543
+ var ConfirmContext = createContext(null);
544
+ var EMPTY_OPTS = { message: "" };
545
+ var NOOP_RESOLVE = (_) => {
546
+ };
547
+ var ConfirmDialogProvider = ({ children }) => {
548
+ const [state, setState] = useState({
549
+ open: false,
550
+ opts: EMPTY_OPTS,
551
+ resolve: NOOP_RESOLVE
552
+ });
553
+ const confirm = useCallback((opts2) => {
554
+ return new Promise((resolve) => {
555
+ setState({ open: true, opts: opts2, resolve });
556
+ });
557
+ }, []);
558
+ const settle = (value2) => {
559
+ state.resolve(value2);
560
+ setState((s) => ({ ...s, open: false }));
561
+ };
562
+ const { open, opts } = state;
563
+ const confirmLabel = opts.confirmLabel ?? "Confirm";
564
+ const cancelLabel = opts.cancelLabel ?? "Cancel";
565
+ return /* @__PURE__ */ jsxs(ConfirmContext.Provider, { value: confirm, children: [
566
+ children,
567
+ /* @__PURE__ */ jsx(
568
+ Modal,
569
+ {
570
+ open,
571
+ onOpenChange: (o) => {
572
+ if (!o) settle(false);
573
+ },
574
+ title: opts.title,
575
+ size: "sm",
576
+ footer: /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8, justifyContent: "flex-end", width: "100%" }, children: [
577
+ /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: () => settle(false), children: cancelLabel }),
578
+ /* @__PURE__ */ jsx(
579
+ Button,
580
+ {
581
+ variant: opts.confirmVariant ?? "accent",
582
+ size: "sm",
583
+ onClick: () => settle(true),
584
+ style: opts.destructive ? {
585
+ background: "var(--achery-color-rust, #8a3a22)",
586
+ borderColor: "var(--achery-color-rust, #8a3a22)"
587
+ } : void 0,
588
+ children: confirmLabel
589
+ }
590
+ )
591
+ ] }),
592
+ children: typeof opts.message === "string" ? /* @__PURE__ */ jsx(Body, { variant: "small", children: opts.message }) : opts.message
593
+ }
594
+ )
595
+ ] });
596
+ };
597
+ var useConfirm = () => {
598
+ const fn = useContext(ConfirmContext);
599
+ if (!fn) throw new Error("useConfirm must be used within a ConfirmDialogProvider");
600
+ return fn;
601
+ };
488
602
 
489
603
  // src/components/Toggle/Toggle.css.ts
490
604
  var label = "Toggle_label__trpmwc4";
@@ -752,7 +866,7 @@ var backdrop = "Sidebar_backdrop__1n0xxfc2";
752
866
  var bottomSlot = "Sidebar_bottomSlot__1n0xxfc9";
753
867
  var collapseToggle = "Sidebar_collapseToggle__1n0xxfc3";
754
868
  var countAccent = "Sidebar_countAccent__1n0xxfcc";
755
- var footer = "Sidebar_footer__1n0xxfc8";
869
+ var footer2 = "Sidebar_footer__1n0xxfc8";
756
870
  var group = "Sidebar_group__1n0xxfc4";
757
871
  var groupLabel = "Sidebar_groupLabel__1n0xxfc5";
758
872
  var mobileSearch = "Sidebar_mobileSearch__1n0xxfca";
@@ -827,7 +941,7 @@ function Sidebar({
827
941
  ),
828
942
  searchConfig.kbd && /* @__PURE__ */ jsx("span", { children: searchConfig.kbd })
829
943
  ] }),
830
- footer3 && /* @__PURE__ */ jsx("div", { className: footer, children: footer3 })
944
+ footer3 && /* @__PURE__ */ jsx("div", { className: footer2, children: footer3 })
831
945
  ] })
832
946
  ]
833
947
  }
@@ -1241,7 +1355,11 @@ function Table({
1241
1355
  {
1242
1356
  className: tr,
1243
1357
  "data-selected": isSelected,
1244
- onClick: onRowClick ? () => onRowClick(key, row) : void 0,
1358
+ onClick: onRowClick ? (e) => {
1359
+ const target = e.target;
1360
+ if (target.closest('a, button, input, select, textarea, [role="checkbox"], [role="button"]')) return;
1361
+ onRowClick(key, row);
1362
+ } : void 0,
1245
1363
  style: onRowClick ? { cursor: "pointer" } : void 0,
1246
1364
  children: columns.map((col) => /* @__PURE__ */ jsx("td", { className: col.mono ? tdMono : td, children: col.render ? col.render(row) : String(row[col.key] ?? "") }, col.key))
1247
1365
  },
@@ -1289,61 +1407,6 @@ function Table({
1289
1407
  }
1290
1408
  );
1291
1409
  }
1292
- var body2 = "Modal_body__1kcb5si8";
1293
- var bodyScrollable = "Modal_bodyScrollable__1kcb5sie";
1294
- var closeButton = "Modal_closeButton__1kcb5si7";
1295
- var contentSized = createRuntimeFn({ defaultClassName: "Modal_contentSized__1kcb5sia", variantClassNames: { size: { sm: "Modal_contentSized_size_sm__1kcb5sib", md: "Modal_contentSized_size_md__1kcb5sic", lg: "Modal_contentSized_size_lg__1kcb5sid" } }, defaultVariants: { size: "sm" }, compoundVariants: [] });
1296
- var description = "Modal_description__1kcb5si6";
1297
- var footer2 = "Modal_footer__1kcb5si9";
1298
- var header = "Modal_header__1kcb5si4";
1299
- var overlay = "Modal_overlay__1kcb5si2";
1300
- var title = "Modal_title__1kcb5si5";
1301
- function Modal({
1302
- open,
1303
- defaultOpen,
1304
- onOpenChange,
1305
- title: title2,
1306
- description: description2,
1307
- children,
1308
- footer: footer3,
1309
- trigger: trigger2,
1310
- size = "sm",
1311
- scrollable = false,
1312
- className
1313
- }) {
1314
- return /* @__PURE__ */ jsxs(
1315
- RadixDialog.Root,
1316
- {
1317
- ...open !== void 0 ? { open } : {},
1318
- ...defaultOpen !== void 0 ? { defaultOpen } : {},
1319
- ...onOpenChange !== void 0 ? { onOpenChange } : {},
1320
- children: [
1321
- trigger2 && /* @__PURE__ */ jsx(RadixDialog.Trigger, { asChild: true, children: trigger2 }),
1322
- /* @__PURE__ */ jsxs(RadixDialog.Portal, { children: [
1323
- /* @__PURE__ */ jsx(RadixDialog.Overlay, { className: overlay }),
1324
- /* @__PURE__ */ jsxs(
1325
- RadixDialog.Content,
1326
- {
1327
- className: [contentSized({ size }), className].filter(Boolean).join(" "),
1328
- "aria-describedby": description2 ? "modal-description" : void 0,
1329
- children: [
1330
- /* @__PURE__ */ jsxs("div", { className: header, children: [
1331
- /* @__PURE__ */ jsxs("div", { children: [
1332
- title2 && /* @__PURE__ */ jsx(RadixDialog.Title, { className: title, children: title2 }),
1333
- description2 && /* @__PURE__ */ jsx(RadixDialog.Description, { id: "modal-description", className: description, children: description2 })
1334
- ] }),
1335
- /* @__PURE__ */ jsx(RadixDialog.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsx(Glyph, { name: "cross", size: 14, "aria-hidden": "true" }) })
1336
- ] }),
1337
- /* @__PURE__ */ jsx("div", { className: scrollable ? bodyScrollable : body2, children }),
1338
- footer3 && /* @__PURE__ */ jsx("div", { className: footer2, children: footer3 })
1339
- ]
1340
- }
1341
- )
1342
- ] })
1343
- ]
1344
- }
1345
- );
1346
- }
1347
1410
 
1348
1411
  // src/components/Toast/Toast.css.ts
1349
1412
  var toast = "Toast_toast__1btt01v3";
@@ -1994,6 +2057,6 @@ function TypeTag({ type, className }) {
1994
2057
  return /* @__PURE__ */ jsx("span", { className: [tag({ type }), className].filter(Boolean).join(" "), children: labels[type] });
1995
2058
  }
1996
2059
 
1997
- export { AcheryProvider, AppBar, Avatar, Badge, Body, Button, Card, Checkbox, Combobox, DatePicker, Display, EntityPill, Eyebrow, Field, Glyph, Heading, Input, KpiTile, LetterStamp, Marginalia, Menu2 as Menu, Modal, Mono, ProgressBar, SearchInput, Select, Sidebar, SingleCombobox, Skeleton, Sparkline, StatePill, Table, Tabs, Textarea, ToastProvider, Toggle, Tooltip, TypeTag, useTheme, useToast, vars };
2060
+ export { AcheryProvider, AppBar, Avatar, Badge, Body, Button, Card, Checkbox, Combobox, ConfirmDialogProvider, DatePicker, Display, EntityPill, Eyebrow, Field, Glyph, Heading, Input, KpiTile, LetterStamp, Marginalia, Menu2 as Menu, Modal, Mono, ProgressBar, SearchInput, Select, Sidebar, SingleCombobox, Skeleton, Sparkline, StatePill, Table, Tabs, Textarea, ToastProvider, Toggle, Tooltip, TypeTag, useConfirm, useTheme, useToast, vars };
1998
2061
  //# sourceMappingURL=index.js.map
1999
2062
  //# sourceMappingURL=index.js.map