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.cjs CHANGED
@@ -4,10 +4,10 @@ var chunkLJ24EJ3N_cjs = require('./chunk-LJ24EJ3N.cjs');
4
4
  var react = require('react');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var createRuntimeFn = require('@vanilla-extract/recipes/createRuntimeFn');
7
+ var RadixDialog = require('@radix-ui/react-dialog');
7
8
  var RadixToggle = require('@radix-ui/react-toggle');
8
9
  var RadixTabs = require('@radix-ui/react-tabs');
9
10
  var RadixTooltip = require('@radix-ui/react-tooltip');
10
- var RadixDialog = require('@radix-ui/react-dialog');
11
11
  var reactDom = require('react-dom');
12
12
  var RadixCheckbox = require('@radix-ui/react-checkbox');
13
13
  var RadixDropdownMenu = require('@radix-ui/react-dropdown-menu');
@@ -30,10 +30,10 @@ function _interopNamespace(e) {
30
30
  return Object.freeze(n);
31
31
  }
32
32
 
33
+ var RadixDialog__namespace = /*#__PURE__*/_interopNamespace(RadixDialog);
33
34
  var RadixToggle__namespace = /*#__PURE__*/_interopNamespace(RadixToggle);
34
35
  var RadixTabs__namespace = /*#__PURE__*/_interopNamespace(RadixTabs);
35
36
  var RadixTooltip__namespace = /*#__PURE__*/_interopNamespace(RadixTooltip);
36
- var RadixDialog__namespace = /*#__PURE__*/_interopNamespace(RadixDialog);
37
37
  var RadixCheckbox__namespace = /*#__PURE__*/_interopNamespace(RadixCheckbox);
38
38
  var RadixDropdownMenu__namespace = /*#__PURE__*/_interopNamespace(RadixDropdownMenu);
39
39
 
@@ -512,6 +512,120 @@ function Button({
512
512
  }
513
513
  );
514
514
  }
