achery-ui 0.6.1 → 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
  }
@@ -1320,61 +1434,6 @@ function Table({
1320
1434
  }
1321
1435
  );
1322
1436
  }
1323
- var body2 = "Modal_body__1kcb5si8";
1324
- var bodyScrollable = "Modal_bodyScrollable__1kcb5sie";
1325
- var closeButton = "Modal_closeButton__1kcb5si7";
1326
- 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: [] });
1327
- var description = "Modal_description__1kcb5si6";
1328
- var footer2 = "Modal_footer__1kcb5si9";
1329
- var header = "Modal_header__1kcb5si4";
1330
- var overlay = "Modal_overlay__1kcb5si2";
1331
- var title = "Modal_title__1kcb5si5";
1332
- function Modal({
1333
- open,
1334
- defaultOpen,
1335
- onOpenChange,
1336
- title: title2,
1337
- description: description2,
1338
- children,
1339
- footer: footer3,
1340
- trigger: trigger2,
1341
- size = "sm",
1342
- scrollable = false,
1343
- className
1344
- }) {
1345
- return /* @__PURE__ */ jsxRuntime.jsxs(
1346
- RadixDialog__namespace.Root,
1347
- {
1348
- ...open !== void 0 ? { open } : {},
1349
- ...defaultOpen !== void 0 ? { defaultOpen } : {},
1350
- ...onOpenChange !== void 0 ? { onOpenChange } : {},
1351
- children: [
1352
- trigger2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Trigger, { asChild: true, children: trigger2 }),
1353
- /* @__PURE__ */ jsxRuntime.jsxs(RadixDialog__namespace.Portal, { children: [
1354
- /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Overlay, { className: overlay }),
1355
- /* @__PURE__ */ jsxRuntime.jsxs(
1356
- RadixDialog__namespace.Content,
1357
- {
1358
- className: [contentSized({ size }), className].filter(Boolean).join(" "),
1359
- "aria-describedby": description2 ? "modal-description" : void 0,
1360
- children: [
1361
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: header, children: [
1362
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1363
- title2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Title, { className: title, children: title2 }),
1364
- description2 && /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Description, { id: "modal-description", className: description, children: description2 })
1365
- ] }),
1366
- /* @__PURE__ */ jsxRuntime.jsx(RadixDialog__namespace.Close, { className: closeButton, "aria-label": "Close", children: /* @__PURE__ */ jsxRuntime.jsx(Glyph, { name: "cross", size: 14, "aria-hidden": "true" }) })
1367
- ] }),
1368
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: scrollable ? bodyScrollable : body2, children }),
1369
- footer3 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: footer2, children: footer3 })
1370
- ]
1371
- }
1372
- )
1373
- ] })
1374
- ]
1375
- }
1376
- );
1377
- }
1378
1437
 
1379
1438
  // src/components/Toast/Toast.css.ts
1380
1439
  var toast = "Toast_toast__1btt01v3";
@@ -2034,6 +2093,7 @@ exports.Button = Button;
2034
2093
  exports.Card = Card;
2035
2094
  exports.Checkbox = Checkbox;
2036
2095
  exports.Combobox = Combobox;
2096
+ exports.ConfirmDialogProvider = ConfirmDialogProvider;
2037
2097
  exports.DatePicker = DatePicker;
2038
2098
  exports.Display = Display;
2039
2099
  exports.EntityPill = EntityPill;
@@ -2063,6 +2123,7 @@ exports.ToastProvider = ToastProvider;
2063
2123
  exports.Toggle = Toggle;
2064
2124
  exports.Tooltip = Tooltip;
2065
2125
  exports.TypeTag = TypeTag;
2126
+ exports.useConfirm = useConfirm;
2066
2127
  exports.useTheme = useTheme;
2067
2128
  exports.useToast = useToast;
2068
2129
  exports.vars = vars;