@medusajs/ui 2.3.0 → 2.4.0-next-20240208080225

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.
Files changed (41) hide show
  1. package/dist/cjs/components/alert/alert.d.ts +12 -0
  2. package/dist/cjs/components/alert/alert.js +50 -0
  3. package/dist/cjs/components/alert/alert.js.map +1 -0
  4. package/dist/cjs/components/alert/index.d.ts +1 -0
  5. package/dist/cjs/components/alert/index.js +5 -0
  6. package/dist/cjs/components/alert/index.js.map +1 -0
  7. package/dist/cjs/components/button/button.d.ts +1 -1
  8. package/dist/cjs/components/date-picker/date-picker.d.ts +1 -1
  9. package/dist/cjs/components/date-picker/date-picker.js.map +1 -1
  10. package/dist/cjs/components/heading/heading.d.ts +1 -1
  11. package/dist/cjs/components/hint/hint.js +1 -1
  12. package/dist/cjs/components/hint/hint.js.map +1 -1
  13. package/dist/cjs/components/icon-button/icon-button.d.ts +1 -1
  14. package/dist/cjs/components/icon-button/icon-button.js +2 -0
  15. package/dist/cjs/components/icon-button/icon-button.js.map +1 -1
  16. package/dist/cjs/components/table/table.js +2 -2
  17. package/dist/cjs/components/table/table.js.map +1 -1
  18. package/dist/cjs/index.d.ts +2 -1
  19. package/dist/cjs/index.js +5 -3
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/esm/components/alert/alert.d.ts +12 -0
  22. package/dist/esm/components/alert/alert.js +46 -0
  23. package/dist/esm/components/alert/alert.js.map +1 -0
  24. package/dist/esm/components/alert/index.d.ts +1 -0
  25. package/dist/esm/components/alert/index.js +2 -0
  26. package/dist/esm/components/alert/index.js.map +1 -0
  27. package/dist/esm/components/button/button.d.ts +1 -1
  28. package/dist/esm/components/date-picker/date-picker.d.ts +1 -1
  29. package/dist/esm/components/date-picker/date-picker.js.map +1 -1
  30. package/dist/esm/components/heading/heading.d.ts +1 -1
  31. package/dist/esm/components/hint/hint.js +1 -1
  32. package/dist/esm/components/hint/hint.js.map +1 -1
  33. package/dist/esm/components/icon-button/icon-button.d.ts +1 -1
  34. package/dist/esm/components/icon-button/icon-button.js +2 -0
  35. package/dist/esm/components/icon-button/icon-button.js.map +1 -1
  36. package/dist/esm/components/table/table.js +2 -2
  37. package/dist/esm/components/table/table.js.map +1 -1
  38. package/dist/esm/index.d.ts +2 -1
  39. package/dist/esm/index.js +2 -1
  40. package/dist/esm/index.js.map +1 -1
  41. package/package.json +6 -6
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ interface AlertProps extends React.ComponentPropsWithoutRef<"div"> {
3
+ variant?: "error" | "success" | "warning" | "info";
4
+ dismissible?: boolean;
5
+ }
6
+ /**
7
+ * This component is based on the div element and supports all of its props
8
+ *
9
+ * @excludeExternal
10
+ */
11
+ export declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
12
+ export {};
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Alert = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const clx_1 = require("../../utils/clx");
6
+ const icons_1 = require("@medusajs/icons");
7
+ const React = tslib_1.__importStar(require("react"));
8
+ const icon_button_1 = require("../icon-button");
9
+ /**
10
+ * This component is based on the div element and supports all of its props
11
+ *
12
+ * @excludeExternal
13
+ */
14
+ exports.Alert = React.forwardRef(({
15
+ /**
16
+ * The variant of the alert
17
+ */
18
+ variant = "info",
19
+ /**
20
+ * Whether the alert is dismissible
21
+ */
22
+ dismissible = false, className, children, ...props }, ref) => {
23
+ const [dismissed, setDismissed] = React.useState(false);
24
+ const Icon = {
25
+ info: icons_1.InformationCircleSolid,
26
+ error: icons_1.XCircleSolid,
27
+ success: icons_1.CheckCircleSolid,
28
+ warning: icons_1.ExclamationCircleSolid,
29
+ }[variant];
30
+ const handleDismiss = () => {
31
+ setDismissed(true);
32
+ };
33
+ if (dismissed) {
34
+ return null;
35
+ }
36
+ return (React.createElement("div", { ref: ref, className: (0, clx_1.clx)("bg-ui-bg-subtle text-pretty txt-compact-small grid items-start gap-x-3 rounded-lg border p-3", {
37
+ "grid-cols-[20px_1fr]": !dismissible,
38
+ "grid-cols-[20px_1fr_20px]": dismissible,
39
+ }, className), ...props },
40
+ React.createElement(Icon, { className: (0, clx_1.clx)({
41
+ "text-ui-tag-red-icon": variant === "error",
42
+ "text-ui-tag-green-icon": variant === "success",
43
+ "text-ui-tag-orange-icon": variant === "warning",
44
+ "text-ui-tag-neutral-icon": variant === "info",
45
+ }) }),
46
+ React.createElement("div", null, children),
47
+ dismissible && (React.createElement(icon_button_1.IconButton, { size: "2xsmall", variant: "transparent", type: "button", onClick: handleDismiss },
48
+ React.createElement(icons_1.XMarkMini, { className: "text-ui-fg-muted" })))));
49
+ });
50
+ //# sourceMappingURL=alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../../src/components/alert/alert.tsx"],"names":[],"mappings":";;;;AAAA,qCAAiC;AACjC,2CAMwB;AACxB,qDAA8B;AAE9B,0DAAqD;AAOrD;;;;GAIG;AACU,QAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CACnC,CACE;AACE;;GAEG;AACH,OAAO,GAAG,MAAM;AAChB;;GAEG;AACH,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEvD,MAAM,IAAI,GAAG;QACX,IAAI,EAAE,8BAAsB;QAC5B,KAAK,EAAE,oBAAY;QACnB,OAAO,EAAE,wBAAgB;QACzB,OAAO,EAAE,8BAAsB;KAChC,CAAC,OAAO,CAAC,CAAA;IAEV,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,YAAY,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,IAAI,SAAS,EAAE;QACb,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EACZ,8FAA8F,EAC9F;YACE,sBAAsB,EAAE,CAAC,WAAW;YACpC,2BAA2B,EAAE,WAAW;SACzC,EACD,SAAS,CACV,KACG,KAAK;QAET,oBAAC,IAAI,IACH,SAAS,EAAE,IAAA,SAAG,EAAC;gBACb,sBAAsB,EAAE,OAAO,KAAK,OAAO;gBAC3C,wBAAwB,EAAE,OAAO,KAAK,SAAS;gBAC/C,yBAAyB,EAAE,OAAO,KAAK,SAAS;gBAChD,0BAA0B,EAAE,OAAO,KAAK,MAAM;aAC/C,CAAC,GACF;QACF,iCAAM,QAAQ,CAAO;QACpB,WAAW,IAAI,CACd,oBAAC,wBAAU,IACT,IAAI,EAAC,SAAS,EACd,OAAO,EAAC,aAAa,EACrB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa;YAEtB,oBAAC,iBAAS,IAAC,SAAS,EAAC,kBAAkB,GAAG,CAC/B,CACd,CACG,CACP,CAAA;AACH,CAAC,CACF,CAAA","sourcesContent":["import { clx } from \"@/utils/clx\"\nimport {\n CheckCircleSolid,\n ExclamationCircleSolid,\n InformationCircleSolid,\n XCircleSolid,\n XMarkMini,\n} from \"@medusajs/icons\"\nimport * as React from \"react\"\n\nimport { IconButton } from \"@/components/icon-button\"\n\ninterface AlertProps extends React.ComponentPropsWithoutRef<\"div\"> {\n variant?: \"error\" | \"success\" | \"warning\" | \"info\"\n dismissible?: boolean\n}\n\n/**\n * This component is based on the div element and supports all of its props\n *\n * @excludeExternal\n */\nexport const Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n (\n {\n /**\n * The variant of the alert\n */\n variant = \"info\",\n /**\n * Whether the alert is dismissible\n */\n dismissible = false,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [dismissed, setDismissed] = React.useState(false)\n\n const Icon = {\n info: InformationCircleSolid,\n error: XCircleSolid,\n success: CheckCircleSolid,\n warning: ExclamationCircleSolid,\n }[variant]\n\n const handleDismiss = () => {\n setDismissed(true)\n }\n\n if (dismissed) {\n return null\n }\n\n return (\n <div\n ref={ref}\n className={clx(\n \"bg-ui-bg-subtle text-pretty txt-compact-small grid items-start gap-x-3 rounded-lg border p-3\",\n {\n \"grid-cols-[20px_1fr]\": !dismissible,\n \"grid-cols-[20px_1fr_20px]\": dismissible,\n },\n className\n )}\n {...props}\n >\n <Icon\n className={clx({\n \"text-ui-tag-red-icon\": variant === \"error\",\n \"text-ui-tag-green-icon\": variant === \"success\",\n \"text-ui-tag-orange-icon\": variant === \"warning\",\n \"text-ui-tag-neutral-icon\": variant === \"info\",\n })}\n />\n <div>{children}</div>\n {dismissible && (\n <IconButton\n size=\"2xsmall\"\n variant=\"transparent\"\n type=\"button\"\n onClick={handleDismiss}\n >\n <XMarkMini className=\"text-ui-fg-muted\" />\n </IconButton>\n )}\n </div>\n )\n }\n)\n"]}
@@ -0,0 +1 @@
1
+ export * from "./alert";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./alert"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/alert/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB","sourcesContent":["export * from \"./alert\"\n"]}
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from "cva";
2
2
  import * as React from "react";