515
+ var body2 = "Modal_body__1kcb5si8";
516
+ var bodyScrollable = "Modal_bodyScrollable__1kcb5sie";
517
+ var closeButton = "Modal_closeButton__1kcb5si7";
518
+ var contentSized = createRuntimeFn.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: [] });
519
+ var description = "Modal_description__1kcb5si6";
520
+ var footer = "Modal_footer__1kcb5si9";
521
+ var header = "Modal_header__1kcb5si4";
522
+ var overlay = "Modal_overlay__1kcb5si2";
523
+ var title = "Modal_title__1kcb5si5";
524
+ function Modal({
525
+ open,
526
+ defaultOpen,
527
+ onOpenChange,
528
+ title: title2,
529
+ description: description2,
530
+ children,
531
+ footer: footer3,
532
+ trigger: trigger2,
533
+ size = "sm",
534
+ scrollable = false,
535
+ className
536
+ }) {
537
+ return /* @__PURE__ */ jsxRuntime.jsxs(
538
+ RadixDialog__namespace.Root,
539
+ {
540
+ ...open !== void 0 ? { open } : {},
541
+ ...defaultOpen !== void 0 ? { defaultOpen } : {},
542
+ ...onOpenChange !== void 0 ? { onOpenChange } : {},
543
+ children: [
544
+ trigger2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Trigger, { asChild: true, children: trigger2 }),
545
+ /* @__PURE__ */ jsxRuntime.jsxs(RadixDialog__namespace.Portal, { children: [
546
+ /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Overlay, { className: overlay }),
547
+ /* @__PURE__ */ jsxRuntime.jsxs(
548
+ RadixDialog__namespace.Content,
549
+ {
550
+ className: [contentSized({ size }), className].filter(Boolean).join(" "),
551
+ "aria-describedby": description2 ? "modal-description" : void 0,
552
+ children: [
553
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: header, children: [
554
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
555
+ title2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Title, { className: title, children: title2 }),
556
+ description2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Description, { id: "modal-description", className: description, children: description2 })
557
+ ] }),
558
+ /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "cross", size: 14, "aria-hidden": "true" }) })
559
+ ] }),
560
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: scrollable ? bodyScrollable : body2, children }),
561
+ footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer, children: footer3 })
562
+ ]
563
+ }
564
+ )
565
+ ] })
566
+ ]
567
+ }
568
+ );
569
+ }
570
+ var ConfirmContext = react.createContext(null);
571
+ var EMPTY_OPTS = { message: "" };
572
+ var NOOP_RESOLVE = (_) => {
573
+ };
574
+ var ConfirmDialogProvider = ({ children }) => {
575
+ const [state, setState] = react.useState({
576
+ open: false,
577
+ opts: EMPTY_OPTS,
578
+ resolve: NOOP_RESOLVE
579
+ });
580
+ const confirm = react.useCallback((opts2) => {
581
+ return new Promise((resolve) => {
582
+ setState({ open: true, opts: opts2, resolve });
583
+ });
584
+ }, []);
585
+ const settle = (value2) => {
586
+ state.resolve(value2);
587
+ setState((s) => ({ ...s, open: false }));
588
+ };
589
+ const { open, opts } = state;
590
+ const confirmLabel = opts.confirmLabel ?? "Confirm";
591
+ const cancelLabel = opts.cancelLabel ?? "Cancel";
592
+ return /* @__PURE__ */ jsxRuntime.jsxs(ConfirmContext.Provider, { value: confirm, children: [
593
+ children,
594
+ /* @__PURE__ */ jsxRuntime.jsx(
595
+ Modal,
596
+ {
597
+ open,
598
+ onOpenChange: (o) => {
599
+ if (!o) settle(false);
600
+ },
601
+ title: opts.title,
602
+ size: "sm",
603
+ footer: /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", gap: 8, justifyContent: "flex-end", width: "100%" }, children: [
604
+ /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", onClick: () => settle(false), children: cancelLabel }),
605
+ /* @__PURE__ */ jsxRuntime.jsx(
606
+ Button,
607
+ {
608
+ variant: opts.confirmVariant ?? "accent",
609
+ size: "sm",
610
+ onClick: () => settle(true),
611
+ style: opts.destructive ? {
612
+ background: "var(--achery-color-rust, #8a3a22)",
613
+ borderColor: "var(--achery-color-rust, #8a3a22)"
614
+ } : void 0,
615
+ children: confirmLabel
616
+ }
617
+ )
618
+ ] }),
619
+ children: typeof opts.message === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Body, { variant: "small", children: opts.message }) : opts.message
620
+ }
621
+ )
622
+ ] });
623
+ };
624
+ var useConfirm = () => {
625
+ const fn = react.useContext(ConfirmContext);
626
+ if (!fn) throw new Error("useConfirm must be used within a ConfirmDialogProvider");
627
+ return fn;
628
+ };
515
629
 
516
630
  // src/components/Toggle/Toggle.css.ts
517
631
  var label = "Toggle_label__trpmwc4";
@@ -779,7 +893,7 @@ var backdrop = "Sidebar_backdrop__1n0xxfc2";
779
893
  var bottomSlot = "Sidebar_bottomSlot__1n0xxfc9";
780
894
  var collapseToggle = "Sidebar_collapseToggle__1n0xxfc3";
781
895
  var countAccent = "Sidebar_countAccent__1n0xxfcc";
782
- var footer = "Sidebar_footer__1n0xxfc8";
896
+ var footer2 = "Sidebar_footer__1n0xxfc8";
783
897
  var group = "Sidebar_group__1n0xxfc4";
784
898
  var groupLabel = "Sidebar_groupLabel__1n0xxfc5";
785
899
  var mobileSearch = "Sidebar_mobileSearch__1n0xxfca";
@@ -854,7 +968,7 @@ function Sidebar({
854
968
  ),
855
969
  searchConfig.kbd && /* @__PURE__ */ jsxRuntime.jsx("span", { children: searchConfig.kbd })
856
970
  ] }),
857
- footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer, children: footer3 })
971
+ footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer2, children: footer3 })
858
972
  ] })
859
973
  ]
860
974
  }