3
3
  declare const buttonVariants: (props?: ({
4
- variant?: "primary" | "secondary" | "transparent" | "danger" | undefined;
4
+ variant?: "primary" | "transparent" | "secondary" | "danger" | undefined;
5
5
  size?: "small" | "base" | "large" | "xlarge" | undefined;
6
6
  } & ({
7
7
  class?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any | {
@@ -53,7 +53,7 @@ type CalendarProps = {
53
53
  */
54
54
  toDate?: Date;
55
55
  /**
56
- * Locale to use for formatting dates. To change the locale pass a `date-fns` locale object.
56
+ * The locale to use for formatting dates. To change the locale pass a date-fns locale object.
57
57
  */
58
58
  locale?: Locale;
59
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;;AAEZ,kDAA8C;AAC9C,2CAAiE;AACjE,4EAAqD;AAErD,uCAA8C;AAC9C,qDAA8B;AAE9B,gDAA4C;AAC5C,oDAAqE;AACrE,wDAAmD;AAEnD,qCAAiC;AACjC,+FAAsF;AACtF,6BAAyB;AAEzB,MAAM,eAAe,GAAG,IAAA,SAAG,EAAC;IAC1B,IAAI,EAAE,IAAA,SAAG,EACP,8HAA8H,EAC9H,4BAA4B,EAC5B,+GAA+G,EAC/G,yFAAyF,EACzF,2CAA2C,CAC5C;IACD,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,KAAK,EAAE,iCAAiC;SACzC;KACF;IACD,eAAe,EAAE;QACf,IAAI,EAAE,MAAM;KACb;CACF,CAAC,CAAA;AAOF,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAC9B,CACE,EACE,SAAS,EACT,QAAQ;AACR;;GAEG;AACH,WAAW;AACX;;GAEG;AACH,IAAI,GAAG,MAAM,EACb,GAAG,KAAK,EACK,EACf,GAAG,EACH,EAAE;IACF,OAAO,CACL,oBAAC,UAAU,CAAC,OAAO,IAAC,OAAO;QACzB,gCACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EAAC,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK;YAET,oBAAC,gBAAY,IAAC,SAAS,EAAC,kBAAkB,GAAG;YAC7C,8BAAM,SAAS,EAAC,kEAAkE,IAC/E,QAAQ,CAAC,CAAC,CAAC,CACV,QAAQ,CACT,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,8BAAM,SAAS,EAAC,kBAAkB,IAAE,WAAW,CAAQ,CACxD,CAAC,CAAC,CAAC,IAAI,CACH,CACA,CACU,CACtB,CAAA;AACH,CAAC,CACF,CAAA;AACD,OAAO,CAAC,WAAW,GAAG,oBAAoB,CAAA;AAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAG7B,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3C,OAAO,CACL,oBAAC,UAAU,CAAC,MAAM;QAChB,oBAAC,UAAU,CAAC,OAAO,IACjB,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,CAAC,EACb,KAAK,EAAC,QAAQ,EACd,SAAS,EAAE,IAAA,SAAG,EACZ,0EAA0E,EAC1E,gIAAgI,EAChI,6JAA6J,EAC7J,SAAS,CACV,KACG,KAAK,IAER,QAAQ,CACU,CACH,CACrB,CAAA;AACH,CAAC,CAAC,CAAA;AACF,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAA;AA6BxC,MAAM,eAAe,GAAG,CAAiC;AACvD;;GAEG;AACH,OAAO;AACP;;GAEG;AACH,QAAQ;AACR;;GAEG;AACH,YAAY,GAC0B,EAAE,EAAE;IAC1C,MAAM,kBAAkB,GAAG,CAAC,MAAW,EAA6B,EAAE;QACpE,OAAO,WAAW,IAAI,MAAM,CAAA;IAC9B,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,MAAW,EAAwB,EAAE;QAC1D,OAAO,MAAM,IAAI,MAAM,CAAA;IACzB,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,MAAe,EAAE,EAAE;QACtC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC9B,QAAQ,CAAC,MAAM,CAAC,SAAmB,CAAC,CAAA;SACrC;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;YAChC,QAAQ,CAAC,MAAM,CAAC,IAAc,CAAC,CAAA;SAChC;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,KAAW,EAAE,KAAW,EAAE,EAAE;QAChD,OAAO,CACL,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE;YACnC,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE;YACrC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAC5C,CAAA;IACH,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,CAAC,MAAiB,EAAE,MAAiB,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QACzB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAA;QAEzB,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,IAAI,KAAK,IAAI,KAAK,EAAE;YAClB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;YAE3C,IAAI,QAAQ,EAAE;gBACZ,SAAS,GAAG,IAAI,CAAA;aACjB;SACF;QAED,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAA;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAA;QAErB,IAAI,OAAO,GAAG,KAAK,CAAA;QAEnB,IAAI,GAAG,IAAI,GAAG,EAAE;YACd,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAErC,IAAI,MAAM,EAAE;gBACV,OAAO,GAAG,IAAI,CAAA;aACf;SACF;QAED,OAAO,SAAS,IAAI,OAAO,CAAA;IAC7B,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,CAAC,MAAe,EAAE,EAAE;QACzC,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC9B,MAAM,KAAK,GAAG,YAAqC,CAAA;YAEnD,OAAO,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;SACvD;aAAM,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;YAChC,MAAM,KAAK,GAAG,YAAgC,CAAA;YAE9C,OAAO,KAAK,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;SACjD;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IAED,OAAO,CACL,4BAAI,SAAS,EAAC,2BAA2B,IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAC7B,OAAO,CACL,4BAAI,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,QAAQ;YAChC,gCACE,SAAS,EAAE,IAAA,SAAG,EACZ,wGAAwG,EACxG,yEAAyE,EACzE,mCAAmC,EACnC;oBACE,wBAAwB,EAAE,cAAc,CAAC,MAAM,CAAC;iBACjD,CACF,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,gBACtB,UAAU,MAAM,CAAC,KAAK,EAAE,IAEnC,MAAM,CAAC,KAAK,CACN,CACN,CACN,CAAA;IACH,CAAC,CAAC,CACC,CACN,CAAA;AACH,CAAC,CAAA;AACD,eAAe,CAAC,WAAW,GAAG,4BAA4B,CAAA;AAE1D,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,WAAqB,EAAE,EAAE;IACvD,MAAM,QAAQ,GAAG,CAAC,IAAA,8DAA2B,GAAE,CAAA;IAE/C,IAAI,WAAW,EAAE;QACf,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;SAC1C;QAED,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;KACzC;IAED,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,aAAa,CAAC,CAAA;AACpC,CAAC,CAAA;AA4FD,MAAM,gBAAgB,GAAG,CAAC,EACxB,YAAY,EACZ,KAAK,EACL,IAAI,GAAG,MAAM,EACb,QAAQ,EACR,OAAO,EACP,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,GAAG,KAAK,EACI,EAAE,EAAE;;IAChB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpC,MAAA,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,YAAY,mCAAI,SAAS,CACnC,CAAA;IACD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAmB,IAAI,CAAC,CAAA;IAEhE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CACpC,KAAK;QACH,CAAC,CAAC,IAAI,WAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QAChD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,IAAI,WAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC;YAC9D,CAAC,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,IAAI,CAAA;QACX,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,OAAO,CAAC,MAAA,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,YAAY,mCAAI,SAAS,CAAC,CAAA;IAC7C,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;IAEzB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,IAAI,EAAE;YACR,QAAQ,CAAC,IAAI,CAAC,CAAA;SACf;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE;YACT,QAAQ,CAAC,IAAI,CAAC,CAAA;SACf;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,OAAO,CAAC,WAAW,CAAC,CAAA;QACpB,OAAO,CACL,WAAW;YACT,CAAC,CAAC,IAAI,WAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC;YAC5D,CAAC,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,QAAQ,EAAE,CAAA;SACX;QAED,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,IAAsB,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAA;QAEpB,IAAI,cAAc,EAAE;YAClB;;;eAGG;YACH,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE;gBACpB,OAAO,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACxB;YAED;;;;eAIG;YACH,IAAI,OAAO,IAAI,IAAI,EAAE;gBACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC3B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAChC;SACF;QAED,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,IAAe,EAAE,EAAE;QACvC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEb,IAAI,CAAC,IAAI,EAAE;YACT,OAAM;SACP;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;QAExC,IAAI,CAAC,IAAI,EAAE;YACT;;;;;;eAMG;YACH,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACtB;aAAM;YACL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAChC;QAED,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACzC,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAA;IAE1B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAA;IAClB,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,UAAU,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY;QACrD,oBAAC,OAAO,IACN,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,mBACL,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,kBACzC,KAAK,CAAC,cAAc,CAAC,gBACvB,KAAK,CAAC,YAAY,CAAC,qBACd,KAAK,CAAC,iBAAiB,CAAC,EACzC,IAAI,EAAE,IAAI,IAET,aAAa,CACN;QACV,oBAAC,MAAM;YACL,6BAAK,SAAS,EAAC,MAAM;gBACnB,6BAAK,SAAS,EAAC,kBAAkB;oBAC9B,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,6BAAK,SAAS,EAAC,oCAAoC;wBACjD,6BAAK,SAAS,EAAC,wCAAwC;4BACrD,oBAAC,eAAe,IACd,YAAY,EAAE,IAAI,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,YAAY,GACtB,CACE,CACF,CACP;oBACD;wBACE,oBAAC,mBAAiB,IAChB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,EACvB,QAAQ,EAAE,IAAI,EACd,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,QAAQ,KACd,KAAK,GACT;wBACD,cAAc,IAAI,CACjB,6BAAK,SAAS,EAAC,oCAAoC;4BACjD,oBAAC,sBAAS,kBACG,MAAM,EACjB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,CAAC,IAAI,EACjB,KAAK,EAAE,IAAI,EACX,UAAU,EAAE,KAAK,CAAC,QAAQ,GAC1B,CACE,CACP;wBACD,6BAAK,SAAS,EAAC,8DAA8D;4BAC3E,oBAAC,eAAM,IACL,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,IAEhB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,QAAQ,CAC1B;4BACT,oBAAC,eAAM,IACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,QAAQ,EAClB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,IAEf,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,mCAAI,OAAO,CACxB,CACL,CACF,CACF,CACF,CACC,CACO,CACnB,CAAA;AACH,CAAC,CAAA;AASD,MAAM,eAAe,GAAG,CAAC;AACvB;;GAEG;AACH,YAAY;AACZ;;GAEG;AACH,KAAK;AACL;;GAEG;AACH,QAAQ,EACR,IAAI,GAAG,MAAM,EACb,cAAc;AACd;;GAEG;AACH,OAAO,EACP,QAAQ,EACR,SAAS,EACT,WAAW,EACX,YAAY,EACZ,GAAG,KAAK,EACG,EAAE,EAAE;;IACf,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CACtC,MAAA,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,YAAY,mCAAI,SAAS,CACnC,CAAA;IACD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAmB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAA;IAEvE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC9C,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;QACT,CAAC,CAAC,IAAI,WAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;YACpB,CAAC,CAAC,IAAI,WAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxE,CAAC,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;IACD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAC1C,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE;QACP,CAAC,CAAC,IAAI,WAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;QACtD,CAAC,CAAC,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE;YAClB,CAAC,CAAC,IAAI,WAAI,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACpE,CAAC,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,OAAO,KAAK,CAAA;QACZ,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;;QACnB,QAAQ,CAAC,MAAA,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,YAAY,mCAAI,SAAS,CAAC,CAAA;IAC9C,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;IAEzB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,KAAK,EAAE;YACT,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;SACrB;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,IAAI,EAAE;YACT,QAAQ,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,CAAA;SACtB;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,MAAM,aAAa,GAAG,CAAC,KAA4B,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,KAAK,CAAA;QAEtB,IAAI,cAAc,EAAE;YAClB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,CAAC,SAAS,EAAE;gBAChC,YAAY,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC7B;YAED,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,KAAI,CAAC,OAAO,EAAE;gBAC5B,UAAU,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC3B;YAED,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,SAAS,EAAE;gBAC/B,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBACtC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;aAC3C;YAED,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,KAAI,OAAO,EAAE;gBAC3B,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAClC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;aACvC;SACF;QAED,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACpB,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,QAAQ,CAAC,YAAY,CAAC,CAAA;QACtB,YAAY,CACV,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;YAChB,CAAC,CAAC,IAAI,WAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACxE,CAAC,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;QACD,UAAU,CACR,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,EAAE;YACd,CAAC,CAAC,IAAI,WAAI,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACpE,CAAC,CAAC,IAAI,WAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CACnB,CAAA;QACD,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE;QACrC,IAAI,CAAC,IAAI,EAAE;YACT,QAAQ,EAAE,CAAA;SACX;QAED,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,IAAe,EAAE,GAAoB,EAAE,EAAE;QAC7D,QAAQ,GAAG,EAAE;YACX,KAAK,OAAO;gBACV,YAAY,CAAC,IAAI,CAAC,CAAA;gBAClB,MAAK;YACP,KAAK,KAAK;gBACR,UAAU,CAAC,IAAI,CAAC,CAAA;gBAChB,MAAK;SACR;QAED,IAAI,CAAC,KAAK,EAAE;YACV,OAAM;SACP;QAED,IAAI,GAAG,KAAK,OAAO,EAAE;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACf,OAAM;aACP;YAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;YAE9C,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;aACtB;iBAAM;gBACL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC3B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAChC;YAED,QAAQ,CAAC;gBACP,GAAG,KAAK;gBACR,IAAI,EAAE,OAAO;aACd,CAAC,CAAA;SACH;QAED,IAAI,GAAG,KAAK,KAAK,EAAE;YACjB,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;gBACb,OAAM;aACP;YAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YAE5C,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;gBACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;aACtB;iBAAM;gBACL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBAC3B,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;aAChC;YAED,QAAQ,CAAC;gBACP,GAAG,KAAK;gBACR,EAAE,EAAE,OAAO;aACZ,CAAC,CAAA;SACH;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,IAAI,CAAA;SACZ;QAED,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,MAChE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EACpD,EAAE,CAAA;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAA;IAE3B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,KAAK,CAAC,CAAA;QACd,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,KAAK,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,UAAU,CAAC,IAAI,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY;QACrD,oBAAC,OAAO,IACN,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,mBACL,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,eAAe,CAAC,kBACzC,KAAK,CAAC,cAAc,CAAC,gBACvB,KAAK,CAAC,YAAY,CAAC,qBACd,KAAK,CAAC,iBAAiB,CAAC,EACzC,IAAI,EAAE,IAAI,IAET,YAAY,CACL;QACV,oBAAC,MAAM;YACL,6BAAK,SAAS,EAAC,MAAM;gBACnB,6BAAK,SAAS,EAAC,kBAAkB;oBAC9B,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,6BAAK,SAAS,EAAC,oCAAoC;wBACjD,6BAAK,SAAS,EAAC,wCAAwC;4BACrD,oBAAC,eAAe,IACd,YAAY,EAAE,KAAK,EACnB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GACvB,CACE,CACF,CACP;oBACD;wBACE,oBAAC,mBAAiB,IAChB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,EACvB,cAAc,EAAE,CAAC,EACjB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE;gCACV,MAAM,EAAE,8CAA8C;6BACvD,KACG,KAAK,GACT;wBACD,cAAc,IAAI,CACjB,6BAAK,SAAS,EAAC,6EAA6E;4BAC1F,6BAAK,SAAS,EAAC,kCAAkC;gCAC/C,8BAAM,SAAS,EAAC,mBAAmB,IAChC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,mCAAI,OAAO;wCAC1B;gCACP,oBAAC,sBAAS,IACR,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,gBAC9B,iBAAiB,EAC5B,UAAU,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAA,EACxB,UAAU,EAAE,KAAK,CAAC,QAAQ,GAC1B,CACE;4BACN,oBAAC,aAAK,IAAC,SAAS,EAAC,kBAAkB,GAAG;4BACtC,6BAAK,SAAS,EAAC,kCAAkC;gCAC/C,8BAAM,SAAS,EAAC,mBAAmB,IAChC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,mCAAI,KAAK;wCACtB;gCACP,oBAAC,sBAAS,IACR,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,gBAC5B,eAAe,EAC1B,UAAU,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,CAAA,EACtB,UAAU,EAAE,KAAK,CAAC,QAAQ,GAC1B,CACE,CACF,CACP;wBACD,6BAAK,SAAS,EAAC,gDAAgD;4BAC7D,2BAAG,SAAS,EAAE,IAAA,SAAG,EAAC,0CAA0C,CAAC;gCAC3D,8BAAM,SAAS,EAAC,kBAAkB,IAC/B,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,mCAAI,OAAO;wCAC1B;gCAAC,GAAG;gCACV,YAAY,CACX;4BACJ,6BAAK,SAAS,EAAC,2BAA2B;gCACxC,oBAAC,eAAM,IACL,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,QAAQ,IAEhB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,mCAAI,QAAQ,CAC1B;gCACT,oBAAC,eAAM,IACL,IAAI,EAAC,OAAO,EACZ,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,IAEf,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,mCAAI,OAAO,CACxB,CACL,CACF,CACF,CACF,CACF,CACC,CACO,CACnB,CAAA;AACH,CAAC,CAAA;AA4BD,MAAM,eAAe,GAAG,CACtB,OAAyC,EACzC,KAAkB,EAClB,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IAEtE,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM,aAAa,GAAG,QAAQ,CAAA;QAC9B,MAAM,WAAW,GAAG,MAAM,CAAA;QAE1B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;;YACzB,IAAI,MAAM,IAAI,MAAM,EAAE;gBACpB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;gBAE5C,IAAI,QAAQ,IAAI,UAAU,GAAG,QAAQ,EAAE;oBACrC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,uBAAuB,aAAa,GAAG,CAC9D,CAAA;iBACF;gBAED,IAAI,MAAM,IAAI,UAAU,GAAG,MAAM,EAAE;oBACjC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,oBAAoB,WAAW,GAAG,CACzD,CAAA;iBACF;gBAED,IAAI,SAAS,EAAE;oBACb,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBAE1C,IAAI,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE;wBACtC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,wBAAwB,SAAS,GAAG,CAC3D,CAAA;qBACF;iBACF;gBAED,IAAI,OAAO,EAAE;oBACX,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAA;oBAE1C,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE;wBACpC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,qBAAqB,OAAO,GAAG,CACtD,CAAA;qBACF;iBACF;gBAED,IAAI,OAAO,EAAE;oBACX,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;oBAEvC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;wBACjC,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,sBAAsB,OAAO,GAAG,CACvD,CAAA;qBACF;iBACF;gBAED,IAAI,KAAK,EAAE;oBACT,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAA;oBAEvC,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE;wBAC/B,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,mBAAmB,IAAA,iBAAM,EAC7C,KAAK,EACL,cAAc,CACf,GAAG,CACL,CAAA;qBACF;iBACF;aACF;YAED,IAAI,WAAW,IAAI,MAAM,EAAE;gBACzB,MAAM,cAAc,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,WAAW,EAAE,CAAA;gBAC3D,MAAM,YAAY,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,EAAE,0CAAE,WAAW,EAAE,CAAA;gBAEvD,IAAI,cAAc,IAAI,QAAQ,IAAI,cAAc,GAAG,QAAQ,EAAE;oBAC3D,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,gCAAgC,aAAa,GAAG,CACvE,CAAA;iBACF;gBAED,IAAI,YAAY,IAAI,MAAM,IAAI,YAAY,GAAG,MAAM,EAAE;oBACnD,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,2BAA2B,WAAW,GAAG,CAChE,CAAA;iBACF;gBAED,IAAI,SAAS,EAAE;oBACb,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,QAAQ,EAAE,CAAA;oBAErD,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAAC,QAAQ,EAAE,EAAE;wBACrD,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,iCAAiC,IAAA,iBAAM,EAC3D,SAAS,EACT,WAAW,CACZ,GAAG,CACL,CAAA;qBACF;iBACF;gBAED,IAAI,OAAO,EAAE;oBACX,MAAM,WAAW,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,EAAE,0CAAE,QAAQ,EAAE,CAAA;oBAEnD,IAAI,WAAW,IAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE;wBACnD,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,4BAA4B,IAAA,iBAAM,EACtD,OAAO,EACP,WAAW,CACZ,GAAG,CACL,CAAA;qBACF;iBACF;gBAED,IAAI,OAAO,EAAE;oBACX,MAAM,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,IAAI,0CAAE,OAAO,EAAE,CAAA;oBAElD,IAAI,SAAS,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;wBAC9C,MAAM,IAAI,KAAK,CACb,UACE,MAAM,CAAC,SAAS,CAAC,IACnB,+BAA+B,IAAA,iBAAM,EAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAClE,CAAA;qBACF;iBACF;gBAED,IAAI,KAAK,EAAE;oBACT,MAAM,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,EAAE,0CAAE,OAAO,EAAE,CAAA;oBAEhD,IAAI,SAAS,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE;wBAC5C,MAAM,IAAI,KAAK,CACb,UAAU,MAAM,CAAC,KAAK,0BAA0B,IAAA,iBAAM,EACpD,KAAK,EACL,cAAc,CACf,GAAG,CACL,CAAA;qBACF;iBACF;aACF;QACH,CAAC,CAAC,CAAA;KACH;AACH,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,UAAU,GAAG,CAAC;AAClB;;GAEG;AACH,IAAI,GAAG,QAAQ,EACf,GAAG,KAAK,EACQ,EAAE,EAAE;IACpB,IAAI,KAAK,CAAC,OAAO,EAAE;QACjB,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KACtC;IAED,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,OAAO,oBAAC,gBAAgB,OAAM,KAAqB,GAAI,CAAA;KACxD;IAED,OAAO,oBAAC,eAAe,OAAM,KAAoB,GAAI,CAAA;AACvD,CAAC,CAAA;AAEQ,gCAAU","sourcesContent":["\"use client\"\n\nimport { Time } from \"@internationalized/date\"\nimport { Calendar as CalendarIcon, Minus } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-popover\"\nimport { TimeValue } from \"@react-aria/datepicker\"\nimport { format, type Locale } from \"date-fns\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { Calendar as CalendarPrimitive } from \"@/components/calendar\"\nimport { TimeInput } from \"@/components/time-input\"\nimport type { DateRange } from \"@/types\"\nimport { clx } from \"@/utils/clx\"\nimport { isBrowserLocaleClockType24h } from \"@/utils/is-browser-locale-hour-cycle-24h\"\nimport { cva } from \"cva\"\n\nconst displayVariants = cva({\n base: clx(\n \"text-ui-fg-base bg-ui-bg-field transition-fg shadow-buttons-neutral flex w-full items-center gap-x-2 rounded-md outline-none\",\n \"hover:bg-ui-bg-field-hover\",\n \"focus-visible:shadow-borders-interactive-with-active data-[state=open]:shadow-borders-interactive-with-active\",\n \"disabled:bg-ui-bg-disabled disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral\",\n \"aria-[invalid=true]:!shadow-borders-error\"\n ),\n variants: {\n size: {\n base: \"txt-compact-small h-8 px-2 py-1.5\",\n small: \"txt-compact-small h-7 px-2 py-1\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n})\n\ninterface DisplayProps extends React.ComponentProps<\"button\"> {\n placeholder?: string\n size?: \"small\" | \"base\"\n}\n\nconst Display = React.forwardRef<HTMLButtonElement, DisplayProps>(\n (\n {\n className,\n children,\n /**\n * Placeholder of the date picker's input.\n */\n placeholder,\n /**\n * The size of the date picker's input.\n */\n size = \"base\",\n ...props\n }: DisplayProps,\n ref\n ) => {\n return (\n <Primitives.Trigger asChild>\n <button\n ref={ref}\n className={clx(displayVariants({ size }), className)}\n {...props}\n >\n <CalendarIcon className=\"text-ui-fg-muted\" />\n <span className=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left\">\n {children ? (\n children\n ) : placeholder ? (\n <span className=\"text-ui-fg-muted\">{placeholder}</span>\n ) : null}\n </span>\n </button>\n </Primitives.Trigger>\n )\n }\n)\nDisplay.displayName = \"DatePicker.Display\"\n\nconst Flyout = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentProps<typeof Primitives.Content>\n>(({ className, children, ...props }, ref) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={8}\n align=\"center\"\n className={clx(\n \"txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg\",\n \"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n </Primitives.Content>\n </Primitives.Portal>\n )\n})\nFlyout.displayName = \"DatePicker.Flyout\"\n\ninterface Preset {\n /**\n * The preset's label.\n */\n label: string\n}\n\ninterface DatePreset extends Preset {\n /**\n * The preset's selected date.\n */\n date: Date\n}\n\ninterface DateRangePreset extends Preset {\n /**\n * The preset's selected date range.\n */\n dateRange: DateRange\n}\n\ntype PresetContainerProps<TPreset extends Preset, TValue> = {\n presets: TPreset[] | TPreset[]\n onSelect: (value: TValue) => void\n currentValue?: TValue\n}\n\nconst PresetContainer = <TPreset extends Preset, TValue>({\n /**\n * Selectable preset configurations.\n */\n presets,\n /**\n * A function that handles the event when a preset is selected.\n */\n onSelect,\n /**\n * The currently selected preset.\n */\n currentValue,\n}: PresetContainerProps<TPreset, TValue>) => {\n const isDateRangePresets = (preset: any): preset is DateRangePreset => {\n return \"dateRange\" in preset\n }\n\n const isDatePresets = (preset: any): preset is DatePreset => {\n return \"date\" in preset\n }\n\n const handleClick = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n onSelect(preset.dateRange as TValue)\n } else if (isDatePresets(preset)) {\n onSelect(preset.date as TValue)\n }\n }\n\n const compareDates = (date1: Date, date2: Date) => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n )\n }\n\n const compareRanges = (range1: DateRange, range2: DateRange) => {\n const from1 = range1.from\n const from2 = range2.from\n\n let equalFrom = false\n\n if (from1 && from2) {\n const sameFrom = compareDates(from1, from2)\n\n if (sameFrom) {\n equalFrom = true\n }\n }\n\n const to1 = range1.to\n const to2 = range2.to\n\n let equalTo = false\n\n if (to1 && to2) {\n const sameTo = compareDates(to1, to2)\n\n if (sameTo) {\n equalTo = true\n }\n }\n\n return equalFrom && equalTo\n }\n\n const matchesCurrent = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n const value = currentValue as DateRange | undefined\n\n return value && compareRanges(value, preset.dateRange)\n } else if (isDatePresets(preset)) {\n const value = currentValue as Date | undefined\n\n return value && compareDates(value, preset.date)\n }\n\n return false\n }\n\n return (\n <ul className=\"flex flex-col items-start\">\n {presets.map((preset, index) => {\n return (\n <li key={index} className=\"w-full\">\n <button\n className={clx(\n \"txt-compact-small-plus w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-md p-2 text-left\",\n \"text-ui-fg-subtle hover:bg-ui-bg-base-hover outline-none transition-all\",\n \"focus-visible:bg-ui-bg-base-hover\",\n {\n \"!bg-ui-bg-base-pressed\": matchesCurrent(preset),\n }\n )}\n onClick={() => handleClick(preset)}\n aria-label={`Select ${preset.label}`}\n >\n {preset.label}\n </button>\n </li>\n )\n })}\n </ul>\n )\n}\nPresetContainer.displayName = \"DatePicker.PresetContainer\"\n\nconst formatDate = (date: Date, includeTime?: boolean) => {\n const usesAmPm = !isBrowserLocaleClockType24h()\n\n if (includeTime) {\n if (usesAmPm) {\n return format(date, \"MMM d, yyyy h:mm a\")\n }\n\n return format(date, \"MMM d, yyyy HH:mm\")\n }\n\n return format(date, \"MMM d, yyyy\")\n}\n\ntype CalendarProps = {\n /**\n * The year to start showing the dates from.\n */\n fromYear?: number\n /**\n * The year to show dates to.\n */\n toYear?: number\n /**\n * The month to start showing dates from.\n */\n fromMonth?: Date\n /**\n * The month to show dates to.\n */\n toMonth?: Date\n /**\n * The day to start showing dates from.\n */\n fromDay?: Date\n /**\n * The day to show dates to.\n */\n toDay?: Date\n /**\n * The date to show dates from.\n */\n fromDate?: Date\n /**\n * The date to show dates to.\n */\n toDate?: Date\n /**\n * Locale to use for formatting dates. To change the locale pass a `date-fns` locale object.\n */\n locale?: Locale\n}\n\ntype Translations = {\n cancel?: string\n apply?: string\n start?: string\n end?: string\n range?: string\n}\n\ninterface PickerProps extends CalendarProps {\n /**\n * The class name to apply on the date picker.\n */\n className?: string\n /**\n * Whether the date picker's input is disabled.\n */\n disabled?: boolean\n /**\n * Whether the date picker's input is required.\n */\n required?: boolean\n /**\n * The date picker's placeholder.\n */\n placeholder?: string\n /**\n * The date picker's size.\n */\n size?: \"small\" | \"base\"\n /**\n * Whether to show a time picker along with the date picker.\n */\n showTimePicker?: boolean\n /**\n * Translation keys for the date picker. Use this to localize the date picker.\n */\n translations?: Translations\n id?: string\n \"aria-invalid\"?: boolean\n \"aria-label\"?: string\n \"aria-labelledby\"?: string\n \"aria-required\"?: boolean\n}\n\ninterface SingleProps extends PickerProps {\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n}\n\nconst SingleDatePicker = ({\n defaultValue,\n value,\n size = \"base\",\n onChange,\n presets,\n showTimePicker,\n disabled,\n className,\n placeholder,\n translations,\n ...props\n}: SingleProps) => {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n const [time, setTime] = React.useState<TimeValue>(\n value\n ? new Time(value.getHours(), value.getMinutes())\n : defaultValue\n ? new Time(defaultValue.getHours(), defaultValue.getMinutes())\n : new Time(0, 0)\n )\n\n const initialDate = React.useMemo(() => {\n return date\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the date when the value changes.\n */\n React.useEffect(() => {\n setDate(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (date) {\n setMonth(date)\n }\n }, [date])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(date)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onCancel = () => {\n setDate(initialDate)\n setTime(\n initialDate\n ? new Time(initialDate.getHours(), initialDate.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onDateChange = (date: Date | undefined) => {\n const newDate = date\n\n if (showTimePicker) {\n /**\n * If the time is cleared, and the date is\n * changed then we want to reset the time.\n */\n if (newDate && !time) {\n setTime(new Time(0, 0))\n }\n\n /**\n * If the time is set, and the date is changed\n * then we want to update the date with the\n * time.\n */\n if (newDate && time) {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n }\n\n setDate(newDate)\n }\n\n const onTimeChange = (time: TimeValue) => {\n setTime(time)\n\n if (!date) {\n return\n }\n\n const newDate = new Date(date.getTime())\n\n if (!time) {\n /**\n * When a segment of the time input is cleared,\n * it will return `null` as the value is no longer\n * a valid time. In this case, we want to set the\n * time to for the date, effectivly resetting the\n * input field.\n */\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n }\n\n const formattedDate = React.useMemo(() => {\n if (!date) {\n return null\n }\n\n return formatDate(date, showTimePicker)\n }, [date, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(date)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder={placeholder}\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {formattedDate}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={date}\n presets={presets}\n onSelect={onDateChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n disabled={disabled}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base border-t p-3\">\n <TimeInput\n aria-label=\"Time\"\n onChange={onTimeChange}\n isDisabled={!date}\n value={time}\n isRequired={props.required}\n />\n </div>\n )}\n <div className=\"border-ui-border-base flex items-center gap-x-2 border-t p-3\">\n <Button\n variant=\"secondary\"\n size=\"small\"\n className=\"w-full\"\n type=\"button\"\n onClick={onCancel}\n >\n {translations?.cancel ?? \"Cancel\"}\n </Button>\n <Button\n variant=\"primary\"\n size=\"small\"\n className=\"w-full\"\n type=\"button\"\n onClick={onApply}\n >\n {translations?.apply ?? \"Apply\"}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ninterface RangeProps extends PickerProps {\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n}\n\nconst RangeDatePicker = ({\n /**\n * The date range selected by default.\n */\n defaultValue,\n /**\n * The selected date range.\n */\n value,\n /**\n * A function to handle the change in the selected date range.\n */\n onChange,\n size = \"base\",\n showTimePicker,\n /**\n * Provide selectable preset configurations.\n */\n presets,\n disabled,\n className,\n placeholder,\n translations,\n ...props\n}: RangeProps) => {\n const [open, setOpen] = React.useState(false)\n const [range, setRange] = React.useState<DateRange | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(range?.from)\n\n const [startTime, setStartTime] = React.useState<TimeValue>(\n value?.from\n ? new Time(value.from.getHours(), value.from.getMinutes())\n : defaultValue?.from\n ? new Time(defaultValue.from.getHours(), defaultValue.from.getMinutes())\n : new Time(0, 0)\n )\n const [endTime, setEndTime] = React.useState<TimeValue>(\n value?.to\n ? new Time(value.to.getHours(), value.to.getMinutes())\n : defaultValue?.to\n ? new Time(defaultValue.to.getHours(), defaultValue.to.getMinutes())\n : new Time(0, 0)\n )\n\n const initialRange = React.useMemo(() => {\n return range\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the range when the value changes.\n */\n React.useEffect(() => {\n setRange(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (range) {\n setMonth(range.from)\n }\n }, [range])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(range?.from)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onRangeChange = (range: DateRange | undefined) => {\n const newRange = range\n\n if (showTimePicker) {\n if (newRange?.from && !startTime) {\n setStartTime(new Time(0, 0))\n }\n\n if (newRange?.to && !endTime) {\n setEndTime(new Time(0, 0))\n }\n\n if (newRange?.from && startTime) {\n newRange.from.setHours(startTime.hour)\n newRange.from.setMinutes(startTime.minute)\n }\n\n if (newRange?.to && endTime) {\n newRange.to.setHours(endTime.hour)\n newRange.to.setMinutes(endTime.minute)\n }\n }\n\n setRange(newRange)\n }\n\n const onCancel = () => {\n setRange(initialRange)\n setStartTime(\n initialRange?.from\n ? new Time(initialRange.from.getHours(), initialRange.from.getMinutes())\n : new Time(0, 0)\n )\n setEndTime(\n initialRange?.to\n ? new Time(initialRange.to.getHours(), initialRange.to.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onTimeChange = (time: TimeValue, pos: \"start\" | \"end\") => {\n switch (pos) {\n case \"start\":\n setStartTime(time)\n break\n case \"end\":\n setEndTime(time)\n break\n }\n\n if (!range) {\n return\n }\n\n if (pos === \"start\") {\n if (!range.from) {\n return\n }\n\n const newDate = new Date(range.from.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n from: newDate,\n })\n }\n\n if (pos === \"end\") {\n if (!range.to) {\n return\n }\n\n const newDate = new Date(range.to.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n to: newDate,\n })\n }\n }\n\n const displayRange = React.useMemo(() => {\n if (!range) {\n return null\n }\n\n return `${range.from ? formatDate(range.from, showTimePicker) : \"\"} - ${\n range.to ? formatDate(range.to, showTimePicker) : \"\"\n }`\n }, [range, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(range)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder={placeholder}\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {displayRange}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={range}\n presets={presets}\n onSelect={onRangeChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"range\"\n selected={range}\n onSelect={onRangeChange}\n month={month}\n onMonthChange={setMonth}\n numberOfMonths={2}\n disabled={disabled}\n classNames={{\n months: \"flex flex-row divide-x divide-ui-border-base\",\n }}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3\">\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">\n {translations?.start ?? \"Start\"}:\n </span>\n <TimeInput\n value={startTime}\n onChange={(v) => onTimeChange(v, \"start\")}\n aria-label=\"Start date time\"\n isDisabled={!range?.from}\n isRequired={props.required}\n />\n </div>\n <Minus className=\"text-ui-fg-muted\" />\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">\n {translations?.end ?? \"End\"}:\n </span>\n <TimeInput\n value={endTime}\n onChange={(v) => onTimeChange(v, \"end\")}\n aria-label=\"End date time\"\n isDisabled={!range?.to}\n isRequired={props.required}\n />\n </div>\n </div>\n )}\n <div className=\"flex items-center justify-between border-t p-3\">\n <p className={clx(\"text-ui-fg-subtle txt-compact-small-plus\")}>\n <span className=\"text-ui-fg-muted\">\n {translations?.range ?? \"Range\"}:\n </span>{\" \"}\n {displayRange}\n </p>\n <div className=\"flex items-center gap-x-2\">\n <Button\n size=\"small\"\n variant=\"secondary\"\n type=\"button\"\n onClick={onCancel}\n >\n {translations?.cancel ?? \"Cancel\"}\n </Button>\n <Button\n size=\"small\"\n variant=\"primary\"\n type=\"button\"\n onClick={onApply}\n >\n {translations?.apply ?? \"Apply\"}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\n/**\n * @interface\n *\n * @prop presets - Provide selectable preset configurations.\n * @prop defaultValue - The date selected by default.\n * @prop value - The selected date.\n * @prop onChange - A function to handle the change in the selected date.\n */\ntype DatePickerProps = (\n | {\n mode?: \"single\"\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n }\n | {\n mode: \"range\"\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n }\n) &\n PickerProps\n\nconst validatePresets = (\n presets: DateRangePreset[] | DatePreset[],\n rules: PickerProps\n) => {\n const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules\n\n if (presets && presets.length > 0) {\n const fromYearToUse = fromYear\n const toYearToUse = toYear\n\n presets.forEach((preset) => {\n if (\"date\" in preset) {\n const presetYear = preset.date.getFullYear()\n\n if (fromYear && presetYear < fromYear) {\n throw new Error(\n `Preset ${preset.label} is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (toYear && presetYear > toYear) {\n throw new Error(\n `Preset ${preset.label} is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is before fromMonth ${fromMonth}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is after toMonth ${toMonth}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is before fromDay ${fromDay}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n\n if (\"dateRange\" in preset) {\n const presetFromYear = preset.dateRange.from?.getFullYear()\n const presetToYear = preset.dateRange.to?.getFullYear()\n\n if (presetFromYear && fromYear && presetFromYear < fromYear) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (presetToYear && toYear && presetToYear > toYear) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.dateRange.from?.getMonth()\n\n if (presetMonth && presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromMonth ${format(\n fromMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.dateRange.to?.getMonth()\n\n if (presetMonth && presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toMonth ${format(\n toMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.dateRange.from?.getDate()\n\n if (presetDay && presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${\n preset.dateRange.from\n }'s 'from' is before fromDay ${format(fromDay, \"MMM dd, yyyy\")}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.dateRange.to?.getDate()\n\n if (presetDay && presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n })\n }\n}\n\n/**\n * This component is based on the [Calendar](https://docs.medusajs.com/ui/components/calendar)\n * component and [Radix UI Popover](https://www.radix-ui.com/primitives/docs/components/popover).\n */\nconst DatePicker = ({\n /**\n * The date picker's mode.\n */\n mode = \"single\",\n ...props\n}: DatePickerProps) => {\n if (props.presets) {\n validatePresets(props.presets, props)\n }\n\n if (mode === \"single\") {\n return <SingleDatePicker {...(props as SingleProps)} />\n }\n\n return <RangeDatePicker {...(props as RangeProps)} />\n}\n\nexport { DatePicker }\n"]}
1
+ {"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../../../src/components/date-picker/date-picker.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\"\n\nimport { Time } from \"@internationalized/date\"\nimport { Calendar as CalendarIcon, Minus } from \"@medusajs/icons\"\nimport * as Primitives from \"@radix-ui/react-popover\"\nimport { TimeValue } from \"@react-aria/datepicker\"\nimport { format, type Locale } from \"date-fns\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { Calendar as CalendarPrimitive } from \"@/components/calendar\"\nimport { TimeInput } from \"@/components/time-input\"\nimport type { DateRange } from \"@/types\"\nimport { clx } from \"@/utils/clx\"\nimport { isBrowserLocaleClockType24h } from \"@/utils/is-browser-locale-hour-cycle-24h\"\nimport { cva } from \"cva\"\n\nconst displayVariants = cva({\n base: clx(\n \"text-ui-fg-base bg-ui-bg-field transition-fg shadow-buttons-neutral flex w-full items-center gap-x-2 rounded-md outline-none\",\n \"hover:bg-ui-bg-field-hover\",\n \"focus-visible:shadow-borders-interactive-with-active data-[state=open]:shadow-borders-interactive-with-active\",\n \"disabled:bg-ui-bg-disabled disabled:text-ui-fg-disabled disabled:shadow-buttons-neutral\",\n \"aria-[invalid=true]:!shadow-borders-error\"\n ),\n variants: {\n size: {\n base: \"txt-compact-small h-8 px-2 py-1.5\",\n small: \"txt-compact-small h-7 px-2 py-1\",\n },\n },\n defaultVariants: {\n size: \"base\",\n },\n})\n\ninterface DisplayProps extends React.ComponentProps<\"button\"> {\n placeholder?: string\n size?: \"small\" | \"base\"\n}\n\nconst Display = React.forwardRef<HTMLButtonElement, DisplayProps>(\n (\n {\n className,\n children,\n /**\n * Placeholder of the date picker's input.\n */\n placeholder,\n /**\n * The size of the date picker's input.\n */\n size = \"base\",\n ...props\n }: DisplayProps,\n ref\n ) => {\n return (\n <Primitives.Trigger asChild>\n <button\n ref={ref}\n className={clx(displayVariants({ size }), className)}\n {...props}\n >\n <CalendarIcon className=\"text-ui-fg-muted\" />\n <span className=\"flex-1 overflow-hidden text-ellipsis whitespace-nowrap text-left\">\n {children ? (\n children\n ) : placeholder ? (\n <span className=\"text-ui-fg-muted\">{placeholder}</span>\n ) : null}\n </span>\n </button>\n </Primitives.Trigger>\n )\n }\n)\nDisplay.displayName = \"DatePicker.Display\"\n\nconst Flyout = React.forwardRef<\n React.ElementRef<typeof Primitives.Content>,\n React.ComponentProps<typeof Primitives.Content>\n>(({ className, children, ...props }, ref) => {\n return (\n <Primitives.Portal>\n <Primitives.Content\n ref={ref}\n sideOffset={8}\n align=\"center\"\n className={clx(\n \"txt-compact-small shadow-elevation-flyout bg-ui-bg-base w-fit rounded-lg\",\n \"animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n >\n {children}\n </Primitives.Content>\n </Primitives.Portal>\n )\n})\nFlyout.displayName = \"DatePicker.Flyout\"\n\ninterface Preset {\n /**\n * The preset's label.\n */\n label: string\n}\n\ninterface DatePreset extends Preset {\n /**\n * The preset's selected date.\n */\n date: Date\n}\n\ninterface DateRangePreset extends Preset {\n /**\n * The preset's selected date range.\n */\n dateRange: DateRange\n}\n\ntype PresetContainerProps<TPreset extends Preset, TValue> = {\n presets: TPreset[] | TPreset[]\n onSelect: (value: TValue) => void\n currentValue?: TValue\n}\n\nconst PresetContainer = <TPreset extends Preset, TValue>({\n /**\n * Selectable preset configurations.\n */\n presets,\n /**\n * A function that handles the event when a preset is selected.\n */\n onSelect,\n /**\n * The currently selected preset.\n */\n currentValue,\n}: PresetContainerProps<TPreset, TValue>) => {\n const isDateRangePresets = (preset: any): preset is DateRangePreset => {\n return \"dateRange\" in preset\n }\n\n const isDatePresets = (preset: any): preset is DatePreset => {\n return \"date\" in preset\n }\n\n const handleClick = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n onSelect(preset.dateRange as TValue)\n } else if (isDatePresets(preset)) {\n onSelect(preset.date as TValue)\n }\n }\n\n const compareDates = (date1: Date, date2: Date) => {\n return (\n date1.getDate() === date2.getDate() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getFullYear() === date2.getFullYear()\n )\n }\n\n const compareRanges = (range1: DateRange, range2: DateRange) => {\n const from1 = range1.from\n const from2 = range2.from\n\n let equalFrom = false\n\n if (from1 && from2) {\n const sameFrom = compareDates(from1, from2)\n\n if (sameFrom) {\n equalFrom = true\n }\n }\n\n const to1 = range1.to\n const to2 = range2.to\n\n let equalTo = false\n\n if (to1 && to2) {\n const sameTo = compareDates(to1, to2)\n\n if (sameTo) {\n equalTo = true\n }\n }\n\n return equalFrom && equalTo\n }\n\n const matchesCurrent = (preset: TPreset) => {\n if (isDateRangePresets(preset)) {\n const value = currentValue as DateRange | undefined\n\n return value && compareRanges(value, preset.dateRange)\n } else if (isDatePresets(preset)) {\n const value = currentValue as Date | undefined\n\n return value && compareDates(value, preset.date)\n }\n\n return false\n }\n\n return (\n <ul className=\"flex flex-col items-start\">\n {presets.map((preset, index) => {\n return (\n <li key={index} className=\"w-full\">\n <button\n className={clx(\n \"txt-compact-small-plus w-full overflow-hidden text-ellipsis whitespace-nowrap rounded-md p-2 text-left\",\n \"text-ui-fg-subtle hover:bg-ui-bg-base-hover outline-none transition-all\",\n \"focus-visible:bg-ui-bg-base-hover\",\n {\n \"!bg-ui-bg-base-pressed\": matchesCurrent(preset),\n }\n )}\n onClick={() => handleClick(preset)}\n aria-label={`Select ${preset.label}`}\n >\n {preset.label}\n </button>\n </li>\n )\n })}\n </ul>\n )\n}\nPresetContainer.displayName = \"DatePicker.PresetContainer\"\n\nconst formatDate = (date: Date, includeTime?: boolean) => {\n const usesAmPm = !isBrowserLocaleClockType24h()\n\n if (includeTime) {\n if (usesAmPm) {\n return format(date, \"MMM d, yyyy h:mm a\")\n }\n\n return format(date, \"MMM d, yyyy HH:mm\")\n }\n\n return format(date, \"MMM d, yyyy\")\n}\n\ntype CalendarProps = {\n /**\n * The year to start showing the dates from.\n */\n fromYear?: number\n /**\n * The year to show dates to.\n */\n toYear?: number\n /**\n * The month to start showing dates from.\n */\n fromMonth?: Date\n /**\n * The month to show dates to.\n */\n toMonth?: Date\n /**\n * The day to start showing dates from.\n */\n fromDay?: Date\n /**\n * The day to show dates to.\n */\n toDay?: Date\n /**\n * The date to show dates from.\n */\n fromDate?: Date\n /**\n * The date to show dates to.\n */\n toDate?: Date\n /**\n * The locale to use for formatting dates. To change the locale pass a date-fns locale object.\n */\n locale?: Locale\n}\n\ntype Translations = {\n cancel?: string\n apply?: string\n start?: string\n end?: string\n range?: string\n}\n\ninterface PickerProps extends CalendarProps {\n /**\n * The class name to apply on the date picker.\n */\n className?: string\n /**\n * Whether the date picker's input is disabled.\n */\n disabled?: boolean\n /**\n * Whether the date picker's input is required.\n */\n required?: boolean\n /**\n * The date picker's placeholder.\n */\n placeholder?: string\n /**\n * The date picker's size.\n */\n size?: \"small\" | \"base\"\n /**\n * Whether to show a time picker along with the date picker.\n */\n showTimePicker?: boolean\n /**\n * Translation keys for the date picker. Use this to localize the date picker.\n */\n translations?: Translations\n id?: string\n \"aria-invalid\"?: boolean\n \"aria-label\"?: string\n \"aria-labelledby\"?: string\n \"aria-required\"?: boolean\n}\n\ninterface SingleProps extends PickerProps {\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n}\n\nconst SingleDatePicker = ({\n defaultValue,\n value,\n size = \"base\",\n onChange,\n presets,\n showTimePicker,\n disabled,\n className,\n placeholder,\n translations,\n ...props\n}: SingleProps) => {\n const [open, setOpen] = React.useState(false)\n const [date, setDate] = React.useState<Date | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(date)\n\n const [time, setTime] = React.useState<TimeValue>(\n value\n ? new Time(value.getHours(), value.getMinutes())\n : defaultValue\n ? new Time(defaultValue.getHours(), defaultValue.getMinutes())\n : new Time(0, 0)\n )\n\n const initialDate = React.useMemo(() => {\n return date\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the date when the value changes.\n */\n React.useEffect(() => {\n setDate(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (date) {\n setMonth(date)\n }\n }, [date])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(date)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onCancel = () => {\n setDate(initialDate)\n setTime(\n initialDate\n ? new Time(initialDate.getHours(), initialDate.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onDateChange = (date: Date | undefined) => {\n const newDate = date\n\n if (showTimePicker) {\n /**\n * If the time is cleared, and the date is\n * changed then we want to reset the time.\n */\n if (newDate && !time) {\n setTime(new Time(0, 0))\n }\n\n /**\n * If the time is set, and the date is changed\n * then we want to update the date with the\n * time.\n */\n if (newDate && time) {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n }\n\n setDate(newDate)\n }\n\n const onTimeChange = (time: TimeValue) => {\n setTime(time)\n\n if (!date) {\n return\n }\n\n const newDate = new Date(date.getTime())\n\n if (!time) {\n /**\n * When a segment of the time input is cleared,\n * it will return `null` as the value is no longer\n * a valid time. In this case, we want to set the\n * time to for the date, effectivly resetting the\n * input field.\n */\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setDate(newDate)\n }\n\n const formattedDate = React.useMemo(() => {\n if (!date) {\n return null\n }\n\n return formatDate(date, showTimePicker)\n }, [date, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(date)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder={placeholder}\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {formattedDate}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={date}\n presets={presets}\n onSelect={onDateChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"single\"\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n disabled={disabled}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base border-t p-3\">\n <TimeInput\n aria-label=\"Time\"\n onChange={onTimeChange}\n isDisabled={!date}\n value={time}\n isRequired={props.required}\n />\n </div>\n )}\n <div className=\"border-ui-border-base flex items-center gap-x-2 border-t p-3\">\n <Button\n variant=\"secondary\"\n size=\"small\"\n className=\"w-full\"\n type=\"button\"\n onClick={onCancel}\n >\n {translations?.cancel ?? \"Cancel\"}\n </Button>\n <Button\n variant=\"primary\"\n size=\"small\"\n className=\"w-full\"\n type=\"button\"\n onClick={onApply}\n >\n {translations?.apply ?? \"Apply\"}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\ninterface RangeProps extends PickerProps {\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n}\n\nconst RangeDatePicker = ({\n /**\n * The date range selected by default.\n */\n defaultValue,\n /**\n * The selected date range.\n */\n value,\n /**\n * A function to handle the change in the selected date range.\n */\n onChange,\n size = \"base\",\n showTimePicker,\n /**\n * Provide selectable preset configurations.\n */\n presets,\n disabled,\n className,\n placeholder,\n translations,\n ...props\n}: RangeProps) => {\n const [open, setOpen] = React.useState(false)\n const [range, setRange] = React.useState<DateRange | undefined>(\n value ?? defaultValue ?? undefined\n )\n const [month, setMonth] = React.useState<Date | undefined>(range?.from)\n\n const [startTime, setStartTime] = React.useState<TimeValue>(\n value?.from\n ? new Time(value.from.getHours(), value.from.getMinutes())\n : defaultValue?.from\n ? new Time(defaultValue.from.getHours(), defaultValue.from.getMinutes())\n : new Time(0, 0)\n )\n const [endTime, setEndTime] = React.useState<TimeValue>(\n value?.to\n ? new Time(value.to.getHours(), value.to.getMinutes())\n : defaultValue?.to\n ? new Time(defaultValue.to.getHours(), defaultValue.to.getMinutes())\n : new Time(0, 0)\n )\n\n const initialRange = React.useMemo(() => {\n return range\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n /**\n * Update the range when the value changes.\n */\n React.useEffect(() => {\n setRange(value ?? defaultValue ?? undefined)\n }, [value, defaultValue])\n\n React.useEffect(() => {\n if (range) {\n setMonth(range.from)\n }\n }, [range])\n\n React.useEffect(() => {\n if (!open) {\n setMonth(range?.from)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open])\n\n const onRangeChange = (range: DateRange | undefined) => {\n const newRange = range\n\n if (showTimePicker) {\n if (newRange?.from && !startTime) {\n setStartTime(new Time(0, 0))\n }\n\n if (newRange?.to && !endTime) {\n setEndTime(new Time(0, 0))\n }\n\n if (newRange?.from && startTime) {\n newRange.from.setHours(startTime.hour)\n newRange.from.setMinutes(startTime.minute)\n }\n\n if (newRange?.to && endTime) {\n newRange.to.setHours(endTime.hour)\n newRange.to.setMinutes(endTime.minute)\n }\n }\n\n setRange(newRange)\n }\n\n const onCancel = () => {\n setRange(initialRange)\n setStartTime(\n initialRange?.from\n ? new Time(initialRange.from.getHours(), initialRange.from.getMinutes())\n : new Time(0, 0)\n )\n setEndTime(\n initialRange?.to\n ? new Time(initialRange.to.getHours(), initialRange.to.getMinutes())\n : new Time(0, 0)\n )\n setOpen(false)\n }\n\n const onOpenChange = (open: boolean) => {\n if (!open) {\n onCancel()\n }\n\n setOpen(open)\n }\n\n const onTimeChange = (time: TimeValue, pos: \"start\" | \"end\") => {\n switch (pos) {\n case \"start\":\n setStartTime(time)\n break\n case \"end\":\n setEndTime(time)\n break\n }\n\n if (!range) {\n return\n }\n\n if (pos === \"start\") {\n if (!range.from) {\n return\n }\n\n const newDate = new Date(range.from.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n from: newDate,\n })\n }\n\n if (pos === \"end\") {\n if (!range.to) {\n return\n }\n\n const newDate = new Date(range.to.getTime())\n\n if (!time) {\n newDate.setHours(0)\n newDate.setMinutes(0)\n } else {\n newDate.setHours(time.hour)\n newDate.setMinutes(time.minute)\n }\n\n setRange({\n ...range,\n to: newDate,\n })\n }\n }\n\n const displayRange = React.useMemo(() => {\n if (!range) {\n return null\n }\n\n return `${range.from ? formatDate(range.from, showTimePicker) : \"\"} - ${\n range.to ? formatDate(range.to, showTimePicker) : \"\"\n }`\n }, [range, showTimePicker])\n\n const onApply = () => {\n setOpen(false)\n onChange?.(range)\n }\n\n return (\n <Primitives.Root open={open} onOpenChange={onOpenChange}>\n <Display\n placeholder={placeholder}\n disabled={disabled}\n className={className}\n aria-required={props.required || props[\"aria-required\"]}\n aria-invalid={props[\"aria-invalid\"]}\n aria-label={props[\"aria-label\"]}\n aria-labelledby={props[\"aria-labelledby\"]}\n size={size}\n >\n {displayRange}\n </Display>\n <Flyout>\n <div className=\"flex\">\n <div className=\"flex items-start\">\n {presets && presets.length > 0 && (\n <div className=\"relative h-full w-[160px] border-r\">\n <div className=\"absolute inset-0 overflow-y-scroll p-3\">\n <PresetContainer\n currentValue={range}\n presets={presets}\n onSelect={onRangeChange}\n />\n </div>\n </div>\n )}\n <div>\n <CalendarPrimitive\n mode=\"range\"\n selected={range}\n onSelect={onRangeChange}\n month={month}\n onMonthChange={setMonth}\n numberOfMonths={2}\n disabled={disabled}\n classNames={{\n months: \"flex flex-row divide-x divide-ui-border-base\",\n }}\n {...props}\n />\n {showTimePicker && (\n <div className=\"border-ui-border-base flex items-center justify-evenly gap-x-3 border-t p-3\">\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">\n {translations?.start ?? \"Start\"}:\n </span>\n <TimeInput\n value={startTime}\n onChange={(v) => onTimeChange(v, \"start\")}\n aria-label=\"Start date time\"\n isDisabled={!range?.from}\n isRequired={props.required}\n />\n </div>\n <Minus className=\"text-ui-fg-muted\" />\n <div className=\"flex flex-1 items-center gap-x-2\">\n <span className=\"text-ui-fg-subtle\">\n {translations?.end ?? \"End\"}:\n </span>\n <TimeInput\n value={endTime}\n onChange={(v) => onTimeChange(v, \"end\")}\n aria-label=\"End date time\"\n isDisabled={!range?.to}\n isRequired={props.required}\n />\n </div>\n </div>\n )}\n <div className=\"flex items-center justify-between border-t p-3\">\n <p className={clx(\"text-ui-fg-subtle txt-compact-small-plus\")}>\n <span className=\"text-ui-fg-muted\">\n {translations?.range ?? \"Range\"}:\n </span>{\" \"}\n {displayRange}\n </p>\n <div className=\"flex items-center gap-x-2\">\n <Button\n size=\"small\"\n variant=\"secondary\"\n type=\"button\"\n onClick={onCancel}\n >\n {translations?.cancel ?? \"Cancel\"}\n </Button>\n <Button\n size=\"small\"\n variant=\"primary\"\n type=\"button\"\n onClick={onApply}\n >\n {translations?.apply ?? \"Apply\"}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </Flyout>\n </Primitives.Root>\n )\n}\n\n/**\n * @interface\n *\n * @prop presets - Provide selectable preset configurations.\n * @prop defaultValue - The date selected by default.\n * @prop value - The selected date.\n * @prop onChange - A function to handle the change in the selected date.\n */\ntype DatePickerProps = (\n | {\n mode?: \"single\"\n presets?: DatePreset[]\n defaultValue?: Date\n value?: Date\n onChange?: (date: Date | undefined) => void\n }\n | {\n mode: \"range\"\n presets?: DateRangePreset[]\n defaultValue?: DateRange\n value?: DateRange\n onChange?: (dateRange: DateRange | undefined) => void\n }\n) &\n PickerProps\n\nconst validatePresets = (\n presets: DateRangePreset[] | DatePreset[],\n rules: PickerProps\n) => {\n const { toYear, fromYear, fromMonth, toMonth, fromDay, toDay } = rules\n\n if (presets && presets.length > 0) {\n const fromYearToUse = fromYear\n const toYearToUse = toYear\n\n presets.forEach((preset) => {\n if (\"date\" in preset) {\n const presetYear = preset.date.getFullYear()\n\n if (fromYear && presetYear < fromYear) {\n throw new Error(\n `Preset ${preset.label} is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (toYear && presetYear > toYear) {\n throw new Error(\n `Preset ${preset.label} is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is before fromMonth ${fromMonth}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.date.getMonth()\n\n if (presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label} is after toMonth ${toMonth}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is before fromDay ${fromDay}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.date.getDate()\n\n if (presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label} is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n\n if (\"dateRange\" in preset) {\n const presetFromYear = preset.dateRange.from?.getFullYear()\n const presetToYear = preset.dateRange.to?.getFullYear()\n\n if (presetFromYear && fromYear && presetFromYear < fromYear) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromYear ${fromYearToUse}.`\n )\n }\n\n if (presetToYear && toYear && presetToYear > toYear) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toYear ${toYearToUse}.`\n )\n }\n\n if (fromMonth) {\n const presetMonth = preset.dateRange.from?.getMonth()\n\n if (presetMonth && presetMonth < fromMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'from' is before fromMonth ${format(\n fromMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (toMonth) {\n const presetMonth = preset.dateRange.to?.getMonth()\n\n if (presetMonth && presetMonth > toMonth.getMonth()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toMonth ${format(\n toMonth,\n \"MMM, yyyy\"\n )}.`\n )\n }\n }\n\n if (fromDay) {\n const presetDay = preset.dateRange.from?.getDate()\n\n if (presetDay && presetDay < fromDay.getDate()) {\n throw new Error(\n `Preset ${\n preset.dateRange.from\n }'s 'from' is before fromDay ${format(fromDay, \"MMM dd, yyyy\")}.`\n )\n }\n }\n\n if (toDay) {\n const presetDay = preset.dateRange.to?.getDate()\n\n if (presetDay && presetDay > toDay.getDate()) {\n throw new Error(\n `Preset ${preset.label}'s 'to' is after toDay ${format(\n toDay,\n \"MMM dd, yyyy\"\n )}.`\n )\n }\n }\n }\n })\n }\n}\n\n/**\n * This component is based on the [Calendar](https://docs.medusajs.com/ui/components/calendar)\n * component and [Radix UI Popover](https://www.radix-ui.com/primitives/docs/components/popover).\n */\nconst DatePicker = ({\n /**\n * The date picker's mode.\n */\n mode = \"single\",\n ...props\n}: DatePickerProps) => {\n if (props.presets) {\n validatePresets(props.presets, props)\n }\n\n if (mode === \"single\") {\n return <SingleDatePicker {...(props as SingleProps)} />\n }\n\n return <RangeDatePicker {...(props as RangeProps)} />\n}\n\nexport { DatePicker }\n"]}
@@ -1,7 +1,7 @@
1
1
  import { type VariantProps } from "cva";
2
2
  import * as React from "react";
3
3
  declare const headingVariants: (props?: ({
4
- level?: "h2" | "h3" | "h1" | undefined;
4
+ level?: "h1" | "h2" | "h3" | undefined;
5
5
  } & ({
6
6
  class?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any | {
7
7
  [x: string]: any;
@@ -7,7 +7,7 @@ const cva_1 = require("cva");
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const clx_1 = require("../../utils/clx");
9
9
  const hintVariants = (0, cva_1.cva)({
10
- base: "txt-small inline-flex items-center gap-x-2",
10
+ base: "txt-small inline-flex items-start gap-x-2",
11
11
  variants: {
12
12
  variant: {
13
13
  info: "text-ui-fg-subtle",
@@ -1 +1 @@
1
- {"version":3,"file":"hint.js","sourceRoot":"","sources":["../../../../src/components/hint/hint.tsx"],"names":[],"mappings":";;;;AAAA,2CAAwD;AACxD,6BAAuC;AACvC,qDAA8B;AAE9B,yCAAqC;AAErC,MAAM,YAAY,GAAG,IAAA,SAAG,EAAC;IACvB,IAAI,EAAE,4CAA4C;IAClD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,kBAAkB;SAC1B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM;KAChB;CACF,CAAC,CAAA;AAMF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,CACE,EACE,SAAS;AACT;;GAEG;AACH,OAAO,GAAG,MAAM,EAChB,QAAQ,EACR,GAAG,KAAK,EACE,EACZ,GAAG,EACH,EAAE;IACF,OAAO,CACL,8BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK;QAER,OAAO,KAAK,OAAO,IAAI,oBAAC,8BAAsB,OAAG;QACjD,QAAQ,CACJ,CACR,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,oBAAI;AAFb,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA","sourcesContent":["import { ExclamationCircleSolid } from \"@medusajs/icons\"\nimport { VariantProps, cva } from \"cva\"\nimport * as React from \"react\"\n\nimport { clx } from \"../../utils/clx\"\n\nconst hintVariants = cva({\n base: \"txt-small inline-flex items-center gap-x-2\",\n variants: {\n variant: {\n info: \"text-ui-fg-subtle\",\n error: \"text-ui-fg-error\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n})\n\ninterface HintProps\n extends VariantProps<typeof hintVariants>,\n React.ComponentPropsWithoutRef<\"span\"> {}\n\nconst Hint = React.forwardRef<HTMLSpanElement, HintProps>(\n (\n {\n className,\n /**\n * The hint's style.\n */\n variant = \"info\",\n children,\n ...props\n }: HintProps,\n ref\n ) => {\n return (\n <span\n ref={ref}\n className={clx(hintVariants({ variant }), className)}\n {...props}\n >\n {variant === \"error\" && <ExclamationCircleSolid />}\n {children}\n </span>\n )\n }\n)\nHint.displayName = \"Hint\"\n\nexport { Hint }\n"]}
1
+ {"version":3,"file":"hint.js","sourceRoot":"","sources":["../../../../src/components/hint/hint.tsx"],"names":[],"mappings":";;;;AAAA,2CAAwD;AACxD,6BAAuC;AACvC,qDAA8B;AAE9B,yCAAqC;AAErC,MAAM,YAAY,GAAG,IAAA,SAAG,EAAC;IACvB,IAAI,EAAE,2CAA2C;IACjD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,kBAAkB;SAC1B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,MAAM;KAChB;CACF,CAAC,CAAA;AAMF,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,CACE,EACE,SAAS;AACT;;GAEG;AACH,OAAO,GAAG,MAAM,EAChB,QAAQ,EACR,GAAG,KAAK,EACE,EACZ,GAAG,EACH,EAAE;IACF,OAAO,CACL,8BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAA,SAAG,EAAC,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK;QAER,OAAO,KAAK,OAAO,IAAI,oBAAC,8BAAsB,OAAG;QACjD,QAAQ,CACJ,CACR,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,oBAAI;AAFb,IAAI,CAAC,WAAW,GAAG,MAAM,CAAA","sourcesContent":["import { ExclamationCircleSolid } from \"@medusajs/icons\"\nimport { VariantProps, cva } from \"cva\"\nimport * as React from \"react\"\n\nimport { clx } from \"../../utils/clx\"\n\nconst hintVariants = cva({\n base: \"txt-small inline-flex items-start gap-x-2\",\n variants: {\n variant: {\n info: \"text-ui-fg-subtle\",\n error: \"text-ui-fg-error\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n})\n\ninterface HintProps\n extends VariantProps<typeof hintVariants>,\n React.ComponentPropsWithoutRef<\"span\"> {}\n\nconst Hint = React.forwardRef<HTMLSpanElement, HintProps>(\n (\n {\n className,\n /**\n * The hint's style.\n */\n variant = \"info\",\n children,\n ...props\n }: HintProps,\n ref\n ) => {\n return (\n <span\n ref={ref}\n className={clx(hintVariants({ variant }), className)}\n {...props}\n >\n {variant === \"error\" && <ExclamationCircleSolid />}\n {children}\n </span>\n )\n }\n)\nHint.displayName = \"Hint\"\n\nexport { Hint }\n"]}
@@ -2,7 +2,7 @@ import { VariantProps } from "cva";
2
2
  import * as React from "react";
3
3
  declare const iconButtonVariants: (props?: ({
4
4
  variant?: "primary" | "transparent" | undefined;
5
- size?: "small" | "base" | "large" | "xlarge" | undefined;
5
+ size?: "2xsmall" | "xsmall" | "small" | "base" | "large" | "xlarge" | undefined;
6
6
  } & ({
7
7
  class?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | any | {
8
8
  [x: string]: any;
@@ -15,6 +15,8 @@ const iconButtonVariants = (0, cva_1.cva)({
15
15
  transparent: (0, clx_1.clx)("text-ui-fg-subtle bg-ui-button-transparent", "hover:bg-ui-button-transparent-hover", "active:bg-ui-button-transparent-pressed", "focus-visible:shadow-buttons-neutral-focus focus-visible:bg-ui-bg-base", "disabled:!bg-transparent disabled:!shadow-none"),
16
16
  },
17
17
  size: {
18
+ "2xsmall": "h-5 w-5",
19
+ xsmall: "h-6 w-6 p-1",
18
20
  small: "h-7 w-7 p-1",
19
21
  base: "h-8 w-8 p-1.5",
20
22
  large: "h-10 w-10 p-2.5",
@@ -1 +1 @@
1
- {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/icon-button/icon-button.tsx"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,qDAA2C;AAC3C,6BAAuC;AACvC,qDAA8B;AAE9B,qCAAiC;AAEjC,MAAM,kBAAkB,GAAG,IAAA,SAAG,EAAC;IAC7B,IAAI,EAAE,IAAA,SAAG,EACP,8GAA8G,EAC9G,+GAA+G,CAChH;IACD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,IAAA,SAAG,EACV,6FAA6F,EAC7F,4EAA4E,EAC5E,kFAAkF,EAClF,4CAA4C,EAC5C,iDAAiD,CAClD;YACD,WAAW,EAAE,IAAA,SAAG,EACd,4CAA4C,EAC5C,sCAAsC,EACtC,yCAAyC,EACzC,wEAAwE,EACxE,gDAAgD,CACjD;SACF;QACD,IAAI,EAAE;YACJ,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,iBAAiB;SAC1B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;KACb;CACF,CAAC,CAAA;AA+EmB,gDAAkB;AAtEvC;;GAEG;AACH,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CACE;AACE;;GAEG;AACH,OAAO,GAAG,SAAS;AACnB;;GAEG;AACH,IAAI,GAAG,MAAM;AACb;;;GAGG;AACH,OAAO,GAAG,KAAK,EACf,SAAS,EACT,QAAQ;AACR;;GAEG;AACH,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,GAAG,KAAK,EACQ,EAClB,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE3C;;;;OAIG;IACH,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,SAAS,EAAE;YACb,OAAO,CACL,8BAAM,SAAS,EAAC,qBAAqB;gBACnC,6BACE,SAAS,EAAE,IAAA,SAAG,EACZ,gFAAgF,CACjF;oBAED,oBAAC,eAAO,IAAC,SAAS,EAAC,cAAc,GAAG,CAChC;gBACL,QAAQ,CACJ,CACR,CAAA;SACF;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,KACJ,KAAK,EACT,SAAS,EAAE,IAAA,SAAG,EAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAChE,QAAQ,EAAE,QAAQ,IAAI,SAAS,IAE9B,WAAW,EAAE,CACJ,CACb,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,gCAAU;AAFnB,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA","sourcesContent":["import { Spinner } from \"@medusajs/icons\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { VariantProps, cva } from \"cva\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst iconButtonVariants = cva({\n base: clx(\n \"transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none\",\n \"disabled:bg-ui-bg-disabled disabled:shadow-buttons-neutral disabled:text-ui-fg-disabled disabled:after:hidden\"\n ),\n variants: {\n variant: {\n primary: clx(\n \"shadow-buttons-neutral text-ui-fg-subtle bg-ui-button-neutral after:button-neutral-gradient\",\n \"hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient\",\n \"active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient\",\n \"focus-visible:shadow-buttons-neutral-focus\",\n \"after:absolute after:inset-0 after:content-['']\"\n ),\n transparent: clx(\n \"text-ui-fg-subtle bg-ui-button-transparent\",\n \"hover:bg-ui-button-transparent-hover\",\n \"active:bg-ui-button-transparent-pressed\",\n \"focus-visible:shadow-buttons-neutral-focus focus-visible:bg-ui-bg-base\",\n \"disabled:!bg-transparent disabled:!shadow-none\"\n ),\n },\n size: {\n small: \"h-7 w-7 p-1\",\n base: \"h-8 w-8 p-1.5\",\n large: \"h-10 w-10 p-2.5\",\n xlarge: \"h-12 w-12 p-3.5\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"base\",\n },\n})\n\ninterface IconButtonProps\n extends React.ComponentPropsWithoutRef<\"button\">,\n VariantProps<typeof iconButtonVariants> {\n asChild?: boolean\n isLoading?: boolean\n}\n\n/**\n * This component is based on the `button` element and supports all of its props\n */\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n /**\n * The button's style.\n */\n variant = \"primary\",\n /**\n * The button's size.\n */\n size = \"base\",\n /**\n * Whether to remove the wrapper `button` element and use the\n * passed child element instead.\n */\n asChild = false,\n className,\n children,\n /**\n * Whether to show a loading spinner.\n */\n isLoading = false,\n disabled,\n ...props\n }: IconButtonProps,\n ref\n ) => {\n const Component = asChild ? Slot : \"button\"\n\n /**\n * In the case of a button where asChild is true, and isLoading is true, we ensure that\n * only on element is passed as a child to the Slot component. This is because the Slot\n * component only accepts a single child.\n */\n const renderInner = () => {\n if (isLoading) {\n return (\n <span className=\"pointer-events-none\">\n <div\n className={clx(\n \"bg-ui-bg-disabled absolute inset-0 flex items-center justify-center rounded-md\"\n )}\n >\n <Spinner className=\"animate-spin\" />\n </div>\n {children}\n </span>\n )\n }\n\n return children\n }\n\n return (\n <Component\n ref={ref}\n {...props}\n className={clx(iconButtonVariants({ variant, size }), className)}\n disabled={disabled || isLoading}\n >\n {renderInner()}\n </Component>\n )\n }\n)\nIconButton.displayName = \"IconButton\"\n\nexport { IconButton, iconButtonVariants }\n"]}
1
+ {"version":3,"file":"icon-button.js","sourceRoot":"","sources":["../../../../src/components/icon-button/icon-button.tsx"],"names":[],"mappings":";;;;AAAA,2CAAyC;AACzC,qDAA2C;AAC3C,6BAAuC;AACvC,qDAA8B;AAE9B,qCAAiC;AAEjC,MAAM,kBAAkB,GAAG,IAAA,SAAG,EAAC;IAC7B,IAAI,EAAE,IAAA,SAAG,EACP,8GAA8G,EAC9G,+GAA+G,CAChH;IACD,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,IAAA,SAAG,EACV,6FAA6F,EAC7F,4EAA4E,EAC5E,kFAAkF,EAClF,4CAA4C,EAC5C,iDAAiD,CAClD;YACD,WAAW,EAAE,IAAA,SAAG,EACd,4CAA4C,EAC5C,sCAAsC,EACtC,yCAAyC,EACzC,wEAAwE,EACxE,gDAAgD,CACjD;SACF;QACD,IAAI,EAAE;YACJ,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,aAAa;YACpB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,iBAAiB;SAC1B;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;KACb;CACF,CAAC,CAAA;AA+EmB,gDAAkB;AAtEvC;;GAEG;AACH,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CACE;AACE;;GAEG;AACH,OAAO,GAAG,SAAS;AACnB;;GAEG;AACH,IAAI,GAAG,MAAM;AACb;;;GAGG;AACH,OAAO,GAAG,KAAK,EACf,SAAS,EACT,QAAQ;AACR;;GAEG;AACH,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,GAAG,KAAK,EACQ,EAClB,GAAG,EACH,EAAE;IACF,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAE3C;;;;OAIG;IACH,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,SAAS,EAAE;YACb,OAAO,CACL,8BAAM,SAAS,EAAC,qBAAqB;gBACnC,6BACE,SAAS,EAAE,IAAA,SAAG,EACZ,gFAAgF,CACjF;oBAED,oBAAC,eAAO,IAAC,SAAS,EAAC,cAAc,GAAG,CAChC;gBACL,QAAQ,CACJ,CACR,CAAA;SACF;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;IAED,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,GAAG,KACJ,KAAK,EACT,SAAS,EAAE,IAAA,SAAG,EAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,EAChE,QAAQ,EAAE,QAAQ,IAAI,SAAS,IAE9B,WAAW,EAAE,CACJ,CACb,CAAA;AACH,CAAC,CACF,CAAA;AAGQ,gCAAU;AAFnB,UAAU,CAAC,WAAW,GAAG,YAAY,CAAA","sourcesContent":["import { Spinner } from \"@medusajs/icons\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { VariantProps, cva } from \"cva\"\nimport * as React from \"react\"\n\nimport { clx } from \"@/utils/clx\"\n\nconst iconButtonVariants = cva({\n base: clx(\n \"transition-fg relative inline-flex w-fit items-center justify-center overflow-hidden rounded-md outline-none\",\n \"disabled:bg-ui-bg-disabled disabled:shadow-buttons-neutral disabled:text-ui-fg-disabled disabled:after:hidden\"\n ),\n variants: {\n variant: {\n primary: clx(\n \"shadow-buttons-neutral text-ui-fg-subtle bg-ui-button-neutral after:button-neutral-gradient\",\n \"hover:bg-ui-button-neutral-hover hover:after:button-neutral-hover-gradient\",\n \"active:bg-ui-button-neutral-pressed active:after:button-neutral-pressed-gradient\",\n \"focus-visible:shadow-buttons-neutral-focus\",\n \"after:absolute after:inset-0 after:content-['']\"\n ),\n transparent: clx(\n \"text-ui-fg-subtle bg-ui-button-transparent\",\n \"hover:bg-ui-button-transparent-hover\",\n \"active:bg-ui-button-transparent-pressed\",\n \"focus-visible:shadow-buttons-neutral-focus focus-visible:bg-ui-bg-base\",\n \"disabled:!bg-transparent disabled:!shadow-none\"\n ),\n },\n size: {\n \"2xsmall\": \"h-5 w-5\",\n xsmall: \"h-6 w-6 p-1\",\n small: \"h-7 w-7 p-1\",\n base: \"h-8 w-8 p-1.5\",\n large: \"h-10 w-10 p-2.5\",\n xlarge: \"h-12 w-12 p-3.5\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"base\",\n },\n})\n\ninterface IconButtonProps\n extends React.ComponentPropsWithoutRef<\"button\">,\n VariantProps<typeof iconButtonVariants> {\n asChild?: boolean\n isLoading?: boolean\n}\n\n/**\n * This component is based on the `button` element and supports all of its props\n */\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(\n (\n {\n /**\n * The button's style.\n */\n variant = \"primary\",\n /**\n * The button's size.\n */\n size = \"base\",\n /**\n * Whether to remove the wrapper `button` element and use the\n * passed child element instead.\n */\n asChild = false,\n className,\n children,\n /**\n * Whether to show a loading spinner.\n */\n isLoading = false,\n disabled,\n ...props\n }: IconButtonProps,\n ref\n ) => {\n const Component = asChild ? Slot : \"button\"\n\n /**\n * In the case of a button where asChild is true, and isLoading is true, we ensure that\n * only on element is passed as a child to the Slot component. This is because the Slot\n * component only accepts a single child.\n */\n const renderInner = () => {\n if (isLoading) {\n return (\n <span className=\"pointer-events-none\">\n <div\n className={clx(\n \"bg-ui-bg-disabled absolute inset-0 flex items-center justify-center rounded-md\"\n )}\n >\n <Spinner className=\"animate-spin\" />\n </div>\n {children}\n </span>\n )\n }\n\n return children\n }\n\n return (\n <Component\n ref={ref}\n {...props}\n className={clx(iconButtonVariants({ variant, size }), className)}\n disabled={disabled || isLoading}\n >\n {renderInner()}\n </Component>\n )\n }\n)\nIconButton.displayName = \"IconButton\"\n\nexport { IconButton, iconButtonVariants }\n"]}
@@ -22,11 +22,11 @@ const Root = React.forwardRef(({ className, ...props }, ref) => (React.createEle
22
22
  Root.displayName = "Table";
23
23
  const Row = React.forwardRef(({ className, ...props }, ref) => (React.createElement("tr", { ref: ref, className: (0, clx_1.clx)("bg-ui-bg-base hover:bg-ui-bg-base-hover border-ui-border-base transition-fg border-b", "[&_td:last-child]:pr-6 [&_th:last-child]:pr-6", "[&_td:first-child]:pl-6 [&_th:first-child]:pl-6", className), ...props })));
24
24
  Row.displayName = "Table.Row";
25
- const Cell = React.forwardRef(({ className, ...props }, ref) => (React.createElement("td", { ref: ref, className: (0, clx_1.clx)("h-12 pr-3", className), ...props })));
25
+ const Cell = React.forwardRef(({ className, ...props }, ref) => (React.createElement("td", { ref: ref, className: (0, clx_1.clx)("h-12 pr-6", className), ...props })));
26
26
  Cell.displayName = "Table.Cell";
27
27
  const Header = React.forwardRef(({ className, ...props }, ref) => (React.createElement("thead", { ref: ref, className: (0, clx_1.clx)("border-ui-border-base txt-compact-small-plus [&_tr:hover]:bg-ui-bg-base border-y", className), ...props })));
28
28
  Header.displayName = "Table.Header";
29
- const HeaderCell = React.forwardRef(({ className, ...props }, ref) => (React.createElement("th", { ref: ref, className: (0, clx_1.clx)("h-10 pr-3 text-left", className), ...props })));
29
+ const HeaderCell = React.forwardRef(({ className, ...props }, ref) => (React.createElement("th", { ref: ref, className: (0, clx_1.clx)("txt-compact-small-plus h-12 pr-6 text-left", className), ...props })));
30
30
  HeaderCell.displayName = "Table.HeaderCell";
31
31
  const Body = React.forwardRef(({ className, ...props }, ref) => (React.createElement("tbody", { ref: ref, className: (0, clx_1.clx)("border-ui-border-base border-b", className), ...props })));
32
32
  Body.displayName = "Table.Body";
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/components/table/table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Minus } from \"@medusajs/icons\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { clx } from \"@/utils/clx\"\n\n/**\n * This component is based on the table element and its various children:\n *\n * - `Table`: `table`\n * - `Table.Header`: `thead`\n * - `Table.Row`: `tr`\n * - `Table.HeaderCell`: `th`\n * - `Table.Body`: `tbody`\n * - `Table.Cell`: `td`\n *\n * Each component supports the props or attributes of its equivalent HTML element.\n */\nconst Root = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={clx(\"text-ui-fg-subtle txt-compact-small w-full\", className)}\n {...props}\n />\n))\nRoot.displayName = \"Table\"\n\nconst Row = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={clx(\n \"bg-ui-bg-base hover:bg-ui-bg-base-hover border-ui-border-base transition-fg border-b\",\n \"[&_td:last-child]:pr-6 [&_th:last-child]:pr-6\",\n \"[&_td:first-child]:pl-6 [&_th:first-child]:pl-6\",\n className\n )}\n {...props}\n />\n))\nRow.displayName = \"Table.Row\"\n\nconst Cell = React.forwardRef<\n HTMLTableCellElement,\n React.HTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td ref={ref} className={clx(\"h-12 pr-3\", className)} {...props} />\n))\nCell.displayName = \"Table.Cell\"\n\nconst Header = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={clx(\n \"border-ui-border-base txt-compact-small-plus [&_tr:hover]:bg-ui-bg-base border-y\",\n className\n )}\n {...props}\n />\n))\nHeader.displayName = \"Table.Header\"\n\nconst HeaderCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th ref={ref} className={clx(\"h-10 pr-3 text-left\", className)} {...props} />\n))\nHeaderCell.displayName = \"Table.HeaderCell\"\n\nconst Body = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={clx(\"border-ui-border-base border-b\", className)}\n {...props}\n />\n))\nBody.displayName = \"Table.Body\"\n\ninterface TablePaginationProps extends React.HTMLAttributes<HTMLDivElement> {\n count: number\n pageSize: number\n pageIndex: number\n pageCount: number\n canPreviousPage: boolean\n canNextPage: boolean\n translations?: {\n of?: string\n results?: string\n pages?: string\n prev?: string\n next?: string\n }\n previousPage: () => void\n nextPage: () => void\n}\n\n/**\n * This component is based on the `div` element and supports all of its props\n */\nconst Pagination = React.forwardRef<HTMLDivElement, TablePaginationProps>(\n (\n {\n className,\n /**\n * The total number of items.\n */\n count,\n /**\n * The number of items per page.\n */\n pageSize,\n /**\n * The total number of pages.\n */\n pageCount,\n /**\n * The current page index.\n */\n pageIndex,\n /**\n * Whether there's a previous page that can be navigated to.\n */\n canPreviousPage,\n /**\n * Whether there's a next page that can be navigated to.\n */\n canNextPage,\n /**\n * A function that handles navigating to the next page.\n * This function should handle retrieving data for the next page.\n */\n nextPage,\n /**\n * A function that handles navigating to the previous page.\n * This function should handle retrieving data for the previous page.\n */\n previousPage,\n /**\n * An optional object of words to use in the pagination component.\n * Use this to override the default words, or translate them into another language.\n */\n translations = {\n of: \"of\",\n results: \"results\",\n pages: \"pages\",\n prev: \"Prev\",\n next: \"Next\",\n },\n ...props\n }: TablePaginationProps,\n ref\n ) => {\n const { from, to } = React.useMemo(() => {\n const from = count === 0 ? count : pageIndex * pageSize + 1\n const to = Math.min(count, (pageIndex + 1) * pageSize)\n\n return { from, to }\n }, [count, pageIndex, pageSize])\n\n return (\n <div\n ref={ref}\n className={clx(\n \"text-ui-fg-subtle txt-compact-small-plus flex w-full items-center justify-between px-3 py-4\",\n className\n )}\n {...props}\n >\n <div className=\"inline-flex items-center gap-x-1 px-3 py-[5px]\">\n <p>{from}</p>\n <Minus className=\"text-ui-fg-muted\" />\n <p>{`${to} ${translations.of} ${count} ${translations.results}`}</p>\n </div>\n <div className=\"flex items-center gap-x-2\">\n <div className=\"inline-flex items-center gap-x-1 px-3 py-[5px]\">\n <p>\n {pageIndex + 1} {translations.of} {Math.max(pageCount, 1)}{\" \"}\n {translations.pages}\n </p>\n </div>\n <Button\n type=\"button\"\n variant={\"transparent\"}\n onClick={previousPage}\n disabled={!canPreviousPage}\n >\n {translations.prev}\n </Button>\n <Button\n type=\"button\"\n variant={\"transparent\"}\n onClick={nextPage}\n disabled={!canNextPage}\n >\n {translations.next}\n </Button>\n </div>\n </div>\n )\n }\n)\nPagination.displayName = \"Table.Pagination\"\n\nconst Table = Object.assign(Root, {\n Row,\n Cell,\n Header,\n HeaderCell,\n Body,\n Pagination,\n})\n\nexport { Table }\n"]}
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../../src/components/table/table.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Minus } from \"@medusajs/icons\"\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/button\"\nimport { clx } from \"@/utils/clx\"\n\n/**\n * This component is based on the table element and its various children:\n *\n * - `Table`: `table`\n * - `Table.Header`: `thead`\n * - `Table.Row`: `tr`\n * - `Table.HeaderCell`: `th`\n * - `Table.Body`: `tbody`\n * - `Table.Cell`: `td`\n *\n * Each component supports the props or attributes of its equivalent HTML element.\n */\nconst Root = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <table\n ref={ref}\n className={clx(\"text-ui-fg-subtle txt-compact-small w-full\", className)}\n {...props}\n />\n))\nRoot.displayName = \"Table\"\n\nconst Row = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={clx(\n \"bg-ui-bg-base hover:bg-ui-bg-base-hover border-ui-border-base transition-fg border-b\",\n \"[&_td:last-child]:pr-6 [&_th:last-child]:pr-6\",\n \"[&_td:first-child]:pl-6 [&_th:first-child]:pl-6\",\n className\n )}\n {...props}\n />\n))\nRow.displayName = \"Table.Row\"\n\nconst Cell = React.forwardRef<\n HTMLTableCellElement,\n React.HTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td ref={ref} className={clx(\"h-12 pr-6\", className)} {...props} />\n))\nCell.displayName = \"Table.Cell\"\n\nconst Header = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead\n ref={ref}\n className={clx(\n \"border-ui-border-base txt-compact-small-plus [&_tr:hover]:bg-ui-bg-base border-y\",\n className\n )}\n {...props}\n />\n))\nHeader.displayName = \"Table.Header\"\n\nconst HeaderCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={clx(\"txt-compact-small-plus h-12 pr-6 text-left\", className)}\n {...props}\n />\n))\nHeaderCell.displayName = \"Table.HeaderCell\"\n\nconst Body = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={clx(\"border-ui-border-base border-b\", className)}\n {...props}\n />\n))\nBody.displayName = \"Table.Body\"\n\ninterface TablePaginationProps extends React.HTMLAttributes<HTMLDivElement> {\n count: number\n pageSize: number\n pageIndex: number\n pageCount: number\n canPreviousPage: boolean\n canNextPage: boolean\n translations?: {\n of?: string\n results?: string\n pages?: string\n prev?: string\n next?: string\n }\n previousPage: () => void\n nextPage: () => void\n}\n\n/**\n * This component is based on the `div` element and supports all of its props\n */\nconst Pagination = React.forwardRef<HTMLDivElement, TablePaginationProps>(\n (\n {\n className,\n /**\n * The total number of items.\n */\n count,\n /**\n * The number of items per page.\n */\n pageSize,\n /**\n * The total number of pages.\n */\n pageCount,\n /**\n * The current page index.\n */\n pageIndex,\n /**\n * Whether there's a previous page that can be navigated to.\n */\n canPreviousPage,\n /**\n * Whether there's a next page that can be navigated to.\n */\n canNextPage,\n /**\n * A function that handles navigating to the next page.\n * This function should handle retrieving data for the next page.\n */\n nextPage,\n /**\n * A function that handles navigating to the previous page.\n * This function should handle retrieving data for the previous page.\n */\n previousPage,\n /**\n * An optional object of words to use in the pagination component.\n * Use this to override the default words, or translate them into another language.\n */\n translations = {\n of: \"of\",\n results: \"results\",\n pages: \"pages\",\n prev: \"Prev\",\n next: \"Next\",\n },\n ...props\n }: TablePaginationProps,\n ref\n ) => {\n const { from, to } = React.useMemo(() => {\n const from = count === 0 ? count : pageIndex * pageSize + 1\n const to = Math.min(count, (pageIndex + 1) * pageSize)\n\n return { from, to }\n }, [count, pageIndex, pageSize])\n\n return (\n <div\n ref={ref}\n className={clx(\n \"text-ui-fg-subtle txt-compact-small-plus flex w-full items-center justify-between px-3 py-4\",\n className\n )}\n {...props}\n >\n <div className=\"inline-flex items-center gap-x-1 px-3 py-[5px]\">\n <p>{from}</p>\n <Minus className=\"text-ui-fg-muted\" />\n <p>{`${to} ${translations.of} ${count} ${translations.results}`}</p>\n </div>\n <div className=\"flex items-center gap-x-2\">\n <div className=\"inline-flex items-center gap-x-1 px-3 py-[5px]\">\n <p>\n {pageIndex + 1} {translations.of} {Math.max(pageCount, 1)}{\" \"}\n {translations.pages}\n </p>\n </div>\n <Button\n type=\"button\"\n variant={\"transparent\"}\n onClick={previousPage}\n disabled={!canPreviousPage}\n >\n {translations.prev}\n </Button>\n <Button\n type=\"button\"\n variant={\"transparent\"}\n onClick={nextPage}\n disabled={!canNextPage}\n >\n {translations.next}\n </Button>\n </div>\n </div>\n )\n }\n)\nPagination.displayName = \"Table.Pagination\"\n\nconst Table = Object.assign(Root, {\n Row,\n Cell,\n Header,\n HeaderCell,\n Body,\n Pagination,\n})\n\nexport { Table }\n"]}
@@ -1,3 +1,4 @@
1
+ export { Alert } from "./components/alert";
1
2
  export { Avatar } from "./components/avatar";
2
3
  export { Badge } from "./components/badge";
3
4
  export { Button } from "./components/button";
@@ -21,6 +22,7 @@ export { IconButton } from "./components/icon-button";
21
22
  export { Input } from "./components/input";
22
23
  export { Kbd } from "./components/kbd";
23
24
  export { Label } from "./components/label";
25
+ export { Popover } from "./components/popover";
24
26
  export { ProgressAccordion } from "./components/progress-accordion";
25
27
  export { ProgressTabs } from "./components/progress-tabs";
26
28
  export { Prompt } from "./components/prompt";
@@ -35,7 +37,6 @@ export { Textarea } from "./components/textarea";
35
37
  export { Toast } from "./components/toast";
36
38
  export { Toaster } from "./components/toaster";
37
39
  export { Tooltip } from "./components/tooltip";
38
- export { Popover } from "./components/popover";
39
40
  export { usePrompt } from "./hooks/use-prompt";
40
41
  export { useToast } from "./hooks/use-toast";
41
42
  export { useToggleState } from "./hooks/use-toggle-state";
package/dist/cjs/index.js CHANGED
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.clx = exports.useToggleState = exports.useToast = exports.usePrompt = exports.Popover = exports.Tooltip = exports.Toaster = exports.Toast = exports.Textarea = exports.Text = exports.Tabs = exports.Table = exports.Switch = exports.StatusBadge = exports.Select = exports.RadioGroup = exports.Prompt = exports.ProgressTabs = exports.ProgressAccordion = exports.Label = exports.Kbd = exports.Input = exports.IconButton = exports.IconBadge = exports.Hint = exports.Heading = exports.FocusModal = exports.DropdownMenu = exports.Drawer = exports.DatePicker = exports.CurrencyInput = exports.Copy = exports.Container = exports.CommandBar = exports.Command = exports.CodeBlock = exports.Code = exports.Checkbox = exports.Calendar = exports.Button = exports.Badge = exports.Avatar = void 0;
3
+ exports.clx = exports.useToggleState = exports.useToast = exports.usePrompt = exports.Tooltip = exports.Toaster = exports.Toast = exports.Textarea = exports.Text = exports.Tabs = exports.Table = exports.Switch = exports.StatusBadge = exports.Select = exports.RadioGroup = exports.Prompt = exports.ProgressTabs = exports.ProgressAccordion = exports.Popover = exports.Label = exports.Kbd = exports.Input = exports.IconButton = exports.IconBadge = exports.Hint = exports.Heading = exports.FocusModal = exports.DropdownMenu = exports.Drawer = exports.DatePicker = exports.CurrencyInput = exports.Copy = exports.Container = exports.CommandBar = exports.Command = exports.CodeBlock = exports.Code = exports.Checkbox = exports.Calendar = exports.Button = exports.Badge = exports.Avatar = exports.Alert = void 0;
4
4
  const tslib_1 = require("tslib");
5
+ var alert_1 = require("./components/alert");
6
+ Object.defineProperty(exports, "Alert", { enumerable: true, get: function () { return alert_1.Alert; } });
5
7
  var avatar_1 = require("./components/avatar");
6
8
  Object.defineProperty(exports, "Avatar", { enumerable: true, get: function () { return avatar_1.Avatar; } });
7
9
  var badge_1 = require("./components/badge");
@@ -48,6 +50,8 @@ var kbd_1 = require("./components/kbd");
48
50
  Object.defineProperty(exports, "Kbd", { enumerable: true, get: function () { return kbd_1.Kbd; } });
49
51
  var label_1 = require("./components/label");
50
52
  Object.defineProperty(exports, "Label", { enumerable: true, get: function () { return label_1.Label; } });
53
+ var popover_1 = require("./components/popover");
54
+ Object.defineProperty(exports, "Popover", { enumerable: true, get: function () { return popover_1.Popover; } });
51
55
  var progress_accordion_1 = require("./components/progress-accordion");
52
56
  Object.defineProperty(exports, "ProgressAccordion", { enumerable: true, get: function () { return progress_accordion_1.ProgressAccordion; } });
53
57
  var progress_tabs_1 = require("./components/progress-tabs");
@@ -76,8 +80,6 @@ var toaster_1 = require("./components/toaster");
76
80
  Object.defineProperty(exports, "Toaster", { enumerable: true, get: function () { return toaster_1.Toaster; } });
77
81
  var tooltip_1 = require("./components/tooltip");
78
82
  Object.defineProperty(exports, "Tooltip", { enumerable: true, get: function () { return tooltip_1.Tooltip; } });
79
- var popover_1 = require("./components/popover");
80
- Object.defineProperty(exports, "Popover", { enumerable: true, get: function () { return popover_1.Popover; } });
81
83
  // Hooks
82
84
  var use_prompt_1 = require("./hooks/use-prompt");
83
85
  Object.defineProperty(exports, "usePrompt", { enumerable: true, get: function () { return use_prompt_1.usePrompt; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,oDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,8DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,wCAAsC;AAA7B,0FAAA,GAAG,OAAA;AACZ,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,sEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,0DAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAEhB,QAAQ;AACR,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,6DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAEvB,QAAQ;AACR,mCAAiC;AAAxB,0FAAA,GAAG,OAAA;AAEZ,QAAQ;AACR,kDAAuB","sourcesContent":["export { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calendar\"\nexport { Checkbox } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip } from \"./components/tooltip\"\nexport { Popover } from \"./components/popover\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToast } from \"./hooks/use-toast\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\n\n// Types\nexport * from \"./types\"\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,oDAAkD;AAAzC,sGAAA,SAAS,OAAA;AAClB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,8DAA2D;AAAlD,+GAAA,aAAa,OAAA;AACtB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,sDAAmD;AAA1C,uGAAA,SAAS,OAAA;AAClB,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,wCAAsC;AAA7B,0FAAA,GAAG,OAAA;AACZ,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,sEAAmE;AAA1D,uHAAA,iBAAiB,OAAA;AAC1B,4DAAyD;AAAhD,6GAAA,YAAY,OAAA;AACrB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,wDAAqD;AAA5C,yGAAA,UAAU,OAAA;AACnB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,0DAAuD;AAA9C,2GAAA,WAAW,OAAA;AACpB,8CAA4C;AAAnC,gGAAA,MAAM,OAAA;AACf,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,0CAAwC;AAA/B,4FAAA,IAAI,OAAA;AACb,kDAAgD;AAAvC,oGAAA,QAAQ,OAAA;AACjB,4CAA0C;AAAjC,8FAAA,KAAK,OAAA;AACd,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAChB,gDAA8C;AAArC,kGAAA,OAAO,OAAA;AAEhB,QAAQ;AACR,iDAA8C;AAArC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,6DAAyD;AAAhD,kHAAA,cAAc,OAAA;AAEvB,QAAQ;AACR,mCAAiC;AAAxB,0FAAA,GAAG,OAAA;AAEZ,QAAQ;AACR,kDAAuB","sourcesContent":["export { Alert } from \"./components/alert\"\nexport { Avatar } from \"./components/avatar\"\nexport { Badge } from \"./components/badge\"\nexport { Button } from \"./components/button\"\nexport { Calendar } from \"./components/calendar\"\nexport { Checkbox } from \"./components/checkbox\"\nexport { Code } from \"./components/code\"\nexport { CodeBlock } from \"./components/code-block\"\nexport { Command } from \"./components/command\"\nexport { CommandBar } from \"./components/command-bar\"\nexport { Container } from \"./components/container\"\nexport { Copy } from \"./components/copy\"\nexport { CurrencyInput } from \"./components/currency-input\"\nexport { DatePicker } from \"./components/date-picker\"\nexport { Drawer } from \"./components/drawer\"\nexport { DropdownMenu } from \"./components/dropdown-menu\"\nexport { FocusModal } from \"./components/focus-modal\"\nexport { Heading } from \"./components/heading\"\nexport { Hint } from \"./components/hint\"\nexport { IconBadge } from \"./components/icon-badge\"\nexport { IconButton } from \"./components/icon-button\"\nexport { Input } from \"./components/input\"\nexport { Kbd } from \"./components/kbd\"\nexport { Label } from \"./components/label\"\nexport { Popover } from \"./components/popover\"\nexport { ProgressAccordion } from \"./components/progress-accordion\"\nexport { ProgressTabs } from \"./components/progress-tabs\"\nexport { Prompt } from \"./components/prompt\"\nexport { RadioGroup } from \"./components/radio-group\"\nexport { Select } from \"./components/select\"\nexport { StatusBadge } from \"./components/status-badge\"\nexport { Switch } from \"./components/switch\"\nexport { Table } from \"./components/table\"\nexport { Tabs } from \"./components/tabs\"\nexport { Text } from \"./components/text\"\nexport { Textarea } from \"./components/textarea\"\nexport { Toast } from \"./components/toast\"\nexport { Toaster } from \"./components/toaster\"\nexport { Tooltip } from \"./components/tooltip\"\n\n// Hooks\nexport { usePrompt } from \"./hooks/use-prompt\"\nexport { useToast } from \"./hooks/use-toast\"\nexport { useToggleState } from \"./hooks/use-toggle-state\"\n\n// Utils\nexport { clx } from \"./utils/clx\"\n\n// Types\nexport * from \"./types\"\n"]}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ interface AlertProps extends React.ComponentPropsWithoutRef<"div"> {
3
+ variant?: "error" | "success" | "warning" | "info";
4
+ dismissible?: boolean;
5
+ }
6
+ /**
7
+ * This component is based on the div element and supports all of its props
8
+ *
9
+ * @excludeExternal
10
+ */
11
+ export declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
12
+ export {};