@@ -1268,7 +1382,11 @@ function Table({
1268
1382
  {
1269
1383
  className: tr,
1270
1384
  "data-selected": isSelected,
1271
- onClick: onRowClick ? () => onRowClick(key, row) : void 0,
1385
+ onClick: onRowClick ? (e) => {
1386
+ const target = e.target;
1387
+ if (target.closest('a, button, input, select, textarea, [role="checkbox"], [role="button"]')) return;
1388
+ onRowClick(key, row);
1389
+ } : void 0,
1272
1390
  style: onRowClick ? { cursor: "pointer" } : void 0,
1273
1391
  children: columns.map((col) => /* @__PURE__ */ jsxRuntime.jsx("td", { className: col.mono ? tdMono : td, children: col.render ? col.render(row) : String(row[col.key] ?? "") }, col.key))
1274
1392
  },
@@ -1316,61 +1434,6 @@ function Table({
1316
1434
  }
1317
1435
  );
1318
1436
  }
1319
- var body2 = "Modal_body__1kcb5si8";
1320
- var bodyScrollable = "Modal_bodyScrollable__1kcb5sie";
1321
- var closeButton = "Modal_closeButton__1kcb5si7";
1322
- var contentSized = createRuntimeFn.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: [] });
1323
- var description = "Modal_description__1kcb5si6";
1324
- var footer2 = "Modal_footer__1kcb5si9";
1325
- var header = "Modal_header__1kcb5si4";
1326
- var overlay = "Modal_overlay__1kcb5si2";
1327
- var title = "Modal_title__1kcb5si5";
1328
- function Modal({
1329
- open,
1330
- defaultOpen,
1331
- onOpenChange,
1332
- title: title2,
1333
- description: description2,
1334
- children,
1335
- footer: footer3,
1336
- trigger: trigger2,
1337
- size = "sm",
1338
- scrollable = false,
1339
- className
1340
- }) {
1341
- return /* @__PURE__ */ jsxRuntime.jsxs(
1342
- RadixDialog__namespace.Root,
1343
- {
1344
- ...open !== void 0 ? { open } : {},
1345
- ...defaultOpen !== void 0 ? { defaultOpen } : {},
1346
- ...onOpenChange !== void 0 ? { onOpenChange } : {},
1347
- children: [
1348
- trigger2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Trigger, { asChild: true, children: trigger2 }),
1349
- /* @__PURE__ */ jsxRuntime.jsxs(RadixDialog__namespace.Portal, { children: [
1350
- /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Overlay, { className: overlay }),
1351
- /* @__PURE__ */ jsxRuntime.jsxs(
1352
- RadixDialog__namespace.Content,
1353
- {
1354
- className: [contentSized({ size }), className].filter(Boolean).join(" "),
1355
- "aria-describedby": description2 ? "modal-description" : void 0,
1356
- children: [
1357
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: header, children: [
1358
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1359
- title2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Title, { className: title, children: title2 }),
1360
- description2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Description, { id: "modal-description", className: description, children: description2 })
1361
- ] }),
1362
- /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "cross", size: 14, "aria-hidden": "true" }) })
1363
- ] }),
1364
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: scrollable ? bodyScrollable : body2, children }),
1365
- footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer2, children: footer3 })
1366
- ]
1367
- }
1368
- )
1369
- ] })
1370
- ]
1371
- }
1372
- );
1373
- }
1374
1437
 
1375
1438
  // src/components/Toast/Toast.css.ts
1376
1439
  var toast = "Toast_toast__1btt01v3";
@@ -2030,6 +2093,7 @@ exports.Button = Button;
2030
2093
  exports.Card = Card;
2031
2094
  exports.Checkbox = Checkbox;
2032
2095
  exports.Combobox = Combobox;
2096
+ exports.ConfirmDialogProvider = ConfirmDialogProvider;
2033
2097
  exports.DatePicker = DatePicker;
2034
2098
  exports.Display = Display;
2035
2099
  exports.EntityPill = EntityPill;
@@ -2059,6 +2123,7 @@ exports.ToastProvider = ToastProvider;
2059
2123
  exports.Toggle = Toggle;
2060
2124
  exports.Tooltip = Tooltip;
2061
2125
  exports.TypeTag = TypeTag;
2126
+ exports.useConfirm = useConfirm;
2062
2127
  exports.useTheme = useTheme;
2063
2128
  exports.useToast = useToast;
2064
2129
  exports.vars = vars;